[gnome-devel-docs] Updated Greek translations



commit 7c2afeaf0155061b23c06f3408ad004fd87eb702
Author: Tom Tryfonidis <tomtryf gmail com>
Date:   Fri Feb 1 19:11:39 2013 +0200

    Updated Greek translations

 accessibility-devel-guide/el/el.po | 1961 +-
 integration-guide/el/el.po         |  790 +-
 optimization-guide/el/el.po        | 1220 +-
 platform-demos/el/el.po            |63564 +++++++++++++++++++++++++++---------
 platform-overview/el/el.po         | 2618 +-
 5 files changed, 51516 insertions(+), 18637 deletions(-)
---
diff --git a/accessibility-devel-guide/el/el.po b/accessibility-devel-guide/el/el.po
index e53a536..72691e8 100644
--- a/accessibility-devel-guide/el/el.po
+++ b/accessibility-devel-guide/el/el.po
@@ -11,137 +11,286 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: gnome-devel-docs master\n"
-"POT-Creation-Date: 2012-07-27 09:48+0000\n"
-"PO-Revision-Date: 2012-07-29 15:25+0200\n"
+"POT-Creation-Date: 2013-01-21 11:38+0000\n"
+"PO-Revision-Date: 2013-01-26 09:43+0200\n"
 "Last-Translator: Tom Tryfonidis <tomtryf gmail com>\n"
 "Language-Team: Greek <team gnome gr>\n"
 "Language: el\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1)\n"
-"X-Generator: Lokalize 1.0\n"
-"X-Poedit-Language: Greek\n"
-"X-Poedit-Country: GREECE\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Poedit 1.5.4\n"
 "X-Poedit-SourceCharset: utf-8\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/accessibility-devel-guide.xml:72(None)
-msgid ""
-"@@image: 'figures/GNOME_desktop_Accessibility.png'; "
-"md5=76a706b0a4d4e184d7951fce04ccec59"
-msgstr ""
-"@@image: 'figures/GNOME_desktop_Accessibility.png'; "
-"md5=76a706b0a4d4e184d7951fce04ccec59"
-
-#. 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/accessibility-devel-guide.xml:136(None)
-msgid "@@image: 'figures/gaa.png'; md5=THIS FILE DOESN'T EXIST"
-msgstr "@@image: 'figures/gaa.png'; md5=THIS FILE DOESN'T EXIST"
-
-#. 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/accessibility-devel-guide.xml:1009(None)
-msgid "@@image: 'figures/nodrop.png'; md5=16b315fbe17b719998a057ba560c22e2"
-msgstr "@@image: 'figures/nodrop.png'; md5=16b315fbe17b719998a057ba560c22e2"
-
-#. 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/accessibility-devel-guide.xml:1112(None)
-msgid ""
-"@@image: 'figures/label_above.png'; md5=5b7a6f236b676802e62807b8d63bbf10"
-msgstr ""
-"@@image: 'figures/label_above.png'; md5=5b7a6f236b676802e62807b8d63bbf10"
-
-#. 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/accessibility-devel-guide.xml:1123(None)
-msgid ""
-"@@image: 'figures/label_below.png'; md5=1ab1facdd4ace09c84b415eb0e581891"
-msgstr ""
-"@@image: 'figures/label_below.png'; md5=1ab1facdd4ace09c84b415eb0e581891"
-
-#. 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/accessibility-devel-guide.xml:1134(None)
-msgid ""
-"@@image: 'figures/label_right.png'; md5=c0d4328a48ec9a6889b4b1ec8e5548d6"
-msgstr ""
-"@@image: 'figures/label_right.png'; md5=c0d4328a48ec9a6889b4b1ec8e5548d6"
-
-#. 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/accessibility-devel-guide.xml:1145(None)
-msgid "@@image: 'figures/label_left.png'; md5=186cae86a97426a6c9034d0c2091b5d9"
-msgstr ""
-"@@image: 'figures/label_left.png'; md5=186cae86a97426a6c9034d0c2091b5d9"
-
-#. 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/accessibility-devel-guide.xml:1203(None)
-msgid "@@image: 'figures/color_only.png'; md5=d4f964fc9b557eda6f4bfab0793d7964"
-msgstr ""
-"@@image: 'figures/color_only.png'; md5=d4f964fc9b557eda6f4bfab0793d7964"
-
-#. 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/accessibility-devel-guide.xml:1218(None)
-msgid ""
-"@@image: 'figures/color_and_arrows.png'; md5=a9a1eb5f1f902f388e717f4ef7882c22"
-msgstr ""
-"@@image: 'figures/color_and_arrows.png'; md5=a9a1eb5f1f902f388e717f4ef7882c22"
-
-#. 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/accessibility-devel-guide.xml:1349(None)
-msgid "@@image: 'figures/badfocus1.png'; md5=48c81ba9110bcbbec7e2664658a8a4ef"
-msgstr "@@image: 'figures/badfocus1.png'; md5=48c81ba9110bcbbec7e2664658a8a4ef"
-
-#. 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/accessibility-devel-guide.xml:1364(None)
-msgid "@@image: 'figures/badfocus2.png'; md5=5ced4392a665b97154f0b7b220d36351"
-msgstr "@@image: 'figures/badfocus2.png'; md5=5ced4392a665b97154f0b7b220d36351"
-
-#. 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/accessibility-devel-guide.xml:1379(None)
-msgid "@@image: 'figures/goodfocus.png'; md5=5f8c020c3d8382bfd3e70448591ec0f4"
-msgstr "@@image: 'figures/goodfocus.png'; md5=5f8c020c3d8382bfd3e70448591ec0f4"
-
-#. 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/accessibility-devel-guide.xml:1403(None)
-msgid "@@image: 'figures/badfocus3.png'; md5=bb0f9a1309bb05c0d9e9cd719625c8a0"
-msgstr "@@image: 'figures/badfocus3.png'; md5=bb0f9a1309bb05c0d9e9cd719625c8a0"
-
-#. 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/accessibility-devel-guide.xml:1418(None)
-msgid "@@image: 'figures/goodfocus3.png'; md5=f95f59dcfb337d2f811ac04025141ae2"
-msgstr ""
-"@@image: 'figures/goodfocus3.png'; md5=f95f59dcfb337d2f811ac04025141ae2"
-
-#. 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/accessibility-devel-guide.xml:1433(None)
-msgid "@@image: 'figures/goodfocus2.png'; md5=86b2a96f4142edb59a3ef22f433a4504"
-msgstr ""
-"@@image: 'figures/goodfocus2.png'; md5=86b2a96f4142edb59a3ef22f433a4504"
-
-#. 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/accessibility-devel-guide.xml:780(None)
-msgid "@@image: 'figures/at-arch.png'; md5=e429cadb2e11d42d7437e999de175c3f"
-msgstr "@@image: 'figures/at-arch.png'; md5=e429cadb2e11d42d7437e999de175c3f"
-
-#: C/accessibility-devel-guide.xml:12(title)
+#. Put one translator per line, in the form NAME <EMAIL>, YEAR1, YEAR2
+msgctxt "_"
+msgid "translator-credits"
+msgstr "ÎÎÎÎÎÎÏ ÎÎÏÏÎÎÏÎÏÎÏ <juankatsampirhs gmail com>, 2010"
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/index.docbook:72(imagedata)
+msgctxt "_"
+msgid ""
+"external ref='figures/GNOME_desktop_Accessibility.png' "
+"md5='76a706b0a4d4e184d7951fce04ccec59'"
+msgstr ""
+"external ref='figures/GNOME_desktop_Accessibility.png' "
+"md5='76a706b0a4d4e184d7951fce04ccec59'"
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/index.docbook:136(imagedata)
+msgctxt "_"
+msgid "external ref='figures/gaa.jpg' md5='32d75c79ddd3b2f4ccad189ea67dbfaa'"
+msgstr "external ref='figures/gaa.jpg' md5='32d75c79ddd3b2f4ccad189ea67dbfaa'"
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/index.docbook:1009(imagedata)
+msgctxt "_"
+msgid ""
+"external ref='figures/nodrop.png' md5='16b315fbe17b719998a057ba560c22e2'"
+msgstr ""
+"external ref='figures/nodrop.png' md5='16b315fbe17b719998a057ba560c22e2'"
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/index.docbook:1112(imagedata)
+msgctxt "_"
+msgid ""
+"external ref='figures/label_above.png' md5='5b7a6f236b676802e62807b8d63bbf10'"
+msgstr ""
+"external ref='figures/label_above.png' md5='5b7a6f236b676802e62807b8d63bbf10'"
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/index.docbook:1123(imagedata)
+msgctxt "_"
+msgid ""
+"external ref='figures/label_below.png' md5='1ab1facdd4ace09c84b415eb0e581891'"
+msgstr ""
+"external ref='figures/label_below.png' md5='1ab1facdd4ace09c84b415eb0e581891'"
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/index.docbook:1134(imagedata)
+msgctxt "_"
+msgid ""
+"external ref='figures/label_right.png' md5='c0d4328a48ec9a6889b4b1ec8e5548d6'"
+msgstr ""
+"external ref='figures/label_right.png' md5='c0d4328a48ec9a6889b4b1ec8e5548d6'"
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/index.docbook:1145(imagedata)
+msgctxt "_"
+msgid ""
+"external ref='figures/label_left.png' md5='186cae86a97426a6c9034d0c2091b5d9'"
+msgstr ""
+"external ref='figures/label_left.png' md5='186cae86a97426a6c9034d0c2091b5d9'"
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/index.docbook:1203(imagedata)
+msgctxt "_"
+msgid ""
+"external ref='figures/color_only.png' md5='d4f964fc9b557eda6f4bfab0793d7964'"
+msgstr ""
+"external ref='figures/color_only.png' md5='d4f964fc9b557eda6f4bfab0793d7964'"
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/index.docbook:1218(imagedata)
+msgctxt "_"
+msgid ""
+"external ref='figures/color_and_arrows.png' "
+"md5='a9a1eb5f1f902f388e717f4ef7882c22'"
+msgstr ""
+"external ref='figures/color_and_arrows.png' "
+"md5='a9a1eb5f1f902f388e717f4ef7882c22'"
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/index.docbook:1349(imagedata)
+msgctxt "_"
+msgid ""
+"external ref='figures/badfocus1.png' md5='48c81ba9110bcbbec7e2664658a8a4ef'"
+msgstr ""
+"external ref='figures/badfocus1.png' md5='48c81ba9110bcbbec7e2664658a8a4ef'"
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/index.docbook:1364(imagedata)
+msgctxt "_"
+msgid ""
+"external ref='figures/badfocus2.png' md5='5ced4392a665b97154f0b7b220d36351'"
+msgstr ""
+"external ref='figures/badfocus2.png' md5='5ced4392a665b97154f0b7b220d36351'"
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/index.docbook:1379(imagedata)
+msgctxt "_"
+msgid ""
+"external ref='figures/goodfocus.png' md5='5f8c020c3d8382bfd3e70448591ec0f4'"
+msgstr ""
+"external ref='figures/goodfocus.png' md5='5f8c020c3d8382bfd3e70448591ec0f4'"
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/index.docbook:1403(imagedata)
+msgctxt "_"
+msgid ""
+"external ref='figures/badfocus3.png' md5='bb0f9a1309bb05c0d9e9cd719625c8a0'"
+msgstr ""
+"external ref='figures/badfocus3.png' md5='bb0f9a1309bb05c0d9e9cd719625c8a0'"
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/index.docbook:1418(imagedata)
+msgctxt "_"
+msgid ""
+"external ref='figures/goodfocus3.png' md5='f95f59dcfb337d2f811ac04025141ae2'"
+msgstr ""
+"external ref='figures/goodfocus3.png' md5='f95f59dcfb337d2f811ac04025141ae2'"
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/index.docbook:1433(imagedata)
+msgctxt "_"
+msgid ""
+"external ref='figures/goodfocus2.png' md5='86b2a96f4142edb59a3ef22f433a4504'"
+msgstr ""
+"external ref='figures/goodfocus2.png' md5='86b2a96f4142edb59a3ef22f433a4504'"
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/index.docbook:780(imagedata)
+msgctxt "_"
+msgid ""
+"external ref='figures/at-arch.png' md5='e429cadb2e11d42d7437e999de175c3f'"
+msgstr ""
+"external ref='figures/at-arch.png' md5='e429cadb2e11d42d7437e999de175c3f'"
+
+#: C/index.docbook:12(book/title)
 msgid "GNOME Accessibility Developers Guide"
 msgstr "ÎÎÎÎÏÏ ÏÏÎÏÎÏÏÏÎÏÎÏ GNOME ÎÎÎ ÏÏÎÎÏÎÎÎÎÏÎÏÏÎÏ"
 
-#: C/accessibility-devel-guide.xml:15(para)
+#: C/index.docbook:15(abstract/para)
 msgid ""
 "The GNOME Accessibility Guide is for developers who want to ensure their "
 "programming efforts are accessible to the widest audience of users. This "
@@ -152,39 +301,27 @@ msgstr ""
 "ÏÎÏÎÏÏÏÏÎÏÎÏÏ ÏÏÎÏÏÎÏ. Î ÎÎÎÎÏÏ ÎÎÎÏÏÏÎÎ ÎÎÎ ÎÏÎÎÏÎÏ ÎÏÏ ÏÎÏ ÎÏÎÎÏÎÏÎÎÏ ÏÎÏ "
 "Section 508 (ÎÎÎÏÎÎÎÎÎÎÏ ÎÎÎÎÎÎ ÎÎÎ ÏÏÎÏÎÏÏÏÎÏÎ ÏÏÎÏÏÎÏÏÎ)."
 
-#: C/accessibility-devel-guide.xml:20(year)
-msgid "2008"
-msgstr "2008"
-
-#: C/accessibility-devel-guide.xml:21(holder)
-msgid "Vincent Alexander"
-msgstr "Vincent Alexander"
+#: C/index.docbook:19(bookinfo/copyright)
+msgid "<year>2008</year> <holder>Vincent Alexander</holder>"
+msgstr "<year>2008</year> <holder>Vincent Alexander</holder>"
 
-#: C/accessibility-devel-guide.xml:24(year)
-msgid "2001, 2002"
-msgstr "2001, 2002"
-
-#: C/accessibility-devel-guide.xml:25(holder)
+#: C/index.docbook:23(bookinfo/copyright)
 msgid ""
-"Calum Benson, Brian Cameron, Bill Haneman, Padraig O'Briain, Sharon Snider"
+"<year>2001, 2002</year> <holder>Calum Benson, Brian Cameron, Bill Haneman, "
+"Padraig O'Briain, Sharon Snider</holder>"
 msgstr ""
-"Calum Benson, Brian Cameron, Bill Haneman, Padraig O'Briain, Sharon Snider"
+"<year>2001, 2002</year> <holder>Calum Benson, Brian Cameron, Bill Haneman, "
+"Padraig O'Briain, Sharon Snider</holder>"
 
-#: C/accessibility-devel-guide.xml:28(publishername)
-#: C/accessibility-devel-guide.xml:38(orgname)
-#: C/accessibility-devel-guide.xml:45(orgname)
-#: C/accessibility-devel-guide.xml:52(orgname)
-#: C/accessibility-devel-guide.xml:59(orgname)
-#: C/accessibility-devel-guide.xml:66(orgname)
-#: C/accessibility-devel-guide.xml:73(orgname)
-#: C/accessibility-devel-guide.xml:85(para)
-#: C/accessibility-devel-guide.xml:88(para)
-#: C/accessibility-devel-guide.xml:99(para)
-#: C/accessibility-devel-guide.xml:102(para)
+#: C/index.docbook:28(publisher/publishername)
+#: C/index.docbook:85(revdescription/para)
+#: C/index.docbook:88(revdescription/para)
+#: C/index.docbook:99(revdescription/para)
+#: C/index.docbook:102(revdescription/para)
 msgid "GNOME Documentation Project"
 msgstr "ÎÏÎÎ ÏÎÎÎÎÏÎÏÏÎÏ GNOME"
 
-#: C/accessibility-devel-guide.xml:2(para)
+#: C/index.docbook:2(legalnotice/para)
 msgid ""
 "Permission is granted to copy, distribute and/or modify this document under "
 "the terms of the GNU Free Documentation License (GFDL), Version 1.1 or any "
@@ -201,7 +338,7 @@ msgstr ""
 "ÎÎÏÎÎÏÎÎ <ulink type=\"help\" url=\"ghelp:fdl\">ÏÏÎÎÎÏÎÎ</ulink>, Î ÏÏÎ "
 "ÎÏÏÎÎÎ COPYING-DOCS ÏÎÏ ÎÎÎÎÎÎÎÏÎÎ ÎÎÎÎ ÎÎ ÏÎ ÏÎÏÏÎ ÎÎÏÎÎÏÎÎÎÎ."
 
-#: C/accessibility-devel-guide.xml:6(para)
+#: C/index.docbook:6(legalnotice/para)
 msgid ""
 "This manual is part of a collection of GNOME manuals distributed under the "
 "GFDL. If you want to distribute this manual separately from the collection, "
@@ -213,7 +350,7 @@ msgstr ""
 "ÎÎÏÎÎÏÎÎÎÎ ÎÎÏÏÏÎÏÏÎ ÎÏÏ ÏÎ ÏÏÎÎÎÎÎ, ÎÏÎÎÎÎÏÎ ÎÎ ÏÏÎÏÎÎÏÎÏÎ ÏÏÎ ÎÎÏÎÎÏÎÎÎÎ "
 "ÎÎÏÎÎÏÎÏÎ ÏÎÏ ÎÎÎÎÎÏ ÏÏÎÏÎÏ, ÏÏÏÏ ÏÏÎÎÎÎÏÎÏÎÎ ÏÏÎÎ ÎÎÏÏÎÏÎ 6 ÏÎÏ ÎÎÎÎÎÏ."
 
-#: C/accessibility-devel-guide.xml:10(para)
+#: C/index.docbook:10(legalnotice/para)
 msgid ""
 "Many of the names used by companies to distinguish their products and "
 "services are claimed as trademarks. Where those names appear in any GNOME "
@@ -227,7 +364,7 @@ msgstr ""
 "ÎÏÎÏÎ ÎÎÏÏÎ ÎÏÏÏÎ, ÏÏÏÎ ÎÏÏÎ ÎÎÎÎÏÎÏÎÎÏÎÎ ÎÎ ÎÎÏÎÎÎÎÎÏÏ ÏÎÏÎÎÏÎÏÎÏ Î ÎÎ "
 "ÎÏÏÎÎÎÏÏ ÎÎÏÎÎÎÎÎÏÏ ÏÎÏÎÎÏÎÏÎÏ."
 
-#: C/accessibility-devel-guide.xml:17(para)
+#: C/index.docbook:17(listitem/para)
 msgid ""
 "DOCUMENT IS PROVIDED ON AN \"AS IS\" BASIS, WITHOUT WARRANTY OF ANY KIND, "
 "EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT "
@@ -255,7 +392,7 @@ msgstr ""
 "ÎÎÎÎÎÎÎÎÎÎÎÎÎÎ ÎÎÎÎÎÎÎÎ ÎÎÎÎÎ ÎÎÎÎÎÎÎ ÎÎ ÎÎÎÎ ÎÎÎÎÎ ÎÎÎ ÎÎÎÎÎÎÎÎ, ÎÎÎÎ ÎÎÎÎ "
 "ÎÎÎ ÎÎÎÎÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ ÎÎÎÎÎÎÎÎÎ ÎÎÎÎÎÎÎÎ, ÎÎÎ"
 
-#: C/accessibility-devel-guide.xml:23(para)
+#: C/index.docbook:23(listitem/para)
 msgid ""
 "UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER IN TORT (INCLUDING "
 "NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE AUTHOR, INITIAL WRITER, ANY "
@@ -280,86 +417,83 @@ msgstr ""
 "ÎÎÎ ÎÎÎÎÎÎÎÎÎÎÎÎÎÎ ÎÎÎÎÎÎÎÎ ÎÎÎÎÎ, ÎÎÎÎÎ ÎÎÎ ÎÎ ÎÎ ÎÎ ÎÎÎ ÎÎÎÎ ÎÎÎÎÎ ÎÎÎÎÎ "
 "ÎÎÎÎÎ ÎÎÎ ÎÎÎÎÎÎÎÎÎÎÎ ÎÎÎÎÎÎÎÎÎ ÎÎÎÎÎÎÎ ÎÎÎÎÎÎ."
 
-#: C/accessibility-devel-guide.xml:13(para)
+#: C/index.docbook:13(legalnotice/para)
 msgid ""
 "DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT ARE PROVIDED UNDER THE TERMS "
 "OF THE GNU FREE DOCUMENTATION LICENSE WITH THE FURTHER UNDERSTANDING THAT: "
-"<placeholder-1/>"
+"<_:orderedlist-1/>"
 msgstr ""
 "ÎÎ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎ ÎÎÎÎÎÎÎÎÎÎÎÎÎÎ ÎÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎÎÎÎÎÎ ÎÎÎÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎÎ "
 "ÎÎÎÎÎ ÎÎÎ ÎÎÎÎÎÎÎÎÎ ÎÎÎÎÎÎ ÎÎÎÎÎÎÎÎÎÎÎ GNU ÎÎ ÎÎÎ ÎÎÎÎÎÎÎÎÎ ÎÎÎÎÎÎÎÎÎ ÎÎÎ: "
-"<placeholder-1/>"
-
-#: C/accessibility-devel-guide.xml:35(firstname)
-msgid "Vincent"
-msgstr "Vincent"
+"<_:orderedlist-1/>"
 
-#: C/accessibility-devel-guide.xml:36(surname)
-msgid "Alexander"
-msgstr "Alexander"
-
-#: C/accessibility-devel-guide.xml:42(firstname)
-msgid "Calum"
-msgstr "Calum"
-
-#: C/accessibility-devel-guide.xml:43(surname)
-msgid "Benson"
-msgstr "Benson"
-
-#: C/accessibility-devel-guide.xml:49(firstname)
-msgid "Brian"
-msgstr "Brian"
-
-#: C/accessibility-devel-guide.xml:50(surname)
-msgid "Cameron"
-msgstr "Cameron"
-
-#: C/accessibility-devel-guide.xml:56(firstname)
-msgid "Bill"
-msgstr "Bill"
-
-#: C/accessibility-devel-guide.xml:57(surname)
-msgid "Haneman"
-msgstr "Haneman"
+#: C/index.docbook:34(authorgroup/author)
+msgid ""
+"<firstname>Vincent</firstname> <surname>Alexander</surname> <affiliation> "
+"<orgname>GNOME Documentation Project</orgname> </affiliation>"
+msgstr ""
+"<firstname>Vincent</firstname> <surname>Alexander</surname> <affiliation> "
+"<orgname>ÎÏÎÎ ÏÎÎÎÎÏÎÏÏÎÏ GNOME</orgname> </affiliation>"
 
-#: C/accessibility-devel-guide.xml:63(firstname)
-msgid "Padraig"
-msgstr "Padraig"
+#: C/index.docbook:41(authorgroup/author)
+msgid ""
+"<firstname>Calum</firstname> <surname>Benson</surname> <affiliation> "
+"<orgname>GNOME Documentation Project</orgname> </affiliation>"
+msgstr ""
+"<firstname>Calum</firstname> <surname>Benson</surname> <affiliation> "
+"<orgname>ÎÏÎÎ ÏÎÎÎÎÏÎÏÏÎÏ GNOME</orgname> </affiliation>"
 
-#: C/accessibility-devel-guide.xml:64(surname)
-msgid "O'Briain"
-msgstr "O'Briain"
+#: C/index.docbook:48(authorgroup/author)
+msgid ""
+"<firstname>Brian</firstname> <surname>Cameron</surname> <affiliation> "
+"<orgname>GNOME Documentation Project</orgname> </affiliation>"
+msgstr ""
+"<firstname>Brian</firstname> <surname>Cameron</surname> <affiliation> "
+"<orgname>ÎÏÎÎ ÏÎÎÎÎÏÎÏÏÎÏ GNOME</orgname> </affiliation>"
 
-#: C/accessibility-devel-guide.xml:70(firstname)
-msgid "Sharon"
-msgstr "Sharon"
+#: C/index.docbook:55(authorgroup/author)
+msgid ""
+"<firstname>Bill</firstname> <surname>Haneman</surname> <affiliation> "
+"<orgname>GNOME Documentation Project</orgname> </affiliation>"
+msgstr ""
+"<firstname>Bill</firstname> <surname>Haneman</surname> <affiliation> "
+"<orgname>ÎÏÎÎ ÏÎÎÎÎÏÎÏÏÎÏ GNOME</orgname> </affiliation>"
 
-#: C/accessibility-devel-guide.xml:71(surname)
-msgid "Snider"
-msgstr "Snider"
+#: C/index.docbook:62(authorgroup/author)
+msgid ""
+"<firstname>Padraig</firstname> <surname>O'Briain</surname> <affiliation> "
+"<orgname>GNOME Documentation Project</orgname> </affiliation>"
+msgstr ""
+"<firstname>Padraig</firstname> <surname>O'Briain</surname> <affiliation> "
+"<orgname>ÎÏÎÎ ÏÎÎÎÎÏÎÏÏÎÏ GNOME</orgname> </affiliation>"
 
-#: C/accessibility-devel-guide.xml:79(revnumber)
-#: C/accessibility-devel-guide.xml:94(revnumber)
-msgid "GNOME 2.24 Accessibility Developers Guide V2.24.0"
+#: C/index.docbook:69(authorgroup/author)
+msgid ""
+"<firstname>Sharon</firstname> <surname>Snider</surname> <affiliation> "
+"<orgname>GNOME Documentation Project</orgname> </affiliation>"
 msgstr ""
-"ÎÎÎÎÏÏ ÏÏÎÏÎÏÏÏÎÏÎÏ ÎÎÎ ÏÎÎ ÎÎÎÏÏÏÎÎ ÏÎÏ ÎÏÎÏÎÎÎÎÎÏ ÎÏÎÎÏÎÎÏ GNOME 2.24, "
-"ÎÎÎÎÏÎ 2.24.0"
+"<firstname>Sharon</firstname> <surname>Snider</surname> <affiliation> "
+"<orgname>ÎÏÎÎ ÏÎÎÎÎÏÎÏÏÎÏ GNOME</orgname> </affiliation>"
 
-#: C/accessibility-devel-guide.xml:83(date)
-#: C/accessibility-devel-guide.xml:97(date)
-msgid "September 2008"
-msgstr "ÎÎÏÏÎÎÎÏÎÎÏ 2008"
+#: C/index.docbook:78(revhistory/revision)
+#: C/index.docbook:93(revhistory/revision)
+msgid ""
+"<revnumber> GNOME 2.24 Accessibility Developers Guide V2.24.0 </revnumber> "
+"<date>September 2008</date> <_:revdescription-1/>"
+msgstr ""
+"<revnumber> ÎÎÎÎÏÏ ÏÏÎÏÎÏÏÏÎÏÎÏ GNOME 2.24 ÎÎÎ ÏÏÎÎÏÎÎÎÎÏÎÏÏÎÏ V2.24.0 </"
+"revnumber> <date>ÎÎÏÏÎÎÎÏÎÎÏ 2008</date> <_:revdescription-1/>"
 
-#: C/accessibility-devel-guide.xml:108(releaseinfo)
+#: C/index.docbook:108(bookinfo/releaseinfo)
 msgid "This manual describes version 2.24 of the GNOME Desktop."
 msgstr ""
 "ÎÏÏÏ ÏÎ ÎÎÏÎÎÏÎÎÎÎ ÏÎÏÎÎÏÎÏÎÎ ÏÎÎ ÎÎÎÎÏÎ 2.24 ÏÎÏ ÎÏÎÏÎÎÎÎÎÏ ÎÏÎÎÏÎÎÏ GNOME."
 
-#: C/accessibility-devel-guide.xml:112(title)
+#: C/index.docbook:112(legalnotice/title)
 msgid "Feedback"
 msgstr "ÎÎÎÎÏÎÏÎ"
 
-#: C/accessibility-devel-guide.xml:113(para)
+#: C/index.docbook:113(legalnotice/para)
 msgid ""
 "To report a bug or make a suggestion regarding the GNOME Desktop or this "
 "manual, follow the directions in the <ulink type=\"help\" url=\"ghelp:user-"
@@ -370,11 +504,11 @@ msgstr ""
 "\"help\" url=\"ghelp:user-guide?feedback\">ÏÎÎÎÎÎ ÎÎÎÎÏÎÏÎÏ ÏÎÏ GNOME</"
 "ulink>."
 
-#: C/accessibility-devel-guide.xml:2(title)
+#: C/index.docbook:2(chapter/title)
 msgid "What is Accessibility?"
 msgstr "ÎÎ ÎÎÎÎÎ Î ÏÏÎÏÎÏÏÏÎÏÎ;"
 
-#: C/accessibility-devel-guide.xml:3(para)
+#: C/index.docbook:3(chapter/para)
 msgid ""
 "Accessibility means helping people with disabilities to participate in "
 "substantial life activities. That includes work, and the use of services, "
@@ -389,7 +523,7 @@ msgstr ""
 "ÎÏÎÏÏÎÏÎÎ ÏÏÎÏÏ ÎÎÎÏÏÏÎÏÏ ÎÎ ÎÎÎÏÎÏÎÎÏ ÎÎ ÎÎÎÎÏÎÎÎÎÏÏÎÏÎ ÏÎÎÏÏÏ ÏÎ "
 "ÎÎÎÏÎÏÏÎÎÎÏÏÎÏÎ ÏÎÏ ÏÎÏÎÎÎÎÎÎÎÏÎÏ ÎÏÎÎÏÎÎÏ GNOME."
 
-#: C/accessibility-devel-guide.xml:6(para)
+#: C/index.docbook:6(chapter/para)
 msgid ""
 "In conjunction with assistive technologies if necessary - voice interfaces, "
 "screen readers, alternate input devices, and so on - people with permanent "
@@ -407,7 +541,7 @@ msgstr ""
 "ÎÎÎÎÏÎ, ÎÏÎÏÎÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÏÎÎ ÎÏÎÎÎÎÎÏÎÎÎ ÎÎ ÎÎÎÎÎÎ ÎÎÎ ÎÎ "
 "ÎÎÎÎÎÎÏÎ ÏÎÎ ÎÎÎÎÏÏÎÎÎÎÎ ÏÎÏ ÎÎÎÎÎÎÎÏÎÏÎÎ."
 
-#: C/accessibility-devel-guide.xml:9(para)
+#: C/index.docbook:9(chapter/para)
 msgid ""
 "Assistive technologies receive information from applications via the "
 "Accessibility Toolkit (ATK) API, which you can find in the atk module in the "
@@ -434,7 +568,7 @@ msgstr ""
 "ÎÎ ÏÏÎÏÏÎÎ ÎÎÏÎÎÎ ÎÎÎÎÎÎÎ tooltip ÏÏÎÎÎÎÎÎÎÎÎ ÎÎ ÎÎÎ widget, ÎÎÎ ÎÎ ÏÎ "
 "ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÎÎÎ ÎÎ ÏÎÏÎÎÏÎÏÎÏÎ ÏÎ widget ÏÏÎÎ ÏÏÎÏÏÎ."
 
-#: C/accessibility-devel-guide.xml:12(para)
+#: C/index.docbook:12(chapter/para)
 msgid ""
 "With a little extra effort, however, you can make your program function even "
 "more smoothly with assistive technologies. Besides helping individual users, "
@@ -449,11 +583,11 @@ msgstr ""
 "ÎÎÎÏÎÏ, ÏÎÎÎÎÏ ÎÏÏ ÏÎÏ ÎÏÎÎÎÏ ÏÎÎÎÎ ÎÏÎÎÏÎÏÎ ÎÎ ÏÏÎÏÎÎÎ ÎÎÎÎÎÎÏÎÎ ÎÏÏ ÏÎÏ "
 "ÎÏÎÏÎÎÎÎÏ ÎÎ ÎÎÎÎÎ ÏÏÎÏÎÏÎÏ."
 
-#: C/accessibility-devel-guide.xml:17(title)
+#: C/index.docbook:17(section/title)
 msgid "Types of Disability"
 msgstr "ÎÏÏÎÎ ÎÎÎÏÎÏÎÎÏ"
 
-#: C/accessibility-devel-guide.xml:18(para)
+#: C/index.docbook:18(section/para)
 msgid ""
 "In the US alone, there are an estimated 30,000,000 people whose ability to "
 "use computers may be compromised by inaccessible design. Globally, around 8% "
@@ -467,7 +601,7 @@ msgstr ""
 "ÎÏÎÏÎ ÎÎÏÎÎÎ ÎÎÎÎÏ ÎÎÎÏÎÏÎÎÏ. ÎÎ ÎÎÎÏÎÏÎÎÏ ÎÎÏÎÏÎÏÏÎÎÏÎÎ ÏÎ ÎÎÎ ÎÏÏ ÏÎÏ ÎÎÎÏ "
 "ÎÎÏÎÎÎÏÎÎÏ:"
 
-#: C/accessibility-devel-guide.xml:23(para)
+#: C/index.docbook:23(listitem/para)
 msgid ""
 "<emphasis>Visual Impairments</emphasis> - these can range from low-vision "
 "(including dim or hazy vision, extreme far- or near-sightedness, color-"
@@ -483,7 +617,7 @@ msgstr ""
 "ÎÎÏÎÎÎÎÎÎÏ ÏÎ ÏÎÎÏÎÎÎ) ÎÏÎÏÎÏÎ ÎÎ ÏÏÎÎÎÎÎÏÎÏÎ ÏÏÏÎÎÎÎÎ ÏÎ ÎÏÏÎÏÏ ÏÎÏÏ "
 "ÏÏÎÏÏÎÏ."
 
-#: C/accessibility-devel-guide.xml:30(para)
+#: C/index.docbook:30(listitem/para)
 msgid ""
 "<emphasis>Movement Impairments</emphasis> - users with poor muscle control "
 "or weaknesses can find it hard to use a standard keyboard or mouse. For "
@@ -495,7 +629,7 @@ msgstr ""
 "ÏÎÎÏÎÎÎ. ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ, ÎÏÏÏ ÎÎÎ ÎÏÎÏÎ ÏÎ ÎÏÎÎÏÏÏÎÏÎ ÎÎ ÎÏÎÏÎÏÎ ÏÎÏÎÎÎÎÎ "
 "ÎÏÎ ÎÎÏÎÏÎÎ ÏÏÎÏÏÏÎÏÏ, Î ÎÎÎÎÎ ÏÎÎ ÏÎÎÎÎÏ ÎÎ ÏÎÏÎÏÎ ÏÎÎÎÏÏÎ ÎÎÏÎ ÎÎÎÎÏ."
 
-#: C/accessibility-devel-guide.xml:35(para)
+#: C/index.docbook:35(listitem/para)
 msgid ""
 "<emphasis>Hearing Impairments</emphasis> - these can range from being able "
 "to hear some sounds but not distinguish spoken words, to profound deafness. "
@@ -508,7 +642,7 @@ msgstr ""
 "ÏÎÎÏÎÏÎÏÎÎÏ ÎÎ ÎÏÎÏÏ ÎÎÎ ÎÏÎÎ ÎÎ ÏÏÎÎÎÎÎÏÎÏÎ ÏÏÎÎÎÎÎÎÏÎ ÏÎ ÎÏÏÎÏÏ ÏÎÏÏ "
 "ÏÏÎÏÏÎÏ."
 
-#: C/accessibility-devel-guide.xml:40(para)
+#: C/index.docbook:40(listitem/para)
 msgid ""
 "<emphasis>Cognitive and Language Impairments</emphasis> - these can range "
 "from dyslexia to difficulties remembering things, solving problems or "
@@ -522,7 +656,7 @@ msgstr ""
 "ÎÎÎÎÏÏÏÏÎÎÎÎÏ ÎÎÎÏÎÎÏ, Î ÎÏÏÏÎÏ ÎÏÎÎÎÎÎ ÎÎÎÎÏÎ ÎÏÎÏÎÎ ÎÎ ÎÏÏÎÎÎÎÏÎÎ ÏÎÎ "
 "ÏÏÎÏÎ ÎÎÎÎÏÏÎÎÎÎÏÎ ÏÏÎÎÎÎÎÏÏÏÎ ÎÏÏ ÎÏÏÎÏÏ ÏÎÏÏ ÏÏÎÏÏÎÏ."
 
-#: C/accessibility-devel-guide.xml:45(para)
+#: C/index.docbook:45(listitem/para)
 msgid ""
 "<emphasis>Seizure disorders</emphasis> - certain light or sound patterns can "
 "cause epileptic seizures in some susceptible users."
@@ -531,11 +665,11 @@ msgstr ""
 "ÏÎÏÎÎÎÎÎÎÎÏÎ ÏÏÏÏÏ ÎÎÎ ÎÏÎÏ ÎÏÎÏÎÏÎ ÎÎ ÏÏÎÎÎÎÎÏÎÏÎ ÎÏÎÏÎÎÏ ÎÏÎÎÎÏÎÎÏ ÏÎ "
 "ÎÎÏÎÎÎÏÏ ÎÏÏÎÎÎÎÏ ÏÏÎÏÏÎÏ."
 
-#: C/accessibility-devel-guide.xml:53(title)
+#: C/index.docbook:53(section/title)
 msgid "How Accessibility Works in GNOME"
 msgstr "ÎÏÏ ÎÎÎÏÎÏÏÎÎÎ Î ÏÏÎÏÎÏÏÏÎÏÎ ÏÏÎ GNOME"
 
-#: C/accessibility-devel-guide.xml:54(para)
+#: C/index.docbook:54(section/para)
 msgid ""
 "The Accessibility Toolkit (ATK) describes a set of interfaces that need to "
 "be implemented by GUI components to make them accessible. The interfaces are "
@@ -548,7 +682,7 @@ msgstr ""
 "ÎÎÎÎÎÏÏÎÏÎÏ ÎÏÏ ÏÎÎ ÎÏÎÎÎÎÎÎÎÎÎÎ - ÎÏÎÏÎÎÎÎÏ ÎÏÎÏÎÏÎ ÎÎ ÎÏÎÏÎÏÎ ÏÎ ÎÎÎÎ "
 "ÎÏÎÎÎÎÎÎÎÎÎÎ ÏÏÏÏ GTK, Motif Î Qt."
 
-#: C/accessibility-devel-guide.xml:57(para)
+#: C/index.docbook:57(section/para)
 msgid ""
 "The implementation for the GTK widgets is in a module called GAIL (GNOME "
 "Accessbility Implementation Library), which is dynamically loadable at "
@@ -594,7 +728,7 @@ msgstr ""
 "GTK_MODULES, Î ÎÏÎÎÎ ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎ ÏÏÎÎÎÏÎÎÎÎ ÏÎ Âgail:atk-bridge ÎÏÏÏÏ "
 "ÏÏÏÎ ÎÎ ÎÎÎÏÎÎÏÎÎÎÎÎÎ Î ÏÏÎÏÏÎÏÎÎÎ ÏÎÏÎÎÎÎÎÎÎÏ ÏÏÎÏÎÏÏÏÎÏÎÏ."
 
-#: C/accessibility-devel-guide.xml:63(para)
+#: C/index.docbook:63(section/para)
 msgid ""
 "Most assistive technologies running on other desktops have historically "
 "found it necessary to maintain a complex off-screen model of the desktop "
@@ -636,16 +770,21 @@ msgstr ""
 "ÎÎÎÎÎÏÎÎ ÏÏÎÎ ÎÎÎÎÎ ÎÎÎÏÎÏÎ ÂAT-SPIÂ ÎÎÏÏ ÏÎÏ ÏÏÎÏÎÎÎÏ ÂÎÎÏÏÏÎÏÂ (ÎÎ. ÎÎÎ ÏÎ "
 "ÎÎÏÎÎÏÎÎ ÎÎÎÎÏÎÎÎÎ)."
 
-#: C/accessibility-devel-guide.xml:69(title)
-#: C/accessibility-devel-guide.xml:139(phrase)
+#: C/index.docbook:69(figure/title)
 msgid "GNOME Accessibility Architecture"
 msgstr "ÎÏÏÎÏÎÎÏÎÎÎÎÎ ÏÏÎÏÎÏÏÏÎÏÎÏ ÏÎÏ GNOME"
 
-#: C/accessibility-devel-guide.xml:75(phrase)
-msgid "Diagram of GNOME's accessibility architecture"
-msgstr "ÎÎÎÎÏÎÎÎÎ ÏÎÏ ÎÏÏÎÏÎÎÏÎÎÎÎÎÏ ÏÏÎÏÎÏÏÏÎÏÎÏ ÏÎÏ GNOME"
+#: C/index.docbook:70(figure/mediaobject)
+msgid ""
+"<imageobject> <imagedata fileref=\"figures/GNOME_desktop_Accessibility.png\" "
+"format=\"PNG\"/> </imageobject> <textobject> <phrase>Diagram of GNOME's "
+"accessibility architecture</phrase> </textobject>"
+msgstr ""
+"<imageobject> <imagedata fileref=\"figures/GNOME_desktop_Accessibility.png\" "
+"format=\"PNG\"/> </imageobject> <textobject> <phrase>ÎÎ ÎÎÎÎÏÎÎÎÎ "
+"ÎÏÏÎÏÎÎÏÎÎÎÎÎÏ ÏÎÏ ÏÏÎÏÎÏÏÏÎÏÎÏ GNOME</phrase> </textobject>"
 
-#: C/accessibility-devel-guide.xml:79(para)
+#: C/index.docbook:79(section/para)
 msgid ""
 "GNOME's built-in accessibility support means that applications created using "
 "stock GNOME widgets get support for assistive technologies \"for free\", "
@@ -659,7 +798,7 @@ msgstr ""
 "ÎÏÏÎÎÎÎÏÏÎÏÏ ÏÏÏÏÎÏÏ, ÎÎ ÎÏÎÎÎÎ ÎÏÏÎÎÏÎÎ ÏÎ ÏÏÎÎÏÎÏÏÎ ÎÎ ÎÏÏÎÎ ÏÎÎ "
 "ÎÎÏÏÎÎÏÏÎÎÎÎ ÏÏÎÏÏÎÏÎÎÎ."
 
-#: C/accessibility-devel-guide.xml:82(para)
+#: C/index.docbook:82(section/para)
 msgid ""
 "A gtk+/GNOME widget is accessible if its use follows the general "
 "accessibility guidelines elsewhere in this document, and it implements the "
@@ -678,7 +817,7 @@ msgstr ""
 "ÎÎ ÎÏÎÏ ÏÏÏÏÎ ÎÏÏ ÏÏÎÏÏÎÎÎÎÎÏ ÎÏÎÎÎÎÎÎÎÎÎÎÏ GTK+ Î GNOME ÎÎ ÎÎÎÏÎÎÎÎÎÏÎÏÎ "
 "ÎÏÎÏÎÏ ÏÎÎ ÏÏÎÏÏÎÏÎÎÎ ÏÏÎÏÎÏÏÏÎÏÎÏ."
 
-#: C/accessibility-devel-guide.xml:86(para)
+#: C/index.docbook:86(section/para)
 msgid ""
 "Though GNOME's built-in accessibility support provides significant "
 "functionality without any accessibility-specific code changes on the part of "
@@ -704,7 +843,7 @@ msgstr ""
 "ÎÏÎÎÎÎÏ ÎÏÎÎÎÎ ÎÎÎ ÏÏÎÏÏÎÏÎÎÎ ÏÏÎÏÎÏÏÏÎÏÎÏ</link> ÎÎÎ ÏÎÏÎÏÏÏÏÎÏÎÏ "
 "ÏÎÎÏÎÏÎÏÎÎÏ."
 
-#: C/accessibility-devel-guide.xml:89(para)
+#: C/index.docbook:89(section/para)
 msgid ""
 "If your application uses custom widgets, you may have to do some work to "
 "expose those widgets' properties to assistive technologies. See <link "
@@ -719,8 +858,7 @@ msgstr ""
 "linkend=\"gad-api-examples\">ÎÎÏÎÎÎÎÎÎÎÏÎ ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÏÎ ÏÎ API "
 "ÏÏÎÏÎÏÏÏÎÏÎÏ</link> ÎÎÎ ÏÎÏÎÏÏÏÏÎÏÎÏ ÏÎÎÏÎÏÎÏÎÎÏ."
 
-#: C/accessibility-devel-guide.xml:92(para)
-#: C/accessibility-devel-guide.xml:157(para)
+#: C/index.docbook:92(section/para) C/index.docbook:157(section/para)
 msgid ""
 "For additional, in-depth information regarding GTK/GTK+, see the <ulink url="
 "\"http://library.gnome.org/devel/gtk\";>GTK+ Reference Manual</ulink>, <ulink "
@@ -737,20 +875,20 @@ msgstr ""
 "tutorial/stable/\">ÎÎÏÎÎÏÎÎÎÎ GTK+ 2.0</ulink> ÎÎÎ ÏÎ ÎÏÎÏÎÎÎ <ulink url="
 "\"http://library.gnome.org/devel/gtk-faq/stable/\";>GTK+ FAQ</ulink>."
 
-#: C/accessibility-devel-guide.xml:98(title)
+#: C/index.docbook:98(section/title)
 msgid "Developer Quick Start"
 msgstr "ÎÏÎÎÎÏÎ ÎÎÎÎÎÎÏÎ ÎÎÎ ÏÏÎÎÏÎÎÎÎÏÎÏÏÎÏ"
 
-#: C/accessibility-devel-guide.xml:99(para)
+#: C/index.docbook:99(section/para)
 msgid "Here are some common starting points:"
 msgstr ""
 "ÎÎÏ ÏÎÏÎÏÏÎÎÎÎÎÏÎÎ ÎÎÏÎÎÎ ÏÏÎÎÎÎÏÎÎÎÎ ÎÎÎÎÏÎ ÏÎÏ ÏÏÎÏÎÎ ÎÎÎÎÎÏ ÎÎ ÎÎÏÏÎÎÎÎ:"
 
-#: C/accessibility-devel-guide.xml:104(title)
+#: C/index.docbook:104(section/title)
 msgid "How do I check to see if my application is accessible or not?"
 msgstr "ÎÏÏ ÎÏÎÏÏ ÎÎ ÎÎÎÎÎÏ ÎÎ Î ÎÏÎÏÎÎÎÎ ÎÎÏ ÎÎÎÎÎ ÏÏÎÏÎÏÎ Î ÏÏÎ;"
 
-#: C/accessibility-devel-guide.xml:105(para)
+#: C/index.docbook:105(section/para)
 msgid ""
 "To start right in, see <link linkend=\"gad-overview\">Making a GNOME "
 "Application Accessible - Overview</link>. For a pre-codng perspective, see "
@@ -769,11 +907,11 @@ msgstr ""
 "ÎÎÏÎ ÏÎÎ ÏÏÎÎÏÎÎÎÎÏÎÏÎÏ, ÎÎÎÏÎ <link linkend=\"gad-checklist\">ÎÎÏÏÎ ÎÎÎÎÏÎÏ "
 "ÎÎÎÏÎÏÎÏ ÎÏÎÏÏÎ</link>."
 
-#: C/accessibility-devel-guide.xml:111(title)
+#: C/index.docbook:111(section/title)
 msgid "What are the common pitfalls?"
 msgstr "ÎÎÎÎ ÎÎÎÎÎ ÏÎ ÏÏÎÎÎÎÏÎÎÎÎ ÎÎÎÎ;"
 
-#: C/accessibility-devel-guide.xml:112(para)
+#: C/index.docbook:112(section/para)
 msgid ""
 "The <link linkend=\"gad-checklist\">User Interface Checklist</link> covers "
 "all the areas that sometimes get overlooked in the design stage."
@@ -782,13 +920,13 @@ msgstr ""
 "ÎÎÎÏÏÏÎÎ ÏÎÎ ÏÎ ÎÎÎÎÏÎ ÏÎ ÎÏÎÎÎ ÎÎÏÎÎÎÏ ÏÎÏÎÏ ÏÎÏÎÎÎÎÏÎÎÏÎÎ ÏÏÎ ÏÏÎÎÎÎ ÏÎÏ "
 "ÏÏÎÎÎÎÏÎÎÏ."
 
-#: C/accessibility-devel-guide.xml:118(title)
+#: C/index.docbook:118(section/title)
 msgid "How do I do common ATK things?"
 msgstr ""
 "ÎÏÏ ÎÏÎÏÏ ÎÎ ÎÎÎÏ ÏÏÎÎÎÎÏÎÎÎÎ ÏÏÎÎÎÎÏÎ ÏÏÎÏÎÎÎ ÎÎ ÏÎÎ ÎÎÎ (Accessibility "
 "toolkit, ÎÏÎÎÎÎÎÎÎÎÎÎ ÏÏÎÏÎÏÏÏÎÏÎÏ);"
 
-#: C/accessibility-devel-guide.xml:119(para)
+#: C/index.docbook:119(section/para)
 msgid ""
 "An abbreviated listing of common ATK calls can be found <link linkend=\"gad-"
 "api\">here</link>."
@@ -796,11 +934,11 @@ msgstr ""
 "ÎÎÎ ÏÎÏÎÎÎÏÏÎÎÎ ÎÎÏÏÎ ÏÏÎÎÎÎÏÎÎÎÏÎ ÎÎÎÏÎÏÎ ATK ÎÏÎÏÎÎ ÎÎ ÎÏÎÎÎÎ <link "
 "linkend=\"gad-api\">ÎÎÏ</link>."
 
-#: C/accessibility-devel-guide.xml:125(title)
+#: C/index.docbook:125(section/title)
 msgid "How do I do more complex ATK things?"
 msgstr "ÎÏÏ ÎÏÎÏÏ ÎÎ ÎÎÎÏ ÏÎÏÎÏÏÏÏÎÏÎ ÏÎÎÏÏÎÎÎÎ ÏÏÎÎÎÎÏÎ ÏÏÎÏÎÎÎ ÎÎ ÏÎÎ ÎÎÎ;"
 
-#: C/accessibility-devel-guide.xml:126(para)
+#: C/index.docbook:126(section/para)
 msgid ""
 "See <link linkend=\"gad-custom\">Making Custom Components Accessible</link> "
 "and <link linkend=\"gad-api-examples\">Examples that Use the Accessibility "
@@ -811,11 +949,21 @@ msgstr ""
 "\">ÎÎÏÎÎÎÎÎÎÎ ÎÎÎ ÏÎ ÏÏÎÏÎ ÏÎÏ ÏÏÎÏÎÏÏÏÎÏÎÏ API</link> ÎÎÎ ÏÎÏÎÏÏÏÏÎÏÎÏ "
 "ÏÎÎÏÎÏÎÏÎÎÏ."
 
-#: C/accessibility-devel-guide.xml:132(title)
+#: C/index.docbook:132(section/title)
 msgid "Introducing ATK, AT-SPI, GAIL and GTK+"
 msgstr "ÎÎÏÎÏÏÎÎÎÎÎÏÎÏ ÏÎ ATK, AT-SPI, GAIL ÎÎÎ GTK+"
 
-#: C/accessibility-devel-guide.xml:145(para)
+#: C/index.docbook:134(screenshot/mediaobject)
+msgid ""
+"<imageobject> <imagedata fileref=\"figures/gaa.jpg\"/> </imageobject> "
+"<textobject> <phrase> GNOME Accessibility Architecture </phrase> </"
+"textobject>"
+msgstr ""
+"<imageobject> <imagedata fileref=\"figures/gaa.jpg\"/> </imageobject> "
+"<textobject> <phrase> ÎÏÏÎÏÎÎÏÎÎÎÎÎ ÏÏÎÏÎÏÏÏÎÏÎÏ GNOME </phrase> </"
+"textobject>"
+
+#: C/index.docbook:145(section/para)
 msgid ""
 "ATK is the toolkit that GNOME uses to enable accessibility for users needing "
 "extra support to make the most of their computers. ATK is used by tools such "
@@ -836,7 +984,7 @@ msgstr ""
 "ÏÏÎ SourceForge</ulink> ÎÎÎ  <ulink url=\"http://library.gnome.org/devel/atk/";
 "stable/atk.html\">ÏÎ ÎÎÎÎÎÎÎÎÎÎ ATK</ulink> ÎÎÎ ÏÎÏÎÏÏÏÏÎÏÎÏ ÏÎÎÏÎÏÎÏÎÎÏ."
 
-#: C/accessibility-devel-guide.xml:148(para)
+#: C/index.docbook:148(section/para)
 msgid ""
 "AT-SPI is the primary service interface by which assistive technologies "
 "query and receive notifications from running applications. The full API can "
@@ -852,7 +1000,7 @@ msgstr ""
 "ÎÏÏ <ulink url=\"http://accessibility.kde.org/developer/atk.php#coreclasses";
 "\"> ÏÎÎ ÎÎÎÎÏÏÎÏÎ ÎÎÎÏÏÏÎÎÏ ÏÎÏ ÎÏÎÏÎÏÏÏÎÏÎÏ ÏÎÏ KDE</ulink>."
 
-#: C/accessibility-devel-guide.xml:151(para)
+#: C/index.docbook:151(section/para)
 msgid ""
 "GAIL (GNOME Accessibility Implementation Library) is an implementation of "
 "the accessibility interfaces defined by ATK. GTK is a toolkit which is "
@@ -875,7 +1023,7 @@ msgstr ""
 "<ulink url=\"http://library.gnome.org/devel/gail-libgail-util/stable/\";> "
 "ÏÎÎÏÎÏ ÎÎÏÎÎÏÎÎÎÎ ÏÎÏ GAIL</ulink>."
 
-#: C/accessibility-devel-guide.xml:154(para)
+#: C/index.docbook:154(section/para)
 msgid ""
 "GTK+ is a library for creating graphical user interfaces. It works on many "
 "UNIX-like platforms, Windows, and on framebuffer devices. GTK+ is released "
@@ -895,11 +1043,11 @@ msgstr ""
 "ÏÏÎÏÎÏÎÎÎÎÎÎÏÎÎÎÎÏÎ ÏÏÎ C++, Objective-C, Guile/Scheme, Perl, Python, TOM, "
 "Ada95, Free Pascal, ÎÎÎ Eiffel."
 
-#: C/accessibility-devel-guide.xml:164(title)
+#: C/index.docbook:164(section/title)
 msgid "Making a GNOME Application Accessible - Overview"
 msgstr "ÎÎÎÎÎÏÎÏ ÎÎÎ ÎÏÎÏÎÎÎÎ GNOME ÎÏÎÏÎÏÎ - ÎÎÎÎÎÎ"
 
-#: C/accessibility-devel-guide.xml:165(para)
+#: C/index.docbook:165(section/para)
 msgid ""
 "If your application only uses standard GTK widgets, you will probably have "
 "to do little or nothing to make your application (reasonably) accessible. "
@@ -914,7 +1062,7 @@ msgstr ""
 "ÏÏÏÏÎÏÎÏÎÎÎÎ ÎÎ ÎÏÏÎ, ÏÏÏÏ ÎÏÎÏÎÎÎ ÎÎÏÎÏÎÎ Î ÎÎÎÎÎÎÏÎÏ ÎÎÏÎÏÏÎÏÎÏ (status "
 "indicators) ÏÎ ÎÏÎÎÎ ÎÎÎ ÎÏÎÏÎ ÎÏÎÎÎÏÎÏ Î ÎÎÎÎÎÎÏÎÎÎ ÎÎÎÎÎÎÎÏÎ (tooltip)."
 
-#: C/accessibility-devel-guide.xml:168(para)
+#: C/index.docbook:168(section/para)
 msgid ""
 "You can probably also improve on the default descriptions provided for some "
 "of the widgets, and tailor them to that widget's specific purpose in your "
@@ -934,7 +1082,7 @@ msgstr ""
 "ÎÏÎÎÎÎÏÎÎÎÏÎÏ ÎÎÎ ÏÏÎÏÏÎÏÎÎÎ ÏÏÎÏÎÏÏÏÎÏÎÏ</link> ÎÎÎ ÏÎÏÎÏÏÏÏÎÏÎÏ "
 "ÏÎÎÏÎÏÎÏÎÎÏ."
 
-#: C/accessibility-devel-guide.xml:171(para)
+#: C/index.docbook:171(section/para)
 msgid ""
 "If your application uses custom widgets, you may have to do some work to "
 "expose those widgets' properties to assistive technologies. See <link "
@@ -956,12 +1104,12 @@ msgstr ""
 "accessible/start.html\">\"ÎÎÎÎÎÏÏÎÎÎ ÏÏÎÏÎÏÏÎ ÎÏÎÏÎÎÎÏÎ ÎÎÎ ÏÎ GNOME\".</"
 "ulink>"
 
-#: C/accessibility-devel-guide.xml:177(title)
+#: C/index.docbook:177(section/title)
 msgid "Coding Guidelines for Supporting Accessibility"
 msgstr ""
 "ÎÎÎÎÎÎÏ ÎÎÎ ÏÎÎ ÏÏÎÎÏÎÎÎÎÏÎÏÎÏ ÏÎ ÏÏÎÏÎ ÎÎ ÏÎÎ ÏÏÎÏÏÎÏÎÎÎ ÏÎÏ ÏÏÎÏÎÏÏÏÎÏÎÏ"
 
-#: C/accessibility-devel-guide.xml:178(para)
+#: C/index.docbook:178(section/para)
 msgid ""
 "Here are some things you can do in your code to make your program work as "
 "well as possible with assistive technologies. (You can find a list of things "
@@ -976,7 +1124,7 @@ msgstr ""
 "linkend=\"gad-ui-guidelines\">ÎÎÎÎÎÎÏ ÎÎÎÏÎÏÎÏ ÏÏÎÏÏÎ ÎÎÎ ÏÏÎÏÏÎÏÎÎÎÏ "
 "ÏÏÎÏÎÏÏÏÎÏÎÏ</link> ÏÎÎ ÎÎÏÏ ÏÎ ÎÏÏÏ ÏÎ ÎÎÎÏÎÏÎ):"
 
-#: C/accessibility-devel-guide.xml:183(para)
+#: C/index.docbook:183(listitem/para)
 msgid ""
 "For components that don't display a short string (such as a graphical "
 "button), specify a name for it with <function>atk_object_set_name()</"
@@ -989,7 +1137,7 @@ msgstr ""
 "ÎÎÎÎÏÎ ÎÎÎ ÎÎÏÎÏÎÎ ÎÎ ÎÎÎÏÎÎÏ, ÎÎÎ ÏÎÎÎÏÎÎ ÏÎÏ ÏÎÏÎÏÎÏÎ ÎÎÎÎÎÎÏ ÎÎÎÎÎÏ, ÎÎÎ "
 "ÏÎÏÎÎÏÎÏ ÎÎÎÎÎÎÎÏ, ÎÎÎ."
 
-#: C/accessibility-devel-guide.xml:188(para)
+#: C/index.docbook:188(listitem/para)
 msgid ""
 "If you can't provide a tooltip for a component, use "
 "<function>atk_object_set_description()</function> instead to provide a "
@@ -1003,11 +1151,11 @@ msgstr ""
 "ÏÏÎÏÎÏÎ ÏÎÏÎÎÏÎÏÎ ÎÎÎ ÎÎÎ ÎÎÏÎÏÎ <guibutton>ÎÎÎÎÏÎÎÎ</guibutton> ÎÏÎÏÎÏÏÏÎ "
 "ÏÎ ÎÎÎÏ:"
 
-#: C/accessibility-devel-guide.xml:192(title)
+#: C/index.docbook:192(example/title)
 msgid "Providing an accessible description for a GtkButton"
 msgstr "ÎÎÏÎÏÎÎÏÎÏ ÎÎÎ ÏÏÎÏÎÏÎ ÏÎÏÎÎÏÎÏÎ ÎÎÎ ÎÎÎ GtkButton"
 
-#: C/accessibility-devel-guide.xml:193(programlisting)
+#: C/index.docbook:193(example/programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -1024,7 +1172,7 @@ msgstr ""
 "  atk_object_set_description(obj,_(\"ÎÎÎÎÎÎÎ ÏÎ ÏÎÏÎÎÏÏÎ\"));\n"
 "}\n"
 
-#: C/accessibility-devel-guide.xml:203(para)
+#: C/index.docbook:203(listitem/para)
 msgid ""
 "Use <function>atk_image_set_description()</function> to provide a text "
 "description for all images and icons in your program."
@@ -1033,14 +1181,14 @@ msgstr ""
 "ÎÏÏÎÏÎ ÎÎÎ ÏÎÏÎÎÏÎÏÎ ÎÎÎÎÎÎÎÏ ÎÎÎ ÏÎÎÏ ÏÎÏ ÎÎÎÏÎÎÏ ÎÎÎ ÏÎ ÎÎÎÎÎÎÎÎÎ ÏÎÏ "
 "ÏÏÎÎÏÎÎÎÎÏÏÏ ÏÎÏ."
 
-#: C/accessibility-devel-guide.xml:208(para)
+#: C/index.docbook:208(listitem/para)
 msgid ""
 "If several components form a logical group, try to put them in one container."
 msgstr ""
 "ÎÎ ÎÎÏÎÎÎ ÎÏÏ ÏÎ ÏÏÎÎÏÎÎÎ ÎÎÎÏ ÎÎÎÎÎÎÏ ÎÎÎÎÎÏ, ÏÏÎÏÏÎÎÎÏÏÎ ÎÎ ÏÎ ÎÎÎÎÏÎ ÏÎ "
 "ÎÎÎ ÏÎÎÎÎÎ."
 
-#: C/accessibility-devel-guide.xml:213(para)
+#: C/index.docbook:213(listitem/para)
 msgid ""
 "Whenever you have a label that describes another component, use "
 "<function>atk_relation_set_add_relation()</function> so that assistive "
@@ -1058,11 +1206,11 @@ msgstr ""
 "ÏÏÏÎ Î ÏÏÏÏÎÏÎÏÎÏÏ <constant>ATK_RELATION_LABEL_FOR</constant> ÎÎÎÎÎÏÏÎÎÎÏÎÎ "
 "ÎÏÏÏÎÎÏÎ, ÎÏÏÎ Î ÎÏÎÎÎÎÏ ÏÎÏ ÎÎÎÎÎÏÎÎÎ ÎÎÎ ÎÎÎÎÎ ÎÏÎÏÎÎÏÎÏÎÏ):"
 
-#: C/accessibility-devel-guide.xml:217(title)
+#: C/index.docbook:217(example/title)
 msgid "Relating a GtkLabel to a GtkWidget"
 msgstr "ÎÏÏÏÎÏÎÎÎÎÏÎÏ ÎÎÎ ÎÏÎÎÎÏÎ GtkLabel ÎÎ ÎÎÎ GtkWidget"
 
-#: C/accessibility-devel-guide.xml:218(programlisting)
+#: C/index.docbook:218(example/programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -1107,7 +1255,7 @@ msgstr ""
 "  g_object_unref(G_OBJECT(relation));\n"
 "}\n"
 
-#: C/accessibility-devel-guide.xml:242(para)
+#: C/index.docbook:242(listitem/para)
 msgid ""
 "If you create a custom widget, make sure it supports accessibility. Custom "
 "components that are descendants of other GTK widgets should override "
@@ -1121,7 +1269,7 @@ msgstr ""
 "ÎÎÎÏÎ ÏÎÎ ÎÎÏÏÎÏÎ <link linkend=\"gad-custom\">ÎÎÎÎÎÏÏÎÎÎ ÏÏÎÏÎÏÏÎ "
 "ÏÏÎÏÎÏÎÎÏÎÎÎÏÎ ÏÎÏÎÎÏÎÎÎÎÏÎ</link>."
 
-#: C/accessibility-devel-guide.xml:247(para)
+#: C/index.docbook:247(listitem/para)
 msgid ""
 "Don't break what you get for free! If your GUI has an inaccessible "
 "container, any components inside that container may become inaccessible."
@@ -1130,11 +1278,11 @@ msgstr ""
 "ÏÏÎÎÏÎÎÎ ÏÎÏ ÎÎÎ ÎÎÎÎÎ ÏÏÎÏÎÏÏ, ÎÏÎÎÎÎÎÏÎÏÎ ÏÎÏÎÎÏÏÎÎÎÎ ÎÎÏÎ ÏÎ ÎÏÏÏ ÏÎ "
 "ÏÏÎÎÏÎÎÎ ÎÎÎÎÏÎÎÎÎÏÏ ÎÎÎÎÏÎ ÎÎ ÏÏÎÏÎÏÎ ÎÏÎÏÎÏ."
 
-#: C/accessibility-devel-guide.xml:255(title)
+#: C/index.docbook:255(section/title)
 msgid "The Accessibility API"
 msgstr "Î ÏÏÎÏÎÏÏÏÎÏÎ API"
 
-#: C/accessibility-devel-guide.xml:256(para)
+#: C/index.docbook:256(section/para)
 msgid ""
 "Here are a few of the basic API calls you may need to use in your "
 "application to ensure it works well with assistive technologies. The full "
@@ -1147,23 +1295,23 @@ msgstr ""
 "ÏÎÏ ÎÏÎÏÏÎÏÎÎ ÎÎ ÏÏÎÎÎÏÎÏÎ ÏÎ ÎÎÎÎ ÏÎÏ ÏÏÎÏÎÏÎ ÏÏÎÏÎÏÎÎÏÎÎÎÎ ÎÏÎÏÎÎÎ "
 "ÏÏÏÏÎÏÎÎÎ, ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ."
 
-#: C/accessibility-devel-guide.xml:260(title)
+#: C/index.docbook:260(table/title)
 msgid "Commonly used ATK API calls"
-msgstr "ÎÎ ÏÎÎ ÎÎÎÎÏÎÎÎÎÏ ATK API"
+msgstr "ÎÎ ÏÎÎ ÎÎÎÎÏÎÎÎÎÏ ÎÎÎÏÎÎÏ ÏÎÏ ATK API"
 
-#: C/accessibility-devel-guide.xml:264(entry)
+#: C/index.docbook:264(row/entry)
 msgid "API"
 msgstr "API"
 
-#: C/accessibility-devel-guide.xml:265(entry)
+#: C/index.docbook:265(row/entry)
 msgid "Description"
 msgstr "ÎÎÏÎÎÏÎÏÎ"
 
-#: C/accessibility-devel-guide.xml:272(function)
-msgid "AtkObject* gtk_widget_get_accessible (GtkWidget*)"
-msgstr "AtkObject* gtk_widget_get_accessible (GtkWidget*)"
+#: C/index.docbook:271(entry/para)
+msgid "<function>AtkObject* gtk_widget_get_accessible (GtkWidget*)</function>"
+msgstr "<function>AtkObject* gtk_widget_get_accessible (GtkWidget*)</function>"
 
-#: C/accessibility-devel-guide.xml:276(para)
+#: C/index.docbook:276(entry/para)
 msgid ""
 "Returns the accessible object that describes the specified GTK widget to an "
 "assistive technology."
@@ -1171,11 +1319,13 @@ msgstr ""
 "ÎÏÎÏÏÏÎÏÎÎ ÏÎ ÏÏÎÏÎÏÏ ÎÎÏÎÎÎÎÎÎÎÎ ÏÎÏ ÏÎÏÎÎÏÎÏÎÎ ÏÎ ÎÎÎÎÏÎÏÎÎÎÎ ÎÏÎÏÎÎÏ "
 "ÏÏÏÏÎÏÎÎÏ GTK ÏÎ ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ ÏÏÎÎÎÎÎÎÏÎÏ."
 
-#: C/accessibility-devel-guide.xml:284(function)
-msgid "void atk_object_set_name (AtkObject*, const gchar*)"
-msgstr "void atk_object_set_name (AtkObject*, const gchar*)"
+#: C/index.docbook:283(entry/para)
+msgid ""
+"<function>void atk_object_set_name (AtkObject*, const gchar*)</function>"
+msgstr ""
+"<function>void atk_object_set_name (AtkObject*, const gchar*)</function>"
 
-#: C/accessibility-devel-guide.xml:288(para)
+#: C/index.docbook:288(entry/para)
 msgid ""
 "Sets the name of the accessible object. For example, if the object is a "
 "graphical button that quits the application when pressed, the name might be "
@@ -1185,11 +1335,15 @@ msgstr ""
 "ÎÎÏÎÎÎÎÎÎÎÎ ÎÎÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÎÎÏÎÏÎ ÏÎÏ ÏÎÏÎÎÏÎÎÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ ÏÏÎÎ ÏÎ "
 "ÏÎÎÏÎÏÎ, ÏÎ ÏÎÎÎÎ ÎÎÎÎÏÎÎÎÎÏÏ ÎÎ ÎÎÎÎÎ \"ÎÎÏÎÎÏÎÏÎÏÏ\"."
 
-#: C/accessibility-devel-guide.xml:296(function)
-msgid "void atk_object_set_description (AtkObject*, const gchar*)"
-msgstr "void atk_object_set_description (AtkObject*, const gchar*)"
+#: C/index.docbook:295(entry/para)
+msgid ""
+"<function>void atk_object_set_description (AtkObject*, const gchar*)</"
+"function>"
+msgstr ""
+"<function>void atk_object_set_description (AtkObject*, const gchar*)</"
+"function>"
 
-#: C/accessibility-devel-guide.xml:300(para)
+#: C/index.docbook:300(entry/para)
 msgid ""
 "Sets the textual description of the accessible object. For example, if the "
 "object is a graphical \"Close\" button, the description might be \"Closes "
@@ -1199,11 +1353,15 @@ msgstr ""
 "ÎÎ ÏÎ ÎÎÏÎÎÎÎÎÎÎÎ ÎÎÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÎÎÏÎÏÎ ÎÎ ÏÎÎÎÎ \"ÎÎÎÎÏÎÎÎ\", Î "
 "ÏÎÏÎÎÏÎÏÎ ÎÎÎÎÏÎÎÎÎÏÏ ÎÎ ÎÎÎÎÎ \"ÎÎÎÎÎÎÎ ÏÎ ÏÎÏÎÎÏÏÎ\"."
 
-#: C/accessibility-devel-guide.xml:308(function)
-msgid "AtkRelation* atk_relation_new (AtkObject**, gint, AtkRelationType)"
-msgstr "AtkRelation* atk_relation_new (AtkObject**, gint, AtkRelationType)"
+#: C/index.docbook:307(entry/para)
+msgid ""
+"<function>AtkRelation* atk_relation_new (AtkObject**, gint, AtkRelationType)"
+"</function>"
+msgstr ""
+"<function>AtkRelation* atk_relation_new (AtkObject**, gint, AtkRelationType)"
+"</function>"
 
-#: C/accessibility-devel-guide.xml:312(para)
+#: C/index.docbook:312(entry/para)
 msgid ""
 "Creates a new relation between the specified key and the specified list of "
 "target objects. A relationship normally indicates to the assistive "
@@ -1217,11 +1375,13 @@ msgstr ""
 "ÏÏÎÏÎ ÎÎÏÎÎÏ ÏÏÎ ÎÏÎÏÎÎÏÎ ÏÏÏÏÎÏÎÎÏÎ. ÎÎÎ ÏÎÏÎÏÎÎÎÎÎ, ÎÎÎ ÎÎÎÎÎÏ ÎÏÎÏÎÎÏ "
 "ÏÏÏÏÎÏÎÎÏ DtkLabel ÎÎÎÎÎ Î ÎÎÎÎÎÏÎ ÎÎÎ ÎÎÎ GtkTreeView ÏÏÎ ÎÎÎÎ ÏÎÏÎÎÏÏÎ."
 
-#: C/accessibility-devel-guide.xml:320(function)
-msgid "void atk_image_set_description (AtkImage*, const gchar*)"
-msgstr "void atk_image_set_description (AtkImage*, const gchar*)"
+#: C/index.docbook:319(entry/para)
+msgid ""
+"<function>void atk_image_set_description (AtkImage*, const gchar*)</function>"
+msgstr ""
+"<function>void atk_image_set_description (AtkImage*, const gchar*)</function>"
 
-#: C/accessibility-devel-guide.xml:324(para)
+#: C/index.docbook:324(entry/para)
 msgid ""
 "Sets the textual description of the accessible image object. For example, if "
 "the object is a thumbnail of a virtual desktop in a panel applet, the "
@@ -1233,11 +1393,11 @@ msgstr ""
 "ÎÎ ÎÎÎÎÎ  \"ÎÎÎÏÎÎ ÏÎÏ ÎÎÎÏÎÎÎ ÏÎ ÎÎÎÏÎÎÎ ÏÏÎ ÏÎÏÎÎÏÏÏÎ ÏÏÎÎ ÎÏÎÏÎÎÎÎÎ "
 "ÎÏÎÎÏÎÎÏ 1\"."
 
-#: C/accessibility-devel-guide.xml:335(title)
+#: C/index.docbook:335(section/title)
 msgid "Examples that Use the Accessibility API"
 msgstr "ÎÎÏÎÎÎÎÎÎÎ ÎÎÎ ÏÎ ÏÏÎÏÎ ÏÎÏ ÏÏÎÏÎÏÏÏÎÏÎÏ API"
 
-#: C/accessibility-devel-guide.xml:336(para)
+#: C/index.docbook:336(section/para)
 msgid ""
 "As noted earlier, you should have little or no work to do to make your "
 "application accessible if you use the GTK widget set, or any other widget "
@@ -1250,7 +1410,7 @@ msgstr ""
 "ATK. ÎÎ ÎÏÎ ÏÎÎ ÎÎÎÎÎ ÏÏÎÎÎÎÏÎ ÏÎÏ ÎÏÏÏ ÏÏÎÎÎÏÏÎÎ ÎÎ ÎÎÎÎÏÎ ÏÎ ÎÏÏÎÏ ÏÎÏ "
 "ÏÎÏÎÏÏÏÏÎÎÏ ÎÎÎÎÎ: "
 
-#: C/accessibility-devel-guide.xml:341(para)
+#: C/index.docbook:341(listitem/para)
 msgid ""
 "provide descriptions of some controls and images using "
 "<function>atk_object_set_description()</function> or "
@@ -1260,11 +1420,11 @@ msgstr ""
 "ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎÎ <function>atk_object_set_description()</function> Î ÏÎÎ "
 "<function>atk_image_set_description():</function>"
 
-#: C/accessibility-devel-guide.xml:345(title)
+#: C/index.docbook:345(example/title)
 msgid "Setting the accessible description for a button"
 msgstr "ÎÎÎÎÏÎÏÎÏÏ ÏÎÏ ÏÏÎÏÎÏÎÏ ÏÎÏÎÎÏÎÏÎÏ ÎÎÎ ÎÎÎ ÎÎÏÎÏÎ"
 
-#: C/accessibility-devel-guide.xml:346(programlisting)
+#: C/index.docbook:346(example/programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -1281,7 +1441,7 @@ msgstr ""
 "   atk_object_set_description(obj,_(\"ÎÎÎÎÎÎÎ ÏÎ ÏÎÏÎÎÏÏÎ ÎÏÎÏÎÎÎÏÎÎÏ\"));\n"
 "}\n"
 
-#: C/accessibility-devel-guide.xml:358(para)
+#: C/index.docbook:358(listitem/para)
 msgid ""
 "Specify relationships between any unusual groupings of widgets using "
 "<function>atk_relation_new()</function> and <function>atk_relation_set_add()"
@@ -1291,12 +1451,12 @@ msgstr ""
 "ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎÏ <function>atk_relation_new()</function> ÎÎÎ "
 "<function>atk_relation_set_add()</function>:"
 
-#: C/accessibility-devel-guide.xml:362(title)
+#: C/index.docbook:362(example/title)
 msgid "Specifying accessible relationship between two controls"
 msgstr ""
 "ÎÎÎÎÏÎÏÎÏÏ ÏÏÎÏÎÏÏÎ ÏÏÏÏÎÏÎÏÎÏÎ ÎÎÎÎÎÏÎ ÏÎ ÎÏÎ ÏÏÎÎÏÎÎÎ ÎÎÎÎÏÎÏ (controls)"
 
-#: C/accessibility-devel-guide.xml:363(programlisting)
+#: C/index.docbook:363(example/programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -1341,7 +1501,7 @@ msgstr ""
 "  g_object_unref(G_OBJECT(relation));\n"
 "}\n"
 
-#: C/accessibility-devel-guide.xml:387(para)
+#: C/index.docbook:387(section/para)
 msgid ""
 "The examples in the rest of this section are mostly to give you a flavor of "
 "the scope of the ATK. They cover techniques that you may never need to use "
@@ -1362,11 +1522,11 @@ msgstr ""
 "\"ftp://ftp.gnome.org/pub/GNOME/sources/gail/\";>ÏÎÎÎÎÎÏ ÎÏÎÎÎÎÏ GAIL</ulink> "
 "ÏÎÏÎÏÎÏÎÎ ÏÏ ÎÎÎ ÎÎÎÎÏÎÏÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ ÎÎÎÎÎÎÎÎÏÎÎÎÎ ÏÏÎÏÎ ÏÎÏ ATK."
 
-#: C/accessibility-devel-guide.xml:392(title)
+#: C/index.docbook:392(section/title)
 msgid "Gtk Modules"
 msgstr "ÎÏÎÏÏÎÎÏÎ Gtk"
 
-#: C/accessibility-devel-guide.xml:393(para)
+#: C/index.docbook:393(section/para)
 msgid ""
 "Programs that make use of GAIL (the accessibility implementation library for "
 "GTK widgets) are written as GTK modules. GTK modules are loaded into the "
@@ -1381,22 +1541,21 @@ msgstr ""
 "ÏÎÏ ÎÎÎÎÎÎÎÎÎÎÏ ÎÏÎÏÏÎÎÏÏÎ. ÎÎ ÏÏÎÏÏÎÎÏÎÎ ÏÎÎÎÎÏÎÎÏ ÎÎÎÎÎÎÎÎÎÏ ÎÏÎÏÏÎÎÏÏÎ, "
 "ÎÎÎÏÏÏÎÏÏÎ ÏÎÏ ÎÎ ÎÎÏ-ÎÎÏÏ ÏÎÎÎÎÎ. ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ:"
 
-#: C/accessibility-devel-guide.xml:397(userinput)
-#, no-wrap
-msgid "setenv GTK_MODULES \"libgail:libtestprops\""
-msgstr "setenv GTK_MODULES \"libgail:libtestprops\""
+#: C/index.docbook:396(section/para)
+msgid "<userinput>setenv GTK_MODULES \"libgail:libtestprops\"</userinput>"
+msgstr "<userinput>setenv GTK_MODULES \"libgail:libtestprops\"</userinput>"
 
-#: C/accessibility-devel-guide.xml:399(para)
+#: C/index.docbook:399(section/para)
 msgid "All GTK modules have a <function>gtk_module_init()</function> function."
 msgstr ""
 "ÎÎÎ ÏÎ ÎÏÎÏÏÎÎÏÎ GTK ÎÏÎÏÎ ÎÎÎ ÏÏÎÎÏÏÎÏÎ <function>gtk_module_init()</"
 "function>."
 
-#: C/accessibility-devel-guide.xml:405(title)
+#: C/index.docbook:405(section/title)
 msgid "Gathering accessibility information from an application"
 msgstr "ÎÏÎÎÎÎÏÏÏÎÎÎÏÎÏ ÏÎÎÏÎÏÎÏÎÎÏ ÏÏÎÏÎÏÏÏÎÏÎÏ ÎÏÏ ÎÎÎ ÎÏÎÏÎÎÎÎ"
 
-#: C/accessibility-devel-guide.xml:406(para)
+#: C/index.docbook:406(section/para)
 msgid ""
 "A program that wishes to make use of ATK calls would likely need to do one "
 "(or more) of the following things:"
@@ -1404,7 +1563,7 @@ msgstr ""
 "ÎÎÎ ÏÏÏÎÏÎÎÎÎ ÏÎ ÎÏÎÎÎ ÎÎÎÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÏÎÏ ÎÎÎÏÎÎÏ ATK ÎÎ ÏÏÎÏÎÎ "
 "ÎÎÏÎ ÏÏÎÏÎÎÎÏÎ ÎÎ ÎÎÎÎÎ ÎÎÎ (Î ÏÎÏÎÏÏÏÏÎÏÎ) ÎÏÏ ÏÎ ÏÎÏÎÎÎÏÏ:"
 
-#: C/accessibility-devel-guide.xml:411(para)
+#: C/index.docbook:411(listitem/para)
 msgid ""
 "Create an event watcher, for example with the <function>atk_add_focus_tracker"
 "()</function> function:"
@@ -1412,12 +1571,12 @@ msgstr ""
 "ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ event watcher, ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ ÎÎ ÏÎÎ ÏÏÎÎÏÏÎÏÎ "
 "<function>atk_add_focus_tracker()</function> :"
 
-#: C/accessibility-devel-guide.xml:414(programlisting)
+#: C/index.docbook:414(listitem/programlisting)
 #, no-wrap
 msgid "atk_add_focus_tracker (_my_focus_tracker);"
 msgstr "atk_add_focus_tracker (_my_focus_tracker);"
 
-#: C/accessibility-devel-guide.xml:415(para)
+#: C/index.docbook:415(listitem/para)
 msgid ""
 "where <function>_my_focus_tracker()</function> is a function with this "
 "prototype:"
@@ -1425,18 +1584,18 @@ msgstr ""
 "ÏÏÎÏ Î <function>_my_focus_tracker()</function> ÎÎÎÎÎ ÎÎÎ ÏÏÎÎÏÏÎÏÎ ÎÎ ÎÏÏÏÎ "
 "ÏÎÎ ÏÏÏÎ:"
 
-#: C/accessibility-devel-guide.xml:418(programlisting)
+#: C/index.docbook:418(listitem/programlisting)
 #, no-wrap
 msgid "void _my_focus_tracker (AtkObject *aobject);"
 msgstr "void _my_focus_tracker (AtkObject *aobject);"
 
-#: C/accessibility-devel-guide.xml:421(para)
+#: C/index.docbook:421(listitem/para)
 msgid "Set up a global event listener, with atk_add_global_event_listener():"
 msgstr ""
 "ÎÎ ÎÎÎÎÏÎÏÎÎ ÎÎÎÎ ÎÎÎÎÎÎÎÏ event listener, ÎÎ atk_add_global_event_listener"
 "():"
 
-#: C/accessibility-devel-guide.xml:424(programlisting)
+#: C/index.docbook:424(listitem/programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -1445,7 +1604,7 @@ msgstr ""
 "\n"
 "mouse_watcher_focus_id =   atk_add_global_event_listener(_my_global_listener,\"Gtk:GtkWidget:enter_notify_event\");\n"
 
-#: C/accessibility-devel-guide.xml:427(para)
+#: C/index.docbook:427(listitem/para)
 msgid ""
 "where <function>_my_global_listener</function> has the prototype of a Glib "
 "<type>GSignalEmissionHook</type>. This example would cause the "
@@ -1458,18 +1617,18 @@ msgstr ""
 "ÏÎÏ ÏÏÎÎÎÎÎÎÎ ÎÎÎ ÏÎÎÎ enter_notify_even ÏÎ ÎÎÎ <type>GtkWidget</type> "
 "ÎÎÏÎÎÎÎÎÎÎÎ."
 
-#: C/accessibility-devel-guide.xml:432(para)
+#: C/index.docbook:432(listitem/para)
 msgid "Access the ATK top-level object with the following function call."
 msgstr ""
 "ÎÏÎÎÏÎÏÏÎ ÏÏÏÏÎÎÏÎ ÏÏÎ ÎÎÏÎÎÎÎÎÎÎÎ ÎÎÏÏÎÏÎÏ ÎÏÎÏÎÎÎÏ ÏÏÏÎÏ ATK ÎÎ ÏÎ ÏÏÎÏÎ "
 "ÏÎÏ ÎÎÏÎÎÏÎÎÏ ÏÏÎÎÏÏÎÏÎÏ."
 
-#: C/accessibility-devel-guide.xml:435(programlisting)
+#: C/index.docbook:435(listitem/programlisting)
 #, no-wrap
 msgid "AtkObject *root_obj = atk_get_root();"
 msgstr "AtkObject *root_obj = atk_get_root();"
 
-#: C/accessibility-devel-guide.xml:436(para)
+#: C/index.docbook:436(listitem/para)
 msgid ""
 "This returns an <type>AtkObject</type> which contains all toplevel windows "
 "in the currently running program. The user could then navigate through the "
@@ -1482,11 +1641,11 @@ msgstr ""
 "ÏÏÏÏÎÎÏÎ ÏÏÎÏÏ ÎÏÎÎÏÏÎÎÎÏÏ ÎÎÏÎÎÏÎÎÏÏ ÏÏÎ ÎÎÏÎÎÎÎÎÎÎÏÎ ÏÎÏ ÏÎÎÎÎÎÏ "
 "ÎÎÏÎÎÏÎÎÏ, ÏÎ ÎÏÎÎÎ ÎÎÏÎÏÏÎÎÏÎÎ ÏÎ ÏÎÏÎÎÏÏÎ ÎÎÏÏÎÏÎÏ ÎÏÎÏÎÎÎÏ."
 
-#: C/accessibility-devel-guide.xml:444(title)
+#: C/index.docbook:444(section/title)
 msgid "Querying an <type>AtkObject</type>'s Interfaces"
 msgstr "ÎÎÎÎÎÏÏÎÎÎ ÎÎÏÎÏÎÏÎ ÏÎ ÎÎÎÏÎÏÎÏ <type>AtkObject</type>"
 
-#: C/accessibility-devel-guide.xml:445(para)
+#: C/index.docbook:445(section/para)
 msgid ""
 "Having located the <type>AtkObject</type> associated with an object in the "
 "application (e.g. by using <function>gtk_widget_get_accessible()</"
@@ -1497,25 +1656,25 @@ msgstr ""
 "<function>gtk_widget_get_accessible()</function>), ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÎÎÎÏÏÎÏÎ "
 "ÏÎÏ ÎÎÎÏÎÏÎÏ ÏÎÏ ÎÏÏÏ ÎÎÏÎÎÎÎ ÎÎ ÎÎÎÏÎÏÎÏÏ ÏÏÏÏÎÏÏ:"
 
-#: C/accessibility-devel-guide.xml:450(para)
+#: C/index.docbook:450(listitem/para)
 msgid "Use the supplied <function>ATK_IS_...</function> macros, for example:"
 msgstr ""
 "ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ ÏÎÏ ÎÎÎÏÎÎÎÏÎÎÎÏ <function>ATK_IS_...</function> ÏÎÏ "
 "ÏÎÏÎÏÎÎÏÎÎ, ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ:"
 
-#: C/accessibility-devel-guide.xml:456(function)
-msgid "ATK_IS_ACTION(atkobj)"
-msgstr "ATK_IS_ACTION(atkobj)"
+#: C/index.docbook:455(listitem/para)
+msgid "<function>ATK_IS_ACTION(atkobj)</function>"
+msgstr "<function>ATK_IS_ACTION(atkobj)</function>"
 
-#: C/accessibility-devel-guide.xml:461(function)
-msgid "ATK_IS_COMPONENT(atkobj)"
-msgstr "ATK_IS_COMPONENT(atkobj)"
+#: C/index.docbook:460(listitem/para)
+msgid "<function>ATK_IS_COMPONENT(atkobj)</function>"
+msgstr "<function>ATK_IS_COMPONENT(atkobj)</function>"
 
-#: C/accessibility-devel-guide.xml:465(para)
+#: C/index.docbook:465(listitem/para)
 msgid "etc. (there is one for each interface)"
 msgstr "ÎÎÏ. (ÏÏÎÏÏÎÎ ÎÎÎ ÎÎÎ ÎÎÎÎ ÎÎÎÏÎÏÎ)"
 
-#: C/accessibility-devel-guide.xml:470(para)
+#: C/index.docbook:470(listitem/para)
 msgid ""
 "If the macro returns <function>TRUE</function>, the interface calls can "
 "safely be made on that ATK object."
@@ -1523,7 +1682,7 @@ msgstr ""
 "ÎÎ Î ÎÎÎÏÎÎÎÏÎÎÎ ÎÏÎÏÏÏÎÏÎÎ ÏÎÎÎ <function>TRUE</function>, ÎÎ ÎÎÎÏÎÎÏ ÏÎÏ "
 "ÎÎÎÏÎÏÎÏ ÎÏÎÏÎÏÎ ÎÎ ÎÏÏÎÎÎÎÎ ÎÎ ÏÏÎÎÎÎÏÎÏÎÎÎÎÎÏÎ ÏÎ ÎÏÏÏ ÏÎ ÎÎÏÎÎÎÎÎÎÎÎ ÎÎÎ."
 
-#: C/accessibility-devel-guide.xml:475(para)
+#: C/index.docbook:475(listitem/para)
 msgid ""
 "Test the role of the <type>AtkObject</type> by calling "
 "<function>atk_object_get_role()</function>. Any given role implements a "
@@ -1533,15 +1692,15 @@ msgstr ""
 "<function>atk_object_get_role()</function>. ÎÏÎÎÎÏÎÎÏÎÏÎ ÎÎÏÎÎÎÎÏ ÏÏÎÎÏ "
 "ÎÎÏÎÎÎÎ ÎÎÎ ÎÎÎÎÎÏ ÎÏÎÎÎÏ ÎÏÏ ATK API."
 
-#: C/accessibility-devel-guide.xml:483(title)
+#: C/index.docbook:483(section/title)
 msgid "Setting up an ATK Signal Handler"
 msgstr "ÎÏÎÎÎÏÎÏ ÎÎÏÏ ÏÎÎÏÎÏÏÎ ÏÎÎÎÏÎÏ ÎÎÎ"
 
-#: C/accessibility-devel-guide.xml:484(para)
+#: C/index.docbook:484(section/para)
 msgid "Using the <constant>column_inserted</constant> signal as an example:"
 msgstr "ÎÏÎÏÎ ÏÎÏ ÏÎÎÎÏÎÏ <constant>column_inserted</constant> ÏÏ ÏÎÏÎÎÎÎÎÎÎ:"
 
-#: C/accessibility-devel-guide.xml:487(programlisting)
+#: C/index.docbook:487(section/programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -1552,18 +1711,18 @@ msgstr ""
 "table_column_inserted_id = g_signal_connect_closure_by_id(my_atk_obj, \n"
 "g_signal_lookup(\"column_inserted\", G_OBJECT_TYPE(my_atk_obj)),0,g_cclosure_new(G_CALLBACK (_my_table_column_inserted_func),NULL,NULL), FALSE);\n"
 
-#: C/accessibility-devel-guide.xml:491(para)
+#: C/index.docbook:491(section/para)
 msgid ""
 "This will cause <function>_my_table_column_inserted_func()</function> to be "
 "called whenever a column_inserted signal is emitted on the <type>AtkObject</"
-"type><varname>my_atk_object</varname>."
+"type> <varname>my_atk_object</varname>."
 msgstr ""
 "ÎÏÏÏ ÎÎ ÎÏÎÎ ÏÏ ÎÏÎÏÎÎÎÏÎÎ ÎÎ ÎÎÎÎÎÎ Î ÏÏÎÎÏÏÎÏÎ "
 "<function>_my_table_column_inserted_func()</function> ÎÏÎÏÎÎÎÏÎÏÎ ÎÎÏÎÎÏÎÏÎÎ "
-"ÎÎÎ ÏÎÎÎ column_inserted  ÏÏÎ <type>AtkObject</type><varname>my_atk_object</"
+"ÎÎÎ ÏÎÎÎ column_inserted  ÏÏÎ <type>AtkObject</type> <varname>my_atk_object</"
 "varname>."
 
-#: C/accessibility-devel-guide.xml:493(para)
+#: C/index.docbook:493(section/para)
 msgid ""
 "Connecting to a signal is slightly different if the signal supports detail. "
 "The <constant>children_changed</constant> signal supports the "
@@ -1576,7 +1735,7 @@ msgstr ""
 "ÏÏÎÎÎÎÎÎÏÎ ÏÎ ÎÎÎ ÏÎÎÎ ÏÏÎÎ ÎÏÎÎ ÎÎÎÎÏÎÏÏÎÎ Î ÎÎÏÏÎÎÎÏÎÎÎ ÏÎÏÎÎÎÏÏÎÏ "
 "<parameter>add</parameter>, ÏÏÎÏÎÎÎÏÎÎÎÎÏÎ Î ÎÎÎÏ ÏÎÏÎÎÎÎ:"
 
-#: C/accessibility-devel-guide.xml:496(programlisting)
+#: C/index.docbook:496(section/programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -1585,24 +1744,24 @@ msgstr ""
 "\n"
 "child_added_id = g_signal_connect_closure (my_atk_obj,\"children_changed::add\",   g_cclosure_new (G_CALLBACK(_my_children_changed_func),NULL,NULL),FALSE); \n"
 
-#: C/accessibility-devel-guide.xml:499(para)
+#: C/index.docbook:499(section/para)
 msgid ""
 "This will cause <function>_my_children_changed_func()</function> to be "
 "called whenever a <constant>children_changed</constant> signal with the "
-"<parameter>add</parameter> detail is emitted on the <type>AtkObject</"
-"type><varname>my_atk_obj</varname>."
+"<parameter>add</parameter> detail is emitted on the <type>AtkObject</type> "
+"<varname>my_atk_obj</varname>."
 msgstr ""
 "ÎÏÏÏ ÎÎ ÎÏÎÎ ÏÏ ÎÏÎÏÎÎÎÏÎÎ ÎÎ ÎÎÎÎÎÎ Î ÏÏÎÎÏÏÎÏÎ "
 "<function>_my_children_changed_func()</function> ÎÏÎÏÎÎÎÏÎÏÎ ÎÎÏÎÎÏÎÏÎÎ ÎÎÎ "
-"ÏÎÎÎ<constant>children_changed</constant> ÎÎ ÏÎ ÎÎÏÏÎÎÎÏÎÎÎ ÏÎÏÎÎÎÏÏÎÏ "
-"<parameter>add</parameter> ÏÏÎ <type>AtkObject</type><varname>my_atk_obj</"
+"ÏÎÎÎ <constant>children_changed</constant> ÎÎ ÏÎ ÎÎÏÏÎÎÎÏÎÎÎ ÏÎÏÎÎÎÏÏÎÏ "
+"<parameter>add</parameter> ÏÏÎ <type>AtkObject</type> <varname>my_atk_obj</"
 "varname>."
 
-#: C/accessibility-devel-guide.xml:505(title)
+#: C/index.docbook:505(section/title)
 msgid "Implementing an ATK Object"
 msgstr "ÎÎÏÎÎÎÏÎ ÎÎÏÏ ÎÎÏÎÎÎÎÎÎÎÎÏ ÎÎÎ"
 
-#: C/accessibility-devel-guide.xml:506(para)
+#: C/index.docbook:506(section/para)
 msgid ""
 "You will need to implement your own ATK objects for any widgets that do not "
 "already have an accessible implementation in GAIL (or the equivalent library "
@@ -1617,11 +1776,11 @@ msgstr ""
 "ÏÏÎ ÎÎÏÎÎÎÎÏÎ ÏÎÏÎÎÎÎÎÎÎÏÎÏ <envar>GTK_MODULES</envar> ÎÏÏÎ ÏÏÏÎ ÎÎ "
 "ÏÎÏÏÏÎÎÏÎÎ ÎÎÏÎ ÏÎ ÎÎÎÏÎÎÎÎ ÏÎÏ ÎÎÏÎÎÎÏÎÏ."
 
-#: C/accessibility-devel-guide.xml:511(title)
+#: C/index.docbook:511(section/title)
 msgid "Registry"
 msgstr "ÎÎÏÏÏÎ"
 
-#: C/accessibility-devel-guide.xml:512(para)
+#: C/index.docbook:512(section/para)
 msgid ""
 "For this example we will assume there is an object called GTK_TYPE_MYTYPE. "
 "The ATK implementation will be called <type>MYATKIMP_TYPE_MYTYPE</type>. A "
@@ -1633,7 +1792,7 @@ msgstr ""
 "type>. ÎÎ ÏÏÎÎÎÏÏÎÎ ÏÎ ÎÏÎÎÏÏÎÏÎÎ ÏÎ ÎÏÎÎÎ ÎÎ ÎÎÎÎÎÏÎÎ "
 "<type>MYATKIMP_TYPE_MYTYPE_FACTORY</type>."
 
-#: C/accessibility-devel-guide.xml:515(para)
+#: C/index.docbook:515(section/para)
 msgid ""
 "To register an ATK implementation of a GTK object, these steps must be "
 "followed in the module's <function>gtk_module_init()</function> function:"
@@ -1642,11 +1801,11 @@ msgstr ""
 "ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎÏÎÎÏÎÏÎ ÎÏÏÎ ÏÎ ÎÎÎÎÏÎ ÏÏÎ ÏÏÎÎÏÏÎÏÎ ÎÏÎÏÏÎÎÏÏÎ "
 "<function>gtk_module_init()</function>:"
 
-#: C/accessibility-devel-guide.xml:520(para)
+#: C/index.docbook:520(listitem/para)
 msgid "Access the default registry:"
 msgstr "ÎÏÏÏÎÎÏÎ ÏÏÎ ÏÏÎÎÏÎÎÎÎÎÎÎÎ ÎÎÏÏÏÎ:"
 
-#: C/accessibility-devel-guide.xml:523(programlisting)
+#: C/index.docbook:523(listitem/programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -1655,7 +1814,7 @@ msgstr ""
 "\n"
 "default_registry = atk_get_default_registry();\n"
 
-#: C/accessibility-devel-guide.xml:527(para)
+#: C/index.docbook:527(listitem/para)
 msgid ""
 "Register the ATK object in the <function>gtk_module_init()</function> "
 "function of this module by making this function call:"
@@ -1663,7 +1822,7 @@ msgstr ""
 "ÎÎÏÎÏÏÏÎÏÏÎ ÏÎ ÎÎÏÎÎÎÎÎÎÎÎ ÎÎÎ ÏÏÎ ÏÏÎÎÏÏÎÏÎ <function>gtk_module_init()</"
 "function> ÎÏÏÎÏ ÏÎÏ ÎÏÎÏÏÎÎÏÎÏ ÎÎÎÏÎÏÎÏ ÎÏÏÎ ÏÎ ÏÏÎÎÏÏÎÏÎ:"
 
-#: C/accessibility-devel-guide.xml:529(programlisting)
+#: C/index.docbook:529(listitem/programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -1672,7 +1831,7 @@ msgstr ""
 "\n"
 "atk_registry_set_factory_type (default_registry, GTK_TYPE_MYTYPE, MYATKIMP_TYPE_MYTYPE_FACTORY); \n"
 
-#: C/accessibility-devel-guide.xml:534(para)
+#: C/index.docbook:534(section/para)
 msgid ""
 "This will register the AtkObject implementation of <type>GTK_TYPE_MYTYPE</"
 "type> to <type>MYATKIMP_TYPE_MYTYPE_FACTORY</type>. This factory will be "
@@ -1684,11 +1843,11 @@ msgstr ""
 "ÎÎÏÎÎÎÏÏÎÎ ÎÏÏÎ ÏÏÏÎ ÎÎ ÎÎÎÎÎ ÎÎÏÏÏÏÏ Î ÏÏÏÏÎÏ ÎÎÏÎÏÎÎÏÎÏ ÏÏÎ ÎÎÏÎÎÎÎÎÎÎÏÎ "
 "ÎÎÎ ÏÎÎ ÏÏÏÎ <type>MYATKIMP_TYPE_MYTYPE</type>."
 
-#: C/accessibility-devel-guide.xml:540(title)
+#: C/index.docbook:540(section/title)
 msgid "Factory"
 msgstr "ÎÏÎÎÏÏÎÏÎÎ"
 
-#: C/accessibility-devel-guide.xml:541(para)
+#: C/index.docbook:541(section/para)
 msgid ""
 "The factory must be implemented as a child of class type "
 "<type>ATK_TYPE_OBJECT_FACTORY</type> and must implement the function "
@@ -1707,11 +1866,11 @@ msgstr ""
 "function> ÎÎ ÎÏÎÎÏÎÎ ÎÎ ÎÎÎÎÎ ÎÏÎÎÏÎ ÎÏÏÏÎÏ ÏÏÏÎ ÎÎ ÎÎÏÎÏÎÎÏÎÏÏÎÎ ÎÎÎ ÎÎ "
 "ÎÏÎÏÏÏÎÏÎÎ ÏÎ ÎÏÎÏ <type>AtkObject</type>."
 
-#: C/accessibility-devel-guide.xml:547(title)
+#: C/index.docbook:547(section/title)
 msgid "ATK Implemetation for a Specific Object"
 msgstr "ÎÎÏÎÎÎÏÎ ÎÎÎ ÎÎÎ ÎÎÎ ÎÎÎÎÎÏ ÎÎÏÎÎÎÎÎÎÎÎ"
 
-#: C/accessibility-devel-guide.xml:548(para)
+#: C/index.docbook:548(section/para)
 msgid ""
 "All <type>GObject</type>s implement a <function>get_type()</function> "
 "function. Using the above example the naming convention for this function "
@@ -1722,7 +1881,7 @@ msgstr ""
 "ÎÏÏÏ ÏÎ ÏÎÎÎÎ ÏÏÎÎÏÏÎÏÎÏ ÎÎ ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎ "
 "<function>myatkimp_mytype_get_type()</function>."
 
-#: C/accessibility-devel-guide.xml:551(para)
+#: C/index.docbook:551(section/para)
 msgid ""
 "In this function, you specify which interfaces your object implements. If "
 "the following logic were included in this <function>get_type()</function> "
@@ -1733,11 +1892,11 @@ msgstr ""
 "<function>get_type()</function>, ÏÎ ÎÎÏÎÎÎÎÎÎÎÎ ÎÏÏÏ ÎÎ ÎÎÏÎÎÎÎ ÏÎ ÎÎÎÏÎÏÎ "
 "<type>ATK_TEXT</type>:"
 
-#: C/accessibility-devel-guide.xml:555(title)
+#: C/index.docbook:555(example/title)
 msgid "Sample <function>get_type()</function> function"
 msgstr "ÎÏÎÎÏÏÎÏÎ ÏÏÏÎÎÎÎÎÏ <function>get_type()</function>"
 
-#: C/accessibility-devel-guide.xml:556(programlisting)
+#: C/index.docbook:556(example/programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -1762,7 +1921,7 @@ msgstr ""
 "g_type_add_interface_static (type, ATK_TYPE_TEXT, \n"
 "                             &amp;atk_text_info); \n"
 
-#: C/accessibility-devel-guide.xml:568(para)
+#: C/index.docbook:568(section/para)
 msgid ""
 "The function <function>atk_text_interface_init()</function>, which has the "
 "following prototype, would need to be implemented:"
@@ -1770,7 +1929,7 @@ msgstr ""
 "Î ÏÏÎÎÏÏÎÏÎ <function>atk_text_interface_init()</function>, Î ÎÏÎÎÎ ÎÏÎÎ ÏÎ "
 "ÎÎÏÎÎÏÎÎ ÏÏÏÏÏÏÏÏÎ, ÎÎ ÏÏÎÏÎÎ ÎÎ ÎÎÏÎÎÎÎÏÎÎ ÏÏ ÎÎÎÏ:"
 
-#: C/accessibility-devel-guide.xml:571(programlisting)
+#: C/index.docbook:571(section/programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -1779,7 +1938,7 @@ msgstr ""
 "\n"
 "void atk_text_interface_init (AtkTextIface *iface); \n"
 
-#: C/accessibility-devel-guide.xml:574(para)
+#: C/index.docbook:574(section/para)
 msgid ""
 "This function would connect the interface function calls to the specific "
 "implementation as follows:"
@@ -1787,11 +1946,11 @@ msgstr ""
 "Î ÏÏÎÎÏÏÎÏÎ ÎÏÏÎ ÎÎ ÏÏÎÏÎÎ ÎÎ ÏÏÎÎÎÎÎ ÏÎÏ ÎÎÎÏÎÎÏ ÏÏÎÎÏÏÎÏÎÏÎ ÎÎÎÏÎÏÎÏ ÏÏÎ "
 "ÏÏÎÎÎÎÏÎÎÎÎÎ ÎÎÏÎÎÎÏÎ ÏÏ ÎÎÎÎÎÏÎÏÏ:"
 
-#: C/accessibility-devel-guide.xml:578(title)
+#: C/index.docbook:578(example/title)
 msgid "Connecting custom interface calls to an AtkObject implementation"
 msgstr "ÎÏÎÎÎÏÎ ÎÎÎÏÎÏÎ ÏÏÎÏÎÏÎÎÏÎÎÎÏÎ ÎÎÎÏÎÏÏÎ ÏÎ ÎÎÎ ÎÎÏÎÎÎÏÎ AtkObject"
 
-#: C/accessibility-devel-guide.xml:579(programlisting)
+#: C/index.docbook:579(example/programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -1814,7 +1973,7 @@ msgstr ""
 "   ... \n"
 "}\n"
 
-#: C/accessibility-devel-guide.xml:590(para)
+#: C/index.docbook:590(section/para)
 msgid ""
 "Then the functions <function>myatkimp_mytype_get_text()</function>, "
 "<function>myatkimp_mytype_get_character_at_offset()</function>, and the rest "
@@ -1826,11 +1985,11 @@ msgstr ""
 "ÏÏÏÎÎÎÏÎ ÏÏÎ ÏÏÎÎÏÏÎÏÎÏÎ ÎÎÎÏÎÏÎÏ <type>ATK_TEXT</type> ÎÎ ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎ "
 "ÎÏÎÏÎÎÏÎÏÎ ÎÎÎ ÏÎÎ ÎÎÏÎÎÎÏÎ."
 
-#: C/accessibility-devel-guide.xml:596(title)
+#: C/index.docbook:596(section/title)
 msgid "<type>AtkObject</type> Implementation"
 msgstr "ÎÎÏÎÎÎÏÎ <type>AtkObject</type>"
 
-#: C/accessibility-devel-guide.xml:597(para)
+#: C/index.docbook:597(section/para)
 msgid ""
 "<type>AtkObject</type>s are <type>GObjects</type>, and all <type>GObject</"
 "type>s need to specify the <function>get_type()</function> function. Here is "
@@ -1847,11 +2006,11 @@ msgstr ""
 "ÎÎÎÎÏÎÎÎÎ ÏÏ ÎÎÎÎÎÏ ÎÎÏÎÎÎÎÎÎÎÎ ÎÎ ÎÎÎÎÎ ÏÎ <type>MYATKIMP_MYPARENTTYPE</"
 "type>."
 
-#: C/accessibility-devel-guide.xml:601(title)
+#: C/index.docbook:601(example/title)
 msgid "Sample <function>get_type()</function> implementation"
 msgstr "ÎÎÏÎÎÎÏÎ ÏÎÏ ÏÏÎÎÏÏÎÏÎ <function>get_type()</function> ÏÏ ÏÎÏÎÎÎÎÎÎÎ"
 
-#: C/accessibility-devel-guide.xml:602(programlisting)
+#: C/index.docbook:602(example/programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -1936,11 +2095,11 @@ msgstr ""
 "   return type; \n"
 "} \n"
 
-#: C/accessibility-devel-guide.xml:647(title)
+#: C/index.docbook:647(section/title)
 msgid "Class/Instance Initializers"
 msgstr "ÎÏÏÎÎÎÏÎÎÎÏÎÎÏ ÎÎÎÏÎÏ/ÏÏÏÎÎÎÎÎÏ"
 
-#: C/accessibility-devel-guide.xml:648(para)
+#: C/index.docbook:648(section/para)
 msgid ""
 "You will have to set up a class initializer for the <type>GObject</type> if "
 "your <type>AtkObject</type> implementation either:"
@@ -1948,7 +2107,7 @@ msgstr ""
 "ÎÎ ÏÏÎÏÎÎ ÎÎ ÏÏÎÎÎÏÎÏÎ ÎÎÎ ÎÏÏÎÎÎÏÎÎÎÏÎ ÎÎÎÏÎÏ ÎÎÎ ÏÎ <type>GObject</type> "
 "ÎÎ Î ÎÎÏÎÎÎÏÎ <type>AtkObject</type> ÎÎÏÎ:"
 
-#: C/accessibility-devel-guide.xml:653(para)
+#: C/index.docbook:653(listitem/para)
 msgid ""
 "Redefines any function calls defined by the object's parent. This is "
 "typically necessary when an object needs to implement a function like "
@@ -1963,7 +2122,7 @@ msgstr ""
 "ÎÏÎÏÎÎÏÎÏÎ ÎÎ ÏÎ ÎÎÏÎÎÎÎÎÎÎÎ ÎÏÎÎ ÎÏÎÎÏÏÎÎÏ ÎÎÏÎÎÎÎÎ, ÎÎÎÎ ÎÎÎ "
 "ÎÎÏÎÏÏÎÏÏÏÎÏÎÏÎÎ ÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ."
 
-#: C/accessibility-devel-guide.xml:656(para)
+#: C/index.docbook:656(listitem/para)
 msgid ""
 "For example, if your ATK implementation needs to over-ride the "
 "<type>AtkObject</type> function <function>get_name()</function>, then the "
@@ -1973,7 +2132,7 @@ msgstr ""
 "<type>AtkObject</type> <function>get_name()</function>, ÏÏÏÎ Î ÎÏÏÎÎÎÏÎÎÎÏÎ "
 "ÎÎÎÏÎÏ ÎÎ ÎÎÎÎÎÎÎ ÎÎÏÏÏ ÎÏÏÎ:"
 
-#: C/accessibility-devel-guide.xml:660(title)
+#: C/index.docbook:660(example/title)
 msgid ""
 "Class initializer that overrides parent's <function>get_name()</function> "
 "function"
@@ -1981,7 +2140,7 @@ msgstr ""
 "ÎÏÏÎÎÎÏÎÎÎÏÎ ÎÎÎÏÎÏ Î ÎÏÎÎÎ ÏÎÏÎÎÎÎÏÏÎÎ ÏÎÎ ÏÎ ÏÏÎÎÏÏÎÏÎ <function>get_name()"
 "</function> ÏÎÏ ÏÎÎÎÎÎÏ ÎÎÏÎÎÏÎÎÏ"
 
-#: C/accessibility-devel-guide.xml:661(programlisting)
+#: C/index.docbook:661(example/programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -1998,7 +2157,7 @@ msgstr ""
 "  class-&gt;get_name = myatkimp_mytype_get_name; \n"
 "} \n"
 
-#: C/accessibility-devel-guide.xml:670(para)
+#: C/index.docbook:670(listitem/para)
 msgid ""
 "Requires a <function>parent-&gt;init</function>, <function>parent-&gt;"
 "notify_gtk</function>, or <function>parent-&gt;finalize</function> function. "
@@ -2008,7 +2167,7 @@ msgstr ""
 "<function>parent-&gt;notify_gtk</function>, Î ÎÎÎ <function>parent-&gt;"
 "finalize</function> function. ÎÎ ÏÎÏÎÎÎÎÎÎÎ ÎÏÏÏ ÎÏÎÎÎÎ ÎÎÎ ÏÎÏ ÏÏÎÎÏ:"
 
-#: C/accessibility-devel-guide.xml:673(title)
+#: C/index.docbook:673(example/title)
 msgid ""
 "Class initializer that defines its own <function>init()</function>, "
 "<function>notify_gtk()</function> and <function>finalize()</function> "
@@ -2018,7 +2177,7 @@ msgstr ""
 "function>, <function>notify_gtk()</function> ÎÎÎ <function>finalize()</"
 "function>"
 
-#: C/accessibility-devel-guide.xml:674(programlisting)
+#: C/index.docbook:674(example/programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -2057,11 +2216,11 @@ msgstr ""
 "    parent_class-&gt;finalize = myatkimp_mytype_finalize; \n"
 "}\n"
 
-#: C/accessibility-devel-guide.xml:695(para)
+#: C/index.docbook:695(listitem/para)
 msgid "parent-&gt;init"
 msgstr "parent-&gt;init"
 
-#: C/accessibility-devel-guide.xml:698(para)
+#: C/index.docbook:698(listitem/para)
 msgid ""
 "A <function>parent-&gt;init()</function> function may be necessary if the "
 "ATK implementation needs to do either of the following:"
@@ -2069,25 +2228,25 @@ msgstr ""
 "ÎÎÎÎÏÎÎÎÎÏÏ ÎÎ ÎÎÎÎÎ ÎÏÎÏÎÎÏÎÏÎ ÎÎÎ ÏÏÎÎÏÏÎÏÎ <function>parent-&gt;init()</"
 "function> ÎÎ Î ÎÎÏÎÎÎÏÎ ÎÎÎ ÏÏÎÎÎÎÎÏÎÎ ÎÎ ÎÏÎÏÎÏÎÎÎ ÏÎ ÎÎÏÎÎÏÎÎ:"
 
-#: C/accessibility-devel-guide.xml:703(para)
+#: C/index.docbook:703(listitem/para)
 msgid "Cache any data obtained from a backing GTK widget."
 msgstr ""
 "ÎÏÎÎÎÎÎÏÏÎ ÏÎÏÎ ÏÏÎ ÎÎÎÎÎÎÎÏÎ ÏÎÏ ÎÎÏÎÎÎÎÎ ÎÏÏ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ "
 "ÏÏÎÏÏÎÏÎÎÎÏ GTK."
 
-#: C/accessibility-devel-guide.xml:708(para)
+#: C/index.docbook:708(listitem/para)
 msgid "Listen to any signals from the backing GTK widget."
 msgstr "ÎÎÏÏÎÏÎ ÎÏÎÎÎÏÎÎÏÎÏÎ ÏÎÎÎÏÎÏ ÎÏÏ ÏÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÏÏÎÏÏÎÏÎÎÎÏ GTK."
 
-#: C/accessibility-devel-guide.xml:713(para)
+#: C/index.docbook:713(listitem/para)
 msgid "Here is an example of both:"
 msgstr "ÎÎÎÏÎ ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ ÏÎÏ ÎÏÎ ÏÎÏÎÏÏÏÏÎÎÏ:"
 
-#: C/accessibility-devel-guide.xml:717(title)
+#: C/index.docbook:717(example/title)
 msgid "A custom <function>init()</function> function"
 msgstr "ÎÎÎ ÏÏÎÏÎÏÎÎÏÎÎÎÎ ÏÏÎÎÏÏÎÏÎ <function>init()</function>"
 
-#: C/accessibility-devel-guide.xml:718(programlisting)
+#: C/index.docbook:718(example/programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -2126,7 +2285,7 @@ msgstr ""
 "                       NULL); \n"
 "} \n"
 
-#: C/accessibility-devel-guide.xml:737(para)
+#: C/index.docbook:737(listitem/para)
 msgid ""
 "In this example, if the specified <type>signal-type</type> signal were "
 "generated on the backing <varname>gtk_widget</varname>, then the "
@@ -2136,11 +2295,11 @@ msgstr ""
 "ÎÎÎÎÎÏÏÎÎÎÎÎÎ ÏÏÎ <varname>gtk_widget</varname>ÏÏÎÏÏÎÏÎÎÎÏ , ÏÏÏÎ ÎÎ ÎÎÎÎÎÎ "
 "Î ÏÏÎÎÏÏÎÏÎ <function>_myatkimp_mytype_signal_type()</function>."
 
-#: C/accessibility-devel-guide.xml:742(para)
+#: C/index.docbook:742(listitem/para)
 msgid "parent-&gt;notify_gtk"
 msgstr "parent-&gt;notify_gtk"
 
-#: C/accessibility-devel-guide.xml:745(para)
+#: C/index.docbook:745(listitem/para)
 msgid ""
 "If the ATK implementation needs to listen to any property notifications on "
 "the backing GTK object, a <function>parent-&gt;notify_gtk()</function> "
@@ -2150,11 +2309,11 @@ msgstr ""
 "ÎÎÎÎÏÎÏÏÎ ÏÏÎ ÎÎÏÎÎÎÎÎÎÎÎ ÏÏÎÏÏÎÏÎÎÎÏ GTK, ÎÎÎÎÏÎÎÎÎÏÏ ÎÎ ÎÎÎÎÎ ÎÏÎÏÎÎÏÎÏÎ "
 "ÎÎÎ ÏÏÎÎÏÏÎÏÎ <function>parent-&gt;notify_gtk()</function>. ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ:"
 
-#: C/accessibility-devel-guide.xml:749(title)
+#: C/index.docbook:749(example/title)
 msgid "A custom <function>notify_gtk()</function> function"
 msgstr "ÎÎÎ ÏÏÎÏÎÏÎÎÏÎÎÎÎ ÏÏÎÎÏÏÎÏÎ <function>notify_gtk()</function>"
 
-#: C/accessibility-devel-guide.xml:750(programlisting)
+#: C/index.docbook:750(example/programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -2193,11 +2352,11 @@ msgstr ""
 "   } \n"
 "} \n"
 
-#: C/accessibility-devel-guide.xml:771(para)
+#: C/index.docbook:771(listitem/para)
 msgid "parent-&gt;finalize"
 msgstr "parent-&gt;finalize"
 
-#: C/accessibility-devel-guide.xml:774(para)
+#: C/index.docbook:774(listitem/para)
 msgid ""
 "If it is necessary to free any data when a <type>GObject</type> instance is "
 "destroyed, then a <function>finalize()</function> function is needed to free "
@@ -2208,11 +2367,11 @@ msgstr ""
 "ÏÏÎÎÏÏÎÏÎ <function>finalize()</function> ÎÎÎ ÏÎÎ ÎÏÎÎÎÏÎÎÏÏÏÎ ÎÎÎÎÎÏ. ÎÎÎ "
 "ÏÎÏÎÎÎÎÎÎÎ:"
 
-#: C/accessibility-devel-guide.xml:778(title)
+#: C/index.docbook:778(example/title)
 msgid "A custom <function>finalize()</function> function"
 msgstr "ÎÎÎ ÏÏÎÏÎÏÎÎÏÎÎÎÎ ÏÏÎÎÏÏÎÏÎ <function>finalize()</function>"
 
-#: C/accessibility-devel-guide.xml:779(programlisting)
+#: C/index.docbook:779(example/programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -2235,11 +2394,11 @@ msgstr ""
 "   G_OBJECT_CLASS (parent_class)-&gt;finalize (object); \n"
 "} \n"
 
-#: C/accessibility-devel-guide.xml:799(title)
+#: C/index.docbook:799(section/title)
 msgid "Making Custom Components Accessible"
 msgstr "ÎÎÎÎÎÏÏÎÎÎ ÏÏÎÏÎÏÏÎ ÏÏÎÏÎÏÎÎÏÎÎÎÏÎ ÏÏÎÎÏÎÎÏÎ"
 
-#: C/accessibility-devel-guide.xml:800(para)
+#: C/index.docbook:800(section/para)
 msgid ""
 "Adding ATK support to your custom widget will assure its cooperation with "
 "the accessibility infrastructure. These are the general steps that are "
@@ -2249,7 +2408,7 @@ msgstr ""
 "ÎÎÎÏÏÎÎÎÎÎ ÏÎ ÏÏÎÎÏÎÎÏÎÎ ÏÎÏ ÎÎ ÏÎÎ ÏÏÎÎÎÎÎ ÏÏÎÏÎÏÏÏÎÏÎÏ. ÎÏÏÎ ÎÎÎÎÎ ÏÎ "
 "ÎÎÎÎÎÎ ÎÎÎÎÏÎ ÏÎÏ ÎÏÎÎÏÎÏÎÏÎÎ:"
 
-#: C/accessibility-devel-guide.xml:805(para)
+#: C/index.docbook:805(listitem/para)
 msgid ""
 "assess a custom widget according to the applicable <link linkend=\"gad-ui-"
 "guidelines\">User Interface Guidelines</link>;"
@@ -2257,7 +2416,7 @@ msgstr ""
 "ÏÏÏÏÎÎÏÎ ÏÎ ÎÎÎ ÏÏÎÏÎÏÎÎÏÎÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÏÏÎÏÏÎÎ ÎÎ ÏÎÏ ÎÏÎÏÎÏÏÎÎÎÏ "
 "<link linkend=\"gad-ui-guidelines\">ÎÎÎÎÎÎÏ ÎÎÎÏÎÏÎÏ ÏÏÎÏÏÎ</link>,"
 
-#: C/accessibility-devel-guide.xml:810(para)
+#: C/index.docbook:810(listitem/para)
 msgid ""
 "determine which <ulink url=\"http://library.gnome.org/devel/atk/stable/atk.";
 "html\">ATK interfaces</ulink> a custom widget should implement, according to "
@@ -2268,7 +2427,7 @@ msgstr ""
 "ÏÏÏÏÎÏÎÎÏ, ÏÏÎÏÏÎÎ  ÎÎ ÏÎÏ ÏÏÎÎÎÏÎÎÏ ÎÎÎ ÏÎ ÏÏÎÎÏÏÎÏÎ ÎÎÎÏÎÏÏÎÎÎÏ ÏÎÏ "
 "ÏÏÏÏÎÏÎÎÎÏ,"
 
-#: C/accessibility-devel-guide.xml:815(para)
+#: C/index.docbook:815(listitem/para)
 msgid ""
 "assess which <ulink url=\"http://library.gnome.org/devel/atk/stable/atk.html";
 "\">ATK interfaces</ulink> can be inherited from the parent widget class;"
@@ -2277,7 +2436,7 @@ msgstr ""
 "\">ÎÎÎÏÎÏÎÏ ATK</ulink> ÎÎ ÎÏÎÎÎÏ ÎÏÎÏÎÏÎ ÎÎ ÎÎÎÏÎÎÎÎÎÎÎÏÎ ÎÏÏ ÏÎÎ ÎÎÎÏÎ ÏÎÏ "
 "ÎÎÎÎÎÎÏ ÎÏÎÏÎÎÎÏ ÏÏÏÏÎÏÎÎÎÏ,"
 
-#: C/accessibility-devel-guide.xml:820(para)
+#: C/index.docbook:820(listitem/para)
 msgid ""
 "implement the appropriate ATK interfaces for the widget class in one of two "
 "ways:"
@@ -2285,11 +2444,11 @@ msgstr ""
 "ÎÎÏÎÎÎÏÎ ÏÏÎ ÎÎÏÎÎÎÎÎÏÎ ÎÎÎÏÎÏÏÎ ÎÎÎ ÎÎÎ ÏÎÎ ÎÎÎÏÎ ÏÎÏ ÎÏÎÏÎÎÎÏ ÏÏÏÏÎÏÎÎÎÏ "
 "ÎÎ ÎÎÎÎ ÎÏÏ ÏÎÏÏ ÎÏÎ ÎÎÎÏ ÏÏÏÏÎÏÏ:"
 
-#: C/accessibility-devel-guide.xml:825(para)
+#: C/index.docbook:825(listitem/para)
 msgid "directly by the custom widget, or"
 msgstr "ÎÏÎÏÎÎÎÎÏ ÎÏÏ ÏÎ ÏÏÎÏÎÏÎÎÏÎÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ, Î"
 
-#: C/accessibility-devel-guide.xml:830(para)
+#: C/index.docbook:830(listitem/para)
 msgid ""
 "in an <ulink url=\"http://library.gnome.org/devel/atk/stable/AtkObject.html";
 "\"><type>AtkObject</type></ulink> subtype created by a new <ulink url="
@@ -2301,7 +2460,7 @@ msgstr ""
 "ÎÎÎ ÎÎÎ ÏÏÎÎÎÎÏÎ <ulink url=\"http://library.gnome.org/devel/atk/stable/";
 "AtkObjectFactory.html\"><type>AtkObjectFactory</type></ulink>"
 
-#: C/accessibility-devel-guide.xml:835(para)
+#: C/index.docbook:835(listitem/para)
 msgid ""
 "If the second method is used, the appropriate factory type must be "
 "registered with the <type>AtkObjectFactoryRegistry</type> at runtime."
@@ -2310,7 +2469,7 @@ msgstr ""
 "ÏÏÎÏÎÎ ÎÎ ÎÎÏÎÏÏÏÎÎÎÎ ÎÎ ÏÎ <type>AtkObjectFactoryRegistry</type> ÎÎÏÎ ÏÎ "
 "ÎÎÎÏÎÎÎÎ ÏÎÏ ÎÎÏÎÎÎÏÎÏ."
 
-#: C/accessibility-devel-guide.xml:840(para)
+#: C/index.docbook:840(section/para)
 msgid ""
 "The <ulink url=\"ftp://ftp.gnome.org/pub/GNOME/sources/gail/\";>GAIL source "
 "code</ulink> serves as an excellent tutorial for advanced ATK usage."
@@ -2319,11 +2478,11 @@ msgstr ""
 "GAIL</ulink> ÏÎÏÎÏÎÏÎÎ ÏÏ ÎÎÎ ÎÎÎÎÏÎÏÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎÎÎÎÎÎÏÎÎÎÎ ÏÏÎÏÎ ÏÎÏ "
 "ÎÎÎ."
 
-#: C/accessibility-devel-guide.xml:846(title)
+#: C/index.docbook:846(section/title)
 msgid "User Interface Guidelines for Supporting Accessibility"
 msgstr "ÎÎÎÎÎÎÏ ÎÎÎÏÎÏÎÏ ÏÏÎÏÏÎ ÎÎÎ ÏÎÎ ÏÏÎÏÏÎÏÎÎÎ ÏÏÎÏÎÏÏÏÎÏÎÏ"
 
-#: C/accessibility-devel-guide.xml:847(para)
+#: C/index.docbook:847(section/para)
 msgid ""
 "When designing your application's GUI, there are a number of simple "
 "guidelines you should follow to ensure that it can be used by as wide an "
@@ -2345,11 +2504,11 @@ msgstr ""
 "ÏÏÎÏÎÎÏÏÎÏÎ ÏÎÏ ÎÏÎÏÎÎÎÎÏ ÎÎÎ ÎÎÎÎ ÎÎÎÎ ÏÎÏ ÏÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎ - ÎÎÏÎÎ ÎÎÎ ÎÎÎ "
 "ÎÏÎÏ!"
 
-#: C/accessibility-devel-guide.xml:852(title)
+#: C/index.docbook:852(section/title)
 msgid "General"
 msgstr "ÎÎÎÎÎÎ"
 
-#: C/accessibility-devel-guide.xml:853(para)
+#: C/index.docbook:853(section/para)
 msgid ""
 "We all get frustrated if we can't find a feature in an application, or make "
 "a mistake from which it takes a couple of minutes to recover, if it's "
@@ -2367,7 +2526,7 @@ msgstr ""
 "ÎÎÏÎÎÎÏ ÎÎÎÎÎÎÏ ÎÎ ÎÏÎÏÎÏÏÎÎ ÎÎ ÏÎÏ ÎÎÎÎÎÏÎÏÎ ÎÎ ÎÎÏÎÎÎÏÎÏÎ ÎÏÏÎ ÏÎ ÎÎÎÎ "
 "ÏÎÏÎÏÏÏÏÎÏÎ ÎÎÎ ÏÎÎÏÏ ÏÎÏÏ ÏÏÎÏÏÎÏ."
 
-#: C/accessibility-devel-guide.xml:858(para)
+#: C/index.docbook:858(listitem/para)
 msgid ""
 "Provide Undo for every action that changes the user's data or the "
 "application's settings. If possible, provide more than one level of undo and "
@@ -2378,7 +2537,7 @@ msgstr ""
 "ÎÏÎÏÎÎÎ ÎÎÎÎÏÎÏÎ Î ÎÏÎÎÎÎÎÏÎÏ, ÎÎÎ ÎÎÎ ÎÎÏÏÎ ÎÏÏÎÏÎÎÎÏ ÏÎÏ ÎÎ ÎÏÎÏÏÎÏÎÎ ÏÎÎ "
 "ÏÏÎÎÏÎÏÎÏÏÎÏÎ ÏÏÎ ÎÎÎÏÎÎÎÏÎ ÏÎÏ ÎÎ ÎÎÎÎÏÎÎÎÏÎ."
 
-#: C/accessibility-devel-guide.xml:863(para)
+#: C/index.docbook:863(listitem/para)
 msgid ""
 "Provide commands to restore default settings. If a particular setting could "
 "make the application completely unusable for an individual, e.g. by making "
@@ -2393,7 +2552,7 @@ msgstr ""
 "ÏÏÎÎÎÏÎÏÎ ÎÎÎÎÎÏÏÎÏÎ ÎÏÏ ÏÎÎ ÎÏÎÏÎÎÎÎ. ÎÏÏÏ ÎÎ ÎÏÎÏÎÏÏÎ ÎÎ ÎÎÎÎÎ "
 "ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÎÎÎ ÎÎÎÎÎÎÎÎ ÎÏÎÎÎÎÏ ÎÎÏÎÎÎÏ, ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ."
 
-#: C/accessibility-devel-guide.xml:868(para)
+#: C/index.docbook:868(listitem/para)
 msgid ""
 "Help prevent users from doing the wrong thing. This is particularly "
 "important for actions that could be done by accident (e.g. mouse actions) or "
@@ -2409,7 +2568,7 @@ msgstr ""
 "ÏÏÎÏÏÎ ÎÎ ÎÎÏÎÎÎÎÎÎÎ ÏÎ ÏÏÎÎÎÎÏÎÎÎÎÎ ÎÎÎÏÎÏÏÎÎÎ ÎÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ ÎÏÎÎÎÎÏÎ "
 "ÎÎÎÎÏÎÎÎÎÏÏ ÎÎÏÎÏÏÏÎÏÎÎÏÎ."
 
-#: C/accessibility-devel-guide.xml:873(para)
+#: C/index.docbook:873(listitem/para)
 msgid ""
 "Minimize users' memory load. For example, let the user view multiple "
 "documents at the same time, and ensure online help or other instructions can "
@@ -2424,7 +2583,7 @@ msgstr ""
 "ÎÎÏÎÎÏÎÏÎÏÎ ÎÏÎÎÎÏÎÎÏÎÏÎ ÏÎÎÏÎÏÎÏÎÎÏ ÏÎÏ ÏÏÎÎÎÎÎÎÎÏÎÎ, ÎÎÎ ÎÎ ÏÎÏ "
 "ÎÏÎÎÎÎÎÎÏÎÏÎ ÎÏÎÏÎÎÏÎÏÎ ÎÏÎÏÎÏÎ ÎÎ ÎÎÏÎÏÎÎÏÎ ÎÎÎÎÎÎÎÎ."
 
-#: C/accessibility-devel-guide.xml:878(para)
+#: C/index.docbook:878(listitem/para)
 msgid ""
 "Don't make users insert disks. Depending on a user's particular disability, "
 "they may find it difficult to physically insert or change a disk, or they "
@@ -2438,7 +2597,7 @@ msgstr ""
 "ÎÎ Î ÎÏÎÏÎÎÎÎ ÏÎÏ ÎÎÎÎÎÎÏÏÎÏÎÎ ÎÏÏ ÏÎÎ ÎÎÏÎÎÎ ÎÎÏÎÏÎ, ÏÎÏÎÏÎÏÎ ÎÎÎ ÎÏÎÎÎÎÎ "
 "ÎÎÎ ÎÎÏÎÎÏÎÏÎ ÏÎÏÎ ÏÏÎ ÎÏÏÎÎÏÎ ÏÎÏ ÎÎ ÎÏÎÎÏÎÎÎÏÎ ÏÏÎ ÏÎÎÎÏÏ ÎÎÏÎÎ ÏÎÏ ÏÏÎÏÏÎ."
 
-#: C/accessibility-devel-guide.xml:883(para)
+#: C/index.docbook:883(listitem/para)
 msgid ""
 "Don't place frequently used functions deep in a menu structure. Whether "
 "you're using a mouse, keyboard or some other input device, deeply-nested "
@@ -2451,7 +2610,7 @@ msgstr ""
 "ÎÎÏÏÏ ÎÏÎÏÎÏ ÎÏÏ ÏÎÎ ÎÏÎÎÎÏÏÎÏÎ ÏÎÏ ÎÏÎÎÎÎÎÏÎÎÏÏÎÏ ÏÎÏ ÏÏÏÏÎÏ ÎÏÏÎÏÎÏ ÏÎÏÏ, "
 "ÎÎÎÎÎ ÏÎÎÏÎ ÏÎÏÎÏÏÏÏÎÏÎ ÎÏÏÎÎÎÎ ÎÎÎ ÏÏÎÎÎÎÎÏÎÎ ÏÏÏÎÎ Î ÏÏÏÏÎÎÏÎ ÏÎ ÎÏÏÎ."
 
-#: C/accessibility-devel-guide.xml:888(para)
+#: C/index.docbook:888(listitem/para)
 msgid ""
 "Don't lead users through unnecessary steps. For example, wizards are useful "
 "for users who have trouble handling large numbers of options at one time, "
@@ -2476,13 +2635,12 @@ msgstr ""
 "ÎÎÎ ÏÎÎ ÏÎ ÎÎÎÎÏÎ, Î ÎÏÎÎ ÎÎ ÎÏÎÎÎÎÎÏÎ ÎÏÏÏÎÎÏÎ ÎÏÏÎ ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ "
 "ÏÎÎ ÏÏÏÎÎ."
 
-#: C/accessibility-devel-guide.xml:896(title)
-#: C/accessibility-devel-guide.xml:11(title)
-#: C/accessibility-devel-guide.xml:293(entry)
+#: C/index.docbook:896(section/title) C/index.docbook:11(section/title)
+#: C/index.docbook:293(row/entry)
 msgid "Keyboard Navigation"
 msgstr "ÎÎÎÎÎÎÏÎ ÎÎÏÏ ÏÎÎÎÏÏÎÎÎÎÎÎÏ"
 
-#: C/accessibility-devel-guide.xml:897(para)
+#: C/index.docbook:897(section/para)
 msgid ""
 "A well-designed keyboard user interface plays a key role when you are "
 "designing accessible software. Blind users can navigate software more "
@@ -2499,7 +2657,7 @@ msgstr ""
 "ÎÎÏÎÎÎÏÎÏÎ ÎÎÎ ÏÏÎÏÏÎ ÎÏÏ ÏÎÎ ÎÏÎÏÏÏÎ ÏÎÎÎÎÎÏÎ ÎÎ ÏÏÎÏÎ ÏÎÏ ÏÎÎÏÎÎÎÎÏ, "
 "ÎÏÎÎÎÎ ÎÏÎÎÏÎÏÎÏÎÎ ÏÏÎÎÎÏ ÎÎÎÎÏÏÎÏÎÏ ÎÎÎÎÏÎÏ ÏÎÏ ÎÎÎÎÏÎÏ. "
 
-#: C/accessibility-devel-guide.xml:900(para)
+#: C/index.docbook:900(section/para)
 msgid ""
 "It is therefore important to make all mouse actions available from the "
 "keyboard, and include keyboard access to all toolbars, menus, links and "
@@ -2514,7 +2672,7 @@ msgstr ""
 "ÎÎÎÎÎÏÎÎÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÎÏÎÎ ÏÎ ÏÎÎÎÏÏÎÎÏÎÎÎ. ÎÏÎÎÏÏÏÏÎ ÏÎ ÏÎÎÏÎÎÎ ÏÎÏ ÎÎÏ "
 "ÎÎÎÎÎÎÎÎÏÎ ÏÎÎ ÎÏÎÏÎÎÎÎ ÎÎ ÎÏÏÎ ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÏÎ!"
 
-#: C/accessibility-devel-guide.xml:903(para)
+#: C/index.docbook:903(section/para)
 msgid ""
 "Most functionality should be easy to make accessible by using keyboard "
 "mnemonics and accelerators, and the toolkit's built-in navigation features. "
@@ -2527,7 +2685,7 @@ msgstr ""
 "ÏÎÏ ÎÎÎÏÏÏÎÏÎÎ ÎÏÏ ÏÎ ÎÎÏÎÏÎÏÎ ÎÎ ÎÏÏÎÎÏÎ, ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ, ÎÎÎÎÏÎÎÎÎÏÏ ÎÎ "
 "ÎÏÎÎÏÎÏÎ ÏÎÏÎÏÏÏÏÎÏÎ ÏÏÎÎÎÎÏÏÏÏÎ."
 
-#: C/accessibility-devel-guide.xml:908(para)
+#: C/index.docbook:908(listitem/para)
 msgid ""
 "Provide efficient keyboard access to all application features. Some users "
 "may be unable to use a mouse, and many \"power-users\" prefer to use the "
@@ -2547,7 +2705,7 @@ msgstr ""
 "ÎÎÎÏÎÏÎ ÏÎÎÎÏÏÎÎÎÎÎÎÏ ÏÎÏ ÎÎÎÏÎÏÏÎÏÎÎÎÎ ÏÎ ÎÏÎÎÎÏ ÏÎÎÎÏÏÎÎÎÎÎÏÎÏÎ ÏÎÏ "
 "ÎÏÎÎÏÎÏÎÏÎÎ ÎÎÎ ÎÎÎÎ ÎÎÎÎÎÏÎ ÎÏÎÎÏÎÎ."
 
-#: C/accessibility-devel-guide.xml:913(para)
+#: C/index.docbook:913(listitem/para)
 msgid ""
 "Use a logical keyboard navigation order. When navigating around a window "
 "with the <keycap>Tab</keycap> key, keyboard focus should move between "
@@ -2560,7 +2718,7 @@ msgstr ""
 "ÎÏÏÎÎÎ ÎÏÏÎÏÎ ÎÎÏÎÏÎÏÏÎÏÎ, ÎÏÏÏ ÎÎÎÎÎ ÏÏÎÎÎÏÏ ÎÏÏ ÎÏÎÏÏÎÏÎ ÏÏÎÏ ÎÎÎÎÎ ÎÎÎ "
 "ÎÏÏ ÏÎÎÏ ÏÏÎÏ ÏÎ ÎÎÏÏ."
 
-#: C/accessibility-devel-guide.xml:918(para)
+#: C/index.docbook:918(listitem/para)
 msgid ""
 "Ensure correct tab order for controls whose enabled state is dependent on "
 "checkbox, radio button or toggle button state. When such a button is "
@@ -2580,7 +2738,7 @@ msgstr ""
 "ÎÎÎÎÏÎ ÎÏÏÏÎÎÏÎ ÎÏÏÎÎÏÎ ÏÏÎÎ ÏÏÏÏÎ ÎÎÎÏÏÏÎÎÎÎ ÎÎÎÎÏÎ, ÎÎÎÎ ÎÎÏÎ ÎÎÎ ÎÏÏÏ "
 "ÎÏÎÏÏÎ ÏÎÎ ÎÏÏÎÎÏÎ ÏÏÎ ÎÎÏÎÏÎ."
 
-#: C/accessibility-devel-guide.xml:923(para)
+#: C/index.docbook:923(listitem/para)
 msgid ""
 "Don't override existing system-level accessibility features. For example, "
 "<ulink url=\"http://www.rehab.uiuc.edu/accessx/overview.html\";>AccessX</"
@@ -2600,7 +2758,7 @@ msgstr ""
 "ÏÎÎÎÎÎÏÎÏ ÏÎÎÎÏÏÎ ÏÏÎ ÏÎÎÎÏÏÎÎÏÎÎÎ, ÎÏÎÎÎÎ ÎÎ ÏÏÎÏÏÎÏ ÏÎÏ ÏÏÎÏÎÎÎÎÏÎÎ ÏÏÎ "
 "ÎÎÎÏÎÏÏÎÎÎ Mousekeys ÎÎÎ ÎÎ ÎÏÎÏÎÏÎ ÎÎ ÏÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ."
 
-#: C/accessibility-devel-guide.xml:928(para)
+#: C/index.docbook:928(listitem/para)
 msgid ""
 "Provide more than one method to perform keyboard tasks where possible. Some "
 "users may find some keys and key combinations easier to use than others."
@@ -2609,7 +2767,7 @@ msgstr ""
 "ÏÎÎÎÏÏÎÎÎÎÎÎÏ ÏÏÎÏ ÎÎÎÎÎ ÎÏÎÎÏÏ. ÎÎÏÎÎÎÎ ÏÏÎÏÏÎÏ ÎÎÎÎÏÎÎÎÎÏÏ ÎÏÎÏÎÎÏÎ ÎÎÏÎÎÎ "
 "ÏÎÎÎÏÏÎ ÎÎÎ ÏÏÎÎÏÎÏÎÎÏÏ ÏÎÎÎÏÏÏÎ ÏÎÎ ÎÏÎÎÎÎ ÏÎ ÏÏÎÏÎ ÎÏÏ ÎÎÏÎÎÎ ÎÎÎÎ."
 
-#: C/accessibility-devel-guide.xml:933(para)
+#: C/index.docbook:933(listitem/para)
 msgid ""
 "Provide both keyboard and mouse access to functions where possible. Some "
 "users may only be able to use either the mouse or the keyboard, but not both."
@@ -2618,7 +2776,7 @@ msgstr ""
 "ÎÎÎÎÎ ÎÏÎÎÏÏ. ÎÎÏÎÎÎÎ ÏÏÎÏÏÎÏ ÎÎÎÎÏÎÎÎÎÏÏ ÎÎ ÎÏÎÏÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÎÎÏÎ "
 "ÏÎ ÏÎÎÏÎÎÎ ÎÎÏÎ ÏÎ ÏÎÎÎÏÏÎÎÏÎÎÎ, ÎÎÎÎ ÏÏÎ ÎÎÎ ÏÎ ÎÏÎ ÎÎÎÎ."
 
-#: C/accessibility-devel-guide.xml:938(para)
+#: C/index.docbook:938(listitem/para)
 msgid ""
 "Don't assign awkward reaches to frequently performed keyboard operations. "
 "Some people may only be able to use one hand on the keyboard, so shortcuts "
@@ -2635,7 +2793,7 @@ msgstr ""
 "ÎÏÏÎÎÎÎÏ ÎÎÏÎÏÎÎÏ ÏÏÎ ÏÎÎÎÏÏÎÎÏÎÎÎ, ÎÏÏÏ ÎÏÎÏÎÎ ÎÎ ÎÏÎÎÏÎÎ ÏÎÏ ÏÎÎÏÎÎÏ ÏÏÎ "
 "ÎÏÏÎ ÎÎÎ ÏÎÎÏÏ ÏÎÏÏ ÏÏÎÏÏÎÏ, ÎÏÎÎÎÎÎÏÎÏ ÏÎÎ ÎÎÎÎÏÎÎ ÏÏÎÎÏ ÎÎÎ ÏÏÎÏÎÎÏÎÏÎÎÏ."
 
-#: C/accessibility-devel-guide.xml:943(para)
+#: C/index.docbook:943(listitem/para)
 msgid ""
 "Don't require repetitive use of simultaneous keypresses. Some users are only "
 "able to press and hold one key at a time. Assistive technologies such as "
@@ -2649,7 +2807,7 @@ msgstr ""
 "ÏÎ ÏÎÎÎÏÏÎ ÎÎÎÎÎÏÎÎÎ ÎÏÏ ÏÎ ÎÎ ÏÎ ÎÎÎÎÏÎ ÏÎÏÏÏÏÏÎÎÎ, ÎÎÎÎ ÎÏÏÏ ÏÏÏÎÎÎ "
 "ÏÎÎÎÎÎÎÎ ÏÏÎ Î ÏÏÏÎÎÏ ÏÎÏ ÎÎÎÎÎÎÎÏÎÎÏ ÎÎ ÎÎÎÎÎ ÎÎÎÎÎÏÏÎÏÎÏ."
 
-#: C/accessibility-devel-guide.xml:948(para)
+#: C/index.docbook:948(listitem/para)
 msgid ""
 "Ensure that any text that can be selected with the mouse can also be "
 "selected with the keyboard. This is a convenience for all users, but "
@@ -2660,7 +2818,7 @@ msgstr ""
 "ÎÎÎ ÏÎÎÏÏ ÏÎÏÏ ÏÏÎÏÏÎÏ, ÎÎÎÎ ÎÎÎÎÎÎ ÎÎÎ ÎÎÎÎÎÎÏÏ ÏÏÎ ÎÏÎÎÏÎ Î ÎÏÎÏÏ ÎÎÎÎÏÎÏ "
 "ÏÎÏ ÏÎÎÏÎÎÎÎÏ ÎÎÎÎÎ ÎÏÏÎÎÎÎÏ."
 
-#: C/accessibility-devel-guide.xml:953(para)
+#: C/index.docbook:953(listitem/para)
 msgid ""
 "Ensure that objects that can be resized or moved by drag and drop can also "
 "be resized or moved with the keyboard. For example, icons and windows on the "
@@ -2677,7 +2835,7 @@ msgstr ""
 "ÏÎÏ ÏÏÎÏÎÏÎÎÎÎÎÎÏ, Î ÎÎÎ ÎÎÏÎ ÎÎÎÏÎÎÏÎÏÎÏ ÎÎÏÎÎÎÎÎÎÎÏÎ ÏÎ ÎÎÎ ÏÎÎÎÎÎ ÏÎÏ "
 "ÎÎÎÎÏÎÎÎÏÎÎ ÎÏÏ ÏÎ ÏÏÎÏÏÎ."
 
-#: C/accessibility-devel-guide.xml:958(para)
+#: C/index.docbook:958(listitem/para)
 msgid ""
 "Don't use general navigation functions to trigger operations. For example, "
 "do not use basic <keycap>Tab</keycap> keyboard navigation in a dialog to "
@@ -2688,7 +2846,7 @@ msgstr ""
 "ÏÎÎÎÏÏÎÎÎÎÎÎÏ ÎÎ ÏÎ ÏÎÎÎÏÏÎ <keycap>Tab</keycap> ÏÎ ÎÎÎ ÎÎÎÎÎÎÎ ÎÏÎÎÏÎÎÎÏÎÏÎ "
 "ÎÎÎÏÎÎÎÏÎ ÏÎÏ ÏÏÎÏÎÎÎÎÏÎÎ ÎÎ ÎÎÎÎ ÎÎÎÎÏÎ."
 
-#: C/accessibility-devel-guide.xml:963(para)
+#: C/index.docbook:963(listitem/para)
 msgid ""
 "Show keyboard-invoked menus, windows and tooltips near the object they "
 "relate to. In GNOME 2.0, users can call up popup menus with "
@@ -2705,12 +2863,11 @@ msgstr ""
 "keycap></keycombo>. ÎÎÎ ÎÏÎÎÏÏÏÏÎÏÎ ÎÎÏÎÎÏÏ Î ÎÏÎÏÎÎÏÎÎÎÏÎ ÏÎ ÎÎÏÎÎÎÎÎÎÎÎ "
 "ÏÏÎ ÎÏÎÎÎ ÎÎÎÏÎÏÎÏÎÎ ÏÎ ÎÎÎÎÏ Î Î ÏÏÎÎÎÏÎÎ ÎÎÏÎÎÏ, ÏÎÏÎÎÎ ÎÏÏÎ."
 
-#: C/accessibility-devel-guide.xml:971(title)
-#: C/accessibility-devel-guide.xml:372(entry)
+#: C/index.docbook:971(section/title) C/index.docbook:372(row/entry)
 msgid "Mouse Interaction"
 msgstr "ÎÏÎÏÎ ÏÎÏ ÏÎÎÏÎÎÎÎÏ"
 
-#: C/accessibility-devel-guide.xml:972(para)
+#: C/index.docbook:972(section/para)
 msgid ""
 "Remember that not everybody can use a mouse with equal dexterity, and that "
 "some users may have difficulty seeing or following the mouse pointer."
@@ -2719,7 +2876,7 @@ msgstr ""
 "ÎÏÎÎÎÎÎÏÏÎÏÎ ÎÎÎ ÏÏÎ ÎÎÏÎÎÎÎ ÏÏÎÏÏÎÏ ÎÎÎÎÏÎÎÎÎÏÏ ÎÎ ÎÎÎ ÎÏÎÏÎÏÎ ÎÎ ÎÎÏÎ Î ÎÎ "
 "ÎÎÎÎÎÏÎÎÏÎÏÎ ÏÎ ÎÎÎÎÏÎ ÏÎÏ ÏÎÎÏÎÎÎÎÏ."
 
-#: C/accessibility-devel-guide.xml:977(para)
+#: C/index.docbook:977(listitem/para)
 msgid ""
 "Don't depend on input from mouse button 2 or button 3. As well as being "
 "physically more difficult to click, some pointing devices and many assistive "
@@ -2732,7 +2889,7 @@ msgstr ""
 "ÏÎÏÎÎÎÎÎÎÎÏ ÏÏÎÎÎÎÎÎÏÎÏ ÎÎÎ ÏÏÎÏÏÎÏÎÎÎÏÎ ÎÎÎÏÎÎÏ ÏÎ ÏÎÎÏÎÎÎ, ÎÎÎÎ ÎÎÏÎ ÎÎÎ "
 "ÎÏÏÏ ÏÏÎÏÎÎÎÏÎÎÎÏÎ ÏÎ ÏÎÎÎÏÏÎÎÏÎÎÎ."
 
-#: C/accessibility-devel-guide.xml:982(para)
+#: C/index.docbook:982(listitem/para)
 msgid ""
 "Allow all mouse operations to be cancelled. Pressing the <keycap>Esc</"
 "keycap> key should cancel any mouse operation in progress, such as dragging "
@@ -2745,7 +2902,7 @@ msgstr ""
 "ÎÎÏÎÏÎÏÎ ÎÎ ÎÏÏÎÎÏÎ ÏÎ ÎÎÎ ÎÎÎÏÎÎÏÎÏÏÎ ÎÏÏÎÎÏÎ , Î Î ÏÏÎÎÎÎÏÎ ÎÎÏÏ ÏÏÎÎÎÏÎÏ "
 "ÏÎ ÎÎÎ ÏÏÏÎÏÎÎÎÎ ÏÏÎÎÎÎÏÎÏ."
 
-#: C/accessibility-devel-guide.xml:987(para)
+#: C/index.docbook:987(listitem/para)
 msgid ""
 "Provide visual feedback throughout a drag and drop operation. As the mouse "
 "passes over valid targets, highlight them and change the mouse pointer. Use "
@@ -2759,7 +2916,7 @@ msgstr ""
 "ÏÏÎÎÏÎÏÎÎÏÏ ÎÎÎ ÎÎÏÎÏÎÏÎ. ÎÎÎÏÎ ÏÎ <link linkend=\"gad-mouse-examples"
 "\">ÎÎÏÎÎÎÎÎÎÎ ÎÎÎÎÏÎÏÎÏ ÏÎÎÏÎÎÎÎÏ</link>."
 
-#: C/accessibility-devel-guide.xml:992(para)
+#: C/index.docbook:992(listitem/para)
 msgid ""
 "Don't warp the mouse pointer, or restrict mouse movement to part of the "
 "screen. This can interfere with assistive technologies, and is usually "
@@ -2769,7 +2926,7 @@ msgstr ""
 "ÎÎÏÎÏ ÏÎÏ ÎÎÏÎÎÏ. ÎÏÏÏ ÎÎ ÏÏÎÎÏÎÏÏÏÎÎ ÎÎ ÏÎÏ ÏÎÏÎÎÎÎÎÎÎÏ ÏÏÎÎÎÎÎÎÏÎÏ, ÎÎÎ "
 "ÏÏÎÎÎÏÏ ÎÏÎÏÎÎÏÎÎ ÎÎÏÎÎ ÎÎÎ ÏÏÎÏÏÏ ÏÎÏ ÎÎÎ ÎÎÎÏÏÏÎÏÎÎ ÎÏÏ ÎÎ."
 
-#: C/accessibility-devel-guide.xml:997(para)
+#: C/index.docbook:997(listitem/para)
 msgid ""
 "Don't make mouse targets too small. In general, mouse targets should be at "
 "least the size of the \"hot area\" around the resizable window border in the "
@@ -2784,25 +2941,27 @@ msgstr ""
 "ÎÎÎÏÎÎÎÎ ÎÏÎÎÎÎÎÏÏÎÏÎ Î ÏÏÎÏÎ ÎÎÎÎÎÏÎÎÎÎÏÏ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎ ÎÎÎ ÎÎÎÏÎÎÏÎÏÏÎ "
 "ÏÎÏÎÎÏÏÏÎ ÎÎ ÎÎÎÎÎÎÏ ÏÎÏÎÎÏÎÏ ÎÏÏ ÏÎ ÏÏÎÎÏÎÎÎÎÎÎÎÎ ÎÎÎÎÎÎÏ."
 
-#: C/accessibility-devel-guide.xml:1004(title)
+#: C/index.docbook:1004(section/title)
 msgid "Mouse Interaction Examples"
 msgstr "ÎÎÏÎÎÎÎÎÎÎÏÎ ÏÏÎÏÎÎÎ ÎÎ ÏÎ ÏÏÎÏÎ ÏÎÏ ÏÎÎÏÎÎÎÎÏ"
 
-#: C/accessibility-devel-guide.xml:1006(title)
+#: C/index.docbook:1006(figure/title)
 msgid "Example of \"no-drop\" pointer from CDE/Motif"
 msgstr "ÎÎÏÎÎÎÎÎÎÎ ÎÎÎÎÏÎ \"no-drop\" ÎÏÏ CDE/Motif"
 
-#: C/accessibility-devel-guide.xml:1012(phrase)
-msgid "Example of an \"invalid drop target\" pointer shape"
-msgstr "ÎÎÏÎÎÎÎÎÎÎ ÎÎÏÏ ÏÏÎÎÎÏÎÏ ÎÎÎÎÏÎ \"ÎÎ ÎÎÎÏÏÎÏ ÏÏÎÎÏÎÏÎÏÏ ÎÎÎ ÎÎÏÎÏÎÏÎ\""
+#: C/index.docbook:1007(figure/mediaobject)
+msgid ""
+"<imageobject> <imagedata fileref=\"figures/nodrop.png\" format=\"PNG\"/> </"
+"imageobject> <textobject> <phrase>Example of an \"invalid drop target\" "
+"pointer shape</phrase> </textobject>"
+msgstr ""
 
-#: C/accessibility-devel-guide.xml:1020(title)
-#: C/accessibility-devel-guide.xml:55(title)
-#: C/accessibility-devel-guide.xml:404(entry)
+#: C/index.docbook:1020(section/title) C/index.docbook:55(section/title)
+#: C/index.docbook:404(row/entry)
 msgid "Graphical Elements"
 msgstr "ÎÏÎÏÎÎÎ ÏÏÎÎÏÎÎÎ"
 
-#: C/accessibility-devel-guide.xml:1021(para)
+#: C/index.docbook:1021(section/para)
 msgid ""
 "Provide options to customize the presentation of all the important graphical "
 "elements in your application. This will make it easier for people with "
@@ -2812,7 +2971,7 @@ msgstr ""
 "ÏÏÎÎÏÎÎÏÎ ÏÏÎÎ ÎÏÎÏÎÎÎÎ ÏÎÏ. ÎÏÏÏ ÎÎ ÏÎ ÎÎÎÎÎ ÏÎÎ ÎÏÎÎÎÎ ÏÏÎ ÏÏÎÏÎ ÎÎÎ ÎÏÎÎÎ "
 "ÎÎ ÏÏÎÎÎÎÎÎÏÎ ÏÏÎÏÎÏ Î ÎÎÏÏÏÎÎÎÏ ÎÎÎÏÎÏÎÏÎÏ."
 
-#: C/accessibility-devel-guide.xml:1026(para)
+#: C/index.docbook:1026(listitem/para)
 msgid ""
 "Don't hard-code graphic attributes such as line, border or shadow thickness. "
 "These elements should ideally be read from the GTK or window manager theme. "
@@ -2824,7 +2983,7 @@ msgstr ""
 "ÎÏÏ ÏÎ GTK Î ÏÎ ÎÎÎÎ ÏÎÏ ÎÎÎÏÎÎÏÎÏÏÎ ÏÎÏÎÎÏÏÏÎ. ÎÎ ÎÏÏÏ ÎÎÎ ÎÎÎÎÎ ÎÏÎÎÏÏ. "
 "ÏÎÏÎÏÎÏÎ ÎÏÎÎÎÎÎÏ ÎÎÏÏ ÏÎÏ ÎÏÎÏÎÎÎÎÏ ÏÎÏ ÎÎÎ ÏÏÎÏÎÏÎÎÎÏÎ ÏÎÏÏ."
 
-#: C/accessibility-devel-guide.xml:1031(para)
+#: C/index.docbook:1031(listitem/para)
 msgid ""
 "Provide descriptive names for all interface components. The GAIL library "
 "provides default accessible descriptions for many GTK widgets, but you will "
@@ -2841,7 +3000,7 @@ msgstr ""
 "ÎÎÏÎÎÎÏÎÏÏÎÏÎÏÎ ÏÎÏ ÏÏÎÎÏÎÎÎÎÎÏ ÎÎ ÏÎÎ ÎÎÎÎÎÏÎÎÎÏ Î ÏÎÎ ÎÎÎÎÎÎÏÎÎÎÎÏ "
 "ÏÎÏÎÎÏÎÏÎÏ ÎÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ ÏÎÏ ÏÏÎÏ ÎÏÏÏ ÎÎÎÎÎ ÎÏÎÎÏÏ."
 
-#: C/accessibility-devel-guide.xml:1036(para)
+#: C/index.docbook:1036(listitem/para)
 msgid ""
 "Allow multi-color graphical elements (e.g. toolbar icons) to be shown in "
 "monochrome only, if possible. These monochrome images should be shown in the "
@@ -2854,7 +3013,7 @@ msgstr ""
 "ÏÏÏÏÎÎÎÏÎÏ, ÏÎ ÎÏÎÎÎ ÎÏÎÎ ÎÏÎÎÎÎÎÎ Î ÏÏÎÏÏÎÏ (ÎÎ ÎÏÎÎÎÎÎ ÏÎÏ ÎÎÎÎÏÎÏ GTK) "
 "ÎÎÎ ÎÎÎÎÏÏÎ ÎÏÎÏÎÎÎÎÎ."
 
-#: C/accessibility-devel-guide.xml:1041(para)
+#: C/index.docbook:1041(listitem/para)
 msgid ""
 "Make interactive GUI elements easily identifiable. For example, do not make "
 "the user hover the mouse over an object to determine whether it is clickable "
@@ -2870,7 +3029,7 @@ msgstr ""
 "ÏÎÎÎÎÎÏÎÎ ÎÏÎÎÏÎ ÎÎÎÎÎÏÎÎÏÎ ÎÎÎÎ ÏÏÎÎ ÏÏÎÎÎÎÏÎÎÎ ÎÎÎ ÎÏÎÏÎ ÎÎÎÎÎÎ "
 "ÎÏÎÏÎÎÎÏÎÎ, ÎÎÏÏÏ ÎÎ ÏÎÏÎÏÎÏÎ ÎÏÎÏÎÏ ÎÎÎ ÎÏÎÎÎÎÎ ÎÏÎÎÎÏÎÎÏÎÎÎÏÎÏ ÏÎÏÏ."
 
-#: C/accessibility-devel-guide.xml:1046(para)
+#: C/index.docbook:1046(listitem/para)
 msgid ""
 "Provide an option to hide graphics that don't convey essential information. "
 "Graphical images can be distracting to users with some cognitive disorders. "
@@ -2883,13 +3042,12 @@ msgstr ""
 "ÏÎÏÎÎÎÎÎÎÎ, ÎÏÎÏÎÏÎ ÎÎ ÎÏÎÎÎÏÎÎÏÎÎÎÎÎÏÎ ÎÎÏ ÎÎÎÎÎÎÎÏÎÎÎ ÎÎ ÎÏÎÎÎÏÎÎ ÏÎ ÎÎÎÎÏ "
 "ÏÎÎÏÏÏ ÎÎÎÏÎÏÏÎÎÎÏ."
 
-#: C/accessibility-devel-guide.xml:1054(title)
-#: C/accessibility-devel-guide.xml:100(title)
-#: C/accessibility-devel-guide.xml:438(entry)
+#: C/index.docbook:1054(section/title) C/index.docbook:100(section/title)
+#: C/index.docbook:438(row/entry)
 msgid "Fonts and Text"
 msgstr "ÎÏÎÎÎÎÏÎÏÎÎÏÎÏ ÎÎÎ ÎÎÎÎÎÎÎ"
 
-#: C/accessibility-devel-guide.xml:1055(para)
+#: C/index.docbook:1055(section/para)
 msgid ""
 "Even to a user with normal vision, textual output provides the majority of "
 "the information and feedback in most applications. It is therefore critical "
@@ -2904,7 +3062,7 @@ msgstr ""
 "ÎÎÎ ÏÎ ÏÏÎÏÏÎ, ÏÏÏÎ ÎÎ ÎÎÎÎÎÏÎÎÎÏÎ ÏÏÎ ÎÏÎÎÎ ÎÎ ÏÏÎÎÎÎÎÎÏÎ ÏÏÎÏÎÏ ÎÏÎÏÎÏÎ "
 "ÎÏÎÏÎÏ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎ ÎÏÎÏÎÎÎÏÎÎÏÎÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ ÏÎÏ."
 
-#: C/accessibility-devel-guide.xml:1060(para)
+#: C/index.docbook:1060(listitem/para)
 msgid ""
 "Don't hard-code font styles and sizes. The user should be able to adjust all "
 "sizes and typefaces. If for some reason you cannot make this functionality "
@@ -2915,7 +3073,7 @@ msgstr ""
 "ÎÎÏÎÎÎ ÎÏÎÎ ÎÎÎ ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÎÏÎ ÎÎÎÎÎÏÎÎÎ ÎÏÏÎ ÏÎ ÎÎÎÏÎÏÏÎÎÎÏÏÎÏÎ, ÏÎÏÎ "
 "ÎÎ ÎÎÎ ÎÏÎÎÎÎÏÎÎÎÎÏÎ ÏÏÎÎÎÏÎ ÎÎÎÎÎÎ ÎÏÎÎÎÎÏÎÏÎÎÏÏÎ ÎÎÎÏÏÏÎÏÎ ÎÏÏ 10 ÏÏÎÏÎÏÏ."
 
-#: C/accessibility-devel-guide.xml:1065(para)
+#: C/index.docbook:1065(listitem/para)
 msgid ""
 "Provide options to turn off any graphical backdrops or \"watermarks\" behind "
 "text. Such images interfere with the contrast between the text and its "
@@ -2926,7 +3084,7 @@ msgstr ""
 "ÎÎÏÎÎÎÏÎ ÎÎÏÎÎÏ ÏÎÏ ÎÎÎÎÎÎÎÏ ÎÎÎ ÏÎÏ ÏÎÏÎÏÎÎÎÎÎÏ ÏÎÏ, ÏÎ ÎÏÎÎÎ ÎÏÎÏÎÎ ÎÎ "
 "ÏÏÎÎÎÎÎÏÎÎ ÎÏÏÎÎÎÎÎ ÎÎÎ ÏÏÎÏÏÎÏ ÎÎ ÏÏÎÎÎÎÎÎÏÎ ÏÏÎÏÎÏ."
 
-#: C/accessibility-devel-guide.xml:1070(para)
+#: C/index.docbook:1070(listitem/para)
 msgid ""
 "Label objects with names that make sense when taken out of context. Users "
 "relying on screen readers or similar assistive technologies will not "
@@ -2939,7 +3097,7 @@ msgstr ""
 "ÎÎÏÎÎÎÎÎÏÎ ÎÎÎÏÎ ÏÎ ÏÏÎÏÎ ÎÎÏÎÎÏ ÎÎÏÏ ÎÎÎÎÏÎÏ ÎÎÎ ÏÎÏ ÏÎÎÎÎÏÎÏ ÏÎÏ ÏÎ "
 "ÏÎÏÎÎÎÎÎÎÎ."
 
-#: C/accessibility-devel-guide.xml:1075(para)
+#: C/index.docbook:1075(listitem/para)
 msgid ""
 "Don't use the same label more than once in the same window. If you use the "
 "same label in different windows, it will help if it means the same thing in "
@@ -2954,7 +3112,7 @@ msgstr ""
 "ÎÏÎ,, Ï.Ï. ÏÏÎ ÎÎÎÎÎÎÎ ÎÎ ÎÎÎÎÎÏ \"Read\" ÎÎÎ \"Red\", ÎÏÎÎÎÎ ÎÏÏÏ ÎÎ "
 "ÎÏÎÏÏÎÏÎÎÎÏÏÎÎÎÎ ÏÎÏÏ ÏÏÎÏÏÎÏ ÏÎÏ ÏÏÎÏÎÎÎÎÏÎÎ ÏÎ ÎÎÎÎÎÏÏÏÎÏ ÎÎÏÎÎÏ."
 
-#: C/accessibility-devel-guide.xml:1080(para)
+#: C/index.docbook:1080(listitem/para)
 msgid ""
 "Position labels consistently throughout your application. This normally "
 "means immediately below large icons, immediately to the right of small "
@@ -2966,7 +3124,7 @@ msgstr ""
 "ÎÏÎÏÎÎÎÎÏ ÏÎÎÏ Î ÏÏÎ ÎÏÎÏÏÎÏÎ ÏÏÎ ÎÎÎÏÎ ÎÎÎÎÏÏÎ. ÎÎÎÏÎ ÏÎ <link linkend="
 "\"gad-font-examples\">ÎÎÏÎÎÎÎÎÎÎÏÎ ÎÏÎÎÎÎÏÎÏÎÎÏÏÎ ÎÎÎ ÎÎÎÎÎÎÎÏ</link>."
 
-#: C/accessibility-devel-guide.xml:1085(para)
+#: C/index.docbook:1085(listitem/para)
 msgid ""
 "When you use static text to label a control, end the label with a colon. For "
 "example, <guilabel>Username:</guilabel> to label a text field into which the "
@@ -2979,7 +3137,7 @@ msgstr ""
 "ÏÏÎÏÏÎÏ ÎÎ ÏÎÎÎÏÏÎÎÎÎÎÏÎÎ ÏÎ ÏÎÎÎÎ ÏÏÎÏÏÎ. ÎÏÏÏ ÎÎ ÏÎÎ ÎÎÎÎÎÏÎÎ ÎÎ ÏÎ "
 "ÎÎÎÎÎÏÏÎÏÎÎ ÏÏ ÎÏÎÎÎÏÎ ÎÎÎÎÏÎÏ ÎÎÏÎ ÎÎÎ ÎÎÎ ÎÎÎÎÎÏÏÎÏÎ ÏÏÎÎÏÎÎÎ ÎÎÎÎÎÎÎÏ."
 
-#: C/accessibility-devel-guide.xml:1090(para)
+#: C/index.docbook:1090(listitem/para)
 msgid ""
 "When you use static text to label a control, ensure that the label "
 "immediately precedes that control in the Tab order. This will ensure that "
@@ -2992,7 +3150,7 @@ msgstr ""
 "ÎÎÎÏÎÎÎÏÎÎ ÏÏÎÎ ÎÏÎÎÎÏÎ ÎÎ ÎÎÏÎÎÎÎÎÏÎÎ ÏÎÎ ÎÏÏÎÎÏÎÏ Î ÎÎ ÎÎÎÏÎÎÏÎÎÎÏÎÎ ÏÎ "
 "ÏÏÏÏÏ ÎÎÎÎÏÎ ÏÏÎÎ ÏÎÎ ÏÎÎÏÎÏÎ."
 
-#: C/accessibility-devel-guide.xml:1095(para)
+#: C/index.docbook:1095(listitem/para)
 msgid ""
 "Provide alternatives to WYSIWYG. Some users may need to print text in a "
 "small font but edit in a larger screen font, for example. Possible "
@@ -3019,55 +3177,72 @@ msgstr ""
 "ÎÏÎÎÏÏÎÎÎÏÏ ÎÎÎÎÏÎÏÏ, ÎÏÎÎÎÎÎÏÎ ÎÎ ÎÏÎÏÏÎÏÎÏÎ ÏÏÎ ÏÎÎÎÏÎÎ ÎÎ ÎÎÎÎÎÎÏÎ "
 "ÎÎÎÎÎÎÏ ÎÎÏÎ ÎÎÎÎÏ ÏÎÏ ÎÎÎÎÎÎÏ ÏÎÏÎÎÏÏÎÏ."
 
-#: C/accessibility-devel-guide.xml:1102(title)
+#: C/index.docbook:1102(section/title)
 msgid "Fonts and Text Examples"
 msgstr "ÎÎÏÎÎÎÎÎÎÎÏÎ ÎÏÎÎÎÎÏÎÏÎÎÏÏÎ ÎÎÎ ÎÎÎÎÎÎÎÏ"
 
-#: C/accessibility-devel-guide.xml:1104(title)
+#: C/index.docbook:1104(figure/title)
 msgid "Correct label placement for various GUI elements"
 msgstr "ÎÏÎÎ ÏÎÏÎÎÎÏÎÏÎ ÎÏÎÎÎÏÏÎ ÎÎÎ ÎÎÎÏÎÏÎ ÏÏÎÎÏÎÎÎ ÏÎÏÎÎÎÎÎÎÎÏÎÏ"
 
-#: C/accessibility-devel-guide.xml:1115(phrase)
-msgid "List control with label above"
-msgstr "ÎÎÏÎÎÎÏÎÎÏÎÎÎÏÎ ÎÎÎÎÏÎÏ ÎÎ ÎÏÎÎÎÏÎ ÎÏÏ ÏÎÎÏ"
+#: C/index.docbook:1110(entry/mediaobject)
+msgid ""
+"<imageobject> <imagedata fileref=\"figures/label_above.png\" format=\"PNG\"/"
+"> </imageobject> <textobject> <phrase>List control with label above</phrase> "
+"</textobject>"
+msgstr ""
 
-#: C/accessibility-devel-guide.xml:1109(entry)
-msgid "<placeholder-1/> List control with label above"
-msgstr "<placeholder-1/> ÎÎÏÎÎÎÏÎÎÏÎÎÎÏÎ ÎÎÎÎÏÎÏ ÎÎ ÎÏÎÎÎÏÎ ÎÏÏ ÏÎÎÏ"
+#: C/index.docbook:1109(row/entry)
+msgid "<_:mediaobject-1/> List control with label above"
+msgstr "<_:mediaobject-1/> ÎÎÏÎÎÎÏÎÎÏÎÎÎÏÎ ÎÎÎÎÏÎÏ ÎÎ ÎÏÎÎÎÏÎ ÎÏÏ ÏÎÎÏ"
 
-#: C/accessibility-devel-guide.xml:1126(phrase)
-msgid "Large file manager icon with label underneath"
-msgstr "ÎÎÎÎÎÎ ÎÎÎÎÎÎÎÎÎ ÎÎÎÏÎÎÏÎÏÏÎ ÎÏÏÎÎÏÎ ÎÎ ÎÏÎÎÎÏÎ ÎÏÏ ÎÎÏÏ"
+#: C/index.docbook:1121(entry/mediaobject)
+msgid ""
+"<imageobject> <imagedata fileref=\"figures/label_below.png\" format=\"PNG\"/"
+"> </imageobject> <textobject> <phrase>Large file manager icon with label "
+"underneath</phrase> </textobject>"
+msgstr ""
+"<imageobject> <imagedata fileref=\"figures/label_below.png\" format=\"PNG\"/"
+"> </imageobject> <textobject> <phrase>ÎÎÎÎÎÎ ÎÎÎÎÎÎÎÎÎ ÏÎÏ ÎÎÎÏÎÎÏÎÏÏÎ "
+"ÎÏÏÎÎÏÎ ÎÎ ÎÏÎÎÎÏÎ ÎÏÏ ÎÎÏÏ</phrase> </textobject>"
 
-#: C/accessibility-devel-guide.xml:1120(entry)
-msgid "<placeholder-1/> Large file manager icon with label underneath"
+#: C/index.docbook:1120(row/entry)
+msgid "<_:mediaobject-1/> Large file manager icon with label underneath"
 msgstr ""
-"<placeholder-1/> ÎÎÎÎÎÎ ÎÎÎÎÎÎÎÎÎ ÎÎÎÏÎÎÏÎÏÏÎ ÎÏÏÎÎÏÎ ÎÎ ÎÏÎÎÎÏÎ ÎÏÏ ÎÎÏÏ"
+"<_:mediaobject-1/> ÎÎÎÎÎÎ ÎÎÎÎÎÎÎÎÎ ÎÎÎÏÎÎÏÎÏÏÎ ÎÏÏÎÎÏÎ ÎÎ ÎÏÎÎÎÏÎ ÎÏÏ ÎÎÏÏ"
 
-#: C/accessibility-devel-guide.xml:1137(phrase)
-msgid "Small toolbar icon with label to its right"
-msgstr "ÎÎÎÏÏ ÎÎÎÎÎÎÎÎÎ ÎÏÎÎÎÎÎÎÎÎÎÎÏ ÎÎ ÎÏÎÎÎÏÎ ÏÏÎ ÎÎÎÎÎ ÏÎÏ"
+#: C/index.docbook:1132(entry/mediaobject)
+msgid ""
+"<imageobject> <imagedata fileref=\"figures/label_right.png\" format=\"PNG\"/"
+"> </imageobject> <textobject> <phrase>Small toolbar icon with label to its "
+"right</phrase> </textobject>"
+msgstr ""
+"<imageobject> <imagedata fileref=\"figures/label_right.png\" format=\"PNG\"/"
+"> </imageobject> <textobject> <phrase>ÎÎÎÏÏ ÎÎÎÎÎÎÎÎÎ ÎÏÎÎÎÎÎÎÎÎÎÎÏ ÎÎ "
+"ÎÏÎÎÎÏÎ ÏÏÎ ÎÎÎÎÎ ÏÎÏ</phrase> </textobject>"
 
-#: C/accessibility-devel-guide.xml:1131(entry)
-msgid "<placeholder-1/> Small toolbar icon with label to its right"
+#: C/index.docbook:1131(row/entry)
+msgid "<_:mediaobject-1/> Small toolbar icon with label to its right"
 msgstr ""
-"<placeholder-1/> ÎÎÎÏÏ ÎÎÎÎÎÎÎÎÎ ÎÏÎÎÎÎÎÎÎÎÎÎÏ ÎÎ ÎÏÎÎÎÏÎ ÏÏÎ ÎÎÎÎÎ ÏÎÏ"
+"<_:mediaobject-1/> ÎÎÎÏÏ ÎÎÎÎÎÎÎÎÎ ÎÏÎÎÎÎÎÎÎÎÎÎÏ ÎÎ ÎÏÎÎÎÏÎ ÏÏÎ ÎÎÎÎÎ ÏÎÏ"
 
-#: C/accessibility-devel-guide.xml:1148(phrase)
-msgid "Spinbox control with label to its left"
-msgstr "ÎÎÏÎÏÏÏÎÏÏÎÎÎÎÏ ÎÎÎÎÏÎÏ ÎÎ ÎÏÎÎÎÏÎ ÏÏÎ ÎÏÎÏÏÎÏÎ ÏÎÏ"
+#: C/index.docbook:1143(entry/mediaobject)
+msgid ""
+"<imageobject> <imagedata fileref=\"figures/label_left.png\" format=\"PNG\"/> "
+"</imageobject> <textobject> <phrase>Spinbox control with label to its left</"
+"phrase> </textobject>"
+msgstr ""
 
-#: C/accessibility-devel-guide.xml:1142(entry)
-msgid "<placeholder-1/> Spinbox control with label to its left"
-msgstr "<placeholder-1/> ÎÎÏÎÏÏÏÎÏÏÎÎÎÎÏ ÎÎÎÎÏÎÏ ÎÎ ÎÏÎÎÎÏÎ ÏÏÎ ÎÏÎÏÏÎÏÎ ÏÎÏ"
+#: C/index.docbook:1142(row/entry)
+msgid "<_:mediaobject-1/> Spinbox control with label to its left"
+msgstr "<_:mediaobject-1/> ÎÎÏÎÏÏÏÎÏÏÎÎÎÎÏ ÎÎÎÎÏÎÏ ÎÎ ÎÏÎÎÎÏÎ ÏÏÎ ÎÏÎÏÏÎÏÎ ÏÎÏ"
 
-#: C/accessibility-devel-guide.xml:1162(title)
-#: C/accessibility-devel-guide.xml:121(title)
-#: C/accessibility-devel-guide.xml:490(entry)
+#: C/index.docbook:1162(section/title) C/index.docbook:121(section/title)
+#: C/index.docbook:490(row/entry)
 msgid "Color and Contrast"
 msgstr "ÎÏÏÎÎÏÎ ÎÎÎ ÎÎÏÎÎÎÏÎ"
 
-#: C/accessibility-devel-guide.xml:1163(para)
+#: C/index.docbook:1163(section/para)
 msgid ""
 "Poor choice of colors on the screen can cause problems for users with color "
 "blindness (for whom hue is important) or low-vision (for whom brightness/"
@@ -3082,7 +3257,7 @@ msgstr ""
 "ÏÏÏÎÎÏÎ ÏÎ ÎÏÎÎÎÎÎÏÎÏÎ ÏÎÎÎÎ ÏÎÏ ÎÏÎÏÎÎÎÎÏ ÏÎÏ ÏÎÏ ÎÎÏÎÏÎÏÎÎ ÏÎÎÎÎÏÎÎÎÏ "
 "ÏÎÎÏÎÏÎÏÎÎÏ."
 
-#: C/accessibility-devel-guide.xml:1166(para)
+#: C/index.docbook:1166(section/para)
 msgid ""
 "Users with visual impairments may require a high level of contrast between "
 "the background and text colors. Often a black background and white text is "
@@ -3095,7 +3270,7 @@ msgstr ""
 "\"ÏÏÎÏÏÏÎ\". ÎÏÏÎ ÎÎ ÏÏÎÎÎÏÎÏÎ ÎÎÎÎÎ ÎÏÎÏÎÎÎÏ ÎÎÎ ÏÏÎÏÏÎÏ ÎÎ ÏÏÎÎÎÎÎÎÏÎ "
 "ÏÏÎÏÎÏ."
 
-#: C/accessibility-devel-guide.xml:1171(para)
+#: C/index.docbook:1171(listitem/para)
 msgid ""
 "Don't hard-code application colors. Some users need to use particular "
 "combinations of colors and levels of contrast to be able to read the screen "
@@ -3114,7 +3289,7 @@ msgstr ""
 "ÎÏÎÎ ÏÏÎÎÎÎÎÏÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÏÏÏÎÎÏÎ ÏÎÏ ÎÎÎ ÎÎÎÎÎ ÎÎÎÎÎÏÎÎÎ ÏÏÎ ÎÎÎÎ, "
 "ÎÎÎÎÎÏÎÎÎÏÎ ÏÏÎ ÎÎÎÎÎ ÏÏÎÏÎÏÎÏÏÎÎÎ ÎÎÏÏÏ ÏÎÏ ÎÏÎÏÎÎÎÎÏ."
 
-#: C/accessibility-devel-guide.xml:1176(para)
+#: C/index.docbook:1176(listitem/para)
 msgid ""
 "Don't use color as the only means to distinguish items of information. All "
 "such information should be provided by at least one other method, such as "
@@ -3127,7 +3302,7 @@ msgstr ""
 "linkend=\"gad-color-examples\">ÎÎÏÎÎÎÎÎÎÎÏÎ ÏÏÏÎÎÏÏÎ ÎÎÎ ÏÏÎÎÎÏ ÎÎÏÎÎÎÏÎÏ</"
 "link>."
 
-#: C/accessibility-devel-guide.xml:1181(para)
+#: C/index.docbook:1181(listitem/para)
 msgid ""
 "Support all the high contrast GNOME themes. Ensure that when one of these "
 "themes is selected, all the text in your application appears in the high "
@@ -3138,7 +3313,7 @@ msgstr ""
 "ÎÎÏÎÎÎÎÎÏÎÎ ÏÏÎ ÏÏÎÏÎÎÎÎÎ ÎÎ ÏÏÎÎÎ ÎÎÏÎÎÎÏÎ ÎÎÎ ÏÏÎ ÏÏÏÎÎÏÎ ÏÎÏ ÏÎÏÎÏÎÎÎÎÎÏ "
 "ÏÎÏ ÎÎÎÎÏÎÏÏÎÎÎÎ ÎÏÏ ÏÎ ÎÎÎÎ."
 
-#: C/accessibility-devel-guide.xml:1186(para)
+#: C/index.docbook:1186(listitem/para)
 msgid ""
 "Ensure your application is not dependent on a particular high-contrast "
 "theme. Test it with different high-contrast themes to ensure your "
@@ -3148,20 +3323,22 @@ msgstr ""
 "ÏÏÎÎÎÏ ÎÎÏÎÎÎÏÎÏ. ÎÎÎÎÎÏÎ ÏÎ ÎÎ ÎÎÎÏÎÏÎÏÎÎÎ ÎÎÎÎÏÎ ÏÏÎÎÎÏ ÎÎÏÎÎÎÏÎÏ ÎÎÎ ÎÎ "
 "ÎÎÎÎÎÏÎÎÎÏÎ ÏÏÎ Î ÎÏÎÏÎÎÎÎ ÏÎÏ ÎÎÎÏÎÏÎÎ ÏÎÏ ÏÏÎÎÎÏÎÎÏ."
 
-#: C/accessibility-devel-guide.xml:1193(title)
+#: C/index.docbook:1193(section/title)
 msgid "Color and Contrast Examples"
 msgstr "ÎÎÏÎÎÎÎÎÎÎÏÎ ÏÏÎÏÎÎÎ ÎÎ ÏÎ ÏÏÏÎÎÏÎ ÎÎÎ ÏÎÎ ÎÎÏÎÎÎÏÎ"
 
-#: C/accessibility-devel-guide.xml:1195(title)
+#: C/index.docbook:1195(example/title)
 msgid "Example illustrating redundant use of color"
 msgstr "ÎÎÏÎÎÎÎÎÎÎ ÎÏÎÏÏÏÏÏÎÏ ÏÎÏ ÏÎÏÎÏÏÎÏ ÏÏÎÏÎÏ ÏÏÏÎÎÏÎÏ"
 
-#: C/accessibility-devel-guide.xml:1206(phrase)
-msgid "Example showing changes in stock price using color only"
+#: C/index.docbook:1201(entry/mediaobject)
+msgid ""
+"<imageobject> <imagedata fileref=\"figures/color_only.png\" format=\"PNG\"/> "
+"</imageobject> <textobject> <phrase>Example showing changes in stock price "
+"using color only</phrase> </textobject>"
 msgstr ""
-"ÎÎÏÎÎÎÎÎÎÎ ÏÎÏ ÎÎÏÎÎÎÎÎÎ ÏÎÏ ÎÎÎÎÎÎÏ ÏÏÎÎ ÏÎÎÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÎÏÎÎ ÏÏÏÎÎ"
 
-#: C/accessibility-devel-guide.xml:1210(entry)
+#: C/index.docbook:1210(row/entry)
 msgid ""
 "This display could cause problems for a red-green color-blind user (color-"
 "blindness affects as many as 1 in 7 males in some parts of the world). The "
@@ -3174,39 +3351,36 @@ msgstr ""
 "ÎÎÎÎÎÎÎÏ ÎÎÎ ÏÎÏ ÎÎÏÏÎÏ ÏÎÏÎÏÎÎÎÎÎÏ ÎÎ ÎÏÎÏÎÏÏÎ ÎÏÎÏÎÏ ÎÎ ÎÎÎÎÎ ÎÏÏÎÎÎÎ ÏÎÎ "
 "ÎÎÎÎÎÏÏÎ ÎÏÏ ÎÎÎ ÏÏÎÏÏÎ ÎÎ ÏÎÎÎÎÎ ÏÏÎÏÎ, ÎÎÏÎÎ ÎÎÎ ÎÎ ÎÎÎ ÎÎÎÎÎÏÎÏÎ ÎÎÏÎÎÏ."
 
-#: C/accessibility-devel-guide.xml:1221(phrase)
-msgid "Example showing changes in stock price using both color and arrows"
+#: C/index.docbook:1216(entry/mediaobject)
+msgid ""
+"<imageobject> <imagedata fileref=\"figures/color_and_arrows.png\" format="
+"\"PNG\"/> </imageobject> <textobject> <phrase>Example showing changes in "
+"stock price using both color and arrows</phrase> </textobject>"
 msgstr ""
-"ÎÎÏÎÎÎÎÎÎÎ ÏÏÎÎÎÎÎÏ ÏÏÎ ÎÎÎÎÎÏÎ ÏÏÎÎ ÏÎÎÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÏÏÎÎÏÎ ÎÎÎ ÎÎÎÎ"
-
-#: C/accessibility-devel-guide.xml:1226(guilabel)
-msgid "Preferences"
-msgstr "ÎÏÎÎÎÏÎÎÏ"
 
-#: C/accessibility-devel-guide.xml:1225(entry)
+#: C/index.docbook:1225(row/entry)
 msgid ""
 "This display reinforces the color-coding with arrows to show the stock price "
 "movement, and uses darker shades of green and red on a lighter background to "
 "provide higher contrast. This needn't be the default color scheme if testing "
 "were to show it to be too distracting for the majority of users, but it "
 "should be possible to customize it in this way either by theming or via the "
-"application's <placeholder-1/> dialog."
+"application's <guilabel>Preferences</guilabel> dialog."
 msgstr ""
 "ÎÏÏÎ Î ÏÏÎÎÎÎÎ ÎÎÎÏÏÏÎÎ ÏÎÎ ÎÏÎÎÎÎÏÎÎÎÏÎ ÏÏÏÎÎÏÏÎ ÎÎ ÎÎÎÎ ÎÎÎ ÏÎÎ ÏÏÎÎÎÎÎ "
 "ÏÎÏ ÎÎÎÎÏÎÏ ÏÎÏ ÏÎÎÎÏ, ÎÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎ ÏÎÎ ÏÎÎÏÎÎÎÎÏ ÏÎÎÎÏ ÏÎÏ ÏÏÎÏÎÎÎÏ ÎÎÎ "
-"ÏÎÏ ÎÏÎÎÎÎÎÏ ÏÏÏÎÎÏÎÏ ÏÎ ÎÎÎ ÏÎÏÎÏÎÎÎÎÎÏ ÏÎÎ ÎÎÎÎÎÏÎÏ ÏÏÏÎÎÏÎÏ ÎÎÎ ÎÎ "
-"ÏÎÏÎÏÎÎ ÎÏÏÎ ÏÏÎÎÏÏÎÏÎ ÎÎÏÎÎÎÏÎ. ÎÏÏÏ ÎÎÎ ÏÏÎÎÎÎÎÏÎÎ ÎÎ ÎÎÎÎÎ ÏÎ "
-"ÏÏÎÎÏÎÎÎÎÎÎÎÎ ÏÏÎÎÎ ÏÏÏÎÎÏÏÎ ÎÎ Î ÎÎÎÎÏÎÏ ÎÏÎÎ Î ÎÎÏÎÎÎÏÎ ÏÎÏ ÎÎ ÎÎÎÎÎ ÏÎÎ "
-"ÎÎÎÏÏÎÏÏÎÎÎ ÎÎÎ ÏÎÎ ÏÎÎÎÎÏÎÏÎÎ ÏÏÎÏÏÏÎ, ÎÎÎÎ ÎÎ ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎ ÎÏÎÎÏÎ Î "
-"ÏÏÎÏÎÏÎÎÎÎ ÏÎÏ ÎÎ ÎÏÏÏÎ ÏÎÎ ÏÏÏÏÎ ÎÎÏÎ ÎÎÎÎÎÎÎÏÎÏ ÎÎÎÎ ÎÎÏÎ ÎÎÏÏ ÏÎÏ "
-"ÎÎÎÎÏÎÎÏ <placeholder-1/> ÏÎÏ ÎÏÎÏÎÎÎÎÏ."
-
-#: C/accessibility-devel-guide.xml:1237(title)
-#: C/accessibility-devel-guide.xml:525(entry)
+"ÏÎÏ ÎÏÎÎÎÎÎÏ ÏÏÏÎÎÏÎÏ ÏÎ ÎÎÎ ÏÎÏÎÏÎÎÎÎÎ ÏÎÎ ÎÎÎÎÎÏÎÏ ÏÏÏÎÎÏÎÏ ÎÎÎ ÎÎ ÏÎÏÎÏÎÎ "
+"ÎÏÏÎ ÏÏÎÎÏÏÎÏÎ ÎÎÏÎÎÎÏÎ. ÎÏÏÏ ÎÎÎ ÏÏÎÎÎÎÎÏÎÎ ÎÎ ÎÎÎÎÎ ÏÎ ÏÏÎÎÏÎÎÎÎÎÎÎÎ ÏÏÎÎÎ "
+"ÏÏÏÎÎÏÏÎ ÎÎ Î ÎÎÎÎÏÎÏ ÎÏÎÎ Î ÎÎÏÎÎÎÏÎ ÏÎÏ ÎÎ ÎÎÎÎÎ ÏÎÎ ÎÎÎÏÏÎÏÏÎÎÎ ÎÎÎ ÏÎÎ "
+"ÏÎÎÎÎÏÎÏÎÎ ÏÏÎÏÏÏÎ, ÎÎÎÎ ÎÎ ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎ ÎÏÎÎÏÎ Î ÏÏÎÏÎÏÎÎÎÎ ÏÎÏ ÎÎ ÎÏÏÏÎ "
+"ÏÎÎ ÏÏÏÏÎ ÎÎÏÎ ÎÎÎÎÎÎÎÏÎÏ ÎÎÎÎ ÎÎÏÎ ÎÎÏÏ ÏÎÏ ÎÎÎÎÏÎÎÏ <guilabel>ÎÏÎÏÎÎÎÏÎÎÏ</"
+"guilabel> ÏÎÏ ÎÏÎÏÎÎÎÎÏ."
+
+#: C/index.docbook:1237(section/title) C/index.docbook:525(row/entry)
 msgid "Magnification"
 msgstr "ÎÎÎÎÎÏÎÏÎ"
 
-#: C/accessibility-devel-guide.xml:1238(para)
+#: C/index.docbook:1238(section/para)
 msgid ""
 "Many users, even those not visually impaired, benefit from magnification of "
 "text and graphics. However, without magnification, a visually impaired user "
@@ -3217,11 +3391,11 @@ msgstr ""
 "ÎÎÎÎÎÏÎÏÎ, ÎÎÎÏ ÏÏÎÏÏÎÏ ÎÎ ÏÏÎÎÎÎÎÎÏÎ ÏÏÎÏÎÎÏ ÎÎÎÎÏÎÎÎÎÏÏ ÎÎ ÎÎÎ ÎÏÎÏÎÎ ÎÎ "
 "ÎÏÎÎ ÏÏÏÏÎÎÏÎ ÎÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÎÎÎÏÎÎÏ ÏÎ ÏÏÏÎÏÎÎÎÎ."
 
-#: C/accessibility-devel-guide.xml:1243(para)
+#: C/index.docbook:1243(listitem/para)
 msgid "Provide the ability for the user to magnify the work area."
 msgstr "ÎÎÏÎÏÎÏÎ ÏÏÎ ÏÏÎÏÏÎ ÏÎ ÎÏÎÎÏÏÏÎÏÎ ÎÎÎÎÎÏÎÏÎÏ ÏÎÏ ÏÎÏÎÎÏÎÏ ÎÏÎÎÏÎÎÏ."
 
-#: C/accessibility-devel-guide.xml:1248(para)
+#: C/index.docbook:1248(listitem/para)
 msgid ""
 "Provide options in the application to scale the work area. Users need to "
 "have an option to magnify the work area 150% to 400% or more. Test the "
@@ -3234,13 +3408,12 @@ msgstr ""
 "ÏÏÎ ÏÎ ÎÎÏÎÎÎÎÎÎÎÎ ÏÎÏ ÏÏÎÎÎÎÎÏÎ ÎÎÎ ÎÏÎÏÎÎÎÎÏÎÎ ÎÏÏ ÏÎÎ ÎÎÎÎÎÎ ÏÏÎ "
 "ÏÏÎÎÎÏÎÏÎ ÎÎÎÎÎÏÎÏÎÏ."
 
-#: C/accessibility-devel-guide.xml:1256(title)
-#: C/accessibility-devel-guide.xml:152(title)
-#: C/accessibility-devel-guide.xml:554(entry)
+#: C/index.docbook:1256(section/title) C/index.docbook:152(section/title)
+#: C/index.docbook:554(row/entry)
 msgid "Audio"
 msgstr "ÎÏÎÏ"
 
-#: C/accessibility-devel-guide.xml:1257(para)
+#: C/index.docbook:1257(section/para)
 msgid ""
 "People who have difficulty hearing, as well as those who work with the sound "
 "on their computers turned off, will be disadvantaged if your application "
@@ -3253,7 +3426,7 @@ msgstr ""
 "ÎÎÎÎÎÏÎÎÎÏÎ ÏÏÎ Î ÏÏÎÏÏÎÏ ÎÏÎÏÎÎ ÎÎ ÎÏÎÎ ÎÏÎÎÎÏÎÎÏÎÏÎ ÎÏÎÏÎÎÎÏ ÏÎÎÏÎÏÎÏÎÎÏ "
 "ÏÎÏ ÎÎ ÎÎÏÎÏÎÏÎÎÏÎÎ ÎÎ ÎÎÎÎÏÏ ÏÏÏÏÎÏÏ."
 
-#: C/accessibility-devel-guide.xml:1262(para)
+#: C/index.docbook:1262(listitem/para)
 msgid ""
 "Don't assume that a user will hear audio information. This applies as much "
 "to users with broken soundcards as it does to those with hearing impairments!"
@@ -3262,7 +3435,7 @@ msgstr ""
 "ÏÏÎÎÎÎÎÎÎ ÏÎ ÏÏÎÏÏÎÏ ÏÎÏ ÎÏÎÏÎ ÏÏÎÎÎÎÎÎÏÎ ÎÎ ÏÎÎ ÎÎÏÏÎ ÎÏÎÏ ÏÎÏÏ ÏÏÏÏ ÎÏÎÏÎÏ "
 "ÎÎÎ ÏÎ ÏÏÎÏÏÎÏ ÎÎ ÏÏÎÎÎÎÎÎÏÎ ÏÏÎÏÎÏ!"
 
-#: C/accessibility-devel-guide.xml:1267(para)
+#: C/index.docbook:1267(listitem/para)
 msgid ""
 "Don't use audio as the only means of conveying information. Give the user "
 "the option to have all audio information provided in a visual way as well. "
@@ -3274,7 +3447,7 @@ msgstr ""
 "ÎÏÏÎÎÏ ÏÏÏÏÎ ÎÏÎÏÎÏ. ÎÏÏÏ ÏÎÏÎÎÎÎÎÎÎÎÎ ÏÎÎ ÏÎÏÎÏÎ ÎÎÎÎÏÎÎÎÏÎ ÎÎÎÎÎÏÏÎ Î "
 "ÎÎÏÎÎÏÎÏÏÎ ÎÎÎ ÎÏÎÎÎÎÎÏÎÏÎ ÏÎÎÎÎÏÎÎÎ ÎÎÎÎÎÏÎÏÎ ÎÏÎÏÎÎÎ ÎÏÎÏÏÎÏÎÎÏÎ ÎÎÎÏÎÎ."
 
-#: C/accessibility-devel-guide.xml:1272(para)
+#: C/index.docbook:1272(listitem/para)
 msgid ""
 "Allow users to configure frequency and volume of all warning beeps and other "
 "sounds. This includes being able to turn off sound altogether."
@@ -3283,13 +3456,12 @@ msgstr ""
 "ÎÏÎÏ ÎÎÎÎÏÎÎÎÏÎÏÎ ÎÎÎ ÎÎÎÏÎ ÎÏÏÎ. ÎÏÏÏ ÏÎÏÎÎÎÎÎÎÎÎÎ ÏÎ ÎÏÎÎÏÏÏÎÏÎ "
 "ÎÏÎÎÎÏÎÎÏÎÎÎÏÎÏ  ÏÎÏÎ ÏÏÎ ÎÏÏÎ ÎÎÎÎ."
 
-#: C/accessibility-devel-guide.xml:1280(title)
-#: C/accessibility-devel-guide.xml:179(title)
-#: C/accessibility-devel-guide.xml:578(entry)
+#: C/index.docbook:1280(section/title) C/index.docbook:179(section/title)
+#: C/index.docbook:578(row/entry)
 msgid "Animation"
 msgstr "ÎÎÎÎÏÎÎÎÎÏ ÎÎÎÏÎÎÏ"
 
-#: C/accessibility-devel-guide.xml:1281(para)
+#: C/index.docbook:1281(section/para)
 msgid ""
 "Used sparingly, animation can be useful for drawing attention to important "
 "information in your application - and it can look cool, too. However, it can "
@@ -3301,7 +3473,7 @@ msgstr ""
 "ÏÏÎÎÎÎÎÎÏÎÎÎ ÎÎÎ ÎÎÏÎÎÎÏÏ ÏÏÎÏÏÎÏ, ÎÏÏÎ ÎÎÎÎÎÏÎÎÎÏÎ ÏÏÎ ÎÏÎÏÎÏÎ ÎÎ "
 "ÎÏÎÎÎÏÎÎÏÎÎÎÏÎÏÎÎ."
 
-#: C/accessibility-devel-guide.xml:1286(para)
+#: C/index.docbook:1286(listitem/para)
 msgid ""
 "Don't use flashing or blinking elements having a frequency greater than 2 Hz "
 "and lower than 55 Hz. This includes text as well as any graphical objects. "
@@ -3321,7 +3493,7 @@ msgstr ""
 "ÎÎÎÎÎ ÏÏÎÏÎÏÎÏÏÎÎÎ), Î ÎÎ ÎÏÎÏÏÎÏÎÏÎ ÏÏÎÏÏ ÏÏÎÏÏÎÏ ÎÎ ÏÏÎÎÎÎÎÏÎ ÏÎ ÏÏÏÎÏÏÎÏÎ "
 "ÎÏÎÎÎ ÏÎÏÏ."
 
-#: C/accessibility-devel-guide.xml:1291(para)
+#: C/index.docbook:1291(listitem/para)
 msgid ""
 "Don't flash or blink large areas of the screen. Small areas are less likely "
 "to trigger seizures in those susceptible to them."
@@ -3330,7 +3502,7 @@ msgstr ""
 "ÏÎÏÎÎÏÎÏ ÎÎÎÎÎ ÎÎÎÏÏÎÏÎ ÏÎÎÎÎÎÏ ÎÎÎ ÏÏÏÎÎÎÏÎ ÎÎÏÎÎÎÏÎÏÎ ÏÏÎÏÏ ÎÏÏÎÎÎÎÏ "
 "ÏÏÎÏÏÎÏ."
 
-#: C/accessibility-devel-guide.xml:1296(para)
+#: C/index.docbook:1296(listitem/para)
 msgid ""
 "Make all animations optional. The animated information should be available "
 "in at least one non-animated format, at the user's request."
@@ -3339,13 +3511,12 @@ msgstr ""
 "ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎ ÎÎÎÎÎÏÎÎÎÏ ÏÎ ÏÎÏÎÎÏÎÏÏÎÎ ÎÎÎ ÎÎÏÏÎÏÎÎÎÏÎ ÏÏÏÎÏ ÎÏÎ ÎÎÎÎÏÎÏ, "
 "ÏÏÎÎ ÏÎ ÎÎÏÎÏÎÎ Î ÏÏÎÏÏÎÏ."
 
-#: C/accessibility-devel-guide.xml:1304(title)
-#: C/accessibility-devel-guide.xml:189(title)
-#: C/accessibility-devel-guide.xml:607(entry)
+#: C/index.docbook:1304(section/title) C/index.docbook:189(section/title)
+#: C/index.docbook:607(row/entry)
 msgid "Keyboard Focus"
 msgstr "ÎÏÏÎÎÏÎ ÏÎÎÎÏÎÎÎÎÎÎÏ"
 
-#: C/accessibility-devel-guide.xml:1305(para)
+#: C/index.docbook:1305(section/para)
 msgid ""
 "Showing the keyboard focus position clearly at all times is important, both "
 "for users with vision impairments as well as \"power-users\" who prefer to "
@@ -3368,7 +3539,7 @@ msgstr ""
 "ÎÏÎÏÏÏÎÏÎÏÎ, ÎÎ ÏÏÎÏÎÎ ÎÎ ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÎÏÎÎÎÏÎ ÎÎÎÏÎ ÎÎÏÎÎÏÏ ÏÎÎÎ ÎÏÎÏÎÎÏ "
 "ÏÏÏÏÎÏÎÎÏ ÎÏÎÎ ÎÏÏÏ."
 
-#: C/accessibility-devel-guide.xml:1308(para)
+#: C/index.docbook:1308(section/para)
 msgid ""
 "A visual focus indicator is an audio representation of the cursor position "
 "relative to the other objects on the desktop. This allows the user to move "
@@ -3388,7 +3559,7 @@ msgstr ""
 "ÏÏÎÏÎÎ ÎÎ ÎÎÏÏÎÎÎÏÎ ÎÏÏÎÎ ÏÎÎ ÎÏÎÎÏÎÏÎ ÎÎÏÎ ÏÎÎ ÏÏÎÎÎÏÎ ÏÏÎ ÎÎÎÏÎ ÏÎÏ "
 "ÏÏÎÏÎÏÎÎÏÎÎÎÏÎ ÎÏÎÏÎÎÏÎ ÏÏÏÏÎÏÎÎÏÎ, ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ."
 
-#: C/accessibility-devel-guide.xml:1313(para)
+#: C/index.docbook:1313(listitem/para)
 msgid ""
 "Start focus at the most commonly used control. If no control in a window is "
 "deemed to be the \"most\" useful, start the focus at the first control in "
@@ -3407,7 +3578,7 @@ msgstr ""
 "ÎÏÎÏÎÏÎ ÏÎÎÏÎ ÎÎ ÎÎÎÏÎÎÏÎÎÎÏÎÏÎÎ ÏÎÎÎÎÎÏÎÎ ÏÎ ÏÎÎÎÏÏÎ <keycap>Enter</keycap> "
 "Î ÏÎ <keycap>Escape</keycap>."
 
-#: C/accessibility-devel-guide.xml:1318(para)
+#: C/index.docbook:1318(listitem/para)
 msgid ""
 "Show current input focus clearly at all times. Remember that in controls "
 "that include a scrolling element, it is not always sufficient to highlight "
@@ -3421,7 +3592,7 @@ msgstr ""
 "ÎÏÎÎÏÎÏ, ÎÏÎÎÎÎ ÎÎÎÎÏÎÎÎÎÏÏ ÎÎ ÎÎÎ ÎÎÎÎÎ ÎÏÎÏÏ. ÎÎÎÏÎ ÏÎ <link linkend=\"gad-"
 "focus-examples\">ÎÎÏÎÎÎÎÎÎÎÏÎ ÎÏÏÎÎÏÎÏ ÏÎÎÎÏÏÎÎÎÎÎÎÏ</link>."
 
-#: C/accessibility-devel-guide.xml:1323(para)
+#: C/index.docbook:1323(listitem/para)
 msgid ""
 "Show input focus only in the active window. Hide all primary visual focus "
 "indicators in all windows that do not have the focus and activation. If a "
@@ -3440,7 +3611,7 @@ msgstr ""
 "ÏÎÏÎÎÎÎÎÎÎ, ÏÏÎÏÎÎÎÏÎÎÎÏÏÎ ÎÎÎ ÎÎÏÏÎÏÎÏÎÏÏÎ ÎÎÎÎÎÎÎ ÎÏÏÎÎÏÎÏ. ÎÎÎÏÎ ÏÎ <link "
 "linkend=\"gad-focus-examples\">ÎÎÏÎÎÎÎÎÎÎÏÎ ÎÏÏÎÎÏÎÏ ÏÎÎÎÏÏÎÎÎÎÎÎÏ</link>."
 
-#: C/accessibility-devel-guide.xml:1328(para)
+#: C/index.docbook:1328(listitem/para)
 msgid ""
 "Provide appropriate feedback when the user attempts to navigate past the end "
 "of a group of related objects. When navigating a list, for example, stopping "
@@ -3461,7 +3632,7 @@ msgstr ""
 "ÏÎÏ ÎÎÎÏÎÏÎÏ ÎÏÎÎ ÏÏÎÏÎÎ, ÎÎÎ ÎÎ ÏÎÏ ÏÏÏÎÎÎ ÎÎ ÎÏÎÎÏÎÎÎÏÎ Î ÎÎÎÎÎÏÎÏÎ ÎÎ "
 "ÎÏÎÏÏÏÎÏÎÎ ÏÏÎÎ ÎÏÏÎ ÏÎÏ ÎÎÎÏÎÏÎÏ. "
 
-#: C/accessibility-devel-guide.xml:1333(para)
+#: C/index.docbook:1333(listitem/para)
 msgid ""
 "Play the system default audio or visual warning signal when the user presses "
 "an inappropriate key, or when a navigation key fails to move the focus. For "
@@ -3480,23 +3651,22 @@ msgstr ""
 "ÎÏÎÏÎÏÎ ÎÎ ÏÏÎÏÎÏÎÏÏÎÏ. ÎÎÎ ÎÏÎÎÏÎÎÎÎ ÎÏÏÎÎÎ ÎÎ ÏÎ ÏÏÏÏÎÎÎ ÏÎ ÏÏÎÏÎ ÎÎ ÏÎÎ "
 "ÎÏÎ ÏÏÎÎÎÎÎÏÎÎÎÏÎÏ.)"
 
-#: C/accessibility-devel-guide.xml:1340(title)
+#: C/index.docbook:1340(section/title)
 msgid "Keyboard Focus Examples"
 msgstr "ÎÎÏÎÎÎÎÎÎÎÏÎ ÎÏÏÎÎÏÎÏ ÏÎÎÎÏÏÎÎÎÎÎÎÏ"
 
-#: C/accessibility-devel-guide.xml:1341(title)
+#: C/index.docbook:1341(example/title)
 msgid "Example illustrating need to show focus clearly"
 msgstr "ÎÎÏÎÎÎÎÎÎÎ ÎÏÎÏÏÏÏÏÎÏ ÏÎÏ ÎÎÎÎÎÎÏ ÎÎÎ ÎÎÏÎÎÎÏÎ ÎÎÎÎÏÎÏ ÎÏÏÎÎÏÎÏ"
 
-#: C/accessibility-devel-guide.xml:1352(phrase)
+#: C/index.docbook:1347(entry/mediaobject)
 msgid ""
-"The focused item in this window cannot be seen because it has been scrolled "
-"off-screen"
+"<imageobject> <imagedata fileref=\"figures/badfocus1.png\" format=\"PNG\"/> "
+"</imageobject> <textobject> <phrase>The focused item in this window cannot "
+"be seen because it has been scrolled off-screen</phrase> </textobject>"
 msgstr ""
-"ÎÎ ÎÏÏÎÎÏÎÎÎÎ ÏÏÎÎÏÎÎÎ ÏÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÏÏÎ ÎÎ ÎÎÎÎÏÎÎÎÏÎÎ ÎÏÎÎÎÎ ÎÏÎÎ ÎÎÎÎÎ "
-"ÎÏÎÎÏÎ ÎÎÏ ÎÏÏ ÏÎÎ ÎÎÏÎÎ"
 
-#: C/accessibility-devel-guide.xml:1356(entry)
+#: C/index.docbook:1356(row/entry)
 msgid ""
 "One of the controls in this window has focus, but it's impossible to tell "
 "which..."
@@ -3504,14 +3674,14 @@ msgstr ""
 "ÎÎÎÏ ÎÏÏ ÏÎÏÏ ÎÎÎÎÏÎÏÏ ÏÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÏÏÎ ÎÏÎÎ ÎÏÏÎÎÏÏÎÎ, ÎÎÎÎ ÎÎÎÎÎ "
 "ÎÎÏÎÎÏÎ ÎÎ ÎÎÎÎÏÎÎÎÏÎÎ ÏÎÎÎÏâ"
 
-#: C/accessibility-devel-guide.xml:1367(phrase)
+#: C/index.docbook:1362(entry/mediaobject)
 msgid ""
-"The focused item in the list has been brought into view by scrolling the list"
+"<imageobject> <imagedata fileref=\"figures/badfocus2.png\" format=\"PNG\"/> "
+"</imageobject> <textobject> <phrase>The focused item in the list has been "
+"brought into view by scrolling the list</phrase> </textobject>"
 msgstr ""
-"ÎÎ ÎÏÏÎÎÏÎÎÎÎ ÎÎÏÎÎÎÎÎÎÎÎ ÏÏÎ ÎÎÏÏÎ ÎÏÎÎ ÎÎÎÎÎ ÎÏÎÏÏ ÎÎÎÎÎÏÎÏ ÎÏÎÎÏÎ ÏÎÏ "
-"ÎÎÏÏÎÏ"
 
-#: C/accessibility-devel-guide.xml:1371(entry)
+#: C/index.docbook:1371(row/entry)
 msgid ""
 "...until you scroll the list, which reveals that one of its items is "
 "currently selected."
@@ -3519,15 +3689,19 @@ msgstr ""
 "âÎÎÏÏÎ ÎÎ ÎÏÎÎÏÎÏÎ ÏÎ ÎÎÏÏÎ, ÏÎ ÎÏÎÎÎ ÎÏÎÎÎÎÏÏÏÎÎ ÏÏÎ ÎÎÎ ÎÏÏ ÏÎ ÏÏÎÎÏÎÎÎ "
 "ÎÎÎÎÎ ÎÏÎÎÎÎÎÎÎÎ."
 
-#: C/accessibility-devel-guide.xml:1382(phrase)
+#: C/index.docbook:1377(entry/mediaobject)
 msgid ""
-"The list control in this example has a solid border indicating focus, "
-"whether its selected item is currently visible or not"
+"<imageobject> <imagedata fileref=\"figures/goodfocus.png\" format=\"PNG\"/> "
+"</imageobject> <textobject> <phrase>The list control in this example has a "
+"solid border indicating focus, whether its selected item is currently "
+"visible or not</phrase> </textobject>"
 msgstr ""
-"Î ÎÎÎÎÏÎÏ ÏÎÏ ÎÎÏÏÎÏ ÏÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÎÏÎÎ ÎÎÎ ÏÏÎÏÎÎÎÏ ÏÎÏÎÎÏÎÎÎÎ ÏÎÏ "
-"ÎÎÎÎÎÎÎÎÏÎÎ ÏÎÎ ÎÏÏÎÎÏÎ, ÏÏÎÎ ÏÎ ÎÏÎÎÎÎÎÎÎÎ ÏÎÏ ÎÎÏÎÎÎÎÎÎÎÎ ÎÎÎÎÎ ÎÏÎÏÏ Î ÏÏÎ"
+"<imageobject> <imagedata fileref=\"figures/goodfocus.png\" format=\"PNG\"/> "
+"</imageobject> <textobject> <phrase>Î ÎÎÎÎÏÎÏ ÏÎÏ ÎÎÏÏÎÏ ÏÎ ÎÏÏÏ ÏÎ "
+"ÏÎÏÎÎÎÎÎÎÎ ÎÏÎÎ ÎÎÎ ÏÏÎÏÎÎÎÏ ÏÎÏÎÎÏÎÎÎÎ ÏÎÏ ÎÎÎÎÎÎÎÎÏÎÎ ÏÎÎ ÎÏÏÎÎÏÎ, ÏÏÎÎ ÏÎ "
+"ÎÏÎÎÎÎÎÎÎÎ ÏÎÏ ÎÎÏÎÎÎÎÎÎÎÎ ÎÎÎÎÎ ÎÏÎÏÏ Î ÏÏÎ</phrase> </textobject>"
 
-#: C/accessibility-devel-guide.xml:1386(entry)
+#: C/index.docbook:1386(row/entry)
 msgid ""
 "If the list control itself is given a \"focused\" border, it's easy to tell "
 "it has focus even when the currently-selected item isn't visible."
@@ -3536,16 +3710,18 @@ msgstr ""
 "ÎÎ ÏÏÎÏÎÏÎÎÎÏÎÎ ÏÏÎ ÎÏÎÎ ÎÏÏÎÎÏÎ ÎÎÏÎÎ ÎÎ ÏÏÎÎ ÏÎ ÎÏÎÎÎÎÎÎÎÎ ÏÏÎÎÏÎÎÎ ÎÎÎ "
 "ÎÎÎÎÎ ÎÏÎÏÏ."
 
-#: C/accessibility-devel-guide.xml:1395(title)
+#: C/index.docbook:1395(example/title)
 msgid "Example illustrating use of secondary focus"
 msgstr "ÎÎÏÎÎÎÎÎÎÎ ÎÏÎÏÏÏÏÏÎÏ ÏÎÏ ÏÏÎÏÎÏ ÎÎÏÏÎÏÎÏÎÏÏÎÏ ÎÏÏÎÎÏÎÏ"
 
-#: C/accessibility-devel-guide.xml:1406(phrase)
-msgid "Split-paned window in which both panes seem to have focus"
+#: C/index.docbook:1401(entry/mediaobject)
+msgid ""
+"<imageobject> <imagedata fileref=\"figures/badfocus3.png\" format=\"PNG\"/> "
+"</imageobject> <textobject> <phrase>Split-paned window in which both panes "
+"seem to have focus</phrase> </textobject>"
 msgstr ""
-"ÎÎÏÎÎÏÏÎ ÏÎÏ ÎÏÎÎ ÎÎÎÏÏÏÎÏÏÎÎ ÏÏÎ ÎÏÎÎÎ ÏÎ ÏÎÎÎÏÎÎ ÏÎÎÎÎÎÏÎÎ ÎÏÏÎÎÏÎÎÎÎ"
 
-#: C/accessibility-devel-guide.xml:1410(entry)
+#: C/index.docbook:1410(row/entry)
 msgid ""
 "In this example, it's impossible to tell just by looking which of the two "
 "panes actually has keyboard focus."
@@ -3553,16 +3729,14 @@ msgstr ""
 "ÎÏÎ ÏÎÏÎÎÎÎÎÎÎ ÎÏÏÏ, ÎÎÎÎÎ ÎÎÏÎÎÏÎ ÎÎ ÎÎÎÎÎÏÎÎ ÏÏÎÏÎÏÏÎÎ ÎÏÎÎ ÎÎÎÏÏÎÏÎÏ ÏÎÎÎ "
 "ÎÏÏ ÏÎ ÎÏÎ ÏÎÎÎÏÎÎ ÎÏÎÎ ÏÏÎÎÎÎÏÎÎÎ ÎÏÏÎÎÏÎ ÏÎÎÎÏÏÎÎÎÎÎÎÏ."
 
-#: C/accessibility-devel-guide.xml:1421(phrase)
-#: C/accessibility-devel-guide.xml:1436(phrase)
+#: C/index.docbook:1416(entry/mediaobject)
 msgid ""
-"Split-pane window in which secondary highlighting is used to show which pane "
-"has focus"
+"<imageobject> <imagedata fileref=\"figures/goodfocus3.png\" format=\"PNG\"/> "
+"</imageobject> <textobject> <phrase>Split-pane window in which secondary "
+"highlighting is used to show which pane has focus</phrase> </textobject>"
 msgstr ""
-"ÎÎÏÎÎÏÏÎ ÏÎ ÎÏÎÎÎ ÎÎÎÏÏÏÎÏÏÎÎÎ ÏÏÎ ÎÏÎÎÎ Î ÎÎÏÏÎÏÎÏÎÏÏÎ ÎÏÎÏÎÎÎÎÏÎ "
-"ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÎÎÎ ÏÎÎ ÎÎÏÎÎÎÏÎ ÏÎÏ ÏÎÎÎÏÎÎÏ ÏÎÏ ÎÏÎÎ ÎÏÏÎÎÏÎ"
 
-#: C/accessibility-devel-guide.xml:1425(entry)
+#: C/index.docbook:1425(row/entry)
 msgid ""
 "By using a secondary selection highlight color in the inactive pane, it's "
 "immediately obvious that the tree control has focus here..."
@@ -3571,16 +3745,22 @@ msgstr ""
 "ÎÎÎÏÎÏ ÏÎÎÎÏÎÎ, ÎÎÎÎÎ ÎÎÎÏÎ ÏÎÎÎÏÏ ÏÏÎ Î ÎÎÎÎÏÎÏ ÏÎÏ ÎÎÎÏÏÎÏ ÎÏÎÎ ÎÏÏÎÎÏÎ "
 "ÎÎÏâ"
 
-#: C/accessibility-devel-guide.xml:1440(entry)
+#: C/index.docbook:1431(entry/mediaobject)
+msgid ""
+"<imageobject> <imagedata fileref=\"figures/goodfocus2.png\" format=\"PNG\"/> "
+"</imageobject> <textobject> <phrase>Split-pane window in which secondary "
+"highlighting is used to show which pane has focus</phrase> </textobject>"
+msgstr ""
+
+#: C/index.docbook:1440(row/entry)
 msgid "...and that the list control has focus here."
 msgstr "...ÎÎÎ ÏÏÎ Î ÎÎÎÎÏÎÏ ÎÎÏÏÎÏ ÎÏÎÎ ÎÏÏÎÎÏÎ ÎÎÏ."
 
-#: C/accessibility-devel-guide.xml:1452(title)
-#: C/accessibility-devel-guide.xml:656(entry)
+#: C/index.docbook:1452(section/title) C/index.docbook:656(row/entry)
 msgid "Timing"
 msgstr "ÎÏÎÏÏÎÎÎÏÎÏÏ"
 
-#: C/accessibility-devel-guide.xml:1453(para)
+#: C/index.docbook:1453(section/para)
 msgid ""
 "Interfaces in which things appear, disappear or happen according to some "
 "hard-coded time limit are often a hindrance to accessibility. Some users may "
@@ -3598,7 +3778,7 @@ msgstr ""
 "ÏÎÏÎ, ÏÏÏÎ Î ÎÏÎÏÎÎÎÎ ÏÎÏ ÎÎ ÎÎÎÎÎ ÏÎÎÏ ÎÏÎÎÎÎÏÎÏÏÎÎÎ Î ÎÎÏÎÎ ÎÎÎ ÎÎÏÎÎÏÎ ÏÎ "
 "ÏÏÎÏÎ."
 
-#: C/accessibility-devel-guide.xml:1458(para)
+#: C/index.docbook:1458(listitem/para)
 msgid ""
 "Don't hard-code timeouts or other time-based features. Examples include "
 "automatic scrolling when dragging an object towards the edge of a window, "
@@ -3617,7 +3797,7 @@ msgstr ""
 "GNOME, Î ÏÏÎ ÏÎÎÏÏÏÎÏÎ ÏÎÏÎÏÏÏÏÎ, ÎÎ ÎÏÎÏÎÎ ÎÎ ÎÏÎÎÎÏÎÎÏÏÎÎ ÏÎÎÏÎÎÎÎÎÏÎ ÎÏÏ "
 "ÏÎ ÎÏÎÎÎÎ ÎÎÏÎÎÏÎ ÎÎÏÏ ÎÎÏÏ ÎÏÏÎÎÎÏ ÏÏÎÎÎÏÎÏÎ Î ÎÎÎÏ ÎÎÏÏÎÎÏ GConf."
 
-#: C/accessibility-devel-guide.xml:1463(para)
+#: C/index.docbook:1463(listitem/para)
 msgid ""
 "Don't briefly show or hide information based on the movement of the mouse "
 "pointer. (Exception: system-provided features such as tooltips, which the "
@@ -3632,13 +3812,12 @@ msgstr ""
 "ÎÏÎÏÎ ÏÏÎÎÎÏÎÏÎÎÎÏ ÎÏÏÎ ÏÏÏÎ ÎÎ ÏÏÎÏÏÎÏ ÎÎ ÎÏÎÏÎÏÎ ÎÎ ÏÎÏ ÎÏÎÎÎÏÎÎÏÎÎÎÏÎ "
 "ÏÏÎÎ ÎÎÎÎÎ ÎÎÎÎÏÎÏÏÎÎÎÎÎ ÎÎÎ ÎÎÎÏÎÏÏÎÎÎ ÏÏÎÎÏÎÏÎÏÏÎÏÎÏ ÎÎÏÎÎÏ."
 
-#: C/accessibility-devel-guide.xml:1471(title)
-#: C/accessibility-devel-guide.xml:205(title)
-#: C/accessibility-devel-guide.xml:680(entry)
+#: C/index.docbook:1471(section/title) C/index.docbook:205(section/title)
+#: C/index.docbook:680(row/entry)
 msgid "Documentation"
 msgstr "ÎÎÎÎÎÏÎÏÏÎ"
 
-#: C/accessibility-devel-guide.xml:1472(para)
+#: C/index.docbook:1472(section/para)
 msgid ""
 "People with disabilities cannot use the application effectively if they do "
 "not have access to the required manuals and help files. Of particular "
@@ -3650,7 +3829,7 @@ msgstr ""
 "ÎÎÎÎÎÎÎÏ. ÎÎÎÎÎÏÎÏÎÏ ÏÎÎÎÏÎÎÏ ÎÎÎÎÎ Î ÏÎÎÎÎÎÏÎ ÎÎÏÏ ÏÎÎÎÏÏÎÎÎÎÎÎÏ, ÎÏÎÎÎÎ "
 "ÎÎÎÎÎ Î ÎÏÎÎÏ ÏÏÏÏÎÏ ÎÎ ÏÎÎ ÎÏÎÎÎ ÏÎÎÎÎÎ ÏÏÎÏÏÎÏ ÏÎÎÎÎÎÏÎÏÎÎ ÏÏÎÎ ÎÏÎÏÎÎÎÎ."
 
-#: C/accessibility-devel-guide.xml:1477(para)
+#: C/index.docbook:1477(listitem/para)
 msgid ""
 "Provide all documentation in an accessible format. ASCII text and HTML are "
 "both excellent formats for assistive technologies."
@@ -3658,14 +3837,14 @@ msgstr ""
 "ÎÎÏÎÏÎÏÎ ÏÎÎ ÏÎÎ ÏÎÎÎÎÏÎÏÏÎ ÏÎ ÎÎÎ ÏÏÎÏÎÏÎ ÎÎÏÏÎ. ÎÎ ÎÎÏÏÎÏÎÎÎÏÎÎÏ ÏÎ "
 "ÎÎÎÎÎÎÎ ASCII ÎÎÎ HTML ÎÎÎÎÎ ÎÎÎÎÏÎÏÎÎÎÏ ÎÎÎ ÏÎÏÎÎÎÎÎÎÎÏ ÏÏÎÎÎÎÎÎÏÎÏ."
 
-#: C/accessibility-devel-guide.xml:1482(para)
+#: C/index.docbook:1482(listitem/para)
 msgid ""
 "Provide alternative text descriptions for all graphics in the documentation."
 msgstr ""
 "ÎÎÏÎÏÎÏÎ ÎÎÎÎÎÎÎÏÎÎÎÏ ÏÎÏÎÎÏÎÏÎÏ ÎÎÎÎÎÎÎÏ ÎÎÎ ÏÎÎ ÏÎ ÎÏÎÏÎÎÎ ÏÏÎÎÏÎÎÎ ÏÏÎÎ "
 "ÏÎÎÎÎÏÎÏÏÎ."
 
-#: C/accessibility-devel-guide.xml:1487(para)
+#: C/index.docbook:1487(listitem/para)
 msgid ""
 "Document all your application's accessibility features. Keyboard navigation "
 "and shortcuts are particularly important to document. Include an "
@@ -3677,11 +3856,11 @@ msgstr ""
 "ÏÎÎÎÎÏÎÏÏÎ. ÎÏÎÏÎÏÎÎÎÎÎÏÎ ÎÎÎ ÎÎÏÏÎÏÎ ÏÏÎÏÎÏÏÏÎÏÎÏ ÏÏÎÎ ÏÎÎÎÎÏÎÏÏÎ ÏÎÏ, ÏÏÎÏ "
 "ÎÏÎÏÎÏÎ ÎÎ ÎÏÎÎÎÏÎ ÏÎÎÏÎÏÎÏÎÎÏ ÎÎÎ ÏÎÎÏ ÏÎÏ ÎÎÎÏÎÏÏÎÎÎÏ ÏÏÎÏÎÏÏÏÎÏÎÏ."
 
-#: C/accessibility-devel-guide.xml:2(title)
+#: C/index.docbook:2(chapter/title)
 msgid "Testing"
 msgstr "ÎÎÎÎÎÎÏ"
 
-#: C/accessibility-devel-guide.xml:3(para)
+#: C/index.docbook:3(chapter/para)
 msgid ""
 "There are several points of review to conduct before declaring an "
 "application accessible. Over the course of development you may want to "
@@ -3696,7 +3875,7 @@ msgstr ""
 "ÏÎÏÎÎÎÎÎÎÎ, ÎÎÎÎÏÎÎÎÎÏÏ ÎÎ ÏÏÎÏÎÎÏÏÏÎÎ ÏÎ ÎÏÏÎÎÎÏÎÏÎÎÎÎÎÎÎ ÏÏÎÎÎÎ ÎÎÎÎÏÎÏ "
 "ÏÎÏ."
 
-#: C/accessibility-devel-guide.xml:6(para)
+#: C/index.docbook:6(chapter/para)
 msgid ""
 "This section describes a number of tests you can perform manually on an "
 "application to test its accessibility. Passing all the tests does not "
@@ -3711,7 +3890,7 @@ msgstr ""
 "ÎÎÎÎÏÎÏ, ÏÏÏÎ ÏÏÎÎÎÎÎÏÎÎ ÏÎÏÎÏÏÏÏÎÏÎ ÎÎÏÎÎÎÎ ÏÏÏÎ ÎÎ ÎÎÎÏÎÏÎÎÎ ÏÎ ÎÎÎÎ ÏÎÏ "
 "ÏÏÎÏÎÏÏÏÎÏÎÏ."
 
-#: C/accessibility-devel-guide.xml:12(para)
+#: C/index.docbook:12(section/para)
 msgid ""
 "The following keyboard operations should be tested. Do not use the mouse in "
 "any part of this test."
@@ -3719,7 +3898,7 @@ msgstr ""
 "ÎÎ ÎÎÏÎÎÏÎÎÏ ÎÎÎÏÎÏÏÎÎÎÏ ÏÎÎÎÏÏÎÎÎÎÎÎÏ ÎÎ ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÏÎÎÏÎ. ÎÎÎ "
 "ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÏÎ ÏÎÎÏÎÎÎ ÏÎ ÎÎÎÎÎÎ ÏÎÎÎÎ ÎÏÏÎÏ ÏÎÏ ÎÎÎÎÏÎÏ."
 
-#: C/accessibility-devel-guide.xml:17(para)
+#: C/index.docbook:17(listitem/para)
 msgid ""
 "Using only keyboard commands, move the focus through all menu bars in the "
 "application."
@@ -3727,22 +3906,22 @@ msgstr ""
 "ÎÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÎÏÎÎ ÎÎÏÎÎÎÏ ÏÎÎÎÏÏÎÎÎÎÎÎÏ, ÎÎÏÎÎÎÎÏÏÎ ÏÎÎ ÎÏÏÎÎÏÎ ÎÎÎÎÎÏÎÏÎ "
 "ÏÎÏÎ ÏÏÎ ÎÏÎÎÎÏÎ ÏÎÏ ÎÎÎÎÏ ÏÏÎÎ ÎÏÎÏÎÎÎÎ."
 
-#: C/accessibility-devel-guide.xml:22(para)
+#: C/index.docbook:22(listitem/para)
 msgid "Confirm that:"
 msgstr "ÎÏÎÎÎÎÎÎÏÏÏÎ ÏÏÎ:"
 
-#: C/accessibility-devel-guide.xml:25(para)
+#: C/index.docbook:25(listitem/para)
 msgid "Context sensitive menus display correctly."
 msgstr "ÎÎÏÎÎÎÎÎÎÏÎÎ ÏÏÏÏÎ ÏÎ ÎÏÎÎÏÎÎÏÎ ÎÎÎÎÏ ÏÎÏÎÎÏÎÎÎÎÏÎ."
 
-#: C/accessibility-devel-guide.xml:30(para)
+#: C/index.docbook:30(listitem/para)
 msgid ""
 "Any functions listed on the toolbar can be performed using the keyboard."
 msgstr ""
 "ÎÏÎÏÎÏÎ ÎÎ ÎÏÎÏÎÎÏÏÎÏÎ ÎÏÎÎÎÏÎÎÏÎÏÎ ÏÏÎÎÏÏÎÏÎÎÏ ÏÎÏ ÏÏÎÏÏÎÏÎ ÏÏÎÎ "
 "ÎÏÎÎÎÎÎÎÎÎÎÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ ÏÎÎÎÏÏÎÎÏÎÎÎ."
 
-#: C/accessibility-devel-guide.xml:35(para)
+#: C/index.docbook:35(listitem/para)
 msgid ""
 "You can operate every control in the client area of the application and "
 "dialog boxes."
@@ -3750,38 +3929,38 @@ msgstr ""
 "ÎÏÎÏÎÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÎÎÎÎ ÏÏÎÎÏÎÎÎ ÎÎÎÎÏÎÏ ÏÏÎÎ ÏÎÏÎÎÏÎ ÏÎÎÎÏÎ ÏÎÏ "
 "ÎÏÎÏÎÎÎÎÏ ÎÎÎ ÏÏÎ ÏÎÎÎÏÎ ÎÎÎÎÏÎÎÏ."
 
-#: C/accessibility-devel-guide.xml:40(para)
+#: C/index.docbook:40(listitem/para)
 msgid "Text and objects within the client area can be selected."
 msgstr ""
 "ÎÏÎÏÎÏÎ ÎÎ ÎÏÎÎÎÎÎÏÎ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÏÎÎÎÎÎÎÎÎ ÎÎÏÎ ÏÏÎÎ ÏÎÏÎÎÏÎ ÏÎÏ ÏÎÎÎÏÎ."
 
-#: C/accessibility-devel-guide.xml:45(para)
+#: C/index.docbook:45(listitem/para)
 msgid "Any keyboard enhancements or shortcuts are working as designed."
 msgstr ""
 "ÎÎÎÏ ÎÎ ÎÎÎÏÎÏÏÎÎÎÏ Î ÎÎ ÏÏÎÏÎÎÎÏÏÎÎÏ ÏÎÎÎÏÏÎÎÎÎÎÎÏ ÎÎÏÎÎÏÎÏÎ ÏÏÏÏ "
 "ÏÏÎÎÎÎÏÏÎÎÎÎ."
 
-#: C/accessibility-devel-guide.xml:56(para)
+#: C/index.docbook:56(section/para)
 msgid "Test the application using a screen reader and confirm that:"
 msgstr ""
 "ÎÎÎÎÎÎÏÏÎ ÏÎÎ ÎÏÎÏÎÎÎÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÎÎÎÎ ÎÎÎÎÎÏÏÏÎ ÎÎÏÎÎÏ ÎÎÎ "
 "ÎÏÎÎÎÎÎÎÏÏÏÎ ÏÏÎ:"
 
-#: C/accessibility-devel-guide.xml:61(para)
+#: C/index.docbook:61(listitem/para)
 msgid "Labels and text are being read correctly, including menus and toolbars."
 msgstr ""
 "ÎÎ ÎÏÎÎÎÏÎÏ ÎÎÎ ÏÎ ÎÎÎÎÎÎÎ ÏÎÏÏÏÎÎÎÏÎÎ ÎÏÎÎ, ÎÎÎÏÏ ÎÏÎÏÎÏ ÏÎ ÎÎÎÎÏ ÎÎÎ ÎÎ "
 "ÎÏÎÎÎÎÎÎÎÎÎÎÏ."
 
-#: C/accessibility-devel-guide.xml:66(para)
+#: C/index.docbook:66(listitem/para)
 msgid "Object information is read correctly."
 msgstr "ÎÎ ÏÎÎÏÎÏÎÏÎÎÏ ÎÎÏÎÎÎÎÎÎÎÏÎ ÏÎÏÏÏÎÎÎÏÎÎ ÏÏÏÏÎ."
 
-#: C/accessibility-devel-guide.xml:74(title)
+#: C/index.docbook:74(section/title)
 msgid "Visual Focus Indicator"
 msgstr "ÎÎÎÎÎÎÎ ÎÏÏÎÎÎÏ ÎÏÏÎÎÏÎÏ"
 
-#: C/accessibility-devel-guide.xml:77(para)
+#: C/index.docbook:77(listitem/para)
 msgid ""
 "Verify that when moving among objects that the visual focus indicator is "
 "easy to identify."
@@ -3789,7 +3968,7 @@ msgstr ""
 "ÎÏÎÎÎÎÎÎÏÏÏÎ ÏÏÎ Î ÎÎÎÎÎÎÎ ÎÏÏÎÎÎÏ ÎÏÏÎÎÏÎÏ ÎÎÎÎÎ ÎÏÎÎÎÎ ÎÎ ÎÎÎÎÎÏÏÎÏÏÎÎ "
 "ÏÏÎÎ ÎÎÎÎÏÎÎ ÎÎÎÎÏÎ ÎÎÏÎÎÏ ÎÎÏÎÎÎÎÎÎÎÏÎ."
 
-#: C/accessibility-devel-guide.xml:82(para)
+#: C/index.docbook:82(listitem/para)
 msgid ""
 "Keyboard navigation through the software and menus should be clearly visible "
 "when the focus moves."
@@ -3797,7 +3976,7 @@ msgstr ""
 "Î ÏÎÎÎÎÎÏÎ ÏÎÎÎÏÏÎÎÎÎÎÎÏ ÎÎÏÏ ÏÎÏ ÎÎÎÎÏÎÎÎÎÏ ÎÎÎ ÏÏÎ ÎÎÎÎÏ ÎÎ ÏÏÎÏÎÎ ÎÎ "
 "ÎÎÎÎÎ ÏÎÎÎÏÎ ÎÏÎÏÎ ÏÏÎÎ Î ÎÏÏÎÎÏÎÏ ÎÎÏÎÎÎÎÎÎÏÎÎ."
 
-#: C/accessibility-devel-guide.xml:87(para)
+#: C/index.docbook:87(listitem/para)
 msgid ""
 "Confirm that the screen reader is tracking the visual focus indicator as you "
 "navigate using a keyboard."
@@ -3805,7 +3984,7 @@ msgstr ""
 "ÎÏÎÎÎÎÎÎÏÏÏÎ ÏÏÎ Î ÎÎÎÎÎÏÏÏÎÏ ÎÎÏÎÎÏ ÎÎÎÏÎÎÏÎÎ ÏÎÎ ÎÎÎÎÎÎÎ ÏÎÏ ÎÏÏÎÎÎÏ "
 "ÎÏÏÎÎÏÎÏ ÎÎÏ ÎÎÎÎÏÎ ÏÎÎÎÎÎÏÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ ÏÎÎÎÏÏÎÎÏÎÎÎ."
 
-#: C/accessibility-devel-guide.xml:92(para)
+#: C/index.docbook:92(listitem/para)
 msgid ""
 "Run a screen magnification program (if available) and verify that the "
 "magnifier can track the visual focus indicator as you navigate using the "
@@ -3815,7 +3994,7 @@ msgstr ""
 "ÎÏÎÎÎÎÎÎÏÏÏÎ ÏÏÎ Î ÎÎÎÎÎÏÎÏÎ ÎÏÎÏÎÎ ÎÎ ÎÎÎÏÎÎÏÏÎÎ ÏÎÎ ÎÎÎÎÎÎÎ ÎÏÏÎÎÎÏ "
 "ÎÏÏÎÎÏÎÏ ÎÎÏ ÎÎÎÎÏÎ ÏÎÎÎÎÎÏÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ ÏÎÎÎÏÏÎÎÏÎÎÎ ÎÎÎ ÏÎ ÏÎÎÏÎÎÎ."
 
-#: C/accessibility-devel-guide.xml:103(para)
+#: C/index.docbook:103(listitem/para)
 msgid ""
 "Change the font in the application and confirm that the settings are "
 "maintained."
@@ -3823,7 +4002,7 @@ msgstr ""
 "ÎÎÎÎÎÏÎ ÏÎ ÎÏÎÎÎÎÏÎÏÎÎÏÎ ÏÏÎÎ ÎÏÎÏÎÎÎÎ ÎÎÎ ÎÏÎÎÎÎÎÎÏÏÏÎ ÏÏÎ ÎÎ ÏÏÎÎÎÏÎÎÏ "
 "ÏÎÏÎÎÎÎÎÏÎ."
 
-#: C/accessibility-devel-guide.xml:108(para)
+#: C/index.docbook:108(listitem/para)
 msgid ""
 "Test the application by changing colors and confirm that all settings are "
 "maintained."
@@ -3831,7 +4010,7 @@ msgstr ""
 "ÎÎÎÎÎÎÏÏÎ ÏÎÎ ÎÏÎÏÎÎÎÎ ÎÎÏÎÎÎÎÎÎÎÏÎÏ ÏÎ ÏÏÏÎÎÏÎ ÎÎÎ ÎÏÎÎÎÎÎÎÏÏÏÎ ÏÏÎ ÏÎÎÏ ÎÎ "
 "ÏÏÎÎÎÏÎÎÏ ÏÎÏÎÎÎÎÎÏÎ."
 
-#: C/accessibility-devel-guide.xml:113(para)
+#: C/index.docbook:113(listitem/para)
 msgid ""
 "If magnification is available, test the font, color, and size using the "
 "magnification option."
@@ -3839,7 +4018,7 @@ msgstr ""
 "ÎÎ ÎÎÎÎÎ ÎÎÎÎÎÏÎÎÎ Î ÎÎÎÎÎÏÎÏÎ, ÎÎÎÎÎÏÎ ÏÎ ÎÏÎÎÎÎÏÎÏÎÎÏÎ, ÏÎ ÏÏÏÎÎ ÎÎÎ ÏÎ "
 "ÎÎÎÎÎÎÏ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎÎ ÎÏÎÎÎÎÎ ÎÎÎÎÎÏÎÏÎÏ."
 
-#: C/accessibility-devel-guide.xml:124(para)
+#: C/index.docbook:124(listitem/para)
 msgid ""
 "Print screenshots to a black and white printer and confirm that all "
 "information is visible."
@@ -3847,7 +4026,7 @@ msgstr ""
 "ÎÎÏÏÏÏÏÏÎ ÏÏÎÎÎÎÏÏÏÏÎ ÎÎÏÎÎÏ ÏÎ ÎÏÏÏÏÎÎÏÏÎ ÎÎÏÏÏÏÏÎ ÎÎÎ ÎÏÎÎÎÎÎÎÏÏÏÎ ÏÏÎ "
 "ÏÎÎÏ ÎÎ ÏÎÎÏÎÏÎÏÎÎÏ ÎÎÎÎÎ ÎÏÎÏÎÏ."
 
-#: C/accessibility-devel-guide.xml:129(para)
+#: C/index.docbook:129(listitem/para)
 msgid ""
 "Test applications using only black and white, high-contrast settings and "
 "confirm that all information is conveyed correctly."
@@ -3855,7 +4034,7 @@ msgstr ""
 "ÎÎÎÎÎÎÏÏÎ ÎÏÎÏÎÎÎÎÏ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÎÏÏÏÏÎÎÏÏÎÏ ÏÏÎÎÎÏÎÎÏ Î ÏÏÎÎÎÏÎÎÏ ÏÏÎÎÎÏ "
 "ÎÎÏÎÎÎÏÎÏ ÎÎÎ ÎÏÎÎÎÎÎÎÏÏÏÎ ÏÏÎ ÏÎÎÏ ÎÎ ÏÎÎÏÎÏÎÏÎÎÏ ÎÎÏÎÏÎÏÎÎÎÎÎ ÏÏÏÏÎ."
 
-#: C/accessibility-devel-guide.xml:134(para)
+#: C/index.docbook:134(listitem/para)
 msgid ""
 "Test that the application provides at least three combinations of color "
 "schemes and that high-contrast schemes are available (e.g. white on black or "
@@ -3865,7 +4044,7 @@ msgstr ""
 "ÏÏÏÎÎÏÏÎ ÎÎÎ ÏÏÎ ÎÎÎÎÎ ÎÎÎÎÎÏÎÎÎ ÏÎ ÏÏÎÎÎÏÎ ÏÏÎÎÎÏ ÎÎÏÎÎÎÏÎÏ. (Ï.Ï. ÏÎ "
 "ÎÏÏÏÏÎÎÏÏÎ Î ÏÎ ÎÎÏÏÎÎÎ ÏÎ ÎÏÎÎ)."
 
-#: C/accessibility-devel-guide.xml:139(para)
+#: C/index.docbook:139(listitem/para)
 msgid ""
 "Turn on high-contrast settings in the GNOME Control Center and confirm that "
 "the application respects these settings."
@@ -3873,7 +4052,7 @@ msgstr ""
 "ÎÎÎÏÎÎÏÎÎÎÏÏÎ ÏÎÏ ÏÏÎÎÎÏÎÎÏ ÏÏÎÎÎÏ ÎÎÏÎÎÎÏÎÏ ÏÏÎ ÎÎÎÏÏÎ ÎÎÎÎÏÎÏ ÏÎÏ GNONE "
 "ÎÎÎ ÎÏÎÎÎÎÎÎÏÏÏÎ ÏÏÎ Î ÎÏÎÏÎÎÎÎ ÎÎÎÏÎÏÎÎ ÏÎÏ ÏÏÎÎÎÏÎÎÏ ÎÏÏÎÏ."
 
-#: C/accessibility-devel-guide.xml:144(para)
+#: C/index.docbook:144(listitem/para)
 msgid ""
 "Test various themes to ensure that the software is working for all the "
 "available settings."
@@ -3881,14 +4060,14 @@ msgstr ""
 "ÎÎÎÎÎÎÏÏÎ ÎÎÎÏÎÏÎ ÎÎÎÎÏÎ ÎÎÎ ÎÎ ÎÎÎÎÎÏÎÎÎÏÎ ÏÏÎ ÏÎ ÎÎÎÎÏÎÎÎÏ ÎÎÏÎÎÏÎÎ ÏÏÏÏÎ "
 "ÎÎÎ ÏÎÎÏ ÏÎÏ ÎÎÎÎÎÏÎÎÎÏ ÏÏÎÎÎÏÎÎÏ."
 
-#: C/accessibility-devel-guide.xml:153(para)
+#: C/index.docbook:153(section/para)
 msgid ""
 "There should be an option in the application to show audio alerts visually."
 msgstr ""
 "ÎÎ ÏÏÎÏÎÎ ÎÎ ÏÏÎÏÏÎÎ ÎÎÎ ÎÏÎÎÎÎÎ ÏÏÎÎ ÎÏÎÏÎÎÎÎ ÎÎÎ ÏÎÎ ÎÎÏÎÎÎÏÎ "
 "ÏÏÎÎÎÎÎÏÎÎÎÏÎÏÎ ÎÏÎÏ ÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎ."
 
-#: C/accessibility-devel-guide.xml:156(para)
+#: C/index.docbook:156(section/para)
 msgid ""
 "Test that the audio is working correctly by enabling sound in the GNOME "
 "Control Center and then perform the following actions:"
@@ -3896,7 +4075,7 @@ msgstr ""
 "ÎÎÎÎÎÎÏÏÎ ÏÎÎ ÎÏÎ ÎÎ ÎÎÏÎÎÏÎÎ ÏÏÏÏÎ ÎÎÎÏÎÏÎÏÎÎÏÎÏÎÏ ÏÎÎ ÎÏÎ ÏÏÎ ÎÎÎÏÏÎ "
 "ÎÎÎÎÏÎÏ ÏÎÏ GNOME ÎÎÎ ÏÏÏÎÏÎ ÎÎÏÎÎÎÏÏÎ ÏÎÏ ÎÎÏÎÎÏÎÎÏ ÎÎÎÏÎÎÎÎÏ:"
 
-#: C/accessibility-devel-guide.xml:161(para)
+#: C/index.docbook:161(listitem/para)
 msgid ""
 "Perform an action that should generate an audio alert and confirm that the "
 "application is working as designed."
@@ -3904,7 +4083,7 @@ msgstr ""
 "ÎÎÏÎÎÎÏÏÎ ÎÎÎ ÎÎÎÏÎÎÎÎ ÏÎÏ ÎÎ ÎÎÏÎ ÏÎÎ ÎÏÎÏÎÎÎÏÎÎ ÎÎÎ ÎÎÎÎÏÎÎÎÏÎ ÎÏÎÏ ÎÎÎ "
 "ÎÏÎÎÎÎÎÎÏÏÏÎ ÏÏÎ Î ÎÏÎÏÎÎÎÎ ÎÎÏÎÎÏÎÎ ÎÎ ÏÎÎ ÏÏÏÏÎ ÏÎÏ ÏÏÎÎÎÎÏÏÎÎÎ."
 
-#: C/accessibility-devel-guide.xml:166(para)
+#: C/index.docbook:166(listitem/para)
 msgid ""
 "Verify that the application works correctly when increasing or decreasing "
 "the volume."
@@ -3912,7 +4091,7 @@ msgstr ""
 "ÎÏÎÎÎÎÎÎÏÏÏÎ ÏÏÎ Î ÎÏÎÏÎÎÎÎ ÎÎÏÎÎÏÎÎ ÏÏÏÏÎ ÎÎÏÎ ÏÎÎ ÎÏÎÎÏÎ Î ÏÎ ÎÎÎÏÏÎ ÏÎÏ "
 "ÎÎÏÎÏÎÏ."
 
-#: C/accessibility-devel-guide.xml:171(para)
+#: C/index.docbook:171(listitem/para)
 msgid ""
 "Confirm that warning messages and alerts can be heard correctly in a noisy "
 "work environment."
@@ -3920,7 +4099,7 @@ msgstr ""
 "ÎÏÎÎÎÎÎÎÏÏÏÎ ÏÏÎ ÏÎ ÎÎÎÏÎÎÏÎ ÏÏÎÎÎÎÎÏÎÎÎÏÎÏ ÎÎÎ ÎÎ ÎÎÎÎÏÎÎÎÏÎÎÏ ÎÏÎÏÎÏÎ ÎÎ "
 "ÎÎÎÏÎÎÎÏÎÎ ÏÏÏÏÎ ÏÎ ÎÎÎ ÎÎÏÏÎÏÎÎÏ ÏÎÏÎÎÎÎÎÎÎ ÏÏÎÏÎÏ."
 
-#: C/accessibility-devel-guide.xml:180(para)
+#: C/index.docbook:180(section/para)
 msgid ""
 "Verify that an option is available to stop animation and that it is working "
 "as designed."
@@ -3928,7 +4107,7 @@ msgstr ""
 "ÎÏÎÎÎÎÎÎÏÏÏÎ ÏÏÎ ÎÎÎÎÎ ÎÎÎÎÎÏÎÎÎ ÎÎÎ ÎÏÎÎÎÎÎ ÎÎÎ ÏÎ ÎÎÎÎÎÏÎ ÏÏÎ ÎÏÎ ÎÎÎÎÏÎÏ "
 "ÎÎÎ ÏÏÎ ÎÎÏÎÎÏÎÎ ÏÏÏÏ ÎÏÎÎ ÏÏÎÎÎÎÏÏÎÎ."
 
-#: C/accessibility-devel-guide.xml:183(para)
+#: C/index.docbook:183(section/para)
 msgid ""
 "Turn the animation off. Confirm that all information is still conveyed "
 "correctly."
@@ -3936,7 +4115,7 @@ msgstr ""
 "ÎÏÎÎÎÏÎÎÏÎÎÎÏÏÎ ÏÎ ÎÏÎ ÎÎÎÎÏÎÏ. ÎÏÎÎÎÎÎÎÏÏÏÎ ÏÏÎ ÏÎÎÏ ÎÎ ÏÎÎÏÎÏÎÏÎÎÏ "
 "ÎÎÏÎÏÎÏÎÎÏÎÎ ÏÏÏÏÎ."
 
-#: C/accessibility-devel-guide.xml:192(para)
+#: C/index.docbook:192(listitem/para)
 msgid ""
 "Test all messages to confirm that the user is notified before a message "
 "times out and is given the option to indicate that more time is needed."
@@ -3945,7 +4124,7 @@ msgstr ""
 "ÎÎÎ ÎÎÎÏÎÎ ÏÏÎÏÎÎÎÎÎÎ ÏÎ ÎÏÎÏÏÎÏÏÎÎÎÎ ÏÏÏÎÎ ÎÎÎ ÏÏÎ ÎÎÎÎÏÎÎ Î ÎÏÎÎÎÎÎ "
 "ÎÎÎÎÎÎÎÏ ÏÏÎ ÎÎÎÎÎ ÎÏÎÏÎÎÏÎÏÎÏ ÏÎÏÎÏÏÏÏÎÏÎÏ ÏÏÏÎÎÏ."
 
-#: C/accessibility-devel-guide.xml:197(para)
+#: C/index.docbook:197(listitem/para)
 msgid ""
 "Make sure an option has been included to adjust the response time and "
 "confirm that it is working as designed."
@@ -3953,7 +4132,7 @@ msgstr ""
 "ÎÏÎÎÎÎÎÎÏÏÏÎ ÏÏÎ ÎÎÎ ÎÏÎÎÎÎÎ ÎÏÎÎ ÏÏÎÏÎÏÎÎÎÏÎÎÎ ÎÎÎ ÏÎÎ ÏÏÎÏÎÏÎÎÎÎ ÏÎÏ "
 "ÏÏÏÎÎÏ ÎÏÏÎÏÎÏÎÏ ÎÎÎ ÎÏÎÎÎÎÎÎÏÏÏÎ ÏÏÎ ÎÎÏÎÎÏÎÎ ÏÏÏÏ ÎÏÎÎ ÏÏÎÎÎÎÏÏÎÎ."
 
-#: C/accessibility-devel-guide.xml:206(para)
+#: C/index.docbook:206(section/para)
 msgid ""
 "Test ASCII text documentation with a screen reader to confirm that it is "
 "clear and precise and can be read by assistive technologies."
@@ -3962,7 +4141,7 @@ msgstr ""
 "ÎÏÎÎÎÎÎÎÏÏÎÏÎ ÏÏÎ ÎÎÎÎÎ ÎÏÎÏÎÎÎÏ ÎÎÎ ÎÎÏÎÎÎÏ ÎÎÎ ÎÏÎÏÎÎ ÎÎ ÏÎÏÏÏÎÎÎ ÏÎ "
 "ÏÎÏÎÎÎÎÎÎÎÏ ÏÏÎÎÎÎÎÎÏÎÏ."
 
-#: C/accessibility-devel-guide.xml:209(para)
+#: C/index.docbook:209(section/para)
 msgid ""
 "Test HTML applications using a web browser and screen reader to confirm that "
 "the documentation is accessible to assistive technologies."
@@ -3971,7 +4150,7 @@ msgstr ""
 "ÎÎÎÎÎÏÏÏÎ ÎÎÏÎÎÏ ÎÎÎ ÎÎ ÎÏÎÎÎÎÎÎÏÏÎÏÎ ÏÏÎ Î ÏÎÎÎÎÏÎÏÏÎ ÎÎÎÎÎ ÏÏÎÏÎÏÎ ÏÎ "
 "ÏÎÏÎÎÎÎÎÎÎÏ ÏÏÎÎÎÎÎÎÏÎÏ."
 
-#: C/accessibility-devel-guide.xml:212(para)
+#: C/index.docbook:212(section/para)
 msgid ""
 "Note: There are web accessibility guidelines available at <ulink url="
 "\"http://www.w3.org/TR/WAI-WEBCONTENT/\";>http://www.w3.org/TR/WAI-WEBCONTENT/";
@@ -3981,12 +4160,12 @@ msgstr ""
 "<ulink url=\"http://www.w3.org/TR/WAI-WEBCONTENT/\";>http://www.w3.org/TR/WAI-";
 "WEBCONTENT/</ulink>."
 
-#: C/accessibility-devel-guide.xml:215(para)
+#: C/index.docbook:215(section/para)
 msgid "Confirm the following information is included in the documentation:"
 msgstr ""
 "ÎÏÎÎÎÎÎÎÏÏÏÎ ÏÏÎ ÎÎ ÎÎÏÎÎÏÎÎÏ ÏÎÎÏÎÏÎÏÎÎÏ ÏÎÏÎÎÎÎÎÎÎÎÎÏÎÎ ÏÏÎÎ ÏÎÎÎÎÏÎÏÏÎ:"
 
-#: C/accessibility-devel-guide.xml:220(para)
+#: C/index.docbook:220(listitem/para)
 msgid ""
 "State if the application does not support the standard keyboard access used "
 "by the OS."
@@ -3994,15 +4173,15 @@ msgstr ""
 "ÎÎÎÏÏÏÎ ÎÎ Î ÎÏÎÏÎÎÎÎ ÎÎÎ ÏÏÎÏÏÎÏÎÎÎÎ ÏÎÎ ÏÏÏÎÎÎ ÏÏÏÏÎÎÏÎ ÎÎÏÏ ÏÎÎÎÏÏÎÎÎÎÎÎÏ "
 "ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÎÏÏ ÏÎ ÎÎÎÏÎÏÏÎÎÎÏ ÏÏÏÏÎÎÎ."
 
-#: C/accessibility-devel-guide.xml:225(para)
+#: C/index.docbook:225(listitem/para)
 msgid "Identify if there are unique keyboard commands."
 msgstr "ÎÎÎÎÎÏÏÎÏÏÎ ÎÎ ÏÏÎÏÏÎÏÎ ÎÎÎÎÎÎÎÎÏ ÎÎÏÎÎÎÏ ÏÎÎÎÏÏÎÎÎÎÎÎÏ."
 
-#: C/accessibility-devel-guide.xml:230(para)
+#: C/index.docbook:230(listitem/para)
 msgid "Identify any unique accessibility features."
 msgstr "ÎÎÎÎÎÏÏÎÏÏÎ ÎÏÎÎÎÏÎÎÏÎÏÎ ÎÎÎÎÎÎÎÎÏ ÎÎÎÏÎÏÏÎÎÎÏ ÏÏÎÏÎÏÏÏÎÏÎÏ."
 
-#: C/accessibility-devel-guide.xml:235(para)
+#: C/index.docbook:235(listitem/para)
 msgid ""
 "If an action is documented for the mouse, make sure there is an alternative "
 "for using the keyboard."
@@ -4010,11 +4189,11 @@ msgstr ""
 "ÎÎ ÎÎÎ ÎÎÎÏÎÎÎÎ ÏÎÎÎÎÏÎÏÎÎÏÎÎ ÎÎÎ ÏÎ ÏÎÎÏÎÎÎ, ÎÎÎÎÎÏÎÎÎÏÎ ÏÏÎ ÏÏÎÏÏÎÎ ÎÎÎ "
 "ÎÎÎÎÎÎÎÏÎÎÎ ÎÎÎÏÎÎÎÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ ÏÎÎÎÏÏÎÎÏÎÎÎ."
 
-#: C/accessibility-devel-guide.xml:243(title)
+#: C/index.docbook:243(section/title)
 msgid "User Interface Checklist"
 msgstr "ÎÎÏÏÎ ÎÎÎÎÏÎÏ ÎÎ ÏÎ ÎÏÎÏÎÎÏ ÏÎÏÎÎÎÎÎÎÎ ÏÏÎÏÏÎ"
 
-#: C/accessibility-devel-guide.xml:244(para)
+#: C/index.docbook:244(section/para)
 msgid ""
 "This section summarizes the guidelines given in <link linkend=\"gad-ui-"
 "guidelines\">User Interface Guidelines for Supporting Accessibility</link>. "
@@ -4027,7 +4206,7 @@ msgstr ""
 "ÎÎÎ ÏÎÏÎÏÏÏÏÎÏÎÏ ÎÎÏÏÎÎÎÏÎÎÎÎÎÏ ÏÎÎÏÎÏÎÏÎÎÏ ÎÎÎ ÎÎÎÎ ÏÏÎÎÏÎÎÎ ÏÎÏ ÎÎÏÏÎÏ "
 "ÎÎÎÎÏÎÏ ÏÎÏ ÎÏÎÎÎÎ ÎÎÏ."
 
-#: C/accessibility-devel-guide.xml:247(para)
+#: C/index.docbook:247(section/para)
 msgid ""
 "When testing an application for accessibility, you should go through each of "
 "the items in the list. Note whether the application passes or fails each "
@@ -4037,38 +4216,32 @@ msgstr ""
 "ÏÎ ÏÎÎ ÏÎ ÏÏÎÎÏÎÎÎ ÏÎÏ ÎÎÏÏÎÏ. ÎÎÎÎÎÏÏÏÎ ÎÎ Î ÎÏÎÏÎÎÎÎ ÎÏÎÏÏÎÏÎÎÎÎ Î "
 "ÎÏÎÏÏÎÏÎÎÎÎ ÏÎ ÎÎÎÎ ÎÎÎÎÎÎ, Î ÎÎ Î ÎÎÎÎÎÎ ÎÎÎ ÎÏÎÏÎÏÎÎÏÎÎ  ÏÏÎÎ ÎÏÎÏÎÎÎÎ."
 
-#: C/accessibility-devel-guide.xml:251(title)
+#: C/index.docbook:251(table/title)
 msgid "General Principles checklist"
 msgstr "ÎÎÏÏÎ ÎÎÎÎÏÎÏ ÎÎ ÏÎÏ ÎÎÎÎÎÎÏ ÎÏÏÎÏ"
 
-#: C/accessibility-devel-guide.xml:255(entry)
+#: C/index.docbook:255(row/entry)
 msgid "GP"
 msgstr "ÎÎ"
 
-#: C/accessibility-devel-guide.xml:256(entry)
+#: C/index.docbook:256(row/entry)
 msgid "General Principles"
 msgstr "ÎÎÎÎÎÎÏ ÎÏÏÎÏ"
 
-#: C/accessibility-devel-guide.xml:257(entry)
-#: C/accessibility-devel-guide.xml:294(entry)
-#: C/accessibility-devel-guide.xml:373(entry)
-#: C/accessibility-devel-guide.xml:405(entry)
-#: C/accessibility-devel-guide.xml:439(entry)
-#: C/accessibility-devel-guide.xml:491(entry)
-#: C/accessibility-devel-guide.xml:526(entry)
-#: C/accessibility-devel-guide.xml:555(entry)
-#: C/accessibility-devel-guide.xml:579(entry)
-#: C/accessibility-devel-guide.xml:608(entry)
-#: C/accessibility-devel-guide.xml:657(entry)
-#: C/accessibility-devel-guide.xml:681(entry)
+#: C/index.docbook:257(row/entry) C/index.docbook:294(row/entry)
+#: C/index.docbook:373(row/entry) C/index.docbook:405(row/entry)
+#: C/index.docbook:439(row/entry) C/index.docbook:491(row/entry)
+#: C/index.docbook:526(row/entry) C/index.docbook:555(row/entry)
+#: C/index.docbook:579(row/entry) C/index.docbook:608(row/entry)
+#: C/index.docbook:657(row/entry) C/index.docbook:681(row/entry)
 msgid "Pass/Fail/NA"
 msgstr "ÎÏÎÏÏÏÎÎ/ÎÏÎÏÏÏÎÎ/ÎÎ"
 
-#: C/accessibility-devel-guide.xml:262(entry)
+#: C/index.docbook:262(row/entry)
 msgid "GP.1"
 msgstr "ÎÎ.1"
 
-#: C/accessibility-devel-guide.xml:263(entry)
+#: C/index.docbook:263(row/entry)
 msgid ""
 "Every action that alters the user's data or application's settings can be "
 "undone."
@@ -4076,11 +4249,11 @@ msgstr ""
 "ÎÏÎÏÎÎ ÎÎ ÎÎÎÎÏÎÎÎÎ ÎÎÎÎ ÎÎÎÏÎÎÎÎ ÏÎÏ ÎÎÏÎÎÎÎÎÎÎ ÏÎ ÎÎÎÎÎÎÎÎ ÏÎÏ ÏÏÎÏÏÎ Î "
 "ÏÎÏ ÏÏÎÎÎÏÎÎÏ ÏÎÏ ÎÏÎÏÎÎÎÎÏ."
 
-#: C/accessibility-devel-guide.xml:268(entry)
+#: C/index.docbook:268(row/entry)
 msgid "GP.2"
 msgstr "ÎÎ.2"
 
-#: C/accessibility-devel-guide.xml:269(entry)
+#: C/index.docbook:269(row/entry)
 msgid ""
 "All application settings can be restored to their defaults without the user "
 "having to remember what those defaults were."
@@ -4088,11 +4261,11 @@ msgstr ""
 "ÎÎÎÏ ÎÎ ÏÏÎÎÎÏÎÎÏ ÏÎÏ ÎÏÎÏÎÎÎÎÏ ÎÏÎÏÎÏÎ ÎÎ ÎÏÎÎÎÎÎÏÏÎÏÎ ÎÎÎÎ ÎÎ ÏÎÏ "
 "ÏÏÎÎÏÎÎÎÎÎÎÎÎÏ ÎÏÎÎÎÎÎÏ ÏÏÏÎÏ Î ÏÏÎÏÏÎÏ ÎÎ ÏÏÎÏÎÎ ÎÎ ÏÎÏ ÎÏÎÎÎÎÎÎÎÎÏÏÎÎ."
 
-#: C/accessibility-devel-guide.xml:274(entry)
+#: C/index.docbook:274(row/entry)
 msgid "GP.3"
 msgstr "ÎÎ.3"
 
-#: C/accessibility-devel-guide.xml:275(entry)
+#: C/index.docbook:275(row/entry)
 msgid ""
 "After installation, the application can be used without the user having to "
 "insert a disk or CD at any time."
@@ -4100,11 +4273,11 @@ msgstr ""
 "ÎÏÏÎÏÎ ÎÏÏ ÏÎÎ ÎÎÎÎÏÎÏÏÎÏÎ, Î ÎÏÎÏÎÎÎÎ ÎÏÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÎÎ ÏÏÏÎÏ Î "
 "ÏÏÎÏÏÎÏ ÎÎ ÏÏÎÏÎÎ ÎÎ ÎÎÏÎÎÎÎ ÎÎÏÎÎÎ ÎÎÏÎÎ Î ÎÎÎÎ ÎÏÎÎÎÎÎÏÏÎÎÏ ÎÎÏÎ."
 
-#: C/accessibility-devel-guide.xml:279(entry)
+#: C/index.docbook:279(row/entry)
 msgid "GP.4"
 msgstr "ÎÎ.4"
 
-#: C/accessibility-devel-guide.xml:280(entry)
+#: C/index.docbook:280(row/entry)
 msgid ""
 "The most frequently used functions are found at the top level of the menu "
 "structure."
@@ -4112,38 +4285,38 @@ msgstr ""
 "ÎÎ ÏÏÎÎÏÏÎÏÎÎÏ ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÏÎÎ ÏÏÏÎÎ ÎÏÎÏÎÎÎÏÎÎ ÏÏÎ ÎÎÏÏÎÏÎ ÎÏÎÏÎÎÎ "
 "ÏÎÏ ÎÎÎÎÏ ÏÎÏ ÎÎÎÎÏ."
 
-#: C/accessibility-devel-guide.xml:288(title)
+#: C/index.docbook:288(table/title)
 msgid "Keyboard navigation checklist"
 msgstr "ÎÎÏÏÎ ÎÎÎÎÏÎÏ ÎÎ ÏÎÎ ÏÎÎÎÎÎÏÎ ÏÎÎÎÏÏÎÎÎÎÎÎÏ"
 
-#: C/accessibility-devel-guide.xml:292(entry)
+#: C/index.docbook:292(row/entry)
 msgid "KN"
 msgstr "ÎÎ"
 
-#: C/accessibility-devel-guide.xml:299(entry)
+#: C/index.docbook:299(row/entry)
 msgid "KN.1"
 msgstr "ÎÎ.1"
 
-#: C/accessibility-devel-guide.xml:300(entry)
+#: C/index.docbook:300(row/entry)
 msgid "Efficient keyboard access is provided to all application features."
 msgstr ""
 "ÎÎÏÎÏÎÏÎÎ ÎÏÎÎÎÎÎÏÏÎÎÎ ÏÏÏÏÎÎÏÎ ÎÎÏÏ ÏÎÏ ÏÎÎÎÏÏÎÎÎÎÎÎÏ ÏÎ ÏÎÎÏ ÏÎÏ "
 "ÎÎÎÏÎÏÏÎÎÎÏ ÏÎÏ ÎÏÎÏÎÎÎÎÏ."
 
-#: C/accessibility-devel-guide.xml:304(entry)
+#: C/index.docbook:304(row/entry)
 msgid "KN.2"
 msgstr "ÎÎ.2"
 
-#: C/accessibility-devel-guide.xml:305(entry)
+#: C/index.docbook:305(row/entry)
 msgid "All windows have a logical keyboard navigation order."
 msgstr ""
 "ÎÎÎ ÏÎ ÏÎÏÎÎÏÏÎ ÎÏÎÏÎ ÎÎÎ ÎÎÎÎÎÎ ÏÎÎÏÎ ÏÎÎÎÎÎÏÎÏ ÎÎÏÏ ÏÎÏ ÏÎÎÎÏÏÎÎÎÎÎÎÏ."
 
-#: C/accessibility-devel-guide.xml:308(entry)
+#: C/index.docbook:308(row/entry)
 msgid "KN.3"
 msgstr "ÎÎ.3"
 
-#: C/accessibility-devel-guide.xml:309(entry)
+#: C/index.docbook:309(row/entry)
 msgid ""
 "The correct tab order is used for controls whose enabled state is dependent "
 "on checkboxes, radio buttons or toggle buttons."
@@ -4152,11 +4325,11 @@ msgstr ""
 "ÎÎÏÎÏÏÎÏÎÏ ÎÎÎÏÏÎÏÎÎ ÎÏÏ ÏÎ ÏÎÎÎÎ ÎÏÎÎÎÎÏÎ, ÏÎ ÎÎÏÎÏÎÎ ÏÏÏÎÎÏÎÏÏÎ Î ÏÎ "
 "ÎÎÏÎÏÎÎ ÎÎÎÎÎÎÎÎÏ."
 
-#: C/accessibility-devel-guide.xml:313(entry)
+#: C/index.docbook:313(row/entry)
 msgid "KN.4"
 msgstr "ÎÎ.4"
 
-#: C/accessibility-devel-guide.xml:314(entry)
+#: C/index.docbook:314(row/entry)
 msgid ""
 "Keyboard access to application-specific functions does not override existing "
 "system accessibility features."
@@ -4164,11 +4337,11 @@ msgstr ""
 "Î ÏÏÏÏÎÎÏÎ ÎÎÏÏ ÏÎÏ ÏÎÎÎÏÏÎÎÎÎÎÎÏ ÏÎ ÎÎÎÎÎÎÏ ÏÏÎÎÏÏÎÏÎÎÏ ÏÎÏ ÎÏÎÏÎÎÎÎÏ ÎÎÎ "
 "ÏÎÏÎÎÎÎÏÏÎÎ ÏÎÏ ÏÏÎÏÏÎÎÏÎÏ ÎÎÎÏÎÏÏÎÎÎÏ ÏÏÎÏÎÏÏÏÎÏÎÏ ÏÎÏ ÏÏÏÏÎÎÎÏÎÏ."
 
-#: C/accessibility-devel-guide.xml:318(entry)
+#: C/index.docbook:318(row/entry)
 msgid "KN.5"
 msgstr "ÎÎ.5"
 
-#: C/accessibility-devel-guide.xml:319(entry)
+#: C/index.docbook:319(row/entry)
 msgid ""
 "The application provides more than one method to perform keyboard tasks "
 "whenever possible."
@@ -4176,48 +4349,48 @@ msgstr ""
 "Î ÎÏÎÏÎÎÎÎ ÏÎÏÎÏÎÎ ÏÎÏÎÏÏÏÏÎÏÎÏ ÎÏÏ ÎÎÎ ÎÎÎÏÎÎÏÏ ÎÎÎ ÏÎÎ ÎÎÏÎÎÎÏÎ ÎÏÎÎÏÎÏÎ "
 "ÎÎÏÏ ÏÎÏ ÏÎÎÎÏÏÎÎÎÎÎÎÏ ÎÏÎÏÎÎÎÏÎÏÎ ÎÏÏÏ ÎÎÎÎÎ ÎÏÎÎÏÏ."
 
-#: C/accessibility-devel-guide.xml:323(entry)
+#: C/index.docbook:323(row/entry)
 msgid "KN.6"
 msgstr "ÎÎ.6"
 
-#: C/accessibility-devel-guide.xml:324(entry)
+#: C/index.docbook:324(row/entry)
 msgid "There are alternative key combinations wherever possible."
 msgstr "ÎÏÎÏÏÎÏÎ ÎÎÎÎÎÎÎÏÎÎÎÎ ÏÏÎÎÏÎÏÎÎÎ ÏÎÎÎÏÏÏÎ ÏÏÎÏ ÎÏÏÏ ÎÎÎÎÎ ÎÏÎÎÏÏ."
 
-#: C/accessibility-devel-guide.xml:328(entry)
+#: C/index.docbook:328(row/entry)
 msgid "KN.7"
 msgstr "ÎÎ.7"
 
-#: C/accessibility-devel-guide.xml:329(entry)
+#: C/index.docbook:329(row/entry)
 msgid ""
 "There are no awkward reaches for frequently performed keyboard operations."
 msgstr ""
 "ÎÎÎ ÏÏÎÏÏÎÏÎ ÎÎÎÎÎÎÏ ÏÏÎÏÎÎÏÎÎÏ ÎÎÎ ÎÎÎÏÎÏÏÎÎÎÏ ÏÎÏ ÏÎÎÎÏÏÎÎÎÎÎÎÏ ÏÎÏ "
 "ÎÎÏÎÎÎÏÎÏÎÎ ÏÏÏÎÎ."
 
-#: C/accessibility-devel-guide.xml:333(entry)
+#: C/index.docbook:333(row/entry)
 msgid "KN.8"
 msgstr "ÎÎ.8"
 
-#: C/accessibility-devel-guide.xml:334(entry)
+#: C/index.docbook:334(row/entry)
 msgid "The application does not use repetitive, simultaneous keypresses."
 msgstr "Î ÎÏÎÏÎÎÎÎ ÎÎÎ ÎÎÎÎÎ ÎÏÎÎÎÎÎÎÎÎÎÏÎÎÎÎ, ÏÎÏÏÏÏÏÎÎÎ ÏÏÎÏÎ ÏÏÎ ÏÎÎÎÏÏÏÎ."
 
-#: C/accessibility-devel-guide.xml:338(entry)
+#: C/index.docbook:338(row/entry)
 msgid "KN.9"
 msgstr "ÎÎ.9"
 
-#: C/accessibility-devel-guide.xml:339(entry)
+#: C/index.docbook:339(row/entry)
 msgid "The application provides keyboard equivalents for all mouse functions."
 msgstr ""
 "Î ÎÏÎÏÎÎÎÎ ÏÎÏÎÏÎÎ ÎÏÎÎÏÎÎÎÎÏ ÎÎÎÏÎÎÎÎÏ ÎÎÏÏ ÏÎÏ ÏÎÎÎÏÏÎÎÎÎÎÎÏ ÎÎÎ ÏÎÎÏ ÏÎÏ "
 "ÎÎÎÏÎÏÏÎÎÎÏ ÏÎÏ ÎÎÏÎÎÎÏÎÏÎÎ ÎÎ ÏÎ ÏÎÎÏÎÎÎ."
 
-#: C/accessibility-devel-guide.xml:343(entry)
+#: C/index.docbook:343(row/entry)
 msgid "KN.10"
 msgstr "ÎÎ.10"
 
-#: C/accessibility-devel-guide.xml:344(entry)
+#: C/index.docbook:344(row/entry)
 msgid ""
 "Any text or object that can be selected with the mouse can also be selected "
 "with the keyboard alone."
@@ -4225,11 +4398,11 @@ msgstr ""
 "ÎÏÎÎÎÎÎÏÎÏÎ ÎÎÎÎÎÎÎ Î ÎÎÏÎÎÎÎÎÎÎÎ, ÏÎÏ ÎÏÎÏÎÎ ÎÎ ÎÏÎÎÎÎÎÎ ÎÎ ÏÎ ÏÎÎÏÎÎÎ, "
 "ÎÏÎÏÎÎ ÎÏÎÏÎÏ ÎÎ ÎÏÎÎÎÎÎÎ ÎÎÎ ÎÏÎÎ ÎÎ ÏÎ ÏÏÎÏÎ ÏÎÏ ÏÎÎÎÏÏÎÎÎÎÎÎÏ."
 
-#: C/accessibility-devel-guide.xml:348(entry)
+#: C/index.docbook:348(row/entry)
 msgid "KN.11"
 msgstr "ÎÎ.11"
 
-#: C/accessibility-devel-guide.xml:349(entry)
+#: C/index.docbook:349(row/entry)
 msgid ""
 "Any object that can be resized or moved with the mouse can also be resized "
 "or moved with the keyboard alone."
@@ -4237,11 +4410,11 @@ msgstr ""
 "ÎÎÎÎ ÎÎÏÎÎÎÎÎÎÎÎ ÏÎÏ ÎÏÎÏÎÎ ÎÎ ÎÎÎÎÎÎÎ ÎÎÎÎÎÎÏ Î ÎÎ ÎÎÏÎÎÎÎÎÎÎÎ ÎÎ ÏÎ "
 "ÏÎÎÏÎÎÎ, ÎÏÎÏÎÎ ÎÏÎÏÎÏ ÎÎ ÏÎ ÎÎÎÎÎ ÎÎÎ ÎÏÎÎ ÎÎ ÏÎ ÏÏÎÏÎ ÏÎÎÎÏÏÎÎÎÎÎÎÏ."
 
-#: C/accessibility-devel-guide.xml:353(entry)
+#: C/index.docbook:353(row/entry)
 msgid "KN.12"
 msgstr "ÎÎ.12"
 
-#: C/accessibility-devel-guide.xml:354(entry)
+#: C/index.docbook:354(row/entry)
 msgid ""
 "The application does not use any general navigation functions to trigger "
 "operations."
@@ -4249,11 +4422,11 @@ msgstr ""
 "Î ÎÏÎÏÎÎÎÎ ÎÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎ ÎÏÎÎÎÏÎÎÏÎÏÎ ÏÏÎÎÏÏÎÏÎÎÏ ÎÎÎÎÎÎÏ ÏÎÎÎÎÎÏÎÏ ÎÎÎ "
 "ÏÎÎ ÎÎÏÎÎÎÏÎ ÎÎÏÎÎÏÎ ÎÎÎÏÎÏÏÎÎÏÎ."
 
-#: C/accessibility-devel-guide.xml:358(entry)
+#: C/index.docbook:358(row/entry)
 msgid "KN.13"
 msgstr "ÎÎ.13"
 
-#: C/accessibility-devel-guide.xml:359(entry)
+#: C/index.docbook:359(row/entry)
 msgid ""
 "All keyboard-invoked menus, windows and tooltips appear near the object they "
 "relate to."
@@ -4261,56 +4434,49 @@ msgstr ""
 "ÎÎÎ ÏÎ ÎÎÎÎÏ, ÏÎ ÏÎÏÎÎÏÏÎ ÎÎÎ ÎÎ ÏÏÎÎÎÎÎÎÎÏ ÏÎÏ ÎÏÎÎÎÎÎÎÎÎÎ ÎÏÏ ÏÎ "
 "ÏÎÎÎÏÏÎÎÏÎÎÎ ÎÎÏÎÎÎÎÎÎÏÎÎ ÎÎÎÏÎ ÏÏÎ ÎÎÏÎÎÎÎÎÎÎÎ ÎÎ ÏÎ ÎÏÎÎÎ ÏÏÎÏÎÎÎÎÏÎÎ."
 
-#: C/accessibility-devel-guide.xml:367(title)
+#: C/index.docbook:367(table/title)
 msgid "Mouse Interaction checklist"
 msgstr "ÎÎÏÏÎ ÎÎÎÎÏÎÏ ÎÎ ÏÎÎ ÎÎÎÎÎÎÏÎÎÏÎÏÎ ÏÎÏ ÏÎÎÏÎÎÎÎÏ"
 
-#: C/accessibility-devel-guide.xml:371(entry)
+#: C/index.docbook:371(row/entry)
 msgid "MI"
 msgstr "ÎÎ"
 
-#: C/accessibility-devel-guide.xml:377(entry)
+#: C/index.docbook:377(row/entry)
 msgid "MI.1"
 msgstr "ÎÎ.1"
 
-#: C/accessibility-devel-guide.xml:378(mousebutton)
-msgid "right"
-msgstr "ÎÎÎÎÎ"
-
-#: C/accessibility-devel-guide.xml:378(mousebutton)
-msgid "middle"
-msgstr "ÎÎÏÎÎÎ"
-
-#: C/accessibility-devel-guide.xml:378(entry)
+#: C/index.docbook:378(row/entry)
 msgid ""
-"No operations depend on input from the <placeholder-1/> or <placeholder-2/> "
-"mouse buttons."
+"No operations depend on input from the <mousebutton>right</mousebutton> or "
+"<mousebutton>middle</mousebutton> mouse buttons."
 msgstr ""
-"ÎÎÎÎÎ ÎÎÎÏÎÏÏÎÎÎ ÎÎÎ ÎÎÎÏÏÎÏÎÎ ÎÏÏ ÏÎÎ ÎÎÏÎÎÎ ÎÏÏ ÏÎ ÎÎÏÎÏÎÎ ÏÎÏ ÏÎÎÏÎÎÎÎÏ "
-"<placeholder-1/> Î <placeholder-2/>."
+"ÎÎÎÎÎ ÎÎÎÏÎÏÏÎÎÎ ÎÎÎ ÎÎÎÏÏÎÏÎÎ ÎÏÏ ÏÎÎ ÎÎÏÎÎÎ ÎÏÏ ÏÎ ÎÎÏÎÏÎÎ "
+"<mousebutton>ÎÎÎÎ</mousebutton> Î <mousebutton>ÎÎÏÎÎÎ</mousebutton> ÏÎÏ "
+"ÏÎÎÏÎÎÎÎÏ."
 
-#: C/accessibility-devel-guide.xml:381(entry)
+#: C/index.docbook:381(row/entry)
 msgid "MI.2"
 msgstr "ÎÎ.2"
 
-#: C/accessibility-devel-guide.xml:382(entry)
+#: C/index.docbook:382(row/entry)
 msgid "All mouse operations can be cancelled before they are complete."
 msgstr ""
 "ÎÎÎÏ ÎÎ ÎÎÎÏÎÏÏÎÎÎÏ ÏÎÏ ÏÎÎÏÎÎÎÎÏ ÎÏÎÏÎÏÎ ÎÎ ÎÎÏÏÏÎÎÏÎ ÏÏÎÎ ÎÎÎÎÎÎÏÏÎÎÏÎ."
 
-#: C/accessibility-devel-guide.xml:385(entry)
+#: C/index.docbook:385(row/entry)
 msgid "MI.3"
 msgstr "ÎÎ.3"
 
-#: C/accessibility-devel-guide.xml:386(entry)
+#: C/index.docbook:386(row/entry)
 msgid "Visual feedback is provided throughout drag and drop operations"
 msgstr "ÎÎÏÎÏÎÏÎÎ ÎÏÏÎÎÎ ÎÎÎÎÏÎÏÎ ÎÎÏÏ ÏÏÎ ÎÎÎÏÎÏÏÎÎÏÎ ÎÎÏÎÏÎÏÎÏ ÎÎ ÎÏÏÎÎÏÎÏ"
 
-#: C/accessibility-devel-guide.xml:390(entry)
+#: C/index.docbook:390(row/entry)
 msgid "MI.4"
 msgstr "ÎÎ.4"
 
-#: C/accessibility-devel-guide.xml:391(entry)
+#: C/index.docbook:391(row/entry)
 msgid ""
 "The mouse pointer is never warped under application control, or its movement "
 "restricted to part of the screen by the application."
@@ -4318,19 +4484,19 @@ msgstr ""
 "Î ÎÎÎÎÏÎÏ ÏÎÏ ÏÎÎÏÎÎÎÎÏ ÏÎÏÎ ÎÎÎ ÎÏÎÏÎÎÎÎÏÎÎ ÎÏÏ ÏÎÎ ÎÎÎÎÏÎ ÏÎÏ ÎÏÎÏÎÎÎÎ, Î "
 "Î ÎÎÎÎÏÎ ÏÎÏ ÏÎÏÎÎÏÎÎÎÏÎÎ ÎÏÏ ÏÎÎ ÎÏÎÏÎÎÎÎ ÏÎ ÎÎÎ ÎÎÏÎÏ ÏÎÏ ÎÎÏÎÎÏ."
 
-#: C/accessibility-devel-guide.xml:399(title)
+#: C/index.docbook:399(table/title)
 msgid "Graphical Elements checklist"
 msgstr "ÎÎÏÏÎ ÎÎÎÎÏÎÏ ÎÎ ÏÎ ÎÏÎÏÎÎÎ ÏÏÎÎÏÎÎÎ"
 
-#: C/accessibility-devel-guide.xml:403(entry)
+#: C/index.docbook:403(row/entry)
 msgid "GE"
 msgstr "ÎÎ"
 
-#: C/accessibility-devel-guide.xml:409(entry)
+#: C/index.docbook:409(row/entry)
 msgid "GE.1"
 msgstr "ÎÎ.1"
 
-#: C/accessibility-devel-guide.xml:410(entry)
+#: C/index.docbook:410(row/entry)
 msgid ""
 "There are no hard-coded graphical attributes such as line, border or shadow "
 "thickness."
@@ -4338,11 +4504,11 @@ msgstr ""
 "ÎÎÎ ÏÏÎÏÏÎÏÎ ÎÏÎÏÎÎÎ ÏÏÎÎÏÎÎÎ ÎÎ ÏÏÎÎÎÏÎ ÎÏÎÎÎÎÏÎÎÎÏÎ ÏÏÏÏ ÏÏÎ ÎÏÎÎÎÎ, ÏÏÎ "
 "ÏÎÏÎÎÏÎÎÎÎ Î ÏÏÎ ÏÎÏÎÏ ÏÎÏ ÏÎÎÎÏ."
 
-#: C/accessibility-devel-guide.xml:414(entry)
+#: C/index.docbook:414(row/entry)
 msgid "GE.2"
 msgstr "ÎÎ.2"
 
-#: C/accessibility-devel-guide.xml:415(entry)
+#: C/index.docbook:415(row/entry)
 msgid ""
 "All multi-color graphical elements can be shown in monochrome only, where "
 "possible."
@@ -4350,11 +4516,11 @@ msgstr ""
 "ÎÎÎ ÏÎ ÎÏÎÏÎÎÎ ÏÏÎÎÏÎÎÎ ÎÎ ÏÎÎÎÎ ÏÏÏÎÎÏÎ ÎÏÎÏÎÏÎ ÎÎ ÏÏÎÎÎÎÎÎÏÎ ÎÏÎÎ ÎÎ ÎÎÎ "
 "ÏÏÏÎÎ, ÏÏÎÏ ÎÏÏÏ ÎÎÎÎÎ ÎÏÎÎÏÏ."
 
-#: C/accessibility-devel-guide.xml:419(entry)
+#: C/index.docbook:419(row/entry)
 msgid "GE.3"
 msgstr "ÎÎ.3"
 
-#: C/accessibility-devel-guide.xml:420(entry)
+#: C/index.docbook:420(row/entry)
 msgid ""
 "All interactive GUI elements are easily distinguishable from static GUI "
 "elements."
@@ -4362,83 +4528,83 @@ msgstr ""
 "ÎÎÎ ÏÎ ÏÏÎÎÏÎÎÎ ÏÎÏ ÎÏÎÏÎÎÎÏ ÏÎÏÎÎÎÎÎÎÎÏÎÏ ÏÎÏ ÎÎÎÎÎÎÏÏÎÎÏÎÏÎ ÎÎÎÎÏÎÎÎÎÏÎÎ "
 "ÎÏÎÎÎÎ ÏÎ ÏÏÎÏÎ ÎÎ ÏÎ ÏÏÎÏÎÎÎ ÏÏÎÎÏÎÎÎ ÏÎÏ."
 
-#: C/accessibility-devel-guide.xml:424(entry)
+#: C/index.docbook:424(row/entry)
 msgid "GE.4"
 msgstr "ÎÎ.4"
 
-#: C/accessibility-devel-guide.xml:425(entry)
+#: C/index.docbook:425(row/entry)
 msgid "An option to hide non-essential graphics is provided."
 msgstr ""
 "ÎÎÏÎÏÎÏÎÎ ÎÎÎ ÎÏÎÎÎÎÎ ÎÎÎ ÏÎÎ ÎÏÏÎÏÏÏÎ ÏÏÎ ÎÎ ÎÏÎÏÎÏÎÏÎ ÎÏÎÏÎÎÏÎ ÏÏÎÎÏÎÎÏÎ."
 
-#: C/accessibility-devel-guide.xml:433(title)
+#: C/index.docbook:433(table/title)
 msgid "Fonts and Text checklist"
 msgstr "ÎÎÏÏÎ ÎÎÎÎÏÎÏ ÎÎ ÎÏÎÎÎÎÏÎÏÎÎÏÎÏ ÎÎÎ ÎÎÎÎÎÎÎ"
 
-#: C/accessibility-devel-guide.xml:437(entry)
+#: C/index.docbook:437(row/entry)
 msgid "FT"
 msgstr "ÎÎ"
 
-#: C/accessibility-devel-guide.xml:443(entry)
+#: C/index.docbook:443(row/entry)
 msgid "FT.1"
 msgstr "ÎÎ.1"
 
-#: C/accessibility-devel-guide.xml:444(entry)
+#: C/index.docbook:444(row/entry)
 msgid "No font styles or sizes are hard-coded."
 msgstr "ÎÎÎ ÎÏÎÎÎÎÏÎÎÎÏÎÏÎÎ ÏÏÎÎÎÏÎ ÎÏÏÎ ÏÏÏÎÎ ÎÏÏÎ ÎÎÎÎÎÎ ÎÏÎÎÎÎÏÎÏÎÎÏÏÎ."
 
-#: C/accessibility-devel-guide.xml:446(entry)
+#: C/index.docbook:446(row/entry)
 msgid "FT.2"
 msgstr "ÎÎ.2"
 
-#: C/accessibility-devel-guide.xml:447(entry)
+#: C/index.docbook:447(row/entry)
 msgid "An option to turn off graphical backdrops behind text is provided."
 msgstr ""
 "ÎÎÏÎÏÎÏÎÎ ÎÎÎ ÎÏÎÎÎÎÎ ÎÎÎ ÏÎÎ ÎÏÎÎÎÏÎÎÏÎÎÎÏÎ ÏÏÎ ÎÏÎÏÎÎÏÎ ÏÎÎÎÎÎÏÎ ÏÎÏÏ ÎÏÏ "
 "ÏÎ ÎÎÎÎÎÎÎ."
 
-#: C/accessibility-devel-guide.xml:451(entry)
+#: C/index.docbook:451(row/entry)
 msgid "FT.3"
 msgstr "ÎÎ.3"
 
-#: C/accessibility-devel-guide.xml:452(entry)
+#: C/index.docbook:452(row/entry)
 msgid "All labels have names that make sense when taken out of context."
 msgstr ""
 "ÎÎÎÏ ÎÎ ÎÏÎÎÎÏÎÏ ÎÏÎÏÎ ÎÎÏÎÎÏÎ ÏÎ ÎÏÎÎÎ ÎÏÎÏÎ ÏÎÎÎÏÎÎ ÎÎÏÎ ÏÎÎ ÎÎÎÎÏÎÎ ÏÎÏÏ "
 "ÎÏÏ ÏÎ ÏÎÏÎÎÏÏÎÎÎÎ."
 
-#: C/accessibility-devel-guide.xml:456(entry)
+#: C/index.docbook:456(row/entry)
 msgid "FT.4"
 msgstr "ÎÎ.4"
 
-#: C/accessibility-devel-guide.xml:457(entry)
+#: C/index.docbook:457(row/entry)
 msgid "No label names are used more than once in the same window."
 msgstr ""
 "ÎÏÎ ÎÎÎÎ ÏÎÏÎÎÏÏÎ ÎÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÏÎÎÏ ÎÏÏ ÎÎÎ ÏÎÏÎ ÏÎ ÎÎÏÎÎÏÎ ÎÏÎÎÎÏÏÎ."
 
-#: C/accessibility-devel-guide.xml:461(entry)
+#: C/index.docbook:461(row/entry)
 msgid "FT.5"
 msgstr "ÎÎ.5"
 
-#: C/accessibility-devel-guide.xml:462(entry)
+#: C/index.docbook:462(row/entry)
 msgid "Label positioning is consistent throughout the application."
 msgstr "Î ÏÎÏÎÎÎÏÎÏÎ ÎÎÏÎÎÎÏÏÎ ÎÎÎÎÎ ÏÏÎÎÏÎÏ ÎÏÏ ÏÎÎ ÎÏÎÏÎÎÎÎ."
 
-#: C/accessibility-devel-guide.xml:466(entry)
+#: C/index.docbook:466(row/entry)
 msgid "FT.6"
 msgstr "ÎÎ.6"
 
-#: C/accessibility-devel-guide.xml:467(entry)
+#: C/index.docbook:467(row/entry)
 msgid "All static text labels that identify other controls end in a colon (:)."
 msgstr ""
 "ÎÎÎÏ ÎÎ ÎÏÎÎÎÏÎÏ ÏÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎÏ ÏÎÏ ÎÎÎÎÎÏÏÎÎÎÏÎ ÎÎÎÎÏÏ ÎÎÎÎÏÎÏÏ ÎÎÎÎÏÎ "
 "ÎÎ ÎÎÏ-ÎÎÏÏ ÏÎÎÎÎÎ (:)."
 
-#: C/accessibility-devel-guide.xml:471(entry)
+#: C/index.docbook:471(row/entry)
 msgid "FT.7"
 msgstr "ÎÎ.7"
 
-#: C/accessibility-devel-guide.xml:472(entry)
+#: C/index.docbook:472(row/entry)
 msgid ""
 "Static text labels that identify other controls immediately precede those "
 "controls in the tab order."
@@ -4446,11 +4612,11 @@ msgstr ""
 "ÎÎÎÏ ÎÎ ÎÏÎÎÎÏÎÏ ÏÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎÏ ÏÎÏ ÎÎÎÎÎÏÏÎÎÎÏÎ ÎÎÎÎÏÏ ÎÎÎÎÏÎÏÏ "
 "ÏÏÎÎÎÎÏÎÏÎÎ ÎÎÎÏÎ ÎÏÏ ÏÎÏÏ ÎÎÎÎÏÎÏÏ ÎÏÏÎÏÏ ÏÏÎ ÏÎÎÏÎ ÏÎÎÎÎÏÎÎÏÎÏ ÎÎÏÏÎÎÏÎ."
 
-#: C/accessibility-devel-guide.xml:476(entry)
+#: C/index.docbook:476(row/entry)
 msgid "FT.8"
 msgstr "ÎÎ.8"
 
-#: C/accessibility-devel-guide.xml:477(entry)
+#: C/index.docbook:477(row/entry)
 msgid ""
 "An alternative to WYSIWYG is provided. For example, the ability to specify "
 "different screen and printer fonts in a text editor."
@@ -4459,19 +4625,19 @@ msgstr ""
 "ÏÎÎ ÎÏÎÏÎÏ ÎÎÎÏÎÏÎÏÎÎÏÎ ÎÏÎÎÎÎÏÎÏÎÎÏÏÎ ÎÎÏÎÎÏ ÎÎÎ ÎÎÏÏÏÏÏÎÏ ÏÎ ÎÎÎÎ "
 "ÎÏÎÎÎÏÎÎÏÏÎ ÎÎÎÎÎÎÎÏ."
 
-#: C/accessibility-devel-guide.xml:485(title)
+#: C/index.docbook:485(table/title)
 msgid "Color and Contrast checklist"
 msgstr "ÎÎÏÏÎ ÎÎÎÎÏÎÏ ÏÏÏÎÎÏÎÏ ÎÎÎ ÎÎÏÎÎÎÏÎÏ"
 
-#: C/accessibility-devel-guide.xml:489(entry)
+#: C/index.docbook:489(row/entry)
 msgid "CC"
 msgstr "ÎÎ"
 
-#: C/accessibility-devel-guide.xml:495(entry)
+#: C/index.docbook:495(row/entry)
 msgid "CC.1"
 msgstr "ÎÎ.1"
 
-#: C/accessibility-devel-guide.xml:496(entry)
+#: C/index.docbook:496(row/entry)
 msgid ""
 "Application colors are not hard-coded, but are drawn either from the current "
 "desktop theme or an application setting."
@@ -4480,11 +4646,11 @@ msgstr ""
 "ÎÎÏÎ ÎÏÏ ÏÎ ÏÏÎÏÎÎ ÎÎÎÎ ÏÎÏ ÎÏÎÏÎÎÎÎÎÏ ÎÏÎÎÏÎÎÏ ÎÎÏÎ ÎÏÏ ÏÎÏ ÏÏÎÎÎÏÎÎÏ ÏÎÏ "
 "ÎÏÎÏÎÎÎÎÏ."
 
-#: C/accessibility-devel-guide.xml:500(entry)
+#: C/index.docbook:500(row/entry)
 msgid "CC.2"
 msgstr "ÎÎ.2"
 
-#: C/accessibility-devel-guide.xml:501(entry)
+#: C/index.docbook:501(row/entry)
 msgid ""
 "Color is only used as an enhancement, and not as the only means to convey "
 "information or actions."
@@ -4492,22 +4658,22 @@ msgstr ""
 "ÎÎ ÏÏÏÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÎÏÎÎ ÏÏ ÎÏÎÏÏÏÏÎÏÎ, ÎÎÎ ÏÏÎ ÏÎÎ ÏÎ ÎÏÎÎ ÎÎÏÎ ÎÎÎ ÏÎ "
 "ÎÎÏÎÏÎÏÎ ÏÎÎÏÎÏÎÏÎÏÎ ÎÎÎ ÎÎÎÏÎÎÎÏÎ."
 
-#: C/accessibility-devel-guide.xml:506(entry)
+#: C/index.docbook:506(row/entry)
 msgid "CC.3"
 msgstr "ÎÎ.3"
 
-#: C/accessibility-devel-guide.xml:507(entry)
+#: C/index.docbook:507(row/entry)
 msgid ""
 "The application supports all available high- contrast themes and settings."
 msgstr ""
 "Î ÎÏÏÎÏÎÎÎÎ ÏÏÎÏÏÎÏÎÎÎÎ ÏÎÎ ÏÎ ÎÎÎÎÎÏÎÎÎ ÎÎÎÎÏÎ ÎÎÎ ÏÎÏ ÏÏÎÎÎÏÎÎÏ ÎÏÎÎÎÏ "
 "ÎÎÏÎÎÎÏÎÏ."
 
-#: C/accessibility-devel-guide.xml:511(entry)
+#: C/index.docbook:511(row/entry)
 msgid "CC.4"
 msgstr "ÎÎ.4"
 
-#: C/accessibility-devel-guide.xml:512(entry)
+#: C/index.docbook:512(row/entry)
 msgid ""
 "The software is not dependent on any particular high-contrast themes or "
 "settings."
@@ -4515,35 +4681,35 @@ msgstr ""
 "ÎÎ ÎÎÎÎÏÎÎÎÏ ÎÎÎ ÎÎÎÏÏÎÏÎÎ ÎÏÏ ÎÎÏÎÎÎ ÏÏÎÎÎÎÏÎÎÎÎÎ ÎÎÎÎ Î ÏÏÎÎÎÏÎÎÏ ÏÏÎÎÎÏ "
 "ÎÎÏÎÎÎÏÎÏ."
 
-#: C/accessibility-devel-guide.xml:520(title)
+#: C/index.docbook:520(table/title)
 msgid "Magnification checklist"
 msgstr "ÎÎÏÏÎ ÎÎÎÎÏÎÏ ÎÎÎÎÎÏÎÏÎÏ"
 
-#: C/accessibility-devel-guide.xml:524(entry)
+#: C/index.docbook:524(row/entry)
 msgid "MG"
 msgstr "ÎÎ"
 
-#: C/accessibility-devel-guide.xml:530(entry)
+#: C/index.docbook:530(row/entry)
 msgid "MG.1"
 msgstr "ÎÎ.1"
 
-#: C/accessibility-devel-guide.xml:531(entry)
+#: C/index.docbook:531(row/entry)
 msgid "The application provides the ability to magnify the work area."
 msgstr "Î ÎÏÎÏÎÎÎÎ ÏÎÏÎÏÎÎ ÏÎ ÎÏÎÎÏÏÏÎÏÎ ÎÎÎÎÎÏÎÏÎÏ ÏÎÏ ÏÎÏÎÎÏÎÏ ÎÏÎÎÏÎÎÏ."
 
-#: C/accessibility-devel-guide.xml:535(entry)
+#: C/index.docbook:535(row/entry)
 msgid "MG.2"
 msgstr "ÎÎ.2"
 
-#: C/accessibility-devel-guide.xml:536(entry)
+#: C/index.docbook:536(row/entry)
 msgid "The application provides the option to scale the work area."
 msgstr "Î ÎÏÎÏÎÎÎÎ ÏÎÏÎÏÎÎ ÏÎÎ ÎÏÎÎÎÎÎ ÎÎÎÎÎÎÏÏÎÏ ÏÎÏ ÏÎÏÎÎÏÎÏ ÎÏÎÎÏÎÎÏ."
 
-#: C/accessibility-devel-guide.xml:540(entry)
+#: C/index.docbook:540(row/entry)
 msgid "MG.3"
 msgstr "ÎÎ.3"
 
-#: C/accessibility-devel-guide.xml:541(entry)
+#: C/index.docbook:541(row/entry)
 msgid ""
 "The application's functionality is not affected by changing the "
 "magnification or scale settings."
@@ -4551,30 +4717,30 @@ msgstr ""
 "Î ÎÎÎÏÎÏÏÎÎÎÏÏÎÏÎ ÏÎÏ ÎÏÎÏÎÎÎÎÏ ÎÎÎ ÎÏÎÏÎÎÎÎÏÎÎ ÎÏÏ ÏÎÏ ÏÏÎÎÎÏÎÎÏ ÎÎÎÎÎÏÎÏÎÏ "
 "ÎÎÎ ÎÎÎÎÎÎÏÏÎÏ."
 
-#: C/accessibility-devel-guide.xml:549(title)
+#: C/index.docbook:549(table/title)
 msgid "Audio checklist"
 msgstr "ÎÎÏÏÎ ÎÎÎÎÏÎÏ ÎÏÎÏ"
 
-#: C/accessibility-devel-guide.xml:553(entry)
+#: C/index.docbook:553(row/entry)
 msgid "AU"
 msgstr "ÎÎ"
 
-#: C/accessibility-devel-guide.xml:559(entry)
+#: C/index.docbook:559(row/entry)
 msgid "AU.1"
 msgstr "ÎÎ.1"
 
-#: C/accessibility-devel-guide.xml:560(entry)
+#: C/index.docbook:560(row/entry)
 msgid ""
 "Sound is not used as the only means of conveying any items of information."
 msgstr ""
 "Î ÎÏÎÏ ÎÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÏÏ ÏÎ ÎÏÎÎ ÎÎÏÎ ÎÎÏÎÏÎÏÎÏ ÏÏÎÎÏÎÎÏÎ ÎÏÏ "
 "ÏÎÎÏÎÏÎÏÎÎÏ."
 
-#: C/accessibility-devel-guide.xml:564(entry)
+#: C/index.docbook:564(row/entry)
 msgid "AU.2"
 msgstr "ÎÎ.2"
 
-#: C/accessibility-devel-guide.xml:565(entry)
+#: C/index.docbook:565(row/entry)
 msgid ""
 "The user can configure the frequency and volume of all sounds and warning "
 "beeps."
@@ -4582,19 +4748,19 @@ msgstr ""
 "Î ÏÏÎÏÏÎÏ ÎÏÎÏÎÎ ÎÎ ÏÏÎÎÎÏÎÎ ÏÎ ÏÏÏÎÏÏÎÏÎ ÎÎÎ ÏÎÎ ÎÎÏÎÏÎ ÏÎÏÎ ÏÏÎ ÎÏÏÎ ÎÎÎ "
 "ÏÏÎ ÎÏÎÏ ÏÏÎÎÎÎÎÏÎÎÎÏÎÏ."
 
-#: C/accessibility-devel-guide.xml:573(title)
+#: C/index.docbook:573(table/title)
 msgid "Animation checklist"
 msgstr "ÎÎÏÏÎ ÎÎÎÎÏÎÏ ÎÏÎ ÎÎÎÎÏÎÏ"
 
-#: C/accessibility-devel-guide.xml:577(entry)
+#: C/index.docbook:577(row/entry)
 msgid "AN"
 msgstr "ÎÎ"
 
-#: C/accessibility-devel-guide.xml:583(entry)
+#: C/index.docbook:583(row/entry)
 msgid "AN.1"
 msgstr "ÎÎ.1"
 
-#: C/accessibility-devel-guide.xml:584(entry)
+#: C/index.docbook:584(row/entry)
 msgid ""
 "There are no flashing or blinking elements with a frequency greater than 2Hz "
 "or lower than 55Hz."
@@ -4602,19 +4768,19 @@ msgstr ""
 "ÎÎÎ ÏÏÎÏÏÎÏÎ ÏÏÎÎÏÎÎÎ ÏÎÏ ÎÎÎÎÎÏÎÎÎÎÏÎ ÎÎ ÏÏÏÎÏÏÎÏÎ ÎÎÎÎÎÏÏÎÏÎ ÎÏÏ 2Hz ÎÎÎ "
 "ÎÎÎÏÏÏÎÏÎ ÎÏÏ 55Hz."
 
-#: C/accessibility-devel-guide.xml:588(entry)
+#: C/index.docbook:588(row/entry)
 msgid "AN.2"
 msgstr "ÎÎ.2"
 
-#: C/accessibility-devel-guide.xml:589(entry)
+#: C/index.docbook:589(row/entry)
 msgid "Any flashing or blinking is confined to small areas of the screen."
 msgstr "ÎÏÎÎÎÏÎÏÎ ÎÎÎÎÎÏÎÎÎÎÎ ÏÎÏÎÎÏÎÎÎÏÎÎ ÏÎ ÎÎÎÏÎÏ ÏÎÏÎÎÏÎÏ ÏÎÏ ÎÎÏÎÎÏ."
 
-#: C/accessibility-devel-guide.xml:593(entry)
+#: C/index.docbook:593(row/entry)
 msgid "AN.3"
 msgstr "ÎÎ.3"
 
-#: C/accessibility-devel-guide.xml:594(entry)
+#: C/index.docbook:594(row/entry)
 msgid ""
 "If animation is used, an option is available to turn it off before it is "
 "first shown."
@@ -4622,47 +4788,47 @@ msgstr ""
 "ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÏÎ ÎÎÎÎÏÎÏ, ÎÎÎÎÎ ÎÎÎÎÎÏÎÎÎ ÎÎÎ ÎÏÎÎÎÎÎ ÎÎÎ ÏÎÎ "
 "ÎÏÎÎÎÏÎÎÏÎÎÎÏÎ ÏÏÎÎ ÏÏÎÎÎÎÎÎÏÎ ÎÎÎ ÏÏÏÏÎ ÏÎÏÎ."
 
-#: C/accessibility-devel-guide.xml:602(title)
+#: C/index.docbook:602(table/title)
 msgid "Keyboard Focus checklist"
 msgstr "ÎÎÏÏÎ ÎÎÎÎÏÎÏ ÎÎ ÏÎÎ ÎÏÏÎÎÏÎÏ ÏÎÎÎÏÏÎÎÎÎÎÎÏ"
 
-#: C/accessibility-devel-guide.xml:606(entry)
+#: C/index.docbook:606(row/entry)
 msgid "KF"
 msgstr "ÎÎ"
 
-#: C/accessibility-devel-guide.xml:612(entry)
+#: C/index.docbook:612(row/entry)
 msgid "KF.1"
 msgstr "ÎÎ.1"
 
-#: C/accessibility-devel-guide.xml:613(entry)
+#: C/index.docbook:613(row/entry)
 msgid ""
 "When a window is opened, focus starts at the most commonly-used control."
 msgstr ""
 "ÎÏÎÎ ÎÎÎÎÎÎÏÎÎ ÎÎÎ ÏÎÏÎÎÏÏÎ, Î ÎÏÏÎÎÏÎ ÎÎÎÎÎÎ ÎÎ ÏÎÎ ÎÎÎÎÏÎ ÏÎÏ "
 "ÏÏÎÏÎÎÎÏÎÎÎÎÎÎÎ ÏÎÎ ÏÏÏÎÎ."
 
-#: C/accessibility-devel-guide.xml:617(entry)
+#: C/index.docbook:617(row/entry)
 msgid "KF.2"
 msgstr "ÎÎ.2"
 
-#: C/accessibility-devel-guide.xml:618(entry)
+#: C/index.docbook:618(row/entry)
 msgid "Current input focus position is clearly displayed at all times."
 msgstr ""
 "Î ÏÏÎÏÎÏÏÎ ÎÎÏÎ ÏÎÏ ÎÏÏÎÎÏÎÏ ÎÎÏÏÎÎÏ ÏÏÎÎÎÎÎÎÏÎ ÎÎÎÏÎÎÎÏÎ ÏÎÎÏ ÏÎÏ ÏÎÏÎÏ."
 
-#: C/accessibility-devel-guide.xml:622(entry)
+#: C/index.docbook:622(row/entry)
 msgid "KF.3"
 msgstr "ÎÎ.3"
 
-#: C/accessibility-devel-guide.xml:623(entry)
+#: C/index.docbook:623(row/entry)
 msgid "Input focus is shown in exactly one window at all times."
 msgstr "Î ÎÏÏÎÎÏÎ ÎÎÏÏÎÎÏ ÎÎÏÎÎÎÎÎÏÎÎ ÏÎ ÎÎÏÎÎÏÏ ÎÎÎ ÏÎÏÎÎÏÏÎ ÏÎÎÏ ÏÎÏ ÏÎÏÎÏ."
 
-#: C/accessibility-devel-guide.xml:627(entry)
+#: C/index.docbook:627(row/entry)
 msgid "KF.4"
 msgstr "ÎÎ.4"
 
-#: C/accessibility-devel-guide.xml:628(entry)
+#: C/index.docbook:628(row/entry)
 msgid ""
 "Appropriate audio or visual feedback is provided when the user attempts to "
 "navigate past either end of a group of related objects."
@@ -4670,11 +4836,11 @@ msgstr ""
 "ÎÎÏÎÏÎÏÎÎ Î ÎÎÏÎÎÎÎÎÎÏ ÎÏÎÏ Î ÎÏÏÎÎÎ ÎÎÎÎÏÎÏÎ ÏÏÎÎ Î ÏÏÎÏÏÎÏ ÏÏÎÏÏÎÎÎÎ ÎÎ "
 "ÏÎÎÎÎÎÎÎÎ ÏÎÏÏ Î ÏÏÎ ÏÎÎÎÏ ÎÎÎÏ ÎÎÎÎÎÏ ÏÏÎÏÎÎÏÎ ÎÎÏÎÎÎÎÎÎÎÏÎ."
 
-#: C/accessibility-devel-guide.xml:632(entry)
+#: C/index.docbook:632(row/entry)
 msgid "KF.5"
 msgstr "ÎÎ.5"
 
-#: C/accessibility-devel-guide.xml:633(entry)
+#: C/index.docbook:633(row/entry)
 msgid ""
 "The default audio or visual warning signal is played when the user presses "
 "an inappropriate key."
@@ -4682,11 +4848,11 @@ msgstr ""
 "Î ÏÏÎÎÏÎÎÎÎÎÎÎÎÏ ÎÏÎÏ Î ÏÎ ÏÎÎÎ ÎÏÏÎÎÎÏ ÏÏÎÎÎÎÎÏÎÎÎÏÎÏ ÎÎÎÏÎÏÎÎÎÎÏÎÎ ÏÏÎÎ Î "
 "ÏÏÎÏÏÎÏ ÏÎÎÎÎÎ ÎÎÎ ÎÎ ÎÎÏÎÎÎÎÎÎ ÏÎÎÎÏÏÎ."
 
-#: C/accessibility-devel-guide.xml:637(entry)
+#: C/index.docbook:637(row/entry)
 msgid "KF.6"
 msgstr "ÎÎ.6"
 
-#: C/accessibility-devel-guide.xml:638(entry)
+#: C/index.docbook:638(row/entry)
 msgid ""
 "There is sufficient audio information for the visual focus that the user can "
 "figure out what to do next."
@@ -4694,11 +4860,11 @@ msgstr ""
 "ÎÏÎÏÏÎÏÎ ÎÏÎÏÎÎÎÏ ÏÎÎÏÎÏÎÏÎÎÏ ÏÏÎÏÎÎÎ ÎÎ ÏÎÎ ÎÏÎ ÎÎÎ ÏÎÎ ÎÏÏÎÎÎ ÎÏÏÎÎÏÎ ÏÏÏÎ "
 "Î ÏÏÎÏÏÎÏ ÎÎ ÎÏÎÏÎÎ ÎÎ ÎÎÏÎÎÎÎÏÎÎ ÏÎ ÎÏÏÎÎÎÎ ÎÎÎÎ ÏÎÏ."
 
-#: C/accessibility-devel-guide.xml:642(entry)
+#: C/index.docbook:642(row/entry)
 msgid "KF.7"
 msgstr "ÎÎ.7"
 
-#: C/accessibility-devel-guide.xml:643(entry)
+#: C/index.docbook:643(row/entry)
 msgid ""
 "When using assistive technologies, such as a screen reader or braille "
 "device, the current program indicates the position and content of the visual "
@@ -4708,30 +4874,30 @@ msgstr ""
 "ÎÎÎÎÎÏÏÎÏ ÎÏÎÏÎÏ ÏÏÏÎÏÎ, ÏÎ ÏÏÎÏÎÎ ÏÏÏÎÏÎÎÎÎ ÏÎÏÎÎÎÎÎÎÎÎÎ ÏÎ ÎÎÏÎ ÎÎÎ ÏÎ "
 "ÏÎÏÎÎÏÏÎÎÎÎ ÏÎÏ ÎÎÎÎÎÎÎÏ ÏÎÏ ÎÏÏÎÎÎÏ ÎÏÏÎÎÏÎÏ."
 
-#: C/accessibility-devel-guide.xml:651(title)
+#: C/index.docbook:651(table/title)
 msgid "Timing checklist"
 msgstr "ÎÎÏÏÎ ÎÎÎÎÏÎÏ ÏÏÎÏÏÎÎÎÏÎÎÏ"
 
-#: C/accessibility-devel-guide.xml:655(entry)
+#: C/index.docbook:655(row/entry)
 msgid "TM"
 msgstr "ÎÎ"
 
-#: C/accessibility-devel-guide.xml:661(entry)
+#: C/index.docbook:661(row/entry)
 msgid "TM.1"
 msgstr "ÎÎ.1"
 
-#: C/accessibility-devel-guide.xml:662(entry)
+#: C/index.docbook:662(row/entry)
 msgid ""
 "There are no hard-coded time-outs or time-based features in the application."
 msgstr ""
 "ÎÎÎ ÏÏÎÏÏÎÎ ÏÏÎÎ ÎÏÎÏÎÎÎÎ ÎÎÎÎÎÏÎÏ ÏÏÎÎÎÏÎÏ ÎÏÎÎÎÎÏÎÎÎÏÎÏ Î ÎÎÎÏÎÏÏÎÎÎÏ "
 "ÎÎÏÎÏÎÎÎÎÏ ÏÏÎ ÏÏÏÎÎ."
 
-#: C/accessibility-devel-guide.xml:666(entry)
+#: C/index.docbook:666(row/entry)
 msgid "TM.2"
 msgstr "ÎÎ.2"
 
-#: C/accessibility-devel-guide.xml:667(entry)
+#: C/index.docbook:667(row/entry)
 msgid ""
 "The display or hiding of important information is not triggered solely by "
 "movement of the mouse pointer."
@@ -4739,19 +4905,19 @@ msgstr ""
 "Î ÏÏÎÎÎÎÎ Î Î ÎÏÏÎÏÏÏÎ ÏÎÎÎÎÏÎÎÏÎ ÏÎÎÏÎÏÎÏÎÏÎ ÎÎÎ ÎÎÎÏÎÎÏÎÎÎÎÏÎÎ ÎÏÎÎ ÎÏÏ "
 "ÏÎÎ ÎÎÎÎÏÎ ÏÎÏ ÎÎÎÎÏÎ ÏÎÏ ÏÎÎÏÎÎÎÎÏ."
 
-#: C/accessibility-devel-guide.xml:675(title)
+#: C/index.docbook:675(table/title)
 msgid "Documentation checklist"
 msgstr "ÎÎÏÏÎ ÎÎÎÎÏÎÏ ÏÎÎÎÎÏÎÏÏÎÏ"
 
-#: C/accessibility-devel-guide.xml:679(entry)
+#: C/index.docbook:679(row/entry)
 msgid "DC"
 msgstr "ÎÎ"
 
-#: C/accessibility-devel-guide.xml:685(entry)
+#: C/index.docbook:685(row/entry)
 msgid "DC.1"
 msgstr "ÎÎ.1"
 
-#: C/accessibility-devel-guide.xml:686(entry)
+#: C/index.docbook:686(row/entry)
 msgid ""
 "All documentation is in an accessible format, with textual alternate "
 "descriptions provided for all figures and diagrams."
@@ -4759,11 +4925,11 @@ msgstr ""
 "ÎÎÏÎÎÎÏÎ Î ÏÎÎÎÎÏÎÏÏÎ ÎÎÎÎÎ ÏÎ ÎÎÎ ÏÏÎÏÎÏÎ ÎÎÏÏÎ, ÎÎ ÎÎÎÎÏÏÎÎÎÏ ÎÎÎÎÎÎÎÏÎÎÎÏ "
 "ÏÎÏÎÎÏÎÏÎÏ ÏÎÏ ÏÎÏÎÏÎÎÏÎÎ ÎÎÎ ÏÎÎ ÏÎ ÏÏÎÎÎÏÎ ÎÎÎ ÏÎ ÎÎÎÎÏÎÎÎÎÏÎ."
 
-#: C/accessibility-devel-guide.xml:690(entry)
+#: C/index.docbook:690(row/entry)
 msgid "DC.2"
 msgstr "ÎÎ.2"
 
-#: C/accessibility-devel-guide.xml:691(entry)
+#: C/index.docbook:691(row/entry)
 msgid ""
 "The documentation includes a section that covers all the application's "
 "accessibility features."
@@ -4771,11 +4937,11 @@ msgstr ""
 "Î ÏÎÎÎÎÏÎÏÏÎ ÏÎÏÎÎÎÎÎÎÎÎÎ ÎÎÎ ÎÎÏÏÎÏÎ ÏÎÏ ÎÎÎÏÏÏÎÎ ÏÎÎÏ ÏÎÏ ÎÎÎÏÎÏÏÎÎÎÏ "
 "ÏÏÎÏÎÏÏÏÎÏÎÏ ÏÎÏ ÎÏÎÏÎÎÎÎÏ."
 
-#: C/accessibility-devel-guide.xml:701(title)
+#: C/index.docbook:701(section/title)
 msgid "GOK (GNOME Onscreen Keyboard)"
 msgstr "GOK (GNOME Onscreen Keyboard)"
 
-#: C/accessibility-devel-guide.xml:702(para)
+#: C/index.docbook:702(section/para)
 msgid ""
 "Your application should be usable via <application>gok</application>; key "
 "input should be generated entirely by <application>gok</application>, not "
@@ -4790,7 +4956,7 @@ msgstr ""
 "ÏÏÎ ÎÏÎÎÎÎÎÏÎÏÎ ÎÎÏÎÎÎÏ ÏÏÏÎÏ Î ÏÎÏÎÎÏÎÏÎ ÎÎ ÎÎÏÎÎÎÎÏÎ ÎÎ ÏÎ ÏÎÎÎÏÏÎÎÏÎÎÎ "
 "ÏÎÏ ÎÎÏÎÎÏ."
 
-#: C/accessibility-devel-guide.xml:705(para)
+#: C/index.docbook:705(section/para)
 msgid ""
 "The <application>gok</application> application ships with the GNOME Desktop "
 "so should already be present. For full documentation, refer to <ulink url="
@@ -4801,7 +4967,7 @@ msgstr ""
 "ÏÎÎÎÎÏÎÏÏÎ, ÏÎÏÎÏÎÎÏÎÎÎÏÎ ÏÏÎÎ <ulink url=\"http://www.gok.ca\";>ÎÏÎÏÎÎÎ "
 "ÏÎÎÎÎÎ ÏÎÏ gok</ulink>."
 
-#: C/accessibility-devel-guide.xml:708(para)
+#: C/index.docbook:708(section/para)
 msgid ""
 "Follow these steps to verify the correct operation of <application>gok</"
 "application> with your application:"
@@ -4809,19 +4975,19 @@ msgstr ""
 "ÎÎÎÎÎÏÎÎÏÏÎ ÎÏÏÎ ÏÎ ÎÎÎÎÏÎ ÎÎÎ ÎÎ ÎÏÎÎÎÎÎÎÏÏÎÏÎ ÏÎÎ ÎÏÎÎ ÎÎÎÏÎÏÏÎÎÎ ÏÎÏ "
 "<application>gok</application> ÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ ÏÎÏ:"
 
-#: C/accessibility-devel-guide.xml:713(para)
+#: C/index.docbook:713(step/para)
 msgid "Login into the GNOME desktop"
 msgstr "ÎÎÎÎÎÎÏÎ ÏÎÏ ÎÏÎÏÎÎÎÎÎÏ ÎÏÎÎÏÎÎÏ ÏÎÏ GNOME"
 
-#: C/accessibility-devel-guide.xml:718(para)
+#: C/index.docbook:718(step/para)
 msgid "Run <application>gok</application>"
 msgstr "ÎÎÏÎÎÎÏÎ ÏÎÏ <application>gok</application>"
 
-#: C/accessibility-devel-guide.xml:723(para)
+#: C/index.docbook:723(step/para)
 msgid "Start your application"
 msgstr "ÎÎÎÎÎÎÏÏÎ ÏÎÎ ÎÏÎÏÎÎÎÎ ÏÎÏ"
 
-#: C/accessibility-devel-guide.xml:728(para)
+#: C/index.docbook:728(step/para)
 msgid ""
 "Provide input to your application with a pointing device (e.g., mouse or "
 "head-tracker) and <application>gok</application>."
@@ -4829,7 +4995,7 @@ msgstr ""
 "ÎÏÏÏÎ ÎÎÎ ÎÎÏÎÎÎ ÏÏÎÎ ÎÏÎÏÎÎÎÎ ÏÎÏ ÎÎ ÎÎÎ ÏÏÏÎÎÏÎ ÎÎÎÎÎÎÎÏ (Ï.Ï. ÏÎ ÏÎÎÏÎÎÎ "
 "Î ÎÎÎÏÎÎÏÏÎ ÎÏÎÎÎÏÎÎÎÎÎÏ) ÎÎÎ ÏÎ <application>gok</application>."
 
-#: C/accessibility-devel-guide.xml:733(para)
+#: C/index.docbook:733(step/para)
 msgid ""
 "Work using the auto-completion and word prediction features of "
 "<application>gok</application>."
@@ -4837,7 +5003,7 @@ msgstr ""
 "ÎÏÎÎÏÏÎÎÏÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎÏ ÎÎÎÏÎÏÏÎÎÎÏ ÎÏÏÏÎÎÏÎÏ ÏÏÎÏÎÎÏÏÏÎÏ ÎÎÎ "
 "ÏÏÏÎÎÎÏÎÏ ÎÎÎÎÏÎ ÏÎÏ <application>gok</application>."
 
-#: C/accessibility-devel-guide.xml:738(para)
+#: C/index.docbook:738(step/para)
 msgid ""
 "Verify that <application>gok</application> enables and disables the "
 "<guibutton>Menus</guibutton> and <guibutton>Toolbars</guibutton> buttons "
@@ -4854,7 +5020,7 @@ msgstr ""
 "ÎÎÎÏÎÎÏÎÏÎÎÎÎ  ÎÎÎÏÏÎÏÎÏ ÎÏÎÎÎÎÏÎÏÎÎÏÎÏ' , ÎÎÎÎ ÏÎ ÎÎÎÎ ÎÎÏÎÏÎÎ ÎÎÎÎÎ "
 "ÎÎÎÏÎÎÏÎÎÎÎÎÎÎ ÎÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ <application>Gedit</application>."
 
-#: C/accessibility-devel-guide.xml:743(para)
+#: C/index.docbook:743(step/para)
 msgid ""
 "Verify that the <application>gok</application> on-screen keyboard provided "
 "by the <guibutton>Compose</guibutton> button can be used to type in any text "
@@ -4873,7 +5039,7 @@ msgstr ""
 "ÏÎÎÎÏÏÎ ÎÏÏ ÏÎ ÏÎÎÎÏÏÎÎÏÎÎÎ ÏÎÏ ÎÎÏÎÎÏ. ÎÎ ÏÎÏÎÎÏÎÏÎÏ ÎÎ ÏÏÎÏÎÎ ÎÎ "
 "ÎÎÏÎÎÎÏÏÎÏÎ ÏÏÎÎ ÏÎÏÎÎÏÎ ÎÎÎÎÎÎÎÏ ÏÎÏ <application>Gedit</application>."
 
-#: C/accessibility-devel-guide.xml:748(para)
+#: C/index.docbook:748(step/para)
 msgid ""
 "Verify that the <guibutton>Launcher</guibutton> button allows the user to "
 "launch any of the <application>Terminal</application>, <application>Web "
@@ -4884,7 +5050,7 @@ msgstr ""
 "application>, <application>ÎÎÏÎÎÎÎÏÎÏ ÎÎÎÎÎÎÏÏÎÏ</application> Î "
 "<application>ÎÏÎÎÎÏÎÎÏÏÎÏ ÎÎÎÎÎÎÎÏ</application>."
 
-#: C/accessibility-devel-guide.xml:753(para)
+#: C/index.docbook:753(step/para)
 msgid ""
 "Verify that the <guibutton>Activate</guibutton> button allows the user to "
 "activate any of the currently running application windows on the user's "
@@ -4895,7 +5061,7 @@ msgstr ""
 "ÏÏÎÎ ÎÏÎÏÎÎÎÎÎ ÎÏÎÎÏÎÎÏ ÏÎÏ ÏÏÎÏÏÎ, ÎÎÎÎ ÎÎ ÏÎÏÏ ÏÎÎÎÎÎÏ ÎÏÎÏÎÎÎÏÎ ÏÎÏ GNOME "
 "ÎÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎÎ ÎÏÎÎÏÎÎÏ ÏÎÏ GNOME."
 
-#: C/accessibility-devel-guide.xml:758(para)
+#: C/index.docbook:758(step/para)
 msgid ""
 "Verify that the <guibutton>Menus</guibutton> button lists all the available "
 "menus in the current application. Verify that clicking on a menu button "
@@ -4924,7 +5090,7 @@ msgstr ""
 "<guibutton>ÎÎÎ ÏÎÏÎÎÏÏÎ</guibutton> ÎÎÎ <guibutton>ÎÎÎÎÏÎÎÎ ÏÎÏÎÎÏÏÎÏ</"
 "guibutton> (ÏÏÎÎÏÎÎÎ ÎÎÎÎÏ)."
 
-#: C/accessibility-devel-guide.xml:763(para)
+#: C/index.docbook:763(step/para)
 msgid ""
 "Verify that the <guibutton>Toolbars</guibutton> button lists all the "
 "available buttons in the application toolbar. For example, click on the "
@@ -4940,7 +5106,7 @@ msgstr ""
 "<application>GOK</application> ÏÏÏÎ ÎÎÏÎÎÎÎÎÎ ÏÎ ÎÎÏÎÏÎÎ <guibutton>ÎÎÏÏ</"
 "guibutton>, <guibutton>ÎÎÏÏÏÏ</guibutton> ÎÎÎ <guibutton>ÎÏÏÎ</guibutton>."
 
-#: C/accessibility-devel-guide.xml:768(para)
+#: C/index.docbook:768(step/para)
 msgid ""
 "Verify that the <guibutton>UI Grab</guibutton> button displays all the "
 "button objects for the selected application window. For example, open the "
@@ -4960,15 +5126,21 @@ msgstr ""
 "guibutton>, <guibutton>ÎÎÎÎÏÎÎÎ</guibutton> ÎÎÎ <guibutton>ÎÎÎÎÎÎÎ</"
 "guibutton>."
 
-#: C/accessibility-devel-guide.xml:776(title)
+#: C/index.docbook:776(section/title)
 msgid "Accerciser"
 msgstr "Accerciser"
 
-#: C/accessibility-devel-guide.xml:783(phrase)
-msgid "Accerciser and the GNOME Accessibility Architecture"
-msgstr "Accerciser ÎÎÎ Î ÎÏÏÎÏÎÎÏÎÎÎÎÎ ÏÏÎÏÎÏÏÏÎÏÎÏ ÏÎÏ GNOME"
+#: C/index.docbook:778(screenshot/mediaobject)
+msgid ""
+"<imageobject> <imagedata fileref=\"figures/at-arch.png\" format=\"PNG\"/> </"
+"imageobject> <textobject> <phrase> Accerciser and the GNOME Accessibility "
+"Architecture </phrase> </textobject>"
+msgstr ""
+"<imageobject> <imagedata fileref=\"figures/at-arch.png\" format=\"PNG\"/> </"
+"imageobject> <textobject> <phrase> ÎÎ Accerciser ÎÎÎ Î ÎÏÏÎÏÎÎÏÎÎÎÎÎ "
+"ÏÏÎÏÎÏÏÏÎÏÎÏ ÏÎÏ GNOME </phrase> </textobject>"
 
-#: C/accessibility-devel-guide.xml:790(para)
+#: C/index.docbook:790(section/para)
 msgid ""
 "<application>Accerciser</application> is an interactive Python accessibility "
 "explorer for the GNOME Desktop. It uses AT-SPI to inspect and control "
@@ -5004,7 +5176,7 @@ msgstr ""
 "www.linuxjournal.com/article/9991\">Make Your Application Accessible with "
 "Accerciser</ulink>."
 
-#: C/accessibility-devel-guide.xml:794(para)
+#: C/index.docbook:794(note/para)
 msgid ""
 "<application>Accerciser</application> has effectively replaced the older "
 "<application>at-poke</application> tool."
@@ -5012,14 +5184,125 @@ msgstr ""
 "ÎÎ <application>Accerciser</application> ÎÏÎÎ ÎÎÏÎÎÎÏÎÏÏÎÏÎÎ ÎÏÎÏÎÎÎÏÎÎÏÎÎÎ "
 "ÏÎ ÏÎÎÎÎÏÏÎÏÎ ÎÏÎÎÎÎÎÎ <application>at-poke</application>."
 
-#. Put one translator per line, in the form of NAME <EMAIL>, YEAR1, YEAR2
-#: C/accessibility-devel-guide.xml:0(None)
-msgid "translator-credits"
-msgstr ""
-"ÎÎÎÎÎÎÎÎ ÎÎÏÎÏÏÎÏÏÎÎÎ ÎÎÎÎÎ GNOME\n"
-"  ÎÎÎÎÎÎÏ ÎÎÏÏÎÎÏÎÏÎÏ, <juankatsampirhs gmail com>\n"
-"\n"
-"ÎÎÎ ÏÎÏÎÏÏÏÏÎÏÎÏ ÏÎÎÏÎÏÎÏÎÎÏ, ÎÏÎÏÎÎÏÎÎÎÏÎ ÏÎ ÏÎÎÎÎÎ http://www.gnome.gr/";
+#~ msgid "@@image: 'figures/gaa.png'; md5=THIS FILE DOESN'T EXIST"
+#~ msgstr "@@image: 'figures/gaa.png'; md5=THIS FILE DOESN'T EXIST"
+
+#~ msgid "2008"
+#~ msgstr "2008"
+
+#~ msgid "Vincent Alexander"
+#~ msgstr "Vincent Alexander"
+
+#~ msgid "2001, 2002"
+#~ msgstr "2001, 2002"
+
+#~ msgid "Vincent"
+#~ msgstr "Vincent"
+
+#~ msgid "Alexander"
+#~ msgstr "Alexander"
+
+#~ msgid "Calum"
+#~ msgstr "Calum"
+
+#~ msgid "Benson"
+#~ msgstr "Benson"
+
+#~ msgid "Brian"
+#~ msgstr "Brian"
+
+#~ msgid "Cameron"
+#~ msgstr "Cameron"
+
+#~ msgid "Bill"
+#~ msgstr "Bill"
+
+#~ msgid "Haneman"
+#~ msgstr "Haneman"
+
+#~ msgid "Padraig"
+#~ msgstr "Padraig"
+
+#~ msgid "O'Briain"
+#~ msgstr "O'Briain"
+
+#~ msgid "Sharon"
+#~ msgstr "Sharon"
+
+#~ msgid "Snider"
+#~ msgstr "Snider"
+
+#~ msgid "GNOME 2.24 Accessibility Developers Guide V2.24.0"
+#~ msgstr ""
+#~ "ÎÎÎÎÏÏ ÏÏÎÏÎÏÏÏÎÏÎÏ ÎÎÎ ÏÎÎ ÎÎÎÏÏÏÎÎ ÏÎÏ ÎÏÎÏÎÎÎÎÎÏ ÎÏÎÎÏÎÎÏ GNOME 2.24, "
+#~ "ÎÎÎÎÏÎ 2.24.0"
+
+#~ msgid "September 2008"
+#~ msgstr "ÎÎÏÏÎÎÎÏÎÎÏ 2008"
+
+#~ msgid "Diagram of GNOME's accessibility architecture"
+#~ msgstr "ÎÎÎÎÏÎÎÎÎ ÏÎÏ ÎÏÏÎÏÎÎÏÎÎÎÎÎÏ ÏÏÎÏÎÏÏÏÎÏÎÏ ÏÎÏ GNOME"
+
+#~ msgid "Example of an \"invalid drop target\" pointer shape"
+#~ msgstr ""
+#~ "ÎÎÏÎÎÎÎÎÎÎ ÎÎÏÏ ÏÏÎÎÎÏÎÏ ÎÎÎÎÏÎ \"ÎÎ ÎÎÎÏÏÎÏ ÏÏÎÎÏÎÏÎÏÏ ÎÎÎ ÎÎÏÎÏÎÏÎ\""
+
+#~ msgid "List control with label above"
+#~ msgstr "ÎÎÏÎÎÎÏÎÎÏÎÎÎÏÎ ÎÎÎÎÏÎÏ ÎÎ ÎÏÎÎÎÏÎ ÎÏÏ ÏÎÎÏ"
+
+#~ msgid "Large file manager icon with label underneath"
+#~ msgstr "ÎÎÎÎÎÎ ÎÎÎÎÎÎÎÎÎ ÎÎÎÏÎÎÏÎÏÏÎ ÎÏÏÎÎÏÎ ÎÎ ÎÏÎÎÎÏÎ ÎÏÏ ÎÎÏÏ"
+
+#~ msgid "Small toolbar icon with label to its right"
+#~ msgstr "ÎÎÎÏÏ ÎÎÎÎÎÎÎÎÎ ÎÏÎÎÎÎÎÎÎÎÎÎÏ ÎÎ ÎÏÎÎÎÏÎ ÏÏÎ ÎÎÎÎÎ ÏÎÏ"
+
+#~ msgid "Spinbox control with label to its left"
+#~ msgstr "ÎÎÏÎÏÏÏÎÏÏÎÎÎÎÏ ÎÎÎÎÏÎÏ ÎÎ ÎÏÎÎÎÏÎ ÏÏÎ ÎÏÎÏÏÎÏÎ ÏÎÏ"
+
+#~ msgid "Example showing changes in stock price using color only"
+#~ msgstr ""
+#~ "ÎÎÏÎÎÎÎÎÎÎ ÏÎÏ ÎÎÏÎÎÎÎÎÎ ÏÎÏ ÎÎÎÎÎÎÏ ÏÏÎÎ ÏÎÎÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÎÏÎÎ ÏÏÏÎÎ"
+
+#~ msgid "Example showing changes in stock price using both color and arrows"
+#~ msgstr ""
+#~ "ÎÎÏÎÎÎÎÎÎÎ ÏÏÎÎÎÎÎÏ ÏÏÎ ÎÎÎÎÎÏÎ ÏÏÎÎ ÏÎÎÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÏÏÎÎÏÎ ÎÎÎ ÎÎÎÎ"
+
+#~ msgid "Preferences"
+#~ msgstr "ÎÏÎÎÎÏÎÎÏ"
+
+#~ msgid ""
+#~ "The focused item in this window cannot be seen because it has been "
+#~ "scrolled off-screen"
+#~ msgstr ""
+#~ "ÎÎ ÎÏÏÎÎÏÎÎÎÎ ÏÏÎÎÏÎÎÎ ÏÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÏÏÎ ÎÎ ÎÎÎÎÏÎÎÎÏÎÎ ÎÏÎÎÎÎ ÎÏÎÎ "
+#~ "ÎÎÎÎÎ ÎÏÎÎÏÎ ÎÎÏ ÎÏÏ ÏÎÎ ÎÎÏÎÎ"
+
+#~ msgid ""
+#~ "The focused item in the list has been brought into view by scrolling the "
+#~ "list"
+#~ msgstr ""
+#~ "ÎÎ ÎÏÏÎÎÏÎÎÎÎ ÎÎÏÎÎÎÎÎÎÎÎ ÏÏÎ ÎÎÏÏÎ ÎÏÎÎ ÎÎÎÎÎ ÎÏÎÏÏ ÎÎÎÎÎÏÎÏ ÎÏÎÎÏÎ ÏÎÏ "
+#~ "ÎÎÏÏÎÏ"
+
+#~ msgid "Split-paned window in which both panes seem to have focus"
+#~ msgstr ""
+#~ "ÎÎÏÎÎÏÏÎ ÏÎÏ ÎÏÎÎ ÎÎÎÏÏÏÎÏÏÎÎ ÏÏÎ ÎÏÎÎÎ ÏÎ ÏÎÎÎÏÎÎ ÏÎÎÎÎÎÏÎÎ ÎÏÏÎÎÏÎÎÎÎ"
+
+#~ msgid ""
+#~ "Split-pane window in which secondary highlighting is used to show which "
+#~ "pane has focus"
+#~ msgstr ""
+#~ "ÎÎÏÎÎÏÏÎ ÏÎ ÎÏÎÎÎ ÎÎÎÏÏÏÎÏÏÎÎÎ ÏÏÎ ÎÏÎÎÎ Î ÎÎÏÏÎÏÎÏÎÏÏÎ ÎÏÎÏÎÎÎÎÏÎ "
+#~ "ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÎÎÎ ÏÎÎ ÎÎÏÎÎÎÏÎ ÏÎÏ ÏÎÎÎÏÎÎÏ ÏÎÏ ÎÏÎÎ ÎÏÏÎÎÏÎ"
+
+#~ msgid "right"
+#~ msgstr "ÎÎÎÎÎ"
+
+#~ msgid "middle"
+#~ msgstr "ÎÎÏÎÎÎ"
+
+#~ msgid "Accerciser and the GNOME Accessibility Architecture"
+#~ msgstr "Accerciser ÎÎÎ Î ÎÏÏÎÏÎÎÏÎÎÎÎÎ ÏÏÎÏÎÏÏÏÎÏÎÏ ÏÎÏ GNOME"
 
 #~ msgid "@@image: 'figures/color_only.png'; md5=THIS FILE DOESN'T EXIST"
 #~ msgstr "@@image: 'figures/color_only.png'; md5=THIS FILE DOESN'T EXIST"
diff --git a/integration-guide/el/el.po b/integration-guide/el/el.po
index a79ca96..341844e 100644
--- a/integration-guide/el/el.po
+++ b/integration-guide/el/el.po
@@ -2,8 +2,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: 1\n"
-"POT-Creation-Date: 2012-07-27 09:48+0000\n"
-"PO-Revision-Date: 2012-07-29 15:46+0200\n"
+"POT-Creation-Date: 2012-10-31 14:58+0000\n"
+"PO-Revision-Date: 2012-10-31 17:19+0200\n"
 "Last-Translator: Tom Tryfonidis <tomtryf gmail com>\n"
 "Language-Team: Greek <team gnome gr>\n"
 "Language: el\n"
@@ -11,79 +11,68 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: C/integration-guide.xml:8(title)
+#. Put one translator per line, in the form NAME <EMAIL>, YEAR1, YEAR2
+msgctxt "_"
+msgid "translator-credits"
+msgstr ""
+"ÎÎÏÎÎÏ ÎÎÎÏÎÎÎÏ <m zindilis dmajor org>\n"
+"ÎÎÎÎÎ ÎÎÏÎÏÎÎÎÎÏ <epetoumenou gmail com>"
+
+#: C/index.docbook:8(bookinfo/title)
 msgid "Integrating existing software with GNOME"
 msgstr "ÎÎÏÏÎÎÏÏÏÎ ÏÏÎÏÏÎÎÏÎÏ ÎÎÎÎÏÎÎÎÎÏ ÏÏÎ GNOME"
 
-#: C/integration-guide.xml:9(subtitle) C/integration-guide.xml:10(para)
+#: C/index.docbook:9(bookinfo/subtitle) C/index.docbook:10(abstract/para)
 msgid "Guide for Independent Software Vendors"
 msgstr "ÎÎÎÎÏÏ ÎÎÎ ÎÎÎÎÎÏÏÎÏÎÏÏ ÎÎÎÎÎÎÎÎÏ ÎÎÎÎÏÎÎÎÎÏ"
 
-#: C/integration-guide.xml:14(firstname)
-msgid "Rosanna"
-msgstr "Rosanna"
-
-#: C/integration-guide.xml:15(surname)
-msgid "Yuen"
-msgstr "Yuen"
-
-#: C/integration-guide.xml:18(email)
-msgid "zana gnome org"
-msgstr "zana gnome org"
-
-#: C/integration-guide.xml:23(firstname)
-msgid "Federico"
-msgstr "Federico"
-
-#: C/integration-guide.xml:24(surname)
-msgid "Mena-Quintero"
-msgstr "Mena-Quintero"
-
-#: C/integration-guide.xml:27(email)
-msgid "federico gnu org"
-msgstr "federico gnu org"
-
-#: C/integration-guide.xml:32(firstname)
-msgid "Mike"
-msgstr "Mike"
-
-#: C/integration-guide.xml:33(surname)
-msgid "Hearn"
-msgstr "Hearn"
-
-#: C/integration-guide.xml:36(email)
-msgid "mike navi cx"
-msgstr "mike navi cx"
-
-#: C/integration-guide.xml:43(year)
-msgid "2005, 2006"
-msgstr "2005, 2006"
+#: C/index.docbook:13(authorgroup/author)
+msgid ""
+"<firstname>Rosanna</firstname> <surname>Yuen</surname> <affiliation> "
+"<address> <email>zana gnome org</email> </address> </affiliation>"
+msgstr ""
+"<firstname>Rosanna</firstname> <surname>Yuen</surname> <affiliation> "
+"<address> <email>zana gnome org</email> </address> </affiliation>"
 
-#: C/integration-guide.xml:44(holder)
-msgid "Rosanna Yuen, Federico Mena-Quintero, Mike Hearn"
-msgstr "Rosanna Yuen, Federico Mena-Quintero, Mike Hearn"
+#: C/index.docbook:22(authorgroup/author)
+msgid ""
+"<firstname>Federico</firstname> <surname>Mena-Quintero</surname> "
+"<affiliation> <address> <email>federico gnu org</email> </address> </"
+"affiliation>"
+msgstr ""
+"<firstname>Federico</firstname> <surname>Mena-Quintero</surname> "
+"<affiliation> <address> <email>federico gnu org</email> </address> </"
+"affiliation>"
 
-#: C/integration-guide.xml:49(revnumber)
-msgid "0.6"
-msgstr "0.6"
+#: C/index.docbook:31(authorgroup/author)
+msgid ""
+"<firstname>Mike</firstname> <surname>Hearn</surname> <affiliation> <address> "
+"<email>mike navi cx</email> </address> </affiliation>"
+msgstr ""
+"<firstname>Mike</firstname> <surname>Hearn</surname> <affiliation> <address> "
+"<email>mike navi cx</email> </address> </affiliation>"
 
-#: C/integration-guide.xml:50(date)
-msgid "2006/September/19"
-msgstr "19 ÎÎÏÏÎÎÎÏÎÎÏ 2006"
+#: C/index.docbook:42(bookinfo/copyright)
+msgid ""
+"<year>2005, 2006</year> <holder>Rosanna Yuen, Federico Mena-Quintero, Mike "
+"Hearn</holder>"
+msgstr ""
+"<year>2005, 2006</year> <holder>Rosanna Yuen, Federico Mena-Quintero, Mike "
+"Hearn</holder>"
 
-#: C/integration-guide.xml:52(para)
+#: C/index.docbook:52(revdescription/para)
 msgid "Extended the icon guidelines."
 msgstr "ÎÏÎÎÏÎÏÎ ÏÏÎ ÎÎÏÎÏÎÏÎÏÎÏÎÏÎ ÎÏÎÎÎÏÎ ÎÎÎ ÏÎ ÎÎÎÎÎÎÎÎÎ."
 
-#: C/integration-guide.xml:58(revnumber)
-msgid "0.5"
-msgstr "0.5"
-
-#: C/integration-guide.xml:59(date)
-msgid "2006/September/18"
-msgstr "18 ÎÎÏÏÎÎÎÏÎÎÏ 2006"
+#: C/index.docbook:48(revhistory/revision)
+msgid ""
+"<revnumber>0.6</revnumber> <date>2006/September/19</date> <_:"
+"revdescription-1/>"
+msgstr ""
+"<revnumber>0.6</revnumber> <date>2006/ÎÎÏÏÎÎÎÏÎÎÏ/19</date> <_:"
+"revdescription-1/>"
 
-#: C/integration-guide.xml:61(para)
+#: C/index.docbook:61(revdescription/para)
 msgid ""
 "Integrated the content of Rosanna Yuen's first article on freedesktop.org "
 "standards."
@@ -91,19 +80,24 @@ msgstr ""
 "ÎÎÏÏÎÎÏÏÏÎ ÏÎÏ ÏÎÏÎÎÏÎÎÎÎÎÏ ÏÎÏ ÏÏÏÏÎÏ ÎÏÎÏÎÏ ÏÎÏ Rosanna Yuen ÏÏÎÏÎÎÎ ÎÎ ÏÎ "
 "ÏÏÏÏÏÏÎ ÏÎÏ freedesktop.org"
 
-#: C/integration-guide.xml:68(revnumber)
-msgid "0.0"
-msgstr "0.0"
-
-#: C/integration-guide.xml:69(date)
-msgid "June 2005"
-msgstr "ÎÎÏÎÎÎÏ 2005"
+#: C/index.docbook:57(revhistory/revision)
+msgid ""
+"<revnumber>0.5</revnumber> <date>2006/September/18</date> <_:"
+"revdescription-1/>"
+msgstr ""
+"<revnumber>0.5</revnumber> <date>2006/ÎÎÏÏÎÎÎÏÎÎÏ/18</date> <_:"
+"revdescription-1/>"
 
-#: C/integration-guide.xml:71(para)
+#: C/index.docbook:71(revdescription/para)
 msgid "Initial version of this document."
 msgstr "ÎÏÏÎÎÎ ÎÎÎÎÏÎ ÎÏÏÎÏ ÏÎÏ ÎÎÎÏÎÏÎÏ."
 
-#: C/integration-guide.xml:79(para)
+#: C/index.docbook:67(revhistory/revision)
+msgid "<revnumber>0.0</revnumber> <date>June 2005</date> <_:revdescription-1/>"
+msgstr ""
+"<revnumber>0.0</revnumber> <date>ÎÎÏÎÎÎÏ 2005</date> <_:revdescription-1/>"
+
+#: C/index.docbook:79(legalnotice/para)
 msgid ""
 "Permission is granted to copy, distribute and/or modify this document under "
 "the terms of the GNU Free Documentation License (GFDL), Version 1.1 or any "
@@ -120,7 +114,7 @@ msgstr ""
 "ÎÎÏÎÎÏÎÎ <ulink type=\"help\" url=\"ghelp:fdl\">ÏÏÎÎÎÏÎÎ</ulink>, Î ÏÏÎ "
 "ÎÏÏÎÎÎ COPYING-DOCS ÏÎÏ ÎÎÎÎÎÎÎÏÎÎ ÎÎÎÎ ÎÎ ÏÎ ÏÎÏÏÎ ÎÎÏÎÎÏÎÎÎÎ."
 
-#: C/integration-guide.xml:88(para)
+#: C/index.docbook:88(legalnotice/para)
 msgid ""
 "This manual is part of a collection of GNOME manuals distributed under the "
 "GFDL. If you want to distribute this manual separately from the collection, "
@@ -132,7 +126,7 @@ msgstr ""
 "ÎÎÏÎÎÏÎÎÎÎ ÎÎÏÏÏÎÏÏÎ ÎÏÏ ÏÎ ÏÏÎÎÎÎÎ, ÎÏÎÎÎÎÏÎ ÎÎ ÏÏÎÏÎÎÏÎÏÎ ÏÏÎ ÎÎÏÎÎÏÎÎÎÎ "
 "ÎÎÏÎÎÏÎÏÎ ÏÎÏ ÎÎÎÎÎÏ ÏÏÎÏÎÏ, ÏÏÏÏ ÏÏÎÎÎÎÏÎÏÎÎ ÏÏÎÎ ÎÎÏÏÎÏÎ 6 ÏÎÏ ÎÎÎÎÎÏ."
 
-#: C/integration-guide.xml:94(para)
+#: C/index.docbook:94(legalnotice/para)
 msgid ""
 "Many of the names used by companies to distinguish their products and "
 "services are claimed as trademarks. Where those names appear in any GNOME "
@@ -147,7 +141,7 @@ msgstr ""
 "ÎÎÎÎÎ ÎÎÏÏÎ ÎÏÏÏÎ ÏÏÎ ÎÎÏÎÏÎÎÏÎ ÏÎÎÎÏÏÎ, ÎÎ ÎÎÎÎÎÏÎÎÏ Î ÏÎ ÎÏÏÎÎÎ ÎÏÏÏÎ ÎÎ "
 "ÎÏÎÏÎÎÏÎÎ ÎÎ ÎÎÏÎÎÎÎÎÏÏ ÏÎÏÎÎÏÎÏÎÏ."
 
-#: C/integration-guide.xml:107(para)
+#: C/index.docbook:107(listitem/para)
 msgid ""
 "DOCUMENT IS PROVIDED ON AN \"AS IS\" BASIS, WITHOUT WARRANTY OF ANY KIND, "
 "EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT "
@@ -175,7 +169,7 @@ msgstr ""
 "ÎÎÎÎÎÎÎÎÎÎÎÎÎÎ ÎÎÎÎÎÎÎÎ ÎÎÎÎÎ ÎÎÎÎÎÎÎ ÎÎ ÎÎÎÎ ÎÎÎÎÎ ÎÎÎ ÎÎÎÎÎÎÎÎ,  ÎÎÎÎ ÎÎÎÎ "
 "ÎÎÎ ÎÎÎÎÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ ÎÎÎÎÎÎÎÎÎ ÎÎÎÎÎÎÎÎ,  ÎÎÎ"
 
-#: C/integration-guide.xml:124(para)
+#: C/index.docbook:124(listitem/para)
 msgid ""
 "UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER IN TORT (INCLUDING "
 "NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE AUTHOR, INITIAL WRITER, ANY "
@@ -201,21 +195,21 @@ msgstr ""
 "ÎÎÎÎÎÎÎÎ ÎÎÎÎÎ, ÎÎÎÎÎ ÎÎÎ ÎÎ ÎÎ ÎÎ ÎÎÎ ÎÎÎÎ ÎÎÎÎÎ ÎÎÎÎÎ ÎÎÎÎÎ ÎÎÎ "
 "ÎÎÎÎÎÎÎÎÎÎÎ ÎÎÎÎÎÎÎÎÎ ÎÎÎÎÎÎÎ ÎÎÎÎÎÎ."
 
-#: C/integration-guide.xml:101(para)
+#: C/index.docbook:101(legalnotice/para)
 msgid ""
 "DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT ARE PROVIDED UNDER THE TERMS "
 "OF THE GNU FREE DOCUMENTATION LICENSE WITH THE FURTHER UNDERSTANDING THAT: "
-"<placeholder-1/>"
+"<_:orderedlist-1/>"
 msgstr ""
 "ÎÎ ÎÎÎÎÎ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎ ÎÎÎÎÎÎÎÎÎÎÎÎ ÎÎÎÎÎÎÎÎ ÎÎÎÎÎ ÎÎÎÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎÎ "
 "ÎÎÎÎÎ ÎÎÎ ÎÎÎÎÎÎÎÎÎ ÎÎÎÎÎÎ ÎÎÎÎÎÎÎÎÎÎÎ GNU (GFDL) ÎÎÎ ÎÎ ÎÎÎ ÎÎÎÎÎÎÎÎÎ "
-"ÎÎÎÎÎÎÎÎÎÎÎ ÎÎÎ: <placeholder-1/>"
+"ÎÎÎÎÎÎÎÎÎÎÎ ÎÎÎ: <_:orderedlist-1/>"
 
-#: C/integration-guide.xml:144(title)
+#: C/index.docbook:144(preface/title)
 msgid "Preface"
 msgstr "ÎÏÏÎÎÎÎÏ"
 
-#: C/integration-guide.xml:146(para)
+#: C/index.docbook:146(preface/para)
 msgid ""
 "GNOME is a project to build a complete desktop and development platform "
 "based entirely on free software. Many companies, governments, schools, "
@@ -240,11 +234,11 @@ msgstr ""
 "ÎÎÏÏÎÎÏÏÏÎÏÎ ÏÏÎÏÏÎÎ ÎÎÎÎÏÎÎÎÏ ÏÏÎ GNOME, ÏÏÏÎÏ ÎÎ ÏÎ ÎÎÎÎÎÏÎÏÎÏÎ ÎÎÎÎÎÎ ÎÎÎ "
 "ÏÏÎÏÎ ÎÎ ÏÎÏ ÎÎÎÎÎÎÎÎÎÎÏ ÎÎÎ ÏÎ ÎÏÎÎÎÎÎÎ ÎÎÎÏÏÏÎÎÏ ÏÎÏ GNOME."
 
-#: C/integration-guide.xml:161(para)
+#: C/index.docbook:161(preface/para)
 msgid "This guide will be useful in the following situations:"
 msgstr "ÎÏÏÏÏ Î ÎÎÎÎÏÏ ÎÎÎÎÎ ÏÏÎÏÎÎÎÏ ÏÏÎÏ ÎÎÏÎÎÏÎÎÏ ÏÎÏÎÏÏÏÏÎÎÏ:"
 
-#: C/integration-guide.xml:167(para)
+#: C/index.docbook:167(listitem/para)
 msgid ""
 "You are a software developer or distributor who has an application that is "
 "not explicitly designed to work with GNOME, but you want to ensure that it "
@@ -254,7 +248,7 @@ msgstr ""
 "ÎÏÎÎ ÏÏÎÎÎÎÏÏÎÎ ÎÎÎ ÎÎ ÎÎÎÏÎÏÏÎÎÎ ÎÎ ÏÎ GNOME, ÎÎÎÎ ÎÎÎÎÏÎ ÎÎ ÎÎÎÎÎÏÎÎÎÏÎ "
 "ÏÏÎ ÏÏÎÏÎÎ ÎÎÎÏÎ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÎÏÎÎÏÎÎÏ GNOME."
 
-#: C/integration-guide.xml:176(para)
+#: C/index.docbook:176(listitem/para)
 msgid ""
 "You are a system administrator for an institution that has deployed GNOME "
 "desktops to its users. You also have legacy or in-house applications, and "
@@ -267,7 +261,7 @@ msgstr ""
 "ÎÎÎÎÏÎ ÎÎ ÏÏÎÏÏÎÏ ÏÎÏ GNOME ÎÎ ÎÏÎÏÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎ ÎÎÎÏÎ ÎÏÏÎÏ ÏÎÏ "
 "ÎÏÎÏÎÎÎÎÏ."
 
-#: C/integration-guide.xml:185(para)
+#: C/index.docbook:185(listitem/para)
 msgid ""
 "You are writing a GNOME application proper and you need a checklist of basic "
 "things to do to ensure that your application integrates well with the rest "
@@ -278,7 +272,7 @@ msgstr ""
 "ÏÏÎ Î ÎÏÎÏÎÎÎÎ ÏÎÏ ÎÎ ÎÎÏÏÎÎÏÏÎÎÎ ÏÏÏÎÏ ÏÏÎÎÎÎÎÎÏÎ ÏÏÎÎ ÏÏÏÎÎÎÏÎ ÎÏÎÏÎÎÎÎÎ "
 "ÎÏÎÎÏÎÎÏ GNOME."
 
-#: C/integration-guide.xml:194(para)
+#: C/index.docbook:194(preface/para)
 msgid ""
 "In general, this guide is about integrating existing software into a GNOME "
 "desktop. On the other hand, if you are considering writing new software, we "
@@ -292,7 +286,7 @@ msgstr ""
 "GNOME. ÎÎÏÎÎÎÎÎÏÎÎ ÎÎÎÏÎ ÏÎÎ <ulink url=\"http://developer.gnome.org";
 "\">ÎÏÏÏÏÎÏÎ ÏÏÎÎÏÎÎÎÎÏÎÏÏÏÎ ÏÎÏ GNOME</ulink> ÎÎÎ ÏÎÏÎÏÏÏÏÎÏÎÏ ÏÎÎÏÎÏÎÏÎÎÏ."
 
-#: C/integration-guide.xml:203(para)
+#: C/index.docbook:203(preface/para)
 msgid ""
 "One of the main concerns of GNOME is the user experience. Users should have "
 "a comfortable computing environment: this means having a complete desktop "
@@ -307,11 +301,11 @@ msgstr ""
 "ÏÎÏ ÎÎÎ ÎÏÎÏÏÎÎÎÎ ÎÎÎÎÎÎ ÎÎÎ ÏÎ GNOME ÎÏÎÏÎÏÎ ÎÎ ÏÏÎÎÎÏÎ ÎÎÎÏÎ ÏÏÎ "
 "ÏÎÏÎÎÎÎÎÎÎ ÎÏÎÏÎÎÎÎÎÏ ÎÏÎÎÏÎÎÏ GNOME."
 
-#: C/integration-guide.xml:213(title)
+#: C/index.docbook:213(section/title)
 msgid "Structure of this guide"
 msgstr "ÎÎÎÎ ÎÏÏÎÏ ÏÎÏ ÎÎÎÎÎÏ"
 
-#: C/integration-guide.xml:215(para)
+#: C/index.docbook:215(section/para)
 msgid ""
 "This guide is structured as a list of tasks that you need to perform to "
 "integrate existing software with GNOME. The guide presents these tasks "
@@ -329,11 +323,11 @@ msgstr ""
 "<link linkend=\"apx-integration-checklist\">ÏÎÏÎÏÏÎÎÎ ÎÎ ÎÎÏÏÎ ÎÎÎÎÎÏÎÎÏÎÏ "
 "ÏÎÏ ÎÎÏÏÎÎÏÏÏÎÏ</link> ÎÎÎ ÎÎ ÏÎÏ ÎÎÎÎÎÏÎÎ ÏÏÎÎ ÎÎÎÎÎÏÎÎÏÎ ÏÎÏ ÎÏÎÎÏ ÏÎÏ."
 
-#: C/integration-guide.xml:229(title)
+#: C/index.docbook:229(section/title)
 msgid "Standards and freedesktop.org"
 msgstr "ÎÏÏÏÏÏÎ ÎÎÎ ÏÎ freedesktop.org"
 
-#: C/integration-guide.xml:231(para)
+#: C/index.docbook:231(section/para)
 msgid ""
 "Many of the integration tasks in this guide rely on standards which are "
 "relevant to more than GNOME. Other desktop projects like the <ulink url="
@@ -349,7 +343,7 @@ msgstr ""
 "GNOME, ÎÎ ÏÏÎÎÎÏÏÎÎ ÎÎÎÎ Î ÎÎÎ ÎÎÎÏÎÎÏ ÎÏÎÏÎÎÎÎ ÎÏÎÎÏÎÎ ÎÎÎ ÎÎ ÎÎÎÏÎÏÏÎÎÏÎÏÎ "
 "ÎÎÎ ÏÎ ÎÎÎÎÎÎ ÏÎ ÏÎÏÎÎÎÎÎÎÎÏÎ."
 
-#: C/integration-guide.xml:241(para)
+#: C/index.docbook:241(section/para)
 msgid ""
 "Creating a perfect application is a wonderful feeling. Whether large or "
 "small, you want the desktop to recognize your application and for them to "
@@ -366,7 +360,7 @@ msgstr ""
 "ÎÎÎ ÏÏÎÏÏÎÏÎ ÎÏÎÏÎÎÎÎ ÎÎÎÏÎÎÏ, ÏÏÎ <emphasis>freedesktop.org</emphasis> "
 "ÎÏÎÏÎÎÏÎ ÎÎ ÎÏÎÎÏÎ ÎÎÎ ÏÏÎÏÎÎÏ ÏÏÎÎÎÎ ÏÏÎÎÎÎÎÏÎÏÏÎ."
 
-#: C/integration-guide.xml:252(para)
+#: C/index.docbook:252(section/para)
 msgid ""
 "Although not a formal standards body, freedesktop.org maintains a set of "
 "informal but commonly agreed upon guidelines. When followed, these "
@@ -377,11 +371,11 @@ msgstr ""
 "ÎÏÎÎÎÎÏ. ÎÎ ÎÎÎÎÎÏÎÎÏÎÏÎ ÎÏÏÎÏ ÏÎÏ ÎÎÏÎÏÎÏÎÏÎÏÎÎÏ ÎÏÎÎÎÎÏ, ÎÎ ÎÏÎÏÏÏÎÏÎ ÏÎÎ "
 "ÎÎÏÏÎÎÏÏÏÎ ÏÏÎ ÎÏÎÏÎÎÎÏÎ ÏÎÏ ÏÏÎÏ ÏÏÎÎÎÏÏÎÏ ÎÏÎÏÎÎÎÎÎÏ ÎÏÎÎÏÎÎÏ."
 
-#: C/integration-guide.xml:262(title)
+#: C/index.docbook:262(chapter/title)
 msgid "Basic Integration"
 msgstr "ÎÎÏÎÎÎ ÎÎÏÏÎÎÏÏÏÎ"
 
-#: C/integration-guide.xml:264(para)
+#: C/index.docbook:264(chapter/para)
 msgid ""
 "This chapter teaches you about the very basic steps you should take to "
 "integrate a program into the GNOME desktop. These steps concern the "
@@ -391,7 +385,7 @@ msgstr ""
 "ÎÏÎÎÏÎÏÎÏÎÎ ÎÎÎ ÏÎÎ ÎÎÏÏÎÎÏÏÏÎ ÎÎÏÏ ÏÏÎÎÏÎÎÎÎÏÎÏ ÏÏÎÎ ÎÏÎÏÎÎÎÎÎ ÎÏÎÎÏÎÎÏ "
 "GNOME. ÎÏÏÎÎÎÏÎÎ ÎÎÎ ÏÎ ÎÎÏÎÎÏÎÎ:"
 
-#: C/integration-guide.xml:272(para)
+#: C/index.docbook:272(listitem/para)
 msgid ""
 "Letting the user launch your application by making it appear in the "
 "desktop's panel menus, or any other launching mechanism in the desktop."
@@ -400,7 +394,7 @@ msgstr ""
 "ÎÏÎÏÎÎÎÎ ÎÎ ÎÎÏÎÎÎÎÎÏÎÎ ÏÏÎ ÎÎÎÎÏ ÏÏÎ ÏÎÎÎÎÏÎ ÎÏÎÏÎÎÎÏÎ Î ÎÎÎÏÎ ÎÎÏÎÎÎÏÎÏÎ "
 "ÎÎÎÎÎÎÏÎÏ ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÎ Î ÎÏÎÏÎÎÎÎÎ ÎÏÎÎÏÎÎÏ."
 
-#: C/integration-guide.xml:279(para)
+#: C/index.docbook:279(listitem/para)
 msgid ""
 "Letting the desktop know which types of user-created files require your "
 "application to be launched."
@@ -408,7 +402,7 @@ msgstr ""
 "ÎÏÏ ÎÎ ÎÎÎÎÎÏÏÏÎÏÎ ÏÎÎ ÎÏÎÏÎÎÎÎÎ ÎÏÎÎÏÎÎÏ ÎÎÎ ÏÎÏÏ ÏÏÏÎÏÏ ÎÏÏÎÎÏÎ ÏÏÎÏÏÎ ÏÎÏ "
 "ÎÏÎÎÏÎÏÎ ÏÎÎ ÎÎÎÎÎÎÏÎ ÏÎÏ ÎÏÎÏÎÎÎÎÏ ÏÎÏ."
 
-#: C/integration-guide.xml:285(para)
+#: C/index.docbook:285(listitem/para)
 msgid ""
 "Letting the desktop know how to display the appropriate icons for your "
 "program and the files which your program creates."
@@ -416,13 +410,13 @@ msgstr ""
 "ÎÏÏ ÎÎ ÎÎÎÎÎÏÏÏÎÏÎ ÏÎÎ ÎÏÎÏÎÎÎÎÎ ÎÏÎÎÏÎÎÏ ÎÎÎ ÏÎ ÎÎÎÎÎÎÎÎÎ ÏÎÏ ÎÎÏÎÏÏÎÎÏÎÏÎ "
 "ÏÏÎÎ ÎÏÎÏÎÎÎÎ ÏÎÏ ÎÎÎ ÏÏÎ ÎÏÏÎÎÎ ÏÎÏ ÎÎÎÎÎÏÏÎÎÎ."
 
-#: C/integration-guide.xml:293(title)
+#: C/index.docbook:293(section/title)
 msgid "Desktop files: putting your application in the desktop menus"
 msgstr ""
 "ÎÏÏÎÎÎ ÎÏÎÏÎÎÎÎÎÏ ÎÏÎÎÏÎÎÏ: ÎÎÏÎÎÎ ÏÎÏ ÎÏÎÏÎÎÎÎÏ ÏÎÏ ÏÏÎ ÎÎÎÎÏ ÏÎÏ "
 "ÎÏÎÏÎÎÎÎÎÏ ÎÏÎÎÏÎÎÏ"
 
-#: C/integration-guide.xml:295(para)
+#: C/index.docbook:295(section/para)
 msgid ""
 "To run applications from GNOME, users click on icons on their desktops or "
 "they select the applications which they want to run from a menu. Therefore, "
@@ -436,7 +430,7 @@ msgstr ""
 "ÏÏÎÎÏÎÎÎÎÏÎÏ ÏÏÎ GNOME ÎÎÎÎÎ Î <firstterm>ÎÎÏÎÏÏÏÎÏÎ</firstterm> ÏÎÏ ÏÏÎ "
 "ÎÎÏÏÎ ÏÏÎ ÎÏÎÏÎÎÎÏÎ ÏÎÏ ÎÏÎÏÎÎ ÎÎ ÎÎÏÎÎÎÎ Î ÏÏÎÏÏÎÏ."
 
-#: C/integration-guide.xml:304(para)
+#: C/index.docbook:304(section/para)
 msgid ""
 "Unlike in Windows or MacOS, in GNOME the users menus are automatically "
 "constructed from the list of registered applications. Each published "
@@ -447,7 +441,7 @@ msgstr ""
 "ÎÎ ÎÎÏÎÎÎÏÎ ÎÎ ÏÎ Windows Î ÏÎ MacOS, ÏÏÎ GNOME ÏÎ ÎÎÎÎÏ ÏÏÎ ÏÏÎÏÏÏÎ "
 "ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ ÎÏÏÏÎÎÏÎ ÎÏÏ ÏÎ ÎÎÏÏÎ ÏÏÎ ÎÎÏÎÏÏÏÎÎÎÎÏÎ ÎÏÎÏÎÎÎÏÎ."
 
-#: C/integration-guide.xml:313(para)
+#: C/index.docbook:313(note/para)
 msgid ""
 "Though common in other desktops, creating your own application-specific "
 "submenu is not recommended. Instead, provide one menu item for each "
@@ -461,7 +455,7 @@ msgstr ""
 "ÏÏÎÎÎÏÎÎÎ ÏÏÎÏ ÏÎÏ ÎÏÏÎÏÎÎÎÎÎÏ ÏÎÏ, ÎÎ ÏÏÎÏÎÎ ÎÎ ÎÎÏÏÎÎÏÏÎÎÎÏÎÎ ÏÏÎÎ "
 "ÎÏÎÏÎÎÎÎ ÎÏÏÎ ÎÎÎÎÏÏÎ."
 
-#: C/integration-guide.xml:321(para)
+#: C/index.docbook:321(section/para)
 msgid ""
 "In GNOME and other freedesktop.org-compliant desktops, an application gets "
 "registered into the desktop's menus through a <firstterm>desktop entry</"
@@ -477,7 +471,7 @@ msgstr ""
 "ÏÎÏÎÎÏÎÎ ÎÎÎ ÎÎÏÏÎ ÏÏÎÎÎÏÎÏÎ ÎÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ ÏÎÏ. Î ÎÏÎÏÎÎÎÎÎ ÎÏÎÎÏÎÎÏ "
 "ÏÏÎÏÎÎÎÏÎÎÎÎ ÏÎÏ ÏÎÎÏÎÏÎÏÎÎÏ ÎÏÏÎÏ ÏÎÏ ÎÏÏÎÎÎÏ ÎÎÎ ÎÎ:"
 
-#: C/integration-guide.xml:332(para)
+#: C/index.docbook:332(listitem/para)
 msgid ""
 "put the application in the <guimenu>Main Menu</guimenu>. To find a list of "
 "valid categories, take a look into FreeDesktop.org's <ulink url=\"http://";
@@ -489,7 +483,7 @@ msgstr ""
 "standards.freedesktop.org/menu-spec/latest/\">ÏÏÎÎÎÎÎÏÎÏÎÏ ÎÎÎÎÏ</ulink> ÏÎÏ "
 "FreeDesktop.org ."
 
-#: C/integration-guide.xml:340(para)
+#: C/index.docbook:340(listitem/para)
 msgid ""
 "list the application in the <application>Run Application...</application> "
 "dialog"
@@ -497,24 +491,24 @@ msgstr ""
 "ÎÎÏÎÏÏÏÎÏÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ ÏÏÎ ÎÎÎÎÎÎÎ <application>ÎÎÏÎÎÎÏÎ ÎÏÎÏÎÎÎÎÏ...</"
 "application>."
 
-#: C/integration-guide.xml:344(para)
+#: C/index.docbook:344(listitem/para)
 msgid "create appropriate launchers in the menu or on the desktop."
 msgstr ""
 "ÎÎÎÎÎÏÏÎÎÏÎÎ ÏÎÏÏ ÎÎÏÎÎÎÎÎÎÏÏ ÎÎÎÎÎÎÏÎÏ ÏÏÎ ÎÎÎÎÏ Î ÏÎÎ ÎÏÎÏÎÎÎÎÎ ÎÏÎÎÏÎÎÏ."
 
-#: C/integration-guide.xml:347(para)
+#: C/index.docbook:347(listitem/para)
 msgid "associate the name and description of the application."
 msgstr "ÎÎÏÎÏÏÎÎÏÎÏÎÎ ÏÎ ÏÎÎÎÎ ÎÎÎ ÏÎÎ ÏÎÏÎÎÏÎÏÎ ÏÎÏ ÎÏÎÏÎÎÎÎÏ."
 
-#: C/integration-guide.xml:350(para)
+#: C/index.docbook:350(listitem/para)
 msgid "use the appropriate icon."
 msgstr "ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÏÎ ÎÎÏÎÎÎÎÎÎ ÎÎÎÎÎÎÎÎÎ."
 
-#: C/integration-guide.xml:353(para)
+#: C/index.docbook:353(listitem/para)
 msgid "recognize the MIME types it supports for opening files."
 msgstr "ÎÎÎÎÎÏÏÎÏÎÎ ÏÎÏÏ ÏÏÏÎÏÏ ÎÎÎÎ ÏÏÎ ÎÏÎÎÏÎ ÏÎ ÎÎÎÎÎÎÎ ÏÏÎÏÏÎÏÎÎÎÎ."
 
-#: C/integration-guide.xml:357(para)
+#: C/index.docbook:357(section/para)
 msgid ""
 "To add a menu entry for your application, create a desktop file. It should "
 "have a unique filename, and there are no length limits so avoid "
@@ -534,7 +528,28 @@ msgstr ""
 "ÎÏÎÎÎÎÎÏ. ÎÎ ÎÏÏÎÎÎ ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎÏÎÎ ÎÏÎÎÎÎÏÎÎÎÏÎ UTF-8 ÎÎÎ ÎÎ ÏÏÎÎÎÎÎÎÎÎ "
 "ÎÎ ÏÎ ÎÎÏÎÎÏÎÎ ÏÏÏÏÏÏÎ:"
 
-#: C/integration-guide.xml:378(para)
+#: C/index.docbook:369(section/programlisting)
+#, no-wrap
+msgid ""
+"\n"
+"\t[Desktop Entry]\n"
+"\tName=FooCorp Painter Pro\n"
+"\tExec=foocorp-painter-pro\n"
+"\tIcon=foocorp-painter-pro\n"
+"\tType=Application\n"
+"\tCategories=GTK;GNOME;Utility;\n"
+"\t"
+msgstr ""
+"\n"
+"\t[Desktop Entry]\n"
+"\tName=FooCorp Painter Pro\n"
+"\tExec=foocorp-painter-pro\n"
+"\tIcon=foocorp-painter-pro\n"
+"\tType=Application\n"
+"\tCategories=GTK;GNOME;Utility;\n"
+"\t"
+
+#: C/index.docbook:378(section/para)
 msgid ""
 "These desktop files contain metadata about your application, and play a "
 "central role in integrating the program with the GNOME and other standards "
@@ -549,7 +564,7 @@ msgstr ""
 "ÎÎÏÎÏÏÎÏÎÎÏ, ÎÏÏÎ ÏÏÏÎ ÏÎ ÏÎÎÎÎ ÏÎÏ ÎÏÎÏÎÎÎÎÏ ÏÎÏ ÎÎ ÎÎÏÎÎÎÎÎÏÎÎ ÏÏÎ ÎÎÏÏÎÎÎ "
 "ÎÎÏÏÏÎ ÏÎÏ ÏÏÎÏÏÎ."
 
-#: C/integration-guide.xml:398(para)
+#: C/index.docbook:398(footnote/para)
 msgid ""
 "Note that the <literal>~/.local/share/applications</literal> location is not "
 "monitored by versions of GNOME prior to version 2.10 or on Fedora Core "
@@ -569,7 +584,7 @@ msgstr ""
 "ÎÏÎÎÏÎ, ÎÏÏÏÎ ÎÎÎ ÎÎÎÎÏÏÎ ÏÏÎÎÎÏÏÏÎÏÎ, ÎÎÎÏ ÎÎÎÎÎ ÎÎ ÏÎÏÎÎÎÏÎÏÎÏÎ ÏÎ ÎÏÏÎÎÎ "
 "ÎÎÎ ÏÏÎÏ ÎÏÎ ÏÎÏÎÎÎÏÎÎÏ."
 
-#: C/integration-guide.xml:411(para)
+#: C/index.docbook:411(footnote/para)
 msgid ""
 "Note that the KDE Desktop requires one to run <command>kbuildsycoca</"
 "command> to force a refresh of the menus."
@@ -577,7 +592,7 @@ msgstr ""
 "ÎÎÎÎÎÏÏÏÎ ÏÏÎ Î ÎÏÎÏÎÎÎÎÎ ÎÏÎÎÏÎÎÏ KDE ÎÏÎÎÏÎÎ ÏÎÎ ÎÎÏÎÎÎÏÎ ÏÎÏ "
 "<command>kbuildsycoca</command> ÎÎÎ ÏÎÎ ÎÎÎÎÎÏÏÎ ÏÏÎ ÎÎÎÎÏ."
 
-#: C/integration-guide.xml:387(para)
+#: C/index.docbook:387(section/para)
 msgid ""
 "Place this file in the <literal>/usr/share/applications</literal> directory "
 "so that it is accessible by everyone, or in <literal>~/.local/share/"
@@ -585,7 +600,7 @@ msgid ""
 "user. Which is used should depend on whether your application is installed "
 "systemwide or into a user's home directory. GNOME monitors these directories "
 "for changes, so simply copying the file to the right location is enough to "
-"register it with the desktop. <placeholder-1/>"
+"register it with the desktop. <_:footnote-1/>"
 msgstr ""
 "ÎÎÏÎÎÎÏÎÏÏÎ ÏÎ ÎÏÏÎÎÎ ÎÏÎÏÎÎÎÎÎÏ ÎÏÎÎÏÎÎÏ ÏÏÎÎ ÎÎÏÎÎÎÎÎ <literal>/usr/share/"
 "applications</literal> ÎÎÎ ÎÎ ÎÎÎÎÎ ÎÎÎÎÎÏÎÎÎ ÏÎ ÏÎÎÏÏ ÏÎÏÏ ÏÏÎÏÏÎÏ, Î ÏÏÎÎ "
@@ -594,9 +609,9 @@ msgstr ""
 "ÎÎ Î ÎÏÎÏÎÎÎÎ ÎÎÎÎÎÎÏÏÎÏÎÎ ÏÏÎ ÏÏÏÏÎÎÎ ÎÏÏÎÎÏÎ Î ÏÏÎÎ ÎÏÏÎÎÏ ÎÎÏÎÎÎÎÎ ÏÎÏ "
 "ÏÏÎÏÏÎ. ÎÎ GNOME ÏÎÏÎÎÎÎÎÏÎÎÎ ÎÏÏÎÏÏ ÏÎÏÏ ÎÎÏÎÎÏÎÎÏÏ ÎÎÎ ÎÎÏÎÎÎÎÎÎÎÎÏÎÎ "
 "ÏÏÏÏÎ ÎÎÎÎÎÎÏ, ÎÏÎ Î ÎÏÎÎ ÎÎÏÎÎÏÎÏÎ ÏÎÏ ÎÏÏÎÎÎÏ ÏÏÎÎ ÎÎÏÎÎÎÎÎÎ ÏÎÏÎÎÎÏÎÎ "
-"ÎÏÎÎÎ ÎÎÎ ÏÎÎ ÎÎÏÎÏÏÏÎÏÎ ÏÎÏ ÏÏÎÎ ÎÏÎÏÎÎÎÎÎ ÎÏÎÎÏÎÎÏ. <placeholder-1/>"
+"ÎÏÎÎÎ ÎÎÎ ÏÎÎ ÎÎÏÎÏÏÏÎÏÎ ÏÎÏ ÏÏÎÎ ÎÏÎÏÎÎÎÎÎ ÎÏÎÎÏÎÎÏ. <_:footnote-1/>"
 
-#: C/integration-guide.xml:441(para)
+#: C/index.docbook:441(section/para)
 msgid ""
 "Each working desktop file needs to follow the same format. A minimal example "
 "of a desktop file is shown in <xref linkend=\"ex-sample-desktop-file\"/>. "
@@ -618,7 +633,7 @@ msgstr ""
 "<firstterm>ÏÎÎÎ</firstterm>. ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÏÎ ÎÎÎ ÎÏÎÎÎÎÎÏÎ ÎÎÎÎ ÎÏÎÎÎÎÏ "
 "ÏÏÎ <xref linkend=\"tb-desktop-file\"/>."
 
-#: C/integration-guide.xml:456(para)
+#: C/index.docbook:456(note/para)
 msgid ""
 "Other than the first line identifying the desktop file, the order of the "
 "lines is not important. In <xref linkend=\"ex-sample-desktop-file\"/>, the "
@@ -631,7 +646,7 @@ msgstr ""
 "ÎÏÎÏÎÏÏÎ ÎÎ ÎÏÎÏÎÎÏÎÎ ÏÏÎ ÎÎÏÏÎÏÎ, ÏÎÎ ÏÎÎÏÏÎ, Î ÏÎÎ ÏÎÎÎÏÏÎÎÎ ÎÏÎÎÎÎ, ÏÏÏÎÏ "
 "ÎÏÏÏ ÎÎ ÎÏÎÏÎÎÎÎÎ ÏÎ ÎÏÎÏÎÎÎÏÎÎÏÎ."
 
-#: C/integration-guide.xml:465(para)
+#: C/index.docbook:465(note/para)
 msgid ""
 "However, the keys are case sensitive. <command>Type=Application</command> is "
 "not the same as <command>type=Application</command> or "
@@ -641,11 +656,11 @@ msgstr ""
 "<command>Type=Application</command> ÎÎÎ ÎÎÎÎÎ ÏÎ ÎÎÎÎ ÎÎ ÏÎ "
 "<command>type=Application</command> Î ÏÎ <command>TYPE=Application</command>."
 
-#: C/integration-guide.xml:474(title)
+#: C/index.docbook:474(example/title)
 msgid "Sample desktop file"
 msgstr "ÎÏÏÎÎÎÎÎÎ ÎÏÏÎÎÎÏ ÎÏÎÏÎÎÎÎÎÏ ÎÏÎÎÏÎÎÏ"
 
-#: C/integration-guide.xml:475(screen)
+#: C/index.docbook:475(example/screen)
 #, no-wrap
 msgid ""
 "\n"
@@ -668,23 +683,23 @@ msgstr ""
 "Icon=application.png\n"
 "Terminal=false\n"
 
-#: C/integration-guide.xml:488(title)
+#: C/index.docbook:488(table/title)
 msgid "Line by line explanation"
 msgstr "ÎÏÎÎÎÎÎÏÎ ÎÏÎÎÎÎ ÏÏÎÏ ÎÏÎÎÎÎ"
 
-#: C/integration-guide.xml:495(entry)
+#: C/index.docbook:495(row/entry)
 msgid "Line"
 msgstr "ÎÏÎÎÎÎ"
 
-#: C/integration-guide.xml:496(entry)
+#: C/index.docbook:496(row/entry)
 msgid "Description"
 msgstr "ÎÎÏÎÎÏÎÏÎ"
 
-#: C/integration-guide.xml:502(command)
-msgid "[Desktop Entry]"
-msgstr "[Desktop Entry]"
+#: C/index.docbook:502(row/entry)
+msgid "<command>[Desktop Entry]</command>"
+msgstr "<command>[Desktop Entry]</command>"
 
-#: C/integration-guide.xml:503(entry)
+#: C/index.docbook:503(row/entry)
 msgid ""
 "The first line of every desktop file and the section header to identify the "
 "block of key value pairs associated with the desktop. Necessary for the "
@@ -694,85 +709,79 @@ msgstr ""
 "ÎÎÏÏÎÏÎÏ ÎÎ ÏÎ ÎÎÏÎÎÏÏÎÏÎ ÎÎÎÎÎÎÎ. Î ÏÏÎÏÎÎ ÏÎÏ ÎÎÎÎÎ ÎÏÎÏÎÎÏÎÏÎ ÏÏÎÎÎÎÎÎÎÎÏ "
 "Î ÎÏÎÏÎÎÎÎÎ ÎÏÎÎÏÎÎÏ ÎÎ ÎÎÎÎÎ ÏÎ ÎÎÏÎ ÎÎ ÎÎÎÎÎÏÏÎÏÎÎ ÏÏÏÏÎ ÏÎ ÎÏÏÎÎÎ."
 
-#: C/integration-guide.xml:509(command)
-msgid "Type=Application"
-msgstr "Type=Application"
-
-#: C/integration-guide.xml:512(command)
-msgid "Link"
-msgstr "Link"
+#: C/index.docbook:509(row/entry)
+msgid "<command>Type=Application</command>"
+msgstr "<command>Type=ÎÏÎÏÎÎÎÎ</command>"
 
-#: C/integration-guide.xml:513(command)
-msgid "Directory"
-msgstr "Directory"
-
-#: C/integration-guide.xml:510(entry)
+#: C/index.docbook:510(row/entry)
 msgid ""
 "Tells the desktop that this desktop file pertains to an application. Other "
-"valid values for this key are <placeholder-1/> and <placeholder-2/>."
+"valid values for this key are <command>Link</command> and "
+"<command>Directory</command>."
 msgstr ""
 "ÎÎÎÎÎÏÏÎÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎÎ ÎÏÎÎÏÎÎÏ ÏÏÎ ÎÏÏÏ ÏÎ ÎÏÏÎÎÎ ÎÏÎÏÎÎÎÎÎÏ ÎÏÎÎÏÎÎÏ "
 "ÎÎÎÎÎÎ ÏÎ ÎÏÎÏÎÎÎÎ. ÎÎÎÎÏ ÎÎÎÏÏÎÏ ÏÎÎÎÏ ÎÎÎ ÎÏÏÏ ÏÎ ÎÎÎÎÎÎ ÎÎÎÎÎ ÎÎ "
-"<placeholder-1/> (ÏÏÎÎÎÏÎÎÏ) ÎÎÎ <placeholder-2/> (ÎÎÏÎÎÎÎÎÏ)."
+"<command>Link</command> (ÏÏÎÎÎÏÎÎÏ) ÎÎÎ <command>Directory</command> "
+"(ÎÎÏÎÎÎÎÎÏ)."
 
-#: C/integration-guide.xml:516(command)
-msgid "Encoding=UTF-8"
-msgstr "Encoding=UTF-8"
+#: C/index.docbook:516(row/entry)
+msgid "<command>Encoding=UTF-8</command>"
+msgstr "<command>Encoding=UTF-8</command>"
 
-#: C/integration-guide.xml:517(entry)
+#: C/index.docbook:517(row/entry)
 msgid "Describes the encoding of the entries in this desktop file."
 msgstr "ÎÎÏÎÎÏÎÏÎÎ ÏÎÎ ÎÏÎÎÎÎÏÎÎÎÏÎ ÏÏÎ ÎÎÎÏÎÏÏÎ ÏÎÏ ÎÏÏÎÎÎÏ."
 
-#: C/integration-guide.xml:521(command)
-msgid "Name=Sample Application Name"
-msgstr "Name=ÎÎÎÎÎ ÎÏÎÏÎÎÎÎÏ"
+#: C/index.docbook:521(row/entry)
+msgid "<command>Name=Sample Application Name</command>"
+msgstr "<command>Name=ÎÎÎÎÎ ÎÏÎÏÎÎÎÎÏ</command>"
 
-#: C/integration-guide.xml:522(entry)
+#: C/index.docbook:522(row/entry)
 msgid "Names of your application for the main menu and any launchers."
 msgstr ""
 "ÎÎ ÏÎÎÎÎ ÏÎÏ ÎÏÎÏÎÎÎÎÏ ÏÎÏ ÏÏÏÏ ÎÎ ÎÎÏÎÎÎÎÎÏÎÎ ÏÏÎ ÎÏÏÎÎ ÎÎÎÎÏ ÎÎÎ ÏÏÏÏÎ "
 "ÎÎÎÎÎÎÏÎÏ."
 
-#: C/integration-guide.xml:525(command)
-msgid "Comment=A sample application"
-msgstr "Comment=ÎÏÏÎÎÎÎÎÎ ÎÏÎÏÎÎÎÎÏ"
+#: C/index.docbook:525(row/entry)
+msgid "<command>Comment=A sample application</command>"
+msgstr "<command>Comment=ÎÏÏÎÎÎÎÎÎ ÎÏÎÏÎÎÎÎÏ</command>"
 
-#: C/integration-guide.xml:526(entry)
+#: C/index.docbook:526(row/entry)
 msgid "Describes the application. Used as a tooltip."
 msgstr "ÎÎÏÎÎÏÎÏÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ. ÎÎÏÎÎÎÎÎÏÎÎ ÏÏ ÏÏÎÎÎÏÎÎÏ ÎÎÏÎÎÏ."
 
-#: C/integration-guide.xml:529(command)
-msgid "Exec=application"
-msgstr "Exec=ÎÏÎÏÎÎÎÎ"
+#: C/index.docbook:529(row/entry)
+msgid "<command>Exec=application</command>"
+msgstr "<command>Exec=ÎÏÎÏÎÎÎÎ</command>"
 
-#: C/integration-guide.xml:530(entry)
+#: C/index.docbook:530(row/entry)
 msgid ""
 "The command that starts this application from a shell. It can have arguments."
 msgstr ""
 "Î ÎÎÏÎÎÎ ÏÎÏ ÎÎÎÎÎÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ ÎÏÏ ÎÎÎÏÏÎÏ. ÎÏÎÏÎÎ ÎÎ ÏÏÎÎÎÎÏÎÏÎÎ ÎÏÏ "
 "ÎÏÎÏÎÎÏÎ."
 
-#: C/integration-guide.xml:534(command)
-msgid "Icon=application.png"
-msgstr "Icon=ÎÏÎÏÎÎÎÎ.png"
+#: C/index.docbook:534(row/entry)
+msgid "<command>Icon=application.png</command>"
+msgstr "<command>Icon=ÎÏÎÏÎÎÎÎ.png</command>"
 
-#: C/integration-guide.xml:535(entry)
+#: C/index.docbook:535(row/entry)
 msgid "The icon name associated with this application."
 msgstr "ÎÎ ÎÎÎÎÎÎÎÎÎ ÏÎÏ ÎÎÏÎÏÏÎÎÏÎÎ ÏÏÎÎ ÎÏÎÏÎÎÎÎ."
 
-#: C/integration-guide.xml:538(command)
-msgid "Terminal=false"
-msgstr "Terminal=false"
+#: C/index.docbook:538(row/entry)
+msgid "<command>Terminal=false</command>"
+msgstr "<command>Terminal=false</command>"
 
-#: C/integration-guide.xml:539(entry)
+#: C/index.docbook:539(row/entry)
 msgid "Describes whether application should run in a terminal."
 msgstr "ÎÎÎÎÏÎÎÎÎ ÏÎ ÎÎ ÎÏÎÏÏÎÏÎÏÎÎ ÎÎ ÎÎÏÎÎÎÎÏÎÎ ÏÎ ÏÎÏÎÎÏÎÎÏ Î ÎÏÎÏÎÎÎÎ."
 
-#: C/integration-guide.xml:547(title)
+#: C/index.docbook:547(section/title)
 msgid "Starting your application"
 msgstr "ÎÎÎÎÎÎÏÎ ÏÎÏ ÎÏÎÏÎÎÎÎÏ ÏÎÏ"
 
-#: C/integration-guide.xml:548(para)
+#: C/index.docbook:548(section/para)
 msgid ""
 "If your application can take command line arguments, you can signify that by "
 "using the fields as shown in <xref linkend=\"tb-exec-params\"/>."
@@ -781,114 +790,113 @@ msgstr ""
 "ÏÏÎÏÎÎÎÏÎÏÎÏÎ ÏÏÎ ÎÎÏÎÎÎÎÎÎ ÏÎÎÎÎ, ÏÏÏÏ ÏÎÎÎÎÏÎÎ ÏÏÎ <xref linkend=\"tb-exec-"
 "params\"/>."
 
-#: C/integration-guide.xml:555(title)
+#: C/index.docbook:555(table/title)
 msgid "Exec variables"
 msgstr "ÎÎÏÎÎÎÎÏÎÏ ÎÎÏÎÎÎÏÎÏ"
 
-#: C/integration-guide.xml:562(entry)
+#: C/index.docbook:562(row/entry)
 msgid "Add..."
 msgstr "ÎÏÎÏÎÎÏÏÎ..."
 
-#: C/integration-guide.xml:563(entry)
+#: C/index.docbook:563(row/entry)
 msgid "Accepts..."
 msgstr "ÎÎÏÎÏÎÎ..."
 
-#: C/integration-guide.xml:569(command) C/integration-guide.xml:587(command)
-msgid "%f"
-msgstr "%f"
+#: C/index.docbook:569(row/entry)
+msgid "<command>%f</command>"
+msgstr "<command>%f</command>"
 
-#: C/integration-guide.xml:570(entry)
+#: C/index.docbook:570(row/entry)
 msgid "a single filename."
 msgstr "ÎÎÎ ÏÎÎÎÎ ÎÏÏÎÎÎÏ."
 
-#: C/integration-guide.xml:573(command) C/integration-guide.xml:592(command)
-msgid "%F"
-msgstr "%F"
+#: C/index.docbook:573(row/entry)
+msgid "<command>%F</command>"
+msgstr "<command>%F</command>"
 
-#: C/integration-guide.xml:574(entry)
+#: C/index.docbook:574(row/entry)
 msgid "multiple filenames."
 msgstr "ÏÎÎÎÎÏÎÎ ÎÎÏÎÎÏÎ ÎÏÏÎÎÏÎ."
 
-#: C/integration-guide.xml:577(command) C/integration-guide.xml:981(literal)
-#: C/integration-guide.xml:984(literal)
-msgid "%u"
-msgstr "%u"
+#: C/index.docbook:577(row/entry)
+msgid "<command>%u</command>"
+msgstr "<command>%u</command>"
 
-#: C/integration-guide.xml:578(entry)
+#: C/index.docbook:578(row/entry)
 msgid "a single URL."
 msgstr "ÎÎÎ URL."
 
-#: C/integration-guide.xml:581(command)
-msgid "%U"
-msgstr "%U"
+#: C/index.docbook:581(row/entry)
+msgid "<command>%U</command>"
+msgstr "<command>%U</command>"
 
-#: C/integration-guide.xml:582(entry)
+#: C/index.docbook:582(row/entry)
 msgid "multiple URLs."
 msgstr "ÏÎÎÎÎÏÎÎ URL."
 
-#: C/integration-guide.xml:585(command)
-msgid "%d"
-msgstr "%d"
+#: C/index.docbook:585(row/entry)
+msgid "<command>%d</command>"
+msgstr "<command>%d</command>"
 
-#: C/integration-guide.xml:586(entry)
+#: C/index.docbook:586(row/entry)
 msgid ""
-"a single directory. Used in conjunction with <placeholder-1/> to locate a "
-"file."
+"a single directory. Used in conjunction with <command>%f</command> to locate "
+"a file."
 msgstr ""
-"ÎÎÎÎ ÎÎÏÎÎÎÎÎ. ÎÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÎÎÎÎ ÎÎ ÏÎ <placeholder-1/> ÎÎÎ ÏÎÎ ÎÎÏÎÏÎÏÎÏ "
-"ÎÎÏÏ ÎÏÏÎÎÎÏ."
+"ÎÎÎÎ ÎÎÏÎÎÎÎÎ. ÎÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÎÎÎÎ ÎÎ ÏÎ <command>%f</command> ÎÎÎ ÏÎÎ "
+"ÎÎÏÎÏÎÏÎÏ ÎÎÏÏ ÎÏÏÎÎÎÏ."
 
-#: C/integration-guide.xml:590(command)
-msgid "%D"
-msgstr "%D"
+#: C/index.docbook:590(row/entry)
+msgid "<command>%D</command>"
+msgstr "<command>%D</command>"
 
-#: C/integration-guide.xml:591(entry)
+#: C/index.docbook:591(row/entry)
 msgid ""
-"multiple directories. Used in conjunction with <placeholder-1/> to locate "
-"files."
+"multiple directories. Used in conjunction with <command>%F</command> to "
+"locate files."
 msgstr ""
-"ÏÎÎÎÎÏÎÎÏÏ ÎÎÏÎÎÏÎÎÏÏ. ÎÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÎÎÎÎ ÎÎ ÏÎ <placeholder-1/> ÎÎÎ ÏÎÎ "
-"ÎÎÏÎÏÎÏÎÏ ÎÏÏÎÎÏÎ."
+"ÏÎÎÎÎÏÎÎÏÏ ÎÎÏÎÎÏÎÎÏÏ. ÎÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÎÎÎÎ ÎÎ ÏÎ <command>%F</command> ÎÎÎ "
+"ÏÎÎ ÎÎÏÎÏÎÏÎÏ ÎÏÏÎÎÏÎ."
 
-#: C/integration-guide.xml:595(command)
-msgid "%n"
-msgstr "%n"
+#: C/index.docbook:595(row/entry)
+msgid "<command>%n</command>"
+msgstr "<command>%n</command>"
 
-#: C/integration-guide.xml:596(entry)
+#: C/index.docbook:596(row/entry)
 msgid "a single filename without a path."
 msgstr "ÎÎÎ ÏÎÎÎÎ ÎÏÏÎÎÎÏ ÏÏÏÎÏ ÎÎÎÎÏÎÎÎ."
 
-#: C/integration-guide.xml:599(command)
-msgid "%N"
-msgstr "%N"
+#: C/index.docbook:599(row/entry)
+msgid "<command>%N</command>"
+msgstr "<command>%N</command>"
 
-#: C/integration-guide.xml:600(entry)
+#: C/index.docbook:600(row/entry)
 msgid "multiple filenames without paths."
 msgstr "ÏÎÎÎÎÏÎÎ ÎÎÏÎÎÏÎ ÎÏÏÎÎÏÎ ÏÏÏÎÏ ÎÎÎÎÏÎÎÎÏ."
 
-#: C/integration-guide.xml:603(command)
-msgid "%k"
-msgstr "%k"
+#: C/index.docbook:603(row/entry)
+msgid "<command>%k</command>"
+msgstr "<command>%k</command>"
 
-#: C/integration-guide.xml:604(entry)
+#: C/index.docbook:604(row/entry)
 msgid "a URI or local filename of the location of the desktop file."
 msgstr ""
 "ÎÎÎ URI Î ÏÎÏÎÎÏ ÏÎÎÎÎ ÎÏÏÎÎÎÏ ÎÎÎ ÏÎÎ ÏÎÏÎÎÎÏÎÎ ÏÎÏ ÎÏÏÎÎÎÏ ÎÏÎÏÎÎÎÎÎÏ "
 "ÎÏÎÎÏÎÎÏ."
 
-#: C/integration-guide.xml:608(command)
-msgid "%v"
-msgstr "%v"
+#: C/index.docbook:608(row/entry)
+msgid "<command>%v</command>"
+msgstr "<command>%v</command>"
 
-#: C/integration-guide.xml:609(entry)
+#: C/index.docbook:609(row/entry)
 msgid "the name of the Device entry."
 msgstr "ÏÎ ÏÎÎÎÎ ÏÎÏ ÎÎÎÏÎÏÎÏ ÎÎÎÏ ÏÏÏÎÎÏÎÏ."
 
-#: C/integration-guide.xml:618(title)
+#: C/index.docbook:618(section/title)
 msgid "Foreign languages"
 msgstr "ÎÎÎÎÏ ÎÎÏÏÏÎÏ"
 
-#: C/integration-guide.xml:620(para)
+#: C/index.docbook:620(section/para)
 msgid ""
 "To create localized names and comments, additional lines for each locale "
 "need to be added. For example, to add a Swedish version of the comment, add "
@@ -899,17 +907,17 @@ msgstr ""
 "ÏÏÎÏÎÎÏÎÏÎ ÎÎÎ ÎÎÎÎÏÎ ÏÎÏ ÏÏÎÎÎÎÏ ÏÏÎ ÎÎÏÎÎÎÎÎ, ÏÏÎÏÎÎÏÏÎ ÏÎÎ ÎÎÏÎÎÏÎÎ "
 "ÎÏÎÎÎÎ:"
 
-#: C/integration-guide.xml:627(command)
-msgid "Comment[sv]=Exempelprogramnamn"
-msgstr "Comment[sv]=Exempelprogramnamn"
+#: C/index.docbook:626(section/para)
+msgid "<command> Comment[sv]=Exempelprogramnamn </command>"
+msgstr "<command> Comment[sv]=Exempelprogramnamn </command>"
 
-#: C/integration-guide.xml:632(para)
+#: C/index.docbook:632(section/para)
 msgid "There is no limit to the number of translations in the file."
 msgstr ""
 "ÎÎÎ ÏÏÎÏÏÎÎ ÏÎÏÎÎÏÎÏÎÏÏ ÏÏÎÎ ÎÏÎÎÎÏ ÏÏÎ ÎÎÏÎÏÏÎÏÎÏÎ ÏÎÏ ÎÏÎÏÎÏÎ ÎÎ "
 "ÏÎÏÎÎÏÎÎÏÎÎ ÏÏÎ ÎÏÏÎÎÎ."
 
-#: C/integration-guide.xml:637(para)
+#: C/index.docbook:637(tip/para)
 msgid ""
 "Since maintaining a long list of translations in a file is cumbersome, a "
 "better way to create these translations is to use the <application>intltool</"
@@ -923,12 +931,12 @@ msgstr ""
 "ÏÎÎÎÎÎÏ man ÏÎÏ <application>intltool-extract</application> ÎÎÎ ÏÎÏ "
 "<application>intltool-merge</application> ÎÎÎ ÏÎÏÎÏÏÏÏÎÏÎÏ ÏÎÎÏÎÏÎÏÎÎÏ."
 
-#: C/integration-guide.xml:650(title) C/integration-guide.xml:694(title)
-#: C/integration-guide.xml:797(title) C/integration-guide.xml:880(title)
+#: C/index.docbook:650(section/title) C/index.docbook:694(section/title)
+#: C/index.docbook:797(section/title) C/index.docbook:880(section/title)
 msgid "References"
 msgstr "ÎÎÏÎÏÎÎÏÎÏ"
 
-#: C/integration-guide.xml:652(para)
+#: C/index.docbook:652(section/para)
 msgid ""
 "<ulink url=\"http://standards.freedesktop.org/desktop-entry-spec/latest/";
 "index.html\">Desktop Entry Specification</ulink> â Specifications for "
@@ -938,11 +946,11 @@ msgstr ""
 "index.html\">Desktop Entry Specification</ulink> â ÎÏÎÎÎÎÎÏÎÏÎÏ ÎÎÎ ÏÎ "
 "ÎÎÎÎÎÏÏÎÎÎ ÎÏÏÎÎÏÎ ÎÏÎÏÎÎÎÎÎÏ ÎÏÎÎÏÎÎÏ."
 
-#: C/integration-guide.xml:662(title)
+#: C/index.docbook:662(section/title)
 msgid "Installing icons"
 msgstr "ÎÎÎÎÏÎÏÏÎÏÎ ÎÎÎÎÎÎÎÎÏÎ"
 
-#: C/integration-guide.xml:664(para)
+#: C/index.docbook:664(section/para)
 msgid ""
 "In <xref linkend=\"ex-sample-desktop-file\"/>, we have specified the icon "
 "for this application as <filename><replaceable>application.png</"
@@ -954,7 +962,7 @@ msgstr ""
 "filename>. ÎÏÏÏÏÎ, ÎÎÎ ÎÎ ÎÎÏÎÎÎÏÏÎÎ ÏÎ ÎÎÎÎÎÎÎÎÎ, ÎÎ ÏÏÎÏÎÎ ÎÎ "
 "ÏÎÏÎÎÎÏÎÏÎÏÎÎ ÏÎ ÎÏÏÎÎÎ ÏÎÏ ÏÏÎÎ ÎÎÏÎÎÎÎÎÎ ÎÎÏÎÎÎÎÎ."
 
-#: C/integration-guide.xml:672(para)
+#: C/index.docbook:672(section/para)
 msgid ""
 "The desktop looks for icons in the selected theme directory of <filename>/"
 "usr/share/icons/</filename>. Application icons should be available at least "
@@ -972,7 +980,7 @@ msgstr ""
 "ÎÏÎÎÎÎÎÎÎÎ ÎÎÎÎ. ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÏÎ ÏÏÎÏÎÏÎÏÏÎÎÎ ÎÎÎÎÎÎÎÎÎ, ÏÎÏÎÎÎÏÎÏÏÎ ÏÎ "
 "ÏÏÎÏÏ ÎÎÏÎÎÎÎÎÎÏÏ ÎÎÏÎÎÏÎÎÏÏ."
 
-#: C/integration-guide.xml:682(para)
+#: C/index.docbook:682(section/para)
 msgid ""
 "To better visually integrate with the GNOME desktop, while keeping your "
 "application look native when run under KDE, Windows XP or Mac OS X, follow "
@@ -990,7 +998,7 @@ msgstr ""
 "ÎÎÎÎÎÎ. ÎÏÎÏÎÏ, ÏÎÏÎÎÏÎÎÏÎÎ ÎÏÎÏÎÎÎÎ ÏÏÏÎÎÎ ÏÎÏÎÎÎÎÎÎÎÏÎ ÏÎÎÏ ÎÏÎÎÏÎÏÎ, "
 "ÎÎÎÏÏ ÎÎÎ ÎÎÎÏÎÎ ÎÎÎÎÎÎÏÎÏ."
 
-#: C/integration-guide.xml:696(para)
+#: C/index.docbook:696(section/para)
 msgid ""
 "<ulink url=\"http://standards.freedesktop.org/icon-theme-spec/icon-theme-";
 "spec-latest.html\">Icon Theme Specification</ulink> â Describes how to "
@@ -1000,7 +1008,7 @@ msgstr ""
 "spec-latest.html\">Icon Theme Specification</ulink> â ÎÎÏÎÎÏÎÏÎÎ ÏÎÎ ÏÏÏÏÎ "
 "ÎÎÎÎÏÎÏÏÎÏÎÏ ÎÎÎ ÎÎÎÎÎÏÎÏÎÏ ÎÎÎÎÎÎÎÎÏÎ ÎÏÏÎ ÏÏÏÎ ÎÎ ÎÎÎÎÎ ÏÏÎÏÎÏÎÏÏÎÎÎ."
 
-#: C/integration-guide.xml:703(para)
+#: C/index.docbook:703(section/para)
 msgid ""
 "<ulink url=\"http://standards.freedesktop.org/icon-naming-spec/latest/";
 "\">Icon Naming Specification</ulink> â Provides a canonical naming scheme "
@@ -1010,7 +1018,7 @@ msgstr ""
 "\">Icon Naming Specification</ulink> â ÎÎÏÎÏÎÎ ÎÎÎÎÎÎÎÎÏÎÎÎÎÎÎÎÏ "
 "ÏÏÎÎÎÎÎÏÎÏÎÏ ÎÎÎÎÎÏÎÎÎÏÎÎÏ ÎÎÎ ÏÎ ÎÏÏÎÎÎ ÎÎÎÎÎÎÎÎÏÎ."
 
-#: C/integration-guide.xml:710(para)
+#: C/index.docbook:710(section/para)
 msgid ""
 "<ulink url=\"http://tango.freedesktop.org/Tango_Icon_Theme_Guidelines";
 "\">Tango Style Guidelines</ulink> â Provides description on how to design "
@@ -1020,11 +1028,11 @@ msgstr ""
 "\">Tango Style Guidelines</ulink> â ÎÎÏÎÎÏÎÏÎÎ ÏÏÏ ÎÎ ÏÏÎÎÎÎÎÎÏÎ ÎÎÎÎÏÎ "
 "ÎÎÎÎÎÎÎÎÎ ÎÎÎ ÏÏÎÏÎ ÏÎ 'ÏÎÎÎÎÏÎÎÏ ÏÎÎÏÏÏÏÎÎÏ'."
 
-#: C/integration-guide.xml:719(title)
+#: C/index.docbook:719(section/title)
 msgid "Adding MIME types"
 msgstr "ÎÏÎÏÎÎÎÎ ÏÏÏÏÎ MIME"
 
-#: C/integration-guide.xml:721(para)
+#: C/index.docbook:721(section/para)
 msgid ""
 "If your application can open specific MIME types, you need to let the "
 "desktop know in the desktop file. For example, if your application can "
@@ -1036,12 +1044,12 @@ msgstr ""
 "ÎÎ Î ÎÏÎÏÎÎÎÎ ÏÎÏ ÎÎÏÎÏÎÎ ÎÏÏÎÎÎ <acronym>PNG</acronym>, ÏÏÎÏÎÎÏÏÎ ÏÎÎ "
 "ÎÎÏÎÎÏÎÎ ÎÏÎÎÎÎ ÏÏÎ ÎÏÏÎÎÎ ÏÎÏ:"
 
-#: C/integration-guide.xml:729(screen)
+#: C/index.docbook:729(para/screen)
 #, no-wrap
 msgid "MimeType=image/png"
 msgstr "MimeType=image/png"
 
-#: C/integration-guide.xml:732(para)
+#: C/index.docbook:732(section/para)
 msgid ""
 "Additional Mime types can be added by separating the different types with "
 "semicolons."
@@ -1049,7 +1057,7 @@ msgstr ""
 "ÎÏÎÏÎÎÏÎ ÎÎ ÏÏÎÏÎÎÏÎÏÎ ÏÎÎÎÎÏÎÎÏÏ ÏÏÏÎÏÏ MIME, ÎÏÎÎÎ ÎÎ ÏÎÏÏ ÎÎÎÏÏÏÎÎÎÏÎ ÎÎ "
 "ÎÏÏÏÎÎÎÏÎÎÎ (;)."
 
-#: C/integration-guide.xml:737(para)
+#: C/index.docbook:737(section/para)
 msgid ""
 "The system already knows of a large number of MIME types. However, if you "
 "are creating one of your own, you need to register your MIME type into the "
@@ -1063,50 +1071,38 @@ msgstr ""
 "share/mime/packages/</filename>, ÎÎÎÎÎÏÏÎÎÏÏÎ ÎÎÎ ÎÏÏÎÎÎ <acronym>XML</"
 "acronym> ÎÎ ÏÎ ÎÎÏÏÎ ÏÎÏ ÏÎÏÎÎÏÎÏÎÏÎÎ ÏÏÎ <xref linkend=\"ex-mime-xml\"/>."
 
-#: C/integration-guide.xml:747(title)
+#: C/index.docbook:747(example/title)
 msgid "Sample file for registering a new MIME type"
 msgstr "ÎÏÏÎÎÎÎÎÎ ÎÏÏÎÎÎÏ ÎÎÏÎÏÏÏÎÏÎÏ ÎÎÎÏ ÏÏÏÎÏ MIME"
 
-#: C/integration-guide.xml:751(replaceable)
-msgid "example"
-msgstr "ÏÎÏÎÎÎÎÎÎÎ"
-
-#: C/integration-guide.xml:754(replaceable)
-msgid "search-string"
-msgstr "ÎÎÏÎÏÎÎÎÎÏÎÎÏ-ÎÎÎÎÎÏÎÏÎÏ"
-
-#: C/integration-guide.xml:756(replaceable)
-msgid "newextension"
-msgstr "ÎÎÎÎÏÎÎÏÎÏÎ"
-
-#: C/integration-guide.xml:748(screen)
+#: C/index.docbook:748(example/screen)
 #, no-wrap
 msgid ""
 "\n"
 "&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n"
 "&lt;mime-info xmlns=\"http://www.freedesktop.org/standards/shared-mime-info\"&gt;\n";
-"   &lt;mime-type type=\"application/x-<placeholder-1/>\"&gt;\n"
+"   &lt;mime-type type=\"application/x-<replaceable>example</replaceable>\"&gt;\n"
 "     &lt;comment&gt;Example file type &lt;/comment&gt;\n"
 "     &lt;magic priority=\"50\"&gt;\n"
-"       &lt;match value=\"<placeholder-2/>\" type=\"string\" offset=\"10:140\"/&gt;\n"
+"       &lt;match value=\"<replaceable>search-string</replaceable>\" type=\"string\" offset=\"10:140\"/&gt;\n"
 "     &lt;/magic&gt;\n"
-"     &lt;glob pattern=\"*.<placeholder-3/>\"/&gt;\n"
+"     &lt;glob pattern=\"*.<replaceable>newextension</replaceable>\"/&gt;\n"
 "   &lt;/mime-type&gt;\n"
 "&lt;/mime-info&gt;\n"
 msgstr ""
 "\n"
 "&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n"
 "&lt;mime-info xmlns=\"http://www.freedesktop.org/standards/shared-mime-info\"&gt;\n";
-"   &lt;mime-type type=\"application/x-<placeholder-1/>\"&gt;\n"
+"   &lt;mime-type type=\"application/x-<replaceable>example</replaceable>\"&gt;\n"
 "     &lt;comment&gt;Example file type &lt;/comment&gt;\n"
 "     &lt;magic priority=\"50\"&gt;\n"
-"       &lt;match value=\"<placeholder-2/>\" type=\"string\" offset=\"10:140\"/&gt;\n"
+"       &lt;match value=\"<replaceable>search-string</replaceable>\" type=\"string\" offset=\"10:140\"/&gt;\n"
 "     &lt;/magic&gt;\n"
-"     &lt;glob pattern=\"*.<placeholder-3/>\"/&gt;\n"
+"     &lt;glob pattern=\"*.<replaceable>newextension</replaceable>\"/&gt;\n"
 "   &lt;/mime-type&gt;\n"
 "&lt;/mime-info&gt;\n"
 
-#: C/integration-guide.xml:762(para)
+#: C/index.docbook:762(section/para)
 msgid ""
 "In this example, replace the example MIME type with the name of your MIME "
 "type. The <firstterm>magic</firstterm> section searches files for the search "
@@ -1119,7 +1115,7 @@ msgstr ""
 "ÎÎ ÏÏÏÎÏÏ MIME. Î ÎÏÎÎÎÎ <firstterm>glob</firstterm> ÏÏÎÏÎÎÎÏÎÎÎÎ ÏÎÎ "
 "ÎÏÎÎÏÎÏÎ ÏÏÎ ÎÎÎÎÎÏÏÎ ÏÏÎ ÎÏÏÎÎÏÎ ÎÎÎ ÏÎÎ ÎÎÎÎ ÏÎÎÏÏ."
 
-#: C/integration-guide.xml:771(para)
+#: C/index.docbook:771(tip/para)
 msgid ""
 "Because the <command>magic</command> command forces the computer to open the "
 "files to search for the string, the <command>glob</command> command is "
@@ -1129,7 +1125,7 @@ msgstr ""
 "ÏÎ ÎÏÏÎÎÎ ÎÎÎ ÎÎ ÎÎÎÎÎÏÎ ÏÎ ÎÎÏÎÏÎÎÎÎÏÎÎÏ, ÏÏÎÏÎÎÎÏÎÎ Î ÏÏÎÏÎ ÏÎÏ ÎÎÏÎÎÎÏ "
 "<command>glob</command>."
 
-#: C/integration-guide.xml:778(para)
+#: C/index.docbook:778(section/para)
 msgid ""
 "Once your new MIME type is adequately described in the file, run the "
 "following in a shell:"
@@ -1137,12 +1133,12 @@ msgstr ""
 "ÎÏÎÏ ÏÎÏÎÎÏÎÏÎÏÎ ÎÎÎÎÎÏÎÎÎÏÎÎÎ ÏÎ ÎÎÎ ÏÏÏÎ MIME ÏÏÎ ÎÏÏÎÎÎ, ÎÎÏÎÎÎÏÏÎ ÏÎÎ "
 "ÏÎÏÎÎÎÏÏ ÎÎÏÎÎÎ ÏÎ ÎÎÎÏÏÎÏ:"
 
-#: C/integration-guide.xml:784(screen)
+#: C/index.docbook:784(para/screen)
 #, no-wrap
 msgid "update-mime-database /usr/share/mime"
 msgstr "update-mime-database /usr/share/mime"
 
-#: C/integration-guide.xml:788(para)
+#: C/index.docbook:788(tip/para)
 msgid ""
 "For more information on choosing a good MIME extension and to register your "
 "MIME type, go to the <ulink url=\"http://www.iana.org/cgi-bin/mediatypes.pl";
@@ -1152,7 +1148,7 @@ msgstr ""
 "ÎÎÎ ÏÎÎ ÎÎÏÎÏÏÏÎÏÎ ÏÏÎ ÏÏÏÏÎ MIME, ÎÎÎÏÎ ÏÎÎ ÎÏÏÏÏÎÏÎ ÏÎÏ <ulink url="
 "\"http://www.iana.org/cgi-bin/mediatypes.pl\";>IANA</ulink>."
 
-#: C/integration-guide.xml:799(para)
+#: C/index.docbook:799(section/para)
 msgid ""
 "<ulink url=\"http://standards.freedesktop.org/shared-mime-info-spec/latest/";
 "\">Shared MIME Info Specification</ulink> â Describes the MIME registration "
@@ -1162,11 +1158,11 @@ msgstr ""
 "\">Shared MIME Info Specification</ulink> âÎÎÏÎÎÏÎÏÎÎ ÎÎÏÎÎÏÏ ÏÎ ÏÏÏÏÎÎÎ "
 "ÎÎÏÎÏÏÏÎÏÎÏ MIME."
 
-#: C/integration-guide.xml:812(title)
+#: C/index.docbook:812(chapter/title)
 msgid "Deeper Integration with the Desktop"
 msgstr "ÎÏÎÎÎÎÎÎ ÎÎÏÏÎÎÏÏÏÎ ÏÏÎÎ ÎÏÎÏÎÎÎÎÎ ÎÏÎÎÏÎÎÏ"
 
-#: C/integration-guide.xml:814(para)
+#: C/index.docbook:814(chapter/para)
 msgid ""
 "This chapter contains a list of things which you can do to make your "
 "application have better integration with GNOME than the absolute minimum. "
@@ -1186,11 +1182,11 @@ msgstr ""
 "ÎÎÎÏÎÎÏÎÏÎÏÎ ÏÎÏ ÎÎ ÎÏÎÏÏÎÏÎÎ ÏÏÎ ÎÎÎÏÎÎÏÎÏÏÎ ÎÏÏÎÎÏÎ ÏÎÏ GNOME ÎÎ "
 "ÎÎÎÎÎÏÏÎÎÎ ÎÎÎÏÎÎÏÎÏÎÎÏ ÎÎÎÎÎÎÎÎÏÎÎÎÎÏ ÎÎÎ ÏÎ ÏÏÏÎÏÎÎÎÎ ÏÎÏ."
 
-#: C/integration-guide.xml:826(title)
+#: C/index.docbook:826(section/title)
 msgid "Startup notification"
 msgstr "ÎÎÎÎÏÎÎÎÏÎ ÎÎÎÎÎÎÏÎÏ"
 
-#: C/integration-guide.xml:828(para)
+#: C/index.docbook:828(section/para)
 msgid ""
 "Although the fields shown in <xref linkend=\"desktop-files\"/> provide "
 "enough information for the desktop to recognize your application, there are "
@@ -1202,7 +1198,7 @@ msgstr ""
 "ÎÏÎÏÎÎÎÎÎ ÎÏÎÎÏÎÎÏ, ÏÏÎÏÏÎÏÎ ÎÎÎ ÎÎÎÎ ÏÎÎÎÎ ÏÎÏ ÎÏÎÏÎÎ ÎÎ ÏÎÏ ÏÎÎÎÏÎ "
 "ÏÏÎÏÎÎÎ. ÎÎÎ ÎÏÏ ÎÏÏÎ ÎÎÎÎÎ Î <firstterm>ÎÎÎÎÏÎÎÎÏÎ ÎÎÎÎÎÎÏÎÏ</firstterm>."
 
-#: C/integration-guide.xml:836(para)
+#: C/index.docbook:836(section/para)
 msgid ""
 "When startup notification is set, the panel and cursor notifies the user "
 "that the application has started. When the application appears onscreen, the "
@@ -1213,7 +1209,7 @@ msgstr ""
 "ÏÏÎÎ ÎÎÏÎÎ Î ÎÏÎÏÎÎÎÎ, Î ÏÎÎÎÎÎÏ ÎÏÎÏÎÎÎÏÎ ÎÎÎ Î ÎÏÎÎÎÎÏ ÎÏÎÏÏÏÎÏÎÏÎ ÏÏÎÎ "
 "ÏÏÏÎÎÎÎÎÎÎÎ ÏÎÏÏ ÎÎÏÎÏÏÎÏÎ."
 
-#: C/integration-guide.xml:842(para)
+#: C/index.docbook:842(section/para)
 msgid ""
 "To let the launcher know your application supports startup notification, add "
 "the following line to your desktop file:"
@@ -1222,11 +1218,11 @@ msgstr ""
 "ÎÎÎÎÏÎÎÎÏÎ ÎÎÎÎÎÎÏÎÏ, ÏÏÎÏÎÎÏÏÎ ÏÎÎ ÎÎÏÎÎÏÎÎ ÎÏÎÎÎÎ ÏÏÎ ÎÏÏÎÎÎ ÎÏÎÏÎÎÎÎÎÏ "
 "ÎÏÎÎÏÎÎÏ:"
 
-#: C/integration-guide.xml:848(command)
-msgid "StartupNotify=true"
-msgstr "StartupNotify=true"
+#: C/index.docbook:847(section/para)
+msgid "<command> StartupNotify=true </command>"
+msgstr "<command> StartupNotify=true </command>"
 
-#: C/integration-guide.xml:853(para)
+#: C/index.docbook:853(section/para)
 msgid ""
 "This command in the desktop file enables the desktop to use whatever startup "
 "notification is built in to either your application or your toolkit. Most "
@@ -1244,7 +1240,7 @@ msgstr ""
 "ulink> ÎÎÎ ÏÎÎÏÎÏÎÏÎÎÏ ÏÏÎÏÎÎÎ ÎÎ ÏÎ ÏÏÏ ÎÏÎÏÎÎÏÎ ÎÎ ÏÎÎÏÎÎÎÏÎÏÎ ÎÏÎÎÎ ÏÎÏ "
 "ÎÏÏÎ ÏÎ ÎÎÎÏÎÏÏÎÎÎ."
 
-#: C/integration-guide.xml:865(para)
+#: C/index.docbook:865(tip/para)
 msgid ""
 "Regardless of toolkit, there is one type of application where you would have "
 "to manually handle feedback. Applications with remoting capabilities (where "
@@ -1267,7 +1263,7 @@ msgstr ""
 "<function>gdk_notify_startup_complete()</function> ÏÎÏÎÎÏÎÎ ÎÏÎÏÎÎÎÎÏ "
 "ÎÏÎÏÎÎÎÎ ÏÎÎÏÎÏÎÏÎÎÏ ÏÏÎÏÎÎÎ."
 
-#: C/integration-guide.xml:882(para)
+#: C/index.docbook:882(section/para)
 msgid ""
 "<ulink url=\"http://standards.freedesktop.org/startup-notification-spec/";
 "startup-notification-latest.txt\">Startup Notification Protocol</ulink> â "
@@ -1279,11 +1275,11 @@ msgstr ""
 "ÎÎÏÎÎÏÎÏÎÎ ÎÎÎÎÏÏÎÎÎ ÏÎÎ ÏÎÎÏÎÎÎÏÎ ÏÎÏ ÎÎÎÎÏÎÎÎÏÎÏ ÎÎÎÎÎÎÏÎÏ ÏÏÎ ÏÏÏÏÎÎÎ "
 "ÏÎÏÎÎÏÏÏÎ X."
 
-#: C/integration-guide.xml:893(title)
+#: C/index.docbook:893(section/title)
 msgid "Installing a Thumbnailer Program"
 msgstr "ÎÎÎÎÏÎÏÏÎÏÎ ÎÏÎÏÎÎÎÎÏ ÎÎÎÏÎÎÏÎÏÎÏÎ"
 
-#: C/integration-guide.xml:895(para)
+#: C/index.docbook:895(section/para)
 msgid ""
 "The GNOME file manager, Nautilus, can display little thumbnails tailored for "
 "each file instead of generic icons in its file lists. For example, a word "
@@ -1302,8 +1298,7 @@ msgstr ""
 "ÏÏÎÎ ÎÏÎÏÎÎÎÎ ÏÎÏ ÎÎ ÎÎÎÎÎÏÏÎÎÎ ÏÎÏÎÎÎÏ ÎÎÎÎÏÏ ÎÎÎÏÎÎÏÎÏÎÎÏ, ÎÎÎÎÎÏÎÏÎÏÎÏ "
 "ÎÏÎÏÎÎÎÎ ÎÏÎÎ ÎÎÎÎÏÎ:"
 
-#. FIXME: screenshot of Nautilus showing thumbnails
-#: C/integration-guide.xml:909(para)
+#: C/index.docbook:909(section/para)
 msgid ""
 "A <firstterm>thumbnailer</firstterm> is a program with no user interface "
 "that takes a file and a pixel size as inputs, and it writes a thumbnail for "
@@ -1320,7 +1315,7 @@ msgstr ""
 "ÎÎÏÎÏÏÎÎÏÎÎÏ ÎÎÏÎÎÏ ÏÏÏÏÎ MIME ÎÎÎ ÎÏÎÏÎÎÎÏÎ ÎÎÎÏÎÎÏÎÏÎÏÎ ÎÎÎÎÎ "
 "ÎÏÎÎÎÎÎÏÎÎÎÎÏ ÏÎ ÎÎÎ ÏÎÎÏÎ ÎÏÏ ÎÎÎÎÎÎÎ GConf."
 
-#: C/integration-guide.xml:919(para)
+#: C/index.docbook:919(section/para)
 msgid ""
 "For each MIME type which you want to handle, you have to create a pair of "
 "GConf keys:"
@@ -1328,16 +1323,15 @@ msgstr ""
 "ÎÎÎ ÎÎÎÎ ÏÏÏÎ MIME ÏÎÏ ÏÎÏ ÎÎÎÎÎÏÎÏÎÎ, ÎÎ ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎ ÎÏÎ "
 "ÎÎÎÎÎÎÎ GConf:"
 
-#: C/integration-guide.xml:926(replaceable)
-#: C/integration-guide.xml:938(replaceable)
-msgid "application x-foo"
-msgstr "application x-foo"
-
-#: C/integration-guide.xml:926(literal)
-msgid "/desktop/gnome/thumbnailers/<placeholder-1/>/enable"
-msgstr "/desktop/gnome/thumbnailers/<placeholder-1/>/enable"
+#: C/index.docbook:926(varlistentry/term)
+msgid ""
+"<literal>/desktop/gnome/thumbnailers/<replaceable>application x-foo</"
+"replaceable>/enable</literal>"
+msgstr ""
+"<literal>/desktop/gnome/thumbnailers/<replaceable>application x-foo</"
+"replaceable>/enable</literal>"
 
-#: C/integration-guide.xml:928(para)
+#: C/index.docbook:928(listitem/para)
 msgid ""
 "Type: boolean. Determines whether this thumbnailer will be run. You can "
 "enable or disable each individual thumbnailer. When you install a new "
@@ -1349,11 +1343,15 @@ msgstr ""
 "ÎÎÎÎÎÏÏ, ÏÏÎÎ ÎÎÎÎÎÎÏÏÎÏÎ ÎÎÎ ÎÏÎÏÎÎÎÎ ÎÎÎÏÎÎÏÎÏÎÏÎ, ÎÎ ÏÏÎÏÎÎ ÎÎ ÏÏÎÎÏÎÏÎÏÎ "
 "Î ÏÎÎÎ ÏÎÏ ÎÎÎÎÎÎÎÏ ÎÎ ÎÎÎÎÎ <symbol>true</symbol>."
 
-#: C/integration-guide.xml:938(literal)
-msgid "/desktop/gnome/thumbnailers/<placeholder-1/>/command"
-msgstr "/desktop/gnome/thumbnailers/<placeholder-1/>/command"
+#: C/index.docbook:938(varlistentry/term)
+msgid ""
+"<literal>/desktop/gnome/thumbnailers/<replaceable>application x-foo</"
+"replaceable>/command</literal>"
+msgstr ""
+"<literal>/desktop/gnome/thumbnailers/<replaceable>application x-foo</"
+"replaceable>/command</literal>"
 
-#: C/integration-guide.xml:940(para)
+#: C/index.docbook:940(listitem/para)
 msgid ""
 "Type: string. The command which GNOME will use when it needs to generate a "
 "thumbnail for a file of type <replaceable>application x-foo</replaceable>. "
@@ -1366,7 +1364,7 @@ msgstr ""
 "ÎÏÎÏÎÏÏÎ ÎÎ ÎÎÎÎÎ \"<literal>application-x-foo-thumbnailer %i %o %s</literal>"
 "\".  ÎÎÎÏÎ ÏÎÏÎÎÎÏÏ ÎÎÎ ÎÏÎÎÎÎÎÏÎ ÏÏÎ ÏÏÎÎÏÎÏÎ %."
 
-#: C/integration-guide.xml:953(para)
+#: C/index.docbook:953(section/para)
 msgid ""
 "That is, each MIME type requires two GConf keys (<literal>enable</literal> "
 "and <literal>command</literal>) under the same path. The path name can be "
@@ -1385,7 +1383,7 @@ msgstr ""
 "literal> ÎÎÎ <literal>/desktop/gnome/thumbnailers/image x-my-format/command</"
 "literal>."
 
-#: C/integration-guide.xml:965(para)
+#: C/index.docbook:965(section/para)
 msgid ""
 "Within the <literal>command</literal> key, GNOME will look for percent "
 "sequences and substitute them with actual values:"
@@ -1393,30 +1391,34 @@ msgstr ""
 "ÎÏÎ ÎÎÎÎÎÎ <literal>command</literal>, ÏÎ GNOME ÏÎÏÎÎÎ ÎÎÎ ÏÏÎÎÏÎÏÎÎÏÏ ÎÎ ÏÎ "
 "ÏÏÎÎÎÎÎ % ÎÎÎ ÏÎÏÏ ÏÏÎÎÎÎÎÏÏÎ ÎÎ ÏÏÎÎÎÎÏÎÎÎÏ ÏÎÎÎÏ ÏÏ ÎÎÎÏ:"
 
-#: C/integration-guide.xml:974(literal) C/integration-guide.xml:985(literal)
-msgid "%i"
-msgstr "%i"
+#: C/index.docbook:974(row/entry)
+msgid "<literal>%i</literal>"
+msgstr "<literal>%i</literal>"
 
-#: C/integration-guide.xml:975(entry)
+#: C/index.docbook:975(row/entry)
 msgid "Input file name. This is the file that your thumbnailer needs to read."
 msgstr ""
 "ÎÎÎÎÎ ÎÏÏÎÎÎÏ ÎÎÏÏÎÎÏ. ÎÏÏÎÎÎÏÎÎ ÎÎÎ ÏÎ ÎÏÏÎÎÎ ÏÎÏ ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎÏÎÎ Î "
 "ÎÏÎÏÎÎÎÎ ÎÎÎÏÎÎÏÎÏÎÏÎ."
 
-#: C/integration-guide.xml:982(entry)
+#: C/index.docbook:981(row/entry)
+msgid "<literal>%u</literal>"
+msgstr "<literal>%u</literal>"
+
+#: C/index.docbook:982(row/entry)
 msgid ""
 "Input URI. If your thumbnailer can handle URIs instead of plain file names, "
-"use <placeholder-1/> instead of <placeholder-2/>."
+"use <literal>%u</literal> instead of <literal>%i</literal>."
 msgstr ""
 "URI ÎÎÏÏÎÎÏ. ÎÎ Î ÎÏÎÏÎÎÎÎ ÎÎÎÏÎÎÏÎÏÎÏÎ ÏÎÎÏÎÎÎÏÎÎ ÎÎÎ URI ÎÎÏÏÏ ÎÏÏ ÎÏÎÎ "
-"ÎÎÏÎÎÏÎ ÎÏÏÎÎÏÎ, ÏÏÎÏÎÎÎÏÎÎÎÏÏÎ ÏÎ <placeholder-1/> ÎÎÏÎ ÏÎÏ <placeholder-2/"
-">."
+"ÎÎÏÎÎÏÎ ÎÏÏÎÎÏÎ, ÏÏÎÏÎÎÎÏÎÎÎÏÏÎ ÏÎ <literal>%u</literal> ÎÎÏÎ ÏÎÏ <literal>"
+"%i</literal>."
 
-#: C/integration-guide.xml:989(literal)
-msgid "%o"
-msgstr "%o"
+#: C/index.docbook:989(row/entry)
+msgid "<literal>%o</literal>"
+msgstr "<literal>%o</literal>"
 
-#: C/integration-guide.xml:990(entry)
+#: C/index.docbook:990(row/entry)
 msgid ""
 "Output file name. This is where your thumbnailer should write the thumbnail "
 "image in PNG format."
@@ -1424,25 +1426,21 @@ msgstr ""
 "ÎÎÎÎÎ ÎÏÏÎÎÎÏ ÎÎÏÎÎÏ. ÎÏÏÎÎÎÏÎÎ ÎÎÎ ÏÎ ÎÏÏÎÎÎ ÏÏÎÏ Î ÎÏÎÏÎÎÎÎ ÎÎÎÏÎÎÏÎÏÎÏÎ "
 "ÎÎÎÏÎÏÎÎ ÏÎÎ ÎÎÎÏÎÎ ÏÎÏ ÎÎÎÏÎÎÏÎÏÎÎÏ ÏÎ ÎÎÏÏÎ PNG."
 
-#: C/integration-guide.xml:996(literal)
-msgid "%s"
-msgstr "%s"
-
-#: C/integration-guide.xml:1000(literal)
-msgid "128"
-msgstr "128"
+#: C/index.docbook:996(row/entry)
+msgid "<literal>%s</literal>"
+msgstr "<literal>%s</literal>"
 
-#: C/integration-guide.xml:997(entry)
+#: C/index.docbook:997(row/entry)
 msgid ""
 "Size of the thumbnail as a single integer. For example, if this gets "
-"substituted with <placeholder-1/>, it means that your thumbnailer should "
-"output an image no bigger than 128Ã128 pixels."
+"substituted with <literal>128</literal>, it means that your thumbnailer "
+"should output an image no bigger than 128Ã128 pixels."
 msgstr ""
 "ÎÎÎÎÎÎÏ ÏÎÏ ÎÎÎÏÎÎÏÎÏÎÎÏ, ÎÎ ÏÎ ÎÎÏÏÎ ÎÎÏÏ ÎÏÎÎ ÎÎÎÏÎÎÎÏ. ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ, ÎÎ "
-"ÏÏÎÏÎÎÎÏÎÎÎÎÎÎ ÏÎ <placeholder-1/>, Î ÎÏÎÏÎÎÎÎ ÎÎÎÏÎÎÏÎÏÎÏÎ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÎ "
-"ÎÎÎ ÎÎÎÏÎÎ ÏÎÏ ÎÎÎ ÎÎ ÏÏÎÏÎÎÎÎÎÎ ÏÎ 128Ã128 ÎÎÎÎÎÎÏÏÎÎÏÎÎÎ."
+"ÏÏÎÏÎÎÎÏÎÎÎÎÎÎ ÏÎ <literal>128</literal>, Î ÎÏÎÏÎÎÎÎ ÎÎÎÏÎÎÏÎÏÎÏÎ ÎÎ "
+"ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ ÎÎÎÏÎÎ ÏÎÏ ÎÎÎ ÎÎ ÏÏÎÏÎÎÎÎÎÎ ÏÎ 128Ã128 ÎÎÎÎÎÎÏÏÎÎÏÎÎÎ."
 
-#: C/integration-guide.xml:1009(para)
+#: C/index.docbook:1009(section/para)
 msgid ""
 "Either of <literal>%i</literal> and <literal>%u</literal> must appear in "
 "your command, and <literal>%o</literal> is also mandatory. The <literal>%s</"
@@ -1454,11 +1452,11 @@ msgstr ""
 "literal>. ÎÎ <literal>%s</literal> ÎÎÎÎÎ ÏÏÎÎÎÏÎÏÎÎÏ, ÎÎÎÎ ÏÏÎÎÏÏÎÏÎÎ ÎÎ ÏÎ "
 "ÏÏÎÏÎÎÎÏÎ."
 
-#: C/integration-guide.xml:1018(title)
+#: C/index.docbook:1018(section/title)
 msgid "Additional information"
 msgstr "ÎÏÏÏÎÎÏÎÏ ÏÎÎÏÎÏÎÏÎÎÏ"
 
-#: C/integration-guide.xml:1020(para)
+#: C/index.docbook:1020(section/para)
 msgid ""
 "As an additional configuration parameter, you can turn on the boolean key "
 "<literal>/desktop/gnome/thumbnailers/disable_all</literal> to disable the "
@@ -1468,11 +1466,11 @@ msgstr ""
 "ÎÎÎÎÎÎ <literal>/desktop/gnome/thumbnailers/disable_all</literal> ÎÎÎ ÎÎ "
 "ÎÏÎÎÎÏÎÎÏÎÎÎÏÎÏÎ ÏÎÎÏÏÏ ÏÎ ÎÎÎÎÎÏÏÎÎÎ ÎÎÎÏÎÎÏÎÏÎÏÎ."
 
-#: C/integration-guide.xml:1036(title)
+#: C/index.docbook:1036(appendix/title)
 msgid "Integration Checklist"
 msgstr "ÎÎÏÏÎ ÎÎÎÎÎÏÎÎÏÎÏ ÎÎÏÏÎÎÏÏÏÎÏ"
 
-#: C/integration-guide.xml:1038(para)
+#: C/index.docbook:1038(appendix/para)
 msgid ""
 "This appendix provides a checklist of the various tasks presented through "
 "this guide. You can use the checklist to ensure that your software is "
@@ -1484,11 +1482,11 @@ msgstr ""
 "ÎÎÎÏÏÎÎÎÏÎÏÎ ÏÏÎ ÏÎ ÎÎÎÎÏÎÎÎÏ ÏÎÏ ÎÎÏÏÎÎÏÏÎÎÏÎÎ ÏÏÎ GNOME ÏÏ ÏÏÎÏ ÏÎ ÎÎÏÎÎÎ "
 "ÏÏÎÎÏÎÎÎ ÏÎÏ, Î ÎÎÎ ÎÎ ÏÏÎÎÎÎÏÎÏÎ ÏÎÏ ÎÎÎÎÎÎÏÎÎÎÏ ÏÎÏ ÎÏÎÎÏÎÎÏ ÎÎÏÏÎÎÏÏÏÎÏ."
 
-#: C/integration-guide.xml:1048(para)
+#: C/index.docbook:1048(listitem/para)
 msgid "Does your application appear in the menus of the GNOME Panel?"
 msgstr "Î ÎÏÎÏÎÎÎÎ ÏÎÏ ÎÎÏÎÎÎÎÎÏÎÎ ÏÏÎ ÎÎÎÎÏ ÏÏÎ ÏÎÎÎÎÏÎ ÎÏÎÏÎÎÎÏÎ ÏÎÏ GNOME;"
 
-#: C/integration-guide.xml:1053(para)
+#: C/index.docbook:1053(listitem/para)
 msgid ""
 "Does your application have an icon for the panel menus or the desktop? If "
 "so, does it have multiple pre-rendered sizes and a scalable <acronym>SVG</"
@@ -1498,7 +1496,7 @@ msgstr ""
 "ÎÏÎÏÎÎÎÎÎ ÎÏÎÎÏÎÎÏ; ÎÎ ÎÎÎ, ÎÎÎÎÎÏÎÎ ÎÎÎÎÎÎÎÎÎ ÏÎ ÏÎÎÎÎÏÎÎ ÏÏÎÎÎÎÎÏÎÏÎÎÎÎ "
 "ÎÎÎÎÎÎ, ÎÎÎÏÏ ÎÎÎ ÏÎ ÎÎÎÎÎÎÏÏÎÎÎ ÎÎÏÏÎ <acronym>SVG</acronym>;"
 
-#: C/integration-guide.xml:1060(para)
+#: C/index.docbook:1060(listitem/para)
 msgid ""
 "If your application can load or save files, does it register the MIME types "
 "that it can handle?"
@@ -1506,11 +1504,11 @@ msgstr ""
 "ÎÎ Î ÎÏÎÏÎÎÎÎ ÏÎÏ ÎÏÎÏÎÎ ÎÎ ÏÎÏÏÏÎÎÎ ÎÎÎ ÎÎ ÎÏÎÎÎÎÎÏÎÎ ÎÏÏÎÎÎ, ÎÎÏÎÏÏÏÎÎ "
 "ÏÎÏÏ ÏÏÏÎÏÏ MIME ÏÎÏ ÎÏÎÏÎÎ ÎÎ ÏÎÎÏÎÏÏÎÎ;"
 
-#: C/integration-guide.xml:1066(para)
+#: C/index.docbook:1066(listitem/para)
 msgid "Does your application provide MIME icons for the file manager?"
 msgstr "Î ÎÏÎÏÎÎÎÎ ÏÎÏ ÏÎÏÎÏÎÎ ÎÎÎÎÎÎÎÎÎ MIME ÎÎÎ ÏÎ ÎÎÎÏÎÎÏÎÏÏÎ ÎÏÏÎÎÏÎ;"
 
-#: C/integration-guide.xml:1072(para)
+#: C/index.docbook:1072(listitem/para)
 msgid ""
 "Does your application support startup notification, so that GNOME can "
 "display feedback to the user while your application is being launched?"
@@ -1518,7 +1516,7 @@ msgstr ""
 "Î ÎÏÎÏÎÎÎÎ ÏÎÏ ÏÏÎÏÏÎÏÎÎÎÎ ÎÎÎÎÏÎÎÎÏÎÎÏ ÎÎÎÎÎÎÏÎÏ, ÎÏÏÎ ÏÏÏÎ ÎÎ ÎÏÎÏÏÎÏÎÎ "
 "ÏÏÎ GNOME ÎÎ ÎÎÏÎÎÎÎÎÎ ÏÏÎ ÏÏÎÏÏÎ ÏÎÎÏÎÏÎÏÎÎÏ ÎÎÏÎ ÏÎÎ ÎÎÎÎÎÎÏÎ ÏÎÏ;"
 
-#: C/integration-guide.xml:1079(para)
+#: C/index.docbook:1079(listitem/para)
 msgid ""
 "If your application creates \"printable\" documents, does it install a "
 "thumbnailer for use by the file manager?"
@@ -1526,11 +1524,11 @@ msgstr ""
 "ÎÎ Î ÎÏÎÏÎÎÎÎ ÏÎÏ ÎÎÎÎÎÏÏÎÎÎ \"ÎÎÏÏÏÏÏÎÎÎ\" ÎÎÎÏÎÏÎ, ÎÎÎÎÎÎÏÏÎ ÏÏÏÎÏÎÎÎÎ  "
 "ÎÎÎÏÎÎÏÎÏÎÏÎ ÎÎÎ ÏÏÎÏÎ ÎÏÏ ÏÎ ÎÎÎÏÎÎÏÎÏÏÎ ÎÏÏÎÎÏÎ;"
 
-#: C/integration-guide.xml:1088(title)
+#: C/index.docbook:1088(appendix/title)
 msgid "Acknowledgments"
 msgstr "ÎÏÏÎÏÎÏÏÎÎÏ"
 
-#: C/integration-guide.xml:1090(para)
+#: C/index.docbook:1090(appendix/para)
 msgid ""
 "Many thanks to Jakub Steiner for providing a beautiful CSS stylesheet for "
 "the HTML version of this guide!"
@@ -1538,15 +1536,119 @@ msgstr ""
 "ÎÎÏÎÎÏ ÎÏÏÎÏÎÏÏÎÎÏ ÏÏÎÎ Jakub Steiner ÎÎÎ ÏÎ ÏÏÎÏÎÏÎ ÏÏÎÎÎ ÏÏÏÎ CSS ÏÎÏ "
 "ÎÎÎÎÏÎÏ HTML ÎÏÏÎÏ ÏÎÏ ÎÎÎÎÎÏ!"
 
-#. Put one translator per line, in the form of NAME <EMAIL>, YEAR1, YEAR2
-#: C/integration-guide.xml:0(None)
-msgid "translator-credits"
-msgstr ""
-"ÎÎÎÎÎÎÎÎ ÎÎÏÎÏÏÎÏÏÎÎÎ ÎÎÎÎÎ Gnome\n"
-"ÎÎÏÎÎÏ ÎÎÎÏÎÎÎÏ <m zindilis dmajor org>\n"
-"ÎÎÎÎÎ ÎÎÏÎÏÎÎÎÎÏ <epetoumenou gmail com>\n"
-"\n"
-"ÎÎÎ ÏÎÏÎÏÏÏÏÎÏÎ ÎÎÎÏÎ http://www.gnome.gr/";
+#~ msgid "Rosanna"
+#~ msgstr "Rosanna"
+
+#~ msgid "Yuen"
+#~ msgstr "Yuen"
+
+#~ msgid "zana gnome org"
+#~ msgstr "zana gnome org"
+
+#~ msgid "Federico"
+#~ msgstr "Federico"
+
+#~ msgid "Mena-Quintero"
+#~ msgstr "Mena-Quintero"
+
+#~ msgid "federico gnu org"
+#~ msgstr "federico gnu org"
+
+#~ msgid "Mike"
+#~ msgstr "Mike"
+
+#~ msgid "Hearn"
+#~ msgstr "Hearn"
+
+#~ msgid "mike navi cx"
+#~ msgstr "mike navi cx"
+
+#~ msgid "2005, 2006"
+#~ msgstr "2005, 2006"
+
+#~ msgid "0.6"
+#~ msgstr "0.6"
+
+#~ msgid "2006/September/19"
+#~ msgstr "19 ÎÎÏÏÎÎÎÏÎÎÏ 2006"
+
+#~ msgid "0.5"
+#~ msgstr "0.5"
+
+#~ msgid "2006/September/18"
+#~ msgstr "18 ÎÎÏÏÎÎÎÏÎÎÏ 2006"
+
+#~ msgid "0.0"
+#~ msgstr "0.0"
+
+#~ msgid "June 2005"
+#~ msgstr "ÎÎÏÎÎÎÏ 2005"
+
+#~ msgid "Link"
+#~ msgstr "Link"
+
+#~ msgid "Directory"
+#~ msgstr "Directory"
+
+#~ msgid "Encoding=UTF-8"
+#~ msgstr "Encoding=UTF-8"
+
+#~ msgid "Terminal=false"
+#~ msgstr "Terminal=false"
+
+#~ msgid "%f"
+#~ msgstr "%f"
+
+#~ msgid "%F"
+#~ msgstr "%F"
+
+#~ msgid "%u"
+#~ msgstr "%u"
+
+#~ msgid "%U"
+#~ msgstr "%U"
+
+#~ msgid "%d"
+#~ msgstr "%d"
+
+#~ msgid "%D"
+#~ msgstr "%D"
+
+#~ msgid "%n"
+#~ msgstr "%n"
+
+#~ msgid "%N"
+#~ msgstr "%N"
+
+#~ msgid "%k"
+#~ msgstr "%k"
+
+#~ msgid "%v"
+#~ msgstr "%v"
+
+#~ msgid "example"
+#~ msgstr "ÏÎÏÎÎÎÎÎÎÎ"
+
+#~ msgid "search-string"
+#~ msgstr "ÎÎÏÎÏÎÎÎÎÏÎÎÏ-ÎÎÎÎÎÏÎÏÎÏ"
+
+#~ msgid "newextension"
+#~ msgstr "ÎÎÎÎÏÎÎÏÎÏÎ"
+
+#~ msgid "application x-foo"
+#~ msgstr "application x-foo"
+
+#~ msgid "%i"
+#~ msgstr "%i"
+
+#~ msgid "%o"
+#~ msgstr "%o"
+
+#~ msgid "%s"
+#~ msgstr "%s"
+
+#~ msgid "128"
+#~ msgstr "128"
 
 #~ msgid "put the application in the <guimenu>Main Menu</guimenu>."
 #~ msgstr "ÏÎÏÎÎÎÏÎÏÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ ÏÏÎ <guimenu>ÎÏÏÎÎ ÎÎÎÎÏ</guimenu>."
diff --git a/optimization-guide/el/el.po b/optimization-guide/el/el.po
index 592822b..6b5ed91 100644
--- a/optimization-guide/el/el.po
+++ b/optimization-guide/el/el.po
@@ -6,8 +6,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: gnome-devel-docs master\n"
-"POT-Creation-Date: 2012-07-27 09:48+0000\n"
-"PO-Revision-Date: 2012-07-29 15:40+0200\n"
+"POT-Creation-Date: 2012-10-31 14:58+0000\n"
+"PO-Revision-Date: 2012-10-31 17:11+0200\n"
 "Last-Translator: Tom Tryfonidis <tomtryf gmail com>\n"
 "Language-Team: Greek <team gnome gr>\n"
 "Language: el\n"
@@ -17,463 +17,229 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 "X-Generator: Lokalize 1.0\n"
 
-#: C/optimization-intro.xml:3(title)
-msgid "The Quick Guide to Optimizing GNOME Programs"
-msgstr "ÎÎÎÏ ÎÏÎÎÎÏÎÏ ÎÎÎÎÏÏ ÎÎÎ ÏÎ ÎÎÎÏÎÏÏÎÏÎÎÎÏÎ ÏÏÎ ÏÏÎÎÏÎÎÎÎÏÏÎ ÏÎÏ GNOME"
-
-#: C/optimization-intro.xml:5(para)
-msgid ""
-"This is a brief introduction to optimization, both the hows and the whys. "
-"Details of individual tools and techniques are left for later articles, but "
-"a collection of hints and tricks is provided."
-msgstr ""
-"ÎÏÏÎ ÎÎÎÎÎ ÎÎÎ ÏÏÎÏÎÎÎ ÎÎÏÎÎÏÎÎ ÏÏÎ ÎÎÎÏÎÏÏÎÏÎÎÎÏÎ, ÏÏÏÎ ÏÏÎ ÏÏÏ ÏÏÎ ÎÎÎ ÏÏÎ "
-"ÎÎÎÏÎ. ÎÎ ÎÎÏÏÎÎÎÏÎÎÎÏ ÎÎÎ ÎÎÏÏÏÎÏÏÎ ÎÏÎÎÎÎÎÎ ÏÎÏÎÎÎÎÎÎÏÎÎ ÎÎÎ ÎÎÎÎÎÎÏÎÎÎ "
-"ÎÏÎÏÎ, ÎÎÎÎ ÏÎÏÎÏÎÏÎÎ ÎÎÎ ÏÏÎÎÎÎÎ ÎÏÏ ÏÏÎÎÎÎÎÎÎÏ ÎÎÎ ÎÏÎÏÎ."
-
-#: C/optimization-intro.xml:10(title)
-msgid "What are we Optimizing?"
-msgstr "ÎÎ ÎÎ ÎÎÎÏÎÏÏÎÏÎÎÎÏÎÏÎÎ;"
-
-#: C/optimization-intro.xml:11(para)
-msgid ""
-"When we optimize for GNOME the first thing to remember is this: we are not "
-"trying to make the program better, we are trying to make the person using "
-"the computer happier."
-msgstr ""
-"ÎÏÎÎ ÎÎÎÏÎÏÏÎÏÎÎÎÏÎÎ ÎÎÎ ÏÎ GNOME, ÏÎ ÏÏÏÏÎ ÏÏÎÎÎÎ ÏÎÏ ÎÏÎÏÎÎÏÏÎ ÎÎÎÎÎ ÏÏÎ "
-"ÎÎÎ ÏÏÎÏÏÎÎÎÏÎÎ ÎÎ ÎÎÎÎÏÎÎ ÎÎÎ ÏÏÏÎÏÎÎÎÎ ÎÎÎÏÏÎÏÎ, ÏÏÎÏÏÎÎÎÏÎÎ ÎÎ ÎÎÎÎÏÎÎ ÏÎ "
-"ÏÏÎÏÏÎ ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÎ ÏÎÎ ÏÏÎÎÎÎÎÏÏÎ ÏÎÎ ÎÏÏÎÏÎÏÏÎÎÎÎÎ."
-
-#: C/optimization-intro.xml:14(para)
-msgid ""
-"Better programs make people happier, but there are some improvements that "
-"will make them a lot happier than others: Responsiveness, start-up time, "
-"easy to access commands and not having the computer go into swap the moment "
-"more than two programs are open."
-msgstr ""
-"ÎÎÎÏÏÎÏÎ ÏÏÎÎÏÎÎÎÎÏÎ ÏÎÎÎÎÎÎÎ ÏÎÎ ÎÏÏÎÏÎÏÏÎÎÎÎÎÎ ÏÏÎÏÏÎÏ, ÎÎÎÎ ÏÏÎÏÏÎÏÎ "
-"ÎÎÏÎÎÎÏ ÎÎÎÏÎÏÏÎÎÏ ÏÎÏ ÎÎ ÏÎÏÏ ÎÎÎÎÏÎ ÏÎÎ ÎÏÏÎÏÎÏÏÎÎÎÎÎÏÏ ÎÏÏ ÎÎÎÎÏ: Î "
-"ÏÏÎÏÏÎÎÎ ÏÎÏ ÎÎÏÎÏÏÎÏÎÏÎÏ, Î ÏÏÏÎÎÏ ÎÎÎÎÎÎÏÎÏ, Î ÎÏÎÎÎÎÎ ÏÏÎÎ ÏÏÏÏÎÎÏÎ ÏÏÎ "
-"ÎÎÏÎÎÏÎ ÎÎÎ ÏÎ ÎÎ ÎÎÎ ÎÎÎÎÏÎÎ ÏÎÎÏ ÎÏÎÏÏ Î ÏÏÎÎÎÎÎÏÏÎÏ ÏÏÎÎ ÏÏÎÏÏÎÏÎ ÎÎÎÎÎÏÎ "
-"ÏÎÏÎÏÏÏÏÎÏÎ ÎÏÏ ÎÏÎ ÏÏÎÎÏÎÎÎÎÏÎ."
-
-#: C/optimization-intro.xml:17(para)
-msgid ""
-"Traditional optimization tackles concepts like CPU use, code size, the "
-"number of mouse clicks and the memory use of the program. This second list "
-"has been chosen to correlate with the first list, however there is an "
-"important difference: The person using GNOME doesn't care about the second "
-"list, but they care a lot about the first list. When optimizing GNOME "
-"programs we will reduce CPU use, memory use and all those things, but these "
-"are the means to the end, not the final goal. We are optimizing for people."
-msgstr ""
-"Î ÏÎÏÎÎÎÏÎÎÎÎ ÎÎÎÏÎÏÏÎÏÎÎÎÏÎ ÎÏÏÎÎÎÎÏÎÎ ÎÎ ÎÎÎÎÎÎÏ ÏÏÏÏ Î ÏÏÎÏÎ ÏÎÏ "
-"ÎÏÎÎÎÏÎÎÏÏÎ, ÏÎ ÎÎÎÎÎÎÏ ÏÎÏ ÎÏÎÎÎÎ, Î ÎÏÎÎÎÏÏ ÏÏÎ ÎÎÎÎ ÏÎÏ ÏÎÎÏÎÎÎÎÏ ÎÎÎ Î "
-"ÏÏÎÏÎ ÏÎÏ ÎÎÎÎÎÏ ÎÏÏ ÏÎ ÏÏÏÎÏÎÎÎÎ. ÎÏÏÎ Î ÎÎÏÏÎÏÎ ÎÎÏÏÎ ÎÏÎÎ ÎÏÎÎÎÎÎÎ ÎÎÎ ÎÎ "
-"ÏÏÏÏÎÏÎÎÎÏÎÎ ÎÎ ÏÎÎ ÏÏÏÏÎ, ÏÏÏÏÏÎ ÏÏÎÏÏÎÎ ÎÎÎ ÏÎÎÎÎÏÎÎÎ ÎÎÎÏÎÏÎ: ÎÏÏÏÏ ÏÎÏ "
-"ÏÏÎÏÎÎÎÏÎÎÎÎ ÏÎ GNOME ÎÎ ÎÎÎÎÎÎÏÎÎ ÎÎÎ ÏÎ ÎÎÏÏÎÏÎ ÎÎÏÏÎ, ÎÎÎÎÎÎÏÎÎ ÏÎÏÏ ÏÎÎÏ "
-"ÎÎÎ ÏÎÎ ÏÏÏÏÎ. ÎÏÎÎ ÎÎÎÏÎÏÏÎÏÎÎÎÏÎÎ ÏÏÎÎÏÎÎÎÎÏÎ ÏÎÏ GNOME ÎÎÎÏÎÎÏÎÎ ÏÎ ÏÏÎÏÎ "
-"ÏÎÏ ÎÏÎÎÎÏÎÎÏÏÎ, ÏÎÏ ÎÎÎÎÎÏ ÎÎÎ ÎÎÎÏÎ, ÎÎÎÎ ÏÎÎ ÎÏÏÎ ÎÎÎÎÎ ÎÎÏÎ ÎÎÎ ÎÎ "
-"ÏÏÎÏÏÏÎÏÎÏÎÎ, ÏÏÎ ÎÎÎ ÏÎÎ ÏÎÎÎÎÏ ÎÎÏ ÏÎÎÏÏ. ÎÎÎÎÏ ÎÎÎÏÎÏÏÎÏÎÎÎÏÎÎ ÎÎÎ ÏÎÏÏ "
-"ÎÎÎÏÏÏÎÏÏ."
-
-#: C/optimization-intro.xml:23(title)
-msgid "Doing the Optimization"
-msgstr "ÎÏÎÏÎÏÎÎÎÏÎÏ ÏÎ ÎÎÎÏÎÏÏÎÏÎÎÎÏÎ"
-
-#: C/optimization-intro.xml:24(para)
-msgid ""
-"The previous section omitted one important qualifier: To optimize something "
-"it has to be measurable. You can't measure happiness. However, you can "
-"measure start-up time so you can tell if you have improved it. Happiness "
-"will then, hopefully, follow."
-msgstr ""
-"Î ÏÏÎÎÎÎÏÎÎÎÎ ÎÎÏÏÎÏÎ ÏÎÏÎÎÎÎÏÎ ÎÎÎ ÏÎÎÎÎÏÎÎÏ ÏÎÏÎÎÎÎÏÎ: ÎÎÎ ÎÎ "
-"ÎÎÎÏÎÏÏÎÏÎÎÎÎÎÎ ÎÎÏÎ ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎ ÎÎÏÏÎÏÎÎÎ. ÎÎ ÎÏÎÏÎÎÏÎ ÎÎ "
-"ÎÎÎÏÎÏÏÎÏÎÎÎÏÎÏÎ ÏÎÎ ÎÏÏÎÏÎÏÏÎÏÎ. ÎÏÏÏÏÎ, ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÏÏÎÏÎ ÏÎ ÏÏÏÎÎ "
-"ÎÎÎÎÎÎÏÎÏ ÏÏÏÎ ÎÎ ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÏÎ ÎÎ ÏÎÎ ÎÏÎÏÎ ÎÎÎÏÎÏÏÎÎ. ÎÏÎÎÏÎÏÏÎÏÎÎ ÏÏÎ "
-"Î ÎÏÏÏÏÎÎ ÎÎ ÎÏÎÎÎÎÎ."
-
-#: C/optimization-intro.xml:27(para)
-msgid ""
-"Optimization is the process of measurement, refinement and re-measurement. "
-"So the first thing you must do is find a way to measure what you are "
-"optimizing. Ideally this measurement is a single number, for example: the "
-"time taken to perform a task. This is your benchmark, it is the only way to "
-"tell if you are winning or losing. There is a big difference between a "
-"program that <emphasis>should</emphasis> be fast and a program that "
-"<emphasis>is</emphasis> fast."
-msgstr ""
-"Î ÎÎÎÏÎÏÏÎÏÎÎÎÏÎ ÎÎÎÎÎ ÎÎÎ ÎÎÎÎÎÎÎÏÎÎ ÎÎÏÏÎÏÎÏ, ÎÎÎÏÎÏÏÎÏ ÎÎÎ ÎÎÏÏÎÏÎÏ ÎÎÎÎ. "
-"ÎÏÏÏÎ ÏÎ ÏÏÏÏÎ ÏÏÎÎÎÎ ÏÎÏ ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÏÎ ÎÎÎÎÎ ÎÎ ÎÏÎÎÏÎ ÎÎÎÎ ÏÏÏÏÎ ÎÎÎ ÎÎ "
-"ÎÎÏÏÎÏÎÏÎ ÎÏÏÏ ÏÎÏ ÎÎÎÏÎÏÏÎÏÎÎÎÎÏÎ. ÎÏÎÎ ÎÎÎÏÏÎÏÎ ÏÎÏÎÏÏÏÏÎ, ÎÏÏÎ Î ÎÎÏÏÎÏÎ "
-"ÎÎ ÎÎÎÎÎ ÎÎÎÏ ÎÎÎÎÎÎÎÏÏ ÎÏÎÎÎÏÏ, ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ Î ÏÏÏÎÎÏ ÏÎÏ ÏÏÎÎÎÎÎÏÎÎ ÎÎÎ "
-"ÎÎ ÎÎÎÎÎÎÏÏÎÎÎ ÎÎÎ ÎÏÎÎÏÎÎ. ÎÏÏÎ Î ÎÎÎÎÎ Î ÎÎÎÎÎÎ ÎÎÏÏÎÏÎÏ ÏÎÏ, ÎÎÎ ÎÎÎÎÎ Î "
-"ÎÎÎÎÎÎÎÏÏ ÏÏÏÏÎÏ ÎÎÎ ÎÎ ÎÎÎÏÎ ÎÎ ÎÎÏÎÎÎÎÏÎ Î ÎÎ ÏÎÎÎÏÎ. ÎÏÎÏÏÎÎ ÏÎÏÎÏÏÎÎ "
-"ÎÎÎÏÎÏÎ ÎÎÎÎÎÏÎ ÏÎ ÎÎÎ ÏÏÏÎÏÎÎÎÎ ÏÎÏ <emphasis>ÎÎ ÎÏÏÎÏÎ</emphasis> ÎÎ ÎÎÎÎÎ "
-"ÎÏÎÎÎÏÎ ÎÎÎ ÏÎ ÎÎÎ ÏÎÏ <emphasis>ÎÎÎÎÎ</emphasis> ÎÏÎÎÎÏÎ."
-
-#: C/optimization-intro.xml:30(para)
-msgid ""
-"Once you have a basic benchmark you need to find out why your code is not "
-"doing as well as it should. It is tempting to do this by inspection: just "
-"looking at the code and trying to spot something that looks like it needs "
-"improvement. You will invariably be wrong. Using a profiler to get a "
-"detailed break-down of what your program really does is the only way to be "
-"sure."
-msgstr ""
-"ÎÏÎÎ ÎÎ ÎÏÎÏÎ ÎÎÎ ÎÎÏÎÎÎ ÎÎÎÎÎÎ ÎÎÏÏÎÏÎÏ ÎÎ ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎÎÏÏÎÏÎ ÎÎÎÏÎ Î "
-"ÎÏÎÎÎÎÏ ÏÎÏ ÎÎÎ ÏÎÎÎ ÏÏÏÎ ÎÎÎÎ ÏÏÎ ÎÎ ÎÏÏÎÏÎ. ÎÎÎÎÎ ÎÎÎÎÎÏÏÎÎÏ ÎÎ ÏÎ ÎÎÎÎÏÎ "
-"ÎÏÏÏ ÏÎÏÎÏÎÏÏÎÏÎÏ: ÎÎ ÎÎÎÏÎÏÎ ÏÎÎ ÎÏÎÎÎÎ ÏÎÏÎÎÎÏÎÏ ÎÎÎ ÎÎÏÎ ÏÎÏ ÎÎÎÎÎÎÎ ÎÎ "
-"ÎÎÎÎÎ ÎÎÎÏÎÏÏÎ. ÎÏÏÎÏ ÎÎÏÎÎÎÎÎÎ, ÎÎ ÎÎÎÎÏÎ ÎÎÎÎÏ. Î ÏÏÎÏÎ ÎÎÏÏ ÎÎÎÎÎÏÎÎÎÏ "
-"ÏÏÎÎÏÎÎÎÎÏÎÏ profiler ÏÎ ÎÏÎÎÎ ÎÎÎÎÎ ÎÎÎ ÎÎÏÏÎÎÎÏÎ ÎÎÎÏÎÎÎÎ ÏÎÏ ÏÎ ÎÎÎÎÎ "
-"ÏÏÎÎÎÎÏÎÎÏ ÏÎ ÏÏÏÎÏÎÎÎÎ ÏÎÏ ÎÎÎÎÎ Î ÎÏÎÎÏ ÏÏÏÏÎÏ ÎÎÎ ÎÎ ÎÎÏÏÎ ÎÎÎÎÎÎÎ."
-
-#: C/optimization-intro.xml:33(para)
-msgid ""
-"Usually the problem is isolated to small sections of code. Pick the worst "
-"place and concentrate on that first. Once that is done, rerun the profiler "
-"and repeat. As you proceed the gains made at each step will get less and "
-"less, at some point you will have to decide that the results are good "
-"enough. If your efforts are only extracting 10% improvements then you are "
-"well past the point where you should have stopped."
-msgstr ""
-"ÎÏÎÎÎÏÏ ÏÎ ÏÏÏÎÎÎÎÎ ÎÎÏÎÏÎÎÎÏÎÎ ÏÎ ÎÎÎÏÎ ÏÎÎÎÎÏÎ ÏÎÏ ÎÏÎÎÎÎ. ÎÎÎÎÎÎÏÎ ÏÎ "
-"ÏÎÎÏÏÏÎÏÎ ÎÏÏ ÎÏÏÎ ÎÎÎ ÏÏÎÎÎÎÏÏÏÎÎÎÏÎ ÏÏÏÏÎ Ï' ÎÏÏÏ. ÎÏÎÎ ÎÎ ÎÏÎÏÎ ÏÎÎÎÎÏÏÎÎ "
-"Î' ÎÏÏÏ, ÏÏÎÎÏÎ ÎÎÎÎ ÏÎ profiler ÎÎÎ ÎÏÎÎÎÎÎÎÎÏÎ ÏÎ ÎÎÎÎÎÎÎÏÎÎ. ÎÎÎÏÏ ÎÎ "
-"ÏÏÎÏÏÏÎÏÎ, ÏÎ ÎÎÏÎÎÏ ÎÏÏ ÎÎÎÎ ÎÎÎÎ ÎÎ ÎÎÎÏÎÎÏÎÎ, ÎÎÎ ÏÎ ÎÎÏÎÎÎ ÏÎÎÎÎÎ ÎÎ "
-"ÏÏÎÏÎÎ ÎÎ ÎÏÎÏÎÏÎÏÎÏÎ ÎÎ ÏÎ ÎÏÎÏÎÎÎÏÎÎÏÎ ÎÎÎÎÎ ÎÏÎÎÏÎ ÎÎÎÎ. ÎÎ Î ÏÏÎÏÏÎÎÎÎÎÏ "
-"ÏÎÏ ÎÏÎÏÎ ÏÏ ÎÏÎÏÎÎÎÏÎÎ ÏÎ ÎÎÎÏÎÏÏÎ ÎÏÎÎ ÎÎÏÎ 10-% ÎÎÎÎ ÏÎÏÎ, ÏÏÏÎ ÎÏÎÏÎ "
-"ÏÎÏÎÏÎÎ ÏÎ ÏÎÎÎÎÎ ÏÏÎÏ ÎÏÎÏÎÎÏÎ ÏÎÎ ÎÎ ÏÏÎÎÎÏÎÏÎÏÎ."
-
-#: C/optimization-intro.xml:36(para)
-msgid ""
-"Don't forget the big picture. For example, rather than just trying to speed "
-"up a piece of code, ask yourself if it needs to be run at all. Could it be "
-"combined with another piece of code? Can the results of previous "
-"calculations be saved and reused? It won't even need to be optimized if it "
-"is in a place where the user is never going to notice it. Worse still, the "
-"code may already be optimized and is doing the heavy calculations now to "
-"avoid doing them later. Code does not run in isolation and neither does the "
-"optimization process."
+#. Put one translator per line, in the form NAME <EMAIL>, YEAR1, YEAR2
+msgctxt "_"
+msgid "translator-credits"
 msgstr ""
-"ÎÎ ÏÏÎÎÎÎÏÏÏÎÎÎÏÎ ÏÏÎ ÎÎÎÏÏÎ ÎÎÎ ÏÎÏÎÏÎ ÏÎ ÎÎÏÎÏ. ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ, ÎÎÏÎ ÎÎ "
-"ÏÏÎÏÏÎÎÎÎÏÎ ÎÎ ÎÏÎÏÎÏÏÎÎÏÎ ÎÎÎ ÎÎÎÎÎÏÎ ÎÏÎÎÎÎ, ÏÎÎÏÏÎÎÏÎ ÎÎ ÏÏÎÎÎÎÎÏÎÎ ÎÎÎ "
-"ÎÎ ÏÏÎÏÎÎ. ÎÎÏÏÏ ÎÏÎÏÎÎ ÎÎ ÏÏÎÎÏÎÏÏÎÎ ÎÎ ÎÎÏÎÎÎ ÎÎÎÎ ÎÎÎÎÎÏÎ; ÎÎÏÏÏ ÎÏÎÏÎÏÎ "
-"ÏÎ ÎÏÎÏÎÎÎÏÎÎÏÎ ÏÎÏ ÏÏÎÎÎÎÏÎÎÎÎÏ ÎÎÎÏÎÏÏÎÎÎÏ ÏÎÏ ÎÎ ÎÏÎÎÎÎÎÏÏÎÏÎ ÎÎÎ ÎÎ "
-"ÏÏÎÏÎÎÎÏÎÎÎÎÎÏÎ ÎÎÎÎ; ÎÎ ÎÎ ÏÏÎÎÎÏÏÎÎ ÎÎÎ ÎÎ ÎÎÎÏÎÏÏÎÏÎÎÎÎÎÎ ÎÎ ÎÏÎÏÎÎÏÎÎ ÏÎ "
-"ÎÎÎ ÎÎÏÎÏ ÏÏÎÏ Î ÏÏÎÏÏÎÏ ÎÎ ÎÎ ÏÎ ÏÏÎÏÎÎÎÎ ÏÎÏÎ. ÎÎÏÎÎ ÏÎÎÏÏÏÎÏÎ, Î ÎÏÎÎÎÎÏ "
-"ÎÏÎÏÎÎ ÎÎ ÎÎÎÎÎ ÎÎÎ ÎÎÎÏÎÏÏÎÏÎÎÎÎÎÎÎÏ ÎÎÎ ÎÎ ÎÎÎÎÎ ÏÏÏÎ ÏÎÏÏ ÎÎÏÎÎÏÏ ÏÎÏ "
-"ÏÏÎÎÎÎÎÏÎÎÏÏ ÎÎÎ ÎÎ ÎÎÎ ÏÎÏÏ ÏÏÎÎÎÏÏÎÎ ÎÏÎÏÏÎÏÎ. ÎÏÏÎ Î ÎÏÎÎÎÎÏ ÏÏÎÏÎÎ "
-"ÎÏÎÎÎÎÏÎÎÎÎÏ, ÎÏÏÎ Î ÎÎÎÏÎÏÏÎÏÎÎÎÏÎ. "
+"ÎÎÎÎÎÎÎÎ ÎÎÏÎÏÏÎÏÏÎÎÎ ÎÎÎÎÎ GNOME\n"
+" ÎÎÎÎÎÎÏ ÎÎÏÏÎÎÏÎÏÎÏ <giannis1_86 hotmail com>\n"
+" ÎÎÎÎÏ ÎÎÎÎÏÎÎÎÎÏ <simos gnome org>\n"
+" ÎÏÎÏÏÎÎÏÎÎÎÏ ÎÎÏÏÎÏÎÏÎÏ <kouratoras gmail com>\n"
+" ÎÏÏÎÏÎÎ ÎÎÎÎÏÏÎ <sotitz gmail com>\n"
+" ÎÎÎÎÎ ÎÎÏÎÏÎÎÎÎÏ <epetoumenou gmail com>\n"
+" ÎÎÏÏÎÎÏÎÏ ÎÎÏÎÎÏ-ÎÎÏÏÎÏ <p tournaris gmail com>\n"
+"\n"
+"ÎÎÎ ÏÎÏÎÏÏÏÏÎÏÎ ÎÎÎÏÎ http://www.gnome.gr/";
 
-#: C/optimization-intro.xml:41(title)
-msgid "Hints"
-msgstr "ÎÏÎÎÎÎÎÎÎÏ"
+#: C/index.docbook:5(book/title)
+msgid "Optimizing GNOME Software"
+msgstr "ÎÎÎÏÎÏÏÎÏÎÎÎÏÎ  ÎÎÎÎÏÎÎÎÎÏ ÏÎÏ GNOME"
 
-#: C/optimization-intro.xml:43(title)
-msgid "The Fundamentals"
-msgstr "ÎÎ ÎÎÏÎÎÎ"
+#: C/index.docbook:8(publisher/publishername)
+#: C/index.docbook:56(revdescription/para)
+msgid "GNOME Documentation Project"
+msgstr "ÎÏÏÎÏÎÎÎÎ ÏÎÎÎÎÏÎÏÏÎÏ ÏÎÏ GNOME"
 
-#: C/optimization-intro.xml:45(para)
-msgid ""
-"Re-run your benchmark after every change you make to the code and keep a log "
-"of everything you change and how it affects the benchmark. This lets you "
-"undo mistakes and also helps you not to repeat mistakes."
-msgstr ""
-"ÎÏÎÎÏÎ ÎÎÎÎ ÏÎÏ ÎÎÎÎÎÎÏÏÎÎÎÏ ÏÎÏ ÎÎÏÏÎÏÎÎÏ ÎÎÏÎ ÎÏÏ ÎÎÎÎ ÎÎÎÎÎÎ ÏÎÏ ÎÎÎÎÏÎ "
-"ÏÏÎÎ ÎÏÎÎÎÎ ÎÎÎ ÎÏÎÏÎÏÏÎ ÎÎÎ ÎÎÏÎÎÏÎÏÎ ÏÎÏÎ ÏÏÎ ÎÎÎÎÎÏÎ ÏÎÏ ÎÎÎÎÏÎ ÎÎÎ ÏÏÏ "
-"ÎÏÏÎÏ ÎÏÎÏÎÎÎÎÏÎ ÏÎÏ ÎÎÏÏÎÏÎÎÏ. ÎÏÏÏ ÏÎÏ ÎÎÎÎÎ ÎÎ ÎÎÎÎÏÎÎÏÎ ÎÎÏÎÎÎ ÎÎÎÎ, "
-"ÏÏÏÏ ÎÏÎÏÎÏ ÎÎÎ ÎÎ ÎÎÎ ÏÎ ÎÏÎÎÎÎÎÎÎÎÎÎÏÎ."
+#: C/index.docbook:10(bookinfo/copyright)
+msgid "<year>2004-2005</year> <holder>Callum McKenzie</holder>"
+msgstr "<year>2004-2005</year> <holder>Callum McKenzie</holder>"
 
-#: C/optimization-intro.xml:50(para)
-msgid ""
-"Make sure your code is correct and bug-free before optimizing it. Check that "
-"it remains correct and bug-free after optimization."
-msgstr ""
-"ÎÎÎÎÎÏÎÎÎÏÎ ÏÏÎ Î ÎÏÎÎÎÎÏ ÏÎÏ ÎÎÎÎÎ ÏÏÏÏÏÏ ÎÎÎ ÏÏÏÎÏ ÏÏÎÎÎÎÏÎ ÏÏÎÏÎÏ ÏÎÎ "
-"ÎÎÎÏÎÏÏÎÏÎÎÎÏÎÏÎ. ÎÎÎÎÎÏÎ ÏÏÎ ÎÎÎÎÎ ÏÏÏÏÏÏ ÎÎÎ ÏÏÏÎÏ ÏÏÎÎÎÎÏÎ ÎÎÎ ÎÎÏÎ ÏÎ "
-"ÎÎÎÏÎÏÏÎÏÎÎÎÏÎ."
+#: C/index.docbook:14(bookinfo/copyright)
+msgid "<year>2004-2005</year> <holder>Robert Love</holder>"
+msgstr "<year>2004-2005</year> <holder>Robert Love</holder>"
 
-#: C/optimization-intro.xml:55(para)
-msgid "Optimize at the high level before optimizing the details."
-msgstr "ÎÎÎÏÎÏÏÎÏÎÎÎÏÏÎ ÏÎ ÏÎÎÏ ÎÏÎÏÎÎÎ ÏÏÎÎ ÏÏÎÏÏÏÎÏÎÏÎ ÏÏÎÏ ÎÎÏÏÎÎÎÏÎÎÎÏ."
+#: C/index.docbook:19(bookinfo/author)
+msgid "<firstname>Callum</firstname> <surname>McKenzie</surname>"
+msgstr "<firstname>Callum</firstname> <surname>McKenzie</surname>"
 
-#: C/optimization-intro.xml:60(para)
-msgid ""
-"Use the right algorithm. The classic text-book example is using quick-sort "
-"instead of bubble-sort. There are many others, some save memory, some save "
-"CPU. Also, see what shortcuts you can make: you can do quicker than quick-"
-"sort if you are prepared to make some compromises."
-msgstr ""
-"ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ ÏÎ ÏÏÏÏÏ ÎÎÎÏÏÎÎÎÎ. ÎÎ ÎÎÎÏÎÎÏ ÏÎÏÎÎÎÎÎÎÎ ÎÎÎÎÎ ÎÎ "
-"ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÏÎ quick-sort ÎÎÏÎ ÏÎ bubble-sort. ÎÏÎÏÏÎÏÎ ÏÎÎÎÎ ÎÎÏÎÎ, "
-"ÎÎÏÎÎÎ ÎÎÎÎÎÎÎÎÎÎÏÎ ÎÎÎÎÎ, ÎÎÏÎÎÎ ÎÎÎÎÎÎÎÎÎÎÏÎ ÎÏÎÎÎÏÎÎÏÏÎ. ÎÏÎÏÎÏ, ÎÎÎÏÎ ÏÎ "
-"ÏÏÎÏÏÎÎÎ ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÎÎÏÎÎÏÎÏÎ: ÎÏÎÏÎÎÏÎ ÎÎ ÏÎÎÎÎÎÎÎÏÎÏÎ ÎÎÎ ÎÏÎÎÎÏÏÏÎÏÎ "
-"ÎÏÏ ÏÎ quick-sort ÎÎ ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÎÏÎ ÎÎÏÎÎÎÏÏ ÏÏÎÎÎÎÎÏÎÎÏÏ."
+#: C/index.docbook:23(bookinfo/author)
+msgid "<firstname>Robert</firstname> <surname>Love</surname>"
+msgstr "<firstname>Robert</firstname> <surname>Love</surname>"
 
-#: C/optimization-intro.xml:65(para)
+#: C/index.docbook:29(legalnotice/para)
 msgid ""
-"Optimization is a trade-off. Caching results speeds up calculations, but "
-"increases memory use. Saving data to disk saves memory, but costs time when "
-"it is loaded back from disk."
+"Permission is granted to copy, distribute and/or modify this document under "
+"the terms of the <citetitle>GNU Free Documentation License</citetitle>, "
+"Version 1.1 or any later version published by the Free Software Foundation "
+"with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. "
+"You may obtain a copy of the <citetitle>GNU Free Documentation License</"
+"citetitle> from the Free Software Foundation by visiting <ulink type=\"http"
+"\" url=\"http://www.fsf.org\";>their Web site</ulink> or by writing to: Free "
+"Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA "
+"02111-1307, USA."
 msgstr ""
-"Î ÎÎÎÏÎÏÏÎÏÎÎÎÏÎ ÎÎÎÎÎ ÎÎÎ ÎÎÎÎ ÎÏÎÏÏÎÏÎÎÏ. Î ÏÏÎÏÏÏÎÎÎ ÎÏÎÎÎÎÎÏÏÎ "
-"ÎÏÎÏÎÎÎÏÎÎÏÏÎ ÎÏÎÏÎÏÏÎÎÎ ÏÎÏÏ ÏÏÎÎÎÎÎÏÎÎÏÏ, ÎÎÎÎ ÎÎÏÏÎÎÎÎ ÏÎ ÎÎÎÎÎ. Î "
-"ÎÏÎÎÎÎÎÏÏÎ ÎÎÎÎÎÎÎÏÎ ÏÏÎ ÎÎÏÎÎ ÎÎÎÎÎÎÎÎÎÎÎ ÏÎ ÎÎÎÎÎ, ÎÎÎÎ ÎÎÏÏÎÎÎÎ ÏÎ ÏÏÏÎÎ "
-"ÏÏÎÎ ÎÎ ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎÏÎÏÎ ÏÎÏ ÏÎÎÏÎÏÎÏÎÎÏ ÎÏÏ ÏÎ ÎÎÏÎÎ."
+"ÎÎÏÎÎÎÎÏÎÎ Î ÎÎÎÎÏ ÏÏÎÎ ÎÎÏÎÎÏÎÏÎ, ÎÎÎÎÎÎÎ Î/ÎÎÎ ÏÏÎÏÎÏÎÎÎÏÎ ÏÎÏ ÏÎÏÏÎÏÎÏ "
+"ÎÎÎÏÎÏÎÏ ÏÏÏ ÏÎÏÏ ÏÏÎÏÏ ÏÎÏ <citetitle>GNU Free Documentation License</"
+"citetitle>, ÎÎÎÎÏÎ 1.1 Î ÎÏÎÎÎÎÎÏÎÏÎ ÏÎÎ ÏÏÏÏÏÎÏÎ ÎÎÎÎÏÎ ÏÎÏ ÎÎÎÎÏÎÎÏÎÏÎÎ "
+"ÎÏÏ ÏÎ Free Software Foundation ÏÏÏÎÏ ÎÎÎÏÎÎÎÎÏÎ ÏÎÎÎÎÏÎ, ÏÏÏÎÏ ÎÎÎÎÎÎÎ "
+"ÎÎÏÏÏÎÎÎÏ, ÎÎÎ ÎÎÏÏÏ ÎÎÎÎÎÎÎ ÎÏÎÏÎÏÏÏÎÎÎÏ. ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÎÏÎ ÎÎÎ ÎÎÏÎÎÏÎÏÎ "
+"ÏÎÏ <citetitle>GNU Free Documentation License</citetitle> ÎÏÏ ÏÎ Free "
+"Software Foundation ÎÎ ÎÎÎ ÎÏÎÏÎÎÏÎ ÏÏÎ <ulink type=\"http\" url=\"http://";
+"www.fsf.org\">ÎÎÎÏÏÎÎÏ ÏÎÏÏ ÏÏÏÎ</ulink> Î ÎÎ ÎÏÎÎÎÎ ÏÏÎ: Free Software "
+"Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA."
 
-#: C/optimization-intro.xml:70(para)
+#: C/index.docbook:41(legalnotice/para)
 msgid ""
-"Make sure you choose a wide variety of inputs to optimize against. If you "
-"don't it is easy to end up with a piece of code carefully optimized for one "
-"file and no others."
+"Many of the names used by companies to distinguish their products and "
+"services are claimed as trademarks. Where those names appear in any GNOME "
+"documentation, and those trademarks are made aware to the members of the "
+"GNOME Documentation Project, the names have been printed in caps or initial "
+"caps."
 msgstr ""
-"ÎÎÎÎÎÏÎÎÎÏÎ ÏÏÎ ÏÏÎÏÎÎÎÏÎÎÎÎÏÎ ÎÎÎ ÏÎÎÏÎÎ ÏÎÎÎÎÎÎÎ ÎÏÏ ÎÎÏÏÎÎÏÏ ÎÎÎ ÏÎÏ "
-"ÎÏÎÎÎÏ ÎÎ ÎÎÎÏÎÏÏÎÏÎÎÎÏÎÏÎ. ÎÎ ÎÎÎ ÏÎ ÎÎÎÎÏÎ ÎÏÏÏ, ÎÏÎÎÎÎ ÎÎ ÎÎÏÎÎÎÎÎÏÎ ÏÎ "
-"ÎÎÎ ÎÎÎÎÎÏÎ ÎÏÎÎÎÎ ÏÏÎÏÎÎÏÎÎÎ ÎÎÎÏÎÏÏÎÏÎÎÎÎÎÎÎ ÎÎÎ ÏÏÎÎÎÎÏÎÎÎÎÎ ÎÎÎÏÎÏÏÎÎÎ "
-"ÎÎÎÎ ÏÏÎ ÎÎÎ ÎÎÎÎÏ."
+"ÎÎÎÎÎ ÎÏÏ ÏÎ ÎÎÏÎÎÏÎ ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÏÏ ÏÎÏ ÎÏÎÏÎÎÏÎÏÎÎÏ ÎÎÎ ÎÎ "
+"ÎÎÎÏÎÏÎÏÎÎÎÏÎÏÎ ÏÎ ÏÏÎÏÏÎÏÎ ÏÎÏÏ ÎÎÎ ÏÎÏ ÏÏÎÏÎÏÎÎÏ ÏÎÏÏ  ÎÎÏÎÎÎÎÎÎÏÎÎ ÏÏ "
+"ÎÎÏÎÏÎÎÎ ÏÎÎÎÏÎ. ÎÏÎÏ ÎÏÏÎ ÏÎ ÎÎÏÎÎÏÎ ÎÎÏÎÎÎÎÎÎÏÎÎ ÏÎ ÎÏÎÎÎÎÎÏÎÏÎ ÏÎÎÎÎÏÎÏÏÎ "
+"ÏÎÏ GNOME, ÎÎÎ ÎÏÏÎ ÏÎ ÎÎÏÎÏÎÎÎ ÏÎÎÎÏÎ ÎÎÎÎÎÏÎÎ ÎÎÏÏÏÎ ÏÏÎ ÎÎÎÎ ÏÎÏ ÎÏÎÎÏ "
+"ÏÎÎÎÎÏÎÏÏÎÏ ÏÎÏ GNOME,  ÏÎ ÎÎÏÎÎÏÎ ÎÎ ÏÏÏÏÎÎÎÏÎÎ ÎÎ ÎÎÏÎÎÎÎÎ ÎÏÎÎÎÎÏÎ Î "
+"ÎÏÎÎÎÎÏÎ ÏÎÏÎÏÎ."
 
-#: C/optimization-intro.xml:75(para)
-msgid ""
-"Avoid expensive operations: Multiple small disk reads. Using up lots of "
-"memory so disk swapping becomes necessary. Avoid anything that writes or "
-"reads from the hard disk unnecessarily. The network is slow too. Also avoid "
-"graphics operations that need a response from the X server."
-msgstr ""
-"ÎÏÎÏÏÎÎÏÎ ÏÎÏ ÏÏÎÏÎÎÎÏ ÎÎÎÏÎÏÏÎÎÎÏ: ÎÎÎÎÎÏÎÎÏ ÎÎÎÏÎÏ ÎÎÎÎÎÏÏÎÎÏ ÎÏÏ ÏÎ "
-"ÎÎÏÎÎ, ÏÏÎÏÎ ÏÎÏÎ ÏÎÎÎÎÏ ÎÎÎÎÎÏ ÏÏÏÎ ÎÎ ÏÏÎÎÎÎÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ "
-"ÏÏÎÏÏÏÎÎÎ ÎÎÎÎÎ ÏÏÎ ÎÎÏÎÎ, ÎÎÎÎÎÎ ÎÏÎÎÎÏÎÏÎ ÎÏÎÏÎÎ Î ÎÎÎÎÎÎÎÎ ÎÏÏ ÏÎ ÎÎÏÎÎ "
-"ÎÎ ÎÎÎ ÎÎÎÎÎ ÎÎÏÎÎÏÏ ÎÏÎÏÎÎÏÎÏÎ. ÎÎ ÎÎÎÏÏÎ ÎÏÎÏÎÏ ÎÎÎÎÎ ÎÏÎÏ. ÎÏÎÏÏÎÎÏÎ "
-"ÎÏÎÏÎÏ ÎÎÎÏÎÏÏÎÎÎÏ ÎÏÎÏÎÎÏÎ ÎÎ ÎÏÎÎÎÏ ÏÏÎÎÎÎÎÎÏÎÎ ÎÏÎÎÏÎÏÎ ÎÏÏ ÏÎÎ "
-"ÎÎÏÏÎÏÎÏÎÏÎ X."
+#: C/index.docbook:55(revdescription/para)
+msgid "William Johnston"
+msgstr "William Johnston"
 
-#: C/optimization-intro.xml:81(title)
-msgid "Traps for the Unwary"
-msgstr "ÎÎÎÎÎÎÏ ÎÎÎ ÏÎÏÏ ÎÎÏÏÎÏÎÎÏÏÎÏÏ"
+#: C/index.docbook:57(revdescription/para)
+msgid "Intial conversion to docbook format."
+msgstr "ÎÎÏÎÏÏÎÏÎ ÎÏÏ Intial ÏÏÎÎ ÎÎÏÏÎ docbook."
 
-#: C/optimization-intro.xml:83(para)
+#: C/index.docbook:51(revhistory/revision)
 msgid ""
-"Beware of side effects. There can often be strange interactions between "
-"different sections of code, a speed-up in one part can slow another part "
-"down."
+"<revnumber>0.1</revnumber> <date>November 2007</date> <_:revdescription-1/>"
 msgstr ""
-"ÎÏÎÏÎÏÎÏÎ ÏÎÏ ÏÎÏÎÎÎÏÎÎÎÎÏ. ÎÏÏÎÎ ÎÏÎÏÎÎ ÎÎ ÏÏÎÏÏÎÏÎ ÏÎÏÎÎÏÎÎÏ "
-"ÎÎÎÎÎÎÏÎÎÏÎÏÎÎÏ ÎÎÏÎÎÏ ÎÎÎÏÎÏÎÏÎÎÏÎ ÎÎÎÎÎÏÎÏÎ ÎÏÎÎÎÎ, ÎÎÎ Î ÎÏÎÏÎÏÏÎÏÎ ÎÎÏÏ "
-"ÎÎÎÎÎÏÎÎÏ ÎÏÎÏÎÎ ÎÎ ÎÏÎÎÏÎÎÏÎÎÎ ÎÎÎ ÎÎÎÎ."
+"<revnumber>0.1</revnumber> <date>ÎÎÎÎÎÏÎÎÏ 2007</date> <_:revdescription-1/>"
 
-#: C/optimization-intro.xml:88(para)
+#: C/index.docbook:63(abstract/para)
 msgid ""
-"When timing code, even on a quiet system, events outside the program add "
-"noise to the timing results. Average over multiple runs. If the code is very "
-"short, timer resolution is also a problem. In this case measure the time the "
-"computer takes to run the code 100 or 1000 times. If the times you are "
-"recording are longer than a few seconds, you should be OK."
+"Software can be optimized in many ways: for speed, program size, or memory "
+"use. This section contains guides and tutorials for optimizing your software."
 msgstr ""
-"ÎÏÎÎ ÏÏÎÎÎÎÎÏÏÎÏÎ ÏÎÎ ÎÏÎÎÎÎ, ÎÎÏÎÎ ÎÎÎ ÏÎ ÎÎÎ ÂÎÏÏÏÎÂ ÏÏÏÏÎÎÎ, ÎÎÎÎÎÏÏÎ "
-"ÎÎÏÏÏ ÎÏÏ ÏÎ ÏÏÏÎÏÎÎÎÎ ÏÏÎÏÎÎÏÎÏÎ ÂÎÏÏÏÎÎÂ ÏÏÎ ÎÏÎÏÎÎÎÏÎÎÏÎ ÏÏÎ ÎÎÏÏÎÏÎÏÎ. "
-"ÎÏÎÎÏÎ ÏÎÎÎÎÏ ÏÎÏÎÏ ÏÎ ÏÏÏÎÏÎÎÎÎ ÎÎÎ ÏÎÏÏÎ ÏÎ ÎÎÏÎ ÏÏÎ. ÎÎ Î ÎÏÎÎÎÎÏ ÎÎÎÎÎ "
-"ÏÎÎÏ ÏÏÎÏÎÎÎÏ, Î ÎÎÎÎÏÏÎ ÏÎÏ ÏÏÎÎÎÎÎÏÏÎÏ ÎÎÎÎÎ ÎÏÎÏÎÏ ÏÏÎÎÎÎÎÎÏÎÎÎ. ÎÎ "
-"ÏÎÏÎÎÎ ÏÎÏÎÏÏÏÏÎ, ÏÏÎÎÎÎÎÏÏÎÏÏÎ ÏÎÎ ÎÎÏÎÎÎÏÎ ÏÎÏ ÎÏÎÎÎÎ ÎÎÎ 100 Î 1000 "
-"ÏÎÏÎÏ. ÎÎ ÎÎ ÏÎÏÎÏ ÏÎÏ ÏÏÎÎÎÎÎÏÏÎÏÎ ÎÎÎÏÎÎÏÎ ÏÎÏÎÏÏÏÏÎÏÎ ÎÏÏ ÎÎÏÎÎÎ "
-"ÎÎÏÏÎÏÏÎÎÏÏÎ, ÏÏÏÎ ÎÎ ÏÏÎÏÎÎ ÎÎ ÎÎÏÏÎ ÎÎÏÎÎÎÎ."
+"ÎÎ ÎÎÎÎÏÎÎÎÏ ÎÏÎÏÎÎ ÎÎ ÎÎÎÏÎÏÏÎÏÎÎÎÎÎÎ ÎÏÏ ÏÎÎÎÎÏ ÎÏÏÏÎÎÏ: ÎÎÎ ÏÎÎ ÏÎÏÏÏÎÏÎ, "
+"ÏÎ ÎÎÎÎÎÎÏ ÏÎÏ ÏÏÎÎÏÎÎÎÎÏÎÏ,  Î ÏÎ ÏÏÎÏÎ ÎÎÎÎÎÏ. ÎÏÏÏ ÏÎ ÏÎÎÎÎ ÏÎÏÎÎÏÎÎ "
+"ÎÎÎÎÎÏÏ ÎÎÎ ÏÎÎÎÎÎÏÎÎ ÎÎÎ ÏÎ ÎÎÎÏÎÏÏÎÏÎÎÎÏÎ ÏÎÏ ÎÎÎÎÏÎÎÎÎÏ ÏÎÏ."
 
-#: C/optimization-intro.xml:93(para)
-msgid ""
-"It is very easy to be misled by the profiler. There are stories of people "
-"optimizing the operating system idle-loop because that is where it spent all "
-"its time! Don't optimize code that does nothing the user cares about."
-msgstr ""
-"ÎÎÎÎÎ ÏÎÏÎ ÏÎÎÏ ÎÏÎÎÎÎ ÎÎ ÏÎÏ ÏÎÏÎÏÎÎÎÎÏÎÎ Î profiler. ÎÏÎÏÏÎÏÎ ÏÎÏÎÏÏÏÏÎÎÏ "
-"ÎÎÎÏÏÏÏÎ ÏÎÏ ÎÎÎÏÎÏÏÎÏÎÎÎÏÏÎÎ ÏÎÎ ÎÏÏÏÎ ÏÎÏÏÎÏ ÏÎÏ ÎÎÎÏÎÏÏÎÎÎÎÏ ÏÏÏÏÎÎÎÏÎÏ "
-"ÎÏÎÎÎÎ ÎÎÎÎ ÏÎÏÏ ÎÎÎÎÏÎÎ Î profiler ÏÏÎ ÏÎ ÏÏÏÏÎÎÎ ÏÏÎÏÎÎÎÏÏÎ ÏÎÎ "
-"ÏÎÏÎÏÏÏÏÎÏÎ ÏÏÏÎÎ ÏÎÏ! ÎÎ ÎÎÎÏÎÏÏÎÏÎÎÎÎÏÎ ÎÏÎÎÎÎ ÏÎÏ ÎÎÎ ÎÎÎÎÎ ÏÎÏÎÏÎ "
-"ÏÏÎÏÎÎÎ ÎÎÎ ÏÎ ÏÏÎÏÏÎ."
+#: C/optimization-harmful.xml:3(chapter/title)
+msgid "Disk Seeks Considered Harmful"
+msgstr "ÎÎ ÎÎÎÎÎÏÎÏÎÎÏ ÎÎÏÎÎÏ ÎÎÏÏÎÏÎÏÎÎ ÎÏÎÎÎÎÎÎÏ"
 
-#: C/optimization-intro.xml:98(para)
+#: C/optimization-harmful.xml:5(chapter/para)
 msgid ""
-"Remember the resources on the X server. Your program's memory usage doesn't "
-"include the pixmaps that are stored in the X server's process, but they are "
-"still using up memory. Use xrestop to see what resources your program is "
-"using."
+"Disk seeks are one of the most expensive operations you can possibly "
+"perform. You might not know this from looking at how many of them we "
+"perform, but trust me, they are. Consequently, please refrain from the "
+"following suboptimal behavior:"
 msgstr ""
-"ÎÎ ÎÏÎÎÏÏÎ ÏÎÏÏ ÏÏÏÎÏÏ ÏÎÏ ÎÎÏÏÎÏÎÏÎÏÎ X. Î ÏÏÎÏÎ ÎÎÎÎÎÏ ÏÎÏ ÏÏÎÎÏÎÎÎÎÏÏÏ "
-"ÏÎÏ ÎÎÎ ÏÎÏÎÎÎÎÎÎÎÎÎ ÏÎ pixmap ÏÎÏ ÎÏÎÎÎÎÎÏÎÎÏÎÎ ÏÏÎÏ ÎÎÎÏÎÎÏÎÎÏ ÏÎÏ "
-"ÎÎÏÏÎÏÎÏÎÏÎ X, ÎÎÎÎ ÎÎÎ ÏÎÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎ ÎÎÎÎÎ. ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ ÏÎ xrestop "
-"ÎÎÎ ÎÎ ÎÎÎÏÎ ÏÎÎÎÎ ÏÏÏÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÏÏ ÏÎ ÏÏÏÎÏÎÎÎÎ ÏÎÏ."
-
-#: C/optimization-intro.xml:104(title)
-msgid "Low Level Hints"
-msgstr "ÎÏÎÎÎÎÎÎÎÏ ÏÎÎÎÎÎÏ ÎÏÎÏÎÎÎÏ"
+"ÎÎ ÎÎÎÎÎÏÎÏÎÎÏ ÏÎÏ ÎÎÏÎÎÏ ÎÎÎÎÎ ÎÏÏ ÏÎÏ ÏÎÎÎ ÎÎÏÎÎÎÏÎÏ ÎÎÎÎÎÎÎÏÎÎÏ ÏÎÏ "
+"ÎÏÎÏÎÎÏÎ ÎÎÎÎÏÎÎÎÎÏÏ ÎÎ ÎÎÏÎÎÎÏÎÏÎ. ÎÏÎÏÎÎ ÎÎ ÎÎÎ ÏÎ ÎÎÏÎÎÎÎÎÏÎ ÎÏÏÏ ÎÏÎÎ "
+"ÎÎÎÏÎÎÎÎÏÎÏ ÏÏÏÎÏ ÎÏÏ ÎÏÏÎÏ ÎÎÏÎÎÎÎÏÎ, ÎÎÎÎ ÏÎÏÏÎÏÏÎ ÎÎÏ, ÎÎÎÎÎ ÏÎÎÎÎÏ. "
+"ÎÏÎÎÏÏÏ, ÏÎÏÎÎÎÎÏ ÎÎ ÎÏÎÏÎÏÎÎÏÎÎ ÏÎÎ ÎÎÏÎÎÏÎÎ ÎÎ-ÎÎÎÏÎÏÏÎ ÏÏÎÏÎÏÎÏÎÏÎ:"
 
-#: C/optimization-intro.xml:106(para)
-msgid ""
-"When optimizing memory use, be wary of the difference between peak usage and "
-"average memory usage. Some memory is almost always allocated, this is "
-"usually bad. Some is only briefly allocated, this may be quite acceptable. "
-"Tools like massif use the concept of space-time, the product of memory used "
-"and the duration it was allocated for, instead."
-msgstr ""
-"ÎÏÎÎ ÎÎÎÏÎÏÏÎÏÎÎÎÎÏÎ ÏÎ ÏÏÎÏÎ ÏÎÏ ÎÎÎÎÎÏ, ÏÏÎÏÎÎÏÎ ÏÎ ÎÎÎÏÎÏÎ ÎÎÎÎÎÏÎ ÏÏÎ "
-"ÎÎÎÎÏÏÎ ÏÏÎÏÎ ÎÎÎ ÏÏÎ ÎÎÏÎ ÏÏÎÏÎ. ÎÏÎÎÏÎ ÏÎÎÏÎ ÎÎÏÎÎÎÎÎÏÎÎ ÎÎÏÎÎÎ ÏÎÏÏÏÎÏÎ "
-"ÎÎÎÎÎÏ ÎÎÎ ÏÏÎÏÎ ÎÏÏ ÏÎ ÏÏÏÎÏÎÎÎÎ, ÏÎ ÎÏÎÎÎ ÎÎÎÎÎ ÏÏÎÎÎÏÏ ÎÎÎÏ. ÎÎÏÎÎÎ ÎÎÎÎÎ "
-"ÎÎÎÎÎ ÎÏÎÎ ÎÎÏÎÎÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎÎ, ÎÎÎ ÎÏÏÏ ÎÏÎÏÎÎ ÎÎ ÎÎÎÎÎ ÎÏÎÎÎÎÏÏ. "
-"ÎÏÎÎÎÎÎÎ ÏÏÏÏ ÏÎ massif ÏÏÎÏÎÎÎÏÎÎÎÏÎ ÏÎÎ ÎÎÎÎÎÎ ÏÎÏ ÏÏÏÎÏÏÏÎÎÏ, ÏÎ ÎÎÎÏÎÎÎÎ "
-"ÏÎÏ ÏÎÏÏÏÎÏÎÏ ÏÎÏ ÎÎÎÎÎÏ ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÎÎÎ ÏÎÏ ÎÎÎÏÎÎÎÎÏ ÎÎÏÎ ÏÎÎ "
-"ÎÏÎÎÎ ÎÏÎÎ ÎÎÏÎÎÎÎÎÎÎÎÎ."
+#: C/optimization-harmful.xml:10(listitem/para)
+msgid "Placing lots of small files all over the disk."
+msgstr "ÎÎÏÎÎÎÏÏÎÏÎÏ ÏÎÎÎÎ ÎÎÎÏÎ ÎÏÏÎÎÎ ÏÎÎÏÎÏ ÏÏÎÎ ÎÎÏÎÎ."
 
-#: C/optimization-intro.xml:111(para)
-msgid ""
-"Time simplified bits of code that do only the things you know are essential, "
-"this gives an absolute lower limit on the time your code will take. For "
-"example, when optimizing a loop time the empty loop. If that is still too "
-"long no amount of micro-optimization will help and you will have to change "
-"your design. Make sure the compiler doesn't optimize away your empty loop."
+#: C/optimization-harmful.xml:15(listitem/para)
+msgid "Opening, stating, and reading lots of files all over the disk"
 msgstr ""
-"ÎÎ ÎÏÎÎÏÎÎÎÎÎÎÎ ÎÎÎÎÎÏÎÎ ÎÏÎÎÎÎ ÏÎÏ ÎÎÎÎÏÎ ÎÏÎÎ ÏÏÎÎÎÎÏÎ ÏÎÏ ÎÎÏÎÏÎ ÎÎÎÎÎ "
-"ÎÏÏÎÏÎÎ, ÎÎÎÏÎ ÏÎÏ ÎÎÎÎÏÎ ÏÎ ÎÏÏÎÏÏÎ ÏÎÎÎÎÏÏÎÏÎ ÏÏÎÎ ÎÎÎ ÏÎ ÏÏÏÎÎ ÏÎÏ "
-"ÏÏÎÎÎÎÎÏÎÎ Î ÎÏÎÎÎÎÏ ÏÎÏ. ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ, ÏÏÎÎ ÎÎÎÏÎÏÏÎÏÎÎÎÎÏÎ ÎÎÎ ÎÏÏÏÎ, "
-"ÏÏÎÎÎÎÎÏÏÎÏÏÎ ÏÎÎ ÎÎÏ ÎÎÎÎÎ ÎÎÎÎÎÏ. ÎÎ ÎÏÏÏÏ Î ÏÏÏÎÎÏ ÎÎÎÎÎ ÏÎÎÏ ÎÎÎÎÎÎÏ, "
-"ÏÏÏÎ ÎÎ ÎÎ ÏÎÏ ÎÎÎÎÎÏÎÎ ÎÎÎÏÎÎÏ Î ÎÎÎÏÎÎÎÎÏÎÏÏÎÏÎÎÎÏÎ, ÎÎÎ ÎÎ ÏÏÎÏÎÎ ÎÎ "
-"ÎÎÎÎÎÎÏÎ ÏÎ ÏÏÎÎÎÎÏÎÏ ÏÎÏ. ÎÎÎÎÎÏÎÎÎÏÎ ÏÏÎ Î ÎÎÏÎÎÎÏÏÏÎÏÏÎÏ ÎÎ ÎÎÎÏÎÏÏÎÏÎÎÎÎ "
-"ÏÎÎ ÎÎÎÎÎ ÎÏÏÏÎ."
+"ÎÎÎÎÎÎÎ, ÎÎÎÏÏÎÎÏ, ÎÎÎ ÎÎÎÎÎÏÏÎ ÏÎÎÎÏÎ ÎÎÎÏÏÎ ÎÏÏÎÎÏÎ ÏÎÎÏÎÏ ÏÏÎÎ ÎÎÏÎÎ."
 
-#: C/optimization-intro.xml:116(para)
+#: C/optimization-harmful.xml:20(listitem/para)
 msgid ""
-"Move code out from inside loops. A slightly more complicated piece of code "
-"that is executed once is far quicker than a simple piece of code executed a "
-"thousand times. Avoid calling slow code often."
+"Doing the above on files that are laid out at different times, so as to "
+"ensure that they are fragmented and cause even more seeking."
 msgstr ""
-"ÎÏÎÎÏÎÏÏÎ ÎÏÎÎÎÎ ÎÏÏ ÎÏÏÏÎÏÎÎÎÏÏ ÎÏÏÏÎÏÏ. ÎÎÎ ÎÎÎÎ ÏÎÎ ÏÎÎÏÏÎÎÎÎ ÎÎÎÎÎÏÎ "
-"ÎÏÎÎÎÎ ÏÎÏ ÎÎÏÎÎÎÎÏÎÎ ÎÎÎ ÏÎÏÎ ÎÎÎÎÎ ÏÎÎÏ ÎÏÎÎÎÏÏÏÎÏÎ ÎÏÏ ÎÎÎ ÎÏÎÎÏÏÏÎÏÎ "
-"ÎÎÎÎÎÏÎ ÎÏÎÎÎÎ ÏÎÏ ÎÎÏÎÎÎÎÏÎÎ ÏÎÎÎÎÏ ÏÎÏÎÏ. ÎÏÎÏÏÎÎÏÎ ÎÎ ÎÎÎÎÎÏÎ ÏÏÏÎÎ ÎÏÎÏ "
-"ÎÏÎÎÎÎ."
+"ÎÎÎÎÎÏÎÏ ÏÎ ÎÎÏÏÎÏÏ ÏÎ ÎÏÏÎÎÎ ÏÎÏ ÎÎÎÎÎÏÏÎÎÎÎÎÎÎ ÏÎ ÎÎÎÏÎÏÎÏÎÎÎÏÏ ÏÏÏÎÎÏÏ,  "
+"ÏÏÏÎ ÎÎ ÎÎÎÏÏÎÎÎÏÏÎÎ ÏÏÎ ÎÎÎÎÎ ÏÎÎÎÏÎÏÎÎÎÎ ÎÎÎ ÎÎ ÏÏÎÎÎÎÎÏÎ ÎÎÏÎÎ "
+"ÏÎÏÎÏÏÏÏÎÏÎ ÎÎÎÎÎÏÎÏÎ."
 
-#: C/optimization-intro.xml:121(para)
+#: C/optimization-harmful.xml:25(listitem/para)
 msgid ""
-"Give the compiler as many hints as possible. Use the const keyword. Use "
-"<envar>G_INLINE_FUNC</envar> for short, frequently called, functions. Look "
-"up <envar>G_GNUC_PURE</envar>, <envar>G_LIKELY</envar> and the other glib "
-"miscellaneous macros. Use the macros instead of gcc-specific keywords to "
-"ensure portability."
+"Doing the above on files that are in different directories, so as to ensure "
+"that they are in different cylinder groups and and cause even more seeking."
 msgstr ""
-"ÎÏÏÏÎ ÏÏÎÎ ÎÎÏÎÎÎÏÏÏÎÏÏÎ ÏÏÎÏ ÏÎÏÎÏÏÏÏÎÏÎÏ ÏÏÎÎÎÎÎÎÎÏ ÎÏÎÏÎÎÏÎ. "
-"ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ ÏÎ ÎÎÎÎ ÎÎÎÎÎÎ const. ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ ÏÎ <envar>G_INLINE_FUNC</"
-"envar> ÎÎÎ ÏÏÎÏÎÎÎÏ ÏÏÎÎÏÏÎÏÎÎÏ ÏÎÏ ÎÎÎÎÏÎÏÎÎ ÏÏÏÎÎ. ÎÎÎÏÎ ÎÎÎ ÏÎÏ "
-"ÎÎÎÏÎÎÎÏÎÎÎÏ <envar>G_GNUC_PURE</envar>, <envar>G_LIKELY</envar> ÎÎÎ "
-"ÎÎÎÏÎÏÎÏ ÎÎÎÎÏ ÏÎÏ glib. ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ ÏÎÏ ÎÎÎÏÎÎÎÏÎÎÎÏ ÎÎÏÎ ÎÎÎ ÎÎÎÎÎÏ "
-"ÎÎÎÎÎÎÎ ÏÎÏ ÎÎÎÎÎÎÎÎÏÎÎÎÎÏ ÎÎÎ ÏÎ gcc, ÎÎÎ ÎÎ ÎÎÎÏÏÎÎÎÏÎÏÎ ÏÎ ÏÎÏÎÏÏÏÎÏÎ."
+"ÎÎÎÎÎÏÎÏ ÏÎ ÎÎÏÏÎÏÏ ÏÎ ÎÏÏÎÎÎ ÏÎÏ ÎÎÎÎÎ ÏÎ ÎÎÎÏÎÏÎÏÎÎÎÏÏ ÎÎÏÎÎÏÎÎÏÏ, ÏÏÏÎ ÎÎ "
+"ÎÎÎÏÏÎÎÎÏÏÎÎ ÏÏÎ ÎÏÎÏÎÎÎÏÎÎ ÏÎ ÎÎÎÏÎÏÎÏÎÎÎÏ ÎÎÎÎÎÏ ÎÏÎÎÎÎÏÏÎ ÎÎÎ ÎÏÏÎ ÎÎ "
+"ÏÏÎÎÎÎÎÎ ÎÎÏÎÎ ÏÎÏÎÏÏÏÏÎÏÎ ÎÎÎÎÎÏÎÏÎ."
 
-#: C/optimization-intro.xml:126(para)
-msgid ""
-"Don't use assembly language. It is not portable and, while it may be fast on "
-"one processor, it is not even guaranteed to be fast on every processor that "
-"supports that architecture (e.g. Athlon vs. Pentium 4)."
+#: C/optimization-harmful.xml:30(listitem/para)
+msgid "Repeatedly doing the above when it only needs to be done once."
 msgstr ""
-"ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÏÎ ÏÎ ÎÎÏÏÏÎ assembly. ÎÎÎ ÎÎÎÎÎ ÏÎÏÎÏÎ, ÎÎÎ ÎÎÏ ÎÏÎÏÎÎ ÎÎ "
-"ÎÎÎÎÎ ÎÏÎÎÎÏÎ ÏÎ ÎÎÎÎ ÎÏÎÎÎÏÎÎÏÏÎ, ÎÎÎ ÎÎÎÎÎ ÎÎÎÏÎÎÎÎÎ ÏÏÎ ÎÎ ÎÎÎÎÎ ÎÏÎÎÎÏÎ "
-"ÎÎÎ ÏÎ ÎÏÎÎÎÎÎÏÎÏÎ ÎÎÎÎ ÎÏÎÎÎÏÎÎÏÏÎ ÏÎÏ ÏÎÏÏÏÎÏÎÎÎÎ ÎÎÎÎÎÎ ÏÎÎ ÎÏÏÎÏÎÎÏÎÎÎÎÎ "
-"(Ï.Ï. Athlon vs Pentium 4)."
+"ÎÏÎÎÎÎÎÎÎÎÎÏÎÎÎÎ ÎÎÏÎÎÎÏÎ ÏÏÎ ÎÎÏÏÎÏÏ ÏÏÎÎ ÎÎ ÎÏÏÎÏÎ ÎÎ ÎÎÎÎÎ ÎÎÎ ÎÏÎÎ ÏÎÏÎ."
 
-#: C/optimization-intro.xml:131(para)
-msgid ""
-"Don't rewrite an existing library routine unless you are sure it is "
-"unnecessarily slow. Many CPU-intensive library routines have already been "
-"optimized. Conversely, some library routines are slow, especially ones that "
-"make system calls to the operating system."
+#: C/optimization-harmful.xml:35(chapter/para)
+msgid "Ways in which you can optimize your code to be seek-friendly:"
 msgstr ""
-"ÎÎ ÎÎÎÎÎÏÎÏÎÏÎ ÎÎÎ ÏÏÎÏÏÎÎÎÎÎ ÎÎÎÎÎÎÎÎÎÎ ÎÎÏÏÏ ÎÎÎ ÎÎ ÎÎÏÏÎ ÎÎÎÎÎÎÎ ÏÏÎ "
-"ÎÎÎÎÎ ÎÎÎÎÎÎÎÎÏÎÎÏÎ ÎÏÎÎ. ÎÎÎÎÎÏ ÎÎÎÎÎÎÎÎÎÎÏ ÏÎÏ ÎÎÏÎÏÎÎÎÏÎ ÏÎÎ ÎÏÎÎÎÏÎÎÏÏÎ "
-"ÎÎÎÎÎ ÎÎÎ ÎÎÎÏÎÏÏÎÏÎÎÎÎÎÎÎÏ. ÎÎÏÎÏÏÎÎÏÎ, ÎÎÏÎÎÎÏ ÏÎÏÏÎÎÎÏ ÎÎÎÎÎÎÎÎÎÏÎ ÎÎÎÎÎ "
-"ÎÏÎÎÏ, ÎÎÎÎÎÎ ÎÎÏÎÎÎÏ ÏÎÏ ÎÎÎÎÏÎ ÏÎÎÎÎÏ ÎÎÎÏÎÎÏ ÏÏÏÏÎÎÎÏÎÏ ÏÏÎ ÎÎÎÏÎÏÏÎÎÎÏ "
-"ÏÏÏÏÎÎÎ."
+"ÎÏÏÏÎÎ ÎÎ ÏÎÏÏ ÎÏÎÎÎÏÏ ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÏÎÏÏÎÏÎÎÎÏÎÏÎ ÏÎÎ ÎÏÎÎÎÎ ÏÎÏ ÎÎÎ ÎÎÎÎÎ "
+"ÏÎÎÎÎÏÏ ÎÎ ÏÎÏ ÎÎÎÎÎÏÎÏÎÎÏ:"
 
-#: C/optimization-intro.xml:136(para)
-msgid ""
-"Minimize the number of libraries you link to. The fewer libraries to link "
-"in, the faster the program starts. This is a difficult thing to do with "
-"GNOME."
-msgstr ""
-"ÎÎÎÏÎÏÏÎÏÎÎÎÏÏÎ ÏÎÎ ÎÏÎÎÎÏ ÏÏÎ ÎÎÎÎÎÎÎÎÎÏÎ ÎÎ ÏÎÏ ÎÏÎÎÎÏ ÏÏÎÎÎÎÏÏÎ. ÎÎ ÏÏÎ "
-"ÎÎÎÏÏÎÏÎÏ ÎÎÎÎÎÎÎÎÎÎÏ ÏÏÎÎÎÎÏÎÎ ÎÎÎ ÏÏÏÎÏÎÎÎÎ, ÏÏÏÎ ÎÏÎÎÎÏÏÏÎÏÎ ÎÎÎÎÎÎ. ÎÏÏÏ "
-"ÎÎÎÎÎ ÎÎÏÎ ÎÏÏÎÎÎÎ ÎÎ ÎÎÎÎÎ ÏÏÎ GNOME."
+#: C/optimization-harmful.xml:40(listitem/para)
+msgid "Consolidate data into a single file."
+msgstr "ÎÎÎÎÏÏÏÎ ÏÎ ÎÎÎÎÎÎÎÎ ÏÎ ÎÎÎ ÎÎÎÎÎÎ ÎÏÏÎÎÎ."
 
-#: C/optimization-intro.xml:142(title)
-msgid "High Level Tricks"
-msgstr "ÎÏÎÏÎ ÏÏÎÎÎÏ ÎÏÎÏÎÎÎÏ"
+#: C/optimization-harmful.xml:45(listitem/para)
+msgid "Keep data together in the same directory."
+msgstr "ÎÏÎÏÎÏÏÎ ÏÎ ÎÎÎÎÎÎÎÎ ÎÎÎÎ ÏÏÎÎ ÎÎÎÎ ÎÎÏÎÎÎÎÎ."
 
-#: C/optimization-intro.xml:144(para)
-msgid ""
-"Take advantage of concurrency. This doesn't just mean using multiple "
-"processors, it also means taking advantage of the time the user spends "
-"thinking about what they are going to do next to perform some calculations "
-"in anticipation. Do calculations while waiting for data to be loaded off "
-"disk. Take advantage of multiple resources, use them all at once."
+#: C/optimization-harmful.xml:50(listitem/para)
+msgid "Cache data so as to not need to reread constantly."
 msgstr ""
-"ÎÎÎÎÏÎÎÎÎÏÏÎÎÏÎ ÏÎ ÏÏÎÏÏÎÎÎÏÎÏ. ÎÏÏÏ ÎÎ ÏÎÎÎÎÎÎÎ ÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÏÎ "
-"ÏÎÎÎÎÏÎÎÏÏ ÎÏÎÎÎÏÎÎÏÏÎÏ, ÎÎÎÎ ÎÎÎ ÎÎ ÎÎÎÎÏÎÎÎÎÏÎÏÏÎ ÏÎ ÏÏÏÎÎ ÏÎÏ Î ÏÏÎÏÏÎÏ "
-"ÏÏÎÏÎÎÎ ÎÎ ÏÎÎÏÏÎÏÎÎ ÏÎ ÎÎ ÎÎÎÎÎ ÏÏÎ ÏÏÎÎÏÎÎÎ, ÎÎÎ ÎÎ ÎÎÎÎÏÎ ÎÎÏÎÎÎÏÏ "
-"ÏÏÎÎÎÎÎÏÎÎÏÏ ÏÎÏ ÏÏÎÎÎÎÎÏÏÎ. ÎÎÎÏÎ ÏÏÎÎÎÎÎÏÎÎÏÏ ÎÎÏ ÏÎÏÎÎÎÎÎÏÎ ÎÎÎ "
-"ÏÎÎÏÎÏÎÏÎÎÏ ÎÎ ÏÎÏÏÏÎÎÏÎ ÎÏÏ ÏÎ ÎÎÏÎÎ. ÎÎÎÎÏÎÎÎÎÏÏÎÎÏÎ ÏÎÎÎÎÏÎÎÏÏ ÏÏÏÎÏÏ, "
-"ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎÏÏ ÏÎÏÏÏÏÏÎÎÎ. "
+"ÎÎÏÎÎÎÏÎÏÎ ÏÏÎ ÎÎÎÎÎÎÎÏÎ ÏÏÎÎ ÏÏÎÏÏÏÎÎÎ ÎÎÎÎÎ ÏÏÏÎ ÎÎ ÎÎÎ ÏÏÎÎÎÎÎÏÎÎ ÏÏÎÎÏÏÏ "
+"ÎÎ ÎÎÎÎÎÎÎÎÎÎÎÎÏÎÎ."
 
-#: C/optimization-intro.xml:149(para)
+#: C/optimization-harmful.xml:55(listitem/para)
 msgid ""
-"Cheat. The user only has to think that the computer is fast, it doesn't "
-"matter whether it actually is or not. It is the time between the command and "
-"the answer that is important, it doesn't matter if the response is pre-"
-"calculated, cached, or will in fact be worked out later at a more convenient "
-"time, as long as the user gets what they expect."
+"Share data so as not to have to reread it from disk when each application "
+"loads."
 msgstr ""
-"ÎÎÎÎÎÎÏÏÎ. Î ÏÏÎÏÏÎÏ ÏÏÎÎÎÎÎÏÎÎ ÎÏÎÎ ÎÎ ÎÎÎÎÎÎÎ ÏÏÎ Î ÏÏÎÎÎÎÎÏÏÎÏ ÎÎÎÎÎ "
-"ÎÏÎÎÎÏÎÏ, ÎÏÏÎÏÎ ÎÎ ÏÏÎÎÎÎÏÎÎÎ ÎÎÎÎÎ. ÎÎÎÎÏÎÎ ÎÏÎÎ Î ÏÏÏÎÎÏ ÎÎÏÎÎÏ ÏÎÏ "
-"ÎÎÏÎÎÎÏ ÎÎÎ ÏÎÏ ÎÏÎÎÏÎÏÎÏ, ÎÎÎ ÏÏÎ ÎÎ Î ÎÏÎÎÏÎÏÎ ÏÏÎÎÎÎÎÏÏÎÎÎ ÎÏÏ ÏÏÎÎ, Î "
-"ÎÏÎÎ ÏÏÎÏÏÏÎÎÎ ÎÏÎÎÎÎÎÏÎÎÎÎ, Î ÎÎÏÎÎ ÎÎÎ ÎÎ ÎÎ ÏÏÎÎÎÎÎÏÏÎÎ ÎÏÎÏÏÎÏÎ ÏÎ "
-"ÎÎÏÎÎÎ ÏÎÎ ÎÎÎÎÎÏ ÏÏÏÎÎ, ÏÏÎÎÎÎ Î ÏÏÎÏÏÎÏ ÎÎ ÏÎÏÎÎ ÎÏÏÏ ÏÎÏ ÏÎÏÎÎÎÎÎÎ."
+"ÎÎÎÎÎÎÏÎÏÎÏÏ ÎÎÎÎÎÎÎÏÎ ÏÏÏÎ ÎÎ ÎÎ ÏÏÎÎÎÎÎÏÎÎ ÎÎ ÏÎ ÎÎÎÎÎÎÎÎÎÎÎÎ ÎÏÏ ÏÎ ÎÎÏÎÎ "
+"ÎÎÎÎ ÎÏÎÏÎÎÎÎ ÏÏÎÎ ÏÎÏÏÏÎÎÎ."
 
-#: C/optimization-intro.xml:154(para)
+#: C/optimization-harmful.xml:60(listitem/para)
 msgid ""
-"Do things in the idle loop. It is easier to program than using full multi-"
-"threading but still gets things done out of the users eye. Be careful "
-"though, if you spend too long in the idle loop your program will become "
-"sluggish. So regularly give control back to the main loop."
+"Consider caching all of the data in a single binary file that is properly "
+"aligned and can be mmaped."
 msgstr ""
-"ÎÎÎÏÎ ÏÏÎÎÎÎÏÎ ÏÏÎÎ ÎÎÎÎÎÏÎÏ ÎÏÏÏÎ. ÎÎÎÎÎ ÎÏÎÎÎÏÏÎÏÎ ÏÏÎÎ ÏÏÎÎÏÎÎÎÎÏÎÏÎÏ ÎÏÏ "
-"ÏÎ ÏÏÎÏÎ ÏÎÎÏÎÎÎÎÏÎÎÏÏÎÏÎÏ, ÎÎÎÎ ÎÎÎ ÏÎÎÎ ÎÏÎÏÏÎÏÎÎÎÎ ÎÎ ÎÎÎÎÎ ÏÏÎÎÎÎÏÎ "
-"ÏÏÏÎÏ ÎÎ ÏÎ ÎÎÏÎÎÎÎÎÎÎÎÏÎÎ Î ÏÏÎÏÏÎÏ. ÎÎ ÎÎÏÏÎ ÏÎÏÏ ÏÏÎÏÎÎÏÎÎÎÎ, ÎÎÎÏÎ ÎÎ "
-"ÏÏÎÏÎÎÎÏÎ ÏÎÎÏ ÏÏÏÎÎ ÏÏÎÎ ÎÎÎÎÎÏÎÏ ÎÏÏÏÎ ÏÏÏÎ ÏÎ ÏÏÏÎÏÎÎÎÎ ÏÎÏ ÎÎÎÎÏÎÎ ÎÏÎÏ. "
-"ÎÏÏÏÎ ÎÎ ÎÎÎÎÏÎÎ ÏÎÎÏÎÎÎ ÏÎÎ ÎÎÎÎÏÎ ÏÏÎÎ ÎÏÏÎÎ ÎÏÏÏÎ."
+"ÎÎÎÏÏÎÏÎ ÎÎ ÎÎÏÎÎÏÎÏÎÏÎ ÏÎÎ ÏÎ ÎÎÎÎÎÎÎÎ ÏÏÎÎ ÏÏÎÏÏÏÎÎÎ ÎÎÎÎÎ ÏÎ ÎÎÎ ÎÎÎÎÎÎ "
+"ÎÏÎÎÎÎÏ ÎÏÏÎÎÎ ÏÎÏ ÎÏÎÏÎÏÎÎÎÎÎÎÏÎÎ ÎÎÏÎÎÎÎÎÎ ÎÎÎ ÎÏÎÏÎÎ ÎÎ ÎÎÎÎÎ mmaped."
 
-#: C/optimization-intro.xml:159(para)
+#: C/optimization-harmful.xml:65(chapter/para)
 msgid ""
-"If all else fails, tell the user that the code is going to be slow and put "
-"up a progress bar. They won't be as happy as if you had just presented the "
-"results, but they will at least know the program hasn't crashed and they can "
-"go get a cup of coffee."
+"The trouble with disk seeks are compounded for reads, which is unfortunately "
+"what we are doing. Remember, reads are generally synchronous while writes "
+"are asynchronous. This only compounds the problem, serializing each read, "
+"and contributing to program latency."
 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/optimization-massif.xml:52(None)
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/optimization-massif.xml:52(imagedata)
+msgctxt "_"
 msgid ""
-"@@image: 'figures/massif-before.png'; md5=1a6b2ace548e6789ab8bfacb3727b345"
+"external ref='figures/massif-before.png' "
+"md5='1a6b2ace548e6789ab8bfacb3727b345'"
 msgstr ""
-"@@image: 'figures/massif-before.png'; md5=1a6b2ace548e6789ab8bfacb3727b345"
+"external ref='figures/massif-before.png' "
+"md5='1a6b2ace548e6789ab8bfacb3727b345'"
 
-#. 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/optimization-massif.xml:114(None)
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/optimization-massif.xml:114(imagedata)
+msgctxt "_"
 msgid ""
-"@@image: 'figures/massif-after.png'; md5=36d1b4ad7ab49b28b69ad3eabbaa7069"
+"external ref='figures/massif-after.png' "
+"md5='36d1b4ad7ab49b28b69ad3eabbaa7069'"
 msgstr ""
-"@@image: 'figures/massif-after.png'; md5=36d1b4ad7ab49b28b69ad3eabbaa7069"
+"external ref='figures/massif-after.png' "
+"md5='36d1b4ad7ab49b28b69ad3eabbaa7069'"
 
-#: C/optimization-massif.xml:3(title)
+#: C/optimization-massif.xml:3(chapter/title)
 msgid ""
 "Using <application>Massif</application> for Profiling Memory Use in GNOME "
 "Software"
@@ -481,7 +247,7 @@ msgstr ""
 "ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ ÏÎ <application>Massif</application> ÎÎÎ ÏÎ ÏÏÎÏÎÎ ÏÎÏ ÏÏÎÏÎÏ "
 "ÏÎÏ ÎÎÎÎÎÏ ÏÎ ÎÏÎÏÎÎÎÎÏ ÏÎÏ GNOME"
 
-#: C/optimization-massif.xml:5(para)
+#: C/optimization-massif.xml:5(chapter/para)
 msgid ""
 "This article describes how to use the <application>Massif</application> heap "
 "profiler with GNOME applications. We describe how to invoke, interpret, and "
@@ -494,11 +260,11 @@ msgstr ""
 "ÎÏÎÏÎÎÎÏÎÎÏÏÎ ÏÎÏ <application>Massif</application>. ÎÏ ÏÎÏÎÎÎÎÎÎÎ "
 "ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÏÎ ÏÎÎÏÎÎÎÎ <application>Swell Foop</application>"
 
-#: C/optimization-massif.xml:10(title)
+#: C/optimization-massif.xml:10(sect1/title)
 msgid "Introduction"
 msgstr "ÎÎÏÎÎÏÎÎ"
 
-#: C/optimization-massif.xml:11(para)
+#: C/optimization-massif.xml:11(sect1/para)
 msgid ""
 "<application>Massif</application> is a member of the <ulink type=\"http\" "
 "url=\"http://valgrind.org/\";>valgrind</ulink> suite of memory-profiling "
@@ -513,7 +279,7 @@ msgstr ""
 "ÏÏÎÎÏÎÎÎÎÏÎÏ. ÎÏÎÎÎÎÏÎÎÎÎÎ, ÎÎÏÎÎÏÎÏÎÎ ÏÎ ÏÏÎÏÎ ÏÎÏ ÎÎÎÎÎÏ ÎÏÏ ÏÎ ÎÎÎÎÏÎ "
 "heap ÎÎÎ ÏÎ ÏÏÎÎÎÎ."
 
-#: C/optimization-massif.xml:14(para)
+#: C/optimization-massif.xml:14(sect1/para)
 msgid ""
 "The heap is the region of memory which is allocated with functions like "
 "malloc. It grows on demand and is usually the largest region of memory in a "
@@ -536,7 +302,7 @@ msgstr ""
 "application> ÏÎÏÎÏÎÎ ÎÏÎÏÎÏ ÏÎÎÏÎÏÎÏÎÎÏ ÎÎÎ ÏÎÎ ÏÎÏÏÏÎÏÎ ÏÎÏ ÎÎÎÎÎÏ ÏÎÏ "
 "ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÎÎÎ ÏÎ ÎÎÎÏÎÎÏÎÏÎ ÏÎÏ heap."
 
-#: C/optimization-massif.xml:17(para)
+#: C/optimization-massif.xml:17(sect1/para)
 msgid ""
 "<application>Massif</application> produces two output files: a graphical "
 "overview in a postscript file and a detailed breakdown in a text file."
@@ -545,11 +311,11 @@ msgstr ""
 "ÎÏÎÏÎÏÏÎÏÎ ÏÎ ÎÎÎ ÎÏÏÎÎÎ postscript ÎÎÎ ÎÎÎ ÎÎÏÏÎÎÎÏÎ ÎÎÎÎÏÏÎ ÏÎ ÎÎÎ ÎÏÏÎÎÎ "
 "ÎÎÎÎÎÎÎÏ."
 
-#: C/optimization-massif.xml:22(title)
+#: C/optimization-massif.xml:22(sect1/title)
 msgid "Using <application>Massif</application> with GNOME"
 msgstr "ÎÏÎÏÎ ÏÎÏ <application>Massif</application> ÎÎ ÏÎ GNOME"
 
-#: C/optimization-massif.xml:23(para)
+#: C/optimization-massif.xml:23(sect1/para)
 msgid ""
 "<application>Massif</application> has very few options and for many programs "
 "does not need them. However for GNOME applications, where memory allocation "
@@ -574,7 +340,7 @@ msgstr ""
 "ÎÎÎÏÏÎÏÎ ÎÎ ÎÏÏÎÏÎÎ ÎÎ ÎÎÎÏÏÏÎÏÎ ÏÎÏÎÎÎÏÏÎ ÎÎÎÎÏÏ ÎÎÎ ÎÎ ÏÎ ÎÏÎÎÏÏÎ ÎÏÎÎ "
 "ÏÏÎÎ ÎÎÎÎÏÎÎ ÏÏÎÏÎÎÎÏ ÏÏÎ ÎÏÏÏ ÎÎÎ ÎÎÎÎÎ ÎÎÎÎÎÏÎÎÎÏÎÎÏ."
 
-#: C/optimization-massif.xml:26(para)
+#: C/optimization-massif.xml:26(sect1/para)
 msgid ""
 "It is also useful to tell <application>Massif</application> which functions "
 "allocate memory in glib. It removes an unnecessary layer of function calls "
@@ -591,11 +357,11 @@ msgstr ""
 "ÎÎÎ g_mem_chunk_alloc. ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ ÏÎÎ ÎÏÎÎÎÎÎ --alloc-fn ÎÎÎ ÎÎ "
 "ÎÎÎÎÎÏÏÏÏÎ ÏÎ Masiff ÎÎÎ ÎÏÏÎÏ."
 
-#: C/optimization-massif.xml:29(para)
+#: C/optimization-massif.xml:29(sect1/para)
 msgid "Your command-line should therefore look something like:"
 msgstr "Î ÎÏÎÎÎÎ-ÎÎÏÎÎÏÎ ÏÎÏ ÏÏÎÏÎÎ ÎÏÎÎÎÎÏÏ ÎÎ ÎÎÎÎÎÎÎ ÎÎÏÏÏ ÏÎÎ:"
 
-#: C/optimization-massif.xml:32(programlisting)
+#: C/optimization-massif.xml:32(sect1/programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -608,7 +374,7 @@ msgstr ""
 "         --alloc-fn=g_malloc0 --alloc-fn=g_mem_chunk_alloc swell-foop\n"
 "        "
 
-#: C/optimization-massif.xml:36(para)
+#: C/optimization-massif.xml:36(sect1/para)
 msgid ""
 "<application>Swell Foop</application> is the program we will be using as an "
 "example. Be warned that, since valgrind emulates the CPU, it will run "
@@ -619,11 +385,11 @@ msgstr ""
 "valgrind ÎÎ ÎÎÎÎÎÎÏÎÎÎ ÏÎÎ ÎÎÎ, ÎÎ ÎÎÎÏÎÏÏÎÎÎ <emphasis>ÏÎÎÏ</emphasis> "
 "ÎÏÎÎ. ÎÎ ÏÏÎÎÎÏÏÎÎÏÎ ÎÏÎÏÎÏ ÏÎÎÎÎ ÎÎÎÎÎ."
 
-#: C/optimization-massif.xml:41(title)
+#: C/optimization-massif.xml:41(sect1/title)
 msgid "Interpreting the Results"
 msgstr "ÎÏÎÎÎÎÎÎ ÏÏÎ ÎÏÎÏÎÎÎÏÎÎÏÏÎ"
 
-#: C/optimization-massif.xml:42(para)
+#: C/optimization-massif.xml:42(sect1/para)
 msgid ""
 "The graphical output of <application>Massif</application> is largely self "
 "explanatory. Each band represents the memory allocated by one function over "
@@ -638,7 +404,7 @@ msgstr ""
 "ÏÏÎÎ ÎÎÏÏÏÎ, ÎÎ ÏÏÎÏÎÎ ÎÎ ÏÏÎÎÎÏÎÎÏÎÎÎÏÎ ÏÎ ÎÎÏÎÏÏÎÎÏÎ ÎÏÏÎÎÎ ÎÎÎÎÎÎÎÏ ÎÎÎ "
 "ÏÎÏÎÏÏÏÏÎÏÎÏ ÎÎÏÏÎÎÎÏÎÎÎÏ."
 
-#: C/optimization-massif.xml:45(para)
+#: C/optimization-massif.xml:45(sect1/para)
 msgid ""
 "The text file is arranged as a hierarchy of sections, at the top is a list "
 "of the worst memory users arranged in order of decreasing spacetime. Below "
@@ -653,7 +419,7 @@ msgstr ""
 "ÏÎÎ ÎÎÎÏÎ-ÏÏÏÎÏ. ÎÎÎ ÎÎ ÎÏÎÎÎÎÎÏÎÏÎÎ ÎÏÏÏ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÏÎÎ ÎÎÎÎÎÏ "
 "ÎÎÎÎÎÎÎÏÎ ÏÎÏ ÎÎÏÎÎÎÏ ÏÎÏÎÏÎÎÏ."
 
-#: C/optimization-massif.xml:49(title)
+#: C/optimization-massif.xml:49(figure/title)
 msgid ""
 "<application>Massif</application> output for the unoptimized version of the "
 "<application>Swell Foop</application> program."
@@ -662,7 +428,7 @@ msgstr ""
 "ÎÎÎÏÎÏÏÎÏÎÎÎÎÎÎÎ ÎÎÎÎÏÎ ÏÎÏ ÏÏÎÎÏÎÎÎÎÏÎÏ <application>Swell Foop</"
 "application>."
 
-#: C/optimization-massif.xml:56(para)
+#: C/optimization-massif.xml:56(sect1/para)
 msgid ""
 "<xref linkend=\"optimization-massif-FIG-output-unoptimized\"/> shows a "
 "typical postscript output from <application>Massif</application>. This is "
@@ -690,7 +456,7 @@ msgstr ""
 "ÎÎÎÎÎÏÎÎÎ ÎÎÎ ÎÏÏÎ ÎÏÎÏÎÏ.  ÎÎ ÎÎÎÎÎÏÎÏÎÎ ÎÏÏÎÎ ÏÎÎ ÎÎÏÏÎÏÎ ÎÎÎÎÎÎÎÏÎÎ, ÎÎÎ "
 "ÏÎÏ ÎÎÏÎÎÎÎÏÎÎÎ ÏÎÎÏ ÎÎÎÎ ÎÎÎÎÎ."
 
-#: C/optimization-massif.xml:59(para)
+#: C/optimization-massif.xml:59(sect1/para)
 msgid ""
 "At the top of the graph we see a large yellow band labelled gdk_pixbuf_new. "
 "This seems like an ideal candidate for optimization, but we will need to use "
@@ -703,7 +469,7 @@ msgstr ""
 "ÎÎÎÎÎÎÏÏÎÏÎÎ ÏÎ ÎÎÎÎÎ ÏÎ gdk_pixbuf_new. ÎÏÎÎ ÎÎÏÏÏÎ ÏÎÏ ÎÏÏÎÎÎÏ ÎÎÎÎÎÎÏÎ ÎÎ "
 "ÎÎÏÎÎÎÎÎÏÎÎ ÎÎÏÎ ÏÎÎ ÏÎ ÎÏÏÎÎÎÎ:"
 
-#: C/optimization-massif.xml:62(programlisting)
+#: C/optimization-massif.xml:62(sect1/programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -738,7 +504,7 @@ msgstr ""
 "    3.5% : 0x2A4A6B: __gconv_open (ÏÏÎ /lib/tls/libc-2.3.3.so)\n"
 "        "
 
-#: C/optimization-massif.xml:77(para)
+#: C/optimization-massif.xml:77(sect1/para)
 msgid ""
 "The line with the '=' signs indicates how far down the stack trace we are, "
 "in this case we are at the top. After this it lists the heaviest users of "
@@ -758,7 +524,7 @@ msgstr ""
 "ÎÎÎÎÎÎÏÏÎÏÎ ÏÎ ÎÎÎÎÏÎ ÏÎ gdk_pixbuf_new ÏÏÎÏÎÎ ÎÎ ÏÎÎÎÏÎÎ ÏÎÏÎÎÏÎÏÏ ÎÎÏÎ ÏÏÎ "
 "ÎÏÏÎÎÎ ÎÎÎÎÎÎÎÏ:"
 
-#: C/optimization-massif.xml:80(programlisting)
+#: C/optimization-massif.xml:80(sect1/programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -793,7 +559,7 @@ msgstr ""
 "  ÎÎÎ 1 ÎÎÎÎ ÎÏÎÎÎÎÏÎ ÎÎÏÎ\n"
 "        "
 
-#: C/optimization-massif.xml:95(para)
+#: C/optimization-massif.xml:95(sect1/para)
 msgid ""
 "The first line tells us we are now four levels deep into the stack. Below it "
 "is a listing of the function calls that leads from here to gdk_pixbuf_new. "
@@ -812,7 +578,7 @@ msgstr ""
 "ÎÏÏ ÎÏÏÎÎ ÏÎÎ ÎÎÏÏÎ, ÎÏÎÏÎÏÎÎ ÎÎ ÎÎÏÎÎ ÎÎÎÏÏÏ ÏÏÎ Î ÏÏÎÎÎÎÎÎÏÎÎÏÏ ÎÏÎÎÎÎÏ "
 "ÎÎÎÎÎ Î load_scenario."
 
-#: C/optimization-massif.xml:98(para)
+#: C/optimization-massif.xml:98(sect1/para)
 msgid ""
 "Now that we know what part of our code is using all the spacetime we can "
 "look at it and find out why. It turns out that the load_scenario is loading "
@@ -825,11 +591,11 @@ msgstr ""
 "ÎÏÎÎÎÏÎÎÏÏÎÎÎ ÏÎÏÎ ÏÎÎ ÎÎÎÎÎ. ÎÏÎÏ ÏÏÎÏÎÎÎÏÎÏÎÎÎ ÏÎÎ ÏÏÎÎÎÎÎÎÏÎÎÏ ÎÏÎÎÎÎ, "
 "ÎÏÎÏÎÏÎÎ ÎÎ ÎÏÏÎÏÎÏÎÎ ÎÎ ÏÎÎ ÎÎÎÏÎÏÎÎÏÎÎ."
 
-#: C/optimization-massif.xml:103(title)
+#: C/optimization-massif.xml:103(sect1/title)
 msgid "Acting on the Results"
 msgstr "ÎÎÎÏÎÎÎÎÏ ÏÎÎÏ ÏÏÎ ÎÏÎÏÎÎÎÏÎÎÏÎ"
 
-#: C/optimization-massif.xml:104(para)
+#: C/optimization-massif.xml:104(sect1/para)
 msgid ""
 "Reducing spacetime consumption is good, but there are two ways of reducing "
 "it and they are not equal. You can either reduce the amount of memory "
@@ -857,7 +623,7 @@ msgstr ""
 "ÎÎÎÎÎÏ ÏÎÏÏ ÎÎÎ ÎÏÎÎÎÎÏÏÏÎÎÏÎÎ. ÎÏÏÎ ÎÎÎÎÎ ÎÎÎÏÏÎÏÎ ÎÎ ÎÎÎÏÎÎÎ ÏÎ ÏÎÏÏ "
 "ÎÎÎÎÎÏ ÏÎÏ ÎÎÎÏÎÎÎÏÎÎ."
 
-#: C/optimization-massif.xml:107(para)
+#: C/optimization-massif.xml:107(sect1/para)
 msgid ""
 "Unfortunately, the choice of optimization is also constrained by the needs "
 "of the program. The size of the pixbuf data in <application>Swell Foop</"
@@ -878,7 +644,7 @@ msgstr ""
 "Foop</application> ÎÎÏÎ ÎÏÏ ÏÎÎ ÎÎÎÎÎÎ ÏÎÏ ÎÎÎ ÎÎ ÎÏÎÏÏÎÏÏÎÎ ÏÎ pixbufs "
 "ÎÏÎÎÏ ÏÎÏÏÏÎÎÏÎ ÎÎ ÎÎÎÏÎÎÏ ÏÏÎÎ ÎÎÎÎÎÎÎÏÏÎ X."
 
-#: C/optimization-massif.xml:111(title)
+#: C/optimization-massif.xml:111(figure/title)
 msgid ""
 "<application>Massif</application> output for the optimized "
 "<application>Swell Foop</application> program."
@@ -886,7 +652,7 @@ msgstr ""
 "ÎÎÎÎÎÏ ÎÎÎÎÎÎÎÏÎ <application>Massif</application> ÎÎÎ ÏÎÎ ÎÎÎÏÎÏÏÎÏÎÎÎÎÎÎÎ "
 "ÎÎÎÎÏÎ ÏÎÏ ÏÏÎÎÏÎÎÎÎÏÎÏ <application>Swell Foop</application>."
 
-#: C/optimization-massif.xml:118(para)
+#: C/optimization-massif.xml:118(sect1/para)
 msgid ""
 "The spacetime use of gdk_pixbuf_new is now a thin band that only spikes "
 "briefly (it is now the sixteenth band down and shaded magenta). As a bonus, "
@@ -903,7 +669,7 @@ msgstr ""
 "ÏÎÏ ÎÎÎÎÏÏÎÏ ÏÏÎÏÎÏ ÎÎÎÎÎÏ ÏÏÎÏÎÏÏÎÏÎ, ÎÎÎ ÏÏ ÎÎ ÏÎÏÏÎÏ Î ÎÎÎÎÏÎÎÏ "
 "ÎÎÏÎÎÎÏÎÎÎÏÎÏ, ÎÎ ÎÎÎÎÎ ÎÏÎÎÏÎ ÏÎÎÎÎÏÏ."
 
-#: C/optimization-massif.xml:121(para)
+#: C/optimization-massif.xml:121(sect1/para)
 msgid ""
 "Can we do better ? A quick examination of <application>Massif</"
 "application>'s text output reveals: g_strdup to be the new major offender."
@@ -912,7 +678,7 @@ msgstr ""
 "ÏÎÏ <application>Massif</application> ÏÎ ÎÎÎÎÎÎÎ ÎÏÎÎÎÎÏÏÏÎÎ ÏÏÎ: ÏÎ "
 "g_strdup  ÎÎÎÎÎ Î ÎÎÎÏ ÏÎÎÎÎÏÎÎÏÏ ÎÎÎÏÎÏ."
 
-#: C/optimization-massif.xml:124(programlisting)
+#: C/optimization-massif.xml:124(sect1/programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -947,14 +713,14 @@ msgstr ""
 "    5.2% : 0x2A4A6B: __gconv_open (ÏÏÎ /lib/tls/libc-2.3.3.so)\n"
 "        "
 
-#: C/optimization-massif.xml:139(para)
+#: C/optimization-massif.xml:139(sect1/para)
 msgid ""
 "If we look closer though we see that it is called from many, many, places."
 msgstr ""
 "ÎÎÎ ÏÎ ÎÎÎÏÎÏÎÏÎÎ ÏÎÎÎ ÎÎÎÎÎÎÏÏÏ ÎÎ ÎÎÏÎÎ ÏÏÎ ÎÎÎÎÎÏÎÎ ÎÏÏ ÏÎÎÎÎÏ,  ÏÎÎÎÎÏ, "
 "ÎÎÎÏÎÏÎÏÎÎÎÏ ÎÎÏÎÎÏ."
 
-#: C/optimization-massif.xml:142(programlisting)
+#: C/optimization-massif.xml:142(sect1/programlisting)
 #, no-wrap
 msgid ""
 "\n"
@@ -991,7 +757,7 @@ msgstr ""
 "  ÎÎÎ 155 ÎÎÎÎÏ ÎÏÎÎÎÎÏÎÏ ÎÎÏÎÎÏ \n"
 "        "
 
-#: C/optimization-massif.xml:158(para)
+#: C/optimization-massif.xml:158(sect1/para)
 msgid ""
 "We now face diminishing returns for our optimization efforts. The graph "
 "hints at another possible approach: Both the \"other\" and \"heap admin\" "
@@ -1008,11 +774,11 @@ msgstr ""
 "ÎÎÎÎÎÏÎÎÎÎÎÏÎ ÏÏÏÎ ÎÎ ÎÎÎÎÎÏÎÎÎÎÏ ÎÎÏÎÎÎÎÎÏ ÎÏÎÏÎÏÎ ÎÎ ÎÎÎÎÏÎ ÎÎÎÎÎÏÏÎÏÎÏ "
 "ÎÎÎ Î ÎÏÎÎÎÏÏÎÏÎ ÏÎÏ \"heap admin\" ÎÏÎÏÎÎ ÎÎ ÎÎÎÏÎÎÎ."
 
-#: C/optimization-massif.xml:163(title)
+#: C/optimization-massif.xml:163(sect1/title)
 msgid "Caveats"
 msgstr "Caveats"
 
-#: C/optimization-massif.xml:164(para)
+#: C/optimization-massif.xml:164(sect1/para)
 msgid ""
 "There are a couple of things to watch out for: Firstly, spacetime is only "
 "reported as a percentage, you have to compare it to the overall size of the "
@@ -1025,7 +791,7 @@ msgstr ""
 "ÎÏÎÏÎÎÎ ÏÎÏÎÏÏÎÏÎ, ÎÎ ÏÎÎ ÎÎÎÎÏÎ ÎÎÎÎÎ ÏÎ kilobyte, ÎÎÎÎÎ ÎÎÎÎÎÎÏ ÎÎÎ ÎÎÏÎ "
 "ÏÎÏÎÎÎ."
 
-#: C/optimization-massif.xml:167(para)
+#: C/optimization-massif.xml:167(sect1/para)
 msgid ""
 "Secondly, <application>Massif</application> only takes into account the "
 "memory used by your own program. Resources like pixmaps are stored in the X "
@@ -1056,211 +822,469 @@ msgstr ""
 "ÏÏÏÎÏÎÎÎÎ <ulink type=\"http\" url=\"http://www.freedesktop.org/Software/";
 "xrestop\">xrestop</ulink>."
 
-#: C/optimization-harmful.xml:3(title)
-msgid "Disk Seeks Considered Harmful"
-msgstr "ÎÎ ÎÎÎÎÎÏÎÏÎÎÏ ÎÎÏÎÎÏ ÎÎÏÏÎÏÎÏÎÎ ÎÏÎÎÎÎÎÎÏ"
+#: C/optimization-intro.xml:3(chapter/title)
+msgid "The Quick Guide to Optimizing GNOME Programs"
+msgstr "ÎÎÎÏ ÎÏÎÎÎÏÎÏ ÎÎÎÎÏÏ ÎÎÎ ÏÎ ÎÎÎÏÎÏÏÎÏÎÎÎÏÎ ÏÏÎ ÏÏÎÎÏÎÎÎÎÏÏÎ ÏÎÏ GNOME"
 
-#: C/optimization-harmful.xml:5(para)
+#: C/optimization-intro.xml:5(chapter/para)
 msgid ""
-"Disk seeks are one of the most expensive operations you can possibly "
-"perform. You might not know this from looking at how many of them we "
-"perform, but trust me, they are. Consequently, please refrain from the "
-"following suboptimal behavior:"
+"This is a brief introduction to optimization, both the hows and the whys. "
+"Details of individual tools and techniques are left for later articles, but "
+"a collection of hints and tricks is provided."
 msgstr ""
-"ÎÎ ÎÎÎÎÎÏÎÏÎÎÏ ÏÎÏ ÎÎÏÎÎÏ ÎÎÎÎÎ ÎÏÏ ÏÎÏ ÏÎÎÎ ÎÎÏÎÎÎÏÎÏ ÎÎÎÎÎÎÎÏÎÎÏ ÏÎÏ "
-"ÎÏÎÏÎÎÏÎ ÎÎÎÎÏÎÎÎÎÏÏ ÎÎ ÎÎÏÎÎÎÏÎÏÎ. ÎÏÎÏÎÎ ÎÎ ÎÎÎ ÏÎ ÎÎÏÎÎÎÎÎÏÎ ÎÏÏÏ ÎÏÎÎ "
-"ÎÎÎÏÎÎÎÎÏÎÏ ÏÏÏÎÏ ÎÏÏ ÎÏÏÎÏ ÎÎÏÎÎÎÎÏÎ, ÎÎÎÎ ÏÎÏÏÎÏÏÎ ÎÎÏ, ÎÎÎÎÎ ÏÎÎÎÎÏ. "
-"ÎÏÎÎÏÏÏ, ÏÎÏÎÎÎÎÏ ÎÎ ÎÏÎÏÎÏÎÎÏÎÎ ÏÎÎ ÎÎÏÎÎÏÎÎ ÎÎ-ÎÎÎÏÎÏÏÎ ÏÏÎÏÎÏÎÏÎÏÎ:"
+"ÎÏÏÎ ÎÎÎÎÎ ÎÎÎ ÏÏÎÏÎÎÎ ÎÎÏÎÎÏÎÎ ÏÏÎ ÎÎÎÏÎÏÏÎÏÎÎÎÏÎ, ÏÏÏÎ ÏÏÎ ÏÏÏ ÏÏÎ ÎÎÎ ÏÏÎ "
+"ÎÎÎÏÎ. ÎÎ ÎÎÏÏÎÎÎÏÎÎÎÏ ÎÎÎ ÎÎÏÏÏÎÏÏÎ ÎÏÎÎÎÎÎÎ ÏÎÏÎÎÎÎÎÎÏÎÎ ÎÎÎ ÎÎÎÎÎÎÏÎÎÎ "
+"ÎÏÎÏÎ, ÎÎÎÎ ÏÎÏÎÏÎÏÎÎ ÎÎÎ ÏÏÎÎÎÎÎ ÎÏÏ ÏÏÎÎÎÎÎÎÎÏ ÎÎÎ ÎÏÎÏÎ."
 
-#: C/optimization-harmful.xml:10(para)
-msgid "Placing lots of small files all over the disk."
-msgstr "ÎÎÏÎÎÎÏÏÎÏÎÏ ÏÎÎÎÎ ÎÎÎÏÎ ÎÏÏÎÎÎ ÏÎÎÏÎÏ ÏÏÎÎ ÎÎÏÎÎ."
+#: C/optimization-intro.xml:10(sect1/title)
+msgid "What are we Optimizing?"
+msgstr "ÎÎ ÎÎ ÎÎÎÏÎÏÏÎÏÎÎÎÏÎÏÎÎ;"
 
-#: C/optimization-harmful.xml:15(para)
-msgid "Opening, stating, and reading lots of files all over the disk"
+#: C/optimization-intro.xml:11(sect1/para)
+msgid ""
+"When we optimize for GNOME the first thing to remember is this: we are not "
+"trying to make the program better, we are trying to make the person using "
+"the computer happier."
 msgstr ""
-"ÎÎÎÎÎÎÎ, ÎÎÎÏÏÎÎÏ, ÎÎÎ ÎÎÎÎÎÏÏÎ ÏÎÎÎÏÎ ÎÎÎÏÏÎ ÎÏÏÎÎÏÎ ÏÎÎÏÎÏ ÏÏÎÎ ÎÎÏÎÎ."
+"ÎÏÎÎ ÎÎÎÏÎÏÏÎÏÎÎÎÏÎÎ ÎÎÎ ÏÎ GNOME, ÏÎ ÏÏÏÏÎ ÏÏÎÎÎÎ ÏÎÏ ÎÏÎÏÎÎÏÏÎ ÎÎÎÎÎ ÏÏÎ "
+"ÎÎÎ ÏÏÎÏÏÎÎÎÏÎÎ ÎÎ ÎÎÎÎÏÎÎ ÎÎÎ ÏÏÏÎÏÎÎÎÎ ÎÎÎÏÏÎÏÎ, ÏÏÎÏÏÎÎÎÏÎÎ ÎÎ ÎÎÎÎÏÎÎ ÏÎ "
+"ÏÏÎÏÏÎ ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÎ ÏÎÎ ÏÏÎÎÎÎÎÏÏÎ ÏÎÎ ÎÏÏÎÏÎÏÏÎÎÎÎÎ."
+
+#: C/optimization-intro.xml:14(sect1/para)
+msgid ""
+"Better programs make people happier, but there are some improvements that "
+"will make them a lot happier than others: Responsiveness, start-up time, "
+"easy to access commands and not having the computer go into swap the moment "
+"more than two programs are open."
+msgstr ""
+"ÎÎÎÏÏÎÏÎ ÏÏÎÎÏÎÎÎÎÏÎ ÏÎÎÎÎÎÎÎ ÏÎÎ ÎÏÏÎÏÎÏÏÎÎÎÎÎÎ ÏÏÎÏÏÎÏ, ÎÎÎÎ ÏÏÎÏÏÎÏÎ "
+"ÎÎÏÎÎÎÏ ÎÎÎÏÎÏÏÎÎÏ ÏÎÏ ÎÎ ÏÎÏÏ ÎÎÎÎÏÎ ÏÎÎ ÎÏÏÎÏÎÏÏÎÎÎÎÎÏÏ ÎÏÏ ÎÎÎÎÏ: Î "
+"ÏÏÎÏÏÎÎÎ ÏÎÏ ÎÎÏÎÏÏÎÏÎÏÎÏ, Î ÏÏÏÎÎÏ ÎÎÎÎÎÎÏÎÏ, Î ÎÏÎÎÎÎÎ ÏÏÎÎ ÏÏÏÏÎÎÏÎ ÏÏÎ "
+"ÎÎÏÎÎÏÎ ÎÎÎ ÏÎ ÎÎ ÎÎÎ ÎÎÎÎÏÎÎ ÏÎÎÏ ÎÏÎÏÏ Î ÏÏÎÎÎÎÎÏÏÎÏ ÏÏÎÎ ÏÏÎÏÏÎÏÎ ÎÎÎÎÎÏÎ "
+"ÏÎÏÎÏÏÏÏÎÏÎ ÎÏÏ ÎÏÎ ÏÏÎÎÏÎÎÎÎÏÎ."
+
+#: C/optimization-intro.xml:17(sect1/para)
+msgid ""
+"Traditional optimization tackles concepts like CPU use, code size, the "
+"number of mouse clicks and the memory use of the program. This second list "
+"has been chosen to correlate with the first list, however there is an "
+"important difference: The person using GNOME doesn't care about the second "
+"list, but they care a lot about the first list. When optimizing GNOME "
+"programs we will reduce CPU use, memory use and all those things, but these "
+"are the means to the end, not the final goal. We are optimizing for people."
+msgstr ""
+"Î ÏÎÏÎÎÎÏÎÎÎÎ ÎÎÎÏÎÏÏÎÏÎÎÎÏÎ ÎÏÏÎÎÎÎÏÎÎ ÎÎ ÎÎÎÎÎÎÏ ÏÏÏÏ Î ÏÏÎÏÎ ÏÎÏ "
+"ÎÏÎÎÎÏÎÎÏÏÎ, ÏÎ ÎÎÎÎÎÎÏ ÏÎÏ ÎÏÎÎÎÎ, Î ÎÏÎÎÎÏÏ ÏÏÎ ÎÎÎÎ ÏÎÏ ÏÎÎÏÎÎÎÎÏ ÎÎÎ Î "
+"ÏÏÎÏÎ ÏÎÏ ÎÎÎÎÎÏ ÎÏÏ ÏÎ ÏÏÏÎÏÎÎÎÎ. ÎÏÏÎ Î ÎÎÏÏÎÏÎ ÎÎÏÏÎ ÎÏÎÎ ÎÏÎÎÎÎÎÎ ÎÎÎ ÎÎ "
+"ÏÏÏÏÎÏÎÎÎÏÎÎ ÎÎ ÏÎÎ ÏÏÏÏÎ, ÏÏÏÏÏÎ ÏÏÎÏÏÎÎ ÎÎÎ ÏÎÎÎÎÏÎÎÎ ÎÎÎÏÎÏÎ: ÎÏÏÏÏ ÏÎÏ "
+"ÏÏÎÏÎÎÎÏÎÎÎÎ ÏÎ GNOME ÎÎ ÎÎÎÎÎÎÏÎÎ ÎÎÎ ÏÎ ÎÎÏÏÎÏÎ ÎÎÏÏÎ, ÎÎÎÎÎÎÏÎÎ ÏÎÏÏ ÏÎÎÏ "
+"ÎÎÎ ÏÎÎ ÏÏÏÏÎ. ÎÏÎÎ ÎÎÎÏÎÏÏÎÏÎÎÎÏÎÎ ÏÏÎÎÏÎÎÎÎÏÎ ÏÎÏ GNOME ÎÎÎÏÎÎÏÎÎ ÏÎ ÏÏÎÏÎ "
+"ÏÎÏ ÎÏÎÎÎÏÎÎÏÏÎ, ÏÎÏ ÎÎÎÎÎÏ ÎÎÎ ÎÎÎÏÎ, ÎÎÎÎ ÏÎÎ ÎÏÏÎ ÎÎÎÎÎ ÎÎÏÎ ÎÎÎ ÎÎ "
+"ÏÏÎÏÏÏÎÏÎÏÎÎ, ÏÏÎ ÎÎÎ ÏÎÎ ÏÎÎÎÎÏ ÎÎÏ ÏÎÎÏÏ. ÎÎÎÎÏ ÎÎÎÏÎÏÏÎÏÎÎÎÏÎÎ ÎÎÎ ÏÎÏÏ "
+"ÎÎÎÏÏÏÎÏÏ."
+
+#: C/optimization-intro.xml:23(sect1/title)
+msgid "Doing the Optimization"
+msgstr "ÎÏÎÏÎÏÎÎÎÏÎÏ ÏÎ ÎÎÎÏÎÏÏÎÏÎÎÎÏÎ"
+
+#: C/optimization-intro.xml:24(sect1/para)
+msgid ""
+"The previous section omitted one important qualifier: To optimize something "
+"it has to be measurable. You can't measure happiness. However, you can "
+"measure start-up time so you can tell if you have improved it. Happiness "
+"will then, hopefully, follow."
+msgstr ""
+"Î ÏÏÎÎÎÎÏÎÎÎÎ ÎÎÏÏÎÏÎ ÏÎÏÎÎÎÎÏÎ ÎÎÎ ÏÎÎÎÎÏÎÎÏ ÏÎÏÎÎÎÎÏÎ: ÎÎÎ ÎÎ "
+"ÎÎÎÏÎÏÏÎÏÎÎÎÎÎÎ ÎÎÏÎ ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎ ÎÎÏÏÎÏÎÎÎ. ÎÎ ÎÏÎÏÎÎÏÎ ÎÎ "
+"ÎÎÎÏÎÏÏÎÏÎÎÎÏÎÏÎ ÏÎÎ ÎÏÏÎÏÎÏÏÎÏÎ. ÎÏÏÏÏÎ, ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÏÏÎÏÎ ÏÎ ÏÏÏÎÎ "
+"ÎÎÎÎÎÎÏÎÏ ÏÏÏÎ ÎÎ ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÏÎ ÎÎ ÏÎÎ ÎÏÎÏÎ ÎÎÎÏÎÏÏÎÎ. ÎÏÎÎÏÎÏÏÎÏÎÎ ÏÏÎ "
+"Î ÎÏÏÏÏÎÎ ÎÎ ÎÏÎÎÎÎÎ."
+
+#: C/optimization-intro.xml:27(sect1/para)
+msgid ""
+"Optimization is the process of measurement, refinement and re-measurement. "
+"So the first thing you must do is find a way to measure what you are "
+"optimizing. Ideally this measurement is a single number, for example: the "
+"time taken to perform a task. This is your benchmark, it is the only way to "
+"tell if you are winning or losing. There is a big difference between a "
+"program that <emphasis>should</emphasis> be fast and a program that "
+"<emphasis>is</emphasis> fast."
+msgstr ""
+"Î ÎÎÎÏÎÏÏÎÏÎÎÎÏÎ ÎÎÎÎÎ ÎÎÎ ÎÎÎÎÎÎÎÏÎÎ ÎÎÏÏÎÏÎÏ, ÎÎÎÏÎÏÏÎÏ ÎÎÎ ÎÎÏÏÎÏÎÏ ÎÎÎÎ. "
+"ÎÏÏÏÎ ÏÎ ÏÏÏÏÎ ÏÏÎÎÎÎ ÏÎÏ ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÏÎ ÎÎÎÎÎ ÎÎ ÎÏÎÎÏÎ ÎÎÎÎ ÏÏÏÏÎ ÎÎÎ ÎÎ "
+"ÎÎÏÏÎÏÎÏÎ ÎÏÏÏ ÏÎÏ ÎÎÎÏÎÏÏÎÏÎÎÎÎÏÎ. ÎÏÎÎ ÎÎÎÏÏÎÏÎ ÏÎÏÎÏÏÏÏÎ, ÎÏÏÎ Î ÎÎÏÏÎÏÎ "
+"ÎÎ ÎÎÎÎÎ ÎÎÎÏ ÎÎÎÎÎÎÎÏÏ ÎÏÎÎÎÏÏ, ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ Î ÏÏÏÎÎÏ ÏÎÏ ÏÏÎÎÎÎÎÏÎÎ ÎÎÎ "
+"ÎÎ ÎÎÎÎÎÎÏÏÎÎÎ ÎÎÎ ÎÏÎÎÏÎÎ. ÎÏÏÎ Î ÎÎÎÎÎ Î ÎÎÎÎÎÎ ÎÎÏÏÎÏÎÏ ÏÎÏ, ÎÎÎ ÎÎÎÎÎ Î "
+"ÎÎÎÎÎÎÎÏÏ ÏÏÏÏÎÏ ÎÎÎ ÎÎ ÎÎÎÏÎ ÎÎ ÎÎÏÎÎÎÎÏÎ Î ÎÎ ÏÎÎÎÏÎ. ÎÏÎÏÏÎÎ ÏÎÏÎÏÏÎÎ "
+"ÎÎÎÏÎÏÎ ÎÎÎÎÎÏÎ ÏÎ ÎÎÎ ÏÏÏÎÏÎÎÎÎ ÏÎÏ <emphasis>ÎÎ ÎÏÏÎÏÎ</emphasis> ÎÎ ÎÎÎÎÎ "
+"ÎÏÎÎÎÏÎ ÎÎÎ ÏÎ ÎÎÎ ÏÎÏ <emphasis>ÎÎÎÎÎ</emphasis> ÎÏÎÎÎÏÎ."
+
+#: C/optimization-intro.xml:30(sect1/para)
+msgid ""
+"Once you have a basic benchmark you need to find out why your code is not "
+"doing as well as it should. It is tempting to do this by inspection: just "
+"looking at the code and trying to spot something that looks like it needs "
+"improvement. You will invariably be wrong. Using a profiler to get a "
+"detailed break-down of what your program really does is the only way to be "
+"sure."
+msgstr ""
+"ÎÏÎÎ ÎÎ ÎÏÎÏÎ ÎÎÎ ÎÎÏÎÎÎ ÎÎÎÎÎÎ ÎÎÏÏÎÏÎÏ ÎÎ ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎÎÏÏÎÏÎ ÎÎÎÏÎ Î "
+"ÎÏÎÎÎÎÏ ÏÎÏ ÎÎÎ ÏÎÎÎ ÏÏÏÎ ÎÎÎÎ ÏÏÎ ÎÎ ÎÏÏÎÏÎ. ÎÎÎÎÎ ÎÎÎÎÎÏÏÎÎÏ ÎÎ ÏÎ ÎÎÎÎÏÎ "
+"ÎÏÏÏ ÏÎÏÎÏÎÏÏÎÏÎÏ: ÎÎ ÎÎÎÏÎÏÎ ÏÎÎ ÎÏÎÎÎÎ ÏÎÏÎÎÎÏÎÏ ÎÎÎ ÎÎÏÎ ÏÎÏ ÎÎÎÎÎÎÎ ÎÎ "
+"ÎÎÎÎÎ ÎÎÎÏÎÏÏÎ. ÎÏÏÎÏ ÎÎÏÎÎÎÎÎÎ, ÎÎ ÎÎÎÎÏÎ ÎÎÎÎÏ. Î ÏÏÎÏÎ ÎÎÏÏ ÎÎÎÎÎÏÎÎÎÏ "
+"ÏÏÎÎÏÎÎÎÎÏÎÏ profiler ÏÎ ÎÏÎÎÎ ÎÎÎÎÎ ÎÎÎ ÎÎÏÏÎÎÎÏÎ ÎÎÎÏÎÎÎÎ ÏÎÏ ÏÎ ÎÎÎÎÎ "
+"ÏÏÎÎÎÎÏÎÎÏ ÏÎ ÏÏÏÎÏÎÎÎÎ ÏÎÏ ÎÎÎÎÎ Î ÎÏÎÎÏ ÏÏÏÏÎÏ ÎÎÎ ÎÎ ÎÎÏÏÎ ÎÎÎÎÎÎÎ."
+
+#: C/optimization-intro.xml:33(sect1/para)
+msgid ""
+"Usually the problem is isolated to small sections of code. Pick the worst "
+"place and concentrate on that first. Once that is done, rerun the profiler "
+"and repeat. As you proceed the gains made at each step will get less and "
+"less, at some point you will have to decide that the results are good "
+"enough. If your efforts are only extracting 10% improvements then you are "
+"well past the point where you should have stopped."
+msgstr ""
+"ÎÏÎÎÎÏÏ ÏÎ ÏÏÏÎÎÎÎÎ ÎÎÏÎÏÎÎÎÏÎÎ ÏÎ ÎÎÎÏÎ ÏÎÎÎÎÏÎ ÏÎÏ ÎÏÎÎÎÎ. ÎÎÎÎÎÎÏÎ ÏÎ "
+"ÏÎÎÏÏÏÎÏÎ ÎÏÏ ÎÏÏÎ ÎÎÎ ÏÏÎÎÎÎÏÏÏÎÎÎÏÎ ÏÏÏÏÎ Ï' ÎÏÏÏ. ÎÏÎÎ ÎÎ ÎÏÎÏÎ ÏÎÎÎÎÏÏÎÎ "
+"Î' ÎÏÏÏ, ÏÏÎÎÏÎ ÎÎÎÎ ÏÎ profiler ÎÎÎ ÎÏÎÎÎÎÎÎÎÏÎ ÏÎ ÎÎÎÎÎÎÎÏÎÎ. ÎÎÎÏÏ ÎÎ "
+"ÏÏÎÏÏÏÎÏÎ, ÏÎ ÎÎÏÎÎÏ ÎÏÏ ÎÎÎÎ ÎÎÎÎ ÎÎ ÎÎÎÏÎÎÏÎÎ, ÎÎÎ ÏÎ ÎÎÏÎÎÎ ÏÎÎÎÎÎ ÎÎ "
+"ÏÏÎÏÎÎ ÎÎ ÎÏÎÏÎÏÎÏÎÏÎ ÎÎ ÏÎ ÎÏÎÏÎÎÎÏÎÎÏÎ ÎÎÎÎÎ ÎÏÎÎÏÎ ÎÎÎÎ. ÎÎ Î ÏÏÎÏÏÎÎÎÎÎÏ "
+"ÏÎÏ ÎÏÎÏÎ ÏÏ ÎÏÎÏÎÎÎÏÎÎ ÏÎ ÎÎÎÏÎÏÏÎ ÎÏÎÎ ÎÎÏÎ 10-% ÎÎÎÎ ÏÎÏÎ, ÏÏÏÎ ÎÏÎÏÎ "
+"ÏÎÏÎÏÎÎ ÏÎ ÏÎÎÎÎÎ ÏÏÎÏ ÎÏÎÏÎÎÏÎ ÏÎÎ ÎÎ ÏÏÎÎÎÏÎÏÎÏÎ."
+
+#: C/optimization-intro.xml:36(sect1/para)
+msgid ""
+"Don't forget the big picture. For example, rather than just trying to speed "
+"up a piece of code, ask yourself if it needs to be run at all. Could it be "
+"combined with another piece of code? Can the results of previous "
+"calculations be saved and reused? It won't even need to be optimized if it "
+"is in a place where the user is never going to notice it. Worse still, the "
+"code may already be optimized and is doing the heavy calculations now to "
+"avoid doing them later. Code does not run in isolation and neither does the "
+"optimization process."
+msgstr ""
+"ÎÎ ÏÏÎÎÎÎÏÏÏÎÎÎÏÎ ÏÏÎ ÎÎÎÏÏÎ ÎÎÎ ÏÎÏÎÏÎ ÏÎ ÎÎÏÎÏ. ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ, ÎÎÏÎ ÎÎ "
+"ÏÏÎÏÏÎÎÎÎÏÎ ÎÎ ÎÏÎÏÎÏÏÎÎÏÎ ÎÎÎ ÎÎÎÎÎÏÎ ÎÏÎÎÎÎ, ÏÎÎÏÏÎÎÏÎ ÎÎ ÏÏÎÎÎÎÎÏÎÎ ÎÎÎ "
+"ÎÎ ÏÏÎÏÎÎ. ÎÎÏÏÏ ÎÏÎÏÎÎ ÎÎ ÏÏÎÎÏÎÏÏÎÎ ÎÎ ÎÎÏÎÎÎ ÎÎÎÎ ÎÎÎÎÎÏÎ; ÎÎÏÏÏ ÎÏÎÏÎÏÎ "
+"ÏÎ ÎÏÎÏÎÎÎÏÎÎÏÎ ÏÎÏ ÏÏÎÎÎÎÏÎÎÎÎÏ ÎÎÎÏÎÏÏÎÎÎÏ ÏÎÏ ÎÎ ÎÏÎÎÎÎÎÏÏÎÏÎ ÎÎÎ ÎÎ "
+"ÏÏÎÏÎÎÎÏÎÎÎÎÎÏÎ ÎÎÎÎ; ÎÎ ÎÎ ÏÏÎÎÎÏÏÎÎ ÎÎÎ ÎÎ ÎÎÎÏÎÏÏÎÏÎÎÎÎÎÎ ÎÎ ÎÏÎÏÎÎÏÎÎ ÏÎ "
+"ÎÎÎ ÎÎÏÎÏ ÏÏÎÏ Î ÏÏÎÏÏÎÏ ÎÎ ÎÎ ÏÎ ÏÏÎÏÎÎÎÎ ÏÎÏÎ. ÎÎÏÎÎ ÏÎÎÏÏÏÎÏÎ, Î ÎÏÎÎÎÎÏ "
+"ÎÏÎÏÎÎ ÎÎ ÎÎÎÎÎ ÎÎÎ ÎÎÎÏÎÏÏÎÏÎÎÎÎÎÎÎÏ ÎÎÎ ÎÎ ÎÎÎÎÎ ÏÏÏÎ ÏÎÏÏ ÎÎÏÎÎÏÏ ÏÎÏ "
+"ÏÏÎÎÎÎÎÏÎÎÏÏ ÎÎÎ ÎÎ ÎÎÎ ÏÎÏÏ ÏÏÎÎÎÏÏÎÎ ÎÏÎÏÏÎÏÎ. ÎÏÏÎ Î ÎÏÎÎÎÎÏ ÏÏÎÏÎÎ "
+"ÎÏÎÎÎÎÏÎÎÎÎÏ, ÎÏÏÎ Î ÎÎÎÏÎÏÏÎÏÎÎÎÏÎ. "
+
+#: C/optimization-intro.xml:41(sect1/title)
+msgid "Hints"
+msgstr "ÎÏÎÎÎÎÎÎÎÏ"
+
+#: C/optimization-intro.xml:43(itemizedlist/title)
+msgid "The Fundamentals"
+msgstr "ÎÎ ÎÎÏÎÎÎ"
+
+#: C/optimization-intro.xml:45(listitem/para)
+msgid ""
+"Re-run your benchmark after every change you make to the code and keep a log "
+"of everything you change and how it affects the benchmark. This lets you "
+"undo mistakes and also helps you not to repeat mistakes."
+msgstr ""
+"ÎÏÎÎÏÎ ÎÎÎÎ ÏÎÏ ÎÎÎÎÎÎÏÏÎÎÎÏ ÏÎÏ ÎÎÏÏÎÏÎÎÏ ÎÎÏÎ ÎÏÏ ÎÎÎÎ ÎÎÎÎÎÎ ÏÎÏ ÎÎÎÎÏÎ "
+"ÏÏÎÎ ÎÏÎÎÎÎ ÎÎÎ ÎÏÎÏÎÏÏÎ ÎÎÎ ÎÎÏÎÎÏÎÏÎ ÏÎÏÎ ÏÏÎ ÎÎÎÎÎÏÎ ÏÎÏ ÎÎÎÎÏÎ ÎÎÎ ÏÏÏ "
+"ÎÏÏÎÏ ÎÏÎÏÎÎÎÎÏÎ ÏÎÏ ÎÎÏÏÎÏÎÎÏ. ÎÏÏÏ ÏÎÏ ÎÎÎÎÎ ÎÎ ÎÎÎÎÏÎÎÏÎ ÎÎÏÎÎÎ ÎÎÎÎ, "
+"ÏÏÏÏ ÎÏÎÏÎÏ ÎÎÎ ÎÎ ÎÎÎ ÏÎ ÎÏÎÎÎÎÎÎÎÎÎÎÏÎ."
+
+#: C/optimization-intro.xml:50(listitem/para)
+msgid ""
+"Make sure your code is correct and bug-free before optimizing it. Check that "
+"it remains correct and bug-free after optimization."
+msgstr ""
+"ÎÎÎÎÎÏÎÎÎÏÎ ÏÏÎ Î ÎÏÎÎÎÎÏ ÏÎÏ ÎÎÎÎÎ ÏÏÏÏÏÏ ÎÎÎ ÏÏÏÎÏ ÏÏÎÎÎÎÏÎ ÏÏÎÏÎÏ ÏÎÎ "
+"ÎÎÎÏÎÏÏÎÏÎÎÎÏÎÏÎ. ÎÎÎÎÎÏÎ ÏÏÎ ÎÎÎÎÎ ÏÏÏÏÏÏ ÎÎÎ ÏÏÏÎÏ ÏÏÎÎÎÎÏÎ ÎÎÎ ÎÎÏÎ ÏÎ "
+"ÎÎÎÏÎÏÏÎÏÎÎÎÏÎ."
+
+#: C/optimization-intro.xml:55(listitem/para)
+msgid "Optimize at the high level before optimizing the details."
+msgstr "ÎÎÎÏÎÏÏÎÏÎÎÎÏÏÎ ÏÎ ÏÎÎÏ ÎÏÎÏÎÎÎ ÏÏÎÎ ÏÏÎÏÏÏÎÏÎÏÎ ÏÏÎÏ ÎÎÏÏÎÎÎÏÎÎÎÏ."
+
+#: C/optimization-intro.xml:60(listitem/para)
+msgid ""
+"Use the right algorithm. The classic text-book example is using quick-sort "
+"instead of bubble-sort. There are many others, some save memory, some save "
+"CPU. Also, see what shortcuts you can make: you can do quicker than quick-"
+"sort if you are prepared to make some compromises."
+msgstr ""
+"ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ ÏÎ ÏÏÏÏÏ ÎÎÎÏÏÎÎÎÎ. ÎÎ ÎÎÎÏÎÎÏ ÏÎÏÎÎÎÎÎÎÎ ÎÎÎÎÎ ÎÎ "
+"ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÏÎ quick-sort ÎÎÏÎ ÏÎ bubble-sort. ÎÏÎÏÏÎÏÎ ÏÎÎÎÎ ÎÎÏÎÎ, "
+"ÎÎÏÎÎÎ ÎÎÎÎÎÎÎÎÎÎÏÎ ÎÎÎÎÎ, ÎÎÏÎÎÎ ÎÎÎÎÎÎÎÎÎÎÏÎ ÎÏÎÎÎÏÎÎÏÏÎ. ÎÏÎÏÎÏ, ÎÎÎÏÎ ÏÎ "
+"ÏÏÎÏÏÎÎÎ ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÎÎÏÎÎÏÎÏÎ: ÎÏÎÏÎÎÏÎ ÎÎ ÏÎÎÎÎÎÎÎÏÎÏÎ ÎÎÎ ÎÏÎÎÎÏÏÏÎÏÎ "
+"ÎÏÏ ÏÎ quick-sort ÎÎ ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÎÏÎ ÎÎÏÎÎÎÏÏ ÏÏÎÎÎÎÎÏÎÎÏÏ."
+
+#: C/optimization-intro.xml:65(listitem/para)
+msgid ""
+"Optimization is a trade-off. Caching results speeds up calculations, but "
+"increases memory use. Saving data to disk saves memory, but costs time when "
+"it is loaded back from disk."
+msgstr ""
+"Î ÎÎÎÏÎÏÏÎÏÎÎÎÏÎ ÎÎÎÎÎ ÎÎÎ ÎÎÎÎ ÎÏÎÏÏÎÏÎÎÏ. Î ÏÏÎÏÏÏÎÎÎ ÎÏÎÎÎÎÎÏÏÎ "
+"ÎÏÎÏÎÎÎÏÎÎÏÏÎ ÎÏÎÏÎÏÏÎÎÎ ÏÎÏÏ ÏÏÎÎÎÎÎÏÎÎÏÏ, ÎÎÎÎ ÎÎÏÏÎÎÎÎ ÏÎ ÎÎÎÎÎ. Î "
+"ÎÏÎÎÎÎÎÏÏÎ ÎÎÎÎÎÎÎÏÎ ÏÏÎ ÎÎÏÎÎ ÎÎÎÎÎÎÎÎÎÎÎ ÏÎ ÎÎÎÎÎ, ÎÎÎÎ ÎÎÏÏÎÎÎÎ ÏÎ ÏÏÏÎÎ "
+"ÏÏÎÎ ÎÎ ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎÏÎÏÎ ÏÎÏ ÏÎÎÏÎÏÎÏÎÎÏ ÎÏÏ ÏÎ ÎÎÏÎÎ."
+
+#: C/optimization-intro.xml:70(listitem/para)
+msgid ""
+"Make sure you choose a wide variety of inputs to optimize against. If you "
+"don't it is easy to end up with a piece of code carefully optimized for one "
+"file and no others."
+msgstr ""
+"ÎÎÎÎÎÏÎÎÎÏÎ ÏÏÎ ÏÏÎÏÎÎÎÏÎÎÎÎÏÎ ÎÎÎ ÏÎÎÏÎÎ ÏÎÎÎÎÎÎÎ ÎÏÏ ÎÎÏÏÎÎÏÏ ÎÎÎ ÏÎÏ "
+"ÎÏÎÎÎÏ ÎÎ ÎÎÎÏÎÏÏÎÏÎÎÎÏÎÏÎ. ÎÎ ÎÎÎ ÏÎ ÎÎÎÎÏÎ ÎÏÏÏ, ÎÏÎÎÎÎ ÎÎ ÎÎÏÎÎÎÎÎÏÎ ÏÎ "
+"ÎÎÎ ÎÎÎÎÎÏÎ ÎÏÎÎÎÎ ÏÏÎÏÎÎÏÎÎÎ ÎÎÎÏÎÏÏÎÏÎÎÎÎÎÎÎ ÎÎÎ ÏÏÎÎÎÎÏÎÎÎÎÎ ÎÎÎÏÎÏÏÎÎÎ "
+"ÎÎÎÎ ÏÏÎ ÎÎÎ ÎÎÎÎÏ."
+
+#: C/optimization-intro.xml:75(listitem/para)
+msgid ""
+"Avoid expensive operations: Multiple small disk reads. Using up lots of "
+"memory so disk swapping becomes necessary. Avoid anything that writes or "
+"reads from the hard disk unnecessarily. The network is slow too. Also avoid "
+"graphics operations that need a response from the X server."
+msgstr ""
+"ÎÏÎÏÏÎÎÏÎ ÏÎÏ ÏÏÎÏÎÎÎÏ ÎÎÎÏÎÏÏÎÎÎÏ: ÎÎÎÎÎÏÎÎÏ ÎÎÎÏÎÏ ÎÎÎÎÎÏÏÎÎÏ ÎÏÏ ÏÎ "
+"ÎÎÏÎÎ, ÏÏÎÏÎ ÏÎÏÎ ÏÎÎÎÎÏ ÎÎÎÎÎÏ ÏÏÏÎ ÎÎ ÏÏÎÎÎÎÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ "
+"ÏÏÎÏÏÏÎÎÎ ÎÎÎÎÎ ÏÏÎ ÎÎÏÎÎ, ÎÎÎÎÎÎ ÎÏÎÎÎÏÎÏÎ ÎÏÎÏÎÎ Î ÎÎÎÎÎÎÎÎ ÎÏÏ ÏÎ ÎÎÏÎÎ "
+"ÎÎ ÎÎÎ ÎÎÎÎÎ ÎÎÏÎÎÏÏ ÎÏÎÏÎÎÏÎÏÎ. ÎÎ ÎÎÎÏÏÎ ÎÏÎÏÎÏ ÎÎÎÎÎ ÎÏÎÏ. ÎÏÎÏÏÎÎÏÎ "
+"ÎÏÎÏÎÏ ÎÎÎÏÎÏÏÎÎÎÏ ÎÏÎÏÎÎÏÎ ÎÎ ÎÏÎÎÎÏ ÏÏÎÎÎÎÎÎÏÎÎ ÎÏÎÎÏÎÏÎ ÎÏÏ ÏÎÎ "
+"ÎÎÏÏÎÏÎÏÎÏÎ X."
+
+#: C/optimization-intro.xml:81(itemizedlist/title)
+msgid "Traps for the Unwary"
+msgstr "ÎÎÎÎÎÎÏ ÎÎÎ ÏÎÏÏ ÎÎÏÏÎÏÎÎÏÏÎÏÏ"
 
-#: C/optimization-harmful.xml:20(para)
+#: C/optimization-intro.xml:83(listitem/para)
 msgid ""
-"Doing the above on files that are laid out at different times, so as to "
-"ensure that they are fragmented and cause even more seeking."
+"Beware of side effects. There can often be strange interactions between "
+"different sections of code, a speed-up in one part can slow another part "
+"down."
 msgstr ""
-"ÎÎÎÎÎÏÎÏ ÏÎ ÎÎÏÏÎÏÏ ÏÎ ÎÏÏÎÎÎ ÏÎÏ ÎÎÎÎÎÏÏÎÎÎÎÎÎÎ ÏÎ ÎÎÎÏÎÏÎÏÎÎÎÏÏ ÏÏÏÎÎÏÏ,  "
-"ÏÏÏÎ ÎÎ ÎÎÎÏÏÎÎÎÏÏÎÎ ÏÏÎ ÎÎÎÎÎ ÏÎÎÎÏÎÏÎÎÎÎ ÎÎÎ ÎÎ ÏÏÎÎÎÎÎÏÎ ÎÎÏÎÎ "
-"ÏÎÏÎÏÏÏÏÎÏÎ ÎÎÎÎÎÏÎÏÎ."
+"ÎÏÎÏÎÏÎÏÎ ÏÎÏ ÏÎÏÎÎÎÏÎÎÎÎÏ. ÎÏÏÎÎ ÎÏÎÏÎÎ ÎÎ ÏÏÎÏÏÎÏÎ ÏÎÏÎÎÏÎÎÏ "
+"ÎÎÎÎÎÎÏÎÎÏÎÏÎÎÏ ÎÎÏÎÎÏ ÎÎÎÏÎÏÎÏÎÎÏÎ ÎÎÎÎÎÏÎÏÎ ÎÏÎÎÎÎ, ÎÎÎ Î ÎÏÎÏÎÏÏÎÏÎ ÎÎÏÏ "
+"ÎÎÎÎÎÏÎÎÏ ÎÏÎÏÎÎ ÎÎ ÎÏÎÎÏÎÎÏÎÎÎ ÎÎÎ ÎÎÎÎ."
 
-#: C/optimization-harmful.xml:25(para)
+#: C/optimization-intro.xml:88(listitem/para)
 msgid ""
-"Doing the above on files that are in different directories, so as to ensure "
-"that they are in different cylinder groups and and cause even more seeking."
+"When timing code, even on a quiet system, events outside the program add "
+"noise to the timing results. Average over multiple runs. If the code is very "
+"short, timer resolution is also a problem. In this case measure the time the "
+"computer takes to run the code 100 or 1000 times. If the times you are "
+"recording are longer than a few seconds, you should be OK."
 msgstr ""
-"ÎÎÎÎÎÏÎÏ ÏÎ ÎÎÏÏÎÏÏ ÏÎ ÎÏÏÎÎÎ ÏÎÏ ÎÎÎÎÎ ÏÎ ÎÎÎÏÎÏÎÏÎÎÎÏÏ ÎÎÏÎÎÏÎÎÏÏ, ÏÏÏÎ ÎÎ "
-"ÎÎÎÏÏÎÎÎÏÏÎÎ ÏÏÎ ÎÏÎÏÎÎÎÏÎÎ ÏÎ ÎÎÎÏÎÏÎÏÎÎÎÏ ÎÎÎÎÎÏ ÎÏÎÎÎÎÏÏÎ ÎÎÎ ÎÏÏÎ ÎÎ "
-"ÏÏÎÎÎÎÎÎ ÎÎÏÎÎ ÏÎÏÎÏÏÏÏÎÏÎ ÎÎÎÎÎÏÎÏÎ."
+"ÎÏÎÎ ÏÏÎÎÎÎÎÏÏÎÏÎ ÏÎÎ ÎÏÎÎÎÎ, ÎÎÏÎÎ ÎÎÎ ÏÎ ÎÎÎ ÂÎÏÏÏÎÂ ÏÏÏÏÎÎÎ, ÎÎÎÎÎÏÏÎ "
+"ÎÎÏÏÏ ÎÏÏ ÏÎ ÏÏÏÎÏÎÎÎÎ ÏÏÎÏÎÎÏÎÏÎ ÂÎÏÏÏÎÎÂ ÏÏÎ ÎÏÎÏÎÎÎÏÎÎÏÎ ÏÏÎ ÎÎÏÏÎÏÎÏÎ. "
+"ÎÏÎÎÏÎ ÏÎÎÎÎÏ ÏÎÏÎÏ ÏÎ ÏÏÏÎÏÎÎÎÎ ÎÎÎ ÏÎÏÏÎ ÏÎ ÎÎÏÎ ÏÏÎ. ÎÎ Î ÎÏÎÎÎÎÏ ÎÎÎÎÎ "
+"ÏÎÎÏ ÏÏÎÏÎÎÎÏ, Î ÎÎÎÎÏÏÎ ÏÎÏ ÏÏÎÎÎÎÎÏÏÎÏ ÎÎÎÎÎ ÎÏÎÏÎÏ ÏÏÎÎÎÎÎÎÏÎÎÎ. ÎÎ "
+"ÏÎÏÎÎÎ ÏÎÏÎÏÏÏÏÎ, ÏÏÎÎÎÎÎÏÏÎÏÏÎ ÏÎÎ ÎÎÏÎÎÎÏÎ ÏÎÏ ÎÏÎÎÎÎ ÎÎÎ 100 Î 1000 "
+"ÏÎÏÎÏ. ÎÎ ÎÎ ÏÎÏÎÏ ÏÎÏ ÏÏÎÎÎÎÎÏÏÎÏÎ ÎÎÎÏÎÎÏÎ ÏÎÏÎÏÏÏÏÎÏÎ ÎÏÏ ÎÎÏÎÎÎ "
+"ÎÎÏÏÎÏÏÎÎÏÏÎ, ÏÏÏÎ ÎÎ ÏÏÎÏÎÎ ÎÎ ÎÎÏÏÎ ÎÎÏÎÎÎÎ."
 
-#: C/optimization-harmful.xml:30(para)
-msgid "Repeatedly doing the above when it only needs to be done once."
+#: C/optimization-intro.xml:93(listitem/para)
+msgid ""
+"It is very easy to be misled by the profiler. There are stories of people "
+"optimizing the operating system idle-loop because that is where it spent all "
+"its time! Don't optimize code that does nothing the user cares about."
 msgstr ""
-"ÎÏÎÎÎÎÎÎÎÎÎÏÎÎÎÎ ÎÎÏÎÎÎÏÎ ÏÏÎ ÎÎÏÏÎÏÏ ÏÏÎÎ ÎÎ ÎÏÏÎÏÎ ÎÎ ÎÎÎÎÎ ÎÎÎ ÎÏÎÎ ÏÎÏÎ."
+"ÎÎÎÎÎ ÏÎÏÎ ÏÎÎÏ ÎÏÎÎÎÎ ÎÎ ÏÎÏ ÏÎÏÎÏÎÎÎÎÏÎÎ Î profiler. ÎÏÎÏÏÎÏÎ ÏÎÏÎÏÏÏÏÎÎÏ "
+"ÎÎÎÏÏÏÏÎ ÏÎÏ ÎÎÎÏÎÏÏÎÏÎÎÎÏÏÎÎ ÏÎÎ ÎÏÏÏÎ ÏÎÏÏÎÏ ÏÎÏ ÎÎÎÏÎÏÏÎÎÎÎÏ ÏÏÏÏÎÎÎÏÎÏ "
+"ÎÏÎÎÎÎ ÎÎÎÎ ÏÎÏÏ ÎÎÎÎÏÎÎ Î profiler ÏÏÎ ÏÎ ÏÏÏÏÎÎÎ ÏÏÎÏÎÎÎÏÏÎ ÏÎÎ "
+"ÏÎÏÎÏÏÏÏÎÏÎ ÏÏÏÎÎ ÏÎÏ! ÎÎ ÎÎÎÏÎÏÏÎÏÎÎÎÎÏÎ ÎÏÎÎÎÎ ÏÎÏ ÎÎÎ ÎÎÎÎÎ ÏÎÏÎÏÎ "
+"ÏÏÎÏÎÎÎ ÎÎÎ ÏÎ ÏÏÎÏÏÎ."
 
-#: C/optimization-harmful.xml:35(para)
-msgid "Ways in which you can optimize your code to be seek-friendly:"
+#: C/optimization-intro.xml:98(listitem/para)
+msgid ""
+"Remember the resources on the X server. Your program's memory usage doesn't "
+"include the pixmaps that are stored in the X server's process, but they are "
+"still using up memory. Use xrestop to see what resources your program is "
+"using."
 msgstr ""
-"ÎÏÏÏÎÎ ÎÎ ÏÎÏÏ ÎÏÎÎÎÏÏ ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÏÎÏÏÎÏÎÎÎÏÎÏÎ ÏÎÎ ÎÏÎÎÎÎ ÏÎÏ ÎÎÎ ÎÎÎÎÎ "
-"ÏÎÎÎÎÏÏ ÎÎ ÏÎÏ ÎÎÎÎÎÏÎÏÎÎÏ:"
-
-#: C/optimization-harmful.xml:40(para)
-msgid "Consolidate data into a single file."
-msgstr "ÎÎÎÎÏÏÏÎ ÏÎ ÎÎÎÎÎÎÎÎ ÏÎ ÎÎÎ ÎÎÎÎÎÎ ÎÏÏÎÎÎ."
+"ÎÎ ÎÏÎÎÏÏÎ ÏÎÏÏ ÏÏÏÎÏÏ ÏÎÏ ÎÎÏÏÎÏÎÏÎÏÎ X. Î ÏÏÎÏÎ ÎÎÎÎÎÏ ÏÎÏ ÏÏÎÎÏÎÎÎÎÏÏÏ "
+"ÏÎÏ ÎÎÎ ÏÎÏÎÎÎÎÎÎÎÎÎ ÏÎ pixmap ÏÎÏ ÎÏÎÎÎÎÎÏÎÎÏÎÎ ÏÏÎÏ ÎÎÎÏÎÎÏÎÎÏ ÏÎÏ "
+"ÎÎÏÏÎÏÎÏÎÏÎ X, ÎÎÎÎ ÎÎÎ ÏÎÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎ ÎÎÎÎÎ. ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ ÏÎ xrestop "
+"ÎÎÎ ÎÎ ÎÎÎÏÎ ÏÎÎÎÎ ÏÏÏÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÏÏ ÏÎ ÏÏÏÎÏÎÎÎÎ ÏÎÏ."
 
-#: C/optimization-harmful.xml:45(para)
-msgid "Keep data together in the same directory."
-msgstr "ÎÏÎÏÎÏÏÎ ÏÎ ÎÎÎÎÎÎÎÎ ÎÎÎÎ ÏÏÎÎ ÎÎÎÎ ÎÎÏÎÎÎÎÎ."
+#: C/optimization-intro.xml:104(itemizedlist/title)
+msgid "Low Level Hints"
+msgstr "ÎÏÎÎÎÎÎÎÎÏ ÏÎÎÎÎÎÏ ÎÏÎÏÎÎÎÏ"
 
-#: C/optimization-harmful.xml:50(para)
-msgid "Cache data so as to not need to reread constantly."
+#: C/optimization-intro.xml:106(listitem/para)
+msgid ""
+"When optimizing memory use, be wary of the difference between peak usage and "
+"average memory usage. Some memory is almost always allocated, this is "
+"usually bad. Some is only briefly allocated, this may be quite acceptable. "
+"Tools like massif use the concept of space-time, the product of memory used "
+"and the duration it was allocated for, instead."
 msgstr ""
-"ÎÎÏÎÎÎÏÎÏÎ ÏÏÎ ÎÎÎÎÎÎÎÏÎ ÏÏÎÎ ÏÏÎÏÏÏÎÎÎ ÎÎÎÎÎ ÏÏÏÎ ÎÎ ÎÎÎ ÏÏÎÎÎÎÎÏÎÎ ÏÏÎÎÏÏÏ "
-"ÎÎ ÎÎÎÎÎÎÎÎÎÎÎÎÏÎÎ."
+"ÎÏÎÎ ÎÎÎÏÎÏÏÎÏÎÎÎÎÏÎ ÏÎ ÏÏÎÏÎ ÏÎÏ ÎÎÎÎÎÏ, ÏÏÎÏÎÎÏÎ ÏÎ ÎÎÎÏÎÏÎ ÎÎÎÎÎÏÎ ÏÏÎ "
+"ÎÎÎÎÏÏÎ ÏÏÎÏÎ ÎÎÎ ÏÏÎ ÎÎÏÎ ÏÏÎÏÎ. ÎÏÎÎÏÎ ÏÎÎÏÎ ÎÎÏÎÎÎÎÎÏÎÎ ÎÎÏÎÎÎ ÏÎÏÏÏÎÏÎ "
+"ÎÎÎÎÎÏ ÎÎÎ ÏÏÎÏÎ ÎÏÏ ÏÎ ÏÏÏÎÏÎÎÎÎ, ÏÎ ÎÏÎÎÎ ÎÎÎÎÎ ÏÏÎÎÎÏÏ ÎÎÎÏ. ÎÎÏÎÎÎ ÎÎÎÎÎ "
+"ÎÎÎÎÎ ÎÏÎÎ ÎÎÏÎÎÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎÎ, ÎÎÎ ÎÏÏÏ ÎÏÎÏÎÎ ÎÎ ÎÎÎÎÎ ÎÏÎÎÎÎÏÏ. "
+"ÎÏÎÎÎÎÎÎ ÏÏÏÏ ÏÎ massif ÏÏÎÏÎÎÎÏÎÎÎÏÎ ÏÎÎ ÎÎÎÎÎÎ ÏÎÏ ÏÏÏÎÏÏÏÎÎÏ, ÏÎ ÎÎÎÏÎÎÎÎ "
+"ÏÎÏ ÏÎÏÏÏÎÏÎÏ ÏÎÏ ÎÎÎÎÎÏ ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÎÎÎ ÏÎÏ ÎÎÎÏÎÎÎÎÏ ÎÎÏÎ ÏÎÎ "
+"ÎÏÎÎÎ ÎÏÎÎ ÎÎÏÎÎÎÎÎÎÎÎÎ."
 
-#: C/optimization-harmful.xml:55(para)
+#: C/optimization-intro.xml:111(listitem/para)
 msgid ""
-"Share data so as not to have to reread it from disk when each application "
-"loads."
+"Time simplified bits of code that do only the things you know are essential, "
+"this gives an absolute lower limit on the time your code will take. For "
+"example, when optimizing a loop time the empty loop. If that is still too "
+"long no amount of micro-optimization will help and you will have to change "
+"your design. Make sure the compiler doesn't optimize away your empty loop."
 msgstr ""
-"ÎÎÎÎÎÎÏÎÏÎÏÏ ÎÎÎÎÎÎÎÏÎ ÏÏÏÎ ÎÎ ÎÎ ÏÏÎÎÎÎÎÏÎÎ ÎÎ ÏÎ ÎÎÎÎÎÎÎÎÎÎÎÎ ÎÏÏ ÏÎ ÎÎÏÎÎ "
-"ÎÎÎÎ ÎÏÎÏÎÎÎÎ ÏÏÎÎ ÏÎÏÏÏÎÎÎ."
+"ÎÎ ÎÏÎÎÏÎÎÎÎÎÎÎ ÎÎÎÎÎÏÎÎ ÎÏÎÎÎÎ ÏÎÏ ÎÎÎÎÏÎ ÎÏÎÎ ÏÏÎÎÎÎÏÎ ÏÎÏ ÎÎÏÎÏÎ ÎÎÎÎÎ "
+"ÎÏÏÎÏÎÎ, ÎÎÎÏÎ ÏÎÏ ÎÎÎÎÏÎ ÏÎ ÎÏÏÎÏÏÎ ÏÎÎÎÎÏÏÎÏÎ ÏÏÎÎ ÎÎÎ ÏÎ ÏÏÏÎÎ ÏÎÏ "
+"ÏÏÎÎÎÎÎÏÎÎ Î ÎÏÎÎÎÎÏ ÏÎÏ. ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ, ÏÏÎÎ ÎÎÎÏÎÏÏÎÏÎÎÎÎÏÎ ÎÎÎ ÎÏÏÏÎ, "
+"ÏÏÎÎÎÎÎÏÏÎÏÏÎ ÏÎÎ ÎÎÏ ÎÎÎÎÎ ÎÎÎÎÎÏ. ÎÎ ÎÏÏÏÏ Î ÏÏÏÎÎÏ ÎÎÎÎÎ ÏÎÎÏ ÎÎÎÎÎÎÏ, "
+"ÏÏÏÎ ÎÎ ÎÎ ÏÎÏ ÎÎÎÎÎÏÎÎ ÎÎÎÏÎÎÏ Î ÎÎÎÏÎÎÎÎÏÎÏÏÎÏÎÎÎÏÎ, ÎÎÎ ÎÎ ÏÏÎÏÎÎ ÎÎ "
+"ÎÎÎÎÎÎÏÎ ÏÎ ÏÏÎÎÎÎÏÎÏ ÏÎÏ. ÎÎÎÎÎÏÎÎÎÏÎ ÏÏÎ Î ÎÎÏÎÎÎÏÏÏÎÏÏÎÏ ÎÎ ÎÎÎÏÎÏÏÎÏÎÎÎÎ "
+"ÏÎÎ ÎÎÎÎÎ ÎÏÏÏÎ."
 
-#: C/optimization-harmful.xml:60(para)
+#: C/optimization-intro.xml:116(listitem/para)
 msgid ""
-"Consider caching all of the data in a single binary file that is properly "
-"aligned and can be mmaped."
+"Move code out from inside loops. A slightly more complicated piece of code "
+"that is executed once is far quicker than a simple piece of code executed a "
+"thousand times. Avoid calling slow code often."
 msgstr ""
-"ÎÎÎÏÏÎÏÎ ÎÎ ÎÎÏÎÎÏÎÏÎÏÎ ÏÎÎ ÏÎ ÎÎÎÎÎÎÎÎ ÏÏÎÎ ÏÏÎÏÏÏÎÎÎ ÎÎÎÎÎ ÏÎ ÎÎÎ ÎÎÎÎÎÎ "
-"ÎÏÎÎÎÎÏ ÎÏÏÎÎÎ ÏÎÏ ÎÏÎÏÎÏÎÎÎÎÎÎÏÎÎ ÎÎÏÎÎÎÎÎÎ ÎÎÎ ÎÏÎÏÎÎ ÎÎ ÎÎÎÎÎ mmaped."
+"ÎÏÎÎÏÎÏÏÎ ÎÏÎÎÎÎ ÎÏÏ ÎÏÏÏÎÏÎÎÎÏÏ ÎÏÏÏÎÏÏ. ÎÎÎ ÎÎÎÎ ÏÎÎ ÏÎÎÏÏÎÎÎÎ ÎÎÎÎÎÏÎ "
+"ÎÏÎÎÎÎ ÏÎÏ ÎÎÏÎÎÎÎÏÎÎ ÎÎÎ ÏÎÏÎ ÎÎÎÎÎ ÏÎÎÏ ÎÏÎÎÎÏÏÏÎÏÎ ÎÏÏ ÎÎÎ ÎÏÎÎÏÏÏÎÏÎ "
+"ÎÎÎÎÎÏÎ ÎÏÎÎÎÎ ÏÎÏ ÎÎÏÎÎÎÎÏÎÎ ÏÎÎÎÎÏ ÏÎÏÎÏ. ÎÏÎÏÏÎÎÏÎ ÎÎ ÎÎÎÎÎÏÎ ÏÏÏÎÎ ÎÏÎÏ "
+"ÎÏÎÎÎÎ."
 
-#: C/optimization-harmful.xml:65(para)
+#: C/optimization-intro.xml:121(listitem/para)
 msgid ""
-"The trouble with disk seeks are compounded for reads, which is unfortunately "
-"what we are doing. Remember, reads are generally synchronous while writes "
-"are asynchronous. This only compounds the problem, serializing each read, "
-"and contributing to program latency."
+"Give the compiler as many hints as possible. Use the const keyword. Use "
+"<envar>G_INLINE_FUNC</envar> for short, frequently called, functions. Look "
+"up <envar>G_GNUC_PURE</envar>, <envar>G_LIKELY</envar> and the other glib "
+"miscellaneous macros. Use the macros instead of gcc-specific keywords to "
+"ensure portability."
 msgstr ""
-"ÎÎ ÏÏÏÎÎÎÎÎ ÎÎ ÏÎÎ ÎÎÎÎÎÏÎÏÎÎÏ ÎÎÏÎÏÎ ÎÎÎÎÎ ÎÏÎÎÏÎ ÏÏÎÎÎÏÎ ÏÏÎ ÎÎÎÏÎÏÎ ÏÎÎ "
-"ÎÎÎÎÎÏÏÎ, ÏÎ ÏÏÎÎÎ ÎÎÎÎÎ ÎÏÏÏÏÏÏÏ ÎÏÏÏ ÏÎÏ ÎÎÎÎÏÎÎ. ÎÎ ÎÏÎÎÏÏÎ, Î ÎÎÎÎÎÏÏÎ "
-"ÎÎÎÎÎ ÎÎÎÎÎÎ ÏÏÎÏÏÎÎÎ ÎÎÏ Î ÎÎÎÏÎÏÎ ÎÎÎÎÎ ÎÏÏÎÏÏÎÎÎ. ÎÏÏÏ ÎÎÎÎÎ ÏÎÎÎ ÏÏÎÎÎÏÎ "
-"ÏÎ ÏÏÏÎÎÎÎÎ, ÎÎÎÏÎÏÏÎÎÏÎÏ ÏÎÎÏÎÎÎÎ ÎÎÎÎ ÎÎÎÎÎÏÏÎ, ÎÎÎ ÏÏÎÎÎÎÎÎÎÏÎÏ ÏÏÎ "
-"ÎÎÎÎÎÎÎÏÏÎ ÎÎÏÎÏÏÎÏÎ ÏÎÏ ÏÏÎÎÏÎÎÎÎÏÎÏ."
-
-#: C/optimization-guide.xml:5(title)
-msgid "Optimizing GNOME Software"
-msgstr "ÎÎÎÏÎÏÏÎÏÎÎÎÏÎ  ÎÎÎÎÏÎÎÎÎÏ ÏÎÏ GNOME"
-
-#: C/optimization-guide.xml:8(publishername) C/optimization-guide.xml:56(para)
-msgid "GNOME Documentation Project"
-msgstr "ÎÏÏÎÏÎÎÎÎ ÏÎÎÎÎÏÎÏÏÎÏ ÏÎÏ GNOME"
-
-#: C/optimization-guide.xml:11(year) C/optimization-guide.xml:15(year)
-msgid "2004-2005"
-msgstr "2004-2005"
+"ÎÏÏÏÎ ÏÏÎÎ ÎÎÏÎÎÎÏÏÏÎÏÏÎ ÏÏÎÏ ÏÎÏÎÏÏÏÏÎÏÎÏ ÏÏÎÎÎÎÎÎÎÏ ÎÏÎÏÎÎÏÎ. "
+"ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ ÏÎ ÎÎÎÎ ÎÎÎÎÎÎ const. ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ ÏÎ <envar>G_INLINE_FUNC</"
+"envar> ÎÎÎ ÏÏÎÏÎÎÎÏ ÏÏÎÎÏÏÎÏÎÎÏ ÏÎÏ ÎÎÎÎÏÎÏÎÎ ÏÏÏÎÎ. ÎÎÎÏÎ ÎÎÎ ÏÎÏ "
+"ÎÎÎÏÎÎÎÏÎÎÎÏ <envar>G_GNUC_PURE</envar>, <envar>G_LIKELY</envar> ÎÎÎ "
+"ÎÎÎÏÎÏÎÏ ÎÎÎÎÏ ÏÎÏ glib. ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ ÏÎÏ ÎÎÎÏÎÎÎÏÎÎÎÏ ÎÎÏÎ ÎÎÎ ÎÎÎÎÎÏ "
+"ÎÎÎÎÎÎÎ ÏÎÏ ÎÎÎÎÎÎÎÎÏÎÎÎÎÏ ÎÎÎ ÏÎ gcc, ÎÎÎ ÎÎ ÎÎÎÏÏÎÎÎÏÎÏÎ ÏÎ ÏÎÏÎÏÏÏÎÏÎ."
 
-#: C/optimization-guide.xml:12(holder)
-msgid "Callum McKenzie"
-msgstr "Callum McKenzie"
+#: C/optimization-intro.xml:126(listitem/para)
+msgid ""
+"Don't use assembly language. It is not portable and, while it may be fast on "
+"one processor, it is not even guaranteed to be fast on every processor that "
+"supports that architecture (e.g. Athlon vs. Pentium 4)."
+msgstr ""
+"ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÏÎ ÏÎ ÎÎÏÏÏÎ assembly. ÎÎÎ ÎÎÎÎÎ ÏÎÏÎÏÎ, ÎÎÎ ÎÎÏ ÎÏÎÏÎÎ ÎÎ "
+"ÎÎÎÎÎ ÎÏÎÎÎÏÎ ÏÎ ÎÎÎÎ ÎÏÎÎÎÏÎÎÏÏÎ, ÎÎÎ ÎÎÎÎÎ ÎÎÎÏÎÎÎÎÎ ÏÏÎ ÎÎ ÎÎÎÎÎ ÎÏÎÎÎÏÎ "
+"ÎÎÎ ÏÎ ÎÏÎÎÎÎÎÏÎÏÎ ÎÎÎÎ ÎÏÎÎÎÏÎÎÏÏÎ ÏÎÏ ÏÎÏÏÏÎÏÎÎÎÎ ÎÎÎÎÎÎ ÏÎÎ ÎÏÏÎÏÎÎÏÎÎÎÎÎ "
+"(Ï.Ï. Athlon vs Pentium 4)."
 
-#: C/optimization-guide.xml:16(holder)
-msgid "Robert Love"
-msgstr "Robert Love"
+#: C/optimization-intro.xml:131(listitem/para)
+msgid ""
+"Don't rewrite an existing library routine unless you are sure it is "
+"unnecessarily slow. Many CPU-intensive library routines have already been "
+"optimized. Conversely, some library routines are slow, especially ones that "
+"make system calls to the operating system."
+msgstr ""
+"ÎÎ ÎÎÎÎÎÏÎÏÎÏÎ ÎÎÎ ÏÏÎÏÏÎÎÎÎÎ ÎÎÎÎÎÎÎÎÎÎ ÎÎÏÏÏ ÎÎÎ ÎÎ ÎÎÏÏÎ ÎÎÎÎÎÎÎ ÏÏÎ "
+"ÎÎÎÎÎ ÎÎÎÎÎÎÎÎÏÎÎÏÎ ÎÏÎÎ. ÎÎÎÎÎÏ ÎÎÎÎÎÎÎÎÎÎÏ ÏÎÏ ÎÎÏÎÏÎÎÎÏÎ ÏÎÎ ÎÏÎÎÎÏÎÎÏÏÎ "
+"ÎÎÎÎÎ ÎÎÎ ÎÎÎÏÎÏÏÎÏÎÎÎÎÎÎÎÏ. ÎÎÏÎÏÏÎÎÏÎ, ÎÎÏÎÎÎÏ ÏÎÏÏÎÎÎÏ ÎÎÎÎÎÎÎÎÎÏÎ ÎÎÎÎÎ "
+"ÎÏÎÎÏ, ÎÎÎÎÎÎ ÎÎÏÎÎÎÏ ÏÎÏ ÎÎÎÎÏÎ ÏÎÎÎÎÏ ÎÎÎÏÎÎÏ ÏÏÏÏÎÎÎÏÎÏ ÏÏÎ ÎÎÎÏÎÏÏÎÎÎÏ "
+"ÏÏÏÏÎÎÎ."
 
-#: C/optimization-guide.xml:20(firstname)
-msgid "Callum"
-msgstr "Callum"
+#: C/optimization-intro.xml:136(listitem/para)
+msgid ""
+"Minimize the number of libraries you link to. The fewer libraries to link "
+"in, the faster the program starts. This is a difficult thing to do with "
+"GNOME."
+msgstr ""
+"ÎÎÎÏÎÏÏÎÏÎÎÎÏÏÎ ÏÎÎ ÎÏÎÎÎÏ ÏÏÎ ÎÎÎÎÎÎÎÎÎÏÎ ÎÎ ÏÎÏ ÎÏÎÎÎÏ ÏÏÎÎÎÎÏÏÎ. ÎÎ ÏÏÎ "
+"ÎÎÎÏÏÎÏÎÏ ÎÎÎÎÎÎÎÎÎÎÏ ÏÏÎÎÎÎÏÎÎ ÎÎÎ ÏÏÏÎÏÎÎÎÎ, ÏÏÏÎ ÎÏÎÎÎÏÏÏÎÏÎ ÎÎÎÎÎÎ. ÎÏÏÏ "
+"ÎÎÎÎÎ ÎÎÏÎ ÎÏÏÎÎÎÎ ÎÎ ÎÎÎÎÎ ÏÏÎ GNOME."
 
-#: C/optimization-guide.xml:21(surname)
-msgid "McKenzie"
-msgstr "McKenzie"
+#: C/optimization-intro.xml:142(itemizedlist/title)
+msgid "High Level Tricks"
+msgstr "ÎÏÎÏÎ ÏÏÎÎÎÏ ÎÏÎÏÎÎÎÏ"
 
-#: C/optimization-guide.xml:24(firstname)
-msgid "Robert"
-msgstr "Robert"
+#: C/optimization-intro.xml:144(listitem/para)
+msgid ""
+"Take advantage of concurrency. This doesn't just mean using multiple "
+"processors, it also means taking advantage of the time the user spends "
+"thinking about what they are going to do next to perform some calculations "
+"in anticipation. Do calculations while waiting for data to be loaded off "
+"disk. Take advantage of multiple resources, use them all at once."
+msgstr ""
+"ÎÎÎÎÏÎÎÎÎÏÏÎÎÏÎ ÏÎ ÏÏÎÏÏÎÎÎÏÎÏ. ÎÏÏÏ ÎÎ ÏÎÎÎÎÎÎÎ ÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÏÎ "
+"ÏÎÎÎÎÏÎÎÏÏ ÎÏÎÎÎÏÎÎÏÏÎÏ, ÎÎÎÎ ÎÎÎ ÎÎ ÎÎÎÎÏÎÎÎÎÏÎÏÏÎ ÏÎ ÏÏÏÎÎ ÏÎÏ Î ÏÏÎÏÏÎÏ "
+"ÏÏÎÏÎÎÎ ÎÎ ÏÎÎÏÏÎÏÎÎ ÏÎ ÎÎ ÎÎÎÎÎ ÏÏÎ ÏÏÎÎÏÎÎÎ, ÎÎÎ ÎÎ ÎÎÎÎÏÎ ÎÎÏÎÎÎÏÏ "
+"ÏÏÎÎÎÎÎÏÎÎÏÏ ÏÎÏ ÏÏÎÎÎÎÎÏÏÎ. ÎÎÎÏÎ ÏÏÎÎÎÎÎÏÎÎÏÏ ÎÎÏ ÏÎÏÎÎÎÎÎÏÎ ÎÎÎ "
+"ÏÎÎÏÎÏÎÏÎÎÏ ÎÎ ÏÎÏÏÏÎÎÏÎ ÎÏÏ ÏÎ ÎÎÏÎÎ. ÎÎÎÎÏÎÎÎÎÏÏÎÎÏÎ ÏÎÎÎÎÏÎÎÏÏ ÏÏÏÎÏÏ, "
+"ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎÏÏ ÏÎÏÏÏÏÏÎÎÎ. "
 
-#: C/optimization-guide.xml:25(surname)
-msgid "Love"
-msgstr "Love"
+#: C/optimization-intro.xml:149(listitem/para)
+msgid ""
+"Cheat. The user only has to think that the computer is fast, it doesn't "
+"matter whether it actually is or not. It is the time between the command and "
+"the answer that is important, it doesn't matter if the response is pre-"
+"calculated, cached, or will in fact be worked out later at a more convenient "
+"time, as long as the user gets what they expect."
+msgstr ""
+"ÎÎÎÎÎÎÏÏÎ. Î ÏÏÎÏÏÎÏ ÏÏÎÎÎÎÎÏÎÎ ÎÏÎÎ ÎÎ ÎÎÎÎÎÎÎ ÏÏÎ Î ÏÏÎÎÎÎÎÏÏÎÏ ÎÎÎÎÎ "
+"ÎÏÎÎÎÏÎÏ, ÎÏÏÎÏÎ ÎÎ ÏÏÎÎÎÎÏÎÎÎ ÎÎÎÎÎ. ÎÎÎÎÏÎÎ ÎÏÎÎ Î ÏÏÏÎÎÏ ÎÎÏÎÎÏ ÏÎÏ "
+"ÎÎÏÎÎÎÏ ÎÎÎ ÏÎÏ ÎÏÎÎÏÎÏÎÏ, ÎÎÎ ÏÏÎ ÎÎ Î ÎÏÎÎÏÎÏÎ ÏÏÎÎÎÎÎÏÏÎÎÎ ÎÏÏ ÏÏÎÎ, Î "
+"ÎÏÎÎ ÏÏÎÏÏÏÎÎÎ ÎÏÎÎÎÎÎÏÎÎÎÎ, Î ÎÎÏÎÎ ÎÎÎ ÎÎ ÎÎ ÏÏÎÎÎÎÎÏÏÎÎ ÎÏÎÏÏÎÏÎ ÏÎ "
+"ÎÎÏÎÎÎ ÏÎÎ ÎÎÎÎÎÏ ÏÏÏÎÎ, ÏÏÎÎÎÎ Î ÏÏÎÏÏÎÏ ÎÎ ÏÎÏÎÎ ÎÏÏÏ ÏÎÏ ÏÎÏÎÎÎÎÎÎ."
 
-#: C/optimization-guide.xml:29(para)
+#: C/optimization-intro.xml:154(listitem/para)
 msgid ""
-"Permission is granted to copy, distribute and/or modify this document under "
-"the terms of the <citetitle>GNU Free Documentation License</citetitle>, "
-"Version 1.1 or any later version published by the Free Software Foundation "
-"with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. "
-"You may obtain a copy of the <citetitle>GNU Free Documentation License</"
-"citetitle> from the Free Software Foundation by visiting <ulink type=\"http"
-"\" url=\"http://www.fsf.org\";>their Web site</ulink> or by writing to: Free "
-"Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA "
-"02111-1307, USA."
+"Do things in the idle loop. It is easier to program than using full multi-"
+"threading but still gets things done out of the users eye. Be careful "
+"though, if you spend too long in the idle loop your program will become "
+"sluggish. So regularly give control back to the main loop."
 msgstr ""
-"ÎÎÏÎÎÎÎÏÎÎ Î ÎÎÎÎÏ ÏÏÎÎ ÎÎÏÎÎÏÎÏÎ, ÎÎÎÎÎÎÎ Î/ÎÎÎ ÏÏÎÏÎÏÎÎÎÏÎ ÏÎÏ ÏÎÏÏÎÏÎÏ "
-"ÎÎÎÏÎÏÎÏ ÏÏÏ ÏÎÏÏ ÏÏÎÏÏ ÏÎÏ <citetitle>GNU Free Documentation License</"
-"citetitle>, ÎÎÎÎÏÎ 1.1 Î ÎÏÎÎÎÎÎÏÎÏÎ ÏÎÎ ÏÏÏÏÏÎÏÎ ÎÎÎÎÏÎ ÏÎÏ ÎÎÎÎÏÎÎÏÎÏÎÎ "
-"ÎÏÏ ÏÎ Free Software Foundation ÏÏÏÎÏ ÎÎÎÏÎÎÎÎÏÎ ÏÎÎÎÎÏÎ, ÏÏÏÎÏ ÎÎÎÎÎÎÎ "
-"ÎÎÏÏÏÎÎÎÏ, ÎÎÎ ÎÎÏÏÏ ÎÎÎÎÎÎÎ ÎÏÎÏÎÏÏÏÎÎÎÏ. ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÎÏÎ ÎÎÎ ÎÎÏÎÎÏÎÏÎ "
-"ÏÎÏ <citetitle>GNU Free Documentation License</citetitle> ÎÏÏ ÏÎ Free "
-"Software Foundation ÎÎ ÎÎÎ ÎÏÎÏÎÎÏÎ ÏÏÎ <ulink type=\"http\" url=\"http://";
-"www.fsf.org\">ÎÎÎÏÏÎÎÏ ÏÎÏÏ ÏÏÏÎ</ulink> Î ÎÎ ÎÏÎÎÎÎ ÏÏÎ: Free Software "
-"Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA."
+"ÎÎÎÏÎ ÏÏÎÎÎÎÏÎ ÏÏÎÎ ÎÎÎÎÎÏÎÏ ÎÏÏÏÎ. ÎÎÎÎÎ ÎÏÎÎÎÏÏÎÏÎ ÏÏÎÎ ÏÏÎÎÏÎÎÎÎÏÎÏÎÏ ÎÏÏ "
+"ÏÎ ÏÏÎÏÎ ÏÎÎÏÎÎÎÎÏÎÎÏÏÎÏÎÏ, ÎÎÎÎ ÎÎÎ ÏÎÎÎ ÎÏÎÏÏÎÏÎÎÎÎ ÎÎ ÎÎÎÎÎ ÏÏÎÎÎÎÏÎ "
+"ÏÏÏÎÏ ÎÎ ÏÎ ÎÎÏÎÎÎÎÎÎÎÎÏÎÎ Î ÏÏÎÏÏÎÏ. ÎÎ ÎÎÏÏÎ ÏÎÏÏ ÏÏÎÏÎÎÏÎÎÎÎ, ÎÎÎÏÎ ÎÎ "
+"ÏÏÎÏÎÎÎÏÎ ÏÎÎÏ ÏÏÏÎÎ ÏÏÎÎ ÎÎÎÎÎÏÎÏ ÎÏÏÏÎ ÏÏÏÎ ÏÎ ÏÏÏÎÏÎÎÎÎ ÏÎÏ ÎÎÎÎÏÎÎ ÎÏÎÏ. "
+"ÎÏÏÏÎ ÎÎ ÎÎÎÎÏÎÎ ÏÎÎÏÎÎÎ ÏÎÎ ÎÎÎÎÏÎ ÏÏÎÎ ÎÏÏÎÎ ÎÏÏÏÎ."
 
-#: C/optimization-guide.xml:41(para)
+#: C/optimization-intro.xml:159(listitem/para)
 msgid ""
-"Many of the names used by companies to distinguish their products and "
-"services are claimed as trademarks. Where those names appear in any GNOME "
-"documentation, and those trademarks are made aware to the members of the "
-"GNOME Documentation Project, the names have been printed in caps or initial "
-"caps."
+"If all else fails, tell the user that the code is going to be slow and put "
+"up a progress bar. They won't be as happy as if you had just presented the "
+"results, but they will at least know the program hasn't crashed and they can "
+"go get a cup of coffee."
 msgstr ""
-"ÎÎÎÎÎ ÎÏÏ ÏÎ ÎÎÏÎÎÏÎ ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÏÏ ÏÎÏ ÎÏÎÏÎÎÏÎÏÎÎÏ ÎÎÎ ÎÎ "
-"ÎÎÎÏÎÏÎÏÎÎÎÏÎÏÎ ÏÎ ÏÏÎÏÏÎÏÎ ÏÎÏÏ ÎÎÎ ÏÎÏ ÏÏÎÏÎÏÎÎÏ ÏÎÏÏ  ÎÎÏÎÎÎÎÎÎÏÎÎ ÏÏ "
-"ÎÎÏÎÏÎÎÎ ÏÎÎÎÏÎ. ÎÏÎÏ ÎÏÏÎ ÏÎ ÎÎÏÎÎÏÎ ÎÎÏÎÎÎÎÎÎÏÎÎ ÏÎ ÎÏÎÎÎÎÎÏÎÏÎ ÏÎÎÎÎÏÎÏÏÎ "
-"ÏÎÏ GNOME, ÎÎÎ ÎÏÏÎ ÏÎ ÎÎÏÎÏÎÎÎ ÏÎÎÎÏÎ ÎÎÎÎÎÏÎÎ ÎÎÏÏÏÎ ÏÏÎ ÎÎÎÎ ÏÎÏ ÎÏÎÎÏ "
-"ÏÎÎÎÎÏÎÏÏÎÏ ÏÎÏ GNOME,  ÏÎ ÎÎÏÎÎÏÎ ÎÎ ÏÏÏÏÎÎÎÏÎÎ ÎÎ ÎÎÏÎÎÎÎÎ ÎÏÎÎÎÎÏÎ Î "
-"ÎÏÎÎÎÎÏÎ ÏÎÏÎÏÎ."
+"ÎÎ ÏÎÎ ÏÎ ÏÏÏÎÎÎÏÎ ÎÏÎÏÏÏÎÏÎ, ÏÎÎÏÎ ÏÏÎ ÏÏÎÏÏÎ ÏÏÎ Î ÎÏÎÎÎÎÏ ÎÎÎÎÎ ÎÏÎÏÏ ÎÎÎ "
+"ÎÎÎÏÎ ÎÎÎ ÎÏÎÏÎ ÏÏÎÏÎÎÏ. ÎÎ ÎÎ ÎÎÎÎÎ ÏÏÏÎ ÎÏÏÎÏÎÏÏÎÎÎÎÎÏ ÏÏÎ ÎÎ ÎÏÎÎ ÎÎ ÏÎÏ "
+"ÎÎÎÎÏÎ ÎÎÎÏÎ ÎÏÎÏÎÎÎÏÎÎÏÎ, ÎÎÎÎ ÏÎÏÎÎÏÎÏÏÎÎ ÎÎ ÎÎÏÎÏÎ ÏÏÎ ÏÎ ÏÏÏÎÏÎÎÎÎ ÎÎÎ "
+"ÎÏÎÎÎÏÎ ÎÎÎ ÏÏÎ ÎÏÎÏÎÏÎ ÎÎ ÏÎÎÏÎÎÏÎ ÎÎÎ ÎÎ ÏÏÎÎÎÎÏÎ ÎÎÎ ÎÎÏÎÎÎÎÎ."
 
-#: C/optimization-guide.xml:52(revnumber)
-msgid "0.1"
-msgstr "0.1"
+#~ msgid "2004-2005"
+#~ msgstr "2004-2005"
 
-#: C/optimization-guide.xml:53(date)
-msgid "November 2007"
-msgstr "ÎÎÎÎÎÏÎÎÏ 2007"
+#~ msgid "Callum McKenzie"
+#~ msgstr "Callum McKenzie"
 
-#: C/optimization-guide.xml:55(para)
-msgid "William Johnston"
-msgstr "William Johnston"
+#~ msgid "Robert Love"
+#~ msgstr "Robert Love"
 
-#: C/optimization-guide.xml:57(para)
-msgid "Intial conversion to docbook format."
-msgstr "ÎÎÏÎÏÏÎÏÎ ÎÏÏ Intial ÏÏÎÎ ÎÎÏÏÎ docbook."
+#~ msgid "Callum"
+#~ msgstr "Callum"
 
-#: C/optimization-guide.xml:63(para)
-msgid ""
-"Software can be optimized in many ways: for speed, program size, or memory "
-"use. This section contains guides and tutorials for optimizing your software."
-msgstr ""
-"ÎÎ ÎÎÎÎÏÎÎÎÏ ÎÏÎÏÎÎ ÎÎ ÎÎÎÏÎÏÏÎÏÎÎÎÎÎÎ ÎÏÏ ÏÎÎÎÎÏ ÎÏÏÏÎÎÏ: ÎÎÎ ÏÎÎ ÏÎÏÏÏÎÏÎ, "
-"ÏÎ ÎÎÎÎÎÎÏ ÏÎÏ ÏÏÎÎÏÎÎÎÎÏÎÏ,  Î ÏÎ ÏÏÎÏÎ ÎÎÎÎÎÏ. ÎÏÏÏ ÏÎ ÏÎÎÎÎ ÏÎÏÎÎÏÎÎ "
-"ÎÎÎÎÎÏÏ ÎÎÎ ÏÎÎÎÎÎÏÎÎ ÎÎÎ ÏÎ ÎÎÎÏÎÏÏÎÏÎÎÎÏÎ ÏÎÏ ÎÎÎÎÏÎÎÎÎÏ ÏÎÏ."
+#~ msgid "McKenzie"
+#~ msgstr "McKenzie"
 
-#. Put one translator per line, in the form of NAME <EMAIL>, YEAR1, YEAR2
-#: C/optimization-guide.xml:0(None)
-msgid "translator-credits"
-msgstr ""
-"ÎÎÎÎÎÎÎÎ ÎÎÏÎÏÏÎÏÏÎÎÎ ÎÎÎÎÎ GNOME\n"
-" ÎÎÎÎÎÎÏ ÎÎÏÏÎÎÏÎÏÎÏ <giannis1_86 hotmail com>\n"
-" ÎÎÎÎÏ ÎÎÎÎÏÎÎÎÎÏ <simos gnome org>\n"
-" ÎÏÎÏÏÎÎÏÎÎÎÏ ÎÎÏÏÎÏÎÏÎÏ <kouratoras gmail com>\n"
-" ÎÏÏÎÏÎÎ ÎÎÎÎÏÏÎ <sotitz gmail com>\n"
-" ÎÎÎÎÎ ÎÎÏÎÏÎÎÎÎÏ <epetoumenou gmail com>\n"
-" ÎÎÏÏÎÎÏÎÏ ÎÎÏÎÎÏ-ÎÎÏÏÎÏ <p tournaris gmail com>\n"
-"\n"
-"ÎÎÎ ÏÎÏÎÏÏÏÏÎÏÎ ÎÎÎÏÎ http://www.gnome.gr/";
+#~ msgid "Robert"
+#~ msgstr "Robert"
+
+#~ msgid "Love"
+#~ msgstr "Love"
+
+#~ msgid "0.1"
+#~ msgstr "0.1"
+
+#~ msgid "November 2007"
+#~ msgstr "ÎÎÎÎÎÏÎÎÏ 2007"
diff --git a/platform-demos/el/el.po b/platform-demos/el/el.po
index e52ff14..b291674 100644
--- a/platform-demos/el/el.po
+++ b/platform-demos/el/el.po
@@ -7,8 +7,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: gnome-devel-docs master\n"
-"POT-Creation-Date: 2012-10-14 10:13+0000\n"
-"PO-Revision-Date: 2012-10-15 14:57+0200\n"
+"POT-Creation-Date: 2013-01-21 11:38+0000\n"
+"PO-Revision-Date: 2013-01-26 09:58+0200\n"
 "Last-Translator: Tom Tryfonidis <tomtryf gmail com>\n"
 "Language-Team: team gnome gr\n"
 "Language: el\n"
@@ -16,7848 +16,29354 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Virtaal 0.7.0\n"
+"X-Generator: Poedit 1.5.4\n"
 "X-Project-Style: gnome\n"
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/window.vala.page:24(None) C/window.py.page:30(None)
-#: C/window.js.page:24(None) C/window.c.page:21(None)
-#: C/GtkApplicationWindow.vala.page:21(None)
-#: C/GtkApplicationWindow.py.page:26(None)
-#: C/GtkApplicationWindow.js.page:21(None)
-#: C/GtkApplicationWindow.c.page:21(None)
-msgid "@@image: 'media/window.png'; md5=eb0cde3530978619c25bddfaeb453345"
-msgstr "@@image: 'media/window.png'Â md5=eb0cde3530978619c25bddfaeb453345"
-
-#: C/window.vala.page:7(title)
-msgid "Window (Vala)"
-msgstr "ÎÎÏÎÎÏÏÎ (Vala)"
+#. Put one translator per line, in the form NAME <EMAIL>, YEAR1, YEAR2
+msgctxt "_"
+msgid "translator-credits"
+msgstr "ÎÎÎÎÏÏÎÏ ÎÏÎÎÎÎÏ <dmtrs32 gmail com>, 2012"
+
+#: C/index.page:7(credit/name)
+msgid "GNOME Documentation Team"
+msgstr "ÎÎÎÎÎ ÏÎÎÎÎÏÎÏÏÎÏ GNOME"
+
+#: C/index.page:9(credit/years)
+msgid "2010, 2011"
+msgstr "2010, 2011"
+
+#: C/index.page:12(credit/name) C/message-board.c.page:14(credit/name)
+msgid "Shaun McCance"
+msgstr "Shaun McCance"
+
+#: C/index.page:14(credit/years) C/message-board.c.page:16(credit/years)
+msgid "2010"
+msgstr "2010"
 
-#: C/window.vala.page:12(name) C/window.py.page:12(name)
-#: C/window.c.page:12(name) C/vala.page:10(name) C/tutorial.py.page:14(name)
-#: C/translate.page:10(name) C/treeview_simple_liststore.vala.page:14(name)
-#: C/toolbar_builder.vala.page:14(name) C/toolbar_builder.py.page:14(name)
-#: C/toolbar.vala.page:13(name) C/toolbar.js.page:12(name)
-#: C/togglebutton.vala.page:15(name) C/textview.vala.page:12(name)
-#: C/switch.vala.page:16(name) C/statusbar.vala.page:15(name)
-#: C/spinner.vala.page:12(name) C/spinbutton.vala.page:14(name)
-#: C/scrolledwindow.vala.page:13(name) C/scale.vala.page:14(name)
-#: C/radiobutton.vala.page:15(name) C/py.page:10(name)
-#: C/progressbar.vala.page:12(name) C/messagedialog.vala.page:12(name)
-#: C/menubutton.py.page:12(name) C/menubutton.vala.page:12(name)
-#: C/menubar.vala.page:14(name) C/menubar.py.page:14(name)
-#: C/linkbutton.vala.page:12(name) C/label.vala.page:12(name)
-#: C/js.page:11(name) C/index.page:22(name) C/image-viewer.vala.page:26(name)
-#: C/image.vala.page:12(name) C/helloWorld.js.page:19(name)
-#: C/guitar-tuner.vala.page:21(name) C/GtkApplicationWindow.vala.page:12(name)
-#: C/GtkApplicationWindow.py.page:12(name)
-#: C/GtkApplicationWindow.js.page:12(name)
-#: C/GtkApplicationWindow.c.page:12(name) C/grid.vala.page:14(name)
-#: C/grid.py.page:13(name) C/gmenu.vala.page:19(name) C/gmenu.py.page:12(name)
-#: C/gmenu.js.page:12(name) C/gmenu.c.page:12(name)
-#: C/filechooserdialog.vala.page:15(name) C/entry.vala.page:12(name)
-#: C/documentation.page:10(name) C/dialog.vala.page:12(name)
-#: C/cpp.page:10(name) C/combobox.vala.page:12(name)
-#: C/colorbutton.vala.page:14(name) C/checkbutton.vala.page:12(name)
-#: C/checkbutton.c.page:12(name) C/c.page:10(name) C/button.vala.page:13(name)
-#: C/bug-filing.page:9(name) C/beginner.vala.page:14(name)
-#: C/beginner.py.page:14(name) C/aboutdialog.vala.page:20(name)
+#: C/index.page:17(credit/name) C/guitar-tuner.c.page:18(credit/name)
+#: C/guitar-tuner.cpp.page:16(credit/name)
+#: C/guitar-tuner.py.page:18(credit/name)
+#: C/guitar-tuner.vala.page:17(credit/name)
+#: C/image-viewer.c.page:18(credit/name)
+#: C/image-viewer.cpp.page:16(credit/name)
+#: C/image-viewer.js.page:18(credit/name)
+#: C/image-viewer.py.page:18(credit/name)
+#: C/image-viewer.vala.page:18(credit/name)
+#: C/magic-mirror.vala.page:18(credit/name)
+#: C/photo-wall.c.page:17(credit/name)
+#: C/record-collection.js.page:18(credit/name)
+msgid "Johannes Schmid"
+msgstr "Johannes Schmid"
+
+#: C/index.page:19(credit/years) C/bug-filing.page:11(credit/years)
+#: C/documentation.page:12(credit/years) C/entry.py.page:20(credit/years)
+#: C/model-view-controller.py.page:16(credit/years)
+#: C/properties.py.page:16(credit/years)
+#: C/signals-callbacks.py.page:16(credit/years)
+#: C/strings.py.page:16(credit/years) C/textview.py.page:16(credit/years)
+#: C/toolbar_builder.py.page:28(credit/years)
+#: C/translate.page:12(credit/years)
+msgid "2011"
+msgstr "2011"
+
+#: C/index.page:22(credit/name) C/aboutdialog.vala.page:20(credit/name)
+#: C/beginner.py.page:14(credit/name) C/beginner.vala.page:14(credit/name)
+#: C/bug-filing.page:9(credit/name) C/button.vala.page:13(credit/name)
+#: C/c.page:10(credit/name) C/checkbutton.c.page:12(credit/name)
+#: C/checkbutton.vala.page:12(credit/name)
+#: C/colorbutton.vala.page:14(credit/name)
+#: C/combobox.vala.page:12(credit/name) C/cpp.page:10(credit/name)
+#: C/dialog.vala.page:12(credit/name) C/documentation.page:10(credit/name)
+#: C/entry.vala.page:12(credit/name)
+#: C/filechooserdialog.vala.page:15(credit/name)
+#: C/gmenu.c.page:12(credit/name) C/gmenu.js.page:12(credit/name)
+#: C/gmenu.py.page:12(credit/name) C/gmenu.vala.page:19(credit/name)
+#: C/grid.py.page:13(credit/name) C/grid.vala.page:14(credit/name)
+#: C/GtkApplicationWindow.c.page:12(credit/name)
+#: C/GtkApplicationWindow.js.page:12(credit/name)
+#: C/GtkApplicationWindow.py.page:12(credit/name)
+#: C/GtkApplicationWindow.vala.page:12(credit/name)
+#: C/guitar-tuner.vala.page:21(credit/name)
+#: C/helloWorld.js.page:19(credit/name) C/image.vala.page:12(credit/name)
+#: C/image-viewer.vala.page:26(credit/name) C/js.page:11(credit/name)
+#: C/label.vala.page:12(credit/name) C/linkbutton.vala.page:12(credit/name)
+#: C/menubar.py.page:14(credit/name) C/menubar.vala.page:14(credit/name)
+#: C/menubutton.py.page:12(credit/name) C/menubutton.vala.page:12(credit/name)
+#: C/messagedialog.vala.page:12(credit/name)
+#: C/progressbar.vala.page:12(credit/name) C/py.page:10(credit/name)
+#: C/radiobutton.vala.page:15(credit/name) C/scale.vala.page:14(credit/name)
+#: C/scrolledwindow.vala.page:13(credit/name)
+#: C/spinbutton.vala.page:14(credit/name) C/spinner.vala.page:12(credit/name)
+#: C/statusbar.vala.page:15(credit/name) C/switch.vala.page:16(credit/name)
+#: C/textview.vala.page:12(credit/name)
+#: C/togglebutton.vala.page:15(credit/name) C/toolbar.js.page:12(credit/name)
+#: C/toolbar.vala.page:13(credit/name)
+#: C/toolbar_builder.py.page:14(credit/name)
+#: C/toolbar_builder.vala.page:14(credit/name)
+#: C/treeview_simple_liststore.vala.page:14(credit/name)
+#: C/translate.page:10(credit/name) C/tutorial.py.page:14(credit/name)
+#: C/vala.page:10(credit/name) C/window.c.page:12(credit/name)
+#: C/window.py.page:12(credit/name) C/window.vala.page:12(credit/name)
 msgid "Tiffany Antopolski"
 msgstr "Tiffany Antopolski"
 
-#: C/window.vala.page:13(email) C/window.py.page:13(email)
-#: C/window.c.page:13(email) C/vala.page:11(email)
-#: C/tutorial.py.page:15(email) C/translate.page:11(email)
-#: C/treeview_simple_liststore.vala.page:15(email)
-#: C/toolbar_builder.vala.page:15(email) C/toolbar_builder.py.page:15(email)
-#: C/toolbar.vala.page:14(email) C/toolbar.js.page:13(email)
-#: C/togglebutton.vala.page:16(email) C/textview.vala.page:13(email)
-#: C/switch.vala.page:17(email) C/statusbar.vala.page:16(email)
-#: C/spinner.vala.page:13(email) C/spinbutton.vala.page:15(email)
-#: C/scrolledwindow.vala.page:14(email) C/scale.vala.page:15(email)
-#: C/radiobutton.vala.page:16(email) C/py.page:11(email)
-#: C/progressbar.vala.page:13(email) C/messagedialog.vala.page:13(email)
-#: C/menubutton.py.page:13(email) C/menubutton.vala.page:13(email)
-#: C/menubar.vala.page:15(email) C/menubar.py.page:15(email)
-#: C/linkbutton.vala.page:13(email) C/label.vala.page:13(email)
-#: C/js.page:12(email) C/index.page:23(email)
-#: C/image-viewer.vala.page:27(email) C/image.vala.page:13(email)
-#: C/helloWorld.js.page:20(email) C/guitar-tuner.vala.page:22(email)
-#: C/GtkApplicationWindow.vala.page:13(email)
-#: C/GtkApplicationWindow.py.page:13(email)
-#: C/GtkApplicationWindow.js.page:13(email)
-#: C/GtkApplicationWindow.c.page:13(email) C/grid.vala.page:15(email)
-#: C/grid.py.page:14(email) C/gmenu.vala.page:20(email)
-#: C/gmenu.py.page:13(email) C/gmenu.js.page:13(email)
-#: C/gmenu.c.page:13(email) C/filechooserdialog.vala.page:16(email)
-#: C/entry.vala.page:13(email) C/documentation.page:11(email)
-#: C/dialog.vala.page:13(email) C/cpp.page:11(email)
-#: C/combobox.vala.page:13(email) C/colorbutton.vala.page:15(email)
-#: C/checkbutton.vala.page:13(email) C/c.page:11(email)
-#: C/button.vala.page:14(email) C/beginner.vala.page:15(email)
-#: C/beginner.py.page:15(email) C/aboutdialog.vala.page:21(email)
-msgid "tiffany antopolski gmail com"
-msgstr "tiffany antopolski gmail com"
-
-#: C/window.vala.page:14(years) C/window.py.page:14(years)
-#: C/window.py.page:19(years) C/window.js.page:14(years)
-#: C/window.c.page:14(years) C/weatherGeonames.js.page:12(years)
-#: C/weatherAutotools.js.page:12(years) C/weatherAppMain.js.page:12(years)
-#: C/weatherApp.js.page:13(years) C/tutorial.py.page:16(years)
-#: C/tutorial.py.page:21(years) C/treeview_treestore.py.page:14(years)
-#: C/treeview_simple_liststore.vala.page:16(years)
-#: C/treeview_simple_liststore.py.page:16(years)
-#: C/treeview_simple_liststore.js.page:17(years)
-#: C/treeview_cellrenderertoggle.py.page:14(years)
-#: C/treeview_advanced_liststore.py.page:17(years) C/tooltip.py.page:15(years)
-#: C/toolbar_builder.vala.page:16(years) C/toolbar_builder.py.page:16(years)
-#: C/toolbar_builder.py.page:22(years) C/toolbar.vala.page:15(years)
-#: C/toolbar.py.page:15(years) C/toolbar.js.page:14(years)
-#: C/togglebutton.vala.page:17(years) C/togglebutton.py.page:17(years)
-#: C/togglebutton.js.page:14(years) C/togglebutton.c.page:18(years)
-#: C/textview.vala.page:14(years) C/textview.py.page:22(years)
-#: C/textview.js.page:18(years) C/textview.c.page:14(years)
-#: C/switch.vala.page:18(years) C/switch.py.page:19(years)
-#: C/switch.js.page:14(years) C/switch.c.page:14(years)
-#: C/strings.py.page:21(years) C/statusbar.vala.page:17(years)
-#: C/statusbar.py.page:17(years) C/statusbar.js.page:14(years)
-#: C/statusbar.c.page:18(years) C/spinner.vala.page:14(years)
-#: C/spinner.py.page:14(years) C/spinner.js.page:14(years)
-#: C/spinner.c.page:15(years) C/spinbutton.vala.page:16(years)
-#: C/spinbutton.py.page:15(years) C/spinbutton.js.page:17(years)
-#: C/spinbutton.c.page:17(years) C/signals-callbacks.py.page:21(years)
-#: C/set-up-gedit.js.page:13(years) C/separator.py.page:15(years)
-#: C/scrolledwindow.vala.page:15(years) C/scrolledwindow.py.page:14(years)
-#: C/scale.vala.page:16(years) C/scale.py.page:15(years)
-#: C/scale.js.page:14(years) C/scale.c.page:16(years)
-#: C/radiobutton.vala.page:17(years) C/radiobutton.py.page:18(years)
-#: C/radiobutton.js.page:14(years) C/radiobutton.c.page:16(years)
-#: C/properties.py.page:21(years) C/progressbar.vala.page:14(years)
-#: C/progressbar.py.page:14(years) C/progressbar.js.page:13(years)
-#: C/progressbar.c.page:15(years) C/paned.py.page:14(years)
-#: C/model-view-controller.py.page:21(years)
-#: C/messagedialog.vala.page:14(years) C/messagedialog.py.page:15(years)
-#: C/messagedialog.js.page:17(years) C/messagedialog.c.page:15(years)
-#: C/menubutton.py.page:14(years) C/menubutton.py.page:20(years)
-#: C/menubutton.vala.page:14(years) C/menubutton.js.page:14(years)
-#: C/menubar.vala.page:16(years) C/menubar.py.page:16(years)
-#: C/menubar.py.page:21(years) C/linkbutton.vala.page:14(years)
-#: C/linkbutton.py.page:15(years) C/linkbutton.js.page:14(years)
-#: C/linkbutton.c.page:14(years) C/label.vala.page:14(years)
-#: C/label.py.page:15(years) C/label.py.page:20(years)
-#: C/label.js.page:14(years) C/label.c.page:15(years)
-#: C/image.vala.page:14(years) C/image.py.page:14(years)
-#: C/image.js.page:13(years) C/image.c.page:14(years)
-#: C/helloWorld.js.page:16(years) C/hellognome.js.page:13(years)
-#: C/guitar-tuner.js.page:13(years) C/GtkApplicationWindow.vala.page:14(years)
-#: C/GtkApplicationWindow.py.page:14(years)
-#: C/GtkApplicationWindow.py.page:19(years)
-#: C/GtkApplicationWindow.js.page:14(years)
-#: C/GtkApplicationWindow.c.page:14(years) C/grid.vala.page:16(years)
-#: C/grid.py.page:15(years) C/grid.py.page:21(years) C/grid.js.page:14(years)
-#: C/grid.c.page:14(years) C/gmenu.vala.page:15(years)
-#: C/gmenu.py.page:14(years) C/gmenu.py.page:20(years)
-#: C/gmenu.js.page:14(years) C/gmenu.c.page:14(years)
-#: C/fontchooserwidget.py.page:15(years)
-#: C/filechooserdialog.vala.page:17(years)
-#: C/filechooserdialog.py.page:17(years) C/entry.vala.page:14(years)
-#: C/entry.py.page:14(years) C/entry.js.page:14(years)
-#: C/entry.c.page:14(years) C/dialog.vala.page:14(years)
-#: C/dialog.py.page:15(years) C/dialog.js.page:14(years)
-#: C/dialog.c.page:16(years) C/combobox_multicolumn.py.page:15(years)
-#: C/combobox.vala.page:14(years) C/combobox.py.page:14(years)
-#: C/combobox.js.page:18(years) C/comboboxtext.js.page:16(years)
-#: C/colorbutton.vala.page:16(years) C/colorbutton.py.page:14(years)
-#: C/checkbutton.vala.page:14(years) C/checkbutton.py.page:15(years)
-#: C/checkbutton.js.page:14(years) C/checkbutton.c.page:14(years)
-#: C/buttonbox.py.page:15(years) C/button.vala.page:15(years)
-#: C/button.py.page:15(years) C/button.js.page:14(years)
-#: C/button.c.page:16(years) C/beginner.js.page:12(years)
-#: C/aboutdialog.vala.page:16(years) C/aboutdialog.py.page:15(years)
-#: C/aboutdialog.js.page:13(years) C/aboutdialog.c.page:16(years)
-#: C/03_getting_the_signal.js.page:17(years)
-#: C/02_welcome_to_the_grid.js.page:16(years)
+#: C/index.page:27(page/title)
+msgid "GNOME Developer Platform Demos"
+msgstr "ÎÎÏÎÎÎÎÎÎÎÏÎ ÎÎÎÏÏÏÎÎÏ ÏÎÎÏÏÏÏÎÎÏ GNOME"
+
+#: C/index.page:30(section/title)
+msgid "How to set up your development environment"
+msgstr "ÎÏÏ ÎÎ ÎÎÎÎÏÎÏÏÎÏÎÏÎ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÎÎÎÏÏÏÎÎÏ"
+
+#: C/index.page:34(section/title)
+msgid "Tutorials, code samples, platform demos and more"
+msgstr "ÎÎÎÎÎÎÏÎ, ÎÎÎÎÎÎÏÎ ÎÏÎÎÎÎ, ÏÎÏÎÎÎÎÎÎÎÏÎ ÏÎÎÏÏÏÏÎÎÏ ÎÎÎ ÎÎÎÎ"
+
+#: C/index.page:38(section/title)
+msgid "Get Involved"
+msgstr "ÎÏÎÎÎÏÎÏÎ"
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/02_welcome_to_the_grid.js.page:94(media)
+msgctxt "_"
+msgid ""
+"external ref='media/02_jsgrid_01.png' md5='3fdc22d361cf801f71557fdc76ae5b49'"
+msgstr ""
+"external ref='media/02_jsgrid_01.png' md5='3fdc22d361cf801f71557fdc76ae5b49'"
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/02_welcome_to_the_grid.js.page:149(media)
+msgctxt "_"
+msgid ""
+"external ref='media/02_jsgrid_02.png' md5='07db86b0043ba5c3c24a90d7322bd81e'"
+msgstr ""
+"external ref='media/02_jsgrid_02.png' md5='07db86b0043ba5c3c24a90d7322bd81e'"
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/02_welcome_to_the_grid.js.page:166(media)
+msgctxt "_"
+msgid ""
+"external ref='media/02_jsgrid_03.png' md5='817351e73c687d47253c56ed06b6629f'"
+msgstr ""
+"external ref='media/02_jsgrid_03.png' md5='817351e73c687d47253c56ed06b6629f'"
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/02_welcome_to_the_grid.js.page:196(media)
+msgctxt "_"
+msgid ""
+"external ref='media/02_jsgrid_04.png' md5='eeaead27cee2851877fc3cfe66177f07'"
+msgstr ""
+"external ref='media/02_jsgrid_04.png' md5='eeaead27cee2851877fc3cfe66177f07'"
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/02_welcome_to_the_grid.js.page:205(media)
+msgctxt "_"
+msgid ""
+"external ref='media/02_jsgrid_05.png' md5='a3ad12f432d5977fc1f66302ad5b7498'"
+msgstr ""
+"external ref='media/02_jsgrid_05.png' md5='a3ad12f432d5977fc1f66302ad5b7498'"
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/02_welcome_to_the_grid.js.page:216(media)
+msgctxt "_"
+msgid ""
+"external ref='media/02_jsgrid_06.png' md5='450e48dbf6b8f5ce1c208e4812e1714b'"
+msgstr ""
+"external ref='media/02_jsgrid_06.png' md5='450e48dbf6b8f5ce1c208e4812e1714b'"
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/02_welcome_to_the_grid.js.page:226(media)
+msgctxt "_"
+msgid ""
+"external ref='media/02_jsgrid_07.png' md5='0b304d70728903fbb2601d55bf00fdb9'"
+msgstr ""
+"external ref='media/02_jsgrid_07.png' md5='0b304d70728903fbb2601d55bf00fdb9'"
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/02_welcome_to_the_grid.js.page:248(media)
+msgctxt "_"
+msgid ""
+"external ref='media/02_jsgrid_08.png' md5='78890beb47bd11360154b8ca4d50d1ff'"
+msgstr ""
+"external ref='media/02_jsgrid_08.png' md5='78890beb47bd11360154b8ca4d50d1ff'"
+
+#: C/02_welcome_to_the_grid.js.page:14(credit/name)
+#: C/03_getting_the_signal.js.page:15(credit/name)
+#: C/aboutdialog.js.page:11(credit/name) C/button.js.page:12(credit/name)
+#: C/checkbutton.js.page:12(credit/name)
+#: C/comboboxtext.js.page:14(credit/name) C/combobox.js.page:16(credit/name)
+#: C/dialog.js.page:12(credit/name) C/entry.js.page:12(credit/name)
+#: C/grid.js.page:17(credit/name) C/hellognome.js.page:11(credit/name)
+#: C/image.js.page:11(credit/name) C/label.js.page:12(credit/name)
+#: C/linkbutton.js.page:12(credit/name)
+#: C/messagedialog.js.page:15(credit/name)
+#: C/progressbar.js.page:11(credit/name) C/radiobutton.js.page:12(credit/name)
+#: C/scale.js.page:12(credit/name) C/set-up-gedit.js.page:11(credit/name)
+#: C/spinbutton.js.page:15(credit/name) C/spinner.js.page:12(credit/name)
+#: C/statusbar.js.page:12(credit/name) C/switch.js.page:12(credit/name)
+#: C/textview.js.page:16(credit/name) C/togglebutton.js.page:12(credit/name)
+#: C/treeview_simple_liststore.js.page:15(credit/name)
+#: C/window.js.page:12(credit/name)
+msgid "Taryn Fox"
+msgstr "Taryn Fox"
+
+#: C/02_welcome_to_the_grid.js.page:16(credit/years)
+#: C/03_getting_the_signal.js.page:17(credit/years)
+#: C/aboutdialog.c.page:16(credit/years)
+#: C/aboutdialog.js.page:13(credit/years)
+#: C/aboutdialog.py.page:15(credit/years)
+#: C/aboutdialog.vala.page:16(credit/years)
+#: C/beginner.js.page:12(credit/years) C/button.c.page:16(credit/years)
+#: C/button.js.page:14(credit/years) C/button.py.page:15(credit/years)
+#: C/button.vala.page:15(credit/years) C/buttonbox.py.page:15(credit/years)
+#: C/checkbutton.c.page:14(credit/years)
+#: C/checkbutton.js.page:14(credit/years)
+#: C/checkbutton.py.page:15(credit/years)
+#: C/checkbutton.vala.page:14(credit/years)
+#: C/colorbutton.py.page:14(credit/years)
+#: C/colorbutton.vala.page:16(credit/years)
+#: C/comboboxtext.js.page:16(credit/years) C/combobox.js.page:18(credit/years)
+#: C/combobox.py.page:14(credit/years) C/combobox.vala.page:14(credit/years)
+#: C/combobox_multicolumn.py.page:15(credit/years)
+#: C/dialog.c.page:16(credit/years) C/dialog.js.page:14(credit/years)
+#: C/dialog.py.page:15(credit/years) C/dialog.vala.page:14(credit/years)
+#: C/entry.c.page:14(credit/years) C/entry.js.page:14(credit/years)
+#: C/entry.py.page:14(credit/years) C/entry.vala.page:14(credit/years)
+#: C/filechooserdialog.py.page:17(credit/years)
+#: C/filechooserdialog.vala.page:17(credit/years)
+#: C/fontchooserwidget.py.page:15(credit/years)
+#: C/gmenu.c.page:14(credit/years) C/gmenu.js.page:14(credit/years)
+#: C/gmenu.py.page:14(credit/years) C/gmenu.py.page:20(credit/years)
+#: C/gmenu.vala.page:15(credit/years) C/grid.c.page:14(credit/years)
+#: C/grid.js.page:14(credit/years) C/grid.py.page:15(credit/years)
+#: C/grid.py.page:21(credit/years) C/grid.vala.page:16(credit/years)
+#: C/GtkApplicationWindow.c.page:14(credit/years)
+#: C/GtkApplicationWindow.js.page:14(credit/years)
+#: C/GtkApplicationWindow.py.page:14(credit/years)
+#: C/GtkApplicationWindow.py.page:19(credit/years)
+#: C/GtkApplicationWindow.vala.page:14(credit/years)
+#: C/guitar-tuner.js.page:13(credit/years)
+#: C/hellognome.js.page:13(credit/years) C/helloWorld.js.page:16(credit/years)
+#: C/image.c.page:14(credit/years) C/image.js.page:13(credit/years)
+#: C/image.py.page:14(credit/years) C/image.vala.page:14(credit/years)
+#: C/label.c.page:15(credit/years) C/label.js.page:14(credit/years)
+#: C/label.py.page:15(credit/years) C/label.py.page:20(credit/years)
+#: C/label.vala.page:14(credit/years) C/linkbutton.c.page:14(credit/years)
+#: C/linkbutton.js.page:14(credit/years) C/linkbutton.py.page:15(credit/years)
+#: C/linkbutton.vala.page:14(credit/years) C/menubar.py.page:16(credit/years)
+#: C/menubar.py.page:21(credit/years) C/menubar.vala.page:16(credit/years)
+#: C/menubutton.js.page:14(credit/years) C/menubutton.py.page:14(credit/years)
+#: C/menubutton.py.page:20(credit/years)
+#: C/menubutton.vala.page:14(credit/years)
+#: C/messagedialog.c.page:15(credit/years)
+#: C/messagedialog.js.page:17(credit/years)
+#: C/messagedialog.py.page:15(credit/years)
+#: C/messagedialog.vala.page:14(credit/years)
+#: C/model-view-controller.py.page:21(credit/years)
+#: C/paned.py.page:14(credit/years) C/progressbar.c.page:15(credit/years)
+#: C/progressbar.js.page:13(credit/years)
+#: C/progressbar.py.page:14(credit/years)
+#: C/progressbar.vala.page:14(credit/years)
+#: C/properties.py.page:21(credit/years) C/radiobutton.c.page:16(credit/years)
+#: C/radiobutton.js.page:14(credit/years)
+#: C/radiobutton.py.page:18(credit/years)
+#: C/radiobutton.vala.page:17(credit/years) C/scale.c.page:16(credit/years)
+#: C/scale.js.page:14(credit/years) C/scale.py.page:15(credit/years)
+#: C/scale.vala.page:16(credit/years)
+#: C/scrolledwindow.py.page:14(credit/years)
+#: C/scrolledwindow.vala.page:15(credit/years)
+#: C/separator.py.page:15(credit/years)
+#: C/set-up-gedit.js.page:13(credit/years)
+#: C/signals-callbacks.py.page:21(credit/years)
+#: C/spinbutton.c.page:17(credit/years) C/spinbutton.js.page:17(credit/years)
+#: C/spinbutton.py.page:15(credit/years)
+#: C/spinbutton.vala.page:16(credit/years) C/spinner.c.page:15(credit/years)
+#: C/spinner.js.page:14(credit/years) C/spinner.py.page:14(credit/years)
+#: C/spinner.vala.page:14(credit/years) C/statusbar.c.page:18(credit/years)
+#: C/statusbar.js.page:14(credit/years) C/statusbar.py.page:17(credit/years)
+#: C/statusbar.vala.page:17(credit/years) C/strings.py.page:21(credit/years)
+#: C/switch.c.page:14(credit/years) C/switch.js.page:14(credit/years)
+#: C/switch.py.page:19(credit/years) C/switch.vala.page:18(credit/years)
+#: C/textview.c.page:14(credit/years) C/textview.js.page:18(credit/years)
+#: C/textview.py.page:22(credit/years) C/textview.vala.page:14(credit/years)
+#: C/togglebutton.c.page:18(credit/years)
+#: C/togglebutton.js.page:14(credit/years)
+#: C/togglebutton.py.page:17(credit/years)
+#: C/togglebutton.vala.page:17(credit/years)
+#: C/toolbar.js.page:14(credit/years) C/toolbar.py.page:15(credit/years)
+#: C/toolbar.vala.page:15(credit/years)
+#: C/toolbar_builder.py.page:16(credit/years)
+#: C/toolbar_builder.py.page:22(credit/years)
+#: C/toolbar_builder.vala.page:16(credit/years)
+#: C/tooltip.py.page:15(credit/years)
+#: C/treeview_advanced_liststore.py.page:17(credit/years)
+#: C/treeview_cellrenderertoggle.py.page:14(credit/years)
+#: C/treeview_simple_liststore.js.page:17(credit/years)
+#: C/treeview_simple_liststore.py.page:16(credit/years)
+#: C/treeview_simple_liststore.vala.page:16(credit/years)
+#: C/treeview_treestore.py.page:14(credit/years)
+#: C/tutorial.py.page:16(credit/years) C/tutorial.py.page:21(credit/years)
+#: C/weatherApp.js.page:13(credit/years)
+#: C/weatherAppMain.js.page:12(credit/years)
+#: C/weatherAutotools.js.page:12(credit/years)
+#: C/weatherGeonames.js.page:12(credit/years) C/window.c.page:14(credit/years)
+#: C/window.js.page:14(credit/years) C/window.py.page:14(credit/years)
+#: C/window.py.page:19(credit/years) C/window.vala.page:14(credit/years)
 msgid "2012"
 msgstr "2012"
 
-#: C/window.vala.page:17(desc) C/window.py.page:22(desc)
-#: C/window.c.page:17(desc)
-msgid "A toplevel window which can contain other widgets"
-msgstr ""
-"ÎÎÎ ÏÎÏÎÎÏÏÎ ÎÎÏÏÎÏÎÏ ÎÏÎÏÎÎÎÏ ÏÎÏ ÎÏÎÏÎÎ ÎÎ ÏÎÏÎÎÏÎÎ ÎÎÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ"
+#: C/02_welcome_to_the_grid.js.page:19(info/desc)
+msgid "Learn how to lay out UI components, like Images and Labels."
+msgstr "ÎÎÎÎÏÎ ÏÏÏ ÎÎ ÏÎÎÏÎÏÎÎÎÏÎÏÎ ÏÏÏÏÎÏÎÎÎ UI, ÏÏÏÏ ÎÎÎÏÎÎÏ ÎÎÎ ÎÏÎÎÎÏÎÏ."
 
-#: C/window.vala.page:20(title) C/window.py.page:25(title)
-#: C/window.js.page:20(title) C/window.c.page:20(title)
-msgid "Window"
-msgstr "ÎÎÏÎÎÏÏÎ"
+#: C/02_welcome_to_the_grid.js.page:22(page/title)
+msgid "2. Welcome to the Grid"
+msgstr "2. ÎÎÎÏÏ ÎÎÎÎÏÎ ÏÏÎ ÏÎÎÎÎÎ"
 
-#: C/window.vala.page:25(p)
-msgid "The simplest Gtk.Application"
-msgstr "ÎÎÎ ÎÏÎÎÏÏÏÎÏÎ ÎÏÎÏÎÎÎÎ ÏÎ Gtk"
+#: C/02_welcome_to_the_grid.js.page:24(synopsis/p)
+msgid ""
+"This tutorial will show you how to create basic widgets, or parts of the "
+"GNOME user interface, like Images and Labels. You'll then learn how to "
+"arrange them all in a Grid, which lets you put widgets exactly where you "
+"want them."
+msgstr ""
+"ÎÏÏÏ ÏÎ ÎÎÎÎÎÎ ÎÎ ÏÎÏ ÎÎÎÎÎÎ ÏÏÏ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎ ÎÎÏÎÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ, "
+"Î ÎÎÏÎ ÏÎÏ ÎÎÎÏÎÏÎÏ ÏÏÎÏÏÎ ÏÎÏ GNOME, ÏÏÏÏ ÎÎÎÏÎÎÏ ÎÎÎ ÎÏÎÎÎÏÎÏ. ÎÎ ÎÎÎÎÏÎ "
+"ÎÏÎÎÏÎ ÏÏÏ ÎÎ ÏÎ ÏÎÎÏÎÏÎÎÎÏÎÏÎ ÏÎÎ ÏÎ ÎÎÎ ÏÎÎÎÎÎ, ÏÎÏ ÏÎÏ ÎÏÎÏÏÎÏÎÎ ÎÎ "
+"ÎÎÎÎÏÎ ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÏÎÎÏÏ ÏÏÎÏ ÏÎ ÎÎÎÎÏÎ."
 
-#: C/window.vala.page:28(p)
+#: C/02_welcome_to_the_grid.js.page:25(note/p)
 msgid ""
-"Use <link xref=\"GtkApplicationWindow.vala\">Application Window</link> if "
-"you need GMenu support."
+"Have you taken <link xref=\"hellognome.js\">the first tutorial in this "
+"series</link> already? You'll want to do so before continuing."
 msgstr ""
-"ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ <link xref=\"GtkApplicationWindow.vala\">ÏÎÏÎÎÏÏÎ ÎÏÎÏÎÎÎÎÏ</"
-"link> ÎÎÎ ÏÏÎÎÎÎÏÏÎÏÏÎ ÏÏÎÏÏÎÏÎÎÎ GMenu."
+"ÎÏÎÏÎ ÎÎÎ <link xref=\"hellognome.js\">ÏÎ ÏÏÏÏÎ ÎÎÎÎÎÎ ÏÎ ÎÏÏÎ ÏÎ ÏÎÎÏÎ</"
+"link> ÎÎÎ; ÎÎ ÎÎÎÎÏÎ ÎÎ ÏÎ ÎÎÎÎÏÎ ÏÏÎÎ ÎÎ ÏÏÎÎÏÎÏÎÏÎ."
 
-#: C/window.vala.page:33(p) C/window.py.page:60(p) C/window.c.page:29(p)
-#: C/treeview_treestore.py.page:39(p)
-#: C/treeview_simple_liststore.vala.page:27(p)
-#: C/treeview_simple_liststore.py.page:41(p)
-#: C/treeview_simple_liststore.js.page:272(p)
-#: C/treeview_cellrenderertoggle.py.page:39(p)
-#: C/treeview_advanced_liststore.py.page:43(p) C/tooltip.py.page:53(p)
-#: C/toolbar_builder.vala.page:146(p) C/toolbar_builder.py.page:189(p)
-#: C/toolbar.vala.page:29(p) C/toolbar.py.page:50(p) C/toolbar.js.page:26(p)
-#: C/togglebutton.vala.page:28(p) C/togglebutton.py.page:43(p)
-#: C/togglebutton.c.page:31(p) C/textview.vala.page:30(p)
-#: C/textview.py.page:93(p) C/textview.c.page:31(p) C/switch.vala.page:31(p)
-#: C/switch.py.page:46(p) C/switch.c.page:28(p) C/statusbar.vala.page:28(p)
-#: C/statusbar.py.page:50(p) C/statusbar.c.page:31(p)
-#: C/spinner.vala.page:25(p) C/spinner.py.page:38(p) C/spinner.js.page:25(p)
-#: C/spinner.c.page:28(p) C/spinbutton.vala.page:27(p)
-#: C/spinbutton.py.page:45(p) C/spinbutton.c.page:30(p)
-#: C/separator.py.page:35(p) C/scrolledwindow.vala.page:26(p)
-#: C/scrolledwindow.py.page:41(p) C/scale.vala.page:27(p)
-#: C/scale.py.page:53(p) C/scale.c.page:29(p) C/radiobutton.vala.page:28(p)
-#: C/radiobutton.py.page:49(p) C/radiobutton.c.page:29(p)
-#: C/progressbar.vala.page:25(p) C/progressbar.py.page:53(p)
-#: C/progressbar.js.page:34(p) C/progressbar.c.page:28(p)
-#: C/paned.py.page:38(p) C/messagedialog.vala.page:26(p)
-#: C/messagedialog.py.page:54(p) C/messagedialog.js.page:189(p)
-#: C/messagedialog.c.page:31(p) C/menubutton.py.page:50(p)
-#: C/menubutton.vala.page:28(p) C/menubutton.js.page:28(p)
-#: C/menubar.vala.page:187(p) C/menubar.py.page:181(p)
-#: C/linkbutton.vala.page:25(p) C/linkbutton.py.page:44(p)
-#: C/linkbutton.js.page:25(p) C/linkbutton.c.page:27(p)
-#: C/label.vala.page:26(p) C/label.py.page:86(p) C/label.js.page:25(p)
-#: C/label.c.page:32(p) C/image.vala.page:27(p) C/image.py.page:98(p)
-#: C/image.js.page:27(p) C/image.c.page:28(p)
-#: C/GtkApplicationWindow.vala.page:26(p) C/GtkApplicationWindow.py.page:48(p)
-#: C/GtkApplicationWindow.js.page:26(p) C/GtkApplicationWindow.c.page:25(p)
-#: C/grid.vala.page:27(p) C/grid.py.page:53(p) C/grid.js.page:29(p)
-#: C/grid.c.page:27(p) C/gmenu.vala.page:37(p) C/gmenu.py.page:74(p)
-#: C/gmenu.js.page:25(p) C/gmenu.c.page:27(p)
-#: C/fontchooserwidget.py.page:43(p) C/filechooserdialog.vala.page:35(p)
-#: C/filechooserdialog.py.page:69(p) C/entry.vala.page:25(p)
-#: C/entry.py.page:59(p) C/entry.js.page:25(p) C/entry.c.page:27(p)
-#: C/dialog.vala.page:27(p) C/dialog.py.page:45(p) C/dialog.js.page:25(p)
-#: C/dialog.c.page:29(p) C/combobox_multicolumn.py.page:41(p)
-#: C/combobox.vala.page:25(p) C/combobox.py.page:38(p)
-#: C/combobox.js.page:233(p) C/comboboxtext.js.page:176(p)
-#: C/colorbutton.vala.page:27(p) C/colorbutton.py.page:38(p)
-#: C/checkbutton.vala.page:25(p) C/checkbutton.py.page:44(p)
-#: C/checkbutton.c.page:25(p) C/buttonbox.py.page:45(p) C/button.py.page:50(p)
-#: C/button.js.page:26(p) C/button.c.page:29(p) C/aboutdialog.vala.page:34(p)
-#: C/aboutdialog.py.page:41(p) C/aboutdialog.js.page:24(p)
-#: C/aboutdialog.c.page:30(p)
-msgid "In this sample we used the following:"
-msgstr "ÎÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎÎ ÏÎ ÏÎÏÎÎÎÏÏ:"
+#: C/02_welcome_to_the_grid.js.page:31(section/title)
+msgid "Going native"
+msgstr "ÎÎÎÎÎÎÎÎÏÎÏ ÎÎÎÎÎÏÏ"
 
-#: C/window.vala.page:37(link) C/window.js.page:38(link)
-#: C/treeview_simple_liststore.js.page:276(link)
-#: C/togglebutton.js.page:154(link) C/textview.js.page:249(link)
-#: C/switch.js.page:267(link) C/statusbar.js.page:222(link)
-#: C/spinner.js.page:30(link) C/spinbutton.js.page:201(link)
-#: C/scale.js.page:210(link) C/radiobutton.js.page:275(link)
-#: C/progressbar.js.page:39(link) C/messagedialog.js.page:195(link)
-#: C/linkbutton.js.page:29(link) C/label.vala.page:30(link)
-#: C/label.js.page:29(link) C/image.js.page:31(link)
-#: C/GtkApplicationWindow.vala.page:30(link)
-#: C/GtkApplicationWindow.js.page:30(link) C/grid.js.page:33(link)
-#: C/gmenu.vala.page:41(link) C/entry.js.page:29(link)
-#: C/dialog.js.page:29(link) C/combobox.js.page:237(link)
-#: C/comboboxtext.js.page:180(link) C/checkbutton.js.page:137(link)
-#: C/button.js.page:30(link) C/aboutdialog.vala.page:38(link)
-#: C/aboutdialog.js.page:31(link)
-msgid "Gtk.Application"
-msgstr "ÎÏÎÏÎÎÎÎ Gtk"
-
-#: C/window.vala.page:38(p)
+#: C/02_welcome_to_the_grid.js.page:33(section/p)
 msgid ""
-"The widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html";
-"\">Gtk.Window</link>"
+"In the last tutorial, we created what was basically a GNOME window frame for "
+"a web app. All the GNOME-specific code we needed to learn revolved around "
+"putting the WebView -- the widget containing our application -- into an "
+"ApplicationWindow, and telling it to display. The application itself was "
+"written in HTML and JavaScript, just like most pages on the web."
 msgstr ""
-"ÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.";
-"html\">Gtk.Window</link>"
+"ÎÏÎ ÏÎÎÎÏÏÎÎÎ ÎÎÎÎÎÎ, ÎÎÎÎÎÏÏÎÎÏÎÎÎ ÎÎÏÎÎÎ ÎÎÎ ÏÎÎÎÏÎÎ ÏÎÏÎÎÏÏÎÏ GNOME ÎÎÎ "
+"ÎÎÎ ÎÏÎÏÎÎÎÎ ÎÏÏÎÏ. Î ÏÏÎÎÎÎÏÎÎÎÎÎÏ ÎÏÎÎÎÎÏ GNOME ÏÎÏ ÏÏÎÎÎÎÏÎÎÏÏÎ ÎÎ "
+"ÎÎÎÎÏÎÎ ÏÎÏÎÏÏÏÎÏÎÏÎÎ ÎÏÏÏ ÎÏÏ ÏÎÎ ÏÎÏÎÎÎÏÎÏÎ ÏÎÏ WebView -- ÏÎ ÎÏÎÏÎÎÏ "
+"ÏÏÏÏÎÏÎÎÏ ÏÎÏ ÏÎÏÎÎÏÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ ÎÎÏ -- ÏÎ ÎÎÎ ApplicationWindow ÎÎÎ ÏÎÎ "
+"ÎÎÏÎÎÎÏÎ ÏÎÏ. Î ÎÎÎÎ Î ÎÏÎÏÎÎÎÎ ÎÏÎÏÏÎÎÎ ÏÎ HTML ÎÎÎ JavaScript, ÎÎÏÎÎÏÏ "
+"ÏÏÏÏ ÎÎ ÏÎÏÎÏÏÏÏÎÏÎÏ ÏÎÎÎÎÎÏ ÏÏÎÎ ÎÏÏÏ."
 
-#: C/window.vala.page:40(p)
+#: C/02_welcome_to_the_grid.js.page:34(section/p)
 msgid ""
-"The enum <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.WindowPosition.html";
-"\">Gtk.WindowPosition</link>"
+"This time, we're going to use only native GNOME widgets. A widget is just a "
+"thing, like a checkbox or picture, and GNOME has a wide variety of them to "
+"choose from. We call them \"native\" widgets to distinguish them from things "
+"like the button and header in the web app we wrote. Because instead of using "
+"web code, these are going to be 100 percent GNOME, using Gtk+."
 msgstr ""
-"Î ÎÏÎÎÎÎÏÎ <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.WindowPosition.";
-"html\">Gtk.WindowPosition</link>"
+"ÎÏÏÎÎ ÏÎ ÏÎÏÎ, ÏÏÏÎÎÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÏÎÎ ÏÎ ÎÎÎÎÎÎ ÎÏÎÏÎÎÎ "
+"ÏÏÏÏÎÏÎÎÎ ÏÎÏ GNOME. ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÎÎÎÎ ÎÏÎÎ ÎÎÎ ÏÏÎÎÎÎ, ÏÏÏÏ ÎÎÎ "
+"ÏÎÎÎÏÎÎ ÎÎÎÎÏÎÏ Î ÎÎÎÏÎÎ ÎÎÎ ÏÎ GNOME ÎÏÎÎ ÎÎÎ ÏÎÎÏÎÎ ÏÎÎÎÎÎÎÎ ÎÎÎ ÎÏÎÎÎÎÎ. "
+"ÎÎ ÎÎÎÎ \"native\" ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÎ ÎÎ ÏÎ ÎÎÎÎÏÎÎÎÏÎÎ ÎÏÏ ÏÏÎÎÎÎÏÎ ÏÏÏÏ "
+"ÏÎ ÎÎÏÎÏÎ ÎÎÎ Î ÎÎÏÎÎÎÎÎ ÏÏÎÎ ÎÏÎÏÎÎÎÎ ÎÏÏÎÏ ÏÎÏ ÎÏÎÏÎÎÎ. ÎÎÏÎ ÎÎ "
+"ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÏÎÎÎÎ ÎÏÏÎÏ, ÎÏÏÎ ÏÏÏÎÎÎÏÎÎ ÎÎ ÎÎÎÎÎ 100% GNOME, "
+"ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ Gtk+."
 
-#: C/window.vala.page:42(p)
+#: C/02_welcome_to_the_grid.js.page:35(note/p)
 msgid ""
-"The method <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.";
-"set_default_size.html\">set_default_size</link>"
+"Gtk+ stands for \"GIMP Toolkit\". It's like a toolbox of widgets that you "
+"can reach into, while building your applications. It was originally written "
+"for <link href=\"http://www.gimp.org/\";>the GIMP</link>, which is a free "
+"software image editor."
 msgstr ""
-"Î ÎÎÎÎÎÎÏ <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.";
-"set_default_size.html\">set_default_size</link>"
-
-#: C/window.vala.page:44(link)
-msgid "border_width"
-msgstr "border_width"
-
-#: C/window.vala.page:46(link)
-msgid "window_position"
-msgstr "window_position"
-
-#: C/window.py.page:7(title)
-msgid "Window (Python)"
-msgstr "ÎÎÏÎÎÏÏÎ (Python)"
+"ÎÎ Gtk+ ÏÎÎÎÎÎÎÎ \"GIMP Toolkit\". ÎÎÎÎÎ ÏÎÎ ÎÎÎ ÎÏÎÎÎÎÎÎÎÎÎÎ ÎÏÎÏÎÎÏÎ "
+"ÏÏÏÏÎÏÎÎÏÎ ÏÎÏ ÎÏÎÏÎÎÏÎ ÎÎ ÏÏÎÏÏÎÎÎÏÎÏÎ, ÎÎÏ ÎÎÎÎÎÏÎ ÏÎÏ ÎÏÎÏÎÎÎÎÏ ÏÎÏ. "
+"ÎÏÎÏÏÎÎÎ ÎÏÏÎÎÎ ÎÎÎ ÏÎ <link href=\"http://www.gimp.org/\";>GIMP</link>, ÏÎÏ "
+"ÎÎÎÎÎ ÎÎÎÏ ÎÏÎÎÎÏÎÎÏÏÎÏ ÎÎÎÏÎÎÏ ÎÎÎÏÎÎÏÎÏ ÎÎÎÎÏÎÎÎÎÏ."
 
-#: C/window.py.page:17(name) C/tutorial.py.page:19(name)
-#: C/treeview_treestore.py.page:12(name)
-#: C/treeview_simple_liststore.py.page:14(name)
-#: C/treeview_cellrenderertoggle.py.page:12(name)
-#: C/treeview_advanced_liststore.py.page:15(name) C/tooltip.py.page:13(name)
-#: C/toolbar_builder.py.page:20(name) C/toolbar.py.page:13(name)
-#: C/togglebutton.py.page:15(name) C/textview.py.page:20(name)
-#: C/switch.py.page:17(name) C/strings.py.page:19(name)
-#: C/statusbar.py.page:15(name) C/spinner.py.page:12(name)
-#: C/spinbutton.py.page:13(name) C/signals-callbacks.py.page:19(name)
-#: C/separator.py.page:13(name) C/scrolledwindow.py.page:12(name)
-#: C/scale.py.page:13(name) C/radiobutton.py.page:16(name)
-#: C/properties.py.page:19(name) C/progressbar.py.page:12(name)
-#: C/paned.py.page:12(name) C/model-view-controller.py.page:19(name)
-#: C/messagedialog.py.page:13(name) C/menubutton.py.page:18(name)
-#: C/menubar.py.page:19(name) C/linkbutton.py.page:13(name)
-#: C/label.py.page:13(name) C/image.py.page:12(name)
-#: C/GtkApplicationWindow.py.page:17(name) C/grid.py.page:19(name)
-#: C/gmenu.py.page:18(name) C/fontchooserwidget.py.page:13(name)
-#: C/filechooserdialog.py.page:15(name) C/entry.py.page:12(name)
-#: C/dialog.py.page:13(name) C/combobox_multicolumn.py.page:13(name)
-#: C/combobox.py.page:12(name) C/colorbutton.py.page:12(name)
-#: C/checkbutton.py.page:13(name) C/buttonbox.py.page:13(name)
-#: C/button.py.page:13(name) C/aboutdialog.py.page:13(name)
-msgid "Marta Maria Casetti"
-msgstr "Marta Maria Casetti"
+#: C/02_welcome_to_the_grid.js.page:39(section/title)
+msgid "Setting up our application"
+msgstr "ÎÎÎÎÏÎÏÏÎÏÎ ÏÎÏ ÎÏÎÏÎÎÎÎÏ ÎÎÏ"
 
-#: C/window.py.page:18(email) C/tutorial.py.page:20(email)
-#: C/treeview_treestore.py.page:13(email)
-#: C/treeview_simple_liststore.py.page:15(email)
-#: C/treeview_cellrenderertoggle.py.page:13(email)
-#: C/treeview_advanced_liststore.py.page:16(email) C/tooltip.py.page:14(email)
-#: C/toolbar_builder.py.page:21(email) C/toolbar.py.page:14(email)
-#: C/togglebutton.py.page:16(email) C/textview.py.page:21(email)
-#: C/switch.py.page:18(email) C/strings.py.page:20(email)
-#: C/statusbar.py.page:16(email) C/spinner.py.page:13(email)
-#: C/spinbutton.py.page:14(email) C/signals-callbacks.py.page:20(email)
-#: C/separator.py.page:14(email) C/scrolledwindow.py.page:13(email)
-#: C/scale.py.page:14(email) C/radiobutton.py.page:17(email)
-#: C/properties.py.page:20(email) C/progressbar.py.page:13(email)
-#: C/paned.py.page:13(email) C/model-view-controller.py.page:20(email)
-#: C/messagedialog.py.page:14(email) C/menubutton.py.page:19(email)
-#: C/menubar.py.page:20(email) C/linkbutton.py.page:14(email)
-#: C/label.py.page:14(email) C/image.py.page:13(email)
-#: C/GtkApplicationWindow.py.page:18(email) C/grid.py.page:20(email)
-#: C/gmenu.py.page:19(email) C/fontchooserwidget.py.page:14(email)
-#: C/filechooserdialog.py.page:16(email) C/dialog.py.page:14(email)
-#: C/combobox_multicolumn.py.page:14(email) C/combobox.py.page:13(email)
-#: C/colorbutton.py.page:13(email) C/checkbutton.py.page:14(email)
-#: C/buttonbox.py.page:14(email) C/button.py.page:14(email)
-#: C/aboutdialog.py.page:14(email)
-msgid "mmcasetti gmail com"
-msgstr "mmcasetti gmail com"
-
-#: C/window.py.page:31(p)
-msgid "A minimal Gtk+ Application: a window with a title."
-msgstr "ÎÎÎ ÎÎÎÏÎÏÏÎ ÎÏÎÏÎÎÎÎ GTK+: ÎÎÎ ÏÎÏÎÎÏÏÎ ÎÎ ÏÎÏÎÎ."
+#: C/02_welcome_to_the_grid.js.page:41(section/p)
+msgid ""
+"Before we dig out any widgets from the Gtk+ toolbox, we first need to write "
+"the basic boilerplate code that our application requires."
+msgstr ""
+"ÎÏÎÎ ÎÎ ÏÎÎÎÏÎÎ ÎÏÎÎÎÎÎÏÎÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÏÏ ÏÎÎ ÎÏÎÎÎÎÎÎÎÎÎÎ Gtk+, "
+"ÏÏÎÎÎÎÏÎÎÏÏÎ ÏÏÏÏÎ ÎÎ ÎÏÎÏÎÏÎÎ ÏÎ ÎÎÏÎÎÏ ÎÏÎÎÎÎ ÏÏÎÏÎÏÏÏÏÎÏ ÏÎÏ Î ÎÏÎÏÎÎÎÎ "
+"ÎÎÏ ÎÏÎÎÏÎÎ."
 
-#: C/window.py.page:34(p)
+#: C/02_welcome_to_the_grid.js.page:42(section/code)
+#: C/comboboxtext.js.page:30(section/code) C/textview.js.page:38(section/code)
+#, no-wrap
 msgid ""
-"Use <link xref=\"GtkApplicationWindow.py\">Application Window</link> if you "
-"need GMenu support."
+"\n"
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
 msgstr ""
-"ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ <link xref=\"GtkApplicationWindow.py\">ÏÎÏÎÎÏÏÎ ÎÏÎÏÎÎÎÎÏ</"
-"link> ÎÎÎ ÏÏÎÎÎÎÏÏÎÏÏÎ ÏÏÎÏÏÎÏÎÎÎ GMenu."
+"\n"
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
 
-#: C/window.py.page:42(title) C/treeview_treestore.py.page:27(title)
-#: C/treeview_simple_liststore.py.page:29(title)
-#: C/treeview_cellrenderertoggle.py.page:27(title)
-#: C/treeview_advanced_liststore.py.page:30(title) C/tooltip.py.page:28(title)
-#: C/toolbar_builder.py.page:162(title) C/toolbar.py.page:29(title)
-#: C/togglebutton.py.page:30(title) C/textview.py.page:42(title)
-#: C/switch.py.page:34(title) C/statusbar.py.page:30(title)
-#: C/spinner.py.page:27(title) C/spinbutton.py.page:28(title)
-#: C/separator.py.page:29(title) C/scrolledwindow.py.page:27(title)
-#: C/scale.py.page:28(title) C/radiobutton.py.page:31(title)
-#: C/progressbar.py.page:37(title) C/paned.py.page:27(title)
-#: C/messagedialog.py.page:28(title) C/menubutton.py.page:35(title)
-#: C/linkbutton.py.page:29(title) C/label.py.page:33(title)
-#: C/image.py.page:31(title) C/GtkApplicationWindow.py.page:32(title)
-#: C/grid.py.page:35(title) C/gmenu.py.page:34(title)
-#: C/fontchooserwidget.py.page:29(title) C/filechooserdialog.py.page:51(title)
-#: C/entry.py.page:32(title) C/dialog.py.page:28(title)
-#: C/combobox_multicolumn.py.page:28(title) C/combobox.py.page:27(title)
-#: C/colorbutton.py.page:27(title) C/checkbutton.py.page:28(title)
-#: C/buttonbox.py.page:29(title) C/button.py.page:29(title)
-#: C/aboutdialog.py.page:28(title)
-msgid "Code used to generate this example"
-msgstr "Î ÏÏÎÏÎÎÎÏÎÎÎÏÎÎÎÎÏ ÎÏÎÎÎÎÏ ÎÎÎ ÏÎÏÎÎÏÎÎ ÎÏÏÎÏ ÏÎÏÎÎÎÎÎÎÎÏÎÏ"
+#: C/02_welcome_to_the_grid.js.page:48(section/p)
+msgid ""
+"This part always goes at the start of your code. Depending on what you'll be "
+"doing with it, you may want to declare more imports here. What we're writing "
+"today is pretty basic, so these are all we need; Gtk for the widgets, and "
+"Lang so we can use Lang.bind to connect our application's activate and "
+"startup signals to the requisite functions."
+msgstr ""
+"ÎÏÏÏ ÏÎ ÎÎÏÎÏ ÏÎÎÎÎÎÎÎ ÏÎÎÏÎ ÏÏÎÎ ÎÏÏÎ ÏÎÏ ÎÏÎÎÎÎ ÏÎÏ. ÎÎÎÎÎÎÎ ÎÎ ÏÎ ÏÎ ÎÎ "
+"ÎÎÎÎÏÎ ÎÎ ÎÏÏÏ, ÎÏÎÏÎÎ ÎÎ ÎÎÎÎÏÎ ÎÎ ÎÎÎÏÏÎÏÎ ÏÎÏÎÏÏÏÏÎÏÎÏ ÎÎÏÎÎÏÎÎÏ ÎÎÏ. "
+"ÎÏÏÏ ÏÎÏ ÎÏÎÏÎÏÎÎ ÏÎÎÎÏÎ ÎÎÎÎÎ ÎÏÎÎÏÎ ÎÎÏÎÎÏ, ÎÏÏÎ ÎÏÏÎ ÎÎÎÎÎ ÏÎÏ "
+"ÏÏÎÎÎÎÏÎÎÏÏÎÂ Gtk ÎÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÎ Lang ÏÏÏÎ ÎÎ ÎÏÎÏÎÏÎÎ ÎÎ "
+"ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ Lang.bind ÎÎÎ ÎÎ ÏÏÎÎÎÏÎÏÎÎ ÏÎ ÏÎÎÎÏÎ ÎÎÎÏÎÎÏÎÎÎÏÎÏ ÎÎÎ "
+"ÎÎÎÎÎÎÏÎÏ ÏÎÏ ÎÏÎÏÎÎÎÎÏ ÏÏÎÏ ÎÎÎÎÎÎÎÎÏ ÏÏÎÎÏÏÎÏÎÎÏ."
 
-#: C/window.py.page:49(title)
-msgid "Useful methods for a Window widget"
-msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÏÎÏÎÎÏÏÎÏ"
+#: C/02_welcome_to_the_grid.js.page:49(section/p)
+msgid "Speaking of which:"
+msgstr "ÎÎÎÏÎÏÎÏ ÎÎÎ:"
 
-#: C/window.py.page:50(p)
+#: C/02_welcome_to_the_grid.js.page:50(section/code)
+#, no-wrap
 msgid ""
-"<code>window = Gtk.Window(application=self, title=\"Welcome to GNOME\")</"
-"code> sets the title as well, without the need for the line <code>window."
-"set_title(\"Welcome to GNOME\")</code>. For a general discussion of this, "
-"see <link xref=\"properties.py\">here</link>."
+"\n"
+"const WelcomeToTheGrid = new Lang.Class({\n"
+"    Name: 'Welcome to the Grid',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application();\n"
+"\n"
+"        // Connect 'activate' and 'startup' signals to the callback functions\n"
+"        this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"        this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents windows when active\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function() {\n"
+"        this._buildUI ();\n"
+"    },\n"
 msgstr ""
-"<code>window = Gtk.Window(application=self, title=\"Welcome to GNOME\")</"
-"code> ÎÏÎÎÎÎ ÏÎÎ ÏÎÏÎÎ ÎÏÎÏÎÏ, ÏÏÏÎÏ ÏÎÎ ÎÎÎÎÎÎ ÎÎÎ ÏÎ ÎÏÎÎÎÎ <code>window."
-"set_title(\"Welcome to GNOME\")</code>. ÎÎÎ ÎÎÎ ÎÎÎÎÎÎ ÏÏÎÎÏÎÏÎ ÏÎÏ, ÎÎÎÏÎ "
-"<link xref=\"properties.py\">ÎÎÏ</link>."
+"\n"
+"const WelcomeToTheGrid = new Lang.Class({\n"
+"    Name: 'Welcome to the Grid',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application();\n"
+"\n"
+"        // Connect 'activate' and 'startup' signals to the callback functions\n"
+"        this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"        this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents windows when active\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function() {\n"
+"        this._buildUI ();\n"
+"    },\n"
 
-#: C/window.py.page:52(p) C/GtkApplicationWindow.py.page:41(p)
+#: C/02_welcome_to_the_grid.js.page:73(section/p)
 msgid ""
-"<code>set_default_size(200, 100)</code> sets the default size of the window "
-"to a width of <code>200</code> and a height of <code>100</code>; if instead "
-"of a positive number we pass <code>-1</code> we have the default size."
+"This is the start of the application itself, and the _init function which "
+"creates it. It tells _buildUI to create an ApplicationWindow, which we're "
+"going to call _window, and it tells our window to present itself whenever "
+"needed."
 msgstr ""
-"<code>set_default_size(200, 100)</code> ÎÏÎÎÎÎ ÏÎ ÏÏÎÎÏÎÎÎÎÎÎÎÎ ÎÎÎÎÎÎÏ ÏÎÏ "
-"ÏÎÏÎÎÏÏÎÏ ÏÎ ÏÎÎÏÎÏ <code>200</code> ÎÎÎ ÏÏÎÏ <code>100</code>Â ÎÎÎ ÎÎÏÎ ÎÎÎ "
-"ÎÎÎ ÎÎÏÎÎÏ ÎÏÎÎÎÏ ÏÎÏÎÎÎÎ ÏÎ <code>-1</code> ÎÏÎÏÎÎ ÏÎ ÏÏÎÎÏÎÎÎÎÎÎÎÎ ÎÎÎÎÎÎÏ."
+"ÎÏÏÎ ÎÎÎÎÎ Î ÎÏÏÎ ÏÎÏ ÎÎÎÎÏ ÏÎÏ ÎÏÎÏÎÎÎÎÏ ÎÎÎ Î ÏÏÎÎÏÏÎÏÎ _init ÏÎÏ ÏÎ "
+"ÎÎÎÎÎÏÏÎÎÎ. ÎÎÎÎ ÏÏÎ _buildUI ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ ApplicationWindow, ÏÎÏ "
+"ÏÏÏÎÎÎÏÎÎ ÎÎ ÎÎÎÎÏÎÎ ÏÎ _window ÎÎÎ ÎÎÎÎ ÏÏÎ ÏÎÏÎÎÏÏÏ ÎÎÏ ÎÎ ÎÎÏÎÎÎÎÎÎ ÏÎÎ "
+"ÎÎÏÏÏ ÏÎÏ ÏÏÎÏÎ ÎÏÎÎÏÎÎÏÎÎ."
 
-#: C/window.py.page:53(p) C/GtkApplicationWindow.py.page:42(p)
+#: C/02_welcome_to_the_grid.js.page:74(section/p)
 msgid ""
-"<code>set_position(Gtk.WindowPosition.CENTER)</code> centers the window. "
-"Other options are <code>Gtk.WindowPosition.NONE, Gtk.WindowPosition.MOUSE, "
-"Gtk.WindowPosition.CENTER_ALWAYS, Gtk.WindowPosition.CENTER_ON_PARENT</code>."
+"This part, again, is pretty much copy-and-paste, but you always want to give "
+"your application a unique name."
 msgstr ""
-"<code>set_position(Gtk.WindowPosition.CENTER)</code> ÎÎÎÏÏÎÏÎÎ ÏÎ ÏÎÏÎÎÏÏÎ. "
-"ÎÎÎÎÏ ÎÏÎÎÎÎÎÏ ÎÎÎÎÎ <code>Gtk.WindowPosition.NONE, Gtk.WindowPosition."
-"MOUSE, Gtk.WindowPosition.CENTER_ALWAYS, Gtk.WindowPosition."
-"CENTER_ON_PARENT</code>."
-
-#: C/window.py.page:58(title) C/treeview_treestore.py.page:38(title)
-#: C/treeview_simple_liststore.py.page:40(title)
-#: C/treeview_cellrenderertoggle.py.page:38(title)
-#: C/treeview_advanced_liststore.py.page:42(title) C/tooltip.py.page:52(title)
-#: C/toolbar_builder.py.page:188(title) C/toolbar.py.page:49(title)
-#: C/togglebutton.py.page:42(title) C/textview.py.page:92(title)
-#: C/switch.py.page:45(title) C/statusbar.py.page:49(title)
-#: C/spinner.py.page:37(title) C/spinbutton.py.page:44(title)
-#: C/scrolledwindow.py.page:40(title) C/scale.py.page:52(title)
-#: C/radiobutton.py.page:48(title) C/progressbar.py.page:52(title)
-#: C/paned.py.page:37(title) C/messagedialog.py.page:53(title)
-#: C/menubutton.py.page:49(title) C/menubar.py.page:180(title)
-#: C/linkbutton.py.page:43(title) C/label.py.page:85(title)
-#: C/image.py.page:97(title) C/GtkApplicationWindow.py.page:47(title)
-#: C/grid.py.page:52(title) C/gmenu.py.page:73(title)
-#: C/fontchooserwidget.py.page:42(title) C/filechooserdialog.py.page:68(title)
-#: C/entry.py.page:58(title) C/dialog.py.page:44(title)
-#: C/combobox_multicolumn.py.page:40(title) C/combobox.py.page:37(title)
-#: C/colorbutton.py.page:37(title) C/checkbutton.py.page:43(title)
-#: C/buttonbox.py.page:44(title) C/button.py.page:49(title)
-#: C/aboutdialog.py.page:40(title)
-msgid "API References"
-msgstr "ÎÎÎÏÎÏÎÏ API"
-
-#: C/window.py.page:62(link) C/window.c.page:33(link)
-#: C/togglebutton.c.page:35(link) C/textview.c.page:35(link)
-#: C/switch.c.page:32(link) C/statusbar.c.page:35(link)
-#: C/spinner.c.page:32(link) C/spinbutton.c.page:34(link)
-#: C/scale.c.page:33(link) C/radiobutton.c.page:33(link)
-#: C/progressbar.c.page:32(link) C/messagedialog.py.page:64(link)
-#: C/messagedialog.c.page:35(link) C/linkbutton.c.page:31(link)
-#: C/label.c.page:36(link) C/image.vala.page:31(link) C/image.c.page:32(link)
-#: C/GtkApplicationWindow.py.page:52(link)
-#: C/GtkApplicationWindow.c.page:29(link) C/grid.py.page:55(link)
-#: C/grid.c.page:31(link) C/entry.c.page:31(link) C/dialog.c.page:33(link)
-#: C/checkbutton.py.page:46(link) C/button.c.page:33(link)
-#: C/aboutdialog.py.page:48(link) C/aboutdialog.c.page:34(link)
-msgid "GtkApplication"
-msgstr "GtkApplication"
-
-#: C/window.py.page:63(link) C/window.c.page:34(link)
-#: C/togglebutton.c.page:36(link) C/textview.c.page:36(link)
-#: C/switch.c.page:33(link) C/statusbar.c.page:36(link)
-#: C/spinner.c.page:33(link) C/spinbutton.c.page:35(link)
-#: C/separator.py.page:37(link) C/scale.c.page:34(link)
-#: C/radiobutton.py.page:51(link) C/radiobutton.c.page:34(link)
-#: C/progressbar.c.page:33(link) C/messagedialog.py.page:60(link)
-#: C/messagedialog.c.page:37(link) C/linkbutton.py.page:46(link)
-#: C/linkbutton.c.page:32(link) C/label.py.page:89(link)
-#: C/label.c.page:37(link) C/image.py.page:101(link) C/image.c.page:33(link)
-#: C/grid.c.page:32(link) C/filechooserdialog.py.page:73(link)
-#: C/entry.c.page:32(link) C/dialog.py.page:50(link) C/dialog.c.page:34(link)
-#: C/button.py.page:53(link) C/button.c.page:34(link)
-#: C/aboutdialog.c.page:35(link)
-msgid "GtkWindow"
-msgstr "GtkWindow"
-
-#: C/window.js.page:7(title)
-msgid "Window (JavaScript)"
-msgstr "ÎÎÏÎÎÏÏÎ (JavaScript)"
-
-#: C/window.js.page:12(name) C/treeview_simple_liststore.js.page:15(name)
-#: C/togglebutton.js.page:12(name) C/textview.js.page:16(name)
-#: C/switch.js.page:12(name) C/statusbar.js.page:12(name)
-#: C/spinner.js.page:12(name) C/spinbutton.js.page:15(name)
-#: C/set-up-gedit.js.page:11(name) C/scale.js.page:12(name)
-#: C/radiobutton.js.page:12(name) C/progressbar.js.page:11(name)
-#: C/messagedialog.js.page:15(name) C/linkbutton.js.page:12(name)
-#: C/label.js.page:12(name) C/image.js.page:11(name)
-#: C/hellognome.js.page:11(name) C/grid.js.page:17(name)
-#: C/entry.js.page:12(name) C/dialog.js.page:12(name)
-#: C/combobox.js.page:16(name) C/comboboxtext.js.page:14(name)
-#: C/checkbutton.js.page:12(name) C/button.js.page:12(name)
-#: C/aboutdialog.js.page:11(name) C/03_getting_the_signal.js.page:15(name)
-#: C/02_welcome_to_the_grid.js.page:14(name)
-msgid "Taryn Fox"
-msgstr "Taryn Fox"
-
-#: C/window.js.page:13(email) C/treeview_simple_liststore.js.page:16(email)
-#: C/togglebutton.js.page:13(email) C/textview.js.page:17(email)
-#: C/switch.js.page:13(email) C/statusbar.js.page:13(email)
-#: C/spinner.js.page:13(email) C/spinbutton.js.page:16(email)
-#: C/set-up-gedit.js.page:12(email) C/scale.js.page:13(email)
-#: C/radiobutton.js.page:13(email) C/progressbar.js.page:12(email)
-#: C/messagedialog.js.page:16(email) C/linkbutton.js.page:13(email)
-#: C/label.js.page:13(email) C/image.js.page:12(email)
-#: C/hellognome.js.page:12(email) C/grid.js.page:18(email)
-#: C/entry.js.page:13(email) C/dialog.js.page:13(email)
-#: C/combobox.js.page:17(email) C/comboboxtext.js.page:15(email)
-#: C/checkbutton.js.page:13(email) C/button.js.page:13(email)
-#: C/aboutdialog.js.page:12(email) C/03_getting_the_signal.js.page:16(email)
-#: C/02_welcome_to_the_grid.js.page:15(email)
-msgid "jewelfox fursona net"
-msgstr "jewelfox fursona net"
-
-#: C/window.js.page:17(desc)
-msgid "A basic window which can contain other widgets"
-msgstr "ÎÎÎ ÎÎÏÎÎÏ ÏÎÏÎÎÏÏÎ ÏÎÏ ÎÏÎÏÎÎ ÎÎ ÏÎÏÎÎÏÎÎ ÎÎÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ"
-
-#: C/window.js.page:25(p)
-msgid "A minimal GtkApplication"
-msgstr "ÎÎÎ ÏÏÏÏÎ GtkApplication"
+"ÎÏÏÏ ÏÎ ÎÎÏÎÏ, ÏÎÎÎ, ÎÎÎÎÎ ÎÏÎÎÏÎ ÎÎÏÎÎÏÎÏÎ ÎÎÎ ÎÏÎÎÏÎÎÎÏÎ, ÎÎÎÎ ÎÎÎÎÏÎ "
+"ÏÎÎÏÎ ÎÎ ÎÏÏÎÏÎ ÏÏÎÎ ÎÏÎÏÎÎÎÎ ÏÎÏ ÎÎÎ ÎÎÎÎÎÎÎÏ ÏÎÎÎÎ."
 
-#: C/window.js.page:28(p)
+#: C/02_welcome_to_the_grid.js.page:76(section/code)
+#, no-wrap
 msgid ""
-"Use <link xref=\"GtkApplicationWindow.js\">ApplicationWindow</link> if you "
-"need GMenu support."
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function() {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            border_width: 10,\n"
+"            title: \"Welcome to the Grid\"});\n"
 msgstr ""
-"ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ <link xref=\"GtkApplicationWindow.js\">ApplicationWindow</"
-"link> ÎÎÎ ÏÏÎÎÎÎÏÏÎÏÏÎ ÏÏÎÏÏÎÏÎÎÎ GMenu."
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function() {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            border_width: 10,\n"
+"            title: \"Welcome to the Grid\"});\n"
 
-#: C/window.js.page:34(p)
-msgid "In this example we used the following:"
-msgstr "ÎÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎÎ ÏÎ ÏÎÏÎÎÎÏÏ:"
+#: C/02_welcome_to_the_grid.js.page:87(section/p)
+msgid ""
+"Finally, we start off the _buildUI function by creating a new "
+"ApplicationWindow. We specify that it goes with this application, that it "
+"should appear in the center of the screen, and that there should be at least "
+"10 pixels between the outside edge and any widgets inside of it. We also "
+"give it a title, which will appear at the top of the window."
+msgstr ""
+"ÎÎÎÎÎÎ, ÎÎÎÎÎÎÎÎ ÏÎ ÏÏÎÎÏÏÎÏÎ _buildUI ÎÎÎÎÎÏÏÎÏÎÏÎÏ ÎÎÎ ÎÎÎ "
+"ApplicationWindow. ÎÏÎÎÎÏÎÎ ÏÏÎ ÏÎÎÎÎÎÎÎ ÎÎ ÎÏÏÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ, ÏÎÏ ÎÎ "
+"ÏÏÎÏÎÎ ÎÎ ÎÎÏÎÎÎÏÏÎÎ ÏÏÎ ÎÎÎÏÏÎ ÏÎÏ ÎÎÏÎÎÏ ÎÎÎ ÎÎÎÎ ÎÎ ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎ "
+"ÏÎÏÎÎÏÎÏÏÎÎ 10 ÎÎÎÎÎÎÏÏÎÎÏÎÎÎ ÎÎÏÎÎÏ ÏÎÏ ÎÎÏÏÎÏÎÎÎÏ ÎÎÏÎÏ ÎÎÎ ÏÎÏÎ ÏÏÎ "
+"ÎÏÎÏÎÎÏÎ ÏÏÏÏÎÏÎÎÏÎ ÏÎÏ. ÎÏÎÏÎÏ ÏÎÏ ÎÎÎÎÏÎÎ ÎÎÎÎ ÏÎÏÎÎ, ÏÎÏ ÎÎ ÎÎÏÎÎÎÏÏÎÎ "
+"ÏÏÎÎ ÎÎÏÏÏÎ ÏÎÏ ÏÎÏÎÎÏÏÎÏ."
 
-#: C/window.js.page:39(link) C/toolbar.js.page:30(link)
-msgid "Gtk.Window"
-msgstr "ÎÎÏÎÎÏÏÎ Gtk"
+#: C/02_welcome_to_the_grid.js.page:91(section/title)
+msgid "Reaching into the Gtk+ toolbox"
+msgstr "ÎÏÎÎÎÎÏÎÏ ÏÏÎÎ ÎÏÎÎÎÎÎÎÎÎÎÎ Gtk+"
 
-#: C/window.c.page:7(title)
-msgid "Window (C)"
-msgstr "Window (C)"
+#: C/02_welcome_to_the_grid.js.page:92(section/p)
+msgid ""
+"What widgets should we use? Well, let's say we want to write an application "
+"that looks like this:"
+msgstr ""
+"ÎÎÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÏÏÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ; ÎÎÎÏÏÎ, ÎÏ ÏÎÏÎÎ ÏÏÎ "
+"ÎÎÎÎÏÎÎ ÎÎ ÎÏÎÏÎÏÎÎ ÎÎÎ ÎÏÎÏÎÎÎÎ ÏÎÏ ÏÎÎÎÎÏÎÎ ÏÎÎ ÎÏÏÎ:"
 
-#: C/window.c.page:23(p)
+#: C/02_welcome_to_the_grid.js.page:96(section/p)
 msgid ""
-"A minimal GtkApplication. Use <link xref=\"GtkApplicationWindow.c"
-"\">Application Window</link> if you need GMenu support."
+"We're going to need, at the very least, a picture and a text label to go "
+"with it. Let's start with the picture:"
 msgstr ""
-"ÎÎÎ ÎÏÎÎ GtkApplication. ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ ÏÎ <link xref=\"GtkApplicationWindow."
-"c\">ÏÎÏÎÎÏÏÎ ÎÏÎÏÎÎÎÎÏ</link> ÎÎÎ ÏÏÎÎÎÎÏÏÎÏÏÎ ÏÏÎÏÏÎÏÎÎÎ GMenu."
+"ÎÏÏÎÎÎÏÎÎ ÎÎ ÏÏÎÎÎÏÏÎÏÎÎ, ÏÎÏÎÎÏÎÏÏÎÎ, ÎÎÎ ÎÎÎÏÎÎ ÎÎÎ ÎÎÎ ÎÏÎÎÎÏÎ ÎÎÎÎÎÎÎÏ "
+"ÎÎ ÏÎÎÎ ÎÎÎÎ ÏÎÏ. ÎÏ ÎÏÏÎÏÎÏÎÎ ÎÎ ÏÎÎ ÎÎÎÏÎÎ:"
 
-#: C/weatherGeonames.js.page:10(name) C/weatherAutotools.js.page:10(name)
-#: C/weatherAppMain.js.page:10(name) C/weatherApp.js.page:11(name)
-#: C/helloWorld.js.page:14(name) C/guitar-tuner.js.page:11(name)
-#: C/grid.js.page:12(name) C/beginner.js.page:10(name)
-msgid "Susanna Huhtanen"
-msgstr "Susanna Huhtanen"
-
-#: C/weatherGeonames.js.page:11(email) C/weatherAutotools.js.page:11(email)
-#: C/weatherAppMain.js.page:11(email) C/weatherApp.js.page:12(email)
-#: C/helloWorld.js.page:15(email) C/guitar-tuner.js.page:12(email)
-#: C/grid.js.page:13(email) C/beginner.js.page:11(email)
-msgid "ihmis suski gmail com"
-msgstr "ihmis suski gmail com"
-
-#: C/weatherGeonames.js.page:18(title)
-msgid "Local library geoNames"
-msgstr "ÎÎÏÎÎÎ ÎÎÎÎÎÎÎÎÎÎ geoNames"
-
-#: C/weatherGeonames.js.page:20(p)
+#: C/02_welcome_to_the_grid.js.page:97(section/code)
+#, no-wrap
 msgid ""
-"In this part of the guide we'll construct the local library geoNames using "
-"asynchronous calls. Weather information in this example is fetched from "
-"geonames.org and the application is using the <link href=\"http://en.";
-"wikipedia.org/wiki/List_of_airports_by_ICAO_code:_E\">ICAO codes </link> to "
-"place your weather request. To write and run all the code examples yourself, "
-"you need an editor to write code in, Terminal and GNOME 3 or higher "
-"installed into your computer. In this guide we'll go through the following "
-"parts:"
+"\n"
+"        // Create an image\n"
+"        this._image = new Gtk.Image ({ file: \"gnome-image.png\" });\n"
 msgstr ""
-"ÎÎ ÎÏÏÏ ÏÎ ÏÎÎÎÎ ÏÎÏ ÎÎÎÎÎÏ ÏÏÏÎÎÎÏÎÎ ÎÎ ÎÎÏÎÏÎÎÏÎÏÎÏÎÎ ÎÎÎ ÏÎÏÎÎÎ "
-"ÎÎÎÎÎÎÎÎÎÎ geoNames ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÎÏÏÎÏÏÎÎÎÏ ÎÎÎÏÎÎÏ. ÎÎ ÏÎÎÏÎÏÎÏÎÎÏ ÏÎÏ "
-"ÎÎÎÏÎÏ ÏÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÏÎÏÎÏÎÎÏÎÎ ÎÏÏ ÏÎÎ geonames.org ÎÎÎ Î ÎÏÎÏÎÎÎÎ "
-"ÏÏÎÏÎÎÎÏÎÎÎÎ ÏÎ <link href=\"http://en.wikipedia.org/wiki/";
-"List_of_airports_by_ICAO_code:_E\">ÎÏÎÎÎÎÏÏ ICAO</link> ÎÎÎ ÎÎ ÏÎÏÎÎÎÏÎÏÎÎ "
-"ÏÎÎ ÎÎÏÎÏÎ ÏÎÏ ÎÎÎ ÏÎÎ ÎÎÎÏÏ. ÎÎÎ ÎÎ ÎÏÎÏÎÏÎ ÎÎÎ ÎÎ ÎÎÏÎÎÎÏÎÏÎ ÎÎ ÎÎÎÎÎ ÏÎ "
-"ÏÎÏÎÎÎÎÎÎÎÏÎ ÏÎÏ ÎÏÎÎÎÎ, ÏÏÎÎÎÎÎÏÏÎ ÎÎÎÎ ÎÏÎÎÎÏÎÎÏÏÎ ÎÎÎ ÎÎ ÎÏÎÏÎÏÎ ÏÎÎ "
-"ÎÏÎÎÎÎ, ÏÎÏÎÎÏÎÎÏ ÎÎÎ GNOME 3 Î ÎÎÎÎÎÏÏÎÏÎ ÎÎÎÎÏÎÏÏÎÎÎÎÎ ÏÏÎÎ ÏÏÎÎÎÎÎÏÏÎ "
-"ÏÎÏ. ÎÎ ÎÏÏÏÎ ÏÎÎ ÎÎÎÎÏ ÎÎ ÎÎÎÏÎÏÎÏÎÎ ÏÎ ÏÎÏÎÎÎÏÏ ÎÎÏÎ:"
-
-#: C/weatherGeonames.js.page:23(link) C/weatherGeonames.js.page:31(title)
-msgid "Local library for getting the weather"
-msgstr "ÎÎÏÎÎÎ ÎÎÎÎÎÎÎÎÎÎ ÎÎÎ ÎÎÏÎ ÏÎÏ ÎÎÎÏÎÏ"
-
-#: C/weatherGeonames.js.page:24(link)
-msgid "Creating function geoNames"
-msgstr "ÎÎÎÎÎÏÏÎÎÎ ÏÏÎÎÏÏÎÏÎÏ geoNames"
-
-#: C/weatherGeonames.js.page:25(link)
-msgid "Methods for geoNames"
-msgstr "ÎÎÎÎÎÎÎ ÎÎÎ geoNames"
-
-#: C/weatherGeonames.js.page:26(link) C/weatherGeonames.js.page:101(title)
-msgid "geonames.js"
-msgstr "geonames.js"
+"\n"
+"        // Create an image\n"
+"        this._image = new Gtk.Image ({ file: \"gnome-image.png\" });\n"
 
-#: C/weatherGeonames.js.page:32(p)
-msgid "For this we need a new file that will be our local library."
+#: C/02_welcome_to_the_grid.js.page:102(section/p)
+msgid ""
+"You can download the image file used in this example <link href=\"https://";
+"live.gnome.org/TarynFox?action=AttachFile&amp;do=get&amp;target=gnome-image."
+"png\">here</link>. Be sure to put it in the same directory as the code "
+"you're writing."
 msgstr ""
-"ÎÎÎ ÎÏÏÏ ÎÎ ÏÏÎÎÎÏÏÎÏÎÎ ÎÎÎ ÎÎÎ ÎÏÏÎÎÎ ÏÎÏ ÎÎ ÎÎÎÎÎ Î ÏÎÏÎÎÎ ÎÎÏ ÎÎÎÎÎÎÎÎÎÎ."
+"ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÏÎÎÎÏÎÏÎ ÏÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎÎÎ ÎÏÏÎÎÎ ÎÎÎÏÎÎÏ ÏÎ ÎÏÏÏ ÏÎ "
+"ÏÎÏÎÎÎÎÎÎÎ <link href=\"https://live.gnome.org/TarynFox?";
+"action=AttachFile&amp;do=get&amp;target=gnome-image.png\">ÎÎÏ</link>. "
+"ÎÎÎÎÎÏÎÎÎÏÎ ÎÎ ÏÎ ÎÎÎÎÏÎ ÏÏÎÎ ÎÎÎÎ ÎÎÏÎÎÎÎÎ ÎÎ ÏÎÎ ÎÏÎÎÎÎ ÏÎÏ ÎÏÎÏÎÏÎ."
 
-#: C/weatherGeonames.js.page:38(p)
+#: C/02_welcome_to_the_grid.js.page:104(section/code)
+#, no-wrap
 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."
+"\n"
+"        // Create a label\n"
+"        this._label = new Gtk.Label ({ label: \"Welcome to GNOME, too!\" });\n"
 msgstr ""
-"ÎÏÎÏ ÏÏÏÏÎÏ ÎÏÎÎÎÎÏ ÎÎ ÎÎÏÎÎÎÏÎÎ ÎÎÎ ÎÎ ÎÏÏÎÎÎÏÎÎÎÏÎÏÎÎ ÏÎÏ ÎÏÎÎÏÎÏÎÎÎÎÏ "
-"ÎÎÎÎÎÎÎÎÎÎÏ ÎÎÎ ÏÏÎÏÎ ÏÎ ÎÏÏÎ ÏÎÎ ÏÎÏÎÎÎ ÎÎÎÎÎÎÎÎÎÎ. ÎÎ Soup ÎÏÎÎÎÏÎÎÎÎÏÎÎ "
-"ÏÎÎÏ ÏÎÏ ÎÎÏÎÏÎÎÏ ÏÎÏ ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÏÎÎ ÎÎ http."
-
-#: C/weatherGeonames.js.page:42(title)
-msgid "Creating function GeoNames"
-msgstr "ÎÎÎÎÎÏÏÎÎÎ ÏÏÎÎÏÏÎÏÎÏ geoNames"
+"\n"
+"        // Create a label\n"
+"        this._label = new Gtk.Label ({ label: \"Welcome to GNOME, too!\" });\n"
 
-#: C/weatherGeonames.js.page:52(p)
+#: C/02_welcome_to_the_grid.js.page:108(section/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{}"
+"That code adds in the label beneath. You can see how we create widgets, "
+"here; each one is a part of Gtk, and we can give it properties that "
+"customize how it behaves. In this case, we set the Image's file property to "
+"be the filename of the picture we want, and the Label's label property to be "
+"the sentence that we want beneath the picture."
 msgstr ""
-"ÎÎÏ ÎÎÎÎÎÏÏÎÎÏÎÎ ÏÎ ÏÏÎÎÏÏÎÏÎ GeoNames ÏÎÏ ÎÎ ÏÎÎÏÎÏÏÎÎ ÏÎ ÎÎÏÎ ÎÎÎÏÎÏ ÎÎÎ "
-"ÎÎÏ. ÎÎ JavaScript ÎÏÎÏÏÎÏÎÎ ÏÎ ÎÎÎÎÎÏÏÎÎÎ ÏÏÎÎÏÏÎÏÎÏÎ ÏÎÏ ÎÏÎÏÎ ÎÎÎÎ ÎÎÏÎ "
-"ÏÏÎÎ ÎÏÏÎ ÎÎÎ ÎÏÎÏÏÎÏÎ ÏÎÏ ÎÏÎÎÏÎÎÎÎÎ. ÎÏÏÏ ÎÎ ÎÎÎÎÎ ÎÎÏÎ ÏÏÎ ÎÎÎÎÏÏÏÎ {} "
-"ÏÎÏ GeoNames.prototype"
-
-#: C/weatherGeonames.js.page:56(title)
-msgid "Methods for GeoNames"
-msgstr "ÎÎÎÎÎÎÎ ÎÎÎ GeoNames"
+"ÎÏÏÏÏ Î ÎÏÎÎÎÎÏ ÏÏÎÏÎÎÏÎÎ ÎÎÏÏ ÎÏÏ ÏÎÎ ÎÏÎÎÎÏÎ. ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÏÎ ÏÏÏ "
+"ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ, ÎÎÏÂ ÎÎÎÎÎÎ ÎÎÎÎÎ ÎÎÏÎÏ ÏÎÏ Gtk ÎÎÎ ÎÏÎÏÎÏÎÎ "
+"ÎÎ ÏÎÏ ÎÏÏÎÏÎÎ ÎÎÎÏÏÎÏÎÏ ÏÎÏ ÏÏÎÏÎÏÎÏÎÎÏÎ ÏÎ ÏÏÎÏÎÏÎÏÎÏÎ ÏÎÏ. ÎÎ ÎÏÏÎÎ ÏÎÎ "
+"ÏÎÏÎÏÏÏÏÎ, ÎÏÎÎÎÏÎÎ ÏÎÎ ÎÎÎÏÏÎÏÎ ÎÏÏÎÎÎ ÏÎÏ ÎÎÎÏÎÎÏ ÎÎ ÎÎÎÎÎ ÏÎ ÏÎÎÎÎ "
+"ÎÏÏÎÎÎÏ ÏÎÏ ÎÎÎÏÎÎÏ ÏÎÏ ÎÎÎÎÏÎÎ ÎÎÎ Î ÎÎÎÏÏÎÏÎ ÎÏÎÎÎÏÎ ÏÎÏ ÎÏÎÎÎÏÎÏ ÎÎ ÎÎÎÎÎ "
+"Î ÏÏÏÏÎÏÎ ÏÎÏ ÎÎÎÎÏÎÎ ÎÎÏÏ ÎÏÏ ÏÎÎ ÎÎÎÏÎÎ."
 
-#: C/weatherGeonames.js.page:96(p)
+#: C/02_welcome_to_the_grid.js.page:109(note/p)
 msgid ""
-"The first method for GeoNames is getWeather and the second getIcon. In "
-"getWeather we make a http request with soup, handle errors and then parse "
-"the information from the request to form we can use it. In getIcon we simply "
-"compare the results we got from getWeather to the switch we have in order to "
-"get the icon matching current weather. Now that we have our local library "
-"ready, it's time to make use of it."
+"Yes, it sounds redundant for a Label to have a label property, but it's not. "
+"Other widgets that contain text have a label property, so it's "
+"<em>consistent</em> for the Label widget to have one too."
 msgstr ""
-"Î ÏÏÏÏÎ ÎÎÎÎÎÎÏ ÎÎÎ ÏÎ GeoNames ÎÎÎÎÎ Î getWeather ÎÎÎ Î ÎÎÏÏÎÏÎ Î getIcon. "
-"ÎÏÎÎ getWeather ÎÎÎÎÏÎÎ ÎÎÎ ÎÎÏÎÏÎ http ÎÎ soup, ÎÏÎÎÎÏÎÎÏÎÎ ÏÏÎÎÎÎÏÏÎ ÎÎÎ "
-"ÎÏÎÎÏÎ ÎÎÎÎÏÏÎ ÏÎÏ ÏÎÎÏÎÏÎÏÎÎÏ ÎÏÏ ÏÎÎ ÎÎÏÎÏÎ ÎÎÎ ÎÎÏÏÎ ÏÎÏ ÎÏÎÏÎÏÎÎ ÎÎ "
-"ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ. ÎÏÎ getIcon ÏÏÎÎÏÎÎÎÏÎÎ ÎÏÎÎ ÏÎ ÎÏÎÏÎÎÎÏÎÎÏÎ ÏÎÏ ÏÎÎÏÎÎÏÎÎ "
-"ÎÏÏ getWeather ÏÏÎÎ ÎÎÎÎÏÏÏÎ ÏÎÏ ÎÏÎÏÎÎ ÎÎÎ ÏÎ ÎÎÏÎ ÎÎÎÎÎÎÎÎÎÏ ÏÎÏ ÏÎÎÏÎÎÎÎÎ "
-"ÏÏÎÎ ÏÏÎÏÎÎÏÎ ÎÎÎÏÏ. ÎÏÏÎ ÏÎÏ ÎÏÎÏÎÎ ÏÎÎ ÏÎÏÎÎÎ ÎÎÏ ÎÎÎÎÎÎÎÎÎÎ ÎÏÎÎÎÎ, ÎÎÎÎÎ "
-"ÎÎÎÏÏÏ ÎÎ ÏÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ."
+"ÎÎÎ, ÎÎÎÏÎÎÏÎÎ ÏÎÏÎÏÏÏ ÎÎÎ ÎÎÎ ÎÏÎÎÎÏÎ ÎÎ ÎÏÎÎ ÎÎÎ ÎÎÎÏÏÎÏÎ ÎÏÎÎÎÏÎÏ, ÎÎÎÎ "
+"ÎÎÎ ÎÏÏÏÎÎ. ÎÎÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÏÎÏ ÏÎÏÎÎÏÎÏÎ ÎÎÎÎÎÎÎ ÎÏÎÏÎ ÎÎÎ ÎÎÎÏÏÎÏÎ "
+"ÎÏÎÎÎÏÎÏ, ÎÏÏÎ ÎÎÎÎÎ <em>ÏÏÎÎÏÎÏ</em> ÎÎÎ ÏÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÏÎÎÎÏÎÏ ÎÎ "
+"ÎÏÎÎ ÎÏÎÏÎÏ ÎÎÎ."
 
-#: C/weatherGeonames.js.page:102(p)
+#: C/02_welcome_to_the_grid.js.page:110(section/p)
 msgid ""
-"Here is the entire code for our local library. The main program file calls "
-"this asynchronously."
+"We can't just add these widgets to our window in order, though, the same way "
+"HTML elements appear in the order you write them. That's because an "
+"ApplicationWindow can only contain one widget."
 msgstr ""
-"ÎÎÏ ÎÎÎÎÎ ÏÎÎÏ Î ÎÏÎÎÎÎÏ ÎÎÎ ÏÎÎ ÏÎÏÎÎÎ ÎÎÏ ÎÎÎÎÎÎÎÎÎÎ. ÎÎ ÎÏÏÎÎÎ ÏÎÏ ÎÏÏÎÏÏ "
-"ÏÏÎÎÏÎÎÎÎÏÎÏ ÏÎ ÎÎÎÎÎ ÎÏÏÎÏÏÎÎÎ."
-
-#: C/weatherAutotools.js.page:18(title) C/weatherApp.js.page:30(link)
-msgid "Autotools and Icons"
-msgstr "Autotools ÎÎÎ ÎÎÎÎÎÎÎÎÎ"
+"ÎÎÎ ÎÏÎÏÎÏÎÎ ÎÏÎÎ ÎÎ ÏÏÎÏÎÎÏÎÏÎÎ ÎÏÏÎ ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÏÏÎ ÏÎÏÎÎÏÏÏ ÎÎÏ "
+"ÏÏÎ ÏÎÎÏÎ, ÏÎÏÏ, ÎÎ ÏÎÎ ÎÎÎÎ ÏÏÏÏÎ ÏÎÏ ÏÎ ÏÏÎÎÏÎÎÎ HTML ÎÎÏÎÎÎÎÎÎÏÎÎ ÏÏÎ "
+"ÏÎÎÏÎ ÏÎÏ ÏÎ ÎÏÎÏÎÏÎ. ÎÏÏÏ ÏÏÎÎÎÎÎÎÎ ÎÏÎÎÎÎ ÎÎÎ ApplicationWindow ÎÏÎÏÎÎ ÎÎ "
+"ÏÎÏÎÎÏÎÎ ÎÏÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ."
 
-#: C/weatherAutotools.js.page:20(p)
+#: C/02_welcome_to_the_grid.js.page:111(section/p)
 msgid ""
-"In this part of the guide well construct the autotools and custom icons "
-"needed for weather application to be a seamless part of your desktop. To "
-"write and run all the code examples yourself, you need an editor to write "
-"code in, Terminal and GNOME 3 or higher installed into your computer. In "
-"this guide we we'll go through the following parts:"
+"How do we get around that? By making that one widget a container widget, "
+"which can hold more than one widget and organize them inside it. Behold: The "
+"Grid."
 msgstr ""
-"ÎÎ ÎÏÏÏ ÏÎ ÏÎÎÎÎ ÏÎÏ ÎÎÎÎÎÏ ÎÎ ÎÎÏÎÏÎÎÏÎÏÎÏÎÎ ÏÎ ÎÏÏÏÎÎÏÎ ÎÏÎÎÎÎÎÎ ÎÎÎ ÎÎ "
-"ÏÏÎÏÎÏÎÏÏÎÏÎÎ ÏÎ ÎÏÎÎÏÎÏÎÎÎÎ ÎÎÎÎÎÎÎÎÎ ÎÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ ÎÎÎÏÎÏ ÎÎÎ ÎÎ ÎÎÎÎÎ "
-"ÎÏÏÎÏÎ ÎÎÏÎÏ ÏÎÏ ÎÏÎÏÎÎÎÎÎÏ ÎÏÎÎÏÎÎÏ ÏÎÏ. ÎÎÎ ÎÎ ÎÏÎÏÎÏÎ ÎÎÎ ÎÎ ÏÏÎÎÎÏÎ ÏÎÎ "
-"ÏÎ ÏÎÏÎÎÎÎÎÎÎÏÎ ÎÏÎÎÎÎ ÎÎ ÎÎÎÎÎ, ÏÏÎÎÎÎÏÏÎÏÏÎ ÎÎÎÎ ÎÏÎÎÎÏÎÎÏÏÎ ÎÎÎ ÎÎ "
-"ÎÏÎÏÎÎÎ ÏÎÏ ÎÏÎÎÎÎ, ÏÎÏÎÎÏÎÎÏ ÎÎÎ GNOME 3 Î ÎÎÏÎÎÎÎÎÏÏÎÏÎ ÎÎÎÎÏÎÏÏÎÎÎÎÎ ÏÏÎÎ "
-"ÏÏÎÎÎÎÎÏÏÎ ÏÎÏ. ÎÎ ÎÏÏÏÎ ÏÎÎ ÎÎÎÎÏ ÎÎ ÎÎÎÏÎÏÎÏÎÎ ÏÎ ÏÎÏÎÎÎÏÏ ÎÎÏÎ:"
-
-#: C/weatherAutotools.js.page:23(link)
-msgid "Autotools"
-msgstr "Autotools"
-
-#: C/weatherAutotools.js.page:24(link) C/weatherAutotools.js.page:144(title)
-msgid "Custom icons for your application"
-msgstr "ÎÏÎÏÎÏÎÎÎÎ ÎÎÎÎÎÎÎÎÏÎ ÎÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ ÏÎÏ"
-
-#: C/weatherAutotools.js.page:31(title)
-msgid "Autotools and necessary files"
-msgstr "Autotools ÎÎÎ ÎÏÎÏÎÎÏÎÏÎ ÎÏÏÎÎÎ"
+"ÎÏÏ ÏÎ ÏÎÏÎÎÎÎÏÏÎÏÎÎ; ÎÎÎÎÎÏÎÏ ÎÏÏÏ ÏÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÎÎÎ ÎÏÎÎÎÎÏÎ "
+"ÎÏÎÏÎÎÎÏ ÏÏÏÏÎÏÎÎÎÏ, ÏÎÏ ÎÏÎÏÎÎ ÎÎ ÎÏÎÏÎ ÏÎÏÎÏÏÏÏÎÏÎ ÎÏÏ ÎÎÎ ÎÏÎÏÎÎÎ "
+"ÏÏÏÏÎÏÎÎÎ ÎÎÎ ÎÎ ÏÎ ÎÏÎÎÎÏÏÎÏÎÎ ÎÎÏÎ ÏÎÏ. ÎÎÎÏ: ÏÎ ÏÎÎÎÎÎ."
 
-#: C/weatherAutotools.js.page:32(p)
+#: C/02_welcome_to_the_grid.js.page:112(section/code)
+#, no-wrap
 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."
+"\n"
+"        // Create the Grid\n"
+"        this._grid = new Gtk.Grid ();\n"
 msgstr ""
-"ÎÏÎÎÏÎÏ ÏÎÏÎÏÏÏÏÎÏÎ ÎÏÏ ÎÎÎ ÎÏÏÎÎÎ ÏÏÎÎ ÏÎÎÎÎÏ ÏÎÏ ÎÎÎÎÎ ÏÎ ÏÏÎÏÎ ÏÎÏ "
-"autotools ÎÎÎÎ ÏÎÏÎÏÎÎÎÎ. ÎÏÎÎÎÎÏÏÎÏÏÎ ÏÎ ÎÏÏÎÎÎ .desktop, autogen.sh, "
-"Makefile.am, configure.ac ÎÎÎ ÏÏ ÎÎÎ ÎÏÏÎÎÎ: ÏÎ ÎÏÏÎÎÎ myapp.sh.in. Î "
-"ÎÏÎÎÎÏÎÎÏÎÎ ÏÎÏ ÎÏÏÎÎÎÏ autotools ÎÎÎÎÎ ÎÎÎ ÏÎÏÎÏÎÎÎÎ ÏÎÎÎÎ. ÎÎÏÎÏÏÏÏÎÏÎÏ "
-"ÏÎÎÏÎÏÎÏÎÎÏ ÎÏÎÏÎÎÏÎ ÎÎ ÎÏÎÎÏÎ ÏÎ ÏÎÎÎÎÏ ÎÎÎÏÎÏÎÏÎÎÎÏ ÏÎÎÎÏ, <link href="
-"\"http://en.wikipedia.org/wiki/GNU_build_system\";>ÏÎ ÎÏÎÏÎ ÏÎÏ ÎÎÎÎ</link> "
-"ÏÎÏÎÏÎÎ ÎÎÎ ÎÎÎÎ ÎÏÎÏÎÏÏÎÏÎ ÏÎÏ ÎÎÎÎÏÎÏ."
-
-#: C/weatherAutotools.js.page:35(p) C/weatherAutotools.js.page:41(p)
-msgid "weatherapp.desktop"
-msgstr "weatherapp.desktop"
-
-#: C/weatherAutotools.js.page:36(p) C/weatherAutotools.js.page:56(p)
-msgid "weatherapp.sh.in"
-msgstr "weatherapp.sh.in"
-
-#: C/weatherAutotools.js.page:37(p) C/weatherAutotools.js.page:63(p)
-#: C/helloWorld.js.page:162(title)
-msgid "Makefile.am"
-msgstr "Makefile.am"
-
-#: C/weatherAutotools.js.page:38(p) C/weatherAutotools.js.page:130(p)
-#: C/helloWorld.js.page:167(title)
-msgid "configure.ac"
-msgstr "configure.ac"
-
-#: C/weatherAutotools.js.page:39(p) C/helloWorld.js.page:154(title)
-msgid "autogen.sh"
-msgstr "autogen.sh"
+"\n"
+"        // Create the Grid\n"
+"        this._grid = new Gtk.Grid ();\n"
 
-#: C/weatherAutotools.js.page:54(p)
+#: C/02_welcome_to_the_grid.js.page:117(section/p)
 msgid ""
-"The thing to notice in this file is that the Exec line will make this ."
-"desktop file work only after running all the other makefiles. Weatherapp.sh "
-"is a small shell script created with the weatherapp.sh.in."
+"We're not giving it any properties yet. Those will come later, as we learn "
+"how to use the Grid's powers. First, let's attach the Image and Label we "
+"made to our Grid."
 msgstr ""
-"ÎÏÏÏ ÏÎÏ ÏÏÎÏÎÎ ÎÎ ÏÎÎÎÎÏÏÎÏÎ ÏÎ ÎÏÏÏ ÏÎ ÎÏÏÎÎÎ ÎÎÎÎÎ ÏÏÎ Î ÎÏÎÎÎÎ Exec ÎÎ "
-"ÎÎÎÎÎ ÎÏÏÏ ÏÎ ÎÏÏÎÎÎ .desktop ÎÎ ÎÎÏÎÎÏÎÎ ÎÏÎÎ ÎÎÏÎ ÏÎÎ ÎÎÏÎÎÎÏÎ ÏÎÏÎ ÏÏÎ "
-"ÎÎÎÏÎ makefiles. ÎÎ Weatherapp.sh ÎÎÎÎÎ ÎÎÎ ÎÎÎÏÏ ÏÎÎÎÏÎÎ ÎÎÎÏÏÎÏÏ ÏÎÏ "
-"ÎÎÎÎÎÏÏÎÎÎÎÎÎ ÎÎ ÏÎ weatherapp.sh.in."
+"ÎÎÎ ÏÎÏ ÎÎÎÎÏÎÎ ÎÎÏÎÎ ÎÎÎÏÏÎÏÎÏ. ÎÏÏÎÏ ÎÎ ÎÏÎÎÏÎ ÎÏÎÏÏÎÏÎ, ÎÎÎÏÏ ÎÎÎÎÎÎÎÏÎÎ "
+"ÏÏÏ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÏÎÏ ÎÏÎÎÎÎÎÏ ÏÎÏ ÏÎÎÎÎÎÏÎÏ. ÎÏÏÏÎ, ÎÏ ÏÏÎÏÎÏÏÎÏÎÏÎÎ "
+"ÏÎÎ ÎÎÎÏÎÎ ÎÎÎ ÏÎÎ ÎÏÎÎÎÏÎ ÏÎÏ ÎÎÎÎÎÎ ÏÏÎ ÏÎÎÎÎÎ ÎÎÏ."
 
-#: C/weatherAutotools.js.page:61(p)
+#: C/02_welcome_to_the_grid.js.page:118(section/code)
+#, no-wrap
 msgid ""
-"This file is a template to the file Makefile will do to be run from .desktop."
+"\n"
+"        // Attach the image and label to the grid\n"
+"        this._grid.attach (this._image, 0, 0, 1, 1);\n"
+"        this._grid.attach (this._label, 0, 1, 1, 1);\n"
 msgstr ""
-"ÎÏÏÏ ÏÎ ÎÏÏÎÎÎ ÎÎÎÎÎ ÎÎÎ ÏÏÏÏÏÏÎ ÏÏÎ ÎÏÏÎÎÎ Makefile ÎÎÎ ÎÎ ÎÎÏÎÎÎÏÏÎÎ ÎÏÏ ."
-"desktop."
+"\n"
+"        // Attach the image and label to the grid\n"
+"        this._grid.attach (this._image, 0, 0, 1, 1);\n"
+"        this._grid.attach (this._label, 0, 1, 1, 1);\n"
 
-#: C/weatherAutotools.js.page:124(p)
+#: C/02_welcome_to_the_grid.js.page:124(section/p)
 msgid ""
-"This needs a bit more explaining. Compared to the HelloWorld Makefile.am "
-"this has changed quite a bit. Lets go through all the new blocks:"
+"This code looks awfully complicated, but it's not. Here's what those numbers "
+"mean:"
 msgstr ""
-"ÎÏÏÏ ÏÏÎÎÎÎÎÏÎÎ ÎÎÎÎ ÏÎÏÎÏÏÏÏÎÏÎ ÎÎÎÎÎÏÎ. ÎÏÎÎÏÎÎÏÎÎÎÎ ÎÎ ÏÎ HelloWorld "
-"Makefile.am ÎÏÏÏ ÎÏÎÎ ÎÎÎÎÎÎÎ ÎÏÎÎÏÎ. ÎÏ ÎÎÎÏÎÏÎÏÎÎ ÏÎÎÏ ÏÎÏ ÎÎÎÏ ÎÎÎÎÎÏ:"
+"ÎÏÏÏÏ Î ÎÏÎÎÎÎÏ ÏÎÎÎÎÏÎÎ ÏÎÎÏ ÏÎÏÎÏÎÎÎÎÏ, ÎÎÎÎ ÎÎÎ ÎÎÎÎÎ. ÎÎ ÏÎ ÏÎÎÎÎÎÎÏÎ "
+"ÎÏÏÎÎ ÎÎ ÎÏÎÎÎÎÎ:"
 
-#: C/weatherAutotools.js.page:125(p)
+#: C/02_welcome_to_the_grid.js.page:126(item/p)
 msgid ""
-"bin_scripts are the files that are needed to run your application. In thin "
-"case they are the first two files are the program itself and the third is "
-"the script that launches the application."
+"The <em>first</em> number is what left-to-right position to put things in, "
+"starting from 0. Any widget that uses a 0 here goes all the way to the left."
 msgstr ""
-"bin_scripts ÎÎÎÎÎ ÏÎ ÎÏÏÎÎÎ ÏÎÏ ÎÏÎÎÏÎÏÎÏÎÎ ÎÎÎ ÎÎÏÎÎÎÏÎ ÏÎÏ ÎÏÎÏÎÎÎÎÏ ÏÎÏ. "
-"ÎÎ ÎÏÏÎÎ ÏÎÎ ÏÎÏÎÏÏÏÏÎ ÎÎÎÎÎ ÏÎ ÏÏÏÏÎ ÎÏÎ ÎÏÏÎÎÎ ÏÎÏ ÎÎÎÎÏ ÏÎÏ ÏÏÎÎÏÎÎÎÎÏÎÏ "
-"ÎÎÎ ÏÎ ÏÏÎÏÎ ÎÎÎÎÎ ÏÎ ÏÎÎÎÏÎÎ ÏÎÏ ÎÎÎÎÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ."
-
-#: C/weatherAutotools.js.page:126(p)
-msgid "EXTRA_DIST are the files that are to be distributed"
-msgstr "EXTRA_DIST ÎÎÎÎÎ ÏÎ ÎÏÏÎÎÎ ÏÎÏ ÏÏÏÎÎÎÏÎÎ ÎÎ ÎÎÎÎÎÎÎÎÎÏÎ"
+"Î <em>ÏÏÏÏÎÏ</em> ÎÏÎÎÎÏÏ ÎÎÎÎÎ ÏÎ ÏÎÎÎ ÎÎÏÎ ÎÏÏ ÎÏÎÏÏÎÏÎ ÏÏÎÏ ÏÎ ÎÎÎÎÎ ÎÎ "
+"ÏÎÏÎÎÎÏÎÎÎÏÎ ÏÏÎÎÎÎÏÎ, ÎÏÏÎÎÎÎÏÎÏ ÎÏÏ 0. ÎÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÏÎÏ "
+"ÏÏÎÏÎÎÎÏÎÎÎÎ ÎÎÎ 0 ÎÎÏ ÏÎÎÎÎÎÎÎ ÏÎÎ ÎÏÎÏÏÎÏÎ."
 
-#: C/weatherAutotools.js.page:127(p)
-msgid "do_subst block is bits and pieces that need to be where they are"
+#: C/02_welcome_to_the_grid.js.page:127(item/p)
+msgid ""
+"The <em>second</em> number is what top-to-botton position to put a given "
+"widget in, starting from 0. The Label goes beneath the Image, so we give the "
+"Image a 0 and the Label a 1 here."
 msgstr ""
-"ÎÎÎÎÎ do_subst ÎÎÎÎÎ ÎÏÎÎÎÎÎ ÎÎÎ ÎÎÎÎÎÏÎÎ ÏÎÏ ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎ ÎÎÎÎ ÏÎÏ "
-"ÎÏÎÏÎÎÎÏÎÎ"
+"Î <em>ÎÎÏÏÎÏÎÏ</em> ÎÏÎÎÎÏÏ ÎÎÎÎÎ ÏÎ ÏÎÎÎ ÎÎÏÎ ÎÏÏ ÏÎÎÏ ÏÏÎÏ ÏÎ ÎÎÏÏ ÎÎ ÎÏÎÎ "
+"ÏÎ ÎÎÎÎÎÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ, ÎÎÎÎÎÏÎÏÎÏ ÎÏÏ 0. Î ÎÏÎÎÎÏÎ ÏÎÎÎÎÎÎÎ ÎÎÏÏ ÎÏÏ "
+"ÏÎÎ ÎÎÎÏÎÎ, ÎÏÏÎ ÎÎÎÎÏÎÎ ÏÏÎÎ ÎÎÎÏÎÎ ÎÎÎ 0 ÎÎÎ ÏÏÎÎ ÎÏÎÎÎÏÎ ÎÎÎ 1 ÎÎÏ."
 
-#: C/weatherAutotools.js.page:128(p)
+#: C/02_welcome_to_the_grid.js.page:128(item/p)
 msgid ""
-"after the comment #icons in the application there are all the icons that are "
-"used by the program. For them to be useful you need to install the icons in "
-"correct places and that is done byt the install-icons: bit"
+"The <em>third</em> and <em>fourth</em> numbers are how many columns and rows "
+"a widget should take up. We'll see how these work in a minute."
 msgstr ""
-"ÎÎÏÎ ÏÎ ÏÏÏÎÎÎ #icons in the application ÏÏÎÏÏÎÏÎ ÏÎÎ ÏÎ ÎÎÎÎÎÎÎÎÎ ÏÎÏ "
-"ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÏÏ ÏÎ ÏÏÏÎÏÎÎÎÎ. ÎÎÎ ÎÎ ÎÎÎÎÎ ÏÏÎÏÎÎÎ ÎÏÏÎ ÏÏÎÏÎÎ ÎÎ "
-"ÎÎÎÎÏÎÏÏÎÏÎÏÎ ÏÎ ÎÎÎÎÎÎÎÎÎ ÏÎ ÏÏÏÏÎÏ ÎÎÏÎÎÏ ÎÎÎ ÎÏÏÏ ÎÎÎÎÏÎÎ ÎÏÏ ÏÎ install-"
-"icons: bit"
-
-#: C/weatherAutotools.js.page:137(p)
-msgid "autohen.sh"
-msgstr "autohen.sh"
+"Î <em>ÏÏÎÏÎÏ</em> ÎÎÎ Î <em>ÏÎÏÎÏÏÎÏ</em> ÎÏÎÎÎÏÏ ÎÎÎÎÎ ÏÏÏÎÏ ÏÏÎÎÎÏ ÎÎÎ "
+"ÎÏÎÎÎÎÏ ÏÏÎÏÎÎ ÎÎ ÎÎÏÎÎÎÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ. ÎÎ ÎÎÏÎÎ ÏÏÏ ÎÏÏÎ "
+"ÎÎÏÎÎÏÎÏÎ ÏÎ ÎÎÎ ÎÎÏÏÏ."
 
-#: C/weatherAutotools.js.page:145(p)
+#: C/02_welcome_to_the_grid.js.page:131(section/code)
+#, no-wrap
 msgid ""
-"When thinking about custom icons a good rule of thumb is: do you expect to "
-"see that icon used elsewhere or is it private to your app? If the first (e."
-"g. the icons in the desktop file that are shown by the shell) then you need /"
-"usr/share/hicolor, otherwise (e.g. the weather icons of your app) /usr/share/"
-"$application/bla/bla"
+"\n"
+"        // Add the grid to the window\n"
+"        this._window.add (this._grid);\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    }\n"
+"\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new WelcomeToTheGrid ();\n"
+"app.application.run (ARGV);\n"
 msgstr ""
-"ÎÎÎ ÏÎÎÏÏÎÏÏÎ ÏÎ ÏÏÎÏÎÏÎÎÏÎÎÎÎ ÎÎÎÎÎÎÎÎÎ ÎÎÎÏ ÎÎÎÏÏ ÏÏÏÏÎÎÏÎÏ ÎÎÎÏÎÎÏ ÎÎÎÎÎ "
-"Î ÎÎÎÏ: ÏÎÏÎÎÎÎÎÏÎ ÎÎ ÎÎÎÏÎ ÎÏÏÏ ÏÎ ÎÎÎÎÎÎÎÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÎÎÏÎÏ ÎÎÎÎÏ "
-"Î ÎÎÎÎÎ ÎÏÎÎ ÎÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ ÏÎÏ; ÎÎÎ ÏÏÎÎÎÎÎÎÎ ÏÎ ÏÏÏÏÎ (Ï.Ï. ÏÎ ÎÎÎÎÎÎÎÎÎ "
-"ÏÏÎ ÎÏÏÎÎÎ ÏÎÏ ÎÏÎÏÎÎÎÎÎÏ ÎÏÎÎÏÎÎÏ ÏÎÏ ÎÎÏÎÎÎÎÎÎÏÎÎ ÎÏÏ ÏÎ ÎÎÎÏÏÎÏ) ÏÏÏÎ "
-"ÏÏÎÎÎÎÏÏÎÏÏÎ /usr/share/hicolor, ÎÎÎÎÏÏ (Ï.Ï. ÏÎ ÎÎÎÎÎÎÎÎÎ ÎÎÎÏÎÏ ÏÎÏ "
-"ÎÏÎÏÎÎÎÎÏ ÏÎÏ) /usr/share/$application/bla/bla"
+"\n"
+"        // Add the grid to the window\n"
+"        this._window.add (this._grid);\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    }\n"
+"\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new WelcomeToTheGrid ();\n"
+"app.application.run (ARGV);\n"
 
-#: C/weatherAutotools.js.page:146(p)
+#: C/02_welcome_to_the_grid.js.page:145(section/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"
+"Now that we've created the Grid and attached all our widgets to it, we add "
+"it to the window and tell the window to show itself, as the last part of the "
+"_buildUI function. As always, to finish up we create a new instance of the "
+"application's class and tell it to run."
 msgstr ""
-"ÎÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ autotools ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÏÎ ÎÎÏÎÎÎÏ ÎÎÎÎÎÎÏ ÏÏÎ ÎÏÏÎÎÎ "
-"ÏÎÏ .desktop and Makefile.am. ÎÏÎ ÎÏÏÎÎÎ ÎÏÎÏÎÎÎÎÎÏ ÎÏÎÎÏÎÎÏ ÎÎÎÎÎÏÎ ÏÎ "
-"ÏÎÎÎÎ ÏÎÏ ÎÎÎÎÎÎÎÎÎÏ Icon=weather-icon. ÎÏÎ ÎÏÏÎÎÎ Makefile.am ÏÏÎÏÎÎÏÏÎ "
-"ÎÏÏÎÏ ÏÎÏ ÎÏÎ ÎÏÎÎÎÎÏ ÏÏÎ ÏÎÎÎÏ ÏÎÏ ÎÏÎÏÎÎÎÎ ÏÎÏ #the application icon"
-
-#: C/weatherAutotools.js.page:147(p)
-msgid "appicondir=$(datadir)/icons/hicolor/scalable/apps"
-msgstr "appicondir=$(datadir)/icons/hicolor/scalable/apps"
-
-#: C/weatherAutotools.js.page:148(p)
-msgid "appicon_DATA=weather-icon.svg"
-msgstr "appicon_DATA=weather-icon.svg"
-
-#: C/weatherAppMain.js.page:18(title) C/weatherApp.js.page:28(link)
-msgid "The main program file"
-msgstr "ÎÎ ÎÏÏÎÎ ÎÏÏÎÎÎ ÏÎÏ ÏÏÎÎÏÎÎÎÎÏÎÏ"
+"ÎÏÏÎ ÏÎÏ ÎÏÎÏÎÎ ÎÎÎÎÎÏÏÎÎÏÎÎ ÏÎ ÏÎÎÎÎÎ ÎÎÎ ÏÏÎÏÎÏÏÎÏÎÎÎ ÏÎ ÎÏÏÏ ÏÎÎ ÏÎ "
+"ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÏ, ÏÎ ÏÏÎÏÎÎÏÎÏÎÎ ÏÏÎ ÏÎÏÎÎÏÏÎ ÎÎÎ ÎÎÎÎ ÏÏÎ ÏÎÏÎÎÏÏÎ ÎÎ "
+"ÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÎÏÏÏÎ ÏÎÏ, ÏÏÏÏ ÏÎ ÏÎÎÎÏÏÎÎÎ ÎÎÏÎÏ ÏÎÏ ÏÏÎÎÏÏÎÏÎÏ _buildUI. "
+"ÎÏÏÏ ÏÎÎÏÎ, ÎÎÎ ÎÎ ÏÎÎÎÎÏÏÎÏÎÎ ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ ÎÎÎ ÏÏÎÎÎÎÏÏÏÏÎ ÏÎÏ ÎÎÎÏÎÏ "
+"ÏÎÏ ÎÏÎÏÎÎÎÎÏ ÎÎÎ ÏÎÏ ÎÎÎÎ ÎÎ ÎÎÏÎÎÎÏÏÎÎ."
 
-#: C/weatherAppMain.js.page:20(p)
+#: C/02_welcome_to_the_grid.js.page:146(section/p)
 msgid ""
-"In this part of the guide well construct the main program file of the "
-"weather application. To write and run all the code examples yourself, you "
-"need an editor to write code in, Terminal and GNOME 3 or higher installed "
-"into your computer. In this part we we'll go through the following parts:"
+"Save your application as welcome_to_the_grid.js. Then, to run your "
+"application just open a terminal, go to the directory where your application "
+"is at, and type"
 msgstr ""
-"ÎÎ ÎÏÏÏ ÏÎ ÏÎÎÎÎ ÏÎÏ ÎÎÎÎÎÏ ÎÎ ÎÎÏÎÏÎÎÏÎÏÎÏÎÎ ÏÎ ÎÏÏÎÎ ÎÏÏÎÎÎ ÏÎÏ "
-"ÏÏÎÎÏÎÎÎÎÏÎÏ ÏÎÏ ÎÏÎÏÎÎÎÎÏ ÎÎÎÏÎÏ. ÎÎÎ ÎÎ ÎÏÎÏÎÏÎ ÎÎÎ ÎÎ ÏÏÎÎÎÏÎ ÏÎÎ ÏÎ "
-"ÏÎÏÎÎÎÎÎÎÎÏÎ ÎÏÎÎÎÎ ÎÎ ÎÎÎÎÎ, ÏÏÎÎÎÎÏÏÎÏÏÎ ÎÎÎÎ ÎÏÎÎÎÏÎÎÏÏÎ ÎÎÎ ÏÎ ÎÏÎÏÎÎÎ "
-"ÏÎÏ ÎÏÎÎÎÎ, ÏÎÏÎÎÏÎÎÏ ÎÎÎ GNOME 3 Î ÎÎÏÎÎÎÎÎÏÏÎÏÎ ÎÎÎÎÏÎÏÏÎÎÎÎÎ ÏÏÎÎ "
-"ÏÏÎÎÎÎÎÏÏÎ ÏÎÏ. ÎÎ ÎÏÏÏ ÏÎ ÏÎÎÎÎ ÎÎ ÎÎÎÏÎÏÎÏÎÎ ÏÎ ÏÎÏÎÎÎÏÏ ÎÎÏÎ:"
-
-#: C/weatherAppMain.js.page:22(link) C/weatherAppMain.js.page:32(title)
-#: C/helloWorld.js.page:45(title) C/guitar-tuner.js.page:25(link)
-#: C/guitar-tuner.js.page:47(title)
-msgid "Script for running the application"
-msgstr "ÎÎÎÎÏÎÎ ÎÎÎ ÎÎÏÎÎÎÏÎ ÏÎÏ ÎÏÎÏÎÎÎÎÏ"
-
-#: C/weatherAppMain.js.page:23(link) C/weatherAppMain.js.page:40(title)
-#: C/treeview_simple_liststore.js.page:36(title)
-#: C/togglebutton.js.page:27(title) C/textview.js.page:37(title)
-#: C/switch.js.page:34(title) C/statusbar.js.page:27(title)
-#: C/spinbutton.js.page:30(title) C/scale.js.page:27(title)
-#: C/radiobutton.js.page:27(title) C/messagedialog.js.page:30(title)
-#: C/helloWorld.js.page:52(title) C/guitar-tuner.js.page:26(link)
-#: C/guitar-tuner.js.page:54(title) C/combobox.js.page:32(title)
-#: C/comboboxtext.js.page:29(title) C/checkbutton.js.page:27(title)
-msgid "Libraries to import"
-msgstr "ÎÎÎÎÎÎÎÎÎÎÏ ÎÎÎ ÎÎÏÎÎÏÎÎ"
+"ÎÏÎÎÎÎÎÏÏÏÎ ÏÎÎ ÎÏÎÏÎÎÎÎ ÏÎÏ ÏÏ welcome_to_the_grid.js. ÎÏÎÎÏÎ, ÎÎÎ ÎÎ "
+"ÎÎÏÎÎÎÏÎÏÎ ÏÎÎ ÎÏÎÏÎÎÎÎ ÏÎÏ ÎÎÎÎÎÏÎ ÎÏÎÎ ÎÎÎÎ ÏÎÏÎÎÏÎÎÏ, ÏÎÎÎÎÎÎÏÎ ÏÏÎÎ "
+"ÎÎÏÎÎÎÎÎ ÏÏÎÏ Î ÎÏÎÏÎÎÎÎ ÏÎÏ ÎÎÎÎÎ ÎÎÎ ÏÎÎÎÏÏÎÎÎÎÎÏÏÎ"
 
-#: C/weatherAppMain.js.page:24(link) C/weatherAppMain.js.page:48(title)
-#: C/helloWorld.js.page:58(title) C/guitar-tuner.js.page:27(link)
-#: C/guitar-tuner.js.page:63(title)
-msgid "Creating the main window for the application"
-msgstr "ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ ÎÏÏÎÎÏ ÏÎÏÎÎÏÏÎÏ ÎÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ"
+#: C/02_welcome_to_the_grid.js.page:147(section/screen)
+#, no-wrap
+msgid " <output style=\"prompt\">$ </output>gjs welcome_to_the_grid.js "
+msgstr " <output style=\"prompt\">$ </output>gjs welcome_to_the_grid.js "
 
-#: C/weatherAppMain.js.page:25(link) C/weatherAppMain.js.page:63(title)
-msgid "Adding a grid and all the necessary widgets to it"
+#: C/02_welcome_to_the_grid.js.page:151(section/p)
+msgid ""
+"There we go! But wait. That doesn't look right. Why is the Label crammed up "
+"next to the Image like that? That doesn't look as nice, and it makes it "
+"harder to read. What can we do about this?"
 msgstr ""
-"ÎÏÎÏÎÎÎÎ ÏÎÎÎÎÎÏÎÏ ÎÎÎ ÏÎÏÎ ÏÏÎ ÎÏÎÏÎÎÏÎÏÏÎ ÎÏÎÏÎÎÏÎ ÏÏÏÏÎÏÎÎÏÎ ÏÎ ÎÏÏÏ"
-
-#: C/weatherAppMain.js.page:26(link) C/weatherAppMain.js.page:94(title)
-msgid "Requesting the weather information asynchronously"
-msgstr "ÎÎÏÎÏÎ ÏÏÎ ÏÎÎÏÎÏÎÏÎÏÎ ÎÎÎÏÎÏ ÎÏÏÎÏÏÎÎÎ"
-
-#: C/weatherAppMain.js.page:27(link)
-msgid "Connecting signals to button and entry.\"&gt;"
-msgstr "ÎÏÎÎÎÏÎ ÏÎÎÎÏÏÎ ÏÎ ÎÎÏÎÏÎ ÎÎÎ ÎÎÏÎÏÏÏÎÏÎ.\"&gt;"
+"ÎÎ! ÎÎÎÎ ÏÎÏÎÎÎÎÎÏÎ. ÎÏÏÏ ÎÎÎ ÏÎÎÎÎÏÎÎ ÏÏÏÏÏ. ÎÎÎÏÎ ÏÏÏÎÎÏÏÎÎÏÎÎ Î ÎÏÎÎÎÏÎ "
+"ÎÎÏÎÎ ÏÏÎÎ ÎÎÎÏÎÎ ÎÏÏÎ; ÎÏÏÏ ÎÎÎ ÏÎÎÎÎÏÎÎ ÏÏÎÎÎ ÎÎÎ ÎÏÏÎÎÎÎÏÎÎ ÏÎÎ ÎÎÎÎÎÏÏÎ. "
+"ÎÎ ÎÏÎÏÎÏÎÎ ÎÎ ÎÎÎÎÏÎÎ ÎÎÎ ÎÏÏÏ;"
 
-#: C/weatherAppMain.js.page:28(link)
-msgid "weatherapp.js"
-msgstr "weatherapp.js"
+#: C/02_welcome_to_the_grid.js.page:155(section/title)
+msgid "Tweaking the Grid"
+msgstr "ÎÎÎÏÎÏÏÎÎÎÏÎ ÏÎÏ ÏÎÎÎÎÎÏÎÏ"
 
-#: C/weatherAppMain.js.page:35(p)
+#: C/02_welcome_to_the_grid.js.page:157(section/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"
+"One thing we can do, is we can give the Label a margin_top property when we "
+"create it. This works sort of like setting a margin for an HTML element "
+"using inline CSS styling."
 msgstr ""
-"ÎÏÏÎ Î ÎÏÎÎÎÎ ÎÎÎÎ ÏÏÏ ÎÎ ÎÎÏÎÎÎÏÏÎÎ ÏÎ ÏÎÎÎÏÎÎ. ÎÏÎÏÎÎ ÎÎ ÎÎÎÎÎ Î ÏÏÏÏÎ "
-"ÎÏÎÎÎÎ ÏÎÏ ÎÏÎÎÎÎ ÎÎÎ ÎÎ ÎÎÎÎÎ ÎÎÏÎÎÎÏÎÎÎ. ÎÎÎ ÎÎÏÎ ÏÏÎ ÎÎÎÎÎÏÎÎÏÏÎ "
-"ÎÎÏÎÎÎÏÎÏ ÏÎÎÎÎÎÎÏÎ ÏÏÎÎ ÏÎÏÎÎÏÎÎÏ ÎÎÎ ÎÎÏÎÎÎÏÏÎ ÏÏÎÎ ÏÏÏÏÏ ÏÎÎÎÎÎ: chmod +x "
-"ÏÎÎÎÎ ÏÎÎÎÏÎÎÏ. Î ÎÏÎÏÎÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÏÎÎ ÎÎÎÏÎÎÏÎÏÏÎ ÎÏÏÎÎÎÏ "
-"ÎÏÎÏÎÎÏÎ. ÎÏÎÎ ÏÎÎÎÎÎÎÏÎ ÏÏÎÎ ÏÏÏÏÏ ÏÎÎÎÎÎ ÏÏÎÏ ÎÎÎÎÎ Î ÎÏÎÎÎÎÏ ÏÎÏ ÎÎÎÎ "
-"ÎÎÎÎ ÏÏÎ ÎÏÏÎÎÎ ÏÎÏ ÎÏÎÎÎÎ ÏÎÏ, ÎÏÎÎÎÎÏÎ ÎÎÎÏÏÎÏÎÏ, ÎÎÎÎ ÏÏÎÎ ÎÎÏÏÎÎÎ "
-"ÎÎÎÎÎÏÎÎÏÏÎ ÎÎÎ ÏÎÎÎÎÏÏÏÎ ÏÎ ÏÎÎÎÏÎÎ ÎÎÎ ÎÎ ÎÏÎÏÏÎÏÎÎ Î ÎÎÏÎÎÎÏÎ ÏÎÏ ÎÏÏÎÎÎÏ "
-"ÏÏ ÏÏÏÎÏÎÎÎÎ"
+"ÎÎÎ ÏÏÎÎÎÎ ÏÎÏ ÎÏÎÏÎÏÎÎ ÎÎ ÎÎÎÎÏÎÎ, ÎÎÎÎÎ ÎÎ ÎÏÏÎÏÎÎ ÏÏÎÎ ÎÏÎÎÎÏÎ ÎÎÎ "
+"ÎÎÎÏÏÎÏÎ margin_top ÏÏÎÎ ÏÎ ÎÎÎÎÎÏÏÎÎÏÎÎ. ÎÏÏÏ ÎÎÏÎÎÏÎÎ ÏÏÏÏ Î ÏÏÎÎÎÏÎ ÎÎÏÏ "
+"ÏÎÏÎÎÏÏÎÎÏ ÎÎÎ ÎÎÎ ÏÏÎÎÏÎÎÎ HTML ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÎÎÏÏÎÎÏÏÎÎÎÎ ÎÎÏÏÎ CSS."
 
-#: C/weatherAppMain.js.page:44(p)
+#: C/02_welcome_to_the_grid.js.page:158(section/code)
+#, no-wrap
 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."
+"\n"
+"        // Create a label\n"
+"        this._label = new Gtk.Label ({\n"
+"            label: \"Welcome to GNOME, too!\",\n"
+"            margin_top: 20 });\n"
 msgstr ""
-"ÎÎÎ ÎÎ ÎÏÎÏÎÎ ÎÎÎ ÎÏÎÏÎÎÎÏÎÎÏÎÎÏ ÏÏÏÎÏÎÎÎÎ ÏÏÎÎÎÎÏÎÎÏÏÎ ÎÎ ÎÎÏÎÎÎÏÎÎ ÎÎÎ "
-"ÎÎÎÎÎÎÎÎÎÎ GObject ÎÏÏÎÎÎÎÏÏÎÏ ÎÎÎ ÏÏÎÏÎ. ÎÎÎ ÏÏÎÏÎ UI, ÏÏÎÎÎÎÏÎÎÏÏÎ Gtk. ÎÎ "
-"Gtk ÎÎÏÎÎÎÏÎÎ ÏÏÎÎ ÎÏÏÎ, ÎÏÏÎ ÏÎ ÎÏÎÏÎÎ ÎÎÎ ÏÏÎÏÎ ÏÎÎÏÎÏ. ÎÎÏÎÎÎÏÎÎ ÎÏÎÏÎÏ "
-"ÏÎ ÎÎÎÎÎ ÎÎÏ ÏÎÏÎÎÎ ÎÎÎÎÎÎÎÎÎÎ JavaScript geonames ÎÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÎÎ ÎÎÏ."
+"\n"
+"        // Create a label\n"
+"        this._label = new Gtk.Label ({\n"
+"            label: \"Welcome to GNOME, too!\",\n"
+"            margin_top: 20 });\n"
 
-#: C/weatherAppMain.js.page:90(p)
+#: C/02_welcome_to_the_grid.js.page:165(section/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."
+"Of course, if we do that then if we replace the Label with something else -- "
+"or add in another widget -- then we have to repeat the margin_top on it too. "
+"Otherwise we end up with something like this:"
 msgstr ""
-"ÎÎ ÎÎÏÏÎÏÎ ÎÏÏÎÎ ÏÎÎ ÎÎÏÏÎÏÎ ÎÎÎÎÎÏÏÎÎÏÎÎ ÏÎ ÏÎÎÎÎÎ ÏÎÏ ÏÏÏÎÎÎÏÎÎ ÎÎ "
-"ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÎÎ ÏÎÏÎÎÎÏÎÏÎ ÏÏÎ ÎÏÎÏÎÎÏÎ ÏÏÏÏÎÏÎÎÏÎ. ÎÎÎ ÏÎ ÎÎÏÎÏÎÎ, "
-"ÎÏÎÎÎÏÎÏ ÎÎÎ ÎÎÏÎÏÏÏÎÏÎÎÏ ÎÏÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÎÎ ÏÎÏÎÎÎÏÎÏÎÏÎÎ ÏÏÎ ÏÎÎÎÎÎ. ÎÏÏÏ "
-"ÏÎÎÎÎÏÎÎ ÎÏÏ ÏÎÎ ÏÎÏÎÎÎÏÎÏÎ ÏÏÎ ÎÎÎÏÎÏÎÏÎÎÏÎ ÎÏÎÏÎÎÏÎ ÏÏÏÏÎÏÎÎÏÎ, ÎÎÎ "
-"ÏÏÎÎÎÎÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÎÏÎÎ ÎÏÎÎ ÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ. ÎÎ ÎÏÏÏ ÏÎ ÏÎÎÎÎÎ "
-"ÎÎÏÎÎÎÏ ÎÏÏ ÏÎÏ ÎÏÎÎÎÏÎÏ ÎÎÎ ÎÏÎÏÎ ÏÎÏÎÎÏÏÎÎÎÎ. ÎÎ ÏÎÏÎÎÏÏÎÎÎÎ ÎÎÎ ÎÏÏÎ ÏÎ "
-"ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÏÎÏÎÏÎÎÏÎÎ ÎÏÎÏÏÎÏÎ. ÎÎÎ ÏÏÎÎÎÏÎ ÏÎÎ ÎÏÎÏÎÎÎÎ ÏÎ ÎÏÏÏ ÏÎ "
-"ÏÏÎÎÎÎ, ÎÎ ÎÏÎÏÎ ÎÏÎÎÎÎ ÏÎ UI, ÎÎÎÎ ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÎ ÏÏÎÎÎÎÎÏÎÎ ÎÎ "
-"ÏÎÏÎÏÎ. ÎÎÎ ÎÏÏÏ ÏÏÎÎÎÎÏÎÎÏÏÎ ÏÏÏÏÎ ÎÎ ÎÎÏÎÏÎÎÏÎÏÎÏÎÎ ÏÎÎ ÏÎÏÎÎÎ ÎÎÎÎÎÎÎÎÎÎ "
-"ÎÎÎÎÎÏÎÏÎÏ ÎÎÎÏÎÏ ÎÎÎ ÎÏÎÎÏÎ ÎÎ ÏÎÏÎÏÎÎ ÏÎÎ ÏÎÎÏÎÏÎÏÎÎ ÏÎÏ ÏÏÎÎÎÎÏÎÎÏÏÎ "
-"ÎÏÏÎÏÏÎÎÎ. ÎÏÎÎ ÎÏÎÏÎÎ ÏÎÎ ÏÎÏÎÎÎ ÎÎÏ ÎÎÎÎÎÎÎÎÎÎ ÎÏÎÎÎÎ, ÎÏÎÏÎÏÎÎ ÎÎ ÏÎ "
-"ÏÏÎÎÎÏÎÏÎÎ ÎÎ ÏÎ ÎÏÎÏÎÎÏÎÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ."
+"ÎÏÏÎÎÎ, ÎÎÎ ÎÎÎÎÏÎÎ ÎÏÏÏ ÏÏÏÎ ÎÎÎ ÎÎÏÎÎÎÏÎÏÏÎÏÎÏÎÎ ÏÎÎ ÎÏÎÎÎÏÎ ÎÎ ÎÎÏÎ ÎÎÎÎ "
+"-- Î ÏÏÎÏÎÎÏÎÎÏÎÏ ÏÎ ÎÎÎ ÎÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ -- ÏÏÏÎ ÏÏÎÏÎÎ ÎÎ "
+"ÎÏÎÎÎÎÎÎÎÏÎÎ ÏÎ margin_top ÏÎ ÎÏÏÏ ÎÎÎÎ. ÎÎÎÎÏÏ ÏÎÎÎÎÏÎÎÏÎÎ ÎÎ ÎÎÏÎ ÏÎÎ ÎÏÏÏ:"
 
-#: C/weatherAppMain.js.page:120(p)
+#: C/02_welcome_to_the_grid.js.page:168(section/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."
+"We could give the Image a margin_bottom property, but that won't work when "
+"the new Label is in a separate column. So how about we try this instead:"
 msgstr ""
-"ÎÏÏÎ Î ÎÎÎÏÎÏÏÎÎÎ ÎÏÎÎÏÏÎÎÏÎÎ ÏÏÎÎ ÎÎÎÏÎ ÎÎÎ ÏÎÏ ÏÎÎÏÎÏÎÏÎÎÏ ÎÎÎÏÎÏ ÎÎÎ "
-"ÎÎÎÎÎÏÏÏÎ ÎÏÎÎÎÏÏÎ ÎÎÎ ÎÎÎÎÎÎÎÎÏÎ ÎÎÎÎÎÎÎ. ÎÏÎÎ ÎÏÏÎ ÏÎÏ ÎÎÎÏÎÏÏÎÎÎÏ "
-"ÏÎÎÏÎÎÏÎÎ ÏÎÎ ÎÎÏÎÎÎ ÏÏÎÏÏÎ ÎÎÎ ÎÎÎÎÎÏÎÏÎ. ÎÏÏÎ ÎÎÏ ÎÎÎ ÏÎÎ ÏÏÏÏÎ ÏÎÏÎ "
-"ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÏÎ ÎÎÎÎ ÎÎÏ ÎÎÎÎÎÎÎÎÎÎ ÎÎÎ ÏÎÏ ÎÏÎÎÎÎÎÏÎÎ ÏÎ ÎÎÏÎÎÎÎÏÎ "
-"GeoNames. ÎÎÏ ÎÎÏÏÏÎÏÎÎ ÏÎÎ WeatherService ÏÎÏ ÎÎÎÎÏÎÎ ÏÎÎ ÏÏÎÎÎÏ. ÎÎ ÏÏÏÏÎ "
-"ÏÏÎÎÎÎ ÏÎÏ ÎÎÎÎÏÎÎ ÎÎ ÏÎ GeoNames ÎÎÎÎÎ Î ÎÎÏÎÏÎ ÎÎÎÏÎÏ. ÎÏÎÎÎÏÎÏÎ ÎÎÏÎ ÏÎ "
-"GeoNamesgetWeather.getWeather (ÏÏÎÎÏÏÎÏÎ (ÏÏÎÎÎÎ, ÎÎÎÏÏÏ) ÏÏÎÎÎÎÎÎÎ ÎÏÎÎ ÎÎÎ "
-"ÎÎÏÎ ÏÎÏÎÏÎÎ ÎÎÎ ÎÎÎÏÎÎ ÏÏÎÎÎÎÏÎÏ Î ÏÎÎÏÎÏÎÏÎÎÏ ÎÎÎÏÎÏ. ÎÎÎ ÎÎÎ ÎÏÎÎÎ "
-"ÎÎÎÎÎÎ, ÏÎ ÏÏÏÎÎÎÏÎ ÏÎÏ ÏÏÎÎÏÎÎÎÎÏÎÏ ÎÎÏÎÎÏÎÎ ÏÏÏÎ ÎÎÎÎÎÎÎÎ, ÏÏÎ ÏÎ "
-"main_Quit ÎÎÏÎÎÏÎÎ."
-
-#: C/weatherAppMain.js.page:124(title)
-msgid "Connecting signals to button and entry."
-msgstr "ÎÏÎÎÎÏÎ ÏÎÎÎÏÏÎ ÏÎ ÎÎÏÎÏÎ ÎÎÎ ÎÎÏÎÏÏÏÎÏÎ."
+"ÎÏÎÏÎÏÎÎ ÎÎ ÎÏÏÎÏÎÎ ÏÏÎÎ ÎÎÎÏÎÎ ÎÎÎ ÎÎÎÏÏÎÏÎ margin_bottom, ÎÎÎÎ ÎÎÎ ÎÎ "
+"ÎÎÏÎÎÏÎÎ ÏÏÎÎ Î ÎÎÎ ÎÏÎÎÎÏÎ ÎÎÎÎÎ ÏÎ ÎÎÎ ÎÎÏÏÏÎÏÏÎ ÏÏÎÎÎ. ÎÏÏÎ ÎÏ "
+"ÎÎÎÎÎÎÏÎÏÎÎ ÎÏÏÏ:"
 
-#: C/weatherAppMain.js.page:137(p)
+#: C/02_welcome_to_the_grid.js.page:169(section/code)
+#, no-wrap
 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."
+"\n"
+"        // Create the Grid\n"
+"        this._grid = new Gtk.Grid ({\n"
+"            row_spacing: 20 });\n"
 msgstr ""
-"ÎÎÎ ÏÎÎÎÎÎ ÎÏÎÏÎÎ ÏÎÏ ÏÏÎÎÎÏÎÎÏ ÏÎÏ ÎÎÎÎÏÎ ÏÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ ÎÎ ÏÏÎÏÎÎ ÏÏÏÏ "
-"ÎÎ ÎÏÏÎÏÎ. ÎÏÎÎÎÎÏÎÎ ÎÎÎ ÏÎÎ ÎÎÏÎÏÏÏÎÏÎ ÎÎÎ ÏÎ ÎÎÏÎÏÎ ÎÎÎ ÎÎ ÎÎÎÎÏÎ ÏÎ ÎÎÎÎ "
-"ÏÏÎÎÎÎ, ÏÎÎÏÎÎÎÏÎÏ ÏÎÎ ÎÎÎÏÏ. ÎÏÏÎ ÎÎÎ ÏÎÎÏÎÎÎÎ, ÎÎÎ ÏÎÏÎÏÎÏÎ ÎÎÎ ÏÎÏÎÏÎÏÎ "
-"ÎÎÏÎÎÏÎÎ Î ÎÎÎÎ ÏÏÎ ÎÎÏÎÏÎ ÎÎÎÎÎÏÎÏÎÏ."
+"\n"
+"        // Create the Grid\n"
+"        this._grid = new Gtk.Grid ({\n"
+"            row_spacing: 20 });\n"
 
-#: C/weatherAppMain.js.page:141(title)
-msgid "Weatherapp.js"
-msgstr "Weatherapp.js"
+#: C/02_welcome_to_the_grid.js.page:175(section/p)
+msgid ""
+"That makes it so that there are always 20 pixels of space in between each "
+"horizontal row."
+msgstr ""
+"ÎÏÏÏ ÏÎ ÎÎÎÎÎ ÎÏÏÎ ÏÏÏÎ ÎÎ ÏÏÎÏÏÎÏÎ ÏÎÎÏÎ 20 ÎÎÎÎÎÎÏÏÎÎÏÎÎÎ ÏÏÏÎÏ ÎÎÏÎÎÏ "
+"ÎÎÎÎ ÎÏÎÎÏÎÏÎÎÏ ÎÏÎÎÎÎÏ."
 
-#: C/weatherAppMain.js.page:142(p)
-msgid "Weatherapp.js file looks like this:"
-msgstr "ÎÎ ÎÏÏÎÎÎ Weatherapp.js ÎÎÎÎÎÎÎ ÎÎ ÎÏÏÏ:"
+#: C/02_welcome_to_the_grid.js.page:176(note/p)
+msgid ""
+"Yes, you can also set the column_spacing property on a Grid, or the "
+"margin_left and margin_right properties on any widget. Try them out, if you "
+"like!"
+msgstr ""
+"ÎÎÎ, ÎÏÎÏÎÎÏÎ ÎÏÎÏÎÏ ÎÎ ÎÏÎÏÎÏÎ ÏÎÎ ÎÎÎÏÏÎÏÎ column_spacing ÏÎ ÎÎÎ ÏÎÎÎÎÎ, Î "
+"ÏÎÏ ÎÎÎÏÏÎÏÎÏ margin_left ÎÎÎ margin_right ÏÎ ÎÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ. "
+"ÎÎÎÎÎÎÏÏÎ ÏÎÏ ÎÎÎ ÎÎÎÎÏÎ!"
 
-#: C/weatherAppMain.js.page:228(p)
-msgid "Running until you have all the autotools files ready. :"
-msgstr "ÎÎÏÎÎÎÏÎ ÎÎÏÏÎ ÎÎ ÎÏÎÏÎ ÏÎÎ ÏÎ ÎÏÏÎÎÎ autotools ÎÏÎÎÎÎ. :"
+#: C/02_welcome_to_the_grid.js.page:180(section/title)
+msgid "Adding more widgets"
+msgstr "ÎÏÎÏÎÎÎÎ ÏÎÏÎÏÏÏÏÎÏÏÎ ÎÏÎÏÎÎÏÎ ÏÏÏÏÎÏÎÎÏÎ"
 
-#: C/weatherAppMain.js.page:230(output) C/helloWorld.js.page:120(output)
-#: C/helloWorld.js.page:131(output) C/helloWorld.js.page:158(output)
-#: C/guitar-tuner.js.page:230(output)
-msgid "$"
-msgstr "$"
+#: C/02_welcome_to_the_grid.js.page:182(section/p)
+msgid ""
+"If we did want to add a second Label, how would we do it so that it actually "
+"looked like it belonged there? One way is to center the Image on top, so "
+"that it's above both Labels instead of just the one on the left. That's "
+"where those other numbers in the Grid's attach method come in:"
+msgstr ""
+"ÎÎÎ ÎÎÎÎÏÎÎ ÎÎ ÏÏÎÏÎÎÏÎÏÎÎ ÎÎÎ ÎÎÏÏÎÏÎ ÎÏÎÎÎÏÎ, ÏÏÏ ÎÎ ÎÏÎÏÎÏÏÎÎÎ ÎÎ ÎÎÎÎÏÎÎ "
+"ÎÏÏÎ ÏÏÏÎ ÎÎ ÏÎÎÎÎÏÎÎ ÏÏÎÎÎÎÏÎ ÏÏÎ ÎÎÎÎÎ ÎÎÎÎ; ÎÎÎÏ ÏÏÏÏÎÏ ÎÎÎÎÎ ÎÎ "
+"ÎÎÎÏÏÎÏÎÏÎ ÏÎÎ ÎÎÎÏÎÎ ÏÏÎÎ ÎÎÏÏÏÎ, ÎÏÏÎ ÏÏÏÎ ÎÎ ÎÎÎÎÎ ÏÎÎÏ ÎÎÎ ÎÏÏ ÏÎÏ ÎÏÎ "
+"ÎÏÎÎÎÏÎÏ ÎÎÏÎ ÎÎÎ ÏÎ ÎÎÎ ÎÏÎÎ ÏÏÎ ÎÏÎÏÏÎÏÎ. ÎÎÏ ÎÎÎÎÎ ÏÎÏ ÎÏÏÎÎ ÎÎ ÎÎÎÎÎ "
+"ÎÏÎÎÎÎÎ ÏÏÎ ÎÎÎÎÎÎ ÏÏÎÏÎÏÏÎÏÎÏ ÏÎÏ ÏÎÎÎÎÎÏÎÏ ÎÏÏÎÎÏÎÎ:"
 
-#: C/weatherAppMain.js.page:230(input)
-msgid "GJS_PATH=`pwd` gjs weatherapp.js"
-msgstr "GJS_PATH=`pwd` gjs weatherapp.js"
+#: C/02_welcome_to_the_grid.js.page:183(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"        // Create a second label\n"
+"        this._labelTwo = new Gtk.Label ({\n"
+"            label: \"The cake is a pie.\" });\n"
+"\n"
+"        // Attach the image and labels to the grid\n"
+"        this._grid.attach (this._image, 0, 0, 2, 1);\n"
+"        this._grid.attach (this._label, 0, 1, 1, 1);\n"
+"        this._grid.attach (this._labelTwo, 1, 1, 1, 1);\n"
+msgstr ""
+"\n"
+"        // Create a second label\n"
+"        this._labelTwo = new Gtk.Label ({\n"
+"            label: \"The cake is a pie.\" });\n"
+"\n"
+"        // Attach the image and labels to the grid\n"
+"        this._grid.attach (this._image, 0, 0, 2, 1);\n"
+"        this._grid.attach (this._label, 0, 1, 1, 1);\n"
+"        this._grid.attach (this._labelTwo, 1, 1, 1, 1);\n"
 
-#: C/weatherAppMain.js.page:231(p)
+#: C/02_welcome_to_the_grid.js.page:194(section/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."
+"After we create the second Label, we attach it to the Grid to the right of "
+"the first Label. Remember, the first two numbers count columns and rows from "
+"left to right and top to bottom, starting with 0. So if the first Label is "
+"in column 0 and row 1, we can put the second in column 1 and row 1 to put it "
+"to the right of the first Label."
 msgstr ""
-"ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ ÎÏÏÎÎ ÏÎÎ ÎÎÏÎÎÎ ÏÏÎ ÏÎÏÎÎÏÎÎÏ ÎÎÏ ÎÎÎÏÏÏÏÏÎÏÎ ÏÎ ÎÏÎÏÏÎÎÏÎ "
-"ÏÎÏ. ÎÏÎÎ ÎÎÎÎÎÏÎ ÏÎ ÏÏÏÎÏÎÎÎÎ ÏÎÏ ÎÎ ÎÏÏÏÎ ÏÎÎ ÏÏÏÏÎ, ÎÎÏÎÎ ÏÎÏ ÎÎ ÎÏÎÎ ÏÎÏ "
-"ÏÏÎÏÎÏÎÎÏÎÎÎÎÏ JSlibraries, ÏÎ ÎÏÏÎÎ ÏÎÎ ÏÎÏÎÏÏÏÏÎ ÏÎ geonames.js."
+"ÎÎÏÎ ÏÎ ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ ÎÎÏÏÎÏÎÏ ÎÏÎÎÎÏÎÏ, ÏÎÎ ÏÏÎÏÎÎÎÎÎÎÎ ÏÏÎ ÏÎÎÎÎÎ ÏÏÎ "
+"ÎÎÎÎÎ ÏÎÏ ÏÏÏÏÎÏ ÎÏÎÎÎÏÎÏ. ÎÎ ÎÏÎÎÏÏÎ, ÎÎ ÏÏÏÏÎÎ ÎÏÎ ÎÏÎÎÎÎÎ ÏÏÎÎÎÎÎÎÎÏÎ "
+"ÏÏÎÎÎÏ ÎÎÎ ÎÏÎÎÎÎÏ ÎÏÏ ÎÏÎÏÏÎÏÎ ÏÏÎÏ ÏÎ ÎÎÎÎÎ ÎÎÎ ÎÏÏ ÏÎÎÏ ÏÏÎÏ ÏÎ ÎÎÏÏ, "
+"ÎÎÎÎÎÏÎÏÎÏ ÎÏÏ 0. ÎÏÏÎ ÎÎÎ Î ÏÏÏÏÎ ÎÏÎÎÎÏÎ ÎÎÎÎÎ ÏÏÎ ÏÏÎÎÎ 0 ÎÎÎ ÏÏÎ ÎÏÎÎÎÎ "
+"1, ÎÏÎÏÎÏÎÎ ÎÎ ÎÎÎÎÏÎÎ ÏÎ ÎÎÏÏÎÏÎ ÏÏÎ ÏÏÎÎÎ 1 ÎÎÎ ÏÏÎ ÎÏÎÎÎÎ 1 ÎÎÎ ÎÎ ÏÎ "
+"ÎÎÎÎÏÎÎ ÏÏÎ ÎÎÎÎÎ ÏÎÏ ÏÏÏÏÎÏ ÎÏÎÎÎÏÎÏ."
 
-#. 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:35(None)
-msgid "@@image: 'media/weatherAppJs.png'; md5=1fe859ac4854273d72ea8fc9203639b2"
+#: C/02_welcome_to_the_grid.js.page:195(section/p)
+msgid ""
+"Note the number 2 in the attach statement for the Image. That's what does "
+"the trick here. That number is how many columns the Image spans, remember? "
+"So when we put it together, we get something like this:"
 msgstr ""
-"@@image: 'media/weatherAppJs.png'Â md5=1fe859ac4854273d72ea8fc9203639b2"
+"ÎÎÎÎÎÏÏÏÎ ÏÎÎ ÎÏÎÎÎÏ 2 ÏÏÎ ÎÎÎÏÏÎ ÏÏÎÏÎÏÏÎÏÎÏ ÎÎÎ ÏÎÎ ÎÎÎÏÎÎ. ÎÏÏÏ ÎÎÎÎÎ "
+"ÎÎÏ. ÎÏÏÏÏ Î ÎÏÎÎÎÏÏ ÎÎÎÎÎ ÏÏÏÎÏ ÏÏÎÎÎÏ ÎÎÎÏÏÏÎÎ Î ÎÎÎÏÎÎ, ÎÏÎÎÏÏÎ; ÎÏÏÎ "
+"ÏÏÎÎ ÏÎ ÎÎÎÎÏÎÎ ÎÎÎÎ, ÏÎÏÎÏÎÎ ÎÎÏÎ ÏÎÎ ÎÏÏÏ:"
 
-#: C/weatherApp.js.page:6(title)
-msgid "Weather Application (JavaScript)"
-msgstr "ÎÏÎÏÎÎÎÎ ÎÎÎÏÎÏ (JavaScript)"
+#: C/02_welcome_to_the_grid.js.page:198(section/p)
+msgid "There are two things you should take note of, here."
+msgstr "ÎÏÎÏÏÎÏÎ ÎÏÎ ÏÏÎÎÎÎÏÎ ÏÎÏ ÎÎ ÏÏÎÏÎÎ ÎÎ ÏÎÎÎÎÏÏÎÏÎ, ÎÎÏ."
 
-#: C/weatherApp.js.page:16(desc)
+#: C/02_welcome_to_the_grid.js.page:200(item/p)
 msgid ""
-"How to plan an application that uses asynchronous calls. Asynchronous calls "
-"will be presented through a weather application."
+"Setting the Image to span two columns doesn't stretch the picture itself "
+"horizontally. Instead, it stretches the invisible box taken up by the Image "
+"widget to fill both columns, then places the Image in the center of that box."
 msgstr ""
-"ÎÏÏ ÎÎ ÏÏÎÎÎÎÏÏÎÎ ÎÎÎ ÎÏÎÏÎÎÎÎ ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÎ ÎÏÏÎÏÏÎÎÎÏ ÎÎÎÏÎÎÏ. ÎÎ "
-"ÎÏÏÎÏÏÎÎÎÏ ÎÎÎÏÎÎÏ ÎÎ ÎÎÎÏÎÏÎÏÏÏÎÏÎÎ ÎÎÏÎ ÎÏÏ ÎÎÎ ÎÏÎÏÎÎÎÎ ÎÎÎÏÎÏ."
-
-#: C/weatherApp.js.page:21(title)
-msgid "4 Weather Application"
-msgstr "4 ÎÏÎÏÎÎÎÎ ÎÎÎÏÎÏ"
+"Î ÎÏÎÏÎÏÏ ÏÎÏ ÎÎÎÏÎÎÏ ÎÎ ÎÎÎÏÏÎÎ ÎÏÎ ÏÏÎÎÎÏ ÎÎÎ ÏÎÎÏÏÎÎÎ ÏÎÎ ÎÎÎÎ ÏÎÎ ÎÎÎÏÎÎ "
+"ÎÏÎÎÏÎÏÎÎ. ÎÎÏÎÎÎÏÎ, ÏÎÎÏÏÎÎÎ ÏÎ ÎÏÏÎÏÎ ÏÎÎÎÏÎÎ ÏÎÏ ÏÎÏÎÎÎÎ ÎÏÏ ÏÎ ÎÏÎÏÎÎÏ "
+"ÏÏÏÏÎÏÎÎÏ ÏÎÏ ÎÎÎÏÎÎÏ ÎÎÎ ÎÎ ÎÎÎÎÏÎÎ ÎÎÎ ÏÎÏ ÎÏÎ ÏÏÎÎÎÏ, ÎÏÎÎÏÎ ÎÎÎÎÎ ÏÎÎ "
+"ÎÎÎÏÎÎ ÏÏÎ ÎÎÎÏÏÎ ÎÏÏÎÏ ÏÎÏ ÏÎÎÎÏÎÎÏ."
 
-#: C/weatherApp.js.page:23(p)
+#: C/02_welcome_to_the_grid.js.page:201(item/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:"
+"Even though we've set the Grid's row_spacing and the ApplicationWindow's "
+"border_width properties, we haven't yet set anything that puts a border in "
+"between the two Labels. They were separate earlier when the Image was in "
+"only one column, but now that it spans both GNOME doesn't see a reason to "
+"keep them apart."
 msgstr ""
-"ÎÎ ÎÏÏÏÎ ÏÎÎ ÎÎÎÎÏ ÏÏÏÎÎÎÏÎÎ ÎÎ ÎÎÏÎÏÎÎÏÎÏÎÏÎÎ ÎÎÎ ÎÏÎÏÎÎÎÎ ÎÎÎÏÎÏ "
-"ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÎÏÏÎÏÏÎÎÎÏ ÎÎÎÏÎÎÏ. ÎÎ ÏÎÎÏÎÏÎÏÎÎÏ ÏÎÏ ÎÎÎÏÎÏ ÏÎ ÎÏÏÏ ÏÎ "
-"ÏÎÏÎÎÎÎÎÎÎ ÏÎÏÎÏÎÎÏÎÎ ÎÏÏ ÏÎÎ geonames.org ÎÎÎ Î ÎÏÎÏÎÎÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎ ÏÎ "
-"<link href=\"http://en.wikipedia.org/wiki/List_of_airports_by_ICAO_code:_E";
-"\">ÎÏÎÎÎÎÏ ICAO</link> ÎÎÎ ÎÎ ÏÎÏÎÎÎÏÎÏÎÎ ÏÎÎ ÎÎÏÎÏÎ ÏÎÏ ÎÎÎ ÏÎÎ ÎÎÎÏÏ. ÎÎÎ "
-"ÎÎ ÎÏÎÏÎÏÎ ÎÎÎ ÎÎ ÎÎÏÎÎÎÏÎÏÎ ÎÎ ÎÎÎÎÎ ÏÎ ÏÎÏÎÎÎÎÎÎÎÏÎ ÏÎÏ ÎÏÎÎÎÎ, ÏÏÎÎÎÎÎÏÏÎ "
-"ÎÎÎÎ ÎÏÎÎÎÏÎÎÏÏÎ ÎÎÎ ÎÎ ÎÏÎÏÎÏÎ ÏÎÎ ÎÏÎÎÎÎ, ÏÎÏÎÎÏÎÎÏ ÎÎÎ GNOME 3 Î "
-"ÎÎÏÎÎÎÎÎÏÏÎÏÎ ÎÎÎÎÏÎÏÏÎÎÎÎÎ ÏÏÎÎ ÏÏÎÎÎÎÎÏÏÎ ÏÎÏ. ÎÎ ÎÏÏÏÎ ÏÎÎ ÎÎÎÎÏ ÎÎ "
-"ÎÎÎÏÎÏÎÏÎÎ ÏÎ ÏÎÏÎÎÎÏÏ ÎÎÏÎ:"
-
-#: C/weatherApp.js.page:26(link) C/weatherApp.js.page:38(title)
-msgid "Planning the graphical user interface"
-msgstr "ÎÏÎÎÎÎÏÎÏÏ ÏÎÏ ÎÏÎÏÎÎÎÏ ÎÎÎÏÎÏÎÏ ÏÏÎÏÏÎ"
-
-#: C/weatherApp.js.page:27(link) C/weatherApp.js.page:42(title)
-msgid "Asynchronous calls"
-msgstr "ÎÏÏÎÏÏÎÎÎÏ ÎÎÎÏÎÎÏ"
-
-#: C/weatherApp.js.page:29(link)
-msgid "Local library GeoNames"
-msgstr "ÎÎÏÎÎÎ ÎÎÎÎÎÎÎÎÎÎ GeoNames"
+"ÎÎ ÎÎÎ ÎÏÎÏÎÎ ÎÏÎÏÎÎ ÏÎ row_spacing ÏÎÏ ÏÎÎÎÎÎÏÎÏ ÎÎÎ ÏÎÏ ÎÎÎÏÏÎÏÎÏ "
+"border_width ÏÎÏ ApplicationWindow, ÎÎÎ ÎÏÎÏÎÎ ÎÏÎÏÎÎ ÎÎÏÎÎ ÎÏÎÎÎÏÎÏÎ ÎÎÎÎÎ "
+"ÎÎÎ ÏÎÏÎÎÏÎÎÎÎ ÎÎÏÎÎÏ ÏÏÎ ÎÏÎ ÎÏÎÎÎÏÏÎ. ÎÏÎÎ ÎÎÏÏÏÎÏÏÎÏ ÎÏÏÎÏÎÏÎ ÏÏÎÎ Î "
+"ÎÎÎÏÎÎ ÎÏÎÎ ÎÏÎÎ ÎÎÎ ÏÏÎÎÎ, ÎÎÎÎ ÏÏÏÎ ÏÎÏ ÎÎÎÏÏÏÎÎ ÎÎÎ ÏÎÏ ÎÏÎ ÏÎ GNOME ÎÎÎ "
+"ÎÎÎÏÎÎ ÎÏÎÎ ÎÎ ÏÎÏ ÎÏÎÏÎÏÎÎ ÎÎÏÏÏÎ."
 
-#: C/weatherApp.js.page:34(p) C/guitar-tuner.js.page:35(p)
-msgid "After reading this tutorial, you should see this in your screen:"
+#: C/02_welcome_to_the_grid.js.page:204(section/p)
+msgid ""
+"There are at least three ways we can get around that last one. First, we can "
+"set a margin_left or margin_right on one of the Labels:"
 msgstr ""
-"ÎÎÏÎ ÏÎÎ ÎÎÎÎÎÏÏÎ ÎÏÏÎÏ ÏÎÏ ÎÎÎÎÎÎÏÎÏ, ÎÎ ÏÏÎÏÎÎ ÎÎ ÎÎÎÏÎ ÎÏÏÏ ÏÏÎÎ ÎÎÏÎÎ "
-"ÏÎÏ:"
+"ÎÏÎÏÏÎÏÎ ÏÎÏÎÎÏÎÏÏÎÎ ÏÏÎÎÏ ÏÏÏÏÎÎ ÏÎÏ ÎÏÎÏÎÏÎÎ ÎÎ ÏÎÏÎÎÎÎÏÎÏÎÎ ÏÎÎ "
+"ÏÎÎÎÏÏÎÎÎ. ÎÏÏÏÎ, ÎÏÎÏÎÏÎÎ ÎÎ ÎÏÎÏÎÏÎÎ ÎÎÎ margin_left Î margin_right ÏÎ ÎÎÎ "
+"ÎÏÏ ÏÎÏ ÎÏÎÎÎÏÎÏ:"
+
+#: C/02_welcome_to_the_grid.js.page:207(section/p)
+msgid "Second, we can set the Grid's column_homogenous property to true."
+msgstr "ÎÎÏÏÎÏÎ, ÎÏÎÏÎÏÎÎ ÎÎ ÎÏÎÏÎÏÎÎ ÏÎÎ ÎÎÎÏÏÎÏÎ column_homogenous ÏÎ ÎÎÎÎÎ."
 
-#: C/weatherApp.js.page:39(p)
+#: C/02_welcome_to_the_grid.js.page:208(section/code)
+#, no-wrap
 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."
+"\n"
+"        // Create the Grid\n"
+"        this._grid = new Gtk.Grid ({\n"
+"            column_homogeneous: true,\n"
+"            row_spacing: 20 });\n"
 msgstr ""
-"ÎÎÎÏÎÏÎÏ ÎÎÎ ÎÏÎÏÎÎÎÎ ÎÎÎ ÏÎ GNOME 3 ÏÎÎÎÎÎÎÎ ÏÎ ÏÏÎÏÎ ÏÎÏ <link href="
-"\"http://developer.gnome.org/platform-overview/stable/gtk\";>GTK+</link>. ÎÎ "
-"ÏÎÎ ÏÎÎÎÎÏÎÎÏ ÏÏÎÎÎÎ ÎÎÎÎÎ ÎÎ ÎÏÎÏÏÎÏÏÎ ÏÏÎ ÏÎ ÎÏÏÎÎ ÏÎÏÎÎÏÏÎ ÎÎ ÎÏÎÎÎÏÎÎÎ "
-"ÎÏÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ. ÎÏÎÏÎÎ ÎÎ ÏÏÎÎÎÎÏÎÏÎ ÏÎ ÎÎÎÎ ÏÎÏ ÎÎÎÎÎÎÎ (ÎÏÏÏ "
-"ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎ Gtk.Grid). ÎÎÎ ÏÏÎÏÎÎÎ ÎÎÎÎÎÎÏ ÎÎÎÎÎ Î ÏÏÎÎÎÎÏÎ "
-"ÏÎÏ ÎÏÏÎÎÏ ÏÎÏÎÎÏÏÎÏ ÎÎÎ Î ÏÎÏÎÎÎÏÎÏÎ ÎÎÎÎ ÎÏÎÎÏÎÏÎÎÎÎÏ ÎÏÎÏÎÎÎÏ ÏÏÏÏÎÏÎÎÎÏ "
-"ÎÎÏÎ ÏÎ ÎÏÏÏ ÏÎ ÏÎÎÎÏÎÎ. ÎÎÎÏÏÎÏÎÏ ÎÎÎ ÎÎÎÏÎÎ ÏÎÏ ÎÎÎÎÎÎÏÎÎÎÏ ÏÎÏ ÎÏÎÏÎÎÎÎÏ "
-"ÎÎÎÎÎ ÎÏÎÎÎÏÏÎÏÎ ÎÎ ÏÎÎÏÎ ÏÎÎÎÏ ÎÎÎÎÎ ÎÎ ÏÏÎÏÎÎÏ ÎÎÏÎÎÏ ÎÏÎÏÎÎÏÎ ÏÏÏÏÎÏÎÎÏÎ. "
-"ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ Gtk.Grid ÏÎÏÎÎÎÏÎÎ ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÏÎÏ ÏÎ ÏÏÎÏÎ ÎÎ ÏÎ "
-"ÎÎÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ, ÎÏÏÎ ÎÎÏÎ ÏÎ ÏÎÏÎÎÎÏÎÏÎ ÏÎÏ ÏÏÏÏÎÏ ÎÏÎÏÎÎÎÏ "
-"ÏÏÏÏÎÏÎÎÎÏ ÏÏÎ ÎÎÏÎ ÏÎÏ, Î ÏÎÏÎÎÎÏÎÏÎ ÏÏÎ ÎÏÎÏÎÎÏÎ ÏÏÏÏÎÏÎÎÏÎ ÎÏÎÏÎÎ ÎÎ "
-"ÎÎÎÎÎ ÏÎ ÏÏÎÏÎ ÎÎ ÎÏÎÎÎÎÎÏÎÏÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÏÏÎ ÏÎÎÎÎÎ."
+"\n"
+"        // Create the Grid\n"
+"        this._grid = new Gtk.Grid ({\n"
+"            column_homogeneous: true,\n"
+"            row_spacing: 20 });\n"
+
+#: C/02_welcome_to_the_grid.js.page:215(section/p)
+msgid "That makes it look something like this:"
+msgstr "ÎÏÏÏ ÏÎ ÎÎÎÎÎ ÎÎ ÎÎÎÎÎÎÎ ÏÎÎ ÎÏÏÏ:"
 
-#: C/weatherApp.js.page:43(p)
+#: C/02_welcome_to_the_grid.js.page:218(section/p)
 msgid ""
-"With many programming languages, all operations are run synchronously - you "
-"tell the program to do something, and it will wait until that action "
-"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."
+"And third, we can set the Grid's column_spacing property, the same way we "
+"set its row_spacing."
 msgstr ""
-"ÎÎ ÏÎÎÎÎÏ ÏÏÎÎÏÎÎÎÎÏÎÏÏÎÎÎÏ ÎÎÏÏÏÎÏ, ÏÎÎÏ ÎÎ ÎÎÎÏÎÏÏÎÎÎÏ ÎÎÏÎÎÎÏÎÏÎÎ "
-"ÏÏÎÏÏÎÎÎ - ÎÎÏÎ ÏÏÎ ÏÏÏÎÏÎÎÎÎ ÎÎ ÎÎÎÎÎ ÎÎÏÎ ÎÎÎ ÎÎ ÏÎÏÎÎÎÎÎÏÎ ÎÎÏÏÎ ÎÏÏÎ Î "
-"ÏÏÎÎÎ ÎÎ ÎÎÎÎÎÎÏÏÎÎÎ ÏÏÎÎ ÎÎ ÏÏÎÎÏÎÏÎÏÎ. ÎÏÏÏ ÏÎÏÏ ÎÎÎÎÎ ÎÎÎÏ ÎÎÎ ÏÎ ÎÏÎÏÎÎÎ "
-"ÎÎÎÏÎÏÎ ÏÏÎÏÏÎ, ÎÎÎÏÏ ÏÎÎ Î ÎÏÎÏÎÎÎÎ ÏÎÎÏÎÎÎ, ÎÎÏ ÏÎ ÏÏÏÎÏÎÎÎÎ ÏÎÏÎÎÎÎÎÎ ÏÎ "
-"ÎÎÎÏÎÏÏÎÎÎ. ÎÎÎÎÎÎÎÎÏÎÏ ÎÏÏÎÏÏÎÎÎ (async) ÎÎÎÎÎ ÎÎÏ. ÎÎ ÎÏÏÎÏÏÎÎÎÏ ÎÎÎÏÎÎÏ, "
-"ÏÎ UI ÏÎÏ ÎÎÎ ÎÎ ÏÏÎÏÏÎÎ ÎÎ ÎÎÏÎÏÎÎÏ. ÎÎ ÎÏÏÎÏÏÎÎÎÏ ÎÎÎÏÎÎÏ ÎÎÎÎÏÎ ÏÎÎ "
-"ÎÏÎÏÎÎÎÎ ÏÎÏ ÏÎÎ ÎÏÏÏÎÏÏÎ ÎÎÎ ÎÎÎÏÏÎÏÎ ÎÎÎÏÎÎÏÎÎÎÎ ÎÎÎ ÏÎÎÏÎÏÎÏ ÎÎÏÎÏÏÎÏÎÏÎ "
-"ÏÏÎÎ ÎÎ ÎÎÎÏÎÎÏ ÏÎÎÏÎÎÏÎ ÏÎÏÎÏÏÏÏÎÏÎ ÏÏÏÎÎ ÎÏÏ ÏÎ ÎÎÎÎÎÎÏÎÎÎÎ Î ÎÎÎ ÎÎÏÎÎÎ "
-"ÎÏÎÎ ÎÎÎÎÎÎÎ. ÎÎ ÎÏÏÎÏÏÎÎÎÏ ÎÎÎÏÎÎÏ ÎÏÎÏÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÎÏÎ ÎÎÎ "
-"ÏÎÏÎÎÎÎÎÎÎ ÎÎ ÎÏÏÎÎÎ ÏÏÏÏÎÎÎÏÎÏ I/O ÎÎÎ ÎÎÎ ÏÎÎ ÎÏÎÎÏÏ ÏÏÎÎÎÎÎÏÎÎÏÏ ÏÏÎ "
-"ÏÎÏÎÏÎÎÎÎÎ."
+"ÎÎÎ ÏÏÎÏÎ, ÎÏÎÏÎÏÎÎ ÎÎ ÎÏÎÏÎÏÎÎ ÏÎÎ ÎÎÎÏÏÎÏÎ column_spacing ÏÎÏ ÏÎÎÎÎÎÏÎÏ, "
+"ÎÎ ÏÎÎ ÎÎÎÎ ÏÏÏÏÎ ÏÎÏ ÎÏÎÎÎÏÎÎ ÏÎ row_spacing ÏÎÏ."
 
-#: C/weatherApp.js.page:46(p)
+#: C/02_welcome_to_the_grid.js.page:219(section/code)
+#, no-wrap
 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."
+"\n"
+"        // Create the Grid\n"
+"        this._grid = new Gtk.Grid ({\n"
+"            column_spacing: 20,\n"
+"            row_spacing: 20 });\n"
 msgstr ""
-"ÎÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÏÏÎÏÎÎ ÎÎ ÏÎÏÎÏÎÎ ÎÎÎÎÎÎÎÎ ÎÏÏ ÏÎ geonames.org. ÎÎÏ "
-"ÎÎÎÎÏÎÎ ÎÏÏÏ ÎÎÎÎÏÎÎ ÏÎ ÏÏÏÎÎÎÏÎ ÏÏÏÎÏÎÎÎÎ ÎÎ ÏÏÎÎÏÎÏÎÎ. ÎÎÎ ÎÎÎ ÏÎÎÏÎÎÎÎ "
-"ÎÎÎÎÎ ÏÎÎÏÎÏÎÏÎÎ ÎÏÏ ÏÎ geonames.org ÎÏÎÏ ÎÎÎÎÎÏÎÏ ÏÏÎÎÎÏÎÏ ÎÎ ÏÎ ÎÎÎÎÎÎÏÏÎ "
-"ÎÎÎ ÎÏÏÏ ÎÏÎÎ ÎÎÎ ÏÏÎÏÏÎÎÎ ÎÏÎÏÎÎÎÎ ÎÎÎ ÎÎ ÎÏÎÏÎÏÏÎÎÎ ÏÎÏÎ ÎÎ ÏÎÎÎ ÏÏÎ "
-"ÏÎÎÎÎÎ ÏÏÎÏ ÏÎ main_quit() ÏÏÎÎÏÎÎÎÎ ÏÏÏÏÎ ÎÎÎ Î ÎÏÎÏÎÎÎÎ ÎÎ ÎÏÏÎÏÎ ÎÎ "
-"ÎÎÎÎÏÏÎÎÎ ÎÏÏ ÏÎ ÏÎÏÎÎÏÎÎÏ."
-
-#: C/weatherApp.js.page:49(title)
-msgid "The different parts of the program"
-msgstr "ÎÎ ÎÎÎÏÎÏÎÏÎÎÎ ÎÎÏÎ ÏÎÏ ÏÏÎÎÏÎÎÎÎÏÎÏ"
-
-#: C/vala.page:6(title)
-msgid "Vala"
-msgstr "Vala"
+"\n"
+"        // Create the Grid\n"
+"        this._grid = new Gtk.Grid ({\n"
+"            column_spacing: 20,\n"
+"            row_spacing: 20 });\n"
 
-#: C/vala.page:15(title)
-msgid "Tutorials, code samples and platform demos in Vala"
-msgstr "ÎÎÎÎÎÎÏÎ, ÎÎÎÎÎÎÏÎ ÎÏÎÎÎÎ ÎÎÎ ÏÎÏÎÎÎÎÎÎÎÏÎ ÏÎÎÏÏÏÏÎÎÏ ÏÎ Vala"
+#: C/02_welcome_to_the_grid.js.page:225(section/p)
+msgid "That makes it look like this:"
+msgstr "ÎÏÏÏ ÏÎ ÎÎÎÎÎ ÎÎ ÎÎÎÎÎÎÎ ÏÎÎ ÎÏÏÏ:"
 
-#: C/tutorial.py.page:8(title)
-msgid "Beginner's Tutorial (Python)"
-msgstr "ÎÎÎÎÎÎÏÎ ÎÏÏÎÏÎÏÎ (Python)"
+#: C/02_welcome_to_the_grid.js.page:230(section/title)
+msgid "Using stock images"
+msgstr "ÎÏÎÏÎ ÎÎÎÏÎÏÎ ÏÎÏÎÎÎÏÎÎÎÎÎÏ"
 
-#: C/tutorial.py.page:12(desc)
+#: C/02_welcome_to_the_grid.js.page:232(section/p)
 msgid ""
-"A tutorial for beginners who want to learn how to program GUIs using GTK+ in "
-"Python."
+"GNOME has a lot of stock images on hand already, that we can use if we don't "
+"feel like creating our own or if we want a universally-recognized icon. "
+"Here's how we create a stock image, compared to how we create a normal one:"
 msgstr ""
-"ÎÎÎ ÎÎÎÎÎÎ ÎÎÎ ÎÏÏÎÏÎÎÏÏ ÏÎÏ ÎÎÎÎÏÎ ÎÎ ÎÎÎÎÏÎ ÏÏÏ ÎÎ ÏÏÎÎÏÎÎÎÎÏÎÏÎÏÎ GUIs "
-"ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ GTK+ ÏÎ Python."
-
-#: C/tutorial.py.page:25(title)
-msgid "0 Beginner's Tutorial"
-msgstr "0 ÎÎÎÎÎÎ ÎÏÏÎÏÎÏÎ"
+"ÎÎ GNOME ÎÏÎÎ ÏÎÎÎÎÏ ÎÎÎÏÎÎÏ ÏÎÏÎÎÎÏÎÎÎÎÎÏ ÎÎÎ, ÏÎÏ ÎÏÎÏÎÏÎÎ ÎÎ "
+"ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÎÎ ÎÎÎ ÎÎÎÎÏÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ ÏÎÏ ÎÎÎÎÏ ÎÎÏ Î ÎÎÎ "
+"ÎÎÎÎÏÎÎ ÎÎÎ ÎÎÎÎÎÎ ÎÎÎÎÎÏÏÎÏÎÎÎÎ ÎÎÎÎÎÎÎÎÎ. ÎÎ ÏÏÏ ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ ÎÎÎÏÎÎ "
+"ÏÎÏÎÎÎÏÎÎÎÎÎÏ, ÏÏÎÎÏÎÎÏÎÎÎÎ ÎÎ ÏÎ ÏÏÏ ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ ÎÎÎÎÎÎÎÎ:"
 
-#: C/tutorial.py.page:28(p) C/beginner.vala.page:32(p) C/beginner.c.page:29(p)
+#: C/02_welcome_to_the_grid.js.page:233(section/code)
+#, no-wrap
 msgid ""
-"By following these tutorials you will learn the basics of GUI programming "
-"using Gtk+."
+"\n"
+"        // Create an image\n"
+"        this._image = new Gtk.Image ({ file: \"gnome-image.png\" });\n"
+"\n"
+"        // Create a second image using a stock icon\n"
+"        this._icon = new Gtk.Image ({ stock: 'gtk-about' });\n"
 msgstr ""
-"ÎÎÏÎÎÎÎÎÏÎÏÎÏÎÏ ÎÏÏÎ ÏÎ ÎÎÎÎÎÎÏÎ ÎÎ ÎÎÎÎÏÎ ÏÎ ÎÎÏÎÎÎ ÏÎÏ ÏÏÎÎÏÎÎÎÎÏÎÏÎÎÏ GUI "
-"ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ Gtk+."
+"\n"
+"        // Create an image\n"
+"        this._image = new Gtk.Image ({ file: \"gnome-image.png\" });\n"
+"\n"
+"        // Create a second image using a stock icon\n"
+"        this._icon = new Gtk.Image ({ stock: 'gtk-about' });\n"
 
-#: C/tutorial.py.page:30(p)
+#: C/02_welcome_to_the_grid.js.page:240(section/p)
 msgid ""
-"If you have never programmed before, or are not familiar with the concepts "
-"of object oriented programming, you may need to learn a few basics first. "
-"The book <link href=\"http://learnpythonthehardway.org/book/\";>Learn Python "
-"the Hard Way</link> or <link href=\"http://docs.python.org/tutorial/index.";
-"html\">The Python Tutorial</link> may be a better place for you to start. "
-"You may also be interested in <link href=\"http://python-gtk-3-tutorial.";
-"readthedocs.org/en/latest/index.html\">The Python GTK+ 3 Tutorial</link>. "
-"Once you master the basics, be sure to come back and check out these "
-"tutorials."
+"After that, we attach it to the Grid to the left of the first Label. (We "
+"aren't using the second one for this example.)"
 msgstr ""
-"ÎÎÎ ÎÎÎ ÎÏÎÏÎ ÏÏÎÎÏÎÎÎÎÏÎÏÎÎ ÏÎÏÎ ÏÏÎÎ, Î ÎÎÎ ÎÎÏÏÎ ÎÎÎÎÎÎÎÏÎÎÎÎÏ ÎÎ ÏÎÏ "
-"ÎÎÎÎÎÎÏ ÏÎÏ ÎÎÏÎÎÎÎÎÎÎÎÏÏÏÎÏÎÏÏ ÏÏÎÎÏÎÎÎÎÏÎÏÎÎÏ, ÎÏÏÏ ÏÏÎÎÎÏÏÎÎÏÎ ÎÎ ÎÎÎÎÏÎ "
-"ÎÎÎÎ ÎÎÏÎÎÎ ÏÏÏÏÎ. ÎÎ ÎÎÎÎÎÎ <link href=\"http://learnpythonthehardway.org/";
-"book/\">ÎÎÎÎÏÎ Python ÎÎ ÏÎ ÎÏÏÎÎÎÎ ÏÏÏÏÎ</link> Î ÏÎ <link href=\"http://";
-"docs.python.org/tutorial/index.html\">ÎÎÎÎÎÎ Python</link> ÎÏÏÏ ÎÎÎÎÎ ÎÎÎÏ "
-"ÎÎÎÏÏÎÏÎÏ ÏÏÏÏÎÏ ÎÎÎ ÎÎ ÎÎÎÎÎÎÏÎÏÎ. ÎÏÎÏÎÎ ÎÏÎÏÎÏ ÎÎ ÎÎÎÎÎÏÎÏÏÏÎÏÏÎ ÎÎÎ ÏÎ "
-"<link href=\"http://python-gtk-3-tutorial.readthedocs.org/en/latest/index.";
-"html\">ÎÎÎÎÎÎ Python GTK+ 3</link>. ÎÏÎÎÏ ÎÎÏÎÎÎÎÏÎÏÎ ÏÎ ÎÎÏÎÎÎ, ÎÏÎÏÎÎÏÎ ÎÎ "
-"ÎÏÎÏÏÏÎÏÎÏÎ ÎÎÎ ÎÎ ÎÎÎÏÎÏÎÏÎ ÎÏÏÎ ÏÎ ÎÎÎÎÎÎÏÎ."
+"ÎÎÏÎ ÎÏÏ ÎÏÏÏ, ÏÎ ÏÏÎÏÎÎÎÎÎÎÎ ÏÏÎ ÏÎÎÎÎÎ ÏÏÎ ÎÏÎÏÏÎÏÎ ÏÎÏ ÏÏÏÏÎÏ ÎÏÎÎÎÏÎÏ. "
+"(ÎÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÏÎ ÎÎÏÏÎÏÎ ÎÎÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ.)"
 
-#: C/tutorial.py.page:36(title)
-msgid "To run the code samples"
-msgstr "ÎÎÏÎÎÎÏÎ ÏÏÎ ÎÎÎÎÎÎÏÏÎ ÎÏÎÎÎÎ"
+#: C/02_welcome_to_the_grid.js.page:241(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"        // Attach the images and label to the grid\n"
+"        this._grid.attach (this._image, 0, 0, 2, 1);\n"
+"        this._grid.attach (this._icon,  0, 1, 1, 1);\n"
+"        this._grid.attach (this._label, 1, 1, 1, 1);\n"
+msgstr ""
+"\n"
+"        // Attach the images and label to the grid\n"
+"        this._grid.attach (this._image, 0, 0, 2, 1);\n"
+"        this._grid.attach (this._icon,  0, 1, 1, 1);\n"
+"        this._grid.attach (this._label, 1, 1, 1, 1);\n"
 
-#: C/tutorial.py.page:38(p) C/beginner.vala.page:41(p)
-#: C/beginner.js.page:42(p) C/beginner.c.page:38(p)
-msgid "To run the code samples:"
-msgstr "ÎÎÎ ÎÎ ÎÎÏÎÎÎÏÎÏÎ ÏÎ ÎÎÎÎÎÎÏÎ ÎÏÎÎÎÎ:"
+#: C/02_welcome_to_the_grid.js.page:247(section/p)
+msgid "That gives us this, when we run it:"
+msgstr "ÎÏÏÎ ÎÎÏ ÎÎÎÎÎ ÎÏÏÏ, ÏÏÎÎ ÏÎ ÎÎÏÎÎÎÏÎÎ:"
 
-#: C/tutorial.py.page:40(p)
-msgid "Copy and paste the code into <var>filename</var>.py"
-msgstr "ÎÎÎÏÎ ÎÎÏÎÎÏÎÏÎ ÎÎÎ ÎÏÎÎÏÎÎÎÏÎ ÏÎÏ ÎÏÎÎÎÎ ÏÏÎ <var>filename</var>.py"
+#: C/02_welcome_to_the_grid.js.page:250(section/p)
+msgid ""
+"That's what the stock \"About\" icon looks like. You can see a list of all "
+"the stock items starting with gtk-about in <link href=\"http://developer.";
+"gnome.org/gtk/2.24/gtk-Stock-Items.html#GTK-STOCK-ABOUT:CAPS\">GNOME's "
+"developer documentation</link>. It was written for C programmers, but you "
+"don't need to know C to use it; just look at the part in quotation marks, "
+"like \"gtk-about\", and copy that part to use the icon next to it."
+msgstr ""
+"ÎÏÏÏ ÎÎÎÎÎ ÏÏÏ ÏÎ ÎÎÎÎÎÎÎÎÎ ÏÎÏÎÎÎÏÎÎÎÎÎÏ \"About\" ÎÎÎÎÎÎÎ. ÎÏÎÏÎÎÏÎ ÎÎ "
+"ÎÎÎÏÎ ÎÎÎ ÎÎÏÏÎ ÏÎÏÎ ÏÏÎ ÏÏÎÎÏÎÎÏÎ ÏÎÏÎÎÎÏÎÎÎÎÎÏ ÎÎÎÎÎÏÎÏÎÏ ÎÎ ÏÎ gtk-about "
+"ÏÏÎ <link href=\"http://developer.gnome.org/gtk/2.24/gtk-Stock-Items.";
+"html#GTK-STOCK-ABOUT:CAPS\"> ÏÎÎÎÎÏÎÏÏÎ ÎÎÎÏÏÏÎÎÏ ÏÎÏ GNOME</link>. ÎÏÎÏÏÎÎÎ "
+"ÎÎÎ ÏÏÎÎÏÎÎÎÎÏÎÏÏÎÏ C, ÎÎÎÎ ÎÎÎ ÏÏÎÎÎÎÎÏÏÎ ÎÎ ÎÎÏÎÏÎ C ÎÎÎ ÎÎ ÏÎ "
+"ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÂ ÎÏÎÎ ÎÎÎÏÎÎÏÎ ÏÎ ÎÎÏÎÏ ÏÎ ÎÎÏÎÎÏÎÎÎÎ, ÏÏÏÏ \"gtk-about\" "
+"ÎÎÎ ÎÎÏÎÎÏÎÏÏÎ ÎÏÏÏ ÏÎ ÎÎÏÎÏ ÎÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÏÎ ÎÎÎÎÎÎÎÎÎ ÎÎÏÎÎ ÏÎÏ."
 
-#: C/tutorial.py.page:41(p) C/beginner.vala.page:46(p) C/beginner.c.page:43(p)
-#: C/beginner.c.page:56(p)
-msgid "In the terminal type:"
-msgstr "ÎÎÎÎÏÏÎÎÎÎÎÏÏÎ ÏÏÎ ÏÎÏÎÎÏÎÎÏ:"
+#: C/02_welcome_to_the_grid.js.page:251(note/p)
+msgid ""
+"We put single quotes around 'gtk-about' here because, unlike text strings "
+"that have double quotes around them, that part will never need to be "
+"translated into another language. In fact, if it <em>were</em> translated "
+"it'd break the icon, because its name is still \"gtk-about\" no matter which "
+"language you speak."
+msgstr ""
+"ÎÎÎÎÏÎÎ ÎÎÎÎ ÎÎÏÎÎÏÎÎÎÎ ÎÏÏÏ ÎÏÏ ÏÎ 'gtk-about' ÎÎÏ ÎÏÎÎÎÎ, ÎÎÏÎÎÎÏÎ ÎÎ ÏÎÏ "
+"ÏÏÎÎÎÎÎÏÎÎÏÎÏ ÎÎÎÎÎÎÎÏ ÏÎÏ ÎÏÎÏÎ ÎÎÏÎÎ ÎÎÏÎÎÏÎÎÎÎ ÎÏÏÏ ÏÎÏÏ, ÎÏÏÏ ÏÎ ÎÎÏÎÏ "
+"ÎÎÎ ÎÎ ÏÏÎÎÎÏÏÎÎ ÎÎ ÎÎÏÎÏÏÎÏÏÎÎ ÏÎÏÎ ÏÎ ÎÎÎÎ ÎÎÏÏÏÎ. ÎÏÎÎÎÎÏÎ, ÎÎÎ "
+"<em>ÎÎÏÎÏÏÎÎÏÏÎÎÎ</em> ÎÎ ÎÏÏÎÎÎ ÏÎ ÎÎÎÎÎÎÎÎÎ, ÎÏÎÎÎÎ ÏÎ ÏÎÎÎÎ ÏÎÏ ÎÎÎÎÎ "
+"ÎÎÏÎÎ \"gtk-about\" ÎÎÎÎÎÏÏÎÏÎ ÎÏÏ ÏÎÎ ÎÎÎÎÎÏÎÎÎÎ ÎÎÏÏÏÎ."
 
-#: C/tutorial.py.page:42(screen)
-#, no-wrap
-msgid "python <var>filename</var>.py"
-msgstr "python <var>filename</var>.py"
+#: C/02_welcome_to_the_grid.js.page:256(section/title)
+#: C/03_getting_the_signal.js.page:339(section/title)
+#: C/hellognome.js.page:186(section/title)
+msgid "What's next?"
+msgstr "ÎÎÎÎ ÎÎÎÎÎ ÏÎ ÎÏÏÎÎÎÎ;"
 
-#: C/tutorial.py.page:48(title)
-msgid "A path through the widgets"
-msgstr "ÎÎÎ ÎÎÎÎÏÎÎÎ ÎÎÏÎ ÎÏÏ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ"
+#: C/02_welcome_to_the_grid.js.page:257(section/p)
+msgid ""
+"Before we go on to the next tutorial, let's try something a little different:"
+msgstr "ÎÏÎÎ ÏÎÎÎ ÏÏÎ ÎÏÏÎÎÎÎ ÎÎÎÎÎÎ, ÎÏ ÎÎÎÎÎÎÏÎÏÎÎ ÎÎÏÎ ÎÎÎÎ ÎÎÎÏÎÏÎÏÎÎÏ:"
 
-#: C/tutorial.py.page:50(title)
-msgid "Tutorial"
-msgstr "ÎÎÎÎÎÎ"
+#: C/02_welcome_to_the_grid.js.page:258(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"        // Create a button\n"
+"        this._button = new Gtk.Button ({\n"
+"            label: \"Welcome to GNOME, too!\"});\n"
+"\n"
+"        // Attach the images and button to the grid\n"
+"        this._grid.attach (this._image,  0, 0, 2, 1);\n"
+"        this._grid.attach (this._icon,   0, 1, 1, 1);\n"
+"        this._grid.attach (this._button, 1, 1, 1, 1);\n"
+msgstr ""
+"\n"
+"        // Create a button\n"
+"        this._button = new Gtk.Button ({\n"
+"            label: \"Welcome to GNOME, too!\"});\n"
+"\n"
+"        // Attach the images and button to the grid\n"
+"        this._grid.attach (this._image,  0, 0, 2, 1);\n"
+"        this._grid.attach (this._icon,   0, 1, 1, 1);\n"
+"        this._grid.attach (this._button, 1, 1, 1, 1);\n"
 
-#: C/tutorial.py.page:52(title)
-msgid "Basic windows"
-msgstr "ÎÎÏÎÎÎ ÏÎÏÎÎÏÏÎ"
+#: C/02_welcome_to_the_grid.js.page:269(section/p)
+msgid ""
+"That's right, we turned the Label into a Button just by changing the name! "
+"If you run the application and click on it, though, you'll find that it "
+"doesn't do anything. How do we make our Button do something? That's what "
+"we'll find out, in <link xref=\"getting_the_signal.js\">our next tutorial</"
+"link>."
+msgstr ""
+"ÎÎÏÎÎÏÏ, ÎÎÏÎÏÏÎÏÎÏÎÎ ÏÎÎ ÎÏÎÎÎÏÎ ÏÎ ÎÎÎ ÎÎÏÎÏÎ ÎÎÎÎÎÎÎÏÎÏ ÎÏÎÎ ÏÎ ÏÎÎÎÎ! "
+"ÎÎÎ ÎÎÏÎÎÎÎÏÎ ÏÎÎ ÎÏÎÏÎÎÎÎ ÎÎÎ ÏÎÏÎÏÏÎ ÏÎÎÏ ÏÎÏ, ÏÎÏÏ, ÎÎ ÎÎÎÏÎ ÏÏÎ ÎÎÎ "
+"ÎÎÎÎÎ ÏÎÏÎÏÎ. ÎÏÏ ÎÎÎÎÏÎÎ ÏÎ ÎÎÏÎÏÎ ÎÎÏ ÎÎ ÎÎÎÎÎ ÎÎÏÎ; ÎÏÏÏ ÎÎ ÎÎÎÎÏÎÎ ÏÏÎ "
+"<link xref=\"getting_the_signal.js\">ÎÏÏÎÎÎÎ ÎÎÎÎÎÎ ÎÎÏ</link>."
 
-#: C/tutorial.py.page:57(title)
-msgid "Images and labels"
-msgstr "ÎÎÎÏÎÎÏ ÎÎÎ ÎÏÎÎÎÏÎÏ"
+#: C/02_welcome_to_the_grid.js.page:270(section/p)
+msgid ""
+"If you like, feel free to spend some time experimenting with Grids, Labels, "
+"and Images, including stock images."
+msgstr ""
+"ÎÎÎ ÎÎÎÎÏÎ, ÎÏÎÏÎÎÏÎ ÎÎÎÏÎÎÏÎ ÎÎ ÎÎÎÎÏÎÏÎ ÎÎÏÎÎÎ ÏÏÏÎÎ ÏÎÎÏÎÎÎÏÎÎÏÎÎÎÎÎ ÎÎ "
+"ÏÎÎÎÎÎÏÎ, ÎÏÎÎÎÏÎÏ ÎÎÎ ÎÎÎÏÎÎÏ ÏÏÎÏÎÏÎÎÎÎÎÎÎÎÎÎÎÏÎ ÏÏÎ ÎÎÎÏÎÏÎ ÏÎÏÎÎÎÏÎÎÎÎÎÏ."
 
-#: C/tutorial.py.page:62(title) C/grid.py.page:27(title)
-#: C/grid.js.page:24(title) C/grid.c.page:20(title)
-msgid "Grid"
-msgstr "ÎÎÎÎÎÎ"
+#: C/02_welcome_to_the_grid.js.page:271(note/p)
+msgid ""
+"One trick you can use to make more complex layouts is to nest Grids inside "
+"of each other. This lets you group together related widgets, and rearrange "
+"them easily. Take a look at the <link xref=\"radiobutton.js\">RadioButton</"
+"link> code sample if you'd like to see how this is done."
+msgstr ""
+"ÎÎÎ ÎÏÎÏÎ ÏÎÏ ÎÏÎÏÎÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÎÎÎ ÎÎ ÎÎÎÎÏÎ ÏÎÎ ÏÏÎÎÎÏÎÏ "
+"ÎÎÎÏÎÎÎÎÏ ÎÎÎÎÎ Î ÎÎÎÎÏÎ ÏÎÎÎÎÎÏÏÎ ÏÎ ÎÎÎ ÎÎÏÎ ÏÏÎ ÎÎÎÎ. ÎÏÏÏ ÏÎÏ ÎÏÎÏÏÎÏÎÎ "
+"ÎÎ ÎÎÎÎÎÏÎÎÎÏÎÏÎ ÎÎÎÎ ÏÏÎÏÎÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÎ ÎÎ ÏÎ ÎÎÎÎÎÎÏÎÎÎÏÎ "
+"ÎÏÎÎÎÎ. ÎÎÎÏÎ ÎÎÎ ÎÎÏÎÎ ÏÏÎ ÎÎÎÎÎÎ ÎÏÎÎÎÎ <link xref=\"radiobutton.js"
+"\">RadioButton</link> ÎÎÎ ÎÎ ÎÎÎÎÏÎ ÎÎ ÎÎÎÏÎ ÏÏÏ ÎÎÎÎÏÎÎ ÎÏÏÏ."
 
-#: C/tutorial.py.page:66(title) C/beginner.vala.page:77(title)
-#: C/beginner.py.page:54(title) C/beginner.js.page:73(title)
-#: C/beginner.c.page:88(title)
-msgid "Ornaments"
-msgstr "ÎÎÎÎÎÏÎÎÏÎÎÎ"
+#: C/02_welcome_to_the_grid.js.page:275(section/title)
+#: C/checkbutton.js.page:130(section/title)
+#: C/comboboxtext.js.page:170(section/title)
+#: C/combobox.js.page:227(section/title)
+#: C/hellognome.js.page:193(section/title)
+#: C/messagedialog.js.page:183(section/title)
+#: C/radiobutton.js.page:268(section/title) C/scale.js.page:202(section/title)
+#: C/spinbutton.js.page:193(section/title)
+#: C/statusbar.js.page:215(section/title) C/switch.js.page:258(section/title)
+#: C/textview.js.page:242(section/title)
+#: C/togglebutton.js.page:147(section/title)
+#: C/treeview_simple_liststore.js.page:266(section/title)
+msgid "Complete code sample"
+msgstr "ÎÎÎÎÎÎ ÏÎÎÏÎÏÏ ÎÏÎÎÎÎ"
 
-#: C/tutorial.py.page:70(title)
-msgid "Basic buttons"
-msgstr "ÎÎÏÎÎÎ ÎÎÏÎÏÎÎ"
-
-#: C/tutorial.py.page:79(title)
-msgid "Other display widgets"
-msgstr "ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÎÎÏ ÎÎÏÎÎÎÏÎÏ"
-
-#: C/tutorial.py.page:85(title)
-msgid "Entry widgets (with a detour on basic scrolling)"
-msgstr "ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÏÏÎÎÏ (ÎÎ ÎÎÎ ÏÎÏÎÎÎÎÏÎ ÏÏÎ ÎÎÏÎÎÎ ÎÏÎÎÏÎ)"
-
-#: C/tutorial.py.page:93(title)
-msgid "Dialogs"
-msgstr "ÎÎÎÎÎÎÎÎ"
-
-#: C/tutorial.py.page:99(title)
-msgid "TreeViews and ComboBoxes (using the M/V/C design)"
-msgstr "TreeViews ÎÎÎ ComboBoxes (ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ ÏÏÎÎÎÎÏÎ M/V/C)"
-
-#: C/tutorial.py.page:108(title)
-msgid "Menus and toolbars (also: using Glade)"
-msgstr "ÎÎÎÎÏ ÎÎÎ ÎÏÎÎÎÎÎÎÎÎÎÎÏ (ÎÏÎÏÎÏ: ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ Glade)"
-
-#: C/tutorial.py.page:116(title)
-msgid "Selectors (a recap)"
-msgstr "ÎÏÎÎÎÎÎÎÏ (ÎÎÎ ÎÎÎÎÎÏÎÎÎÎÏÏÎ)"
+#: C/02_welcome_to_the_grid.js.page:276(section/code)
+#, no-wrap
+msgid ""
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"const WelcomeToTheGrid = new Lang.Class({\n"
+"    Name: 'Welcome to the Grid',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application();\n"
+"\n"
+"    // Connect 'activate' and 'startup' signals to the callback functions\n"
+"    this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"    this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents windows when active\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function() {\n"
+"        this._buildUI ();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function() {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            border_width: 10,\n"
+"            title: \"Welcome to the Grid\"});\n"
+"\n"
+"        // Create the Grid\n"
+"        this._grid = new Gtk.Grid ({\n"
+"            // column_homogeneous: true,\n"
+"            // column_spacing: 20,\n"
+"            row_spacing: 20 });\n"
+"\n"
+"        // Create an image\n"
+"        this._image = new Gtk.Image ({ file: \"gnome-image.png\" });\n"
+"\n"
+"        // Create a second image using a stock icon\n"
+"        this._icon = new Gtk.Image ({ stock: 'gtk-about' });\n"
+"\n"
+"        // Create a label\n"
+"        this._label = new Gtk.Label ({\n"
+"            label: \"Welcome to GNOME, too!\",\n"
+"            /* margin_top: 20 */ });\n"
+"\n"
+"        /* Create a second label\n"
+"        this._labelTwo = new Gtk.Label ({\n"
+"            label: \"The cake is a pie.\" }); */\n"
+"\n"
+"        /* Create a button\n"
+"        this._button = new Gtk.Button ({\n"
+"            label: \"Welcome to GNOME, too!\"}); */\n"
+"\n"
+"        // Attach the images and button to the grid\n"
+"        this._grid.attach (this._image,  0, 0, 2, 1);\n"
+"        this._grid.attach (this._icon,   0, 1, 1, 1);\n"
+"        this._grid.attach (this._label,  1, 1, 1, 1);\n"
+"\n"
+"        // this._grid.attach (this._label, 0, 1, 1, 1);\n"
+"        // this._grid.attach (this._labelTwo, 1, 1, 1, 1);\n"
+"\n"
+"        // this._grid.attach (this._button, 1, 1, 1, 1);\n"
+"\n"
+"        // Add the grid to the window\n"
+"        this._window.add (this._grid);\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    }\n"
+"\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new WelcomeToTheGrid ();\n"
+"app.application.run (ARGV);\n"
+msgstr ""
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"const WelcomeToTheGrid = new Lang.Class({\n"
+"    Name: 'Welcome to the Grid',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application();\n"
+"\n"
+"    // Connect 'activate' and 'startup' signals to the callback functions\n"
+"    this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"    this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents windows when active\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function() {\n"
+"        this._buildUI ();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function() {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            border_width: 10,\n"
+"            title: \"Welcome to the Grid\"});\n"
+"\n"
+"        // Create the Grid\n"
+"        this._grid = new Gtk.Grid ({\n"
+"            // column_homogeneous: true,\n"
+"            // column_spacing: 20,\n"
+"            row_spacing: 20 });\n"
+"\n"
+"        // Create an image\n"
+"        this._image = new Gtk.Image ({ file: \"gnome-image.png\" });\n"
+"\n"
+"        // Create a second image using a stock icon\n"
+"        this._icon = new Gtk.Image ({ stock: 'gtk-about' });\n"
+"\n"
+"        // Create a label\n"
+"        this._label = new Gtk.Label ({\n"
+"            label: \"Welcome to GNOME, too!\",\n"
+"            /* margin_top: 20 */ });\n"
+"\n"
+"        /* Create a second label\n"
+"        this._labelTwo = new Gtk.Label ({\n"
+"            label: \"The cake is a pie.\" }); */\n"
+"\n"
+"        /* Create a button\n"
+"        this._button = new Gtk.Button ({\n"
+"            label: \"Welcome to GNOME, too!\"}); */\n"
+"\n"
+"        // Attach the images and button to the grid\n"
+"        this._grid.attach (this._image,  0, 0, 2, 1);\n"
+"        this._grid.attach (this._icon,   0, 1, 1, 1);\n"
+"        this._grid.attach (this._label,  1, 1, 1, 1);\n"
+"\n"
+"        // this._grid.attach (this._label, 0, 1, 1, 1);\n"
+"        // this._grid.attach (this._labelTwo, 1, 1, 1, 1);\n"
+"\n"
+"        // this._grid.attach (this._button, 1, 1, 1, 1);\n"
+"\n"
+"        // Add the grid to the window\n"
+"        this._window.add (this._grid);\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    }\n"
+"\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new WelcomeToTheGrid ();\n"
+"app.application.run (ARGV);\n"
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/03_getting_the_signal.js.page:36(media)
+#: C/03_getting_the_signal.js.page:352(media)
+msgctxt "_"
+msgid ""
+"external ref='media/03_jssignal_01.png' "
+"md5='8d6ecab185f4af4534cc255d62b58b8e'"
+msgstr ""
+"external ref='media/03_jssignal_01.png' "
+"md5='8d6ecab185f4af4534cc255d62b58b8e'"
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/03_getting_the_signal.js.page:156(media)
+#: C/03_getting_the_signal.js.page:358(media)
+msgctxt "_"
+msgid ""
+"external ref='media/03_jssignal_02.png' "
+"md5='ba941390fbafc4a0f653c8f70bca92c0'"
+msgstr ""
+"external ref='media/03_jssignal_02.png' "
+"md5='ba941390fbafc4a0f653c8f70bca92c0'"
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/03_getting_the_signal.js.page:160(media)
+msgctxt "_"
+msgid "external ref='media/03_jssignal_02b.png' md5='__failed__'"
+msgstr "external ref='media/03_jssignal_02b.png' md5='__failed__'"
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/03_getting_the_signal.js.page:232(media)
+#: C/03_getting_the_signal.js.page:364(media)
+msgctxt "_"
+msgid ""
+"external ref='media/03_jssignal_03.png' "
+"md5='49ecf251b0bf57543c8d79a77b6f306d'"
+msgstr ""
+"external ref='media/03_jssignal_03.png' "
+"md5='49ecf251b0bf57543c8d79a77b6f306d'"
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/03_getting_the_signal.js.page:303(media)
+#: C/03_getting_the_signal.js.page:370(media)
+msgctxt "_"
+msgid ""
+"external ref='media/03_jssignal_04.png' "
+"md5='dfc5221ca15ca9fba7d3c76a73804e2d'"
+msgstr ""
+"external ref='media/03_jssignal_04.png' "
+"md5='dfc5221ca15ca9fba7d3c76a73804e2d'"
+
+#: C/03_getting_the_signal.js.page:20(info/desc)
+msgid "Create Buttons and other widgets that do things when you click on them."
+msgstr ""
+"ÎÎÎÎÎÏÏÎÎÎ ÎÎÏÎÏÎÏÎ ÎÎÎ ÎÎÎÏÎ ÎÏÎÏÎÎÏÎ ÏÏÏÏÎÏÎÎÏÎ ÏÎÏ ÎÎÎÎÏÎ ÏÏÎÎÎÎÏÎ ÏÏÎÎ "
+"ÏÎÏÎÏÎ ÏÎÎÏ ÏÎÏÏ."
 
-#: C/tutorial.py.page:122(title) C/tooltip.py.page:21(title)
-msgid "Tooltip"
-msgstr "ÎÏÎÎÎÏÎÎ ÎÎÏÎÎÏ"
+#: C/03_getting_the_signal.js.page:23(page/title)
+msgid "3. Getting the Signal"
+msgstr "3. ÎÎÏÎ ÏÎÏ ÏÎÎÎÏÎÏ"
 
-#: C/tutorial.py.page:126(title)
-msgid "More containers"
-msgstr "ÎÎÏÎÏÏÏÏÎÏÎÎ ÏÎÏÎÎÎÏÎÏ"
+#: C/03_getting_the_signal.js.page:25(synopsis/p)
+msgid ""
+"In the last tutorial, we learned how to create widgets like Labels, Images, "
+"and Buttons. Here, we'll learn how to make Buttons and other input widgets "
+"actually do things, by writing functions which handle the signals they send "
+"when they are clicked on or interacted with."
+msgstr ""
+"ÎÏÎ ÏÎÎÎÏÏÎÎÎ ÎÎÎÎÎÎ, ÎÎÎÎÎÎ ÏÏÏ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÏÏÏÏ "
+"ÎÏÎÎÎÏÎÏ, ÎÎÎÏÎÎÏ ÎÎÎ ÎÎÏÎÏÎÎ. ÎÎÏ, ÎÎ ÎÎÎÎÏÎÎ ÏÏÏ ÎÎ ÎÎÎÎÏÎÎ ÎÎÏÎÏÎÎ ÎÎÎ "
+"ÎÎÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÏÏÎÎÏ ÎÎ ÎÎÎÎÏÎ ÏÏÎÎÎÎÏÎ ÏÏÎÎÎÎÏÎ, ÎÏÎÏÎÎÏÎÏ "
+"ÏÏÎÎÏÏÎÏÎÎÏ ÏÎÏ ÏÎÎÏÎÎÎÎÏÎÎ ÏÎ ÏÎÎÎÏÎ ÏÎÏ ÏÏÎÎÎÎÏÎ ÏÏÎÎ ÏÎÏÎÎÏÎÏÎÎ Î "
+"ÎÎÎÎÎÎÏÎÎÏÎÏÎ."
 
-#: C/tutorial.py.page:131(title)
-msgid "More scrolling"
-msgstr "ÎÎÏÎÏÏÏÏÎÏÎ ÎÏÎÎÏÎ"
+#: C/03_getting_the_signal.js.page:31(section/title)
+msgid "A basic application"
+msgstr "ÎÎÎ ÎÎÏÎÎÎ ÎÏÎÏÎÎÎÎ"
 
-#: C/tutorial.py.page:132(p)
-msgid "\"scrollbar.py\""
-msgstr "\"scrollbar.py\""
+#: C/03_getting_the_signal.js.page:32(section/p)
+msgid ""
+"In GNOME, widgets that you can interact with, like Buttons and Switches, "
+"send out signals when they are clicked on or activated. A Button, for "
+"instance, sends out the \"clicked\" signal when somebody clicks on it. When "
+"this happens, GNOME looks for the part in your code that says what to do."
+msgstr ""
+"ÎÏÎ GNOME, ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎ ÏÎ ÎÏÎÎÎ ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÎÎÎÏÎÎÏÎÏÎ, ÏÏÏÏ "
+"ÎÎÏÎÏÎÎ ÎÎÎ ÎÎÎÎÏÏÏÎÏ, ÏÏÎÎÎÎÏÎ ÏÎÎÎÏÎ ÏÏÎÎ ÏÎÏÎÎÏÎÏÎÎ Î ÎÎÎÏÎÎÏÎÎÎÏÎÏÎÎ. "
+"ÎÎÎ ÎÎÏÎÏÎ, ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ, ÏÏÎÎÎÎÎ ÏÎ ÏÎÎÎ \"clicked\" ÏÏÎÎ ÎÎÏÎÎÎÏ ÏÎ "
+"ÏÎÏÎ. ÎÏÎÎ ÎÏÏÏ ÏÏÎÎÎÎÎÎÎ, ÏÎ GNOME ÏÎÏÎÎÎ ÎÎÎ ÏÎ ÎÎÏÎÏ ÏÏÎÎ ÎÏÎÎÎÎ ÏÎÏ ÏÎÏ "
+"ÎÎÎÎ ÏÎ ÎÎ ÎÎÎÎÎ."
 
-#: C/tutorial.py.page:135(title)
-msgid "Custom widget"
-msgstr "ÎÏÎÏÎÏÎÎÏÎÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ"
+#: C/03_getting_the_signal.js.page:33(section/p)
+msgid ""
+"How do we write that code? By connecting that Button's \"clicked\" signal to "
+"a callback function, which is a function you write just to handle that "
+"signal. So whenever it gives off that signal, the function connected to that "
+"signal is run."
+msgstr ""
+"ÎÏÏ ÎÏÎÏÎÏÎÎ ÎÏÏÏÎ ÏÎÎ ÎÏÎÎÎÎ; ÎÏÎÎÎÎÎÏÎÏ ÏÎ \"clicked\" ÏÎÎÎ ÎÏÏÎÏ ÏÎÏ "
+"ÎÎÏÎÏÎÎÏ ÏÎ ÎÎÎ ÏÏÎÎÏÏÎÏÎ ÎÏÎÎÎÎÎÎÏÎÏ, ÏÎÏ ÎÎÎÎÎ ÎÎÎ ÏÏÎÎÏÏÎÏÎ ÏÎÏ ÎÏÎÏÎÏÎ "
+"ÎÏÎÎ ÎÎÎ ÎÎ ÏÎÎÏÎÏÏÎÎÏÎ ÎÏÏÏ ÏÎ ÏÎÎÎ. ÎÏÏÎ ÏÏÎÏÎ ÎÎÏÎÎÏÎÎ ÎÏÏÏ ÏÎ ÏÎÎÎ, Î "
+"ÏÏÎÎÎÎÎÎÎ ÏÏÎÎÏÏÎÏÎ ÎÎ ÎÏÏÏ ÏÎ ÏÎÎÎ ÎÎÏÎÎÎÎÏÎÎ."
 
-#: C/tutorial.py.page:136(p)
-msgid "\"widget.py\""
-msgstr "\"widget.py\""
+#: C/03_getting_the_signal.js.page:34(section/p)
+msgid "Here is an extremely basic example:"
+msgstr "ÎÎ ÎÎÎ ÏÎÎÏ ÎÎÏÎÎÏ ÏÎÏÎÎÎÎÎÎÎ:"
 
-#: C/tutorial.py.page:142(title)
-msgid "Some theory to help you"
-msgstr "ÎÎÏÎÎÎ ÎÎÏÏÎÎ ÎÎÎ ÎÎÎÎÎÎÎ"
+#: C/03_getting_the_signal.js.page:38(section/p)
+msgid ""
+"This ApplicationWindow has a Button and a Label inside it, arranged in a "
+"Grid. Whenever the Button is clicked, a variable that holds the number of "
+"cookies is increased by 1, and the Label that shows how many cookies there "
+"are is updated."
+msgstr ""
+"ÎÏÏÏ ÏÎ ApplicationWindow ÎÏÎÎ ÎÎÎ ÎÎÏÎÏÎ ÎÎÎ ÎÎÎ ÎÏÎÎÎÏÎ ÎÎÏÎ ÏÎÏ, "
+"ÏÎÎÏÎÏÎÎÎÎÎÎÎ ÏÎ ÎÎÎ ÏÎÎÎÎÎ. ÎÏÎÏÎ ÏÎÏÎÎÏÎÎ ÏÎ ÎÎÏÎÏÎ, ÎÎÎ ÎÎÏÎÎÎÎÏÎ ÏÎÏ "
+"ÎÏÎÏÎ ÏÎÎ ÎÏÎÎÎÏ ÏÏÎ ÎÏÎÏÎÏÏÏÎ ÎÏÎÎÎÎÏÎÎ ÎÎÏÎ 1 ÎÎÎ Î ÎÏÎÎÎÏÎ ÎÎÎÏÎÎÎ ÏÏÏÎ "
+"ÎÏÎÏÎÏÏÎ ÎÎÎÎÎÏÏÎÎÎÎÎ."
 
-#: C/tutorial.py.page:147(title) C/menubar.vala.page:197(title)
-#: C/beginner.vala.page:86(title) C/beginner.js.page:82(title)
-#: C/beginner.c.page:97(title)
-msgid "Exercises"
-msgstr "ÎÏÎÎÏÎÎÏ"
+#: C/03_getting_the_signal.js.page:39(note/p)
+msgid ""
+"The cookies in this example are not the same as the cookies that you get "
+"from websites, which store your login information and may keep track of "
+"which sites you've visited. They're just imaginary treats. You may bake some "
+"real ones if you like."
+msgstr ""
+"ÎÎ ÎÏÎÏÎÏÏÎ ÏÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎÎÎ ÏÎ ÎÎÎÎ ÏÏÏÏ ÏÎ ÎÏÎÏÎÏÏÎ ÏÎÏ "
+"ÏÎÎÏÎÎÏÎ ÎÏÏ ÏÎÏÏ ÎÏÏÏÏÎÏÎÏÏ ÏÎÏ ÎÏÎÎÎÎÎÏÎÏÎ ÏÎÏ ÏÎÎÏÎÏÎÏÎÎÏ ÏÏÎÎÎÏÎ ÏÎÏ ÎÎÎ "
+"ÎÏÎÏÎÏÎ ÎÎ ÏÎÏÎÎÎÎÎÏÎÎÏÎ ÏÎÏÏ ÏÏÏÎÏÏ ÏÎÏ ÎÏÎÏÎ ÎÏÎÏÎÎÏÏÎÎ. ÎÎÎÎÎ ÎÏÎÎ "
+"ÏÎÎÏÎÏÏÎÎÎÏ ÏÏÎÏÎÏÎÏÎÏÎÏ. ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÎÏÎ ÎÎÏÎÎÎÏ ÏÏÎÎÎÎÏÎÎÎÏ ÎÎÎ ÎÎÎÎÏÎ."
 
-#: C/translate.page:12(years) C/toolbar_builder.py.page:28(years)
-#: C/textview.py.page:16(years) C/strings.py.page:16(years)
-#: C/signals-callbacks.py.page:16(years) C/properties.py.page:16(years)
-#: C/model-view-controller.py.page:16(years) C/index.page:19(years)
-#: C/entry.py.page:20(years) C/documentation.page:12(years)
-#: C/bug-filing.page:11(years)
-msgid "2011"
-msgstr "2011"
+#: C/03_getting_the_signal.js.page:40(section/p)
+msgid ""
+"Here is the basic, boilerplate code that goes at the start of the "
+"application, before we start creating the window and widgets. Besides the "
+"application having a unique name, the biggest change from the usual "
+"boilerplate is that we create a global variable right near the beginning, to "
+"hold the number of cookies."
+msgstr ""
+"ÎÎ Î ÎÎÏÎÎÏÏ ÏÏÎÏÎÏÏÏÏÎÏ ÎÏÎÎÎÎÏ ÏÎÏ ÏÎÎÎÎÎÎÎ ÏÏÎÎ ÎÏÏÎ ÏÎÏ ÎÏÎÏÎÎÎÎÏ, ÏÏÎÎ "
+"ÎÏÏÎÏÎÏÎÎ ÏÎ ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ ÏÎÏÎÎÏÏÎÏ ÎÎÎ ÏÏÎ ÎÏÎÏÎÎÏÎ ÏÏÏÏÎÏÎÎÏÎ. ÎÎÏÏÏ ÎÏÏ "
+"ÏÎ ÎÎ ÎÏÎÎ Î ÎÏÎÏÎÎÎÎ ÎÎÎ ÎÎÎÎÎÎÎÏ ÏÎÎÎÎ, Î ÎÎÎÎÎÏÏÎÏÎ ÎÎÎÎÎÎ ÎÏÏ ÏÎ ÏÏÎÎÎÎÏ "
+"ÏÏÎÏÎÏÏÏÏÎ ÎÎÎÎÎ ÏÏÎ ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ ÎÎÎÎÎÎÎÎ ÎÎÏÎÎÎÎÏÎ ÏÎÎÏ ÎÎÎÏÎ ÏÏÎÎ "
+"ÎÏÏÎ, ÎÎÎ ÎÎ ÎÏÎÏÎÏÎÏÎÎ ÏÎÎ ÎÏÎÎÎÏ ÏÏÎ ÎÏÎÏÎÏÏÏÎ."
 
-#: C/translate.page:15(name)
-msgid "Michael Hill"
-msgstr "Michael Hill"
+#: C/03_getting_the_signal.js.page:41(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"// We start out with 0 cookies\n"
+"var cookies = 0;\n"
+"\n"
+"const GettingTheSignal = new Lang.Class({\n"
+"    Name: 'Getting the Signal',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application();\n"
+"\n"
+"        // Connect 'activate' and 'startup' signals to the callback functions\n"
+"        this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"        this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents window when active\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function() {\n"
+"        this._buildUI ();\n"
+"    },\n"
+msgstr ""
+"\n"
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"// We start out with 0 cookies\n"
+"var cookies = 0;\n"
+"\n"
+"const GettingTheSignal = new Lang.Class({\n"
+"    Name: 'Getting the Signal',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application();\n"
+"\n"
+"        // Connect 'activate' and 'startup' signals to the callback functions\n"
+"        this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"        this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents window when active\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function() {\n"
+"        this._buildUI ();\n"
+"    },\n"
 
-#: C/translate.page:16(email)
-msgid "mdhillca gmail com"
-msgstr "mdhillca gmail com"
+#: C/03_getting_the_signal.js.page:72(section/p)
+msgid ""
+"Take a look at the part that uses our application's connect method and Lang."
+"bind, to connect its activate and startup signals to the functions that "
+"present the window and build the UI. We're going to do the same thing with "
+"our Button when we get to it, except that we're going to connect its "
+"\"clicked\" signal instead."
+msgstr ""
+"ÎÎÎÏÎ ÎÎÎ ÎÎÏÎÎ ÏÏÎ ÎÎÏÎÏ ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÎ ÏÎ ÎÎÎÎÎÎ ÏÏÎÎÎÏÎÏ ÏÎÏ ÎÏÎÏÎÎÎÎÏ "
+"ÎÎÏ ÎÎÎ Lang.bind, ÎÎÎ ÏÏÎÎÎÏÎ ÏÏÎ ÎÎÎÏÎÏÎ ÎÎÎ ÎÏÏÎÎÏÎ ÏÎÎÎÏÏÎ ÏÏÎÏ "
+"ÏÏÎÎÏÏÎÏÎÎÏ ÏÎÏ ÎÎÏÎÎÎÎÎÏÎ ÏÎ ÏÎÏÎÎÏÏÎ ÎÎÎ ÎÎÎÎÏÎ ÏÎ UI. ÎÏÏÎÎÎÏÎÎ ÎÎ "
+"ÎÎÎÎÏÎÎ ÏÎ ÎÎÎÎ ÏÏÎÎÎÎ ÎÎ ÏÎ ÎÎÏÎÏÎ ÎÎÏ ÏÏÎÎ ÏÎ ÏÎÏÎÏÎÎ, ÎÎÏÏÏ ÎÏÏ ÏÎ ÏÏÎ "
+"ÏÏÏÎÎÎÏÎÎ ÎÎ ÏÏÎÎÎÏÎÏÎÎ ÏÏÎ ÎÎÏÎ ÏÎÏ ÏÎ \"clicked\" ÏÎÎÎ."
 
-#: 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 Share Alike 3.0"
+#: C/03_getting_the_signal.js.page:76(section/title)
+msgid "Click the button"
+msgstr "ÎÎÏÎÎÎ ÏÎÏ ÎÎÏÎÏÎÎÏ"
 
-#: C/translate.page:23(title)
-msgid "Help translate"
-msgstr "ÎÎÎÎÎÎÎ ÏÏÎ ÎÎÏÎÏÏÎÏÎ"
+#: C/03_getting_the_signal.js.page:78(section/p)
+msgid ""
+"As usual, we'll put all the code to create our Button and other widgets "
+"inside the _buildUI function, which is called when the application starts up."
+msgstr ""
+"ÎÏ ÏÏÎÎÎÏÏ, ÎÎ ÎÎÎÎÏÎÎ ÏÎÎÎ ÏÎÎ ÎÏÎÎÎÎ ÎÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ ÏÎ ÎÎÏÎÏÎ ÎÎÏ "
+"ÎÎÎ ÎÎÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÏÎ ÏÏÎ ÏÏÎÎÏÏÎÏÎ _buildUI, ÏÎÏ ÎÎÎÎÎÏÎÎ ÏÏÎÎ "
+"ÎÎÎÎÎÎ Î ÎÏÎÏÎÎÎÎ."
 
-#: C/translate.page:24(p)
+#: C/03_getting_the_signal.js.page:79(section/code)
+#, no-wrap
 msgid ""
-"The <app>Tutorial Demos</app> are being translated by a world-wide volunteer "
-"community. You are welcome to participate."
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function() {\n"
 msgstr ""
-"ÎÎ <app>ÏÎÏÎÏÏÎÎÏÎÎÏ ÎÎÎÎÎÎÏÏÎ</app> ÎÎÏÎÏÏÎÎÎÎÏÎÎ ÎÏÏ ÎÎÎ ÏÎÎÎÏÏÎÎÎ "
-"ÎÎÎÎÏÏÎÏÎ ÎÎÎÎÎÎÏÏÎ. ÎÎÏÏÎ ÎÎÎÎÎÎÏÎÏÎÎÎÎÎ ÎÎ ÏÏÎÎÎÏÎÏÏÎÏÎ."
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function() {\n"
+
+#: C/03_getting_the_signal.js.page:84(section/p)
+msgid "First, we create the window itself:"
+msgstr "ÎÏÏÏÎ, ÎÎÎÎÎÏÏÎÎÏÎÎ ÏÎ ÎÎÎÎ ÏÎ ÏÎÏÎÎÏÏÎ:"
 
-#: C/translate.page:27(p)
+#: C/03_getting_the_signal.js.page:85(section/code)
+#, no-wrap
 msgid ""
-"There are <link href=\"http://l10n.gnome.org/module/gnome-devel-docs/\";>many "
-"languages</link> for which translations are still needed."
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            default_height: 200,\n"
+"            default_width: 400,\n"
+"            title: \"Click the button to get a cookie!\"});\n"
 msgstr ""
-"ÎÏÎÏÏÎÏÎ <link href=\"http://l10n.gnome.org/module/gnome-devel-docs/";
-"\">ÏÎÎÎÎÏ ÎÎÏÏÏÎÏ</link> ÎÎÎ ÏÎÏ ÎÏÎÎÎÏ ÎÏÎÎÏÎÏÎÏÎÎ ÎÎÏÎÏÏÎÏÎÎÏ."
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            default_height: 200,\n"
+"            default_width: 400,\n"
+"            title: \"Click the button to get a cookie!\"});\n"
 
-#: C/translate.page:30(p)
+#: C/03_getting_the_signal.js.page:94(section/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."
+"Note that we've set its default_height and default_width properties. These "
+"let us control how tall and wide the ApplicationWindow will be, in pixels."
 msgstr ""
-"ÎÎÎ ÎÎ ÎÎÎÎÎÎÏÎÏÎ ÎÎ ÎÎÏÎÏÏÎÎÎÏÎ ÏÏÎÏÎÎ ÎÎ <link href=\"http://l10n.gnome.org";
-"\">ÎÎÎÎÎÏÏÎÎÏÎÏÎ ÎÎÎ ÎÎÎÎÏÎÎÏÎÏ</link> ÎÎÎ ÎÎ ÏÏÎÎÎÏÎÏÏÎÏÎ ÏÏÎÎ <link href="
-"\"http://l10n.gnome.org/teams/\";>ÎÎÎÎÎ ÎÎÏÎÏÏÎÏÎÏ</link> ÏÎÏ ÎÎÏÏÏÎÏ ÏÎÏ. "
-"ÎÏÏÏ ÎÎ ÏÎÏ ÎÏÏÎÎ ÏÎÎ ÎÏÎÎÏÏÏÎÏÎ ÎÎ ÎÎÎÎÎÏÎÏÎ ÎÎÎÏ ÎÎÏÎÏÏÎÏÎÎÏ."
+"ÎÎÎÎÎÏÏÏÎ ÏÏÎ ÎÏÎÏÎÎ ÎÏÎÏÎÎ ÏÎÏ ÎÎÎÏÏÎÏÎÏ ÏÎÏ default_height ÎÎÎ "
+"default_width. ÎÏÏÎ ÎÎÏ ÎÏÎÏÏÎÏÎÏÎ ÎÎ ÎÎÎÎÎÎÏÎÎ ÏÏÏÎ ÏÏÎÎÏ ÎÎÎ ÏÎÎÏÏ ÎÎ "
+"ÎÎÎÎÎ ÏÎ ApplicationWindow, ÏÎ ÎÎÎÎÎÎÏÏÎÎÏÎÎÎ."
 
-#: C/translate.page:34(p)
+#: C/03_getting_the_signal.js.page:95(section/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."
+"Next, we'll create the Label that shows us the number of cookies. We can use "
+"the cookies variable as part of the Label's label property."
 msgstr ""
-"ÎÏÎÏÎÎÏÎ ÎÎ ÏÏÎÎÏÎÏÎÏÎ ÎÎ ÎÎÏÎÏÏÎÏÏÎÏ ÏÎÏ GNOME ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ <link "
-"href=\"https://cbe003.chat.mibbit.com/?url=irc%3A%2F%2Firc.gnome.org%2Fi18n";
-"\">irc</link>. ÎÎÎÏÏÏÎÎ ÏÏÎ ÎÎÎÎÎÎ ÎÏÎÏÎÎÎÏÎÎ ÏÎÎÏÎÏ, ÎÏÏÎ ÎÏÎÏÎÎÏÎ ÎÎ "
-"ÏÎÏÎÏÎ ÎÎÎ ÎÎÎÏÎ ÎÏÎÎÏÎÏÎ ÏÏ ÎÏÎÏÎÎÎÏÎÎ ÏÏÎ ÎÎÎÏÎÏÏÎ ÏÏÎÏ."
+"ÎÏÏÎÏÎ, ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ ÏÎÎ ÎÏÎÎÎÏÎ ÏÎÏ ÎÎÏ ÎÎÏÎÎÎÎÎÎ ÏÎÎ ÎÏÎÎÎÏ ÏÏÎ "
+"ÎÏÎÏÎÏÏÏÎ. ÎÏÎÏÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÏÎ ÎÎÏÎÎÎÎÏÎ ÏÏÎ ÎÏÎÏÎÏÏÏÎ ÏÏ ÎÎÏÎÏ "
+"ÏÎÏ ÎÎÎÏÏÎÏÎÏ ÎÏÎÎÎÏÎÏ ÏÎÏ ÎÏÎÎÎÏÎÏ."
 
-#: C/translate.page:37(p)
+#: C/03_getting_the_signal.js.page:96(section/code)
+#, no-wrap
 msgid ""
-"Alternatively, you can contact the Internationalization Team using their "
-"<link href=\"http://mail.gnome.org/mailman/listinfo/gnome-i18n\";>mailing "
-"list</link>."
+"\n"
+"        // Create the label\n"
+"        this._cookieLabel = new Gtk.Label ({\n"
+"            label: \"Number of cookies: \" + cookies });\n"
 msgstr ""
-"ÎÎÎÎÎÎÎÏÎÎÎ, ÎÏÎÏÎÎÏÎ ÎÎ ÎÏÎÎÎÎÎÏÎÎÏÎÏÎ ÎÎ ÏÎÎ ÎÎÎÎÎ ÎÎÎÎÎÎÏÎÎÎÏÎÏ "
-"ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ <link href=\"http://mail.gnome.org/mailman/listinfo/gnome-";
-"i18n\">ÎÎÏÏÎ ÎÎÎÎÎÎÎÏÎÏÎÎÏ</link> ÏÎÏÏ."
+"\n"
+"        // Create the label\n"
+"        this._cookieLabel = new Gtk.Label ({\n"
+"            label: \"Number of cookies: \" + cookies });\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/treeview_treestore.py.page:21(None)
+#: C/03_getting_the_signal.js.page:102(section/p)
 msgid ""
-"@@image: 'media/treeview_treestore.png'; md5=5ca87bc4acd55c527b3fb5fd46779d85"
+"Now we'll create the Button. We set its label property to show the text that "
+"we want on the Button, and we connect its \"clicked\" signal to a function "
+"called _getACookie, which we'll write after we're done building our "
+"application's UI."
 msgstr ""
-"@@image: 'media/treeview_treestore.png'Â md5=5ca87bc4acd55c527b3fb5fd46779d85"
+"ÎÏÏÎ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ to ÎÎÏÎÏÎ. ÎÏÎÎÎÏÎÎ ÏÎÎ ÎÎÎÏÏÎÏÎ ÏÎÏ ÎÏÎÎÎÏÎ ÎÎÎ ÎÎ "
+"ÎÎÏÎÎÎÏÎÏÎÎ ÏÎ ÎÎÎÎÎÎÎ ÏÎÏ ÎÎÎÎÏÎÎ ÏÏÎ ÎÎÏÎÏÎ ÎÎÎ ÏÏÎÎÎÎÏÎÎ ÏÎ ÏÎÎÎ ÏÎÏ "
+"\"clicked\" ÏÎ ÎÎÎ ÏÏÎÎÏÏÎÏÎ ÏÎÏ ÎÎÎÎÏÎÎ _getACookie, ÏÎÏ ÎÎ ÎÏÎÏÎÏÎÎ ÎÏÎÏ "
+"ÎÏÎÏÎÎ ÎÎÎÎÏÎÎ ÏÎÎ UI ÏÎÏ ÎÏÎÎÏÎ ÎÎÏ."
 
-#: C/treeview_treestore.py.page:7(title)
-#: C/treeview_cellrenderertoggle.py.page:7(title)
-msgid "TreeView with TreeStore (Python)"
-msgstr "TreeView ÎÎ TreeStore (Python)"
-
-#: C/treeview_treestore.py.page:17(desc)
-msgid "A TreeView displaying a TreeStore (simpler example)"
-msgstr "ÎÎÎ TreeView ÏÎÏ ÎÎÏÎÎÎÎÎÎ ÎÎÎ TreeStore (ÎÏÎÏ ÏÎÏÎÎÎÎÎÎÎ)"
-
-#: C/treeview_treestore.py.page:20(title)
-#: C/treeview_cellrenderertoggle.py.page:20(title)
-msgid "TreeView with TreeStore"
-msgstr "TreeView ÎÎ TreeStore"
-
-#: C/treeview_treestore.py.page:22(p)
-msgid "This TreeView displays a TreeStore."
-msgstr "ÎÏÏÏ ÏÎ TreeView ÎÎÏÎÎÎÎÎÎ ÎÎÎ TreeStore."
-
-#: C/treeview_treestore.py.page:33(title)
-#: C/treeview_simple_liststore.py.page:35(title)
-#: C/treeview_cellrenderertoggle.py.page:33(title)
-#: C/treeview_advanced_liststore.py.page:36(title)
-msgid "Useful methods for a TreeView widget"
-msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ TreeView"
-
-#: C/treeview_treestore.py.page:34(p)
-#: C/treeview_simple_liststore.py.page:36(p)
-#: C/treeview_cellrenderertoggle.py.page:34(p)
-#: C/treeview_advanced_liststore.py.page:37(p)
+#: C/03_getting_the_signal.js.page:103(section/code)
+#, no-wrap
 msgid ""
-"The TreeView widget is designed around a <em>Model/View/Controller</em> "
-"design. For more information, and for a list of useful methods for TreeView "
-"and the interface TreeModel, see <link xref=\"model-view-controller.py"
-"\">here</link>."
+"\n"
+"        // Create the cookie button\n"
+"        this._cookieButton = new Gtk.Button ({ label: \"Get a cookie\" });\n"
+"\n"
+"        // Connect the cookie button to the function that handles clicking it\n"
+"        this._cookieButton.connect ('clicked', Lang.bind (this, this._getACookie));\n"
 msgstr ""
-"ÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ TreeView ÏÏÎÎÎÎÏÏÎÎÎ ÎÏÏÏ ÎÏÏ ÎÎÎ ÏÏÎÎÎÎ <em>ÏÏÏÏÏÏÎÏ/"
-"ÏÏÎÎÎÎÎÏ/ÎÎÎÎÎÏÎ</em>. ÎÎÎ ÏÎÏÎÏÏÏÏÎÏÎÏ ÏÎÎÏÎÏÎÏÎÎÏ ÎÎÎ ÎÎÎ ÎÎÎ ÎÎÏÏÎ "
-"ÏÏÎÏÎÎÏÎ ÎÎÎÏÎÏÎ ÎÎÎ TreeView ÎÎÎ ÏÎÎ ÎÎÎÏÎÏÎ TreeModel, ÎÎÎÏÎ <link xref="
-"\"model-view-controller.py\">ÎÎÏ</link>."
-
-#: C/treeview_treestore.py.page:41(link)
-#: C/treeview_simple_liststore.py.page:43(link)
-#: C/treeview_cellrenderertoggle.py.page:41(link)
-#: C/treeview_advanced_liststore.py.page:45(link)
-#: C/model-view-controller.py.page:186(link)
-msgid "GtkTreeView"
-msgstr "GtkTreeView"
-
-#: C/treeview_treestore.py.page:42(link)
-#: C/treeview_simple_liststore.py.page:44(link)
-#: C/treeview_cellrenderertoggle.py.page:42(link)
-#: C/treeview_advanced_liststore.py.page:46(link)
-#: C/model-view-controller.py.page:185(link)
-msgid "GtkTreeModel"
-msgstr "GtkTreeModel"
-
-#: C/treeview_treestore.py.page:43(link)
-#: C/treeview_cellrenderertoggle.py.page:43(link)
-msgid "GtkTreeStore"
-msgstr "GtkTreeStore"
-
-#: C/treeview_treestore.py.page:44(link)
-#: C/treeview_simple_liststore.py.page:46(link)
-#: C/treeview_cellrenderertoggle.py.page:44(link)
-#: C/treeview_advanced_liststore.py.page:48(link)
-#: C/combobox_multicolumn.py.page:45(link) C/combobox.py.page:42(link)
-msgid "GtkCellRendererText"
-msgstr "GtkCellRendererText"
-
-#: C/treeview_treestore.py.page:45(link)
-#: C/treeview_simple_liststore.py.page:47(link)
-#: C/treeview_cellrenderertoggle.py.page:46(link)
-#: C/treeview_advanced_liststore.py.page:49(link)
-#: C/model-view-controller.py.page:187(link)
-msgid "GtkTreeViewColumn"
-msgstr "GtkTreeViewColumn"
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/treeview_simple_liststore.vala.page:23(None)
-#: C/treeview_simple_liststore.py.page:23(None)
-msgid ""
-"@@image: 'media/treeview_simple_liststore.png'; "
-"md5=2dc501a2b95b094da985d37b66aee90c"
-msgstr ""
-"@@image: 'media/treeview_simple_liststore.png'Â "
-"md5=2dc501a2b95b094da985d37b66aee90c"
-
-#: C/treeview_simple_liststore.vala.page:7(title)
-msgid "Simple Treeview with ListStore (Vala)"
-msgstr "ÎÏÎÎ Treeview ÎÎ ListStore (Vala)"
+"\n"
+"        // Create the cookie button\n"
+"        this._cookieButton = new Gtk.Button ({ label: \"Get a cookie\" });\n"
+"\n"
+"        // Connect the cookie button to the function that handles clicking it\n"
+"        this._cookieButton.connect ('clicked', Lang.bind (this, this._getACookie));\n"
 
-#: C/treeview_simple_liststore.vala.page:19(desc)
-msgid "A widget can display any TreeModel implementation (lists and trees)"
+#: C/03_getting_the_signal.js.page:110(section/p)
+msgid ""
+"Finally, we create a Grid, attach the Label and Button to it, add it to the "
+"window and tell the window to show itself and its contents. That's all we "
+"need inside the _buildUI function, so we close it with a bracket, as well as "
+"a comma that tells GNOME to go on to the next function. Note that even "
+"though we wrote the code for the Label first, we can still attach it to the "
+"Grid in a way that will put it on the bottom."
 msgstr ""
-"ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÏÎÏÎÎ ÎÎ ÎÎÏÎÎÎÏÎÎ ÎÏÎÎÎÎÎÏÎÏÎ ÏÎÎÏÎÎÎÏÎ TreeModel "
-"(ÎÎÏÏÎÏ ÎÎÎ ÎÎÎÎÏÎ)"
-
-#: C/treeview_simple_liststore.vala.page:22(title)
-#: C/treeview_advanced_liststore.py.page:23(title)
-msgid "Simple Treeview with ListStore"
-msgstr "ÎÏÎÎ Treeview ÎÎ ListStore"
+"ÎÎÎÎÎÎ, ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ ÏÎÎÎÎÎ, ÏÏÎÏÎÏÏÎÏÏÎ ÏÎÎ ÎÏÎÎÎÏÎ ÎÎÎ ÏÎ ÎÎÏÎÏÎ ÏÎ "
+"ÎÏÏÏ, ÏÏÎÏÎÎÏÏÎ ÏÎ ÏÏÎ ÏÎÏÎÎÏÏÎ ÎÎÎ ÏÎÎÏÎ ÏÏÎ ÏÎÏÎÎÏÏÎ ÎÎ ÎÎÏÎÎÎÏÎÎ ÏÎÎ "
+"ÎÎÏÏÏ ÏÎÏ ÎÎÎ ÏÎ ÏÎÏÎÎÏÏÎÎÎÎ ÏÎÏ. ÎÏÏÏ ÏÏÎÎÎÎÏÎÎÏÏÎ ÎÎÏÎ ÏÏÎ ÏÏÎÎÏÏÎÏÎ "
+"_buildUI, ÎÏÏÎ ÏÎ ÎÎÎÎÎÎÏÎÎ ÎÎ ÎÎÎ ÏÎÏÎÎÎÎÏÎ, ÎÎÎÏÏ ÎÎÎ ÎÎÎ ÎÏÎÎÎ ÏÎÏ ÎÎÎÎ "
+"ÏÏÎ GNOME ÎÎ ÏÏÎÎÏÎÏÎÎ ÏÏÎÎ ÎÏÏÎÎÎÎ ÏÏÎÎÏÏÎÏÎ. ÎÎÎÎÎÏÏÏÎ ÏÏÎ ÎÎÏÎÎ ÎÎ ÎÎ "
+"ÎÏÎÏÎÎÎ ÏÎÎ ÎÏÎÎÎÎ ÎÎÎ ÏÎÎ ÎÏÎÎÎÏÎ ÏÏÏÏÎ, ÎÏÎÏÎÏÎÎ ÎÎÏÎÎ ÎÎ ÏÎÎ "
+"ÏÏÎÏÎÏÏÎÏÎÏÎÎ ÏÏÎ ÏÎÎÎÎÎ ÎÎ ÏÏÏÏÎ ÏÎÏ ÎÎ ÏÎÎ ÎÎÎÎÎ ÏÏÎ ÏÎÎÎÏ."
 
-#: C/treeview_simple_liststore.vala.page:24(p)
+#: C/03_getting_the_signal.js.page:111(section/code)
+#, no-wrap
 msgid ""
-"This TreeView displays a simple ListStore with the Selection \"changed\" "
-"signal connected."
+"\n"
+"        // Create a grid to arrange everything inside\n"
+"        this._grid = new Gtk.Grid ({\n"
+"            halign: Gtk.Align.CENTER,\n"
+"            valign: Gtk.Align.CENTER,\n"
+"            row_spacing: 20 });\n"
+"\n"
+"        // Put everything inside the grid\n"
+"        this._grid.attach (this._cookieButton, 0, 0, 1, 1);\n"
+"        this._grid.attach (this._cookieLabel, 0, 1, 1, 1);\n"
+"\n"
+"        // Add the grid to the window\n"
+"        this._window.add (this._grid);\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"\n"
+"    },\n"
 msgstr ""
-"ÎÏÏÎ Î TreeView ÎÎÏÎÎÎÎÎÎ ÎÎÎ ÎÏÎÎ ListStore ÎÎ ÏÎ ÏÏÎÎÎÎÎÎÎ ÏÎÎÎ ÎÏÎÎÎÎÎÏ "
-"\"ÎÎÎÎÎÎÎÎÎ\"."
-
-#: C/treeview_simple_liststore.vala.page:31(link)
-#: C/treeview_simple_liststore.js.page:282(link)
-msgid "Gtk.TreeView"
-msgstr "Gtk.TreeView"
-
-#: C/treeview_simple_liststore.vala.page:32(link)
-#: C/treeview_simple_liststore.js.page:279(link) C/combobox.vala.page:29(link)
-#: C/combobox.js.page:242(link)
-msgid "Gtk.ListStore"
-msgstr "Gtk.ListStore"
-
-#: C/treeview_simple_liststore.vala.page:33(link)
-#: C/treeview_simple_liststore.js.page:281(link)
-msgid "Gtk.TreeSelection"
-msgstr "Gtk.TreeSelection"
-
-#: C/treeview_simple_liststore.py.page:7(title)
-msgid "Simple TreeView with ListStore (Python)"
-msgstr "ÎÏÎÎ Treeview ÎÎ ListStore (Python)"
-
-#: C/treeview_simple_liststore.py.page:19(desc)
-msgid "A TreeView displaying a ListStore (simpler example)"
-msgstr "ÎÎÎ TreeView ÏÎÏ ÎÎÏÎÎÎÎÎÎ ÎÎÎ TreeStore (ÎÏÎÏ ÏÎÏÎÎÎÎÎÎÎ)"
-
-#: C/treeview_simple_liststore.py.page:22(title)
-msgid "Simple TreeView with ListStore"
-msgstr "ÎÏÎÎ Treeview ÎÎ ListStore"
+"\n"
+"        // Create a grid to arrange everything inside\n"
+"        this._grid = new Gtk.Grid ({\n"
+"            halign: Gtk.Align.CENTER,\n"
+"            valign: Gtk.Align.CENTER,\n"
+"            row_spacing: 20 });\n"
+"\n"
+"        // Put everything inside the grid\n"
+"        this._grid.attach (this._cookieButton, 0, 0, 1, 1);\n"
+"        this._grid.attach (this._cookieLabel, 0, 1, 1, 1);\n"
+"\n"
+"        // Add the grid to the window\n"
+"        this._window.add (this._grid);\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"\n"
+"    },\n"
 
-#: C/treeview_simple_liststore.py.page:24(p)
-#: C/treeview_advanced_liststore.py.page:25(p)
+#: C/03_getting_the_signal.js.page:130(section/p)
 msgid ""
-"This TreeView displays a simple ListStore with the selection \"changed\" "
-"signal connected."
+"Now, we write the _getACookie function. Whenever our Button sends out its "
+"\"clicked\" signal, the code in this function will run. In this case, all it "
+"does is increase the number of cookies by 1, and update the Label to show "
+"the new number of cookies. We do this using the Label's set_label method."
 msgstr ""
-"ÎÏÏÎ Î TreeView ÎÎÏÎÎÎÎÎÎ ÎÎÎ ÎÏÎÎ ListStore ÎÎ ÏÎ ÏÏÎÎÎÎÎÎÎ ÏÎÎÎ ÎÏÎÎÎÎÎÏ "
-"\"ÎÎÎÎÎÎÎÎÎ\"."
-
-#: C/treeview_simple_liststore.py.page:45(link)
-#: C/treeview_advanced_liststore.py.page:47(link)
-#: C/combobox_multicolumn.py.page:44(link) C/combobox.py.page:41(link)
-msgid "GtkListStore"
-msgstr "GtkListStore"
-
-#: C/treeview_simple_liststore.py.page:48(link)
-#: C/treeview_advanced_liststore.py.page:50(link)
-#: C/combobox_multicolumn.py.page:48(link) C/combobox.py.page:44(link)
-msgid "pygobject - Python bindings for GObject Introspection"
-msgstr "pygobject - ÏÏÎÎÎÏÎÎÏ Python ÎÎÎ ÎÏÏÎÎÎÎÎÏÎ GObject"
-
-#: C/treeview_simple_liststore.py.page:49(link)
-msgid "Fonts"
-msgstr "ÎÏÎÎÎÎÏÎÏÎÎÏÎÏ"
+"ÎÏÏÎ, ÎÏÎÏÎÏÎÎ ÏÎ ÏÏÎÎÏÏÎÏÎ _getACookie. ÎÏÎÏÎ ÏÎ ÎÎÏÎÏÎ ÎÎÏ ÏÏÎÎÎÎÎ ÏÎ ÏÎÎÎ "
+"ÏÎÏ \"clicked\", Î ÎÏÎÎÎÎÏ ÏÎ ÎÏÏÎ ÏÎ ÏÏÎÎÏÏÎÏÎ ÎÎ ÎÎÏÎÎÎÏÏÎÎ. ÎÎ ÎÏÏÎÎ ÏÎÎ "
+"ÏÎÏÎÏÏÏÏÎ, ÎÏÏÏ ÏÎÏ ÎÎÎÎÎ ÎÎÎÎÎ ÎÎ ÎÏÎÎÏÎÎ ÏÎÎ ÎÏÎÎÎÏ ÏÏÎ ÎÏÎÏÎÏÏÏÎ ÎÎÏÎ 1 "
+"ÎÎÎ ÎÎ ÎÎÎÎÎÏÏÏÎÎ ÏÎÎ ÎÏÎÎÎÏÎ ÎÎ ÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÎÎ ÎÏÎÎÎÏ ÏÏÎ ÎÏÎÏÎÏÏÏÎ. ÎÎ "
+"ÎÎÎÎÏÎÎ ÎÏÏÏ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ ÎÎÎÎÎÎ set_label ÏÎÏ ÎÏÎÎÎÏÎÏ."
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/treeview_simple_liststore.js.page:24(None)
+#: C/03_getting_the_signal.js.page:131(note/p)
 msgid ""
-"@@image: 'media/treeview_simple_liststore_penguins.png'; "
-"md5=d750a0b9fddf8e508753cc639839871d"
+"Many widgets have the same properties and methods. Both Labels and Buttons, "
+"for instance, have a label property that says what text is inside them, and "
+"get_label and set_label methods that let you check what that text is and "
+"change it, respectively. So if you learn how one widget works, you'll also "
+"know how others like it work."
 msgstr ""
-"@@image: 'media/treeview_simple_liststore_penguins.png'Â "
-"md5=d750a0b9fddf8e508753cc639839871d"
-
-#: C/treeview_simple_liststore.js.page:7(title)
-msgid "TreeView with ListStore (JavaScript)"
-msgstr "Treeview ÎÎ ListStore (JavaScript)"
-
-#: C/treeview_simple_liststore.js.page:20(desc)
-msgid "A widget that shows a separate list of items"
-msgstr "ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÏÎÏ ÎÎÏÎÎÎÎÎÎ ÎÎÎ ÎÎÏÏÏÎÏÏÎ ÎÎÏÏÎ ÏÏÎÎÏÎÎÏÎ"
-
-#: C/treeview_simple_liststore.js.page:23(title)
-msgid "TreeView with ListStore"
-msgstr "Treeview ÎÎ ListStore"
+"ÎÎÎÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÏÎÏÎ ÏÎÏ ÎÎÎÎÏ ÎÎÎÏÏÎÏÎÏ ÎÎÎ ÎÎÎÏÎÎÏÏ. ÎÎÎ ÎÎ "
+"ÎÏÎÎÎÏÎÏ ÎÎÎ ÏÎ ÎÎÏÎÏÎÎ, ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ, ÎÏÎÏÎ ÎÎÎ ÎÎÎÏÏÎÏÎ ÎÏÎÎÎÏÎÏ ÏÎÏ "
+"ÎÎÎÎ ÏÎÎÎ ÎÎÎÎÎÎÎ ÎÎÎÎÎ ÎÎÏÎ ÏÎÏÏ ÎÎÎ ÏÎÏ ÎÎÎÏÎÎÏÏ et_label ÎÎÎ set_label "
+"ÏÎÏ ÏÎÏ ÎÏÎÏÏÎÏÎÏÎ ÎÎ ÎÎÎÎÎÎÏÎ ÏÎÎÎ ÎÎÎÎÎ ÎÏÏÏ ÏÎ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎ ÏÎ "
+"ÎÎÎÎÎÎÏÎ, ÎÎÏÎÏÏÎÎÏÎ. ÎÏÏÎ ÎÎÎ ÎÎÎÎÎÎÎÏÎ ÏÏÏ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÎÏÎÎÏÎÎ, "
+"ÎÎ ÎÎÏÎÏÎ ÎÏÎÏÎÏ ÏÏÏ ÎÎÎÎ ÏÎÎ ÎÎ ÎÏÏÏ ÎÎÏÎÎÏÎÏÎ."
 
-#: C/treeview_simple_liststore.js.page:25(p)
+#: C/03_getting_the_signal.js.page:132(section/code)
+#, no-wrap
 msgid ""
-"A TreeView is like a window onto the contents of either a ListStore or a "
-"TreeStore. A ListStore is like a spreadsheet: a \"flat\", two-dimensional "
-"list of things broken up into rows and columns. A TreeStore, meanwhile, can "
-"branch out in different directions like a tree can. In this example, we "
-"create a TreeView that shows the contents of a ListStore with (fictitious) "
-"names and phone numbers in it, and set it so that the <link xref=\"label.js"
-"\">Label</link> at the bottom of the window shows more information about "
-"whichever name you click on."
+"\n"
+"    _getACookie: function() {\n"
+"\n"
+"        // Increase the number of cookies by 1 and update the label\n"
+"        cookies++;\n"
+"        this._cookieLabel.set_label (\"Number of cookies: \" + cookies);\n"
+"\n"
+"    }\n"
+"\n"
+"});\n"
 msgstr ""
-"ÎÎÎ TreeView ÎÎÎÎÎÎÎ ÎÎ ÎÎÎ ÏÎÏÎÎÏÏÎ ÏÏÎ ÏÎÏÎÎÏÏÎÎÎÎ ÎÎÏÎ ÎÎÎÏ ListStore "
-"ÎÎÏÎ ÎÎÎÏ TreeStore. ÎÎÎ ListStore ÎÎÎÎÎÎÎ ÎÎ ÎÎÎ ÏÏÎÎÎÎÎÏÏÎÎÏ ÏÏÎÎÎ: ÎÎÎ "
-"\"ÎÏÎÏÎÎÎ\", ÎÎÎÎÎÏÏÎÏÎ ÎÎÏÏÎ ÏÏÎÎÎÎÏÏÎ ÎÎÎÎÏÎÎÎÎÎ ÏÎ ÎÏÎÎÎÎÏ ÎÎÎ ÏÏÎÎÎÏ. "
-"ÎÎÎ TreeStore, ÏÏÎ ÎÎÏÎÎÏ, ÎÏÎÏÎÎ ÎÎ ÎÎÎÎÎÎÎÏÎÎÎ ÏÎ ÎÎÎÏÎÏÎÏÎÎÎÏ "
-"ÎÎÏÎÏÎÏÎÏÎÎÏ ÏÏÏÏ ÎÎÎÎÎ ÎÎÎ ÎÎÎÎÏÎ. ÎÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ, ÎÎÎÎÎÏÏÎÎÏÎÎÎ ÎÎÎ "
-"TreeView ÏÎÏ ÎÎÏÎÎÎÎÎÎ ÏÎ ÏÎÏÎÎÏÏÎÎÎÎ ÎÎÎÏ ListStore ÎÎ (ÎÎÎÎÎÎÎÎ) ÎÎÏÎÎÏÎ "
-"ÎÎÎ ÎÏÎÎÎÎÏÏ ÏÎÎÎÏÏÎÎÏ ÏÎ ÎÏÏÏ, ÎÎÎ ÏÏÎÎÎÏÏÎÎÎ ÎÏÏÎ ÏÏÏÎ Î <link xref="
-"\"label.js\">ÎÏÎÎÎÏÎ</link> ÏÏÎ ÏÎÎÎÏ ÏÎÏ ÏÎÏÎÎÏÏÎÏ ÎÎ ÎÎÏÎÎÎÎÎÎ "
-"ÏÎÏÎÏÏÏÏÎÏÎÏ ÏÎÎÏÎÏÎÏÎÎÏ ÏÏÎÏÎÎÎ ÎÎ ÎÏÎÎÎÎÎÏÎÏÎ ÏÎÎÎÎ ÏÎÏÎÏÎ."
+"\n"
+"    _getACookie: function() {\n"
+"\n"
+"        // Increase the number of cookies by 1 and update the label\n"
+"        cookies++;\n"
+"        this._cookieLabel.set_label (\"Number of cookies: \" + cookies);\n"
+"\n"
+"    }\n"
+"\n"
+"});\n"
 
-#: C/treeview_simple_liststore.js.page:26(p)
+#: C/03_getting_the_signal.js.page:144(section/p)
 msgid ""
-"The TreeView is not just a single widget, but contains a number of smaller "
-"ones:"
+"Finally, we run the application, using the same kind of code as in our last "
+"tutorial."
 msgstr ""
-"Î TreeView ÎÎÎ ÎÎÎÎÎ ÎÏÎÎ ÎÎÎ ÎÎÎÏ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ, ÎÎÎÎ ÏÎÏÎÎÏÎÎ ÎÎÎÎ "
-"ÎÏÎÎÎÏ ÎÎÎÏÏÏÎÏÏÎ ÎÏÎÏÎÎÏÎ ÏÏÏÏÎÏÎÎÏÎ:"
+"ÎÎÎÎÎÎ, ÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ, ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ ÎÎÎÎ ÎÎÎÎÏ ÎÏÎÎÎÎ ÏÏÏÏ "
+"ÏÏÎ ÏÎÎÎÏÏÎÎÎ ÎÎÏ ÎÎÎÎÎÎ."
 
-#: C/treeview_simple_liststore.js.page:28(p)
+#: C/03_getting_the_signal.js.page:145(section/code)
+#, no-wrap
 msgid ""
-"TreeViewColumn widgets show each (vertical) column of information from the "
-"ListStore. Each one has a title which can be shown at the top of the column, "
-"like in the screenshot."
+"\n"
+"// Run the application\n"
+"let app = new GettingTheSignal ();\n"
+"app.application.run (ARGV);\n"
 msgstr ""
-"ÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ TreeViewColumn ÎÎÏÎÎÎÎÎÏÎ ÎÎÎÎ (ÎÎÎÎÏÎ) ÏÏÎÎÎ "
-"ÏÎÎÏÎÏÎÏÎÎÏ ÎÏÏ ÏÎ ListStore. ÎÎÎÎÎÎ ÎÏÎÎ ÎÎÎÎ ÏÎÏÎÎ ÏÎÏ ÎÏÎÏÎÎ ÎÎ ÏÏÎÎÎÎÎÎÎ "
-"ÏÏÎÎ ÎÎÏÏÏÎ ÏÎÏ ÏÏÎÎÎÏ, ÏÏÏÏ ÏÏÎ ÏÏÎÎÎÎÏÏÏÏÎ."
+"\n"
+"// Run the application\n"
+"let app = new GettingTheSignal ();\n"
+"app.application.run (ARGV);\n"
 
-#: C/treeview_simple_liststore.js.page:29(p)
+#: C/03_getting_the_signal.js.page:153(section/title)
+msgid "Flip the switch"
+msgstr "ÎÎÎÏÏÏÎÏÎ ÏÎÏ ÎÎÎÎÏÏÏÎ"
+
+#: C/03_getting_the_signal.js.page:154(section/p)
 msgid ""
-"CellRenderer widgets are \"packed\" into each TreeViewColumn, and contain "
-"the instructions for how to display each individual \"cell\", or item from "
-"the ListStore. There are multiple different types, including the "
-"CellRendererText used here and the CellRendererPixbuf, which displays a "
-"picture (\"pixel buffer\")."
+"Buttons aren't the only input widgets in our Gtk+ toolbox. We can also use "
+"switches, like the one in this example. Switches don't have a label "
+"property, so we have to create a separate Label that says what it does to go "
+"next to it."
 msgstr ""
-"ÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ CellRenderer \"ÏÎÎÎÏÎÏÎÎÏÎÎ\" ÏÎ ÎÎÎÎ TreeViewColumn "
-"ÎÎÎ ÏÎÏÎÎÏÎÏÎ ÏÎÏ ÎÎÎÎÎÎÏ ÏÏÏ ÎÎ ÎÎÏÎÎÎÏÎÏÎ ÎÎÎÎ ÎÎÏÏÏÎÏÏÏ \"ÎÎÎÎ\" Î "
-"ÏÏÎÎÏÎÎÎ ÎÏÏ ÏÎ ListStore. ÎÏÎÏÏÎÏÎ ÏÎÎÎÎÎ ÎÎÎÏÎÏÎÏÎÎÎÎ ÏÏÏÎÎ, "
-"ÏÏÎÏÎÏÎÎÎÎÎÎÎÏÎÎÎÎÏ ÏÎÏ CellRendererText ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÎÎÏ ÎÎÎ ÏÎÏ "
-"CellRendererPixbuf, ÏÎÏ ÎÎÏÎÎÎÎÎÎ ÎÎÎ ÎÎÎÏÎÎ \"ÎÎÎÎÎÎÎÏÎ ÎÎÎÎÎ "
-"ÎÎÎÎÎÎÏÏÎÎÏÎÎÎÏ\")."
+"ÎÎ ÎÎÏÎÏÎÎ ÎÎÎ ÎÎÎÎÎ ÏÎ ÎÏÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÏÏÎÎÏ ÏÏÎÎ ÎÏÎÎÎÎÎÎÎÎÎÎ ÎÎÏ "
+"Gtk+. ÎÏÎÏÎÏÎÎ ÎÏÎÏÎÏ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÎÎÎÏÏÏÎÏ, ÏÏÏÏ ÎÏÏÏÎ ÏÎ ÏÎ "
+"ÏÏÎÎÎÎÏÎÎÎÎÎ ÏÎÏÎÎÎÎÎÎÎ. ÎÎ ÎÎÎÎÏÏÏÎÏ ÎÎÎ ÎÏÎÏÎ ÎÎÎ ÎÎÎÏÏÎÏÎ ÎÏÎÎÎÏÎÏ, ÎÏÏÎ "
+"ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ ÎÎÎ ÎÎÏÏÏÎÏÏÎ ÎÏÎÎÎÏÎ ÏÎÏ ÎÎÎÎ ÏÎ ÎÎÎÎÎ ÎÎÎ ÎÎ ÏÎÎÎ "
+"ÎÎÏÎÎ ÏÎÏ."
 
-#: C/treeview_simple_liststore.js.page:31(p)
+#: C/03_getting_the_signal.js.page:158(section/p)
 msgid ""
-"Finally, we're going to use an object called a TreeIter, which isn't a "
-"widget so much as an invisible cursor which points to a (horizontal) row in "
-"the ListStore. Whenever you click on a name in the phonebook, for instance, "
-"we create a TreeIter pointing to the row that's selected, and then use that "
-"to tell the ListStore which entry we want the Label to show more information "
-"about."
+"A Switch has two positions, Off and On. When a Switch is turned on, its text "
+"and background color change, so you can tell which position it's in."
 msgstr ""
-"ÎÎÎÎÎÎ, ÏÏÏÎÎÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÎÎ ÎÎÏÎÎÎÎÎÎÎÎ ÏÎÏ ÎÎÎÎÏÎÎ TreeIter, "
-"ÏÎÏ ÎÎÎ ÎÎÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÏÏÏÎ ÏÎÎÏ ÏÏÎ ÎÎÎÏ ÎÏÏÎÏÎÏ ÎÏÎÎÎÎÏ ÏÎÏ "
-"ÎÎÎÏÎÎÎ ÏÎ ÎÎÎ (ÎÏÎÎÏÎÏÎÎ) ÎÏÎÎÎÎ ÏÏÎ ListStore. ÎÏÎÏÎÎÎÏÎÏÎ ÏÎÏÎÏÎ ÏÎ ÎÎÎ "
-"ÏÎÎÎÎ ÏÏÎÎ ÏÎÎÎÏÏÎÎÎÏ ÎÎÏÎÎÎÎÎ, ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ, ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ TreeIter "
-"ÏÎÏ ÎÎÎÏÎÎÎ ÏÎ ÎÏÎÎÎÎ ÏÎÏ ÎÏÎÎÎÏÏÎÎÎ ÎÎÎ ÎÏÎÎÏÎ ÏÏÎÏÎÎÎÏÎÎÎÏÏÎ ÏÎ ÎÎÎ ÎÎ "
-"ÏÎÎÏÎ ÏÏÎ ListStore ÏÎÎÎÏ ÎÎÎÏÎÏÎÏ ÎÎÎÎÏÎÎ Î ÎÏÎÎÎÏÎ ÎÎ ÎÎÏÎÎÎÏÎÎ "
-"ÏÎÏÎÏÏÏÏÎÏÎÏ ÏÎÎÏÎÏÎÏÎÎÏ ÏÏÎÏÎÎÎ."
+"ÎÎÎÏ ÎÎÎÎÏÏÏÎÏ ÎÏÎÎ ÎÏÎ ÎÎÏÎÎÏ, ÎÎÎÎÎÏÎÏ ÎÎÎ ÎÎÎÏÎÏ. ÎÏÎÎ ÎÎÎÏ ÎÎÎÎÏÏÏÎÏ "
+"ÎÎÎÏÎÎÏÎÎÎÎÏÎÎ ÏÎ ÎÎÎÎÎÎÎ ÏÎÏ ÎÎÎ ÏÎ ÏÏÏÎÎ ÏÎÏÎÏÎÎÎÎÎÏ ÎÎÎÎÎÎÏÎ ÎÎÎ ÎÏÎÏÎÎÏÎ "
+"ÎÎ ÏÎÎÏÎ ÏÎ ÏÎÎÎ ÎÎÏÎ ÎÎÎÎÎ."
 
-#: C/treeview_simple_liststore.js.page:32(p)
+#: C/03_getting_the_signal.js.page:162(section/p)
 msgid ""
-"The TreeView is probably the most complicated Gtk widget, because of how "
-"many parts it has and how they all have to work together. Give yourself time "
-"to learn how it works and experiment with it, or try something easier first "
-"if you're having trouble."
+"You may have seen Switches like these in GNOME's accessibility menu, which "
+"let you turn features like large text and the on-screen keyboard on and off. "
+"In this case, the Switch controls our imaginary cookie dispenser. If the "
+"Switch is turned on, you can get cookies by clicking the \"Get a cookie\" "
+"Button. If it's turned off, clicking the Button won't do anything."
 msgstr ""
-"Î TreeView ÎÎÎÎÎ ÏÏÎÏÎÎÏÏ ÏÎ ÏÎÎ ÏÎÏÎÏÎÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ Gtk, ÎÏÎÏ ÏÏÎ "
-"ÏÎÎÎÏÎ ÎÎÏÏÎ ÏÎÏ ÎÏÎÎ ÎÎÎ ÏÎÏ ÏÏÏÏÎÏ ÏÏÎÎÏÎÎÏÎÎÏ ÏÎÏÏ. ÎÏÏÏÎ ÏÏÎÎ ÎÎÏÏÏ ÏÎÏ "
-"ÏÎÎ ÏÏÏÎÎ ÎÎ ÎÎÎÎÏÎ ÏÏÏ ÎÎÏÎÎÏÎÎ ÎÎÎ ÏÎÎÏÎÎÎÏÎÏÏÎÎÏÎ ÎÎÎÎ ÏÎÏ, Î ÎÎÎÎÎÎÏÏÎ "
-"ÏÏÏÏÎ ÎÎÏÎ ÎÏÎÎÎÏÏÎÏÎ ÎÎÎ ÎÏÎÏÎ ÏÏÏÎÎÎÎÎ."
+"ÎÏÎÏÎÎÏÎ ÎÎ ÎÏÎÏÎ ÎÎÎ ÎÎÎÎÏÏÏÎÏ ÏÏÏÏ ÎÏÏÎÏÏ ÏÏÎ ÎÎÎÎÏ ÏÏÏÏÎÎÏÎÏ ÏÎÏ GNOME, "
+"ÏÎÏ ÏÎÏ ÎÏÎÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎÎÏÎ ÎÎÏÏÎÏÎÎÏÎ ÏÏÏÏ ÎÎÎÎÎÎ ÎÎÎÎÎÎÎ ÎÎÎ ÏÎ "
+"ÏÎÎÎÏÏÎÎÏÎÎÎ ÎÎÏÎÎÏ ÎÎÎÏÎÏ ÎÎÎ ÎÎÎÎÎÏÎÏ. ÎÎ ÎÏÏÎÎ ÏÎÎ ÏÎÏÎÏÏÏÏÎ, Î ÎÎÎÎÏÏÏÎÏ "
+"ÎÎÎÎÏÎÎ ÏÎ ÏÎÎÏÎÏÏÎÎÏ ÎÎÏ ÎÎÏÎÎÎ ÎÏÎÏÎÏÏÏÎ. ÎÎÎ Î ÎÎÎÎÏÏÏÎÏ ÎÎÎÎÎ ÎÎÎÏÎÏÏ, "
+"ÎÏÎÏÎÎÏÎ ÎÎ ÏÎÏÎÏÎ ÎÏÎÏÎÏÏÎ ÏÎÏÏÎÏÎÏ ÏÏÎ ÎÎÏÎÏÎ \"Get a cookie\". ÎÎÎ ÎÎÎÎÎ "
+"ÎÎÎÎÎÏÎÏÏ, ÏÎÏÏÎÏÎÏ ÏÎ ÎÎÏÎÏÎ ÎÎÎ ÎÎ ÎÎÎÎÎ ÏÎÏÎÏÎ."
 
-#: C/treeview_simple_liststore.js.page:45(p) C/togglebutton.js.page:35(p)
-#: C/textview.js.page:44(p) C/switch.js.page:42(p) C/statusbar.js.page:35(p)
-#: C/spinbutton.js.page:38(p) C/scale.js.page:35(p)
-#: C/radiobutton.js.page:35(p) C/messagedialog.js.page:38(p)
-#: C/combobox.js.page:40(p) C/comboboxtext.js.page:36(p)
-#: C/checkbutton.js.page:35(p)
+#: C/03_getting_the_signal.js.page:163(note/p)
 msgid ""
-"These are the libraries we need to import for this application to run. "
-"Remember that the line which tells GNOME that we're using Gjs always needs "
-"to go at the start."
+"You can get to the accessibility menu by clicking on the outline of a human, "
+"near your name in the upper-right corner of the screen."
 msgstr ""
-"ÎÏÏÎÏ ÎÎÎÎÎ ÎÎ ÎÎÎÎÎÎÎÎÎÎÏ ÏÎÏ ÏÏÎÎÎÎÏÎÎÏÏÎ ÎÎ ÎÎÏÎÎÎÏÎÎ ÎÏÏÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ "
-"ÎÎÎ ÎÎ ÎÎÏÎÎÎÏÏÎÎ. ÎÎ ÎÏÎÏÏÎÏÏÎ ÏÏÎ Î ÎÏÎÎÎÎ ÏÎÏ ÎÎÎÎ ÏÏÎ GNOME ÏÏÎ "
-"ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ Gjs ÏÏÎÎÎÎÎÏÎÎ ÏÎÎÏÎÏÎ ÎÎ ÏÎÎÎ ÏÏÎÎ ÎÏÏÎ."
+"ÎÏÎÏÎÎÏÎ ÎÎ ÏÎÏÎÏÎ ÏÎ ÎÎÎÎÏ ÏÏÏÏÎÎÏÎÏ ÏÎÏÏÎÏÎÏ ÏÏÎ ÏÎÏÎÎÏÎÎÎÎ ÎÎÏÏ ÎÎÎÏÏÏÎÏ, "
+"ÎÎÎÏÎ ÏÏÎ ÏÎÎÎÎ ÏÎÏ ÏÏÎÎ ÏÎÎÏ ÎÎÎÎÎ ÎÏÎÎÎ ÏÎÏ ÎÎÏÎÎÏ."
 
-#: C/treeview_simple_liststore.js.page:49(title)
-#: C/togglebutton.js.page:39(title) C/textview.js.page:48(title)
-#: C/switch.js.page:46(title) C/statusbar.js.page:39(title)
-#: C/spinbutton.js.page:42(title) C/scale.js.page:39(title)
-#: C/radiobutton.js.page:39(title) C/messagedialog.js.page:42(title)
-#: C/combobox.js.page:44(title) C/comboboxtext.js.page:40(title)
-#: C/checkbutton.js.page:39(title)
-msgid "Creating the application window"
-msgstr "ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ ÏÎÏÎÎÏÏÎÏ ÎÏÎÏÎÎÎÎÏ"
+#: C/03_getting_the_signal.js.page:164(section/p)
+msgid "Here's how we create the Switch:"
+msgstr "ÎÎ ÏÏÏ ÎÎÎÎÎÏÏÎÎÏÎÎ ÏÎÎ ÎÎÎÎÏÏÏÎ:"
 
-#: C/treeview_simple_liststore.js.page:75(p)
+#: C/03_getting_the_signal.js.page:165(section/code)
+#, no-wrap
 msgid ""
-"All the code for this sample goes in the TreeViewExample class. The above "
-"code creates a <link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/";
-"Gtk.Application.html\">Gtk.Application</link> for our widgets and window to "
-"go in."
+"\n"
+"        // Create the switch that controls whether or not you can win\n"
+"        this._cookieSwitch = new Gtk.Switch ();\n"
 msgstr ""
-"ÎÎÎÏ Î ÎÏÎÎÎÎÏ ÎÎÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÏÎÎÎÎÎÎÎ ÏÏÎÎ ÎÎÎÏÎ TreeViewExample. Î "
-"ÏÎÏÎÏÎÎÏ ÎÏÎÎÎÎÏ ÎÎÎÎÎÏÏÎÎÎ ÎÎÎ <link href=\"http://www.roojs.com/seed/";
-"gir-1.2-gtk-3.0/gjs/Gtk.Application.html\">Gtk.Application</link> ÎÎÎ ÎÎ "
-"ÎÏÎÏÎ ÎÎÏÎ ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÏ ÎÎÎ ÏÎ ÏÎÏÎÎÏÏÎ."
+"\n"
+"        // Create the switch that controls whether or not you can win\n"
+"        this._cookieSwitch = new Gtk.Switch ();\n"
 
-#: C/treeview_simple_liststore.js.page:89(p) C/togglebutton.js.page:80(p)
-#: C/textview.js.page:87(p) C/switch.js.page:87(p) C/spinbutton.js.page:80(p)
-#: C/scale.js.page:77(p) C/radiobutton.js.page:78(p)
-#: C/messagedialog.js.page:83(p) C/combobox.js.page:82(p)
-#: C/comboboxtext.js.page:78(p)
+#: C/03_getting_the_signal.js.page:170(section/p)
 msgid ""
-"The _buildUI function is where we put all the code to create the "
-"application's user interface. The first step is creating a new <link xref="
-"\"GtkApplicationWindow.js\">Gtk.ApplicationWindow</link> to put all our "
-"widgets into."
+"We don't actually need to connect the Switch to anything. All we need to do "
+"is write an if statement in our _getACookie function, to check to see if the "
+"Switch is turned on. If we wanted to make something happen as soon as you "
+"flip the Switch, though, we would connect its notify::active signal, like so:"
 msgstr ""
-"Î ÏÏÎÎÏÏÎÏÎ _buildUI ÎÎÎÎÎ ÎÎÎÎ ÏÎÏ ÎÎÎÎÏÎÎ ÏÎÎÎ ÏÎÎ ÎÏÎÎÎÎ ÎÎÎ ÎÎ "
-"ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ ÏÎ ÎÎÎÏÎÏÎ ÏÏÎÏÏÎ ÏÎÏ ÎÏÎÏÎÎÎÎÏ. ÎÎ ÏÏÏÏÎ ÎÎÎÎ ÎÎÎÎÎÏÏÎÎÎ ÎÎÎ "
-"ÎÎÎ <link xref=\"GtkApplicationWindow.js\">Gtk.ApplicationWindow</link> ÎÎÎ "
-"ÎÎ ÎÎÎÎÏÎÎ ÎÎÏÎ ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÏ."
-
-#: C/treeview_simple_liststore.js.page:93(title) C/combobox.js.page:86(title)
-msgid "Creating the ListStore"
-msgstr "ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ ListStore"
+"ÎÎÎ ÏÏÎÎÎÎÏÎÎÏÏÎ ÏÏÎÎÎÎÏÎ ÎÎ ÏÏÎÎÎÏÎÏÎÎ ÏÎÎ ÎÎÎÎÏÏÏÎ ÎÎ ÎÎÏÎ. ÎÏÏÏ ÏÎÏ "
+"ÏÏÎÎÎÎÏÎÎÏÏÎ ÎÎ ÎÎÎÎÏÎÎ ÎÎÎÎÎ ÎÎ ÎÏÎÏÎÏÎÎ ÎÎÎ ÏÏÏÏÎÏÎ if ÏÏÎ ÏÏÎÎÏÏÎÏÎ ÎÎÏ "
+"_getACookie, ÎÎÎ ÎÎ ÎÎÎÎÎÎÏÎÎ ÎÎ ÎÎÏÎÎ ÎÎÎ Î ÎÎÎÎÏÏÏÎÏ ÎÎÎÎÎ ÎÎÎÏÎÏÏ. ÎÎÎ ÎÎ "
+"ÎÎÎÎÎÎ ÎÎ ÎÎÎÎÏÎÎ ÎÎÏÎ ÎÎ ÏÏÎÎÎÎ ÎÏÎÎÏ ÎÎÏÎÏÏÏÎÏÎÏÎ ÏÎÎ ÎÎÎÎÏÏÏÎ, ÏÎÏÏ, ÎÎ "
+"ÏÏÎÎÎÎÎÎ ÏÎ ÏÎÎÎ ÏÎÏ notify::active, ÏÏ ÎÎÎÏ:"
 
-#: C/treeview_simple_liststore.js.page:103(p)
+#: C/03_getting_the_signal.js.page:171(section/code)
+#, no-wrap
 msgid ""
-"We first create the ListStore like we would any widget. Then we call its "
-"set_column_types method, and pass it an array of GObject data types. (We "
-"could have put the types all on one line, but here we are breaking them up "
-"to make it easier to read.)"
-msgstr ""
-"ÎÎÎÎÎÏÏÎÎÏÎÎ ÏÏÏÏÎ ÏÎ ListStore ÏÏÏÏ ÎÎ ÎÎÎÎÎÎ ÎÎ ÎÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ. "
-"ÎÏÎÎÏÎ ÎÎÎÎÏÎÎ ÏÎ ÎÎÎÎÎÎ ÏÎÏ set_column_types ÎÎÎ ÏÎÎ ÏÎÏÎÎÎÎ ÏÎ ÎÎÎÎ ÏÎÎÎÎÎ "
-"ÏÏÏÎÏ ÎÎÎÎÎÎÎÏÎ GObject. (ÎÎ ÎÏÎÏÎÏÏÎÎÎ ÎÎ ÎÎÎÎÏÎÎ ÏÎÎÏÏ ÏÎÏÏ ÏÏÏÎÏÏ ÏÎ ÎÎÎ "
-"ÎÏÎÎÎÎ, ÎÎÎÎ ÎÎÏ ÏÎ ÎÎÎÎÏÎÏÎÎ ÎÎÎ ÎÎÎÏÎÏÎÏÎÏÎ ÏÎÏ ÎÎÎÎÎÏÏÎÏ.)"
-
-#: C/treeview_simple_liststore.js.page:104(p)
-msgid "The GObject data types you can use include:"
+"\n"
+"        // Connect the switch to the function that handles it\n"
+"        this._cookieSwitch.connect ('notify::active', Lang.bind (this, this._cookieDispenser));\n"
 msgstr ""
-"ÎÎ ÏÏÏÎÎ ÎÎÎÎÎÎÎÏÎ GObject ÏÎÏ ÎÏÎÏÎÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÏÎÏÎÎÎÎÎÎÎÎÏÎ:"
-
-#: C/treeview_simple_liststore.js.page:106(p) C/combobox.js.page:97(p)
-msgid "<file>GObject.TYPE_BOOLEAN</file> -- True or false"
-msgstr "<file>GObject.TYPE_BOOLEAN</file> -- ÎÎÎÎÎÏ Î ÏÎÏÎÎÏ"
+"\n"
+"        // Connect the switch to the function that handles it\n"
+"        this._cookieSwitch.connect ('notify::active', Lang.bind (this, this._cookieDispenser));\n"
 
-#: C/treeview_simple_liststore.js.page:107(p) C/combobox.js.page:98(p)
+#: C/03_getting_the_signal.js.page:176(section/p)
 msgid ""
-"<file>GObject.TYPE_FLOAT</file> -- A floating point number (one with a "
-"decimal point)"
+"A Switch is set to the off position by default. If we wanted the Switch to "
+"start out turned on, we would set the value of its active property to true "
+"when we create it."
 msgstr ""
-"<file>GObject.TYPE_FLOAT</file> -- ÎÎÎÏ ÎÏÎÎÎÏÏ ÎÎÎÎÏÎÏ ÏÏÎÎÎÎÏÏÎÎÎÏ (ÎÎÎÏ "
-"ÎÎ ÎÎÎÎÎÎÎÎ ÏÏÎÎÎÎÏÏÎÎÎ)"
+"ÎÎÎÏ ÎÎÎÎÏÏÏÎÏ ÎÏÎÎÎÏÎÎ ÏÏÎÎ ÎÎÎÎÎÏÎÎ ÎÎÏÎ ÎÏÏ ÏÏÎÎÏÎÎÎÎÎ. ÎÎÎ ÎÎÎÎÏÎÎ Î "
+"ÎÎÎÎÏÏÏÎÏ ÎÎ ÎÎÎÎÎÎ ÎÎÎÏÎÏÏ, ÎÎ ÎÏÎÎÎÎÎ ÏÎÎ ÏÎÎÎ ÏÎÏ ÎÎÎÏÎÎÏ ÎÎÎÏÏÎÏÎÏ ÏÎ "
+"ÎÎÎÎÎ ÏÏÎÎ ÏÎ ÎÎÎÎÎÏÏÎÎÏÎÎ."
 
-#: C/treeview_simple_liststore.js.page:108(p) C/combobox.js.page:99(p)
-msgid "<file>GObject.TYPE_STRING</file> -- A string of letters and numbers"
+#: C/03_getting_the_signal.js.page:177(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"        this._cookieSwitch = new Gtk.Switch ({ active: true });\n"
 msgstr ""
-"<file>GObject.TYPE_STRING</file> -- ÎÎÎ ÏÏÎÎÎÎÎÏÎÎÏÎ ÎÏÎÎÎÎÏÏÎ ÎÎÎ ÎÏÎÎÎÏÎ"
-
-#: C/treeview_simple_liststore.js.page:109(p)
-msgid "<file>gtk.gdk.Pixbuf</file> -- A picture"
-msgstr "<file>gtk.gdk.Pixbuf</file> -- ÎÎÎ ÎÎÎÏÎÎ"
+"\n"
+"        this._cookieSwitch = new Gtk.Switch ({ active: true });\n"
 
-#: C/treeview_simple_liststore.js.page:111(p)
+#: C/03_getting_the_signal.js.page:181(section/p)
 msgid ""
-"In this case, we're making a ListStore of four columns, each one containing "
-"string values."
+"Let's just create it normally, though, and then create the Label that goes "
+"with it. We want the Switch and the Label to be kept right next to each "
+"other, so we'll create a Grid just for them, then put that Grid in our "
+"larger Grid that holds all the widgets inside it. Here's what the code looks "
+"like to create all that:"
 msgstr ""
-"ÎÎ ÎÏÏÎÎ ÏÎÎ ÏÎÏÎÏÏÏÏÎ, ÎÎÎÎÏÎÎ ÎÎÎ ListStore ÏÏÎ ÏÎÏÏÎÏÏÎ ÏÏÎÎÏÎ, ÎÎÎÎÎÎÎ "
-"ÏÎÏÎÎÏÎÎ ÏÎÎÎÏ ÏÏÎÎÎÎÎÏÎÎÏÎÏ."
+"ÎÏ ÏÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ ÎÎÎÎÎÎÎÎ, ÏÎÏÏ, ÎÎÎ ÎÏÎÎÏÎ ÎÏ ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ ÏÎÎ "
+"ÎÏÎÎÎÏÎ ÏÎÏ ÏÎÎÎÎÎÎÎ ÎÎÎÎ ÏÎÏ. ÎÎÎÎÏÎÎ Î ÎÎÎÎÏÏÏÎÏ ÎÎÎ Î ÎÏÎÎÎÏÎ ÎÎ "
+"ÎÏÎÏÎÎÏÎÏÎÎ ÎÎÏÎÎÏÏ ÎÎÏÎÎ ÎÎÏÎÎÏ ÏÎÏÏ, ÎÏÏÎ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ ÎÎÎ ÏÎÎÎÎÎ "
+"ÎÏÎÎ ÎÎÎ ÎÏÏÎÏÏ, ÎÏÎÎÏÎ ÎÎ ÎÎÎÎÏÎÎ ÎÏÏÏ ÏÎ ÏÎÎÎÎÎ ÏÏÎ ÎÎÎÎÎÏÏÎÏÏ ÎÎÏ ÏÎÎÎÎÎ "
+"ÏÎÏ ÎÏÎÏÎ ÏÎÎ ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÏÎ ÏÎÏ. ÎÎ ÏÏÏ ÎÎ ÏÎÎÎÎÏÎÎ Î ÎÏÎÎÎÎÏ "
+"ÎÎÎ ÏÎ ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ:"
 
-#: C/treeview_simple_liststore.js.page:112(p) C/combobox.js.page:101(p)
+#: C/03_getting_the_signal.js.page:182(section/code)
+#, no-wrap
 msgid ""
-"You need to put the line <file>const GObject = imports.gi.GObject;</file> at "
-"the start of your application's code, like we did in this example, if you "
-"want to be able to use GObject types."
+"\n"
+"        // Create the switch that controls whether or not you can win\n"
+"        this._cookieSwitch = new Gtk.Switch ();\n"
+"\n"
+"        // Create the label to go with the switch\n"
+"        this._switchLabel = new Gtk.Label ({\n"
+"            label: \"Cookie dispenser\" });\n"
+"\n"
+"        // Create a grid for the switch and its label\n"
+"        this._switchGrid = new Gtk.Grid ({\n"
+"            halign: Gtk.Align.CENTER,\n"
+"            valign: Gtk.Align.CENTER });\n"
+"\n"
+"        // Put the switch and its label inside that grid\n"
+"        this._switchGrid.attach (this._switchLabel, 0, 0, 1, 1);\n"
+"        this._switchGrid.attach (this._cookieSwitch, 1, 0, 1, 1);\n"
 msgstr ""
-"ÎÏÎÎÎÎÎÏÎÎ ÎÎ ÎÎÎÎÏÎ ÏÎ ÎÏÎÎÎÎ <file>const GObject = imports.gi.GObject;</"
-"file> ÏÏÎÎ ÎÏÏÎ ÏÎÏ ÎÏÎÎÎÎ ÏÎÏ ÎÏÎÏÎÎÎÎ ÏÎÏ, ÏÏÏÏ ÎÎÎÎÎÎ ÏÎ ÎÏÏÏ ÏÎ "
-"ÏÎÏÎÎÎÎÎÎÎ, ÎÎÎ ÎÎÎÎÏÎ ÎÎ ÎÏÎÏÎÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÏÏÏÎÏÏ GObject."
+"\n"
+"        // Create the switch that controls whether or not you can win\n"
+"        this._cookieSwitch = new Gtk.Switch ();\n"
+"\n"
+"        // Create the label to go with the switch\n"
+"        this._switchLabel = new Gtk.Label ({\n"
+"            label: \"Cookie dispenser\" });\n"
+"\n"
+"        // Create a grid for the switch and its label\n"
+"        this._switchGrid = new Gtk.Grid ({\n"
+"            halign: Gtk.Align.CENTER,\n"
+"            valign: Gtk.Align.CENTER });\n"
+"\n"
+"        // Put the switch and its label inside that grid\n"
+"        this._switchGrid.attach (this._switchLabel, 0, 0, 1, 1);\n"
+"        this._switchGrid.attach (this._cookieSwitch, 1, 0, 1, 1);\n"
 
-#: C/treeview_simple_liststore.js.page:131(p)
+#: C/03_getting_the_signal.js.page:200(section/p)
+msgid "And now we arrange everything in the larger Grid like so."
+msgstr "ÎÎÎ ÏÏÏÎ ÏÎÎÏÎÏÎÎÎÏÎÎ ÏÎ ÎÎÎÎÏÎ ÏÏÎ ÎÎÎÎÎÏÏÎÏÎ ÏÎÎÎÎÎ ÎÏÏÎ."
+
+#: C/03_getting_the_signal.js.page:201(section/code)
+#, no-wrap
 msgid ""
-"Here we have the information to go in the ListStore. It's an array of "
-"objects, each one corresponding to a single entry in our phone book."
+"\n"
+"        // Put everything inside the grid\n"
+"        this._grid.attach (this._cookieButton, 0, 0, 1, 1);\n"
+"        this._grid.attach (this._switchGrid, 0, 1, 1, 1);\n"
+"        this._grid.attach (this._cookieLabel, 0, 2, 1, 1);\n"
 msgstr ""
-"ÎÎÏ ÎÏÎÏÎÎ ÏÎÎ ÏÎÎÏÎÏÎÏÎÎ ÎÎÏÎÎÎÏÎÏ ÏÏÎ ListStore. ÎÎÎÎÎ ÎÎÎÏ ÏÎÎÎÎÎÏ "
-"ÎÎÏÎÎÎÎÎÎÎÏÎ, ÏÎÏ ÎÎÎÎÎÎ ÎÎÏÎÏÏÎÎÏÎÎ ÏÎ ÎÎÎ ÎÎÎÎÎÎÎÎ ÎÎÎÏÎÏÎ ÏÏÎÎ ÏÎÎÎÏÏÎÎÎÏ "
-"ÎÎÏÎÎÎÎÎ."
+"\n"
+"        // Put everything inside the grid\n"
+"        this._grid.attach (this._cookieButton, 0, 0, 1, 1);\n"
+"        this._grid.attach (this._switchGrid, 0, 1, 1, 1);\n"
+"        this._grid.attach (this._cookieLabel, 0, 2, 1, 1);\n"
 
-#: C/treeview_simple_liststore.js.page:132(p)
+#: C/03_getting_the_signal.js.page:208(section/p)
 msgid ""
-"Note that the TreeView in the screenshot doesn't actually show the data from "
-"the \"description\" properties. Instead, that information's shown in the "
-"Label beneath it, for whichever row that you click on. That's because the "
-"TreeView and ListStore are two separate things, and a TreeView can show all "
-"or part of a ListStore, and display what's in it in different ways. You can "
-"even have multiple widgets show things from the same ListStore, like the "
-"Label in our example or even a second TreeView."
+"Now we change the _getACookie function so that it checks to see if the "
+"cookie dispenser is turned on. We do that by using the Switch's get_active "
+"method. It returns true if the Switch is turned on, and false if the Switch "
+"is turned off."
 msgstr ""
-"ÎÎÎÎÎÏÏÏÎ ÏÏÎ Î TreeView ÏÏÎ ÏÏÎÎÎÎÏÏÏÏÎ ÎÎÎ ÎÎÏÎÎÎÎÎÎ ÏÏÎÎÎÎÏÎ ÏÎ ÎÎÎÎÎÎÎÎ "
-"ÎÏÏ ÏÎÏ ÎÎÎÏÏÎÏÎÏ \"description\". ÎÏÎ ÎÎÏÎ ÏÎÏ, ÎÏÏÎ Î ÏÎÎÏÎÏÎÏÎÎ "
-"ÎÎÏÎÎÎÎÎÏÎÎ ÏÏÎÎ ÎÏÎÎÎÏÎ ÎÏÏ ÎÎÏÏ ÏÎÏ, ÎÎÎ ÎÎÎÎ ÎÏÎÎÎÎ ÏÎÏ ÏÎÏÎÏÎ. ÎÏÏÏ "
-"ÏÏÎÎÎÎÎÎÎ ÎÏÎÎÎÎ Î TreeView ÎÎÎ Î ListStore ÎÎÎÎÎ ÎÏÎ ÎÎÏÏÏÎÏÏÎ ÏÏÎÎÎÎÏÎ ÎÎÎ "
-"ÎÎÎ TreeView ÎÏÎÏÎÎ ÎÎ ÎÎÏÎÎÎÏÎÎ ÏÎÎ Î ÎÎÏÎÏ ÏÎÏ ListStore ÎÎÎ ÏÏÎÎÎÎÎÎÎ ÏÎ "
-"ÎÎÎÎÎ ÏÎ ÎÏÏÎ ÎÎ ÎÎÎÏÎÏÎÏÎÎÎÏÏ ÏÏÏÏÎÏÏ. ÎÏÎÏÎÎÏÎ ÎÎÏÎÎ ÎÎ ÎÏÎÏÎ ÏÎÎÎÎÏÎÎ "
-"ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÏÎÏ ÎÎÏÎÎÎÎÎÏÎ ÏÏÎÎÎÎÏÎ ÎÏÏ ÏÎÎ ÎÎÎÎ ListStore, ÏÏÏÏ ÏÎÎ "
-"ÎÏÎÎÎÏÎ ÏÏÎ ÏÎÏÎÎÎÎÎÎÎ ÎÎÏ Î ÎÎÏÎÎ ÎÎÎ ÎÎÏÏÎÏÎ TreeView."
+"ÎÏÏÎ ÎÎÎÎÎÎÏÎÎ ÏÎ ÏÏÎÎÏÏÎÏÎ _getACookie ÎÏÏÎ ÏÏÏÎ ÎÎ ÎÎÎÎÏÎÎ ÎÎÎ Î ÏÎÏÎÎÎÏÎÏ "
+"ÏÎÏ ÎÏÎÏÎÏÏÎÏ ÎÎÎÎÎ ÎÎÎÏÎÏÏ. ÎÎ ÎÎÎÎÏÎÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ ÎÎÎÎÎÎ ÏÎÏ "
+"ÎÎÎÎÏÏÏÎ get_active. ÎÏÎÏÏÏÎÏÎÎ ÎÎÎÎÎÏ ÎÎÎ Î ÎÎÎÎÏÏÏÎÏ ÎÎÎÎÎ ÎÎÎÏÎÏÏ ÎÎÎ "
+"ÏÎÏÎÎÏ ÎÎÎ Î ÎÎÎÎÏÏÏÎÏ ÎÎÎÎÎ ÎÎÎÎÎÏÎÏÏ."
 
-#: C/treeview_simple_liststore.js.page:141(p)
+#: C/03_getting_the_signal.js.page:209(note/p)
 msgid ""
-"This <file>for</file> loop puts the strings from our phonebook into our "
-"ListStore in order. In order, we pass the ListStore's set method the iter "
-"that points to the correct row, an array which says which columns we want to "
-"set, and an array which contains the data we want to put into those columns."
+"When a method is used in an if statement like this, the code inside the if "
+"statement is executed if the method returns true."
 msgstr ""
-"ÎÏÏÏÏ Î ÎÏÏÏÎÏ <file>for</file> ÎÎÎÎÎ ÏÎÏ ÏÏÎÎÎÎÎÏÎÎÏÎÏ ÎÏÏ ÏÎÎ ÏÎÎÎÏÏÎÎÎÏ "
-"ÎÎÏÎÎÎÎÏ ÎÎÏ ÏÏÎ ListStore ÎÎÏ ÏÎ ÏÎÎÏÎ. ÎÎÎ ÎÎ ÏÎÏÎÏÎÏÎÎ ÏÎÎ ÎÎÎÎÎÎ ÎÏÎÏÎÎÏ "
-"ÏÎÏ ListStore ÏÏÎÎ ÎÏÎÎÎÎÎÏÎ ÏÎÏ ÎÎÎÏÎÎÎ ÏÏÎ ÏÏÏÏÎ ÎÏÎÎÎÎ, ÏÏÎÎÎÎÎÏÎÎ ÎÎÎÏ "
-"ÏÎÎÎÎÎÏ ÏÎÏ ÎÎÎÎ ÏÎÎÎÏ ÏÏÎÎÎÏ ÎÎÎÎÏÎÎ ÎÎ ÎÏÎÏÎÏÎÎ ÎÎÎ ÎÎÎÏ ÏÎÎÎÎÎÏ ÏÎÏ "
-"ÏÎÏÎÎÏÎÎ ÏÎ ÎÎÎÎÎÎÎÎ ÏÎÏ ÎÎÎÎÏÎÎ ÎÎ ÎÎÎÎÏÎÎ ÏÎ ÎÏÏÎÏ ÏÎÏ ÏÏÎÎÎÏ."
+"ÎÏÎÎ ÎÎÎ ÎÎÎÎÎÎÏ ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÏÎ ÎÎÎ ÎÎÎÏÏÎ if ÏÏÏÏ ÎÏÏÎ, Î ÎÏÎÎÎÎÏ ÎÎÏÎ "
+"ÏÏÎÎ ÏÏÏÏÎÏÎ if ÎÎÏÎÎÎÎÏÎÎ ÎÎÎ Î ÎÎÎÎÎÎÏ ÎÏÎÏÏÏÎÏÎÎ ÎÎÎÎÎÏ."
 
-#: C/treeview_simple_liststore.js.page:142(p)
+#: C/03_getting_the_signal.js.page:210(section/code)
+#, no-wrap
 msgid ""
-"A ListStore's <file>append</file> method adds a horizontal row onto it (it "
-"starts out with none), and returns a TreeIter pointing to that row like a "
-"cursor. So by passing <file>this._listStore.append()</file> to the ListStore "
-"as a property, we're creating a new row and telling the <file>set</file> "
-"method which row to set data for at the same time."
+"\n"
+"    _getACookie: function() {\n"
+"\n"
+"        // Is the cookie dispenser turned on?\n"
+"        if (this._cookieSwitch.get_active()) {\n"
+"\n"
+"            // Increase the number of cookies by 1 and update the label\n"
+"            cookies++;\n"
+"            this._cookieLabel.set_label (\"Number of cookies: \" + cookies);\n"
+"\n"
+"        }\n"
+"\n"
+"    }\n"
 msgstr ""
-"ÎÎÎ ÎÎÎÎÎÎÏ <file>append</file> ÏÎÏ ListStore ÏÏÎÏÎÎÏÎÎ ÎÎÎ ÎÏÎÎÏÎÏÎÎ ÎÏÎÎÎÎ "
-"ÏÎ ÎÏÏÎ (ÎÎÎÎÎÎ ÏÏÏÎÏ ÎÎÎÎÎ) ÎÎÎ ÎÏÎÏÏÏÎÏÎÎ ÎÎÎ TreeIter ÏÎÏ ÎÎÎÏÎÎÎ ÏÎ "
-"ÎÏÏÎÎ ÏÎ ÎÏÎÎÎÎ ÏÏÏÏ ÎÎÎÏ ÎÏÎÎÎÎÏ. ÎÏÏÎ ÏÎÏÎÏÎÏÎÏ ÏÎ <file>this._listStore."
-"append()</file> ÏÏÎ ListStore ÏÏ ÎÎÎ ÎÎÎÏÏÎÏÎ, ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ ÎÎÎ ÎÏÎÎÎÎ "
-"ÎÎÎ ÎÎÎÎ ÏÏÎ ÎÎÎÎÎÎ <file>set</file> ÏÎÎÎ ÎÏÎÎÎÎ ÎÎ ÎÏÎÏÎÎ ÏÎ ÎÎÎÎÎÎÎÎ "
-"ÏÎÏÏÏÏÏÎÎÎ."
+"\n"
+"    _getACookie: function() {\n"
+"\n"
+"        // Is the cookie dispenser turned on?\n"
+"        if (this._cookieSwitch.get_active()) {\n"
+"\n"
+"            // Increase the number of cookies by 1 and update the label\n"
+"            cookies++;\n"
+"            this._cookieLabel.set_label (\"Number of cookies: \" + cookies);\n"
+"\n"
+"        }\n"
+"\n"
+"    }\n"
 
-#: C/treeview_simple_liststore.js.page:147(title)
-msgid "Creating the TreeView"
-msgstr "ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ TreeView"
+#: C/03_getting_the_signal.js.page:228(section/title)
+msgid "Tuning the radio"
+msgstr "ÎÏÎÎÎÏÎ ÏÎÏ ÏÎÎÎÎÎÎÏÎÏÎÎÏ"
 
-#: C/treeview_simple_liststore.js.page:154(p)
+#: C/03_getting_the_signal.js.page:230(section/p)
 msgid ""
-"Here we create a basic TreeView widget, that expands both horizontally and "
-"vertically to use as much space as needed. We set it to use the ListStore we "
-"created as its \"model\", or the thing it'll show us stuff from."
+"Another type of input widget we can use is called the RadioButton. You "
+"create them in groups, and then only one RadioButton in a group can be "
+"selected at a time. They're called RadioButtons because they work like the "
+"channel preset button in old-style car radios. The radio could only be tuned "
+"to one station at a time, so whenever you pressed one button in, another "
+"would pop back out."
 msgstr ""
-"ÎÎÏ ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ ÎÎÏÎÎÏ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ TreeView, ÏÎÏ ÎÏÎÎÏÎÎÎÎÏÎÎ "
-"ÎÏÎÎÏÎÏÎÎ ÎÎÎ ÎÎÎÎÏÎ ÎÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÏÏÎ ÏÏÏÎ ÏÏÎÎÎÎÎÏÎÎ. ÎÎ ÎÏÎÎÎÏÎÎ "
-"ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÏÎ ListStore ÏÎÏ ÎÎÎÎÎÏÏÎÎÏÎÎÎ ÏÏ ÏÎ \"model\" ÏÎÏ, Î ÏÎ "
-"ÏÏÎÎÎÎ ÏÎÏ ÎÎ ÎÎÏ ÎÎÎÎÎÎ ÏÎ ÏÎÎÎÏ."
+"ÎÎÎÏ ÎÎÎÎÏ ÏÏÏÎÏ ÎÏÎÏÎÎÎÏ ÏÏÏÏÎÏÎÎÎÏ ÎÎÏÏÎÎÏ ÏÎÏ ÎÏÎÏÎÏÎÎ ÎÎ "
+"ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÎÎÎÏÎÎ ÏÎ RadioButton. ÎÎ ÎÎÎÎÎÏÏÎÎÎÏÎ ÏÎ ÎÎÎÎÎÏ ÎÎÎ "
+"ÎÏÎÎÏÎ ÎÏÎÎ ÎÎÎ RadioButton ÏÎ ÎÎÎ ÎÎÎÎÎ ÎÏÎÏÎÎ ÎÎ ÎÏÎÎÎÎÎÎ ÏÎ ÏÎÏÎ. "
+"ÎÎÎÎÎÏÎÎ RadioButtons ÎÏÎÎÎÎ ÎÎÏÎÎÏÎÏÎ ÏÏÏÏ ÏÎ ÎÎÏÎÏÎ ÏÏÎÎÏÎÎÎÎÎÏ ÎÎÎÎÎÎÎÏ "
+"ÏÎ ÏÎÎÎÎ ÏÎÎÎÏÏÏÎÎ ÎÏÏÎÎÎÎÎÏÎÏ. ÎÎ ÏÎÎÎÎÏÎÎÎÏÏÎ ÎÏÎÏÎÎ ÎÎ ÏÏÎÎÎÏÏÎÎ ÎÏÎÎ ÏÎ "
+"ÎÎÎ ÏÏÎÎÎÏ ÏÎ ÏÎÏÎ, ÎÏÏÎ ÏÏÎÏÎ ÏÎÏÎÏÎ ÎÎÎ ÎÎÏÎÏÎ, ÎÎÎ ÎÎÎÎ ÏÎÏÎÎÎÏÎÎ ÎÎÏ."
 
-#: C/treeview_simple_liststore.js.page:162(p)
+#: C/03_getting_the_signal.js.page:234(section/p)
 msgid ""
-"Now we create each of the vertical TreeViewColumns we'll see in the "
-"TreeView. The title for each one goes at the top, as you can see in the "
-"screenshot."
+"First off, let's change our ApplicationWindow's name and increase its "
+"border_width property, so that our widgets aren't packed in too tightly. The "
+"border_width is the number of pixels between any widget and the edge of the "
+"window."
 msgstr ""
-"ÎÏÏÎ ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎÎÎÎÎ ÎÏÏ ÏÎÏ ÎÎÎÎÏÎÏ TreeViewColumns ÏÎÏ ÎÎÎÏÎÏÎÎ ÏÏÎÎ "
-"TreeView. Î ÏÎÏÎÎÏ ÎÎÎ ÎÎÎÎÎÎÎ ÏÎÎÎÎÎÎÎ ÏÏÎÎ ÎÎÏÏÏÎ, ÏÏÏÏ ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÏÎ "
-"ÏÏÎ ÏÏÎÎÎÎÏÏÏÏÎ."
+"ÎÏÏÏÎ, ÎÏ ÎÎÎÎÎÎÏÎÎ ÏÎ ÏÎÎÎÎ ÏÎÏ ApplicationWindow ÎÎÏ ÎÎÎ ÎÏ ÎÏÎÎÏÎÏÎÎ ÏÎÎ "
+"ÎÎÎÏÏÎÏÎ ÏÎÏ border_width, ÎÏÏÎ ÏÏÏÎ ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÏ ÎÎ ÎÎÎ "
+"ÏÎÎÎÏÎÏÎÎÏÎÎ ÏÏÎÏÎÎÎÎÎÎ ÏÏÎÎÏÎ. ÎÎ border_width ÎÎÎÎÎ Î ÎÏÎÎÎÏÏ ÏÏÎ "
+"ÎÎÎÎÎÎÏÏÎÎÏÎÎÏÎ ÎÎÏÎÎÏ ÎÎÎÎ ÎÏÎÏÎÎÎÏ ÏÏÏÏÎÏÎÎÎÏ ÎÎÎ ÏÎÏ ÎÎÏÎÏ ÏÎÏ ÏÎÏÎÎÏÏÎÏ."
 
-#: C/treeview_simple_liststore.js.page:177(p)
+#: C/03_getting_the_signal.js.page:235(section/code)
+#, no-wrap
 msgid ""
-"Here we create the CellRenderers that we'll use to display the text from our "
-"ListStore, and pack them into the TreeViewColumns. Each CellRendererText is "
-"used for all the entries in that column. Our normal CellRendererText just "
-"creates plain text, while our bold one uses heavier-weight text. We put it "
-"into the first name column, and tell the other two to use copies of the "
-"normal one. The \"true\" used as the second parameter for the "
-"<file>pack_start</file> method tells it to expand the cells when possible, "
-"instead of keeping them compact."
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            default_height: 200,\n"
+"            default_width: 400,\n"
+"            border_width: 20,\n"
+"            title: \"Choose the one that says 'cookie'!\"});\n"
 msgstr ""
-"ÎÎÏ ÎÎÎÎÎÏÏÎÎÏÎÎ ÏÎÏÏ CellRenderers ÏÎÏ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÎÎ ÏÎÎ ÎÎÏÎÎÎÏÎ "
-"ÏÎÏ ÎÎÎÎÎÎÎÏ ÎÏÏ ÏÎ ListStore ÎÎÏ ÎÎÎ ÏÎÏÏ ÏÎÎÎÏÎÏÎÏÎÎ ÏÏÎÏ TreeViewColumns. "
-"ÎÎÎÎ CellRendererText ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÎÎÎ ÏÎÎÏ ÏÎÏ ÎÎÏÎÏÏÏÎÏÎÎÏ ÏÎ ÎÏÏÎÎ ÏÎ "
-"ÏÏÎÎÎ. ÎÎ ÎÎÎÎÎÎÎÏ ÎÎÏ CellRendererText ÎÏÎÎ ÎÎÎÎÎÏÏÎÎÎ ÎÏÎÏ ÎÎÎÎÎÎÎ, ÎÎÏ ÏÎ "
-"ÎÎÏÎÎÎ ÎÎÎÎÎÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎ ÎÎÎÎÎÎÎ ÎÎÏÏÏÎÏÎÏ ÏÎÏÎÏÏ. ÎÎ ÎÎÎÎÏÎÎ ÏÏÎ ÏÏÎÎÎ "
-"ÏÏÏÏÎÏ ÎÎÏÎÎÏÎÏ ÎÎÎ ÎÎÎÎ ÏÏÎ ÎÎÎÎ ÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÎÏÎÎÏÎÏÎ ÏÎÏ "
-"ÎÎÎÎÎÎÎÎÏ. ÎÎ \"ÎÎÎÎÎÏ\" ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÏÏ Î ÎÎÏÏÎÏÎ ÏÎÏÎÎÎÏÏÎÏ ÎÎÎ ÏÎ "
-"ÎÎÎÎÎÎ <file>pack_start</file> ÏÎÏ ÏÎÏ ÎÎÎÎ ÎÎ ÎÏÎÎÏÎÎÎÎÎ ÏÎ ÎÎÎÎÎ ÏÏÎÎ "
-"ÎÎÎÎÎ ÎÏÎÎÏÏ, ÎÎÏÎ ÎÎ ÏÎ ÎÏÎÏÎÏÎÎ ÏÏÎÏÎÎÎ."
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            default_height: 200,\n"
+"            default_width: 400,\n"
+"            border_width: 20,\n"
+"            title: \"Choose the one that says 'cookie'!\"});\n"
 
-#: C/treeview_simple_liststore.js.page:178(p)
+#: C/03_getting_the_signal.js.page:246(section/p)
 msgid ""
-"<link href=\"http://www.pygtk.org/docs/pygtk/pango-constants.html\";>Here is "
-"a list</link> of other text properties you can use. In order to use these "
-"Pango constants, make sure to put the line <file>const Pango = imports.gi."
-"Pango;</file> at the beginning of your code like we did."
+"After that, we create the RadioButtons. Remember how they're created in "
+"groups? The way we do that, is we set each new RadioButton's group property "
+"to the name of another RadioButton."
 msgstr ""
-"<link href=\"http://www.pygtk.org/docs/pygtk/pango-constants.html\";>ÎÎÏ "
-"ÎÎÎÎÎ ÎÎÎ ÎÎÏÏÎ</link> ÏÏÎ ÎÎÎÏÎ ÎÎÎÎÏÎÏÏÎ ÏÎÏ ÎÎÎÎÎÎÎÏ ÏÎÏ ÎÏÎÏÎÎÏÎ ÎÎ "
-"ÎÎÎÏÎ. ÎÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÎÏÏÎÏ ÏÎÏ ÏÏÎÎÎÏÎÏ Pango, ÎÎÎÎÎÏÎÎÎÏÎ ÏÏÎ "
-"ÎÎÎÎÏÎ ÏÎ ÎÏÎÎÎÎ <file>const Pango = imports.gi.Pango;</file> ÏÏÎÎ ÎÏÏÎ ÏÎÏ "
-"ÎÏÎÎÎÎ ÏÎÏ ÏÏÏÏ ÎÎÎÎÎÎ."
+"ÎÎÏÎ ÎÏÏ ÎÏÏÏ, ÎÎÎÎÎÏÏÎÎÏÎÎ ÏÎ RadioButtons. ÎÏÎÎÏÏÎ ÏÏÏ ÎÎÎÎÎÏÏÎÎÎÎÎÎÎ ÏÎ "
+"ÎÎÎÎÎÏ; Î ÏÏÏÏÎÏ ÏÎÏ ÏÎ ÎÎÎÎÏÎÎ, ÎÎÎÎÎ ÎÏÎÎÎÎÏÎÏ ÎÎÎÎ ÎÎÎ ÎÎÎÏÏÎÏÎ ÎÎÎÎÎÏ "
+"RadioButton ÏÏÎ ÏÎÎÎÎ ÎÎÏÏ ÎÎÎÎÏ RadioButton."
 
-#: C/treeview_simple_liststore.js.page:190(p)
+#: C/03_getting_the_signal.js.page:247(section/code)
+#, no-wrap
 msgid ""
-"Now that we've put the CellRenderers into the TreeViewColumns, we use the "
-"<file>add_attribute</file> method to tell each column to pull in text from "
-"the model our TreeView is set to use; in this case, the ListStore with the "
-"phonebook."
+"\n"
+"        // Create the radio buttons\n"
+"        this._cookieButton = new Gtk.RadioButton ({ label: \"Cookie\" });\n"
+"        this._notCookieOne = new Gtk.RadioButton ({ label: \"Not cookie\",\n"
+"            group: this._cookieButton });\n"
+"        this._notCookieTwo = new Gtk.RadioButton ({ label: \"Not cookie\",\n"
+"            group: this._cookieButton });\n"
 msgstr ""
-"ÎÏÏÎ ÏÎÏ ÎÏÎÏÎÎ ÎÎÎÎÎ ÏÎÏÏ CellRenderers ÏÏÎÏ TreeViewColumns, "
-"ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÏÎ ÎÎÎÎÎÎ <file>add_attribute</file> ÎÎÎ ÎÎ ÏÎÎ ÏÎ ÎÎÎÎ ÏÏÎÎÎ "
-"ÎÎ ÏÏÏÎÎ ÏÎ ÎÎÎÎÎÎÎ ÎÏÏ ÏÎ ÏÏÏÏÏÏÏ ÎÎÏ TreeView ÏÎÏ ÎÏÎÏÏÎÎÎ ÎÎÎ ÏÏÎÏÎÂ ÏÎ "
-"ÎÏÏÎÎ ÏÎÎ ÏÎÏÎÏÏÏÏÎ, ÏÎ ListStore ÎÎ ÏÎÎ ÏÎÎÎÏÏÎÎÎÏ ÎÎÏÎÎÎÎÎ."
+"\n"
+"        // Create the radio buttons\n"
+"        this._cookieButton = new Gtk.RadioButton ({ label: \"Cookie\" });\n"
+"        this._notCookieOne = new Gtk.RadioButton ({ label: \"Not cookie\",\n"
+"            group: this._cookieButton });\n"
+"        this._notCookieTwo = new Gtk.RadioButton ({ label: \"Not cookie\",\n"
+"            group: this._cookieButton });\n"
 
-#: C/treeview_simple_liststore.js.page:192(p)
+#: C/03_getting_the_signal.js.page:256(section/p)
 msgid ""
-"The first parameter is which CellRenderer we're going to use to render what "
-"we're pulling in."
+"Next, we create a Grid for the RadioButtons. Remember, we don't have to "
+"arrange things in Grids in the same order that we create them in."
 msgstr ""
-"Î ÏÏÏÏÎ ÏÎÏÎÎÎÏÏÎÏ ÎÎÎÎÎ ÏÏÎÎÎ CellRenderer ÏÏÏÎÎÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ "
-"ÎÎÎ ÎÏÏÎÎÏÎ ÏÎÏ ÏÎ ÏÏÏÎÏÎÎ."
+"ÎÏÏÎÏÎ, ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ ÏÎÎÎÎÎ ÎÎÎ ÏÎ RadioButtons. ÎÎ ÎÏÎÎÏÏÎ, ÎÎÎ ÎÎÎÎÏÏÎ "
+"ÏÏÎÏÏÎÏÎÎÎÎÎ ÎÎ ÏÎÎÏÎÏÎÎÎÏÎÏÎÎ ÏÎ ÏÏÎÎÎÎÏÎ ÏÎ ÏÎÎÎÎÎÏÎ ÎÎ ÏÎÎ ÎÎÎÎ ÏÎÎÏÎ ÏÎÏ "
+"ÏÎ ÎÎÎÎÎÏÏÎÎÏÎÎ."
 
-#: C/treeview_simple_liststore.js.page:193(p)
+#: C/03_getting_the_signal.js.page:257(section/code)
+#, no-wrap
 msgid ""
-"The second parameter is what kind of information we're going to pull in. In "
-"this case, we're letting it know that we're rendering text."
+"\n"
+"        // Arrange the radio buttons in their own grid\n"
+"        this._radioGrid = new Gtk.Grid ();\n"
+"        this._radioGrid.attach (this._notCookieOne, 0, 0, 1, 1);\n"
+"        this._radioGrid.attach (this._cookieButton, 0, 1, 1, 1);\n"
+"        this._radioGrid.attach (this._notCookieTwo, 0, 2, 1, 1);\n"
 msgstr ""
-"Î ÎÎÏÏÎÏÎ ÏÎÏÎÎÎÏÏÎÏ ÎÎÎÎÎ ÏÎ ÎÎÎÎÏ ÏÎÎÏÎÏÎÏÎÎÏ ÏÏÏÎÎÎÏÎÎ ÎÎ ÏÏÏÎÏÎÎ. ÎÎ "
-"ÎÏÏÎÎ ÏÎÎ ÏÎÏÎÏÏÏÏÎ, ÏÎÎ ÎÏÎÎÎÏÎÎ ÎÎ ÎÎÎÎÎ ÏÏÎ ÎÏÎÎÎÎÎÏÎÎ ÎÎÎÎÎÎÎ."
+"\n"
+"        // Arrange the radio buttons in their own grid\n"
+"        this._radioGrid = new Gtk.Grid ();\n"
+"        this._radioGrid.attach (this._notCookieOne, 0, 0, 1, 1);\n"
+"        this._radioGrid.attach (this._cookieButton, 0, 1, 1, 1);\n"
+"        this._radioGrid.attach (this._notCookieTwo, 0, 2, 1, 1);\n"
 
-#: C/treeview_simple_liststore.js.page:194(p)
+#: C/03_getting_the_signal.js.page:265(section/p)
 msgid ""
-"The third parameter is which of the ListStore's columns we're pulling that "
-"information in from."
+"Normally, the RadioButton that's selected by default is the one that's the "
+"name of the group. We want the first \"Not cookie\" button to be selected by "
+"default, though, so we use its set_active method."
 msgstr ""
-"Î ÏÏÎÏÎ ÏÎÏÎÎÎÏÏÎÏ ÎÎÎÎÎ ÏÎ ÏÎÎÎ ÏÏÎÎÎ ÏÎÏ ListStore ÏÏÏÎÏÎÎ ÎÏÏÎÎ ÏÎÎ "
-"ÏÎÎÏÎÏÎÏÎÎ."
+"ÎÎÎÎÎÎÎÎ, ÏÎ RadioButton ÏÎÏ ÎÏÎÎÎÏÏÎÎÎ ÎÏÏ ÏÏÎÎÏÎÎÎÎÎ ÎÎÎÎÎ ÎÏÏÏ ÏÎÏ "
+"ÎÎÏÎÎÏÎÏ ÏÎÏ ÎÎÎÎÎÏ. ÎÎÎÎÏÎÎ ÏÎ ÏÏÏÏÎ ÎÎÏÎÏÎ \"Not cookie\" ÎÎ ÎÏÎÎÎÎÎÏÎÎ "
+"ÎÏÏ ÏÏÎÎÏÎÎÎÎÎ, ÏÎÏÏ, ÎÏÏÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÏÎ ÎÎÎÎÎÏ ÏÎÏ set_active."
 
-#: C/treeview_simple_liststore.js.page:196(p)
-msgid ""
-"After we've set that up, we use the TreeView's <file>insert_column</file> "
-"method to put our TreeViewColumns inside it in order. Our TreeView is now "
-"complete."
+#: C/03_getting_the_signal.js.page:266(note/p)
+msgid "We could also set its active property to true when we create it."
 msgstr ""
-"ÎÏÎÏ ÏÎ ÏÏÎÎÎÏÎÏÎÎ, ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÏÎ ÎÎÎÎÎÎ <file>insert_column</file> ÏÎÏ "
-"TreeView ÎÎÎ ÎÎ ÎÎÎÎÏÎÎ ÏÎÏ TreeViewColumns ÎÎÏ ÎÎÏÎ ÏÎÏ ÏÎ ÏÎÎÏÎ. Î "
-"TreeView ÎÎÏ ÎÎÎÎÎ ÏÏÏÎ ÏÎÎÏÎÏ."
+"ÎÎ ÎÏÎÏÎÏÏÎÎÎ ÎÏÎÏÎÏ ÎÎ ÎÏÎÏÎÏÎÎ ÏÎÎ ÎÎÎÏÎÎ ÏÎÏ ÎÎÎÏÏÎÏÎ ÏÎ ÎÎÎÎÎÏ ÏÏÎÎ ÏÎ "
+"ÎÎÎÎÎÏÏÎÎÏÎÎ."
 
-#: C/treeview_simple_liststore.js.page:197(p)
+#: C/03_getting_the_signal.js.page:267(section/code)
+#, no-wrap
 msgid ""
-"Normally, you might want to use a loop to initialize your TreeView, but in "
-"this example we're spelling things out step by step for the sake of making "
-"it easier to understand."
+"\n"
+"        // Set the button that will be at the top to be active by default\n"
+"        this._notCookieOne.set_active (true);\n"
 msgstr ""
-"ÎÎÎÎÎÎÎÎ, ÎÎ ÎÏÎÏÎÏÏÎÏÎ ÎÎ ÎÎÎÎÏÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÎÎÎÎ ÎÏÏÏÎ ÎÎÎ "
-"ÎÏÏÎÎÎÏÎÎÎÏÎ ÏÎÎ TreeView ÏÎÏ, ÎÎÎÎ ÏÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÎÎÎÎÎÏÎÎ "
-"ÎÎÏÏÎÎÎÏÏÏ ÏÎ ÏÏÎÎÎÎÏÎ ÎÎÎÎ-ÎÎÎÎ ÎÎÎ ÎÎÎÏÎÏÎÏÎÏÎ ÏÎÏ ÎÎÏÎÎÏÎÏÎÏ."
+"\n"
+"        // Set the button that will be at the top to be active by default\n"
+"        this._notCookieOne.set_active (true);\n"
 
-#: C/treeview_simple_liststore.js.page:201(title)
-msgid "Building the rest of the UI"
-msgstr "ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ ÏÏÏÎÎÎÏÎÏ ÎÎÎÏÎÏÎÏ ÏÏÎÏÏÎ"
+#: C/03_getting_the_signal.js.page:272(section/p)
+msgid "Now we arrange everything in our main Grid like usual ..."
+msgstr "ÎÏÏÎ ÏÎÎÏÎÏÎÎÎÏÎÎ ÎÎÎÎÏÎ ÏÏÎ ÎÎÎÏ ÎÎÏ ÎÏÏÎÎ ÏÎÎÎÎÎ ÏÏÏÏ ÏÏÎÎÎÏÏ ..."
 
-#: C/treeview_simple_liststore.js.page:212(p)
+#: C/03_getting_the_signal.js.page:273(section/code)
+#, no-wrap
 msgid ""
-"The TreeView's <file>get_selection</file> method returns an object called a "
-"TreeSelection. A TreeSelection is like a TreeIter in that it's basically a "
-"cursor that points at a particular row, except that the one it points to is "
-"the one that's visibly highlighted as selected."
+"\n"
+"        // Put everything inside the grid\n"
+"        this._grid.attach (this._radioGrid, 0, 0, 1, 1);\n"
+"        this._grid.attach (this._cookieButton, 0, 1, 1, 1);\n"
+"        this._grid.attach (this._cookieLabel, 0, 2, 1, 1);\n"
 msgstr ""
-"Î ÎÎÎÎÎÎÏ <file>get_selection</file> ÏÎÏ TreeView ÎÏÎÏÏÏÎÏÎÎ ÎÎÎ ÎÎÏÎÎÎÎÎÎÎÎ "
-"ÏÎÏ ÎÎÎÎÏÎÎ TreeSelection. ÎÎÎ TreeSelection ÎÎÎÎÎ ÏÏÏÏ ÎÎÎ TreeIter ÏÏÎ ÏÏÎ "
-"ÎÎÎÎÎ ÎÎÏÎÎÎ ÎÎÎÏ ÎÏÎÎÎÎÏ ÏÎÏ ÎÎÎÏÎÎÎ ÏÎ ÎÎÎ ÏÏÎÎÎÎÏÎÎÎÎÎ ÎÏÎÎÎÎ, ÎÎÏÏÏ ÎÏÏ "
-"ÏÎ ÏÏÎ ÎÏÏÏ ÏÎÏ ÎÎÎÏÎÎÎ ÎÎÎÎÎ ÎÏÏÏ ÏÎÏ ÎÎÎÎÎ ÎÏÎÏÎ ÎÏÎÏÎÎÎÏÎÎÎÎ ÎÎÎÏÏ "
-"ÎÏÎÎÎÏÏÎÎÎ."
+"\n"
+"        // Put everything inside the grid\n"
+"        this._grid.attach (this._radioGrid, 0, 0, 1, 1);\n"
+"        this._grid.attach (this._cookieButton, 0, 1, 1, 1);\n"
+"        this._grid.attach (this._cookieLabel, 0, 2, 1, 1);\n"
 
-#: C/treeview_simple_liststore.js.page:213(p)
+#: C/03_getting_the_signal.js.page:280(section/p)
 msgid ""
-"After we get the TreeSelection that goes with our TreeView, we ask it to "
-"tell us when it changes which row it's pointing to. We do this by connecting "
-"its <file>changed</file> signal to the _onSelectionChanged function we "
-"wrote. This function changes the text displayed by the Label we just made."
+"And then we change our _getACookie function to test to see if the cookie "
+"button is the one that's selected."
 msgstr ""
-"ÎÏÎÏ ÏÎÏÎÏÎÎ ÏÎÎ TreeSelection ÏÎÏ ÏÎÎÎÎÎÎÎ ÎÎ ÏÎÎ TreeView ÎÎÏ, ÏÎÏ ÎÎÏÎÎÎ "
-"ÎÎ ÎÎÏ ÏÎÎ ÏÏÎÎ ÎÎÎÎÎÎÎ ÏÎ ÏÎÎÎ ÎÏÎÎÎÎ ÎÎÎÏÎÎÎ. ÎÎ ÎÎÎÎÏÎÎ ÏÏÎÎÎÎÎÏÎÏ ÏÎ "
-"ÏÎÎÎ ÏÎÏ <file>changed</file> ÏÏÎ ÏÏÎÎÏÏÎÏÎ _onSelectionChanged ÏÎÏ ÎÏÎÏÎÎÎ. "
-"ÎÏÏÎ Î ÏÏÎÎÏÏÎÏÎ ÎÎÎÎÎÎÎ ÏÎ ÎÎÏÎÎÎÎÏÎÎÎÎ ÎÎÎÎÎÎÎ ÎÎ ÏÎÎ ÎÏÎÎÎÏÎ ÏÎÏ ÎÏÎÎÏ "
-"ÎÎÎÎÎÎ."
+"ÎÎÎ ÎÏÎÎÏÎ ÎÎÎÎÎÎÏÎÎ ÏÎ ÏÏÎÎÏÏÎÏÎ ÎÎÏ _getACookie ÎÎÎ ÎÎ ÎÎÎÎÎÎÏÎÎ ÎÎÎ ÏÎ "
+"ÎÎÏÎÏÎ ÎÏÎÏÎÏÏÎ ÎÎÎÎÎ ÎÏÏÏ ÏÎÏ ÎÏÎÎÎÏÏÎÎÎ."
 
-#: C/treeview_simple_liststore.js.page:230(p)
+#: C/03_getting_the_signal.js.page:281(section/code)
+#, no-wrap
 msgid ""
-"After we've gotten that out of the way, we create a <link xref=\"grid.js"
-"\">Grid</link> to put everything in, then add it to our window and tell the "
-"window to show itself and its contents."
+"\n"
+"    _getACookie: function() {\n"
+"\n"
+"        // Did you select \"cookie\" instead of \"not cookie\"?\n"
+"        if (this._cookieButton.get_active()) {\n"
+"\n"
+"            // Increase the number of cookies by 1 and update the label\n"
+"            cookies++;\n"
+"            this._cookieLabel.set_label (\"Number of cookies: \" + cookies);\n"
+"\n"
+"        }\n"
+"\n"
+"    }\n"
 msgstr ""
-"ÎÏÎÏ ÏÎ ÎÏÎÏÎÎ ÎÎÎÎÎÎ ÎÎÏÏÏ, ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ <link xref=\"grid.js\">ÏÎÎÎÎÎ</"
-"link> ÎÎÎ ÎÎ ÏÎ ÎÎÎÎÏÎÎ ÏÎÎ ÎÎÏÎ, ÎÏÎÎÏÎ ÏÎ ÏÏÎÏÎÎÏÎÏÎÎ ÏÏÎ ÏÎÏÎÎÏÏÏ ÎÎÏ ÎÎÎ "
-"ÎÎÎÎ ÏÏÎ ÏÎÏÎÎÏÏÎ ÎÎ ÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÎÏÏÏÎ ÏÎÏ ÎÎÎ ÏÎ ÏÎÏÎÎÏÏÎÎÎÎ ÏÎÏ."
+"\n"
+"    _getACookie: function() {\n"
+"\n"
+"        // Did you select \"cookie\" instead of \"not cookie\"?\n"
+"        if (this._cookieButton.get_active()) {\n"
+"\n"
+"            // Increase the number of cookies by 1 and update the label\n"
+"            cookies++;\n"
+"            this._cookieLabel.set_label (\"Number of cookies: \" + cookies);\n"
+"\n"
+"        }\n"
+"\n"
+"    }\n"
 
-#: C/treeview_simple_liststore.js.page:234(title)
-msgid "Function which handles a changed selection"
-msgstr "Î ÏÏÎÎÏÏÎÏÎ ÏÎÏ ÏÎÎÏÎÎÎÏÎÎ ÎÎÎ ÎÎÎÎÎÎÎÎÎ ÎÏÎÎÎÎÎ"
+#: C/03_getting_the_signal.js.page:299(section/title)
+msgid "Can you spell \"cookie\"?"
+msgstr "ÎÏÎÏÎÎÏÎ ÎÎ ÏÏÎÎÎÎÎÏÎÏÎ \"ÎÏÎÏÎÏÏÎ\";"
 
-#: C/treeview_simple_liststore.js.page:253(p)
+#: C/03_getting_the_signal.js.page:301(section/p)
 msgid ""
-"The line of code with the let statement is a little convoluted, but it's "
-"nonetheless the best way to get a TreeIter pointing to the same row as our "
-"TreeSelection. It has to create a couple of other object references, but "
-"<file>iter</file> is the only one we need."
+"The last input widget we're going to cover is the Entry widget, which is "
+"used for single-line text entry."
 msgstr ""
-"Î ÎÏÎÎÎÎ ÏÎÏ ÎÏÎÎÎÎ ÎÎ ÏÎÎ ÎÎÎÏÏÎ let ÎÎÎÎÎ ÎÎÎÎ ÎÏÎÏÎÎÎÎÎÎ, ÎÎÎÎ ÏÎÏÏÎÎ "
-"ÎÏÏÎ ÎÎÎÎÎ Î ÎÏÎÏÏÎÏ ÏÏÏÏÎÏ ÎÎ ÎÎÎÎÏÎ ÏÎÎ TreeIter ÎÎ ÎÎÎÏÎÎÎ ÏÏÎÎ ÎÎÎÎ "
-"ÎÏÎÎÎÎ ÏÏÏÏ Î TreeSelection ÎÎÏ. ÎÏÎÏÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ ÎÎÎÎÏ ÎÎÎÎÏ "
-"ÎÎÎÏÎÏÎÏ ÎÎÏÎÎÎÎÎÎÎÎÏ, ÎÎÎÎ Î <file>iter</file> ÎÎÎÎÎ ÏÎ ÎÏÎÎ ÏÎÏ "
-"ÏÏÎÎÎÎÏÎÎÏÏÎ."
+"ÎÏÎ ÏÎÎÎÏÏÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÎÏÏÎÎÏ ÏÎÏ ÏÏÏÎÎÎÏÎÎ ÎÎ ÎÎÎÏÏÎÏÎÎ ÎÎÎÎÎ ÏÎ "
+"ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÎÏÎÏÏÏÎÏÎÏ, ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÎÎÎ ÎÎÏÎÎÏÎÎ ÎÎÎÎÎÎÎÏ "
+"ÎÎÎÎÏ ÎÏÎÎÎÎÏ."
 
-#: C/treeview_simple_liststore.js.page:254(p)
+#: C/03_getting_the_signal.js.page:302(note/p)
 msgid ""
-"After we've done that, we call the Label's <file>set_label</file> function, "
-"and use the ListStore's <file>get_value</file> function a handful of times "
-"to fill in the data we want to put in it. Its parameters are a TreeIter "
-"pointing to the row we want to get data from, and the column."
+"If you need to be able to enter in a whole paragraph or more, like if you "
+"are building a text editor, you'll want to look at the much more "
+"customizable <link xref=\"textview.js\">TextView</link> widget."
 msgstr ""
-"ÎÏÎÏ ÏÎ ÏÎÎÎÎÏÏÎÏÎÎ, ÎÎÎÎÏÎÎ ÏÎ ÏÏÎÎÏÏÎÏÎ ÏÎÏ ÎÏÎÎÎÏÎÏ <file>set_label</"
-"file> ÎÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÏÎ ÏÏÎÎÏÏÎÏÎ ÏÎÏ ListStore <file>get_value</file> "
-"ÎÎÎÎÏ ÏÎÏÎÏ ÎÎÎ ÎÎ ÏÏÎÏÎÎÏÏÏÎÏÎÎ ÏÎ ÎÎÎÎÎÎÎÎ ÏÎÏ ÎÎÎÎÏÎÎ ÎÎ ÏÎ ÎÎÏÎÎÎÏÎÎ. ÎÎ "
-"ÏÎÏÎÎÎÏÏÎÎ ÏÎÏ ÎÎÎÎÎ ÎÎÎ TreeIter ÏÎÏ ÎÎÎÏÎÎÎ ÏÏÎ ÎÏÎÎÎÎ ÎÏÏ ÏÏÎÏ ÎÎÎÎÏÎÎ ÎÎ "
-"ÏÎÏÎÏÎÎ ÎÎÎÎÎÎÎÎ ÎÎÎ ÏÎ ÏÏÎÎÎ."
+"ÎÎÎ ÏÏÎÎÎÎÎÏÏÎ ÎÎ ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÏÎÎÎÏÎ ÏÎ ÎÎÎ ÏÎÎÏÎ ÏÎÏÎÎÏÎÏÎ Î ÏÎÏÎÏÏÏÏÎÏÎ, "
+"ÏÏÏÏ ÎÎÎ ÎÎÎÎÎÏÎ ÎÎÎÎ ÎÏÎÎÎÏÎÎÏÏÎ ÎÎÎÎÎÎÎÏ, ÎÎ ÎÎÎÎÏÎ ÎÎ ÏÎÎÎÎÏÎÎ ÏÏÎ ÏÎÎÏ "
+"ÏÎÏÎÏÏÏÏÎÏÎ ÏÏÎÏÎÏÎÏÏÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ <link xref=\"textview.js"
+"\">TextView</link>."
 
-#: C/treeview_simple_liststore.js.page:255(p)
-msgid ""
-"Here, we want to get data from all four columns, including the \"hidden\" "
-"one that's not part of the TreeView. This way, we can use our Label to show "
-"strings that are too large to fit in the TreeView, and that we don't need to "
-"see at a glance."
+#: C/03_getting_the_signal.js.page:305(section/p)
+msgid "After we change the window's name, we create the Entry widget."
 msgstr ""
-"ÎÎÏ, ÎÎÎÎÏÎÎ ÎÎ ÏÎÏÎÏÎÎ ÎÎÎÎÎÎÎÎ ÎÎÎ ÎÏÏ ÏÎÏ ÏÎÏÏÎÏÎÏ ÏÏÎÎÎÏ, "
-"ÏÏÎÏÎÏÎÎÎÎÎÎÎÎÎÏÎÏ ÏÎÎ \"ÎÏÏÏÎ\" ÏÎÏ ÎÎÎ ÎÎÎÎÎ ÎÎÏÎÏ ÏÎÏ TreeView. ÎÏÏÎ, "
-"ÎÏÎÏÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÏÎÎ ÎÏÎÎÎÏÎ ÎÎÏ ÎÎÎ ÎÎ ÎÎÏÎÎÎÏÎÏÎÎ "
-"ÏÏÎÎÎÎÎÏÎÎÏÎÏ ÏÎÏ ÎÎÎÎÎ ÏÏÎÏÎÎÎÎÎÎ ÎÎÎÎÎÎÏ ÎÎÎ ÏÏÎÏÎÏÎÎÎÎ ÏÏÎ TreeView ÎÎÎ "
-"ÏÎÏ ÎÎÎ ÏÏÎÎÎÎÏÎÎÏÏÎ ÎÎ ÎÎÏÎÎ ÎÎ ÎÎÎ ÎÎÏÎÎ."
+"ÎÏÎÏ ÎÎÎÎÎÎÏÎÎ ÏÎ ÏÎÎÎÎ ÏÎÏ ÏÎÏÎÎÏÏÎÏ, ÎÎÎÎÎÏÏÎÎÏÎÎ ÏÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ "
+"ÎÎÏÎÏÏÏÎÏÎÏ."
 
-#: C/treeview_simple_liststore.js.page:262(p)
+#: C/03_getting_the_signal.js.page:306(section/code)
+#, no-wrap
 msgid ""
-"Finally, we create a new instance of the finished TreeViewExample class, and "
-"set the application running."
+"\n"
+"        // Create the text entry field\n"
+"        this._spellCookie = new Gtk.Entry ();\n"
 msgstr ""
-"ÎÎÎÎÎÎ, ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ ÏÎÏ ÏÎÎÎÎÏÎÎÎÎÏ ÎÎÎÏÎÏ "
-"TreeViewExample ÎÎÎ ÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ."
-
-#: C/treeview_simple_liststore.js.page:266(title)
-#: C/togglebutton.js.page:147(title) C/textview.js.page:242(title)
-#: C/switch.js.page:258(title) C/statusbar.js.page:215(title)
-#: C/spinbutton.js.page:193(title) C/scale.js.page:202(title)
-#: C/radiobutton.js.page:268(title) C/messagedialog.js.page:183(title)
-#: C/hellognome.js.page:193(title) C/combobox.js.page:227(title)
-#: C/comboboxtext.js.page:170(title) C/checkbutton.js.page:130(title)
-#: C/02_welcome_to_the_grid.js.page:275(title)
-msgid "Complete code sample"
-msgstr "ÎÎÎÎÎÎ ÏÎÎÏÎÏÏ ÎÏÎÎÎÎ"
+"\n"
+"        // Create the text entry field\n"
+"        this._spellCookie = new Gtk.Entry ();\n"
 
-#: C/treeview_simple_liststore.js.page:271(title)
-#: C/togglebutton.js.page:152(title) C/textview.js.page:247(title)
-#: C/switch.js.page:263(title) C/statusbar.js.page:220(title)
-#: C/spinbutton.js.page:198(title) C/scale.js.page:207(title)
-#: C/radiobutton.js.page:273(title) C/messagedialog.js.page:188(title)
-#: C/combobox.js.page:232(title) C/comboboxtext.js.page:175(title)
-#: C/checkbutton.js.page:135(title)
-msgid "In-depth documentation"
-msgstr "ÎÎÎÎÎÏÎÏÏÎ ÏÎ ÎÎÎÎÏ"
+#: C/03_getting_the_signal.js.page:311(section/p)
+msgid "Next, we arrange everything in the Grid ..."
+msgstr "ÎÏÏÎÏÎ, ÏÎÎÏÎÏÎÎÎÏÎÎ ÎÎÎÎÏÎ ÏÏÎ ÏÎÎÎÎÎ ..."
 
-#: C/treeview_simple_liststore.js.page:277(link)
-#: C/togglebutton.js.page:155(link) C/textview.js.page:250(link)
-#: C/switch.js.page:268(link) C/statusbar.js.page:223(link)
-#: C/spinner.js.page:31(link) C/spinbutton.js.page:202(link)
-#: C/scale.js.page:211(link) C/radiobutton.js.page:276(link)
-#: C/progressbar.js.page:40(link) C/messagedialog.js.page:196(link)
-#: C/linkbutton.js.page:30(link) C/label.vala.page:31(link)
-#: C/label.js.page:30(link) C/image.js.page:32(link)
-#: C/GtkApplicationWindow.vala.page:31(link)
-#: C/GtkApplicationWindow.js.page:31(link) C/grid.js.page:34(link)
-#: C/gmenu.vala.page:42(link) C/entry.js.page:30(link)
-#: C/dialog.js.page:30(link) C/combobox.js.page:238(link)
-#: C/comboboxtext.js.page:181(link) C/checkbutton.js.page:138(link)
-#: C/button.js.page:31(link) C/aboutdialog.vala.page:39(link)
-#: C/aboutdialog.js.page:32(link)
-msgid "Gtk.ApplicationWindow"
-msgstr "Gtk.ApplicationWindow"
-
-#: C/treeview_simple_liststore.js.page:278(link) C/combobox.vala.page:31(link)
-#: C/combobox.js.page:240(link)
-msgid "Gtk.CellRendererText"
-msgstr "Gtk.CellRendererText"
-
-#: C/treeview_simple_liststore.js.page:280(link) C/combobox.js.page:244(link)
-msgid "Gtk.TreeIter"
-msgstr "Gtk.TreeIter"
-
-#: C/treeview_simple_liststore.js.page:283(link)
-msgid "Gtk.TreeViewColumn"
-msgstr "Gtk.TreeViewColumn"
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/treeview_cellrenderertoggle.py.page:21(None)
-msgid ""
-"@@image: 'media/treeview_cellrenderertoggle.png'; "
-"md5=ade9b9437f8f83150acf37610dab834d"
-msgstr ""
-"@@image: 'media/treeview_cellrenderertoggle.png'Â "
-"md5=ade9b9437f8f83150acf37610dab834d"
-
-#: C/treeview_cellrenderertoggle.py.page:17(desc)
+#: C/03_getting_the_signal.js.page:312(section/code)
+#, no-wrap
 msgid ""
-"A TreeView displaying a TreeStore (more complex example, with "
-"CellRendererToggle)"
+"\n"
+"        // Put everything inside the grid\n"
+"        this._grid.attach (this._spellCookie, 0, 0, 1, 1);\n"
+"        this._grid.attach (this._cookieButton, 0, 1, 1, 1);\n"
+"        this._grid.attach (this._cookieLabel, 0, 2, 1, 1);\n"
 msgstr ""
-"ÎÎÎ TreeView ÎÎÏÎÎÎÎÎÎ ÎÎÎ TreeStore (ÏÎÎ ÏÏÎÎÎÏÎ ÏÎÏÎÎÎÎÎÎÎ, ÎÎ "
-"CellRendererToggle)"
+"\n"
+"        // Put everything inside the grid\n"
+"        this._grid.attach (this._spellCookie, 0, 0, 1, 1);\n"
+"        this._grid.attach (this._cookieButton, 0, 1, 1, 1);\n"
+"        this._grid.attach (this._cookieLabel, 0, 2, 1, 1);\n"
 
-#: C/treeview_cellrenderertoggle.py.page:22(p)
+#: C/03_getting_the_signal.js.page:319(section/p)
 msgid ""
-"This TreeView displays a TreeStore with two columns, one of which is "
-"rendered as a toggle."
+"And now we modify _getACookie's if statement again, using the Entry's "
+"get_text method to retrieve the text that you entered into it and see if you "
+"spelled \"cookie\" right. We don't care whether you capitalize \"cookie\" or "
+"not, so we use JavaScript's built-in toLowerCase method to change the "
+"Entry's text to all lower case inside the if statement."
 msgstr ""
-"ÎÏÏÎ Î TreeView ÎÎÏÎÎÎÎÎÎ ÎÎÎ TreeStore ÎÎ ÎÏÎ ÏÏÎÎÎÏ, Î ÎÎÎ ÏÎÏÏ ÎÏÎÎÎÎÎÏÎÎ "
-"ÏÏ ÎÎÎ ÎÎÎÎÎÎÎÎ."
-
-#: C/treeview_cellrenderertoggle.py.page:45(link)
-msgid "GtkCellRendererToggle"
-msgstr "GtkCellRendererToggle"
+"ÎÎÎ ÏÏÏÎ ÏÏÎÏÎÏÎÎÎÏÎÎ ÏÎÎ ÎÎÎÏÏÎ if ÎÎÎÎ ÏÎÏ _getACookie, ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ "
+"ÎÎÎÎÎÎ get_text ÏÎÏ ÎÎÏÎÏÏÏÎÏÎÏ ÎÎÎ ÎÎÎÎÏÎÏÎ ÏÎÏ ÎÎÎÎÎÎÎÏ ÏÎÏ ÎÎÎÎÏÎ ÎÎÏÎ "
+"ÏÎÏ ÎÎÎ ÎÎÎÏÎ ÎÎÎ ÏÏÎÎÎÎÎÏÏÎÎÎ ÏÏÏÏÎ ÏÎ \"cookie\". ÎÎÎ ÎÎÏ ÎÎÎÎÎÏÎÏÎÎ ÎÎÎ "
+"ÎÎÎÎÏÎ ÎÎÏÎÎÎÎÎ ÏÎ \"cookie\" Î ÏÏÎ, ÎÏÏÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÎÏÏÎÎÏÏÎÎÎÎ "
+"ÎÎÎÎÎÎ toLowerCase ÏÎÏ JavaScript ÎÎÎ ÎÎÎÎÎÎ ÏÎÏ ÎÎÎÎÎÎÎÏ ÎÎÏÎÏÏÏÎÏÎÏ ÏÎ ÏÎÎ "
+"ÏÎ ÏÎÎÎ ÎÏÎÎÎÎÏÎ ÏÏÎ ÎÎÎÏÏÎ if."
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/treeview_advanced_liststore.py.page:24(None)
+#: C/03_getting_the_signal.js.page:320(note/p)
 msgid ""
-"@@image: 'media/treeview_advanced_liststore.png'; "
-"md5=102b512197fb9aa4ed9a16462f6af911"
+"An Entry widget doesn't have a label property, which is a set text string "
+"that the user can't change. (You can't normally change the label on a "
+"Button, for instance.) Instead, it has a text property, which changes to "
+"match what the user types in."
 msgstr ""
-"@@image: 'media/treeview_advanced_liststore.png'Â "
-"md5=102b512197fb9aa4ed9a16462f6af911"
-
-#: C/treeview_advanced_liststore.py.page:7(title)
-msgid "Simple Treeview with ListStore (Python)"
-msgstr "ÎÏÎÎ Treeview ÎÎ ListStore (Python)"
-
-#: C/treeview_advanced_liststore.py.page:20(desc)
-msgid "A TreeView displaying a ListStore (more complex example)"
-msgstr "ÎÎÎ TreeView ÏÎÏ ÎÎÏÎÎÎÎÎÎ ÎÎÎ TreeStore (ÏÎÎ ÏÏÎÎÎÏÎ ÏÎÏÎÎÎÎÎÎÎ)"
+"ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÎÏÎÏÏÏÎÏÎÏ ÎÎÎ ÎÏÎÎ ÎÎÎ ÎÎÎÏÏÎÏÎ ÎÏÎÎÎÏÎÏ, ÏÎÏ ÎÎÎÎÎ "
+"ÎÎÎ ÏÏÎÎÎÎ ÏÏÎÎÎÎÎÏÎÎÏÎÏ ÎÎÎÎÎÎÎÏ ÏÏÎÏ Î ÏÏÎÏÏÎÏ ÎÎÎ ÎÏÎÏÎÎ ÎÎ ÎÎÎÎÎÎÎ. (ÎÎÎ "
+"ÎÏÎÏÎÎÏÎ ÎÎÎÎÎÎÎÎ ÎÎ ÎÎÎÎÎÎÏÎ ÏÎÎ ÎÏÎÎÎÏÎ ÏÎ ÎÎÎ ÎÎÏÎÏÎ, ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ.) "
+"ÎÏÎ ÎÎÏÎ ÏÎÏ ÎÏÎÎ ÎÎÎ ÎÎÎÏÏÎÏÎ ÎÎÎÎÎÎÎÏ, ÏÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎ ÏÏÎÏÏÎÎÎ ÎÎ ÏÏÎ "
+"Î ÏÏÎÏÏÎÏ ÏÎÎÎÏÏÎÎÎÎÎÎ."
 
-#: C/treeview_advanced_liststore.py.page:38(p)
+#: C/03_getting_the_signal.js.page:321(section/code)
+#, no-wrap
 msgid ""
-"For buttons and callbacks functions, see <link xref=\"signals-callbacks.py"
-"\">here</link>"
-msgstr ""
-"ÎÎÎ ÎÎÏÎÏÎÎ ÎÎÎ ÎÏÎÎÎÎÎÎÏÎÎÏ ÏÏÎÎÏÏÎÏÎÏÎ, ÎÎÎÏÎ <link xref=\"signals-"
-"callbacks.py\">ÎÎÏ</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/tooltip.py.page:22(None)
-msgid "@@image: 'media/tooltip.png'; md5=6950da5f4444aa941ecc2f0fc5951d52"
-msgstr "@@image: 'media/tooltip.png'Â md5=6950da5f4444aa941ecc2f0fc5951d52"
-
-#: C/tooltip.py.page:7(title) C/menubutton.py.page:7(title)
-#: C/menubutton.py.page:26(title) C/menubutton.py.page:52(link)
-#: C/menubutton.vala.page:20(title) C/menubutton.vala.page:32(link)
-#: C/menubutton.js.page:20(title) C/menubutton.js.page:32(link)
-msgid "MenuButton"
-msgstr "MenuButton"
-
-#: C/tooltip.py.page:18(desc)
-msgid "Add tips to your widgets"
-msgstr "ÎÏÎÏÎÎÏÏÎ ÏÏÎÎÎÏÎÎÏ ÏÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÏÎÏ"
-
-#: C/tooltip.py.page:23(p)
-msgid "A toolbar with a tooltip (with an image) for a button."
+"\n"
+"    _getACookie: function() {\n"
+"\n"
+"        // Did you spell \"cookie\" correctly?\n"
+"        if ((this._spellCookie.get_text()).toLowerCase() == \"cookie\") {\n"
+"\n"
+"            // Increase the number of cookies by 1 and update the label\n"
+"            cookies++;\n"
+"            this._cookieLabel.set_label (\"Number of cookies: \" + cookies);\n"
+"\n"
+"        }\n"
+"\n"
+"    }\n"
 msgstr ""
-"ÎÎÎ ÎÏÎÎÎÎÎÎÎÎÎÎ ÎÎ ÎÎÎ ÏÏÎÎÎÏÎÎ ÎÎÏÎÎÏ (ÎÎ ÎÎÎ ÎÎÎÏÎÎ) ÎÎÎ ÎÎÎ ÎÎÏÎÏÎ."
-
-#: C/tooltip.py.page:33(title)
-msgid "Useful methods for a Tooltip widget"
-msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÏÏÎÎÎÏÎÎÏ ÎÎÏÎÎÏ"
+"\n"
+"    _getACookie: function() {\n"
+"\n"
+"        // Did you spell \"cookie\" correctly?\n"
+"        if ((this._spellCookie.get_text()).toLowerCase() == \"cookie\") {\n"
+"\n"
+"            // Increase the number of cookies by 1 and update the label\n"
+"            cookies++;\n"
+"            this._cookieLabel.set_label (\"Number of cookies: \" + cookies);\n"
+"\n"
+"        }\n"
+"\n"
+"    }\n"
 
-#: C/tooltip.py.page:34(p)
+#: C/03_getting_the_signal.js.page:340(section/p)
 msgid ""
-"<code>set_tooltip_text(text)</code> and <code>set_tooltip_markup(text)</"
-"code> can be used to add a tooltip of plain text (or text in the Pango "
-"Markup Language) to a widget."
-msgstr ""
-"<code>set_tooltip_text(text)</code> ÎÎÎ <code>set_tooltip_markup(text)</"
-"code> ÎÏÎÏÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÎÏÎ ÎÎÎ ÎÎ ÏÏÎÏÎÎÏÎÏÎ ÎÎÎ ÏÏÎÎÎÏÎÎ ÎÎÏÎÎÏ ÎÏÎÎÏ "
-"ÎÎÎÎÎÎÎÏ (Î ÎÎÎÎÎÎÎÏ ÏÏÎÎ ÎÎÏÏÏÎ ÎÏÎÏÎÎÎÎÏÎÏ Pango) ÏÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ."
-
-#: C/tooltip.py.page:35(p)
-msgid "For more complex tooltips, for instance for a tooltip with an image:"
+"<link xref=\"04_popup_dialog_boxes.js\">Click here</link> to go on to the "
+"next tutorial. Or keep reading, if you'd like to see the complete code for "
+"each version of our cookie maker application."
 msgstr ""
-"ÎÎÎ ÏÎÎ ÏÏÎÎÎÏÎÏ ÏÏÎÎÎÏÎÎÏ ÎÎÏÎÎÏ, ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ ÏÏÎÎÎÏÎÎ ÎÎÏÎÎÏ ÎÎ "
-"ÎÎÎ ÎÎÎÏÎÎ:"
+"<link xref=\"04_popup_dialog_boxes.js\">ÏÎÏÎÏÏÎ ÎÎÏ</link> ÎÎÎ ÎÎ ÏÏÎÎÏÎÏÎÏÎ "
+"ÎÎ ÏÎ ÎÏÏÎÎÎÎ ÎÎÎÎÎÎ. Î ÏÏÎÎÏÎÏÏÎ ÏÎÎ ÎÎÎÎÎÏÏÎ, ÎÎÎ ÎÎ ÎÎÎÎÏÎ ÎÎ ÎÎÎÏÎ ÏÎÎ "
+"ÏÎÎÏÎ ÎÏÎÎÎÎ ÎÎÎ ÎÎÎÎ ÎÎÎÎÏÎ ÏÎÏ ÎÏÎÏÎÎÎÎÏ ÎÎÎÎÎÏÏÎÎÎÏ ÎÏÎÏÎÏÏÎÏ."
 
-#: C/tooltip.py.page:37(p)
+#: C/03_getting_the_signal.js.page:341(note/p)
 msgid ""
-"Set the <code>\"has-tooltip\"</code> property of the widget to <code>True</"
-"code>; this will make GTK+ monitor the widget for motion and related events "
-"which are needed to determine when and where to show a tooltip."
+"The main JavaScript tutorials page has <link xref=\"beginner.js#buttons"
+"\">more detailed code samples</link> for each input widget, including "
+"several not covered here."
 msgstr ""
-"ÎÏÎÏÏÎ ÏÎÎ ÎÎÎÏÏÎÏÎ <code>\"has-tooltip\"</code> ÏÎÏ ÎÏÎÏÎÎÎÏ ÏÏÏÏÎÏÎÎÎÏ ÏÎ "
-"<code>True</code>Â ÎÏÏÏ ÎÎ ÎÎÎÎÎ ÏÎ GTK+ ÎÎ ÏÎÏÎÎÎÎÎÏÎÎÏÎÎ ÏÎ ÎÏÎÏÎÎÏ "
-"ÏÏÏÏÎÏÎÎÏ ÎÎÎ ÎÎÎÎÏÎ ÎÎÎ ÏÏÎÏÎÎÎ ÏÏÎÎÎÎÏÎ ÏÎÏ ÎÏÎÎÏÎÏÎÏÎÎ ÎÎÎ ÏÏÎÏÎÎÎÏÎÏÎÏ "
-"ÏÏÏÎ ÎÎÎ ÏÎÏ ÎÎ ÎÎÏÎÎÎÏÏÎÎ ÎÎÎ ÏÏÎÎÎÏÎÎ ÎÎÏÎÎÏ."
+"Î ÎÏÏÎÎ ÏÎÎÎÎÎ ÎÎÎÎÎÎÏÏÎ JavaScript ÎÏÎÎ <link xref=\"beginner.js#buttons"
+"\">ÏÎÎ ÎÎÏÏÎÎÎÏÎ ÎÎÎÎÎÎÏÎ ÎÏÎÎÎÎ</link> ÎÎÎ ÎÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÎÏÏÎÎÏ, "
+"ÏÏÎÏÎÏÎÎÎÎÎÎÎÎÎÎÎÏÎ ÎÏÎÎÏÏÎ ÏÎÏ ÎÎÎ ÎÎÎÏÏÏÎÎÏÎÎ ÎÎÏ."
 
-#: C/tooltip.py.page:38(p)
-msgid ""
-"Connect to the <code>\"query-tooltip\"</code> signal. This signal will be "
-"emitted when a tooltip is supposed to be shown. One of the arguments passed "
-"to the signal handler is a GtkTooltip object. This is the object that we are "
-"about to display as a tooltip, and can be manipulated in your callback using "
-"functions like <code>set_icon()</code>. There are functions for setting the "
-"tooltip's markup (<code>set_markup(text)</code>), setting an image from a "
-"stock icon (<code>set_icon_from_stock(stock_id, size)</code>), or even "
-"putting in a custom widget (<code>set_custom(widget)</code>)."
-msgstr ""
-"ÎÏÎÎÎÎÎÎÏÎ ÎÎ ÏÎ ÏÎÎÎ <code>\"query-tooltip\"</code>. ÎÏÏÏ ÏÎ ÏÎÎÎ "
-"ÎÎÏÎÎÏÎÏÎÎ ÏÏÎÎ Î ÏÏÎÎÎÏÎÎ ÎÎÏÎÎÏ ÏÏÎÏÎÎÎÏÎÎ ÏÏÎ ÎÎÏÎÎÎÎÎÏÎÎ. ÎÎÎ ÎÏÏ ÏÎ "
-"ÎÏÎÏÎÎÏÎ ÏÎÏ ÏÎÏÎÏÎÎ ÏÏÎÎ ÏÎÎÏÎÏÏÎ ÏÎÎÎÏÎÏ ÎÎÎÎÎ ÎÎÎ ÎÎÏÎÎÎÎÎÎÎÎ GtkTooltip. "
-"ÎÏÏÏ ÎÎÎÎÎ ÏÎ ÎÎÏÎÎÎÎÎÎÎÎ ÏÎÏ ÏÏÏÎÎÎÏÎÎ ÎÎ ÎÎÏÎÎÎÏÎÏÎÎ ÏÏ ÏÏÎÎÎÏÎÎ ÎÎÏÎÎÏ "
-"ÎÎÎ ÎÏÎÏÎÎ ÎÎ ÎÏÎÎÎÏÎÎÏÏÎÎ ÏÏÎÎ ÎÏÎÎÎÎÎÎÏÎ ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÏÎÎÏÏÎÏÎÎÏ "
-"ÏÏÏÏ <code>set_icon()</code>. ÎÏÎÏÏÎÏÎ ÏÏÎÎÏÏÎÏÎÎÏ ÎÎÎ ÏÏÎÎÎÏÎ ÏÎÏ "
-"ÎÏÎÏÎÎÎÎÏÎÏ ÏÎÏ ÏÏÎÎÎÏÎÎÏ ÎÎÏÎÎÏ (<code>set_markup(text)</code>), ÏÏÎÎÎÏÎ "
-"ÎÎÎÏ ÎÎÎÏÎÎÏ ÎÏÏ ÎÎÎ ÎÎÎÎÎÎÎÎÎ ÏÎÏÎÎÎÏÎÎÎÎÎÏ (<code>set_icon_from_stock"
-"(stock_id, size)</code>), Î ÎÎÏÎÎ ÏÎÏÎÎÎÏÎÏÎ ÏÎ ÎÎÎ ÏÏÎÏÎÏÎÎÏÎÎÎÎ ÎÏÎÏÎÎÏ "
-"ÏÏÏÏÎÏÎÎÏ (<code>set_custom(widget)</code>)."
+#: C/03_getting_the_signal.js.page:346(section/title)
+msgid "Complete code samples"
+msgstr "ÎÎÎÎÎÎÏÎ ÏÎÎÏÎÏÏ ÎÏÎÎÎÎ"
 
-#: C/tooltip.py.page:39(p)
-msgid ""
-"Return <code>True</code> from your query-tooltip handler. This causes the "
-"tooltip to be show. If you return <code>False</code>, it will not be shown."
-msgstr ""
-"ÎÏÎÏÏÏÎÏÎ <code>True</code> ÎÏÏ ÏÎÎ ÏÎÎÏÎÏÏÎ ÏÎÏ ÎÏÏÏÎÎÎÏÎÏ ÏÏÎÎÎÏÎÎÏ "
-"ÎÎÏÎÎÏ. ÎÏÏÏ ÏÏÎÎÎÎÎÎ ÏÎÎ ÎÎÏÎÎÎÏÎ ÏÎÏ ÏÏÎÎÎÏÎÎÏ ÎÎÏÎÎÏ. ÎÎÎ ÎÏÎÏÏÏÎÏÎÏÎ "
-"<code>False</code>, ÎÎÎ ÎÎ ÎÎÏÎÎÎÏÏÎÎ."
+#: C/03_getting_the_signal.js.page:351(section/title)
+msgid "Code sample with Button"
+msgstr "ÎÎÎÎÎÎ ÎÏÎÎÎÎ ÎÎ ÎÎÏÎÏÎ"
 
-#: C/tooltip.py.page:42(p)
+#: C/03_getting_the_signal.js.page:353(section/code)
+#, no-wrap
 msgid ""
-"In the probably rare case where you want to have even more control over the "
-"tooltip that is about to be shown, you can set your own GtkWindow which will "
-"be used as tooltip window. This works as follows:"
-msgstr ""
-"ÎÏÎÎ ÏÏÎÏÎÎÏÏ ÏÏÎÎÎÎ ÏÎÏÎÏÏÏÏÎ ÏÏÎÏ ÎÎÎÎÏÎ ÎÎ ÎÏÎÏÎ ÎÎÏÎÎ ÏÎÏÎÏÏÏÏÎÏÎ ÎÎÎÎÏÎ "
-"ÏÏÎÎ ÏÏÎÎÎÏÎÎ ÎÎÏÎÎÏ ÏÎÏ ÏÏÏÎÎÎÏÎÎ ÎÎ ÎÎÏÎÎÎÏÏÎÎ, ÎÏÎÏÎÎÏÎ ÎÎ ÎÏÎÏÎÏÎ ÏÎ "
-"ÎÎÎÏ ÏÎÏ GtkWindow ÏÎÏ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÎÎ ÏÏ ÏÎÏÎÎÏÏÎ ÏÏÎÎÎÏÎÎÏ ÎÎÏÎÎÏ. ÎÏÏÏ "
-"ÎÎÏÎÎÏÎÎ ÏÏ ÎÎÎÏ:"
-
-#: C/tooltip.py.page:44(p)
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"// We start out with 0 cookies\n"
+"var cookies = 0;\n"
+"\n"
+"const GettingTheSignal = new Lang.Class({\n"
+"    Name: 'Getting the Signal',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application();\n"
+"\n"
+"        // Connect 'activate' and 'startup' signals to the callback functions\n"
+"        this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"        this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents window when active\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function() {\n"
+"        this._buildUI ();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function() {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            default_height: 200,\n"
+"            default_width: 400,\n"
+"            title: \"Click the button to get a cookie!\"});\n"
+"\n"
+"        // Create the label\n"
+"        this._cookieLabel = new Gtk.Label ({\n"
+"            label: \"Number of cookies: \" + cookies });\n"
+"\n"
+"        // Create the cookie button\n"
+"        this._cookieButton = new Gtk.Button ({ label: \"Get a cookie\" });\n"
+"\n"
+"        // Connect the cookie button to the function that handles clicking it\n"
+"        this._cookieButton.connect ('clicked', Lang.bind (this, this._getACookie));\n"
+"\n"
+"        // Create a grid to arrange everything inside\n"
+"        this._grid = new Gtk.Grid ({\n"
+"            halign: Gtk.Align.CENTER,\n"
+"            valign: Gtk.Align.CENTER,\n"
+"            row_spacing: 20 });\n"
+"\n"
+"        // Put everything inside the grid\n"
+"        this._grid.attach (this._cookieButton, 0, 0, 1, 1);\n"
+"        this._grid.attach (this._cookieLabel, 0, 1, 1, 1);\n"
+"\n"
+"        // Add the grid to the window\n"
+"        this._window.add (this._grid);\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    _getACookie: function() {\n"
+"\n"
+"        // Increase the number of cookies by 1 and update the label\n"
+"        cookies++;\n"
+"        this._cookieLabel.set_label (\"Number of cookies: \" + cookies);\n"
+"\n"
+"    }\n"
+"\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new GettingTheSignal ();\n"
+"app.application.run (ARGV);\n"
+msgstr ""
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"// We start out with 0 cookies\n"
+"var cookies = 0;\n"
+"\n"
+"const GettingTheSignal = new Lang.Class({\n"
+"    Name: 'Getting the Signal',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application();\n"
+"\n"
+"        // Connect 'activate' and 'startup' signals to the callback functions\n"
+"        this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"        this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents window when active\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function() {\n"
+"        this._buildUI ();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function() {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            default_height: 200,\n"
+"            default_width: 400,\n"
+"            title: \"Click the button to get a cookie!\"});\n"
+"\n"
+"        // Create the label\n"
+"        this._cookieLabel = new Gtk.Label ({\n"
+"            label: \"Number of cookies: \" + cookies });\n"
+"\n"
+"        // Create the cookie button\n"
+"        this._cookieButton = new Gtk.Button ({ label: \"Get a cookie\" });\n"
+"\n"
+"        // Connect the cookie button to the function that handles clicking it\n"
+"        this._cookieButton.connect ('clicked', Lang.bind (this, this._getACookie));\n"
+"\n"
+"        // Create a grid to arrange everything inside\n"
+"        this._grid = new Gtk.Grid ({\n"
+"            halign: Gtk.Align.CENTER,\n"
+"            valign: Gtk.Align.CENTER,\n"
+"            row_spacing: 20 });\n"
+"\n"
+"        // Put everything inside the grid\n"
+"        this._grid.attach (this._cookieButton, 0, 0, 1, 1);\n"
+"        this._grid.attach (this._cookieLabel, 0, 1, 1, 1);\n"
+"\n"
+"        // Add the grid to the window\n"
+"        this._window.add (this._grid);\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    _getACookie: function() {\n"
+"\n"
+"        // Increase the number of cookies by 1 and update the label\n"
+"        cookies++;\n"
+"        this._cookieLabel.set_label (\"Number of cookies: \" + cookies);\n"
+"\n"
+"    }\n"
+"\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new GettingTheSignal ();\n"
+"app.application.run (ARGV);\n"
+
+#: C/03_getting_the_signal.js.page:357(section/title)
+msgid "Code sample with Switch"
+msgstr "ÎÎÎÎÎÎ ÎÏÎÎÎÎ ÎÎ ÎÎÎÎÏÏÏÎ"
+
+#: C/03_getting_the_signal.js.page:359(section/code)
+#, no-wrap
+msgid ""
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"// We start out with 0 cookies\n"
+"var cookies = 0;\n"
+"\n"
+"const GettingTheSignal = new Lang.Class({\n"
+"    Name: 'Getting the Signal',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application();\n"
+"\n"
+"        // Connect 'activate' and 'startup' signals to the callback functions\n"
+"        this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"        this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents window when active\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function() {\n"
+"        this._buildUI ();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function() {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            default_height: 200,\n"
+"            default_width: 400,\n"
+"            title: \"Click the button to get a cookie!\"});\n"
+"\n"
+"        // Create the label\n"
+"        this._cookieLabel = new Gtk.Label ({\n"
+"            label: \"Number of cookies: \" + cookies });\n"
+"\n"
+"        // Create the cookie button\n"
+"        this._cookieButton = new Gtk.Button ({\n"
+"            label: \"Get a cookie\" });\n"
+"\n"
+"        // Connect the cookie button to the function that handles clicking it\n"
+"        this._cookieButton.connect ('clicked', Lang.bind (this, this._getACookie));\n"
+"\n"
+"        // Create the switch that controls whether or not you can win\n"
+"        this._cookieSwitch = new Gtk.Switch ();\n"
+"\n"
+"        // Create the label to go with the switch\n"
+"        this._switchLabel = new Gtk.Label ({\n"
+"            label: \"Cookie dispenser\" });\n"
+"\n"
+"        // Create a grid for the switch and its label\n"
+"        this._switchGrid = new Gtk.Grid ({\n"
+"            halign: Gtk.Align.CENTER,\n"
+"            valign: Gtk.Align.CENTER });\n"
+"\n"
+"        // Put the switch and its label inside that grid\n"
+"        this._switchGrid.attach (this._switchLabel, 0, 0, 1, 1);\n"
+"        this._switchGrid.attach (this._cookieSwitch, 1, 0, 1, 1);\n"
+"\n"
+"        // Create a grid to arrange everything else inside\n"
+"        this._grid = new Gtk.Grid ({\n"
+"            halign: Gtk.Align.CENTER,\n"
+"            valign: Gtk.Align.CENTER,\n"
+"            row_spacing: 20 });\n"
+"\n"
+"        // Put everything inside the grid\n"
+"        this._grid.attach (this._cookieButton, 0, 0, 1, 1);\n"
+"        this._grid.attach (this._switchGrid, 0, 1, 1, 1);\n"
+"        this._grid.attach (this._cookieLabel, 0, 2, 1, 1);\n"
+"\n"
+"        // Add the grid to the window\n"
+"        this._window.add (this._grid);\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    _getACookie: function() {\n"
+"\n"
+"        // Is the cookie dispenser turned on?\n"
+"        if (this._cookieSwitch.get_active()) {\n"
+"\n"
+"            // Increase the number of cookies by 1 and update the label\n"
+"            cookies++;\n"
+"            this._cookieLabel.set_label (\"Number of cookies: \" + cookies);\n"
+"\n"
+"        }\n"
+"\n"
+"    }\n"
+"\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new GettingTheSignal ();\n"
+"app.application.run (ARGV);\n"
+msgstr ""
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"// We start out with 0 cookies\n"
+"var cookies = 0;\n"
+"\n"
+"const GettingTheSignal = new Lang.Class({\n"
+"    Name: 'Getting the Signal',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application();\n"
+"\n"
+"        // Connect 'activate' and 'startup' signals to the callback functions\n"
+"        this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"        this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents window when active\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function() {\n"
+"        this._buildUI ();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function() {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            default_height: 200,\n"
+"            default_width: 400,\n"
+"            title: \"Click the button to get a cookie!\"});\n"
+"\n"
+"        // Create the label\n"
+"        this._cookieLabel = new Gtk.Label ({\n"
+"            label: \"Number of cookies: \" + cookies });\n"
+"\n"
+"        // Create the cookie button\n"
+"        this._cookieButton = new Gtk.Button ({\n"
+"            label: \"Get a cookie\" });\n"
+"\n"
+"        // Connect the cookie button to the function that handles clicking it\n"
+"        this._cookieButton.connect ('clicked', Lang.bind (this, this._getACookie));\n"
+"\n"
+"        // Create the switch that controls whether or not you can win\n"
+"        this._cookieSwitch = new Gtk.Switch ();\n"
+"\n"
+"        // Create the label to go with the switch\n"
+"        this._switchLabel = new Gtk.Label ({\n"
+"            label: \"Cookie dispenser\" });\n"
+"\n"
+"        // Create a grid for the switch and its label\n"
+"        this._switchGrid = new Gtk.Grid ({\n"
+"            halign: Gtk.Align.CENTER,\n"
+"            valign: Gtk.Align.CENTER });\n"
+"\n"
+"        // Put the switch and its label inside that grid\n"
+"        this._switchGrid.attach (this._switchLabel, 0, 0, 1, 1);\n"
+"        this._switchGrid.attach (this._cookieSwitch, 1, 0, 1, 1);\n"
+"\n"
+"        // Create a grid to arrange everything else inside\n"
+"        this._grid = new Gtk.Grid ({\n"
+"            halign: Gtk.Align.CENTER,\n"
+"            valign: Gtk.Align.CENTER,\n"
+"            row_spacing: 20 });\n"
+"\n"
+"        // Put everything inside the grid\n"
+"        this._grid.attach (this._cookieButton, 0, 0, 1, 1);\n"
+"        this._grid.attach (this._switchGrid, 0, 1, 1, 1);\n"
+"        this._grid.attach (this._cookieLabel, 0, 2, 1, 1);\n"
+"\n"
+"        // Add the grid to the window\n"
+"        this._window.add (this._grid);\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    _getACookie: function() {\n"
+"\n"
+"        // Is the cookie dispenser turned on?\n"
+"        if (this._cookieSwitch.get_active()) {\n"
+"\n"
+"            // Increase the number of cookies by 1 and update the label\n"
+"            cookies++;\n"
+"            this._cookieLabel.set_label (\"Number of cookies: \" + cookies);\n"
+"\n"
+"        }\n"
+"\n"
+"    }\n"
+"\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new GettingTheSignal ();\n"
+"app.application.run (ARGV);\n"
+
+#: C/03_getting_the_signal.js.page:363(section/title)
+msgid "Code sample with RadioButton"
+msgstr "ÎÎÎÎÎÎ ÎÏÎÎÎÎ ÎÎ RadioButton"
+
+#: C/03_getting_the_signal.js.page:365(section/code)
+#, no-wrap
+msgid ""
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"// We start out with 0 cookies\n"
+"var cookies = 0;\n"
+"\n"
+"const GettingTheSignal = new Lang.Class({\n"
+"    Name: 'Getting the Signal',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application();\n"
+"\n"
+"        // Connect 'activate' and 'startup' signals to the callback functions\n"
+"        this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"        this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents window when active\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function() {\n"
+"        this._buildUI ();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function() {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            default_height: 200,\n"
+"            default_width: 400,\n"
+"            border_width: 20,\n"
+"            title: \"Choose the one that says 'cookie'!\"});\n"
+"\n"
+"        // Create the radio buttons\n"
+"        this._cookieButton = new Gtk.RadioButton ({ label: \"Cookie\" });\n"
+"        this._notCookieOne = new Gtk.RadioButton ({ label: \"Not cookie\",\n"
+"            group: this._cookieButton });\n"
+"        this._notCookieTwo = new Gtk.RadioButton ({ label: \"Not cookie\",\n"
+"            group: this._cookieButton });\n"
+"\n"
+"        // Arrange the radio buttons in their own grid\n"
+"        this._radioGrid = new Gtk.Grid ();\n"
+"        this._radioGrid.attach (this._notCookieOne, 0, 0, 1, 1);\n"
+"        this._radioGrid.attach (this._cookieButton, 0, 1, 1, 1);\n"
+"        this._radioGrid.attach (this._notCookieTwo, 0, 2, 1, 1);\n"
+"\n"
+"        // Set the button that will be at the top to be active by default\n"
+"        this._notCookieOne.set_active (true);\n"
+"\n"
+"        // Create the cookie button\n"
+"        this._cookieButton = new Gtk.Button ({\n"
+"            label: \"Get a cookie\" });\n"
+"\n"
+"        // Connect the cookie button to the function that handles clicking it\n"
+"        this._cookieButton.connect ('clicked', Lang.bind (this, this._getACookie));\n"
+"\n"
+"        // Create the label\n"
+"        this._cookieLabel = new Gtk.Label ({\n"
+"            label: \"Number of cookies: \" + cookies });\n"
+"\n"
+"        // Create a grid to arrange everything inside\n"
+"        this._grid = new Gtk.Grid ({\n"
+"            halign: Gtk.Align.CENTER,\n"
+"            valign: Gtk.Align.CENTER,\n"
+"            row_spacing: 20 });\n"
+"\n"
+"        // Put everything inside the grid\n"
+"        this._grid.attach (this._radioGrid, 0, 0, 1, 1);\n"
+"        this._grid.attach (this._cookieButton, 0, 1, 1, 1);\n"
+"        this._grid.attach (this._cookieLabel, 0, 2, 1, 1);\n"
+"\n"
+"        // Add the grid to the window\n"
+"        this._window.add (this._grid);\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    _getACookie: function() {\n"
+"\n"
+"        // Did you select \"cookie\" instead of \"not cookie\"?\n"
+"        if (this._cookieButton.get_active()) {\n"
+"\n"
+"            // Increase the number of cookies by 1 and update the label\n"
+"            cookies++;\n"
+"            this._cookieLabel.set_label (\"Number of cookies: \" + cookies);\n"
+"\n"
+"        }\n"
+"\n"
+"    }\n"
+"\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new GettingTheSignal ();\n"
+"app.application.run (ARGV);\n"
+msgstr ""
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"// We start out with 0 cookies\n"
+"var cookies = 0;\n"
+"\n"
+"const GettingTheSignal = new Lang.Class({\n"
+"    Name: 'Getting the Signal',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application();\n"
+"\n"
+"        // Connect 'activate' and 'startup' signals to the callback functions\n"
+"        this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"        this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents window when active\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function() {\n"
+"        this._buildUI ();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function() {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            default_height: 200,\n"
+"            default_width: 400,\n"
+"            border_width: 20,\n"
+"            title: \"Choose the one that says 'cookie'!\"});\n"
+"\n"
+"        // Create the radio buttons\n"
+"        this._cookieButton = new Gtk.RadioButton ({ label: \"Cookie\" });\n"
+"        this._notCookieOne = new Gtk.RadioButton ({ label: \"Not cookie\",\n"
+"            group: this._cookieButton });\n"
+"        this._notCookieTwo = new Gtk.RadioButton ({ label: \"Not cookie\",\n"
+"            group: this._cookieButton });\n"
+"\n"
+"        // Arrange the radio buttons in their own grid\n"
+"        this._radioGrid = new Gtk.Grid ();\n"
+"        this._radioGrid.attach (this._notCookieOne, 0, 0, 1, 1);\n"
+"        this._radioGrid.attach (this._cookieButton, 0, 1, 1, 1);\n"
+"        this._radioGrid.attach (this._notCookieTwo, 0, 2, 1, 1);\n"
+"\n"
+"        // Set the button that will be at the top to be active by default\n"
+"        this._notCookieOne.set_active (true);\n"
+"\n"
+"        // Create the cookie button\n"
+"        this._cookieButton = new Gtk.Button ({\n"
+"            label: \"Get a cookie\" });\n"
+"\n"
+"        // Connect the cookie button to the function that handles clicking it\n"
+"        this._cookieButton.connect ('clicked', Lang.bind (this, this._getACookie));\n"
+"\n"
+"        // Create the label\n"
+"        this._cookieLabel = new Gtk.Label ({\n"
+"            label: \"Number of cookies: \" + cookies });\n"
+"\n"
+"        // Create a grid to arrange everything inside\n"
+"        this._grid = new Gtk.Grid ({\n"
+"            halign: Gtk.Align.CENTER,\n"
+"            valign: Gtk.Align.CENTER,\n"
+"            row_spacing: 20 });\n"
+"\n"
+"        // Put everything inside the grid\n"
+"        this._grid.attach (this._radioGrid, 0, 0, 1, 1);\n"
+"        this._grid.attach (this._cookieButton, 0, 1, 1, 1);\n"
+"        this._grid.attach (this._cookieLabel, 0, 2, 1, 1);\n"
+"\n"
+"        // Add the grid to the window\n"
+"        this._window.add (this._grid);\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    _getACookie: function() {\n"
+"\n"
+"        // Did you select \"cookie\" instead of \"not cookie\"?\n"
+"        if (this._cookieButton.get_active()) {\n"
+"\n"
+"            // Increase the number of cookies by 1 and update the label\n"
+"            cookies++;\n"
+"            this._cookieLabel.set_label (\"Number of cookies: \" + cookies);\n"
+"\n"
+"        }\n"
+"\n"
+"    }\n"
+"\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new GettingTheSignal ();\n"
+"app.application.run (ARGV);\n"
+
+#: C/03_getting_the_signal.js.page:369(section/title)
+msgid "Code sample with Entry"
+msgstr "ÎÎÎÎÎÎ ÎÏÎÎÎÎ ÎÎ ÎÎÏÎÏÏÏÎÏÎ"
+
+#: C/03_getting_the_signal.js.page:371(section/code)
+#, no-wrap
+msgid ""
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"// We start out with 0 cookies\n"
+"var cookies = 0;\n"
+"\n"
+"const GettingTheSignal = new Lang.Class({\n"
+"    Name: 'Getting the Signal',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application();\n"
+"\n"
+"        // Connect 'activate' and 'startup' signals to the callback functions\n"
+"        this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"        this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents window when active\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function() {\n"
+"        this._buildUI ();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function() {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            default_height: 200,\n"
+"            default_width: 400,\n"
+"            border_width: 20,\n"
+"            title: \"Spell 'cookie' to get a cookie!\"});\n"
+"\n"
+"        // Create the text entry field\n"
+"        this._spellCookie = new Gtk.Entry ();\n"
+"\n"
+"        // Create the cookie button\n"
+"        this._cookieButton = new Gtk.Button ({\n"
+"            label: \"Get a cookie\" });\n"
+"\n"
+"        // Connect the cookie button to the function that handles clicking it\n"
+"        this._cookieButton.connect ('clicked', Lang.bind (this, this._getACookie));\n"
+"\n"
+"        // Create the label\n"
+"        this._cookieLabel = new Gtk.Label ({\n"
+"            label: \"Number of cookies: \" + cookies });\n"
+"\n"
+"        // Create a grid to arrange everything inside\n"
+"        this._grid = new Gtk.Grid ({\n"
+"            halign: Gtk.Align.CENTER,\n"
+"            valign: Gtk.Align.CENTER,\n"
+"            row_spacing: 20 });\n"
+"\n"
+"        // Put everything inside the grid\n"
+"        this._grid.attach (this._spellCookie, 0, 0, 1, 1);\n"
+"        this._grid.attach (this._cookieButton, 0, 1, 1, 1);\n"
+"        this._grid.attach (this._cookieLabel, 0, 2, 1, 1);\n"
+"\n"
+"        // Add the grid to the window\n"
+"        this._window.add (this._grid);\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    _getACookie: function() {\n"
+"\n"
+"        // Did you spell \"cookie\" correctly?\n"
+"        if ((this._spellCookie.get_text()).toLowerCase() == \"cookie\") {\n"
+"\n"
+"            // Increase the number of cookies by 1 and update the label\n"
+"            cookies++;\n"
+"            this._cookieLabel.set_label (\"Number of cookies: \" + cookies);\n"
+"\n"
+"        }\n"
+"\n"
+"    }\n"
+"\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new GettingTheSignal ();\n"
+"app.application.run (ARGV);\n"
+msgstr ""
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"// We start out with 0 cookies\n"
+"var cookies = 0;\n"
+"\n"
+"const GettingTheSignal = new Lang.Class({\n"
+"    Name: 'Getting the Signal',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application();\n"
+"\n"
+"        // Connect 'activate' and 'startup' signals to the callback functions\n"
+"        this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"        this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents window when active\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function() {\n"
+"        this._buildUI ();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function() {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            default_height: 200,\n"
+"            default_width: 400,\n"
+"            border_width: 20,\n"
+"            title: \"Spell 'cookie' to get a cookie!\"});\n"
+"\n"
+"        // Create the text entry field\n"
+"        this._spellCookie = new Gtk.Entry ();\n"
+"\n"
+"        // Create the cookie button\n"
+"        this._cookieButton = new Gtk.Button ({\n"
+"            label: \"Get a cookie\" });\n"
+"\n"
+"        // Connect the cookie button to the function that handles clicking it\n"
+"        this._cookieButton.connect ('clicked', Lang.bind (this, this._getACookie));\n"
+"\n"
+"        // Create the label\n"
+"        this._cookieLabel = new Gtk.Label ({\n"
+"            label: \"Number of cookies: \" + cookies });\n"
+"\n"
+"        // Create a grid to arrange everything inside\n"
+"        this._grid = new Gtk.Grid ({\n"
+"            halign: Gtk.Align.CENTER,\n"
+"            valign: Gtk.Align.CENTER,\n"
+"            row_spacing: 20 });\n"
+"\n"
+"        // Put everything inside the grid\n"
+"        this._grid.attach (this._spellCookie, 0, 0, 1, 1);\n"
+"        this._grid.attach (this._cookieButton, 0, 1, 1, 1);\n"
+"        this._grid.attach (this._cookieLabel, 0, 2, 1, 1);\n"
+"\n"
+"        // Add the grid to the window\n"
+"        this._window.add (this._grid);\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    _getACookie: function() {\n"
+"\n"
+"        // Did you spell \"cookie\" correctly?\n"
+"        if ((this._spellCookie.get_text()).toLowerCase() == \"cookie\") {\n"
+"\n"
+"            // Increase the number of cookies by 1 and update the label\n"
+"            cookies++;\n"
+"            this._cookieLabel.set_label (\"Number of cookies: \" + cookies);\n"
+"\n"
+"        }\n"
+"\n"
+"    }\n"
+"\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new GettingTheSignal ();\n"
+"app.application.run (ARGV);\n"
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/aboutdialog.c.page:24(media) C/aboutdialog.js.page:20(media)
+#: C/aboutdialog.py.page:22(media) C/aboutdialog.vala.page:29(media)
+msgctxt "_"
+msgid ""
+"external ref='media/aboutdialog_GMenu.png' "
+"md5='a36117a559fa98e25e2f6b3db593639f'"
+msgstr ""
+"external ref='media/aboutdialog_GMenu.png' "
+"md5='a36117a559fa98e25e2f6b3db593639f'"
+
+#: C/aboutdialog.c.page:7(info/title)
+msgctxt "text"
+msgid "AboutDialog (C)"
+msgstr "AboutDialog (C)"
+
+#: C/aboutdialog.c.page:14(credit/name) C/button.c.page:14(credit/name)
+#: C/dialog.c.page:14(credit/name) C/entry.c.page:12(credit/name)
+#: C/grid.c.page:12(credit/name) C/image.c.page:12(credit/name)
+#: C/label.c.page:13(credit/name) C/linkbutton.c.page:12(credit/name)
+#: C/messagedialog.c.page:13(credit/name) C/progressbar.c.page:13(credit/name)
+#: C/radiobutton.c.page:14(credit/name) C/scale.c.page:14(credit/name)
+#: C/spinbutton.c.page:15(credit/name) C/spinner.c.page:13(credit/name)
+#: C/statusbar.c.page:16(credit/name) C/switch.c.page:12(credit/name)
+#: C/textview.c.page:12(credit/name) C/togglebutton.c.page:16(credit/name)
+msgid "Monica Kochofar"
+msgstr "Monica Kochofar"
+
+#: C/aboutdialog.c.page:19(info/desc) C/aboutdialog.js.page:16(info/desc)
+#: C/aboutdialog.vala.page:25(info/desc)
+msgid "Display information about an application"
+msgstr "ÎÎÏÎÎÎÏÎ ÏÎÎÏÎÏÎÏÎÏÎ ÎÎÎ ÎÎÎ ÎÏÎÏÎÎÎÎ"
+
+#: C/aboutdialog.c.page:22(page/title) C/aboutdialog.js.page:19(page/title)
+#: C/aboutdialog.py.page:21(page/title) C/aboutdialog.vala.page:28(page/title)
+msgid "AboutDialog"
+msgstr "AboutDialog"
+
+#: C/aboutdialog.c.page:25(page/p) C/aboutdialog.vala.page:30(page/p)
+msgid "An AboutDialog example using Gtk.ApplicationWindow and Menu"
+msgstr ""
+"ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ AboutDialog ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ Gtk.ApplicationWindow ÎÎÎ ÎÎÎÎÏ"
+
+#: C/aboutdialog.c.page:26(note/p) C/aboutdialog.vala.page:31(note/p)
+#: C/gmenu.c.page:23(note/p) C/gmenu.py.page:29(note/p)
+msgid ""
+"<em style=\"bold\">You need to be running Gtk3.4 or later for this to work</"
+"em>"
+msgstr ""
+"<em style=\"bold\">You need to be running Gtk3.4 or later for this to work</"
+"em>"
+
+#: C/aboutdialog.c.page:28(page/code)
+#, no-wrap
+msgid ""
+"\n"
+"#include &lt;gtk/gtk.h&gt;\n"
+"\n"
+"\n"
+"\n"
+"/* Callback function in which reacts to the \"response\" signal from the user in\n"
+" * the message dialog window.\n"
+" * This function is used to destroy the dialog window.\n"
+" */\n"
+"static void\n"
+"on_close (GtkDialog *dialog,\n"
+"          gint       response_id,\n"
+"          gpointer   user_data)\n"
+"{\n"
+"  /*This will cause the dialog to be destroyed*/\n"
+"  gtk_widget_destroy (GTK_WIDGET (dialog));\n"
+"\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"/* Callback function for the response signal \"activate\" related to the SimpleAction\n"
+" * \"about_action\".\n"
+" * This function is used to cause the about dialog window to popup.\n"
+" */\n"
+"static void\n"
+"about_cb (GSimpleAction *simple,\n"
+"          GVariant      *parameter,\n"
+"          gpointer       user_data)\n"
+"{\n"
+"   GtkWidget *about_dialog;\n"
+"\n"
+"   about_dialog = gtk_about_dialog_new ();\n"
+"\n"
+"   /* Lists of authors/ documentators to be used later, they must be initialized\n"
+"    * in a null terminated array of strings.\n"
+"    */\n"
+"   const gchar *authors[] = {\"GNOME Documentation Team\", NULL};\n"
+"   const gchar *documenters[] = {\"GNOME Documentation Team\", NULL};\n"
+"\n"
+"   /* We fill in the information for the about dialog */\n"
+"   gtk_about_dialog_set_program_name (GTK_ABOUT_DIALOG (about_dialog), \"AboutDialog Example\");\n"
+"   gtk_about_dialog_set_copyright (GTK_ABOUT_DIALOG (about_dialog), \"Copyright \\xc2\\xa9 2012 GNOME Documentation Team\");\n"
+"   gtk_about_dialog_set_authors (GTK_ABOUT_DIALOG (about_dialog), authors);\n"
+"   gtk_about_dialog_set_documenters (GTK_ABOUT_DIALOG (about_dialog), documenters);\n"
+"   gtk_about_dialog_set_website_label (GTK_ABOUT_DIALOG (about_dialog), \"GNOME Developer Website\");\n"
+"   gtk_about_dialog_set_website (GTK_ABOUT_DIALOG (about_dialog), \"http://developer.gnome.org\";);\n"
+"\n"
+"  /* We do not wish to show the title, which in this case would be \n"
+"   * \"AboutDialog Example\". We have to reset the title of the messagedialog \n"
+"   * window after setting the program name.\n"
+"   */\n"
+"  gtk_window_set_title (GTK_WINDOW (about_dialog), \"\");\n"
+"\n"
+"  /* To close the aboutdialog when \"close\" is clicked we connect the response \n"
+"   * signal to on_close\n"
+"   */\n"
+"  g_signal_connect (GTK_DIALOG (about_dialog), \"response\", \n"
+"                    G_CALLBACK (on_close), NULL);\n"
+"\n"
+"  /* Show the about dialog */\n"
+"  gtk_widget_show (about_dialog); \n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"static void\n"
+"activate (GtkApplication *app,\n"
+"          gpointer        user_data)\n"
+"{\n"
+"  GtkWidget *window;\n"
+"\n"
+"  GSimpleAction *about_action;\n"
+"\n"
+"  /* Create a window with a title and a default size */\n"
+"  window = gtk_application_window_new (app);\n"
+"  gtk_window_set_title (GTK_WINDOW (window), \"AboutDialog Example\");\n"
+"  gtk_window_set_default_size (GTK_WINDOW (window), 200, 200);\n"
+"\n"
+"  /* Create a new simple action, giving it a NULL parameter type. It will \n"
+"   * always be NULL for actions invoked from a menu. (e.g clicking on an \"ok\" \n"
+"   * or \"cancel\" button)\n"
+"   */\n"
+"  about_action = g_simple_action_new (\"about\", NULL); \n"
+"\n"
+"  /* Connect the \"activate\" signal to the appropriate callback function. \n"
+"   * It will indicate that the action was just activated.\n"
+"   */\n"
+"  g_signal_connect (about_action, \"activate\", G_CALLBACK (about_cb), \n"
+"                    GTK_WINDOW (window));\n"
+"\n"
+"  /* Adds the about_action to the overall action map. An Action map is an \n"
+"   * interface that contains a number of named GAction instances \n"
+"   * (such as about_action) \n"
+"   */\n"
+"  g_action_map_add_action (G_ACTION_MAP (window), G_ACTION (about_action));\n"
+"\n"
+"  gtk_widget_show_all (window);\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"/* Callback function for the response signal \"activate\" from the \"quit\" action \n"
+" * found in the function directly below.\n"
+" */ \n"
+"static void\n"
+"quit_cb (GSimpleAction *simple,\n"
+"         GVariant      *parameter,\n"
+"         gpointer       user_data)\n"
+"{\n"
+"  GApplication *application = user_data;\n"
+"\n"
+"  g_application_quit (application);\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"/* Startup function for the menu we are creating in this sample */\n"
+"static void\n"
+"startup (GApplication *app,\n"
+"         gpointer      user_data)\n"
+"{\n"
+"  GMenu *menu;\n"
+"  GSimpleAction *quit_action;\n"
+"\n"
+"  /* Initialize the GMenu, and add a menu item with label \"About\" and action \n"
+"   * \"win.about\". Also add another menu item with label \"Quit\" and action \n"
+"   * \"app.quit\" \n"
+"   */\n"
+"  menu = g_menu_new ();\n"
+"  g_menu_append (menu, \"About\", \"win.about\");\n"
+"  g_menu_append (menu, \"Quit\", \"app.quit\");\n"
+"\n"
+"  /* Create a new simple action for the application. (In this case it is the \n"
+"   * \"quit\" action.\n"
+"   */\n"
+"  quit_action = g_simple_action_new (\"quit\", NULL);\n"
+"\n"
+"  /* Ensure that the menu we have just created is set for the overall application */\n"
+"  gtk_application_set_app_menu (GTK_APPLICATION (app), G_MENU_MODEL (menu));\n"
+"\n"
+"  g_signal_connect (quit_action, \n"
+"                    \"activate\", \n"
+"                    G_CALLBACK (quit_cb), \n"
+"                    app);\n"
+"\n"
+"  g_action_map_add_action (G_ACTION_MAP (app), G_ACTION (quit_action));\n"
+"\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"/* Startup function for the application */\n"
+"int\n"
+"main (int argc, char **argv)\n"
+"{\n"
+"  GtkApplication *app;\n"
+"  int status;\n"
+"\n"
+"  app = gtk_application_new (\"org.gtk.example\", G_APPLICATION_FLAGS_NONE);\n"
+"  g_signal_connect (app, \"activate\", G_CALLBACK (activate), NULL);\n"
+"  g_signal_connect (app, \"startup\", G_CALLBACK (startup), NULL);\n"
+"  status = g_application_run (G_APPLICATION (app), argc, argv);\n"
+"  g_object_unref (app);\n"
+"\n"
+"  return status;\n"
+"}\n"
+msgstr ""
+"\n"
+"#include &lt;gtk/gtk.h&gt;\n"
+"\n"
+"\n"
+"\n"
+"/* Callback function in which reacts to the \"response\" signal from the user in\n"
+" * the message dialog window.\n"
+" * This function is used to destroy the dialog window.\n"
+" */\n"
+"static void\n"
+"on_close (GtkDialog *dialog,\n"
+"          gint       response_id,\n"
+"          gpointer   user_data)\n"
+"{\n"
+"  /*This will cause the dialog to be destroyed*/\n"
+"  gtk_widget_destroy (GTK_WIDGET (dialog));\n"
+"\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"/* Callback function for the response signal \"activate\" related to the SimpleAction\n"
+" * \"about_action\".\n"
+" * This function is used to cause the about dialog window to popup.\n"
+" */\n"
+"static void\n"
+"about_cb (GSimpleAction *simple,\n"
+"          GVariant      *parameter,\n"
+"          gpointer       user_data)\n"
+"{\n"
+"   GtkWidget *about_dialog;\n"
+"\n"
+"   about_dialog = gtk_about_dialog_new ();\n"
+"\n"
+"   /* Lists of authors/ documentators to be used later, they must be initialized\n"
+"    * in a null terminated array of strings.\n"
+"    */\n"
+"   const gchar *authors[] = {\"GNOME Documentation Team\", NULL};\n"
+"   const gchar *documenters[] = {\"GNOME Documentation Team\", NULL};\n"
+"\n"
+"   /* We fill in the information for the about dialog */\n"
+"   gtk_about_dialog_set_program_name (GTK_ABOUT_DIALOG (about_dialog), \"AboutDialog Example\");\n"
+"   gtk_about_dialog_set_copyright (GTK_ABOUT_DIALOG (about_dialog), \"Copyright \\xc2\\xa9 2012 GNOME Documentation Team\");\n"
+"   gtk_about_dialog_set_authors (GTK_ABOUT_DIALOG (about_dialog), authors);\n"
+"   gtk_about_dialog_set_documenters (GTK_ABOUT_DIALOG (about_dialog), documenters);\n"
+"   gtk_about_dialog_set_website_label (GTK_ABOUT_DIALOG (about_dialog), \"GNOME Developer Website\");\n"
+"   gtk_about_dialog_set_website (GTK_ABOUT_DIALOG (about_dialog), \"http://developer.gnome.org\";);\n"
+"\n"
+"  /* We do not wish to show the title, which in this case would be \n"
+"   * \"AboutDialog Example\". We have to reset the title of the messagedialog \n"
+"   * window after setting the program name.\n"
+"   */\n"
+"  gtk_window_set_title (GTK_WINDOW (about_dialog), \"\");\n"
+"\n"
+"  /* To close the aboutdialog when \"close\" is clicked we connect the response \n"
+"   * signal to on_close\n"
+"   */\n"
+"  g_signal_connect (GTK_DIALOG (about_dialog), \"response\", \n"
+"                    G_CALLBACK (on_close), NULL);\n"
+"\n"
+"  /* Show the about dialog */\n"
+"  gtk_widget_show (about_dialog); \n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"static void\n"
+"activate (GtkApplication *app,\n"
+"          gpointer        user_data)\n"
+"{\n"
+"  GtkWidget *window;\n"
+"\n"
+"  GSimpleAction *about_action;\n"
+"\n"
+"  /* Create a window with a title and a default size */\n"
+"  window = gtk_application_window_new (app);\n"
+"  gtk_window_set_title (GTK_WINDOW (window), \"AboutDialog Example\");\n"
+"  gtk_window_set_default_size (GTK_WINDOW (window), 200, 200);\n"
+"\n"
+"  /* Create a new simple action, giving it a NULL parameter type. It will \n"
+"   * always be NULL for actions invoked from a menu. (e.g clicking on an \"ok\" \n"
+"   * or \"cancel\" button)\n"
+"   */\n"
+"  about_action = g_simple_action_new (\"about\", NULL); \n"
+"\n"
+"  /* Connect the \"activate\" signal to the appropriate callback function. \n"
+"   * It will indicate that the action was just activated.\n"
+"   */\n"
+"  g_signal_connect (about_action, \"activate\", G_CALLBACK (about_cb), \n"
+"                    GTK_WINDOW (window));\n"
+"\n"
+"  /* Adds the about_action to the overall action map. An Action map is an \n"
+"   * interface that contains a number of named GAction instances \n"
+"   * (such as about_action) \n"
+"   */\n"
+"  g_action_map_add_action (G_ACTION_MAP (window), G_ACTION (about_action));\n"
+"\n"
+"  gtk_widget_show_all (window);\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"/* Callback function for the response signal \"activate\" from the \"quit\" action \n"
+" * found in the function directly below.\n"
+" */ \n"
+"static void\n"
+"quit_cb (GSimpleAction *simple,\n"
+"         GVariant      *parameter,\n"
+"         gpointer       user_data)\n"
+"{\n"
+"  GApplication *application = user_data;\n"
+"\n"
+"  g_application_quit (application);\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"/* Startup function for the menu we are creating in this sample */\n"
+"static void\n"
+"startup (GApplication *app,\n"
+"         gpointer      user_data)\n"
+"{\n"
+"  GMenu *menu;\n"
+"  GSimpleAction *quit_action;\n"
+"\n"
+"  /* Initialize the GMenu, and add a menu item with label \"About\" and action \n"
+"   * \"win.about\". Also add another menu item with label \"Quit\" and action \n"
+"   * \"app.quit\" \n"
+"   */\n"
+"  menu = g_menu_new ();\n"
+"  g_menu_append (menu, \"About\", \"win.about\");\n"
+"  g_menu_append (menu, \"Quit\", \"app.quit\");\n"
+"\n"
+"  /* Create a new simple action for the application. (In this case it is the \n"
+"   * \"quit\" action.\n"
+"   */\n"
+"  quit_action = g_simple_action_new (\"quit\", NULL);\n"
+"\n"
+"  /* Ensure that the menu we have just created is set for the overall application */\n"
+"  gtk_application_set_app_menu (GTK_APPLICATION (app), G_MENU_MODEL (menu));\n"
+"\n"
+"  g_signal_connect (quit_action, \n"
+"                    \"activate\", \n"
+"                    G_CALLBACK (quit_cb), \n"
+"                    app);\n"
+"\n"
+"  g_action_map_add_action (G_ACTION_MAP (app), G_ACTION (quit_action));\n"
+"\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"/* Startup function for the application */\n"
+"int\n"
+"main (int argc, char **argv)\n"
+"{\n"
+"  GtkApplication *app;\n"
+"  int status;\n"
+"\n"
+"  app = gtk_application_new (\"org.gtk.example\", G_APPLICATION_FLAGS_NONE);\n"
+"  g_signal_connect (app, \"activate\", G_CALLBACK (activate), NULL);\n"
+"  g_signal_connect (app, \"startup\", G_CALLBACK (startup), NULL);\n"
+"  status = g_application_run (G_APPLICATION (app), argc, argv);\n"
+"  g_object_unref (app);\n"
+"\n"
+"  return status;\n"
+"}\n"
+
+#: C/aboutdialog.c.page:30(page/p) C/aboutdialog.js.page:24(page/p)
+#: C/aboutdialog.py.page:41(section/p) C/aboutdialog.vala.page:34(page/p)
+#: C/button.c.page:29(page/p) C/button.js.page:26(page/p)
+#: C/button.py.page:50(section/p) C/buttonbox.py.page:45(section/p)
+#: C/checkbutton.c.page:25(page/p) C/checkbutton.py.page:44(section/p)
+#: C/checkbutton.vala.page:25(page/p) C/colorbutton.py.page:38(section/p)
+#: C/colorbutton.vala.page:27(page/p) C/comboboxtext.js.page:176(section/p)
+#: C/combobox.js.page:233(section/p) C/combobox.py.page:38(section/p)
+#: C/combobox.vala.page:25(page/p)
+#: C/combobox_multicolumn.py.page:41(section/p) C/dialog.c.page:29(page/p)
+#: C/dialog.js.page:25(page/p) C/dialog.py.page:45(section/p)
+#: C/dialog.vala.page:27(page/p) C/entry.c.page:27(page/p)
+#: C/entry.js.page:25(page/p) C/entry.py.page:59(section/p)
+#: C/entry.vala.page:25(page/p) C/filechooserdialog.py.page:69(section/p)
+#: C/filechooserdialog.vala.page:35(section/p)
+#: C/fontchooserwidget.py.page:43(section/p) C/gmenu.c.page:27(page/p)
+#: C/gmenu.js.page:25(page/p) C/gmenu.py.page:74(section/p)
+#: C/gmenu.vala.page:37(page/p) C/grid.c.page:27(page/p)
+#: C/grid.js.page:29(page/p) C/grid.py.page:53(section/p)
+#: C/grid.vala.page:27(page/p) C/GtkApplicationWindow.c.page:25(page/p)
+#: C/GtkApplicationWindow.js.page:26(page/p)
+#: C/GtkApplicationWindow.py.page:48(section/p)
+#: C/GtkApplicationWindow.vala.page:26(page/p) C/image.c.page:28(page/p)
+#: C/image.js.page:27(page/p) C/image.py.page:98(section/p)
+#: C/image.vala.page:27(page/p) C/label.c.page:32(page/p)
+#: C/label.js.page:25(page/p) C/label.py.page:86(section/p)
+#: C/label.vala.page:26(page/p) C/linkbutton.c.page:27(page/p)
+#: C/linkbutton.js.page:25(page/p) C/linkbutton.py.page:44(section/p)
+#: C/linkbutton.vala.page:25(page/p) C/menubar.py.page:181(section/p)
+#: C/menubar.vala.page:187(section/p) C/menubutton.js.page:28(page/p)
+#: C/menubutton.py.page:50(section/p) C/menubutton.vala.page:28(page/p)
+#: C/messagedialog.c.page:31(page/p) C/messagedialog.js.page:189(section/p)
+#: C/messagedialog.py.page:54(section/p) C/messagedialog.vala.page:26(page/p)
+#: C/paned.py.page:38(section/p) C/progressbar.c.page:28(page/p)
+#: C/progressbar.js.page:34(page/p) C/progressbar.py.page:53(section/p)
+#: C/progressbar.vala.page:25(page/p) C/radiobutton.c.page:29(page/p)
+#: C/radiobutton.py.page:49(section/p) C/radiobutton.vala.page:28(page/p)
+#: C/scale.c.page:29(page/p) C/scale.py.page:53(section/p)
+#: C/scale.vala.page:27(page/p) C/scrolledwindow.py.page:41(section/p)
+#: C/scrolledwindow.vala.page:26(page/p) C/separator.py.page:35(section/p)
+#: C/spinbutton.c.page:30(page/p) C/spinbutton.py.page:45(section/p)
+#: C/spinbutton.vala.page:27(page/p) C/spinner.c.page:28(page/p)
+#: C/spinner.js.page:25(page/p) C/spinner.py.page:38(section/p)
+#: C/spinner.vala.page:25(page/p) C/statusbar.c.page:31(page/p)
+#: C/statusbar.py.page:50(section/p) C/statusbar.vala.page:28(page/p)
+#: C/switch.c.page:28(page/p) C/switch.py.page:46(section/p)
+#: C/switch.vala.page:31(page/p) C/textview.c.page:31(page/p)
+#: C/textview.py.page:93(section/p) C/textview.vala.page:30(page/p)
+#: C/togglebutton.c.page:31(page/p) C/togglebutton.py.page:43(section/p)
+#: C/togglebutton.vala.page:28(page/p) C/toolbar.js.page:26(page/p)
+#: C/toolbar.py.page:50(section/p) C/toolbar.vala.page:29(page/p)
+#: C/toolbar_builder.py.page:189(section/p)
+#: C/toolbar_builder.vala.page:146(page/p) C/tooltip.py.page:53(section/p)
+#: C/treeview_advanced_liststore.py.page:43(section/p)
+#: C/treeview_cellrenderertoggle.py.page:39(section/p)
+#: C/treeview_simple_liststore.js.page:272(section/p)
+#: C/treeview_simple_liststore.py.page:41(section/p)
+#: C/treeview_simple_liststore.vala.page:27(page/p)
+#: C/treeview_treestore.py.page:39(section/p) C/window.c.page:29(page/p)
+#: C/window.py.page:60(section/p) C/window.vala.page:33(page/p)
+msgid "In this sample we used the following:"
+msgstr "ÎÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎÎ ÏÎ ÏÎÏÎÎÎÏÏ:"
+
+#: C/aboutdialog.c.page:34(item/p) C/button.c.page:33(item/p)
+#: C/dialog.c.page:33(item/p) C/entry.c.page:31(item/p)
+#: C/grid.c.page:31(item/p) C/GtkApplicationWindow.c.page:29(item/p)
+#: C/image.c.page:32(item/p) C/label.c.page:36(item/p)
+#: C/linkbutton.c.page:31(item/p) C/messagedialog.c.page:35(item/p)
+#: C/progressbar.c.page:32(item/p) C/radiobutton.c.page:33(item/p)
+#: C/scale.c.page:33(item/p) C/spinbutton.c.page:34(item/p)
+#: C/spinner.c.page:32(item/p) C/statusbar.c.page:35(item/p)
+#: C/switch.c.page:32(item/p) C/textview.c.page:35(item/p)
+#: C/togglebutton.c.page:35(item/p) C/window.c.page:33(item/p)
+msgid ""
+"<link href=\"http://developer.gnome.org/gtk3/3.4/GtkApplication.html";
+"\">GtkApplication</link>"
+msgstr ""
+"<link href=\"http://developer.gnome.org/gtk3/3.4/GtkApplication.html";
+"\">GtkApplication</link>"
+
+#: C/aboutdialog.c.page:35(item/p) C/button.c.page:34(item/p)
+#: C/dialog.c.page:34(item/p) C/entry.c.page:32(item/p)
+#: C/grid.c.page:32(item/p) C/linkbutton.c.page:32(item/p)
+#: C/messagedialog.c.page:37(item/p) C/progressbar.c.page:33(item/p)
+#: C/radiobutton.c.page:34(item/p) C/scale.c.page:34(item/p)
+#: C/spinbutton.c.page:35(item/p) C/spinner.c.page:33(item/p)
+#: C/statusbar.c.page:36(item/p) C/switch.c.page:33(item/p)
+#: C/textview.c.page:36(item/p) C/togglebutton.c.page:36(item/p)
+#: C/window.c.page:34(item/p)
+msgid ""
+"<link href=\"http://developer.gnome.org/gtk3/3.4/GtkWindow.html\";>GtkWindow</"
+"link>"
+msgstr ""
+"<link href=\"http://developer.gnome.org/gtk3/3.4/GtkWindow.html\";>GtkWindow</"
+"link>"
+
+#: C/aboutdialog.c.page:36(item/p)
+msgid ""
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkAboutDialog.html";
+"\">GtkAboutDialog</link>"
+msgstr ""
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkAboutDialog.html";
+"\">GtkAboutDialog</link>"
+
+#: C/aboutdialog.c.page:37(item/p) C/aboutdialog.py.page:47(item/p)
+#: C/messagedialog.c.page:41(item/p) C/messagedialog.py.page:63(item/p)
+msgid ""
+"<link href=\"http://developer.gnome.org/gio/stable/GMenu.html\";>GMenu</link>"
+msgstr ""
+"<link href=\"http://developer.gnome.org/gio/stable/GMenu.html\";>GMenu</link>"
+
+#: C/aboutdialog.c.page:38(item/p) C/messagedialog.c.page:40(item/p)
+msgid ""
+"<link href=\"http://developer.gnome.org/gio/stable/GActionMap.html";
+"\">GActionMap</link>"
+msgstr ""
+"<link href=\"http://developer.gnome.org/gio/stable/GActionMap.html";
+"\">GActionMap</link>"
+
+#: C/aboutdialog.js.page:6(info/title)
+msgctxt "text"
+msgid "AboutDialog (JavaScript)"
+msgstr "AboutDialog (JavaScript)"
+
+#: C/aboutdialog.js.page:21(page/p)
+msgid ""
+"A modal dialog window which shows information about an application and its "
+"creators. This one is triggered by clicking \"About\" in the application's "
+"menu, which is normally a good place to put it."
+msgstr ""
+"ÎÎÎ ÏÎÏÎÎÏÏÎ ÎÎÎÎÎÎÏÏÎÎÎÏ ÎÎÎÎÏÎÎÏ ÏÎÏ ÎÎÏÎÎÎÎÎÎ ÏÎÎÏÎÏÎÏÎÎÏ ÎÎÎ ÎÎÎ "
+"ÎÏÎÏÎÎÎÎ ÎÎÎ ÏÎÏÏ ÎÎÎÎÎÏÏÎÎÏÏ ÏÎÏ. ÎÏÏÏ ÎÎÏÎÎÎÎÎÏÎÎ ÎÎ ÎÎÎÎ ÏÏÎ \"ÎÎÏÎ\" ÏÏÎ "
+"ÎÎÎÎÏ ÏÎÏ ÎÏÎÏÎÎÎÎÏ, ÏÎÏ ÎÎÎÎÎ ÎÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎÎ ÎÎÏÎ ÎÎÎ ÎÎ ÏÎ ÎÎÎÎÏÎ."
+
+#: C/aboutdialog.js.page:23(page/code)
+#, no-wrap
+msgid ""
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gio = imports.gi.Gio;\n"
+"const GLib = imports.gi.GLib;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"const AboutDialogExample = new Lang.Class({\n"
+"    Name: 'AboutDialog Example',\n"
+"\n"
+"    // Create the application itself\n"
+"        _init: function() {\n"
+"            this.application = new Gtk.Application({\n"
+"                application_id: 'org.example.jsaboutdialog',\n"
+"                flags: Gio.ApplicationFlags.FLAGS_NONE\n"
+"            });\n"
+"\n"
+"    // Connect 'activate' and 'startup' signals to the callback functions\n"
+"    this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"    this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents windows when active\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal creates the menu and builds the UI\n"
+"    _onStartup: function() {\n"
+"        this._initMenus();\n"
+"        this._buildUI();\n"
+"    },\n"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function(){\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow({ application: this.application,\n"
+"                                                   window_position: Gtk.WindowPosition.CENTER,\n"
+"                                                   title: \"AboutDialog Example\",\n"
+"                                                   default_height: 250,\n"
+"                                                   default_width: 350 });\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    },\n"
+"\n"
+"    // Create the application menu\n"
+"    _initMenus: function() {\n"
+"        let menu = new Gio.Menu();\n"
+"        menu.append(\"About\", 'app.about');\n"
+"        menu.append(\"Quit\",'app.quit');\n"
+"        this.application.set_app_menu(menu);\n"
+"\n"
+"        // Create the \"About\" menu option and have it call the _showAbout() function\n"
+"        let aboutAction = new Gio.SimpleAction({ name: 'about' });\n"
+"        aboutAction.connect('activate', Lang.bind(this,\n"
+"            function() {\n"
+"                this._showAbout();\n"
+"            }));\n"
+"        this.application.add_action(aboutAction);\n"
+"\n"
+"        // Create the \"Quit\" menu option and have it close the window\n"
+"        let quitAction = new Gio.SimpleAction ({ name: 'quit' });\n"
+"        quitAction.connect('activate', Lang.bind(this,\n"
+"            function() {\n"
+"                this._window.destroy();\n"
+"            }));\n"
+"        this.application.add_action(quitAction);\n"
+"    },\n"
+"\n"
+"    _showAbout: function() {\n"
+"\n"
+"        // String arrays of the names of the people involved in the project\n"
+"        var authors = [\"GNOME Documentation Team\"];\n"
+"        var documenters = [\"GNOME Documentation Team\"];\n"
+"\n"
+"        // Create the About dialog\n"
+"        let aboutDialog = new Gtk.AboutDialog({ title: \"AboutDialog Example\",\n"
+"                                                program_name: \"GtkApplication Example\",\n"
+"                                                copyright: \"Copyright \\xa9 2012 GNOME Documentation Team\",\n"
+"                                                authors: authors,\n"
+"                                                documenters: documenters,\n"
+"                                                website: \"http://developer.gnome.org\",\n";
+"                                                website_label: \"GNOME Developer Website\" });\n"
+"\n"
+"        // Attach the About dialog to the window\n"
+"        aboutDialog.modal = true;\n"
+"        aboutDialog.transient_for = this._window;\n"
+"\n"
+"        // Show the About dialog\n"
+"        aboutDialog.show();\n"
+"\n"
+"        // Connect the Close button to the destroy signal for the dialog\n"
+"        aboutDialog.connect('response', function() {\n"
+"            aboutDialog.destroy();\n"
+"        });\n"
+"    }\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new AboutDialogExample();\n"
+"app.application.run(ARGV);\n"
+msgstr ""
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gio = imports.gi.Gio;\n"
+"const GLib = imports.gi.GLib;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"const AboutDialogExample = new Lang.Class({\n"
+"    Name: 'AboutDialog Example',\n"
+"\n"
+"    // Create the application itself\n"
+"        _init: function() {\n"
+"            this.application = new Gtk.Application({\n"
+"                application_id: 'org.example.jsaboutdialog',\n"
+"                flags: Gio.ApplicationFlags.FLAGS_NONE\n"
+"            });\n"
+"\n"
+"    // Connect 'activate' and 'startup' signals to the callback functions\n"
+"    this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"    this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents windows when active\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal creates the menu and builds the UI\n"
+"    _onStartup: function() {\n"
+"        this._initMenus();\n"
+"        this._buildUI();\n"
+"    },\n"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function(){\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow({ application: this.application,\n"
+"                                                   window_position: Gtk.WindowPosition.CENTER,\n"
+"                                                   title: \"AboutDialog Example\",\n"
+"                                                   default_height: 250,\n"
+"                                                   default_width: 350 });\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    },\n"
+"\n"
+"    // Create the application menu\n"
+"    _initMenus: function() {\n"
+"        let menu = new Gio.Menu();\n"
+"        menu.append(\"About\", 'app.about');\n"
+"        menu.append(\"Quit\",'app.quit');\n"
+"        this.application.set_app_menu(menu);\n"
+"\n"
+"        // Create the \"About\" menu option and have it call the _showAbout() function\n"
+"        let aboutAction = new Gio.SimpleAction({ name: 'about' });\n"
+"        aboutAction.connect('activate', Lang.bind(this,\n"
+"            function() {\n"
+"                this._showAbout();\n"
+"            }));\n"
+"        this.application.add_action(aboutAction);\n"
+"\n"
+"        // Create the \"Quit\" menu option and have it close the window\n"
+"        let quitAction = new Gio.SimpleAction ({ name: 'quit' });\n"
+"        quitAction.connect('activate', Lang.bind(this,\n"
+"            function() {\n"
+"                this._window.destroy();\n"
+"            }));\n"
+"        this.application.add_action(quitAction);\n"
+"    },\n"
+"\n"
+"    _showAbout: function() {\n"
+"\n"
+"        // String arrays of the names of the people involved in the project\n"
+"        var authors = [\"GNOME Documentation Team\"];\n"
+"        var documenters = [\"GNOME Documentation Team\"];\n"
+"\n"
+"        // Create the About dialog\n"
+"        let aboutDialog = new Gtk.AboutDialog({ title: \"AboutDialog Example\",\n"
+"                                                program_name: \"GtkApplication Example\",\n"
+"                                                copyright: \"Copyright \\xa9 2012 GNOME Documentation Team\",\n"
+"                                                authors: authors,\n"
+"                                                documenters: documenters,\n"
+"                                                website: \"http://developer.gnome.org\",\n";
+"                                                website_label: \"GNOME Developer Website\" });\n"
+"\n"
+"        // Attach the About dialog to the window\n"
+"        aboutDialog.modal = true;\n"
+"        aboutDialog.transient_for = this._window;\n"
+"\n"
+"        // Show the About dialog\n"
+"        aboutDialog.show();\n"
+"\n"
+"        // Connect the Close button to the destroy signal for the dialog\n"
+"        aboutDialog.connect('response', function() {\n"
+"            aboutDialog.destroy();\n"
+"        });\n"
+"    }\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new AboutDialogExample();\n"
+"app.application.run(ARGV);\n"
+
+#: C/aboutdialog.js.page:28(item/p) C/gmenu.c.page:31(item/p)
+#: C/gmenu.js.page:29(item/p) C/gmenu.py.page:76(item/p)
+#: C/messagedialog.js.page:193(item/p) C/switch.js.page:265(item/p)
+msgid ""
+"<link href=\"http://developer.gnome.org/gio/unstable/GMenu.html\";>GMenu</"
+"link>"
+msgstr ""
+"<link href=\"http://developer.gnome.org/gio/unstable/GMenu.html\";>GMenu</"
+"link>"
+
+#: C/aboutdialog.js.page:29(item/p) C/filechooserdialog.py.page:78(item/p)
+#: C/gmenu.c.page:32(item/p) C/gmenu.js.page:30(item/p)
+#: C/gmenu.py.page:77(item/p) C/messagedialog.js.page:194(item/p)
+#: C/messagedialog.py.page:61(item/p) C/switch.js.page:266(item/p)
+msgid ""
+"<link href=\"http://developer.gnome.org/gio/stable/GSimpleAction.html";
+"\">GSimpleAction</link>"
+msgstr ""
+"<link href=\"http://developer.gnome.org/gio/stable/GSimpleAction.html";
+"\">GSimpleAction</link>"
+
+#: C/aboutdialog.js.page:30(item/p)
+msgid ""
+"<link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.AboutDialog.";
+"html\">Gtk.AboutDialog</link>"
+msgstr ""
+"<link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.AboutDialog.";
+"html\">Gtk.AboutDialog</link>"
+
+#: C/aboutdialog.js.page:31(item/p) C/button.js.page:30(item/p)
+#: C/checkbutton.js.page:137(item/p) C/comboboxtext.js.page:180(item/p)
+#: C/combobox.js.page:237(item/p) C/dialog.js.page:29(item/p)
+#: C/entry.js.page:29(item/p) C/grid.js.page:33(item/p)
+#: C/GtkApplicationWindow.js.page:30(item/p) C/image.js.page:31(item/p)
+#: C/label.js.page:29(item/p) C/linkbutton.js.page:29(item/p)
+#: C/messagedialog.js.page:195(item/p) C/progressbar.js.page:39(item/p)
+#: C/radiobutton.js.page:275(item/p) C/scale.js.page:210(item/p)
+#: C/spinbutton.js.page:201(item/p) C/spinner.js.page:30(item/p)
+#: C/statusbar.js.page:222(item/p) C/switch.js.page:267(item/p)
+#: C/textview.js.page:249(item/p) C/togglebutton.js.page:154(item/p)
+#: C/treeview_simple_liststore.js.page:276(item/p) C/window.js.page:38(item/p)
+msgid ""
+"<link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Application.";
+"html\">Gtk.Application</link>"
+msgstr ""
+"<link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Application.";
+"html\">Gtk.Application</link>"
+
+#: C/aboutdialog.js.page:32(item/p) C/button.js.page:31(item/p)
+#: C/checkbutton.js.page:138(item/p) C/comboboxtext.js.page:181(item/p)
+#: C/combobox.js.page:238(item/p) C/dialog.js.page:30(item/p)
+#: C/entry.js.page:30(item/p) C/grid.js.page:34(item/p)
+#: C/GtkApplicationWindow.js.page:31(item/p) C/image.js.page:32(item/p)
+#: C/label.js.page:30(item/p) C/linkbutton.js.page:30(item/p)
+#: C/messagedialog.js.page:196(item/p) C/progressbar.js.page:40(item/p)
+#: C/radiobutton.js.page:276(item/p) C/scale.js.page:211(item/p)
+#: C/spinbutton.js.page:202(item/p) C/spinner.js.page:31(item/p)
+#: C/statusbar.js.page:223(item/p) C/switch.js.page:268(item/p)
+#: C/textview.js.page:250(item/p) C/togglebutton.js.page:155(item/p)
+#: C/treeview_simple_liststore.js.page:277(item/p)
+msgid ""
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkApplicationWindow.html";
+"\">Gtk.ApplicationWindow</link>"
+msgstr ""
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkApplicationWindow.html";
+"\">Gtk.ApplicationWindow</link>"
+
+#: C/aboutdialog.py.page:7(info/title)
+msgctxt "text"
+msgid "AboutDialog (Python)"
+msgstr "AboutDialog (Python)"
+
+#: C/aboutdialog.py.page:13(credit/name) C/button.py.page:13(credit/name)
+#: C/buttonbox.py.page:13(credit/name) C/checkbutton.py.page:13(credit/name)
+#: C/colorbutton.py.page:12(credit/name) C/combobox.py.page:12(credit/name)
+#: C/combobox_multicolumn.py.page:13(credit/name)
+#: C/dialog.py.page:13(credit/name) C/entry.py.page:12(credit/name)
+#: C/filechooserdialog.py.page:15(credit/name)
+#: C/fontchooserwidget.py.page:13(credit/name) C/gmenu.py.page:18(credit/name)
+#: C/grid.py.page:19(credit/name)
+#: C/GtkApplicationWindow.py.page:17(credit/name)
+#: C/image.py.page:12(credit/name) C/label.py.page:13(credit/name)
+#: C/linkbutton.py.page:13(credit/name) C/menubar.py.page:19(credit/name)
+#: C/menubutton.py.page:18(credit/name)
+#: C/messagedialog.py.page:13(credit/name)
+#: C/model-view-controller.py.page:19(credit/name)
+#: C/paned.py.page:12(credit/name) C/progressbar.py.page:12(credit/name)
+#: C/properties.py.page:19(credit/name) C/radiobutton.py.page:16(credit/name)
+#: C/scale.py.page:13(credit/name) C/scrolledwindow.py.page:12(credit/name)
+#: C/separator.py.page:13(credit/name)
+#: C/signals-callbacks.py.page:19(credit/name)
+#: C/spinbutton.py.page:13(credit/name) C/spinner.py.page:12(credit/name)
+#: C/statusbar.py.page:15(credit/name) C/strings.py.page:19(credit/name)
+#: C/switch.py.page:17(credit/name) C/textview.py.page:20(credit/name)
+#: C/togglebutton.py.page:15(credit/name) C/toolbar.py.page:13(credit/name)
+#: C/toolbar_builder.py.page:20(credit/name) C/tooltip.py.page:13(credit/name)
+#: C/treeview_advanced_liststore.py.page:15(credit/name)
+#: C/treeview_cellrenderertoggle.py.page:12(credit/name)
+#: C/treeview_simple_liststore.py.page:14(credit/name)
+#: C/treeview_treestore.py.page:12(credit/name)
+#: C/tutorial.py.page:19(credit/name) C/window.py.page:17(credit/name)
+msgid "Marta Maria Casetti"
+msgstr "Marta Maria Casetti"
+
+#: C/aboutdialog.py.page:18(info/desc)
+msgid "A window that displays information about an application"
+msgstr "ÎÎÎ ÏÎÏÎÎÏÏÎ ÏÎÏ ÎÎÏÎÎÎÎÎÎ ÏÎÎÏÎÏÎÏÎÎÏ ÎÎÎ ÎÎÎ ÎÏÎÏÎÎÎÎ"
+
+#: C/aboutdialog.py.page:23(page/p)
+msgid ""
+"An AboutDialog example using Gtk.ApplicationWindow and Menu (the \"about\" "
+"is displayed if \"About\" in the menu is selected)."
+msgstr ""
+"ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ AboutDialog ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ Gtk.ApplicationWindow ÎÎÎ ÎÎÎÎÏ "
+"(ÏÎ \"ÏÎÏÎ\" ÎÎÏÎÎÎÎÎÏÎÎ ÎÎÎ ÎÏÎÎÎÎÎÎ ÏÎ \"ÎÎÏÎ\" ÏÏÎ ÎÎÎÎÏ)."
+
+#: C/aboutdialog.py.page:28(section/title) C/button.py.page:29(section/title)
+#: C/buttonbox.py.page:29(section/title)
+#: C/checkbutton.py.page:28(section/title)
+#: C/colorbutton.py.page:27(section/title)
+#: C/combobox.py.page:27(section/title)
+#: C/combobox_multicolumn.py.page:28(section/title)
+#: C/dialog.py.page:28(section/title) C/entry.py.page:32(section/title)
+#: C/filechooserdialog.py.page:51(section/title)
+#: C/fontchooserwidget.py.page:29(section/title)
+#: C/gmenu.py.page:34(section/title) C/grid.py.page:35(section/title)
+#: C/GtkApplicationWindow.py.page:32(section/title)
+#: C/image.py.page:31(section/title) C/label.py.page:33(section/title)
+#: C/linkbutton.py.page:29(section/title)
+#: C/menubutton.py.page:35(section/title)
+#: C/messagedialog.py.page:28(section/title) C/paned.py.page:27(section/title)
+#: C/progressbar.py.page:37(section/title)
+#: C/radiobutton.py.page:31(section/title) C/scale.py.page:28(section/title)
+#: C/scrolledwindow.py.page:27(section/title)
+#: C/separator.py.page:29(section/title)
+#: C/spinbutton.py.page:28(section/title) C/spinner.py.page:27(section/title)
+#: C/statusbar.py.page:30(section/title) C/switch.py.page:34(section/title)
+#: C/textview.py.page:42(section/title)
+#: C/togglebutton.py.page:30(section/title)
+#: C/toolbar.py.page:29(section/title)
+#: C/toolbar_builder.py.page:162(section/title)
+#: C/tooltip.py.page:28(section/title)
+#: C/treeview_advanced_liststore.py.page:30(section/title)
+#: C/treeview_cellrenderertoggle.py.page:27(section/title)
+#: C/treeview_simple_liststore.py.page:29(section/title)
+#: C/treeview_treestore.py.page:27(section/title)
+#: C/window.py.page:42(section/title)
+msgid "Code used to generate this example"
+msgstr "Î ÏÏÎÏÎÎÎÏÎÎÎÏÎÎÎÎÏ ÎÏÎÎÎÎÏ ÎÎÎ ÏÎÏÎÎÏÎÎ ÎÏÏÎÏ ÏÎÏÎÎÎÎÎÎÎÏÎÏ"
+
+#: C/aboutdialog.py.page:30(section/code)
+#, no-wrap
+msgid ""
+"from gi.repository import Gtk\n"
+"from gi.repository import Gio\n"
+"import sys\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"\n"
+"     # constructor for a window (the parent window)\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"AboutDialog Example\", application=app)\n"
+"        self.set_default_size(200, 200)\n"
+"\n"
+"        # create the about_action (a Gio.SimpleAction)\n"
+"        about_action = Gio.SimpleAction.new(\"about\", None)\n"
+"        # connect the signal from the action to the function about_cb()\n"
+"        about_action.connect(\"activate\", self.about_cb)\n"
+"        # add the action to the application\n"
+"        app.add_action(about_action)\n"
+"\n"
+"    # callback function for the about_action's \"activate\" signal\n"
+"    def about_cb(self, action, parameter):\n"
+"        # a  Gtk.AboutDialog\n"
+"        aboutdialog = Gtk.AboutDialog()\n"
+"\n"
+"        # lists of authors and documenters (will be used later)\n"
+"        authors = [\"GNOME Documentation Team\"]\n"
+"        documenters = [\"GNOME Documentation Team\"]\n"
+"\n"
+"        # we fill in the aboutdialog\n"
+"        aboutdialog.set_program_name(\"AboutDialog Example\")\n"
+"        aboutdialog.set_copyright(\"Copyright \\xc2\\xa9 2012 GNOME Documentation Team\")\n"
+"        aboutdialog.set_authors(authors)\n"
+"        aboutdialog.set_documenters(documenters)\n"
+"        aboutdialog.set_website(\"http://developer.gnome.org\";)\n"
+"        aboutdialog.set_website_label(\"GNOME Developer Website\")\n"
+"\n"
+"        # we do not want to show the title, which by default would be \"About AboutDialog Example\"\n"
+"        # we have to reset the title of the messagedialog window after setting the program name\n"
+"        aboutdialog.set_title(\"\")\n"
+"\n"
+"        # to close the aboutdialog when \"close\" is clicked we connect the\n"
+"        # \"response\" signal to on_close\n"
+"        aboutdialog.connect(\"response\", self.on_close)\n"
+"        # show the aboutdialog\n"
+"        aboutdialog.show()\n"
+"\n"
+"    # destroy the aboutdialog\n"
+"    def on_close(self, action, parameter):\n"
+"        action.destroy()\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def quit_cb(self, action, parameter):\n"
+"        self.quit()\n"
+"\n"
+"    def do_startup (self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"        # create a menu (a Gio.Menu)\n"
+"        menu = Gio.Menu()\n"
+"        # append a menu item with label \"About\" and action \"app.about\"\n"
+"        menu.append (\"About\", \"app.about\")\n"
+"        # append a menu item with label \"Quit\" and action \"app.quit\"\n"
+"        menu.append(\"Quit\", \"app.quit\")\n"
+"        # set menu as the menu for the application\n"
+"        self.set_app_menu (menu)\n"
+"\n"
+"        # a new simpleaction - for the application\n"
+"        quit_action = Gio.SimpleAction.new(\"quit\", None)\n"
+"        quit_action.connect(\"activate\", self.quit_cb)\n"
+"        self.add_action(quit_action)\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
+msgstr ""
+"from gi.repository import Gtk\n"
+"from gi.repository import Gio\n"
+"import sys\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"\n"
+"     # constructor for a window (the parent window)\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"AboutDialog Example\", application=app)\n"
+"        self.set_default_size(200, 200)\n"
+"\n"
+"        # create the about_action (a Gio.SimpleAction)\n"
+"        about_action = Gio.SimpleAction.new(\"about\", None)\n"
+"        # connect the signal from the action to the function about_cb()\n"
+"        about_action.connect(\"activate\", self.about_cb)\n"
+"        # add the action to the application\n"
+"        app.add_action(about_action)\n"
+"\n"
+"    # callback function for the about_action's \"activate\" signal\n"
+"    def about_cb(self, action, parameter):\n"
+"        # a  Gtk.AboutDialog\n"
+"        aboutdialog = Gtk.AboutDialog()\n"
+"\n"
+"        # lists of authors and documenters (will be used later)\n"
+"        authors = [\"GNOME Documentation Team\"]\n"
+"        documenters = [\"GNOME Documentation Team\"]\n"
+"\n"
+"        # we fill in the aboutdialog\n"
+"        aboutdialog.set_program_name(\"AboutDialog Example\")\n"
+"        aboutdialog.set_copyright(\"Copyright \\xc2\\xa9 2012 GNOME Documentation Team\")\n"
+"        aboutdialog.set_authors(authors)\n"
+"        aboutdialog.set_documenters(documenters)\n"
+"        aboutdialog.set_website(\"http://developer.gnome.org\";)\n"
+"        aboutdialog.set_website_label(\"GNOME Developer Website\")\n"
+"\n"
+"        # we do not want to show the title, which by default would be \"About AboutDialog Example\"\n"
+"        # we have to reset the title of the messagedialog window after setting the program name\n"
+"        aboutdialog.set_title(\"\")\n"
+"\n"
+"        # to close the aboutdialog when \"close\" is clicked we connect the\n"
+"        # \"response\" signal to on_close\n"
+"        aboutdialog.connect(\"response\", self.on_close)\n"
+"        # show the aboutdialog\n"
+"        aboutdialog.show()\n"
+"\n"
+"    # destroy the aboutdialog\n"
+"    def on_close(self, action, parameter):\n"
+"        action.destroy()\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def quit_cb(self, action, parameter):\n"
+"        self.quit()\n"
+"\n"
+"    def do_startup (self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"        # create a menu (a Gio.Menu)\n"
+"        menu = Gio.Menu()\n"
+"        # append a menu item with label \"About\" and action \"app.about\"\n"
+"        menu.append (\"About\", \"app.about\")\n"
+"        # append a menu item with label \"Quit\" and action \"app.quit\"\n"
+"        menu.append(\"Quit\", \"app.quit\")\n"
+"        # set menu as the menu for the application\n"
+"        self.set_app_menu (menu)\n"
+"\n"
+"        # a new simpleaction - for the application\n"
+"        quit_action = Gio.SimpleAction.new(\"quit\", None)\n"
+"        quit_action.connect(\"activate\", self.quit_cb)\n"
+"        self.add_action(quit_action)\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
+
+#: C/aboutdialog.py.page:35(section/title)
+msgid "Useful methods for an AboutDialog widget"
+msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ AboutDialog"
+
+#: C/aboutdialog.py.page:36(section/p) C/button.py.page:34(section/p)
+#: C/dialog.py.page:36(section/p) C/fontchooserwidget.py.page:34(section/p)
+#: C/messagedialog.py.page:36(section/p) C/radiobutton.py.page:37(section/p)
+#: C/togglebutton.py.page:38(section/p)
+msgid ""
+"For an explanation of signals and callback functions, see <link xref="
+"\"signals-callbacks.py\">this page</link>."
+msgstr ""
+"ÎÎÎ ÎÎÎ ÎÎÎÎÎÏÎ ÏÏÎ ÏÎÎÎÏÏÎ ÎÎÎ ÏÏÎÎÏÏÎÏÎÏÎ ÎÏÎÎÎÎÎÎÏÎÏ, ÎÎÎÏÎ <link xref="
+"\"signals-callbacks.py\">ÎÏÏÎÎ ÏÎ ÏÎÎÎÎÎ</link>."
+
+#: C/aboutdialog.py.page:40(section/title) C/button.py.page:49(section/title)
+#: C/buttonbox.py.page:44(section/title)
+#: C/checkbutton.py.page:43(section/title)
+#: C/colorbutton.py.page:37(section/title)
+#: C/combobox.py.page:37(section/title)
+#: C/combobox_multicolumn.py.page:40(section/title)
+#: C/dialog.py.page:44(section/title) C/entry.py.page:58(section/title)
+#: C/filechooserdialog.py.page:68(section/title)
+#: C/fontchooserwidget.py.page:42(section/title)
+#: C/gmenu.py.page:73(section/title) C/grid.py.page:52(section/title)
+#: C/GtkApplicationWindow.py.page:47(section/title)
+#: C/image.py.page:97(section/title) C/label.py.page:85(section/title)
+#: C/linkbutton.py.page:43(section/title) C/menubar.py.page:180(section/title)
+#: C/menubutton.py.page:49(section/title)
+#: C/messagedialog.py.page:53(section/title) C/paned.py.page:37(section/title)
+#: C/progressbar.py.page:52(section/title)
+#: C/radiobutton.py.page:48(section/title) C/scale.py.page:52(section/title)
+#: C/scrolledwindow.py.page:40(section/title)
+#: C/spinbutton.py.page:44(section/title) C/spinner.py.page:37(section/title)
+#: C/statusbar.py.page:49(section/title) C/switch.py.page:45(section/title)
+#: C/textview.py.page:92(section/title)
+#: C/togglebutton.py.page:42(section/title)
+#: C/toolbar.py.page:49(section/title)
+#: C/toolbar_builder.py.page:188(section/title)
+#: C/tooltip.py.page:52(section/title)
+#: C/treeview_advanced_liststore.py.page:42(section/title)
+#: C/treeview_cellrenderertoggle.py.page:38(section/title)
+#: C/treeview_simple_liststore.py.page:40(section/title)
+#: C/treeview_treestore.py.page:38(section/title)
+#: C/window.py.page:58(section/title)
+msgid "API References"
+msgstr "ÎÎÎÏÎÏÎÏ API"
+
+#: C/aboutdialog.py.page:45(item/p)
+msgid ""
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkAboutDialog.html";
+"\">GtkAboutDialog</link>"
+msgstr ""
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkAboutDialog.html";
+"\">GtkAboutDialog</link>"
+
+#: C/aboutdialog.py.page:46(item/p) C/checkbutton.py.page:47(item/p)
+#: C/grid.py.page:56(item/p) C/GtkApplicationWindow.py.page:53(item/p)
+msgid ""
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkApplicationWindow.";
+"html\">GtkApplicationWindow</link>"
+msgstr ""
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkApplicationWindow.";
+"html\">GtkApplicationWindow</link>"
+
+#: C/aboutdialog.py.page:48(item/p) C/checkbutton.py.page:46(item/p)
+#: C/grid.py.page:55(item/p) C/GtkApplicationWindow.py.page:52(item/p)
+#: C/messagedialog.py.page:64(item/p) C/window.py.page:62(item/p)
+msgid ""
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkApplication.html";
+"\">GtkApplication</link>"
+msgstr ""
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkApplication.html";
+"\">GtkApplication</link>"
+
+#: C/aboutdialog.vala.page:7(info/title)
+msgctxt "text"
+msgid "AboutDialog (Vala)"
+msgstr "AboutDialog (Vala)"
+
+#: C/aboutdialog.vala.page:14(credit/name) C/gmenu.vala.page:13(credit/name)
+msgid "Ryan Lortie"
+msgstr "Ryan Lortie"
+
+#: C/aboutdialog.vala.page:33(page/code)
+#, no-wrap
+msgid ""
+"/* A window in the application */\n"
+"public class Window : Gtk.ApplicationWindow {\n"
+"\n"
+"\t/* The constructor */\n"
+"\tpublic Window (Application app) {\n"
+"\t\tObject (application: app, title: \"AboutDialog Example\");\n"
+"\n"
+"\t\tvar about_action = new SimpleAction (\"about\", null);\n"
+"\n"
+"\t\tabout_action.activate.connect (this.about_cb);\n"
+"\t\tthis.add_action (about_action);\n"
+"\t\tthis.show_all ();\n"
+"\t}\n"
+"\n"
+"\t/* This is the callback function connected to the 'activate' signal\n"
+"\t * of the SimpleAction about_action.\n"
+"\t */\n"
+"\tvoid about_cb (SimpleAction simple, Variant? parameter) {\n"
+"\t\tstring[] authors = { \"GNOME Documentation Team\", null };\n"
+"\t\tstring[] documenters = { \"GNOME Documentation Team\", null };\n"
+"\n"
+"\t\tGtk.show_about_dialog (this,\n"
+"                               \"program-name\", (\"GtkApplication Example\"),\n"
+"                               \"copyright\", (\"Copyright \\xc2\\xa9 2012 GNOME Documentation Team\"),\n"
+"                               \"authors\", authors,\n"
+"                               \"documenters\", documenters,\n"
+"                               \"website\", \"http://developer.gnome.org\",\n";
+"                               \"website-label\", (\"GNOME Developer Website\"),\n"
+"                               null);\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* This is the Application */\n"
+"public class Application : Gtk.Application {\n"
+"\n"
+"\t/* Here we override the activate signal of GLib.Application */\n"
+"\tprotected override void activate () {\n"
+"\t\tnew Window (this);\n"
+"\t}\n"
+"\n"
+"\t/* Here we override the startup signal of GLib.Application */\n"
+"\tprotected override void startup () {\n"
+"\n"
+"\t\tbase.startup ();\n"
+"\n"
+"\t\tvar menu = new Menu ();\n"
+"\t\tmenu.append (\"About\", \"win.about\");\n"
+"\t\tmenu.append (\"Quit\", \"app.quit\");\n"
+"\t\tthis.app_menu = menu;\n"
+"\n"
+"\t\tvar quit_action = new SimpleAction (\"quit\", null);\n"
+"\t\t//quit_action.activate.connect (this.quit);\n"
+"\t\tthis.add_action (quit_action);\n"
+"\t}\n"
+"\n"
+"\t/* The constructor */\n"
+"\tpublic Application () {\n"
+"\t\tObject (application_id: \"org.example.application\");\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* main function creates Application and runs it */\n"
+"int main (string[] args) {\n"
+"\treturn new Application ().run (args);\n"
+"}\n"
+msgstr ""
+"/* A window in the application */\n"
+"public class Window : Gtk.ApplicationWindow {\n"
+"\n"
+"\t/* The constructor */\n"
+"\tpublic Window (Application app) {\n"
+"\t\tObject (application: app, title: \"AboutDialog Example\");\n"
+"\n"
+"\t\tvar about_action = new SimpleAction (\"about\", null);\n"
+"\n"
+"\t\tabout_action.activate.connect (this.about_cb);\n"
+"\t\tthis.add_action (about_action);\n"
+"\t\tthis.show_all ();\n"
+"\t}\n"
+"\n"
+"\t/* This is the callback function connected to the 'activate' signal\n"
+"\t * of the SimpleAction about_action.\n"
+"\t */\n"
+"\tvoid about_cb (SimpleAction simple, Variant? parameter) {\n"
+"\t\tstring[] authors = { \"GNOME Documentation Team\", null };\n"
+"\t\tstring[] documenters = { \"GNOME Documentation Team\", null };\n"
+"\n"
+"\t\tGtk.show_about_dialog (this,\n"
+"                               \"program-name\", (\"GtkApplication Example\"),\n"
+"                               \"copyright\", (\"Copyright \\xc2\\xa9 2012 GNOME Documentation Team\"),\n"
+"                               \"authors\", authors,\n"
+"                               \"documenters\", documenters,\n"
+"                               \"website\", \"http://developer.gnome.org\",\n";
+"                               \"website-label\", (\"GNOME Developer Website\"),\n"
+"                               null);\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* This is the Application */\n"
+"public class Application : Gtk.Application {\n"
+"\n"
+"\t/* Here we override the activate signal of GLib.Application */\n"
+"\tprotected override void activate () {\n"
+"\t\tnew Window (this);\n"
+"\t}\n"
+"\n"
+"\t/* Here we override the startup signal of GLib.Application */\n"
+"\tprotected override void startup () {\n"
+"\n"
+"\t\tbase.startup ();\n"
+"\n"
+"\t\tvar menu = new Menu ();\n"
+"\t\tmenu.append (\"About\", \"win.about\");\n"
+"\t\tmenu.append (\"Quit\", \"app.quit\");\n"
+"\t\tthis.app_menu = menu;\n"
+"\n"
+"\t\tvar quit_action = new SimpleAction (\"quit\", null);\n"
+"\t\t//quit_action.activate.connect (this.quit);\n"
+"\t\tthis.add_action (quit_action);\n"
+"\t}\n"
+"\n"
+"\t/* The constructor */\n"
+"\tpublic Application () {\n"
+"\t\tObject (application_id: \"org.example.application\");\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* main function creates Application and runs it */\n"
+"int main (string[] args) {\n"
+"\treturn new Application ().run (args);\n"
+"}\n"
+
+#: C/aboutdialog.vala.page:38(item/p) C/gmenu.vala.page:41(item/p)
+#: C/window.vala.page:37(item/p)
+msgid ""
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Application.html\";>Gtk."
+"Application</link>"
+msgstr ""
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Application.html\";>Gtk."
+"Application</link>"
+
+#: C/aboutdialog.vala.page:39(item/p) C/gmenu.vala.page:42(item/p)
+#: C/GtkApplicationWindow.vala.page:31(item/p) C/label.vala.page:31(item/p)
+msgid ""
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.ApplicationWindow.html";
+"\">Gtk.ApplicationWindow</link>"
+msgstr ""
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.ApplicationWindow.html";
+"\">Gtk.ApplicationWindow</link>"
+
+#: C/aboutdialog.vala.page:40(item/p)
+msgid ""
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.set_default_size.html";
+"\">set_default_size</link>"
+msgstr ""
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.set_default_size.html";
+"\">set_default_size</link>"
+
+#: C/audio-player.vala.page:9(info/desc)
+msgid "Coming soon..."
+msgstr "ÎÏÏÎÏÎÎ ÏÏÎÏÎÎÎ..."
+
+#: C/audio-player.vala.page:13(credit/name)
+#: C/getting-ready.page:11(credit/name) C/guitar-tuner.c.page:14(credit/name)
+#: C/guitar-tuner.cpp.page:12(credit/name)
+#: C/guitar-tuner.py.page:14(credit/name)
+#: C/guitar-tuner.vala.page:13(credit/name)
+#: C/image-viewer.c.page:14(credit/name)
+#: C/image-viewer.cpp.page:12(credit/name)
+#: C/image-viewer.vala.page:14(credit/name)
+#: C/record-collection.js.page:14(credit/name)
+msgid "GNOME Documentation Project"
+msgstr "ÎÏÎÎ ÏÎÎÎÎÏÎÏÏÎÏ GNOME"
+
+#: C/audio-player.vala.page:18(page/title)
+msgid "3 Audio Player"
+msgstr "3 ÎÎÎÏÎÏÎÎÏÎÏÏ ÎÏÎÏ"
+
+#: C/beginner.c.page:8(info/title)
+msgctxt "text"
+msgid "Beginner's Tutorials (C)"
+msgstr "ÎÎÎÎÎÎÏÎ ÎÏÏÎÏÎÏÎ (C)"
+
+#: C/beginner.c.page:12(info/desc) C/beginner.vala.page:12(info/desc)
+msgid ""
+"A beginner's guide to GUI programming using GTK+, including code samples and "
+"practice exercises."
+msgstr ""
+"ÎÎÎÏ ÎÎÎÎÏÏ ÎÏÏÎÏÎÏÎ ÏÏÎÎ ÎÎÎÏÏÏÎÎ ÎÎÎÏÎÏÏÎ ÏÏÎÏÏÎ (GUI) ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ GTK"
+"+, ÏÏÎÏÎÏÎÎÎÎÎÎÎÎÎ ÎÎÎÎÎÎÏÎ ÎÏÎÎÎÎ ÎÎÎ ÏÏÎÎÏÎÎÎÏ ÎÏÎÎÏÎÎÏ."
+
+#: C/beginner.c.page:20(page/title) C/beginner.vala.page:19(page/title)
+msgid "0 Beginner's Tutorials"
+msgstr "0 ÎÎÎÎÎÎÏÎ ÎÏÏÎÏÎÏÎ"
+
+#: C/beginner.c.page:22(synopsis/p) C/beginner.vala.page:21(synopsis/p)
+msgid ""
+"Although these tutorials are designed for beginners, we can't cover all the "
+"basics. Before attempting to follow these tutorials, you are expected to be "
+"familiar with the following concepts:"
+msgstr ""
+"ÎÎ ÎÎÎ ÎÏÏÎ ÏÎ ÎÎÎÎÎÎÏÎ ÏÏÎÎÎÎÏÏÎÎÎÎ ÎÎÎ ÎÏÏÎÏÎÎÏÏ, ÎÎÎ ÎÏÎÏÎÏÎÎ ÎÎ "
+"ÎÎÎÏÏÎÏÎÎ ÏÎÎ ÏÎ ÎÎÏÎÎÎ. ÎÏÎÎ ÎÎ ÏÏÎÏÏÎÎÎÏÎÏÎ ÎÎ ÏÎÏÎÎÎÎÎÏÎÎÏÎÏÎ ÎÏÏÎ ÏÎ "
+"ÎÎÎÎÎÎÏÎ, ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎÎÎÏÎÎÎÏÎ ÎÎ ÏÎÏ ÏÎÏÎÎÎÏÏ ÎÎÎÎÎÎÏ:"
+
+#: C/beginner.c.page:24(item/p) C/beginner.vala.page:23(item/p)
+msgid "Object oriented programming"
+msgstr "ÎÎÏÎÎÎÎÎÎÎÎÏÏÏÎÏÎÏ ÏÏÎÎÏÎÎÎÎÏÎÏÎÏÏ"
+
+#: C/beginner.c.page:25(item/p)
+msgid "The C programming language"
+msgstr "Î ÎÎÏÏÏÎ ÏÏÎÎÏÎÎÎÎÏÎÏÎÎÏ C"
+
+#: C/beginner.c.page:29(synopsis/p) C/beginner.vala.page:32(synopsis/p)
+#: C/tutorial.py.page:28(synopsis/p)
+msgid ""
+"By following these tutorials you will learn the basics of GUI programming "
+"using Gtk+."
+msgstr ""
+"ÎÎÏÎÎÎÎÎÏÎÏÎÏÎÏ ÎÏÏÎ ÏÎ ÎÎÎÎÎÎÏÎ ÎÎ ÎÎÎÎÏÎ ÏÎ ÎÎÏÎÎÎ ÏÎÏ ÏÏÎÎÏÎÎÎÎÏÎÏÎÎÏ GUI "
+"ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ Gtk+."
+
+#: C/beginner.c.page:33(section/title) C/beginner.js.page:36(section/title)
+#: C/beginner.vala.page:36(section/title)
+msgid "Tutorials"
+msgstr "ÎÎÎÎÎÎÏÎ"
+
+#: C/beginner.c.page:37(section/title) C/beginner.js.page:40(section/title)
+#: C/beginner.py.page:27(section/title) C/beginner.vala.page:40(section/title)
+msgid "Code samples"
+msgstr "ÎÎÎÎÎÎÏÎ ÎÏÎÎÎÎ"
+
+#: C/beginner.c.page:38(section/p) C/beginner.js.page:42(section/p)
+#: C/beginner.vala.page:41(section/p) C/tutorial.py.page:38(section/p)
+msgid "To run the code samples:"
+msgstr "ÎÎÎ ÎÎ ÎÎÏÎÎÎÏÎÏÎ ÏÎ ÎÎÎÎÎÎÏÎ ÎÏÎÎÎÎ:"
+
+#: C/beginner.c.page:42(item/p)
+msgid "Copy and paste the code into <var>filename</var>.c"
+msgstr "ÎÎÏÎÎÏÎÏÏÎ ÎÎÎ ÎÏÎÎÎÎÎÎÏÏÎ ÏÎÎ ÎÏÎÎÎÎ ÏÏÎ <var>filename</var>.c"
+
+#: C/beginner.c.page:43(item/p) C/beginner.c.page:56(item/p)
+#: C/beginner.vala.page:46(item/p) C/tutorial.py.page:41(item/p)
+msgid "In the terminal type:"
+msgstr "ÎÎÎÎÏÏÎÎÎÎÎÏÏÎ ÏÏÎ ÏÎÏÎÎÏÎÎÏ:"
+
+#: C/beginner.c.page:44(item/screen)
+#, no-wrap
+msgid "gcc <var>filename</var>.c `pkg-config --cflags --libs gtk+-3.0` -o <var>filename</var>\n"
+msgstr "gcc <var>filename</var>.c `pkg-config --cflags --libs gtk+-3.0` -o <var>filename</var>\n"
+
+#: C/beginner.c.page:46(item/screen) C/beginner.c.page:60(item/screen)
+#: C/beginner.vala.page:48(item/screen)
+#, no-wrap
+msgid "./<var>filename</var>"
+msgstr "./<var>filename</var>"
+
+#: C/beginner.c.page:50(note/p)
+msgid ""
+"For more information about compiling Gtk+ programs see <link href=\"http://";
+"developer.gnome.org/gtk3/3.4/gtk-compiling.html\">Compiling Gtk+ "
+"Applications on UNIX</link>."
+msgstr ""
+"ÎÎÎ ÏÎÏÎÏÏÏÏÎÏÎÏ ÏÎÎÏÎÏÎÏÎÎÏ ÏÏÎÏÎÎÎ ÎÎ ÏÎ ÎÎÏÎÎÎÏÏÏÎÏÎ ÏÏÎ ÏÏÎÎÏÎÎÎÎÏÏÎ GTK"
+"+ ÎÎÎÏÎ <link href=\"http://developer.gnome.org/gtk3/3.4/gtk-compiling.html";
+"\">ÎÎÏÎÎÎÏÏÏÎÎÎÎÏÎÏ ÎÏÎÏÎÎÎÎÏ GTK+ ÏÏÎ UNIX</link>."
+
+#: C/beginner.c.page:54(section/p)
+msgid "You can also use the Vala compiler to compile these samples:"
+msgstr ""
+"ÎÏÎÏÎÎÏÎ ÎÏÎÏÎÏ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÏÎÎ ÎÎÏÎÎÎÏÏÏÎÏÏÎ Vala ÎÎÎ ÎÎ "
+"ÎÎÏÎÎÎÏÏÏÎÏÎÏÎ ÎÏÏÎ ÏÎ ÏÎÏÎÎÎÎÎÎÎÏÎ:"
+
+#: C/beginner.c.page:57(item/screen)
+#, no-wrap
+msgid "valac --pkg gtk+-3.0 <var>filename</var>.c"
+msgstr "valac --pkg gtk+-3.0 <var>filename</var>.c"
+
+#: C/beginner.c.page:59(item/p)
+msgid "To run:"
+msgstr "ÎÎÎ ÎÎÏÎÎÎÏÎ:"
+
+#: C/beginner.c.page:63(section/title) C/beginner.js.page:49(section/title)
+#: C/beginner.py.page:29(section/title) C/beginner.vala.page:52(section/title)
+msgid "Windows"
+msgstr "ÎÎÏÎÎÏÏÎ"
+
+#: C/beginner.c.page:66(section/title) C/beginner.js.page:51(section/title)
+#: C/beginner.py.page:32(section/title) C/beginner.vala.page:55(section/title)
+msgid "Display widgets"
+msgstr "ÎÎÏÎÎÎÏÎ ÎÏÎÏÎÎÏÎ ÏÏÏÏÎÏÎÎÏÎ"
+
+#: C/beginner.c.page:68(section/title) C/beginner.js.page:53(section/title)
+#: C/beginner.py.page:34(section/title) C/beginner.vala.page:57(section/title)
+msgid "Buttons and toggles"
+msgstr "ÎÎÏÎÏÎÎ ÎÎÎ ÎÎÎÎÎÎÎÎÏ"
+
+#: C/beginner.c.page:70(section/title) C/beginner.js.page:55(section/title)
+#: C/beginner.py.page:36(section/title) C/beginner.vala.page:59(section/title)
+msgid "Numeric and text data entry"
+msgstr "ÎÎÏÎÏÏÏÎÏÎ ÎÎÎÎÎÎÎÏÎ ÎÏÎÎÎÎÏÎÎÏÎ ÎÎÎ ÎÎÎÎÎÎÎÏ"
+
+#: C/beginner.c.page:72(section/title) C/beginner.js.page:57(section/title)
+#: C/beginner.py.page:38(section/title) C/beginner.vala.page:61(section/title)
+msgid "Multiline text editor"
+msgstr "ÎÏÎÎÎÏÎÎÏÏÎÏ ÎÎÎÎÎÎÎÏ ÏÎÎÎÎÏÎÏÎ ÎÏÎÎÎÏÎ"
+
+#: C/beginner.c.page:74(section/title) C/beginner.js.page:59(section/title)
+#: C/beginner.py.page:40(section/title) C/beginner.vala.page:63(section/title)
+msgid "Menu, combo box and toolbar widgets"
+msgstr "ÎÎÎÎÏ, ÏÏÎÎÎÏÎ ÏÎÎÎÏÎÎ ÎÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÏÎÎÎÎÎÎÎÎÎÎÏ"
+
+#: C/beginner.c.page:76(section/title) C/beginner.js.page:61(section/title)
+#: C/beginner.py.page:42(section/title) C/beginner.vala.page:65(section/title)
+msgid "TreeView widget"
+msgstr "ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ TreeView"
+
+#: C/beginner.c.page:78(section/title) C/beginner.js.page:63(section/title)
+#: C/beginner.py.page:44(section/title) C/beginner.vala.page:67(section/title)
+msgid "Selectors"
+msgstr "ÎÏÎÎÎÎÎÎÏ"
+
+#: C/beginner.c.page:79(section/title) C/beginner.js.page:64(section/title)
+#: C/beginner.py.page:45(section/title) C/beginner.vala.page:68(section/title)
+msgid "File selectors"
+msgstr "ÎÏÎÎÎÎÎÎÏ ÎÏÏÎÎÏÎ"
+
+#: C/beginner.c.page:81(section/title) C/beginner.js.page:66(section/title)
+#: C/beginner.py.page:47(section/title) C/beginner.vala.page:70(section/title)
+msgid "Font selectors"
+msgstr "ÎÏÎÎÎÎÎÎÏ ÎÏÎÎÎÎÏÎÏÎÎÏÏÎ"
+
+#: C/beginner.c.page:83(section/title) C/beginner.js.page:68(section/title)
+#: C/beginner.py.page:49(section/title) C/beginner.vala.page:72(section/title)
+msgid "Color Selectors"
+msgstr "ÎÏÎÎÎÎÎÎÏ ÏÏÏÎÎÏÎÏ"
+
+#: C/beginner.c.page:86(section/title) C/beginner.js.page:71(section/title)
+#: C/beginner.py.page:52(section/title) C/beginner.vala.page:75(section/title)
+msgid "Layout containers"
+msgstr "ÎÎÏÎÎÎÏÎÏ ÎÎÎÏÎÎÎÏ"
+
+#: C/beginner.c.page:88(section/title) C/beginner.js.page:73(section/title)
+#: C/beginner.py.page:54(section/title) C/beginner.vala.page:77(section/title)
+#: C/tutorial.py.page:68(steps/title)
+msgid "Ornaments"
+msgstr "ÎÎÎÎÎÏÎÎÏÎÎÎ"
+
+#: C/beginner.c.page:90(section/title) C/beginner.js.page:75(section/title)
+#: C/beginner.py.page:56(section/title) C/beginner.vala.page:79(section/title)
+msgid "Scrolling"
+msgstr "ÎÏÎÎÏÎ"
+
+#: C/beginner.c.page:92(section/title) C/beginner.js.page:77(section/title)
+#: C/beginner.py.page:58(section/title) C/beginner.vala.page:81(section/title)
+msgid "Miscellaneous"
+msgstr "ÎÎÎÏÎÏÎ"
+
+#: C/beginner.c.page:97(section/title) C/beginner.js.page:82(section/title)
+#: C/beginner.vala.page:86(section/title)
+#: C/menubar.vala.page:197(section/title)
+msgid "Exercises"
+msgstr "ÎÏÎÎÏÎÎÏ"
+
+#: C/beginner.js.page:10(credit/name) C/grid.js.page:12(credit/name)
+#: C/guitar-tuner.js.page:11(credit/name) C/helloWorld.js.page:14(credit/name)
+#: C/weatherApp.js.page:11(credit/name)
+#: C/weatherAppMain.js.page:10(credit/name)
+#: C/weatherAutotools.js.page:10(credit/name)
+#: C/weatherGeonames.js.page:10(credit/name)
+msgid "Susanna Huhtanen"
+msgstr "Susanna Huhtanen"
+
+#: C/beginner.js.page:15(info/desc)
+msgid ""
+"A beginner's guide to writing GNOME applications in JavaScript, including "
+"code samples and practice exercises."
+msgstr ""
+"ÎÎÎÏ ÎÎÎÎÏÏ ÎÏÏÎÏÎÏÎ ÏÏÎ ÏÏÎÎÏÎÏÎ ÎÏÎÏÎÎÎÏÎ GNOME ÏÎ JavaScript, "
+"ÏÏÎÏÎÏÎÎÎÎÎÎÎÎÎÏÎÏ ÎÎÎÎÎÎÏÎ ÎÏÎÎÎÎ ÎÎÎ ÏÏÎÎÏÎÎÎÏ ÎÏÎÎÏÎÎÏ."
+
+#: C/beginner.js.page:18(page/title)
+msgid "0 Beginner's tutorials and samples"
+msgstr "0 ÎÎÎÎÎÎÏÎ ÎÎÎ ÏÎÏÎÎÎÎÎÎÎÏÎ ÎÏÏÎÏÎÏÎ"
+
+#: C/beginner.js.page:20(synopsis/p)
+msgid ""
+"JavaScript is one of the most popular programming languages on the web. It's "
+"not just for the web, though. If you have even a basic understanding of "
+"JavaScript, you can write full-fledged applications for GNOME. <link href="
+"\"https://live.gnome.org/GnomeDocuments\";>GNOME Documents</link> is written "
+"in JavaScript, and so is <link href=\"https://live.gnome.org/GnomeShell/Tour";
+"\">GNOME Shell</link>, the most basic part of GNOME."
+msgstr ""
+"Î JavaScript ÎÎÎÎÎ ÎÎÎ ÎÏÏ ÏÎÏ ÏÎÎ ÎÎÎÎÏÎÎÎÎÏ ÎÎÏÏÏÎÏ ÏÏÎÎÏÎÎÎÎÏÎÏÎÎÏ ÏÏÎÎ "
+"ÎÏÏÏ. ÎÎÎ ÎÎÎÎÎ ÎÏÎÎ ÎÎÎ ÏÎÎ ÎÏÏÏ, ÏÎÏÏ. ÎÎÎ ÎÏÎÏÎ ÎÎÏÎÎ ÎÎÎ ÎÎÏÎÎÎ "
+"ÎÎÏÎÎÏÎÏÎ ÏÎÏ JavaScript, ÎÏÎÏÎÎÏÎ ÎÎ ÎÏÎÏÎÏÎ ÏÎÎÏÎÎÏ ÎÏÎÏÎÎÎÎÏ ÎÎÎ ÏÎ "
+"GNOME. <link href=\"https://live.gnome.org/GnomeDocuments\";>ÎÎÎÏÎÏÎ GNOME</"
+"link> ÎÎÎÎÎ ÎÏÎÎÎÎÎÎ ÏÎ JavaScript ÎÎÎ ÎÏÏÎ ÎÎÎÎÎ ÏÎ <link href=\"https://";
+"live.gnome.org/GnomeShell/Tour\">ÎÎÎÏÏÎÏ GNOME</link>, ÏÎ ÏÎÎ ÎÎÏÎÎÏ ÎÎÏÎÏ "
+"ÏÎÏ GNOME."
+
+#: C/beginner.js.page:21(note/p)
+msgid ""
+"GNOME Shell is what you see when you click on \"Activities\" in the top-left "
+"corner of your screen. It also controls the clock and the rest of the top "
+"panel. Besides showing how you to write GNOME applications, these tutorials "
+"will also show you how to use JavaScript to write GNOME Shell extensions, "
+"which give it new features or change the way it does things."
+msgstr ""
+"ÎÎ ÎÎÎÏÏÎÏ GNOME ÎÎÎÎÎ ÎÏÏÏ ÏÎÏ ÎÎÎÏÎÏÎ ÏÏÎÎ ÏÎÏÎÏÎ ÏÏÎÏ \"Activities\" ÏÏÎÎ "
+"ÎÏÎÎÏ ÎÏÎÏÏÎÏÎ ÎÏÎÎÎ ÏÎÏ ÎÎÏÎÎÏ ÏÎÏ. ÎÎÎÎÏÎÎ ÎÏÎÏÎÏ ÏÎ ÏÎÎÏÎ ÎÎÎ ÏÎ ÏÏÏÎÎÎÏÎ "
+"ÏÎÏ ÏÎÎÏ ÏÎÎÎÏÎÎÏ. ÎÏÎÏÎÎÎÎ ÎÎÎÏÎÎÎÏÎÏ ÏÎÏ ÏÏÏ ÎÎ ÎÏÎÏÎÏÎ ÎÏÎÏÎÎÎÎÏ GNOME, "
+"ÎÏÏÎ ÏÎ ÎÎÎÎÎÎÏÎ ÎÎ ÏÎÏ ÎÎÎÎÎÏÎ ÎÏÎÏÎÏ ÏÏÏ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ JavaScript ÎÎÎ "
+"ÎÎ ÎÏÎÏÎÏÎ ÎÏÎÎÏÎÏÎÎÏ ÎÎÎÏÏÎÏÏ GNOME, ÏÎÏ ÏÎÏ ÎÎÎÎÏÎ ÎÎÎ ÎÎÏÏÎÏÎÎÏÎ Î "
+"ÎÎÎÎÎÎÏÎ ÏÎÎ ÏÏÏÏÎ ÏÎÏ ÎÎÎÎÎ ÏÏÎÎÎÎÏÎ."
+
+#: C/beginner.js.page:25(section/title)
+msgid "Getting Started"
+msgstr "ÎÎÎÎÎÎÎÎ"
+
+#: C/beginner.js.page:26(section/p)
+msgid ""
+"These tutorials are designed for people who already know how to write in "
+"JavaScript, and who have GNOME installed on their computers already, but who "
+"are new to developing GNOME applications. If you don't already know "
+"JavaScript, or if you need help getting GNOME set up, take a look at these "
+"resources first:"
+msgstr ""
+"ÎÏÏÎ ÏÎ ÎÎÎÎÎÎÏÎ ÏÏÎÎÎÎÏÏÎÎÎÎ ÎÎÎ ÎÏÎÎÎ ÏÎÏ ÎÎÎ ÎÎÏÎÏÎ ÏÏÏ ÎÎ ÎÏÎÏÎÏÎ ÏÎ "
+"JavaScript, ÎÎÎ ÎÏÎÏÎ ÎÎÎ ÎÎÎÎÏÎÏÏÎÎÎÎÎ ÏÎ GNOME ÏÏÎÏÏ ÏÏÎÎÎÎÎÏÏÎÏ ÏÎÏÏ, "
+"ÎÎÎÎ ÎÎÎÎÎ ÎÎÎÎ ÏÏÎÎ ÎÎÎÏÏÏÎÎ ÎÏÎÏÎÎÎÏÎ GNOME. ÎÎÎ ÎÎÎ ÎÎÏÎÏÎ ÎÎÎ "
+"JavaScript, Î ÎÎÎ ÏÏÎÎÎÎÏÏÎÏÏÎ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎÎÏÎÏÏÎÏÎ ÏÎÏ GNOME, ÏÎÎÏÎ ÎÎÎ "
+"ÎÎÏÎÎ ÏÏÏÏÎ ÏÎ ÎÏÏÎÏ ÏÎÏ ÏÎÎÎÏ ÏÏÏÏÎ:"
+
+#: C/beginner.js.page:28(item/p)
+msgid ""
+"<link href=\"http://eloquentjavascript.net/contents.html\";>Eloquent "
+"JavaScript</link> is a free, Creative Commons-licensed book, which explains "
+"the basics of JavaScript programming. Since you won't be writing JavaScript "
+"for the web, you only need to read up to chapter 10 or so."
+msgstr ""
+"<link href=\"http://eloquentjavascript.net/contents.html\";>ÎÏÎÎÏÏÏÎ "
+"JavaScript</link> ÎÎÎÎÎ ÎÎÎ ÎÎÎÏÎÎÏÎ, ÎÎÎÎÎÎ ÎÎ ÏÎÎ ÎÎÎÎÎ Creative Commons, "
+"ÏÎÏ ÎÎÎÎÎÎ ÏÎ ÎÎÏÎÎÎ ÏÎÏ ÏÏÎÎÏÎÎÎÎÏÎÏÎÎÏ JavaScript. ÎÏÎÏ ÎÎÎ ÎÎ ÎÏÎÏÎÏÎ "
+"JavaScript ÎÎÎ ÏÎÎ ÎÏÏÏ, ÏÏÎÎÎÎÎÏÎÎ ÎÎ ÎÎÎÎÎÏÎÏÎ ÎÎÏÏÎ ÏÎ ÎÎÏÎÎÎÎÎ 10 "
+"ÏÎÏÎÏÎÏ."
+
+#: C/beginner.js.page:29(item/p)
+msgid ""
+"<link href=\"http://www.gnome.org/getting-gnome/\";>Download GNOME</link> as "
+"part of a distribution, like Fedora, openSUSE, or Ubuntu. Each distribution "
+"has its own instructions for how to get GNOME."
+msgstr ""
+"Î <link href=\"http://www.gnome.org/getting-gnome/\";>ÎÎÏÎ ÏÎÏ GNOME</link> "
+"ÎÎÎÎÎ ÎÎÏÎÏ ÎÎÎÏ ÎÎÎÎÎÎÎÏ, ÏÏÏÏ Fedora, openSUSE, Î Ubuntu. ÎÎÎÎ ÎÎÎÎÎÎÎ "
+"ÎÏÎÎ ÏÎÏ ÎÎÎÎÏ ÏÎÏ ÎÎÎÎÎÎÏ ÎÎÎ ÏÎ ÏÏÏ ÎÎ ÏÎÏÎÏÎ ÏÎ GNOME."
+
+#: C/beginner.js.page:30(item/p)
+#, fuzzy
+msgid ""
+"<link xref=\"set-up-gedit.js\">Set up gedit</link> for writing applications. "
+"GNOME's text editor, gedit, is sometimes just called \"text editor\"."
+msgstr ""
+"<link xref=\"set-up-gedit.js\">ÎÎÎÎÏÎÏÏÎÏÎ gedit</link> ÎÎÎ ÏÏÎÎÏÎÏÎ "
+"ÎÏÎÏÎÎÎÏÎ. Î ÎÏÎÎÎÏÎÎÏÏÎÏ ÎÎÎÎÎÎÎÏ ÏÎÏ GNOME, gedit, ÎÏÎÎÎÎÎÎÏÎÎ ÎÎÏÎÎÎÏ "
+"ÏÎÏÎÏ ÎÏÎÎ \"text editor.\""
+
+#: C/beginner.js.page:41(section/p)
+msgid ""
+"These samples show how to use widgets in your GNOME applications. Each one "
+"demonstrates a complete application which showcases the featured widget. At "
+"the end of each sample, you will find links to more detailed reference "
+"material."
+msgstr ""
+"ÎÏÏÎ ÏÎ ÎÎÎÎÎÎÏÎ ÎÎÏÎÎÎÎÎÏÎ ÏÎ ÏÏÎÏÎ ÎÏÎÏÎÎÏÎ ÏÏÏÏÎÏÎÎÏÎ ÏÏÎÏ ÎÏÎÏÎÎÎÎÏ ÏÎÏ "
+"ÏÎÏ GNOME. ÎÎÎÎ ÎÎÎ ÎÎÎÏÎÎÎ ÎÎÎ ÏÎÎÏÎ ÎÏÎÏÎÎÎÎ ÏÎÏ ÎÎÎÏÎÎÎ ÏÎÏÎÏÏÏÏÎÎÏ ÎÎ "
+"ÏÎÏÎÎÏÎÏÎÏÏÎÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ. ÎÏÎ ÏÎÎÎÏ ÎÎÎÎ ÎÎÎÎÎÎÏÎÏ, ÎÎ ÎÏÎÎÏÎ "
+"ÏÏÎÎÎÏÎÎÏÏ ÏÎ ÏÎÎ ÎÎÏÏÎÎÎÏÎ ÏÎÎÎÎ ÎÎÎÏÎÏÎÏ."
+
+#: C/beginner.js.page:44(item/p)
+msgid "Copy and paste the code into <var>filename</var>.js"
+msgstr "ÎÎÏÎÎÏÎÏÎ ÎÎÎ ÎÏÎÎÏÎÎÎÏÎ ÏÎÏ ÎÏÎÎÎÎ ÏÏÎ <var>filename</var>.js"
+
+#: C/beginner.js.page:45(item/p)
+msgid "In the terminal, type:"
+msgstr "ÎÏÎÎ ÏÎÏÎÎÏÎÎÏ, ÏÎÎÎÏÏÎÎÎÎÎÏÏÎ:"
+
+#: C/beginner.js.page:46(item/screen)
+#, no-wrap
+msgid "gjs <var>filename</var>.js"
+msgstr "gjs <var>filename</var>.js"
+
+#: C/beginner.py.page:8(info/title)
+#, fuzzy
+msgctxt "text"
+msgid "Gtk Widget Sample Code and Tutorials (Python)"
+msgstr "ÎÎÎÎÎÎ ÎÏÎÎÎÎ ÎÏÎÏÎÎÎÏ ÏÏÏÏÎÏÎÎÎÏ Gtk ÎÎÎ ÎÎÎÎÎÎÏÏÎ (Python)"
+
+#: C/beginner.py.page:12(info/desc)
+msgid ""
+"A guide to GUI programming using GTK+, including code samples and practice "
+"exercises."
+msgstr ""
+"ÎÎÎÏ ÎÎÎÎÏÏ ÎÎÎ ÏÎÎ ÎÎÎÏÏÏÎÎ ÎÎÎÏÎÏÏÎ ÏÏÎÏÏÎ (GUI) ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ GTK+, "
+"ÏÏÎÏÎÏÎÎÎÎÎÎÎÎÎÏÎÏ ÎÎÎÎÎÎÏÎ ÎÏÎÎÎÎ ÎÎÎ ÏÏÎÎÏÎÎÎÏ ÎÏÎÎÏÎÎÏ."
+
+#: C/beginner.py.page:19(page/title)
+msgid "Gtk Widget Sample Code and Tutorials"
+msgstr "ÎÎÎÎÎÎ ÎÏÎÎÎÎ ÎÏÎÏÎÎÎÏ ÏÏÏÏÎÏÎÎÎÏ Gtk ÎÎÎ ÎÎÎÎÎÎÏÏÎ"
+
+#: C/beginner.py.page:21(synopsis/p)
+msgid ""
+"If you are a beginner and you would like a tutorial to guide you step by "
+"step in an exploration of what you can do with GTK+ 3, you should go to the "
+"<link xref=\"tutorial.py\"/> page. If you are looking for a specific widget, "
+"you can find it in the sections below."
+msgstr ""
+"ÎÎÎ ÎÎÏÎÏÏÎ ÎÏÏÎÏÎÎÏ ÎÎÎ ÎÎ ÎÎÎÎÏÎ ÎÎÎ ÎÎÎÎÎÎ ÎÎ ÏÎÏ ÎÎÎÎÎÎÎÎÏÎÎ ÎÎÎÎ-ÎÎÎÎ "
+"ÏÎ ÎÎÎ ÎÎÎÏÎÏÎÎÏÎ ÏÎÏ ÏÎ ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÎÏÎ ÎÎ ÏÎ GTK+ 3, ÎÎ ÏÏÎÏÎÎ ÎÎ ÏÎÏÎ "
+"ÏÏÎ ÏÎÎÎÎÎ <link xref=\"tutorial.py\"/>. ÎÎÎ ÏÎÏÎÎÏÎ ÎÎÎ ÎÎÎ ÏÏÎÎÎÎÏÎÎÎÎÎ "
+"ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ, ÎÏÎÏÎÎÏÎ ÎÎ ÏÎ ÎÏÎÎÏÎ ÏÏÎÏ ÏÎÏÎÎÎÏÏ ÎÎÏÏÎÏÎÏ."
+
+#: C/beginner.py.page:63(section/title)
+msgid "Theory pages"
+msgstr "ÎÎÎÎÎÎÏ ÎÎÏÏÎÎÏ"
+
+#: C/beginner.vala.page:8(info/title)
+msgctxt "text"
+msgid "Beginner Tutorials (Vala)"
+msgstr "ÎÎÎÎÎÎÏÎ ÎÏÏÎÏÎÏÎ (Vala)"
+
+#: C/beginner.vala.page:24(item/p)
+msgid "The Vala programming language:"
+msgstr "Î ÎÎÏÏÏÎ ÏÏÎÎÏÎÎÎÎÏÎÏÎÎÏ Vala:"
+
+#: C/beginner.vala.page:26(item/p)
+msgid ""
+"<link href=\"https://live.gnome.org/Vala/Tutorial\";>The Vala Tutorial</link>"
+msgstr ""
+"<link href=\"https://live.gnome.org/Vala/Tutorial\";>ÎÎÎÎÎÎÏÎ Vala</link>"
+
+#: C/beginner.vala.page:27(item/p)
+msgid ""
+"<link href=\"https://live.gnome.org/Vala/Documentation#Sample_Code\";>Sample "
+"Vala code</link>"
+msgstr ""
+"<link href=\"https://live.gnome.org/Vala/Documentation#Sample_Code\";>ÎÎÎÎÎÎ "
+"ÎÏÎÎÎÎ Vala</link>"
+
+#: C/beginner.vala.page:45(item/p)
+msgid "Copy and paste the code into <var>filename</var>.vala"
+msgstr "ÎÎÏÎÎÏÎÏÎ ÎÎÎ ÎÏÎÎÏÎÎÎÏÎ ÏÎÏ ÎÏÎÎÎÎ ÏÏÎ <var>filename</var>.vala"
+
+#: C/beginner.vala.page:47(item/screen)
+#, no-wrap
+msgid "valac --pkg gtk+-3.0 <var>filename</var>.vala"
+msgstr "valac --pkg gtk+-3.0 <var>filename</var>.vala"
+
+#: C/bug-filing.page:14(license/p) C/documentation.page:15(license/p)
+#: C/translate.page:19(license/p)
+msgid "Creative Commons Share Alike 3.0"
+msgstr "Creative Commons Share Alike 3.0"
+
+#: C/bug-filing.page:18(page/title)
+msgid "Help make <app>GNOME Developer Tutorials</app> better"
+msgstr "ÎÎÎÎÎÏÏÎ ÎÎ ÎÎÎÎÏÎ ÎÎÎÏÏÎÏÎ ÏÎ <app>ÎÎÎÎÎÎÏÎ ÎÎÎÏÏÏÎÎÏ ÏÎÏ GNOME</app>"
+
+#: C/bug-filing.page:21(section/title)
+msgid "Report a bug or suggest an improvement"
+msgstr "ÎÎÎÏÎÏÎ ÏÏÎÎÎÎÏÎÏ Î ÏÏÏÏÎÏÎ ÎÎÎÏÎÏÏÎÏ"
+
+#: C/bug-filing.page:22(section/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 ""
+"ÎÎ <app>ÎÎÎÎÎÎÏÎ ÎÎÎÏÏÏÎÎÏ ÏÎÏ GNOME</app> ÏÏÎÏÎÏÎÏÎÏÎÎ ÎÏÏ ÎÎÎ ÎÎÎÎÎÎÏÎÎÎ "
+"ÎÎÎÎÏÏÎÏÎ. ÎÎÏÎÏÏÎ ÎÎÎÎÎÎÏÎÏÎÎÎÎÎ ÎÎ ÏÏÎÎÎÏÎÏÏÎÏÎ. ÎÎÎ ÏÎÏÎÏÎÏÎÏÎÏÎ ÎÎÎ "
+"ÏÏÏÎÎÎÎÎ ÎÏÎÏÎÎÏÎ ÎÎ ÏÏÎÎÎÎÏÎ ÎÎÎ <em>ÎÎÎÏÎÏÎ ÏÏÎÎÎÎÏÎÏ</em>. ÎÎÎ ÏÏÎÎÎÎÎ "
+"ÏÏÎÎÎÎÏÎÏ ÏÎÎÎÎÎÎÏÎ ÏÏÎ <link href=\"https://bugzilla.gnome.org/\"/>."
+
+#: C/bug-filing.page:25(section/p)
+msgid ""
+"This is a bug tracking system where users and developers can file details "
+"about bugs, crashes and request enhancements."
+msgstr ""
+"ÎÏÏÏ ÎÎÎÎÎ ÎÎÎ ÏÏÏÏÎÎÎ ÎÎÎÏÎÎÏÏÎÏ ÏÏÎÎÎÎÏÏÎ ÏÏÎÏ ÏÏÎÏÏÎÏ ÎÎÎ ÏÏÎÎÏÎÎÎÎÏÎÏÏÎÏ "
+"ÎÏÎÏÎÏÎ ÎÎ ÎÏÏÎÎÎÎÎÏÎÏÎ ÎÎÏÏÎÎÎÏÎÎÎÏ ÎÎÎ ÏÏÎÎÎÎÏÎ, ÎÎÏÎÏÏÎÏÏÎÎÏ ÎÎÎ ÎÎÏÎÎÎÏÎ "
+"ÎÎÎÏÎÏÏÎÏÎ."
+
+#: C/bug-filing.page:28(section/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 ""
+"ÎÎÎ ÎÎ ÏÏÎÎÎÏÎÏÏÎÏÎ ÏÏÎÎÎÎÏÏÎÏÏÎ ÎÎÎÎ ÎÎÎÎÏÎÎÏÎÏ ÏÎÏ ÎÎ ÏÎÏ ÎÏÏÎÎ ÏÎ "
+"ÎÏÎÎÏÏÏÎÏÎ ÎÎ ÎÏÎÎÏÎÏÎÏÎ ÏÏÏÏÎÎÏÎ ÏÎ ÎÏÏÎÎÎ ÏÏÎÎÎÎÏÏÎ ÎÎÎ ÎÎ ÏÏÎÎÎÎÏÎÏÎ. "
+"ÎÏÎÏÎÏ, ÏÏÎÎÎÎÎÏÎÎ ÎÎ ÎÎÏÎÏÏÏÎÎÎÎÏÎ ÎÏÏÎ ÏÏÏÎ ÎÎ ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÏÏÏÎÏÏÎ "
+"ÎÎÎÎÎÏÏÏÎÎÏ ÎÎÎÎÏÏÎÎÎÎÎ ÎÎÎ ÏÎÎ ÎÎÏÎÏÏÎÏÎ ÏÎÏ ÏÏÎÎÎÎÏÏÏ ÏÎÏ. ÎÎÎ ÎÎÎ ÎÏÎÏÎ "
+"ÎÎÎ ÎÎÎ ÎÎÎÎÏÎÎÏÎÏ, ÏÎÏÎÏÏÎ ÎÏÎÎ ÏÏÎ ÏÏÎÎÎÏÎÎ <gui>ÎÎÎÏ ÎÎÎÎÏÎÎÏÎÏÏ</gui> "
+"ÎÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎ ÎÎÎÎ."
+
+#: C/bug-filing.page:31(section/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 ""
+"ÎÏÎÎÏ ÎÏÎÎÏÎÏÎÏÎ ÎÎÎÎ ÎÎÎÎÏÎÎÏÎÏ, ÎÎÎÎ ÏÏÎ <guiseq><gui>ÎÏÎÏÏÎÎÎ ÏÏÎÎÎÎÏÎÏ</"
+"gui><gui>ÏÎÎ</gui><gui>gnome-devel-docs</gui></guiseq>. ÎÏÎÎ ÏÎÎ ÎÎÎÏÎÏÎ "
+"ÏÏÎÎÎÎÏÎÏ, ÏÎÏÎÎÎÎÏ ÎÎÎÎÎÏÏÎ ÏÎ <link href=\"https://bugzilla.gnome.org/page.";
+"cgi?id=bug-writing.html\">ÎÏÎÎÎÎÏ ÎÎÎÎÎÏÎ ÎÎÎ ÏÏÎÎÏÎÏÎ ÏÏÎÎÎÎÏÎÏ</link> ÎÎÎ "
+"ÏÎÏÎÎÎÎÏ <link href=\"https://bugzilla.gnome.org/browse.cgi?product=gnome-";
+"games\">ÏÎÏÎÎÎÎÎÎÎÏÎ</link> ÎÎÎ ÎÎ ÎÎÎÏÎ ÎÎ ÎÎÎ ÏÏÎÏÏÎÎ."
+
+#: C/bug-filing.page:35(section/p)
+msgid ""
+"To file your bug, choose the component <gui>platform-demos</gui> in the "
+"<gui>Component</gui> menu."
+msgstr ""
+"ÎÎÎ ÎÏÎÏÏÎÎÎ ÏÎÏ ÏÏÎÎÎÎÏÏÏ ÏÎÏ, ÎÏÎÎÎÎÏÎ ÏÎ ÏÏÎÎÏÎÎÎ <gui>platform-demos</"
+"gui> ÏÏÎ ÎÎÎÎÏ <gui>ÏÏÎÎÏÎÎÎ</gui>."
+
+#: C/bug-filing.page:38(section/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 ""
+"ÎÎÎ ÎÎÏÎÏÎ ÎÎÎ ÎÎÎ ÏÎÏÎÎÏÎÏÎÏÏÎÎÏ, ÎÏÎÎÎÎÏÎ <gui>ÎÎÎÏÎÏÏÎ</gui> ÏÏÎ ÎÎÎÎÏ "
+"<gui>ÏÎÎÎÏÏÏÎÏÎ</gui>. ÎÏÎÏÎÎÏÏÏÏÎ ÏÎÏ ÎÎÏÏÎÏÎÏ ÏÎÏÎÎÎÏÎ ÎÎÎ ÏÎÏÎÎÏÎÏÎ ÎÎÎ "
+"ÎÎÎÎ <gui>ÏÏÎÎÎÎÎ</gui>."
+
+#: C/bug-filing.page:42(section/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 ""
+"ÎÏÎÎ ÎÎÎÏÎÏÎ ÏÎÏ ÎÎ ÎÎÎÎÎ ÎÎÎÏ ÎÏÎÎÎÏÏ ID ÎÎÎ Î ÎÎÏÎÏÏÎÏÎ ÏÎÏ ÎÎ ÎÎÎÎÎÏÏÎÎÎ "
+"ÏÏÎÎ ÎÎ ÎÏÎÎÎÏÎÎÏÏÎÎ. ÎÏÏÎÏÎÏÏÎÏÎÎ ÎÎÎ ÏÎ ÎÎÎÎÎÎÎ ÏÎÏ ÎÎ ÎÎÎÎÏÎÎ ÏÎ "
+"<app>ÎÎÎÎÎÎÏÎ ÎÎÎÏÏÏÎÎÏ ÏÎÏ GNOME</app> ÎÎÎÏÏÎÏÎ!"
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/button.c.page:24(media) C/button.js.page:21(media)
+#: C/button.py.page:23(media) C/button.vala.page:23(media)
+msgctxt "_"
+msgid "external ref='media/button.png' md5='8d69efbb3a0d3e043af6139b6492171c'"
+msgstr "external ref='media/button.png' md5='8d69efbb3a0d3e043af6139b6492171c'"
+
+#: C/button.c.page:7(info/title)
+msgctxt "text"
+msgid "Button (C)"
+msgstr "ÎÎÏÎÏÎ (C)"
+
+#: C/button.c.page:19(info/desc) C/button.py.page:18(info/desc)
+#: C/button.vala.page:18(info/desc)
+msgid "A button widget which emits a signal when clicked"
+msgstr "ÎÎÎ ÎÎÏÎÏÎ ÎÏÎÏÎÎÎÏ ÏÏÏÏÎÏÎÎÎÏ ÏÎÏ ÎÎÏÎÎÏÎÎ ÏÎÎÎ ÏÏÎÎ ÏÎÏÎÎÎÎ"
+
+#: C/button.c.page:22(page/title) C/button.js.page:20(page/title)
+#: C/button.py.page:21(page/title)
+msgid "Button"
+msgstr "ÎÎÏÎÏÎ"
+
+#: C/button.c.page:25(page/p)
+msgid ""
+"A button widget connected to a callback function that reverses its label "
+"when clicked."
+msgstr ""
+"ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÎÏÎÏÎÎÏ ÏÏÎÎÎÎÎÎÎ ÎÎ ÎÎÎ ÎÏÎÎ ÏÏÎÎÏÏÎÏÎ ÎÏÎÎÎÎÎÎÏÎÏ "
+"ÏÎÏ ÎÎÏÎÏÏÏÎÏÎÎ ÏÎÎ ÎÏÎÎÎÏÎ ÏÎÏ ÏÏÎÎ ÏÎÏÎÎÎÎ."
+
+#: C/button.c.page:27(page/code)
+#, no-wrap
+msgid ""
+"\n"
+"#include &lt;gtk/gtk.h&gt;\n"
+"\n"
+"\n"
+"\n"
+"/*This is the callback function. It is a handler function which \n"
+"reacts to the signal. In this case, it will cause the button label's \n"
+"string to reverse.*/\n"
+"static void\n"
+"button_clicked (GtkButton *button,\n"
+"                gpointer   user_data)\n"
+"{\n"
+"  const char *old_label;\n"
+"  char *new_label;\n"
+"\n"
+"  old_label = gtk_button_get_label (button);\n"
+"  new_label = g_utf8_strreverse (old_label, -1);\n"
+"\n"
+"  gtk_button_set_label (button, new_label);\n"
+"  g_free (new_label);\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"static void\n"
+"activate (GtkApplication *app,\n"
+"          gpointer        user_data)\n"
+"{\n"
+"  GtkWidget *window;\n"
+"  GtkWidget *button;\n"
+"\n"
+"  /*Create a window with a title and a default size*/\n"
+"  window = gtk_application_window_new (app);\n"
+"  gtk_window_set_title (GTK_WINDOW (window), \"GNOME Button\");\n"
+"  gtk_window_set_default_size (GTK_WINDOW (window), 250, 50);\n"
+"\n"
+"  /*Create a button with a label, and add it to the window*/\n"
+"  button = gtk_button_new_with_label (\"Click Me\");\n"
+"  gtk_container_add (GTK_CONTAINER (window), button);\n"
+"\n"
+"  /*Connecting the clicked signal to the callback function*/\n"
+"  g_signal_connect (GTK_Button (button), \n"
+"                    \"clicked\", \n"
+"                    G_CALLBACK (button_clicked), \n"
+"                    G_OBJECT (window));\n"
+"\n"
+"  gtk_widget_show_all (window);\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"int\n"
+"main (int argc, char **argv)\n"
+"{\n"
+"  GtkApplication *app;\n"
+"  int status;\n"
+"\n"
+"  app = gtk_application_new (\"org.gtk.example\", G_APPLICATION_FLAGS_NONE);\n"
+"  g_signal_connect (app, \"activate\", G_CALLBACK (activate), NULL);\n"
+"  status = g_application_run (G_APPLICATION (app), argc, argv);\n"
+"  g_object_unref (app);\n"
+"\n"
+"  return status;\n"
+"}\n"
+msgstr ""
+"\n"
+"#include &lt;gtk/gtk.h&gt;\n"
+"\n"
+"\n"
+"\n"
+"/*This is the callback function. It is a handler function which \n"
+"reacts to the signal. In this case, it will cause the button label's \n"
+"string to reverse.*/\n"
+"static void\n"
+"button_clicked (GtkButton *button,\n"
+"                gpointer   user_data)\n"
+"{\n"
+"  const char *old_label;\n"
+"  char *new_label;\n"
+"\n"
+"  old_label = gtk_button_get_label (button);\n"
+"  new_label = g_utf8_strreverse (old_label, -1);\n"
+"\n"
+"  gtk_button_set_label (button, new_label);\n"
+"  g_free (new_label);\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"static void\n"
+"activate (GtkApplication *app,\n"
+"          gpointer        user_data)\n"
+"{\n"
+"  GtkWidget *window;\n"
+"  GtkWidget *button;\n"
+"\n"
+"  /*Create a window with a title and a default size*/\n"
+"  window = gtk_application_window_new (app);\n"
+"  gtk_window_set_title (GTK_WINDOW (window), \"GNOME Button\");\n"
+"  gtk_window_set_default_size (GTK_WINDOW (window), 250, 50);\n"
+"\n"
+"  /*Create a button with a label, and add it to the window*/\n"
+"  button = gtk_button_new_with_label (\"Click Me\");\n"
+"  gtk_container_add (GTK_CONTAINER (window), button);\n"
+"\n"
+"  /*Connecting the clicked signal to the callback function*/\n"
+"  g_signal_connect (GTK_Button (button), \n"
+"                    \"clicked\", \n"
+"                    G_CALLBACK (button_clicked), \n"
+"                    G_OBJECT (window));\n"
+"\n"
+"  gtk_widget_show_all (window);\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"int\n"
+"main (int argc, char **argv)\n"
+"{\n"
+"  GtkApplication *app;\n"
+"  int status;\n"
+"\n"
+"  app = gtk_application_new (\"org.gtk.example\", G_APPLICATION_FLAGS_NONE);\n"
+"  g_signal_connect (app, \"activate\", G_CALLBACK (activate), NULL);\n"
+"  status = g_application_run (G_APPLICATION (app), argc, argv);\n"
+"  g_object_unref (app);\n"
+"\n"
+"  return status;\n"
+"}\n"
+
+#: C/button.c.page:35(item/p) C/buttonbox.py.page:49(item/p)
+#: C/grid.c.page:34(item/p)
+msgid ""
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkButton.html";
+"\">GtkButton</link>"
+msgstr ""
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkButton.html";
+"\">GtkButton</link>"
+
+#: C/button.c.page:36(item/p)
+msgid ""
+"<link href=\"http://developer.gnome.org/glib/stable/glib-Unicode-";
+"Manipulation.html#g-utf8-strreverse\">Unicode Manipulation</link>"
+msgstr ""
+"<link href=\"http://developer.gnome.org/glib/stable/glib-Unicode-";
+"Manipulation.html#g-utf8-strreverse\">Unicode Manipulation</link>"
+
+#: C/button.js.page:7(info/title)
+msgctxt "text"
+msgid "Button (JavaScript)"
+msgstr "ÎÎÏÎÏÎ (JavaScript)"
+
+#: C/button.js.page:17(info/desc)
+msgid "A button which can be connected to other widgets"
+msgstr "ÎÎÎ ÎÎÏÎÏÎ ÏÎÏ ÎÏÎÏÎÎ ÎÎ ÏÏÎÎÎÎÎÎ ÎÎ ÎÎÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ"
+
+#: C/button.js.page:22(page/p)
+msgid "A button widget that changes its label when you click it."
+msgstr ""
+"ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÎÏÎÏÎÎÏ ÏÎÏ ÎÎÎÎÎÎÎ ÏÎÎ ÎÏÎÎÎÏÎ ÏÎÏ ÏÏÎÎ ÏÎ ÏÎÏÎÏÎ."
+
+#: C/button.js.page:24(page/code)
+#, no-wrap
+msgid ""
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gio = imports.gi.Gio;\n"
+"const GLib = imports.gi.GLib;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"const ButtonExample = new Lang.Class ({\n"
+"    Name: 'Button Example',\n"
+"\n"
+"    /* Create the application itself\n"
+"       This boilerplate code is needed to build any GTK+ application. */\n"
+"        _init: function () {\n"
+"            this.application = new Gtk.Application ({\n"
+"                application_id: 'org.example.jsbutton',\n"
+"                flags: Gio.ApplicationFlags.FLAGS_NONE\n"
+"            });\n"
+"\n"
+"    // Connect 'activate' and 'startup' signals to the callback functions\n"
+"    this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"    this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents windows when active\n"
+"    _onActivate: function () {\n"
+"        this._window.present ();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal initializes menus and builds the UI\n"
+"    _onStartup: function () {\n"
+"        this._buildUI ();\n"
+"    },\n"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function () {\n"
+"\n"
+"        // Create the application window\n"
+"            this._window = new Gtk.ApplicationWindow  ({ application: this.application,\n"
+"                                                              window_position: Gtk.WindowPosition.CENTER,\n"
+"                                                              title: \"GNOME Button\",\n"
+"                                                              default_height: 50,\n"
+"                                                              default_width: 250 });\n"
+"\n"
+"        // Create the button\n"
+"        this.Button = new Gtk.Button ({label: \"Click Me\"});\n"
+"        this._window.add (this.Button);\n"
+"\n"
+"        // Bind it to a function that says what to do when the button is clicked\n"
+"        this.Button.connect (\"clicked\", Lang.bind(this, this._clickHandler));\n"
+"\n"
+"                // Show the window and all child widgets\n"
+"                this._window.show_all();\n"
+"    },\n"
+"\n"
+"    // Here's the function that says what happens when the button is clicked\n"
+"    _clickHandler: function () {\n"
+"        this.Button.set_label (\"Clicked!\");\n"
+"    }\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new ButtonExample ();\n"
+"app.application.run (ARGV);\n"
+msgstr ""
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gio = imports.gi.Gio;\n"
+"const GLib = imports.gi.GLib;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"const ButtonExample = new Lang.Class ({\n"
+"    Name: 'Button Example',\n"
+"\n"
+"    /* Create the application itself\n"
+"       This boilerplate code is needed to build any GTK+ application. */\n"
+"        _init: function () {\n"
+"            this.application = new Gtk.Application ({\n"
+"                application_id: 'org.example.jsbutton',\n"
+"                flags: Gio.ApplicationFlags.FLAGS_NONE\n"
+"            });\n"
+"\n"
+"    // Connect 'activate' and 'startup' signals to the callback functions\n"
+"    this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"    this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents windows when active\n"
+"    _onActivate: function () {\n"
+"        this._window.present ();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal initializes menus and builds the UI\n"
+"    _onStartup: function () {\n"
+"        this._buildUI ();\n"
+"    },\n"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function () {\n"
+"\n"
+"        // Create the application window\n"
+"            this._window = new Gtk.ApplicationWindow  ({ application: this.application,\n"
+"                                                              window_position: Gtk.WindowPosition.CENTER,\n"
+"                                                              title: \"GNOME Button\",\n"
+"                                                              default_height: 50,\n"
+"                                                              default_width: 250 });\n"
+"\n"
+"        // Create the button\n"
+"        this.Button = new Gtk.Button ({label: \"Click Me\"});\n"
+"        this._window.add (this.Button);\n"
+"\n"
+"        // Bind it to a function that says what to do when the button is clicked\n"
+"        this.Button.connect (\"clicked\", Lang.bind(this, this._clickHandler));\n"
+"\n"
+"                // Show the window and all child widgets\n"
+"                this._window.show_all();\n"
+"    },\n"
+"\n"
+"    // Here's the function that says what happens when the button is clicked\n"
+"    _clickHandler: function () {\n"
+"        this.Button.set_label (\"Clicked!\");\n"
+"    }\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new ButtonExample ();\n"
+"app.application.run (ARGV);\n"
+
+#: C/button.js.page:32(item/p) C/grid.js.page:35(item/p)
+msgid ""
+"<link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Button.html";
+"\">Gtk.Button</link>"
+msgstr ""
+"<link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Button.html";
+"\">Gtk.Button</link>"
+
+#: C/button.py.page:7(info/title)
+msgctxt "text"
+msgid "Button (Python)"
+msgstr "ÎÎÏÎÏÎ (Python)"
+
+#: C/button.py.page:24(page/p) C/button.vala.page:24(page/p)
+msgid "A button widget connected to a simple callback function."
+msgstr ""
+"ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÎÏÎÏÎÎÏ ÏÏÎÎÎÎÎÎÎ ÎÎ ÎÎÎ ÎÏÎÎ ÏÏÎÎÏÏÎÏÎ ÎÏÎÎÎÎÎÎÏÎÏ."
+
+#: C/button.py.page:30(section/code)
+#, no-wrap
+msgid ""
+"from gi.repository import Gtk\n"
+"import sys\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    # a window\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"GNOME Button\", application=app)\n"
+"        self.set_default_size(250, 50)\n"
+"\n"
+"        # a button\n"
+"        button = Gtk.Button()\n"
+"        # with a label\n"
+"        button.set_label(\"Click me\")\n"
+"        # connect the signal \"clicked\" emitted by the button\n"
+"        # to the callback function do_clicked\n"
+"        button.connect(\"clicked\", self.do_clicked)\n"
+"        # add the button to the window\n"
+"        self.add(button)\n"
+"\n"
+"    # callback function connected to the signal \"clicked\" of the button\n"
+"    def do_clicked(self, button):\n"
+"        print \"You clicked me!\"\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup (self):\n"
+"        Gtk.Application.do_startup (self)\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
+msgstr ""
+"from gi.repository import Gtk\n"
+"import sys\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    # a window\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"GNOME Button\", application=app)\n"
+"        self.set_default_size(250, 50)\n"
+"\n"
+"        # a button\n"
+"        button = Gtk.Button()\n"
+"        # with a label\n"
+"        button.set_label(\"Click me\")\n"
+"        # connect the signal \"clicked\" emitted by the button\n"
+"        # to the callback function do_clicked\n"
+"        button.connect(\"clicked\", self.do_clicked)\n"
+"        # add the button to the window\n"
+"        self.add(button)\n"
+"\n"
+"    # callback function connected to the signal \"clicked\" of the button\n"
+"    def do_clicked(self, button):\n"
+"        print \"You clicked me!\"\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup (self):\n"
+"        Gtk.Application.do_startup (self)\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
+
+#: C/button.py.page:33(section/title)
+msgid "Useful methods for a Button widget"
+msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÎÏÎÏÎÎÏ"
+
+#: C/button.py.page:35(section/p)
+#, fuzzy
+msgid ""
+"<code>button = Gtk.Button(label=\"Click me\")</code> could also be used to "
+"create a button and set the text directly. For a general discussion of this, "
+"see <link xref=\"properties.py\">here</link>."
+msgstr ""
+"ÎÎ <code>button = Gtk.Button(label=\"Click me\")</code> ÎÏÎÏÎÎ ÎÏÎÏÎÏ ÎÎ "
+"ÏÏÎÏÎÎÎÏÎÎÎÎÎÎ ÏÏÎ ÎÎÎÎÎÏÏÎÎÎ ÎÎÏÏ ÎÎÏÎÏÎÎÏ ÏÎÎ ÎÏÎÏÎÏ ÏÎÏ ÎÎÎÎÎÎÎÏ ÎÎÎÏÎ. "
+"ÎÎÎ ÎÎÎ ÎÎÎÎÎÎ ÏÏÎÎÏÎÏÎ ÏÎÏ, ÎÎÎÏÎ <link xref=\"properties.py\">ÎÎÏ</link>."
+
+#: C/button.py.page:37(item/p)
+msgid ""
+"<code>set_relief(Gtk.ReliefStyle.NONE)</code> sets to none the relief style "
+"of the edges of the Gtk.Button - as opposed to <code>Gtk.ReliefStyle.NORMAL</"
+"code>."
+msgstr ""
+"Î <code>set_relief(Gtk.ReliefStyle.NONE)</code> ÎÏÎÎÎÎ ÏÎ ÎÎÎÎÎÎ ÏÎÎ ÏÏÏÎ "
+"ÎÎÎÎÎÏÏÎÏ ÏÏÎ ÎÎÏÏÎ ÏÎÏ Gtk.Button - ÎÎÎÏÏ ÎÎÏÎÏÎÎÎÏÎÎ ÏÏÎ <code>Gtk."
+"ReliefStyle.NORMAL</code>."
+
+#: C/button.py.page:38(item/p)
+msgid ""
+"If the label of the button is a <link href=\"http://developer.gnome.org/gtk3/";
+"unstable/gtk3-Stock-Items.html\">stock icon</link>, <code>set_use_stock(True)"
+"</code> sets the label as the name of the corresponding stock icon."
+msgstr ""
+"ÎÎÎ Î ÎÏÎÎÎÏÎ ÏÎÏ ÎÎÏÎÏÎÎÏ ÎÎÎÎÎ ÎÎÎ <link href=\"http://developer.gnome.org/";
+"gtk3/unstable/gtk3-Stock-Items.html\">ÎÎÎÎÎÎÎÎÎ ÏÎÏÎÎÎÏÎÎÎÎÎÏ</link>, Î "
+"<code>set_use_stock(True)</code> ÎÏÎÎÎÎ ÏÎÎ ÎÏÎÎÎÏÎ ÏÏ ÏÎ ÏÎÎÎÎ ÏÎÏ "
+"ÎÎÏÎÏÏÎÎÏÎÏ ÎÎÎÎÎÎÎÎÎÏ ÏÎÏÎÎÎÏÎÎÎÎÎÏ."
+
+#: C/button.py.page:39(item/p)
+msgid ""
+"To set an image (e.g. a stock image) for the button <code>button</code>:"
+msgstr ""
+"ÎÎÎ ÎÏÎÏÎÏ ÎÎÎÏ ÎÎÎÏÎÎÏ (Ï.Ï. ÎÎÎ ÎÎÎÏÎÎ ÏÎÏÎÎÎÏÎÎÎÎÎÏ) ÎÎÎ ÏÎ ÎÎÏÎÏÎ "
+"<code>button</code>:"
+
+#: C/button.py.page:40(item/code)
+#, no-wrap
+msgid ""
+"\n"
+"image = Gtk.Image()\n"
+"image.set_from_stock(Gtk.STOCK_ABOUT, Gtk.IconSize.BUTTON)\n"
+"button.set_image(image)"
+msgstr ""
+"\n"
+"image = Gtk.Image()\n"
+"image.set_from_stock(Gtk.STOCK_ABOUT, Gtk.IconSize.BUTTON)\n"
+"button.set_image(image)"
+
+#: C/button.py.page:44(item/p)
+msgid ""
+"You should not set a label for the button after this, otherwise it will show "
+"the label and not the image."
+msgstr ""
+"ÎÎ ÏÏÎÏÎÎ ÎÎ ÎÎÎ ÎÏÎÏÎÏÎ ÎÎÎ ÎÏÎÎÎÏÎ ÎÎÎ ÏÎ ÎÎÏÎÏÎ ÎÎÏÎ ÎÏÏ ÎÏÏÏ, ÎÎÎÎÏÏ ÎÎ "
+"ÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÏÎÎÎÏÎ ÎÎÎ ÏÏÎ ÏÎÎ ÎÎÎÏÎÎ."
+
+#: C/button.py.page:45(item/p)
+msgid ""
+"If we use <code>set_focus_on_click(False)</code> the button will not grab "
+"focus when it is clicked by the mouse. This could be useful in places like "
+"toolbars, so that the keyboard focus is not removed from the main area of "
+"the application."
+msgstr ""
+"ÎÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ <code>set_focus_on_click(False)</code> ÏÎ ÎÎÏÎÏÎ ÎÎÎ ÎÎ "
+"ÎÏÏÎÎÏÎÎ ÏÏÎÎ ÏÎÏÎÎÎÎ ÎÏÏ ÏÎ ÏÎÎÏÎÎÎ. ÎÏÏÏ ÎÏÎÏÎÎ ÎÎ ÎÎÎÎÎ ÏÏÎÏÎÎÎ ÏÎ ÎÎÏÎÎÏ "
+"ÏÏÏÏ ÎÏÎÎÎÎÎÎÎÎÎÎÏ, ÎÏÏÎ ÏÏÏÎ Î ÎÏÏÎÎÏÎ ÏÎÏ ÏÎÎÎÏÏÎÎÎÎÎÎÏ ÎÎ ÎÎÎ ÎÏÎÎÏÎÎÎÎ "
+"ÎÏÏ ÏÎÎ ÎÏÏÎÎ ÏÎÏÎÎÏÎ ÏÎÏ ÎÏÎÏÎÎÎÎÏ."
+
+#: C/button.py.page:52(item/p)
+msgid ""
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkButton.html";
+"\">GtkButton</link>"
+msgstr ""
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkButton.html";
+"\">GtkButton</link>"
+
+#: C/button.py.page:53(item/p) C/dialog.py.page:50(item/p)
+#: C/image.py.page:101(item/p) C/label.py.page:89(item/p)
+#: C/linkbutton.py.page:46(item/p) C/messagedialog.py.page:60(item/p)
+#: C/radiobutton.py.page:51(item/p) C/separator.py.page:37(item/p)
+#: C/window.py.page:63(item/p)
+msgid ""
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkWindow.html";
+"\">GtkWindow</link>"
+msgstr ""
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkWindow.html";
+"\">GtkWindow</link>"
+
+#: C/button.vala.page:7(info/title)
+msgctxt "text"
+msgid "Button (Vala)"
+msgstr "ÎÎÏÎÏÎ (Vala)"
+
+#: C/button.vala.page:21(page/title)
+msgid "Button widget"
+msgstr "ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÎÏÎÏÎÎÏ"
+
+#: C/button.vala.page:26(page/code)
+#, no-wrap
+msgid ""
+"\n"
+"/* A window in the application */\n"
+"public class MyWindow : Gtk.ApplicationWindow {\n"
+"\n"
+"\t/* The constructor of the window */\n"
+"\tinternal MyWindow (MyApplication app) {\n"
+"\t\tObject (application: app, title: \"GNOME Button\");\n"
+"\n"
+"\t\tvar button = new Gtk.Button.with_label (\"Click Me\");\n"
+"\t\tbutton.clicked.connect (this.reverse_label);\n"
+"\t\tbutton.show ();\n"
+"\n"
+"\t\tthis.window_position = Gtk.WindowPosition.CENTER;\n"
+"\t\tthis.set_default_size (250,50);\n"
+"\t\tthis.add (button);\n"
+"\t}\n"
+"\n"
+"\t/* The callback function connected to the\n"
+"\t * 'clicked' signal of the button.\n"
+"\t */\n"
+"\tvoid reverse_label (Gtk.Button button) {\n"
+"\t\tbutton.label = button.label.reverse ();\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* This is the application. */\n"
+"public class MyApplication : Gtk.Application {\n"
+"\n"
+"\t/* This is the constructor */\n"
+"\tinternal MyApplication () {\n"
+"\t\tObject (application_id: \"org.example.MyApplication\");\n"
+"\t}\n"
+"\n"
+"\t/* Override the activate signal of GLib.Application */\n"
+"\tprotected override void activate () {\n"
+"\t\tnew MyWindow (this).show ();\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* main creates and runs the application */\n"
+"public int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
+msgstr ""
+"\n"
+"/* A window in the application */\n"
+"public class MyWindow : Gtk.ApplicationWindow {\n"
+"\n"
+"\t/* The constructor of the window */\n"
+"\tinternal MyWindow (MyApplication app) {\n"
+"\t\tObject (application: app, title: \"GNOME Button\");\n"
+"\n"
+"\t\tvar button = new Gtk.Button.with_label (\"Click Me\");\n"
+"\t\tbutton.clicked.connect (this.reverse_label);\n"
+"\t\tbutton.show ();\n"
+"\n"
+"\t\tthis.window_position = Gtk.WindowPosition.CENTER;\n"
+"\t\tthis.set_default_size (250,50);\n"
+"\t\tthis.add (button);\n"
+"\t}\n"
+"\n"
+"\t/* The callback function connected to the\n"
+"\t * 'clicked' signal of the button.\n"
+"\t */\n"
+"\tvoid reverse_label (Gtk.Button button) {\n"
+"\t\tbutton.label = button.label.reverse ();\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* This is the application. */\n"
+"public class MyApplication : Gtk.Application {\n"
+"\n"
+"\t/* This is the constructor */\n"
+"\tinternal MyApplication () {\n"
+"\t\tObject (application_id: \"org.example.MyApplication\");\n"
+"\t}\n"
+"\n"
+"\t/* Override the activate signal of GLib.Application */\n"
+"\tprotected override void activate () {\n"
+"\t\tnew MyWindow (this).show ();\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* main creates and runs the application */\n"
+"public int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
+
+#: C/button.vala.page:28(page/p)
+msgid ""
+"In this sample we used the following: <link href=\"http://www.valadoc.org/gtk";
+"+-3.0/Gtk.Button.html\">Gtk.Button</link>"
+msgstr ""
+"ÎÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÏÎ ÏÎÏÎÎÎÏÏ: <link href=\"http://www.";
+"valadoc.org/gtk+-3.0/Gtk.Button.html\">Gtk.Button</link>"
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/buttonbox.py.page:23(media)
+msgctxt "_"
+msgid ""
+"external ref='media/buttonbox_calculator.png' "
+"md5='ce0de08b7ac66f517290e33e6d33d508'"
+msgstr ""
+"external ref='media/buttonbox_calculator.png' "
+"md5='ce0de08b7ac66f517290e33e6d33d508'"
+
+#: C/buttonbox.py.page:7(info/title)
+msgctxt "text"
+msgid "ButtonBox (Python)"
+msgstr "ButtonBox (Python)"
+
+#: C/buttonbox.py.page:18(info/desc)
+msgid "A container for arranging buttons"
+msgstr "ÎÎÎÏ ÏÎÏÎÎÎÏÎÏ ÎÎÎ ÎÎÎÏÎÎÏÎÏÎ ÎÎÏÎÏÎÏÎ"
+
+#: C/buttonbox.py.page:21(page/title)
+msgid "ButtonBox"
+msgstr "ButtonBox"
+
+#: C/buttonbox.py.page:24(page/p)
+msgid "A calculator - the buttons are enclosed in horizontal ButtonBoxes."
+msgstr "ÎÎÎ ÎÏÎÎÎÎÎÎÏÎÎÎ - ÏÎ ÎÎÏÎÏÎÎ ÏÎÏÎÎÎÎÎÎÎÏÎÎ ÏÎ ÎÏÎÎÏÎÏÎÎ ButtonBoxes."
+
+#: C/buttonbox.py.page:30(section/code)
+#, no-wrap
+msgid ""
+"from gi.repository import Gtk\n"
+"import sys\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"Calculator\", application=app)\n"
+"        self.set_default_size(350, 200)\n"
+"        self.set_border_width(10)\n"
+"\n"
+"        # an entry\n"
+"        self.entry = Gtk.Entry()\n"
+"        # with an initial text\n"
+"        self.entry.set_text('0')\n"
+"        # text aligned on the right\n"
+"        self.entry.set_alignment(1)\n"
+"        # the text in the entry cannot be modified writing in it\n"
+"        self.entry.set_can_focus(False)\n"
+"\n"
+"        # a grid\n"
+"        grid = Gtk.Grid()\n"
+"        grid.set_row_spacing(5)\n"
+"        \n"
+"        # to attach the entry\n"
+"        grid.attach(self.entry, 0, 0, 1, 1)\n"
+"        \n"
+"        # the labels for the buttons\n"
+"        buttons = [ 7, 8, 9, '/',\n"
+"                    4, 5, 6, '*',\n"
+"                    1, 2, 3, '-',\n"
+"                    'C', 0, '=', '+' ]\n"
+"        \n"
+"        # each row is a ButtonBox, attached to the grid            \n"
+"        for i in range(4):\n"
+"            hbox = Gtk.ButtonBox.new(Gtk.Orientation.HORIZONTAL)\n"
+"            hbox.set_spacing(5)\n"
+"            grid.attach(hbox, 0, i + 1, 1, 1)\n"
+"            # each ButtonBox has 4 buttons, connected to the callback function\n"
+"            for j in range(4):\n"
+"                button = Gtk.Button(label=buttons[i * 4 + j])\n"
+"                button.set_can_focus(False)\n"
+"                button.connect(\"clicked\", self.button_clicked)\n"
+"                hbox.add(button)\n"
+"            \n"
+"        # some variables for the calculations\n"
+"        self.first_number = 0\n"
+"        self.second_number = 0\n"
+"        self.counter = 0\n"
+"        self.operation = \"\"\n"
+"\n"
+"        # add the grid to the window\n"
+"        self.add(grid)\n"
+"\n"
+"    # callback function for all the buttons\n"
+"    def button_clicked(self, button):\n"
+"        # for the operations\n"
+"        if button.get_label() == '+':\n"
+"            self.counter += 1 \n"
+"            if self.counter &gt; 1:\n"
+"                self.do_operation()\n"
+"            self.entry.set_text('0')\n"
+"            self.operation = \"plus\"\n"
+"        elif button.get_label() == '-':\n"
+"            self.counter += 1 \n"
+"            if self.counter &gt; 1:\n"
+"                self.do_operation()\n"
+"            self.entry.set_text('0')\n"
+"            self.operation = \"minus\"\n"
+"        elif button.get_label() == '*':\n"
+"            self.counter += 1 \n"
+"            if self.counter &gt; 1:\n"
+"                self.do_operation()\n"
+"            self.entry.set_text('0')\n"
+"            self.operation = \"multiplication\"\n"
+"        elif button.get_label() == '/':\n"
+"            self.counter += 1 \n"
+"            if self.counter &gt; 1:\n"
+"                self.do_operation()\n"
+"            self.entry.set_text('0')\n"
+"            self.operation = \"division\"\n"
+"        # for =\n"
+"        elif button.get_label() == '=':\n"
+"            self.do_operation()\n"
+"            self.entry.set_text(str(self.first_number))\n"
+"            self.counter = 1\n"
+"        # for Cancel\n"
+"        elif button.get_label() == 'C':\n"
+"            self.first_number = 0\n"
+"            self.second_number = 0\n"
+"            self.counter = 0\n"
+"            self.entry.set_text('')\n"
+"            self.operation = \"\"\n"
+"        # for a digit button\n"
+"        else:\n"
+"            new_digit = int(button.get_label())\n"
+"            if self.entry.get_text() == 'error':\n"
+"                number = 0\n"
+"            else:\n"
+"                number = int(self.entry.get_text())\n"
+"            number = number * 10 + new_digit            \n"
+"            if self.counter == 0:\n"
+"                self.first_number = number\n"
+"            else:\n"
+"                self.second_number = number\n"
+"            self.entry.set_text(str(number))\n"
+"\n"
+"    def do_operation(self):\n"
+"        if self.operation == \"plus\":\n"
+"            self.first_number += self.second_number\n"
+"        elif self.operation == \"minus\":\n"
+"            self.first_number -= self.second_number\n"
+"        elif self.operation == \"multiplication\":\n"
+"            self.first_number *= self.second_number\n"
+"        elif self.operation == \"division\":\n"
+"            try:\n"
+"                self.first_number /= self.second_number\n"
+"            except ZeroDivisionError:\n"
+"                self.first_number = 0\n"
+"                self.second_number = 0\n"
+"                self.counter = 0\n"
+"                self.entry.set_text('error')\n"
+"                self.operation = \"\"\n"
+"                return\n"
+"        else:\n"
+"            self.first_number = 0\n"
+"            self.second_number = 0\n"
+"            self.counter = 0\n"
+"            self.entry.set_text('error')\n"
+"            \n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
+msgstr ""
+"from gi.repository import Gtk\n"
+"import sys\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"Calculator\", application=app)\n"
+"        self.set_default_size(350, 200)\n"
+"        self.set_border_width(10)\n"
+"\n"
+"        # an entry\n"
+"        self.entry = Gtk.Entry()\n"
+"        # with an initial text\n"
+"        self.entry.set_text('0')\n"
+"        # text aligned on the right\n"
+"        self.entry.set_alignment(1)\n"
+"        # the text in the entry cannot be modified writing in it\n"
+"        self.entry.set_can_focus(False)\n"
+"\n"
+"        # a grid\n"
+"        grid = Gtk.Grid()\n"
+"        grid.set_row_spacing(5)\n"
+"        \n"
+"        # to attach the entry\n"
+"        grid.attach(self.entry, 0, 0, 1, 1)\n"
+"        \n"
+"        # the labels for the buttons\n"
+"        buttons = [ 7, 8, 9, '/',\n"
+"                    4, 5, 6, '*',\n"
+"                    1, 2, 3, '-',\n"
+"                    'C', 0, '=', '+' ]\n"
+"        \n"
+"        # each row is a ButtonBox, attached to the grid            \n"
+"        for i in range(4):\n"
+"            hbox = Gtk.ButtonBox.new(Gtk.Orientation.HORIZONTAL)\n"
+"            hbox.set_spacing(5)\n"
+"            grid.attach(hbox, 0, i + 1, 1, 1)\n"
+"            # each ButtonBox has 4 buttons, connected to the callback function\n"
+"            for j in range(4):\n"
+"                button = Gtk.Button(label=buttons[i * 4 + j])\n"
+"                button.set_can_focus(False)\n"
+"                button.connect(\"clicked\", self.button_clicked)\n"
+"                hbox.add(button)\n"
+"            \n"
+"        # some variables for the calculations\n"
+"        self.first_number = 0\n"
+"        self.second_number = 0\n"
+"        self.counter = 0\n"
+"        self.operation = \"\"\n"
+"\n"
+"        # add the grid to the window\n"
+"        self.add(grid)\n"
+"\n"
+"    # callback function for all the buttons\n"
+"    def button_clicked(self, button):\n"
+"        # for the operations\n"
+"        if button.get_label() == '+':\n"
+"            self.counter += 1 \n"
+"            if self.counter &gt; 1:\n"
+"                self.do_operation()\n"
+"            self.entry.set_text('0')\n"
+"            self.operation = \"plus\"\n"
+"        elif button.get_label() == '-':\n"
+"            self.counter += 1 \n"
+"            if self.counter &gt; 1:\n"
+"                self.do_operation()\n"
+"            self.entry.set_text('0')\n"
+"            self.operation = \"minus\"\n"
+"        elif button.get_label() == '*':\n"
+"            self.counter += 1 \n"
+"            if self.counter &gt; 1:\n"
+"                self.do_operation()\n"
+"            self.entry.set_text('0')\n"
+"            self.operation = \"multiplication\"\n"
+"        elif button.get_label() == '/':\n"
+"            self.counter += 1 \n"
+"            if self.counter &gt; 1:\n"
+"                self.do_operation()\n"
+"            self.entry.set_text('0')\n"
+"            self.operation = \"division\"\n"
+"        # for =\n"
+"        elif button.get_label() == '=':\n"
+"            self.do_operation()\n"
+"            self.entry.set_text(str(self.first_number))\n"
+"            self.counter = 1\n"
+"        # for Cancel\n"
+"        elif button.get_label() == 'C':\n"
+"            self.first_number = 0\n"
+"            self.second_number = 0\n"
+"            self.counter = 0\n"
+"            self.entry.set_text('')\n"
+"            self.operation = \"\"\n"
+"        # for a digit button\n"
+"        else:\n"
+"            new_digit = int(button.get_label())\n"
+"            if self.entry.get_text() == 'error':\n"
+"                number = 0\n"
+"            else:\n"
+"                number = int(self.entry.get_text())\n"
+"            number = number * 10 + new_digit            \n"
+"            if self.counter == 0:\n"
+"                self.first_number = number\n"
+"            else:\n"
+"                self.second_number = number\n"
+"            self.entry.set_text(str(number))\n"
+"\n"
+"    def do_operation(self):\n"
+"        if self.operation == \"plus\":\n"
+"            self.first_number += self.second_number\n"
+"        elif self.operation == \"minus\":\n"
+"            self.first_number -= self.second_number\n"
+"        elif self.operation == \"multiplication\":\n"
+"            self.first_number *= self.second_number\n"
+"        elif self.operation == \"division\":\n"
+"            try:\n"
+"                self.first_number /= self.second_number\n"
+"            except ZeroDivisionError:\n"
+"                self.first_number = 0\n"
+"                self.second_number = 0\n"
+"                self.counter = 0\n"
+"                self.entry.set_text('error')\n"
+"                self.operation = \"\"\n"
+"                return\n"
+"        else:\n"
+"            self.first_number = 0\n"
+"            self.second_number = 0\n"
+"            self.counter = 0\n"
+"            self.entry.set_text('error')\n"
+"            \n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
+
+#: C/buttonbox.py.page:34(section/title)
+msgid "Uselful methods for a ButtonBox widget"
+msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ButtonBox"
+
+#: C/buttonbox.py.page:36(item/p)
+msgid ""
+"The layout of the ButtonBox are set with <code>set_layout(layout)</code>, "
+"where <code>layout</code> can be <code>Gtk.ButtonBoxStyle.SPREAD</code> "
+"(buttons are evenly spread across the box), <code>Gtk.ButtonBoxStyle.EDGE</"
+"code> (buttons are placed at the edges of the box), <code>Gtk.ButtonBoxStyle."
+"START</code> (buttons are grouped towards the start of the box), <code>Gtk."
+"ButtonBoxStyle.END</code> (buttons are grouped towards the end of the box), "
+"<code>Gtk.ButtonBoxStyle.CENTER</code> (buttons are centered in the box)."
+msgstr ""
+"Î ÎÎÎÏÎÎÎ ÏÎÏ ButtonBox ÎÏÎÎÎÏÎÎ ÎÎ <code>set_layout(layout)</code>, ÏÏÎÏ "
+"<code>layout</code> ÎÏÎÏÎÎ ÎÎ ÎÎÎÎÎ <code>Gtk.ButtonBoxStyle.SPREAD</code> "
+"(ÏÎ ÎÎÏÎÏÎÎ ÎÎÎÏÏÎÎÏÎÎÏÎÎ ÎÎÎÏÎÏ ÎÎÏÎ ÎÎÎÎÏ ÏÎÏ ÏÎÎÎÏÎÎÏ), <code>Gtk."
+"ButtonBoxStyle.EDGE</code> (ÏÎ ÎÎÏÎÏÎÎ ÏÎÏÎÎÎÏÎÏÎÏÎÎ ÏÏÎÏ ÎÎÏÎÏ ÏÎÏ "
+"ÏÎÎÎÏÎÎÏ), <code>Gtk.ButtonBoxStyle.START</code> (ÏÎ ÎÎÏÎÏÎÎ ÎÎÎÎÎÏÎÎÎÏÎÏÎÎ "
+"ÏÏÎÏ ÏÎÎ ÎÏÏÎ ÏÎÏ ÏÎÎÎÏÎÎÏ), <code>Gtk.ButtonBoxStyle.END</code> (ÏÎ ÎÎÏÎÏÎÎ "
+"ÎÎÎÎÎÏÎÎÎÏÎÏÎÎ ÏÏÎÏ ÏÎ ÏÎÎÎÏ ÏÎÏ ÏÎÎÎÏÎÎÏ), <code>Gtk.ButtonBoxStyle.CENTER</"
+"code> (ÏÎ ÎÎÏÎÏÎÎ ÎÎÎÏÏÎÏÎÎÏÎÎ ÏÏÎ ÏÎÎÎÏÎÎ)."
+
+#: C/buttonbox.py.page:37(item/p)
+msgid ""
+"<code>set_child_secondary(button, is_secondary)</code> sets whether "
+"<code>button</code> should appear in a secondary group of children. A "
+"typical use of a secondary child is the help button in a dialog. This group "
+"appears after the other children if the style is <code>START</code>, "
+"<code>SPREAD</code> or <code>EDGE</code>, and before the other children if "
+"the style is <code>END</code>. If the style is <code>START</code> or "
+"<code>END</code>, then the secondary children are aligned at the other end "
+"of the button box from the main children. For the other styles, they appear "
+"immediately next to the main children."
+msgstr ""
+"Î <code>set_child_secondary(button, is_secondary)</code> ÎÏÎÎÎÎ ÎÎÎ ÏÎ "
+"<code>button</code> ÏÏÎÏÎÎ ÎÎ ÎÎÏÎÎÎÏÏÎÎ ÏÎ ÎÎÎ ÎÎÏÏÎÏÎÏÎÏÏÎ ÎÎÎÎÎ "
+"ÎÏÎÎÏÏÎÎÏÎ. ÎÎÎ ÏÏÏÎÎÎ ÏÏÎÏÎ ÎÎÏÏ ÎÎÏÏÎÏÎÏÎÎÏÎÏ ÎÏÎÎÏÏÎÎÎÏ ÎÎÎÎÎ ÏÎ "
+"ÎÎÎÎÎÏÎÎÏ ÎÎÏÎÏÎ ÏÎ ÎÎÎ ÎÎÎÎÎÎÎ. ÎÏÏÎ Î ÎÎÎÎÎ ÎÎÏÎÎÎÎÎÏÎÎ ÎÎÏÎ ÏÎ ÎÎÎÎ "
+"ÎÏÎÎÏÏÎÎÎ ÎÎÎ Î ÏÏÏÎÏ ÎÎÎÎÎ <code>START</code>, <code>SPREAD</code> Î "
+"<code>EDGE</code> ÎÎÎ ÏÏÎÎ ÏÎ ÎÎÎÎ ÎÏÎÎÏÏÎÎÎ ÎÎÎ Î ÏÏÏÎÏ ÎÎÎÎÎ <code>END</"
+"code>. ÎÎÎ Î ÏÏÏÎÏ ÎÎÎÎÎ <code>START</code> Î <code>END</code>, ÏÏÏÎ ÏÎ "
+"ÎÎÏÏÎÏÎÏÎÎÏÎ ÎÏÎÎÏÏÎÎÎ ÏÏÎÎÏÎÎÎÎÏÎÎ ÏÏÎÎ ÎÎÎÎ ÎÎÏÎ ÏÎÏ ÏÎÎÎÏÎÎÏ ÎÎÏÎÏÎÎÏ ÎÏÏ "
+"ÏÎ ÎÏÏÎÎ ÎÏÎÎÏÏÎÎÎ. ÎÎÎ ÏÎÏÏ ÎÎÎÎÏÏ ÏÏÏÎÏÏ, ÎÎÏÎÎÎÎÎÎÏÎÎ ÎÎÎÏÏÏ ÎÎÏÎÎ ÏÏÎ "
+"ÎÏÏÎÎ ÎÏÎÎÏÏÎÎÎ."
+
+#: C/buttonbox.py.page:38(item/p)
+msgid ""
+"<code>set_child_non_homogeneous(button, is_non_homogeneous)</code> sets "
+"whether the child is exempted from homogeous sizing. Default value is "
+"<code>False</code>."
+msgstr ""
+"Î <code>set_child_non_homogeneous(button, is_non_homogeneous)</code> ÎÏÎÎÎÎ "
+"ÎÎÎ ÏÎ ÎÏÎÎÏÏÎÎÏ ÎÎÎÎÏÎÎÏÎÎ ÎÏÏ ÏÎ ÎÎÎÎÎÎÎÏ ÎÎÎÎÎÎÏ. ÎÏÎÎÏÎÎÎÎÎÎÎÎ ÏÎÎÎ "
+"ÎÎÎÎÎ <code>False</code>."
+
+#: C/buttonbox.py.page:39(item/p)
+msgid ""
+"<code>set_spacing(spacing)</code> sets the spacing, in pixels, between the "
+"buttons of the box."
+msgstr ""
+"<code>set_spacing(spacing)</code> ÎÏÎÎÎÎ ÏÎ ÎÎÎÎÎÎÎ, ÏÎ ÎÎÎÎÎÎÏÏÎÎÏÎÎÎ, "
+"ÎÎÏÎÎÏ ÏÏÎ ÎÎÏÎÏÎÏÎ ÏÎÏ ÏÎÎÎÏÎÎÏ."
+
+#: C/buttonbox.py.page:47(item/p)
+msgid ""
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkButtonBox.html";
+"\">GtkButtonBox</link>"
+msgstr ""
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkButtonBox.html";
+"\">GtkButtonBox</link>"
+
+#: C/buttonbox.py.page:48(item/p)
+msgid ""
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkBox.html\";>GtkBox</"
+"link>"
+msgstr ""
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkBox.html\";>GtkBox</"
+"link>"
+
+#: C/buttonbox.py.page:50(item/p) C/entry.c.page:33(item/p)
+msgid ""
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkEntry.html";
+"\">GtkEntry</link>"
+msgstr ""
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkEntry.html";
+"\">GtkEntry</link>"
+
+#: C/buttonbox.py.page:51(item/p) C/grid.c.page:35(item/p)
+#: C/radiobutton.c.page:36(item/p) C/spinbutton.c.page:39(item/p)
+#: C/statusbar.c.page:39(item/p) C/switch.c.page:36(item/p)
+#: C/togglebutton.c.page:39(item/p)
+msgid ""
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkGrid.html\";>GtkGrid</"
+"link>"
+msgstr ""
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkGrid.html\";>GtkGrid</"
+"link>"
+
+#: C/c.page:6(info/title)
+msgctxt "link"
+msgid "C"
+msgstr "C"
+
+#: C/c.page:15(page/title)
+msgid "Tutorials, code samples, and plaform demos in C"
+msgstr "ÎÎÎÎÎÎÏÎ, ÎÎÎÎÎÎÏÎ ÎÏÎÎÎÎ ÎÎÎ ÏÎÏÎÎÎÎÎÎÎÏÎ ÏÎÎÏÏÏÏÎÎÏ ÏÎ C"
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/checkbutton.c.page:21(media) C/checkbutton.js.page:21(media)
+#: C/checkbutton.py.page:22(media) C/checkbutton.vala.page:21(media)
+msgctxt "_"
+msgid ""
+"external ref='media/checkbutton.png' md5='7921a6812c87dd2b3781f4fad241e858'"
+msgstr ""
+"external ref='media/checkbutton.png' md5='7921a6812c87dd2b3781f4fad241e858'"
+
+#: C/checkbutton.c.page:7(info/title)
+msgctxt "text"
+msgid "CheckButton (C)"
+msgstr "CheckButton (C)"
+
+#: C/checkbutton.c.page:17(info/desc)
+msgid "Create widgets with a discrete ToggleButton"
+msgstr "ÎÎÎÎÎÏÏÎÎÎ ÎÏÎÏÎÎÏÎ ÏÏÏÏÎÏÎÎÏÎ ÎÎ ÎÎÎ ÎÎÎÎÏÎÏÏ ToggleButton"
+
+#: C/checkbutton.c.page:20(page/title) C/checkbutton.js.page:20(page/title)
+#: C/checkbutton.py.page:21(page/title) C/checkbutton.vala.page:20(page/title)
+msgid "CheckButton"
+msgstr "CheckButton"
+
+#: C/checkbutton.c.page:22(page/p) C/checkbutton.py.page:23(page/p)
+#: C/checkbutton.vala.page:22(page/p)
+msgid "This CheckButton toggles the title."
+msgstr "ÎÏÏÏ ÏÎ CheckButton ÎÎÎÎÎÎÏÏÎÎ ÏÎÎ ÏÎÏÎÎ."
+
+#: C/checkbutton.c.page:24(page/code)
+#, no-wrap
+msgid ""
+"#include &lt;gtk/gtk.h&gt;\n"
+"\n"
+"/* signal handler for \"toggled\" signal of the CheckButton */\n"
+"static void\n"
+"toggled_cb (GtkToggleButton *toggle_button,\n"
+"            gpointer         user_data)\n"
+"{\n"
+"  GtkWindow *window = user_data;\n"
+"\n"
+"  if (gtk_toggle_button_get_active (toggle_button))\n"
+"      gtk_window_set_title (window, \"CheckButton Example\");\n"
+"  else\n"
+"      gtk_window_set_title (window, \"\");\n"
+"}\n"
+"\n"
+"static void\n"
+"activate (GtkApplication *app,\n"
+"          gpointer        user_data)\n"
+"{\n"
+"  GtkWidget *window;\n"
+"  GtkWidget *checkbutton;\n"
+"\n"
+"  window = gtk_application_window_new (app);\n"
+"  gtk_window_set_title (GTK_WINDOW (window), \"CheckButton Example\");\n"
+"  gtk_window_set_default_size (GTK_WINDOW (window), 300, 100);\n"
+"\n"
+"  checkbutton = gtk_check_button_new_with_label (\"Show Title\");\n"
+"  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton), TRUE);\n"
+"  g_signal_connect (GTK_TOGGLE_BUTTON (checkbutton), \"toggled\", G_CALLBACK (toggled_cb), window);\n"
+"  gtk_container_add (GTK_CONTAINER (window), checkbutton);\n"
+"  gtk_widget_show_all (window);\n"
+"}\n"
+"\n"
+"int\n"
+"main (int argc, char **argv)\n"
+"{\n"
+"  GtkApplication *app;\n"
+"  int status;\n"
+"\n"
+"  app = gtk_application_new (\"org.example.checkbutton\", G_APPLICATION_FLAGS_NONE);\n"
+"  g_signal_connect (app, \"activate\", G_CALLBACK (activate), NULL);\n"
+"  status = g_application_run (G_APPLICATION (app), argc, argv);\n"
+"  g_object_unref (app);\n"
+"\n"
+"  return status;\n"
+"}\n"
+msgstr ""
+"#include &lt;gtk/gtk.h&gt;\n"
+"\n"
+"/* signal handler for \"toggled\" signal of the CheckButton */\n"
+"static void\n"
+"toggled_cb (GtkToggleButton *toggle_button,\n"
+"            gpointer         user_data)\n"
+"{\n"
+"  GtkWindow *window = user_data;\n"
+"\n"
+"  if (gtk_toggle_button_get_active (toggle_button))\n"
+"      gtk_window_set_title (window, \"CheckButton Example\");\n"
+"  else\n"
+"      gtk_window_set_title (window, \"\");\n"
+"}\n"
+"\n"
+"static void\n"
+"activate (GtkApplication *app,\n"
+"          gpointer        user_data)\n"
+"{\n"
+"  GtkWidget *window;\n"
+"  GtkWidget *checkbutton;\n"
+"\n"
+"  window = gtk_application_window_new (app);\n"
+"  gtk_window_set_title (GTK_WINDOW (window), \"CheckButton Example\");\n"
+"  gtk_window_set_default_size (GTK_WINDOW (window), 300, 100);\n"
+"\n"
+"  checkbutton = gtk_check_button_new_with_label (\"Show Title\");\n"
+"  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton), TRUE);\n"
+"  g_signal_connect (GTK_TOGGLE_BUTTON (checkbutton), \"toggled\", G_CALLBACK (toggled_cb), window);\n"
+"  gtk_container_add (GTK_CONTAINER (window), checkbutton);\n"
+"  gtk_widget_show_all (window);\n"
+"}\n"
+"\n"
+"int\n"
+"main (int argc, char **argv)\n"
+"{\n"
+"  GtkApplication *app;\n"
+"  int status;\n"
+"\n"
+"  app = gtk_application_new (\"org.example.checkbutton\", G_APPLICATION_FLAGS_NONE);\n"
+"  g_signal_connect (app, \"activate\", G_CALLBACK (activate), NULL);\n"
+"  status = g_application_run (G_APPLICATION (app), argc, argv);\n"
+"  g_object_unref (app);\n"
+"\n"
+"  return status;\n"
+"}\n"
+
+#: C/checkbutton.c.page:29(item/p)
+msgid ""
+"<link href=\"http://developer.gnome.org/gtk3/3.2/GtkCheckButton.html";
+"\">GtkCheckButton</link>"
+msgstr ""
+"<link href=\"http://developer.gnome.org/gtk3/3.2/GtkCheckButton.html";
+"\">GtkCheckButton</link>"
+
+#: C/checkbutton.js.page:7(info/title)
+msgctxt "text"
+msgid "CheckButton (JavaScript)"
+msgstr "CheckButton (JavaScript)"
+
+#: C/checkbutton.js.page:17(info/desc)
+msgid "A box which can be checked or unchecked"
+msgstr "ÎÎÎ ÎÎÏÎÏÎ ÏÎÏ ÎÏÎÏÎÎ ÎÎ ÏÎÎÎÎÏÎÎÎ Î ÎÎ ÎÏÎÏÎÎÎÎÏÎÎÎ"
+
+#: C/checkbutton.js.page:22(page/p)
+msgid ""
+"This application has a CheckButton. Whether the box is checked dictates "
+"whether the window's title bar shows anything."
+msgstr ""
+"ÎÏÏÎ Î ÎÏÎÏÎÎÎÎ ÎÏÎÎ ÎÎÎ CheckButton. ÎÎÎ ÏÎ ÏÎÎÎÏÎÎ ÎÎÎÎÎ ÏÎÎÎÎÏÎÎÎÎ "
+"ÏÏÎÎÎÏÎÏÎÎ ÎÎÎ Î ÎÏÎÎÎÎ ÏÎÏÎÎÏ ÏÎÏ ÏÎÏÎÎÏÏÎÏ ÎÎÏÎÎÎÎÎÎ ÎÏÎÎÎÏÎÏÎ."
+
+#: C/checkbutton.js.page:23(page/p)
+msgid ""
+"A CheckButton sends the \"toggled\" signal when it's checked or unchecked. "
+"While it's checked, the \"active\" property is true. While it's not, \"active"
+"\" tests as false."
+msgstr ""
+"ÎÎÎ CheckButton ÏÏÎÎÎÎÎ ÏÎ ÏÎÎÎ \"ÎÎÎÎÎÎÎÎÏ\" ÏÏÎÎ ÏÎÎÎÎÏÎÎÏÎÎ Î "
+"ÎÏÎÏÎÎÎÎÏÎÎÏÎÎ. ÎÎÏ ÎÎÎÎÎ ÏÎÎÎÎÏÎÎÎÎ, Î ÎÎÎÏÏÎÏÎ \"ÎÎÎÏÎÎ\" ÎÎÎÎÎ ÎÎÎÎÎÏ. "
+"ÎÎÏ ÎÎÎ ÎÎÎ ÎÎÎÎÎ, ÏÎ \"ÎÎÎÏÎÎ\" ÎÎÎÎÏÎÏÎÎ ÏÏ ÏÎÏÎÎÏ."
+
+#: C/checkbutton.js.page:27(section/title)
+#: C/comboboxtext.js.page:29(section/title)
+#: C/combobox.js.page:32(section/title)
+#: C/guitar-tuner.js.page:54(section/title)
+#: C/helloWorld.js.page:52(section/title)
+#: C/messagedialog.js.page:30(section/title)
+#: C/radiobutton.js.page:27(section/title) C/scale.js.page:27(section/title)
+#: C/spinbutton.js.page:30(section/title)
+#: C/statusbar.js.page:27(section/title) C/switch.js.page:34(section/title)
+#: C/textview.js.page:37(section/title)
+#: C/togglebutton.js.page:27(section/title)
+#: C/treeview_simple_liststore.js.page:36(section/title)
+#: C/weatherAppMain.js.page:40(section/title)
+msgid "Libraries to import"
+msgstr "ÎÎÎÎÎÎÎÎÎÎÏ ÎÎÎ ÎÎÏÎÎÏÎÎ"
+
+#: C/checkbutton.js.page:28(section/code)
+#: C/messagedialog.js.page:31(section/code)
+#: C/radiobutton.js.page:28(section/code) C/scale.js.page:28(section/code)
+#: C/spinbutton.js.page:31(section/code) C/statusbar.js.page:28(section/code)
+#: C/switch.js.page:35(section/code) C/togglebutton.js.page:28(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gio = imports.gi.Gio;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+msgstr ""
+"\n"
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gio = imports.gi.Gio;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+
+#: C/checkbutton.js.page:35(section/p) C/comboboxtext.js.page:36(section/p)
+#: C/combobox.js.page:40(section/p) C/messagedialog.js.page:38(section/p)
+#: C/radiobutton.js.page:35(section/p) C/scale.js.page:35(section/p)
+#: C/spinbutton.js.page:38(section/p) C/statusbar.js.page:35(section/p)
+#: C/switch.js.page:42(section/p) C/textview.js.page:44(section/p)
+#: C/togglebutton.js.page:35(section/p)
+#: C/treeview_simple_liststore.js.page:45(section/p)
+msgid ""
+"These are the libraries we need to import for this application to run. "
+"Remember that the line which tells GNOME that we're using Gjs always needs "
+"to go at the start."
+msgstr ""
+"ÎÏÏÎÏ ÎÎÎÎÎ ÎÎ ÎÎÎÎÎÎÎÎÎÎÏ ÏÎÏ ÏÏÎÎÎÎÏÎÎÏÏÎ ÎÎ ÎÎÏÎÎÎÏÎÎ ÎÏÏÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ "
+"ÎÎÎ ÎÎ ÎÎÏÎÎÎÏÏÎÎ. ÎÎ ÎÏÎÏÏÎÏÏÎ ÏÏÎ Î ÎÏÎÎÎÎ ÏÎÏ ÎÎÎÎ ÏÏÎ GNOME ÏÏÎ "
+"ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ Gjs ÏÏÎÎÎÎÎÏÎÎ ÏÎÎÏÎÏÎ ÎÎ ÏÎÎÎ ÏÏÎÎ ÎÏÏÎ."
+
+#: C/checkbutton.js.page:39(section/title)
+#: C/comboboxtext.js.page:40(section/title)
+#: C/combobox.js.page:44(section/title)
+#: C/messagedialog.js.page:42(section/title)
+#: C/radiobutton.js.page:39(section/title) C/scale.js.page:39(section/title)
+#: C/spinbutton.js.page:42(section/title)
+#: C/statusbar.js.page:39(section/title) C/switch.js.page:46(section/title)
+#: C/textview.js.page:48(section/title)
+#: C/togglebutton.js.page:39(section/title)
+#: C/treeview_simple_liststore.js.page:49(section/title)
+msgid "Creating the application window"
+msgstr "ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ ÏÎÏÎÎÏÏÎÏ ÎÏÎÏÎÎÎÎÏ"
+
+#: C/checkbutton.js.page:40(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"const CheckButtonExample = new Lang.Class({\n"
+"    Name: 'CheckButton Example',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application({\n"
+"            application_id: 'org.example.jscheckbutton',\n"
+"            flags: Gio.ApplicationFlags.FLAGS_NONE\n"
+"        });\n"
+"\n"
+"    // Connect 'activate' and 'startup' signals to the callback functions\n"
+"    this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"    this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents window when active\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function() {\n"
+"        this._buildUI ();\n"
+"    },\n"
+msgstr ""
+"\n"
+"const CheckButtonExample = new Lang.Class({\n"
+"    Name: 'CheckButton Example',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application({\n"
+"            application_id: 'org.example.jscheckbutton',\n"
+"            flags: Gio.ApplicationFlags.FLAGS_NONE\n"
+"        });\n"
+"\n"
+"    // Connect 'activate' and 'startup' signals to the callback functions\n"
+"    this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"    this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents window when active\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function() {\n"
+"        this._buildUI ();\n"
+"    },\n"
+
+#: C/checkbutton.js.page:66(section/p)
+msgid ""
+"All the code for this sample goes in the CheckButtonExample class. The above "
+"code creates a <link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/";
+"Gtk.Application.html\">Gtk.Application</link> for our widgets and window to "
+"go in."
+msgstr ""
+"ÎÎÎÏ Î ÎÏÎÎÎÎÏ ÎÎÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÏÎÎÎÎÎÎÎ ÏÏÎÎ ÎÎÎÏÎ "
+"CheckButtonExample. Î ÏÎÏÎÏÎÎÏ ÎÏÎÎÎÎÏ ÎÎÎÎÎÏÏÎÎÎ ÎÎÎ <link href=\"http://";
+"www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Application.html\">Gtk."
+"Application</link> ÎÎÎ ÎÎ ÎÏÎÏÎ ÎÎÏÎ ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÏ ÎÎÎ ÏÎ "
+"ÏÎÏÎÎÏÏÎ."
+
+#: C/checkbutton.js.page:67(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function() {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            default_height: 100,\n"
+"            default_width: 300,\n"
+"            border_width: 10,\n"
+"            title: \"CheckButton Example\"});\n"
+msgstr ""
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function() {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            default_height: 100,\n"
+"            default_width: 300,\n"
+"            border_width: 10,\n"
+"            title: \"CheckButton Example\"});\n"
+
+#: C/checkbutton.js.page:80(section/p)
+msgid ""
+"The _buildUI function is where we put all the code to create the "
+"application's user interface. The first step is creating a new <link href="
+"\"GtkApplicationWindow.js.page\">Gtk.ApplicationWindow</link> to put all our "
+"widgets into."
+msgstr ""
+"Î ÏÏÎÎÏÏÎÏÎ _buildUI ÎÎÎÎÎ ÎÎÎÎ ÏÎÏ ÎÎÎÎÏÎÎ ÏÎÎÎ ÏÎÎ ÎÏÎÎÎÎ ÎÎÎ ÎÎ "
+"ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ ÏÎ ÎÎÎÏÎÏÎ ÏÏÎÏÏÎ ÏÎÏ ÎÏÎÏÎÎÎÎÏ. ÎÎ ÏÏÏÏÎ ÎÎÎÎ ÎÎÎÎÎÏÏÎÎÎ ÎÎÎ "
+"ÎÎÎ <link href=\"GtkApplicationWindow.js.page\">Gtk.ApplicationWindow</link> "
+"ÎÎÎ ÎÎ ÎÎÎÎÏÎÎ ÎÎÏÎ ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÏ."
+
+#: C/checkbutton.js.page:84(section/title)
+msgid "Creating the checkbutton"
+msgstr "ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ ÏÎÎÎÏÏÎÏ ÎÎÎÎÏÎÏ"
+
+#: C/checkbutton.js.page:85(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"        // Create the check button\n"
+"        this._button = new Gtk.CheckButton ({label: \"Show Title\"});\n"
+"        this._window.add (this._button);\n"
+"\n"
+"        // Have the check button be checked by default\n"
+"        this._button.set_active (true);\n"
+"\n"
+"        // Connect the button to a function that does something when it's toggled\n"
+"        this._button.connect (\"toggled\", Lang.bind (this, this._toggledCB));\n"
+msgstr ""
+"\n"
+"        // Create the check button\n"
+"        this._button = new Gtk.CheckButton ({label: \"Show Title\"});\n"
+"        this._window.add (this._button);\n"
+"\n"
+"        // Have the check button be checked by default\n"
+"        this._button.set_active (true);\n"
+"\n"
+"        // Connect the button to a function that does something when it's toggled\n"
+"        this._button.connect (\"toggled\", Lang.bind (this, this._toggledCB));\n"
+
+#: C/checkbutton.js.page:96(section/p)
+#, fuzzy
+msgid ""
+"This code creates the checkbutton itself. The label next to the checkbutton "
+"is created by giving the checkbutton the \"label\" property and assigning a "
+"string value to it. Since this checkbutton toggles whether the window title "
+"is on or off, and the window title will be on to start with, we want the box "
+"to be checked by default. Whenever the user checks or unchecks the box, we "
+"call the _toggledCB function."
+msgstr ""
+"ÎÏÏÏÏ Î ÎÏÎÎÎÎÏ ÎÎÎÎÎÏÏÎÎÎ ÏÎ ÎÎÎÎ ÏÎ ÏÎÎÎÏÏÎ ÎÎÎÎÏÎÏ. Î ÎÏÎÎÎÏÎ ÎÎÏÎÎ ÏÏÎ "
+"ÏÎÎÎÏÏÎ ÎÎÎÎÏÎÏ ÎÎÎÎÎÏÏÎÎÎÏÎÎ ÎÎÎÎÎÏÎÏ ÏÏÎ ÏÎÎÎÏÏÎ ÎÎÎÎÏÎÏ ÏÎÎ ÎÎÎÏÏÎÏÎ "
+"\"ÎÏÎÎÎÏÎ\" ÎÎÎ ÎÏÎÎÎÎÎÎÏÎÏ ÏÎÎ ÏÎÎÎ ÎÎÎÏ ÏÏÎÎÎÎÎÏÎÎÏÎÏ ÏÎ ÎÏÏÎ. ÎÏÎÎÎÎ ÎÏÏÏ "
+"ÏÎ ÏÎÎÎÏÏÎ ÎÎÎÎÏÎÏ ÎÎÎÎÎÎÏÏÎÏÎÎ ÎÎÎ Î ÏÎÏÎÎÏ ÏÎÏÎÎÏÏÎÏ ÎÎÎÎÎ ÎÎÎÏÎÏÏ Î ÏÏÎ "
+"ÎÎÎ Î ÏÎÏÎÎÏ ÏÎÏÎÎÏÏÎÏ ÎÎ ÎÎÎÎÎ ÎÎÎÏÎÏÏ ÏÏÎÎ ÎÎÎÎÎÎÏÎ, ÎÎÎÎÏÎÎ ÏÎ ÏÎÎÎÏÎÎ ÎÎ "
+"ÏÎÎÎÎÏÎÎÎ ÎÏÏ ÏÏÎÎÏÎÎÎÎÎ. ÎÏÎÎ Î ÏÏÎÏÏÎÏ ÏÎÎÎÎÏÎÎÎ Î ÎÎÏÎÎÎÎÏÎÎÎ ÏÎ ÏÎÎÎÏÎÎ, "
+"ÎÎÎÎÏÎÎ ÏÎ ÏÏÎÎÏÏÎÏÎ ._toggledCB."
+
+#: C/checkbutton.js.page:97(section/code)
+#: C/radiobutton.js.page:169(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    },\n"
+msgstr ""
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    },\n"
+
+#: C/checkbutton.js.page:102(section/p)
+msgid ""
+"This code finishes up creating the UI, by telling the window to show itself "
+"and all child widgets (which is just the checkbutton in this case)."
+msgstr ""
+"ÎÏÏÏÏ Î ÎÏÎÎÎÎÏ ÏÎÎÎÎÏÎÎÎ ÎÎÎÎÎÏÏÎÏÎÏÎÏ ÏÎ ÎÏÎÏÎÎÎ ÎÎÎÏÎÏÎ, ÎÎÎÎÎÏÎÏ ÏÏÎ "
+"ÏÎÏÎÎÏÏÎ ÎÎ ÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÎÏÏÏ ÏÎÏ ÎÎÎ ÏÎÎ ÏÎ ÎÏÎÎÏÏÎÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ "
+"(ÏÎÏ ÎÎÎÎÎ ÎÏÎÎ ÏÎ ÏÎÎÎÏÏÎ ÎÎÎÎÏÎÏ ÏÎ ÎÏÏÎÎ ÏÎÎ ÏÎÏÎÏÏÏÏÎ)."
+
+#: C/checkbutton.js.page:106(section/title)
+msgid "Function which handles the checkbutton's toggling"
+msgstr "Î ÏÏÎÎÏÏÎÏÎ ÏÎÏ ÏÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÎÎÎÎÎÎÎ ÏÎÏ ÏÎÎÎÏÎÎÏ ÎÎÎÎÏÎÏ"
+
+#: C/checkbutton.js.page:107(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"    _toggledCB: function () {\n"
+"\n"
+"        // Make the window title appear or disappear when the checkbox is toggled\n"
+"        if (this._button.get_active() == true)\n"
+"            this._window.set_title (\"CheckButton Example\");\n"
+"        else\n"
+"            this._window.set_title (\"\");\n"
+"\n"
+"    }\n"
+"\n"
+"});\n"
+msgstr ""
+"\n"
+"    _toggledCB: function () {\n"
+"\n"
+"        // Make the window title appear or disappear when the checkbox is toggled\n"
+"        if (this._button.get_active() == true)\n"
+"            this._window.set_title (\"CheckButton Example\");\n"
+"        else\n"
+"            this._window.set_title (\"\");\n"
+"\n"
+"    }\n"
+"\n"
+"});\n"
+
+#: C/checkbutton.js.page:120(section/p)
+msgid ""
+"If the checkbutton is toggled from on to off, we want the window title to "
+"disappear. If it's toggled from off to on, we want it to reappear. We can "
+"tell which way it was toggled by testing to see whether it's active "
+"(checked) or not afterwards. A simple if / else statement which calls the "
+"checkbutton's get_active() method will work for this."
+msgstr ""
+"ÎÎÎ ÏÎ ÏÎÎÎÏÏÎ ÎÎÎÎÏÎÏ ÎÎÎÎÎÎÏÏÎÏÎÎ ÎÏÏ ÎÎÎÏÎÏ ÏÎ ÎÎÎÎÎÏÎÏ, ÎÎÎÎÏÎÎ Î ÏÎÏÎÎÏ "
+"ÏÎÏ ÏÎÏÎÎÏÏÎÏ ÎÎ ÎÎÎÏÎÎÎÏÏÎÎ. ÎÎÎ ÎÎÎÎÎÎÏÏÎÏÎÎ ÎÏÏ ÎÎÎÎÎÏÎÏ ÏÎ ÎÎÎÏÎÏ, ÏÎ "
+"ÎÎÎÎÏÎÎ ÎÎ ÎÏÎÎÎÎÏÎÎÎÎÎÏÎÎ. ÎÏÎÏÎÏÎÎ ÎÎ ÏÎÏÎÎ ÎÎ ÏÎÎÎ ÏÏÏÏÎ ÎÎÎÎÎÎÏÏÎÎÎ "
+"ÎÎÎÎÎÎÎÎÎÏÎÏ ÎÎ ÎÎÏÎÎ ÎÎÎ ÎÎÎÎÎ ÎÎÎÏÎÏ (ÏÎÎÎÎÏÎÎÎÎ) Î ÏÏÎ ÎÎÏÏÏÎÎ. ÎÎÎ ÎÏÎÎ "
+"ÏÏÏÏÎÏÎ if / else ÏÎÏ ÎÎÎÎÎ ÏÎ ÎÎÎÎÎÎ get_active() ÏÎÏ ÏÎÎÎÏÏÎÏ ÎÎÎÎÏÎÏ ÎÎ "
+"ÎÎÏÎÎÏÎÎ ÎÎÎ ÎÏÏÏ."
+
+#: C/checkbutton.js.page:121(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"// Run the application\n"
+"let app = new CheckButtonExample ();\n"
+"app.application.run (ARGV);\n"
+msgstr ""
+"\n"
+"// Run the application\n"
+"let app = new CheckButtonExample ();\n"
+"app.application.run (ARGV);\n"
+
+#: C/checkbutton.js.page:126(section/p)
+msgid ""
+"Finally, we create a new instance of the finished CheckButtonExample class, "
+"and set the application running."
+msgstr ""
+"ÎÎÎÎÎÎ, ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ ÏÎÏ ÏÎÎÎÎÏÎÎÎÎÏ ÎÎÎÏÎÏ "
+"CheckButtonExample ÎÎÎ ÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ."
+
+#: C/checkbutton.js.page:131(section/code)
+#, no-wrap
+msgid ""
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gio = imports.gi.Gio;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"const CheckButtonExample = new Lang.Class({\n"
+"    Name: 'CheckButton Example',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application({\n"
+"            application_id: 'org.example.jscheckbutton',\n"
+"            flags: Gio.ApplicationFlags.FLAGS_NONE\n"
+"        });\n"
+"\n"
+"    // Connect 'activate' and 'startup' signals to the callback functions\n"
+"    this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"    this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents window when active\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function() {\n"
+"        this._buildUI ();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function() {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            default_height: 100,\n"
+"            default_width: 300,\n"
+"            border_width: 10,\n"
+"            title: \"CheckButton Example\"});\n"
+"\n"
+"        // Create the check button\n"
+"        this._button = new Gtk.CheckButton ({label: \"Show Title\"});\n"
+"        this._window.add (this._button);\n"
+"\n"
+"        // Have the check button be checked by default\n"
+"        this._button.set_active (true);\n"
+"\n"
+"        // Connect the button to a function that does something when it's toggled\n"
+"        this._button.connect (\"toggled\", Lang.bind (this, this._toggledCB));\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    _toggledCB: function () {\n"
+"\n"
+"        // Make the window title appear or disappear when the checkbox is toggled\n"
+"        if (this._button.get_active() == true)\n"
+"            this._window.set_title (\"CheckButton Example\");\n"
+"        else\n"
+"            this._window.set_title (\"\");\n"
+"\n"
+"    }\n"
+"\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new CheckButtonExample ();\n"
+"app.application.run (ARGV);\n"
+msgstr ""
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gio = imports.gi.Gio;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"const CheckButtonExample = new Lang.Class({\n"
+"    Name: 'CheckButton Example',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application({\n"
+"            application_id: 'org.example.jscheckbutton',\n"
+"            flags: Gio.ApplicationFlags.FLAGS_NONE\n"
+"        });\n"
+"\n"
+"    // Connect 'activate' and 'startup' signals to the callback functions\n"
+"    this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"    this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents window when active\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function() {\n"
+"        this._buildUI ();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function() {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            default_height: 100,\n"
+"            default_width: 300,\n"
+"            border_width: 10,\n"
+"            title: \"CheckButton Example\"});\n"
+"\n"
+"        // Create the check button\n"
+"        this._button = new Gtk.CheckButton ({label: \"Show Title\"});\n"
+"        this._window.add (this._button);\n"
+"\n"
+"        // Have the check button be checked by default\n"
+"        this._button.set_active (true);\n"
+"\n"
+"        // Connect the button to a function that does something when it's toggled\n"
+"        this._button.connect (\"toggled\", Lang.bind (this, this._toggledCB));\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    _toggledCB: function () {\n"
+"\n"
+"        // Make the window title appear or disappear when the checkbox is toggled\n"
+"        if (this._button.get_active() == true)\n"
+"            this._window.set_title (\"CheckButton Example\");\n"
+"        else\n"
+"            this._window.set_title (\"\");\n"
+"\n"
+"    }\n"
+"\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new CheckButtonExample ();\n"
+"app.application.run (ARGV);\n"
+
+#: C/checkbutton.js.page:135(section/title)
+#: C/comboboxtext.js.page:175(section/title)
+#: C/combobox.js.page:232(section/title)
+#: C/messagedialog.js.page:188(section/title)
+#: C/radiobutton.js.page:273(section/title) C/scale.js.page:207(section/title)
+#: C/spinbutton.js.page:198(section/title)
+#: C/statusbar.js.page:220(section/title) C/switch.js.page:263(section/title)
+#: C/textview.js.page:247(section/title)
+#: C/togglebutton.js.page:152(section/title)
+#: C/treeview_simple_liststore.js.page:271(section/title)
+msgid "In-depth documentation"
+msgstr "ÎÎÎÎÎÏÎÏÏÎ ÏÎ ÎÎÎÎÏ"
+
+#: C/checkbutton.js.page:139(item/p)
+msgid ""
+"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.CheckButton.";
+"html\">Gtk.CheckButton</link>"
+msgstr ""
+"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.CheckButton.";
+"html\">Gtk.CheckButton</link>"
+
+#: C/checkbutton.py.page:7(info/title)
+msgctxt "text"
+msgid "CheckButton (Python)"
+msgstr "CheckButton (Python)"
+
+#: C/checkbutton.py.page:18(info/desc)
+msgid "A toggle button in a window"
+msgstr "ÎÎÎ ÎÎÏÎÏÎ ÎÎÎÎÎÎÎÎÏ ÏÎ ÏÎÏÎÎÏÏÎ"
+
+#: C/checkbutton.py.page:30(section/code)
+#, no-wrap
+msgid ""
+"from gi.repository import Gtk\n"
+"import sys\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    # a window\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"CheckButton Example\", application=app)\n"
+"        self.set_default_size(300, 100)\n"
+"        self.set_border_width(10)\n"
+"\n"
+"        # a new checkbutton\n"
+"        button = Gtk.CheckButton()\n"
+"        #  with a label\n"
+"        button.set_label(\"Show Title\")\n"
+"        # connect the signal \"toggled\" emitted by the checkbutton\n"
+"        # with the callback function toggled_cb\n"
+"        button.connect(\"toggled\", self.toggled_cb)\n"
+"        # by default, the checkbutton is active\n"
+"        button.set_active(True)\n"
+"\n"
+"        # add the checkbutton to the window\n"
+"        self.add(button)\n"
+"\n"
+"    # callback function\n"
+"    def toggled_cb(self, button):\n"
+"        # if the togglebutton is active, set the title of the window\n"
+"        # as \"Checkbutton Example\"\n"
+"        if button.get_active():\n"
+"            self.set_title(\"CheckButton Example\")\n"
+"        # else, set it as \"\" (empty string)\n"
+"        else:\n"
+"            self.set_title(\"\")\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
+msgstr ""
+"from gi.repository import Gtk\n"
+"import sys\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    # a window\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"CheckButton Example\", application=app)\n"
+"        self.set_default_size(300, 100)\n"
+"        self.set_border_width(10)\n"
+"\n"
+"        # a new checkbutton\n"
+"        button = Gtk.CheckButton()\n"
+"        #  with a label\n"
+"        button.set_label(\"Show Title\")\n"
+"        # connect the signal \"toggled\" emitted by the checkbutton\n"
+"        # with the callback function toggled_cb\n"
+"        button.connect(\"toggled\", self.toggled_cb)\n"
+"        # by default, the checkbutton is active\n"
+"        button.set_active(True)\n"
+"\n"
+"        # add the checkbutton to the window\n"
+"        self.add(button)\n"
+"\n"
+"    # callback function\n"
+"    def toggled_cb(self, button):\n"
+"        # if the togglebutton is active, set the title of the window\n"
+"        # as \"Checkbutton Example\"\n"
+"        if button.get_active():\n"
+"            self.set_title(\"CheckButton Example\")\n"
+"        # else, set it as \"\" (empty string)\n"
+"        else:\n"
+"            self.set_title(\"\")\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
+
+#: C/checkbutton.py.page:32(section/p)
+msgid ""
+"We could also create the CheckButton with <code>button = Gtk.CheckButton."
+"new_with_label(\"Show Title\")</code>."
+msgstr ""
+"ÎÎ ÎÏÎÏÎÏÏÎÎÎ ÎÏÎÏÎÏ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ ÏÎ CheckButton ÎÎ <code>button = Gtk."
+"CheckButton.new_with_label(\"Show Title\")</code>."
+
+#: C/checkbutton.py.page:37(section/title)
+msgid "Useful methods for a CheckButton widget"
+msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ CheckButton"
+
+#: C/checkbutton.py.page:38(section/p) C/switch.py.page:41(section/p)
+msgid ""
+"For a discussion on signals and callback functions, see <link xref=\"signals-"
+"callbacks.py\">this page</link>."
+msgstr ""
+"ÎÎÎ ÎÎÎ ÏÏÎÎÏÎÏÎ ÏÏÎ ÏÎÎÎÏÏÎ ÎÎÎ ÏÏÎÎÏÏÎÏÎÏÎ ÎÏÎÎÎÎÎÎÏÎÏ, ÎÎÎÏÎ <link xref="
+"\"signals-callbacks.py\">ÎÏÏÎÎ ÏÎ ÏÎÎÎÎÎ</link>."
+
+#: C/checkbutton.py.page:48(item/p) C/togglebutton.py.page:45(item/p)
+msgid ""
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkToggleButton.html";
+"\">GtkToggleButton</link>"
+msgstr ""
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkToggleButton.html";
+"\">GtkToggleButton</link>"
+
+#: C/checkbutton.py.page:49(item/p)
+msgid ""
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkCheckButton.html";
+"\">GtkCheckButton</link>"
+msgstr ""
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkCheckButton.html";
+"\">GtkCheckButton</link>"
+
+#: C/checkbutton.vala.page:7(info/title)
+msgctxt "text"
+msgid "CheckButton (Vala)"
+msgstr "CheckButton (Vala)"
+
+#: C/checkbutton.vala.page:17(info/desc)
+msgid "Create widgets with a disrete toggle button"
+msgstr "ÎÎÎÎÎÏÏÎÎÎ ÎÏÎÏÎÎÏÎ ÏÏÏÏÎÏÎÎÏÎ ÎÎ ÎÎÎ ÎÎÎÎÏÎÏÏ ÎÎÏÎÏÎ ÎÎÎÎÎÎÎÎÏ"
+
+#: C/checkbutton.vala.page:24(page/code)
+#, no-wrap
+msgid ""
+"/* A window in the application */\n"
+"class MyWindow : Gtk.ApplicationWindow {\n"
+"\n"
+"\t/* The constructor */\n"
+"\tinternal MyWindow (MyApplication app) {\n"
+"\t\tObject (application: app, title: \"CheckButton Example\");\n"
+"\n"
+"\t\tthis.set_default_size (300, 100);\n"
+"\t\tthis.border_width = 10;\n"
+"\n"
+"\t\tvar checkbutton = new Gtk.CheckButton.with_label (\"Show Title\");\n"
+"\n"
+"\t\t/* Connect the checkbutton to the\n"
+"\t\t * callback function (aka. signal handler).\n"
+"\t\t */\n"
+"\t\tcheckbutton.toggled.connect (this.toggled_cb);\n"
+"\n"
+"\t\t/* Add the button to the this window */\n"
+"\t\tthis.add (checkbutton);\n"
+"\n"
+"\t\tcheckbutton.set_active (true);\n"
+"\t\tcheckbutton.show ();\n"
+"\t}\n"
+"\n"
+"\t/* The signal handler for the 'toggled' signal of the checkbutton. */\n"
+"\tvoid toggled_cb (Gtk.ToggleButton checkbutton) {\n"
+"\t\tif (checkbutton.get_active())\n"
+"\t\t\tthis.set_title (\"CheckButton Example\");\n"
+"\t\telse\n"
+"\t\t\tthis.set_title (\"\");\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* This is the application */\n"
+"class MyApplication : Gtk.Application {\n"
+"\n"
+"\t/* The constructor */\n"
+"\tinternal MyApplication () {\n"
+"\t\tObject (application_id: \"org.example.checkbutton\");\n"
+"\t}\n"
+"\n"
+"\t/* Override the activate signal of GLib.Application */\n"
+"\tprotected override void activate () {\n"
+"\t\tnew MyWindow (this).show ();\n"
+"\t}\n"
+"\n"
+"}\n"
+"\n"
+"/* main creates and runs the application */\n"
+"int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
+msgstr ""
+"/* A window in the application */\n"
+"class MyWindow : Gtk.ApplicationWindow {\n"
+"\n"
+"\t/* The constructor */\n"
+"\tinternal MyWindow (MyApplication app) {\n"
+"\t\tObject (application: app, title: \"CheckButton Example\");\n"
+"\n"
+"\t\tthis.set_default_size (300, 100);\n"
+"\t\tthis.border_width = 10;\n"
+"\n"
+"\t\tvar checkbutton = new Gtk.CheckButton.with_label (\"Show Title\");\n"
+"\n"
+"\t\t/* Connect the checkbutton to the\n"
+"\t\t * callback function (aka. signal handler).\n"
+"\t\t */\n"
+"\t\tcheckbutton.toggled.connect (this.toggled_cb);\n"
+"\n"
+"\t\t/* Add the button to the this window */\n"
+"\t\tthis.add (checkbutton);\n"
+"\n"
+"\t\tcheckbutton.set_active (true);\n"
+"\t\tcheckbutton.show ();\n"
+"\t}\n"
+"\n"
+"\t/* The signal handler for the 'toggled' signal of the checkbutton. */\n"
+"\tvoid toggled_cb (Gtk.ToggleButton checkbutton) {\n"
+"\t\tif (checkbutton.get_active())\n"
+"\t\t\tthis.set_title (\"CheckButton Example\");\n"
+"\t\telse\n"
+"\t\t\tthis.set_title (\"\");\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* This is the application */\n"
+"class MyApplication : Gtk.Application {\n"
+"\n"
+"\t/* The constructor */\n"
+"\tinternal MyApplication () {\n"
+"\t\tObject (application_id: \"org.example.checkbutton\");\n"
+"\t}\n"
+"\n"
+"\t/* Override the activate signal of GLib.Application */\n"
+"\tprotected override void activate () {\n"
+"\t\tnew MyWindow (this).show ();\n"
+"\t}\n"
+"\n"
+"}\n"
+"\n"
+"/* main creates and runs the application */\n"
+"int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
+
+#: C/checkbutton.vala.page:29(item/p)
+msgid ""
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.CheckButton.html\";>Gtk."
+"CheckButton</link>"
+msgstr ""
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.CheckButton.html\";>Gtk."
+"CheckButton</link>"
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/colorbutton.py.page:21(media) C/colorbutton.vala.page:23(media)
+msgctxt "_"
+msgid ""
+"external ref='media/colorbutton.png' md5='904539d26fe367bf99f9a0961cfc9a03'"
+msgstr ""
+"external ref='media/colorbutton.png' md5='904539d26fe367bf99f9a0961cfc9a03'"
+
+#: C/colorbutton.py.page:7(info/title)
+msgctxt "text"
+msgid "ColorButton (Python)"
+msgstr "ColorButton (Python)"
+
+#: C/colorbutton.py.page:17(info/desc) C/colorbutton.vala.page:19(info/desc)
+msgid "A button to launch a color selection dialog"
+msgstr "ÎÎÎ ÎÎÏÎÏÎ ÎÎÎ ÎÎÎÎÎÎÏÎ ÏÎÏ ÎÎÎÎÏÎÎÏ ÎÏÎÎÎÎÎÏ ÏÏÏÎÎÏÎÏ"
+
+#: C/colorbutton.py.page:20(page/title) C/colorbutton.vala.page:22(page/title)
+msgid "ColorButton"
+msgstr "ColorButton"
+
+#: C/colorbutton.py.page:22(page/p)
+msgid ""
+"This ColorButton launches a color selection dialog and prints in the "
+"terminal the RGB values of the color selected."
+msgstr ""
+"ÎÏÏÏ ÏÎ ColorButton ÎÎÎÎÎÎ ÏÎÎ ÎÎÎÎÎÎÎ ÎÏÎÎÎÎÎÏ ÏÏÏÎÎÏÏÎ ÎÎÎ ÏÏÏÏÎÎÎ ÏÏÎÎ "
+"ÏÎÏÎÎÏÎÎÏ ÏÎÏ ÏÎÎÎÏ RGB ÏÎÏ ÎÏÎÎÎÎÎÎÎÎÏ ÏÏÏÎÎÏÎÏ."
+
+#: C/colorbutton.py.page:28(section/code)
+#, no-wrap
+msgid ""
+"from gi.repository import Gtk\n"
+"from gi.repository import Gdk\n"
+"import sys\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"ColorButton\", application=app)\n"
+"        self.set_default_size(150, 50)\n"
+"        self.set_border_width(10)\n"
+"\n"
+"        # a colorbutton (which opens a dialogue window in\n"
+"        # which we choose a color)\n"
+"        self.button = Gtk.ColorButton()\n"
+"        # with a default color (blue, in this instance)\n"
+"        color = Gdk.RGBA()\n"
+"        color.red = 0.0\n"
+"        color.green = 0.0\n"
+"        color.blue = 1.0\n"
+"        color.alpha = 0.5\n"
+"        self.button.set_rgba(color)\n"
+"\n"
+"        # choosing a color in the dialogue window emits a signal\n"
+"        self.button.connect(\"color-set\", self.on_color_chosen)\n"
+"\n"
+"        # a label\n"
+"        label = Gtk.Label()\n"
+"        label.set_text(\"Click to choose a color\")\n"
+"\n"
+"        # a grid to attach button and label\n"
+"        grid = Gtk.Grid()\n"
+"        grid.attach(self.button, 0, 0, 2, 1)\n"
+"        grid.attach(label, 0, 1, 2, 1)\n"
+"        self.add(grid)\n"
+"\n"
+"    # if a new color is chosen, we print it as rgb(r,g,b) in the terminal\n"
+"    def on_color_chosen(self, user_data):\n"
+"        print \"You chose the color: \" + self.button.get_rgba().to_string()\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup (self):\n"
+"        Gtk.Application.do_startup (self)\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
+msgstr ""
+"from gi.repository import Gtk\n"
+"from gi.repository import Gdk\n"
+"import sys\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"ColorButton\", application=app)\n"
+"        self.set_default_size(150, 50)\n"
+"        self.set_border_width(10)\n"
+"\n"
+"        # a colorbutton (which opens a dialogue window in\n"
+"        # which we choose a color)\n"
+"        self.button = Gtk.ColorButton()\n"
+"        # with a default color (blue, in this instance)\n"
+"        color = Gdk.RGBA()\n"
+"        color.red = 0.0\n"
+"        color.green = 0.0\n"
+"        color.blue = 1.0\n"
+"        color.alpha = 0.5\n"
+"        self.button.set_rgba(color)\n"
+"\n"
+"        # choosing a color in the dialogue window emits a signal\n"
+"        self.button.connect(\"color-set\", self.on_color_chosen)\n"
+"\n"
+"        # a label\n"
+"        label = Gtk.Label()\n"
+"        label.set_text(\"Click to choose a color\")\n"
+"\n"
+"        # a grid to attach button and label\n"
+"        grid = Gtk.Grid()\n"
+"        grid.attach(self.button, 0, 0, 2, 1)\n"
+"        grid.attach(label, 0, 1, 2, 1)\n"
+"        self.add(grid)\n"
+"\n"
+"    # if a new color is chosen, we print it as rgb(r,g,b) in the terminal\n"
+"    def on_color_chosen(self, user_data):\n"
+"        print \"You chose the color: \" + self.button.get_rgba().to_string()\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup (self):\n"
+"        Gtk.Application.do_startup (self)\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
+
+#: C/colorbutton.py.page:32(section/title)
+msgid "Useful methods for a ColorButton widget"
+msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ColorButton"
+
+#: C/colorbutton.py.page:33(section/p)
+msgid ""
+"<code>set_color(color)</code>, where the <code>color</code> is defined as in "
+"the example, sets the color of the ColorButton, which by default is black. "
+"<code>get_color()</code> returns the color."
+msgstr ""
+"<code>set_color(color)</code>, ÏÏÎÏ ÏÎ <code>color</code> ÎÏÎÎÎÏÎÎ ÏÏÏÏ ÏÏÎ "
+"ÏÎÏÎÎÎÎÎÎÎ, ÎÏÎÎÎÎ ÏÎ ÏÏÏÎÎ ÏÎÏ ColorButton, ÏÎÏ ÎÏÏ ÏÏÎÎÏÎÎÎÎÎ ÎÎÎÎÎ ÎÎÏÏÎ. "
+"<code>get_color()</code> ÎÏÎÏÏÏÎÏÎÎ ÏÎ ÏÏÏÎÎ."
+
+#: C/colorbutton.py.page:40(item/p)
+msgid ""
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkColorButton.html";
+"\">GtkColorButton</link>"
+msgstr ""
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkColorButton.html";
+"\">GtkColorButton</link>"
+
+#: C/colorbutton.py.page:41(item/p)
+msgid ""
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkColorChooser.html";
+"\">GtkColorChooser</link>"
+msgstr ""
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkColorChooser.html";
+"\">GtkColorChooser</link>"
+
+#: C/colorbutton.py.page:42(item/p)
+msgid ""
+"<link href=\"http://developer.gnome.org/gdk3/stable/gdk3-RGBA-Colors.html";
+"\">RGBA Colors</link>"
+msgstr ""
+"<link href=\"http://developer.gnome.org/gdk3/stable/gdk3-RGBA-Colors.html";
+"\">RGBA Colors</link>"
+
+#: C/colorbutton.vala.page:7(info/title)
+msgctxt "text"
+msgid "ColorButton (Vala)"
+msgstr "ColorButton (Vala)"
+
+#: C/colorbutton.vala.page:24(page/p)
+msgid "RGB values of the selected color are shown in the label."
+msgstr "ÎÎÎÎÏ RGB ÏÎÏ ÎÏÎÎÎÎÎÎÎÎÏ ÏÏÏÎÎÏÎÏ ÎÎÏÎÎÎÎÎÎÏÎÎ ÏÏÎÎ ÎÏÎÎÎÏÎ."
+
+#: C/colorbutton.vala.page:26(page/code)
+#, no-wrap
+msgid ""
+"/* This is the application. */\n"
+"public class MyApplication : Gtk.Application {\n"
+"\tGtk.Label label;\n"
+"\n"
+"\t/* Override the 'activate' signal of GLib.Application. */\n"
+"\tprotected override void activate () {\n"
+"\t\t/* Create the window of this application and show it. */\n"
+"\t\tvar window = new Gtk.ApplicationWindow (this);\n"
+"\t\twindow.title = \"ColorButton\";\n"
+"\t\twindow.set_default_size (150, 50);\n"
+"\t\twindow.set_border_width (10);\n"
+"\n"
+"\t\t/* Create a new ColorButton with default blue. */\n"
+"\t\tvar blue = Gdk.RGBA ();\n"
+"\t\tblue.parse (\"blue\");\n"
+"\t\tvar colorbutton = new Gtk.ColorButton.with_rgba (blue);\n"
+"\n"
+"\t\tlabel = new Gtk.Label (\"Click to choose a color\");\n"
+"\n"
+"\t\tvar grid = new Gtk.Grid ();\n"
+"\t\tgrid.attach (colorbutton, 0, 0, 1, 1);\n"
+"\t\tgrid.attach_next_to (label, colorbutton, Gtk.PositionType.BOTTOM, 1, 1);\n"
+"\n"
+"\t\tcolorbutton.color_set.connect (this.on_color_set);\n"
+"\n"
+"\t\twindow.add (grid);\n"
+"\t\twindow.show_all ();\n"
+"\t}\n"
+"\n"
+"\tvoid on_color_set (Gtk.ColorButton button) {\n"
+"\t\tvar color =  button.get_rgba ();\n"
+"\t\tlabel.set_text (\"RGBA: \" + color.to_string());\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* main creates and runs the application. */\n"
+"public int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
+msgstr ""
+"/* This is the application. */\n"
+"public class MyApplication : Gtk.Application {\n"
+"\tGtk.Label label;\n"
+"\n"
+"\t/* Override the 'activate' signal of GLib.Application. */\n"
+"\tprotected override void activate () {\n"
+"\t\t/* Create the window of this application and show it. */\n"
+"\t\tvar window = new Gtk.ApplicationWindow (this);\n"
+"\t\twindow.title = \"ColorButton\";\n"
+"\t\twindow.set_default_size (150, 50);\n"
+"\t\twindow.set_border_width (10);\n"
+"\n"
+"\t\t/* Create a new ColorButton with default blue. */\n"
+"\t\tvar blue = Gdk.RGBA ();\n"
+"\t\tblue.parse (\"blue\");\n"
+"\t\tvar colorbutton = new Gtk.ColorButton.with_rgba (blue);\n"
+"\n"
+"\t\tlabel = new Gtk.Label (\"Click to choose a color\");\n"
+"\n"
+"\t\tvar grid = new Gtk.Grid ();\n"
+"\t\tgrid.attach (colorbutton, 0, 0, 1, 1);\n"
+"\t\tgrid.attach_next_to (label, colorbutton, Gtk.PositionType.BOTTOM, 1, 1);\n"
+"\n"
+"\t\tcolorbutton.color_set.connect (this.on_color_set);\n"
+"\n"
+"\t\twindow.add (grid);\n"
+"\t\twindow.show_all ();\n"
+"\t}\n"
+"\n"
+"\tvoid on_color_set (Gtk.ColorButton button) {\n"
+"\t\tvar color =  button.get_rgba ();\n"
+"\t\tlabel.set_text (\"RGBA: \" + color.to_string());\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* main creates and runs the application. */\n"
+"public int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
+
+#: C/colorbutton.vala.page:31(item/p)
+msgid ""
+"<link href=\"http://valadoc.org/gtk+-3.0/Gtk.ColorButton.html\";>Gtk."
+"ColorButton</link>"
+msgstr ""
+"<link href=\"http://valadoc.org/gtk+-3.0/Gtk.ColorButton.html\";>Gtk."
+"ColorButton</link>"
+
+#: C/colorbutton.vala.page:32(item/p)
+msgid "<link href=\"http://valadoc.org/gdk-3.0/Gdk.RGBA.html\";>Gdk.RGBA</link>"
+msgstr ""
+"<link href=\"http://valadoc.org/gdk-3.0/Gdk.RGBA.html\";>Gdk.RGBA</link>"
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/comboboxtext.js.page:23(media) C/combobox.py.page:21(media)
+#: C/combobox.vala.page:21(media)
+msgctxt "_"
+msgid ""
+"external ref='media/combobox.png' md5='ab9e91bc1a58fe866cb00dd52159251d'"
+msgstr ""
+"external ref='media/combobox.png' md5='ab9e91bc1a58fe866cb00dd52159251d'"
+
+#: C/comboboxtext.js.page:7(info/title)
+msgctxt "text"
+msgid "ComboBoxText (JavaScript)"
+msgstr "ComboBoxText (JavaScript)"
+
+#: C/comboboxtext.js.page:19(info/desc)
+msgid "A text-only drop-down menu"
+msgstr "ÎÎÎ ÏÏÏÏÏÏÎÎÎÎ ÎÎÎÎÏ ÎÏÎÎ ÎÎÎ ÎÎÎÎÎÎÎ"
+
+#: C/comboboxtext.js.page:22(page/title)
+msgid "ComboBoxText"
+msgstr "ComboBoxText"
+
+#: C/comboboxtext.js.page:24(page/p)
+msgid ""
+"A ComboBox is a drop-down menu. The difference between a <link xref="
+"\"combobox.js\">ComboBox</link> and a ComboBoxText is that a ComboBoxText "
+"just has basic text options, while a full ComboBox uses a ListStore or "
+"TreeStore (which are basically spreadsheets) to show things like branching "
+"options, or pictures to go alongside each choice."
+msgstr ""
+"ÎÎÎ ComboBox ÎÎÎÎÎ ÎÎÎ ÏÏÏÏÏÏÎÎÎÎ ÎÎÎÎÏ. Î ÎÎÎÏÎÏÎ ÎÎÏÎÎÏ ÎÎÏÏ <link xref="
+"\"combobox.js\">ComboBox</link> ÎÎÎ ÎÎÏÏ ComboBoxText ÎÎÎÎÎ ÏÏÎ ÎÎÎ "
+"ComboBoxText ÎÏÎÎ ÎÏÎÎ ÎÏÎÎÎÎÎÏ ÎÎÏÎÎÎÏ ÎÎÎÎÎÎÎÏ, ÎÎÏ ÎÎÎ ÏÎÎÏÎÏ ComboBox "
+"ÏÏÎÏÎÎÎÏÎÎÎÎ ÎÎÎ ListStore Î TreeStore (ÏÎÏ ÎÎÎÎÎ ÎÎÏÎÎÎ ÏÏÎÎÎÎÎÏÏÎÎÎ ÏÏÎÎÎ) "
+"ÎÎÎ ÏÎÎ ÎÎÏÎÎÎÏÎ ÏÏÎÎÎÎÏÏÎ ÏÏÏÏ ÎÏÎÎÎÎÎÏ ÎÎÎÎÎÎÎÏÏÎÏ Î ÎÎÎÏÎÎÏ ÏÎÏ ÏÎÎÎÎÎÎÏÎ "
+"ÎÎÏÎÎ ÏÎ ÎÎÎÎ ÎÏÎÎÎÎÎ."
+
+#: C/comboboxtext.js.page:25(note/p)
+msgid ""
+"Unless you need the added features of a full ComboBox, or are comfortable "
+"working with ListStores and TreeStores, you may find it a lot simpler to use "
+"a ComboBoxText whenever possible."
+msgstr ""
+"ÎÎÏÏÏ ÎÎÎ ÏÏÎÎÎÎÎÏÏÎ ÏÎ ÏÏÏÏÎÎÏÎ ÎÎÏÏÎÏÎÎÏÎ ÎÎÏÏ ÏÎÎÏÎÏÏ ComboBox, Î ÎÎÎÎÎ "
+"ÎÎÎÏÎ Î ÎÏÎÎÏÎÎ ÎÎ ListStores ÎÎÎ TreeStores, ÎÏÎÏÎÎ ÎÎ ÏÎ ÎÏÎÎÏÎ ÏÎÎÏ "
+"ÎÏÎÎÏÏÏÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÎÎÎ ComboBoxText ÏÏÎÏÎ ÎÎÎÎÎ ÎÏÎÎÏÏ."
+
+#: C/comboboxtext.js.page:41(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"const ComboBoxTextExample = new Lang.Class ({\n"
+"    Name: 'ComboBoxText Example',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function () {\n"
+"        this.application = new Gtk.Application ({\n"
+"            application_id: 'org.example.jscomboboxtext'});\n"
+"\n"
+"        // Connect 'activate' and 'startup' signals to the callback functions\n"
+"        this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"        this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents windows when active\n"
+"    _onActivate: function () {\n"
+"        this._window.present ();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function () {\n"
+"        this._buildUI ();\n"
+"    },\n"
+msgstr ""
+"\n"
+"const ComboBoxTextExample = new Lang.Class ({\n"
+"    Name: 'ComboBoxText Example',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function () {\n"
+"        this.application = new Gtk.Application ({\n"
+"            application_id: 'org.example.jscomboboxtext'});\n"
+"\n"
+"        // Connect 'activate' and 'startup' signals to the callback functions\n"
+"        this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"        this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents windows when active\n"
+"    _onActivate: function () {\n"
+"        this._window.present ();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function () {\n"
+"        this._buildUI ();\n"
+"    },\n"
+
+#: C/comboboxtext.js.page:65(section/p) C/messagedialog.js.page:69(section/p)
+msgid ""
+"All the code for this sample goes in the MessageDialogExample class. The "
+"above code creates a <link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/";
+"gjs/Gtk.Application.html\">Gtk.Application</link> for our widgets and window "
+"to go in."
+msgstr ""
+"ÎÎÎÏ Î ÎÏÎÎÎÎÏ ÎÎÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÏÎÎÎÎÎÎÎ ÏÏÎÎ ÎÎÎÏÎ "
+"MessageDialogExample. Î ÏÎÏÎÏÎÎÏ ÎÏÎÎÎÎÏ ÎÎÎÎÎÏÏÎÎÎ ÎÎÎ <link href=\"http://";
+"www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Application.html\">Gtk."
+"Application</link> ÎÎÎ ÎÎ ÎÏÎÏÎ ÎÎÏÎ ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÏ ÎÎÎ ÏÎ "
+"ÏÎÏÎÎÏÏÎ."
+
+#: C/comboboxtext.js.page:66(section/code) C/combobox.js.page:70(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function () {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow  ({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            title: \"Welcome to GNOME\",\n"
+"            default_width: 200,\n"
+"            border_width: 10 });\n"
+msgstr ""
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function () {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow  ({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            title: \"Welcome to GNOME\",\n"
+"            default_width: 200,\n"
+"            border_width: 10 });\n"
+
+#: C/comboboxtext.js.page:78(section/p) C/combobox.js.page:82(section/p)
+#: C/messagedialog.js.page:83(section/p) C/radiobutton.js.page:78(section/p)
+#: C/scale.js.page:77(section/p) C/spinbutton.js.page:80(section/p)
+#: C/switch.js.page:87(section/p) C/textview.js.page:87(section/p)
+#: C/togglebutton.js.page:80(section/p)
+#: C/treeview_simple_liststore.js.page:89(section/p)
+msgid ""
+"The _buildUI function is where we put all the code to create the "
+"application's user interface. The first step is creating a new <link xref="
+"\"GtkApplicationWindow.js\">Gtk.ApplicationWindow</link> to put all our "
+"widgets into."
+msgstr ""
+"Î ÏÏÎÎÏÏÎÏÎ _buildUI ÎÎÎÎÎ ÎÎÎÎ ÏÎÏ ÎÎÎÎÏÎÎ ÏÎÎÎ ÏÎÎ ÎÏÎÎÎÎ ÎÎÎ ÎÎ "
+"ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ ÏÎ ÎÎÎÏÎÏÎ ÏÏÎÏÏÎ ÏÎÏ ÎÏÎÏÎÎÎÎÏ. ÎÎ ÏÏÏÏÎ ÎÎÎÎ ÎÎÎÎÎÏÏÎÎÎ ÎÎÎ "
+"ÎÎÎ <link xref=\"GtkApplicationWindow.js\">Gtk.ApplicationWindow</link> ÎÎÎ "
+"ÎÎ ÎÎÎÎÏÎÎ ÎÎÏÎ ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÏ."
+
+#: C/comboboxtext.js.page:82(section/title)
+msgid "Creating the ComboBoxText"
+msgstr "ÎÎÎÎÎÏÏÎÎÎ ÏÏÎ ComboBoxText"
+
+#: C/comboboxtext.js.page:83(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"        // Create the combobox\n"
+"        this._comboBoxText = new Gtk.ComboBoxText();\n"
+"\n"
+"        // Populate the combobox\n"
+"        let distros = [\"Select distribution\", \"Fedora\", \"Mint\", \"Suse\"];\n"
+"        for (let i = 0; i &lt; distros.length; i++)\n"
+"            this._comboBoxText.append_text (distros[i]);\n"
+"        this._comboBoxText.set_active (0);\n"
+"\n"
+"        // Connect the combobox's 'changed' signal to our callback function\n"
+"        this._comboBoxText.connect ('changed', Lang.bind (this, this._onComboChanged));\n"
+msgstr ""
+"\n"
+"        // Create the combobox\n"
+"        this._comboBoxText = new Gtk.ComboBoxText();\n"
+"\n"
+"        // Populate the combobox\n"
+"        let distros = [\"Select distribution\", \"Fedora\", \"Mint\", \"Suse\"];\n"
+"        for (let i = 0; i &lt; distros.length; i++)\n"
+"            this._comboBoxText.append_text (distros[i]);\n"
+"        this._comboBoxText.set_active (0);\n"
+"\n"
+"        // Connect the combobox's 'changed' signal to our callback function\n"
+"        this._comboBoxText.connect ('changed', Lang.bind (this, this._onComboChanged));\n"
+
+#: C/comboboxtext.js.page:96(section/p)
+msgid ""
+"After we create the ComboBoxText, we use its <file>append_text</file> method "
+"to add text strings to it. Like the entries in an array, they each have a "
+"number for an ID, starting with 0. To make things simpler, you can actually "
+"create an array for your ComboBoxText entries, then use a for loop to append "
+"them in order, like we did here."
+msgstr ""
+"ÎÎÏÎ ÏÎ ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ ComboBoxText, ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÏÎ ÎÎÎÎÎÏ ÏÎÏ "
+"<file>append_text</file> ÎÎÎ ÎÎ ÏÏÎÏÎÎÏÎÏÎÎ ÏÏÎÎÎÎÎÏÎÎÏÎÏ ÎÎÎÎÎÎÎÏ ÏÎ ÎÏÏÏ. "
+"ÎÏÏÏ ÎÎ ÎÎÏÎÏÏÏÎÏÎÎÏ ÏÎ ÎÎÎÎ ÏÎÎÎÎÎ, ÎÏÎÎ ÎÎÎÎÎÎÎ ÎÎÎÎ ÎÏÎÎÎÏ ÎÎÎ ÏÎÏÏÏÏÎÏÎ, "
+"ÎÏÏÎÎÎÎÏÎÏ ÎÎ 0. ÎÎÎ ÎÏÎÎÏÎÎÎÏÎ, ÎÏÎÏÎÎÏÎ ÏÏÎÎÎÎÏÎ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎ ÎÎÎÎ "
+"ÏÎÎÎÎÎ ÎÎÎ ÏÎÏ ÎÎÏÎÏÏÏÎÏÎÎÏ ComboBoxText, ÎÏÎÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÎÎÎÎ "
+"ÎÏÏÏÎ for ÎÎÎ ÎÎ ÏÎ ÏÏÎÏÎÏÏÎÏÎÏÎ ÏÎ ÏÎÎÏÎ, ÏÏÏÏ ÎÎÎÎÎÎ ÎÎÏ."
+
+#: C/comboboxtext.js.page:97(section/p)
+msgid ""
+"After we populate the ComboBoxText, we set its first entry to be active, so "
+"that we'll see the \"Select distribution\" line before we click on it. Then "
+"we connect its <file>changed</file> signal to the _onComboChanged function, "
+"so that it's called whenever you make a new selection from the drop-down "
+"menu."
+msgstr ""
+"ÎÎÏÎ ÏÎ ÎÎÎÎÏÎÎ ÏÎÏ ComboBoxText, ÎÏÎÎÎÏÎÎ ÏÎÎ ÏÏÏÏÎ ÏÎÏ ÎÎÏÎÏÏÏÎÏÎ ÎÎ ÎÎÎÎÎ "
+"ÎÎÎÏÎÎ, ÎÏÏÎ ÏÏÏÎ ÎÎ ÎÎÏÎÎ ÏÎ ÎÏÎÎÎÎ \"Select distribution\" ÏÏÎÎ ÏÎÎ "
+"ÏÎÏÎÏÎÏÎÎ. ÎÏÎÎÏÎ ÏÏÎÎÎÎÏÎÎ ÏÎ ÏÎÎÎ ÏÎÏ <file>changed</file> ÏÏÎ ÏÏÎÎÏÏÎÏÎ "
+"_onComboChanged, ÎÏÏÎ ÏÏÏÎ ÎÎ ÎÎÎÎÎÏÎÎ ÏÏÎÏÎ ÎÎÎÎÏÎ ÎÎÎ ÎÎÎ ÎÏÎÎÎÎÎ ÎÏÏ ÏÎ "
+"ÏÏÏÏÏÏÎÎÎÎ ÎÎÎÎÏ."
+
+#: C/comboboxtext.js.page:98(note/p)
+msgid ""
+"If you'd like to add an entry to a ComboBoxText, you can use the "
+"<file>insert_text</file> method. And if you'd rather use a text string as an "
+"ID for each entry than rely on numbers alone, you can use the <file>append</"
+"file> and <file>insert</file> methods. See the links at the bottom of this "
+"tutorial for the details of how to use them."
+msgstr ""
+"ÎÎÎ ÎÎ ÎÎÎÎÏÎ ÎÎ ÏÏÎÏÎÎÏÎÏÎ ÎÎÎ ÎÎÏÎÏÏÏÎÏÎ ÏÎ ÎÎÎ ComboBoxText, ÎÏÎÏÎÎÏÎ ÎÎ "
+"ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÏÎ ÎÎÎÎÎÎ <file>insert_text</file>. ÎÎÎ ÏÏÎÏÎÎÎÏÎ ÎÎ "
+"ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÎÎÎ ÏÏÎÎÎÎÎÏÎÎÏÎ ÎÎÎÎÎÎÎÏ ÏÏ ÎÎÎ ÏÎÏÏÏÏÎÏÎ ÎÎÎ ÎÎÎÎ "
+"ÎÎÏÎÏÏÏÎÏÎ ÎÎÏÎ ÎÎ ÎÎÏÎÎÎÏÏÎ ÏÎ ÎÏÎÎÎÎÏÏ ÎÏÎÎ, ÎÏÎÏÎÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ "
+"ÏÎÏ ÎÎÎÏÎÎÏÏ <file>append</file> ÎÎÎ <file>insert</file>. ÎÎÎÏÎ ÏÎÏÏ "
+"ÏÏÎÎÎÏÎÎÏÏ ÏÏÎ ÏÎÎÎÏ ÎÏÏÎÏ ÏÎÏ ÎÎÎÎÎÎÏÎÏ ÎÎÎ ÏÎÏ ÎÎÏÏÎÎÎÏÎÎÎÏ ÏÏÎÏÎÏ ÏÎÏÏ."
+
+#: C/comboboxtext.js.page:100(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"        // Add the combobox to the window\n"
+"        this._window.add (this._comboBoxText);\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    },\n"
+msgstr ""
+"\n"
+"        // Add the combobox to the window\n"
+"        this._window.add (this._comboBoxText);\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    },\n"
+
+#: C/comboboxtext.js.page:108(section/p)
+msgid ""
+"Finally, we add the ComboBoxText to the window, and tell the window to show "
+"itself and the widget inside it."
+msgstr ""
+"ÎÎÎÎÎÎ, ÏÏÎÏÎÎÏÎÏÎÎ ÏÎ ComboBoxText ÏÏÎ ÏÎÏÎÎÏÏÎ, ÎÏÎÎÏÎ ÎÎÎÎ ÏÏÎ ÏÎÏÎÎÏÏÎ "
+"ÎÎ ÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÎÏÏÏÎ ÏÎÏ ÎÎÎ ÏÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÎÏÎ ÏÎÏ."
+
+#: C/comboboxtext.js.page:112(section/title)
+#: C/combobox.js.page:169(section/title)
+#: C/radiobutton.js.page:180(section/title)
+msgid "Function which handles your selection"
+msgstr "Î ÏÏÎÎÏÏÎÏÎ ÏÎÏ ÏÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÏÎÎÎÎÎ ÏÎÏ"
+
+#: C/comboboxtext.js.page:113(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"    _onComboChanged: function () {\n"
+"\n"
+"        // The responses we'll use for our messagedialog\n"
+"        let responses = [\"\",\n"
+"            \"Fedora is a community distro sponsored by Red Hat.\",\n"
+"            \"Mint is a popular distro based on Ubuntu.\",\n"
+"            \"SUSE is a name shared by two separate distros.\"];\n"
+msgstr ""
+"\n"
+"    _onComboChanged: function () {\n"
+"\n"
+"        // The responses we'll use for our messagedialog\n"
+"        let responses = [\"\",\n"
+"            \"Fedora is a community distro sponsored by Red Hat.\",\n"
+"            \"Mint is a popular distro based on Ubuntu.\",\n"
+"            \"SUSE is a name shared by two separate distros.\"];\n"
+
+#: C/comboboxtext.js.page:122(section/p)
+msgid ""
+"We're going to create a pop-up <link xref=\"messagedialog.js"
+"\">MessageDialog</link>, which shows you a message based on which distro you "
+"select. First, we create the array of responses to use. Since the first "
+"string in our ComboBoxText is just the \"Select distribution\" message, we "
+"make the first string in our array blank."
+msgstr ""
+"ÎÏÏÎÎÎÏÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ ÎÎÎ ÎÎÎÎÏÏÎÎÎÎ <link xref=\"messagedialog.js"
+"\">MessageDialog</link>, ÏÎÏ ÏÎÏ ÎÎÏÎÎÎÎÎÎ ÎÎÎ ÎÎÎÏÎÎ ÎÎ ÎÎÏÎ ÏÎÎÎ ÎÎÎÎÎÎÎ "
+"ÎÏÎÎÎÎÎÏÎ. ÎÏÏÏÎ, ÎÎÎÎÎÏÏÎÎÏÎÎ ÏÎÎ ÏÎÎÎÎÎ ÏÏÎ ÎÏÎÎÏÎÏÎÏÎ ÎÎÎ ÏÏÎÏÎ. ÎÏÎÏ Î "
+"ÏÏÏÏÎ ÏÏÎÎÎÎÎÏÎÎÏÎ ÏÏÎ ComboBoxText ÎÎÏ ÎÎÎÎÎ ÎÏÎÎ ÏÎ ÎÎÎÏÎÎ \"Select "
+"distribution\", ÎÎÎÎÏÎÎ ÏÎÎ ÏÏÏÏÎ ÏÏÎÎÎÎÎÏÎÎÏÎ ÏÏÎÎ ÏÎÎÎÎÎ ÎÎÏ ÎÎÎÎ."
+
+#: C/comboboxtext.js.page:124(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"        // Which combobox item is active?\n"
+"        let activeItem = this._comboBoxText.get_active();\n"
+"\n"
+"        // No messagedialog if you chose \"Select distribution\"\n"
+"        if (activeItem != 0) {\n"
+"            this._popUp = new Gtk.MessageDialog ({\n"
+"                transient_for: this._window,\n"
+"                modal: true,\n"
+"                buttons: Gtk.ButtonsType.OK,\n"
+"                message_type: Gtk.MessageType.INFO,\n"
+"                text: responses[activeItem]});\n"
+"\n"
+"            // Connect the OK button to a handler function\n"
+"            this._popUp.connect ('response', Lang.bind (this, this._onDialogResponse));\n"
+"\n"
+"            // Show the messagedialog\n"
+"            this._popUp.show();\n"
+"        }\n"
+"\n"
+"    },\n"
+msgstr ""
+"\n"
+"        // Which combobox item is active?\n"
+"        let activeItem = this._comboBoxText.get_active();\n"
+"\n"
+"        // No messagedialog if you chose \"Select distribution\"\n"
+"        if (activeItem != 0) {\n"
+"            this._popUp = new Gtk.MessageDialog ({\n"
+"                transient_for: this._window,\n"
+"                modal: true,\n"
+"                buttons: Gtk.ButtonsType.OK,\n"
+"                message_type: Gtk.MessageType.INFO,\n"
+"                text: responses[activeItem]});\n"
+"\n"
+"            // Connect the OK button to a handler function\n"
+"            this._popUp.connect ('response', Lang.bind (this, this._onDialogResponse));\n"
+"\n"
+"            // Show the messagedialog\n"
+"            this._popUp.show();\n"
+"        }\n"
+"\n"
+"    },\n"
+
+#: C/comboboxtext.js.page:146(section/p)
+msgid ""
+"Before showing a MessageDialog, we first test to make sure you didn't choose "
+"the \"Select distribution\" message. After that, we set its text to be the "
+"entry in the array that corresponds to the active entry in our ComboBoxText. "
+"We do that using the <file>get_active</file> method, which returns the "
+"number ID of your selection."
+msgstr ""
+"ÎÏÎÎ ÏÎÎ ÏÏÎÎÎÎÎ ÎÎÏÏ MessageDialog, ÎÎÎÎÎÎÎÎÏÎÎ ÏÏÏÏÎ ÎÎÎ ÎÎ ÎÎÎÎÎÏÎÎÏÎÎ "
+"ÏÏÎ ÎÎÎ ÎÏÎÎÎÎÎÏÎ ÏÎ ÎÎÎÏÎÎ \"Select distribution\". ÎÎÏÎ ÎÏÏ ÎÏÏÏ, ÎÏÎÎÎÏÎÎ "
+"ÏÎ ÎÎÎÎÎÎÎ ÏÎÏ ÎÎ ÎÎÎÎÎ ÏÏÎÎ ÎÎÏÎÏÏÏÎÏÎ ÏÏÎÎ ÏÎÎÎÎÎ ÏÎÏ ÎÎÏÎÏÏÎÎÏÎÎ ÏÏÎÎ "
+"ÎÎÎÏÎÎ ÎÎÏÎÏÏÏÎÏÎ ÏÏÎ ComboBoxText ÎÎÏ. ÎÎ ÎÎÎÎÏÎÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ ÎÎÎÎÎÎ "
+"<file>get_active</file>, ÏÎÏ ÎÏÎÏÏÏÎÏÎÎ ÏÎÎ ÎÏÎÎÎÏ ÏÎÏÏÏÏÎÏÎÏ ÏÎÏ ÎÏÎÎÎÎÎÏ "
+"ÏÎÏ."
+
+#: C/comboboxtext.js.page:147(note/p)
+msgid ""
+"Other methods you can use include <file>get_active_id,</file> which returns "
+"the text ID assigned by <file>append,</file> and <file>get_active_text,</"
+"file> which returns the full text of the string you selected."
+msgstr ""
+"ÎÎÎÎÏ ÎÎÎÎÎÎÎ ÏÎÏ ÎÏÎÏÎÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÏÎÏÎÎÎÎÎÎÎÎÏÎ ÏÎ "
+"<file>get_active_id,</file> ÏÎÏ ÎÏÎÏÏÏÎÏÎÎ ÏÎÎ ÏÎÏÏÏÏÎÏÎ ÏÎÏ ÎÎÎÎÎÎÎÏ ÏÎÏ "
+"ÎÏÎÎÏÎÎÎÎ ÎÏÏ ÏÎ <file>append,</file> ÎÎÎ <file>get_active_text</file>, ÏÎ "
+"ÎÏÎÎÎ ÎÏÎÏÏÏÎÏÎÏÎ ÏÎ ÏÎÎÏÎÏ ÎÎÎÎÎÎÎ ÏÎÏ ÎÏÎÎÎÎÎÎÎÎÏ ÏÏÎÎÎÎÎÏÎÎÏÎÏ."
+
+#: C/comboboxtext.js.page:148(section/p) C/combobox.js.page:205(section/p)
+msgid ""
+"After we create the MessageDialog, we connect its response signal to the "
+"_onDialogResponse function, then tell it to show itself."
+msgstr ""
+"ÎÎÏÎ ÏÎ ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ MessageDialog, ÏÏÎÎÎÎÏÎÎ ÏÎ ÏÎÎÎ ÏÎÏ ÎÏÎÎÏÎÏÎÏ ÏÎÏ "
+"ÏÏÎ ÏÏÎÎÏÏÎÏÎ _onDialogResponse, ÎÏÎÎÏÎ ÏÎÏ ÎÎÎÎ ÎÎ ÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÎÏÏÏÎ ÏÎÏ."
+
+#: C/comboboxtext.js.page:150(section/code)
+#: C/combobox.js.page:207(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"    _onDialogResponse: function () {\n"
+"\n"
+"        this._popUp.destroy ();\n"
+"\n"
+"    }\n"
+"\n"
+"});\n"
+msgstr ""
+"\n"
+"    _onDialogResponse: function () {\n"
+"\n"
+"        this._popUp.destroy ();\n"
+"\n"
+"    }\n"
+"\n"
+"});\n"
+
+#: C/comboboxtext.js.page:159(section/p) C/combobox.js.page:216(section/p)
+msgid ""
+"Since the only button the MessageDialog has is an OK button, we don't need "
+"to test its response_id to see which button was clicked. All we do here is "
+"destroy the popup."
+msgstr ""
+"ÎÏÎÏ ÏÎ ÎÏÎÎ ÎÎÏÎÏÎ ÏÎÏ Î MessageDialog ÎÏÎÎ ÎÎÎÎÎ ÎÎÎ ÎÎÏÎÏÎ ÎÎÏÎÎÎÎ, ÎÎÎ "
+"ÏÏÎÎÎÎÏÎÎÏÏÎ ÎÎ ÎÎÎÎÎÎÏÎÎ ÏÎ response_id ÏÎÏ ÎÎÎ ÎÎ ÎÎÏÎÎ ÏÎÎÎ ÎÎÏÎÏÎ "
+"ÏÎÏÎÎÎÎÎ. ÎÏÏÏ ÏÎÏ ÎÎÎÎÏÎÎ ÎÎÏ ÎÎÎÎÎ Î ÎÎÏÎÏÏÏÎÏÎ ÏÎÏ ÎÎÎÎÏÏÎÎÎÎÏ."
+
+#: C/comboboxtext.js.page:161(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"// Run the application\n"
+"let app = new ComboBoxTextExample ();\n"
+"app.application.run (ARGV);\n"
+msgstr ""
+"\n"
+"// Run the application\n"
+"let app = new ComboBoxTextExample ();\n"
+"app.application.run (ARGV);\n"
+
+#: C/comboboxtext.js.page:166(section/p)
+msgid ""
+"Finally, we create a new instance of the finished ComboBoxTextExample class, "
+"and set the application running."
+msgstr ""
+"ÎÎÎÎÎÎ, ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ ÎÎÎ ÏÏÎÎÎÎÏÏÏÏÎ ÏÎÏ ÎÎÎÎÎÎÏÏÎÎÎÎÏ ÎÎÎÏÎÏ "
+"ComboBoxTextExample ÎÎÎ ÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ."
+
+#: C/comboboxtext.js.page:171(section/code)
+#, no-wrap
+msgid ""
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"const ComboBoxTextExample = new Lang.Class ({\n"
+"    Name: 'ComboBoxText Example',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function () {\n"
+"        this.application = new Gtk.Application ({\n"
+"            application_id: 'org.example.jscomboboxtext'});\n"
+"\n"
+"        // Connect 'activate' and 'startup' signals to the callback functions\n"
+"        this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"        this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents windows when active\n"
+"    _onActivate: function () {\n"
+"        this._window.present ();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function () {\n"
+"        this._buildUI ();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function () {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow  ({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            title: \"Welcome to GNOME\",\n"
+"            default_width: 200,\n"
+"            border_width: 10 });\n"
+"\n"
+"        // Create the combobox\n"
+"        this._comboBoxText = new Gtk.ComboBoxText();\n"
+"\n"
+"        // Populate the combobox\n"
+"        let distros = [\"Select distribution\", \"Fedora\", \"Mint\", \"Suse\"];\n"
+"        for (let i = 0; i &lt; distros.length; i++)\n"
+"            this._comboBoxText.append_text (distros[i]);\n"
+"        this._comboBoxText.set_active (0);\n"
+"\n"
+"        // Connect the combobox's 'changed' signal to our callback function\n"
+"        this._comboBoxText.connect ('changed', Lang.bind (this, this._onComboChanged));\n"
+"\n"
+"        // Add the combobox to the window\n"
+"        this._window.add (this._comboBoxText);\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    _onComboChanged: function () {\n"
+"\n"
+"        // The responses we'll use for our messagedialog\n"
+"        let responses = [\"\",\n"
+"            \"Fedora is a community distro sponsored by Red Hat.\",\n"
+"            \"Mint is a popular distro based on Ubuntu.\",\n"
+"            \"SUSE is a name shared by two separate distros.\"];\n"
+"\n"
+"        // Which combobox item is active?\n"
+"        let activeItem = this._comboBoxText.get_active();\n"
+"\n"
+"        // No messagedialog if you chose \"Select distribution\"\n"
+"        if (activeItem != 0) {\n"
+"            this._popUp = new Gtk.MessageDialog ({\n"
+"                transient_for: this._window,\n"
+"                modal: true,\n"
+"                buttons: Gtk.ButtonsType.OK,\n"
+"                message_type: Gtk.MessageType.INFO,\n"
+"                text: responses[activeItem]});\n"
+"\n"
+"            // Connect the OK button to a handler function\n"
+"            this._popUp.connect ('response', Lang.bind (this, this._onDialogResponse));\n"
+"\n"
+"            // Show the messagedialog\n"
+"            this._popUp.show();\n"
+"        }\n"
+"\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    _onDialogResponse: function () {\n"
+"\n"
+"        this._popUp.destroy ();\n"
+"\n"
+"    }\n"
+"\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new ComboBoxTextExample ();\n"
+"app.application.run (ARGV);\n"
+msgstr ""
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"const ComboBoxTextExample = new Lang.Class ({\n"
+"    Name: 'ComboBoxText Example',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function () {\n"
+"        this.application = new Gtk.Application ({\n"
+"            application_id: 'org.example.jscomboboxtext'});\n"
+"\n"
+"        // Connect 'activate' and 'startup' signals to the callback functions\n"
+"        this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"        this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents windows when active\n"
+"    _onActivate: function () {\n"
+"        this._window.present ();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function () {\n"
+"        this._buildUI ();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function () {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow  ({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            title: \"Welcome to GNOME\",\n"
+"            default_width: 200,\n"
+"            border_width: 10 });\n"
+"\n"
+"        // Create the combobox\n"
+"        this._comboBoxText = new Gtk.ComboBoxText();\n"
+"\n"
+"        // Populate the combobox\n"
+"        let distros = [\"Select distribution\", \"Fedora\", \"Mint\", \"Suse\"];\n"
+"        for (let i = 0; i &lt; distros.length; i++)\n"
+"            this._comboBoxText.append_text (distros[i]);\n"
+"        this._comboBoxText.set_active (0);\n"
+"\n"
+"        // Connect the combobox's 'changed' signal to our callback function\n"
+"        this._comboBoxText.connect ('changed', Lang.bind (this, this._onComboChanged));\n"
+"\n"
+"        // Add the combobox to the window\n"
+"        this._window.add (this._comboBoxText);\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    _onComboChanged: function () {\n"
+"\n"
+"        // The responses we'll use for our messagedialog\n"
+"        let responses = [\"\",\n"
+"            \"Fedora is a community distro sponsored by Red Hat.\",\n"
+"            \"Mint is a popular distro based on Ubuntu.\",\n"
+"            \"SUSE is a name shared by two separate distros.\"];\n"
+"\n"
+"        // Which combobox item is active?\n"
+"        let activeItem = this._comboBoxText.get_active();\n"
+"\n"
+"        // No messagedialog if you chose \"Select distribution\"\n"
+"        if (activeItem != 0) {\n"
+"            this._popUp = new Gtk.MessageDialog ({\n"
+"                transient_for: this._window,\n"
+"                modal: true,\n"
+"                buttons: Gtk.ButtonsType.OK,\n"
+"                message_type: Gtk.MessageType.INFO,\n"
+"                text: responses[activeItem]});\n"
+"\n"
+"            // Connect the OK button to a handler function\n"
+"            this._popUp.connect ('response', Lang.bind (this, this._onDialogResponse));\n"
+"\n"
+"            // Show the messagedialog\n"
+"            this._popUp.show();\n"
+"        }\n"
+"\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    _onDialogResponse: function () {\n"
+"\n"
+"        this._popUp.destroy ();\n"
+"\n"
+"    }\n"
+"\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new ComboBoxTextExample ();\n"
+"app.application.run (ARGV);\n"
+
+#: C/comboboxtext.js.page:182(item/p)
+msgid ""
+"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.ComboBoxText.";
+"html\">Gtk.ComboBoxText</link>"
+msgstr ""
+"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.ComboBoxText.";
+"html\">Gtk.ComboBoxText</link>"
+
+#: C/comboboxtext.js.page:183(item/p) C/combobox.js.page:243(item/p)
+#: C/entry.js.page:32(item/p) C/messagedialog.js.page:197(item/p)
+msgid ""
+"<link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.MessageDialog.";
+"html\">Gtk.MessageDialog</link>"
+msgstr ""
+"<link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.MessageDialog.";
+"html\">Gtk.MessageDialog</link>"
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/combobox.js.page:25(media) C/combobox_multicolumn.py.page:22(media)
+msgctxt "_"
+msgid ""
+"external ref='media/combobox_multicolumn.png' "
+"md5='43f16648fb11ebc7d2f70825ed0f63b3'"
+msgstr ""
+"external ref='media/combobox_multicolumn.png' "
+"md5='43f16648fb11ebc7d2f70825ed0f63b3'"
+
+#: C/combobox.js.page:7(info/title)
+msgctxt "text"
+msgid "ComboBox (JavaScript)"
+msgstr "ComboBox (JavaScript)"
+
+#: C/combobox.js.page:21(info/desc)
+msgid "A customizable drop-down menu"
+msgstr "ÎÎÎ ÏÏÎÏÎÏÎÏÏÎÎÎ ÏÏÏÏÏÏÎÎÎÎ ÎÎÎÎÏ"
+
+#: C/combobox.js.page:24(page/title) C/combobox.py.page:20(page/title)
+#: C/combobox.vala.page:20(page/title)
+#: C/combobox_multicolumn.py.page:21(page/title)
+msgid "ComboBox"
+msgstr "ComboBox"
+
+#: C/combobox.js.page:26(page/p)
+msgid ""
+"A ComboBox is an extremely customizable drop-down menu. It holds the "
+"equivalent of a <link xref=\"treeview_simple_liststore.js\">TreeView</link> "
+"widget that appears when you click on it, complete with a ListStore "
+"(basically a spreadsheet) that says what's in the rows and columns. In this "
+"example, our ListStore has the name of each option in one column, and the "
+"name of a stock icon in the other, which the ComboBox then turns into an "
+"icon for each option."
+msgstr ""
+"ÎÎÎ ComboBox ÎÎÎÎÎ ÎÎÎ ÎÎÏÏÏ ÏÏÎÏÎÏÎÏÏÎÎÎ ÏÏÏÏÏÏÎÎÎÎ ÎÎÎÎÏ. ÎÏÎÏÎ ÏÎ "
+"ÎÏÎÎÏÎÎÎÎ ÎÎÏÏ ÎÏÎÏÎÎÎÏ ÏÏÏÏÎÏÎÎÎÏ <link xref=\"treeview_simple_liststore.js"
+"\">TreeView</link> ÏÎÏ ÎÎÏÎÎÎÎÎÏÎÎ ÏÏÎÎ ÏÎ ÏÎÏÎÏÎ ÏÎÎÏ ÏÎÏ, ÏÎÎÏÎÏ ÎÎ ÎÎÎ "
+"ListStore (ÎÎÏÎÎÎ ÎÎÎ ÏÏÎÎÎÎÎÏÏÎÎÏ ÏÏÎÎÎ) ÏÎÏ ÎÎÎÎ ÏÎ ÎÎÎÎÎ ÏÏÎÏ ÎÏÎÎÎÎÏ ÎÎÎ "
+"ÏÏÎÏ ÏÏÎÎÎÏ. ÎÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ, Î ListStore ÎÎÏ ÎÏÎÎ ÏÎ ÏÎÎÎÎ ÎÎÎÎ "
+"ÎÏÎÎÎÎÎÏ ÏÎ ÎÎÎ ÏÏÎÎÎ ÎÎÎ ÏÎ ÏÎÎÎÎ ÎÎÏÏ ÎÎÎÎÎÎÎÎÎÏ ÏÎÏÎÎÎÏÎÎÎÎÎÏ ÏÏÎÎ ÎÎÎÎ, "
+"ÏÎÏ ÏÎ ComboBox ÎÏÎÎÏÎ ÎÎÏÎÏÏÎÏÎÎ ÏÎ ÎÎÎ ÎÎÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎÎ ÎÏÎÎÎÎÎ."
+
+#: C/combobox.js.page:27(page/p)
+msgid ""
+"You select a whole horizontal row at a time, so the icons aren't treated as "
+"separate options. They and the text beside them make up each option you can "
+"click on."
+msgstr ""
+"ÎÏÎÎÎÎÎÏÎ ÎÎÎ ÏÎÎÏÏÏ ÎÏÎÎÏÎÏÎÎ ÎÏÎÎÎÎ ÏÎ ÏÎÏÎ, ÎÏÏÎ ÏÎ ÎÎÎÎÎÎÎÎÎ ÎÎÎ "
+"ÏÏÎÏÎÏÎÏÎÏÎÎÏÎÎ ÏÏ ÎÎÏÏÏÎÏÏÎÏ ÎÏÎÎÎÎÎÏ. ÎÏÏÎÏ ÎÎÎ ÏÎ ÎÎÎÎÎÎÎ ÎÎÏÎÎ ÏÎÏÏ "
+"ÎÎÏÎÏÎÎÏÎÎÎÏÎ ÎÎÎÎ ÎÏÎÎÎÎÎ ÏÎÏ ÎÏÎÏÎÎÏÎ ÎÎ ÏÎÏÎÏÎÏÎ."
+
+#: C/combobox.js.page:28(note/p)
+msgid ""
+"Working with a ListStore can be time-consuming. If you just want a simple "
+"text-only drop-down menu, take a look at the <link xref=\"comboboxtext.js"
+"\">ComboBoxText</link>. It doesn't take as much time to set up, and is "
+"easier to work with."
+msgstr ""
+"Î ÎÏÎÎÏÎÎ ÎÎ ÎÎÎ ListStore ÎÏÎÏÎÎ ÎÎ ÎÎÎÎÎ ÏÏÎÎÎÎÏÏÎ. ÎÎÎ ÎÎÎÎÏÎ ÎÏÎÎ ÎÎÎ "
+"ÎÏÎÏ ÏÏÏÏÏÏÎÎÎÎ ÎÎÎÎÏ ÎÏÎÎ ÎÎÎ ÎÎÎÎÎÎÎ, ÏÎÎÏÎ ÎÎÎ ÎÎÏÎÎ ÏÏÎ <link xref="
+"\"comboboxtext.js\">ComboBoxText</link>. ÎÎÎ ÏÎÎÏÎÎÎ ÏÎÎÏ ÏÏÏÎÎ ÎÎÎ "
+"ÎÎÎÎÏÎÏÏÎÏÎ ÎÎÎ ÎÎÏÎÎÏÎÏÎ ÏÎÎ ÎÏÎÎÎÎ."
+
+#: C/combobox.js.page:33(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"#!/usr/bin/gjs\n"
+"\n"
+"const GObject = imports.gi.GObject;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+msgstr ""
+"\n"
+"#!/usr/bin/gjs\n"
+"\n"
+"const GObject = imports.gi.GObject;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+
+#: C/combobox.js.page:45(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"const ComboBoxExample = new Lang.Class ({\n"
+"    Name: 'ComboBox Example',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function () {\n"
+"        this.application = new Gtk.Application ({\n"
+"            application_id: 'org.example.jscombobox'});\n"
+"\n"
+"        // Connect 'activate' and 'startup' signals to the callback functions\n"
+"        this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"        this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents windows when active\n"
+"    _onActivate: function () {\n"
+"        this._window.present ();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function () {\n"
+"        this._buildUI ();\n"
+"    },\n"
+msgstr ""
+"\n"
+"const ComboBoxExample = new Lang.Class ({\n"
+"    Name: 'ComboBox Example',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function () {\n"
+"        this.application = new Gtk.Application ({\n"
+"            application_id: 'org.example.jscombobox'});\n"
+"\n"
+"        // Connect 'activate' and 'startup' signals to the callback functions\n"
+"        this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"        this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents windows when active\n"
+"    _onActivate: function () {\n"
+"        this._window.present ();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function () {\n"
+"        this._buildUI ();\n"
+"    },\n"
+
+#: C/combobox.js.page:69(section/p)
+msgid ""
+"All the code for this sample goes in the ComboBoxExample class. The above "
+"code creates a <link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/";
+"Gtk.Application.html\">Gtk.Application</link> for our widgets and window to "
+"go in."
+msgstr ""
+"ÎÎÎÏ Î ÎÏÎÎÎÎÏ ÎÎÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÏÎÎÎÎÎÎÎ ÏÏÎÎ ÎÎÎÏÎ ComboBoxExample. Î "
+"ÏÎÏÎÏÎÎÏ ÎÏÎÎÎÎÏ ÎÎÎÎÎÏÏÎÎÎ ÎÎÎ <link href=\"http://www.roojs.com/seed/";
+"gir-1.2-gtk-3.0/gjs/Gtk.Application.html\">Gtk.Application</link> ÎÎÎ ÎÎ "
+"ÎÏÎÏÎ ÎÎÏÎ ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÏ ÎÎÎ ÏÎ ÏÎÏÎÎÏÏÎ."
+
+#: C/combobox.js.page:86(section/title)
+#: C/treeview_simple_liststore.js.page:93(section/title)
+msgid "Creating the ListStore"
+msgstr "ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ ListStore"
+
+#: C/combobox.js.page:87(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"        // Create the liststore to put our options in\n"
+"        this._listStore = new Gtk.ListStore();\n"
+"        this._listStore.set_column_types ([\n"
+"            GObject.TYPE_STRING,\n"
+"            GObject.TYPE_STRING]);\n"
+msgstr ""
+"\n"
+"        // Create the liststore to put our options in\n"
+"        this._listStore = new Gtk.ListStore();\n"
+"        this._listStore.set_column_types ([\n"
+"            GObject.TYPE_STRING,\n"
+"            GObject.TYPE_STRING]);\n"
+
+#: C/combobox.js.page:94(section/p)
+msgid ""
+"This ListStore works like the one used in the <link xref="
+"\"treeview_simple_liststore.js\">TreeView</link> example. We're giving it "
+"two columns, both strings, because one of them will contain the names of "
+"<link href=\"http://developer.gnome.org/gtk/2.24/gtk-Stock-Items.html#GTK-";
+"STOCK-ABOUT:CAPS\">stock Gtk icons</link>."
+msgstr ""
+"ÎÏÏÎ Î ListStore ÎÎÏÎÎÏÎÎ ÏÏÏÏ ÎÏÏÎ ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÎÎÎÎ ÏÏÎ ÏÎÏÎÎÎÎÎÎÎ <link "
+"xref=\"treeview_simple_liststore.js\">TreeView</link>. ÎÎÏ ÎÎÎÎÏÎÎ ÎÏÎ "
+"ÏÏÎÎÎÏ, ÎÎÏÏÏÎÏÎÏ ÏÏÎÎÎÎÎÏÎÎÏÎÏ, ÎÏÎÎÎÎ Î ÎÎÎ ÏÎÏÏ ÎÎ ÏÎÏÎÎÏÎÎ ÏÎ ÎÎÏÎÎÏÎ "
+"ÏÏÎ <link href=\"http://developer.gnome.org/gtk/2.24/gtk-Stock-Items.";
+"html#GTK-STOCK-ABOUT:CAPS\">ÎÎÎÎÎÎÎÎÏÎ ÏÎÏÎÎÎÏÎÎÎÎÎÏ Gtk</link>."
+
+#: C/combobox.js.page:95(section/p)
+msgid ""
+"If we'd wanted to use our own icons that weren't already built in to GNOME, "
+"we'd have needed to use the <file>gtk.gdk.Pixbuf</file> type instead. Here "
+"are a few other types you can use:"
+msgstr ""
+"ÎÎÎ ÎÎ ÎÎÎÎÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÏÎ ÎÎÎÎ ÎÎÏ ÎÎÎÎÎÎÎÎÎ ÏÎÏ ÎÎÎ ÎÏÎÎ ÎÎÎ "
+"ÎÎÏÏÎÎÏÏÎÎÎÎ ÏÏÎ GNOME, ÎÎ ÏÏÎÎÎÎÏÎÎÏÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÏÎÎ ÏÏÏÎ "
+"<file>gtk.gdk.Pixbuf</file>. ÎÎ ÎÎÏÎÎÎÎ ÎÎÎÎÎ ÏÏÏÎÎ ÏÎÏ ÎÏÎÏÎÎÏÎ ÎÎ "
+"ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ:"
+
+#: C/combobox.js.page:97(item/p)
+#: C/treeview_simple_liststore.js.page:106(item/p)
+msgid "<file>GObject.TYPE_BOOLEAN</file> -- True or false"
+msgstr "<file>GObject.TYPE_BOOLEAN</file> -- ÎÎÎÎÎÏ Î ÏÎÏÎÎÏ"
+
+#: C/combobox.js.page:98(item/p)
+#: C/treeview_simple_liststore.js.page:107(item/p)
+msgid ""
+"<file>GObject.TYPE_FLOAT</file> -- A floating point number (one with a "
+"decimal point)"
+msgstr ""
+"<file>GObject.TYPE_FLOAT</file> -- ÎÎÎÏ ÎÏÎÎÎÏÏ ÎÎÎÎÏÎÏ ÏÏÎÎÎÎÏÏÎÎÎÏ (ÎÎÎÏ "
+"ÎÎ ÎÎÎÎÎÎÎÎ ÏÏÎÎÎÎÏÏÎÎÎ)"
+
+#: C/combobox.js.page:99(item/p)
+#: C/treeview_simple_liststore.js.page:108(item/p)
+msgid "<file>GObject.TYPE_STRING</file> -- A string of letters and numbers"
+msgstr ""
+"<file>GObject.TYPE_STRING</file> -- ÎÎÎ ÏÏÎÎÎÎÎÏÎÎÏÎ ÎÏÎÎÎÎÏÏÎ ÎÎÎ ÎÏÎÎÎÏÎ"
+
+#: C/combobox.js.page:101(note/p)
+#: C/treeview_simple_liststore.js.page:112(note/p)
+msgid ""
+"You need to put the line <file>const GObject = imports.gi.GObject;</file> at "
+"the start of your application's code, like we did in this example, if you "
+"want to be able to use GObject types."
+msgstr ""
+"ÎÏÎÎÎÎÎÏÎÎ ÎÎ ÎÎÎÎÏÎ ÏÎ ÎÏÎÎÎÎ <file>const GObject = imports.gi.GObject;</"
+"file> ÏÏÎÎ ÎÏÏÎ ÏÎÏ ÎÏÎÎÎÎ ÏÎÏ ÎÏÎÏÎÎÎÎ ÏÎÏ, ÏÏÏÏ ÎÎÎÎÎÎ ÏÎ ÎÏÏÏ ÏÎ "
+"ÏÎÏÎÎÎÎÎÎÎ, ÎÎÎ ÎÎÎÎÏÎ ÎÎ ÎÏÎÏÎÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÏÏÏÎÏÏ GObject."
+
+#: C/combobox.js.page:103(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"        // This array holds our list of options and their icons\n"
+"        let options = [{ name: \"Select\" },\n"
+"            { name: \"New\", icon: Gtk.STOCK_NEW },\n"
+"            { name: \"Open\", icon: Gtk.STOCK_OPEN },\n"
+"            { name: \"Save\", icon: Gtk.STOCK_SAVE }];\n"
+"\n"
+"        // Put the options in the liststore\n"
+"        for (let i = 0; i &lt; options.length; i++ ) {\n"
+"            let option = options[i];\n"
+"            let iter = this._listStore.append();\n"
+"            this._listStore.set (iter, [0], [option.name]);\n"
+"            if ('icon' in option)\n"
+"                this._listStore.set (iter, [1], [option.icon]);\n"
+"        }\n"
+msgstr ""
+"\n"
+"        // This array holds our list of options and their icons\n"
+"        let options = [{ name: \"Select\" },\n"
+"            { name: \"New\", icon: Gtk.STOCK_NEW },\n"
+"            { name: \"Open\", icon: Gtk.STOCK_OPEN },\n"
+"            { name: \"Save\", icon: Gtk.STOCK_SAVE }];\n"
+"\n"
+"        // Put the options in the liststore\n"
+"        for (let i = 0; i &lt; options.length; i++ ) {\n"
+"            let option = options[i];\n"
+"            let iter = this._listStore.append();\n"
+"            this._listStore.set (iter, [0], [option.name]);\n"
+"            if ('icon' in option)\n"
+"                this._listStore.set (iter, [1], [option.icon]);\n"
+"        }\n"
+
+#: C/combobox.js.page:119(section/p)
+msgid ""
+"Here we create an array of the text options and their corresponding icons, "
+"then put them into the ListStore in much the same way we would for a <link "
+"xref=\"treeview_simple_liststore.js\">TreeView's</link> ListStore. We only "
+"want to put an icon in if there's actually an icon in the options array, so "
+"we make sure to check for that first."
+msgstr ""
+"ÎÎÏ ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎÎ ÏÎÎÎÎÎ ÏÏÎ ÎÏÎÎÎÎÏÎ ÎÎÎÎÎÎÎÏ ÎÎÎ ÏÎ ÎÎÏÎÏÏÎÎÏÎ ÏÎÏÏ "
+"ÎÎÎÎÎÎÎÎÎ, ÎÏÎÎÏÎ ÏÎ ÎÎÎÎÏÎÎ ÏÏÎ ListStore ÎÎ ÏÎÎ ÎÎÎÎ ÏÎÎÏÏÎÎÎ ÏÏÏÏÎ ÏÎÏ ÎÎ "
+"ÎÎÎÎÎÎ ÎÎÎ ÎÎÎ ListStore <link xref=\"treeview_simple_liststore.js\">ÏÎÏ "
+"TreeView</link>. ÎÎÎÎÏÎÎ ÎÏÎÎ ÎÎ ÎÎÎÎÏÎÎ ÎÎÎ ÎÎÎÎÎÎÎÎÎ ÎÎÎ ÏÏÎÏÏÎÎ ÏÏÎÎÎÎÏÎ "
+"ÎÎÎ ÎÎÎÎÎÎÎÎÎ ÏÏÎÎ ÏÎÎÎÎÎ ÎÏÎÎÎÎÏÎ, ÎÏÏÎ ÎÎÎÎÎÏÎÏÎÎÏÏÎ ÎÎÎ ÎÎ ÎÎÎÎÏÎÎÎ ÎÏÏÏ "
+"ÏÏÏÏÎ."
+
+#: C/combobox.js.page:120(note/p)
+msgid ""
+"\"Select\" isn't really an option so much as an invitation to click on our "
+"ComboBox, so it doesn't need an icon."
+msgstr ""
+"Î \"Select\" ÎÎÎ ÎÎÎÎÎ ÏÏÎÎÎÎÏÎÎÎ ÎÎÎ ÎÏÎÎÎÎÎ ÏÏÎ ÎÎÎ ÏÏÏÏÎÎÎÏÎ ÎÎ ÏÎÏÎÏÎÏÎÎ "
+"ÏÏÎ ComboBox ÎÎÏ, ÎÏÏÎ ÎÎÎ ÏÏÎÎÎÎÎÏÎÎ ÎÎÎ ÎÎÎÎÎÎÎÎÎ."
+
+#: C/combobox.js.page:124(section/title)
+msgid "Creating the ComboBox"
+msgstr "ÎÎÎÎÎÏÏÎÎÎ ÏÏÎ ComboBox"
+
+#: C/combobox.js.page:125(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"        // Create the combobox\n"
+"        this._comboBox = new Gtk.ComboBox({\n"
+"            model: this._listStore});\n"
+msgstr ""
+"\n"
+"        // Create the combobox\n"
+"        this._comboBox = new Gtk.ComboBox({\n"
+"            model: this._listStore});\n"
+
+#: C/combobox.js.page:130(section/p)
+msgid ""
+"Each ComboBox has an underlying \"model\" it takes all its options from. You "
+"can use a TreeStore if you want to have a ComboBox with branching options. "
+"In this case, we're just using the ListStore we already created."
+msgstr ""
+"ÎÎÎÎ ComboBox ÎÏÎÎ ÎÎÎ ÏÏÎÎÎÎÎÎÎÎ \"model\" ÎÏÏ ÏÏÎÏ ÏÎÎÏÎÎÎ ÏÎÎÏ ÏÎÏ "
+"ÎÏÎÎÎÎÎÏ ÏÎÏ. ÎÏÎÏÎÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÎÎÎ TreeStore ÎÎÎ ÎÎÎÎÏÎ ÎÎ ÎÏÎÏÎ "
+"ÎÎÎ ComboBox ÎÎ ÎÏÎÎÎÎÎÏ ÎÎÎÎÎÎÎÏÏÎÏ. ÎÎ ÎÏÏÎÎ ÏÎÎ ÏÎÏÎÏÏÏÏÎ, ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ "
+"ÎÏÎÎ ÏÎ ListStore ÏÎÏ ÎÎÎ ÎÎÎÎÎÏÏÎÎÏÎÎÎ."
+
+#: C/combobox.js.page:131(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"        // Create some cellrenderers for the items in each column\n"
+"        let rendererPixbuf = new Gtk.CellRendererPixbuf();\n"
+"        let rendererText = new Gtk.CellRendererText();\n"
+"\n"
+"        // Pack the renderers into the combobox in the order we want to see\n"
+"        this._comboBox.pack_start (rendererPixbuf, false);\n"
+"        this._comboBox.pack_start (rendererText, false);\n"
+"\n"
+"        // Set the renderers to use the information from our liststore\n"
+"        this._comboBox.add_attribute (rendererText, \"text\", 0);\n"
+"        this._comboBox.add_attribute (rendererPixbuf, \"stock_id\", 1);\n"
+msgstr ""
+"\n"
+"        // Create some cellrenderers for the items in each column\n"
+"        let rendererPixbuf = new Gtk.CellRendererPixbuf();\n"
+"        let rendererText = new Gtk.CellRendererText();\n"
+"\n"
+"        // Pack the renderers into the combobox in the order we want to see\n"
+"        this._comboBox.pack_start (rendererPixbuf, false);\n"
+"        this._comboBox.pack_start (rendererText, false);\n"
+"\n"
+"        // Set the renderers to use the information from our liststore\n"
+"        this._comboBox.add_attribute (rendererText, \"text\", 0);\n"
+"        this._comboBox.add_attribute (rendererPixbuf, \"stock_id\", 1);\n"
+
+#: C/combobox.js.page:144(section/p)
+msgid ""
+"This part, again, works much like creating CellRenderers and packing them "
+"into the columns of a <link xref=\"treeview_simple_liststore.js\">TreeView</"
+"link>. The biggest difference is that we don't need to create the ComboBox's "
+"columns as separate objects. We just pack the CellRenderers into it in the "
+"order we want them to show up, then tell them to pull information from the "
+"ListStore (and what type of information we want them to expect)."
+msgstr ""
+"ÎÏÏÏ ÏÎ ÎÎÏÎÏ, ÏÎÎÎ, ÎÎÏÎÎÏÎÎ ÏÎÏÏÎÎÎÎ ÎÎ ÏÎ ÎÎÎÎÎÏÏÎÎÎ CellRenderers ÎÎÎ "
+"ÏÎÎÎÏÎÏÎÏÎÎ ÏÎÏÏ ÏÏÎÏ ÏÏÎÎÎÏ ÎÎÎÏ <link xref=\"treeview_simple_liststore.js"
+"\">TreeView</link>. Î ÎÎÎÎÎÏÏÎÏÎ ÎÎÎÏÎÏÎ ÎÎÎÎÎ ÏÏÎ ÎÎÎ ÏÏÎÎÎÎÏÎÎÏÏÎ ÎÎ "
+"ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ ÏÎÏ ÏÏÎÎÎÏ ÏÎÏ ComboBox ÏÏ ÎÎÏÏÏÎÏÏÎ ÎÎÏÎÎÎÎÎÎÎÎ. ÎÏÎÎ "
+"ÏÎÎÎÏÎÏÎÏÎÎ ÏÎÏÏ CellRenderers ÏÎ ÎÏÏÏ ÎÎ ÏÎ ÏÎÎÏÎ ÏÎÏ ÏÎ ÎÎÎÎÏÎÎ ÎÎ "
+"ÎÎÏÎÎÎÏÏÎÏÎ, ÎÏÎÎÏÎ ÏÎÏÏ ÎÎÎÎ ÎÎ ÏÎÏÎÏÎ ÏÎÎÏÎÏÎÏÎÎÏ ÎÏÏ ÏÎ ListStore (ÎÎÎ ÏÎ "
+"ÏÏÏÎ ÏÎÎÏÎÏÎÏÎÎÏ ÎÎÎÎÏÎÎ ÎÎ ÏÎÏÏ ÏÎÏÎÎÎÎÎÎ)."
+
+#: C/combobox.js.page:145(section/p)
+msgid ""
+"We use a CellRendererText to show the text, and a CellRendererPixbuf to show "
+"the icons. We can store the names of the icons' stock types as strings, but "
+"when we display them we need a CellRenderer that's designed for pictures."
+msgstr ""
+"ÎÏÎÏÎÎÎÏÎÎÎÏÎÎ ÎÎÎ CellRendererText ÎÎÎ ÎÎ ÎÎÏÎÎÎÏÎÏÎÎ ÏÎ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ "
+"CellRendererPixbuf ÎÎÎ ÎÎ ÏÏÎÎÎÎÎÏÎÎ ÏÎ ÎÎÎÎÎÎÎÎÎ. ÎÏÎÏÎÏÎÎ ÎÎ ÎÏÎÎÎÎÎÏÏÎÏÎÎ "
+"ÏÎ ÎÎÏÎÎÏÎ ÏÏÏÏÎ ÏÎÏÎÎÎÏÎÎÎÎÎÏ ÏÏÎ ÎÎÎÎÎÎÎÎÏÎ ÏÏ ÏÏÎÎÎÎÎÏÎÎÏÎÏ, ÎÎÎÎ ÏÏÎÎ ÏÎ "
+"ÎÎÏÎÎÎÎÎÏÎÎ ÏÏÎÎÎÎÏÎÎÏÏÎ ÎÎÎÎ CellRenderer ÏÎÏ ÏÏÎÎÎÎÏÏÎÎÎ ÎÎÎ ÎÎÎÏÎÎÏ."
+
+#: C/combobox.js.page:146(note/p)
+msgid ""
+"Just like with a TreeView, the \"model\" (in this case a ListStore) and the "
+"\"view\" (in this case our ComboBox) are separate. Because of that, we can "
+"do things like have the columns in one order in the ListStore, and then pack "
+"the CellRenderers that correspond to those columns into the ComboBox in a "
+"different order. We can even create a TreeView or other widget that shows "
+"the information in the ListStore in a different way, without it affecting "
+"our ComboBox."
+msgstr ""
+"ÎÎÏÎÎÏÏ ÏÏÏÏ ÎÎ ÎÎÎ TreeView, ÏÎ \"model\" (ÏÎ ÎÏÏÎÎ ÏÎÎ ÏÎÏÎÏÏÏÏÎ ÎÎÎ "
+"ListStore) ÎÎÎ Î \"view\" (ÏÎ ÎÏÏÎÎ ÏÎÎ ÏÎÏÎÏÏÏÏÎ ÏÎ ComboBox ÎÎÏ) ÎÎÎÎÎ "
+"ÎÎÏÏÏÎÏÏÎ. ÎÏÎÏ ÎÏÏÎÏ, ÎÏÎÏÎÏÎÎ ÎÎ ÎÎÎÎÏÎÎ ÏÏÎÎÎÎÏÎ ÏÏÏÏ ÎÎ ÎÏÎÏÎÎ ÏÎÏ "
+"ÏÏÎÎÎÏ ÏÎ ÎÎÎ ÏÎÎÏÎ ÏÏÎ ListStore ÎÎÎ ÎÏÎÎÏÎ ÏÎÎÎÏÎÏÎÏÎÎ ÏÎÏÏ CellRenderers "
+"ÏÎÏ ÎÎÏÎÏÏÎÎÏÎÏÎ ÏÎ ÎÏÏÎÏ ÏÎÏ ÏÏÎÎÎÏ ÏÏÎ ComboBox ÎÎ ÎÎÎÏÎÏÎÏÎÎÎ ÏÎÎÏÎ. "
+"ÎÏÎÏÎÏÎÎ ÎÎÏÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ ÎÎÎ TreeView Î ÎÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÏÎÏ "
+"ÎÎÏÎÎÎÎÎÎ ÏÎÎ ÏÎÎÏÎÏÎÏÎÎ ÏÏÎ ListStore ÎÎ ÎÎÎÏÎÏÎÏÎÎÏ ÏÏÏÏÎ, ÏÏÏÎÏ ÎÏÏÏ ÎÎ "
+"ÎÏÎÏÎÎÎÎÎ ÏÎ ComboBox."
+
+#: C/combobox.js.page:148(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"        // Set the first row in the combobox to be active on startup\n"
+"        this._comboBox.set_active (0);\n"
+"\n"
+"        // Connect the combobox's 'changed' signal to our callback function\n"
+"        this._comboBox.connect ('changed', Lang.bind (this, this._onComboChanged));\n"
+msgstr ""
+"\n"
+"        // Set the first row in the combobox to be active on startup\n"
+"        this._comboBox.set_active (0);\n"
+"\n"
+"        // Connect the combobox's 'changed' signal to our callback function\n"
+"        this._comboBox.connect ('changed', Lang.bind (this, this._onComboChanged));\n"
+
+#: C/combobox.js.page:155(section/p)
+msgid ""
+"We want the \"Select\" text to be the part people see at first, that gets "
+"them to click on the ComboBox. So we set it to be the active entry. We also "
+"connect the ComboBox's <file>changed</file> signal to a callback function, "
+"so that any time someone clicks on a new option something happens. In this "
+"case, we're just going to show a popup with a little haiku."
+msgstr ""
+"ÎÎÎÎÏÎÎ ÏÎ ÎÎÎÎÎÎÎ \"Select\" ÎÎ ÎÎÎÎÎ ÏÎ ÏÎÎÎÎ ÏÎÏ ÎÎÎÏÎÏÎÎ ÏÏÏÏÎ, ÎÏÏÏ ÏÎÏ "
+"ÏÎ ÎÎÏÎÏÎÎ ÏÏÎ ÏÎÏÎÎÎ ÏÎÏ ComboBox. ÎÏÏÎ ÏÎ ÎÏÎÎÎÏÎÎ ÎÎ ÎÎÎÎÎ Î ÎÎÎÏÎÎ "
+"ÎÎÏÎÏÏÏÎÏÎ. ÎÏÎÏÎÏ ÏÏÎÎÎÎÏÎÎ ÏÎ ÏÎÎÎ <file>changed</file> ÏÎÏ ComboBox ÏÎ "
+"ÎÎÎ ÏÏÎÎÏÏÎÏÎ ÎÏÎÎÎÎÎÎÏÎÏ, ÎÏÏÎ ÏÏÏÎ ÎÏÎÏÎÎÎÏÎÏÎ ÎÎÏÎÎÎÏ ÏÎÏÎ ÏÎ ÎÎÎ ÎÎÎ "
+"ÎÏÎÎÎÎÎ ÎÎÏÎ ÎÎ ÏÏÎÎÎÎÎÎÎ. ÎÎ ÎÏÏÎÎ ÏÎÎ ÏÎÏÎÏÏÏÏÎ, ÏÏÏÎÎÎÏÎÎ ÎÏÎÎ ÎÎ "
+"ÎÎÏÎÎÎÏÎÏÎÎ ÎÎÎ ÎÎÎÎÏÏÎÎÎÎ ÎÎ ÎÎÎ ÎÎÎÏÏ ÏÎÎÎÎÎ."
+
+#: C/combobox.js.page:157(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"        // Add the combobox to the window\n"
+"        this._window.add (this._comboBox);\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    },\n"
+msgstr ""
+"\n"
+"        // Add the combobox to the window\n"
+"        this._window.add (this._comboBox);\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    },\n"
+
+#: C/combobox.js.page:165(section/p)
+msgid ""
+"Finally, we add the ComboBox to the window, and tell the window to show "
+"itself and everything inside it."
+msgstr ""
+"ÎÎÎÎÎÎ, ÏÏÎÏÎÎÏÎÏÎÎ ÏÎ ComboBox ÏÏÎ ÏÎÏÎÎÏÏÎ, ÎÏÎÎÏÎ ÎÎÎÎ ÏÏÎ ÏÎÏÎÎÏÏÎ ÎÎ "
+"ÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÎÏÏÏÎ ÏÎÏ ÎÎÎ ÏÎÎ ÎÎÏÎ ÏÎÏ."
+
+#: C/combobox.js.page:170(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"    _selected: function () {\n"
+"\n"
+"        // The silly pseudohaiku that we'll use for our messagedialog\n"
+"        let haiku = [\"\",\n"
+"            \"You ask for the new\\nwith no thought for the aged\\nlike fallen leaves trod.\",\n"
+"            \"Like a simple clam\\nrevealing a lustrous pearl\\nit opens for you.\",\n"
+"            \"A moment in time\\na memory on the breeze\\nthese things can't be saved.\"];\n"
+msgstr ""
+"\n"
+"    _selected: function () {\n"
+"\n"
+"        // The silly pseudohaiku that we'll use for our messagedialog\n"
+"        let haiku = [\"\",\n"
+"            \"You ask for the new\\nwith no thought for the aged\\nlike fallen leaves trod.\",\n"
+"            \"Like a simple clam\\nrevealing a lustrous pearl\\nit opens for you.\",\n"
+"            \"A moment in time\\na memory on the breeze\\nthese things can't be saved.\"];\n"
+
+#: C/combobox.js.page:179(section/p)
+msgid ""
+"We're going to create a pop-up <link xref=\"messagedialog.js"
+"\">MessageDialog</link>, which shows you a silly haiku based on which distro "
+"you select. First, we create the array of haiku to use. Since the first "
+"string in our ComboBox is just the \"Select\" message, we make the first "
+"string in our array blank."
+msgstr ""
+"ÎÏÏÎÎÎÏÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ ÎÎÎ ÎÎÎÎÏÏÎÎÎÎ <link xref=\"messagedialog.js"
+"\">MessageDialog</link>, ÏÎÏ ÏÎÏ ÎÎÏÎÎÎÎÎÎ ÎÎÎ ÎÎÏÎÏÎ ÏÎÎÎÎÎ ÎÎ ÎÎÏÎ ÏÎÎÎ "
+"ÎÎÎÎÎÎÎ ÎÏÎÎÎÎÎÏÎ. ÎÏÏÏÎ, ÎÎÎÎÎÏÏÎÎÏÎÎ ÏÎÎ ÏÎÎÎÎÎ ÏÎÏ ÏÎÎÎÎÎÏÎÏ ÎÎÎ ÏÏÎÏÎ. "
+"ÎÏÎÏ Î ÏÏÏÏÎ ÏÏÎÎÎÎÎÏÎÎÏÎ ÏÏÎ ComboBox ÎÎÏ ÎÎÎÎÎ ÎÏÎÎ ÏÎ ÎÎÎÏÎÎ \"Select\", "
+"ÎÎÎÎÏÎÎ ÏÎÎ ÏÏÏÏÎ ÏÏÎÎÎÎÎÏÎÎÏÎ ÏÏÎÎ ÏÎÎÎÎÎ ÎÎÏ ÎÎÎÎ."
+
+#: C/combobox.js.page:181(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"        // Which combobox item is active?\n"
+"        let activeItem = this._comboBox.get_active();\n"
+"\n"
+"        // No messagedialog if you choose \"Select\"\n"
+"        if (activeItem != 0) {\n"
+"            this._popUp = new Gtk.MessageDialog ({\n"
+"                transient_for: this._window,\n"
+"                modal: true,\n"
+"                buttons: Gtk.ButtonsType.OK,\n"
+"                message_type: Gtk.MessageType.INFO,\n"
+"                text: haiku[activeItem]});\n"
+"\n"
+"            // Connect the OK button to a handler function\n"
+"            this._popUp.connect ('response', Lang.bind (this, this._onDialogResponse));\n"
+"\n"
+"            // Show the messagedialog\n"
+"            this._popUp.show();\n"
+"        }\n"
+"\n"
+"    },\n"
+msgstr ""
+"\n"
+"        // Which combobox item is active?\n"
+"        let activeItem = this._comboBox.get_active();\n"
+"\n"
+"        // No messagedialog if you choose \"Select\"\n"
+"        if (activeItem != 0) {\n"
+"            this._popUp = new Gtk.MessageDialog ({\n"
+"                transient_for: this._window,\n"
+"                modal: true,\n"
+"                buttons: Gtk.ButtonsType.OK,\n"
+"                message_type: Gtk.MessageType.INFO,\n"
+"                text: haiku[activeItem]});\n"
+"\n"
+"            // Connect the OK button to a handler function\n"
+"            this._popUp.connect ('response', Lang.bind (this, this._onDialogResponse));\n"
+"\n"
+"            // Show the messagedialog\n"
+"            this._popUp.show();\n"
+"        }\n"
+"\n"
+"    },\n"
+
+#: C/combobox.js.page:203(section/p)
+msgid ""
+"Before showing a MessageDialog, we first test to make sure you didn't choose "
+"the \"Select\" message. After that, we set its text to be the haiku in the "
+"array that corresponds to the active entry in our ComboBoxText. We do that "
+"using the <file>get_active</file> method, which returns the number ID of "
+"your selection."
+msgstr ""
+"ÎÏÎÎ ÏÎÎ ÏÏÎÎÎÎÎ ÎÎÏÏ MessageDialog, ÎÎÎÎÎÎÎÎÏÎÎ ÏÏÏÏÎ ÎÎÎ ÎÎ ÎÎÎÎÎÏÎÎÏÎÎ "
+"ÏÏÎ ÎÎÎ ÎÏÎÎÎÎÎÏÎ ÏÎ ÎÎÎÏÎÎ \"Select\". ÎÎÏÎ ÎÏÏ ÎÏÏÏ, ÎÏÎÎÎÏÎÎ ÏÎ ÎÎÎÎÎÎÎ "
+"ÏÎÏ ÎÎ ÎÎÎÎÎ ÏÏÎ ÏÎÎÎÎÎ ÏÏÎÎ ÏÎÎÎÎÎ ÏÎÏ ÎÎÏÎÏÏÎÎÏÎÎ ÏÏÎÎ ÎÎÎÏÎÎ ÎÎÏÎÏÏÏÎÏÎ "
+"ÏÏÎ ComboBoxText ÎÎÏ. ÎÎ ÎÎÎÎÏÎÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ ÎÎÎÎÎÎ <file>get_active</"
+"file>, ÏÎÏ ÎÏÎÏÏÏÎÏÎÎ ÏÎÎ ÎÏÎÎÎÏ ÏÎÏÏÏÏÎÏÎÏ ÏÎÏ ÎÏÎÎÎÎÎÏ ÏÎÏ."
+
+#: C/combobox.js.page:204(note/p)
+#, fuzzy
+msgid ""
+"Other methods you can use include <file>get_active_id</file>, which returns "
+"the text ID assigned by <file>append</file>, and <file>get_active_text</"
+"file>, which returns the full text of the string you selected."
+msgstr ""
+"ÎÎÎÎÏ ÎÎÎÎÎÎÎ ÏÎÏ ÎÏÎÏÎÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÏÎÏÎÎÎÎÎÎÎÎÏÎ "
+"<file>get_active_id,</file> ÏÎÏ ÎÏÎÏÏÏÎÏÎÎ ÏÎÎ ÏÎÏÏÏÏÎÏÎ ÎÎÎÎÎÎÎÏ ÏÎÏ "
+"ÎÏÎÎÏÎÎÎÎ ÎÏÏ <file>append,</file> ÎÎÎ <file>get_active_text,</file> ÏÎÏ "
+"ÎÏÎÏÏÏÎÏÎÎ ÏÎ ÏÎÎÏÎÏ ÎÎÎÎÎÎÎ ÏÎÏ ÎÏÎÎÎÎÎÎÎÎÏ ÏÏÎÎÎÎÎÏÎÎÏÎÏ."
+
+#: C/combobox.js.page:218(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"// Run the application\n"
+"let app = new ComboBoxExample ();\n"
+"app.application.run (ARGV);\n"
+msgstr ""
+"\n"
+"// Run the application\n"
+"let app = new ComboBoxExample ();\n"
+"app.application.run (ARGV);\n"
+
+#: C/combobox.js.page:223(section/p)
+msgid ""
+"Finally, we create a new instance of the finished ComboBoxExample class, and "
+"set the application running."
+msgstr ""
+"ÎÎÎÎÎÎ, ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ ÎÎÎ ÏÏÎÎÎÎÏÏÏÏÎ ÏÎÏ ÎÎÎÎÎÎÏÏÎÎÎÎÏ ÎÎÎÏÎÏ "
+"ComboBoxExample ÎÎÎ ÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ."
+
+#: C/combobox.js.page:228(section/code)
+#, no-wrap
+msgid ""
+"#!/usr/bin/gjs\n"
+"\n"
+"const GObject = imports.gi.GObject;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"const ComboBoxExample = new Lang.Class ({\n"
+"    Name: 'ComboBox Example',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function () {\n"
+"        this.application = new Gtk.Application ({\n"
+"            application_id: 'org.example.jscombobox'});\n"
+"\n"
+"        // Connect 'activate' and 'startup' signals to the callback functions\n"
+"        this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"        this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents windows when active\n"
+"    _onActivate: function () {\n"
+"        this._window.present ();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function () {\n"
+"        this._buildUI ();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function () {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow  ({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            title: \"Welcome to GNOME\",\n"
+"            default_width: 200,\n"
+"            border_width: 10 });\n"
+"\n"
+"        // Create the liststore to put our options in\n"
+"        this._listStore = new Gtk.ListStore();\n"
+"        this._listStore.set_column_types ([\n"
+"            GObject.TYPE_STRING,\n"
+"            GObject.TYPE_STRING]);\n"
+"\n"
+"        // This array holds our list of options and their icons\n"
+"        let options = [{ name: \"Select\" },\n"
+"            { name: \"New\", icon: Gtk.STOCK_NEW },\n"
+"            { name: \"Open\", icon: Gtk.STOCK_OPEN },\n"
+"            { name: \"Save\", icon: Gtk.STOCK_SAVE }];\n"
+"\n"
+"        // Put the options in the liststore\n"
+"        for (let i = 0; i &lt; options.length; i++ ) {\n"
+"            let option = options[i];\n"
+"            let iter = this._listStore.append();\n"
+"            this._listStore.set (iter, [0], [option.name]);\n"
+"            if ('icon' in option)\n"
+"                this._listStore.set (iter, [1], [option.icon]);\n"
+"        }\n"
+"\n"
+"        // Create the combobox\n"
+"        this._comboBox = new Gtk.ComboBox({\n"
+"            model: this._listStore});\n"
+"\n"
+"        // Create some cellrenderers for the items in each column\n"
+"        let rendererPixbuf = new Gtk.CellRendererPixbuf();\n"
+"        let rendererText = new Gtk.CellRendererText();\n"
+"\n"
+"        // Pack the renderers into the combobox in the order we want to see\n"
+"        this._comboBox.pack_start (rendererPixbuf, false);\n"
+"        this._comboBox.pack_start (rendererText, false);\n"
+"\n"
+"        // Set the renderers to use the information from our liststore\n"
+"        this._comboBox.add_attribute (rendererText, \"text\", 0);\n"
+"        this._comboBox.add_attribute (rendererPixbuf, \"stock_id\", 1);\n"
+"\n"
+"        // Set the first row in the combobox to be active on startup\n"
+"        this._comboBox.set_active (0);\n"
+"\n"
+"        // Connect the combobox's 'changed' signal to our callback function\n"
+"        this._comboBox.connect ('changed', Lang.bind (this, this._onComboChanged));\n"
+"\n"
+"        // Add the combobox to the window\n"
+"        this._window.add (this._comboBox);\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    _onComboChanged: function () {\n"
+"\n"
+"        // The silly pseudohaiku that we'll use for our messagedialog\n"
+"        let haiku = [\"\",\n"
+"            \"You ask for the new\\nwith no thought for the aged\\nlike fallen leaves trod.\",\n"
+"            \"Like a simple clam\\nrevealing a lustrous pearl\\nit opens for you.\",\n"
+"            \"A moment in time\\na memory on the breeze\\nthese things can't be saved.\"];\n"
+"\n"
+"        // Which combobox item is active?\n"
+"        let activeItem = this._comboBox.get_active();\n"
+"\n"
+"        // No messagedialog if you choose \"Select\"\n"
+"        if (activeItem != 0) {\n"
+"            this._popUp = new Gtk.MessageDialog ({\n"
+"                transient_for: this._window,\n"
+"                modal: true,\n"
+"                buttons: Gtk.ButtonsType.OK,\n"
+"                message_type: Gtk.MessageType.INFO,\n"
+"                text: haiku[activeItem]});\n"
+"\n"
+"            // Connect the OK button to a handler function\n"
+"            this._popUp.connect ('response', Lang.bind (this, this._onDialogResponse));\n"
+"\n"
+"            // Show the messagedialog\n"
+"            this._popUp.show();\n"
+"        }\n"
+"\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    _onDialogResponse: function () {\n"
+"\n"
+"        this._popUp.destroy ();\n"
+"\n"
+"    }\n"
+"\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new ComboBoxExample ();\n"
+"app.application.run (ARGV);\n"
+msgstr ""
+"#!/usr/bin/gjs\n"
+"\n"
+"const GObject = imports.gi.GObject;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"const ComboBoxExample = new Lang.Class ({\n"
+"    Name: 'ComboBox Example',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function () {\n"
+"        this.application = new Gtk.Application ({\n"
+"            application_id: 'org.example.jscombobox'});\n"
+"\n"
+"        // Connect 'activate' and 'startup' signals to the callback functions\n"
+"        this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"        this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents windows when active\n"
+"    _onActivate: function () {\n"
+"        this._window.present ();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function () {\n"
+"        this._buildUI ();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function () {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow  ({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            title: \"Welcome to GNOME\",\n"
+"            default_width: 200,\n"
+"            border_width: 10 });\n"
+"\n"
+"        // Create the liststore to put our options in\n"
+"        this._listStore = new Gtk.ListStore();\n"
+"        this._listStore.set_column_types ([\n"
+"            GObject.TYPE_STRING,\n"
+"            GObject.TYPE_STRING]);\n"
+"\n"
+"        // This array holds our list of options and their icons\n"
+"        let options = [{ name: \"Select\" },\n"
+"            { name: \"New\", icon: Gtk.STOCK_NEW },\n"
+"            { name: \"Open\", icon: Gtk.STOCK_OPEN },\n"
+"            { name: \"Save\", icon: Gtk.STOCK_SAVE }];\n"
+"\n"
+"        // Put the options in the liststore\n"
+"        for (let i = 0; i &lt; options.length; i++ ) {\n"
+"            let option = options[i];\n"
+"            let iter = this._listStore.append();\n"
+"            this._listStore.set (iter, [0], [option.name]);\n"
+"            if ('icon' in option)\n"
+"                this._listStore.set (iter, [1], [option.icon]);\n"
+"        }\n"
+"\n"
+"        // Create the combobox\n"
+"        this._comboBox = new Gtk.ComboBox({\n"
+"            model: this._listStore});\n"
+"\n"
+"        // Create some cellrenderers for the items in each column\n"
+"        let rendererPixbuf = new Gtk.CellRendererPixbuf();\n"
+"        let rendererText = new Gtk.CellRendererText();\n"
+"\n"
+"        // Pack the renderers into the combobox in the order we want to see\n"
+"        this._comboBox.pack_start (rendererPixbuf, false);\n"
+"        this._comboBox.pack_start (rendererText, false);\n"
+"\n"
+"        // Set the renderers to use the information from our liststore\n"
+"        this._comboBox.add_attribute (rendererText, \"text\", 0);\n"
+"        this._comboBox.add_attribute (rendererPixbuf, \"stock_id\", 1);\n"
+"\n"
+"        // Set the first row in the combobox to be active on startup\n"
+"        this._comboBox.set_active (0);\n"
+"\n"
+"        // Connect the combobox's 'changed' signal to our callback function\n"
+"        this._comboBox.connect ('changed', Lang.bind (this, this._onComboChanged));\n"
+"\n"
+"        // Add the combobox to the window\n"
+"        this._window.add (this._comboBox);\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    _onComboChanged: function () {\n"
+"\n"
+"        // The silly pseudohaiku that we'll use for our messagedialog\n"
+"        let haiku = [\"\",\n"
+"            \"You ask for the new\\nwith no thought for the aged\\nlike fallen leaves trod.\",\n"
+"            \"Like a simple clam\\nrevealing a lustrous pearl\\nit opens for you.\",\n"
+"            \"A moment in time\\na memory on the breeze\\nthese things can't be saved.\"];\n"
+"\n"
+"        // Which combobox item is active?\n"
+"        let activeItem = this._comboBox.get_active();\n"
+"\n"
+"        // No messagedialog if you choose \"Select\"\n"
+"        if (activeItem != 0) {\n"
+"            this._popUp = new Gtk.MessageDialog ({\n"
+"                transient_for: this._window,\n"
+"                modal: true,\n"
+"                buttons: Gtk.ButtonsType.OK,\n"
+"                message_type: Gtk.MessageType.INFO,\n"
+"                text: haiku[activeItem]});\n"
+"\n"
+"            // Connect the OK button to a handler function\n"
+"            this._popUp.connect ('response', Lang.bind (this, this._onDialogResponse));\n"
+"\n"
+"            // Show the messagedialog\n"
+"            this._popUp.show();\n"
+"        }\n"
+"\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    _onDialogResponse: function () {\n"
+"\n"
+"        this._popUp.destroy ();\n"
+"\n"
+"    }\n"
+"\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new ComboBoxExample ();\n"
+"app.application.run (ARGV);\n"
+
+#: C/combobox.js.page:239(item/p)
+msgid ""
+"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.";
+"CellRendererPixbuf.html\">Gtk.CellRendererPixbuf</link>"
+msgstr ""
+"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.";
+"CellRendererPixbuf.html\">Gtk.CellRendererPixbuf</link>"
+
+#: C/combobox.js.page:240(item/p)
+#: C/treeview_simple_liststore.js.page:278(item/p)
+msgid ""
+"<link href=\"www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.CellRendererText.html"
+"\">Gtk.CellRendererText</link>"
+msgstr ""
+"<link href=\"www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.CellRendererText.html"
+"\">Gtk.CellRendererText</link>"
+
+#: C/combobox.js.page:241(item/p)
+msgid ""
+"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.ComboBox.html";
+"\">Gtk.ComboBox</link>"
+msgstr ""
+"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.ComboBox.html";
+"\">Gtk.ComboBox</link>"
+
+#: C/combobox.js.page:242(item/p)
+#: C/treeview_simple_liststore.js.page:279(item/p)
+msgid ""
+"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.ListStore.html";
+"\">Gtk.ListStore</link>"
+msgstr ""
+"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.ListStore.html";
+"\">Gtk.ListStore</link>"
+
+#: C/combobox.js.page:244(item/p)
+#: C/treeview_simple_liststore.js.page:280(item/p)
+msgid ""
+"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.TreeIter.html";
+"\">Gtk.TreeIter</link>"
+msgstr ""
+"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.TreeIter.html";
+"\">Gtk.TreeIter</link>"
+
+#: C/combobox.py.page:7(info/title)
+#: C/combobox_multicolumn.py.page:7(info/title)
+msgctxt "text"
+msgid "ComboBox (Python)"
+msgstr "ComboBox (Python)"
+
+#: C/combobox.py.page:17(info/desc) C/combobox.vala.page:17(info/desc)
+#: C/combobox_multicolumn.py.page:18(info/desc)
+msgid "A widget used to choose from a list of items"
+msgstr ""
+"ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÎÎÎ ÎÏÎÎÎÎÎ ÎÏÏ ÎÎÎ ÎÎÏÏÎ ÏÏÎÎÏÎÎÏÎ"
+
+#: C/combobox.py.page:22(page/p) C/combobox_multicolumn.py.page:23(page/p)
+msgid "This ComboBox prints to the terminal your selection when you change it."
+msgstr ""
+"ÎÏÏÏ ÏÎ ComboBox ÏÏÏÏÎÎÎ ÏÏÎÎ ÏÎÏÎÎÏÎÎÏ ÏÎÎ ÎÏÎÎÎÎÎ ÏÎÏ ÏÏÎÎ ÏÎÎ ÎÎÎÎÎÎÏÎ."
+
+#: C/combobox.py.page:28(section/code)
+#, no-wrap
+msgid ""
+"from gi.repository import Gtk\n"
+"import sys\n"
+"\n"
+"distros = [[\"Select distribution\"], [\"Fedora\"], [\"Mint\"], [\"Suse\"]]\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"Welcome to GNOME\", application=app)\n"
+"        self.set_default_size(200, -1)\n"
+"        self.set_border_width(10)\n"
+"\n"
+"        # the data in the model, of type string\n"
+"        listmodel = Gtk.ListStore(str)\n"
+"        # append the data in the model\n"
+"        for i in range(len(distros)):\n"
+"            listmodel.append(distros[i])\n"
+"\n"
+"        # a combobox to see the data stored in the model\n"
+"        combobox = Gtk.ComboBox(model=listmodel)\n"
+"\n"
+"        # a cellrenderer to render the text\n"
+"        cell = Gtk.CellRendererText()\n"
+"\n"
+"        # pack the cell into the beginning of the combobox, allocating\n"
+"        # no more space than needed\n"
+"        combobox.pack_start(cell, False)\n"
+"        # associate a property (\"text\") of the cellrenderer (cell) to a column (column 0)\n"
+"        # in the model used by the combobox\n"
+"        combobox.add_attribute(cell, \"text\", 0)\n"
+"\n"
+"        # the first row is the active one by default at the beginning\n"
+"        combobox.set_active(0)\n"
+"\n"
+"        # connect the signal emitted when a row is selected to the callback function\n"
+"        combobox.connect(\"changed\", self.on_changed)\n"
+"\n"
+"        # add the combobox to the window\n"
+"        self.add(combobox)\n"
+"\n"
+"    def on_changed(self, combo):\n"
+"        # if the row selected is not the first one, write its value on the terminal\n"
+"        if combo.get_active() != 0:\n"
+"            print \"You chose \" + str(distros[combo.get_active()][0]) +\".\"\n"
+"        return True\n"
+"\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
+msgstr ""
+"from gi.repository import Gtk\n"
+"import sys\n"
+"\n"
+"distros = [[\"Select distribution\"], [\"Fedora\"], [\"Mint\"], [\"Suse\"]]\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"Welcome to GNOME\", application=app)\n"
+"        self.set_default_size(200, -1)\n"
+"        self.set_border_width(10)\n"
+"\n"
+"        # the data in the model, of type string\n"
+"        listmodel = Gtk.ListStore(str)\n"
+"        # append the data in the model\n"
+"        for i in range(len(distros)):\n"
+"            listmodel.append(distros[i])\n"
+"\n"
+"        # a combobox to see the data stored in the model\n"
+"        combobox = Gtk.ComboBox(model=listmodel)\n"
+"\n"
+"        # a cellrenderer to render the text\n"
+"        cell = Gtk.CellRendererText()\n"
+"\n"
+"        # pack the cell into the beginning of the combobox, allocating\n"
+"        # no more space than needed\n"
+"        combobox.pack_start(cell, False)\n"
+"        # associate a property (\"text\") of the cellrenderer (cell) to a column (column 0)\n"
+"        # in the model used by the combobox\n"
+"        combobox.add_attribute(cell, \"text\", 0)\n"
+"\n"
+"        # the first row is the active one by default at the beginning\n"
+"        combobox.set_active(0)\n"
+"\n"
+"        # connect the signal emitted when a row is selected to the callback function\n"
+"        combobox.connect(\"changed\", self.on_changed)\n"
+"\n"
+"        # add the combobox to the window\n"
+"        self.add(combobox)\n"
+"\n"
+"    def on_changed(self, combo):\n"
+"        # if the row selected is not the first one, write its value on the terminal\n"
+"        if combo.get_active() != 0:\n"
+"            print \"You chose \" + str(distros[combo.get_active()][0]) +\".\"\n"
+"        return True\n"
+"\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
+
+#: C/combobox.py.page:32(section/title)
+#: C/combobox_multicolumn.py.page:34(section/title)
+msgid "Useful methods for a ComboBox widget"
+msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ComboBox"
+
+#: C/combobox.py.page:33(section/p)
+#: C/combobox_multicolumn.py.page:35(section/p)
+msgid ""
+"The ComboBox widget is designed around a <em>Model/View/Controller</em> "
+"design. For more information, and for a list of useful methods for ComboBox "
+"and TreeModel, see <link xref=\"model-view-controller.py\">here</link>."
+msgstr ""
+"ÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ComboBox ÏÏÎÎÎÎÏÏÎÎÎ ÎÏÏÏ ÎÏÏ ÎÎÎ ÏÏÎÎÎÎ <em>ÏÏÎÏÏÏÎÏ/"
+"ÏÏÎÎÎÎÎÏ/ÎÎÎÎÎÏÎ</em>. ÎÎÎ ÏÎÏÎÏÏÏÏÎÏÎÏ ÏÎÎÏÎÏÎÏÎÎÏ ÎÎÎ ÎÎÎ ÎÎÎ ÎÎÏÏÎ "
+"ÏÏÎÏÎÎÏÎ ÎÎÎÏÎÏÎ ÎÎÎ ComboBox ÎÎÎ TreeModel, ÎÎÎÏÎ <link xref=\"model-view-"
+"controller.py\">ÎÎÏ</link>."
+
+#: C/combobox.py.page:40(item/p) C/combobox_multicolumn.py.page:43(item/p)
+#: C/model-view-controller.py.page:188(item/p)
+msgid ""
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkComboBox.html";
+"\">GtkComboBox</link>"
+msgstr ""
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkComboBox.html";
+"\">GtkComboBox</link>"
+
+#: C/combobox.py.page:41(item/p) C/combobox_multicolumn.py.page:44(item/p)
+#: C/treeview_advanced_liststore.py.page:47(item/p)
+#: C/treeview_simple_liststore.py.page:45(item/p)
+msgid ""
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkListStore.html";
+"\">GtkListStore</link>"
+msgstr ""
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkListStore.html";
+"\">GtkListStore</link>"
+
+#: C/combobox.py.page:42(item/p) C/combobox_multicolumn.py.page:45(item/p)
+#: C/treeview_advanced_liststore.py.page:48(item/p)
+#: C/treeview_cellrenderertoggle.py.page:44(item/p)
+#: C/treeview_simple_liststore.py.page:46(item/p)
+#: C/treeview_treestore.py.page:44(item/p)
+msgid ""
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkCellRendererText.";
+"html\">GtkCellRendererText</link>"
+msgstr ""
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkCellRendererText.";
+"html\">GtkCellRendererText</link>"
+
+#: C/combobox.py.page:43(item/p)
+msgid ""
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkCellLayout.html";
+"\">GtkCellLayout</link>"
+msgstr ""
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkCellLayout.html";
+"\">GtkCellLayout</link>"
+
+#: C/combobox.py.page:44(item/p) C/combobox_multicolumn.py.page:48(item/p)
+#: C/treeview_advanced_liststore.py.page:50(item/p)
+#: C/treeview_simple_liststore.py.page:48(item/p)
+msgid ""
+"<link href=\"http://git.gnome.org/browse/pygobject/tree/gi/overrides/Gtk.py";
+"\">pygobject - Python bindings for GObject Introspection</link>"
+msgstr ""
+
+#: C/combobox.vala.page:7(info/title)
+msgctxt "text"
+msgid "ComboBox (Vala)"
+msgstr "ComboBox (Vala)"
+
+#: C/combobox.vala.page:22(page/p)
+msgid "This ComboBox prints to the terminal when you change your selection."
+msgstr "ÎÏÏÏ ÏÎ ComboBox ÏÏÏÏÎÎÎ ÏÏÎÎ ÏÎÏÎÎÏÎÎÏ ÏÏÎÎ ÎÎÎÎÎÎÏÎ ÏÎÎ ÎÏÎÎÎÎÎ ÏÎÏ."
+
+#: C/combobox.vala.page:24(page/code)
+#, no-wrap
+msgid ""
+"/* A window in the application */\n"
+"class MyWindow : Gtk.ApplicationWindow {\n"
+"\n"
+"\t/* An instance array of linux distributions belonging to this window. */\n"
+"\tstring[] distros = {\"Select distribution\", \"Fedora\", \"Mint\", \"Suse\"};\n"
+"\n"
+"\t/* This enum makes the code more readable when we refer to\n"
+"\t * the column as Column.DISTRO, instead of just 0.\n"
+"\t */\n"
+"\tenum Column {\n"
+"\t\tDISTRO\n"
+"\t}\n"
+"\n"
+"\t/* Constructor */\n"
+"\tinternal MyWindow (MyApplication app) {\n"
+"\t\tObject (application: app, title: \"Welcome to GNOME\");\n"
+"\n"
+"\t\tthis.set_default_size (200, -1);\n"
+"\t\tthis.border_width = 10;\n"
+"\n"
+"\t\tGtk.ListStore liststore = new Gtk.ListStore (1, typeof (string));\n"
+"\n"
+"\t\tfor (int i = 0; i &lt; distros.length; i++){\n"
+"\t\t\tGtk.TreeIter iter;\n"
+"\t\t\tliststore.append (out iter);\n"
+"\t\t\tliststore.set (iter, Column.DISTRO, distros[i]);\n"
+"\t\t}\n"
+"\n"
+"\t\tGtk.ComboBox combobox = new Gtk.ComboBox.with_model (liststore);\n"
+"\t\tGtk.CellRendererText cell = new Gtk.CellRendererText ();\n"
+"\t\tcombobox.pack_start (cell, false);\n"
+"\n"
+"\t\tcombobox.set_attributes (cell, \"text\", Column.DISTRO);\n"
+"\n"
+"\t\t/* Set the first item in the list to be selected (active). */\n"
+"\t\tcombobox.set_active (0);\n"
+"\n"
+"\t\t/* Connect the 'changed' signal of the combobox\n"
+"\t\t * to the signal handler (aka. callback function.\n"
+"\t\t */\n"
+"\t\tcombobox.changed.connect (this.item_changed);\n"
+"\n"
+"\t\t/* Add the combobox to this window */\n"
+"\t\tthis.add (combobox);\n"
+"\t\tcombobox.show ();\n"
+"\t}\n"
+"\n"
+"\t/* Signal handler for the 'changed' signal of the combobox. */\n"
+"\tvoid item_changed (Gtk.ComboBox combo) {\n"
+"\t\tif (combo.get_active () !=0) {\n"
+"\t\t\tprint (\"You chose \" + distros [combo.get_active ()] +\"\\n\");\n"
+"\t\t}\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* This is the application */\n"
+"class MyApplication : Gtk.Application {\n"
+"\n"
+"\t/* Constructor */\n"
+"\tinternal MyApplication () {\n"
+"\t\tObject (application_id: \"org.example.MyApplication\");\n"
+"\t}\n"
+"\n"
+"\t/* Override the activate signal of GLib.Application,\n"
+"\t * which is inherited by Gtk.Application.\n"
+"\t */\n"
+"\tprotected override void activate () {\n"
+"\n"
+"\t\t/* Create the window of this application\n"
+"\t\t * and show it.\n"
+"\t\t */\n"
+"\t\tnew MyWindow (this).show ();\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* main creates and runs the application */\n"
+"int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
+msgstr ""
+"/* A window in the application */\n"
+"class MyWindow : Gtk.ApplicationWindow {\n"
+"\n"
+"\t/* An instance array of linux distributions belonging to this window. */\n"
+"\tstring[] distros = {\"Select distribution\", \"Fedora\", \"Mint\", \"Suse\"};\n"
+"\n"
+"\t/* This enum makes the code more readable when we refer to\n"
+"\t * the column as Column.DISTRO, instead of just 0.\n"
+"\t */\n"
+"\tenum Column {\n"
+"\t\tDISTRO\n"
+"\t}\n"
+"\n"
+"\t/* Constructor */\n"
+"\tinternal MyWindow (MyApplication app) {\n"
+"\t\tObject (application: app, title: \"Welcome to GNOME\");\n"
+"\n"
+"\t\tthis.set_default_size (200, -1);\n"
+"\t\tthis.border_width = 10;\n"
+"\n"
+"\t\tGtk.ListStore liststore = new Gtk.ListStore (1, typeof (string));\n"
+"\n"
+"\t\tfor (int i = 0; i &lt; distros.length; i++){\n"
+"\t\t\tGtk.TreeIter iter;\n"
+"\t\t\tliststore.append (out iter);\n"
+"\t\t\tliststore.set (iter, Column.DISTRO, distros[i]);\n"
+"\t\t}\n"
+"\n"
+"\t\tGtk.ComboBox combobox = new Gtk.ComboBox.with_model (liststore);\n"
+"\t\tGtk.CellRendererText cell = new Gtk.CellRendererText ();\n"
+"\t\tcombobox.pack_start (cell, false);\n"
+"\n"
+"\t\tcombobox.set_attributes (cell, \"text\", Column.DISTRO);\n"
+"\n"
+"\t\t/* Set the first item in the list to be selected (active). */\n"
+"\t\tcombobox.set_active (0);\n"
+"\n"
+"\t\t/* Connect the 'changed' signal of the combobox\n"
+"\t\t * to the signal handler (aka. callback function.\n"
+"\t\t */\n"
+"\t\tcombobox.changed.connect (this.item_changed);\n"
+"\n"
+"\t\t/* Add the combobox to this window */\n"
+"\t\tthis.add (combobox);\n"
+"\t\tcombobox.show ();\n"
+"\t}\n"
+"\n"
+"\t/* Signal handler for the 'changed' signal of the combobox. */\n"
+"\tvoid item_changed (Gtk.ComboBox combo) {\n"
+"\t\tif (combo.get_active () !=0) {\n"
+"\t\t\tprint (\"You chose \" + distros [combo.get_active ()] +\"\\n\");\n"
+"\t\t}\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* This is the application */\n"
+"class MyApplication : Gtk.Application {\n"
+"\n"
+"\t/* Constructor */\n"
+"\tinternal MyApplication () {\n"
+"\t\tObject (application_id: \"org.example.MyApplication\");\n"
+"\t}\n"
+"\n"
+"\t/* Override the activate signal of GLib.Application,\n"
+"\t * which is inherited by Gtk.Application.\n"
+"\t */\n"
+"\tprotected override void activate () {\n"
+"\n"
+"\t\t/* Create the window of this application\n"
+"\t\t * and show it.\n"
+"\t\t */\n"
+"\t\tnew MyWindow (this).show ();\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* main creates and runs the application */\n"
+"int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
+
+#: C/combobox.vala.page:29(item/p)
+#: C/treeview_simple_liststore.vala.page:32(item/p)
+msgid ""
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.ListStore.html\";>Gtk."
+"ListStore</link>"
+msgstr ""
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.ListStore.html\";>Gtk."
+"ListStore</link>"
+
+#: C/combobox.vala.page:30(item/p)
+msgid ""
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.ComboBox.html\";>Gtk."
+"ComboBox</link>"
+msgstr ""
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.ComboBox.html\";>Gtk."
+"ComboBox</link>"
+
+#: C/combobox.vala.page:31(item/p)
+msgid ""
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.CellRendererText.html\";>Gtk."
+"CellRendererText</link>"
+msgstr ""
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.CellRendererText.html\";>Gtk."
+"CellRendererText</link>"
+
+#: C/combobox.vala.page:32(item/p)
+msgid ""
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.CellLayout.set_attributes.";
+"html\">set_attributes</link>"
+msgstr ""
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.CellLayout.set_attributes.";
+"html\">set_attributes</link>"
+
+#: C/combobox_multicolumn.py.page:29(section/code)
+#, no-wrap
+msgid ""
+"from gi.repository import Gtk\n"
+"import sys\n"
+"\n"
+"actions = [[\"Select\", None],\n"
+"           [\"New\", Gtk.STOCK_NEW],\n"
+"           [\"Open\", Gtk.STOCK_OPEN],\n"
+"           [\"Save\", Gtk.STOCK_SAVE]]\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"Welcome to GNOME\", application=app)\n"
+"        self.set_default_size(200, -1)\n"
+"        self.set_border_width(10)\n"
+"\n"
+"        # the data in the model, of type string on two columns\n"
+"        listmodel = Gtk.ListStore(str, str)\n"
+"        # append the data\n"
+"        for i in range(len(actions)):\n"
+"            listmodel.append(actions[i])\n"
+"\n"
+"        # a combobox to see the data stored in the model\n"
+"        combobox = Gtk.ComboBox(model=listmodel)\n"
+"\n"
+"        # cellrenderers to render the data\n"
+"        renderer_pixbuf = Gtk.CellRendererPixbuf()\n"
+"        renderer_text = Gtk.CellRendererText()\n"
+"\n"
+"        # we pack the cell into the beginning of the combobox, allocating\n"
+"        # no more space than needed;\n"
+"        # first the image, then the text;\n"
+"        # note that it does not matter in which order they are in the model,\n"
+"        # the visualization is decided by the order of the cellrenderers\n"
+"        combobox.pack_start(renderer_pixbuf, False)\n"
+"        combobox.pack_start(renderer_text, False)\n"
+"\n"
+"        # associate a property of the cellrenderer to a column in the model\n"
+"        # used by the combobox\n"
+"        combobox.add_attribute(renderer_text, \"text\", 0)\n"
+"        combobox.add_attribute(renderer_pixbuf, \"stock_id\", 1)\n"
+"\n"
+"        # the first row is the active one at the beginning\n"
+"        combobox.set_active(0)\n"
+"\n"
+"        # connect the signal emitted when a row is selected to the callback function\n"
+"        combobox.connect(\"changed\", self.on_changed)\n"
+"\n"
+"        # add the combobox to the window\n"
+"        self.add(combobox)\n"
+"\n"
+"    def on_changed(self, combo):\n"
+"        # if the row selected is not the first one, write on the terminal\n"
+"        # the value of the first column in the model\n"
+"        if combo.get_active() != 0:\n"
+"\t\t\tprint \"You chose \" + str(actions[combo.get_active()][0]) +\"\\n\"\n"
+"        return True\n"
+"\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
+msgstr ""
+"from gi.repository import Gtk\n"
+"import sys\n"
+"\n"
+"actions = [[\"Select\", None],\n"
+"           [\"New\", Gtk.STOCK_NEW],\n"
+"           [\"Open\", Gtk.STOCK_OPEN],\n"
+"           [\"Save\", Gtk.STOCK_SAVE]]\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"Welcome to GNOME\", application=app)\n"
+"        self.set_default_size(200, -1)\n"
+"        self.set_border_width(10)\n"
+"\n"
+"        # the data in the model, of type string on two columns\n"
+"        listmodel = Gtk.ListStore(str, str)\n"
+"        # append the data\n"
+"        for i in range(len(actions)):\n"
+"            listmodel.append(actions[i])\n"
+"\n"
+"        # a combobox to see the data stored in the model\n"
+"        combobox = Gtk.ComboBox(model=listmodel)\n"
+"\n"
+"        # cellrenderers to render the data\n"
+"        renderer_pixbuf = Gtk.CellRendererPixbuf()\n"
+"        renderer_text = Gtk.CellRendererText()\n"
+"\n"
+"        # we pack the cell into the beginning of the combobox, allocating\n"
+"        # no more space than needed;\n"
+"        # first the image, then the text;\n"
+"        # note that it does not matter in which order they are in the model,\n"
+"        # the visualization is decided by the order of the cellrenderers\n"
+"        combobox.pack_start(renderer_pixbuf, False)\n"
+"        combobox.pack_start(renderer_text, False)\n"
+"\n"
+"        # associate a property of the cellrenderer to a column in the model\n"
+"        # used by the combobox\n"
+"        combobox.add_attribute(renderer_text, \"text\", 0)\n"
+"        combobox.add_attribute(renderer_pixbuf, \"stock_id\", 1)\n"
+"\n"
+"        # the first row is the active one at the beginning\n"
+"        combobox.set_active(0)\n"
+"\n"
+"        # connect the signal emitted when a row is selected to the callback function\n"
+"        combobox.connect(\"changed\", self.on_changed)\n"
+"\n"
+"        # add the combobox to the window\n"
+"        self.add(combobox)\n"
+"\n"
+"    def on_changed(self, combo):\n"
+"        # if the row selected is not the first one, write on the terminal\n"
+"        # the value of the first column in the model\n"
+"        if combo.get_active() != 0:\n"
+"\t\t\tprint \"You chose \" + str(actions[combo.get_active()][0]) +\"\\n\"\n"
+"        return True\n"
+"\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
+
+#: C/combobox_multicolumn.py.page:46(item/p)
+msgid ""
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkCellRendererPixbuf.";
+"html\">GtkCellRendererPixbuf</link>"
+msgstr ""
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkCellRendererPixbuf.";
+"html\">GtkCellRendererPixbuf</link>"
+
+#: C/combobox_multicolumn.py.page:47(item/p) C/toolbar.py.page:55(item/p)
+msgid ""
+"<link href=\"http://developer.gnome.org/gtk3/unstable/gtk3-Stock-Items.html";
+"\">Stock Items</link>"
+msgstr ""
+"<link href=\"http://developer.gnome.org/gtk3/unstable/gtk3-Stock-Items.html";
+"\">Stock Items</link>"
+
+#: C/cpp.page:6(info/title)
+msgctxt "link"
+msgid "C++"
+msgstr "C++"
+
+#: C/cpp.page:15(page/title)
+msgid "Platform demos in C++"
+msgstr "ÎÎÏÎÎÎÎÎÎÎÏÎ ÏÎÎÏÏÏÏÎÎÏ ÏÎ C++"
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/dialog.c.page:24(media) C/dialog.js.page:21(media)
+#: C/dialog.py.page:22(media) C/dialog.vala.page:21(media)
+msgctxt "_"
+msgid "external ref='media/dialog.png' md5='c90a33386a600e892fe623d4072c8c38'"
+msgstr "external ref='media/dialog.png' md5='c90a33386a600e892fe623d4072c8c38'"
+
+#: C/dialog.c.page:7(info/title)
+msgctxt "text"
+msgid "Dialog (C)"
+msgstr "ÎÎÎÎÎÎÎÏ (C)"
+
+#: C/dialog.c.page:19(info/desc) C/dialog.js.page:17(info/desc)
+#: C/dialog.py.page:18(info/desc) C/dialog.vala.page:17(info/desc)
+msgid "A popup window"
+msgstr "ÎÎÎ ÎÎÎÎÏÏÎÎÎÎ ÏÎÏÎÎÏÏÎ"
+
+#: C/dialog.c.page:22(page/title) C/dialog.js.page:20(page/title)
+#: C/dialog.py.page:21(page/title) C/dialog.vala.page:20(page/title)
+msgid "Dialog"
+msgstr "ÎÎÎÎÎÎÎÏ"
+
+#: C/dialog.c.page:25(page/p)
+msgid "A dialog window that pops up when a button is pressed."
+msgstr "ÎÎÎ ÏÎÏÎÎÏÏÎ ÎÎÎÎÏÎÎÏ ÏÎÏ ÎÎÎÎÏÎÏÎÎ ÏÏÎÎ ÎÎÎ ÎÎÏÎÏÎ ÏÎÏÎÎÏÎÎ."
+
+#: C/dialog.c.page:27(page/code)
+#, no-wrap
+msgid ""
+"\n"
+"#include &lt;gtk/gtk.h&gt;\n"
+" \n"
+"\n"
+"/*Callback function in which reacts to the \"response\" signal. Be sure to place \n"
+"it before the function it is called in*/\n"
+"static void\n"
+"on_response (GtkDialog *dialog,\n"
+"             gint       response_id,\n"
+"             gpointer   user_data)\n"
+"{\n"
+"  /*For demonstration purposes, this will show the int value \n"
+"  of the response type*/\n"
+"  g_print (\"response is %d\\n\", response_id);\n"
+"  \n"
+"  /*This will cause the dialog to be destroyed*/\n"
+"  gtk_widget_destroy (GTK_WIDGET (dialog));\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"/*Callback function in which reacts to the \"clicked\" signal*/\n"
+"static void\n"
+"show_dialog (GtkButton *button,\n"
+"             gpointer   user_data)\n"
+"{\n"
+"  GtkWindow *window = user_data;\n"
+"  GtkWidget *dialog;\n"
+"  GtkWidget *content_area;\n"
+"  GtkWidget *label;\n"
+"\n"
+"  gint response_id;\n"
+"\n"
+"  /*Create the dialog window. Modal windows prevent interaction with other \n"
+"  windows in the same application*/\n"
+"  dialog = gtk_dialog_new_with_buttons (\"A Gtk+ Dialog\", \n"
+"                                        window, \n"
+"                                        GTK_DIALOG_MODAL, \n"
+"                                        GTK_STOCK_OK, \n"
+"                                        GTK_RESPONSE_OK, \n"
+"                                        NULL);\n"
+"\n"
+"  /*Create a label and attach it to the content area of the dialog*/\n"
+"  content_area = gtk_dialog_get_content_area (GTK_DIALOG (dialog));\n"
+"  label = gtk_label_new (\"This demonstrates a dialog with a label\");\n"
+"  gtk_container_add (GTK_CONTAINER (content_area), label);\n"
+"\n"
+"  /*The main purpose of this is to show dialog's child widget, label*/\n"
+"  gtk_widget_show_all (dialog);\n"
+"  \n"
+"  /*Connecting the \"response\" signal from the user to the associated\n"
+"  callback function*/\n"
+"  g_signal_connect (GTK_DIALOG (dialog), \n"
+"                    \"response\", \n"
+"                    G_CALLBACK (on_response), \n"
+"                    NULL);\n"
+"\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"static void\n"
+"activate (GtkApplication *app,\n"
+"          gpointer        user_data)\n"
+"{\n"
+"  GtkWidget *window;\n"
+"  GtkWidget *button;\n"
+" \n"
+"  /*Create a window with a title and a default size*/\n"
+"  window = gtk_application_window_new (app);\n"
+"  gtk_window_set_title (GTK_WINDOW (window), \"GNOME Button\");\n"
+"  gtk_window_set_default_size (GTK_WINDOW (window), 250, 50);\n"
+"\n"
+"  /*Create a button with a label, and add it to the window*/\n"
+"  button = gtk_button_new_with_label (\"Click Me\");\n"
+"  gtk_container_add (GTK_CONTAINER (window), button);\n"
+" \n"
+"  /*Connecting the clicked signal to the callback*/\n"
+"  g_signal_connect (GTK_BUTTON (button), \n"
+"                    \"clicked\", \n"
+"                    G_CALLBACK (show_dialog), \n"
+"                    GTK_WINDOW (window));\n"
+" \n"
+"  gtk_widget_show_all (window);\n"
+"}\n"
+" \n"
+"\n"
+"\n"
+"int\n"
+"main (int argc, char **argv)\n"
+"{\n"
+"  GtkApplication *app;\n"
+"  int status;\n"
+" \n"
+"  app = gtk_application_new (\"org.gtk.example\", G_APPLICATION_FLAGS_NONE);\n"
+"  g_signal_connect (app, \"activate\", G_CALLBACK (activate), NULL);\n"
+"  status = g_application_run (G_APPLICATION (app), argc, argv);\n"
+"  g_object_unref (app);\n"
+" \n"
+"  return status;\n"
+"}\n"
+msgstr ""
+"\n"
+"#include &lt;gtk/gtk.h&gt;\n"
+" \n"
+"\n"
+"/*Callback function in which reacts to the \"response\" signal. Be sure to place \n"
+"it before the function it is called in*/\n"
+"static void\n"
+"on_response (GtkDialog *dialog,\n"
+"             gint       response_id,\n"
+"             gpointer   user_data)\n"
+"{\n"
+"  /*For demonstration purposes, this will show the int value \n"
+"  of the response type*/\n"
+"  g_print (\"response is %d\\n\", response_id);\n"
+"  \n"
+"  /*This will cause the dialog to be destroyed*/\n"
+"  gtk_widget_destroy (GTK_WIDGET (dialog));\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"/*Callback function in which reacts to the \"clicked\" signal*/\n"
+"static void\n"
+"show_dialog (GtkButton *button,\n"
+"             gpointer   user_data)\n"
+"{\n"
+"  GtkWindow *window = user_data;\n"
+"  GtkWidget *dialog;\n"
+"  GtkWidget *content_area;\n"
+"  GtkWidget *label;\n"
+"\n"
+"  gint response_id;\n"
+"\n"
+"  /*Create the dialog window. Modal windows prevent interaction with other \n"
+"  windows in the same application*/\n"
+"  dialog = gtk_dialog_new_with_buttons (\"A Gtk+ Dialog\", \n"
+"                                        window, \n"
+"                                        GTK_DIALOG_MODAL, \n"
+"                                        GTK_STOCK_OK, \n"
+"                                        GTK_RESPONSE_OK, \n"
+"                                        NULL);\n"
+"\n"
+"  /*Create a label and attach it to the content area of the dialog*/\n"
+"  content_area = gtk_dialog_get_content_area (GTK_DIALOG (dialog));\n"
+"  label = gtk_label_new (\"This demonstrates a dialog with a label\");\n"
+"  gtk_container_add (GTK_CONTAINER (content_area), label);\n"
+"\n"
+"  /*The main purpose of this is to show dialog's child widget, label*/\n"
+"  gtk_widget_show_all (dialog);\n"
+"  \n"
+"  /*Connecting the \"response\" signal from the user to the associated\n"
+"  callback function*/\n"
+"  g_signal_connect (GTK_DIALOG (dialog), \n"
+"                    \"response\", \n"
+"                    G_CALLBACK (on_response), \n"
+"                    NULL);\n"
+"\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"static void\n"
+"activate (GtkApplication *app,\n"
+"          gpointer        user_data)\n"
+"{\n"
+"  GtkWidget *window;\n"
+"  GtkWidget *button;\n"
+" \n"
+"  /*Create a window with a title and a default size*/\n"
+"  window = gtk_application_window_new (app);\n"
+"  gtk_window_set_title (GTK_WINDOW (window), \"GNOME Button\");\n"
+"  gtk_window_set_default_size (GTK_WINDOW (window), 250, 50);\n"
+"\n"
+"  /*Create a button with a label, and add it to the window*/\n"
+"  button = gtk_button_new_with_label (\"Click Me\");\n"
+"  gtk_container_add (GTK_CONTAINER (window), button);\n"
+" \n"
+"  /*Connecting the clicked signal to the callback*/\n"
+"  g_signal_connect (GTK_BUTTON (button), \n"
+"                    \"clicked\", \n"
+"                    G_CALLBACK (show_dialog), \n"
+"                    GTK_WINDOW (window));\n"
+" \n"
+"  gtk_widget_show_all (window);\n"
+"}\n"
+" \n"
+"\n"
+"\n"
+"int\n"
+"main (int argc, char **argv)\n"
+"{\n"
+"  GtkApplication *app;\n"
+"  int status;\n"
+" \n"
+"  app = gtk_application_new (\"org.gtk.example\", G_APPLICATION_FLAGS_NONE);\n"
+"  g_signal_connect (app, \"activate\", G_CALLBACK (activate), NULL);\n"
+"  status = g_application_run (G_APPLICATION (app), argc, argv);\n"
+"  g_object_unref (app);\n"
+" \n"
+"  return status;\n"
+"}\n"
+
+#: C/dialog.c.page:35(item/p)
+msgid ""
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkDialog.html";
+"\">GtkDialog</link>"
+msgstr ""
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkDialog.html";
+"\">GtkDialog</link>"
+
+#: C/dialog.c.page:36(item/p) C/radiobutton.c.page:35(item/p)
+#: C/spinbutton.c.page:37(item/p) C/switch.c.page:34(item/p)
+msgid ""
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkLabel.html";
+"\">GtkLabel</link>"
+msgstr ""
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkLabel.html";
+"\">GtkLabel</link>"
+
+#: C/dialog.js.page:7(info/title)
+msgctxt "text"
+msgid "Dialog (JavaScript)"
+msgstr "ÎÎÎÎÎÎÎÏ (JavaScript)"
+
+#: C/dialog.js.page:22(page/p)
+msgid ""
+"A customizable popup window, which has a content area and an action area. "
+"This example dialog's content area contains a short message, and its action "
+"area contains a button which dismisses the dialog."
+msgstr ""
+"ÎÎÎ ÏÏÎÏÎÏÎÏÏÎÎÎ ÎÎÎÎÏÏÎÎÎÎ ÏÎÏÎÎÏÏÎ, ÏÎÏ ÎÏÎÎ ÎÎÎ ÏÎÏÎÎÏÎ ÏÎÏÎÎÏÎÎÎÎÎÏ ÎÎÎ "
+"ÎÎÎ ÏÎÏÎÎÏÎ ÎÎÎÏÎÎÎÎÏ. ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÏÎÏÎÎÏÎÏ ÏÎÏÎÎÏÎÎÎÎÎÏ ÎÎÎÎÏÎÎÏ "
+"ÏÎÏÎÎÏÎÎ ÎÎÎ ÏÏÎÏÎÎÎ ÎÎÎÏÎÎ ÎÎÎ Î ÏÎÏÎÎÏÎ ÎÎÎÏÎÎÎÎÏ ÏÎÏÎÎÏÎÎ ÎÎÎ ÎÎÏÎÏÎ ÏÎÏ "
+"ÎÏÎÏÏÎÏÏÎÎ ÏÎ ÎÎÎÎÎÎÎ."
+
+#: C/dialog.js.page:24(page/code)
+#, no-wrap
+msgid ""
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gio = imports.gi.Gio;\n"
+"const GLib = imports.gi.GLib;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"const DialogExample = new Lang.Class ({\n"
+"    Name: 'Dialog Example',\n"
+"\n"
+"    // Create the application itself\n"
+"        _init: function () {\n"
+"            this.application = new Gtk.Application ({\n"
+"                application_id: 'org.example.jsdialog',\n"
+"                flags: Gio.ApplicationFlags.FLAGS_NONE\n"
+"            });\n"
+"\n"
+"    // Connect 'activate' and 'startup' signals to the callback functions\n"
+"    this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"    this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents windows when active\n"
+"    _onActivate: function () {\n"
+"        this._window.present ();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function () {\n"
+"        this._buildUI ();\n"
+"    },\n"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function () {\n"
+"\n"
+"        // Create the application window\n"
+"            this._window = new Gtk.ApplicationWindow  ({ application: this.application,\n"
+"                                                         window_position: Gtk.WindowPosition.CENTER,\n"
+"                                                         title: \"Gtk.Dialog Example\",\n"
+"                                                         default_height: 50,\n"
+"                                                         default_width: 250 });\n"
+"\n"
+"        // Create a button\n"
+"        this._button = new Gtk.Button ({label: \"Click Me\"});\n"
+"        this._window.add (this._button);\n"
+"\n"
+"        // Bind it to the function that creates the dialog\n"
+"        this._button.connect (\"clicked\", Lang.bind(this, this._createDialog));\n"
+"\n"
+"                // Show the window and all child widgets\n"
+"                this._window.show_all();\n"
+"    },\n"
+"\n"
+"    _createDialog: function () {\n"
+"\n"
+"        // Create the dialog\n"
+"        this._dialog = new Gtk.Dialog ({ transient_for: this._window,\n"
+"                         modal: true,\n"
+"                         title: \"A Gtk+ dialog\" });\n"
+"\n"
+"        // Create the dialog's content area, which contains a message\n"
+"        this._contentArea = this._dialog.get_content_area();\n"
+"        this._message = new Gtk.Label ({label: \"This demonstrates a dialog with a label\"});\n"
+"        this._contentArea.add (this._message);\n"
+"\n"
+"        // Create the dialog's action area, which contains a stock OK button\n"
+"        this._actionArea = this._dialog.get_action_area();\n"
+"        this._OKButton = new Gtk.Button.new_from_stock (Gtk.STOCK_OK);\n"
+"        this._actionArea.add (this._OKButton);\n"
+"\n"
+"        // Connect the button to the function that handles what it does\n"
+"        this._OKButton.connect (\"clicked\", Lang.bind (this, this._OKHandler));\n"
+"\n"
+"        this._dialog.show_all();\n"
+"    },\n"
+"\n"
+"    _OKHandler: function (dialog, response_id) {\n"
+"\n"
+"        // Destroy the dialog\n"
+"        this._dialog.destroy();\n"
+"    }\n"
+"\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new DialogExample ();\n"
+"app.application.run (ARGV);\n"
+msgstr ""
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gio = imports.gi.Gio;\n"
+"const GLib = imports.gi.GLib;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"const DialogExample = new Lang.Class ({\n"
+"    Name: 'Dialog Example',\n"
+"\n"
+"    // Create the application itself\n"
+"        _init: function () {\n"
+"            this.application = new Gtk.Application ({\n"
+"                application_id: 'org.example.jsdialog',\n"
+"                flags: Gio.ApplicationFlags.FLAGS_NONE\n"
+"            });\n"
+"\n"
+"    // Connect 'activate' and 'startup' signals to the callback functions\n"
+"    this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"    this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents windows when active\n"
+"    _onActivate: function () {\n"
+"        this._window.present ();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function () {\n"
+"        this._buildUI ();\n"
+"    },\n"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function () {\n"
+"\n"
+"        // Create the application window\n"
+"            this._window = new Gtk.ApplicationWindow  ({ application: this.application,\n"
+"                                                         window_position: Gtk.WindowPosition.CENTER,\n"
+"                                                         title: \"Gtk.Dialog Example\",\n"
+"                                                         default_height: 50,\n"
+"                                                         default_width: 250 });\n"
+"\n"
+"        // Create a button\n"
+"        this._button = new Gtk.Button ({label: \"Click Me\"});\n"
+"        this._window.add (this._button);\n"
+"\n"
+"        // Bind it to the function that creates the dialog\n"
+"        this._button.connect (\"clicked\", Lang.bind(this, this._createDialog));\n"
+"\n"
+"                // Show the window and all child widgets\n"
+"                this._window.show_all();\n"
+"    },\n"
+"\n"
+"    _createDialog: function () {\n"
+"\n"
+"        // Create the dialog\n"
+"        this._dialog = new Gtk.Dialog ({ transient_for: this._window,\n"
+"                         modal: true,\n"
+"                         title: \"A Gtk+ dialog\" });\n"
+"\n"
+"        // Create the dialog's content area, which contains a message\n"
+"        this._contentArea = this._dialog.get_content_area();\n"
+"        this._message = new Gtk.Label ({label: \"This demonstrates a dialog with a label\"});\n"
+"        this._contentArea.add (this._message);\n"
+"\n"
+"        // Create the dialog's action area, which contains a stock OK button\n"
+"        this._actionArea = this._dialog.get_action_area();\n"
+"        this._OKButton = new Gtk.Button.new_from_stock (Gtk.STOCK_OK);\n"
+"        this._actionArea.add (this._OKButton);\n"
+"\n"
+"        // Connect the button to the function that handles what it does\n"
+"        this._OKButton.connect (\"clicked\", Lang.bind (this, this._OKHandler));\n"
+"\n"
+"        this._dialog.show_all();\n"
+"    },\n"
+"\n"
+"    _OKHandler: function (dialog, response_id) {\n"
+"\n"
+"        // Destroy the dialog\n"
+"        this._dialog.destroy();\n"
+"    }\n"
+"\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new DialogExample ();\n"
+"app.application.run (ARGV);\n"
+
+#: C/dialog.js.page:31(item/p)
+msgid ""
+"<link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Dialog.html";
+"\">Gtk.Dialog</link>"
+msgstr ""
+"<link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Dialog.html";
+"\">Gtk.Dialog</link>"
+
+#: C/dialog.py.page:7(info/title)
+msgctxt "text"
+msgid "Dialog (Python)"
+msgstr "ÎÎÎÎÎÎÎÏ (Python)"
+
+#: C/dialog.py.page:23(page/p)
+msgid "A dialog with the response signal connected to a callback function."
+msgstr ""
+"ÎÎÎÏ ÎÎÎÎÎÎÎÏ ÎÎ ÏÎ ÏÎÎÎ ÎÏÎÎÏÎÏÎÏ ÏÏÎÎÎÎÎÎÎ ÏÎ ÎÎÎ ÏÏÎÎÏÏÎÏÎ ÎÏÎÎÎÎÎÎÏÎÏ."
+
+#: C/dialog.py.page:30(section/code)
+#, no-wrap
+msgid ""
+"from gi.repository import Gtk\n"
+"import sys\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    # construct a window (the parent window)\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"GNOME Button\", application=app)\n"
+"        self.set_default_size(250, 50)\n"
+"\n"
+"        # a button on the parent window\n"
+"        button = Gtk.Button(\"Click me\")\n"
+"        # connect the signal \"clicked\" of the button with the function on_button_click()\n"
+"        button.connect(\"clicked\", self.on_button_click)\n"
+"        # add the button to the window\n"
+"        self.add(button)\n"
+"\n"
+"    # callback function for the signal \"clicked\" of the button in the parent window\n"
+"    def on_button_click(self, widget):\n"
+"        # create a Gtk.Dialog\n"
+"        dialog = Gtk.Dialog()\n"
+"        dialog.set_title(\"A Gtk+ Dialog\")\n"
+"        # The window defined in the constructor (self) is the parent of the dialog.\n"
+"        # Furthermore, the dialog is on top of the parent window\n"
+"        dialog.set_transient_for(self)\n"
+"        # set modal true: no interaction with other windows of the application\n"
+"        dialog.set_modal(True)\n"
+"        # add a button to the dialog window\n"
+"        dialog.add_button(button_text=\"OK\", response_id=Gtk.ResponseType.OK)\n"
+"        # connect the \"response\" signal (the button has been clicked) to the function on_response()\n"
+"        dialog.connect(\"response\", self.on_response)\n"
+"\n"
+"        # get the content area of the dialog, add a label to it\n"
+"        content_area = dialog.get_content_area()\n"
+"        label = Gtk.Label(\"This demonstrates a dialog with a label\")\n"
+"        content_area.add(label)\n"
+"        # show the dialog\n"
+"        dialog.show_all()\n"
+"\n"
+"    def on_response(self, widget, response_id):\n"
+"        print \"response_id is\", response_id\n"
+"        # destroy the widget (the dialog) when the function on_response() is called\n"
+"        # (that is, when the button of the dialog has been clicked)\n"
+"        widget.destroy()\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup (self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
+msgstr ""
+"from gi.repository import Gtk\n"
+"import sys\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    # construct a window (the parent window)\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"GNOME Button\", application=app)\n"
+"        self.set_default_size(250, 50)\n"
+"\n"
+"        # a button on the parent window\n"
+"        button = Gtk.Button(\"Click me\")\n"
+"        # connect the signal \"clicked\" of the button with the function on_button_click()\n"
+"        button.connect(\"clicked\", self.on_button_click)\n"
+"        # add the button to the window\n"
+"        self.add(button)\n"
+"\n"
+"    # callback function for the signal \"clicked\" of the button in the parent window\n"
+"    def on_button_click(self, widget):\n"
+"        # create a Gtk.Dialog\n"
+"        dialog = Gtk.Dialog()\n"
+"        dialog.set_title(\"A Gtk+ Dialog\")\n"
+"        # The window defined in the constructor (self) is the parent of the dialog.\n"
+"        # Furthermore, the dialog is on top of the parent window\n"
+"        dialog.set_transient_for(self)\n"
+"        # set modal true: no interaction with other windows of the application\n"
+"        dialog.set_modal(True)\n"
+"        # add a button to the dialog window\n"
+"        dialog.add_button(button_text=\"OK\", response_id=Gtk.ResponseType.OK)\n"
+"        # connect the \"response\" signal (the button has been clicked) to the function on_response()\n"
+"        dialog.connect(\"response\", self.on_response)\n"
+"\n"
+"        # get the content area of the dialog, add a label to it\n"
+"        content_area = dialog.get_content_area()\n"
+"        label = Gtk.Label(\"This demonstrates a dialog with a label\")\n"
+"        content_area.add(label)\n"
+"        # show the dialog\n"
+"        dialog.show_all()\n"
+"\n"
+"    def on_response(self, widget, response_id):\n"
+"        print \"response_id is\", response_id\n"
+"        # destroy the widget (the dialog) when the function on_response() is called\n"
+"        # (that is, when the button of the dialog has been clicked)\n"
+"        widget.destroy()\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup (self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
+
+#: C/dialog.py.page:35(section/title)
+msgid "Useful methods for a Dialog widget"
+msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÎÎÎÏÎÎÏ"
+
+#: C/dialog.py.page:38(item/p)
+msgid ""
+"Instead of <code>set_modal(True)</code> we could have <code>set_modal(False)"
+"</code> followed by <code>set_destroy_with_parent(True)</code> that would "
+"destroy the dialog window if the main window is closed."
+msgstr ""
+"ÎÎÏÎ ÎÎÎ <code>set_modal(True)</code> ÎÏÎÏÎÏÎÎ <code>set_modal(False)</code> "
+"ÎÎÎÎÎÏÎÎÏÎÎÎÎ ÎÏÏ <code>set_destroy_with_parent(True)</code> ÏÎÏ ÎÏÎÏÎÎ ÎÎ "
+"ÎÎÏÎÏÏÏÎÏÎÎ ÏÎ ÏÎÏÎÎÏÏÎ ÎÎÎÎÏÎÎÏ ÎÎÎ ÏÎ ÎÏÏÎÎ ÏÎÏÎÎÏÏÎ ÎÎÎÎÏÎÎ."
+
+#: C/dialog.py.page:39(item/p)
+msgid ""
+"<code>add_button(button_text=\"The Answer\", response_id=42)</code>, where "
+"<code>42</code> is any integer, is an alternative to <code>add_button"
+"(button_text=\"text\", response_id=Gtk.ResponseType.RESPONSE)</code>, where "
+"<code>RESPONSE</code> could be one of <code>OK, CANCEL, CLOSE, YES, NO, "
+"APPLY, HELP</code>, which in turn correspond to the integers <code>-5, "
+"-6,..., -11</code>."
+msgstr ""
+"<code>add_button(button_text=\"The Answer\", response_id=42)</code>, ÏÏÎÏ "
+"<code>42</code> ÎÎÎÎÎ ÎÏÎÎÎÏÎÎÏÎÏÎ ÎÎÎÏÎÎÎÏ, ÎÎÎÎÎ ÎÎÎ ÎÎÎÎÎÎÎÏÎÎÎ ÏÏÎ "
+"<code>add_button(button_text=\"text\", response_id=Gtk.ResponseType.RESPONSE)"
+"</code>, ÏÏÎÏ <code>RESPONSE</code> ÎÏÎÏÎÎ ÎÎ ÎÎÎÎÎ ÎÎÎ ÎÏÏ ÏÎ <code>OK, "
+"CANCEL, CLOSE, YES, NO, APPLY, HELP</code>, ÏÎÏ ÎÎ ÏÎ ÏÎÎÏÎ ÏÎÏ ÎÎÏÎÏÏÎÎÏÎÎ "
+"ÏÎ ÎÎÎÏÎÎÎÏÏ <code>-5, -6,..., -11</code>."
+
+#: C/dialog.py.page:49(item/p) C/messagedialog.py.page:59(item/p)
+msgid ""
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkDialog.html";
+"\">GtkDialog</link>"
+msgstr ""
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkDialog.html";
+"\">GtkDialog</link>"
+
+#: C/dialog.vala.page:7(info/title)
+msgctxt "text"
+msgid "Dialog (Vala)"
+msgstr "ÎÎÎÎÎÎÎÏ (Vala)"
+
+#: C/dialog.vala.page:22(page/p)
+msgid "A dialog with the response signal hooked up to a callback function."
+msgstr ""
+"ÎÎÎÏ ÎÎÎÎÎÎÎÏ ÎÎ ÏÎ ÏÎÎÎ ÎÏÎÎÏÎÏÎÏ ÏÏÎÎÎÎÎÎÎ ÏÎ ÎÎÎ ÏÏÎÎÏÏÎÏÎ ÎÏÎÎÎÎÎÎÏÎÏ."
+
+#: C/dialog.vala.page:24(page/code)
+#, no-wrap
+msgid ""
+"\n"
+"/* A window in the application. */\n"
+"public class MyWindow : Gtk.ApplicationWindow {\n"
+"\n"
+"\t/* Constructor */\n"
+"\tinternal MyWindow (MyApplication app) {\n"
+"\t\tObject (application: app, title: \"GNOME Button\");\n"
+"\n"
+"\t\tthis.window_position = Gtk.WindowPosition.CENTER;\n"
+"\t\tthis.set_default_size (250,50);\n"
+"\n"
+"\t\tvar button = new Gtk.Button.with_label (\"Click Me\");\n"
+"\n"
+"\t\t/* Connect the button's \"clicked\" signal to\n"
+"\t\t * the signal handler (aka. this.callback function).\n"
+"\t\t */\n"
+"\t\tbutton.clicked.connect (this.on_button_click);\n"
+"\n"
+"\t\t/* Add the button to this window and show it. */\n"
+"\t\tthis.add (button);\n"
+"\t\tbutton.show ();\n"
+"\t}\n"
+"\n"
+"\t/* The signal handler for the buttons 'clicked' signal. */\n"
+"\tvoid on_button_click (Gtk.Button button) {\n"
+"\t\tvar dialog = new Gtk.Dialog.with_buttons (\"A Gtk+ Dialog\", this,\n"
+"                                                          Gtk.DialogFlags.MODAL,\n"
+"                                                          Gtk.Stock.OK,\n"
+"                                                          Gtk.ResponseType.OK, null);\n"
+"\n"
+"\t\tvar content_area = dialog.get_content_area ();\n"
+"\t\tvar label = new Gtk.Label (\"This demonstrates a dialog with a label\");\n"
+"\n"
+"\t\tcontent_area.add (label);\n"
+"\n"
+"\t\t/* Connect the 'response' signal of the dialog\n"
+"\t\t * the signal handler.  It is emitted when the dialog's\n"
+"\t\t * OK button is clicked.\n"
+"\t\t */\n"
+"\t\tdialog.response.connect (on_response);\n"
+"\n"
+"\t\t/* Show the dialog and all the widgets. */\n"
+"\t\tdialog.show_all ();\n"
+"\t}\n"
+"\n"
+"\t/* Signal handler for the 'response' signal of the dialog. */\n"
+"        void on_response (Gtk.Dialog dialog, int response_id) {\n"
+"\n"
+"                /* To see the int value of the ResponseType. This is only\n"
+"\t\t * for demonstration purposes.*/\n"
+"                print (\"response is %d\\n\", response_id);\n"
+"\n"
+"\t\t/* This causes the dialog to be destroyed. */\n"
+"                dialog.destroy ();\n"
+"        }\n"
+"\n"
+"}\n"
+"\n"
+"/* This is the application. */\n"
+"public class MyApplication : Gtk.Application {\n"
+"\n"
+"\t/* The constructore of the application. */\n"
+"\tinternal MyApplication () {\n"
+"\t\tObject (application_id: \"org.example.MyApplication\");\n"
+"\t}\n"
+"\n"
+"\t/* Override the 'activate' signal of GLib.Application. */\n"
+"\tprotected override void activate () {\n"
+"\n"
+"\t\t/* Create a window for the this application and show it. */\n"
+"\t\tnew MyWindow (this).show ();\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* The main function creates and runs the application. */\n"
+"public int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
+msgstr ""
+"\n"
+"/* A window in the application. */\n"
+"public class MyWindow : Gtk.ApplicationWindow {\n"
+"\n"
+"\t/* Constructor */\n"
+"\tinternal MyWindow (MyApplication app) {\n"
+"\t\tObject (application: app, title: \"GNOME Button\");\n"
+"\n"
+"\t\tthis.window_position = Gtk.WindowPosition.CENTER;\n"
+"\t\tthis.set_default_size (250,50);\n"
+"\n"
+"\t\tvar button = new Gtk.Button.with_label (\"Click Me\");\n"
+"\n"
+"\t\t/* Connect the button's \"clicked\" signal to\n"
+"\t\t * the signal handler (aka. this.callback function).\n"
+"\t\t */\n"
+"\t\tbutton.clicked.connect (this.on_button_click);\n"
+"\n"
+"\t\t/* Add the button to this window and show it. */\n"
+"\t\tthis.add (button);\n"
+"\t\tbutton.show ();\n"
+"\t}\n"
+"\n"
+"\t/* The signal handler for the buttons 'clicked' signal. */\n"
+"\tvoid on_button_click (Gtk.Button button) {\n"
+"\t\tvar dialog = new Gtk.Dialog.with_buttons (\"A Gtk+ Dialog\", this,\n"
+"                                                          Gtk.DialogFlags.MODAL,\n"
+"                                                          Gtk.Stock.OK,\n"
+"                                                          Gtk.ResponseType.OK, null);\n"
+"\n"
+"\t\tvar content_area = dialog.get_content_area ();\n"
+"\t\tvar label = new Gtk.Label (\"This demonstrates a dialog with a label\");\n"
+"\n"
+"\t\tcontent_area.add (label);\n"
+"\n"
+"\t\t/* Connect the 'response' signal of the dialog\n"
+"\t\t * the signal handler.  It is emitted when the dialog's\n"
+"\t\t * OK button is clicked.\n"
+"\t\t */\n"
+"\t\tdialog.response.connect (on_response);\n"
+"\n"
+"\t\t/* Show the dialog and all the widgets. */\n"
+"\t\tdialog.show_all ();\n"
+"\t}\n"
+"\n"
+"\t/* Signal handler for the 'response' signal of the dialog. */\n"
+"        void on_response (Gtk.Dialog dialog, int response_id) {\n"
+"\n"
+"                /* To see the int value of the ResponseType. This is only\n"
+"\t\t * for demonstration purposes.*/\n"
+"                print (\"response is %d\\n\", response_id);\n"
+"\n"
+"\t\t/* This causes the dialog to be destroyed. */\n"
+"                dialog.destroy ();\n"
+"        }\n"
+"\n"
+"}\n"
+"\n"
+"/* This is the application. */\n"
+"public class MyApplication : Gtk.Application {\n"
+"\n"
+"\t/* The constructore of the application. */\n"
+"\tinternal MyApplication () {\n"
+"\t\tObject (application_id: \"org.example.MyApplication\");\n"
+"\t}\n"
+"\n"
+"\t/* Override the 'activate' signal of GLib.Application. */\n"
+"\tprotected override void activate () {\n"
+"\n"
+"\t\t/* Create a window for the this application and show it. */\n"
+"\t\tnew MyWindow (this).show ();\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* The main function creates and runs the application. */\n"
+"public int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
+
+#: C/dialog.vala.page:31(item/p)
+msgid ""
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Dialog.html\";>Gtk.Dialog</"
+"link>"
+msgstr ""
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Dialog.html\";>Gtk.Dialog</"
+"link>"
+
+#: C/dialog.vala.page:32(item/p)
+msgid ""
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Dialog.Dialog.with_buttons.";
+"html\">Gtk.Dialog.with_buttons</link>"
+msgstr ""
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Dialog.Dialog.with_buttons.";
+"html\">Gtk.Dialog.with_buttons</link>"
+
+#: C/dialog.vala.page:33(item/p) C/label.vala.page:32(item/p)
+msgid ""
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Label.html\";>Gtk.Label</"
+"link>"
+msgstr ""
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Label.html\";>Gtk.Label</"
+"link>"
+
+#: C/dialog.vala.page:34(item/p)
+msgid ""
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Dialog.get_content_area.html";
+"\">get_content_area</link>"
+msgstr ""
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Dialog.get_content_area.html";
+"\">get_content_area</link>"
+
+#: C/documentation.page:19(page/title)
+msgid "Help develop"
+msgstr "ÎÎÎÎÎÎÎ ÏÏÎÎ ÎÎÎÏÏÏÎÎ"
+
+#: C/documentation.page:20(page/p)
+msgid ""
+"The <app>GNOME Developer Tutorials</app> are developed and maintained by a "
+"volunteer community. You are welcome to participate."
+msgstr ""
+"ÎÎ <app>ÎÎÎÎÎÎÏÎ ÎÎÎÏÏÏÎÎÏ ÏÎÏ GNOME</app> ÎÎÎÏÏÏÏÏÎÎÏÎÎ ÎÎÎ ÏÏÎÏÎÏÎÏÎÏÎÎ "
+"ÎÏÏ ÎÎÎ ÎÎÎÎÎÎÏÎÎÎ ÎÎÎÎÏÏÎÏÎ. ÎÎÏÎÏÏÎ ÎÎÎÎÎÎÏÎÏÎÎÎÎÎ ÎÎ ÏÏÎÎÎÏÎÏÏÎÏÎ."
+
+#: C/documentation.page:23(page/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 ""
+"ÎÎÎ ÎÎÎÎÏÎ ÎÎ <link href=\"https://live.gnome.org/DocumentationProject/Tasks/";
+"DeveloperDocs\">ÎÎÎÎÎÏÎÏÎ ÏÏÎÎ ÎÎÎÏÏÏÎÎ ÏÏÎ <app>ÎÎÎÎÎÎÏÏÎ ÎÎÎÏÏÏÎÎÏ ÏÎÏ "
+"GNOME </app></link>, ÎÏÎÏÎÎÏÎ ÎÎ ÎÏÎÎÏÎ ÏÎ ÎÏÎÏÎ ÎÎ ÏÎÏÏ ÏÏÎÎÏÎÎÎÎÏÎÏÏÎÏ "
+"ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ <link href=\"https://cbe005.chat.mibbit.com/?url=irc%3A%2F";
+"%2Firc.gnome.org%2Fdocs\">irc</link>, Î ÏÎ <link href=\"http://mail.gnome.";
+"org/mailman/listinfo/gnome-doc-devel-list\">ÎÎÏÏÎ ÏÎÏÏÎÏÎÎÎÎÎÏ</link> ÎÎÏ."
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/entry.c.page:22(media) C/entry.js.page:21(media)
+#: C/entry.py.page:26(media) C/entry.vala.page:21(media)
+msgctxt "_"
+msgid "external ref='media/entry.png' md5='8a828cffdcbaa4bad83342e109f28cc8'"
+msgstr "external ref='media/entry.png' md5='8a828cffdcbaa4bad83342e109f28cc8'"
+
+#: C/entry.c.page:7(info/title)
+msgctxt "text"
+msgid "Entry (C)"
+msgstr "ÎÎÏÎÏÏÏÎÏÎ (C)"
+
+#: C/entry.c.page:17(info/desc) C/entry.py.page:22(info/desc)
+#: C/entry.vala.page:17(info/desc)
+msgid "A single line text entry field"
+msgstr "ÎÎÎ ÏÎÎÎÎ ÎÎÏÎÏÏÏÎÏÎÏ ÎÎÎÎÎÎÎÏ ÎÎÎÎÎÎÎÎÏ ÎÏÎÎÎÎÏ"
+
+#: C/entry.c.page:20(page/title) C/entry.js.page:20(page/title)
+#: C/entry.py.page:25(page/title) C/entry.vala.page:20(page/title)
+msgid "Entry"
+msgstr "ÎÎÏÎÏÏÏÎÏÎ"
+
+#: C/entry.c.page:23(page/p) C/entry.vala.page:22(page/p)
+msgid "This application greets you in the terminal."
+msgstr "ÎÏÏÎ Î ÎÏÎÏÎÎÎÎ ÏÎÏ ÏÏÎÎÎÏÎÏÎÎ ÏÏÎ ÏÎÏÎÎÏÎÎÏ."
+
+#: C/entry.c.page:25(page/code)
+#, no-wrap
+msgid ""
+"\n"
+"#include &lt;gtk/gtk.h&gt;\n"
+"\n"
+"\n"
+"\n"
+"/*This is the callback function. It is a handler function \n"
+"which reacts to the signal. In this case, it will grab the \n"
+"text input from the entry box and print out a line to the user.*/\n"
+"static void\n"
+"on_activate (GtkEntry *entry,\n"
+"             gpointer  user_data)\n"
+"{\n"
+"  const char *name;\n"
+"  name = gtk_entry_get_text (entry);\n"
+"\n"
+"  g_print (\"\\nHello %s!\\n\\n\", name);\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"static void\n"
+"activate (GtkApplication *app,\n"
+"          gpointer        user_data)\n"
+"{\n"
+"  GtkWidget *window;\n"
+"  GtkWidget *entry_box;\n"
+"\n"
+"  /*Create a window with a title, a default size, \n"
+"  and a set border width*/\n"
+"  window = gtk_application_window_new (app);\n"
+"  gtk_window_set_title (GTK_WINDOW (window), \"What is your name?\");\n"
+"  gtk_window_set_default_size (GTK_WINDOW (window), 300, 100);\n"
+"  gtk_container_set_border_width (GTK_CONTAINER (window), 10);\n"
+"\n"
+"  /*Create a new entry box, and add it to the window*/\n"
+"  entry_box = gtk_entry_new ();\n"
+"  gtk_container_add (GTK_CONTAINER (window), entry_box);\n"
+"\n"
+"  /*Connecting the activate signal to the callback*/\n"
+"  g_signal_connect (GTK_ENTRY (entry_box), \"activate\", \n"
+"                    G_CALLBACK (on_activate), NULL);\n"
+"\n"
+"  gtk_widget_show_all (window);\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"int\n"
+"main (int argc, char **argv)\n"
+"{\n"
+"  GtkApplication *app;\n"
+"  int status;\n"
+"\n"
+"  app = gtk_application_new (\"org.gtk.example\", G_APPLICATION_FLAGS_NONE);\n"
+"  g_signal_connect (app, \"activate\", G_CALLBACK (activate), NULL);\n"
+"  status = g_application_run (G_APPLICATION (app), argc, argv);\n"
+"  g_object_unref (app);\n"
+"\n"
+"  return status;\n"
+"}\n"
+msgstr ""
+"\n"
+"#include &lt;gtk/gtk.h&gt;\n"
+"\n"
+"\n"
+"\n"
+"/*This is the callback function. It is a handler function \n"
+"which reacts to the signal. In this case, it will grab the \n"
+"text input from the entry box and print out a line to the user.*/\n"
+"static void\n"
+"on_activate (GtkEntry *entry,\n"
+"             gpointer  user_data)\n"
+"{\n"
+"  const char *name;\n"
+"  name = gtk_entry_get_text (entry);\n"
+"\n"
+"  g_print (\"\\nHello %s!\\n\\n\", name);\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"static void\n"
+"activate (GtkApplication *app,\n"
+"          gpointer        user_data)\n"
+"{\n"
+"  GtkWidget *window;\n"
+"  GtkWidget *entry_box;\n"
+"\n"
+"  /*Create a window with a title, a default size, \n"
+"  and a set border width*/\n"
+"  window = gtk_application_window_new (app);\n"
+"  gtk_window_set_title (GTK_WINDOW (window), \"What is your name?\");\n"
+"  gtk_window_set_default_size (GTK_WINDOW (window), 300, 100);\n"
+"  gtk_container_set_border_width (GTK_CONTAINER (window), 10);\n"
+"\n"
+"  /*Create a new entry box, and add it to the window*/\n"
+"  entry_box = gtk_entry_new ();\n"
+"  gtk_container_add (GTK_CONTAINER (window), entry_box);\n"
+"\n"
+"  /*Connecting the activate signal to the callback*/\n"
+"  g_signal_connect (GTK_ENTRY (entry_box), \"activate\", \n"
+"                    G_CALLBACK (on_activate), NULL);\n"
+"\n"
+"  gtk_widget_show_all (window);\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"int\n"
+"main (int argc, char **argv)\n"
+"{\n"
+"  GtkApplication *app;\n"
+"  int status;\n"
+"\n"
+"  app = gtk_application_new (\"org.gtk.example\", G_APPLICATION_FLAGS_NONE);\n"
+"  g_signal_connect (app, \"activate\", G_CALLBACK (activate), NULL);\n"
+"  status = g_application_run (G_APPLICATION (app), argc, argv);\n"
+"  g_object_unref (app);\n"
+"\n"
+"  return status;\n"
+"}\n"
+
+#: C/entry.js.page:7(info/title)
+msgctxt "text"
+msgid "Entry (JavaScript)"
+msgstr "ÎÎÏÎÏÏÏÎÏÎ (JavaScript)"
+
+#: C/entry.js.page:17(info/desc)
+msgid "A single-line text entry field"
+msgstr "ÎÎÎ ÏÎÎÎÎ ÎÎÏÎÏÏÏÎÏÎÏ ÎÎÎÎÎÎÎÏ ÎÎÎÎÏ ÎÏÎÎÎÎÏ"
+
+#: C/entry.js.page:22(page/p)
+msgid "This application greets you by name through a pop-up window."
+msgstr "ÎÏÏÎ Î ÎÏÎÏÎÎÎÎ ÏÎÏ ÏÎÎÏÎÏÎ ÎÎ ÏÎ ÏÎÎÎÎ ÎÎÏÎ ÎÏÏ ÎÎÎÎÏÏÎÎÎÎ ÏÎÏÎÎÏÏÎ."
+
+#: C/entry.js.page:24(page/code)
+#, no-wrap
+msgid ""
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gio = imports.gi.Gio;\n"
+"const GLib = imports.gi.GLib;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"const EntryExample = new Lang.Class({\n"
+"    Name: 'Entry Example',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application({\n"
+"            application_id: 'org.example.jsentry',\n"
+"            flags: Gio.ApplicationFlags.FLAGS_NONE\n"
+"        });\n"
+"\n"
+"    // Connect 'activate' and 'startup' signals to the callback functions\n"
+"    this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"    this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents windows when active\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function() {\n"
+"        this._buildUI ();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function() {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            default_height: 100,\n"
+"            default_width: 300,\n"
+"            border_width: 10,\n"
+"            title: \"What is your name?\"});\n"
+"\n"
+"        // Create the text entry box\n"
+"        this.entry = new Gtk.Entry ();\n"
+"        this._window.add(this.entry);\n"
+"\n"
+"        // Connect the text entry box to a function that responds to what you type in\n"
+"        this.entry.connect(\"activate\", Lang.bind (this, this._hello));\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    _hello: function() {\n"
+"\n"
+"        // Create a popup dialog to greet the person who types in their name\n"
+"        this._greeter = new Gtk.MessageDialog ({\n"
+"            transient_for: this._window,\n"
+"            modal: true,\n"
+"            text: \"Hello, \" + this.entry.get_text() + \"!\",\n"
+"            message_type: Gtk.MessageType.OTHER,\n"
+"            buttons: Gtk.ButtonsType.OK,\n"
+"        });\n"
+"\n"
+"        // Show the popup dialog\n"
+"        this._greeter.show();\n"
+"\n"
+"        // Bind the OK button to the function that closes the popup\n"
+"        this._greeter.connect (\"response\", Lang.bind(this, this._okClicked));\n"
+"    },\n"
+"\n"
+"    _okClicked: function () {\n"
+"        this._greeter.destroy();\n"
+"    }\n"
+"\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new EntryExample ();\n"
+"app.application.run (ARGV);\n"
+msgstr ""
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gio = imports.gi.Gio;\n"
+"const GLib = imports.gi.GLib;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"const EntryExample = new Lang.Class({\n"
+"    Name: 'Entry Example',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application({\n"
+"            application_id: 'org.example.jsentry',\n"
+"            flags: Gio.ApplicationFlags.FLAGS_NONE\n"
+"        });\n"
+"\n"
+"    // Connect 'activate' and 'startup' signals to the callback functions\n"
+"    this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"    this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents windows when active\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function() {\n"
+"        this._buildUI ();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function() {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            default_height: 100,\n"
+"            default_width: 300,\n"
+"            border_width: 10,\n"
+"            title: \"What is your name?\"});\n"
+"\n"
+"        // Create the text entry box\n"
+"        this.entry = new Gtk.Entry ();\n"
+"        this._window.add(this.entry);\n"
+"\n"
+"        // Connect the text entry box to a function that responds to what you type in\n"
+"        this.entry.connect(\"activate\", Lang.bind (this, this._hello));\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    _hello: function() {\n"
+"\n"
+"        // Create a popup dialog to greet the person who types in their name\n"
+"        this._greeter = new Gtk.MessageDialog ({\n"
+"            transient_for: this._window,\n"
+"            modal: true,\n"
+"            text: \"Hello, \" + this.entry.get_text() + \"!\",\n"
+"            message_type: Gtk.MessageType.OTHER,\n"
+"            buttons: Gtk.ButtonsType.OK,\n"
+"        });\n"
+"\n"
+"        // Show the popup dialog\n"
+"        this._greeter.show();\n"
+"\n"
+"        // Bind the OK button to the function that closes the popup\n"
+"        this._greeter.connect (\"response\", Lang.bind(this, this._okClicked));\n"
+"    },\n"
+"\n"
+"    _okClicked: function () {\n"
+"        this._greeter.destroy();\n"
+"    }\n"
+"\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new EntryExample ();\n"
+"app.application.run (ARGV);\n"
+
+#: C/entry.js.page:31(item/p)
+msgid ""
+"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.Entry.html";
+"\">Gtk.Entry</link>"
+msgstr ""
+"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.Entry.html";
+"\">Gtk.Entry</link>"
+
+#: C/entry.py.page:7(info/title)
+msgctxt "text"
+msgid "Entry (Python)"
+msgstr "ÎÎÏÎÏÏÏÎÏÎ (Python)"
+
+#: C/entry.py.page:18(credit/name) C/label.py.page:18(credit/name)
+#: C/model-view-controller.py.page:14(credit/name)
+#: C/properties.py.page:14(credit/name)
+#: C/signals-callbacks.py.page:14(credit/name)
+#: C/strings.py.page:14(credit/name) C/textview.py.page:14(credit/name)
+#: C/toolbar_builder.py.page:26(credit/name)
+msgid "Sebastian PÃlsterl"
+msgstr "Sebastian PÃlsterl"
+
+#: C/entry.py.page:27(page/p)
+msgid "This application greets you in the terminal with the name you provide."
+msgstr "ÎÏÏÎ Î ÎÏÎÏÎÎÎÎ ÏÎÏ ÏÎÎÏÎÏÎ ÏÏÎÎ ÏÎÏÎÎÏÎÎÏ ÎÎ ÏÎ ÏÎÎÎÎ ÏÎÏ ÎÏÏÎÏÎ."
+
+#: C/entry.py.page:33(section/code)
+#, no-wrap
+msgid ""
+"from gi.repository import Gtk\n"
+"import sys\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"What is your name?\", application=app)\n"
+"        self.set_default_size(300, 100)\n"
+"        self.set_border_width(10)\n"
+"\n"
+"        # a single line entry\n"
+"        name_box = Gtk.Entry()\n"
+"        # emits a signal when the Enter key is pressed, connected to the\n"
+"        # callback function cb_activate\n"
+"        name_box.connect(\"activate\", self.cb_activate)\n"
+"\n"
+"        # add the Gtk.Entry to the window\n"
+"        self.add(name_box)\n"
+"\n"
+"    # the content of the entry is used to write in the terminal\n"
+"    def cb_activate(self, entry):\n"
+"        # retrieve the content of the widget\n"
+"\t\tname = entry.get_text()\n"
+"\t\t# print it in a nice form in the terminal\n"
+"\t\tprint \"Hello \" + name + \"!\"\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
+msgstr ""
+"from gi.repository import Gtk\n"
+"import sys\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"What is your name?\", application=app)\n"
+"        self.set_default_size(300, 100)\n"
+"        self.set_border_width(10)\n"
+"\n"
+"        # a single line entry\n"
+"        name_box = Gtk.Entry()\n"
+"        # emits a signal when the Enter key is pressed, connected to the\n"
+"        # callback function cb_activate\n"
+"        name_box.connect(\"activate\", self.cb_activate)\n"
+"\n"
+"        # add the Gtk.Entry to the window\n"
+"        self.add(name_box)\n"
+"\n"
+"    # the content of the entry is used to write in the terminal\n"
+"    def cb_activate(self, entry):\n"
+"        # retrieve the content of the widget\n"
+"\t\tname = entry.get_text()\n"
+"\t\t# print it in a nice form in the terminal\n"
+"\t\tprint \"Hello \" + name + \"!\"\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
+
+#: C/entry.py.page:37(section/title)
+msgid "Useful methods for an Entry widget"
+msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÎÏÎÎÏÎÎÏ"
+
+#: C/entry.py.page:38(section/p)
+msgid ""
+"For an explanation of signals and callback functions, see <link xref="
+"\"signals-callbacks.py\">this page</link>. Some of the signals that a Gtk."
+"Entry widget can emit are: <code>\"activate\"</code> (emitted when the user "
+"activates the Entry key); <code>\"backspace\"</code> (emitted when the user "
+"activates the Backspace or Shift-Backspace keys); <code>\"copy-clipboard\"</"
+"code> (Ctrl-c and Ctrl-Insert); <code>\"paste-clipboard\"</code> (Ctrl-v and "
+"Shift-Insert); <code>\"delete-from-cursor\"</code> (Delete, for deleting a "
+"character; Ctrl-Delete, for deleting a word); <code>\"icon-press\"</code> "
+"(emitted when the user clicks an activable icon); <code>\"icon-release\"</"
+"code> (emitted on the button release from a mouse click over an activable "
+"icon); <code>\"insert-at-cursor\"</code> (emitted when the user initiates "
+"the insertion of a fixed string at the cursor); <code>\"move-cursor\"</code> "
+"(emitted when the user initiates a cursor movement); <code>\"populate-popup"
+"\"</code> (emitted before showing the context menu of the entry; it can be "
+"used to add items to it)."
+msgstr ""
+"ÎÎÎ ÎÎÎ ÎÎÎÎÎÏÎ ÏÏÎ ÏÎÎÎÏÏÎ ÎÎÎ ÏÏÎ ÏÏÎÎÏÏÎÏÎÏÎ ÎÏÎÎÎÎÎÎÏÎÏ, ÎÎÎÏÎ <link "
+"xref=\"signals-callbacks.py\">ÎÏÏÎÎ ÏÎ ÏÎÎÎÎÎ</link>. ÎÎÏÎÎÎ ÎÏÏ ÏÎ ÏÎÎÎÏÎ "
+"ÏÎÏ ÏÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ Gtk.Entry ÎÏÎÏÎÎ ÎÎ ÎÎÏÎÎÏÎÎ ÎÎÎÎÎ: <code>\"activate"
+"\"</code> (ÎÎÏÎÎÏÏÎÎÎÎ ÏÏÎÎ Î ÏÏÎÏÏÎÏ ÎÎÎÏÎÎÏÎÎÎÎ ÏÎ ÏÎÎÎÏÏÎ ÎÎÏÎÎÏÎÎÏ)Â "
+"<code>\"backspace\"</code> (ÎÎÏÎÎÏÏÎÎÎÎ ÏÏÎÎ Î ÏÏÎÏÏÎÏ ÎÎÎÏÎÎÏÎÎÎÎ ÏÎÎ "
+"ÎÏÎÏÎÎÎÎÎÎÏÎÏÎ Î ÏÎ ÏÎÎÎÏÏÎ Shift-ÎÏÎÏÎÎÎÎÎÎÏÎÏÎ)Â <code>\"copy-clipboard\"</"
+"code> (Ctrl-c ÎÎÎ Ctrl-Insert); <code>\"paste-clipboard\"</code> (Ctrl-v ÎÎÎ "
+"Shift-Insert); <code>\"delete-from-cursor\"</code> (ÎÎÎÎÏÎÏÎ, ÎÎÎ ÎÎ "
+"ÎÎÎÎÏÏÏÎÎ ÎÎÎÏ ÏÎÏÎÎÏÎÏÎÏÂ Ctrl-ÎÎÎÎÏÎÏÎ, ÎÎÎ ÎÎ ÎÎÎÎÏÎÏÏÎÎ ÎÎÎ ÎÎÎÎ)Â <code>"
+"\"icon-press\"</code> (ÎÎÏÎÎÏÏÎÎÎÎ ÏÏÎÎ Î ÏÏÎÏÏÎÏ ÏÎÏÎ ÎÎÎ ÎÎÎÏÎÎÏÎÎÎÏÎÎÎ "
+"ÎÎÎÎÎÎÎÎÎ)Â <code>\"icon-release\"</code> (ÎÎÏÎÎÏÏÎÎÎÎ ÎÎ ÏÎÎ ÎÏÎÎÎÏÎÎÏÏÏÎ "
+"ÏÎÏ ÎÎÏÎÏÎÎÏ ÎÏÏ ÎÎÎ ÏÎÏÎÎÎ ÏÎÏ ÏÎÎÏÎÎÎÎÏ ÏÎÎÏ ÎÏÏ ÎÎÎ ÎÎÎÏÎÎÏÎÎÎÏÎÎÎ "
+"ÎÎÎÎÎÎÎÎÎ)Â <code>\"insert-at-cursor\"</code> (ÎÎÏÎÎÏÏÎÎÎÎ ÏÏÎÎ Î ÏÏÎÏÏÎÏ "
+"ÎÏÏÎÎÎÏÎÎÎÎ ÏÎÎ ÎÎÏÎÎÏÎÎ ÎÎÎÏ ÏÏÎÎÎÏÎÏ ÏÏÎÎÎÎÎÏÎÎÏÎÏ ÏÏÎÎ ÎÏÎÎÎÎ)Â <code>"
+"\"move-cursor\"</code> (ÎÎÏÎÎÏÏÎÎÎÎ ÏÏÎÎ Î ÏÏÎÏÏÎÏ ÎÏÏÎÎÎÏÎÎÎÎ ÎÎÎ "
+"ÎÎÏÎÎÎÎÎÏÎ ÎÏÎÎÎÎ)Â <code>\"populate-popup\"</code> (ÎÎÏÎÎÏÏÎÎÎÎ ÏÏÎÎ ÏÎÎ "
+"ÏÏÎÎÎÎÎ ÏÎÏ ÎÎÎÎÏ ÏÎÏÎÎÏÎÎÎÎÎÏ ÏÎÏ ÎÎÏÎÎÏÎÎÏÂ ÎÏÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÎÎ ÎÎÎ "
+"ÏÏÎÏÎÎÎÎ ÏÏÎÎÏÎÎÏÎ ÏÎ ÎÏÏÎ)."
+
+#: C/entry.py.page:40(item/p)
+msgid ""
+"<code>get_buffer()</code> and <code>set_buffer(buffer)</code>, where "
+"<code>buffer</code> is a Gtk.EntryBuffer object, can be used to get and set "
+"the buffer for the entry."
+msgstr ""
+"<code>get_buffer()</code> ÎÎÎ <code>set_buffer(buffer)</code>, ÏÏÎÏ "
+"<code>buffer</code> ÎÎÎÎÎ ÎÎÎ ÎÎÏÎÎÎÎÎÎÎÎ Gtk.EntryBuffer, ÎÏÎÏÎÏÎ ÎÎ "
+"ÏÏÎÏÎÎÎÏÎÎÎÎÎÏÎ ÎÎÎ ÎÎÏÎ ÎÎÎ ÎÏÎÏÎÏ ÏÎÏ ÎÎÎÎÎÎÎÏÎÏ ÎÎÎÎÎÏ ÎÎÎ ÏÎÎ ÎÎÏÎÎÏÎÎ."
+
+#: C/entry.py.page:41(item/p)
+msgid ""
+"<code>get_text()</code> and <code>set_text(\"some text\")</code> can be used "
+"to get and set the content for the entry."
+msgstr ""
+"<code>get_text()</code> ÎÎÎ <code>set_text(\"some text\")</code> ÎÏÎÏÎÏÎ ÎÎ "
+"ÏÏÎÏÎÎÎÏÎÎÎÎÎÏÎ ÎÎÎ ÎÎÏÎ ÎÎÎ ÎÏÎÏÎÏ ÏÎÏ ÏÎÏÎÎÏÎÎÎÎÎÏ ÎÎÎ ÏÎÎ ÎÎÏÎÎÏÎÎ."
+
+#: C/entry.py.page:42(item/p)
+msgid "<code>get_text_length()</code> is self-explanatory."
+msgstr "<code>get_text_length()</code> ÎÎÎÎÎ ÎÏÏÎÎÏÎÏÎ."
+
+#: C/entry.py.page:43(item/p)
+msgid ""
+"<code>get_text_area()</code> gets the area where the entry's text is drawn."
+msgstr ""
+"<code>get_text_area()</code> ÎÎÏÎÏÎÎ ÏÎÎ ÏÎÏÎÎÏÎ ÏÏÎÏ ÏÎ ÎÎÎÎÎÎÎ ÎÎÏÎÎÏÎÎÏ "
+"ÏÏÏÎÏÎÎ."
+
+#: C/entry.py.page:44(item/p)
+msgid ""
+"If we set <code>set_visibility(False)</code> the characters in the entry are "
+"displayed as the invisible char. This is the best available in the current "
+"font, but it can be changed with <code>set_invisible_char(ch)</code>, where "
+"<code>ch</code> is a Unicode charcater. The latter method is reversed by "
+"<code>unset_invisbile_char()</code>."
+msgstr ""
+"ÎÎÎ ÎÏÎÎÎÏÎÎ <code>set_visibility(False)</code> ÎÎ ÏÎÏÎÎÏÎÏÎÏ ÏÏÎÎ "
+"ÎÎÏÎÏÏÏÎÏÎ ÎÎÏÎÎÎÎÎÎÏÎÎ ÏÏ Î ÎÏÏÎÏÎÏ ÏÎÏÎÎÏÎÏÎÏ. ÎÏÏÏ ÎÎÎÎÎ ÎÎÎÏÏÎÏÎ "
+"ÎÎÎÎÎÏÎÎÎ ÏÏÎÎ ÏÏÎÏÎÏÏÎ ÎÏÎÎÎÎÏÎÏÎÎÏÎ, ÎÎÎÎ ÎÏÎÏÎÎ ÎÎ ÎÎÎÎÏÎÎÎ ÎÎ "
+"<code>set_invisible_char(ch)</code>, ÏÏÎÏ <code>ch</code> ÎÎÎÎÎ ÎÎÎÏ "
+"ÏÎÏÎÎÏÎÏÎÏ Unicode. Î ÏÎÎÎÏÏÎÎÎ ÎÎÎÎÎÎÏ ÎÎÏÎÏÏÏÎÏÎÏÎÎ ÎÎ ÏÎÎ "
+"<code>unset_invisbile_char()</code>."
+
+#: C/entry.py.page:45(item/p)
+msgid ""
+"<code>set_max_length(int)</code>, where <code>int</code> is an integer, "
+"truncates every entry longer than <code>int</code> to have the desired "
+"maximum length."
+msgstr ""
+"<code>set_max_length(int)</code>, ÏÏÎÏ <code>int</code> ÎÎÎÎÎ ÎÎÎÏ ÎÎÎÏÎÎÎÏ, "
+"ÏÎÏ ÏÎÏÎÎÏÏÏÎÎ ÎÎÎÎ ÎÎÏÎÏÏÏÎÏÎ ÎÎÎÎÎÏÏÎÏÎ ÎÏÏ <code>int</code> ÎÎÎ ÎÎ ÎÏÎÎ "
+"ÏÎ ÎÏÎÎÏÎÎÏÏ ÎÎÎÎÏÏÎ ÎÎÎÎÏ."
+
+#: C/entry.py.page:46(item/p)
+msgid ""
+"By default, if you press the Entry key the Gtk.Entry emits the signal <code>"
+"\"activate\"</code>. If you would like to activate the default widget for "
+"the window (set using <code>set_default(widget)</code> on the window), then "
+"use <code>set_activates_default(True)</code>."
+msgstr ""
+"ÎÏÏ ÏÏÎÎÏÎÎÎÎÎ, ÎÎÎ ÏÎÏÎÏÎÏÎ ÏÎ ÏÎÎÎÏÏÎ ÎÎÏÎÏÏÏÎÏÎÏ Î Gtk.Entry ÎÎÏÎÎÏÎÎ ÏÎ "
+"ÏÎÎÎ <code>\"activate\"</code>. ÎÎÎ ÎÎ ÎÎÎÎÏÎ ÎÎ ÎÎÎÏÎÎÏÎÎÎÏÎÏÎ ÏÎ "
+"ÏÏÎÎÏÎÎÎÎÎÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÎÎ ÏÎ ÏÎÏÎÎÏÏÎ (ÎÏÎÏÏÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎÎ "
+"<code>set_default(widget)</code> ÏÏÎ ÏÎÏÎÎÏÏÎ), ÎÏÎÎÏÎ ÏÏÎÏÎÎÎÏÎÎÎÏÏÎ "
+"<code>set_activates_default(True)</code>."
+
+#: C/entry.py.page:47(item/p)
+msgid "To set a frame around the entry: <code>set_has_frame(True)</code>."
+msgstr ""
+"ÎÎÎ ÏÎÎ ÎÏÎÏÎÏ ÎÎÏÏ ÏÎÎÎÏÎÎÏ ÎÏÏÏ ÎÏÏ ÏÎÎ ÎÎÏÎÏÏÏÎÏÎ: <code>set_has_frame"
+"(True)</code>."
+
+#: C/entry.py.page:48(item/p)
+msgid ""
+"<code>set_placeholder_text(\"some text\")</code> sets the text to be "
+"displayed in the entry when it is empty and unfocused."
+msgstr ""
+"Î <code>set_placeholder_text(\"some text\")</code> ÎÏÎÎÎÎ ÏÎ ÎÎÏÎÎÎÎÏÎÎÎÎ "
+"ÎÎÎÎÎÎÎ ÏÏÎÎ ÎÎÏÎÏÏÏÎÏÎ ÏÏÎÎ ÎÎÎÎÎ ÎÎÎÏ ÎÎÎ ÏÏÏÎÏ ÎÏÏÎÎÏÎ."
+
+#: C/entry.py.page:49(item/p)
+msgid ""
+"<code>set_overwrite_mode(True)</code> and <code>set_overwrite_mode(False)</"
+"code> are self-explanatory."
+msgstr ""
+"<code>set_overwrite_mode(True)</code> ÎÎÎ <code>set_overwrite_mode(False)</"
+"code> ÎÎÎÎÎ ÎÏÏÎÎÏÎÏÎ."
+
+#: C/entry.py.page:50(item/p)
+msgid ""
+"If we have <code>set_editable(False)</code> the user cannot edit the text in "
+"the widget."
+msgstr ""
+"ÎÎÎ ÎÏÎÏÎÎ <code>set_editable(False)</code> Î ÏÏÎÏÏÎÏ ÎÎÎ ÎÏÎÏÎÎ ÎÎ "
+"ÎÏÎÎÎÏÎÎÏÏÎÎ ÏÎ ÎÎÎÎÎÎÎ ÏÏÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ."
+
+#: C/entry.py.page:51(item/p)
+msgid ""
+"<code>set_completion(completion)</code>, where <code>completion</code> is a "
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkEntryCompletion.html";
+"\"><code>Gtk.EntryCompletion</code></link>, sets completion - or disables it "
+"if <code>completion</code> is <code>None</code>."
+msgstr ""
+"<code>set_completion(completion)</code>, ÏÏÎÏ <code>completion</code> ÎÎÎÎÎ "
+"ÎÎÎÏ <link href=\"http://developer.gnome.org/gtk3/unstable/";
+"GtkEntryCompletion.html\"><code>Gtk.EntryCompletion</code></link>, ÎÏÎÎÎÎ "
+"ÏÎÎ ÎÎÎÎÎÎÏÏÏÎ - Î ÏÎ ÎÏÎÎÎÏÎÎÏÎÎÎÎ ÎÎÎ Î <code>completion</code> ÎÎÎÎÎ "
+"<code>None</code>."
+
+#: C/entry.py.page:52(item/p)
+msgid ""
+"An Entry widget can display progress or activity information behind the "
+"text. We use <code>set_progress_fraction(fraction)</code>, where "
+"<code>fraction</code> is a <code>float</code> between <code>0.0</code> and "
+"<code>1.0</code> inclusive, to fill in the given fraction of the bar. We use "
+"<code>set_progress_pulse_step()</code> to set the fraction of total entry "
+"width to move the progress bouncing block for each call to "
+"<code>progress_pulse()</code>. The latter method indicates that some "
+"progress is made, and causes the progress indicator of the entry to enter "
+"\"activity mode\", where a block bounces back and forth. Each call to "
+"<code>progress_pulse()</code> causes the block to move by a little bit (the "
+"amount of movement per pulse is determined, as said before, by "
+"<code>set_progress_pulse_step()</code>)."
+msgstr ""
+"ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÎÏÎÏÏÏÎÏÎÏ ÎÏÎÏÎÎ ÎÎ ÎÎÏÎÎÎÏÎÎ ÏÏÏÎÎÎ Î ÏÎÎÏÎÏÎÏÎÎÏ "
+"ÎÏÎÏÏÎÏÎÏÏÎÏÎÏ ÏÎÏÏ ÎÏÏ ÏÎ ÎÎÎÎÎÎÎ. ÎÏÎÏÎÎÎÏÎÎÎÏÎÎ "
+"<code>set_progress_fraction(fraction)</code>, ÏÏÎÏ <code>fraction</code> "
+"ÎÎÎÎÎ ÎÎÎÏ <code>float</code> between <code>0.0</code> ÎÎÎ <code>1.0</code> "
+"ÏÏÎÏÎÏÎÎÎÎÎÎÎÏÎÎÎÎÏ, ÎÎÎ ÎÎ ÏÏÎÏÎÎÏÏÏÎÎ ÏÎ ÎÎÎÎÎÎÎÎ ÎÎÎÏÎÎ ÏÎÏ ÎÏÎÎÎÎÏ. "
+"ÎÏÎÏÎÎÎÏÎÎÎÏÎÎ <code>set_progress_pulse_step()</code> ÎÎÎ ÏÎÎ ÎÏÎÏÎÏ ÏÎÏ "
+"ÎÎÎÏÎÎÏÎÏ ÏÎÏ ÏÏÎÎÎÎÎÎÏ ÏÎÎÏÎÏÏ ÎÎÏÎÏÏÏÎÏÎÏ ÎÎÎ ÎÎ ÎÎÏÎÎÎÎÎÏÎÏÎÎ ÏÎÎ ÎÎÎÎÎ "
+"ÎÎÎÏÎÎÎÏÎÏ ÏÏÎÏÎÎÏ ÎÎÎ ÎÎÎÎ ÎÎÎÏÎ ÏÏÎÎ <code>progress_pulse()</code>. Î "
+"ÏÎÎÎÏÏÎÎÎ ÎÎÎÎÎÎÏ ÎÎÎÏÎÎÎ ÏÏÎ ÎÎÏÎÎÎ ÏÏÏÎÎÎÏ ÎÏÎÎ ÎÎÎÎÎ ÎÎÎ ÏÏÎÎÎÎÎÎ ÏÎÎ "
+"ÎÎÎÎÏÎ ÏÏÎÏÎÎÏ ÏÎÏ ÎÎÏÎÏÏÏÎÏÎÏ ÎÎ ÎÏÎÎ ÏÏÎÎ \"activity mode\", ÏÏÎÏ ÎÎÎ "
+"ÎÎÎÎÎ ÎÎÎÏÎÎÎ ÏÎÏÏ ÎÎÎ ÎÏÏÎÏ. ÎÎÎÎ ÎÎÎÏÎ ÏÏÎÎ <code>progress_pulse()</code> "
+"ÏÏÎÎÎÎÎÎ ÏÎÎ ÎÎÏÎÎÎÎÎÏÎ ÏÎÏ ÎÎÎÎÎÏ ÎÎÎÎ (Î ÏÎÏÏÏÎÏÎ ÏÎÏ ÎÎÏÎÎÎÎÎÏÎÏ ÎÎÎ "
+"ÏÎÎÎÏ ÎÎÎÎÏÎÎÎÏÎÎ, ÏÏÏÏ ÎÎÏÏÎÎÎÎ ÏÏÎÎ, ÎÎÏÎ <code>set_progress_pulse_step()</"
+"code>)."
+
+#: C/entry.py.page:53(item/p)
+msgid ""
+"An Entry widget can also show icons. These icons can be activatable by "
+"clicking, can be set up as drag source and can have tooltips. To add an "
+"icon, use <code>set_icon_from_stock(icon_position, stock_id)</code>, or one "
+"of <code>set_icon_from_pixbuf(icon_position, pixbuf)</code>, "
+"<code>set_icon_from_icon_name(icon_position, icon_name)</code>, where "
+"<code>icon_position</code> is one of <code>Gtk.EntryIconPosition.PRIMARY</"
+"code> (to set the icon at the beginning of the entry) <code>Gtk."
+"EntryIconPosition.SECONDARY</code> (to set the icon at the end of the "
+"entry). To set a tooltip on an icon, use <code>set_icon_tooltip_text"
+"(\"tooltip text\")</code> or <code>set_icon_tooltip_markup(\"tooltip text in "
+"Pango markup language\")</code>."
+msgstr ""
+"ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÎÏÎÏÏÏÎÏÎÏ ÎÏÎÏÎÎ ÎÏÎÏÎÏ ÎÎ ÎÎÏÎÎÎÏÎÎ ÎÎÎÎÎÎÎÎÎ. ÎÏÏÎ "
+"ÏÎ ÎÎÎÎÎÎÎÎÎ ÏÎÏ ÎÏÎÏÎÏÎ ÎÎ ÎÎÎÏÎÎÏÎÎÎÎÎÏÎ ÎÎ ÎÎÎÎ, ÎÏÎÏÎÏÎ ÎÎ ÎÏÎÏÏÎÏÎ ÏÏ "
+"ÏÎÎÎ ÎÎÏÎÏÎÏÎÏ ÎÎÎ ÎÏÎÏÎÏÎ ÎÎ ÎÏÎÏÎ ÏÏÎÎÎÏÎÎÏ ÎÎÏÎÎÏ. ÎÎÎ ÏÎÎ ÏÏÎÏÎÎÎÎ ÎÎÏÏ "
+"ÎÎÎÎÎÎÎÎÎÏ, ÏÏÎÏÎÎÎÏÎÎÎÏÏÎ <code>set_icon_from_stock(icon_position, stock_id)"
+"</code>, Î ÎÎÎ ÎÏÏ ÏÎ <code>set_icon_from_pixbuf(icon_position, pixbuf)</"
+"code>, <code>set_icon_from_icon_name(icon_position, icon_name)</code>, ÏÏÎÏ "
+"<code>icon_position</code> ÎÎÎÎÎ ÎÎÎ ÎÏÏ <code>Gtk.EntryIconPosition."
+"PRIMARY</code> (ÎÎÎ ÏÎÎ ÎÏÎÏÎÏ ÏÎÏ ÎÎÎÎÎÎÎÎÎÏ ÏÏÎÎ ÎÏÏÎ ÏÎÏ ÎÎÏÎÏÏÏÎÏÎÏ) "
+"<code>Gtk.EntryIconPosition.SECONDARY</code> (ÎÎÎ ÏÎÎ ÎÏÎÏÎÏ ÏÎÏ ÎÎÎÎÎÎÎÎÎÏ "
+"ÏÏÎ ÏÎÎÎÏ ÏÎÏ ÎÎÏÎÏÏÏÎÏÎÏ). ÎÎÎ ÏÎÎ ÎÏÎÏÎÏ ÎÎÎÏ ÏÏÎÎÎÏÎÎÏ ÎÎÏÎÎÏ ÏÎ ÎÎÎ "
+"ÎÎÎÎÎÎÎÎÎ, ÏÏÎÏÎÎÎÏÎÎÎÏÏÎ <code>set_icon_tooltip_text(\"tooltip text\")</"
+"code> Î <code>set_icon_tooltip_markup(\"tooltip text in Pango markup language"
+"\")</code>."
+
+#: C/entry.py.page:61(item/p)
+msgid ""
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkEntry.html";
+"\">GtkEntry</link>"
+msgstr ""
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkEntry.html";
+"\">GtkEntry</link>"
+
+#: C/entry.vala.page:7(info/title)
+msgctxt "text"
+msgid "Entry (Vala)"
+msgstr "ÎÎÏÎÏÏÏÎÏÎ (Vala)"
+
+#: C/entry.vala.page:24(page/code)
+#, no-wrap
+msgid ""
+"/* A window in the application. */\n"
+"class MyWindow : Gtk.ApplicationWindow {\n"
+"\n"
+"\t/* Constructor */\n"
+"\tinternal MyWindow (MyApplication app) {\n"
+"\t\tObject (application: app, title: \"What is your name?\");\n"
+"\n"
+"\t\tvar name_box = new Gtk.Entry ();\n"
+"\n"
+"\t\t/* Connect to the signal handler. */\n"
+"\t\tname_box.activate.connect (this.on_activate);\n"
+"\t\tname_box.show ();\n"
+"\n"
+"\t\tthis.set_default_size (300, 100);\n"
+"\t\tthis.border_width = 10;\n"
+"\n"
+"\t\t/* Add the name_box to this window. */\n"
+"\t\tthis.add (name_box);\n"
+"\t}\n"
+"\n"
+"\t/* Signal handler (aka. callback function) for the 'activate'\n"
+"\t * signal of a Gtk.Entry.\n"
+"\t */\n"
+"\tvoid on_activate (Gtk.Entry entry) {\n"
+"\t\tname = entry.get_text ();\n"
+"\t\tprint (\"\\nHello \" + name + \"!\\n\\n\");\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* This is the application. */\n"
+"class MyApplication : Gtk.Application {\n"
+"\n"
+"\t/* Constructor for the application. */\n"
+"\tinternal MyApplication () {\n"
+"\t\tObject (application_id: \"org.example.MyApplication\");\n"
+"\t}\n"
+"\n"
+"\t/* Override the 'activate' signal of GLib.Application. */\n"
+"\tprotected override void activate () {\n"
+"\n"
+"\t\t/* Create a new window for this application\n"
+"\t\t * and show it. */\n"
+"\t\tnew MyWindow (this).show ();\n"
+"\t}\n"
+"\n"
+"}\n"
+"\n"
+"/* The main function creats and runs the application. */\n"
+"int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
+msgstr ""
+"/* A window in the application. */\n"
+"class MyWindow : Gtk.ApplicationWindow {\n"
+"\n"
+"\t/* Constructor */\n"
+"\tinternal MyWindow (MyApplication app) {\n"
+"\t\tObject (application: app, title: \"What is your name?\");\n"
+"\n"
+"\t\tvar name_box = new Gtk.Entry ();\n"
+"\n"
+"\t\t/* Connect to the signal handler. */\n"
+"\t\tname_box.activate.connect (this.on_activate);\n"
+"\t\tname_box.show ();\n"
+"\n"
+"\t\tthis.set_default_size (300, 100);\n"
+"\t\tthis.border_width = 10;\n"
+"\n"
+"\t\t/* Add the name_box to this window. */\n"
+"\t\tthis.add (name_box);\n"
+"\t}\n"
+"\n"
+"\t/* Signal handler (aka. callback function) for the 'activate'\n"
+"\t * signal of a Gtk.Entry.\n"
+"\t */\n"
+"\tvoid on_activate (Gtk.Entry entry) {\n"
+"\t\tname = entry.get_text ();\n"
+"\t\tprint (\"\\nHello \" + name + \"!\\n\\n\");\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* This is the application. */\n"
+"class MyApplication : Gtk.Application {\n"
+"\n"
+"\t/* Constructor for the application. */\n"
+"\tinternal MyApplication () {\n"
+"\t\tObject (application_id: \"org.example.MyApplication\");\n"
+"\t}\n"
+"\n"
+"\t/* Override the 'activate' signal of GLib.Application. */\n"
+"\tprotected override void activate () {\n"
+"\n"
+"\t\t/* Create a new window for this application\n"
+"\t\t * and show it. */\n"
+"\t\tnew MyWindow (this).show ();\n"
+"\t}\n"
+"\n"
+"}\n"
+"\n"
+"/* The main function creats and runs the application. */\n"
+"int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
+
+#: C/entry.vala.page:29(item/p)
+msgid ""
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Entry.html\";>Gtk.Entry</"
+"link>"
+msgstr ""
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Entry.html\";>Gtk.Entry</"
+"link>"
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/filechooserdialog.py.page:24(media)
+msgctxt "_"
+msgid ""
+"external ref='media/filechooserdialog_save.png' "
+"md5='3a7a3b71b9d3a36066857843b68ff27f'"
+msgstr ""
+"external ref='media/filechooserdialog_save.png' "
+"md5='3a7a3b71b9d3a36066857843b68ff27f'"
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/filechooserdialog.py.page:26(media)
+msgctxt "_"
+msgid ""
+"external ref='media/filechooserdialog_menu.png' "
+"md5='8a75f04127a70eba0ed68a9eb1d3bbca'"
+msgstr ""
+"external ref='media/filechooserdialog_menu.png' "
+"md5='8a75f04127a70eba0ed68a9eb1d3bbca'"
+
+#: C/filechooserdialog.py.page:7(info/title)
+msgctxt "text"
+msgid "FileChooserDialog (Python)"
+msgstr "FileChooserDialog (Python)"
+
+#: C/filechooserdialog.py.page:20(info/desc)
+msgid "A dialog suitable for \"Open\" and \"Save\" commands"
+msgstr "ÎÎÎÏ ÎÎÎÎÎÎÎÏ ÎÎÏÎÎÎÎÎÎÏ ÎÎÎ ÏÎÏ ÎÎÏÎÎÎÏ \"Open\" ÎÎÎ \"Save\""
+
+#: C/filechooserdialog.py.page:23(page/title)
+#: C/filechooserdialog.vala.page:23(page/title)
+msgid "FileChooserDialog"
+msgstr "FileChooserDialog"
+
+#: C/filechooserdialog.py.page:25(page/p)
+msgid ""
+"This FileChooserDialog saves a text document, which can be opened or written "
+"from scratch in a TextView (see below)."
+msgstr ""
+"ÎÏÏÏÏ Î FileChooserDialog ÎÏÎÎÎÎÎÏÎÎ ÎÎÎ ÎÎÎÏÎÏÎ ÎÎÎÎÎÎÎÏ, ÏÎÏ ÎÏÎÏÎÎ ÎÎ "
+"ÎÎÎÎÏÏÎÎ Î ÎÎ ÎÏÎÏÏÎÎ ÎÏÏ ÏÎÎ ÎÏÏÎ ÏÎ ÎÎÎ TextView (ÎÎÎÏÎ ÏÎÏÎÎÎÏÏ)."
+
+#: C/filechooserdialog.py.page:27(page/p)
+msgid "It is also possible to call a FileChooserDialog to open a new document."
+msgstr ""
+"ÎÎÎÎÎ ÎÏÎÏÎÏ ÏÎÎÎÎÏ ÎÎ ÎÎÎÎÎÏÎ ÎÎÎÎ FileChooserDialog ÎÎÎ ÎÎ ÎÎÎÎÎÎÏÎ ÎÎÎ "
+"ÎÎÎ ÎÎÎÏÎÏÎ."
+
+#: C/filechooserdialog.py.page:32(section/title)
+msgid "Steps to recreate the example"
+msgstr "ÎÎÎÎÏÎ ÎÎÎ ÎÎÎÎÎÎÎÎÏÏÎÎÎ ÏÎÏ ÏÎÏÎÎÎÎÎÎÎÏÎÏ"
+
+#: C/filechooserdialog.py.page:34(item/p)
+msgid ""
+"Create a file .ui to describe an app-menu with items \"New\", \"Open\", "
+"\"Save\", \"Save as\", and \"Quit\". This can be done with Glade or in a "
+"text editor. See <link xref=\"#xml\"/>"
+msgstr ""
+"ÎÎÎÎÎÏÏÎÎÏÏÎ ÎÎÎ ÎÏÏÎÎÎ .ui ÎÎÎ ÎÎ ÏÎÏÎÎÏÎÏÎÏÎ ÎÎÎ ÎÎÎÎÏ ÎÏÎÏÎÎÎÏÎ ÎÎ "
+"ÏÏÎÎÏÎÎÎ \"New\", \"Open\", \"Save\", \"Save as\" ÎÎÎ \"Quit\". ÎÏÏÏ ÎÏÎÏÎÎ "
+"ÎÎ ÎÎÎÎÎ ÎÎ Glade Î ÎÎÎÎ ÎÏÎÎÎÏÎÎÏÏÎ ÎÎÎÎÎÎÎÏ. ÎÎÎÏÎ <link xref=\"#xml\"/>"
+
+#: C/filechooserdialog.py.page:35(item/p)
+msgid ""
+"Create a Python program for a Gtk.TextView with a Gtk.Buffer <code>self."
+"buffer</code>, and a <code>self.file</code> which will be a Gio.File and we "
+"set initially as <code>None</code>."
+msgstr ""
+"ÎÎÎÎÎÏÏÎÎÏÏÎ ÎÎÎ ÏÏÏÎÏÎÎÎÎ Python ÎÎÎ ÎÎÎ Gtk.TextView ÎÎ ÎÎÎ Gtk.Buffer "
+"<code>self.buffer</code> ÎÎÎ ÎÎÎ <code>self.file</code> ÏÎÏ ÎÎ ÎÎÎÎÎ ÎÎÎ Gio."
+"File ÎÎÎ ÏÎ ÎÏÎÎÎÏÎÎ ÎÏÏÎÎÎ ÏÏ <code>None</code>."
+
+#: C/filechooserdialog.py.page:36(item/p)
+msgid ""
+"In this program, create also the actions corresponding to the items in the "
+"app-menu, connect them to callback functions, and import the menu in the "
+"<code>do_startup()</code> method with a Gtk.Builder."
+msgstr ""
+"ÎÎ ÎÏÏÏ ÏÎ ÏÏÏÎÏÎÎÎÎ, ÎÎÎÎÎÏÏÎÎÏÏÎ ÎÏÎÏÎÏ ÏÎÏ ÎÎÎÏÎÎÎÎÏ ÏÎÏ ÎÎÏÎÏÏÎÎÏÎÏÎ ÏÏÎ "
+"ÏÏÎÎÏÎÎÎ ÏÏÎ ÎÎÎÎÏ ÎÏÎÏÎÎÎÏÎ, ÏÏÎÎÎÏÏÎ ÏÎ ÏÏÎÏ ÏÏÎÎÏÏÎÏÎÎÏ ÎÏÎÎÎÎÎÎÏÎÏ ÎÎÎ "
+"ÎÎÏÎÎÎÏÎ ÏÎ ÎÎÎÎÏ ÏÏÎ ÎÎÎÎÎÎ <code>do_startup()</code> ÎÎ ÎÎÎ Gtk.Builder."
+
+#: C/filechooserdialog.py.page:37(item/p)
+msgid ""
+"\"New\" and \"Quit\" actions and callback functions are quite "
+"straightforward, see <link xref=\"#code\"/>."
+msgstr ""
+"ÎÎ ÎÎÎÏÎÎÎÎÏ \"New\" ÎÎÎ \"Quit\" ÎÎÎ ÎÎ ÏÏÎÎÏÏÎÏÎÎÏ ÎÏÎÎÎÎÎÎÏÎÏ ÎÎÎÎÎ "
+"ÎÏÎÎÏÎ ÎÏÎÎÏ, ÎÎÎÏÎ <link xref=\"#code\"/>."
+
+#: C/filechooserdialog.py.page:38(item/p)
+msgid ""
+"\"Open\" callback should create and open a Gtk.FileChooserDialog for \"Open"
+"\", connected with another callback function for each of the two \"Open\" "
+"and \"Cancel\" buttons of the FileChooserDialog."
+msgstr ""
+"Î ÎÏÎÎÎÎÎÎÏÎ \"Open\" ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎÎ ÎÎÎ ÎÎ ÎÎÎÎÎÎÎ ÎÎÎÎ Gtk."
+"FileChooserDialog ÎÎÎ \"Open\", ÏÏÎÎÎÎÎÎÎ ÎÎ ÎÎÎ ÎÎÎÎ ÏÏÎÎÏÏÎÏÎ ÎÏÎÎÎÎÎÎÏÎÏ "
+"ÎÎÎ ÎÎÎÎ ÎÎÏÎÏÎ ÎÏÏ ÏÎ ÎÏÎ \"Open\" ÎÎÎ \"Cancel\" ÏÎÏ FileChooserDialog."
+
+#: C/filechooserdialog.py.page:39(item/p)
+msgid ""
+"\"Save as\" works basically as \"Open\", but the callback function of the "
+"\"Save\" button depends on a more complex method <code>save_to_file()</code>."
+msgstr ""
+"Î \"Save as\" ÎÎÏÎÎÏÎÎ ÎÎÏÎÎÎ ÏÏ \"Open\", ÎÎÎÎ Î ÏÏÎÎÏÏÎÏÎ ÎÏÎÎÎÎÎÎÏÎÏ ÏÎÏ "
+"ÎÎÏÎÏÎÎÏ \"Save\" ÎÎÎÏÏÎÏÎÎ ÎÏÏ ÎÎÎ ÏÎÎ ÏÏÎÎÎÏÎ ÎÎÎÎÎÎ <code>save_to_file()</"
+"code>."
+
+#: C/filechooserdialog.py.page:40(item/p)
+msgid ""
+"\"Save\" can be reduced to the case where the file is <code>None</code>, "
+"that is the case where <code>self.file</code> is a new file, which in turn "
+"is the case \"Save as\"; and to the case where the file is not <code>None</"
+"code>, which in turn is reduced to <code>save_to_file()</code>."
+msgstr ""
+"Î \"Save\" ÎÏÎÏÎÎ ÎÎ ÎÎÎÏÎÎÎ ÏÎ ÏÎÏÎÏÏÏÏÎ ÏÏÎÏ ÏÎ ÎÏÏÎÎÎ ÎÎÎÎÎ <code>None</"
+"code>, ÎÎÎÎÎÎ Î ÏÎÏÎÏÏÏÏÎ ÏÏÎÏ <code>self.file</code> ÎÎÎÎÎ ÎÎÎ ÎÎÎ ÎÏÏÎÎÎ, "
+"ÏÎÏ ÎÎ ÏÎ ÏÎÎÏÎ ÏÎÏ ÎÎÎÎÎ Î ÏÎÏÎÏÏÏÏÎ \"Save as\"Â ÎÎÎ ÏÏÎÎ ÏÎÏÎÏÏÏÏÎ ÏÏÎÏ "
+"ÏÎ ÎÏÏÎÎÎ ÎÎÎ ÎÎÎÎÎ <code>None</code>, ÏÎÏ ÎÎ ÏÎ ÏÎÎÏÎ ÏÎÏ ÎÎÎÎÎÏÎÎ ÏÎ to "
+"<code>save_to_file()</code>."
+
+#: C/filechooserdialog.py.page:41(item/p)
+msgid ""
+"Finally, the method <code>save_to_file()</code>: see <link xref=\"#code\"/>, "
+"lines 146 - 175."
+msgstr ""
+"ÎÎÎÎÎÎ, Î ÎÎÎÎÎÎÏ <code>save_to_file()</code>: ÎÎÎÏÎ <link xref=\"#code\"/>, "
+"ÎÏÎÎÎÎÏ 146 - 175."
+
+#: C/filechooserdialog.py.page:46(section/title)
+msgid "XML file which creates the app-menu"
+msgstr "ÎÎ ÎÏÏÎÎÎ XML ÏÎÏ ÎÎÎÎÎÏÏÎÎÎ ÏÎ ÎÎÎÎÏ ÎÏÎÏÎÎÎÏÎ"
+
+#: C/filechooserdialog.py.page:47(section/code)
+#: C/filechooserdialog.vala.page:29(section/code)
+#, no-wrap
+msgid ""
+"&lt;?xml version=\"1.0\"?&gt;\n"
+"&lt;interface&gt;\n"
+"  &lt;menu id=\"appmenu\"&gt;\n"
+"    &lt;section&gt;\n"
+"      &lt;item&gt;\n"
+"        &lt;attribute name=\"label\"&gt;New&lt;/attribute&gt;\n"
+"        &lt;attribute name=\"action\"&gt;win.new&lt;/attribute&gt;\n"
+"      &lt;/item&gt;\n"
+"      &lt;item&gt;\n"
+"        &lt;attribute name=\"label\"&gt;Open&lt;/attribute&gt;\n"
+"        &lt;attribute name=\"action\"&gt;win.open&lt;/attribute&gt;\n"
+"      &lt;/item&gt;\n"
+"    &lt;/section&gt;\n"
+"    &lt;section&gt;\n"
+"      &lt;item&gt;\n"
+"        &lt;attribute name=\"label\"&gt;Save&lt;/attribute&gt;\n"
+"        &lt;attribute name=\"action\"&gt;win.save&lt;/attribute&gt;\n"
+"      &lt;/item&gt;\n"
+"      &lt;item&gt;\n"
+"        &lt;attribute name=\"label\"&gt;Save As...&lt;/attribute&gt;\n"
+"        &lt;attribute name=\"action\"&gt;win.save-as&lt;/attribute&gt;\n"
+"      &lt;/item&gt;\n"
+"    &lt;/section&gt;\n"
+"    &lt;section&gt;\n"
+"      &lt;item&gt;\n"
+"        &lt;attribute name=\"label\"&gt;Quit&lt;/attribute&gt;\n"
+"        &lt;attribute name=\"action\"&gt;app.quit&lt;/attribute&gt;\n"
+"      &lt;/item&gt;\n"
+"    &lt;/section&gt;\n"
+"  &lt;/menu&gt;\n"
+"&lt;/interface&gt;\n"
+msgstr ""
+"&lt;?xml version=\"1.0\"?&gt;\n"
+"&lt;interface&gt;\n"
+"  &lt;menu id=\"appmenu\"&gt;\n"
+"    &lt;section&gt;\n"
+"      &lt;item&gt;\n"
+"        &lt;attribute name=\"label\"&gt;New&lt;/attribute&gt;\n"
+"        &lt;attribute name=\"action\"&gt;win.new&lt;/attribute&gt;\n"
+"      &lt;/item&gt;\n"
+"      &lt;item&gt;\n"
+"        &lt;attribute name=\"label\"&gt;Open&lt;/attribute&gt;\n"
+"        &lt;attribute name=\"action\"&gt;win.open&lt;/attribute&gt;\n"
+"      &lt;/item&gt;\n"
+"    &lt;/section&gt;\n"
+"    &lt;section&gt;\n"
+"      &lt;item&gt;\n"
+"        &lt;attribute name=\"label\"&gt;Save&lt;/attribute&gt;\n"
+"        &lt;attribute name=\"action\"&gt;win.save&lt;/attribute&gt;\n"
+"      &lt;/item&gt;\n"
+"      &lt;item&gt;\n"
+"        &lt;attribute name=\"label\"&gt;Save As...&lt;/attribute&gt;\n"
+"        &lt;attribute name=\"action\"&gt;win.save-as&lt;/attribute&gt;\n"
+"      &lt;/item&gt;\n"
+"    &lt;/section&gt;\n"
+"    &lt;section&gt;\n"
+"      &lt;item&gt;\n"
+"        &lt;attribute name=\"label\"&gt;Quit&lt;/attribute&gt;\n"
+"        &lt;attribute name=\"action\"&gt;app.quit&lt;/attribute&gt;\n"
+"      &lt;/item&gt;\n"
+"    &lt;/section&gt;\n"
+"  &lt;/menu&gt;\n"
+"&lt;/interface&gt;\n"
+
+#: C/filechooserdialog.py.page:52(section/code)
+#, no-wrap
+msgid ""
+"from gi.repository import Gtk\n"
+"from gi.repository import Gdk\n"
+"from gi.repository import Gio\n"
+"from gi.repository import GObject\n"
+"import sys\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"FileChooserDialog Example\", application=app)\n"
+"        self.set_default_size(400, 400)\n"
+"\n"
+"        # the actions for the window menu, connected to the callback functions\n"
+"        new_action = Gio.SimpleAction.new(\"new\", None)\n"
+"        new_action.connect(\"activate\", self.new_callback)\n"
+"        self.add_action(new_action)\n"
+"        \n"
+"        open_action = Gio.SimpleAction.new(\"open\", None)\n"
+"        open_action.connect(\"activate\", self.open_callback)\n"
+"        self.add_action(open_action)\n"
+"        \n"
+"        save_action = Gio.SimpleAction.new(\"save\", None)\n"
+"        save_action.connect(\"activate\", self.save_callback)\n"
+"        self.add_action(save_action)\n"
+"        \n"
+"        save_as_action = Gio.SimpleAction.new(\"save-as\", None)\n"
+"        save_as_action.connect(\"activate\", self.save_as_callback)\n"
+"        self.add_action(save_as_action)\n"
+"        \n"
+"        # the file\n"
+"        self.file = None\n"
+"        \n"
+"        # the textview with the buffer\n"
+"        self.buffer = Gtk.TextBuffer()\n"
+"        textview = Gtk.TextView(buffer=self.buffer)\n"
+"        textview.set_wrap_mode(Gtk.WrapMode.WORD)\n"
+"        \n"
+"        # a scrolled window for the textview\n"
+"        self.scrolled_window = Gtk.ScrolledWindow()\n"
+"        self.scrolled_window.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC)\n"
+"        self.scrolled_window.add(textview)\n"
+"        self.scrolled_window.set_border_width(5)\n"
+"        \n"
+"        # add the scrolled window to the window\n"
+"        self.add(self.scrolled_window)\n"
+"\n"
+"    # callback for new\n"
+"    def new_callback(self, action, parameter):\n"
+"        self.buffer.set_text(\"\")\n"
+"        print \"New file created\"\n"
+"        \n"
+"    # callback for open\n"
+"    def open_callback(self, action, parameter):\n"
+"        # create a filechooserdialog to open: \n"
+"        # the arguments are: title of the window, parent_window, action, (buttons, response)\n"
+"        open_dialog = Gtk.FileChooserDialog (\"Pick a file\", self,\n"
+"                                             Gtk.FileChooserAction.OPEN, \n"
+"                                             (Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL, \n"
+"                                             Gtk.STOCK_OPEN, Gtk.ResponseType.ACCEPT))\n"
+"        \n"
+"        # not only local files can be selected in the file selector\n"
+"        open_dialog.set_local_only(False)\n"
+"        # dialog always on top of the textview window\n"
+"        open_dialog.set_modal(True)\n"
+"        # connect the dialog with the callback function open_response_cb()\n"
+"        open_dialog.connect(\"response\", self.open_response_cb)\n"
+"        # show the dialog\n"
+"        open_dialog.show()\n"
+"\n"
+"    # callback function for the dialog open_dialog\n"
+"    def open_response_cb(self, dialog, response_id):\n"
+"        open_dialog = dialog\n"
+"        # if response is \"ACCEPT\" (the button \"Open\" has been clicked)\n"
+"        if response_id == Gtk.ResponseType.ACCEPT:\n"
+"            # self.file is the file that we get from the FileChooserDialog\n"
+"            self.file = open_dialog.get_file()\n"
+"            # an empty string (provisionally)\n"
+"            content = \"\"\n"
+"            try:\n"
+"                # load the content of the file into memory:\n"
+"                # success is a boolean depending on the success of the operation\n"
+"                # content is self-explanatory\n"
+"                # etags is an entity tag (can be used to quickly determine if the\n"
+"                # file has been modified from the version on the file system)\n"
+"                [success, content, etags] = self.file.load_contents(None)\n"
+"            except GObject.GError as e:\n"
+"                print \"Error: \" + e.message\n"
+"            # set the content as the text into the buffer\n"
+"            self.buffer.set_text(content, len(content))\n"
+"            print \"opened: \" + open_dialog.get_filename()\n"
+"        # if response is \"CANCEL\" (the button \"Cancel\" has been clicked)\n"
+"        elif response_id == Gtk.ResponseType.CANCEL:\n"
+"            print \"cancelled: FileChooserAction.OPEN\"\n"
+"        # destroy the FileChooserDialog\n"
+"        dialog.destroy()\n"
+"\n"
+"    # callback function for save_as\n"
+"    def save_as_callback(self, action, parameter):\n"
+"        # create a filechooserdialog to save: \n"
+"        # the arguments are: title of the window, parent_window, action, (buttons, response)\n"
+"        save_dialog = Gtk.FileChooserDialog (\"Pick a file\", self,\n"
+"                                             Gtk.FileChooserAction.SAVE, \n"
+"                                             (Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL, \n"
+"                                             Gtk.STOCK_SAVE, Gtk.ResponseType.ACCEPT))\n"
+"        # the dialog will present a confirmation dialog if the user types a file name that\n"
+"        # already exists\n"
+"        save_dialog.set_do_overwrite_confirmation(True)\n"
+"        # dialog always on top of the textview window\n"
+"        save_dialog.set_modal(True)\n"
+"        # if self.file has already been saved\n"
+"        if self.file is not None:\n"
+"            try:\n"
+"                # set self.file as the current filename for the file chooser\n"
+"                save_dialog.set_file(self.file)\n"
+"            except GObject.GError as e:\n"
+"                print \"Error: \" + e.message\n"
+"        # connect the dialog to the callback function save_response_cb()\n"
+"        save_dialog.connect(\"response\", self.save_response_cb)\n"
+"        # show the dialog\n"
+"        save_dialog.show()\n"
+"        \n"
+"    # callback function for the dialog save_dialog\n"
+"    def save_response_cb(self, dialog, response_id):\n"
+"        save_dialog = dialog\n"
+"        # if response is \"ACCEPT\" (the button \"Save\" has been clicked)\n"
+"        if response_id == Gtk.ResponseType.ACCEPT:\n"
+"            # self.file is the currently selected file\n"
+"            self.file = save_dialog.get_file()\n"
+"            # save to file (see below)\n"
+"            self.save_to_file()\n"
+"        # if response is \"CANCEL\" (the button \"Cancel\" has been clicked)\n"
+"        elif response_id == Gtk.ResponseType.CANCEL:\n"
+"            print \"cancelled: FileChooserAction.SAVE\"\n"
+"        # destroy the FileChooserDialog\n"
+"        dialog.destroy()\n"
+"        \n"
+"    # callback function for save    \n"
+"    def save_callback(self, action, parameter):\n"
+"        # if self.file is not already there\n"
+"        if self.file is not None:\n"
+"            self.save_to_file()\n"
+"        # self.file is a new file\n"
+"        else:\n"
+"            # use save_as\n"
+"            self.save_as_callback(action, parameter)\n"
+"\n"
+"    # save_to_file\n"
+"    def save_to_file(self):\n"
+"        # get the content of the buffer, without hidden characters\n"
+"        [start, end] = self.buffer.get_bounds()\n"
+"        current_contents = self.buffer.get_text(start, end, False)\n"
+"        # if there is some content\n"
+"        if current_contents != \"\":\n"
+"            # set the content as content of self.file.\n"
+"            # arguments: contents, etags, make_backup, flags, GError\n"
+"            try:\n"
+"                self.file.replace_contents(current_contents,\n"
+"                                           None,\n"
+"                                           False,\n"
+"                                           Gio.FileCreateFlags.NONE,\n"
+"                                           None)\n"
+"                print \"saved: \" + self.file.get_path()\n"
+"            except GObject.GError as e:\n"
+"                print \"Error: \" + e.message\n"
+"        # if the contents are empty\n"
+"        else:\n"
+"            # create (if the file does not exist) or overwrite the file in readwrite mode.\n"
+"            # arguments: etags, make_backup, flags, GError \n"
+"            try:\n"
+"                self.file.replace_readwrite(None,\n"
+"                                            False,\n"
+"                                            Gio.FileCreateFlags.NONE, \n"
+"                                            None)\n"
+"                print \"saved: \" + self.file.get_path()\n"
+"            except GObject.GError as e:\n"
+"                print \"Error: \" + e.message\n"
+"        \n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"        # app action quit, connected to the callback function\n"
+"        quit_action = Gio.SimpleAction.new(\"quit\", None)\n"
+"        quit_action.connect(\"activate\", self.quit_callback)\n"
+"        self.add_action(quit_action)\n"
+"\n"
+"        # get the menu from the ui file with a builder\n"
+"        builder = Gtk.Builder()\n"
+"        try:\n"
+"            builder.add_from_file(\"filechooserdialog.ui\")\n"
+"        except:\n"
+"            print \"file not found\"\n"
+"            sys.exit()\n"
+"        menu = builder.get_object(\"appmenu\")\n"
+"        self.set_app_menu(menu)\n"
+"        \n"
+"    # callback function for quit\n"
+"    def quit_callback(self, action, parameter):\n"
+"        self.quit()\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
+msgstr ""
+"from gi.repository import Gtk\n"
+"from gi.repository import Gdk\n"
+"from gi.repository import Gio\n"
+"from gi.repository import GObject\n"
+"import sys\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"FileChooserDialog Example\", application=app)\n"
+"        self.set_default_size(400, 400)\n"
+"\n"
+"        # the actions for the window menu, connected to the callback functions\n"
+"        new_action = Gio.SimpleAction.new(\"new\", None)\n"
+"        new_action.connect(\"activate\", self.new_callback)\n"
+"        self.add_action(new_action)\n"
+"        \n"
+"        open_action = Gio.SimpleAction.new(\"open\", None)\n"
+"        open_action.connect(\"activate\", self.open_callback)\n"
+"        self.add_action(open_action)\n"
+"        \n"
+"        save_action = Gio.SimpleAction.new(\"save\", None)\n"
+"        save_action.connect(\"activate\", self.save_callback)\n"
+"        self.add_action(save_action)\n"
+"        \n"
+"        save_as_action = Gio.SimpleAction.new(\"save-as\", None)\n"
+"        save_as_action.connect(\"activate\", self.save_as_callback)\n"
+"        self.add_action(save_as_action)\n"
+"        \n"
+"        # the file\n"
+"        self.file = None\n"
+"        \n"
+"        # the textview with the buffer\n"
+"        self.buffer = Gtk.TextBuffer()\n"
+"        textview = Gtk.TextView(buffer=self.buffer)\n"
+"        textview.set_wrap_mode(Gtk.WrapMode.WORD)\n"
+"        \n"
+"        # a scrolled window for the textview\n"
+"        self.scrolled_window = Gtk.ScrolledWindow()\n"
+"        self.scrolled_window.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC)\n"
+"        self.scrolled_window.add(textview)\n"
+"        self.scrolled_window.set_border_width(5)\n"
+"        \n"
+"        # add the scrolled window to the window\n"
+"        self.add(self.scrolled_window)\n"
+"\n"
+"    # callback for new\n"
+"    def new_callback(self, action, parameter):\n"
+"        self.buffer.set_text(\"\")\n"
+"        print \"New file created\"\n"
+"        \n"
+"    # callback for open\n"
+"    def open_callback(self, action, parameter):\n"
+"        # create a filechooserdialog to open: \n"
+"        # the arguments are: title of the window, parent_window, action, (buttons, response)\n"
+"        open_dialog = Gtk.FileChooserDialog (\"Pick a file\", self,\n"
+"                                             Gtk.FileChooserAction.OPEN, \n"
+"                                             (Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL, \n"
+"                                             Gtk.STOCK_OPEN, Gtk.ResponseType.ACCEPT))\n"
+"        \n"
+"        # not only local files can be selected in the file selector\n"
+"        open_dialog.set_local_only(False)\n"
+"        # dialog always on top of the textview window\n"
+"        open_dialog.set_modal(True)\n"
+"        # connect the dialog with the callback function open_response_cb()\n"
+"        open_dialog.connect(\"response\", self.open_response_cb)\n"
+"        # show the dialog\n"
+"        open_dialog.show()\n"
+"\n"
+"    # callback function for the dialog open_dialog\n"
+"    def open_response_cb(self, dialog, response_id):\n"
+"        open_dialog = dialog\n"
+"        # if response is \"ACCEPT\" (the button \"Open\" has been clicked)\n"
+"        if response_id == Gtk.ResponseType.ACCEPT:\n"
+"            # self.file is the file that we get from the FileChooserDialog\n"
+"            self.file = open_dialog.get_file()\n"
+"            # an empty string (provisionally)\n"
+"            content = \"\"\n"
+"            try:\n"
+"                # load the content of the file into memory:\n"
+"                # success is a boolean depending on the success of the operation\n"
+"                # content is self-explanatory\n"
+"                # etags is an entity tag (can be used to quickly determine if the\n"
+"                # file has been modified from the version on the file system)\n"
+"                [success, content, etags] = self.file.load_contents(None)\n"
+"            except GObject.GError as e:\n"
+"                print \"Error: \" + e.message\n"
+"            # set the content as the text into the buffer\n"
+"            self.buffer.set_text(content, len(content))\n"
+"            print \"opened: \" + open_dialog.get_filename()\n"
+"        # if response is \"CANCEL\" (the button \"Cancel\" has been clicked)\n"
+"        elif response_id == Gtk.ResponseType.CANCEL:\n"
+"            print \"cancelled: FileChooserAction.OPEN\"\n"
+"        # destroy the FileChooserDialog\n"
+"        dialog.destroy()\n"
+"\n"
+"    # callback function for save_as\n"
+"    def save_as_callback(self, action, parameter):\n"
+"        # create a filechooserdialog to save: \n"
+"        # the arguments are: title of the window, parent_window, action, (buttons, response)\n"
+"        save_dialog = Gtk.FileChooserDialog (\"Pick a file\", self,\n"
+"                                             Gtk.FileChooserAction.SAVE, \n"
+"                                             (Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL, \n"
+"                                             Gtk.STOCK_SAVE, Gtk.ResponseType.ACCEPT))\n"
+"        # the dialog will present a confirmation dialog if the user types a file name that\n"
+"        # already exists\n"
+"        save_dialog.set_do_overwrite_confirmation(True)\n"
+"        # dialog always on top of the textview window\n"
+"        save_dialog.set_modal(True)\n"
+"        # if self.file has already been saved\n"
+"        if self.file is not None:\n"
+"            try:\n"
+"                # set self.file as the current filename for the file chooser\n"
+"                save_dialog.set_file(self.file)\n"
+"            except GObject.GError as e:\n"
+"                print \"Error: \" + e.message\n"
+"        # connect the dialog to the callback function save_response_cb()\n"
+"        save_dialog.connect(\"response\", self.save_response_cb)\n"
+"        # show the dialog\n"
+"        save_dialog.show()\n"
+"        \n"
+"    # callback function for the dialog save_dialog\n"
+"    def save_response_cb(self, dialog, response_id):\n"
+"        save_dialog = dialog\n"
+"        # if response is \"ACCEPT\" (the button \"Save\" has been clicked)\n"
+"        if response_id == Gtk.ResponseType.ACCEPT:\n"
+"            # self.file is the currently selected file\n"
+"            self.file = save_dialog.get_file()\n"
+"            # save to file (see below)\n"
+"            self.save_to_file()\n"
+"        # if response is \"CANCEL\" (the button \"Cancel\" has been clicked)\n"
+"        elif response_id == Gtk.ResponseType.CANCEL:\n"
+"            print \"cancelled: FileChooserAction.SAVE\"\n"
+"        # destroy the FileChooserDialog\n"
+"        dialog.destroy()\n"
+"        \n"
+"    # callback function for save    \n"
+"    def save_callback(self, action, parameter):\n"
+"        # if self.file is not already there\n"
+"        if self.file is not None:\n"
+"            self.save_to_file()\n"
+"        # self.file is a new file\n"
+"        else:\n"
+"            # use save_as\n"
+"            self.save_as_callback(action, parameter)\n"
+"\n"
+"    # save_to_file\n"
+"    def save_to_file(self):\n"
+"        # get the content of the buffer, without hidden characters\n"
+"        [start, end] = self.buffer.get_bounds()\n"
+"        current_contents = self.buffer.get_text(start, end, False)\n"
+"        # if there is some content\n"
+"        if current_contents != \"\":\n"
+"            # set the content as content of self.file.\n"
+"            # arguments: contents, etags, make_backup, flags, GError\n"
+"            try:\n"
+"                self.file.replace_contents(current_contents,\n"
+"                                           None,\n"
+"                                           False,\n"
+"                                           Gio.FileCreateFlags.NONE,\n"
+"                                           None)\n"
+"                print \"saved: \" + self.file.get_path()\n"
+"            except GObject.GError as e:\n"
+"                print \"Error: \" + e.message\n"
+"        # if the contents are empty\n"
+"        else:\n"
+"            # create (if the file does not exist) or overwrite the file in readwrite mode.\n"
+"            # arguments: etags, make_backup, flags, GError \n"
+"            try:\n"
+"                self.file.replace_readwrite(None,\n"
+"                                            False,\n"
+"                                            Gio.FileCreateFlags.NONE, \n"
+"                                            None)\n"
+"                print \"saved: \" + self.file.get_path()\n"
+"            except GObject.GError as e:\n"
+"                print \"Error: \" + e.message\n"
+"        \n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"        # app action quit, connected to the callback function\n"
+"        quit_action = Gio.SimpleAction.new(\"quit\", None)\n"
+"        quit_action.connect(\"activate\", self.quit_callback)\n"
+"        self.add_action(quit_action)\n"
+"\n"
+"        # get the menu from the ui file with a builder\n"
+"        builder = Gtk.Builder()\n"
+"        try:\n"
+"            builder.add_from_file(\"filechooserdialog.ui\")\n"
+"        except:\n"
+"            print \"file not found\"\n"
+"            sys.exit()\n"
+"        menu = builder.get_object(\"appmenu\")\n"
+"        self.set_app_menu(menu)\n"
+"        \n"
+"    # callback function for quit\n"
+"    def quit_callback(self, action, parameter):\n"
+"        self.quit()\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
+
+#: C/filechooserdialog.py.page:56(section/title)
+msgid "Useful methods for a FileChooserDialog"
+msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ FileChooserDialog"
+
+#: C/filechooserdialog.py.page:57(section/p)
+msgid ""
+"Note that the action of the FileChooserDialog can be one of the following: "
+"<code>Gtk.FileChooserAction.OPEN</code> (the file chooser will only let the "
+"user pick an existing file) <code>Gtk.FileChooserAction.SAVE</code> (the "
+"file chooser will let the user pick an existing file, or type in a new "
+"filename), <code>Gtk.FileChooserAction.SELECT_FOLDER</code> (the file "
+"chooser will let the user pick an existing folder), <code>Gtk."
+"FileChooserAction.CREATE_FOLDER</code> (the file chooser will let the user "
+"name an existing or new folder)."
+msgstr ""
+"ÎÎÎÎÎÏÏÏÎ ÏÏÎ Î ÎÎÎÏÎÎÎÎ ÏÎÏ FileChooserDialog ÎÏÎÏÎÎ ÎÎ ÎÎÎÎÎ ÎÎÎ ÎÏÏ ÏÎÏ "
+"ÎÎÏÎÎÏÎÎÏ: <code>Gtk.FileChooserAction.OPEN</code> (Î ÎÏÎÎÎÎÎÎÏ ÎÏÏÎÎÎÏ ÎÎ "
+"ÎÏÎÏÏÎÏÎÎ ÎÏÎÎ Î ÏÏÎÏÏÎÏ ÎÎ ÎÏÎÎÎÎÎÎ ÎÎÎ ÏÏÎÏÏÎÎ ÎÏÏÎÎÎ) <code>Gtk."
+"FileChooserAction.SAVE</code> (Î ÎÏÎÎÎÎÎÎÏ ÎÏÏÎÎÎÏ ÎÎ ÎÏÎÏÏÎÏÎÎ ÏÏÎÎ ÏÏÎÏÏÎ "
+"ÎÎ ÎÏÎÎÎÎÎÎ ÎÎÎ ÏÏÎÏÏÎÎ ÎÏÏÎÎÎ, Î ÏÏÏÎ ÏÎ ÎÎÎ ÎÎÎ ÏÎÎÎÎ ÎÏÏÎÎÎÏ), <code>Gtk."
+"FileChooserAction.SELECT_FOLDER</code> (Î ÎÏÎÎÎÎÎÎÏ ÎÏÏÎÎÎÏ ÎÎ ÎÏÎÏÏÎÏÎÎ "
+"ÏÏÎÎ ÏÏÎÏÏÎ ÎÎ ÎÏÎÎÎÎÎÎ ÎÎÎÎ ÏÏÎÏÏÎÎÏÎ ÏÎÎÎÎÎ), <code>Gtk.FileChooserAction."
+"CREATE_FOLDER</code> (Î ÎÏÎÎÎÎÎÎÏ ÎÏÏÎÎÎÏ ÎÎ ÎÏÎÏÏÎÏÎÎ ÏÏÎÎ ÏÏÎÏÏÎ ÎÎ "
+"ÎÎÎÎÎÏÎÎ ÎÎÎÎ ÏÏÎÏÏÎÎÏÎ Î ÎÎÎ ÏÎÎÎÎÎ)."
+
+#: C/filechooserdialog.py.page:58(section/p)
+msgid "Besides the methods used in the <link xref=\"#code\"/>, we have:"
+msgstr ""
+"ÎÎÏÏÏ ÎÏÏ ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎÎÎÏ ÎÎÎÏÎÎÏÏ ÏÏÎ <link xref=\"#code\"/>, ÎÏÎÏÎÎ:"
+
+#: C/filechooserdialog.py.page:60(item/p)
+msgid ""
+"<code>set_show_hidden(True)</code> is used to display hidden files and "
+"folders."
+msgstr ""
+"<code>set_show_hidden(True)</code> ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÎÎÎ ÏÏÎÎÎÎÎ ÎÏÏÏÏÎ "
+"ÎÏÏÎÎÏÎ ÎÎÎ ÏÎÎÎÎÏÎ."
+
+#: C/filechooserdialog.py.page:61(item/p)
+msgid ""
+"<code>set_select_multiple(True)</code> sets that multiple files can be "
+"selected. This is only relevant if the mode is <code>Gtk.FileChooserAction."
+"OPEN</code> or <code>Gtk.FileChooserAction.SELECT_FOLDER</code>."
+msgstr ""
+"Î <code>set_select_multiple(True)</code> ÎÏÎÎÎÎ ÏÏÎ ÏÎÎÎÎ ÎÏÏÎÎÎ ÎÏÎÏÎÏÎ ÎÎ "
+"ÎÏÎÎÎÎÎÏÎ. ÎÏÏÏ ÎÎÎÎÎ ÎÎÏÎÎÎÎÎÎ ÎÏÎÎ ÎÎÎ Î ÎÎÏÎÏÏÎÏÎ ÎÎÎÎÎ <code>Gtk."
+"FileChooserAction.OPEN</code> Î <code>Gtk.FileChooserAction.SELECT_FOLDER</"
+"code>."
+
+#: C/filechooserdialog.py.page:62(item/p)
+msgid ""
+"In a \"Save as\" dialog, <code>set_current_name(current_name)</code> sets "
+"<code>current_name</code> in the file selector, as if entered by the user; "
+"<code>current_name</code> can be something like <em>Untitled.txt</em>. This "
+"method should not be used except in a \"Save as\" dialog."
+msgstr ""
+"ÎÎ ÎÎÎÎ ÎÎÎÎÎÎÎ \"Save as\", Î <code>set_current_name(current_name)</code> "
+"ÎÏÎÎÎÎ ÏÎ <code>current_name</code> ÏÏÎÎ ÎÏÎÎÎÎÎÎ ÎÏÏÎÎÎÏ, ÏÎÎ ÎÎ ÎÎÏÎÎÏÏÎÎ "
+"ÎÏÏ ÏÎÎ ÏÏÎÏÏÎÂ ÏÎ <code>current_name</code> ÎÏÎÏÎÎ ÎÎ ÎÎÎÎÎ ÎÎÏÎ ÏÎÎ "
+"<em>ÎÏÎÏÎÎ.txt</em>. ÎÏÏÎ Î ÎÎÎÎÎÎÏ ÎÎÎ ÏÏÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÎÎ ÎÎÏÏÏ ÎÏÏ "
+"ÎÎÎÎ ÎÎÎÎÎÎÎ \"Save as\"."
+
+#: C/filechooserdialog.py.page:63(item/p)
+msgid ""
+"The default current folder is \"recent items\". To set another folder use "
+"<code>set_current_folder_uri(uri)</code>; but note you should use this "
+"method and cause the file chooser to show a specific folder only when you "
+"are doing a \"Save as\" command and you already have a file saved somewhere."
+msgstr ""
+"Î ÏÏÎÎÏÎÎÎÎÎÎÎÎÏ ÏÏÎÏÎÎ ÏÎÎÎÎÎÏ ÎÎÎÎÎ \"recent items\". ÎÎÎ ÏÎÎ ÎÏÎÏÎÏ ÎÎÎÎÏ "
+"ÏÎÎÎÎÎÏ ÏÏÎÏÎÎÎÏÎÎÎÏÏÎ <code>set_current_folder_uri(uri)</code>Â ÎÎÎÎ "
+"ÏÎÎÎÎÏÏÏÎ ÏÏÎ ÎÎ ÏÏÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÎÏÏÎÎ ÏÎ ÎÎÎÎÎÎ ÎÎÎ ÎÎ "
+"ÏÏÎÎÎÎÎÏÎÏÎ ÏÎÎ ÎÏÎÎÎÎÎÎ ÎÏÏÎÎÎÏ ÎÎ ÎÎÏÎÎÎÏÎÎ ÎÎÎÎ ÏÏÎÎÎÎÏÎÎÎÎÎ ÏÎÎÎÎÎ ÎÏÎÎ "
+"ÏÏÎÎ ÎÎÏÎÎÎÎÏÎ ÎÎÎ ÎÎÏÎÎÎ \"Save as\" ÎÎÎ ÎÏÎÏÎ ÎÎÎ ÎÎÎ ÎÏÏÎÎÎ ÎÏÎÎÎÎÎÏÎÎÎÎ "
+"ÎÎÏÎÏ."
+
+#: C/filechooserdialog.py.page:71(item/p)
+msgid ""
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkFileChooserDialog.html";
+"\">GtkFileChooserDialog</link>"
+msgstr ""
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkFileChooserDialog.html";
+"\">GtkFileChooserDialog</link>"
+
+#: C/filechooserdialog.py.page:72(item/p)
+msgid ""
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkFileChooser.html";
+"\">GtkFileChooser</link>"
+msgstr ""
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkFileChooser.html";
+"\">GtkFileChooser</link>"
+
+#: C/filechooserdialog.py.page:73(item/p) C/image.c.page:33(item/p)
+#: C/label.c.page:37(item/p)
+msgid ""
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkWindow.html";
+"\">GtkWindow</link>"
+msgstr ""
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkWindow.html";
+"\">GtkWindow</link>"
+
+#: C/filechooserdialog.py.page:74(item/p) C/textview.c.page:38(item/p)
+msgid ""
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkTextView.html";
+"\">GtkTextView</link>"
+msgstr ""
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkTextView.html";
+"\">GtkTextView</link>"
+
+#: C/filechooserdialog.py.page:75(item/p) C/textview.c.page:37(item/p)
+msgid ""
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkTextBuffer.html";
+"\">GtkTextBuffer</link>"
+msgstr ""
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkTextBuffer.html";
+"\">GtkTextBuffer</link>"
+
+#: C/filechooserdialog.py.page:76(item/p) C/textview.c.page:39(item/p)
+msgid ""
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkScrolledWindow.html";
+"\">GtkScrolledWindow</link>"
+msgstr ""
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkScrolledWindow.html";
+"\">GtkScrolledWindow</link>"
+
+#: C/filechooserdialog.py.page:77(item/p)
+msgid ""
+"<link href=\"http://developer.gnome.org/gio/stable/GFile.html\";>GFile</link>"
+msgstr ""
+"<link href=\"http://developer.gnome.org/gio/stable/GFile.html\";>GFile</link>"
+
+#: C/filechooserdialog.py.page:79(item/p)
+msgid ""
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkBuilder.html";
+"\">GtkBuilder</link>"
+msgstr ""
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkBuilder.html";
+"\">GtkBuilder</link>"
+
+#: C/filechooserdialog.vala.page:7(info/title)
+msgctxt "text"
+msgid "FileChooserDialog (Vala)"
+msgstr "FileChooserDialog (Vala)"
+
+#: C/filechooserdialog.vala.page:20(info/desc)
+msgid "A dialog suitable for \"Open\" and \"Save\" commands."
+msgstr "ÎÎÎÏ ÎÎÎÎÎÎÎÏ ÎÎÏÎÎÎÎÎÎÏ ÎÎÎ ÏÎÏ ÎÎÏÎÎÎÏ \"Open\" ÎÎÎ \"Save\"."
+
+#: C/filechooserdialog.vala.page:25(section/title)
+msgid "Overview of the example"
+msgstr "ÎÏÎÏÎÏÏÎÏÎ ÏÎÏ ÏÎÏÎÎÎÎÎÎÎÏÎÏ"
+
+#: C/filechooserdialog.vala.page:26(section/p)
+msgid ""
+"This example demonstrates how the FileChooserDialog can be used. It is "
+"incorporated into a very simple text editor application. All the <link xref="
+"\"menubar.vala#win-app\">actions</link>, including the \"open\", \"save\" "
+"and \"save-as\" commands can be found in the <link xref=\"gmenu.vala\">app-"
+"menu</link>. Here, the app-menu is created using an XML UI file, which is "
+"then imported into the application using Gtk.Builder."
+msgstr ""
+"ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÎÎÎÏÎÎÎ ÏÏÏ ÎÏÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÎÎ Î FileChooserDialog. "
+"ÎÎÎÎÎ ÎÎÏÏÎÎÏÏÎÎÎÎÏ ÏÎ ÎÎÎ ÏÎÎÎÎ ÎÏÎÎ ÎÏÎÏÎÎÎÎ ÎÏÎÎÎÏÎÎÏÏÎ ÎÎÎÎÎÎÎÏ. ÎÎÎÏ ÎÎ "
+"<link xref=\"menubar.vala#win-app\">ÎÎÎÏÎÎÎÎÏ</link>, ÏÏÎÏÎÏÎÎÎÎÎÎÎÎÎÏÎÏ ÏÎÏ "
+"ÎÎÏÎÎÎÏ \"open\", \"save\" ÎÎÎ \"save-as\" ÎÏÎÏÎÏÎ ÎÎ ÎÏÎÎÎÏÎ ÏÏÎ <link xref="
+"\"gmenu.vala\">app-menu</link>. ÎÎÏ, ÏÎ ÎÎÎÎÏ ÎÏÎÏÎÎÎÏÎ ÎÎÎÎÎÏÏÎÎÎÎÎÎ "
+"ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÎÎÎ ÎÏÏÎÎÎ UI XML, ÏÎÏ ÎÏÎÎÏÎ ÎÎÏÎÏÎÎ ÏÏÎÎ ÎÏÎÏÎÎÎÎ "
+"ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ Gtk.Builder."
+
+#: C/filechooserdialog.vala.page:28(section/title)
+msgid "XML UI file which creates the app-menu"
+msgstr "ÎÎ ÎÏÏÎÎÎ UI XML ÏÎÏ ÎÎÎÎÎÏÏÎÎÎ ÏÎ ÎÎÎÎÏ ÎÏÎÏÎÎÎÏÎ"
+
+#: C/filechooserdialog.vala.page:31(section/title)
+msgid "Vala Code"
+msgstr "ÎÏÎÎÎÎÏ Vala"
+
+#: C/filechooserdialog.vala.page:32(section/code)
+#, no-wrap
+msgid ""
+"class MyWindow: Gtk.ApplicationWindow {\n"
+"\n"
+"\t/* MyWindow instance variables. */\n"
+"\tGLib.File? file;\n"
+"\tGtk.TextBuffer buffer;\n"
+"\tGtk.TextView textview;\n"
+"\tGtk.ScrolledWindow scrolled_window;\n"
+"\n"
+"\t/* Create ActionEntries. */\n"
+"\tconst ActionEntry[] actions = {\n"
+"\t\t{ \"new\", new_cb },\n"
+"\t\t{ \"open\", open_cb },\n"
+"\t\t{ \"save\", save_cb },\n"
+"\t\t{ \"save-as\", save_as_cb }\n"
+"\t};\n"
+"\n"
+"\t/* Constructor creates MyWindow, and add the scrolled_window. */\n"
+"\tinternal MyWindow (MyApplication app) {\n"
+"\t\tObject (application: app, title: \"FileChooserDialog Example\");\n"
+"\t\tthis.set_default_size (400, 400);\n"
+"\n"
+"\t\t/* Add the ActionEntries to MyWindow. */\n"
+"\t\tthis.add_action_entries (actions, this);\n"
+"\n"
+"\t\tbuffer = new Gtk.TextBuffer (null); //stores text to be displayed\n"
+"\t\ttextview = new Gtk.TextView.with_buffer (buffer); //displays TextBuffer\n"
+"\t\ttextview.set_wrap_mode (Gtk.WrapMode.WORD); //sets line wrapping\n"
+"\n"
+"\t\tscrolled_window = new Gtk.ScrolledWindow (null, null);\n"
+"\t\tscrolled_window.set_policy (Gtk.PolicyType.AUTOMATIC,\n"
+"\t\t                            Gtk.PolicyType.AUTOMATIC);\n"
+"\n"
+"\t\tscrolled_window.add (textview);\n"
+"\t\tscrolled_window.set_border_width (5);\n"
+"\n"
+"        this.add (scrolled_window);\n"
+"\t\tthis.show_all ();\n"
+"\t}\n"
+"\n"
+"\tvoid new_cb (SimpleAction action, Variant? parameter) {\n"
+"\t\tfile = null;\n"
+"\t\tbuffer.set_text (\"\");\n"
+"\t\tprint (\"New file created\\n\");\n"
+"\t}\n"
+"\n"
+"\t/* Create FileChooserDialog in OPEN mode. */\n"
+"\tvoid open_cb (SimpleAction action, Variant? parameter) {\n"
+"\n"
+"\t\tvar open_dialog = new Gtk.FileChooserDialog (\"Pick a file\",\n"
+"\t\t                                             this as Gtk.Window,\n"
+"\t\t                                             Gtk.FileChooserAction.OPEN,\n"
+"\t\t                                             Gtk.Stock.CANCEL,\n"
+"\t\t                                             Gtk.ResponseType.CANCEL,\n"
+"\t\t                                             Gtk.Stock.OPEN,\n"
+"\t\t                                             Gtk.ResponseType.ACCEPT);\n"
+"\n"
+"\t\topen_dialog.local_only = false; //allow for uri\n"
+"\t\topen_dialog.set_modal (true);\n"
+"\t\topen_dialog.response.connect (open_response_cb);\n"
+"\t\topen_dialog.show ();\n"
+"\t}\n"
+"\n"
+"\t/* Either open the file and load the file contents or cancel. */\n"
+"\tvoid open_response_cb (Gtk.Dialog dialog, int response_id) {\n"
+"\t\tvar open_dialog = dialog as Gtk.FileChooserDialog;\n"
+"\n"
+"\t\tswitch (response_id) {\n"
+"\t\t\tcase Gtk.ResponseType.ACCEPT: //open the file\n"
+"\t\t\t\tfile = open_dialog.get_file();\n"
+"\n"
+"\t\t\t\tuint8[] file_contents;\n"
+"\n"
+"\t\t\t\ttry {\n"
+"\t\t\t\t\tfile.load_contents (null, out file_contents, null);\n"
+"\t\t\t\t}\n"
+"\t\t\t\tcatch (GLib.Error err) { //handle the exception\n"
+"\t\t\t\t\terror (\"%s\\n\", err.message);\n"
+"\t\t\t\t}\n"
+"\t\t\t\t/* Set the buffer text to be the contents of the file. */\n"
+"\t\t\t\tbuffer.set_text ((string) file_contents,\n"
+"\t\t\t\t                 file_contents.length);\n"
+"\n"
+"\t\t\t\tprint (\"opened: %s\\n\", (open_dialog.get_filename ()));\n"
+"\t\t\t\tbreak;\n"
+"\n"
+"\t\t\tcase Gtk.ResponseType.CANCEL:\n"
+"\t\t\t\tprint (\"cancelled: FileChooserAction.OPEN\\n\");\n"
+"\t\t\t\tbreak;\n"
+"\t\t}\n"
+"\t\tdialog.destroy ();\n"
+"\t}\n"
+"\n"
+"\n"
+"\t/* Create FileChooserDialog in SAVE mode. */\n"
+"\tvoid save_as_cb (SimpleAction action, Variant? parameter) {\n"
+"\t\tvar save_dialog = new Gtk.FileChooserDialog (\"Pick a file\",\n"
+"\t\t                                             this as Gtk.Window,\n"
+"\t\t                                             Gtk.FileChooserAction.SAVE,\n"
+"\t\t                                             Gtk.Stock.CANCEL,\n"
+"\t\t                                             Gtk.ResponseType.CANCEL,\n"
+"\t\t                                             Gtk.Stock.SAVE,\n"
+"\t\t                                             Gtk.ResponseType.ACCEPT);\n"
+"\n"
+"\t\tsave_dialog.set_do_overwrite_confirmation (true);\n"
+"\t\tsave_dialog.set_modal (true);\n"
+"\t\tif (file != null) {\n"
+"\t\t\ttry {\n"
+"\t\t\t\t(save_dialog as Gtk.FileChooser).set_file (file);\n"
+"\t\t\t}\n"
+"\t\t\tcatch (GLib.Error error) {\n"
+"\t\t\t\tprint (\"%s\\n\", error.message);\n"
+"\t\t\t}\n"
+"\t\t}\n"
+"\t\tsave_dialog.response.connect (save_as_response_cb);\n"
+"\t\tsave_dialog.show ();\n"
+"\t}\n"
+"\n"
+"\tvoid save_as_response_cb (Gtk.Dialog dialog, int response_id) {\n"
+"\t\tvar save_dialog = dialog as Gtk.FileChooserDialog;\n"
+"\n"
+"\t\tswitch (response_id) {\n"
+"\t\t\tcase Gtk.ResponseType.ACCEPT:\n"
+"\t\t\t\tfile = save_dialog.get_file();\n"
+"\t\t\t\tthis.save_to_file ();\n"
+"\t\t\t\tbreak;\n"
+"\t\t\tdefault:\n"
+"\t\t\t\tbreak;\n"
+"\t\t}\n"
+"\t\t\tdialog.destroy ();\n"
+"\t}\n"
+"\n"
+"\t/* Save the existing contents to the file.\n"
+"\t * If file does not exist, call save_as_cb.\n"
+"\t */\n"
+"\tvoid save_cb (SimpleAction action, Variant? parameter) {\n"
+"\t\tif (file != null) {\n"
+"\t\t\tthis.save_to_file ();\n"
+"\t\t}\n"
+"\t\telse {\n"
+"\t\t\tsave_as_cb (action, parameter);\n"
+"\t\t}\n"
+"\t}\n"
+"\n"
+"\tvoid save_to_file (){\n"
+"\t\tGtk.TextIter start;\n"
+"\t\tGtk.TextIter end;\n"
+"\n"
+"\t\tbuffer.get_bounds (out start, out end);\n"
+"\t\tstring current_contents = buffer.get_text (start, end, false);\n"
+"\t\ttry {\n"
+"\t\t\t\tfile.replace_contents (current_contents.data, null, false,\n"
+"\t\t\t\t                       GLib.FileCreateFlags.NONE, null, null);\n"
+"\n"
+"\t\t\t\tprint (\"saved: %s\\n\", file.get_path ());\n"
+"\t\t}\n"
+"\t\tcatch (GLib.Error err) {\n"
+"\t\t\terror (\"%s\\n\", err.message);\n"
+"\t\t}\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* This is the application */\n"
+"class MyApplication: Gtk.Application {\n"
+"\tprotected override void activate () {\n"
+"\t\tnew MyWindow (this).show_all;\n"
+"\t}\n"
+"\n"
+"\tconst ActionEntry[] actions = {\n"
+"\t\t{ \"quit\", quit_cb }\n"
+"\t};\n"
+"\n"
+"\tvoid quit_cb (SimpleAction action, Variant? parameter) {\n"
+"\t\tthis.quit ();\n"
+"\t}\n"
+"\n"
+"\tprotected override void startup () {\n"
+"\t\tbase.startup ();\n"
+"\n"
+"\t\t/* Setup actions */\n"
+"\t\tthis.add_action_entries (actions, this);\n"
+"\n"
+"\t\t/* Setup menus */\n"
+"\t\tvar builder = new Gtk.Builder ();\n"
+"\t\ttry {\n"
+"\t\t\tbuilder.add_from_file (\"filechooserdialog.ui\");\n"
+"\t\t} catch (GLib.Error err) {\n"
+"\t\t\terror (\"Unable to load file: %s\\n\", err.message);\n"
+"\t\t}\n"
+"\t\tthis.app_menu = builder.get_object (\"appmenu\") as MenuModel;\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* main creates and runs the application. */\n"
+"public int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
+msgstr ""
+"class MyWindow: Gtk.ApplicationWindow {\n"
+"\n"
+"\t/* MyWindow instance variables. */\n"
+"\tGLib.File? file;\n"
+"\tGtk.TextBuffer buffer;\n"
+"\tGtk.TextView textview;\n"
+"\tGtk.ScrolledWindow scrolled_window;\n"
+"\n"
+"\t/* Create ActionEntries. */\n"
+"\tconst ActionEntry[] actions = {\n"
+"\t\t{ \"new\", new_cb },\n"
+"\t\t{ \"open\", open_cb },\n"
+"\t\t{ \"save\", save_cb },\n"
+"\t\t{ \"save-as\", save_as_cb }\n"
+"\t};\n"
+"\n"
+"\t/* Constructor creates MyWindow, and add the scrolled_window. */\n"
+"\tinternal MyWindow (MyApplication app) {\n"
+"\t\tObject (application: app, title: \"FileChooserDialog Example\");\n"
+"\t\tthis.set_default_size (400, 400);\n"
+"\n"
+"\t\t/* Add the ActionEntries to MyWindow. */\n"
+"\t\tthis.add_action_entries (actions, this);\n"
+"\n"
+"\t\tbuffer = new Gtk.TextBuffer (null); //stores text to be displayed\n"
+"\t\ttextview = new Gtk.TextView.with_buffer (buffer); //displays TextBuffer\n"
+"\t\ttextview.set_wrap_mode (Gtk.WrapMode.WORD); //sets line wrapping\n"
+"\n"
+"\t\tscrolled_window = new Gtk.ScrolledWindow (null, null);\n"
+"\t\tscrolled_window.set_policy (Gtk.PolicyType.AUTOMATIC,\n"
+"\t\t                            Gtk.PolicyType.AUTOMATIC);\n"
+"\n"
+"\t\tscrolled_window.add (textview);\n"
+"\t\tscrolled_window.set_border_width (5);\n"
+"\n"
+"        this.add (scrolled_window);\n"
+"\t\tthis.show_all ();\n"
+"\t}\n"
+"\n"
+"\tvoid new_cb (SimpleAction action, Variant? parameter) {\n"
+"\t\tfile = null;\n"
+"\t\tbuffer.set_text (\"\");\n"
+"\t\tprint (\"New file created\\n\");\n"
+"\t}\n"
+"\n"
+"\t/* Create FileChooserDialog in OPEN mode. */\n"
+"\tvoid open_cb (SimpleAction action, Variant? parameter) {\n"
+"\n"
+"\t\tvar open_dialog = new Gtk.FileChooserDialog (\"Pick a file\",\n"
+"\t\t                                             this as Gtk.Window,\n"
+"\t\t                                             Gtk.FileChooserAction.OPEN,\n"
+"\t\t                                             Gtk.Stock.CANCEL,\n"
+"\t\t                                             Gtk.ResponseType.CANCEL,\n"
+"\t\t                                             Gtk.Stock.OPEN,\n"
+"\t\t                                             Gtk.ResponseType.ACCEPT);\n"
+"\n"
+"\t\topen_dialog.local_only = false; //allow for uri\n"
+"\t\topen_dialog.set_modal (true);\n"
+"\t\topen_dialog.response.connect (open_response_cb);\n"
+"\t\topen_dialog.show ();\n"
+"\t}\n"
+"\n"
+"\t/* Either open the file and load the file contents or cancel. */\n"
+"\tvoid open_response_cb (Gtk.Dialog dialog, int response_id) {\n"
+"\t\tvar open_dialog = dialog as Gtk.FileChooserDialog;\n"
+"\n"
+"\t\tswitch (response_id) {\n"
+"\t\t\tcase Gtk.ResponseType.ACCEPT: //open the file\n"
+"\t\t\t\tfile = open_dialog.get_file();\n"
+"\n"
+"\t\t\t\tuint8[] file_contents;\n"
+"\n"
+"\t\t\t\ttry {\n"
+"\t\t\t\t\tfile.load_contents (null, out file_contents, null);\n"
+"\t\t\t\t}\n"
+"\t\t\t\tcatch (GLib.Error err) { //handle the exception\n"
+"\t\t\t\t\terror (\"%s\\n\", err.message);\n"
+"\t\t\t\t}\n"
+"\t\t\t\t/* Set the buffer text to be the contents of the file. */\n"
+"\t\t\t\tbuffer.set_text ((string) file_contents,\n"
+"\t\t\t\t                 file_contents.length);\n"
+"\n"
+"\t\t\t\tprint (\"opened: %s\\n\", (open_dialog.get_filename ()));\n"
+"\t\t\t\tbreak;\n"
+"\n"
+"\t\t\tcase Gtk.ResponseType.CANCEL:\n"
+"\t\t\t\tprint (\"cancelled: FileChooserAction.OPEN\\n\");\n"
+"\t\t\t\tbreak;\n"
+"\t\t}\n"
+"\t\tdialog.destroy ();\n"
+"\t}\n"
+"\n"
+"\n"
+"\t/* Create FileChooserDialog in SAVE mode. */\n"
+"\tvoid save_as_cb (SimpleAction action, Variant? parameter) {\n"
+"\t\tvar save_dialog = new Gtk.FileChooserDialog (\"Pick a file\",\n"
+"\t\t                                             this as Gtk.Window,\n"
+"\t\t                                             Gtk.FileChooserAction.SAVE,\n"
+"\t\t                                             Gtk.Stock.CANCEL,\n"
+"\t\t                                             Gtk.ResponseType.CANCEL,\n"
+"\t\t                                             Gtk.Stock.SAVE,\n"
+"\t\t                                             Gtk.ResponseType.ACCEPT);\n"
+"\n"
+"\t\tsave_dialog.set_do_overwrite_confirmation (true);\n"
+"\t\tsave_dialog.set_modal (true);\n"
+"\t\tif (file != null) {\n"
+"\t\t\ttry {\n"
+"\t\t\t\t(save_dialog as Gtk.FileChooser).set_file (file);\n"
+"\t\t\t}\n"
+"\t\t\tcatch (GLib.Error error) {\n"
+"\t\t\t\tprint (\"%s\\n\", error.message);\n"
+"\t\t\t}\n"
+"\t\t}\n"
+"\t\tsave_dialog.response.connect (save_as_response_cb);\n"
+"\t\tsave_dialog.show ();\n"
+"\t}\n"
+"\n"
+"\tvoid save_as_response_cb (Gtk.Dialog dialog, int response_id) {\n"
+"\t\tvar save_dialog = dialog as Gtk.FileChooserDialog;\n"
+"\n"
+"\t\tswitch (response_id) {\n"
+"\t\t\tcase Gtk.ResponseType.ACCEPT:\n"
+"\t\t\t\tfile = save_dialog.get_file();\n"
+"\t\t\t\tthis.save_to_file ();\n"
+"\t\t\t\tbreak;\n"
+"\t\t\tdefault:\n"
+"\t\t\t\tbreak;\n"
+"\t\t}\n"
+"\t\t\tdialog.destroy ();\n"
+"\t}\n"
+"\n"
+"\t/* Save the existing contents to the file.\n"
+"\t * If file does not exist, call save_as_cb.\n"
+"\t */\n"
+"\tvoid save_cb (SimpleAction action, Variant? parameter) {\n"
+"\t\tif (file != null) {\n"
+"\t\t\tthis.save_to_file ();\n"
+"\t\t}\n"
+"\t\telse {\n"
+"\t\t\tsave_as_cb (action, parameter);\n"
+"\t\t}\n"
+"\t}\n"
+"\n"
+"\tvoid save_to_file (){\n"
+"\t\tGtk.TextIter start;\n"
+"\t\tGtk.TextIter end;\n"
+"\n"
+"\t\tbuffer.get_bounds (out start, out end);\n"
+"\t\tstring current_contents = buffer.get_text (start, end, false);\n"
+"\t\ttry {\n"
+"\t\t\t\tfile.replace_contents (current_contents.data, null, false,\n"
+"\t\t\t\t                       GLib.FileCreateFlags.NONE, null, null);\n"
+"\n"
+"\t\t\t\tprint (\"saved: %s\\n\", file.get_path ());\n"
+"\t\t}\n"
+"\t\tcatch (GLib.Error err) {\n"
+"\t\t\terror (\"%s\\n\", err.message);\n"
+"\t\t}\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* This is the application */\n"
+"class MyApplication: Gtk.Application {\n"
+"\tprotected override void activate () {\n"
+"\t\tnew MyWindow (this).show_all;\n"
+"\t}\n"
+"\n"
+"\tconst ActionEntry[] actions = {\n"
+"\t\t{ \"quit\", quit_cb }\n"
+"\t};\n"
+"\n"
+"\tvoid quit_cb (SimpleAction action, Variant? parameter) {\n"
+"\t\tthis.quit ();\n"
+"\t}\n"
+"\n"
+"\tprotected override void startup () {\n"
+"\t\tbase.startup ();\n"
+"\n"
+"\t\t/* Setup actions */\n"
+"\t\tthis.add_action_entries (actions, this);\n"
+"\n"
+"\t\t/* Setup menus */\n"
+"\t\tvar builder = new Gtk.Builder ();\n"
+"\t\ttry {\n"
+"\t\t\tbuilder.add_from_file (\"filechooserdialog.ui\");\n"
+"\t\t} catch (GLib.Error err) {\n"
+"\t\t\terror (\"Unable to load file: %s\\n\", err.message);\n"
+"\t\t}\n"
+"\t\tthis.app_menu = builder.get_object (\"appmenu\") as MenuModel;\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* main creates and runs the application. */\n"
+"public int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
+
+#: C/filechooserdialog.vala.page:34(section/title)
+#: C/menubar.vala.page:186(section/title)
+msgid "Relevant API documentation"
+msgstr "ÎÏÎÏÎÎÎ ÏÎÎÎÎÏÎÏÏÎ API"
+
+#: C/filechooserdialog.vala.page:39(item/p)
+msgid ""
+"<link href=\"http://valadoc.org/gtk+-3.0/Gtk.FileChooser.html\";>FileChooser</"
+"link>"
+msgstr ""
+"<link href=\"http://valadoc.org/gtk+-3.0/Gtk.FileChooser.html\";>FileChooser</"
+"link>"
+
+#: C/filechooserdialog.vala.page:40(item/p)
+msgid ""
+"<link href=\"http://valadoc.org/gtk+-3.0/Gtk.FileChooserDialog.html";
+"\">FileChooserDialog</link>"
+msgstr ""
+"<link href=\"http://valadoc.org/gtk+-3.0/Gtk.FileChooserDialog.html";
+"\">FileChooserDialog</link>"
+
+#: C/filechooserdialog.vala.page:41(item/p)
+msgid ""
+"<link href=\"http://valadoc.org/gtk+-3.0/Gtk.Builder.html\";>Gtk.Builder</"
+"link>"
+msgstr ""
+"<link href=\"http://valadoc.org/gtk+-3.0/Gtk.Builder.html\";>Gtk.Builder</"
+"link>"
+
+#: C/filechooserdialog.vala.page:42(item/p)
+msgid ""
+"<link href=\"http://valadoc.org/gio-2.0/GLib.ActionEntry.html\";>GLib."
+"ActionEntry</link>"
+msgstr ""
+"<link href=\"http://valadoc.org/gio-2.0/GLib.ActionEntry.html\";>GLib."
+"ActionEntry</link>"
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/fontchooserwidget.py.page:23(media)
+msgctxt "_"
+msgid ""
+"external ref='media/fontchooserwidget.png' "
+"md5='9161245e307b432ae1313e9a9941edae'"
+msgstr ""
+"external ref='media/fontchooserwidget.png' "
+"md5='9161245e307b432ae1313e9a9941edae'"
+
+#: C/fontchooserwidget.py.page:7(info/title)
+msgctxt "text"
+msgid "FontChooserWidget (Python)"
+msgstr "FontChooserWidget (Python)"
+
+#: C/fontchooserwidget.py.page:18(info/desc)
+msgid "A widget to choose a font"
+msgstr "ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÎÎ ÎÏÎÎÎÎÎ ÎÎÎÏ ÎÏÎÎÎÎÏÎÏÎÎÏÎÏ"
+
+#: C/fontchooserwidget.py.page:21(page/title)
+msgid "FontChooserWidget"
+msgstr "FontChooserWidget"
+
+#: C/fontchooserwidget.py.page:24(page/p)
+msgid "A FontChooserWidget with a callback function."
+msgstr "ÎÎÎ FontChooserWidget ÎÎ ÎÎÎ ÏÏÎÎÏÏÎÏÎ ÎÏÎÎÎÎÎÎÏÎÏ."
+
+#: C/fontchooserwidget.py.page:30(section/code)
+#, no-wrap
+msgid ""
+"from gi.repository import Gtk\n"
+"import sys\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"FontChooserWidget\", application=app)\n"
+"\n"
+"        # a font chooser\n"
+"        self.font_chooser = Gtk.FontChooserWidget()\n"
+"        # a default font\n"
+"        self.font_chooser.set_font(\"Sans\")\n"
+"        # a text to preview the font\n"
+"        self.font_chooser.set_preview_text(\"This is an example of preview text!\")\n"
+"\n"
+"        # connect signal from the font chooser to the callback function\n"
+"        self.font_chooser.connect(\"notify::font\", self.font_cb)\n"
+"\n"
+"        # add the font chooser to the window\n"
+"        self.add(self.font_chooser)\n"
+"\n"
+"    # callback function:\n"
+"    def font_cb(self, event, user_data):\n"
+"        # print in the terminal\n"
+"        print \"You chose the font \" + self.font_chooser.get_font()\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
+msgstr ""
+"from gi.repository import Gtk\n"
+"import sys\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"FontChooserWidget\", application=app)\n"
+"\n"
+"        # a font chooser\n"
+"        self.font_chooser = Gtk.FontChooserWidget()\n"
+"        # a default font\n"
+"        self.font_chooser.set_font(\"Sans\")\n"
+"        # a text to preview the font\n"
+"        self.font_chooser.set_preview_text(\"This is an example of preview text!\")\n"
+"\n"
+"        # connect signal from the font chooser to the callback function\n"
+"        self.font_chooser.connect(\"notify::font\", self.font_cb)\n"
+"\n"
+"        # add the font chooser to the window\n"
+"        self.add(self.font_chooser)\n"
+"\n"
+"    # callback function:\n"
+"    def font_cb(self, event, user_data):\n"
+"        # print in the terminal\n"
+"        print \"You chose the font \" + self.font_chooser.get_font()\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
+
+#: C/fontchooserwidget.py.page:33(section/title)
+msgid "Useful methods for a FontChooserWidget"
+msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ FontChooserWidget"
+
+#: C/fontchooserwidget.py.page:36(item/p)
+msgid ""
+"To set the font which is initially selected, use <code>set_font(font)</code> "
+"(where <code>font</code> is the font name) or <code>set_font_desc(font)</"
+"code> (where <code>font</code> is the PangoFontDescription)."
+msgstr ""
+"ÎÎÎ ÎÏÎÏÎÏ ÏÎÏ ÎÏÎÎÎÎÏÎÏÎÎÏÎÏ ÏÎÏ ÎÏÏÎÎÎ ÎÏÎÎÎÏÏÎÎÎ, ÏÏÎÏÎÎÎÏÎÎÎÏÏÎ "
+"<code>set_font(font)</code> (ÏÏÎÏ <code>font</code> ÎÎÎÎÎ ÏÎ ÏÎÎÎÎ ÏÎÏ "
+"ÎÏÎÎÎÎÏÎÏÎÎÏÎÏ) Î <code>set_font_desc(font)</code> (ÏÏÎÏ <code>font</code> "
+"ÎÎÎÎÎ Î PangoFontDescription)."
+
+#: C/fontchooserwidget.py.page:37(item/p)
+msgid ""
+"To get the selected font use <code>get_font()</code> or <code>get_font_desc()"
+"</code>."
+msgstr ""
+"ÎÎÎ ÏÎ ÎÎÏÎ ÏÎÏ ÎÏÎÎÎÎÎÎÎÎÏ ÎÏÎÎÎÎÏÎÏÎÎÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÏÏÎ <code>get_font()</"
+"code> Î <code>get_font_desc()</code>."
+
+#: C/fontchooserwidget.py.page:38(item/p)
+msgid ""
+"To change the text which is shown in the preview area, use "
+"<code>set_preview_text()</code>."
+msgstr ""
+"ÎÎÎ ÎÎÎÎÎÎ ÏÎÏ ÎÎÎÎÎÎÎÏ ÏÎÏ ÏÏÎÎÎÎÎÎÏÎÎ ÏÏÎÎ ÏÎÏÎÎÏÎ ÏÏÎÎÏÎÏÎÏÏÎÏÎÏ, "
+"ÏÏÎÏÎÎÎÏÎÎÎÏÏÎ <code>set_preview_text()</code>."
+
+#: C/fontchooserwidget.py.page:45(item/p)
+msgid ""
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkFontChooserWidget.";
+"html\">GtkFontChooserWidget</link>"
+msgstr ""
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkFontChooserWidget.";
+"html\">GtkFontChooserWidget</link>"
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/getting-ready.page:39(media)
+msgctxt "_"
+msgid "external ref='media/ubuntu.png' md5='40845e4a40b335b1958da1403f01c13f'"
+msgstr "external ref='media/ubuntu.png' md5='40845e4a40b335b1958da1403f01c13f'"
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/getting-ready.page:44(media)
+msgctxt "_"
+msgid "external ref='media/fedora.png' md5='19add55f4349fd9e90f3a50b344ba626'"
+msgstr "external ref='media/fedora.png' md5='19add55f4349fd9e90f3a50b344ba626'"
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/getting-ready.page:49(media)
+msgctxt "_"
+msgid ""
+"external ref='media/opensuse.png' md5='a852a94199328e2f978c7f6a55bf8b54'"
+msgstr ""
+"external ref='media/opensuse.png' md5='a852a94199328e2f978c7f6a55bf8b54'"
+
+#: C/getting-ready.page:6(info/title)
+msgctxt "link"
+msgid "Install GNOME development tools"
+msgstr "ÎÎÎÎÏÎÏÏÎÏÎ ÎÏÎÎÎÎÎÏÎ ÎÎÎÏÏÏÎÎÏ GNOME"
+
+#: C/getting-ready.page:16(page/title)
+msgid "Getting ready for GNOME development"
+msgstr "ÎÏÎÎÎÎÏÎÎ ÎÎÎ ÎÎÎÏÏÏÎÎ GNOME"
+
+#: C/getting-ready.page:19(section/title)
+msgid "Install the required tools"
+msgstr "ÎÎÎÎÏÎÏÏÎÏÎ ÏÏÎ ÎÏÎÎÏÎÏÎÎÎÏÎ ÎÏÎÎÎÎÎÏÎ"
+
+#: C/getting-ready.page:20(section/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 ""
+"ÎÏÎÎ ÎÎ ÎÏÎÏÎÏÎÏÎ ÎÎ ÎÎÎÎÎÎÏÎÏÎ ÏÎÎ ÎÏÎÎÎÎÏÎÎÎÏÎ ÎÎ ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÏÎÏÏÎÏÎÏÎ "
+"ÏÎ ÎÏÎÎÏÎÏÎÎÎÎ ÎÏÎÎÎÎÎÎ ÎÎÎ ÏÎÎ ÎÎÎÏÏÏÎÎ ÏÎÏ GNOME ÏÏÎÎ ÏÏÎÎÎÎÎÏÏÎ ÏÎÏ. ÎÏÏÏ "
+"ÎÎÎ ÏÏÎÏÎÎ ÎÎ ÏÎÏÎÎ ÏÎÎÏ ÎÏÏ ÎÎÎÎ ÎÎÏÏÎ."
+
+#: C/getting-ready.page:25(section/title)
+msgid "Automatic installation"
+msgstr "ÎÏÏÏÎÎÏÎ ÎÎÎÎÏÎÏÏÎÏÎ"
+
+#: C/getting-ready.page:26(section/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 ""
+"ÎÎ ÎÎÎ ÎÎÎÎÎÏÏÎÎÎÎ ÎÎÎÎÎÎÎ ÎÎ ÏÏÎÏÎÎ ÎÎ ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÎÏÎÏÏÎÏÎÏÎ ÎÏÎÎ ÏÎ "
+"ÎÏÎÎÏÎÏÎÎÎÎ ÏÎÎÎÏÎ ÎÎ ÎÎÎÎ ÏÏÎ <link href=\"media/gnome-devtools.catalog"
+"\">ÎÎÎÎÏÎÏÏÎÏÎ ÏÏÏÎ</link>."
+
+#: C/getting-ready.page:31(section/title)
+msgid "Manual installation"
+msgstr "ÎÎÎÏÎÎÎÎÎÏÎ ÎÎÎÎÏÎÏÏÎÏÎ"
+
+#: C/getting-ready.page:32(section/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 ""
+"ÎÎ ÏÏÎÏÎÎÎÏÎ ÏÎÎÏÎÎÎÎÎÏÎ ÎÎÎÎÏÎÏÏÎÏÎ ÎÏÎÏÎÎÏÎ ÎÎ ÎÏÎÎÏÎ ÎÎÎÎÎÎÏ ÎÎÎ ÏÎÏ "
+"ÏÎÎÎÎÎÎÏ ÎÎÎÎÎÎÎÏ ÏÏÎ <link href=\"http://live.gnome.org/DeveloperTools/";
+"Installation\">ÎÎÎÎ GNOME</link>. ÎÎÏÎÏÏÎ ÏÏÎÎ ÎÎÎÏÎÎ ÎÎÎ ÎÎ ÏÎÏÎ ÎÎÎÏÎ ÏÏÎ "
+"ÏÎÎÎÎÎ ÎÎÎÎÏÎÏÏÎÏÎÏ ÎÎÎ ÏÎ ÎÎÎÎÎÎÎ ÏÎÏ:"
+
+#: C/getting-ready.page:37(item/p)
+msgid ""
+"<link href=\"http://live.gnome.org/DeveloperTools/Installation/Ubuntu\";> "
+"<media type=\"image\" mime=\"image/png\" src=\"media/ubuntu.png\">Ubuntu</"
+"media> </link>"
+msgstr ""
+"<link href=\"http://live.gnome.org/DeveloperTools/Installation/Ubuntu\";> "
+"<media type=\"image\" mime=\"image/png\" src=\"media/ubuntu.png\">Ubuntu</"
+"media> </link>"
+
+#: C/getting-ready.page:42(item/p)
+msgid ""
+"<link href=\"http://live.gnome.org/DeveloperTools/Installation/Fedora\";> "
+"<media type=\"image\" mime=\"image/png\" src=\"media/fedora.png\">Fedora</"
+"media> </link>"
+msgstr ""
+"<link href=\"http://live.gnome.org/DeveloperTools/Installation/Fedora\";> "
+"<media type=\"image\" mime=\"image/png\" src=\"media/fedora.png\">Fedora</"
+"media> </link>"
+
+#: C/getting-ready.page:47(item/p)
+msgid ""
+"<link href=\"http://live.gnome.org/DeveloperTools/Installation/OpenSuSE\";> "
+"<media type=\"image\" mime=\"image/png\" src=\"media/opensuse.png"
+"\">OpenSuSE</media> </link>"
+msgstr ""
+"<link href=\"http://live.gnome.org/DeveloperTools/Installation/OpenSuSE\";> "
+"<media type=\"image\" mime=\"image/png\" src=\"media/opensuse.png"
+"\">OpenSuSE</media> </link>"
+
+#: C/getting-ready.page:52(item/p)
+msgid ""
+"<link href=\"http://live.gnome.org/DeveloperTools/Installation\";>Others</"
+"link>"
+msgstr ""
+"<link href=\"http://live.gnome.org/DeveloperTools/Installation\";>ÎÎÎÎ</link>"
+
+#: C/getting-ready.page:59(section/title)
+msgid "Required versions"
+msgstr "ÎÏÎÎÏÎÏÎÎÎÎÏ ÎÎÎÏÏÎÎÏ"
+
+#: C/getting-ready.page:60(section/p)
+msgid ""
+"The guides assume that you have at least the following versions of the tools "
+"installed:"
+msgstr ""
+"ÎÎ ÎÎÎÎÎÎ ÏÏÎÎÎÏÎÏÎ ÏÏÎ ÎÏÎÏÎ ÏÎÏÎÎÏÎÏÏÎÎ ÏÎÏ ÏÎÏÎÎÎÏÏ ÎÎÎÏÏÎÎÏ ÏÏÎ "
+"ÎÏÎÎÎÎÎÏÎ ÎÎÎÎÏÎÏÏÎÎÎÎÎÏ:"
+
+#: C/getting-ready.page:63(item/p)
+msgid "Anjuta - 3.0"
+msgstr "Anjuta - 3.0"
+
+#: C/getting-ready.page:64(item/p)
+msgid "Devhelp - 3.0"
+msgstr "Devhelp - 3.0"
+
+#: C/getting-ready.page:65(item/p)
+msgid "Glade - 3.10"
+msgstr "Glade - 3.10"
+
+#: C/getting-ready.page:67(section/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 ""
+"ÎÏÏÎÎÎ, ÎÏÎÎÎÎÎÏÎÏÎ ÎÎÏÏÎÏÎ ÎÎÎÎÏÎ ÎÎ ÎÎÏÎÎÏÎÎ ÎÏÎÏÎÏ. ÎÎÏ ÎÏÏÏÎÎÏÏÎ ÎÎÎÎ "
+"ÎÎÎÏÎÎÎÎÏÎ ÎÎ ÏÎ <link xref=\"index\">ÏÎÏÎÎÎÎÎÎÎÏÎ</link>."
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/gmenu.c.page:21(media)
+msgctxt "_"
+msgid "external ref='media/gmenu.c.png' md5='f305fc3cae8d16d72b734ee53b559e33'"
+msgstr ""
+"external ref='media/gmenu.c.png' md5='f305fc3cae8d16d72b734ee53b559e33'"
+
+#: C/gmenu.c.page:7(info/title)
+msgctxt "text"
+msgid "GMenu (C)"
+msgstr "GMenu (C)"
+
+#: C/gmenu.c.page:17(info/desc) C/gmenu.js.page:17(info/desc)
+#: C/gmenu.vala.page:23(info/desc)
+msgid "A simple implementation of GMenuModel"
+msgstr "ÎÎÎ ÎÏÎÎ ÏÎÎÏÎÎÎÏÎ ÏÎÏ GMenuModel"
+
+#: C/gmenu.c.page:20(page/title) C/gmenu.js.page:20(page/title)
+#: C/gmenu.py.page:26(page/title) C/gmenu.vala.page:26(page/title)
+msgid "GMenu"
+msgstr "GMenu"
+
+#: C/gmenu.c.page:22(page/p) C/gmenu.js.page:22(page/p)
+#: C/gmenu.py.page:28(page/p) C/gmenu.vala.page:34(page/p)
+msgid "A GtkApplication with a simple GMenu and SimpleActions"
+msgstr "ÎÎÎ GtkApplication ÎÎ ÎÎÎ ÎÏÎÏ GMenu ÎÎÎ SimpleActions"
+
+#: C/gmenu.c.page:25(page/code)
+#, no-wrap
+msgid ""
+"\n"
+"#include &lt;gtk/gtk.h&gt;\n"
+"\n"
+"static void\n"
+"new_window (GSimpleAction *action,\n"
+"            GVariant      *parameter,\n"
+"            gpointer       user_data)\n"
+"{\n"
+"  g_print (\"This does nothing. It is only a demonstration.\\n\");\n"
+"}\n"
+"\n"
+"static void\n"
+"quit (GSimpleAction *action,\n"
+"      GVariant      *parameter,\n"
+"      gpointer       user_data)\n"
+"{\n"
+"  GApplication *application = user_data;\n"
+"\n"
+"  g_application_quit (application);\n"
+"}\n"
+"\n"
+"static void\n"
+"startup (GtkApplication *application,\n"
+"         gpointer        user_data)\n"
+"{\n"
+"  static const GActionEntry actions[] = {\n"
+"    { \"new\", new_window },\n"
+"    { \"quit\", quit }\n"
+"  };\n"
+"\n"
+"  GMenu *menu;\n"
+"\n"
+"  g_action_map_add_action_entries (G_ACTION_MAP (application), actions, G_N_ELEMENTS (actions), application);\n"
+"\n"
+"  menu = g_menu_new ();\n"
+"  g_menu_append (menu, \"New\", \"app.new\");\n"
+"  g_menu_append (menu, \"Quit\", \"app.quit\");\n"
+"  gtk_application_set_app_menu (application, G_MENU_MODEL (menu));\n"
+"  g_object_unref (menu);\n"
+"}\n"
+"\n"
+"static void\n"
+"activate (GtkApplication *app,\n"
+"          gpointer        user_data)\n"
+"{\n"
+"  GtkWidget *window;\n"
+"\n"
+"  window = gtk_application_window_new (app);\n"
+"\n"
+"  gtk_window_set_application (GTK_WINDOW (window), GTK_APPLICATION (app));\n"
+"  gtk_window_set_title (GTK_WINDOW (window), \"Hello GNOME\");\n"
+"\n"
+"  gtk_widget_show_all (GTK_WIDGET (window));\n"
+"}\n"
+"\n"
+"int\n"
+"main (int argc, char **argv)\n"
+"{\n"
+"  GtkApplication *app;\n"
+"  int status;\n"
+"\n"
+"  app = gtk_application_new (\"org.gtk.example\",G_APPLICATION_FLAGS_NONE);\n"
+"  g_signal_connect (app, \"startup\", G_CALLBACK (startup), NULL);\n"
+"  g_signal_connect (app, \"activate\", G_CALLBACK (activate), NULL);\n"
+"  status = g_application_run (G_APPLICATION (app), argc, argv);\n"
+"  g_object_unref (app);\n"
+"  return status;\n"
+"}\n"
+msgstr ""
+"\n"
+"#include &lt;gtk/gtk.h&gt;\n"
+"\n"
+"static void\n"
+"new_window (GSimpleAction *action,\n"
+"            GVariant      *parameter,\n"
+"            gpointer       user_data)\n"
+"{\n"
+"  g_print (\"This does nothing. It is only a demonstration.\\n\");\n"
+"}\n"
+"\n"
+"static void\n"
+"quit (GSimpleAction *action,\n"
+"      GVariant      *parameter,\n"
+"      gpointer       user_data)\n"
+"{\n"
+"  GApplication *application = user_data;\n"
+"\n"
+"  g_application_quit (application);\n"
+"}\n"
+"\n"
+"static void\n"
+"startup (GtkApplication *application,\n"
+"         gpointer        user_data)\n"
+"{\n"
+"  static const GActionEntry actions[] = {\n"
+"    { \"new\", new_window },\n"
+"    { \"quit\", quit }\n"
+"  };\n"
+"\n"
+"  GMenu *menu;\n"
+"\n"
+"  g_action_map_add_action_entries (G_ACTION_MAP (application), actions, G_N_ELEMENTS (actions), application);\n"
+"\n"
+"  menu = g_menu_new ();\n"
+"  g_menu_append (menu, \"New\", \"app.new\");\n"
+"  g_menu_append (menu, \"Quit\", \"app.quit\");\n"
+"  gtk_application_set_app_menu (application, G_MENU_MODEL (menu));\n"
+"  g_object_unref (menu);\n"
+"}\n"
+"\n"
+"static void\n"
+"activate (GtkApplication *app,\n"
+"          gpointer        user_data)\n"
+"{\n"
+"  GtkWidget *window;\n"
+"\n"
+"  window = gtk_application_window_new (app);\n"
+"\n"
+"  gtk_window_set_application (GTK_WINDOW (window), GTK_APPLICATION (app));\n"
+"  gtk_window_set_title (GTK_WINDOW (window), \"Hello GNOME\");\n"
+"\n"
+"  gtk_widget_show_all (GTK_WIDGET (window));\n"
+"}\n"
+"\n"
+"int\n"
+"main (int argc, char **argv)\n"
+"{\n"
+"  GtkApplication *app;\n"
+"  int status;\n"
+"\n"
+"  app = gtk_application_new (\"org.gtk.example\",G_APPLICATION_FLAGS_NONE);\n"
+"  g_signal_connect (app, \"startup\", G_CALLBACK (startup), NULL);\n"
+"  g_signal_connect (app, \"activate\", G_CALLBACK (activate), NULL);\n"
+"  status = g_application_run (G_APPLICATION (app), argc, argv);\n"
+"  g_object_unref (app);\n"
+"  return status;\n"
+"}\n"
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/gmenu.js.page:21(media)
+msgctxt "_"
+msgid ""
+"external ref='media/gmenu.js.png' md5='16b8bee122197771ec8498dac42f196b'"
+msgstr ""
+"external ref='media/gmenu.js.png' md5='16b8bee122197771ec8498dac42f196b'"
+
+#: C/gmenu.js.page:7(info/title)
+msgctxt "text"
+msgid "GMenu (JavaScript)"
+msgstr "GMenu (JavaScript)"
+
+#: C/gmenu.js.page:24(page/code)
+#, no-wrap
+msgid ""
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gio = imports.gi.Gio;\n"
+"const GLib = imports.gi.GLib;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"const Application = new Lang.Class ({\n"
+"    Name: 'Application',\n"
+"\n"
+"    //create the application\n"
+"    _init: function () {\n"
+"        this.application = new Gtk.Application ({\n"
+"            application_id: 'org.example.myapp',\n"
+"            flags: Gio.ApplicationFlags.FLAGS_NONE\n"
+"        });\n"
+"\n"
+"       //connect to 'activate' and 'startup' signals to the callback functions\n"
+"       this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"       this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    //create the UI (in this case it's just the ApplicationWindow\n"
+"    _buildUI: function() {\n"
+"        this._window = new Gtk.ApplicationWindow  ({ application: this.application,\n"
+"                                                   window_position: Gtk.WindowPosition.CENTER,\n"
+"                                                   title: \"Welcome to GNOME\" });\n"
+"\n"
+"        //uncommenting the line below will change the window size\n"
+"        //this._window.set_default_size(600, 400);\n"
+"\n"
+"        //show the window and all child widgets (none in this case)\n"
+"        this._window.show_all();\n"
+"    },\n"
+"\n"
+"    _showNew: function() {\n"
+"    print (\"This doesn't do anything. It is only a demonstration.\");\n"
+"    },\n"
+"\n"
+"    _showAbout: function() {\n"
+"        print (\"No AboutDialog here.  This is only a demonstration.\");\n"
+"    },\n"
+"\n"
+"    //create the menu items and connect the signals to the callback functions.\n"
+"    _initMenus: function() {\n"
+"        let menu = new Gio.Menu();\n"
+"        menu.append(\"New\",'app.new');\n"
+"        menu.append(\"About\", 'app.about');\n"
+"        menu.append(\"Quit\",'app.quit');\n"
+"        this.application.set_app_menu(menu);\n"
+"\n"
+"        let newAction = new Gio.SimpleAction ({ name: 'new' });\n"
+"        newAction.connect('activate', Lang.bind(this,\n"
+"            function() {\n"
+"                this._showNew();\n"
+"            }));\n"
+"        this.application.add_action(newAction);\n"
+"\n"
+"        let aboutAction = new Gio.SimpleAction ({ name: 'about' });\n"
+"        aboutAction.connect('activate', Lang.bind(this,\n"
+"            function() {\n"
+"                this._showAbout();\n"
+"            }));\n"
+"        this.application.add_action(aboutAction);\n"
+"\n"
+"        let quitAction = new Gio.SimpleAction ({ name: 'quit' });\n"
+"        quitAction.connect('activate', Lang.bind(this,\n"
+"            function() {\n"
+"                this._window.destroy();\n"
+"            }));\n"
+"         this.application.add_action(quitAction);\n"
+"    },\n"
+"\n"
+"    //callback function for 'activate' signal\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    //callback function for 'startup' signal\n"
+"    _onStartup: function() {\n"
+"        //You must call _initMenus() before calling _buildUI().\n"
+"        this._initMenus();\n"
+"        this._buildUI();\n"
+"    }\n"
+"});\n"
+"\n"
+"//run the application\n"
+"let app = new Application ();\n"
+"app.application.run (ARGV);\n"
+msgstr ""
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gio = imports.gi.Gio;\n"
+"const GLib = imports.gi.GLib;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"const Application = new Lang.Class ({\n"
+"    Name: 'Application',\n"
+"\n"
+"    //create the application\n"
+"    _init: function () {\n"
+"        this.application = new Gtk.Application ({\n"
+"            application_id: 'org.example.myapp',\n"
+"            flags: Gio.ApplicationFlags.FLAGS_NONE\n"
+"        });\n"
+"\n"
+"       //connect to 'activate' and 'startup' signals to the callback functions\n"
+"       this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"       this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    //create the UI (in this case it's just the ApplicationWindow\n"
+"    _buildUI: function() {\n"
+"        this._window = new Gtk.ApplicationWindow  ({ application: this.application,\n"
+"                                                   window_position: Gtk.WindowPosition.CENTER,\n"
+"                                                   title: \"Welcome to GNOME\" });\n"
+"\n"
+"        //uncommenting the line below will change the window size\n"
+"        //this._window.set_default_size(600, 400);\n"
+"\n"
+"        //show the window and all child widgets (none in this case)\n"
+"        this._window.show_all();\n"
+"    },\n"
+"\n"
+"    _showNew: function() {\n"
+"    print (\"This doesn't do anything. It is only a demonstration.\");\n"
+"    },\n"
+"\n"
+"    _showAbout: function() {\n"
+"        print (\"No AboutDialog here.  This is only a demonstration.\");\n"
+"    },\n"
+"\n"
+"    //create the menu items and connect the signals to the callback functions.\n"
+"    _initMenus: function() {\n"
+"        let menu = new Gio.Menu();\n"
+"        menu.append(\"New\",'app.new');\n"
+"        menu.append(\"About\", 'app.about');\n"
+"        menu.append(\"Quit\",'app.quit');\n"
+"        this.application.set_app_menu(menu);\n"
+"\n"
+"        let newAction = new Gio.SimpleAction ({ name: 'new' });\n"
+"        newAction.connect('activate', Lang.bind(this,\n"
+"            function() {\n"
+"                this._showNew();\n"
+"            }));\n"
+"        this.application.add_action(newAction);\n"
+"\n"
+"        let aboutAction = new Gio.SimpleAction ({ name: 'about' });\n"
+"        aboutAction.connect('activate', Lang.bind(this,\n"
+"            function() {\n"
+"                this._showAbout();\n"
+"            }));\n"
+"        this.application.add_action(aboutAction);\n"
+"\n"
+"        let quitAction = new Gio.SimpleAction ({ name: 'quit' });\n"
+"        quitAction.connect('activate', Lang.bind(this,\n"
+"            function() {\n"
+"                this._window.destroy();\n"
+"            }));\n"
+"         this.application.add_action(quitAction);\n"
+"    },\n"
+"\n"
+"    //callback function for 'activate' signal\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    //callback function for 'startup' signal\n"
+"    _onStartup: function() {\n"
+"        //You must call _initMenus() before calling _buildUI().\n"
+"        this._initMenus();\n"
+"        this._buildUI();\n"
+"    }\n"
+"});\n"
+"\n"
+"//run the application\n"
+"let app = new Application ();\n"
+"app.application.run (ARGV);\n"
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/gmenu.py.page:27(media)
+msgctxt "_"
+msgid ""
+"external ref='media/gmenu.py.png' md5='52c68b34d5d566f37e9f803dedb6353a'"
+msgstr ""
+"external ref='media/gmenu.py.png' md5='52c68b34d5d566f37e9f803dedb6353a'"
+
+#: C/gmenu.py.page:7(info/title)
+msgctxt "text"
+msgid "GMenu (Python)"
+msgstr "GMenu (Python)"
+
+#: C/gmenu.py.page:23(info/desc)
+msgid "A simple implementation of GMenu"
+msgstr "ÎÎÎ ÎÏÎÎ ÎÏÎÏÎÎÎÎ ÏÎÏ GMenuModel"
+
+#: C/gmenu.py.page:35(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"    from gi.repository import Gtk\n"
+"from gi.repository import Gio\n"
+"import sys\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"GMenu Example\", application=app)\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup (self):\n"
+"        # start the application\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"        # create a menu\n"
+"        menu = Gio.Menu()\n"
+"        # append to the menu three options\n"
+"        menu.append(\"New\", \"app.new\")\n"
+"        menu.append(\"About\", \"app.about\")\n"
+"        menu.append(\"Quit\", \"app.quit\")\n"
+"        # set the menu as menu of the application\n"
+"        self.set_app_menu(menu)\n"
+"\n"
+"        # create an action for the option \"new\" of the menu\n"
+"        new_action = Gio.SimpleAction.new(\"new\", None)\n"
+"        # connect it to the callback function new_cb\n"
+"        new_action.connect(\"activate\", self.new_cb)\n"
+"        # add the action to the application\n"
+"        self.add_action(new_action)\n"
+"\n"
+"        # option \"about\"\n"
+"        about_action = Gio.SimpleAction.new(\"about\", None)\n"
+"        about_action.connect(\"activate\", self.about_cb)\n"
+"        self.add_action(about_action)\n"
+"\n"
+"        # option \"quit\"\n"
+"        quit_action = Gio.SimpleAction.new(\"quit\", None)\n"
+"        quit_action.connect(\"activate\", self.quit_cb)\n"
+"        self.add_action(quit_action)\n"
+"\n"
+"    # callback function for \"new\"\n"
+"    def new_cb(self, action, parameter):\n"
+"        print \"This does nothing. It is only a demonstration.\"\n"
+"\n"
+"    # callback function for \"about\"\n"
+"    def about_cb(self, action, parameter):\n"
+"        print \"No AboutDialog for you. This is only a demonstration.\"\n"
+"\n"
+"    # callback function for \"quit\"\n"
+"    def quit_cb(self, action, parameter):\n"
+"        print \"You have quit.\"\n"
+"        self.quit()\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
+msgstr ""
+"\n"
+"    from gi.repository import Gtk\n"
+"from gi.repository import Gio\n"
+"import sys\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"GMenu Example\", application=app)\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup (self):\n"
+"        # start the application\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"        # create a menu\n"
+"        menu = Gio.Menu()\n"
+"        # append to the menu three options\n"
+"        menu.append(\"New\", \"app.new\")\n"
+"        menu.append(\"About\", \"app.about\")\n"
+"        menu.append(\"Quit\", \"app.quit\")\n"
+"        # set the menu as menu of the application\n"
+"        self.set_app_menu(menu)\n"
+"\n"
+"        # create an action for the option \"new\" of the menu\n"
+"        new_action = Gio.SimpleAction.new(\"new\", None)\n"
+"        # connect it to the callback function new_cb\n"
+"        new_action.connect(\"activate\", self.new_cb)\n"
+"        # add the action to the application\n"
+"        self.add_action(new_action)\n"
+"\n"
+"        # option \"about\"\n"
+"        about_action = Gio.SimpleAction.new(\"about\", None)\n"
+"        about_action.connect(\"activate\", self.about_cb)\n"
+"        self.add_action(about_action)\n"
+"\n"
+"        # option \"quit\"\n"
+"        quit_action = Gio.SimpleAction.new(\"quit\", None)\n"
+"        quit_action.connect(\"activate\", self.quit_cb)\n"
+"        self.add_action(quit_action)\n"
+"\n"
+"    # callback function for \"new\"\n"
+"    def new_cb(self, action, parameter):\n"
+"        print \"This does nothing. It is only a demonstration.\"\n"
+"\n"
+"    # callback function for \"about\"\n"
+"    def about_cb(self, action, parameter):\n"
+"        print \"No AboutDialog for you. This is only a demonstration.\"\n"
+"\n"
+"    # callback function for \"quit\"\n"
+"    def quit_cb(self, action, parameter):\n"
+"        print \"You have quit.\"\n"
+"        self.quit()\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
+
+#: C/gmenu.py.page:40(section/title)
+msgid "Useful methods for a GSimpleAction and a GMenu"
+msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ GSimpleAction ÎÎÎ ÎÎÎ GMenu"
+
+#: C/gmenu.py.page:42(section/p)
+msgid "Useful methods for a GSimpleAction:"
+msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ GSimpleAction:"
+
+#: C/gmenu.py.page:44(item/p)
+msgid ""
+"To create a new action that is <em>stateless</em>, that is, an action that "
+"do not retain or depend on a state given by the action itself, use"
+msgstr ""
+"ÎÎÎ ÏÎ ÎÎÎÎÎÏÏÎÎÎ ÎÎÎÏ ÎÎÎÏ ÎÎÎÏÎÎÎÎÏ ÏÎÏ ÎÎÎÎÎ <em>ÏÏÏÎÏ ÎÎÏÎÏÏÎÏÎ</em>, "
+"ÎÎÎÎÎÎ, ÎÎÎ ÎÎÎÏÎÎÎÎ ÏÎÏ ÎÎÎ ÎÏÎÏÎ Î ÎÎÎÏÏÎÏÎÎ ÎÏÏ ÏÎ ÎÎÎÎÎÎÎÎ ÎÎÏÎÏÏÎÏÎ ÎÏÏ "
+"ÏÎÎ ÎÎÎÎ ÏÎÎ ÎÎÎÏÎÎÎÎ, ÏÏÎÏÎÎÎÏÎÎÎÏÏÎ"
+
+#: C/gmenu.py.page:45(item/code)
+#, no-wrap
+msgid ""
+"\n"
+"action = Gio.SimpleAction.new(\"name\", parameter_type)"
+msgstr ""
+"\n"
+"action = Gio.SimpleAction.new(\"name\", parameter_type)"
+
+#: C/gmenu.py.page:47(item/p)
+msgid ""
+"where <code>\"name\"</code> is the name of the action and "
+"<code>parameter_type</code> is the type of the parameters that the action "
+"receives when being activated. This can be <code>None</code>, or <code>GLib."
+"VariantType.new('s')</code> if the parameter is of type <code>str</code>, or "
+"instead of <code>'s'</code> a character as described <link href=\"http://";
+"developer.gnome.org/glib/unstable/glib-GVariantType.html\">here</link>. To "
+"create a new <em>stateful</em> (i.e. not stateless) action, use"
+msgstr ""
+"ÏÏÎÏ <code>\"name\"</code> ÎÎÎÎÎ ÏÎ ÏÎÎÎÎ ÏÎÏ ÎÎÎÏÎÎÎÎÏ ÎÎÎ "
+"<code>parameter_type</code> ÎÎÎÎÎ Î ÏÏÏÎÏ ÏÏÎ ÏÎÏÎÎÎÏÏÏÎ ÏÎÏ ÎÎÏÎÏÎÎ Î "
+"ÎÎÎÏÎÎÎÎ ÏÏÎÎ ÎÎÎÏÎÎÏÎÎÎÎÏÎÎ. ÎÏÏÏ ÎÏÎÏÎÎ ÎÎ ÎÎÎÎÎ <code>None</code>, Î "
+"<code>GLib.VariantType.new('s')</code> ÎÎÎ Î ÏÎÏÎÎÎÏÏÎÏ ÎÎÎÎÎ Î ÏÏÏÎÏ "
+"<code>str</code>, Î ÏÏÎ ÎÎÏÎ ÏÎÏ <code>'s'</code> ÎÎÎÏ ÏÎÏÎÎÏÎÏÎÏ ÏÏÏÏ "
+"ÏÎÏÎÎÏÎÏÎÏÎÎ <link href=\"http://developer.gnome.org/glib/unstable/glib-";
+"GVariantType.html\">ÎÎÏ</link>. ÎÎÎ ÏÎ ÎÎÎÎÎÏÏÎÎÎ ÎÎÎÏ ÎÎÎÏ ÎÎÎÏÎÎÎÎÏ <em>ÎÎ "
+"ÎÎÏÎÏÏÎÏÎ</em> (ÎÎÎÎÎÎ ÏÏÎ ÏÏÏÎÏ ÎÎÏÎÏÏÎÏÎ), ÏÏÎÏÎÎÎÏÎÎÎÏÏÎ"
+
+#: C/gmenu.py.page:48(item/code)
+#, no-wrap
+msgid ""
+"\n"
+"action = Gio.SimpleAction.new_stateful(\"name\", parameter_type, initial_state)"
+msgstr ""
+"\n"
+"action = Gio.SimpleAction.new_stateful(\"name\", parameter_type, initial_state)"
+
+#: C/gmenu.py.page:50(item/p)
+msgid ""
+"where <code>initial_state</code> is defined as a GVariant - for instance "
+"<code>Glib.Variant.new_string('start')</code>; for a list of possiblities "
+"see <link href=\"http://developer.gnome.org/glib/unstable/glib-GVariant.html";
+"\">here</link>."
+msgstr ""
+"ÏÏÎÏ <code>initial_state</code> ÎÏÎÎÎÏÎÎ ÏÏ ÎÎÎ GVariant - ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ "
+"<code>Glib.Variant.new_string('start')</code>; ÎÎÎ ÎÎÎ ÎÎÏÏÎ ÎÏÎÎÏÎÏÎÏÏÎ "
+"ÎÎÎÏÎ <link href=\"http://developer.gnome.org/glib/unstable/glib-GVariant.";
+"html\">ÎÎÏ</link>."
+
+#: C/gmenu.py.page:51(item/p)
+msgid ""
+"<code>set_enabled(True)</code> sets the action as enabled; an action must be "
+"enabled in order to be activated or in order to have its state changed from "
+"outside callers. This should only be called by the implementor of the "
+"action. Users of the action should not attempt to modify its enabled flag."
+msgstr ""
+"<code>set_enabled(True)</code> ÎÏÎÎÎÎ ÏÎÎ ÎÎÎÏÎÎÎÎ ÏÏ ÎÎÎÏÎÎÂ ÎÎÎ ÎÎÎÏÎÎÎÎ "
+"ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎ ÎÎÎÏÎÎ ÎÎÎ ÎÎ ÎÎÎÏÎÎÏÎÎÎÎÎÎ Î ÎÎÎ ÎÎ ÎÏÎÎ ÏÎÎ ÎÎÏÎÏÏÎÏÎ ÏÎÏ "
+"ÎÎÎÎÎÎÎÎÎ ÎÏÏ ÎÎÏÏÎÏÎÎÎÏ ÎÎÎÏÎÎÏ . ÎÏÏÏ ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎÏÎÎ ÎÏÎÎ ÎÏÏ ÏÎÎ "
+"ÎÏÎÏÎÎÎÎ ÏÎÏ ÎÎÎÏÎÎÎÎÏ. ÎÎ ÏÏÎÏÏÎÏ ÏÎÏ ÎÎÎÏÎÎÎÎÏ ÎÎÎ ÏÏÎÏÎÎ ÎÎ ÏÏÎÏÏÎÎÎÏÎ ÎÎ "
+"ÏÏÎÏÎÏÎÎÎÏÎÏÎ ÏÎÎ ÎÎÎÏÎÎ ÏÎÎÎÎÎ ÏÎÏ."
+
+#: C/gmenu.py.page:52(item/p)
+msgid ""
+"<code>set_state(state)</code>, where <code>state</code> is a GVariant, sets "
+"the state of the action, updating the 'state' property to the given value. "
+"This should only be called by the implementor of the action; users of the "
+"action should instead call <code>change_state(state)</code> (where "
+"<code>state</code> is as above) to request the change."
+msgstr ""
+"<code>set_state(state)</code>, ÏÏÎÏ <code>state</code> ÎÎÎÎÎ ÎÎÎ GVariant, "
+"ÏÎÏ ÎÏÎÎÎÎ ÏÎÎ ÎÎÏÎÏÏÎÏÎ ÏÎÏ ÎÎÎÏÎÎÎÎÏ, ÎÎÎÎÎÏÏÎÎÎÏÎÏ ÏÎÎ ÎÎÎÏÏÎÏÎ 'state' "
+"ÏÏÎ ÎÎÎÎÎÎÎÎ ÏÎÎÎ. ÎÏÏÎ ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎÏÎÎ ÎÏÎÎ ÎÏÏ ÏÎÎ ÎÎÏÎÎÎÏÏÎ ÏÎÏ "
+"ÎÎÎÏÎÎÎÎÏÂ ÎÎ ÏÏÎÏÏÎÏ ÏÎÏ ÎÎÎÏÎÎÎÎÏ ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÏÎ <code>change_state"
+"(state)</code> (ÏÏÎÏ <code>state</code> ÎÎÎÎÎ ÏÏÏÏ ÏÎÎ ÏÎÎÏ) ÎÎÎ ÎÎ ÎÎÏÎÏÎ "
+"ÏÎÎ ÎÎÎÎÎÎ."
+
+#: C/gmenu.py.page:55(section/p)
+msgid "Useful methods for a GMenu:"
+msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ GMenu:"
+
+#: C/gmenu.py.page:57(item/p)
+msgid ""
+"To insert an item in the menu in position <code>position</code>, use "
+"<code>insert(position, label, detailed_action)</code>, where <code>label</"
+"code> is the label that will appear in the menu and <code>detailed_action</"
+"code> is a string composed of the name of the action to which we prepend the "
+"prefix <code>app.</code>. A more detailed discussion of this can be found in "
+"<link xref=\"menubar.py#win-app\"/>."
+msgstr ""
+"ÎÎÎ ÎÎÏÎÎÏÎÎ ÎÎÏÏ ÏÏÎÎÏÎÎÎÏ ÏÏÎ ÎÎÎÎÏ ÏÏÎ ÎÎÏÎ <code>position</code>, "
+"ÏÏÎÏÎÎÎÏÎÎÎÏÏÎ <code>insert(position, label, detailed_action)</code>, ÏÏÎÏ "
+"<code>label</code> ÎÎÎÎÎ Î ÎÏÎÎÎÏÎ ÏÎÏ ÎÎ ÎÎÏÎÎÎÏÏÎÎ ÏÏÎ ÎÎÎÎÏ ÎÎÎ "
+"<code>detailed_action</code> ÎÎÎÎÎ ÎÎÎ ÏÏÎÎÎÎÎÏÎÎÏÎ ÎÏÎÏÎÎÎÏÎÎÎÎ ÎÏÏ ÏÎ "
+"ÏÎÎÎÎ ÏÎÏ ÎÎÎÏÎÎÎÎÏ ÏÏÎÎ ÎÏÎÎÎ ÏÏÎÏÎÏÏÎÏÎÎ ÏÎ ÏÏÏÎÎÎÎ <code>app.</code>. ÎÎÎ "
+"ÏÎÎ ÎÎÏÏÎÎÎÏÎÏ ÏÏÎÎÏÎÏÎ ÎÏÏÎÏ ÎÏÎÏÎÎ ÎÎ ÎÏÎÎÎÎ ÏÏÎ <link xref=\"menubar."
+"py#win-app\"/>."
+
+#: C/gmenu.py.page:58(item/p)
+msgid ""
+"To append or prepend an item in the menu use respectively <code>append"
+"(label, detailed_action)</code> and <code>prepend(label, detailed_action)</"
+"code>."
+msgstr ""
+"ÎÎÎ ÏÏÎÏÎÏÏÎÏÎ Î ÏÏÏÏÎÎÎ ÎÎÏÏ ÏÏÎÎÏÎÎÎÏ ÏÏÎ ÎÎÎÎÏ ÏÏÎÏÎÎÎÏÎÎÎÏÏÎ ÎÎÏÎÏÏÎÎÏÎ "
+"<code>append(label, detailed_action)</code> ÎÎÎ <code>prepend(label, "
+"detailed_action)</code>."
+
+#: C/gmenu.py.page:59(item/p)
+msgid ""
+"Another way of adding items to the menu is to create them as "
+"<code>GMenuItem</code>s and use <code>insert_item(position, item)</code>, "
+"<code>append_item(item)</code>, or <code>prepend_item(item)</code>; so for "
+"instance we might have:"
+msgstr ""
+"ÎÎÎÏ ÎÎÎÎÏ ÏÏÏÏÎÏ ÏÏÎÏÎÎÎÎÏ ÏÏÎÎÏÎÎÏÎ ÏÏÎ ÎÎÎÎÏ ÎÎÎÎÎ Î ÎÎÎÎÎÏÏÎÎÎ ÏÎÏÏ ÏÏ "
+"<code>GMenuItem</code> ÎÎÎ Î ÏÏÎÏÎ <code>insert_item(position, item)</code>, "
+"<code>append_item(item)</code>, Î <code>prepend_item(item)</code>; ÎÏÏÎ ÎÎÎ "
+"ÏÎÏÎÎÎÎÎÎÎ ÏÏÎÏÎÎ ÎÎ ÎÏÎÏÎÎ:"
+
+#: C/gmenu.py.page:60(item/code)
+#, no-wrap
+msgid ""
+"\n"
+"about = Gio.MenuItem.new(\"About\", \"app.about\")\n"
+"menu.append_item(about)"
+msgstr ""
+"\n"
+"about = Gio.MenuItem.new(\"About\", \"app.about\")\n"
+"menu.append_item(about)"
+
+#: C/gmenu.py.page:64(item/p)
+msgid ""
+"We can also add a whole subsection in a menu using <code>insert_section"
+"(position, label, section)</code>, <code>append_section(label, section)</"
+"code>, or <code>prepend_section(label, section)</code>, where <code>label</"
+"code> is the title of the subsection."
+msgstr ""
+"ÎÏÎÏÎÏÎÎ ÎÏÎÏÎÏ ÎÎ ÏÏÎÏÎÎÏÎÏÎÎ ÎÎÎ ÎÎÏÎÎÎÏÎ ÏÏÎÎÎÏÏÎÏÎ ÏÎ ÎÎÎ ÎÎÎÎÏ "
+"ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ <code>insert_section(position, label, section)</code>, "
+"<code>append_section(label, section)</code>, Î <code>prepend_section(label, "
+"section)</code>, ÏÏÎÏ <code>label</code> ÎÎÎÎÎ Î ÏÎÏÎÎÏ ÏÎÏ ÏÏÎÎÎÏÏÎÏÎÏ."
+
+#: C/gmenu.py.page:65(item/p)
+msgid ""
+"To add a submenu that will expand and collapse, use <code>insert_submenu"
+"(position, label, section)</code>, <code>append_submenu(label, section)</"
+"code>, or <code>prepend_submenu(label, section)</code>, where <code>label</"
+"code> is the title of the subsection."
+msgstr ""
+"ÎÎÎ ÎÎ ÏÏÎÏÎÎÏÎÏÎÎ ÎÎÎ ÏÏÎÎÎÎÎÏ ÏÎÏ ÎÎ ÎÏÎÎÏÎÎÎÎ ÎÎÎ ÎÎ ÏÏÎÏÏÏÏÎÎÎ, "
+"ÏÏÎÏÎÎÎÏÎÎÎÏÏÎ <code>insert_submenu(position, label, section)</code>, "
+"<code>append_submenu(label, section)</code>, Î <code>prepend_submenu(label, "
+"section)</code>, ÏÏÎÏ <code>label</code> ÎÎÎÎÎ Î ÏÎÏÎÎÏ ÏÎÏ ÏÏÎÎÎÏÏÎÏÎÏ."
+
+#: C/gmenu.py.page:66(item/p)
+msgid "To remove an item from the menu, use <code>remove(postion)</code>."
+msgstr ""
+"ÎÎÎ ÏÎÎ ÎÏÎÎÏÎÏÎ ÎÎÏÏ ÏÏÎÎÏÎÎÎÏ ÎÏÏ ÏÎ ÎÎÎÎÏ, ÏÏÎÏÎÎÎÏÎÎÎÏÏÎ <code>remove"
+"(postion)</code>."
+
+#: C/gmenu.py.page:67(item/p)
+msgid "To set a label for the menu, use <code>set_label(label)</code>."
+msgstr ""
+"ÎÎÎ ÎÏÎÏÎÏ ÎÎÎÏ ÎÏÎÎÎÏÎÏ ÎÎÎ ÏÎ ÎÎÎÎÏ, ÏÏÎÏÎÎÎÏÎÎÎÏÏÎ <code>set_label(label)"
+"</code>."
+
+#: C/gmenu.py.page:78(item/p)
+msgid ""
+"<link href=\"http://developer.gnome.org/glib/unstable/glib-GVariantType.html";
+"\">GVariantType</link>"
+msgstr ""
+"<link href=\"http://developer.gnome.org/glib/unstable/glib-GVariantType.html";
+"\">GVariantType</link>"
+
+#: C/gmenu.py.page:79(item/p)
+msgid ""
+"<link href=\"http://developer.gnome.org/glib/unstable/glib-GVariant.html";
+"\">GVariant</link>"
+msgstr ""
+"<link href=\"http://developer.gnome.org/glib/unstable/glib-GVariant.html";
+"\">GVariant</link>"
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/gmenu.vala.page:27(media)
+msgctxt "_"
+msgid ""
+"external ref='media/gmenu.vala.png' md5='7a9f381fc3ed5bf8d1c50d2acb095400'"
+msgstr ""
+"external ref='media/gmenu.vala.png' md5='7a9f381fc3ed5bf8d1c50d2acb095400'"
+
+#: C/gmenu.vala.page:7(info/title)
+msgctxt "text"
+msgid "GMenu (Vala)"
+msgstr "GMenu (Vala)"
+
+#: C/gmenu.vala.page:29(note/p)
+msgid ""
+"<em style=\"strong\">You need to be running Gtk+-3.4 or later for this to "
+"work</em>"
+msgstr ""
+"<em style=\"strong\">ÎÏÎÎÎÎÎÏÎÎ ÎÎ ÏÏÎÎÎÏÎ ÏÎ Gtk+-3.4 Î ÎÎÏÎÎÎÎÎÏÏÎÏÎ ÎÎÎ "
+"ÎÏÏÎ ÏÎ ÎÎÏÎÎÎÎ</em>"
+
+#: C/gmenu.vala.page:32(note/p)
+msgid ""
+"This program will not compile with the quit action connected until <link "
+"href=\"https://bugzilla.gnome.org/show_bug.cgi?id=674090\";>Bug #674090</"
+"link> is fixed. Therefore, the problematic line has been commented out."
+msgstr ""
+"ÎÏÏÏ ÏÎ ÏÏÏÎÏÎÎÎÎ ÎÎÎ ÎÎ ÎÎÏÎÎÎÏÏÏÎÏÎÎ ÎÎ ÏÎÎ ÎÎÎÏÎÎÎÎ ÎÎÎÎÏÎÎÎÎÏÎÏ "
+"ÏÏÎÎÎÎÎÎÎ ÎÎÏÏÎ ÏÎ ÏÏÎÎÎÏÎ ÏÎÏ <link href=\"https://bugzilla.gnome.org/";
+"show_bug.cgi?id=674090\">Bug #674090</link>. ÎÏÎÎÏÏÏ, Î ÏÏÎÎÎÎÎÎÏÎÎÎ ÎÏÎÎÎÎ "
+"ÎÏÎÎ ÎÏÎÏÏÎÎÎÎÏÎÎÎ."
+
+#: C/gmenu.vala.page:36(page/code)
+#, no-wrap
+msgid ""
+"/* A window in the application. */\n"
+"public class Window : Gtk.ApplicationWindow {\n"
+"\n"
+"\t/* Constructor */\n"
+"\tpublic Window (Application app) {\n"
+"\t\tObject (application: app, title: \"Gmenu Example\");\n"
+"\n"
+"\t\tvar about_action = new SimpleAction (\"about\", null);\n"
+"\n"
+"\t\t/* Connect the 'activate' signal to the\n"
+"\t\t * signal handler (aka. callback).\n"
+"\t\t */\n"
+"\t\tabout_action.activate.connect (this.about_cb);\n"
+"\n"
+"\t\t/* Add the action to this window. */\n"
+"\t\tthis.add_action (about_action);\n"
+"\n"
+"\t\tthis.show ();\n"
+"\t}\n"
+"\n"
+"\t/* Signal handler for 'activate' signal of the SimpleAction. */\n"
+"\tvoid about_cb (SimpleAction simple, Variant? parameter) {\n"
+"\t\tprint (\"This does nothing.  It is only a demonstration.\\n\");\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* This is the Application. */\n"
+"public class Application : Gtk.Application {\n"
+"\n"
+"\t/* Constructor */\n"
+"\tpublic Application () {\n"
+"\t\tObject (application_id: \"org.example.application\");\n"
+"\t}\n"
+"\n"
+"\t/* Override the 'activate' signal of GLib.Application. */\n"
+"\tprotected override void activate () {\n"
+"\n"
+"\t\t/* Create a new window for this application. */\n"
+"\t\tnew Window (this);\n"
+"\t}\n"
+"\n"
+"\t/* Override the 'startup' signal of GLib.Application. */\n"
+"\tprotected override void startup () {\n"
+"\t\tbase.startup ();\n"
+"\n"
+"\t\tvar menu = new Menu ();\n"
+"\t\tmenu.append (\"About\", \"win.about\");\n"
+"\t\tmenu.append (\"Quit\", \"app.quit\");\n"
+"\t\tthis.app_menu = menu;\n"
+"\n"
+"\t\tvar quit_action = new SimpleAction (\"quit\", null);\n"
+"\t\t//quit_action.activate.connect (this.quit);\n"
+"\t\tthis.add_action (quit_action);\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* main function creates Application and runs it. */\n"
+"int main (string[] args) {\n"
+"\treturn new Application ().run (args);\n"
+"}\n"
+msgstr ""
+"/* A window in the application. */\n"
+"public class Window : Gtk.ApplicationWindow {\n"
+"\n"
+"\t/* Constructor */\n"
+"\tpublic Window (Application app) {\n"
+"\t\tObject (application: app, title: \"Gmenu Example\");\n"
+"\n"
+"\t\tvar about_action = new SimpleAction (\"about\", null);\n"
+"\n"
+"\t\t/* Connect the 'activate' signal to the\n"
+"\t\t * signal handler (aka. callback).\n"
+"\t\t */\n"
+"\t\tabout_action.activate.connect (this.about_cb);\n"
+"\n"
+"\t\t/* Add the action to this window. */\n"
+"\t\tthis.add_action (about_action);\n"
+"\n"
+"\t\tthis.show ();\n"
+"\t}\n"
+"\n"
+"\t/* Signal handler for 'activate' signal of the SimpleAction. */\n"
+"\tvoid about_cb (SimpleAction simple, Variant? parameter) {\n"
+"\t\tprint (\"This does nothing.  It is only a demonstration.\\n\");\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* This is the Application. */\n"
+"public class Application : Gtk.Application {\n"
+"\n"
+"\t/* Constructor */\n"
+"\tpublic Application () {\n"
+"\t\tObject (application_id: \"org.example.application\");\n"
+"\t}\n"
+"\n"
+"\t/* Override the 'activate' signal of GLib.Application. */\n"
+"\tprotected override void activate () {\n"
+"\n"
+"\t\t/* Create a new window for this application. */\n"
+"\t\tnew Window (this);\n"
+"\t}\n"
+"\n"
+"\t/* Override the 'startup' signal of GLib.Application. */\n"
+"\tprotected override void startup () {\n"
+"\t\tbase.startup ();\n"
+"\n"
+"\t\tvar menu = new Menu ();\n"
+"\t\tmenu.append (\"About\", \"win.about\");\n"
+"\t\tmenu.append (\"Quit\", \"app.quit\");\n"
+"\t\tthis.app_menu = menu;\n"
+"\n"
+"\t\tvar quit_action = new SimpleAction (\"quit\", null);\n"
+"\t\t//quit_action.activate.connect (this.quit);\n"
+"\t\tthis.add_action (quit_action);\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* main function creates Application and runs it. */\n"
+"int main (string[] args) {\n"
+"\treturn new Application ().run (args);\n"
+"}\n"
+
+#: C/gmenu.vala.page:43(item/p)
+msgid ""
+"<link href=\"http://www.valadoc.org/gio-2.0/GLib.Menu.Menu.html\";>Menu</link>"
+msgstr ""
+"<link href=\"http://www.valadoc.org/gio-2.0/GLib.Menu.Menu.html\";>Menu</link>"
+
+#: C/gmenu.vala.page:44(item/p)
+msgid ""
+"<link href=\"http://www.valadoc.org/gio-2.0/GLib.Menu.append.html\";>append</"
+"link>"
+msgstr ""
+"<link href=\"http://www.valadoc.org/gio-2.0/GLib.Menu.append.html\";>append</"
+"link>"
+
+#: C/gmenu.vala.page:45(item/p)
+msgid ""
+"<link href=\"http://www.valadoc.org/gio-2.0/GLib.SimpleAction.html";
+"\">SimpleAction</link>"
+msgstr ""
+"<link href=\"http://www.valadoc.org/gio-2.0/GLib.SimpleAction.html";
+"\">SimpleAction</link>"
+
+#: C/gmenu.vala.page:46(item/p)
+msgid ""
+"<link href=\"http://www.valadoc.org/gio-2.0/GLib.ActionMap.add_action.html";
+"\">add_action</link>"
+msgstr ""
+"<link href=\"http://www.valadoc.org/gio-2.0/GLib.ActionMap.add_action.html";
+"\">add_action</link>"
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/grid.c.page:22(media) C/grid.js.page:25(media) C/grid.vala.page:23(media)
+msgctxt "_"
+msgid "external ref='media/grid.png' md5='27d45da115401127456a3b854dcfc5be'"
+msgstr "external ref='media/grid.png' md5='27d45da115401127456a3b854dcfc5be'"
+
+#: C/grid.c.page:7(info/title)
+msgctxt "text"
+msgid "Grid (C)"
+msgstr "ÎÎÎÎÎÎ (C)"
+
+#: C/grid.c.page:17(info/desc) C/grid.js.page:21(info/desc)
+#: C/grid.py.page:24(info/desc) C/grid.vala.page:19(info/desc)
+msgid "Pack widgets in rows and columns"
+msgstr "ÎÎÎÎÏÎÏÎÏÎÎ ÎÏÎÏÎÎÏÎ ÏÏÏÏÎÏÎÎÏÎ ÏÎ ÎÏÎÎÎÎÏ ÎÎÎ ÏÏÎÎÎÏ"
+
+#: C/grid.c.page:20(page/title) C/grid.js.page:24(page/title)
+#: C/grid.py.page:27(page/title) C/tutorial.py.page:64(steps/title)
+msgid "Grid"
+msgstr "ÎÎÎÎÎÎ"
+
+#: C/grid.c.page:23(page/p) C/grid.vala.page:24(page/p)
+msgid "A button widget connected to a progress bar."
+msgstr "ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÎÏÎÏÎÎÏ ÏÏÎÎÎÎÎÎÎ ÎÎ ÎÎÎ ÎÏÎÎÎÎ ÏÏÎÏÎÎÏ."
+
+#: C/grid.c.page:25(page/code)
+#, no-wrap
+msgid ""
+"\n"
+"#include &lt;gtk/gtk.h&gt;\n"
+"\n"
+"\n"
+"\n"
+"/*Signal handler for the \"clicked\" signal of the Button. Each\n"
+"click generates a progress bar pulse*/\n"
+"static void\n"
+"on_button_click (GtkButton *button,\n"
+"                 gpointer   user_data)\n"
+"{\n"
+"  GtkProgressBar *progress_bar = user_data;\n"
+"  gtk_progress_bar_pulse (progress_bar);\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"static void\n"
+"activate (GtkApplication *app,\n"
+"          gpointer        user_data)\n"
+"{\n"
+"  GtkWidget *grid;\n"
+"  GtkWidget *window;\n"
+"  GtkWidget *button;\n"
+"  GtkWidget *progress_bar;\n"
+"\n"
+"  /*Create the window and set a title*/\n"
+"  window = gtk_application_window_new (app);\n"
+"  gtk_window_set_title (GTK_WINDOW (window), \"Grid Example\");\n"
+"\n"
+"  /*Create a button with a label*/\n"
+"  button = gtk_button_new_with_label (\"Button\");\n"
+"\n"
+"  /*Create the progress bar*/\n"
+"  progress_bar = gtk_progress_bar_new ();\n"
+"\n"
+"  /*Create a grid and attach the button and progress bar\n"
+"  accordingly*/\n"
+"  grid = gtk_grid_new ();\n"
+"  gtk_grid_attach (GTK_GRID (grid), button, 1, 1, 1, 1);\n"
+"  gtk_grid_attach_next_to (GTK_GRID (grid), \n"
+"                           progress_bar, \n"
+"                           button, \n"
+"                           GTK_POS_BOTTOM, 1, 1);\n"
+"\n"
+"  /*Connecting the clicked signal to the callback function*/\n"
+"  g_signal_connect (GTK_BUTTON (button), \"clicked\", \n"
+"                    G_CALLBACK (on_button_click), progress_bar);\n"
+"\n"
+"  gtk_container_add (GTK_CONTAINER (window), GTK_WIDGET (grid));\n"
+"\n"
+"  gtk_widget_show_all (window);\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"int\n"
+"main (int argc, char **argv)\n"
+"{\n"
+"  GtkApplication *app;\n"
+"  int status;\n"
+"\n"
+"  app = gtk_application_new (\"org.gtk.example\", G_APPLICATION_FLAGS_NONE);\n"
+"  g_signal_connect (app, \"activate\", G_CALLBACK (activate), NULL);\n"
+"  status = g_application_run (G_APPLICATION (app), argc, argv);\n"
+"  g_object_unref (app);\n"
+"\n"
+"  return status;\n"
+"}\n"
+msgstr ""
+"\n"
+"#include &lt;gtk/gtk.h&gt;\n"
+"\n"
+"\n"
+"\n"
+"/*Signal handler for the \"clicked\" signal of the Button. Each\n"
+"click generates a progress bar pulse*/\n"
+"static void\n"
+"on_button_click (GtkButton *button,\n"
+"                 gpointer   user_data)\n"
+"{\n"
+"  GtkProgressBar *progress_bar = user_data;\n"
+"  gtk_progress_bar_pulse (progress_bar);\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"static void\n"
+"activate (GtkApplication *app,\n"
+"          gpointer        user_data)\n"
+"{\n"
+"  GtkWidget *grid;\n"
+"  GtkWidget *window;\n"
+"  GtkWidget *button;\n"
+"  GtkWidget *progress_bar;\n"
+"\n"
+"  /*Create the window and set a title*/\n"
+"  window = gtk_application_window_new (app);\n"
+"  gtk_window_set_title (GTK_WINDOW (window), \"Grid Example\");\n"
+"\n"
+"  /*Create a button with a label*/\n"
+"  button = gtk_button_new_with_label (\"Button\");\n"
+"\n"
+"  /*Create the progress bar*/\n"
+"  progress_bar = gtk_progress_bar_new ();\n"
+"\n"
+"  /*Create a grid and attach the button and progress bar\n"
+"  accordingly*/\n"
+"  grid = gtk_grid_new ();\n"
+"  gtk_grid_attach (GTK_GRID (grid), button, 1, 1, 1, 1);\n"
+"  gtk_grid_attach_next_to (GTK_GRID (grid), \n"
+"                           progress_bar, \n"
+"                           button, \n"
+"                           GTK_POS_BOTTOM, 1, 1);\n"
+"\n"
+"  /*Connecting the clicked signal to the callback function*/\n"
+"  g_signal_connect (GTK_BUTTON (button), \"clicked\", \n"
+"                    G_CALLBACK (on_button_click), progress_bar);\n"
+"\n"
+"  gtk_container_add (GTK_CONTAINER (window), GTK_WIDGET (grid));\n"
+"\n"
+"  gtk_widget_show_all (window);\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"int\n"
+"main (int argc, char **argv)\n"
+"{\n"
+"  GtkApplication *app;\n"
+"  int status;\n"
+"\n"
+"  app = gtk_application_new (\"org.gtk.example\", G_APPLICATION_FLAGS_NONE);\n"
+"  g_signal_connect (app, \"activate\", G_CALLBACK (activate), NULL);\n"
+"  status = g_application_run (G_APPLICATION (app), argc, argv);\n"
+"  g_object_unref (app);\n"
+"\n"
+"  return status;\n"
+"}\n"
+
+#: C/grid.c.page:33(item/p) C/progressbar.c.page:34(item/p)
+msgid ""
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkProgressBar.html";
+"\">GtkProgressBar</link>"
+msgstr ""
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkProgressBar.html";
+"\">GtkProgressBar</link>"
+
+#: C/grid.js.page:7(info/title)
+msgctxt "text"
+msgid "Grid (JavaScript)"
+msgstr "ÎÎÎÎÎÎ (JavaScript)"
+
+#: C/grid.js.page:26(page/p)
+msgid ""
+"A button widget connected to a progress bar, inside of a grid which handles "
+"the layout."
+msgstr ""
+"ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÎÏÎÏÎÎÏ ÏÏÎÎÎÎÎÎÎ ÎÎ ÎÎÎ ÎÏÎÎÎÎ ÏÏÎÏÎÎÏ, ÎÎÏÎ ÏÎ ÎÎÎ "
+"ÏÎÎÎÎÎ ÏÎÏ ÏÎÎÏÎÎÎÏÎÎ ÏÎ ÎÎÎÏÎÎÎ."
+
+#: C/grid.js.page:28(page/code)
+#, no-wrap
+msgid ""
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gio = imports.gi.Gio;\n"
+"const GLib = imports.gi.GLib;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"const GridExample = new Lang.Class ({\n"
+"    Name: 'Grid Example',\n"
+"\n"
+"    /* Create the application itself\n"
+"       This boilerplate code is needed to build any GTK+ application. */\n"
+"        _init: function () {\n"
+"            this.application = new Gtk.Application ({\n"
+"                application_id: 'org.example.jsgrid',\n"
+"                flags: Gio.ApplicationFlags.FLAGS_NONE\n"
+"            });\n"
+"\n"
+"    // Connect 'activate' and 'startup' signals to the callback functions\n"
+"    this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"    this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents windows when active\n"
+"    _onActivate: function () {\n"
+"        this._window.present ();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal initializes menus and builds the UI\n"
+"    _onStartup: function () {\n"
+"        this._buildUI ();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function () {\n"
+"\n"
+"        // Create the application window\n"
+"            this._window = new Gtk.ApplicationWindow  ({ application: this.application,\n"
+"                                                         window_position: Gtk.WindowPosition.CENTER,\n"
+"                                                         title: \"Grid Example\"});\n"
+"\n"
+"        // Create the grid\n"
+"        this.Grid = new Gtk.Grid ();\n"
+"\n"
+"        // Create the widgets inside the grid\n"
+"        this.progressBar = new Gtk.ProgressBar ();\n"
+"        this.Button = new Gtk.Button ({ label: \"Button\" });\n"
+"        this.Button.connect (\"clicked\", Lang.bind(this, this._clickHandler));\n"
+"\n"
+"        // Assemble the grid\n"
+"        this._window.add (this.Grid);\n"
+"        this.Grid.attach (this.Button, 1, 1, 1, 1);\n"
+"        this.Grid.attach_next_to (this.progressBar, this.Button, Gtk.PositionType.BOTTOM, 1, 1);\n"
+"\n"
+"                // Show the window and all child widgets\n"
+"                this._window.show_all();\n"
+"    },\n"
+"\n"
+"    // Here's the function that says what happens when the button is clicked\n"
+"    _clickHandler: function () {\n"
+"        this.progressBar.pulse ();\n"
+"    }\n"
+"\n"
+"\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new GridExample ();\n"
+"app.application.run (ARGV);\n"
+msgstr ""
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gio = imports.gi.Gio;\n"
+"const GLib = imports.gi.GLib;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"const GridExample = new Lang.Class ({\n"
+"    Name: 'Grid Example',\n"
+"\n"
+"    /* Create the application itself\n"
+"       This boilerplate code is needed to build any GTK+ application. */\n"
+"        _init: function () {\n"
+"            this.application = new Gtk.Application ({\n"
+"                application_id: 'org.example.jsgrid',\n"
+"                flags: Gio.ApplicationFlags.FLAGS_NONE\n"
+"            });\n"
+"\n"
+"    // Connect 'activate' and 'startup' signals to the callback functions\n"
+"    this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"    this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents windows when active\n"
+"    _onActivate: function () {\n"
+"        this._window.present ();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal initializes menus and builds the UI\n"
+"    _onStartup: function () {\n"
+"        this._buildUI ();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function () {\n"
+"\n"
+"        // Create the application window\n"
+"            this._window = new Gtk.ApplicationWindow  ({ application: this.application,\n"
+"                                                         window_position: Gtk.WindowPosition.CENTER,\n"
+"                                                         title: \"Grid Example\"});\n"
+"\n"
+"        // Create the grid\n"
+"        this.Grid = new Gtk.Grid ();\n"
+"\n"
+"        // Create the widgets inside the grid\n"
+"        this.progressBar = new Gtk.ProgressBar ();\n"
+"        this.Button = new Gtk.Button ({ label: \"Button\" });\n"
+"        this.Button.connect (\"clicked\", Lang.bind(this, this._clickHandler));\n"
+"\n"
+"        // Assemble the grid\n"
+"        this._window.add (this.Grid);\n"
+"        this.Grid.attach (this.Button, 1, 1, 1, 1);\n"
+"        this.Grid.attach_next_to (this.progressBar, this.Button, Gtk.PositionType.BOTTOM, 1, 1);\n"
+"\n"
+"                // Show the window and all child widgets\n"
+"                this._window.show_all();\n"
+"    },\n"
+"\n"
+"    // Here's the function that says what happens when the button is clicked\n"
+"    _clickHandler: function () {\n"
+"        this.progressBar.pulse ();\n"
+"    }\n"
+"\n"
+"\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new GridExample ();\n"
+"app.application.run (ARGV);\n"
+
+#: C/grid.js.page:36(item/p)
+msgid ""
+"<link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Grid.html";
+"\">Gtk.Grid</link>"
+msgstr ""
+"<link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Grid.html";
+"\">Gtk.Grid</link>"
+
+#: C/grid.js.page:37(item/p) C/progressbar.js.page:41(item/p)
+msgid ""
+"<link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.ProgressBar.";
+"html\">Gtk.ProgressBar</link>"
+msgstr ""
+"<link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.ProgressBar.";
+"html\">Gtk.ProgressBar</link>"
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/grid.py.page:29(media)
+msgctxt "_"
+msgid ""
+"external ref='media/grid_simple.png' md5='c806f2e69b30373d4d2e08b41d6cc1f6'"
+msgstr ""
+"external ref='media/grid_simple.png' md5='c806f2e69b30373d4d2e08b41d6cc1f6'"
+
+#: C/grid.py.page:7(info/title)
+msgctxt "text"
+msgid "Grid (Python)"
+msgstr "ÎÎÎÎÎÎ (Python)"
+
+#: C/grid.py.page:30(page/p)
+msgid "Some labels in a grid."
+msgstr "ÎÎÏÎÎÎÏ ÎÏÎÎÎÏÎÏ ÏÎ ÎÎÎ ÏÎÎÎÎÎ."
+
+#: C/grid.py.page:36(section/code)
+#, no-wrap
+msgid ""
+"from gi.repository import Gtk\n"
+"import sys\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"Grid Example\", application=app)\n"
+"\n"
+"        # three labels\n"
+"        label_top_left = Gtk.Label(label=\"This is Top Left\")\n"
+"        label_top_right = Gtk.Label(label=\"This is Top Right\")\n"
+"        label_bottom = Gtk.Label(label=\"This is Bottom\")\n"
+"\n"
+"        # a grid\n"
+"        grid = Gtk.Grid()\n"
+"\n"
+"        # some space between the columns of the grid\n"
+"        grid.set_column_spacing(20)\n"
+"\n"
+"        # in the grid:\n"
+"        # attach the first label in the top left corner\n"
+"        grid.attach(label_top_left, 0, 0, 1, 1)\n"
+"        # attach the second label\n"
+"        grid.attach(label_top_right, 1, 0, 1, 1)\n"
+"        # attach the third label below the first label\n"
+"        grid.attach_next_to(label_bottom, label_top_left, Gtk.PositionType.BOTTOM, 2, 1)\n"
+"\n"
+"        # add the grid to the window\n"
+"        self.add(grid)\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
+msgstr ""
+"from gi.repository import Gtk\n"
+"import sys\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"Grid Example\", application=app)\n"
+"\n"
+"        # three labels\n"
+"        label_top_left = Gtk.Label(label=\"This is Top Left\")\n"
+"        label_top_right = Gtk.Label(label=\"This is Top Right\")\n"
+"        label_bottom = Gtk.Label(label=\"This is Bottom\")\n"
+"\n"
+"        # a grid\n"
+"        grid = Gtk.Grid()\n"
+"\n"
+"        # some space between the columns of the grid\n"
+"        grid.set_column_spacing(20)\n"
+"\n"
+"        # in the grid:\n"
+"        # attach the first label in the top left corner\n"
+"        grid.attach(label_top_left, 0, 0, 1, 1)\n"
+"        # attach the second label\n"
+"        grid.attach(label_top_right, 1, 0, 1, 1)\n"
+"        # attach the third label below the first label\n"
+"        grid.attach_next_to(label_bottom, label_top_left, Gtk.PositionType.BOTTOM, 2, 1)\n"
+"\n"
+"        # add the grid to the window\n"
+"        self.add(grid)\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
+
+#: C/grid.py.page:40(section/title)
+msgid "Useful methods for a Grid widget"
+msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÏÎÎÎÎÎÏÎÏ"
+
+#: C/grid.py.page:43(item/p)
+msgid ""
+"To attach a widget <code>child</code> in position <code>left, top</code> in "
+"a slot of given <code>width, height</code> use <code>attach(child, top, "
+"left, width, height)</code>. If a widget <code>sibling</code> is already in "
+"place, we can also use <code>attach_next_to(child, sibling, side, width, "
+"height)</code>, where <code>side</code> is one of <code>Gtk.PositionType."
+"LEFT, Gtk.PositionType.RIGHT, Gtk.PositionType.TOP, Gtk.PositionType.BOTTOM</"
+"code>."
+msgstr ""
+"ÎÎÎ ÎÎ ÏÏÎÏÎÏÏÎÏÎÏÎ ÎÎÎ <code>child</code> ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÏÎ ÎÎÏÎ "
+"<code>left, top</code> ÏÎ ÎÎÎ ÏÏÎÎÎÏÎ ÏÎÏ ÎÎÏÎÎÎÎÏ <code>width, height</"
+"code> ÏÏÎÏÎÎÎÏÎÎÎÏÏÎ <code>attach(child, top, left, width, height)</code>. "
+"ÎÎÎ ÎÎÎ <code>sibling</code> ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÎÎÎÎ ÎÎÎ ÏÏÎ ÎÎÏÎ, ÎÏÎÏÎÏÎÎ "
+"ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÏÎÏÎÏ <code>attach_next_to(child, sibling, side, width, "
+"height)</code>, ÏÏÎÏ <code>side</code> ÎÎÎÎÎ ÎÎÎ ÎÏÏ ÏÎ <code>Gtk."
+"PositionType.LEFT, Gtk.PositionType.RIGHT, Gtk.PositionType.TOP, Gtk."
+"PositionType.BOTTOM</code>."
+
+#: C/grid.py.page:44(item/p)
+#, fuzzy
+msgid ""
+"<code>insert_row(position)</code> and <code>insert_column(position)</code> "
+"do exactly what they say; children which are attached at or below this "
+"position are moved one row down, and children which span across this "
+"position are grown to span the new row. <code>insert_next_to(sibling, side)</"
+"code> inserts a row or column at the specified position. The new row or "
+"column is placed next to <code>sibling</code>, on the side determined by "
+"<code>side</code>; if side is <code>Gtk.PositionType.TOP</code> or <code>Gtk."
+"PositionType.BOTTOM</code>, a row is inserted, if side is <code>Gtk."
+"PositionType.LEFT</code> or <code>Gtk.PositionType.RIGHT</code>, a column is "
+"inserted."
+msgstr ""
+"<code>insert_row(position)</code> ÎÎÎ <code>insert_column(position)</code> "
+"ÎÎÎÎÏÎ ÎÎÏÎÎÏÏ ÏÏÎ ÎÎÎÎÂ ÏÎ ÎÏÎÎÏÏÎÎÎ ÏÎÏ ÏÏÎÏÎÏÏÏÎÏÎÎ ÏÎ ÎÏÏÎ ÏÎ ÎÎÏÎ Î ÎÏÏ "
+"ÎÎÏÏ ÏÎÏ ÎÎÏÎÎÎÎÎÏÎÏÎÎ ÎÎÎ ÎÏÎÎÎÎ ÎÎÏÏ ÎÎÎ ÏÎ ÎÏÎÎÏÏÎÎÎ ÏÎÏ ÎÎÎÏÏÏÎÏÎ ÎÎÏÎ "
+"ÎÎÎÎÏ ÎÏÏÎ ÏÎ ÎÎÏÎ ÎÏÎÎÏÎÎÎÎÎÏÎÎ ÎÎÎ ÎÎ ÎÎÎÏÏÎÏÎ ÏÎ ÎÎÎ ÎÏÎÎÎÎ. "
+"<code>insert_next_to(sibling, side)</code> ÎÎÏÎÎÎÎ ÎÎÎ ÎÏÎÎÎÎ Î ÏÏÎÎÎ ÏÏÎ "
+"ÏÏÎÎÎÎÏÎÎÎÎÎ ÎÎÏÎ. Î ÎÎÎ ÎÏÎÎÎÎ Î ÏÏÎÎÎ ÏÎÏÎÎÎÏÎÎÏÎÎ ÎÎÏÎÎ ÏÏÎ "
+"<code>sibling</code>, ÏÏÎÎ ÏÎÎÏÏÎ ÏÎÏ ÎÏÎÏÏÎÎÎ ÎÏÏ <code>side</code>; ÎÎÎ Î "
+"ÏÎÎÏÏÎ ÎÎÎÎÎ <code>Gtk.PositionType.TOP</code> Î <code>Gtk.PositionType."
+"BOTTOM</code>, ÎÎÏÎÎÎÏÎÎ ÎÎÎ ÎÏÎÎÎÎ, ÎÎÎ Î ÏÎÎÏÏÎ ÎÎÎÎÎ <code>Gtk."
+"PositionType.LEFT</code> ÏÎÏ <code>Gtk.PositionType.RIGHT</code>, ÎÎÏÎÎÎÏÎÎ "
+"ÎÎÎ ÏÏÎÎÎ."
+
+#: C/grid.py.page:45(item/p)
+msgid ""
+"<code>set_row_homogeneous(True)</code> and <code>set_column_homogeneous(True)"
+"</code> ensure that (respectively) every row or every column has the same "
+"width or height."
+msgstr ""
+"<code>set_row_homogeneous(True)</code> ÎÎÎ <code>set_column_homogeneous(True)"
+"</code> ÎÎÎÎÎÏÎÎÏÎ ÏÏÎ (ÎÎÏÎÏÏÎÎÏÎ) ÎÎÎÎ ÎÏÎÎÎÎ Î ÏÏÎÎÎ ÎÏÎÎ ÏÎ ÎÎÎÎ ÏÎÎÏÎÏ "
+"Î ÏÏÎÏ."
+
+#: C/grid.py.page:46(item/p)
+msgid ""
+"<code>set_row_spacing(spacing)</code> and <code>set_column_spacing(spacing)</"
+"code> force a spacing between (respectively) rows or columns. The value of "
+"<code>spacing</code> can be between <code>0</code>, which is the default "
+"value, and <code>32767</code>"
+msgstr ""
+"<code>set_row_spacing(spacing)</code> ÎÎÎ <code>set_column_spacing(spacing)</"
+"code> ÎÎÎÎÎÎÎÎÎÎÏÎ ÎÎÎ ÎÎÎÎÎÎÎ ÎÎÏÎÎÏ (ÎÎÏÎÏÏÎÎÏÎ) ÎÏÎÎÎÏÎ Î ÏÏÎÎÏÎ. Î ÏÎÎÎ "
+"ÏÎÏ <code>spacing</code> ÎÏÎÏÎÎ ÎÎ ÎÎÎÎÎ ÎÎÏÎÎÏ <code>0</code>, ÏÎÏ ÎÎÎÎÎ Î "
+"ÏÏÎÎÏÎÎÎÎÎÎÎÎ ÏÎÎÎ ÎÎÎ <code>32767</code>"
+
+#: C/grid.py.page:42(section/list)
+msgid "<_:item-1/> <_:item-2/> <_:item-3/> <_:item-4/>."
+msgstr "<_:item-1/> <_:item-2/> <_:item-3/> <_:item-4/>."
+
+#: C/grid.py.page:57(item/p) C/label.py.page:88(item/p)
+#: C/separator.py.page:40(item/p) C/switch.py.page:49(item/p)
+msgid ""
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkLabel.html";
+"\">GtkLabel</link>"
+msgstr ""
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkLabel.html";
+"\">GtkLabel</link>"
+
+#: C/grid.py.page:58(item/p) C/image.py.page:100(item/p)
+#: C/paned.py.page:42(item/p) C/scrolledwindow.py.page:45(item/p)
+msgid ""
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkImage.html";
+"\">GtkImage</link>"
+msgstr ""
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkImage.html";
+"\">GtkImage</link>"
+
+#: C/grid.py.page:59(item/p) C/radiobutton.py.page:52(item/p)
+#: C/separator.py.page:39(item/p) C/switch.py.page:50(item/p)
+#: C/toolbar_builder.py.page:193(item/p)
+msgid ""
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkGrid.html";
+"\">GtkGrid</link>"
+msgstr ""
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkGrid.html";
+"\">GtkGrid</link>"
+
+#: C/grid.vala.page:7(info/title)
+msgctxt "text"
+msgid "Grid (Vala)"
+msgstr "ÎÎÎÎÎÎ (Vala)"
+
+#: C/grid.vala.page:22(page/title)
+msgid "Grid widget"
+msgstr "ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÏÎÎÎÎÎÏÎÏ"
+
+#: C/grid.vala.page:26(page/code)
+#, no-wrap
+msgid ""
+"public class MyWindow : Gtk.ApplicationWindow {\n"
+"\n"
+"\tGtk.Widget progress_bar;\n"
+"\n"
+"\tinternal MyWindow (MyApplication app) {\n"
+"\t\tObject (application: app, title: \"Grid Example\");\n"
+"\t\tvar grid = new Gtk.Grid();\n"
+"\t\tprogress_bar = new Gtk.ProgressBar ();\n"
+"\t\tprogress_bar.show ();\n"
+"\n"
+"\t\tvar button = new Gtk.Button.with_label (\"Button\");\n"
+"\t\tbutton.clicked.connect (on_button_click);\n"
+"\t\tbutton.show ();\n"
+"\n"
+"\t\tthis.add(grid);\n"
+"\t\tgrid.attach(button, 0, 1, 1, 1);\n"
+"\t\tgrid.attach_next_to (progress_bar, button, Gtk.PositionType.BOTTOM, 1, 1);\n"
+"\t\tgrid.show ();\n"
+"\t}\n"
+"\n"
+"\tvoid on_button_click (Gtk.Button button) {\n"
+"\t\t(progress_bar as Gtk.ProgressBar).pulse ();\n"
+"\t}\n"
+"}\n"
+"\n"
+"public class MyApplication : Gtk.Application {\n"
+"\tprotected override void activate () {\n"
+"\n"
+"\t\tnew MyWindow (this).show ();\n"
+"\t}\n"
+"\n"
+"\tinternal MyApplication () {\n"
+"\t\tObject (application_id: \"org.example.MyApplication\");\n"
+"\n"
+"\t}\n"
+"}\n"
+"\n"
+"public int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
+msgstr ""
+"public class MyWindow : Gtk.ApplicationWindow {\n"
+"\n"
+"\tGtk.Widget progress_bar;\n"
+"\n"
+"\tinternal MyWindow (MyApplication app) {\n"
+"\t\tObject (application: app, title: \"Grid Example\");\n"
+"\t\tvar grid = new Gtk.Grid();\n"
+"\t\tprogress_bar = new Gtk.ProgressBar ();\n"
+"\t\tprogress_bar.show ();\n"
+"\n"
+"\t\tvar button = new Gtk.Button.with_label (\"Button\");\n"
+"\t\tbutton.clicked.connect (on_button_click);\n"
+"\t\tbutton.show ();\n"
+"\n"
+"\t\tthis.add(grid);\n"
+"\t\tgrid.attach(button, 0, 1, 1, 1);\n"
+"\t\tgrid.attach_next_to (progress_bar, button, Gtk.PositionType.BOTTOM, 1, 1);\n"
+"\t\tgrid.show ();\n"
+"\t}\n"
+"\n"
+"\tvoid on_button_click (Gtk.Button button) {\n"
+"\t\t(progress_bar as Gtk.ProgressBar).pulse ();\n"
+"\t}\n"
+"}\n"
+"\n"
+"public class MyApplication : Gtk.Application {\n"
+"\tprotected override void activate () {\n"
+"\n"
+"\t\tnew MyWindow (this).show ();\n"
+"\t}\n"
+"\n"
+"\tinternal MyApplication () {\n"
+"\t\tObject (application_id: \"org.example.MyApplication\");\n"
+"\n"
+"\t}\n"
+"}\n"
+"\n"
+"public int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
+
+#: C/grid.vala.page:31(item/p)
+msgid ""
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Grid.html\";>Gtk.Grid</link>"
+msgstr ""
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Grid.html\";>Gtk.Grid</link>"
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/GtkApplicationWindow.c.page:21(media)
+#: C/GtkApplicationWindow.js.page:21(media)
+#: C/GtkApplicationWindow.py.page:26(media)
+#: C/GtkApplicationWindow.vala.page:21(media) C/window.c.page:21(media)
+#: C/window.js.page:24(media) C/window.py.page:30(media)
+#: C/window.vala.page:24(media)
+msgctxt "_"
+msgid "external ref='media/window.png' md5='eb0cde3530978619c25bddfaeb453345'"
+msgstr "external ref='media/window.png' md5='eb0cde3530978619c25bddfaeb453345'"
+
+#: C/GtkApplicationWindow.c.page:7(info/title)
+msgctxt "text"
+msgid "ApplicationWindow (C)"
+msgstr "ApplicationWindow (C)"
+
+#: C/GtkApplicationWindow.c.page:17(info/desc)
+msgid "A toplevel window which can contain other widgets, and support GMenu"
+msgstr ""
+"ÎÎÎ ÏÎÏÎÎÏÏÎ ÎÎÏÏÎÏÎÏ ÎÏÎÏÎÎÎÏ ÏÎÏ ÎÏÎÏÎÎ ÎÎ ÏÎÏÎÎÏÎÎ ÎÎÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ "
+"ÎÎÎ ÏÏÎÏÏÎÏÎÎÎÎ ÏÎ GMenu"
+
+#: C/GtkApplicationWindow.c.page:20(page/title)
+#: C/GtkApplicationWindow.js.page:20(page/title)
+#: C/GtkApplicationWindow.py.page:25(page/title)
+#: C/GtkApplicationWindow.vala.page:20(page/title)
+msgid "ApplicationWindow"
+msgstr "ApplicationWindow"
+
+#: C/GtkApplicationWindow.c.page:22(page/p)
+msgid "A minimal GtkApplication with a GtkApplicationWindow"
+msgstr "ÎÎÎ ÎÎÎÏÎÏÏÎ GtkApplication ÎÎ ÎÎÎ GtkApplicationWindow"
+
+#: C/GtkApplicationWindow.c.page:24(page/code)
+#, no-wrap
+msgid ""
+"#include &lt;gtk/gtk.h&gt;\n"
+"\n"
+"static void\n"
+"activate (GtkApplication *app,\n"
+"          gpointer        user_data)\n"
+"{\n"
+"  GtkWidget *window;\n"
+"\n"
+"  window = gtk_application_window_new (app);\n"
+"  gtk_window_set_title (GTK_WINDOW (window), \"Hello GNOME\");\n"
+"  gtk_widget_show_all (window);\n"
+"}\n"
+"\n"
+"int\n"
+"main (int argc, char **argv)\n"
+"{\n"
+"  GtkApplication *app;\n"
+"  int status;\n"
+"\n"
+"  app = gtk_application_new (\"org.gtk.example\", G_APPLICATION_FLAGS_NONE);\n"
+"  g_signal_connect (app, \"activate\", G_CALLBACK (activate), NULL);\n"
+"  status = g_application_run (G_APPLICATION (app), argc, argv);\n"
+"  g_object_unref (app);\n"
+"  return status;\n"
+"}\n"
+msgstr ""
+"#include &lt;gtk/gtk.h&gt;\n"
+"\n"
+"static void\n"
+"activate (GtkApplication *app,\n"
+"          gpointer        user_data)\n"
+"{\n"
+"  GtkWidget *window;\n"
+"\n"
+"  window = gtk_application_window_new (app);\n"
+"  gtk_window_set_title (GTK_WINDOW (window), \"Hello GNOME\");\n"
+"  gtk_widget_show_all (window);\n"
+"}\n"
+"\n"
+"int\n"
+"main (int argc, char **argv)\n"
+"{\n"
+"  GtkApplication *app;\n"
+"  int status;\n"
+"\n"
+"  app = gtk_application_new (\"org.gtk.example\", G_APPLICATION_FLAGS_NONE);\n"
+"  g_signal_connect (app, \"activate\", G_CALLBACK (activate), NULL);\n"
+"  status = g_application_run (G_APPLICATION (app), argc, argv);\n"
+"  g_object_unref (app);\n"
+"  return status;\n"
+"}\n"
+
+#: C/GtkApplicationWindow.c.page:30(item/p)
+msgid ""
+"<link href=\"http://developer.gnome.org/gtk3/3.4/GtkApplicationWindow.html";
+"\">GtkApplicationWindow</link>"
+msgstr ""
+"<link href=\"http://developer.gnome.org/gtk3/3.4/GtkApplicationWindow.html";
+"\">GtkApplicationWindow</link>"
+
+#: C/GtkApplicationWindow.js.page:7(info/title)
+msgctxt "text"
+msgid "ApplicationWindow (JavaScript)"
+msgstr "ApplicationWindow (JavaScript)"
+
+#: C/GtkApplicationWindow.js.page:17(info/desc)
+#: C/GtkApplicationWindow.py.page:22(info/desc)
+#: C/GtkApplicationWindow.vala.page:17(info/desc)
+msgid "GtkWindow subclass with GtkApplication support"
+msgstr "Î ÏÏÎÎÎÎÏÎ GtkWindow ÎÎ ÏÏÎÏÏÎÏÎÎÎ GtkApplication"
+
+#: C/GtkApplicationWindow.js.page:22(page/p)
+msgid "A simple GtkApplicationWindow which can support Menus."
+msgstr "ÎÎÎ ÎÏÎÏ GtkApplicationWindow ÏÎÏ ÎÏÎÏÎÎ ÎÎ ÏÏÎÏÏÎÏÎÎÎÎ ÎÎÎÎÏ."
+
+#: C/GtkApplicationWindow.js.page:24(page/code)
+#, no-wrap
+msgid ""
+"\n"
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gio = imports.gi.Gio;\n"
+"const GLib = imports.gi.GLib;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"const Application = new Lang.Class ({\n"
+"    Name: 'Application',\n"
+"\n"
+"    //create the application\n"
+"    _init: function () {\n"
+"        this.application = new Gtk.Application ({\n"
+"            application_id: 'org.example.myapp',\n"
+"            flags: Gio.ApplicationFlags.FLAGS_NONE\n"
+"        });\n"
+"\n"
+"       //connect to 'activate' and 'startup' signals to the callback functions\n"
+"       this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"       this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    //create the UI (in this case it's just the ApplicationWindow\n"
+"    _buildUI: function () {\n"
+"        this._window = new Gtk.ApplicationWindow  ({ application: this.application,\n"
+"                                                   window_position: Gtk.WindowPosition.CENTER,\n"
+"                                                   title: \"Welcome to GNOME\" });\n"
+"\n"
+"        //uncommenting the line below will change the window size\n"
+"        //this._window.set_default_size(600, 400);\n"
+"\n"
+"        //show the window and all child widgets (none in this case)\n"
+"        this._window.show_all();\n"
+"    },\n"
+"\n"
+"    //callback function for 'activate' signal\n"
+"    _onActivate: function () {\n"
+"        this._window.present ();\n"
+"    },\n"
+"\n"
+"    //callback function for 'startup' signal\n"
+"    _onStartup: function () {\n"
+"        this._buildUI ();\n"
+"    }\n"
+"});\n"
+"\n"
+"//run the application\n"
+"let app = new Application ();\n"
+"app.application.run (ARGV);\n"
+msgstr ""
+"\n"
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gio = imports.gi.Gio;\n"
+"const GLib = imports.gi.GLib;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"const Application = new Lang.Class ({\n"
+"    Name: 'Application',\n"
+"\n"
+"    //create the application\n"
+"    _init: function () {\n"
+"        this.application = new Gtk.Application ({\n"
+"            application_id: 'org.example.myapp',\n"
+"            flags: Gio.ApplicationFlags.FLAGS_NONE\n"
+"        });\n"
+"\n"
+"       //connect to 'activate' and 'startup' signals to the callback functions\n"
+"       this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"       this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    //create the UI (in this case it's just the ApplicationWindow\n"
+"    _buildUI: function () {\n"
+"        this._window = new Gtk.ApplicationWindow  ({ application: this.application,\n"
+"                                                   window_position: Gtk.WindowPosition.CENTER,\n"
+"                                                   title: \"Welcome to GNOME\" });\n"
+"\n"
+"        //uncommenting the line below will change the window size\n"
+"        //this._window.set_default_size(600, 400);\n"
+"\n"
+"        //show the window and all child widgets (none in this case)\n"
+"        this._window.show_all();\n"
+"    },\n"
+"\n"
+"    //callback function for 'activate' signal\n"
+"    _onActivate: function () {\n"
+"        this._window.present ();\n"
+"    },\n"
+"\n"
+"    //callback function for 'startup' signal\n"
+"    _onStartup: function () {\n"
+"        this._buildUI ();\n"
+"    }\n"
+"});\n"
+"\n"
+"//run the application\n"
+"let app = new Application ();\n"
+"app.application.run (ARGV);\n"
+
+#: C/GtkApplicationWindow.py.page:7(info/title)
+msgctxt "text"
+msgid "ApplicationWindow (Python)"
+msgstr "ApplicationWindow (Python)"
+
+#: C/GtkApplicationWindow.py.page:27(page/p)
+#: C/GtkApplicationWindow.vala.page:22(page/p)
+msgid "The simplest GtkApplication Window which can support Menus."
+msgstr "ÎÎ ÎÏÎÎÏÏÏÎÏÎ ÏÎÏÎÎÏÏÎ GtkApplication ÏÎÏ ÎÏÎÏÎÎ ÎÎ ÏÏÎÏÏÎÏÎÎÎÎ ÎÎÎÎÏ."
+
+#: C/GtkApplicationWindow.py.page:34(section/code)
+#, no-wrap
+msgid ""
+"from gi.repository import Gtk\n"
+"import sys\n"
+"\n"
+"# a Gtk ApplicationWindow\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    # constructor: the title is \"Welcome to GNOME\" and the window belongs\n"
+"    # to the application app\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"Welcome to GNOME\", application=app)\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    # constructor of the Gtk Application\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    # create and activate a MyWindow, with self (the MyApplication) as\n"
+"    # application the window belongs to.\n"
+"    # Note that the function in C activate() becomes do_activate() in Python\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        # show the window and all its content\n"
+"        # this line could go in the constructor of MyWindow as well\n"
+"        win.show_all()\n"
+"\n"
+"    # start up the application\n"
+"    # Note that the function in C startup() becomes do_startup() in Python\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"# create and run the application, exit with the value returned by\n"
+"# running the program\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
+msgstr ""
+"from gi.repository import Gtk\n"
+"import sys\n"
+"\n"
+"# a Gtk ApplicationWindow\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    # constructor: the title is \"Welcome to GNOME\" and the window belongs\n"
+"    # to the application app\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"Welcome to GNOME\", application=app)\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    # constructor of the Gtk Application\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    # create and activate a MyWindow, with self (the MyApplication) as\n"
+"    # application the window belongs to.\n"
+"    # Note that the function in C activate() becomes do_activate() in Python\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        # show the window and all its content\n"
+"        # this line could go in the constructor of MyWindow as well\n"
+"        win.show_all()\n"
+"\n"
+"    # start up the application\n"
+"    # Note that the function in C startup() becomes do_startup() in Python\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"# create and run the application, exit with the value returned by\n"
+"# running the program\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
+
+#: C/GtkApplicationWindow.py.page:38(section/title)
+msgid "Useful methods for a Gtk.ApplicationWindow widget"
+msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ Gtk.ApplicationWindow"
+
+#: C/GtkApplicationWindow.py.page:41(item/p) C/window.py.page:52(item/p)
+msgid ""
+"<code>set_default_size(200, 100)</code> sets the default size of the window "
+"to a width of <code>200</code> and a height of <code>100</code>; if instead "
+"of a positive number we pass <code>-1</code> we have the default size."
+msgstr ""
+"<code>set_default_size(200, 100)</code> ÎÏÎÎÎÎ ÏÎ ÏÏÎÎÏÎÎÎÎÎÎÎÎ ÎÎÎÎÎÎÏ ÏÎÏ "
+"ÏÎÏÎÎÏÏÎÏ ÏÎ ÏÎÎÏÎÏ <code>200</code> ÎÎÎ ÏÏÎÏ <code>100</code>Â ÎÎÎ ÎÎÏÎ ÎÎÎ "
+"ÎÎÎ ÎÎÏÎÎÏ ÎÏÎÎÎÏ ÏÎÏÎÎÎÎ ÏÎ <code>-1</code> ÎÏÎÏÎÎ ÏÎ ÏÏÎÎÏÎÎÎÎÎÎÎÎ ÎÎÎÎÎÎÏ."
+
+#: C/GtkApplicationWindow.py.page:42(item/p) C/window.py.page:53(item/p)
+msgid ""
+"<code>set_position(Gtk.WindowPosition.CENTER)</code> centers the window. "
+"Other options are <code>Gtk.WindowPosition.NONE, Gtk.WindowPosition.MOUSE, "
+"Gtk.WindowPosition.CENTER_ALWAYS, Gtk.WindowPosition.CENTER_ON_PARENT</code>."
+msgstr ""
+"<code>set_position(Gtk.WindowPosition.CENTER)</code> ÎÎÎÏÏÎÏÎÎ ÏÎ ÏÎÏÎÎÏÏÎ. "
+"ÎÎÎÎÏ ÎÏÎÎÎÎÎÏ ÎÎÎÎÎ <code>Gtk.WindowPosition.NONE, Gtk.WindowPosition."
+"MOUSE, Gtk.WindowPosition.CENTER_ALWAYS, Gtk.WindowPosition."
+"CENTER_ON_PARENT</code>."
+
+#: C/GtkApplicationWindow.vala.page:7(info/title)
+msgctxt "text"
+msgid "ApplicationWindow (Vala)"
+msgstr "ApplicationWindow (Vala)"
+
+#: C/GtkApplicationWindow.vala.page:24(page/code)
+#, no-wrap
+msgid ""
+"\n"
+"/* This is the application. */\n"
+"public class MyApplication : Gtk.Application {\n"
+"\t/* Override the 'activate' signal of GLib.Application. */\n"
+"\tprotected override void activate () {\n"
+"\t\t/* Create the window of this application and show it. */\n"
+"\t\tvar window = new Gtk.ApplicationWindow (this);\n"
+"\t\twindow.title = \"Welcome to GNOME\";\n"
+"\t\twindow.show ();\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* main creates and runs the application. */\n"
+"public int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
+msgstr ""
+"\n"
+"/* This is the application. */\n"
+"public class MyApplication : Gtk.Application {\n"
+"\t/* Override the 'activate' signal of GLib.Application. */\n"
+"\tprotected override void activate () {\n"
+"\t\t/* Create the window of this application and show it. */\n"
+"\t\tvar window = new Gtk.ApplicationWindow (this);\n"
+"\t\twindow.title = \"Welcome to GNOME\";\n"
+"\t\twindow.show ();\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* main creates and runs the application. */\n"
+"public int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
+
+#: C/GtkApplicationWindow.vala.page:30(item/p) C/label.vala.page:30(item/p)
+msgid ""
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Application.html.content.tpl";
+"\">Gtk.Application</link>"
+msgstr ""
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Application.html.content.tpl";
+"\">Gtk.Application</link>"
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/guitar-tuner.c.page:39(media) C/guitar-tuner.cpp.page:37(media)
+#: C/guitar-tuner.js.page:36(media) C/guitar-tuner.py.page:39(media)
+#: C/guitar-tuner.vala.page:42(media)
+msgctxt "_"
+msgid ""
+"external ref='media/guitar-tuner.png' md5='35e615e0f5e293671d00c5c414ac2f6b'"
+msgstr ""
+"external ref='media/guitar-tuner.png' md5='35e615e0f5e293671d00c5c414ac2f6b'"
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/guitar-tuner.c.page:94(media) C/guitar-tuner.cpp.page:88(media)
+#: C/guitar-tuner.py.page:90(media) C/guitar-tuner.vala.page:95(media)
+msgctxt "_"
+msgid ""
+"external ref='media/guitar-tuner-glade.png' "
+"md5='f6606525443ab2160f53a87a454364d0'"
+msgstr ""
+"external ref='media/guitar-tuner-glade.png' "
+"md5='f6606525443ab2160f53a87a454364d0'"
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/guitar-tuner.c.page:139(media) C/guitar-tuner.cpp.page:117(media)
+#: C/guitar-tuner.js.page:42(media) C/guitar-tuner.py.page:133(media)
+#: C/guitar-tuner.vala.page:129(media)
+msgctxt "_"
+msgid ""
+"external ref='media/guitar-tuner-pipeline.png' "
+"md5='5adc952909d92af5dae6954781b4ad5f'"
+msgstr ""
+"external ref='media/guitar-tuner-pipeline.png' "
+"md5='5adc952909d92af5dae6954781b4ad5f'"
+
+#: C/guitar-tuner.c.page:7(info/title)
+msgctxt "text"
+msgid "Guitar Tuner (C)"
+msgstr "ÎÏÎÏÎÎÎÏÏÎÏ ÎÎÎÎÏÎÏ (C)"
+
+#: C/guitar-tuner.c.page:10(info/desc) C/guitar-tuner.py.page:10(info/desc)
+msgid ""
+"Use Gtk+ and GStreamer to build a simple guitar tuner application for GNOME. "
+"Shows off how to use the interface designer."
+msgstr ""
+"ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ Gtk+ ÎÎÎ GStreamer ÎÎÎ ÎÎ ÏÏÎÎÎÎÏÎ ÎÎÎ ÎÏÎÏ ÏÏÏÎÏÎÎÎÎ "
+"ÏÏÎÏÎÎÎÏÏÎ ÎÎÎÎÏÎÏ ÎÎÎ ÏÎ GNOME. ÎÎÎÎÎÎÎÎÏÎÎÏÎÏ ÏÏÏ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÏÎ "
+"ÏÏÎÎÎÎÏÏÎ ÎÎÎÏÎÏÏÎ."
+
+#: C/guitar-tuner.c.page:23(page/title) C/guitar-tuner.cpp.page:21(page/title)
+msgid "Guitar Tuner"
+msgstr "ÎÏÎÏÎÎÎÏÏÎÏ ÎÎÎÎÏÎÏ"
+
+#: C/guitar-tuner.c.page:26(synopsis/p) C/guitar-tuner.cpp.page:24(synopsis/p)
+#: C/guitar-tuner.py.page:26(synopsis/p)
+msgid ""
+"In this tutorial, we're going to make a program which plays tones that you "
+"can use to tune a guitar. You will learn how to:"
+msgstr ""
+"ÎÎ ÎÏÏÏÎ ÏÎÎ ÎÎÎÎÏ, ÎÎ ÏÏÎÎÎÎÏÎÎ ÎÎÎ ÏÏÏÎÏÎÎÎÎ ÏÎÏ ÏÎÎÎÎÎ ÎÎÏÏÎÎÎÏÏ ÏÏÎÎÏÏ "
+"ÎÎÎ ÎÏÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎ ÎÎÎ ÎÎÎÎÏÎ. ÎÎ ÎÎÎÎÏÎ ÎÎ:"
+
+#: C/guitar-tuner.c.page:28(item/p) C/guitar-tuner.cpp.page:26(item/p)
+#: C/guitar-tuner.py.page:28(item/p)
+msgid "Set up a basic project in Anjuta"
+msgstr "ÎÏÎÎÎÎÎÏÎ ÏÎ ÎÏÏÎÎ ÎÏÎÎ ÏÏÎ Anjuta"
+
+#: C/guitar-tuner.c.page:29(item/p) C/guitar-tuner.cpp.page:27(item/p)
+#: C/guitar-tuner.py.page:29(item/p)
+msgid "Create a simple GUI with Anjuta's UI designer"
+msgstr "ÎÎÎÎÎÏÏÎÎÎÏÎ ÎÏÎÏ GUI ÎÎ ÏÎÎ ÏÏÎÎÎÎÏÏÎ UI ÏÎÏ Anjuta"
+
+#: C/guitar-tuner.c.page:30(item/p) C/guitar-tuner.cpp.page:28(item/p)
+#: C/guitar-tuner.py.page:30(item/p)
+msgid "Use GStreamer to play sounds"
+msgstr "ÎÏÎÏÎÎÎÏÎÎÎÎÏÎ ÏÎ GStreamer ÎÎÎ ÎÎ ÏÎÎÎÎÏÎ ÎÏÎÏÏ"
+
+#: C/guitar-tuner.c.page:32(synopsis/p) C/guitar-tuner.cpp.page:30(synopsis/p)
+#: C/guitar-tuner.py.page:32(synopsis/p)
+#: C/guitar-tuner.vala.page:35(synopsis/p)
+#: C/image-viewer.js.page:34(synopsis/p) C/image-viewer.py.page:34(synopsis/p)
+#: C/image-viewer.vala.page:40(synopsis/p)
+#: C/magic-mirror.vala.page:33(synopsis/p)
+msgid "You'll need the following to be able to follow this tutorial:"
+msgstr ""
+"ÎÎ ÏÏÎÎÎÏÏÎÎÏÎ ÏÎ ÏÎÏÎÎÎÏÏ ÎÎÎ ÎÎ ÎÏÎÏÎÏÎÏÎ ÎÎ ÎÎÎÎÎÏÎÎÏÎÏÎ ÎÏÏÏ ÏÎ ÎÎÎÎÎÎ:"
+
+#: C/guitar-tuner.c.page:34(item/p) C/guitar-tuner.cpp.page:32(item/p)
+#: C/guitar-tuner.py.page:34(item/p) C/image-viewer.js.page:36(item/p)
+#: C/image-viewer.py.page:36(item/p) C/magic-mirror.vala.page:35(item/p)
+msgid "An installed copy of the <link xref=\"getting-ready\">Anjuta IDE</link>"
+msgstr ""
+"ÎÎÎ ÎÎÎÎÏÎÏÏÎÎÎÎÎ ÎÎÏÎÎÏÎÏÎ ÏÎÏ <link xref=\"getting-ready\">Anjuta IDE</"
+"link>"
+
+#: C/guitar-tuner.c.page:35(item/p)
+msgid "Basic knowledge of the C programming language"
+msgstr "ÎÎÏÎÎÎ ÎÎÏÏÎ ÏÎÏ ÎÎÏÏÏÎÏ ÏÏÎÎÏÎÎÎÎÏÎÏÎÎÏ C"
+
+#: C/guitar-tuner.c.page:42(section/title)
+#: C/guitar-tuner.cpp.page:40(section/title)
+#: C/guitar-tuner.py.page:42(section/title)
+#: C/image-viewer.c.page:36(section/title)
+#: C/image-viewer.cpp.page:34(section/title)
+#: C/image-viewer.js.page:45(section/title)
+#: C/image-viewer.py.page:44(section/title)
+#: C/image-viewer.vala.page:51(section/title)
+#: C/magic-mirror.vala.page:44(section/title)
+#: C/message-board.c.page:41(section/title)
+#: C/photo-wall.c.page:46(section/title)
+#: C/record-collection.js.page:47(section/title)
+msgid "Create a project in Anjuta"
+msgstr "ÎÎÎÎÎÏÏÎÎÎ ÎÏÎÎÏ ÎÎ ÏÎ Anjuta"
+
+#: C/guitar-tuner.c.page:43(section/p) C/guitar-tuner.cpp.page:41(section/p)
+#: C/guitar-tuner.py.page:43(section/p) C/guitar-tuner.vala.page:46(section/p)
+#: C/image-viewer.c.page:37(section/p) C/image-viewer.cpp.page:35(section/p)
+#: C/image-viewer.js.page:46(section/p) C/image-viewer.py.page:45(section/p)
+#: C/image-viewer.vala.page:52(section/p)
+#: C/magic-mirror.vala.page:45(section/p) C/photo-wall.c.page:47(section/p)
+#: C/record-collection.js.page:48(section/p)
+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 ""
+"ÎÏÎÎ ÎÎÎÎÎÎÏÎÏÎ ÎÎ ÏÏÎÎÏÎÎÎÎÏÎÎÎÏÎ, ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎ ÎÎÎ ÎÎÎÎÎÏÏÎÎÎ "
+"ÎÏÎÎ ÏÏÎ Anjuta. ÎÏÏÎ ÎÎ ÎÎÎÎÎÏÏÎÎÎÎÏÎ ÏÎÎ ÏÎ ÎÏÎÏÎÎÏÎÏÎ ÎÏÏÎÎÎ ÏÎÏ "
+"ÏÏÎÎÎÎÎÎÏÎÎ ÎÎÎ ÏÎÎ ÎÎÏÎÎÎÏÎ ÏÎÏ ÎÏÎÎÎÎ ÎÏÎÏÏÎÏÎ. ÎÏÎÏÎÏ ÎÎ ÎÏÎÎ ÏÏÎÏÎÎÎ ÎÎ "
+"ÏÎ ÎÏÎÏÎÏÎ ÏÎÎ ÎÎÎÎ."
+
+#: C/guitar-tuner.c.page:46(item/p) C/guitar-tuner.cpp.page:44(item/p)
+#: C/guitar-tuner.py.page:46(item/p) C/image-viewer.c.page:40(item/p)
+#: C/image-viewer.cpp.page:38(item/p) C/image-viewer.js.page:49(item/p)
+#: C/image-viewer.py.page:48(item/p) C/magic-mirror.vala.page:48(item/p)
+#: C/photo-wall.c.page:50(item/p) C/record-collection.js.page:51(item/p)
+msgid ""
+"Start Anjuta and click <guiseq><gui>File</gui><gui>New</gui><gui>Project</"
+"gui></guiseq> to open the project wizard."
+msgstr ""
+"ÎÎÎÎÎÎÏÏÎ ÏÎ Anjuta ÎÎÎ ÏÎÏÎÏÏÎ <guiseq><gui>ÎÏÏÎÎÎ</gui><gui>ÎÎÎ</"
+"gui><gui>ÎÏÎÎ</gui></guiseq> ÎÎÎ ÎÎ ÎÎÎÎÎÎÏÎ ÏÎÎ ÎÎÎÎÏ ÏÎÏ ÎÏÎÎÏ."
+
+#: C/guitar-tuner.c.page:49(item/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 ""
+"ÎÏÎÎÎÎÏÎ <gui>Gtk+ (ÎÏÎÏ)</gui> ÎÏÏ ÏÎÎ ÎÎÏÏÎÎÎ <gui>C</gui>, ÏÎÏÎÏÏÎ "
+"<gui>ÏÏÎÎÏÎÎÎ</gui>, ÎÎÎ ÏÏÎÏÎÎÏÏÏÏÎ ÏÎÏ ÎÎÏÏÎÎÎÏÎÎÎÏ ÏÎÏ ÏÏÎÏ ÎÏÏÎÎÎÎÏ "
+"ÎÎÎÎÏ ÏÎÎÎÎÎÏ. ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ ÏÎ <file>guitar-tuner</file> ÏÏ ÏÎÎÎÎ ÏÎÏ "
+"ÎÏÎÎÏ ÎÎÎ ÏÎÏ ÎÎÏÎÎÏÎÎÏ."
+
+#: C/guitar-tuner.c.page:52(item/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 ""
+"ÎÎÎÎÎÏÎÎÎÏÎ ÏÏÎ ÏÎ <gui>ÏÏÎÎÎÏÎ ÎÎÏÏÎÏÎÎÏÎ ÏÎÎÎÏÏÎ</gui> ÎÎÎÎÎ <gui>ÎÎÎÏÎÏ</"
+"gui>. ÎÏÎÎ ÎÏÏÎÎÎÎ ÏÎÎÎÎÎ, ÎÏÎÎÎÎÏÎ <em>gstreamer-0.10</em> ÎÏÏ ÏÎ ÎÎÏÏÎ ÎÎÎ "
+"ÏÏÎÏÎÏÎÎÎÏÎ ÏÎÏ ÎÎÎÎÎÎÎÎÎÎÏ GStreamer ÏÏÎ ÎÏÎÎ ÏÎÏ."
+
+#: C/guitar-tuner.c.page:56(item/p) C/image-viewer.c.page:51(item/p)
+#: C/photo-wall.c.page:65(item/p)
+msgid ""
+"Click <gui>Apply</gui> and the project will be created for you. Open "
+"<file>src/main.c</file> from the <gui>Project</gui> or <gui>File</gui> tabs. "
+"You should see some code which starts with the lines:"
+msgstr ""
+"ÎÎÏÎÏÏÎ <gui>ÎÏÎÏÎÎÎÎ</gui> ÎÎÎ ÏÎ ÎÏÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎÎÎÎ ÎÎÎ ÏÎÏ. ÎÎÎÎÎÏÎ ÏÎ "
+"<file>src/main.c</file> ÎÏÏ ÏÎÏ ÎÎÏÏÎÎÎÏ <gui>ÎÏÎÎ</gui> Î <gui>ÎÏÏÎÎÎ</"
+"gui>. ÎÎ ÏÏÎÏÎÎ ÎÎ ÎÎÎÏÎ ÎÎÏÎÎÎ ÎÏÎÎÎÎ ÏÎÏ ÎÎÎÎÎÎÎÎ ÎÎ ÏÎÏ ÎÏÎÎÎÎÏ:"
+
+#: C/guitar-tuner.c.page:57(item/code) C/image-viewer.c.page:52(item/code)
+#: C/photo-wall.c.page:66(item/code)
+#, no-wrap
+msgid ""
+"\n"
+"#include &lt;config.h&gt;\n"
+"#include &lt;gtk/gtk.h&gt;"
+msgstr ""
+"\n"
+"#include &lt;config.h&gt;\n"
+"#include &lt;gtk/gtk.h&gt;"
+
+#: C/guitar-tuner.c.page:65(section/title)
+#: C/guitar-tuner.cpp.page:63(section/title)
+#: C/guitar-tuner.vala.page:68(section/title)
+#: C/image-viewer.c.page:60(section/title)
+#: C/image-viewer.cpp.page:60(section/title)
+#: C/image-viewer.vala.page:107(section/title)
+#: C/magic-mirror.vala.page:72(section/title)
+msgid "Build the code for the first time"
+msgstr "ÎÎÏÎÏÎÎÏÎÏÏÎ ÏÎÎ ÎÏÎÎÎÎ ÎÎÎ ÏÏÏÏÎ ÏÎÏÎ"
+
+#: C/guitar-tuner.c.page:66(section/p)
+msgid ""
+"C is a rather verbose language, so don't be surprised that the file contains "
+"quite a lot of code. Most of it is template code. It loads an (empty) window "
+"from the user interface description file and shows it. More details are "
+"given below; skip this list if you understand the basics:"
+msgstr ""
+"Î C ÎÎÎÎÎ ÎÎÎ ÎÎÎÎÎÎ ÎÎÎÎÏÏÎÎÎ ÎÎÏÏÏÎ, ÎÏÏÎ ÎÎÎ ÎÎÏÎÎÎÎÎÏÎ ÏÎÏ ÏÎ ÎÏÏÎÎÎ "
+"ÏÎÏÎÎÏÎÎ ÏÎÎÏ ÎÏÎÎÎÎ. Î ÏÎÏÎÏÏÏÏÎÏÎÏ ÎÏÎÎÎÎÏ ÎÎÎÎÎ ÏÏÏÏÏÏÎ ÎÏÎÎÎÎ. ÎÎÏÏÏÎÎÎ "
+"ÎÎÎ (ÎÎÎÏ) ÏÎÏÎÎÏÏÎ ÎÏÏ ÏÎÎ ÏÎÏÎÎÏÎÏÎ ÎÎÎÏÎÏÎÏ ÏÏÎÏÏÎ ÎÎÎ ÏÎ ÎÎÏÎÎÎÎÎÎ. "
+"ÎÎÏÎÏÏÏÏÎÏÎÏ ÎÎÏÏÎÎÎÏÎÎÎÏ ÎÎÎÎÎÏÎÎ ÏÎÎ ÎÎÏÏÂ ÏÏÎÏÏÎÏÎÏÏÎ ÎÏÏÎ ÏÎ ÎÎÏÏÎ ÎÎ "
+"ÎÎÏÎÎÎÎÎÎÎÎÏÎ ÏÎ ÎÎÏÎÎÎ:"
+
+#: C/guitar-tuner.c.page:70(item/p) C/image-viewer.c.page:65(item/p)
+msgid ""
+"The three <code>#include</code> lines at the top include the <code>config</"
+"code> (useful autoconf build defines), <code>gtk</code> (user interface) and "
+"<code>gi18n</code> (internationalization) libraries. Functions from these "
+"libraries are used in the rest of the code."
+msgstr ""
+"ÎÎ ÏÏÎÎÏ ÎÏÎÎÎÎÏ <code>#include</code> ÏÏÎÎ ÎÎÏÏÏÎ ÏÎÏÎÎÎÎÎÎÎÎÏÎ ÏÎÎ "
+"<code>config</code> (ÎÏÎÎÎÎ ÏÏÎÏÎÎÎ ÎÎÏÎÏÎÎÏÎ ÏÎÏ autoconf), <code>gtk</"
+"code> (ÎÎÎÏÎÏÎ ÏÏÎÏÏÎ) ÎÎÎ ÎÎÎÎÎÎÎÎÎÎÏ <code>gi18n</code> (ÎÎÎÎÎÎÏÎÎÎÏÎ). "
+"ÎÏÎÎÏÏÎÏÎÎÏ ÎÏÏ ÎÏÏÎÏ ÏÎÏ ÎÎÎÎÎÎÎÎÎÎÏ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÏÏÎÎ ÏÏÏÎÎÎÏÎ ÎÏÎÎÎÎ."
+
+#: C/guitar-tuner.c.page:73(item/p)
+msgid ""
+"The <code>create_window</code> function creates a new window by opening a "
+"GtkBuilder file (<file>src/guitar-tuner.ui</file>, defined a few lines "
+"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 ""
+"Î ÏÏÎÎÏÏÎÏÎ <code>create_window</code> ÎÎÎÎÎÏÏÎÎÎ ÎÎÎ ÎÎÎ ÏÎÏÎÎÏÏÎ "
+"ÎÎÎÎÎÎÎÏÎÏ ÎÎÎ ÎÏÏÎÎÎ GtkBuilder (<file>src/guitar-tuner.ui</file>, ÏÎÏ "
+"ÎÏÎÎÎÏÎÎ ÎÎÎÎÏ ÎÏÎÎÎÎÏ ÏÎÏÎÏÎÎÏ), ÏÏÎÎÎÎÎÏÎÏ ÏÎ ÏÎÎÎÏÎ ÏÎÏ ÎÎÎ ÎÏÎÎÏÎ "
+"ÎÎÏÎÎÎÎÎÎÏÎÏ ÏÎ ÏÎ ÏÎÏÎÎÏÏÎ. ÎÏÏÏ ÏÎ ÎÏÏÎÎÎ GtkBuilder ÏÎÏÎÎÏÎÎ ÎÎÎ "
+"ÏÎÏÎÎÏÎÏÎ ÎÎÎÏ ÎÎÎÏÎÏÎÏ ÏÏÎÏÏÎ ÎÎÎ ÏÎÏÎ ÏÏÎ ÏÏÎÎÏÎÎÏÎ ÏÎÏ. ÎÏÎÏÎÎÏÎ ÎÎ "
+"ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÏÎÎ ÎÏÎÎÎÏÎÎÏÏÎ ÏÎÏ Anjuta ÎÎÎ ÏÏÎÎÎÎÏÎ ÎÎÎÏÎÏÏÎ ÏÏÎÏÏÎ "
+"GtkBuilder."
+
+#: C/guitar-tuner.c.page:74(item/p) C/image-viewer.c.page:69(item/p)
+#: C/image-viewer.vala.page:117(item/p)
+msgid ""
+"Connecting signals is how you define what happens when you push a button, or "
+"when some other event happens. Here, the <code>destroy</code> function is "
+"called (and quits the app) when you close the window."
+msgstr ""
+"ÎÏÎÎÎÏÎ ÏÎÎÎÏÏÎ ÎÎÎÎÎ ÏÏÏ ÎÎÎÎÏÎÎÎÏÎ ÏÎ ÏÏÎÎÎÎÎÎÎ ÏÏÎÎ ÏÎÏÎÏÎ ÎÎÎ ÎÎÏÎÏÎ, Î "
+"ÏÏÎÎ ÏÏÎÎÎÎ ÎÎÏÎÎÎ ÎÎÎÎ ÏÏÎÎÎÎ. ÎÎÏ, ÎÎÎÎÎÏÎÎ Î ÏÏÎÎÏÏÎÏÎ <code>destroy</"
+"code> (ÎÎÎ ÏÎÏÎÎÏÎÎÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ) ÏÏÎÎ ÎÎÎÎÎÎÏÎ ÏÎ ÏÎÏÎÎÏÏÎ."
+
+#: C/guitar-tuner.c.page:77(item/p) C/image-viewer.c.page:72(item/p)
+msgid ""
+"The <code>main</code> function is run by default when you start a C "
+"application. It calls a few functions which set up and then run the "
+"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 ""
+"Î ÏÏÎÎÏÏÎÏÎ <code>main</code> ÏÏÎÏÎÎ ÎÏÏ ÏÏÎÎÏÎÎÎÎÎ ÏÏÎÎ ÎÎÎÎÎÎÏÎ ÎÎÎ "
+"ÎÏÎÏÎÎÎÎ C. ÎÎÎÎÎ ÎÎÎÎÏ ÏÏÎÎÏÏÎÏÎÎÏ ÏÎÏ ÏÏÎÎÎÎÎÏÎ ÎÎÎ ÎÏÎÎÏÎ ÎÎÏÎÎÎÏÎ ÏÎÎ "
+"ÎÏÎÏÎÎÎÎ. Î ÏÏÎÎÏÏÎÏÎ <code>gtk_main</code> ÎÎÎÎÎÎ ÏÎÎ ÎÏÏÎÎ ÎÏÏÏÎ ÏÎÏ GTK, "
+"ÏÎÏ ÎÎÏÎÎÎÎ ÏÎ ÎÎÎÏÎÏÎ ÏÏÎÏÏÎ ÎÎÎ ÎÎÎÎÎÎ ÏÎÎ ÎÏÎÎÏÎÏÎ ÎÎÎ ÏÏÎÎÎÎÏÎ (ÏÏÏÏ "
+"ÎÎÎÎ ÎÎÎ ÏÎÏÎÎÎÏÎ ÎÎÏÎÏÎÏÎ)."
+
+#: C/guitar-tuner.c.page:80(item/p) C/image-viewer.c.page:75(item/p)
+msgid ""
+"The <code>ENABLE_NLS</code> conditional definition sets up <code>gettext</"
+"code>, which is a framework for translating applications. These functions "
+"specify how translation tools should handle your app when you run them."
+msgstr ""
+"Î ÏÏÏ ÏÏÎÏÏ ÎÏÎÏÎÏÏ <code>ENABLE_NLS</code> ÎÎÎÎÎÎÏÏÎ <code>gettext</code>, "
+"ÏÎÏ ÎÎÎÎÎ Î ÏÎÎÎÎÏÏÏ ÎÎÎ ÎÎÏÎÏÏÎÏÎ ÎÏÎÏÎÎÎÏÎ. ÎÏÏÎÏ ÎÎ ÏÏÎÎÏÏÎÏÎÎÏ ÎÏÎÎÎÏÎ "
+"ÏÏÏ ÏÎ ÎÏÎÎÎÎÎÎ ÎÎÏÎÏÏÎÏÎÏ ÎÎ ÏÎÎÏÎÏÏÎÏÎ ÏÎÎ ÎÏÎÏÎÎÎÎ ÏÎÏ ÏÏÎÎ ÏÎÏ ÎÎÏÎÎÎÎÏÎ."
+
+#: C/guitar-tuner.c.page:84(section/p) C/guitar-tuner.cpp.page:78(section/p)
+#: C/image-viewer.c.page:79(section/p) C/image-viewer.cpp.page:76(section/p)
+#: C/image-viewer.vala.page:127(section/p)
+#: C/magic-mirror.vala.page:87(section/p)
+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 ""
+"ÎÏÏÏÏ Î ÎÏÎÎÎÎÏ ÎÎÎÎÎ ÎÏÎÎÎÎÏ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÎÎ, ÎÏÏÏÎ ÎÏÎÏÎÎÏÎ ÎÎ ÏÎÎ "
+"ÎÎÏÎÎÎÏÏÏÎÏÎÏÎ ÎÎ ÎÎÎÎ <guiseq><gui>ÎÎÏÎÏÎÎÏÎ</gui><gui>ÎÎÏÎÏÎÎÏÎ ÎÏÎÎÏ</"
+"gui></guiseq> (Î ÏÎÎÎÎÎÏÎÏ <keyseq><key>Shift</key><key>F7</key></keyseq>)."
+
+#: C/guitar-tuner.c.page:85(section/p) C/guitar-tuner.cpp.page:79(section/p)
+#: C/image-viewer.c.page:80(section/p) C/image-viewer.cpp.page:77(section/p)
+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 ""
+"ÎÎÏÎÏÏÎ <gui>Execute</gui> ÏÏÎ ÎÏÏÎÎÎÎ ÏÎÏÎÎÏÏÎ ÏÎÏ ÎÎÏÎÎÎÎÎÏÎÎ ÎÎÎ ÏÏÎÎÎÏÎ "
+"ÎÎÏÎÏÎÎÏÎÏ ÎÏÎÏÏÎÎÎÎÏÏÏÎÏ. ÎÏÎÎÎÎÎÏÎÎ ÎÎ ÏÎ ÎÎÎÎÏÎ ÎÏÏÏ ÎÏÎÎ ÎÎÎ ÏÎÏÎ, ÎÎÎ "
+"ÏÎÎ ÏÏÏÏÎ ÎÎÏÎÏÎÎÏÎ."
+
+#: C/guitar-tuner.c.page:89(section/title)
+#: C/guitar-tuner.cpp.page:83(section/title)
+#: C/guitar-tuner.py.page:85(section/title)
+#: C/guitar-tuner.vala.page:90(section/title)
+msgid "Create the user interface"
+msgstr "ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ ÎÎÎÏÎÏÎÏ ÏÏÎÏÏÎ"
+
+#: C/guitar-tuner.c.page:90(section/p) C/guitar-tuner.cpp.page:84(section/p)
+msgid ""
+"A description of the user interface (UI) is contained in the GtkBuilder "
+"file. To edit the user interface, open <file>src/guitar_tuner.ui</file>. "
+"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 ""
+"ÎÎÎ ÏÎÏÎÎÏÎÏÎ ÏÎÏ ÎÎÎÏÎÏÎÏ ÏÏÎÏÏÎ (UI) ÏÎÏÎÎÏÎÏÎÎ ÏÏÎ ÎÏÏÎÎÎ GtkBuilder. ÎÎÎ "
+"ÎÎ ÎÏÎÎÎÏÎÎÏÏÎÎÏÎ ÏÎ ÎÎÎÏÎÏÎ ÏÏÎÏÏÎ, ÎÎÎÎÎÏÎ ÏÎ <file>src/guitar_tuner.ui</"
+"file>. ÎÎ ÎÏÎÎÎÎÏÎ ÏÏÎ ÏÏÎÎÎÎÏÏÎ ÎÎÎÏÎÏÎÏ. ÎÎ ÏÎÏÎÎÏÏÎ ÏÏÎÎÎÎÏÎÏ ÎÎÎÎÎ ÏÏÎ "
+"ÎÎÎÏÏÎÂ ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÎ ÎÎ ÏÏÎÎÎÏÎÎÏ ÏÎÏÏ ÎÎÎÎÎ ÏÏÎ ÎÏÎÏÏÎÏÎ, Î "
+"ÏÎÎÎÏÎ ÎÎ ÏÎ ÎÎÎÎÎÏÎÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÏÏÎ ÎÎÎÎÎ."
+
+#: C/guitar-tuner.c.page:92(section/p) C/guitar-tuner.cpp.page:86(section/p)
+#: C/guitar-tuner.py.page:88(section/p)
+msgid ""
+"The layout of every UI in GTK+ is organized using boxes and tables. Let's "
+"use a vertical <gui>GtkButtonBox</gui> here to assign six <gui>GtkButtons</"
+"gui>, one for each of the six guitar strings."
+msgstr ""
+"Î ÎÎÎÏÎÎÎ ÎÎÎÎ ÎÎÎÏÎÏÎÏ ÏÏÎÏÏÎ ÏÎ Gtk+ ÎÏÎÎÎÏÎÎÏÎÎ ÏÎ ÎÎÏÏÎÎ ÎÎÎ ÏÎÎÎÎÎÏ. ÎÏ "
+"ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÎÏ ÎÎÎ ÎÎÎÎÏÎ <gui>GtkButtonBox</gui> ÎÎÎ ÎÎ ÏÎÏÎÎÎÏÎÏÎÏÎÎ "
+"ÎÎÎ <gui>GtkButtons</gui>, ÎÎÎ ÎÎÎ ÎÎÎÎ ÎÎÎ ÎÏÏ ÏÎÏ ÏÎÏÎÎÏ ÏÎÏ ÎÎÎÎÏÎÏ."
+
+#: C/guitar-tuner.c.page:98(item/p) C/guitar-tuner.cpp.page:92(item/p)
+#: C/guitar-tuner.py.page:94(item/p)
+msgid ""
+"Select a <gui>GtkButtonBox</gui> from the <gui>Container</gui> section of "
+"the <gui>Palette</gui> on the right and put it into the window. In the "
+"<gui>Properties</gui> pane, set the number of elements to 6 (for the six "
+"strings) and the orientation to vertical."
+msgstr ""
+"ÎÎÎÎÎÎÏÎ ÎÎÎ <gui>GtkButtonBox</gui> ÎÏÏ ÏÎ ÏÎÎÎÎ <gui>Container</gui> ÏÏÎÎ "
+"<gui>ÎÎÎÎÏÎ</gui> ÏÏÎ ÎÎÎÎÎ ÎÎÎ ÏÏÎÏÎÎÏÏÎ ÏÎ ÏÏÎ ÏÎÏÎÎÏÏÎ. ÎÏÎÎ ÎÎÏÏÎÎÎ "
+"<gui>ÎÎÎÏÏÎÏÎÏ</gui> ÎÎÎÎÏÎÏÏÎ ÏÎÎ ÎÏÎÎÎÏ ÏÏÎ ÏÏÎÎÏÎÎÏÎ ÏÎ 6 (ÎÎÎ ÏÎÏ ÎÎÎ "
+"ÏÎÏÎÎÏ ÏÎÏ ÎÎÎÎÏÎÏ) ÎÎÎ ÏÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏ ÏÎ ÎÎÎÎÏÎ."
+
+#: C/guitar-tuner.c.page:102(item/p) C/guitar-tuner.cpp.page:96(item/p)
+#: C/guitar-tuner.py.page:98(item/p)
+msgid ""
+"Now, choose a <gui>GtkButton</gui> from the palette and put it into the "
+"first part of the box."
+msgstr ""
+"ÎÏÏÎ, ÎÎÎÎÎÎÏÎ ÎÎÎ <gui>GtkButton</gui> ÎÏÏ ÏÎÎ ÏÎÎÎÏÎ ÎÎÎ ÎÎÎÏÎ ÏÎ ÏÏÎ "
+"ÏÏÏÏÎ ÎÎÏÎÏ ÏÎÏ ÎÎÏÏÎÎÏ."
+
+#: C/guitar-tuner.c.page:105(item/p) C/guitar-tuner.py.page:101(item/p)
+msgid ""
+"While the button is still selected, change the <gui>Label</gui> property in "
+"the <gui>Widgets</gui> tab to <gui>E</gui>. This will be the low E string."
+msgstr ""
+"ÎÏÎÎÏÎÏ ÏÎ ÎÎÏÎÏÎ ÎÎÏÎÎ ÎÏÎÎÎÎÎÎÎÎ, ÎÎÎÎÎÏÎ ÏÎÎ <gui>ÎÏÎÎÎÏÎ</gui> ÏÏÎÎ "
+"ÎÎÏÏÎÎÎ <gui>ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ</gui> ÏÎ <gui>E</gui>. ÎÏÏÎ ÎÎ ÎÎÎÎÎ Î ÏÎÎÎÎÎ "
+"ÏÎÏÎÎ Î."
+
+#: C/guitar-tuner.c.page:108(item/p) C/guitar-tuner.py.page:104(item/p)
+msgid ""
+"Switch to the <gui>Signals</gui> tab (inside the <gui>Widgets</gui> tab) and "
+"look for the <code>clicked</code> signal of the button. You can use this to "
+"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 ""
+"ÎÎÎÎÎÎÎÏÎ ÏÏÎÎ ÎÎÏÏÎÎÎ <gui>ÎÎÎÎÏÎ</gui> (ÎÎÏÎ ÏÏÎÎ ÎÎÏÏÎÎÎ <gui>ÎÏÎÏÎÎÎ "
+"ÏÏÏÏÎÏÎÎÎ</gui>) ÎÎÎ ÎÏÎÎÏÎ ÏÎ ÏÎÎÎ <code>clicked</code> ÏÎÏ ÎÎÏÎÏÎÎÏ. "
+"ÎÏÎÏÎÎÏÎ ÎÎ ÏÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÎÎÎ ÎÎ ÏÏÎÎÎÏÎÏÎ ÎÎÎÎ ÏÎÎÏÎÏÏÎ ÏÎÎÎÏÏÎ ÏÎÏ ÎÎ "
+"ÎÎÎÎÎÏÎÎ ÏÏÎÎ ÏÎÏÎÎÎÎ ÏÎ ÎÎÏÎÏÎ ÎÏÏ ÏÎÎ ÏÏÎÏÏÎ. ÎÎÎ ÎÎ ÏÎ ÎÎÎÎÏÎ ÎÏÏÏ, "
+"ÏÎÏÎÏÏÎ ÏÎÎÏ ÏÏÎ ÏÎÎÎ ÎÎÎ ÏÎÎÎÏÏÎÎÎÎÎÏÏÎ <code>on_button_clicked</code> ÏÏÎ "
+"ÏÏÎÎÎ <gui>ÏÎÎÏÎÏÏÎÏ</gui> ÎÎÎ ÏÎÏÎÏÏÎ <key>ÎÏÎÏÏÏÎÏÎ</key>."
+
+#: C/guitar-tuner.c.page:111(item/p) C/guitar-tuner.py.page:107(item/p)
+#: C/guitar-tuner.vala.page:116(item/p)
+msgid ""
+"Repeat the above steps for the other buttons, adding the next 5 strings with "
+"the names <em>A</em>, <em>D</em>, <em>G</em>, <em>B</em>, and <em>e</em>."
+msgstr ""
+"ÎÏÎÎÎÎÎÎÎÏÎ ÏÎ ÏÎÏÎÏÎÎÏ ÎÎÎÎÏÎ ÎÎÎ ÏÎ ÏÏÏÎÎÎÏÎ ÎÎÏÎÏÎÎ, ÏÏÎÏÎÎÏÏÎ ÏÎÏ "
+"ÎÏÏÎÎÎÎÏ 5 ÏÎÏÎÎÏ ÎÎ ÏÎ ÎÎÏÎÎÏÎ <em>A</em>, <em>D</em>, <em>G</em>, <em>B</"
+"em>, ÎÎÎ <em>e</em>."
+
+#: C/guitar-tuner.c.page:114(item/p) C/guitar-tuner.py.page:110(item/p)
+#: C/guitar-tuner.vala.page:119(item/p)
+msgid ""
+"Save the UI design (by clicking <guiseq><gui>File</gui><gui>Save</gui></"
+"guiseq>) and keep it open."
+msgstr ""
+"ÎÏÎÎÎÎÎÏÏÏÎ ÏÎ ÏÏÎÎÎÎÏÎ UI (ÏÎÏÏÎÏÎÏ <guiseq><gui>ÎÏÏÎÎÎ</"
+"gui><gui>ÎÏÎÎÎÎÎÏÏÎ</gui></guiseq>) ÎÎÎ ÎÏÎÏÎÏÏÎ ÏÎ ÎÎÎÎÏÏÏ."
+
+#: C/guitar-tuner.c.page:120(section/title)
+#: C/guitar-tuner.vala.page:197(section/title)
+msgid "Creating the signal handler"
+msgstr "ÎÎÎÎÎÏÏÎÎÎ ÏÎÎÏÎÏÏÎ ÏÎÎÎÏÏÎ"
+
+#: C/guitar-tuner.c.page:121(section/p) C/guitar-tuner.py.page:117(section/p)
+msgid ""
+"In the UI designer, you made it so that all of the buttons will call the "
+"same function, <gui>on_button_clicked</gui>, when they are clicked. We need "
+"to add that function in the source file."
+msgstr ""
+"ÎÏÎÎ ÏÏÎÎÎÎÏÏÎ ÎÎÎÏÎÏÏÎ ÏÏÎÏÏÎ, ÎÎÎÎÏÎ ÏÎÎ ÏÎ ÎÎÏÎÏÎÎ ÎÎ ÎÎÎÎÏÎ ÏÎÎ ÎÎÎÎ "
+"ÏÏÎÎÏÏÎÏÎ, <gui>on_button_clicked</gui>, ÏÏÎÎ ÏÎÏÎÎÎÏÎ. ÎÏÎÏÎÎ ÎÎ "
+"ÏÏÎÏÎÎÏÎÏÎÎ ÎÏÏÎ ÏÎÎ ÏÏÎÎÏÏÎÏÎ ÏÏÎ ÏÎÎÎÎÎ ÎÏÎÎÎÎ."
+
+#: C/guitar-tuner.c.page:122(section/p)
+msgid ""
+"To do this, open <file>main.c</file> while the user interface file is still "
+"open. Switch to the <gui>Signals</gui> tab, which you already used to set "
+"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 ""
+"ÎÎÎ ÎÎ ÏÎ ÎÎÎÎÏÎ ÎÏÏÏ, ÎÎÎÎÎÏÎ ÏÎ <file>main.c</file>, ÎÏÎÎÏÎÏ ÎÎÎÎÏÏÏ ÎÎÎ "
+"ÏÎ ÎÏÏÎÎÎ ÏÎÏ ÎÎÎÏÎÏÎÏ ÏÏÎÏÏÎ. ÎÎÎÎÎÎÎÏÎ ÏÏÎÎ ÎÎÏÏÎÎÎ <gui>ÏÎÎÎÏÎ</gui> ÏÎÏ "
+"ÎÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÎÎÎ ÎÎ ÎÏÎÏÎÏÎ ÏÎ ÏÎÎÎÎ ÏÎÏ ÏÎÎÎÏÎÏ. ÎÏÏÎ ÏÎÏÏÎ ÏÎ "
+"ÎÏÎÎÎÎ ÏÏÎÏ ÎÎÏÎÏÎ ÎÏÎÏÎÎ ÏÎ ÏÎÎÎ <gui>ÏÎÏÎÎÎÎÎ</gui> ÎÎÎ ÏÏÏÎÏÎ ÏÎÎ ÏÏÎ "
+"ÏÎÎÎÎÎ ÎÏÏÎÎÎ ÏÎ ÎÎÎ ÎÎÏÎ ÏÎÏ ÎÎÎÎÎ ÎÎÏ ÎÏÏ ÎÎÎÎ ÏÏÎÎÏÏÎÏÎ. Î ÎÎÏÎÎÏÎÎÏ "
+"ÎÏÎÎÎÎÏ ÎÎ ÏÏÎÏÏÎÎÎÎ ÏÏÎ ÏÎÎÎÎÎ ÎÏÏÎÎÎ:"
+
+#: C/guitar-tuner.c.page:125(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"void on_button_clicked (GtkWidget* button, gpointer user_data)\n"
+"{\n"
+"\n"
+"}"
+msgstr ""
+"\n"
+"void on_button_clicked (GtkWidget* button, gpointer user_data)\n"
+"{\n"
+"\n"
+"}"
+
+#: C/guitar-tuner.c.page:130(section/p)
+msgid ""
+"This signal handler has two arguments: a pointer to the <code>GtkWidget</"
+"code> that called the function (in our case, always a <code>GtkButton</"
+"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 ""
+"ÎÏÏÏÏ Î ÏÎÎÏÎÏÏÎÏ ÏÎÎÎÏÎÏ ÎÏÎÎ ÎÏÎ ÎÏÎÏÎÎÏÎ: ÎÎÎ ÎÎÎÎÏÎ ÏÏÎ <code>GtkWidget</"
+"code> ÏÎÏ ÎÎÎÎÏÎ ÏÎ ÏÏÎÎÏÏÎÏÎ (ÏÏÎÎ ÏÎÏÎÏÏÏÏÎ ÎÎÏ, ÏÎÎÏÎÏÎ ÎÎÎ "
+"<code>GtkButton</code>) ÎÎÎ ÎÎÎ ÎÎÎÎÏÎ ÏÏÎ ÎÎÏÎÎÎ \"ÎÎÎÎÎÎÎÎ ÏÏÎÏÏÎ\" ÏÎÏ "
+"ÎÏÎÏÎÎÏÎ ÎÎ ÎÏÎÏÎÏÎ, ÎÎÎÎ ÏÎ ÎÏÎÎÎ ÎÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÎÏ. (ÎÏÎÏÎÎÏÎ ÎÎ "
+"ÎÏÎÏÎÏÎ ÏÎ ÎÎÎÎÎÎÎÎ ÏÏÎÏÏÎ ÎÎÎÏÎÏÎÏ <code>gtk_builder_connect_signals</"
+"code>; ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÎÎÎÎÎÎÎÎ ÎÎÎ ÏÎ ÏÎÏÎÏÎÎ ÎÎÏÏ ÎÎÎÎÏÎ ÏÎ ÎÎÎ ÎÎÎÎ "
+"ÎÎÎÎÎÎÎÏÎ ÏÎÏ ÎÏÏÏ ÏÏÎÎÎÏÏÎÎÏÎ ÎÎ ÏÏÎÏÏÎÎÎÏÎÏÎ ÏÏÎ ÏÎÎÏÎÏÏÎ ÏÎÎÎÏÎÏ.)"
+
+#: C/guitar-tuner.c.page:131(section/p) C/guitar-tuner.py.page:125(section/p)
+msgid ""
+"For now, we'll leave the signal handler empty while we work on writing the "
+"code to produce sounds."
+msgstr ""
+"ÎÎÎ ÏÎÎ ÏÏÎ, ÎÎ ÎÏÎÏÎÏÎÎ ÏÎ ÏÎÎÏÎÏÏÎ ÏÎÎÎÏÏÎ ÎÎÎÎÎ ÎÎÎÏÏ ÎÎ ÎÏÏÎÎÎÎÎÏÎÎ ÎÎ "
+"ÏÎ ÎÏÎÏÎÎÎ ÏÎÏ ÎÏÎÎÎÎ ÏÎÏ ÎÎ ÏÎÏÎÎÎÎ ÏÎÏÏ ÎÏÎÏÏ."
+
+#: C/guitar-tuner.c.page:135(section/title)
+#: C/guitar-tuner.cpp.page:112(section/title)
+#: C/guitar-tuner.js.page:38(section/title)
+#: C/guitar-tuner.py.page:129(section/title)
+#: C/guitar-tuner.vala.page:125(section/title)
+msgid "GStreamer pipelines"
+msgstr "ÎÎÎÏÎÏÎÏÏÎÎÏ GStreamer"
+
+#: C/guitar-tuner.c.page:136(section/p) C/guitar-tuner.js.page:39(section/p)
+#: C/guitar-tuner.py.page:130(section/p)
+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 ""
+"ÎÎ Gtreamer ÎÎÎÎÎ Î ÏÎÎÎÎÏÏÏ ÏÎÎÏÎÎÏÏÎ ÏÎÏ GNOME â ÎÏÎÏÎÎÏÎ ÎÎ ÏÎ "
+"ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÎÎÎ ÎÎ ÎÎÎÏÎÏÎÎÎÏÎ, ÎÏÎÎÏÎÏÎÏÎÏÎ, ÎÎÎ ÎÎ ÎÏÎÎÎÏÎÎÏÏÎÎÏÎ "
+"ÎÎÎÏÎÎ, ÎÏÎ, ÏÎÎÏ ÎÎÎÏÎÎ ÎÎÎ ÏÎ ÎÎÎÏÎ. ÎÎÏ, ÎÎ ÏÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÎÎ ÎÎ "
+"ÏÎÏÎÎÎÏÎÎ ÎÎÎÎÏ-ÏÏÏÎÏÏÎÏÎÏ ÏÏÎÏÎ."
+
+#: C/guitar-tuner.c.page:137(section/p) C/guitar-tuner.cpp.page:115(section/p)
+#: C/guitar-tuner.js.page:40(section/p) C/guitar-tuner.py.page:131(section/p)
+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 ""
+"ÎÎÎÎÎÎÎÎÎÎÎÎ, ÏÎ GStreamer ÎÎÎÏÎÏÏÎÎÎ ÏÏ ÎÎÎÏ: ÎÎÎÎÎÏÏÎÎÎÏ ÎÎÎ "
+"<em>ÎÎÎÏÎÏÎÏÏÎ</em> ÏÎÏ ÏÎÏÎÎÏÎÎ ÎÎÎÏÎÏÎ ÎÏÎÎÎÏÎÎÎÏÎÎÎÎ ÏÏÎÎÏÎÎÎ ÏÎÏ "
+"ÏÎÎÎÎÎÎÏÎ ÎÏÏ ÏÎÎ <em>ÏÎÎÎ</em> ÏÏÎÎ <em>ÎÎÎÎÎ</em>. Î ÏÎÎÎ ÎÏÎÏÎÎ ÎÎ ÎÎÎÎÎ "
+"ÎÎÎ ÎÏÏÎÎÎ ÎÎÎÏÎÎÏ, ÎÎÎÏÎÎ, Î ÎÎÎ ÎÎÏÏÎÎÎÏ, ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ, ÎÎÎ Î ÎÎÎÎÎÏ "
+"ÎÏÎÏÎÎ ÎÎ ÎÎÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ Î Î ÎÎÏÏÎ ÎÏÎÏ."
+
+#: C/guitar-tuner.c.page:138(section/p) C/guitar-tuner.cpp.page:116(section/p)
+#: C/guitar-tuner.js.page:41(section/p) C/guitar-tuner.py.page:132(section/p)
+#: C/guitar-tuner.vala.page:128(section/p)
+msgid ""
+"Between source and sink, you can apply various filters and converters to "
+"handle effects, format conversions and so on. Each element of the pipeline "
+"has properties which can be used to change its behaviour."
+msgstr ""
+"ÎÎÎÎÎÏÎ ÏÏÎÎ ÏÎÎÎ ÎÎÎ ÏÏÎÎ ÎÎÎÎÎ, ÎÏÎÏÎÎÏÎ ÎÎ ÎÏÎÏÎÏÏÎÏÎ ÎÎÎÏÎÏÎ ÏÎÎÏÏÎ ÎÎÎ "
+"ÎÎ ÎÎÏÎÏÏÎÏÎÎÏ ÎÎ ÏÎÎÏÎÏÏÎÏÎ ÎÏÎ, ÎÎÏÎÏÏÎÏÎÏ ÎÎÏÏÏÎ ÎÎÎ ÎÎÎÏÎ. ÎÎÎÎ ÏÏÎÎÏÎÎÎ "
+"ÏÎÏ ÎÎÎÏÎÏÎÏÏÎÏ ÎÏÎÎ ÎÎÎÏÏÎÏÎÏ ÏÎÏ ÎÏÎÏÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÎÏÎ ÎÎÎ ÎÎ "
+"ÎÎÎÎÎÎÏÎ ÏÎ ÏÏÎÏÎÏÎÏÎÏÎ ÏÎÏÏ."
+
+#: C/guitar-tuner.c.page:140(media/p) C/guitar-tuner.cpp.page:118(media/p)
+#: C/guitar-tuner.js.page:43(media/p) C/guitar-tuner.py.page:134(media/p)
+#: C/guitar-tuner.vala.page:130(media/p)
+msgid "An example GStreamer pipeline."
+msgstr "ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ ÎÎÎÏÎÏÎÏÏÎÏ GStreamer."
+
+#: C/guitar-tuner.c.page:145(section/title)
+#: C/guitar-tuner.py.page:139(section/title)
+#: C/guitar-tuner.vala.page:135(section/title)
+msgid "Set up the pipeline"
+msgstr "ÎÏÎÎÎÏÎ ÏÎÏ ÎÎÎÏÎÏÎÏÏÎÏ"
+
+#: C/guitar-tuner.c.page:146(section/p) C/guitar-tuner.cpp.page:129(section/p)
+#: C/guitar-tuner.py.page:140(section/p)
+msgid ""
+"In this simple example we will use a tone generator source called "
+"<code>audiotestsrc</code> and send the output to the default system sound "
+"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 ""
+"ÎÎ ÎÏÏÏ ÏÎ ÎÏÎÏ ÏÎÏÎÎÎÎÎÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÎÎ ÏÎÎÎ ÏÎÏÎÎÏÎÎÏ ÏÏÎÏÎ, ÏÎÎ "
+"<code>audiotestsrc</code> ÎÎÎ ÎÎ ÏÏÎÎÎÎÏÎÎ ÏÎÎ ÎÎÎÎÎ ÏÏÎÎ ÏÏÎÎÏÎÎÎÎÎÎÎÎ "
+"ÏÏÏÎÎÏÎ ÎÏÎÏ ÏÎÏ ÏÏÏÏÎÎÎÏÎÏ, <code>autoaudiosink</code>. ÎÏÎÏÎÎ ÎÏÎÎ ÎÎ "
+"ÏÏÎÎÎÏÎÏÎÎ ÏÎÎ ÏÏÏÎÏÏÎÏÎ ÏÎÏ ÏÎÏÎÎÏÎÎÏ ÏÏÎÎÏÂ ÎÏÏÏ ÎÎÎÎÎ ÎÏÎÎÏÏ ÎÎÏÎ ÎÏÏ ÏÎÎ "
+"ÏÏÎÎÎÏÎ <code>freq</code> ÏÎÏ <code>audiotestsrc</code>."
+
+#: C/guitar-tuner.c.page:148(section/p)
+msgid ""
+"Insert the following line into <file>main.c</file>, just below the "
+"<code>#include &lt;gtk/gtk.h&gt;</code> line:"
+msgstr ""
+"ÎÎÏÎÎÎÏÎ ÏÎÎ ÏÎÏÎÎÎÏÏ ÎÏÎÎÎÎ ÏÏÎ <file>main.c</file>, ÎÎÏÎÎÏÏ ÎÎÏÏ ÎÏÏ ÏÎ "
+"ÎÏÎÎÎÎ <code>#include &lt;gtk/gtk.h&gt;</code>:"
+
+#: C/guitar-tuner.c.page:149(section/code)
+#, no-wrap
+msgid "#include &lt;gst/gst.h&gt;"
+msgstr "#include &lt;gst/gst.h&gt;"
+
+#: C/guitar-tuner.c.page:150(section/p)
+msgid ""
+"This includes the GStreamer library. You also need to add a line to "
+"initialize GStreamer; put the following code on the line above the "
+"<code>gtk_init</code> call in the <code>main</code> function:"
+msgstr ""
+"ÎÏÏÏ ÏÎÏÎÎÎÎÎÎÎÎÎ ÏÎ ÎÎÎÎÎÎÎÎÎÎ ÏÎÏ GStreamer. ÎÏÎÎÎÎÎÏÎÎ ÎÏÎÏÎÏ ÎÎ "
+"ÏÏÎÏÎÎÏÎÏÎÎ ÎÎÎ ÎÏÎÎÎÎ ÎÎÎ ÎÏÏÎÎÎÏÎÎÎÏÎ ÏÎÏ GStreamer ÎÎÎÏÎ ÏÎÎ ÏÎÏÎÎÎÏÏ "
+"ÎÏÎÎÎÎ ÏÏÎÎ ÎÏÎÎÎÎ ÏÎÎÏ ÎÏÏ ÏÎÎ ÎÎÎÏÎ <code>gtk_init</code> ÏÏÎ ÏÏÎÎÏÏÎÏÎ "
+"<code>main</code>:"
+
+#: C/guitar-tuner.c.page:151(section/code)
+#, no-wrap
+msgid "gst_init (&amp;argc, &amp;argv);"
+msgstr "gst_init (&amp;argc, &amp;argv);"
+
+#: C/guitar-tuner.c.page:152(section/p)
+msgid ""
+"Then, copy the following function into <file>main.c</file> above the empty "
+"<code>on_button_clicked</code> function:"
+msgstr ""
+"ÎÎÏÎ, ÎÎÏÎÎÏÎÏÏÎ ÏÎÎ ÎÎÏÎÎÏÎÎ ÏÏÎÎÏÏÎÏÎ ÏÏÎÎ <file>main.c</file> ÏÎÎÏ ÎÏÏ "
+"ÏÎÎ ÎÎÎÎ ÏÏÎÎÏÏÎÏÎ <code>on_button_clicked</code>:"
+
+#: C/guitar-tuner.c.page:153(section/code)
+#, no-wrap
+msgid ""
+"static void\n"
+"play_sound (gdouble frequency)\n"
+"{\n"
+"\tGstElement *source, *sink;\n"
+"\tGstElement *pipeline;\n"
+"\n"
+"\tpipeline = gst_pipeline_new (\"note\");\n"
+"\tsource   = gst_element_factory_make (\"audiotestsrc\",\n"
+"\t                                     \"source\");\n"
+"\tsink     = gst_element_factory_make (\"autoaudiosink\",\n"
+"\t                                     \"output\");\n"
+"\n"
+"\t/* set frequency */\n"
+"\tg_object_set (source, \"freq\", frequency, NULL);\n"
+"\n"
+"\tgst_bin_add_many (GST_BIN (pipeline), source, sink, NULL);\n"
+"\tgst_element_link (source, sink);\n"
+"\n"
+"\tgst_element_set_state (pipeline, GST_STATE_PLAYING);\n"
+"\n"
+"\t/* stop it after 500ms */\n"
+"\tg_timeout_add (LENGTH, (GSourceFunc) pipeline_stop, pipeline);\n"
+"}"
+msgstr ""
+"static void\n"
+"play_sound (gdouble frequency)\n"
+"{\n"
+"\tGstElement *source, *sink;\n"
+"\tGstElement *pipeline;\n"
+"\n"
+"\tpipeline = gst_pipeline_new (\"note\");\n"
+"\tsource   = gst_element_factory_make (\"audiotestsrc\",\n"
+"\t                                     \"source\");\n"
+"\tsink     = gst_element_factory_make (\"autoaudiosink\",\n"
+"\t                                     \"output\");\n"
+"\n"
+"\t/* set frequency */\n"
+"\tg_object_set (source, \"freq\", frequency, NULL);\n"
+"\n"
+"\tgst_bin_add_many (GST_BIN (pipeline), source, sink, NULL);\n"
+"\tgst_element_link (source, sink);\n"
+"\n"
+"\tgst_element_set_state (pipeline, GST_STATE_PLAYING);\n"
+"\n"
+"\t/* stop it after 500ms */\n"
+"\tg_timeout_add (LENGTH, (GSourceFunc) pipeline_stop, pipeline);\n"
+"}"
+
+#: C/guitar-tuner.c.page:179(item/p)
+msgid ""
+"The first five lines create source and sink GStreamer elements "
+"(<code>GstElement</code>), and a pipeline element (which will be used as a "
+"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 ""
+"ÎÎ ÏÏÎÎÏ ÏÎÎÏÎ ÎÏÎÎÎÎÏ ÎÎÎÎÎÏÏÎÎÏÎ ÏÎ ÏÏÎÎÏÎÎÎ ÏÎÎÎ ÎÎÎ ÎÎÎÎÎÏ ÏÎÏ GStreamer "
+"(<code>GstElement</code>) ÎÎÎ ÎÎÎ ÏÏÎÎÏÎÎÎ ÎÎÎÏÎÏÎÏÏÎÏ (ÏÎ ÎÏÎÎÎ ÎÎ "
+"ÏÏÎÏÎÎÎÏÎÎÎÎÎÎ ÏÏ ÏÎÏÎÎÎÏÎÏ ÎÎÎ ÏÎ ÎÏÎ ÎÎÎÎ ÏÏÎÎÏÎÎÎ). ÎÎÎÎÏÎÎ ÏÎ ÏÎÎÎÎ "
+"\"note\" ÏÏÎ ÎÎÎÏÎÏÎÏÏÎÂ ÎÎÎÎÎÎÎÏÎÎ ÏÎÎ ÏÎÎÎ \"source\" ÎÎÎ ÏÎ ÏÏÎÎÎÎÎÏÎ "
+"ÏÏÎÎ ÏÎÎÎ <code>audiotestsrc</code>Â ÎÎÎ ÎÎÎÎÎÎÎÏÎÎ ÏÎÎ ÎÎÎÎÎ \"output\" ÎÎÎ "
+"ÏÎÎ ÏÏÎÎÎÎÎÏÎ ÏÏÎÎ ÎÎÎÎÎ <code>autoaudiosink</code> (ÏÏÎÎÏÎÎÎÎÎÎÎÎ ÎÎÎÎÎÏ "
+"ÎÎÏÏÎÏ ÎÏÎÏ)."
+
+#: C/guitar-tuner.c.page:182(item/p)
+msgid ""
+"The call to <code>g_object_set</code> sets the <code>freq</code> property of "
+"the source element to <code>frequency</code>, which is passed as an argument "
+"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 ""
+"ÎÎ ÎÎÎÎÏÎÎ ÏÎÏ <code>g_object_set</code> ÎÏÎÎÎÎ ÏÎÎ ÎÎÎÏÏÎÏÎ <code>freq</"
+"code> ÏÎÏ ÏÏÎÎÏÎÎÎÏ ÏÎÎÎ ÏÎ <code>frequency</code>, Î ÎÏÎÎÎ ÎÏÎÎ ÏÎÏÎÏÏÎÎ ÏÏ "
+"ÏÏÎÏÎÎ ÏÏÎ ÏÏÎÎÏÏÎÏÎ <code>play_sound</code>. ÎÏÏÎ ÎÎÎÎÎ ÎÏÎÎ Î ÏÏÏÎÏÏÎÏÎ "
+"ÏÎÏ ÎÏÏÎÏ ÏÎ Hertz ÎÎÏÎÎÎÏ ÏÏÎÏÎÎÎÏ ÏÏÏÎÏÏÎÏÎÏ ÎÎ ÎÏÎÏÏÎÏÎ ÎÏÎÏÏÎÏÎ."
+
+#: C/guitar-tuner.c.page:185(item/p)
+msgid ""
+"<code>gst_bin_add_many</code> puts the source and sink into the pipeline. "
+"The pipeline is a <code>GstBin</code>, which is just an element that can "
+"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> ÎÎÎÎÎ ÏÎÎ ÏÎÎÎ ÎÎÎ ÏÎÎ ÎÎÎÎÎ ÏÏÎ ÎÎÎÏÎÏÎÏÏÎ. "
+"Î ÎÎÎÏÎÏÎÏÏÎ ÎÎÎÎÎ ÎÎÎÏ <code>GstBin</code>, ÏÎÏ ÎÎÎÎÎ ÎÏÎÎÏ ÎÎÎ ÏÏÎÎÏÎÎÎ "
+"ÏÎÏ ÎÏÎÏÎÎ ÎÎ ÏÎÏÎÎÏÎÎ ÏÎÎÎÎÏÎÎ ÎÎÎÎ ÏÏÎÎÏÎÎÎ GStreamer. ÎÎÎÎÎÎ, ÎÏÎÏÎÎÏÎ ÎÎ "
+"ÏÏÎÏÎÎÏÎÏÎ ÏÏÎ ÏÏÎÎÏÎÎÎ ÎÎÎÎÏÎ ÏÏÎ ÎÎÎÏÎÏÎÏÏÎ ÏÏÎÏÎÎÏÎÎÏÎÏ ÏÎÏÎÏÏÏÏÎÏÎ "
+"ÎÏÎÏÎÎÏÎ ÏÏÎÎ <code>gst_bin_add_many</code>."
+
+#: C/guitar-tuner.c.page:188(item/p)
+msgid ""
+"Next, <code>gst_element_link</code> is used to connect the elements "
+"together, so the output of <code>source</code> (a tone) goes into the input "
+"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 ""
+"ÎÎÏÏÏÎÎ, Î <code>gst_element_link</code> ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÎÎÎ ÏÏÎÎÎÏÎ ÏÏÎ "
+"ÏÏÎÎÏÎÎÏÎ ÎÎÎÎ, ÎÏÏÎ Î ÎÎÎÎÎÏ ÏÎÏ <code>source</code> (ÎÎÎÏ ÏÏÎÎÏ) ÏÎÎÎÎÎÎÎ "
+"ÏÏÎÎ ÎÎÏÎÎÎ ÏÎÏ <code>sink</code> (ÏÎÏ ÎÎÎÎÎ ÎÏÎÎÏÎ ÎÎÎÎÎÏ ÏÏÎÎ ÎÎÏÏÎ ÎÏÎÏ). "
+"ÎÎ <code>gst_element_set_state</code> ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÎÏÎÎÏÎ ÎÎÎ ÎÎÎÏÎÎ "
+"ÎÎÎÏÎÏÎÎÏÎÎÏ, ÎÏÎÎÎÎÏÎÏ ÏÎÎ ÎÎÏÎÏÏÎÏÎ ÏÎÏ ÎÎÎÏÎÏÎÏÏÎÏ ÎÎ ÏÎÎÎÎÎ "
+"(<code>GST_STATE_PLAYING</code>)."
+
+#: C/guitar-tuner.c.page:195(section/title)
+#: C/guitar-tuner.py.page:180(section/title)
+msgid "Stopping playback"
+msgstr "ÎÎÎÎÎÏÎ ÎÎÎÏÎÏÎÎÏÎÎÏ"
+
+#: C/guitar-tuner.c.page:196(section/p)
+msgid ""
+"We don't want to play an annoying tone forever, so the last thing "
+"<code>play_sound</code> does is to call <code>g_timeout_add</code>. This "
+"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 ""
+"ÎÎÎ ÎÎÎÎÏÎÎ ÎÎ ÏÎÎÎÎÏÎÎ ÎÎÎÎ ÎÎÎÏÎÎÏÎÎÏ ÎÏÎ ÎÎÎ ÏÎÎÏÎ, ÎÏÏÏÎ ÏÎ ÏÎÎÎÏÏÎÎÎ "
+"ÏÏÎÎÎÎ ÏÎÏ ÎÎÎÎÎ Î <code>play_sound</code> ÎÎÎÎÎ ÎÎ ÎÎÎÎÎ ÏÎ "
+"<code>g_timeout_add</code>. ÎÏÏÏ ÎÏÎÎÎÎ ÎÎÎ ÏÏÎÎÎÎÏ ÏÎÏÎÎÏÏÎÎ ÏÎÏ ÎÎ "
+"ÏÏÎÎÎÏÎÏÎÎ ÏÎÎ ÎÏÎÂ ÏÎÏÎÎÎÎÎÎ ÎÎÎ <code>LENGTH</code> ms ÏÏÎÎ ÎÎÎÎÏÎÎ ÏÎ "
+"ÏÏÎÎÏÏÎÏÎ <code>pipeline_stop</code>, ÎÎÎ ÎÎ ÏÏÎÎÏÎÏÎÎ ÎÎ ÏÎÎ ÎÎÎÎÎ ÎÎÏÏÎ Î "
+"<code>pipeline_stop</code> ÎÎ ÎÏÎÏÏÏÎÏÎÎ <code>False</code>."
+
+#: C/guitar-tuner.c.page:197(section/p)
+msgid ""
+"Now, we'll write the <code>pipeline_stop</code> function which is called by "
+"<code>g_timeout_add</code>. Insert the following code <em>above</em> the "
+"<code>play_sound</code> function:"
+msgstr ""
+"ÎÏÏÎ ÎÎ ÎÏÎÏÎÏÎÎ ÏÎ ÏÏÎÎÏÏÎÏÎ <code>pipeline_stop</code>, Î ÎÏÎÎÎ ÎÎÎÎÎÏÎÎ "
+"ÎÏÏ ÏÎ <code>g_timeout_add</code>. ÎÏÎÏÎÎÏÏÎ ÏÎÎ ÎÎÏÎÎÏÎÎ ÎÏÎÎÎÎ <em>ÏÎÎÏ</"
+"em> ÎÏÏ ÏÎ ÏÏÎÎÏÏÎÏÎ <code>play_sound</code>:"
+
+#: C/guitar-tuner.c.page:198(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"#define LENGTH 500 /* Length of playing in ms */\n"
+"\n"
+"static gboolean\n"
+"pipeline_stop (GstElement* pipeline)\n"
+"{\n"
+"\tgst_element_set_state (pipeline, GST_STATE_PAUSED);\n"
+"\tg_object_unref (pipeline);\n"
+"\n"
+"\treturn FALSE;\n"
+"}"
+msgstr ""
+"\n"
+"#define LENGTH 500 /* Length of playing in ms */\n"
+"\n"
+"static gboolean\n"
+"pipeline_stop (GstElement* pipeline)\n"
+"{\n"
+"\tgst_element_set_state (pipeline, GST_STATE_PAUSED);\n"
+"\tg_object_unref (pipeline);\n"
+"\n"
+"\treturn FALSE;\n"
+"}"
+
+#: C/guitar-tuner.c.page:209(section/p)
+msgid ""
+"The call to <code>gst_element_set_state</code> pauses the playback of the "
+"pipeline and <code>g_object_unref</code> unreferences the pipeline, "
+"destroying it and freeing its memory."
+msgstr ""
+"Î ÎÎÎÏÎ ÏÎ <code>gst_element_set_state</code> ÏÏÎÎÎÏÎ ÏÎÎ ÎÎÎÏÎÏÎÎÏÎÎ ÏÎÏ "
+"ÎÎÎÏÎÏÎÏÏÎÏ ÎÎÎ Î <code>g_object_unref</code> ÏÏÎÎÎÏÎ ÏÎÎ ÎÎÎÏÎÏÎ ÏÏÎ "
+"ÎÎÎÏÎÏÎÏÏÎ, ÎÎÏÎÏÏÏÎÏÎÎÏÎÏ ÏÎÎ ÎÎÎ ÎÎÎÏÎÎÏÏÎÎÎÏÎÏ ÏÎ ÎÎÎÎÎ ÏÎÏ."
+
+#: C/guitar-tuner.c.page:213(section/title)
+#: C/guitar-tuner.py.page:197(section/title)
+msgid "Define the tones"
+msgstr "ÎÏÎÏÎÏÏ ÏÏÎ ÏÏÎÏÎ"
+
+#: C/guitar-tuner.c.page:214(section/p)
+msgid ""
+"We want to play the correct sound when the user clicks a button. First of "
+"all, we need to know the frequencies for the six guitar strings, which are "
+"defined (at the top of <file>main.c</file>) as follows:"
+msgstr ""
+"ÎÎÎÎÏÎÎ ÎÎ ÏÎÎÎÎÏÎÎ ÏÎ ÏÏÏÏÏ ÎÏÎ ÏÏÎÎ Î ÏÏÎÏÏÎÏ ÏÎÏÎ ÎÎÎ ÎÎÏÎÏÎ. ÎÏÏÏÎ ÎÏÏ "
+"ÏÎÎ, ÎÎÎÎÏÎÎ ÎÎ ÎÎÏÎÏÎÎ ÏÎÏ ÏÏÏÎÏÏÎÏÎÏ ÎÎÎ ÏÎÏ ÎÎÎ ÏÎÏÎÎÏ ÏÎÏ ÎÎÎÎÏÎÏ, ÎÎ "
+"ÎÏÎÎÎÏ ÎÏÎÎÎÎÏÎÎ (ÏÏÎÎ ÎÏÏÎ ÏÎÏ <file>main.c</file>) ÏÏ ÎÎÎÎÎÏÎÏÏ:"
+
+#: C/guitar-tuner.c.page:215(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"/* Frequencies of the strings */\n"
+"#define NOTE_E 329.63\n"
+"#define NOTE_A 440\n"
+"#define NOTE_D 587.33\n"
+"#define NOTE_G 783.99\n"
+"#define NOTE_B 987.77\n"
+"#define NOTE_e 1318.5"
+msgstr ""
+"\n"
+"/* Frequencies of the strings */\n"
+"#define NOTE_E 329.63\n"
+"#define NOTE_A 440\n"
+"#define NOTE_D 587.33\n"
+"#define NOTE_G 783.99\n"
+"#define NOTE_B 987.77\n"
+"#define NOTE_e 1318.5"
+
+#: C/guitar-tuner.c.page:223(section/p) C/guitar-tuner.py.page:211(section/p)
+msgid ""
+"Now to flesh out the signal handler that we defined earlier, "
+"<code>on_button_clicked</code>. We could have connected every button to a "
+"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 ""
+"ÎÎÎ ÎÎ ÎÎÏÎÎ ÏÎÎ ÏÎÎÏÎÏÏÎ ÏÎÎÎÏÏÎ ÏÎÏ ÎÏÎÏÎÎÎ ÏÏÎÎ, <code>on_button_clicked</"
+"code>. ÎÎ ÎÏÎÏÎÏÏÎÎÎ ÎÎ ÎÎÏÎÎÎ ÏÏÎÎÎÏÎÎ ÏÎÎ ÏÎ ÎÎÏÎÏÎÎ ÏÎ ÎÎÎÏÎÏÎÏÎÎÏ "
+"ÏÎÎÏÎÏÏÎ ÏÎÎÎÏÏÎ, ÎÎÎÎ ÎÏÏÏ ÎÎ ÎÎÎÎÎÏÏÎ ÏÎ ÏÎÎÎÎÏ ÎÏÎÎÎÎÎÏÎÎÏ ÏÎÏ ÎÏÎÎÎÎ. "
+"ÎÎÏÎ ÎÏÏÎÏ, ÎÏÎÏÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÏÎÏ ÎÏÎÎÎÏÎÏ ÏÏÎ ÎÎÏÎÏÎÎ ÎÎÎ ÎÎ "
+"ÎÎÏÎÎ ÏÎÎÎ ÏÎÏÎÎÎÎÎ:"
+
+#: C/guitar-tuner.c.page:224(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"/* Callback for the buttons */\n"
+"void on_button_clicked (GtkButton* button,\n"
+"                        gpointer user_data)\n"
+"{\n"
+"\tGtkWidget* label = gtk_bin_get_child (GTK_BIN (button));\n"
+"\tconst gchar* text = gtk_label_get_label (GTK_LABEL (label));\n"
+"\n"
+"\tif (g_str_equal (text, _(\"E\")))\n"
+"\t    play_sound (NOTE_E);\n"
+"\telse if (g_str_equal (text, _(\"A\")))\n"
+"\t    play_sound (NOTE_A);\n"
+"\telse if (g_str_equal (text, _(\"G\")))\n"
+"\t    play_sound (NOTE_G);\n"
+"\telse if (g_str_equal (text, _(\"D\")))\n"
+"\t    play_sound (NOTE_D);\n"
+"\telse if (g_str_equal (text, _(\"B\")))\n"
+"\t    play_sound (NOTE_B);\n"
+"\telse if (g_str_equal (text, _(\"e\")))\n"
+"\t    play_sound (NOTE_e);\n"
+"}\n"
+msgstr ""
+"\n"
+"/* Callback for the buttons */\n"
+"void on_button_clicked (GtkButton* button,\n"
+"                        gpointer user_data)\n"
+"{\n"
+"\tGtkWidget* label = gtk_bin_get_child (GTK_BIN (button));\n"
+"\tconst gchar* text = gtk_label_get_label (GTK_LABEL (label));\n"
+"\n"
+"\tif (g_str_equal (text, _(\"E\")))\n"
+"\t    play_sound (NOTE_E);\n"
+"\telse if (g_str_equal (text, _(\"A\")))\n"
+"\t    play_sound (NOTE_A);\n"
+"\telse if (g_str_equal (text, _(\"G\")))\n"
+"\t    play_sound (NOTE_G);\n"
+"\telse if (g_str_equal (text, _(\"D\")))\n"
+"\t    play_sound (NOTE_D);\n"
+"\telse if (g_str_equal (text, _(\"B\")))\n"
+"\t    play_sound (NOTE_B);\n"
+"\telse if (g_str_equal (text, _(\"e\")))\n"
+"\t    play_sound (NOTE_e);\n"
+"}\n"
+
+#: C/guitar-tuner.c.page:246(section/p)
+msgid ""
+"A pointer to the <code>GtkButton</code> that was clicked is passed as an "
+"argument (<code>button</code>) to <code>on_button_clicked</code>. We can get "
+"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 ""
+"Î ÎÎÎÎÏÎÏ ÏÏÎ <code>Gtk.Button</code> ÏÎÏ ÏÎÏÎÎÎÎÎ ÏÎÏÎÎ ÏÏ ÏÏÎÏÎÎ "
+"(<code>button</code>) ÏÏÎ <code>on_button_clicked</code>. ÎÏÎÏÎÏÎÎ ÎÎ "
+"ÏÎÏÎÏÎÎ ÏÎÎ ÎÏÎÎÎÏÎ ÎÏÏÎÏ ÏÎÏ ÎÎÏÎÏÎÎÏ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ "
+"<code>gtk_bin_get_child</code> ÎÎÎ ÎÏÎÎÏÎ ÎÎ ÏÎÏÎÏÎÎ ÏÎ ÎÎÎÎÎÎÎ ÎÏÏ ÎÏÏÎÎ "
+"ÏÎÎ ÎÏÎÎÎÏÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ <code>gtk_label_get_label</code>."
+
+#: C/guitar-tuner.c.page:247(section/p)
+msgid ""
+"The label text is then compared to the notes that we have using "
+"<code>g_str_equal</code>, and <code>play_sound</code> is called with the "
+"frequency appropriate for that note. This plays the tone; we have a working "
+"guitar tuner!"
+msgstr ""
+"ÎÎ ÎÎÎÎÎÎÎ ÏÎÏ ÎÏÎÎÎÏÎÏ ÏÏÎÎÏÎÎÎÏÎÎ ÏÏÏÎ ÎÎ ÏÎÏ ÎÏÏÎÏ ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ "
+"<code>g_str_equal</code> ÎÎÎ <code>play_sound</code> ÎÎÎÎÎÏÎÎ ÎÎ ÏÎÎ "
+"ÎÎÏÎÎÎÎÎÎ ÏÏÏÎÏÏÎÏÎ ÎÎÎ ÎÏÏÎÎ ÏÎÎ ÎÏÏÎ. ÎÏÏÏ ÏÎÎÎÎÎ ÏÎÎ ÏÏÎÎÂ Î ÏÏÎÏÎÎÎÏÏÎÏ "
+"ÎÎÎÎÏÎÏ ÎÎÎÎÎ ÎÏÎÎÎÎÏ!"
+
+#: C/guitar-tuner.c.page:251(section/title)
+#: C/guitar-tuner.cpp.page:249(section/title)
+#: C/guitar-tuner.vala.page:247(section/title)
+#: C/image-viewer.c.page:216(section/title)
+#: C/image-viewer.cpp.page:204(section/title)
+#: C/image-viewer.vala.page:274(section/title)
+#: C/photo-wall.c.page:371(section/title)
+msgid "Build and run the application"
+msgstr "ÎÎÏÎÏÎÎÏÎ ÎÎÎ ÎÎÏÎÎÎÏÎ ÏÎÏ ÎÏÎÏÎÎÎÎÏ"
+
+#: C/guitar-tuner.c.page:252(section/p)
+#: C/guitar-tuner.vala.page:248(section/p)
+#: C/image-viewer.c.page:217(section/p) C/image-viewer.cpp.page:205(section/p)
+#: C/image-viewer.vala.page:275(section/p)
+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 ""
+"ÎÎÎÏ Î ÎÏÎÎÎÎÏ ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎ ÎÏÎÎÎÎÏ ÏÏÏÎ. ÎÎÎÎ <guiseq><gui>ÎÎÏÎÏÎÎÏÎ</"
+"gui><gui>ÎÎÏÎÏÎÎÏÎ ÎÏÎÎÏ</gui></guiseq> ÎÎÎ ÎÎÎÎÎÏÎÏÎÎÏÎ ÏÏÎ ÏÎÎÏÏÎ ÎÎÎ "
+"ÎÏÎÎÏÎ <guiseq><gui>ÏÏÎÎÎÎÎ</gui><gui>ÎÎÏÎÎÎÏÎ</gui></guiseq> ÎÎÎ ÎÎÎÏÎÎ ÏÎÏ "
+"ÎÏÎÏÎÎÎÎÏ."
+
+#: C/guitar-tuner.c.page:253(section/p) C/guitar-tuner.cpp.page:251(section/p)
+#: C/guitar-tuner.vala.page:249(section/p)
+msgid ""
+"If you haven't already done so, choose the <file>Debug/src/guitar-tuner</"
+"file> application in the dialog that appears. Finally, hit <gui>Run</gui> "
+"and enjoy!"
+msgstr ""
+"ÎÎÎ ÎÎÎ ÏÎ ÎÏÎÏÎ ÎÎÎ ÎÎÎÎÎ, ÎÏÎÎÎÎÏÎ ÏÎÎ ÎÏÎÏÎÎÎÎ <file>Debug/src/guitar-"
+"tuner</file> ÏÏÎÎ ÎÎÎÎÎÎÎ ÏÎÏ ÎÎÏÎÎÎÎÎÏÎÎ. ÎÎÎÎÎÎ, ÏÎÏÎÏÏÎ <gui>ÏÏÎÎÎÎÎ</"
+"gui> ÎÎÎ ÎÏÎÎÎÏÏÏÎ!"
+
+#: C/guitar-tuner.c.page:257(section/title)
+#: C/guitar-tuner.cpp.page:255(section/title)
+#: C/guitar-tuner.js.page:234(section/title)
+#: C/guitar-tuner.py.page:229(section/title)
+#: C/guitar-tuner.vala.page:253(section/title)
+#: C/image-viewer.c.page:222(section/title)
+#: C/image-viewer.cpp.page:210(section/title)
+#: C/image-viewer.js.page:311(section/title)
+#: C/image-viewer.py.page:225(section/title)
+#: C/image-viewer.vala.page:282(section/title)
+#: C/magic-mirror.vala.page:144(section/title)
+#: C/photo-wall.c.page:379(section/title)
+#: C/record-collection.js.page:291(section/title)
+msgid "Reference Implementation"
+msgstr "ÎÎÎÏÎÎÎÏÎ ÎÎÎÏÎÏÎÏ"
+
+#: C/guitar-tuner.c.page:258(section/p)
+msgid ""
+"If you run into problems with the tutorial, compare your code with this "
+"<link href=\"guitar-tuner/guitar-tuner.c\">reference code</link>."
+msgstr ""
+"ÎÎ ÎÎÏÎÎÎÏÏÏÎÏÎÏÎ ÏÏÎÎÎÎÎÎÏÎ ÎÎ ÏÎ ÎÎÎÎÎÎ, ÏÏÎÎÏÎÎÎÏÎ ÏÎÎ ÎÏÎÎÎÎ ÏÎÏ ÎÎ "
+"ÎÏÏÏÎ ÏÎÎ <link href=\"guitar-tuner/guitar-tuner.c\">ÎÏÎÎÎÎ ÎÎÎÏÎÏÎÏ</link>."
+
+#: C/guitar-tuner.c.page:262(section/title)
+#: C/guitar-tuner.cpp.page:268(section/title)
+#: C/guitar-tuner.py.page:234(section/title)
+#: C/guitar-tuner.vala.page:264(section/title)
+#: C/image-viewer.c.page:227(section/title)
+#: C/image-viewer.cpp.page:215(section/title)
+#: C/image-viewer.js.page:316(section/title)
+#: C/image-viewer.py.page:230(section/title)
+#: C/image-viewer.vala.page:287(section/title)
+msgid "Next steps"
+msgstr "ÎÏÏÎÎÎÎ ÎÎÎÎÏÎ"
+
+#: C/guitar-tuner.c.page:263(section/p) C/guitar-tuner.cpp.page:269(section/p)
+#: C/guitar-tuner.py.page:235(section/p)
+#: C/guitar-tuner.vala.page:265(section/p)
+#: C/image-viewer.c.page:228(section/p) C/image-viewer.cpp.page:216(section/p)
+#: C/image-viewer.js.page:317(section/p) C/image-viewer.py.page:231(section/p)
+#: C/image-viewer.vala.page:288(section/p)
+msgid "Here are some ideas for how you can extend this simple demonstration:"
+msgstr ""
+"ÎÎÏ ÎÎÎÎÎ ÎÎÏÎÎÎÏ ÎÎÎÎÏ ÎÎÎ ÏÎ ÏÏÏ ÎÏÎÏÎÎÏÎ ÎÎ ÎÏÎÎÏÎÎÎÎÏÎ ÎÏÏÎ ÏÎÎ ÎÏÎÎ "
+"ÏÎÏÎÏÏÎÎÏÎ:"
+
+#: C/guitar-tuner.c.page:266(item/p) C/guitar-tuner.cpp.page:272(item/p)
+#: C/guitar-tuner.py.page:238(item/p) C/guitar-tuner.vala.page:268(item/p)
+msgid "Have the program automatically cycle through the notes."
+msgstr "ÎÎÎÏÎ ÏÎ ÏÏÏÎÏÎÎÎÎ ÎÎ ÏÎÏÎÎÎÎ ÎÏÏÏÎÎÏÎ ÎÎÏÎ ÎÏÏ ÏÎÏ ÎÏÏÎÏ."
+
+#: C/guitar-tuner.c.page:269(item/p) C/guitar-tuner.cpp.page:275(item/p)
+#: C/guitar-tuner.py.page:241(item/p) C/guitar-tuner.vala.page:271(item/p)
+msgid "Make the program play recordings of real guitar strings being plucked."
+msgstr ""
+"ÎÎÎÏÎ ÏÎ ÏÏÏÎÏÎÎÎÎ ÎÎ ÎÎÎÏÎÏÎÎÎÎ ÎÏÎÎÏÎÏÎÏÎÎÏ ÎÏÏ ÎÎÎÎÎÎÎÏ ÏÎÏÎÎÏ ÎÎÎÎÏÎÏ "
+"ÏÎÏ ÎÏÎÏÎ ÎÎÏÎÏÎÎÎ."
+
+#: C/guitar-tuner.c.page:270(item/p) C/guitar-tuner.cpp.page:276(item/p)
+#: C/guitar-tuner.py.page:242(item/p) C/guitar-tuner.vala.page:272(item/p)
+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 ""
+"ÎÎÎ ÎÎ ÏÎ ÎÎÎÎÏÎ ÎÏÏÏ, ÏÏÎÏÎÎ ÎÎ ÏÏÎÎÎÏÎÏÎ ÎÎÎ ÏÎÎ ÏÎÏÎÏÎÎÎÎ ÎÎÎÏÎÏÎÏÏÎ "
+"GStreamer ÏÎÏ ÎÎ ÏÎÏ ÎÏÎÏÏÎÏÎÎ ÎÎ ÏÎÏÏÏÎÎÏÎ ÎÎÎ ÎÎ ÎÎÎÏÎÏÎÎÎÏÎ ÎÏÏÎÎÎ ÎÏÎÏ. "
+"ÎÎ ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎÎÎÏÎ ÏÎ ÏÏÎÎÏÎÎÎ GStreamer <link href=\"http://gstreamer.";
+"freedesktop.org/documentation/plugins.html\">decoder ÎÎÎ demuxer</link> ÎÎ "
+"ÎÎÏÎ ÏÎÎ ÏÏÏÎ ÏÎÏ ÎÏÏÎÎÎÏ ÏÏÎ ÎÏÎÎÏÎÏÎÎÎÎÏÎ ÎÏÏÎ â ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ ÏÎ MP3 "
+"ÏÏÎÏÎÎÎÏÎÎÎÎ ÎÎÎÏÎÏÎÏÎÎÎ ÏÏÎÎÏÎÎÎ ÎÏÏ ÏÎ Ogg Vorbis."
+
+#: C/guitar-tuner.c.page:271(item/p) C/guitar-tuner.cpp.page:277(item/p)
+#: C/guitar-tuner.py.page:243(item/p) C/guitar-tuner.vala.page:273(item/p)
+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 ""
+"ÎÏÏÏ ÏÏÎÎÎÏÏÎÎ ÎÎ ÏÏÎÎÎÏÎÏÎ ÏÎ ÏÏÎÎÏÎÎÎ ÎÎ ÏÎÎ ÏÎÏÎÏÎÎÎÎÏÏ ÏÏÏÏÎÏÏ. ÎÏÏÏ "
+"ÎÏÎÏÎÎ ÎÎ ÏÏÎÏÎÏÎÎÎÎÎÎÎÎÎ ÏÎ ÏÏÎÏÎ <link href=\"http://gstreamer.freedesktop.";
+"org/data/doc/gstreamer/head/manual/html/chapter-intro-basics.html\">ÎÎÎÎÎÏÎ "
+"GStreamer</link> ÏÎÏ ÎÎÎ ÎÎÎÏÏÏÎÏÎÎ ÏÎ ÎÏÏÏÎ ÏÎÎ ÎÎÎÎÏ, ÏÏÏÏ ÎÎÎ <link href="
+"\"http://gstreamer.freedesktop.org/data/doc/gstreamer/head/manual/html/";
+"section-intro-basics-pads.html\">pad</link>. ÎÏÏÏ ÎÏÎÎÏÎ ÏÏÎÏÎÎÎ ÎÎÎ ÏÎÎ "
+"ÎÎÏÎÎÎ <cmd>gst-inspect</cmd>."
+
+#: C/guitar-tuner.c.page:274(item/p) C/guitar-tuner.cpp.page:280(item/p)
+#: C/guitar-tuner.py.page:246(item/p) C/guitar-tuner.vala.page:276(item/p)
+msgid "Automatically analyze notes that the user plays."
+msgstr "ÎÏÏÏÎÎÏÎ ÎÎÎÎÏÏÎ ÎÏÏÏÎ ÏÎÏ ÏÎÎÎÎÎ Î ÏÏÎÏÏÎÏ."
+
+#: C/guitar-tuner.c.page:275(item/p) C/guitar-tuner.cpp.page:281(item/p)
+#: C/guitar-tuner.py.page:247(item/p) C/guitar-tuner.vala.page:277(item/p)
+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 ""
+"ÎÏÎÏÎÎÏÎ ÎÎ ÏÏÎÎÎÏÎÏÎ ÎÎÎÏÏÏÏÎÎ ÎÎÎ ÎÎ ÎÏÎÎÏÎÏÎÏÎÏÎ ÎÏÏ ÎÏÏÏ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ "
+"ÏÎÎ <link href=\"http://gstreamer.freedesktop.org/data/doc/gstreamer/head/";
+"gst-plugins-good-plugins/html/gst-plugins-good-plugins-autoaudiosrc.html"
+"\">ÏÎÎÎ ÎÎÏÏÎÎÏ</link>. ÎÏÏÏ ÎÎÏÎÎÎ ÎÎÏÏÎ ÏÎÏ <link href=\"http://gstreamer.";
+"freedesktop.org/data/doc/gstreamer/head/gst-plugins-good-plugins/html/gst-"
+"plugins-good-plugins-plugin-spectrum.html\">ÎÎÎÎÏÏÎÏ ÏÎÏÎÎÏÎÏ</link> ÎÎ ÏÎÏ "
+"ÎÎÎÎÎÏÏÎ ÎÎ ÎÎÏÎÎÎÎÎÏÎ ÏÎÎÎ ÎÏÏÎ ÏÎÎÎÎÎ;"
+
+#: C/guitar-tuner.cpp.page:8(info/desc)
+msgid ""
+"Use GTKmm and GStreamermm to build a simple guitar tuner application for "
+"GNOME. Shows off how to use the interface designer."
+msgstr ""
+"ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ Gtk+ ÎÎÎ GStreamer ÎÎÎ ÎÎ ÎÎÏÎÏÎÎÏÎÏÎÏÎ ÎÎÎ ÎÏÎÎ ÎÏÎÏÎÎÎÎ "
+"ÏÏÎÏÎÎÎÏÏÎ ÎÎÎÎÏÎÏ ÎÎÎ ÏÎ GNOME. ÎÎÎÎÎÎÎÎÏÎÎÏÎÏ ÏÎ ÏÏÎÏÎ ÏÎÏ ÏÏÎÎÎÎÏÏÎ "
+"ÎÎÎÏÎÏÏÎ."
+
+#: C/guitar-tuner.cpp.page:33(item/p)
+msgid "Basic knowledge of the C++ programming language"
+msgstr "ÎÎÏÎÎÎ ÎÎÏÏÎ ÏÎÏ ÎÎÏÏÏÎÏ ÏÏÎÎÏÎÎÎÎÏÎÏÎÎÏ C++"
+
+#: C/guitar-tuner.cpp.page:47(item/p)
+msgid ""
+"Choose <gui>GTKmm (Simple)</gui> from the <gui>C++</gui> tab, click "
+"<gui>Forward</gui>, and fill out your details on the next few pages. Use "
+"<file>guitar-tuner</file> as project name and directory."
+msgstr ""
+"ÎÏÎÎÎÎÏÎ <gui>GTKmm (ÎÏÎÏ)</gui> ÎÏÏ ÏÎÎ ÎÎÏÏÎÎÎ <gui>C++</gui>, ÎÎÎÎ "
+"<gui>ÎÏÏÎÏÏÎ</gui> ÎÎÎ ÏÏÎÏÎÎÏÏÏÏÎ ÏÎÏ ÎÎÏÏÎÎÎÏÎÎÎÏ ÏÎÏ ÏÏÎÏ ÎÏÏÎÎÎÎÏ ÎÎÎÎÏ "
+"ÏÎÎÎÎÎÏ. ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ ÏÏ ÏÎÎÎÎ ÏÎÏ ÎÏÎÎÏ ÎÎÎ ÏÎÏ ÎÎÏÎÎÏÎÎÏ ÏÎ <file>guitar-"
+"tuner</file>."
+
+#: C/guitar-tuner.cpp.page:50(item/p)
+msgid ""
+"Make sure that <gui>Configure external packages</gui> is selected. On the "
+"next page, select <em>gstreamermm-0.10</em> from the list to include the "
+"GStreamermm library in your project."
+msgstr ""
+"ÎÎÎÎÎÏÎÎÎÏÎ ÏÏÎ ÏÎ <gui>ÏÏÎÎÎÏÎ ÎÎÏÏÎÏÎÎÏÎ ÏÎÎÎÏÏÎ</gui> ÎÏÎÎÎÏÏÎÎÎ. ÎÏÎÎ "
+"ÎÏÏÎÎÎÎ ÏÎÎÎÎÎ, ÎÏÎÎÎÎÏÎ <em>gstreamer-0.10</em> ÎÏÏ ÏÎ ÎÎÏÏÎ ÎÎÎ "
+"ÏÏÎÏÎÏÎÎÎÏÎ ÏÎÏ ÎÎÎÎÎÎÎÎÎÎÏ GStreamermm ÏÏÎ ÎÏÎÎ ÏÎÏ."
+
+#: C/guitar-tuner.cpp.page:54(item/p)
+msgid ""
+"Click <gui>Finished</gui> and the project will be created for you. Open "
+"<file>src/main.cc</file> from the <gui>Project</gui> or <gui>File</gui> "
+"tabs. You should see some code which starts with the lines:"
+msgstr ""
+"ÎÎÏÎÏÏÎ <gui>ÏÎÎÎÏ</gui> ÎÎÎ ÏÎ ÎÏÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎÎÎÎ ÎÎÎ ÏÎÏ. ÎÎÎÎÎÏÎ "
+"<file>src/main.cc</file> ÎÏÏ ÏÎÏ ÎÎÏÏÎÎÎÏ <gui>ÎÏÎÎ</gui> Î <gui>ÎÏÏÎÎÎ</"
+"gui>. ÎÎ ÏÏÎÏÎÎ ÎÎ ÎÎÎÏÎ ÎÎÏÎÎÎ ÎÏÎÎÎÎ ÏÎÏ ÎÎÎÎÎÎÎÎ ÎÎ ÏÎÏ ÎÏÎÎÎÎÏ:"
+
+#: C/guitar-tuner.cpp.page:55(item/code)
+#, no-wrap
+msgid ""
+"\n"
+"#include &lt;gtkmm.h&gt;\n"
+"#include &lt;iostream&gt;"
+msgstr ""
+"\n"
+"#include &lt;gtkmm.h&gt;\n"
+"#include &lt;iostream&gt;"
+
+#: C/guitar-tuner.cpp.page:64(section/p) C/image-viewer.cpp.page:61(section/p)
+msgid ""
+"This is a very basic C++ code setting up GTKmm. More details are given "
+"below; skip this list if you understand the basics:"
+msgstr ""
+"ÎÏÏÏÏ ÎÎÎÎÎ ÎÎÎÏ ÏÎÎÏ ÎÎÏÎÎÏÏ ÎÏÎÎÎÎÏ C++ ÎÎÎÎÏÎÏÏÎÏÎÏ GTKmm. ÎÎÏÎÏÏÏÏÎÏÎÏ "
+"ÎÎÏÏÎÎÎÏÎÎÎÏ ÎÎÎÎÎÏÎÎ ÏÎÏÎÎÎÏÏÂ ÏÏÎÏÏÎÏÎÏÏÎ ÎÏÏÎ ÏÎ ÎÎÏÏÎ ÎÎ ÎÎÏÎÎÎÎÎÎÎÎÏÎ "
+"ÏÎ ÎÎÏÎÎÎ:"
+
+#: C/guitar-tuner.cpp.page:68(item/p)
+msgid ""
+"The three <code>#include</code> lines at the top include the <code>config</"
+"code> (useful autoconf build defines), <code>gtkmm</code> (user interface) "
+"and <code>iostream</code> (STL). Functions from these libraries are used in "
+"the rest of the code."
+msgstr ""
+"ÎÎ ÏÏÎÎÏ ÎÏÎÎÎÎÏ <code>#include</code> ÏÏÎÎ ÎÎÏÏÏÎ ÏÎÏÎÎÎÎÎÎÎÎÏÎ ÏÎÎ "
+"<code>config</code> (ÎÏÎÎÎÎ ÏÏÎÏÎÎÎ ÎÎÏÎÏÎÎÏÎ ÏÎÏ autoconf), <code>gtkmm</"
+"code> (ÎÎÎÏÎÏÎ ÏÏÎÏÏÎ) ÎÎÎ <code>iostream</code> (STL). ÎÏÎÎÏÏÎÏÎÎÏ ÎÏÏ "
+"ÎÏÏÎÏ ÏÎÏ ÎÎÎÎÎÎÎÎÎÎÏ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÏÏÎÎ ÏÏÏÎÎÎÏÎ ÎÏÎÎÎÎ."
+
+#: C/guitar-tuner.cpp.page:71(item/p)
+msgid ""
+"The <code>main</code> function creates a new window by opening a GtkBuilder "
+"file (<file>src/guitar-tuner.ui</file>, defined a few lines above) and then "
+"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 ""
+"Î ÏÏÎÎÏÏÎÏÎ <code>Main</code> ÎÎÎÎÎÏÏÎÎÎ ÎÎÎ ÎÎÎ ÏÎÏÎÎÏÏÎ ÎÎÎÎÎÎÎÏÎÏ ÎÎÎ "
+"ÎÏÏÎÎÎ GtkBuilder (<file>src/guitar-tuner.ui</file>, ÏÎÏ ÎÏÎÎÎÏÎÎ ÎÎÎÎÏ "
+"ÎÏÎÎÎÎÏ ÏÎÏÎÏÎÎÏ), ÎÎÎ ÎÏÎÎÏÎ ÎÎÏÎÎÎÎÎÎÏÎÏ ÏÎ ÏÎ ÏÎÏÎÎÏÏÎ. ÎÎ ÎÏÏÎÎÎ "
+"GtkBuilder ÏÎÏÎÎÏÎÎ ÎÎÎ ÏÎÏÎÎÏÎÏÎ ÎÎÎÏ ÎÎÎÏÎÏÎÏ ÏÏÎÏÏÎ ÎÎÎ ÏÎÏÎ ÏÏÎ "
+"ÏÏÎÎÏÎÎÏÎ ÏÎÏ. ÎÏÎÏÎÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÏÎÎ ÎÏÎÎÎÏÎÎÏÏÎ ÏÎÏ Anjuta ÎÎÎ "
+"ÏÏÎÎÎÎÏÎ ÎÎÎÏÎÏÏÎ ÏÏÎÏÏÎ GtkBuilder."
+
+#: C/guitar-tuner.cpp.page:74(item/p)
+msgid ""
+"Afterwards it calls a few functions which set up and then run the "
+"application. The <code>kit.run</code> function starts the GTKmm main loop, "
+"which runs the user interface and starts listening for events (like clicks "
+"and key presses)."
+msgstr ""
+"ÎÎÏÏÏÎÎ ÎÎÎÎÎ ÎÎÎÎÏ ÏÏÎÎÏÏÎÏÎÎÏ ÏÎÏ ÏÏÎÎÎÎÎÏÎ ÎÎÎ ÎÏÎÎÏÎ ÎÎÏÎÎÎÏÎ ÏÎÎ "
+"ÎÏÎÏÎÎÎÎ. Î ÏÏÎÎÏÏÎÏÎ <code>kit.run</code> ÎÎÎÎÎÎ ÏÎÎ ÎÏÏÎÎ ÎÏÏÏÎ ÏÎÏ GTK, "
+"ÏÎÏ ÎÎÏÎÎÎÎ ÏÎ ÎÎÎÏÎÏÎ ÏÏÎÏÏÎ ÎÎÎ ÎÎÎÎÎÎ ÏÎÎ ÎÏÎÎÏÎÏÎ ÎÎÎ ÏÏÎÎÎÎÏÎ (ÏÏÏÏ "
+"ÎÎÎÎ ÎÎÎ ÏÎÏÎÎÎÏÎ ÎÎÏÎÏÎÏÎ)."
+
+#: C/guitar-tuner.cpp.page:99(item/p)
+msgid ""
+"While the button is still selected, change the <gui>Label</gui> property in "
+"the <gui>Widgets</gui> tab to <gui>E</gui>. This will be the low E string. "
+"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 ""
+"ÎÏÎÎÏÎÏ ÏÎ ÎÎÏÎÏÎ ÎÎÏÎÎ ÎÏÎÎÎÎÎÎÎÎ, ÎÎÎÎÎÏÎ ÏÎÎ ÎÎÎÏÏÎÏÎ <gui>ÎÏÎÎÎÏÎ</gui> "
+"ÏÏÎÎ ÎÎÏÏÎÎÎ <gui>ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ</gui> ÏÎ <gui>E</gui>. ÎÏÏÎ ÎÎ ÎÎÎÎÎ Î "
+"ÏÎÎÎÎÎ ÏÎÏÎÎ Î. ÎÏÎÏÎÏ ÎÎÎÎÎÏÎ ÏÎÎ ÎÎÎÏÏÎÏÎ <gui>ÏÎÎÎÎ</gui> ÏÎ "
+"<gui>button_E</gui>. ÎÎ ÎÏÏÏ ÏÎ ÏÎÎÎÎ ÎÎ ÎÎÎÏÎÏÎÎÏÎÎ ÏÏÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ "
+"ÎÏÎÏÏÎÏÎ ÏÏÎÎ ÎÏÎÎÎÎ."
+
+#: C/guitar-tuner.cpp.page:103(item/p)
+msgid ""
+"Repeat the above steps for the other buttons, adding the next 5 strings with "
+"the labels <em>A</em>, <em>D</em>, <em>G</em>, <em>B</em>, and <em>e</em> "
+"and the names <em>button_A</em>, etc."
+msgstr ""
+"ÎÏÎÎÎÎÎÎÎÏÎ ÏÎ ÏÎÏÎÏÎÎÏ ÎÎÎÎÏÎ ÎÎÎ ÏÎ ÏÏÏÎÎÎÏÎ ÎÎÏÎÏÎÎ, ÏÏÎÏÎÎÏÏÎ ÏÎÏ "
+"ÎÏÏÎÎÎÎÏ 5 ÏÎÏÎÎÏ ÎÎ ÏÎÏ ÎÏÎÎÎÏÎÏ <em>A</em>, <em>D</em>, <em>G</em>, <em>B</"
+"em>, ÎÎÎ <em>e</em> ÎÎÎ ÏÎ ÎÎÏÎÎÏÎ <em>button_A</em>, ÎÎÏ."
+
+#: C/guitar-tuner.cpp.page:106(item/p)
+msgid ""
+"Save the UI design (by clicking <guiseq><gui>File</gui><gui>Save</gui></"
+"guiseq>) and close the file."
+msgstr ""
+"ÎÏÎÎÎÎÎÏÏÏÎ ÏÎ ÏÏÎÎÎÎÏÎ UI (ÏÎÏÏÎÏÎÏ <guiseq><gui>ÎÏÏÎÎÎ</"
+"gui><gui>ÎÏÎÎÎÎÎÏÏÎ</gui></guiseq>) ÎÎÎ ÎÎÎÎÏÏÎ ÏÎ ÎÏÏÎÎÎ."
+
+#: C/guitar-tuner.cpp.page:113(section/p)
+msgid ""
+"GStreamer is GNOME's multimedia framework â you can use it for playing, "
+"recording, and processing video, audio, webcam streams and the like. Here, "
+"we'll be using it to produce single-frequency tones. GStreamermm is the C++ "
+"binding to GStreamer which we will use here."
+msgstr ""
+"ÎÎ Gtreamer ÎÎÎÎÎ Î ÏÎÎÎÎÏÏÏ ÏÎÎÏÎÎÏÏÎ ÏÎÏ GNOME â ÎÏÎÏÎÎÏÎ ÎÎ ÏÎ "
+"ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÎÎÎ ÎÎ ÎÎÎÏÎÏÎÎÏÎÎ ÎÏÎÎÏÎÏÎÏÎ ÎÎÎ ÎÏÎÎÎÏÎÎÏÎÎ ÎÎÎÏÎÎ, ÎÏÎÏ, "
+"ÏÎÏÎ ÎÏÏÎÎÎÎÎÏÎÏ ÎÎÎ ÏÎ ÏÎÏÏÎÎÎÎ. ÎÎÏ, ÎÎ ÏÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÎÎ ÎÎ "
+"ÏÎÏÎÎÎÏÎÎ ÎÎÎÎÏ ÏÏÏÎÏÏÎÏÎÏ ÏÏÎÏÎ. ÎÎ GStreamermm ÎÎÎÎÎ ÎÎÎÏ ÏÏÎÎÎÏÎÎÏ C++ "
+"ÏÏÎ GStreamer ÏÎÏ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÎÏ."
+
+#: C/guitar-tuner.cpp.page:123(section/title)
+msgid "Using GStreamermm"
+msgstr "ÎÏÎÏÎ GStreamermm"
+
+#: C/guitar-tuner.cpp.page:124(section/p)
+msgid ""
+"To use GStreamermm, it has to be initialised. We do that by adding the "
+"following line of code next to the <code>Gtk::Main kit(argc, argv);</code> "
+"line in <file>main.cc</file>:"
+msgstr ""
+"ÎÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÏÎ GStreamermm, ÏÏÎÏÎÎ ÎÎ ÎÏÏÎÎÎÏÎÎÎÎÎÎ. ÎÎ ÎÎÎÎÏÎÎ "
+"ÎÏÏÏ ÏÏÎÏÎÎÏÎÎÏÎÏ ÏÎÎ ÏÎÏÎÎÎÏÏ ÎÏÎÎÎÎ ÏÎÏ ÎÏÎÎÎÎ ÎÎÏÎÎ ÏÏÎ ÎÏÎÎÎÎ <code>Gtk::"
+"Main kit(argc, argv);</code> ÏÏÎ <file>main.cc</file>:"
+
+#: C/guitar-tuner.cpp.page:126(section/code)
+#, no-wrap
+msgid "\tGst::init (argc, argv);"
+msgstr "\tGst::init (argc, argv);"
+
+#: C/guitar-tuner.cpp.page:127(section/p)
+msgid ""
+"While we are on it, also make sure that the <file>gstreamermm.h</file> is "
+"included in <file>main.cc</file> properly."
+msgstr ""
+"ÎÎÏ ÎÎÎÎÏÏÎ ÏÎ ÎÏÏÏ, ÎÎÎÎÎÏÎÎÎÏÎ ÎÏÎÏÎÏ ÏÏÎ ÏÎ <file>gstreamermm.h</file> "
+"ÏÎÏÎÎÏÎÏÎÎ ÎÎÏÎÎÎÎÎÎ ÏÏÎ <file>main.cc</file>."
+
+#: C/guitar-tuner.cpp.page:131(section/p)
+msgid ""
+"To simplify the handling of the pipeline we will define a helper class "
+"<code>Sound</code>. We do that in <file>main.cc</file> in order to keep this "
+"example simple, whereas you might usually want to use a separate file:"
+msgstr ""
+"ÎÎÎ ÎÏÎÎÏÎÎÎÏÎ ÏÎÏ ÏÎÎÏÎÏÎÎÏ ÏÎÏ ÎÎÎÏÎÏÎÏÏÎÏ ÎÎ ÎÏÎÏÎÏÎÎ ÎÎÎ ÎÎÎÎÎÏÎÎÎ ÎÎÎÏÎ "
+"<code>Sound</code>. ÎÎ ÎÎÎÎÏÎÎ ÏÏÎ <file>main.cc</file> ÎÎÎ ÎÎ ÎÏÎÏÎÏÎÏÎÎ "
+"ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÎÏÎÏ, ÎÎÏ ÎÏÏÏ ÏÏÎÎÎÏÏ ÎÎ ÎÎÎÎÏÎ ÎÎ ÏÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÏÎ "
+"ÎÎÏÏÏÎÏÏÏ ÎÏÏÎÎÎ:"
+
+#: C/guitar-tuner.cpp.page:134(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"class Sound\n"
+"{\n"
+"\tpublic:\n"
+"\t\tSound();\n"
+"\n"
+"\t\tvoid start_playing(double frequency);\n"
+"\t\tbool stop_playing();\n"
+"\n"
+"\tprivate:\n"
+"\t\tGlib::RefPtr&lt;Gst::Pipeline&gt; m_pipeline;\n"
+"\t\tGlib::RefPtr&lt;Gst::Element&gt; m_source;\n"
+"\t\tGlib::RefPtr&lt;Gst::Element&gt; m_sink;\n"
+"};\n"
+"\n"
+"Sound::Sound()\n"
+"{\n"
+"\tm_pipeline = Gst::Pipeline::create(\"note\");\n"
+"\tm_source = Gst::ElementFactory::create_element(\"audiotestsrc\",\n"
+"\t                                               \"source\");\n"
+"\tm_sink = Gst::ElementFactory::create_element(\"autoaudiosink\",\n"
+"\t                                             \"output\");\n"
+"\tm_pipeline-&gt;add(m_source);\n"
+"\tm_pipeline-&gt;add(m_sink);\n"
+"\tm_source-&gt;link(m_sink);\n"
+"}\n"
+"\n"
+"void Sound::start_playing (double frequency)\n"
+"{\n"
+"\tm_source-&gt;set_property(\"freq\", frequency);\n"
+"\tm_pipeline-&gt;set_state(Gst::STATE_PLAYING);\n"
+"\n"
+"\t/* stop it after 200ms */\n"
+"\tGlib::signal_timeout().connect(sigc::mem_fun(*this, &amp;Sound::stop_playing),\n"
+"\t                               200);\n"
+"}\n"
+"\n"
+"bool Sound::stop_playing()\n"
+"{\n"
+"\tm_pipeline-&gt;set_state(Gst::STATE_NULL);\n"
+"\treturn false;\n"
+"}\n"
+msgstr ""
+"\n"
+"class Sound\n"
+"{\n"
+"\tpublic:\n"
+"\t\tSound();\n"
+"\n"
+"\t\tvoid start_playing(double frequency);\n"
+"\t\tbool stop_playing();\n"
+"\n"
+"\tprivate:\n"
+"\t\tGlib::RefPtr&lt;Gst::Pipeline&gt; m_pipeline;\n"
+"\t\tGlib::RefPtr&lt;Gst::Element&gt; m_source;\n"
+"\t\tGlib::RefPtr&lt;Gst::Element&gt; m_sink;\n"
+"};\n"
+"\n"
+"Sound::Sound()\n"
+"{\n"
+"\tm_pipeline = Gst::Pipeline::create(\"note\");\n"
+"\tm_source = Gst::ElementFactory::create_element(\"audiotestsrc\",\n"
+"\t                                               \"source\");\n"
+"\tm_sink = Gst::ElementFactory::create_element(\"autoaudiosink\",\n"
+"\t                                             \"output\");\n"
+"\tm_pipeline-&gt;add(m_source);\n"
+"\tm_pipeline-&gt;add(m_sink);\n"
+"\tm_source-&gt;link(m_sink);\n"
+"}\n"
+"\n"
+"void Sound::start_playing (double frequency)\n"
+"{\n"
+"\tm_source-&gt;set_property(\"freq\", frequency);\n"
+"\tm_pipeline-&gt;set_state(Gst::STATE_PLAYING);\n"
+"\n"
+"\t/* stop it after 200ms */\n"
+"\tGlib::signal_timeout().connect(sigc::mem_fun(*this, &amp;Sound::stop_playing),\n"
+"\t                               200);\n"
+"}\n"
+"\n"
+"bool Sound::stop_playing()\n"
+"{\n"
+"\tm_pipeline-&gt;set_state(Gst::STATE_NULL);\n"
+"\treturn false;\n"
+"}\n"
+
+#: C/guitar-tuner.cpp.page:178(section/p)
+msgid "The code has the following purpose:"
+msgstr "Î ÎÏÎÎÎÎÏ ÎÏÎÎ ÏÎÎ ÏÎÏÎÎÎÏÏ ÏÎÎÏÏ:"
+
+#: C/guitar-tuner.cpp.page:181(item/p)
+msgid ""
+"In the constructor, source and sink GStreamer elements (<code>Gst::Element</"
+"code>) are created, and a pipeline element (which will be used as a "
+"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 ""
+"ÎÏÎÎ ÎÎÏÎÏÎÎÏÎÏÏÎ, ÏÎ ÏÏÎÎÏÎÎÎ ÏÎÎÎÏ ÎÎÎ ÎÎÏÎÎÏ ÏÎÏ GStreamer (<code>Gst::"
+"Element</code>)ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ ÎÎÎ ÎÎÎ ÏÏÎÎÏÎÎÎ ÎÎÎÏÎÏÎÏÏÎÏ (ÏÎ ÎÏÎÎÎ ÎÎ "
+"ÏÏÎÏÎÎÎÏÎÎÎÎÎÎ ÏÏ ÏÎÏÎÎÎÏÎÏ ÎÎÎ ÏÎ ÎÏÎ ÎÎÎÎ ÏÏÎÎÏÎÎÎ). ÎÎÎÎÏÎÎ ÏÎ ÏÎÎÎÎ "
+"\"note\" ÏÏÎ ÎÎÎÏÎÏÎÏÏÎÂ ÎÎÎÎÎÎÎÏÎÎ ÏÎÎ ÏÎÎÎ \"source\" ÎÎÎ ÏÏÎÎÎÎÎÏÎÎ ÏÏÎÎ "
+"ÏÎÎÎ <code>audiotestsrc</code>Â ÎÎÎ ÎÎÎÎÎÎÎÏÎÎ ÏÎÎ ÎÎÎÎÎ \"output\" ÎÎÎ ÏÎÎ "
+"ÏÏÎÎÎÎÎÏÎ ÏÏÎÎ ÎÎÎÎÎ <code>autoaudiosink</code> (ÏÏÎÎÏÎÎÎÎÎÎÎÎ ÎÎÎÎÎÏ ÎÎÏÏÎÏ "
+"ÎÏÎÏ). ÎÏÎÏ ÏÎ ÏÏÎÎÏÎÎÎ ÏÏÎÏÏÎÎÎÏÎ ÏÏÎ ÎÎÎÏÎÏÎÏÏÎ ÎÎÎ ÏÏÎÎÎÎÎÏÎ ÎÎÎÎ, Î "
+"ÏÏÎÎÎÏÏÎ ÎÎÎÎÎ ÎÏÎÎÎÎ ÎÎ ÏÏÎÎÎÎ."
+
+#: C/guitar-tuner.cpp.page:184(item/p)
+msgid ""
+"<code>start_playing</code> sets the source element to play a particular "
+"frequency and then starts the pipeline so the sound actually starts playing. "
+"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> ÎÏÎÎÎÎ ÏÎ ÏÏÎÎÏÎÎÎ ÏÎÎÎÏ ÎÎ ÎÎÎÏÎÏÎÎÎÎ ÎÎÎ "
+"ÏÏÎÎÎÎÏÎÎÎÎÎ ÏÏÏÎÏÏÎÏÎ ÎÎÎ ÎÏÎÎÏÎ ÎÎÎÎÎÎ ÏÎ ÎÎÎÏÎÏÎÏÏÎ ÏÏÏÎ Î ÎÏÎÏ ÏÏÎÎ "
+"ÏÏÎÎÎÎÏÎÎÏÏÎÏÎ ÎÎ ÎÎÎÎÎÎÏÎÎ ÎÎÎÏÎÏÎÎÏÎÎ. ÎÎÎÏÏ ÎÎÎ ÎÎÎÎÏÎÎ ÎÎ ÎÏÎÏÎÎ ÏÎÎ "
+"ÎÎÎÏÎÎÏÎÎÏ ÎÏÎ ÎÎÎ ÏÎÎÏ, ÎÏÎÎÎÏÎÎ ÎÎÎ ÎÎÎÎ ÏÏÏÎÎÏ ÎÎÎ ÎÎ ÏÏÎÎÎÏÎÏÎÎ ÏÎ "
+"ÎÎÎÏÎÏÎÏÏÎ ÎÎÏÎ ÎÏÏ 200 ms ÎÎÎÏÎÏÎÏ <code>stop_playing</code>."
+
+#: C/guitar-tuner.cpp.page:189(item/p)
+msgid ""
+"In <code>stop_playing</code> which is called when the timeout has elapsed, "
+"the pipeline is stopped and as such there isn't any sound output anymore. As "
+"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 ""
+"ÎÏÎÎ <code>stop_playing</code> ÏÎÏ ÎÎÎÎÎÏÎÎ ÏÏÎÎ Î ÎÎÎÎ ÏÏÏÎÎÏ ÏÎÏÎÏÎÎ, Î "
+"ÎÎÎÏÎÏÎÏÏÎ ÏÏÎÎÎÏÎ ÎÎÎ ÎÏÏÎ ÎÎÎ ÏÏÎÏÏÎÎ ÎÎÎÎÎÎÏ ÎÏÎÏ ÎÎÏÎÎÏ ÏÎÎ. ÎÎÎÏÏ ÏÎ "
+"GStreamermm ÏÏÎÏÎÎÎÏÎÎÎÎ ÎÎÏÏÎÏÎ ÎÎÎÏÎÏÎÏ ÎÎÏÎ ÎÏÏ ÏÎ ÎÎÏÎÎÎÎÎÎÎÎ "
+"<code>Glib::RefPtr</code>, Î ÎÎÎÎÎ ÎÏÏÏÎÎÏÎ ÎÎÎÏÎÎÏÏÎÎÏÎÎ ÎÏÎÎÏ Î ÎÎÎÏÎ "
+"<code>Sound</code> ÎÎÏÎÏÏÏÎÏÎÎ."
+
+#: C/guitar-tuner.cpp.page:197(section/title)
+msgid "Connecting the signals"
+msgstr "ÎÏÎÎÎÏÎ ÏÎÎÎÏÏÎ"
+
+#: C/guitar-tuner.cpp.page:198(section/p)
+msgid ""
+"We want to play the correct sound when the user clicks a button. That means "
+"that we have to connect to the signal that is fired when the user clicks the "
+"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 ""
+"ÎÎÎÎÏÎÎ ÎÎ ÏÎÎÎÎÏÎÎ ÏÎÎ ÏÏÏÏÏ ÎÏÎ, ÏÏÎÎ Î ÏÏÎÏÏÎÏ ÏÎÏÎ ÎÎÎ ÎÎÏÎÏÎ. ÎÏÏÏ "
+"ÏÎÎÎÎÎÎÎ ÏÏÎ ÏÏÎÏÎÎ ÎÎ ÏÏÎÎÎÎÎÏÎÎ ÏÏÎ ÏÎÎÎ ÏÎÏ ÎÎÎÎÎÎ ÏÏÎÎ Î ÏÏÎÏÏÎÏ ÏÎÏÎ ÏÎ "
+"ÎÎÏÎÏÎ. ÎÎÎÎÏÎÎ ÎÏÎÏÎÏ ÎÎ ÎÏÏÎÏÎÎ ÏÎÎÏÎÏÎÏÎÎÏ ÏÏÎÎ ÎÎÎÎÏÎÎÎÎ ÏÏÎÎÏÏÎÏÎ ÏÎÎÎ "
+"ÏÏÎÎ ÎÎ ÏÎÎÎÎÎ. ÎÎ GTKmm ÏÎ ÎÎÎÎÎ ÎÏÎÎÏÎ ÎÏÎÏ ÎÎÎÏÏ ÎÏÎÏÎÏÎÎ ÎÏÎÎÎÎ ÎÎ "
+"ÏÏÎÎÎÏÎÏÎÎ ÏÎÎÏÎÏÎÏÎÎÏ ÎÎ ÏÎ ÎÎÎÎÎÎÎÎÎÎ <em>sigc</em>."
+
+#: C/guitar-tuner.cpp.page:203(section/p)
+msgid ""
+"The function that is called when the user clicks a button can be pretty "
+"simple, as all the interesting stuff is done in the helper class now:"
+msgstr ""
+"Î ÏÏÎÎÏÏÎÏÎ ÏÎÏ ÎÎÎÎÎÏÎÎ ÏÏÎÎ Î ÏÏÎÏÏÎÏ ÏÎÏÎ ÎÎÎ ÎÎÏÎÏÎ ÎÏÎÏÎÎ ÎÎ ÎÎÎÎÎ "
+"ÎÏÎÎÏÎ ÎÏÎÎ, ÎÎÎÏÏ ÏÎÎ ÏÎ ÎÎÎÎÎÏÎÏÎÎ ÏÎÎÎÏ ÎÎÎÎÏÎÎ ÏÏÏÎ ÏÏÎ ÎÎÎÎÎÏÎÎÎ ÎÎÎÏÎ:"
+
+#: C/guitar-tuner.cpp.page:205(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"static void\n"
+"on_button_clicked(double frequency, Sound* sound)\n"
+"{\n"
+"\tsound-&gt;start_playing (frequency);\n"
+"}\n"
+msgstr ""
+"\n"
+"static void\n"
+"on_button_clicked(double frequency, Sound* sound)\n"
+"{\n"
+"\tsound-&gt;start_playing (frequency);\n"
+"}\n"
+
+#: C/guitar-tuner.cpp.page:212(section/p)
+msgid ""
+"It only calls the helper class we defined before to play the correct "
+"frequencies. With some more clever code we would also have been able to "
+"directly connect to the class without using the function but we will leave "
+"that to use as an exercise."
+msgstr ""
+"ÎÎÎÎÎ ÎÏÎÎ ÏÎ ÎÎÎÎÎÏÎÎÎ ÎÎÎÏÎ ÏÎÏ ÎÏÎÏÎÎÎ ÏÏÎÎ ÎÎ ÏÎÎÎÎÎ ÏÎÏ ÏÏÏÏÎÏ "
+"ÏÏÏÎÏÏÎÏÎÏ. ÎÎ ÎÎÏÎÎÎ ÎÏÎÏÎÎÎÎ ÎÏÎÎÎÎ ÎÎ ÎÏÎÏÎÏÏÎÎÎ ÎÏÎÏÎÏ ÎÎ ÎÏÎÏÎÏÎÏÎÎ ÏÎÎ "
+"ÎÎÎÏÎ ÏÏÎÎÎÏÎ ÏÏÎÎ ÎÎÎÏÎ ÏÏÏÎÏ ÏÏÎÏÎ ÏÎÏ ÏÏÎÎÏÏÎÏÎÏ, ÎÎÎÎ ÎÎ ÏÎ ÎÏÎÏÎÏÎÎ ÎÎ "
+"ÏÏÎÏÎÎÎÏÎÎÎÎÎÎ ÏÏ ÎÏÎÎÏÎ."
+
+#: C/guitar-tuner.cpp.page:216(section/p)
+msgid ""
+"The code to set up the signals should be added to the <code>main()</code> "
+"function just after the <code>builder-&gt;get_widget(\"main_window\", "
+"main_win);</code> line:"
+msgstr ""
+"Î ÎÏÎÎÎÎÏ ÎÎÎ ÏÏÎÎÎÏÎ ÏÏÎ ÏÎÎÎÏÏÎ ÏÏÎÏÎÎ ÎÎ ÏÏÎÏÏÎÎÎÎ ÏÏÎ ÏÏÎÎÏÏÎÏÎ "
+"<code>main()</code> ÎÎÎÏÏÏ ÎÎÏÎ ÏÎ ÎÏÎÎÎÎ <code>builder-&gt;get_widget"
+"(\"main_window\", main_win);</code>:"
+
+#: C/guitar-tuner.cpp.page:218(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"Sound sound;\n"
+"Gtk::Button* button;\n"
+"\n"
+"builder-&gt;get_widget(\"button_E\", button);\n"
+"button-&gt;signal_clicked().connect (sigc::bind&lt;double, Sound*&gt;(sigc::ptr_fun(&amp;on_button_clicked),\n"
+"                                              329.63, &amp;sound));\n"
+msgstr ""
+"\n"
+"Sound sound;\n"
+"Gtk::Button* button;\n"
+"\n"
+"builder-&gt;get_widget(\"button_E\", button);\n"
+"button-&gt;signal_clicked().connect (sigc::bind&lt;double, Sound*&gt;(sigc::ptr_fun(&amp;on_button_clicked),\n"
+"                                              329.63, &amp;sound));\n"
+
+#: C/guitar-tuner.cpp.page:228(item/p)
+msgid ""
+"At first we create an instance of our helper class that we want to use now "
+"and declare a variable for the button we want to connect to."
+msgstr ""
+"ÎÏÏÏÎ ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ ÏÏÎÎÎÎÏÏÏÏÎ ÏÎÏ ÎÎÎÎÎÏÎÎÎÏ ÎÎÏ ÎÎÎÏÎÏ ÏÎÏ ÎÎÎÎÏÎÎ ÎÎ "
+"ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÏÏÏÎ ÎÎÎ ÎÎÎÏÎÎÏÎÎ ÎÎÎ ÎÎÏÎÎÎÎÏÎ ÎÎÎ ÏÎ ÎÎÏÎÏÎ ÏÏÎ ÎÏÎÎÎ "
+"ÎÎÎÎÏÎÎ ÎÎ ÏÏÎÎÎÎÎÏÎÎ."
+
+#: C/guitar-tuner.cpp.page:232(item/p)
+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 ""
+"ÎÎÏÏÏÎÎ, ÎÎÏÏÎÎÏÏÎ ÏÎ ÎÎÏÎÎÎÎÎÎÎÎ ÎÎÏÎÏÎÎÏ ÎÏÏ ÏÎ ÎÎÎÏÎÏÎ ÏÏÎÏÏÎ ÏÎÏ "
+"ÎÎÎÎÎÏÏÎÎÎÎÎÎ ÎÏÏ ÏÎ ÎÏÏÎÎÎ ÎÎÎÏÎÏÎÏ ÏÏÎÏÏÎ. ÎÎ ÎÏÎÎÏÏÎ ÏÏÎ <em>button_E</"
+"em> ÎÎÎÎÎ ÏÎ ÏÎÎÎÎ ÏÎÏ ÎÏÏÎÎÎ ÏÏÎ ÏÏÏÏÎ ÎÎÏÎÏÎ."
+
+#: C/guitar-tuner.cpp.page:236(item/p)
+msgid ""
+"Finally we connect the <em>clicked</em> signal. This isn't fully "
+"straightforward because this is done in a fully type-safe way and we "
+"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 ""
+"ÎÎÎÎÎÎ ÏÏÎÎÎÎÏÎÎ ÏÎ ÏÎÎÎ <em>ÏÎÏÎÎÎÎÎ</em>. ÎÏÏÏ ÎÎÎ ÎÎÎÎÎ ÏÎÎÏÏÏ ÎÎÏÎÎÎÎÏÏ "
+"ÎÏÎÎÎÎ ÎÏÏÏ ÎÎÎÎÏÎÎ ÎÎ ÎÎÎÎ ÏÎÎÏÎ ÏÏÏÏÎ ÎÏÏÎÎÎÏÏ ÏÏÏÎÏ ÎÎÎ ÏÏÎÎ "
+"ÏÏÎÎÎÎÏÎÎÏÏÎÏÎ ÎÎÎÎÏÎÎ ÎÎ ÏÎÏÎÏÎÏÎÎ ÏÎ ÏÏÏÎÏÏÎÏÎ ÎÎÎ ÏÎ ÎÎÎÎÎÏÎÎÎ ÎÎÏ ÎÎÎÏÎ "
+"ÏÏÎ ÏÎÎÏÎÏÏÎ ÏÎÎÎÏÎÏ. Î <code>sigc::ptr_fun(&amp;on_button_clicked)</code> "
+"ÎÎÎÎÎÏÏÎÎÎ ÎÎÎ <em>ÏÏÎÎÎÏÎ</em> ÎÎÎ ÏÎ ÎÎÎÎÎÎ <code>on_button_clicked</code> "
+"ÏÎÏ ÎÏÎÏÎÎÎ ÏÎÏÎÏÎÎÏ. ÎÎ ÏÎÎ <code>sigc::bind</code> ÎÏÎÏÎÏÎÎ ÎÎ ÏÎÏÎÏÎÏÎÎ "
+"ÏÏÏÏÎÎÏÎ ÎÏÎÏÎÎÏÎ ÏÏÎÎ ÏÏÎÎÎÏÎ ÎÎÎ ÏÎ ÎÏÏÎÎ ÏÎÎ ÏÎÏÎÏÏÏÏÎ ÏÎÏÎÎÎÎ ÏÎ "
+"ÏÏÏÎÏÏÎÏÎ (ÏÏ ÎÎÏÎÎ) ÎÎÎ ÏÎ ÎÎÎÎÎÏÎÎÎ ÎÎÏ ÎÎÎÏÎ."
+
+#: C/guitar-tuner.cpp.page:243(section/p)
+msgid ""
+"Now that we have set up the <em>E</em> button we also need to connect the "
+"other buttons according to their frequencies: 440 for A, 587.33 for D, "
+"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 ""
+"ÎÏÏÎ ÏÎÏ ÏÏÎÎÎÏÎÎÎ ÏÎ ÎÎÏÎÏÎ <em>E</em> ÎÎ ÏÏÎÎÎÏÏÎÏÎÎ ÎÏÎÏÎÏ ÎÎ ÏÏÎÎÎÏÎÏÎÎ "
+"ÏÎ ÎÎÎÎ ÎÎÏÎÏÎÎ ÏÏÎÏÏÎÎ ÎÎ ÏÎÏ ÏÏÏÎÏÏÎÏÎÏ ÏÎÏÏ: 440 ÎÎÎ A, 587.33 ÎÎÎ D, "
+"783.99 ÎÎÎ G, 987.77 ÎÎÎ B ÎÎÎ 1318.5 ÎÎÎ ÏÎÎ ÏÏÎÎÎ Î. ÎÏÏÏ ÎÎÎÎÏÎÎ ÎÎ ÏÎÎ "
+"ÎÎÎÎ ÏÏÏÏÎ, ÎÏÎÎ ÏÎÏÎÏÎÏÎÏ ÎÎÎ ÎÎÎÏÎÏÎÏÎÎÎ ÏÏÏÎÏÏÎÏÎ ÏÏÎÎ ÏÎÎÏÎÏÏÎ."
+
+#: C/guitar-tuner.cpp.page:250(section/p)
+msgid ""
+"All of the code should now be ready to go. Click <guiseq><gui>Build</"
+"gui><gui>Build Project</gui></guiseq> to build everything again, and then "
+"<guiseq><gui>Run</gui><gui>Run</gui></guiseq> to start the application."
+msgstr ""
+"ÎÎÎÏ Î ÎÏÎÎÎÎÏ ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎ ÎÏÎÎÎÎÏ ÏÏÏÎ. ÎÎÎÎ <guiseq><gui>ÎÎÏÎÏÎÎÏÎ</"
+"gui><gui>ÎÎÏÎÏÎÎÏÎ ÎÏÎÎÏ</gui></guiseq> ÎÎÎ ÎÎÎÎÎÏÎÏÎÎÏÎ ÏÏÎ ÏÎÎÏÏÎ ÎÎÎ "
+"ÎÏÎÎÏÎ <guiseq><gui>ÏÏÎÎÎÎÎ</gui><gui>ÏÏÎÎÎÎÎ</gui></guiseq> ÎÎÎ ÎÎÎÏÎÎ ÏÎÏ "
+"ÎÏÎÏÎÎÎÎÏ."
+
+#: C/guitar-tuner.cpp.page:256(section/p)
+msgid ""
+"If you run into problems with the tutorial, compare your code with this "
+"<link href=\"guitar-tuner/guitar-tuner.cc\">reference code</link>."
+msgstr ""
+"ÎÎ ÎÎÏÎÎÎÏÏÏÎÏÎÏÎ ÏÏÎÎÎÎÎÎÏÎ ÎÎ ÏÎ ÎÎÎÎÎÎ, ÏÏÎÎÏÎÎÎÏÎ ÏÎÎ ÎÏÎÎÎÎ ÏÎÏ ÎÎ "
+"ÎÏÏÏÎ ÏÎÎ <link href=\"guitar-tuner/guitar-tuner.cc\">ÎÏÎÎÎÎ ÎÎÎÏÎÏÎÏ</link>."
+
+#: C/guitar-tuner.cpp.page:260(section/title)
+msgid "Further Reading"
+msgstr "ÎÎÏÎÎÏÎÏÏ ÎÎÎÎÎÏÏÎ"
+
+#: C/guitar-tuner.cpp.page:261(section/p)
+msgid ""
+"Many of the things shown above are explained in detail in the <link href="
+"\"http://library.gnome.org/devel/gtkmm-tutorial/stable/\";>GTKmm book</link> "
+"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 ""
+"ÎÎÎÎÎ ÎÏÏ ÏÎ ÏÏÎÎÎÎÏÎ ÏÎÏ ÎÎÏÎÎÎÏÏÎÎÎÎ ÏÎÏÎÏÎÎÏ ÎÎÎÎÎÏÎÏÎÎ ÎÎ ÎÎÏÏÎÎÎÏÎÎÎ "
+"ÏÏÎ <link href=\"http://library.gnome.org/devel/gtkmm-tutorial/stable/";
+"\">ÎÎÎÎÎÎ GTKmm</link> ÏÎÏ ÎÏÎÏÎÏ ÎÎÎÏÏÏÎÎ ÏÎÎÏ ÏÎÏÎÏÏÏÏÎÏÎÏ ÎÎÏÎÎÎÏ ÎÎÎÎÎÎÏ "
+"ÏÏÎÏÎÏ ÏÎÎÏ ÏÎÏ ÎÏÎÎÎÎÏ ÏÎÏ GTKmm. ÎÏÏÏ ÎÏÎÏÎÏ ÎÎÎÎÎÏÎÏÎÏÏÎ ÎÎÎ ÏÎÎ <link "
+"href=\"http://library.gnome.org/devel/gstreamermm/\";>ÏÎÎÎÎÏÎÏÏÎ ÎÎÎÏÎÏÎÏ "
+"GStreamermm</link>."
+
+#: C/guitar-tuner.js.page:6(info/title)
+msgctxt "text"
+msgid "Guitar Tuner (JavaScript)"
+msgstr "ÎÏÎÏÎÎÎÏÏÎÏ ÎÎÎÎÏÎÏ (JavaScript)"
+
+#: C/guitar-tuner.js.page:16(info/desc)
+msgid ""
+"Use Gtk+ and GStreamer to build a simple guitar tuner application for GNOME."
+msgstr ""
+"ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ Gtk+ ÎÎÎ GStreamer ÎÎÎ ÎÎ ÎÎÏÎÏÎÎÏÎÏÎÏÎ ÎÎÎ ÎÏÎÎ ÎÏÎÏÎÎÎÎ "
+"ÏÏÎÎÎÏÏÎ ÎÎÎÎÏÎÏ ÎÎÎ ÏÎ GNOME."
+
+#: C/guitar-tuner.js.page:19(page/title) C/guitar-tuner.py.page:23(page/title)
+#: C/guitar-tuner.vala.page:26(page/title)
+msgid "2 Guitar Tuner"
+msgstr "2 ÎÏÎÏÎÎÎÏÏÎÏ ÎÎÎÎÏÎÏ"
+
+#: C/guitar-tuner.js.page:22(synopsis/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 ""
+"ÎÎ ÎÏÏÏ ÏÎ ÎÎÎÎÎÎ ÎÎ ÎÎÏÎÏÎÎÏÎÏÎÏÎÎ ÎÎÎ ÎÎÎÏÎ ÎÏÎÏÎÎÎÎ, Guitar Tuner, "
+"ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ JavaScript, GTK+ ÎÎÎ GStreamer. ÎÎÎ ÎÎ ÎÎÎÎÏÎ ÎÎÎ ÎÎ ÏÏÎÎÎÏÎ "
+"ÏÎÎ ÏÎ ÏÎÏÎÎÎÎÎÎÎÏÎ ÎÏÎÎÎÎ ÎÎ ÎÎÎÎÎ, ÏÏÎÎÎÎÏÏÎÏÏÎ ÎÎÎÎ ÎÏÎÎÎÏÎÎÏÏÎ ÎÎÎ ÏÎ "
+"ÎÏÎÏÎÎÎ ÏÎÏ ÎÏÎÎÎÎ, ÏÎÏÎÎÏÎÎÏ ÎÎÎ GNOME 3 Î ÎÎÏÎÎÎÎÎÏÏÎÏÎ ÎÎÎÎÏÎÏÏÎÎÎÎÎ ÏÏÎÎ "
+"ÏÏÎÎÎÎÎÏÏÎ ÏÎÏ."
+
+#: C/guitar-tuner.js.page:24(item/p)
+msgid "<link xref=\"#gstreamer\">GStreamer pipelines</link>"
+msgstr "<link xref=\"#gstreamer\">ÎÎÎÏÎÏÎÏÏÎÎÏ GStreamer</link>"
+
+#: C/guitar-tuner.js.page:25(item/p) C/weatherAppMain.js.page:22(item/p)
+msgid "<link xref=\"#script\">Script for running the application</link>"
+msgstr "<link xref=\"#script\">ÎÎÎÎÏÎÎ ÎÎÎ ÎÎÏÎÎÎÏÎ ÏÎÏ ÎÏÎÏÎÎÎÎÏ</link>"
+
+#: C/guitar-tuner.js.page:26(item/p) C/weatherAppMain.js.page:23(item/p)
+msgid "<link xref=\"#imports\">Libraries to import</link>"
+msgstr "<link xref=\"#imports\">ÎÎÎÎÎÎÎÎÎÎÏ ÎÎÎ ÎÎÏÎÎÏÎÎ</link>"
+
+#: C/guitar-tuner.js.page:27(item/p) C/weatherAppMain.js.page:24(item/p)
+msgid ""
+"<link xref=\"#mainwindow\">Creating the main window for the application</"
+"link>"
+msgstr ""
+"<link xref=\"#mainwindow\">ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ ÎÏÏÎÎÏ ÏÎÏÎÎÏÏÎÏ ÎÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ</"
+"link>"
+
+#: C/guitar-tuner.js.page:28(item/p)
+#, fuzzy
+msgid "<link xref=\"#buttons\">Buttons for the tunes</link>"
+msgstr "<link xref=\"#script\">ÎÎÎÎÏÎÎ ÎÎÎ ÎÎÏÎÎÎÏÎ ÏÎÏ ÎÏÎÏÎÎÎÎÏ</link>"
+
+#: C/guitar-tuner.js.page:29(item/p)
+msgid "<link xref=\"#playSound\">Making the sounds with GStreamer</link>"
+msgstr "<link xref=\"#playSound\">ÎÎÎÎÎÏÎÏ ÏÎÏÏ ÎÏÎÏÏ ÎÎ GStreamer</link>"
+
+#: C/guitar-tuner.js.page:30(item/p)
+msgid "<link xref=\"#connecting\">Connecting buttons to playSound</link>"
+msgstr "<link xref=\"#connecting\">ÎÏÎÎÎÎÎÏÎÏ ÎÎÏÎÏÎÎ ÏÏÎ playSound</link>"
+
+#: C/guitar-tuner.js.page:31(item/p)
+msgid "<link xref=\"#guitarjs\">The whole program</link>"
+msgstr "<link xref=\"#guitarjs\">ÎÎÏÎÎÎÏÎ ÏÎ ÏÏÎÏÎÏÎÎÎÎ</link>"
+
+#: C/guitar-tuner.js.page:32(item/p)
+msgid "<link xref=\"#terminal\">Running the application form Terminal</link>"
+msgstr "<link xref=\"#terminal\">ÎÎÏÎÎÎÏÎ ÏÎÏ ÎÏÎÏÎÎÎÎÏ ÎÏÏ ÏÎÏÎÎÏÎÎÏ</link>"
+
+#: C/guitar-tuner.js.page:35(page/p) C/weatherApp.js.page:34(page/p)
+msgid "After reading this tutorial, you should see this in your screen:"
+msgstr ""
+"ÎÎÏÎ ÏÎÎ ÎÎÎÎÎÏÏÎ ÎÏÏÎÏ ÏÎÏ ÎÎÎÎÎÎÏÎÏ, ÎÎ ÏÏÎÏÎÎ ÎÎ ÎÎÎÏÎ ÎÏÏÏ ÏÏÎÎ ÎÎÏÎÎ "
+"ÏÎÏ:"
+
+#: C/guitar-tuner.js.page:47(section/title)
+#: C/helloWorld.js.page:45(section/title)
+#: C/weatherAppMain.js.page:32(section/title)
+msgid "Script for running the application"
+msgstr "ÎÎÎÎÏÎÎ ÎÎÎ ÎÎÏÎÎÎÏÎ ÏÎÏ ÎÏÎÏÎÎÎÎÏ"
+
+#: C/guitar-tuner.js.page:48(section/code)
+#: C/weatherAppMain.js.page:33(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"  #!/usr/bin/gjs"
+msgstr ""
+"\n"
+"  #!/usr/bin/gjs"
+
+#: C/guitar-tuner.js.page:50(section/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 ""
+"ÎÏÏÎ Î ÎÏÎÎÎÎ ÎÎÎÎ ÏÏÏ ÎÎ ÎÎÏÎÎÎÏÏÎÎ ÏÎ ÏÎÎÎÏÎÎ. ÎÏÎÏÎÎ ÎÎ ÎÎÎÎÎ Î ÏÏÏÏÎ "
+"ÎÏÎÎÎÎ ÏÎÏ ÎÏÎÎÎÎ ÎÎÎ ÎÎ ÎÎÎÎÎ ÎÎÏÎÎÎÏÎÎÎ. ÎÎÎ ÎÎÏÎ ÏÏÎ ÎÎÎÎÎÏÎÎÏÏÎ "
+"ÎÎÏÎÎÎÏÎÏ ÏÎÎÎÎÎÎÏÎ ÏÏÎÎ ÏÎÏÎÎÏÎÎÏ ÎÎÎ ÎÎÏÎÎÎÏÏÎ ÏÏÎÎ ÏÏÏÏÏ ÏÎÎÎÎÎ: chmod +x "
+"ÏÎÎÎÎ ÏÎÎÎÏÎÎÏ. Î ÎÏÎÏÎÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÏÎÎ ÎÎÎÏÎÎÏÎÏÏÎ ÎÏÏÎÎÎÏ "
+"ÎÏÎÏÎÎÏÎ. ÎÏÎÎ ÏÎÎÎÎÎÎÏÎ ÏÏÎÎ ÏÏÏÏÏ ÏÎÎÎÎÎ ÏÏÎÏ ÎÎÎÎÎ Î ÎÏÎÎÎÎÏ ÏÎÏ ÎÎÎÎ "
+"ÎÎÎÎ ÏÏÎ ÎÏÏÎÎÎ ÏÎÏ ÎÏÎÎÎÎ ÏÎÏ, ÎÏÎÎÎÎÏÎ ÎÎÎÏÏÎÏÎÏ, ÎÎÎÎ ÏÏÎÎ ÎÎÏÏÎÎÎ "
+"ÎÎÎÎÎÏÎÎÏÏÎ ÎÎÎ ÏÎÎÎÎÏÏÏÎ ÏÎ ÏÎÎÎÏÎÎ ÎÎÎ ÎÎ ÎÏÎÏÏÎÏÎÎ Î ÎÎÏÎÎÎÏÎ ÏÎÏ ÎÏÏÎÎÎÏ "
+"ÏÏ ÏÏÏÎÏÎÎÎÎ"
+
+#: C/guitar-tuner.js.page:55(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"var Gtk = imports.gi.Gtk;\n"
+"var Gst = imports.gi.Gst;\n"
+"\n"
+"const Mainloop = imports.mainloop;"
+msgstr ""
+"\n"
+"var Gtk = imports.gi.Gtk;\n"
+"var Gst = imports.gi.Gst;\n"
+"\n"
+"const Mainloop = imports.mainloop;"
+
+#: C/guitar-tuner.js.page:60(section/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 ""
+"ÎÎÎ ÎÎ ÏÏÎÏÏÎÎ ÎÎÎ ÎÎÎÏÎÏÏÎÎÎÏ ÏÏÏÎÏÎÎÎÎ ÏÏÎÎÎÎÎÏÎÎ ÎÎ ÎÎÏÎÏÎÎÏÎ ÎÎÎÎ "
+"GObject ÎÏÏÎÎÎÎÎÏÎÏ - ÎÎÎÎÎÎÎÎÎÎÏ ÎÎÎ ÏÎ ÏÏÎÏÎ ÎÎÏ. ÎÎÎ ÎÎÎÏÎÏÏÎÎÎÏ UI, "
+"ÏÏÎÎÎÎÎÏÎÎ Gtk ÎÎÎ ÎÎÎ Gstreamer ÏÏÎÎÎÎÎÏÎÎ Gst. ÎÏÏÎ ÎÎÏÎÎÎÎÏÎÎ ÏÏÎÎ ÎÏÏÎ "
+"ÎÎÎ ÎÎ ÏÎ ÎÏÎÏÎÎ ÎÎÎ ÏÏÎÏÎ ÏÎÎÏÎÏ. ÎÏÎÏÎÏ ÏÏÎÎ ÎÏÏÎ ÎÎÏÎÎÎÏÎÎ ÎÎÎÎ ÎÏÏÎÎ "
+"ÎÏÏÏÎ ÎÎÏÎÏÎÎÏÎÏ ÎÎÎ ÏÎÎÏÎÏÎÏ ÏÎÏ ÏÏÏÎÎÏ ÎÎÎÎÏ ÏÏÎ ÏÏÎÏÎ ÏÎÏ ÎÎ ÎÏÎÏÏ "
+"ÎÎÎÏÎÎÎÏ."
+
+#: C/guitar-tuner.js.page:63(section/title)
+#: C/helloWorld.js.page:58(section/title)
+#: C/weatherAppMain.js.page:48(section/title)
+msgid "Creating the main window for the application"
+msgstr "ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ ÎÏÏÎÎÏ ÏÎÏÎÎÏÏÎÏ ÎÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ"
+
+#: C/guitar-tuner.js.page:64(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"Gtk.init(null, 0);\n"
+"Gst.init(null, 0);\n"
+"\n"
+"var guitarwindow = new Gtk.Window({type: Gtk.WindowType.TOPLEVEL, border_width: 100});\n"
+"guitarwindow.title = \"Guitar Tuner\";\n"
+"guitarwindow.connect(\"destroy\", function(){Gtk.main_quit()});\n"
+"\n"
+"guitarwindow.show();\n"
+"Gtk.main();"
+msgstr ""
+"\n"
+"Gtk.init(null, 0);\n"
+"Gst.init(null, 0);\n"
+"\n"
+"var guitarwindow = new Gtk.Window({type: Gtk.WindowType.TOPLEVEL, border_width: 100});\n"
+"guitarwindow.title = \"Guitar Tuner\";\n"
+"guitarwindow.connect(\"destroy\", function(){Gtk.main_quit()});\n"
+"\n"
+"guitarwindow.show();\n"
+"Gtk.main();"
+
+#: C/guitar-tuner.js.page:74(section/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 ""
+"Î ÎÎÏÎÎÏÎÎ ÏÏÎ Gtk ÎÎÎ Gst ÎÎÎ ÎÎÎÎÎ ÎÏÎÎÏÎ, ÏÏÎÎÎÎÎÏÎÎ Î ÎÏÏÎÎÎÏÎÎÎÏÎ ÏÎÏÏ "
+"ÎÎÎ ÎÎ ÎÎÏÎÎÏÎÏÎ. ÎÏÎÎ ÏÎ Gtk ÎÎÎ Gst ÎÎÏÎÎÎÏÎÏÎÎ ÏÏÎÎÎÎÎÏÎÎ ÎÎ "
+"ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ ÏÎ ÏÎÏÎÎÏÏÎ ÎÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ. ÎÏÎÏÏÎÏÎ ÏÏÏÎÎÎÏÎÎ ÎÎ ÎÎÎÎÏÎÎ "
+"ÏÎÎ ÏÎ ÎÎÏÎÏÎÎ ÎÎ ÏÎÏÎÎÎÏÎ ÎÏÎÏÏ ÎÎÏÎ ÏÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÏÏÎ. ÎÎÎ ÏÎÎ ÎÎÏÎÎÎÏÎ "
+"ÏÎÏ ÏÎÏÎÎÏÏÎÏ, ÏÏÎÎÎÎÏÎÎÏÏÎ ÎÎ ÏÎÏ ÏÎÏÎÎ ÎÎ ÎÎÏÎÎÎÏÏÎÎ ÎÎÎ ÏÏÎÎÎÎÏÎÎÏÏÎ "
+"ÎÏÎÏÎÏ ÎÎ ÏÏÎÎÎÎ Î ÎÏÎÎÎÎÏ ÎÎ ÏÎ Gtk.main()"
+
+#: C/guitar-tuner.js.page:77(section/title)
+msgid "Buttons for the tunes"
+msgstr "ÎÎÏÎÏÎÎ ÎÎÎ ÏÎÏ ÎÎÎÏÎÎÎÏ"
+
+#: C/guitar-tuner.js.page:78(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"var guitar_box = new Gtk.ButtonBox ({orientation: Gtk.Orientation.VERTICAL, spacing: 10});\n"
+"\n"
+"var E = new Gtk.Button({label: \"E\"});\n"
+"var A = new Gtk.Button({label: \"A\"});\n"
+"var D = new Gtk.Button({label: \"D\"});\n"
+"var G = new Gtk.Button({label: \"G\"});\n"
+"var B = new Gtk.Button({label: \"B\"});\n"
+"var e = new Gtk.Button({label: \"e\"});\n"
+"\n"
+"guitar_box.add(E);\n"
+"guitar_box.add(A);\n"
+"guitar_box.add(D);\n"
+"guitar_box.add(G);\n"
+"guitar_box.add(B);\n"
+"guitar_box.add(e);\n"
+"\n"
+"guitarwindow.add(guitar_box);\n"
+"\n"
+"guitar_box.show_all();"
+msgstr ""
+"\n"
+"var guitar_box = new Gtk.ButtonBox ({orientation: Gtk.Orientation.VERTICAL, spacing: 10});\n"
+"\n"
+"var E = new Gtk.Button({label: \"E\"});\n"
+"var A = new Gtk.Button({label: \"A\"});\n"
+"var D = new Gtk.Button({label: \"D\"});\n"
+"var G = new Gtk.Button({label: \"G\"});\n"
+"var B = new Gtk.Button({label: \"B\"});\n"
+"var e = new Gtk.Button({label: \"e\"});\n"
+"\n"
+"guitar_box.add(E);\n"
+"guitar_box.add(A);\n"
+"guitar_box.add(D);\n"
+"guitar_box.add(G);\n"
+"guitar_box.add(B);\n"
+"guitar_box.add(e);\n"
+"\n"
+"guitarwindow.add(guitar_box);\n"
+"\n"
+"guitar_box.show_all();"
+
+#: C/guitar-tuner.js.page:98(section/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 ""
+"ÎÏÎÎÎÎ ÏÎ Gtk.Window ÎÏÎÏÎÎ ÎÎ ÏÎÏÎÎÏÎÎ ÎÏÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ, "
+"ÏÏÎÎÎÎÎÏÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎÎÎÎ ÎÎÏÎ ÎÏÏ ÎÎÏÏ ÏÎÏ ÎÎÎ ÎÎ ÎÏÎÏÎÎ ÎÎ ÏÏÎÏÎÎÏÎÎ ÏÎÎ "
+"ÏÎ ÎÏÎÏÎÎÏÎÏÎ ÎÎÏÎÏÎÎ ÎÎÏÎ ÏÎÏ. ÎÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÏÎÎÎÏÎÎ "
+"ÎÎÏÎÏÎÎÏ. ÎÎÏÎ ÏÎ ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ ÏÎÎÎÏÎÎÏ ÎÎÏÎÏÎÎÏ ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÏÎÏÎÎ ÎÎ "
+"ÎÎÎÎÎÎÎÎÏ ÎÏÎÎÎÏÎÏ. ÎÏÎÏ ÎÏÎÏÎÎ ÏÎ ÎÎÏÎÏÎÎ ÏÏÎÏÎÎ ÎÎ ÏÎ ÏÏÎÏÎÎÏÎÏÎÎ ÏÏÎ "
+"ÏÎÎÎÏÎÎ ÎÎÏÎÏÎÎÏ ÎÎÎ ÏÎ ÏÎÎÎÏÎÎ ÎÎÏÎÏÎÎÏ ÏÏÎÏÎÎ ÎÎ ÏÏÎÏÏÎÎÎÎ ÏÏÎ Gtk.Window "
+"ÎÎÎ ÏÎÎ ÏÏÎ ÏÎÎÎÏÎÎ ÎÎÏÎÏÎÎÏ ÏÏÎÏÎÎ ÎÎ ÎÎÏÎÎÎÎÎÎÏÎÎ."
+
+#: C/guitar-tuner.js.page:99(section/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 ""
+"ÎÎÏÎ ÎÏÏ ÎÏÏÏ ÏÎ ÏÏÎÎÎÎ ÏÏÎÏÎÎ ÎÎ ÎÏÎÏÎ ÎÎÎ ÎÎÏÎÎÎÎÏÎÎÎÎ ÏÎÏÎÎÏÏÎ ÏÏÎÎ ÎÎÏÎÎ "
+"ÏÎÏ ÏÎÏ ÎÎ ÎÎÎÏÎÎÎ 6 ÎÎÏÎÏÎÎ. ÎÏÏÎ ÏÎ ÎÎÏÎÏÎÎ ÎÎÎ ÎÎÎÎÏÎ ÏÎÏÎÏÎ ÎÎÎ ÎÎ "
+"ÎÎÏÎÎÎÏÏÏÎÏÎÏÎÎ ÎÏÏÏ ÏÎ ÎÎÎÎ ÎÏÎÏÏÎÏÎ. ÎÏÎÎ ÎÎ ÎÏÎÏÎÏÎÏÎÎ ÎÎ ÏÏÎÎÎÏÎÏÎÎ ÏÎ "
+"ÏÎÎÎÏÎ ÏÎÏ ÎÎÏÎÏÎÎÏ ÎÎ ÎÎÏÎ ÏÏÎÎÎÎÎÏÎÎ ÎÎ ÎÏÎÎÎÎÏÎÎÎÏÎÏÎÎ ÎÏÏÏ ÏÎ ÎÎÏÎ ÏÏÏÏÎ."
+
+#: C/guitar-tuner.js.page:102(section/title)
+msgid "Making the sounds with GStreamer"
+msgstr "ÎÎÎÎÎÏÎÏ ÏÎÏÏ ÎÏÎÏÏ ÎÎ GStreamer"
+
+#: C/guitar-tuner.js.page:103(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"var frequencies = {E: 329.63, A: 440,\tD: 587.33,\tG: 783.99,\tB: 987.77,\te: 1318.5}\n"
+"\n"
+"function playSound(frequency){\n"
+"  var pipeline = new Gst.Pipeline({name: \"note\"});\n"
+"  var source = new Gst.ElementFactory.make(\"audiotestsrc\",\"source\");\n"
+"  var sink = new Gst.ElementFactory.make(\"autoaudiosink\",\"output\");\n"
+"\n"
+"  source.set_property('freq', frequency);\n"
+"  pipeline.add(source);\n"
+"  pipeline.add(sink);\n"
+"  source.link(sink);\n"
+"  pipeline.set_state(Gst.State.PLAYING);\n"
+"\n"
+"  Mainloop.timeout_add(500, function () {\n"
+"    pipeline.set_state(Gst.State.PAUSED);\n"
+"\t  return false;\n"
+"  });\n"
+"}"
+msgstr ""
+"\n"
+"var frequencies = {E: 329.63, A: 440,\tD: 587.33,\tG: 783.99,\tB: 987.77,\te: 1318.5}\n"
+"\n"
+"function playSound(frequency){\n"
+"  var pipeline = new Gst.Pipeline({name: \"note\"});\n"
+"  var source = new Gst.ElementFactory.make(\"audiotestsrc\",\"source\");\n"
+"  var sink = new Gst.ElementFactory.make(\"autoaudiosink\",\"output\");\n"
+"\n"
+"  source.set_property('freq', frequency);\n"
+"  pipeline.add(source);\n"
+"  pipeline.add(sink);\n"
+"  source.link(sink);\n"
+"  pipeline.set_state(Gst.State.PLAYING);\n"
+"\n"
+"  Mainloop.timeout_add(500, function () {\n"
+"    pipeline.set_state(Gst.State.PAUSED);\n"
+"\t  return false;\n"
+"  });\n"
+"}"
+
+#: C/guitar-tuner.js.page:122(section/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 ""
+"ÎÎ ÏÏÏÏÎ ÏÏÎÎÎÎ ÏÎÏ ÏÏÎÎÎÎÏÎÎÏÏÎ ÎÎÎÎÎ ÎÎ ÎÏÎÏÎÏÎÏÎÏÎÎ ÏÎ ÎÎÎÏÎÎÎÏ ÎÎÎÎÏÎÎ "
+"ÎÎ ÎÎÎÎÏÎÎ ÏÏÎÎ ÏÎÏÎÎÎ ÎÎÎ ÎÎÏÎÏÎ. Î ÎÎÏÏÎ ÏÏÏÎÎÏÎÏÏÎ ÏÎ ÏÏÎÎÏÎÎÎÎ. ÎÎÏÎ ÎÏÏ "
+"ÎÏÏÏ ÏÏÎÎÏÎÎÎÏÎÎ ÎÎ ÎÎÎÎÎ ÏÏÎÎ ÏÏÎÎÎÎÏÎÎÏÏÎÏÎ ÏÎÏÏ ÎÏÎÏÏ ÎÎ ÏÎ ÏÏÎÎÏÏÎÏÎ "
+"playSound. ÎÎÎ ÏÎ ÏÏÎÎÏÏÎÏÎ playSound ÎÎÎÎÏÎÎ ÏÏ ÎÎÏÎÎÎ ÎÎÎ ÏÏÏÎÏÏÎÏÎ (ÏÎÏ "
+"ÎÏÎÎÏ ÎÏÎÏÎÎÎ ÏÏÎ ÎÎÏÎÎÎÎÏÎ ÏÏÏÎÎÏÎÏÏÎ). ÎÎ ÏÏÏÏÎ ÏÏÎÎÎÎ ÏÎÏ ÏÏÎÎÎÎÏÎÎÏÏÎ ÎÎ "
+"ÎÎÏÎÏÎÎÏÎÏÎÏÎÎ ÎÎÎÎÎ ÎÎÎ ÎÎÎÏÎÏÎÏÏÎ, ÎÎÎ ÏÎÎÎ ÎÎÎ ÎÎÎ ÎÎÎÎÎ. ÎÎÎ ÏÎÎ ÏÎÎÎ "
+"ÎÏÎÎÎÏÎÎ ÏÎ ÏÏÏÎÏÏÎÏÎ. ÎÏÎ ÎÎÎÏÎÏÎÏÏÎ ÏÏÎÏÎÎÏÎÏÎÎ ÎÎÎ ÏÎÎ ÏÎÎÎ ÎÎÎ ÏÎÎ ÎÎÎÎÎ "
+"ÎÎÎ ÎÏÎÎÏÎ ÏÎÏ ÎÎÎÎ ÎÎ ÏÏÎÎÏÎÏÎÎ ÎÎ ÏÎÎÎÎÎ. ÎÏ ÏÎÎÎÏÏÎÎÎ ÏÏÎÎÎÎ "
+"ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÏÎ ÏÏÎÎÎÏÎ ÎÏÏÎÎÏ ÎÏÏÏÎÏ ÎÎÎ ÎÎ ÎÎÎÎÎ ÏÎÏÏÎ Î ÎÎÎÏÎÏÎÏÏÎ ÎÎÏÎ "
+"ÎÏÏ 500ms."
+
+#: C/guitar-tuner.js.page:123(section/p)
+msgid ""
+"Now we have the method of playing a tune when clicking a button. Next well "
+"make the conncetions between pushing a button and playing the correct sound "
+"from that button."
+msgstr ""
+"ÎÏÏÎ ÎÏÎÏÎÎ ÏÎ ÎÎÎÎÎÎ ÎÎÎÏÎÏÎÎÏÎÎÏ ÎÎÎÏ ÎÎÎÏÎÎÎÏ ÏÎÏÏÎÏÎÏ ÎÎÎ ÎÎÏÎÏÎ. ÎÎÏÎ "
+"ÎÎÎÎÎÏÎÎ ÎÎ ÏÏÎÎÎÏÎÎÏ ÎÎÏÎÎÏ ÏÎÏÎÎÎÏÎÏ ÎÎÏÏ ÎÎÏÎÏÎÎÏ ÎÎÎ ÎÎÎÏÎÏÎÎÏÎÎÏ ÏÎÏ "
+"ÏÏÏÏÎÏ ÎÏÎÏ ÎÏÏ ÎÏÏÏ ÏÎ ÎÎÏÎÏÎ."
+
+#: C/guitar-tuner.js.page:126(section/title)
+msgid "Connecting buttons to playSound"
+msgstr "ÎÏÎÎÎÎÎÏÎÏ ÎÎÏÎÏÎÎ ÏÏÎ playSound"
+
+#: C/guitar-tuner.js.page:127(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"E.connect(\"clicked\", function() {\n"
+"  playSound(frequencies.E);\n"
+"});\n"
+"A.connect(\"clicked\", function(){\n"
+"  playSound(frequencies.A);\n"
+"});\n"
+"D.connect(\"clicked\", function(){\n"
+"  playSound(frequencies.D);\n"
+"});\n"
+"G.connect(\"clicked\", function(){\n"
+"  playSound(frequencies.G);\n"
+"});\n"
+"B.connect(\"clicked\", function(){\n"
+"  playSound(frequencies.B);\n"
+"});\n"
+"e.connect(\"clicked\", function(){\n"
+"  playSound(frequencies.e);\n"
+"});"
+msgstr ""
+"\n"
+"E.connect(\"clicked\", function() {\n"
+"  playSound(frequencies.E);\n"
+"});\n"
+"A.connect(\"clicked\", function(){\n"
+"  playSound(frequencies.A);\n"
+"});\n"
+"D.connect(\"clicked\", function(){\n"
+"  playSound(frequencies.D);\n"
+"});\n"
+"G.connect(\"clicked\", function(){\n"
+"  playSound(frequencies.G);\n"
+"});\n"
+"B.connect(\"clicked\", function(){\n"
+"  playSound(frequencies.B);\n"
+"});\n"
+"e.connect(\"clicked\", function(){\n"
+"  playSound(frequencies.e);\n"
+"});"
+
+#: C/guitar-tuner.js.page:146(section/p)
+msgid ""
+"The method of connecting button clicks to playSound with the correct tune is "
+"by using the connect method of the button widget. So we choose a button to "
+"be connected and type E.connect(\"clicked\", function(){playSound"
+"(frequencies.E);}); The connect tells that when pushing E, something should "
+"happen. The \"clicked\" tells the type of something happening to E and then "
+"in the function(){}; we the playSound happen with the correct tune that "
+"should be associated to the button."
+msgstr ""
+"Î ÎÎÎÎÎÎÏ ÏÏÎÎÎÏÎÏ ÎÎÏÎÏÎÎÏ ÏÎÏÎ ÏÎ playSound ÎÎ ÏÎ ÏÏÏÏÎ ÎÎÎÏÎÎÎ ÎÎÎÎÏÎÎ "
+"ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ ÎÎÎÎÎÎ ÏÏÎÎÎÏÎÏ ÏÎÏ ÎÏÎÏÎÎÎÏ ÏÏÏÏÎÏÎÎÎÏ ÎÎÏÎÏÎÎÏ. ÎÏÏÎ "
+"ÎÏÎÎÎÎÎÏÎÎ ÎÎÎ ÎÎÏÎÏÎ ÎÎ ÏÏÎÎÎÎÎÎ ÎÎÎ ÏÎÎÎÏÏÎÎÎÎÎÏÎÎ E.connect(\"clicked\", "
+"function(){playSound(frequencies.E);}); Î ÏÏÎÎÎÏÎ ÎÎÎÎ ÏÏÎ ÏÏÎÎ ÏÎÏÎÎÎ Î, "
+"ÎÎÏÎ ÎÎ ÏÏÎÎÎÎ. ÎÎ \"ÏÎÏÎÎÎÎÎ\" ÎÎÎÎ ÏÎÎ ÏÏÏÎ ÏÎÏ ÎÎÏÎ ÏÏÎÎÎÎÎÎÎ ÏÏÎ Î ÎÎÎ "
+"ÎÏÎÎÏÎ ÏÏÎ function(){}; ÏÏÎÎÎÎÎÎÎ ÏÎ playSound ÎÎ ÏÎ ÏÏÏÏÎ ÎÎÎÏÎÎÎ ÏÎÏ "
+"ÎÏÎÏÎÎ ÎÎ ÏÏÏÏÎÏÎÏÏÎÎ ÎÎ ÏÎ ÎÎÏÎÏÎ."
+
+#: C/guitar-tuner.js.page:149(section/title)
+msgid "The whole program"
+msgstr "ÎÎÎ ÏÎ ÏÏÏÎÏÎÎÎÎ"
+
+#: C/guitar-tuner.js.page:150(section/p)
+msgid ""
+"So this is what all the parts combined looks like. When running this code, "
+"you should be able to tune your guitar(if you have correctly calibrated "
+"speakers)."
+msgstr ""
+"ÎÏÏÎ ÎÏÏÏ ÎÎÎÎÎ ÏÏÏ ÎÎÎÏÎÎÏÎ ÏÎÎ ÏÎ ÎÎÏÎÎÎÎ ÏÎÎÎÎÏÎ. ÎÏÎÎ ÏÏÎÏÎÎ ÎÏÏÏÏ Î "
+"ÎÏÎÎÎÎÏ, ÎÎ ÎÏÎÏÎÏÏÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÏÎ ÏÎÎ ÎÎÎÎÏÎ ÏÎÏ (ÎÎÎ ÎÏÎÏÎ ÏÏÏÏÎ "
+"ÎÎÎÎÎÎÎÎÎÎÎÎÎ ÎÏÎÎÎ)."
+
+#: C/guitar-tuner.js.page:151(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"#!/usr/bin/gjs\n"
+"var Gtk = imports.gi.Gtk;\n"
+"var Gst = imports.gi.Gst;\n"
+"\n"
+"const Mainloop = imports.mainloop;\n"
+"\n"
+"Gtk.init(null, 0);\n"
+"Gst.init(null, 0);\n"
+"\n"
+"var guitarwindow = new Gtk.Window({type: Gtk.WindowType.TOPLEVEL, border_width: 100});\n"
+"guitarwindow.title = \"Guitar Tuner\";\n"
+"guitarwindow.connect(\"destroy\", function(){Gtk.main_quit()});\n"
+"\n"
+"var guitar_box = new Gtk.ButtonBox ({orientation: Gtk.Orientation.VERTICAL, spacing: 10});\n"
+"\n"
+"var E = new Gtk.Button({label: \"E\"});\n"
+"var A = new Gtk.Button({label: \"A\"});\n"
+"var D = new Gtk.Button({label: \"D\"});\n"
+"var G = new Gtk.Button({label: \"G\"});\n"
+"var B = new Gtk.Button({label: \"B\"});\n"
+"var e = new Gtk.Button({label: \"e\"});\n"
+"\n"
+"var frequencies = {E: 329.63, A: 440,\tD: 587.33,\tG: 783.99,\tB: 987.77,\te: 1318.5}\n"
+"\n"
+"\n"
+"function playSound(frequency){\n"
+"  var pipeline = new Gst.Pipeline({name: \"note\"});\n"
+"\n"
+"  var source = new Gst.ElementFactory.make(\"audiotestsrc\",\"source\");\n"
+"  var sink = new Gst.ElementFactory.make(\"autoaudiosink\",\"output\");\n"
+"\n"
+"  source.set_property('freq', frequency);\n"
+"  pipeline.add(source);\n"
+"  pipeline.add(sink);\n"
+"  source.link(sink);\n"
+"  pipeline.set_state(Gst.State.PLAYING);\n"
+"\n"
+"  Mainloop.timeout_add(500, function () {\n"
+"    pipeline.set_state(Gst.State.PAUSED);\n"
+"\t  return false;\n"
+"});\n"
+"}\n"
+"\n"
+"E.connect(\"clicked\", function() {\n"
+"  playSound(frequencies.E);\n"
+"});\n"
+"A.connect(\"clicked\", function(){\n"
+"  playSound(frequencies.A);\n"
+"});\n"
+"D.connect(\"clicked\", function(){\n"
+"  playSound(frequencies.D);\n"
+"});\n"
+"G.connect(\"clicked\", function(){\n"
+"  playSound(frequencies.G);\n"
+"});\n"
+"B.connect(\"clicked\", function(){\n"
+"  playSound(frequencies.B);\n"
+"});\n"
+"e.connect(\"clicked\", function(){\n"
+"  playSound(frequencies.e);\n"
+"});\n"
+"\n"
+"guitar_box.add(E);\n"
+"guitar_box.add(A);\n"
+"guitar_box.add(D);\n"
+"guitar_box.add(G);\n"
+"guitar_box.add(B);\n"
+"guitar_box.add(e);\n"
+"\n"
+"guitarwindow.add(guitar_box);\n"
+"\n"
+"guitar_box.show_all();\n"
+"guitarwindow.show();\n"
+"Gtk.main();"
+msgstr ""
+"\n"
+"#!/usr/bin/gjs\n"
+"var Gtk = imports.gi.Gtk;\n"
+"var Gst = imports.gi.Gst;\n"
+"\n"
+"const Mainloop = imports.mainloop;\n"
+"\n"
+"Gtk.init(null, 0);\n"
+"Gst.init(null, 0);\n"
+"\n"
+"var guitarwindow = new Gtk.Window({type: Gtk.WindowType.TOPLEVEL, border_width: 100});\n"
+"guitarwindow.title = \"Guitar Tuner\";\n"
+"guitarwindow.connect(\"destroy\", function(){Gtk.main_quit()});\n"
+"\n"
+"var guitar_box = new Gtk.ButtonBox ({orientation: Gtk.Orientation.VERTICAL, spacing: 10});\n"
+"\n"
+"var E = new Gtk.Button({label: \"E\"});\n"
+"var A = new Gtk.Button({label: \"A\"});\n"
+"var D = new Gtk.Button({label: \"D\"});\n"
+"var G = new Gtk.Button({label: \"G\"});\n"
+"var B = new Gtk.Button({label: \"B\"});\n"
+"var e = new Gtk.Button({label: \"e\"});\n"
+"\n"
+"var frequencies = {E: 329.63, A: 440,\tD: 587.33,\tG: 783.99,\tB: 987.77,\te: 1318.5}\n"
+"\n"
+"\n"
+"function playSound(frequency){\n"
+"  var pipeline = new Gst.Pipeline({name: \"note\"});\n"
+"\n"
+"  var source = new Gst.ElementFactory.make(\"audiotestsrc\",\"source\");\n"
+"  var sink = new Gst.ElementFactory.make(\"autoaudiosink\",\"output\");\n"
+"\n"
+"  source.set_property('freq', frequency);\n"
+"  pipeline.add(source);\n"
+"  pipeline.add(sink);\n"
+"  source.link(sink);\n"
+"  pipeline.set_state(Gst.State.PLAYING);\n"
+"\n"
+"  Mainloop.timeout_add(500, function () {\n"
+"    pipeline.set_state(Gst.State.PAUSED);\n"
+"\t  return false;\n"
+"});\n"
+"}\n"
+"\n"
+"E.connect(\"clicked\", function() {\n"
+"  playSound(frequencies.E);\n"
+"});\n"
+"A.connect(\"clicked\", function(){\n"
+"  playSound(frequencies.A);\n"
+"});\n"
+"D.connect(\"clicked\", function(){\n"
+"  playSound(frequencies.D);\n"
+"});\n"
+"G.connect(\"clicked\", function(){\n"
+"  playSound(frequencies.G);\n"
+"});\n"
+"B.connect(\"clicked\", function(){\n"
+"  playSound(frequencies.B);\n"
+"});\n"
+"e.connect(\"clicked\", function(){\n"
+"  playSound(frequencies.e);\n"
+"});\n"
+"\n"
+"guitar_box.add(E);\n"
+"guitar_box.add(A);\n"
+"guitar_box.add(D);\n"
+"guitar_box.add(G);\n"
+"guitar_box.add(B);\n"
+"guitar_box.add(e);\n"
+"\n"
+"guitarwindow.add(guitar_box);\n"
+"\n"
+"guitar_box.show_all();\n"
+"guitarwindow.show();\n"
+"Gtk.main();"
+
+#: C/guitar-tuner.js.page:229(section/title)
+msgid "Running the application form Terminal"
+msgstr "ÎÎÏÎÎÎÏÎ ÏÎÏ ÎÏÎÏÎÎÎÎÏ ÎÏÏ ÏÎÏÎÎÏÎÎÏ"
+
+#: C/guitar-tuner.js.page:230(section/p)
+msgid ""
+"To run this application open Terminal, go to the folder where your "
+"application is stored and then run"
+msgstr ""
+"ÎÎÎ ÎÎ ÏÏÎÎÎÏÎ ÎÏÏÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ ÎÎÎÎÎÏÎ ÏÎÎ ÏÎÏÎÎÏÎÎÏ, ÏÎÎÎÎÎÎÏÎ ÏÏÎÎ "
+"ÏÎÎÎÎÎ ÏÏÎÏ ÎÎÎÎÎ ÎÏÎÎÎÎÎÏÎÎÎÎ Î ÎÏÎÏÎÎÎÎ ÏÎÏ ÎÎÎ ÎÎÏÎ ÏÏÎÎÏÎ ÏÎÎ"
+
+#: C/guitar-tuner.js.page:230(section/screen)
+#, no-wrap
+msgid " <output style=\"prompt\">$ </output><input> GJS_PATH=`pwd` gjs guitarTuner.js</input> "
+msgstr " <output style=\"prompt\">$ </output><input> GJS_PATH=`pwd` gjs guitarTuner.js</input> "
+
+#: C/guitar-tuner.js.page:235(section/p)
+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 ""
+"ÎÎ ÎÎÏÎÎÎÏÏÏÎÏÎÏÎ ÏÏÎÎÎÎÎÎÏÎ ÎÎ ÏÎ ÎÎÎÎÎÎ, ÏÏÎÎÏÎÎÎÏÎ ÏÎÎ ÎÏÎÎÎÎ ÏÎÏ ÎÎ "
+"ÎÏÏÏÎ ÏÎÎ <link href=\"guitar-tuner/guitar-tuner.js\">ÎÏÎÎÎÎ ÎÎÎÏÎÏÎÏ</link>."
+
+#: C/guitar-tuner.py.page:7(info/title)
+msgctxt "text"
+msgid "Guitar Tuner (Python)"
+msgstr "ÎÏÎÏÎÎÎÏÏÎÏ ÎÎÎÎÏÎÏ (Python)"
+
+#: C/guitar-tuner.py.page:35(item/p)
+msgid "Basic knowledge of the Python programming language"
+msgstr "ÎÎÏÎÎÎ ÎÎÏÏÎ ÏÎÏ ÎÎÏÏÏÎÏ ÏÏÎÎÏÎÎÎÎÏÎÏÎÎÏ Python"
+
+#: C/guitar-tuner.py.page:49(item/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 ""
+"ÎÏÎÎÎÎÏÎ <gui>PyGTK (automake)</gui> ÎÏÏ ÏÎÎ ÎÎÏÏÎÎÎ <gui>Python</gui>, "
+"ÏÎÏÎÏÏÎ <gui>ÏÏÎÎÏÎÎÎ</gui> ÎÎÎ ÏÏÎÏÎÎÏÏÏÏÎ ÏÎÏ ÎÎÏÏÎÎÎÏÎÎÎÏ ÏÎÏ ÏÏÎÏ "
+"ÎÏÏÎÎÎÎÏ ÎÎÎÎÏ ÏÎÎÎÎÎÏ. ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ ÏÏ ÏÎÎÎÎ ÏÎÏ ÎÏÎÎÏ ÎÎÎ ÏÎÏ ÎÎÏÎÎÏÎÎÏ "
+"ÏÎ <file>guitar-tuner</file>."
+
+#: C/guitar-tuner.py.page:52(item/p)
+msgid ""
+"Click <gui>Apply</gui> and the project will be created for you. Open "
+"<file>src/guitar_tuner.py</file> from the <gui>Project</gui> or <gui>File</"
+"gui> tabs. You should see some code which starts with the lines:"
+msgstr ""
+"ÎÎÏÎÏÏÎ <gui>ÎÏÎÏÎÎÎÎ</gui> ÎÎÎ ÏÎ ÎÏÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎÎÎÎ. ÎÎÎÎÎÏÎ <file>src/"
+"guitar_tuner.py</file> ÎÏÏ ÏÎÏ ÎÎÏÏÎÎÎÏ <gui>ÎÏÎÎ</gui> Î <gui>ÎÏÏÎÎÎ</gui>. "
+"ÎÎ ÏÏÎÏÎÎ ÎÎ ÎÎÎÏÎ ÎÎÏÎÎÎ ÎÏÎÎÎÎ ÏÎÏ ÎÎÎÎÎÎÎÎ ÎÎ ÏÎÏ ÎÏÎÎÎÎÏ:"
+
+#: C/guitar-tuner.py.page:53(item/code)
+#, no-wrap
+msgid ""
+"\n"
+"from gi.repository import Gtk, GdkPixbuf, Gdk\n"
+"import os, sys"
+msgstr ""
+"\n"
+"from gi.repository import Gtk, GdkPixbuf, Gdk\n"
+"import os, sys"
+
+#: C/guitar-tuner.py.page:61(section/title)
+msgid "Run the code for the first time"
+msgstr "ÎÎÏÎÎÎÏÎ ÏÎÏ ÎÏÎÎÎÎ ÎÎÎ ÏÏÏÏÎ ÏÎÏÎ"
+
+#: C/guitar-tuner.py.page:62(section/p)
+msgid ""
+"Most of the code in the file is template code. It loads an (empty) window "
+"from the user interface description file and shows it. More details are "
+"given below; skip this list if you understand the basics:"
+msgstr ""
+"Î ÏÎÏÎÏÏÏÏÎÏÎÏ ÎÏÎÎÎÎÏ ÏÏÎ ÎÏÏÎÎÎ ÎÎÎÎÎ ÏÏÏÏÏÏÎ ÎÏÎÎÎÎ. ÎÎÏÏÏÎÎÎ ÎÎÎ (ÎÎÎÏ) "
+"ÏÎÏÎÎÏÏÎ ÎÏÏ ÏÎ ÎÏÏÎÎÎ ÏÎÏÎÎÏÎÏÎÏ ÏÎÏ ÎÎÎÏÎÏÎÏ ÏÏÎÏÏÎ ÎÎÎ ÏÎ ÎÎÏÎÎÎÎÎÎ. "
+"ÎÎÏÎÏÏÏÏÎÏÎÏ ÏÎÎÏÎÏÎÏÎÎÏ ÏÏÎÏÏÎÏÎ ÏÎÎ ÎÎÏÏÂ ÏÏÎÏÏÎÏÎÏÏÎ ÎÏÏÎ ÏÎ ÎÎÏÏÎ ÎÎ "
+"ÎÎÏÎÎÎÎÎÎÎÎÏÎ ÏÎ ÎÎÏÎÎÎ:"
+
+#: C/guitar-tuner.py.page:66(item/p)
+msgid ""
+"The <code>import</code> lines at the top include the tell Python to load the "
+"user interface and system libraries needed."
+msgstr ""
+"ÎÎ ÎÏÎÎÎÎÏ <code>import</code> ÏÏÎÎ ÎÏÏÎ ÎÎÎÎ ÏÏÎÎ Python ÎÎ ÏÎÏÏÏÏÎÎ ÏÎÏ "
+"ÎÎÎÎÎÎÎÎÎÎÏ ÏÎÏ ÏÏÏÏÎÎÎÏÎÏ ÎÎÎ ÏÎÏ ÎÎÎÏÎÏÎÏ ÏÏÎÏÏÎ ÏÎÏ ÏÏÎÎÎÎÎÎÏÎÎ."
+
+#: C/guitar-tuner.py.page:70(item/p)
+msgid ""
+"A class is declared that will be the main class for our application. In the "
+"<code>__init__</code> method the main window is loaded from the GtkBuilder "
+"file (<file>src/guitar-tuner.ui</file>) and the signals are connected."
+msgstr ""
+"ÎÎÎ ÎÎÎÏÎ ÎÎÎÏÎÎÏÎÎ ÏÏÎ ÎÎ ÎÎÎÎÎ Î ÎÏÏÎÎ ÎÎÎÏÎ ÎÎÎ ÏÎ ÏÏÏÎÏÎÎÎÎ ÎÎÏ. ÎÏÎÎ "
+"ÎÎÎÎÎÎ <code>__init__</code> ÏÎ ÎÏÏÎÎ ÏÎÏÎÎÏÏÎ ÏÎÏÏÏÎÎÏÎÎ ÎÏÏ ÏÎ ÎÏÏÎÎÎ "
+"GtkBuilder (<file>src/guitar-tuner.ui</file>) ÎÎÎ ÏÎ ÏÎÎÎÏÎ ÏÏÎÎÎÎÎÏÎÎ."
+
+#: C/guitar-tuner.py.page:73(item/p)
+msgid ""
+"Connecting signals is how you define what happens when you push a button, or "
+"when some other event happens. Here, the <code>destroy</code> method is "
+"called (and quits the app) when you close the window."
+msgstr ""
+"ÎÏÎÎÎÎÎÏÎÏ ÏÎÎÎÏÎ ÎÎÏÏÎ ÏÎ ÎÎÏÎ ÎÎ ÎÎÎÎÏÎÎÎÏÎ ÏÎ ÎÎ ÏÏÎÎÎÎ ÏÏÎÎ ÎÎÎ ÎÎÏÎÏÎ "
+"ÏÎÏÎÎÎÎ, Î ÏÏÎÎ ÏÏÎÎÎÎ ÎÎÏÎÎÎ ÎÎÎÎ ÏÎÎÎ. ÎÎÏ, ÎÎÎÎÎÏÎÎ Î ÎÎÎÎÎÎÏ "
+"<code>destroy</code> ÏÏÎÎ ÎÎÎÎÎÎÏÎ ÏÎ ÏÎÏÎÎÏÏÎ (ÎÎÎ ÏÎÏÎÎÏÎÎÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ)."
+
+#: C/guitar-tuner.py.page:76(item/p)
+msgid ""
+"The <code>main</code> function is run by default when you start a Python "
+"application. It just creates an instance of the main class and starts the "
+"main loop to bring up the window."
+msgstr ""
+"Î ÏÏÎÎÏÏÎÏÎ <code>main</code> ÎÎÏÎÎÎÎÏÎÎ ÏÏÎÎÎÎÎÏÎÏÎÎÎÎ ÎÏÎÎÏ ÏÏÎÎÎÏÎ ÎÎÎ "
+"ÏÏÏÎÏÎÎÎÎ ÏÎ Python. ÎÎÎÎÎÏÏÎÎÎ ÎÎÎ ÏÏÎÎÎÎÏÏÏÏÎ ÏÎÏ ÎÏÏÎÎÏ ÎÎÎÏÎÏ ÎÎÎ "
+"ÎÎÎÎÎÎÎÎ ÏÎÎ ÎÏÏÎÎ ÎÏÏÏÎ ÎÎÎ ÎÎ ÎÎÏÎÎÎÏÎÎ ÏÎ ÏÎÏÎÎÏÏÎ."
+
+#: C/guitar-tuner.py.page:81(section/p)
+msgid ""
+"This code is ready to be used, so you can run it by clicking "
+"<guiseq><gui>Run</gui><gui>Execute</gui></guiseq>."
+msgstr ""
+"Î ÎÏÎÎÎÎÏ ÎÎÎÎÎ ÎÏÎÎÎÎÏ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÎÎ, ÎÏÏÏÎ ÎÏÎÏÎÎÏÎ ÎÎ ÏÎÎ ÎÎÏÎÎÎÏÎÏÎ "
+"ÏÎÎÎÎÎÎÎÏÎÏ <guiseq><gui>ÎÎÏÎÎÎÏÎ</gui><gui>ÎÎÏÎÎÎÏÎ</gui></guiseq>."
+
+#: C/guitar-tuner.py.page:86(section/p)
+msgid ""
+"A description of the user interface (UI) is contained in the GtkBuilder "
+"file. To edit the user interface, open <file>src/guitar_tuner.ui</file>. "
+"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 ""
+"ÎÎÎ ÏÎÏÎÎÏÎÏÎ ÏÎÏ ÎÎÎÏÎÏÎÏ ÏÏÎÏÏÎ (UI) ÏÎÏÎÎÏÎÏÎÎ ÏÏÎ ÎÏÏÎÎÎ GtkBuilder. ÎÎÎ "
+"ÎÎ ÎÏÎÎÎÏÎÎÏÏÎÎÏÎ ÏÎ ÎÎÎÏÎÏÎ ÏÏÎÏÏÎ, ÎÎÎÎÎÏÎ ÏÎ <file>src/guitar_tuner.ui</"
+"file>. ÎÎ ÎÏÎÎÎÎÏÎ ÏÏÎ ÏÏÎÎÎÎÏÏÎ ÎÎÎÏÎÏÎÏ. ÎÎ ÏÎÏÎÎÏÏÎ ÏÏÎÎÎÎÏÎÏ ÎÎÎÎÎ ÏÏÎ "
+"ÎÎÎÏÏÎÂ ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÎ ÎÎ ÎÎÎÏÏÎÏÎÏ ÏÎÏÏ ÎÎÎÎÎ ÏÏÎ ÎÎÎÎÎ ÎÎÎ Î "
+"ÏÎÎÎÏÎ ÏÏÎ ÎÎÎÎÎÏÎÎÏÎ ÎÏÎÏÎÎÏÎ ÏÏÏÏÎÏÎÎÏÎ ÏÏÎ ÎÏÎÏÏÎÏÎ."
+
+#: C/guitar-tuner.py.page:116(section/title)
+msgid "Write the signal handler"
+msgstr "ÎÎÎÏÎÏÎ ÏÎÏ ÏÎÎÏÎÏÏÎ ÏÎÎÎÏÏÎ"
+
+#: C/guitar-tuner.py.page:118(section/p)
+msgid ""
+"To do this, open <file>guitar_tuner.py</file> while the user interface file "
+"is still open. Switch to the <gui>Signals</gui> tab, which you already used "
+"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 ""
+"ÎÎÎ ÎÎ ÏÎ ÎÎÎÎÏÎ ÎÏÏÏ, ÎÎÎÎÎÏÎ ÏÎ <file>guitar_tuner.py</file>, ÎÏÎÎÏÎÏ "
+"ÎÎÎÎÏÏÏ ÎÎÎ ÏÎ ÎÏÏÎÎÎ ÏÎÏ ÎÎÎÏÎÏÎÏ ÏÏÎÏÏÎ. ÎÎÎÎÎÎÎÏÎ ÏÏÎÎ ÎÎÏÏÎÎÎ "
+"<gui>ÏÎÎÎÏÎ</gui> ÏÎÏ ÎÎÏÎÏÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÎÎÎ ÎÎ ÎÏÎÏÎÏÎ ÏÎ ÏÎÎÎÎ ÏÎÏ "
+"ÏÎÎÎÏÎÏ. ÎÏÏÎ ÏÎÏÏÎ ÏÎÎ ÎÏÎÎÎÎ ÏÏÎÏ ÎÏÎÏÎÏÎ ÏÎ ÏÎÎÎ <gui>clicked</gui> ÎÎÎ "
+"ÏÏÏÎÏÎ ÏÎÎ ÏÏÎÎ ÏÎÎÎÎÎ ÎÏÎÎÎÎ ÎÎÏÎ ÏÏÎÎ ÎÎÎÏÎ. Î ÎÎÏÎÎÏÎÎÏ ÎÏÎÎÎÎÏ ÎÎ "
+"ÏÏÎÏÏÎÎÎÎ ÏÏÎÎ ÏÎÎÎÎÎ ÏÎÏ ÎÏÏÎÎÎ:"
+
+#: C/guitar-tuner.py.page:120(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"def on_button_clicked (self, button):\n"
+msgstr ""
+"\n"
+"def on_button_clicked (self, button):\n"
+
+#: C/guitar-tuner.py.page:124(section/p)
+msgid ""
+"This signal handler has two arguments: the usual Python class pointer, and "
+"the <code>Gtk.Button</code> that called the function."
+msgstr ""
+"Î ÏÎÎÏÎÏÏÎÏ ÏÎÎÎÏÏÎ ÎÏÎÎ ÎÏÎ ÏÎÏÎÎÎÏÏÎÏÏ: ÏÎÎ ÏÏÏÎÎÏ ÎÎÎÎÏÎ ÎÎÎÏÎÏ ÏÎÏ "
+"Python ÎÎÎ ÏÎ <code>Gtk.Button</code> ÏÎÏ ÎÎÎÎÎ ÏÎÎ ÏÏÎÎÏÏÎÏÎ."
+
+#: C/guitar-tuner.py.page:142(section/p)
+msgid ""
+"Change the import line in <file>guitar_tuner.py</file>, just at the "
+"beginning to :"
+msgstr ""
+"ÎÎÎÎÎÏÎ ÏÎ ÎÏÎÎÎÎ import ÏÏÎ ÎÏÏÎÎÎ <file>guitar_tuner.py</file>, ÎÏÎÎ ÏÏÎÎ "
+"ÎÏÏÎ ÏÎ :"
+
+#: C/guitar-tuner.py.page:143(section/code)
+#, no-wrap
+msgid "from gi.repository import Gtk, Gst, GObject "
+msgstr "from gi.repository import Gtk, Gst, GObject "
+
+#: C/guitar-tuner.py.page:144(section/p)
+msgid ""
+"The <code>Gst</code> includes the GStreamer library. You also need to "
+"initialise GStreamer properly which is done in the <code>main()</code> "
+"method with this call added above the <code>app = GUI()</code> line:"
+msgstr ""
+"ÎÎ <code>Gst</code> ÏÎÏÎÎÏÎÎ ÏÎ ÎÎÎÎÎÎÎÎÎÎ GStreamer. ÎÏÎÏÎÏ ÏÏÎÏÎÎ ÎÎ "
+"ÎÏÏÎÎÎÏÎÎÎÏÎÏÎ ÏÏÏÏÎ ÏÎ GStreamer ÏÎ ÎÏÎÎÎ ÎÎÎÎÏÎÎ ÏÏÎ ÎÎÎÎÎÎ <code>main()</"
+"code> ÎÎ ÏÎÎ ÏÏÎÏÎÎÎÎ ÎÏÏÎÏ ÎÏÎÎÎÎÏ ÏÎÎÏ ÎÏÏ ÏÎÎ ÎÏÎÎÎÎ <code>app = GUI()</"
+"code>:"
+
+#: C/guitar-tuner.py.page:147(section/code)
+#, no-wrap
+msgid "Gst.init_check(sys.argv)"
+msgstr "Gst.init_check(sys.argv)"
+
+#: C/guitar-tuner.py.page:148(section/p)
+msgid ""
+"Then, copy the following function into the class in <file>guitar_tuner.py</"
+"file> somewhere:"
+msgstr ""
+"ÎÎÏÎ, ÎÎÏÎÎÏÎÏÏÎ ÏÎÎ ÎÎÏÎÎÏÎÎ ÏÏÎÎÏÏÎÏÎ ÎÎÏÎÏ ÏÏÎÎ ÎÎÎÏÎ ÏÏÎ "
+"<file>guitar_tuner.py</file>:"
+
+#: C/guitar-tuner.py.page:149(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"def play_sound(self, frequency):\n"
+"\tpipeline = Gst.Pipeline(name='note')\n"
+"\tsource = Gst.ElementFactory.make('audiotestsrc', 'src')\n"
+"\tsink = Gst.ElementFactory.make('autoaudiosink', 'output')\n"
+"\n"
+"\tsource.set_property('freq', frequency)\n"
+"\tpipeline.add(source)\n"
+"\tpipeline.add(sink)\n"
+"\tsource.link(sink)\n"
+"\tpipeline.set_state(Gst.State.PLAYING)\n"
+"\n"
+"\tGObject.timeout_add(self.LENGTH, self.pipeline_stop, pipeline)"
+msgstr ""
+"\n"
+"def play_sound(self, frequency):\n"
+"\tpipeline = Gst.Pipeline(name='note')\n"
+"\tsource = Gst.ElementFactory.make('audiotestsrc', 'src')\n"
+"\tsink = Gst.ElementFactory.make('autoaudiosink', 'output')\n"
+"\n"
+"\tsource.set_property('freq', frequency)\n"
+"\tpipeline.add(source)\n"
+"\tpipeline.add(sink)\n"
+"\tsource.link(sink)\n"
+"\tpipeline.set_state(Gst.State.PLAYING)\n"
+"\n"
+"\tGObject.timeout_add(self.LENGTH, self.pipeline_stop, pipeline)"
+
+#: C/guitar-tuner.py.page:164(item/p)
+msgid ""
+"The first three lines create source and sink GStreamer elements and a "
+"pipeline element (which will be used as a container for the other two "
+"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 ""
+"ÎÎ ÏÏÎÎÏ ÏÏÏÏÎÏ ÎÏÎÎÎÎÏ ÎÎÎÎÎÏÏÎÎÏÎ ÏÎ ÏÏÎÎÏÎÎÎ ÏÎÎÎ, ÎÎÎÎÎÏ ÎÎÎ ÎÎÎÏÎÏÎÏÏÎ "
+"(ÏÎ ÎÏÎÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÎÎ ÏÎÎ ÏÏÎÎÎÏÎÎÏ ÎÎÎ ÏÎ ÎÏÎ ÎÎÎÎ ÏÏÎÎÏÎÎÎ). ÎÎÎÎÏÎÎ "
+"ÏÎ ÏÎÎÎÎ \"note\" ÏÏÎ ÎÎÎÏÎÏÎÏÏÎÂ ÎÎÎÎÎÎÎÏÎÎ ÏÎÎ ÏÎÎÎ \"source\" ÎÎÎ ÏÎ "
+"ÏÏÎÎÎÎÎÏÎ ÏÏÎÎ ÏÎÎÎ <code>audiotestsrc</code>Â ÎÎÎ ÎÎÎÎÎÎÎÏÎÎ ÏÎÎ ÎÎÎÎÎ "
+"\"output\" ÎÎÎ ÏÎÎ ÏÏÎÎÎÎÎÏÎ ÏÏÎÎ ÎÎÎÎÎ <code>autoaudiosink</code> "
+"(ÏÏÎÎÏÎÎÎÎÎÎÎÎ ÎÎÏÏÎ ÎÏÎÏ)."
+
+#: C/guitar-tuner.py.page:167(item/p)
+msgid ""
+"The call to <code>source.set_property</code> sets the <code>freq</code> "
+"property of the source element to <code>frequency</code>, which was passed "
+"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 ""
+"ÎÎ ÎÎÎÎÏÎÎ ÏÎÏ <code>source.set_property</code> ÎÏÎÎÎÎ ÏÎÎ ÎÎÎÏÏÎÏÎ "
+"<code>freq</code> ÏÎÏ ÏÏÎÎÏÎÎÎÏ ÏÎÎÎ ÏÎ <code>frequency</code>, Î ÎÏÎÎÎ ÎÏÎÎ "
+"ÏÎÏÎÏÏÎÎ ÏÎÎ ÏÎÏÎÎÎÏÏÎÏ ÏÏÎ ÏÏÎÎÏÏÎÏÎ <code>play_sound</code>. ÎÏÏÎ ÎÎÎÎÎ Î "
+"ÏÏÏÎÏÏÎÏÎ ÏÎÏ ÎÏÏÎÏ ÏÎ Hertz ÏÎÎÎÎÏ ÏÏÎÏÎÎÎÏ ÏÏÏÎÏÏÎÏÎÏ ÎÎ ÎÏÎÏÏÎÏÎ "
+"ÎÏÎÏÏÎÏÎ."
+
+#: C/guitar-tuner.py.page:170(item/p)
+msgid ""
+"The next two lines call <code>pipeline.add</code>, putting the source and "
+"sink into the pipeline. The pipeline can contain multiple other GStreamer "
+"elements. In general, you can add as many elements as you like to the "
+"pipeline by calling its <code>add</code> method repeatedly."
+msgstr ""
+"ÎÎ ÎÏÏÎÎÎÎÏ ÎÏÎ ÎÏÎÎÎÎÏ ÎÎÎÎÏÎ ÏÎ <code>pipeline.add</code>, ÎÎÎÎÎÏÎÏ ÏÎÎ "
+"ÏÎÎÎ ÎÎÎ ÏÎÎ ÎÎÎÎÎ ÏÏÎ ÎÎÎÏÎÏÎÏÏÎ. Î ÎÎÎÏÎÏÎÏÏÎ ÎÏÎÏÎÎ ÎÎ ÏÎÏÎÎÏÎÎ ÎÎÎÏÎÏÎ "
+"ÏÏÎÎÏÎÎÎ ÏÎÏ GStreamer. ÎÎÎÎÎÎ, ÎÏÎÏÎÎÏÎ ÎÎ ÏÏÎÏÎÎÏÎÏÎ ÏÏÎ ÏÏÎÎÏÎÎÎ ÎÎÎÎÏÎ "
+"ÏÏÎ ÎÎÎÏÎÏÎÏÏÎ ÎÎÎÏÎÏÎÏ ÏÏÎÎÏÏÎÎÎÎ ÏÎ ÎÎÎÎÎÎ <code>add</code>."
+
+#: C/guitar-tuner.py.page:173(item/p)
+msgid ""
+"Next <code>pipeline.set_state</code> is used to start playback, by setting "
+"the state of the pipeline to playing (<code>Gst.State.PLAYING</code>)."
+msgstr ""
+"ÎÎÏÎ Î <code>pipeline.set_state</code> ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÎÎÎ ÎÎ ÎÎÎÎÎÎÏÎÎ Î "
+"ÎÎÎÏÎÏÎÎÏÎÎ, ÎÎÎÎÎÎÎÏÎÏ ÏÎÎ ÎÎÏÎÏÏÎÏÎ ÏÎÏ ÎÎÎÏÎÏÎÏÏÎÏ ÏÎ ÎÎÎÏÎÏÎÎÏÎÎ "
+"(<code>Gst.State.PLAYING</code>)."
+
+#: C/guitar-tuner.py.page:181(section/p)
+msgid ""
+"We don't want to play an annoying tone forever, so the last thing "
+"<code>play_sound</code> does is to call <code>GObject.timeout_add</code>. "
+"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 ""
+"ÎÎÎ ÎÎÎÎÏÎÎ ÎÎ ÏÎÎÎÎÏÎÎ ÎÎÎÎ ÎÎÎÏÎÎÏÎÎÏ ÎÏÎ ÎÎÎ ÏÎÎÏÎ, ÎÏÏÏÎ ÏÎ ÏÎÎÎÏÏÎÎÎ "
+"ÏÏÎÎÎÎ ÏÎÏ ÎÎÎÎÎ Î <code>play_sound</code> ÎÎÎÎÎ ÎÎ ÎÎÎÎÎ ÏÎ <code>GObject."
+"timeout_add</code>. ÎÏÏÏ ÎÏÎÎÎÎ ÎÎÎ ÏÏÎÎÎÎÏ ÏÎÏÎÎÏÏÎÎ ÏÎÏ ÎÎ ÏÏÎÎÎÏÎÏÎÎ ÏÎÎ "
+"ÎÏÎÂ ÏÎÏÎÎÎÎÎÎ ÎÎÎ <code>LENGTH</code> ÏÎÎÎÎÏÏÎ ÏÎÏ ÎÎÏÏÎÏÎÎÎÏÏÎÏ ÏÏÎÎ "
+"ÎÎÎÎÏÎÎ ÏÎ ÏÏÎÎÏÏÎÏÎ <code>pipeline_stop</code>, ÎÎÎ ÎÎ ÏÏÎÎÏÎÏÎÎ ÎÎ ÏÎÎ "
+"ÎÎÎÎÎ ÎÎÏÏÎ Î <code>pipeline_stop</code> ÎÎ ÎÏÎÏÏÏÎÏÎÎ <code>False</code>."
+
+#: C/guitar-tuner.py.page:182(section/p)
+msgid ""
+"Now, we'll write the <code>pipeline_stop</code> function which is called by "
+"<code>GObject.timeout_add</code>. Insert the following code <em>above</em> "
+"the <code>play_sound</code> function:"
+msgstr ""
+"ÎÏÏÎ ÎÎ ÎÏÎÏÎÏÎÎ ÏÎ ÏÏÎÎÏÏÎÏÎ <code>pipeline_stop</code>, Î ÎÏÎÎÎ ÎÎÎÎÎÏÎÎ "
+"ÎÏÏ ÏÎ <code>GObject.timeout_add</code>. ÎÏÎÏÎÎÏÏÎ ÏÎÎ ÎÎÏÎÎÏÎÎ ÎÏÎÎÎÎ "
+"<em>ÏÎÎÏ</em> ÎÏÏ ÏÎ ÏÏÎÎÏÏÎÏÎ <code>play_sound</code>:"
+
+#: C/guitar-tuner.py.page:183(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"def pipeline_stop(self, pipeline):\n"
+"\tpipeline.set_state(Gst.State.PAUSED)\n"
+"\treturn False\n"
+msgstr ""
+"\n"
+"def pipeline_stop(self, pipeline):\n"
+"\tpipeline.set_state(Gst.State.PAUSED)\n"
+"\treturn False\n"
+
+#: C/guitar-tuner.py.page:188(section/p)
+msgid ""
+"You need to define the <code>LENGTH</code> constant inside the class, so add "
+"this code at the beginning of the main class:"
+msgstr ""
+"ÎÏÎÏÎÎ ÎÎ ÎÏÎÏÎÏÎ ÏÎ ÏÏÎÎÎÏÎ <code>LENGTH</code> ÎÎÏÎ ÏÏÎÎ ÎÎÎÏÎ, ÎÏÏÏÎ "
+"ÏÏÎÏÎÎÏÏÎ ÎÏÏÏÎ ÏÎÎ ÎÏÎÎÎÎ ÏÏÎÎ ÎÏÏÎ ÏÎÏ ÎÏÏÎÎÏ ÎÎÎÏÎÏ:"
+
+#: C/guitar-tuner.py.page:190(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"LENGTH = 500\n"
+msgstr ""
+"\n"
+"LENGTH = 500\n"
+
+#: C/guitar-tuner.py.page:193(section/p)
+msgid ""
+"The call to <code>pipeline.set_state</code> pauses the playback of the "
+"pipeline."
+msgstr ""
+"ÎÏÎÎ ÎÎÎÎÎÏÎÎ Î <code>pipeline.set_state</code> Î ÎÎÎÏÎÏÎÎÏÎÎ ÏÎÏ "
+"ÎÎÎÏÎÏÎÏÏÎÏ ÏÏÎÎÎÏÎÎÎ."
+
+#: C/guitar-tuner.py.page:198(section/p)
+msgid ""
+"We want to play the correct sound when the user clicks a button. First of "
+"all, we need to know the frequencies for the six guitar strings, which are "
+"defined (at the beginning of the main class) inside a dictionary so we can "
+"easily map them to the names of the strings:"
+msgstr ""
+"ÎÎÎÎÏÎÎ ÎÎ ÏÎÎÎÎÏÎÎ ÏÎ ÏÏÏÏÏ ÎÏÎ ÏÏÎÎ Î ÏÏÎÏÏÎÏ ÏÎÏÎÎÎ ÎÎÎ ÎÎÏÎÏÎ. ÎÏÏÏÎ ÎÏÏ "
+"ÏÎÎ, ÏÏÎÎÎÎÏÎÎÏÏÎ ÎÎ ÎÎÏÎÏÎÎ ÏÎÏ ÏÏÏÎÏÏÎÏÎÏ ÎÎÎ ÏÎÏ ÎÎÎ ÏÎÏÎÎÏ ÏÎÏ ÎÎÎÎÏÎÏ, "
+"ÎÎ ÎÏÎÎÎÏ ÎÎÎÎÎ ÎÏÎÏÎÎÎÎÏ (ÏÏÎÎ ÎÏÏÎ ÏÎÏ ÎÏÏÎÎÏ ÎÎÎÏÎÏ) ÎÎÏÎ ÏÎ ÎÎÎ ÎÎÎÎÎÏ "
+"ÏÏÏÎ ÎÎ ÎÏÎÏÎÏÎÎ ÎÏÎÎÎÎ ÎÎ ÏÎÏ ÎÏÎÎÎÎÎÎÏÎÏÎÎ ÏÏÎ ÎÎÏÎÎÏÎ ÏÏÎ ÏÎÏÎÏÎ:"
+
+#: C/guitar-tuner.py.page:200(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"# Frequencies of the strings\n"
+"frequencies = {\n"
+"\t'E': 329.63,\n"
+"\t'A': 440,\n"
+"\t'D': 587.33,\n"
+"\t'G': 783.99,\n"
+"\t'B': 987.77,\n"
+"\t'e': 1318.5\n"
+"}\n"
+msgstr ""
+"\n"
+"# Frequencies of the strings\n"
+"frequencies = {\n"
+"\t'E': 329.63,\n"
+"\t'A': 440,\n"
+"\t'D': 587.33,\n"
+"\t'G': 783.99,\n"
+"\t'B': 987.77,\n"
+"\t'e': 1318.5\n"
+"}\n"
+
+#: C/guitar-tuner.py.page:212(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"def on_button_clicked(self, button):\n"
+"\tlabel = button.get_child()\n"
+"\ttext = label.get_label()\n"
+"\n"
+"\tself.play_sound (self.frequencies[text])\n"
+msgstr ""
+"\n"
+"def on_button_clicked(self, button):\n"
+"\tlabel = button.get_child()\n"
+"\ttext = label.get_label()\n"
+"\n"
+"\tself.play_sound (self.frequencies[text])\n"
+
+#: C/guitar-tuner.py.page:219(section/p)
+msgid ""
+"The button that was clicked is passed as an argument (<code>button</code>) "
+"to <code>on_button_clicked</code>. We can get the label of that button by "
+"using <code>button.get_child</code>, and then get the text from that label "
+"using <code>label.get_label</code>."
+msgstr ""
+"ÎÎ ÎÎÏÎÏÎ ÏÎÏ ÏÎÏÎÎÎÎÎ ÏÎÏÎÎÎÎ ÏÎÎ ÏÎÏÎÎÎÏÏÎÏ (<code>button</code>) ÏÏÎ "
+"<code>on_button_clicked</code>. ÎÏÎÏÎÏÎÎ ÎÎ ÏÎÏÎÏÎÎ ÏÎÎ ÎÏÎÎÎÏÎ ÏÎÏ ÎÎÏÎÏÎÎÏ "
+"ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ <code>button.get_child</code>, ÎÎÎ ÏÎ ÎÎÎÎÎÎÎ ÎÏÏ ÏÎÎ "
+"ÎÏÎÎÎÏÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ <code>label.get_label</code>."
+
+#: C/guitar-tuner.py.page:220(section/p)
+msgid ""
+"The label text is then used as a key for the dictionary and "
+"<code>play_sound</code> is called with the frequency appropriate for that "
+"note. This plays the tone; we have a working guitar tuner!"
+msgstr ""
+"ÎÎ ÎÎÎÎÎÎÎ ÏÎÏ ÎÏÎÎÎÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÏÎÎ ÎÎÎÎÎÎ ÎÎÎ ÏÎ ÎÎÎÎÎÏ ÎÎÎ "
+"ÎÎÎÎÎÏÎÎ Î <code>play_sound</code> ÎÎ ÏÎÎ ÎÎÏÎÎÎÎÎÎ ÏÏÏÎÏÏÎÏÎ ÎÏÏ ÏÎÎ ÎÏÏÎ. "
+"ÎÏÏÏ ÏÎÎÎÎÎ ÏÎÎ ÏÏÎÎÂ Î ÏÏÎÏÎÎÎÏÏÎÏ ÎÎÎÎÏÎÏ ÎÎÎÎÎ ÎÏÎÎÎÎÏ!"
+
+#: C/guitar-tuner.py.page:224(section/title)
+#: C/image-viewer.js.page:306(section/title)
+#: C/image-viewer.py.page:220(section/title)
+#: C/record-collection.js.page:286(section/title)
+msgid "Run the application"
+msgstr "ÎÏÎÎÏÎ ÏÎÎ ÎÏÎÏÎÎÎÎ"
+
+#: C/guitar-tuner.py.page:225(section/p)
+msgid ""
+"All of the code should now be ready to go. Click <guiseq><gui>Run</"
+"gui><gui>Execute</gui></guiseq> to start the application. Enjoy!"
+msgstr ""
+"ÎÎ ÏÏÏÎÏÎÎÎÎ ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎ ÎÏÎÎÎÎ ÏÏÏÎ. ÎÎÎ ÎÎ ÎÎÎÎÎÎÏÎÏÎ ÏÎ ÏÏÏÎÏÎÎÎÎ "
+"ÏÎÏÎÏÏÎ <guiseq><gui>ÎÎÏÎÎÎÏÎ</gui><gui>ÎÎÏÎÎÎÏÎ</gui></guiseq>. ÎÏÎÎÎÏÏÏÎ "
+"ÏÎ!"
+
+#: C/guitar-tuner.py.page:230(section/p)
+msgid ""
+"If you run into problems with the tutorial, compare your code with this "
+"<link href=\"guitar-tuner/guitar-tuner.py\">reference code</link>."
+msgstr ""
+"ÎÎ ÎÎÏÎÎÎÏÏÏÎÏÎÏÎ ÏÏÎÎÎÎÎÎÏÎ ÎÎ ÏÎ ÎÎÎÎÎÎ, ÏÏÎÎÏÎÎÎÏÎ ÏÎÎ ÎÏÎÎÎÎ ÏÎÏ ÎÎ "
+"ÎÏÏÏÎ ÏÎÎ <link href=\"guitar-tuner/guitar-tuner.py\">ÎÏÎÎÎÎ ÎÎÎÏÎÏÎÏ</link>."
+
+#: C/guitar-tuner.vala.page:9(info/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 ""
+"ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ <link href=\"http://developer.gnome.org/platform-overview/";
+"stable/gtk\">Gtk+</link> ÎÎÎ <link href=\"http://developer.gnome.org/";
+"platform-overview/stable/gstreamer\">GStreamer</link> ÎÎÎ ÎÎ ÏÏÎÎÎÎÏÎ ÎÎÎ "
+"ÎÏÎÏ ÏÏÏÎÏÎÎÎÎ ÏÏÎÎÎÏÏÎ ÎÎÎÎÏÎÏ ÎÎÎ ÏÎ GNOME. ÎÎÎÎÎÎÎÎÏÎÎ ÏÏÏ ÎÎ "
+"ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÏÎ ÏÏÎÎÎÎÏÏÎ ÎÎÎÏÎÏÎÏ."
+
+#: C/guitar-tuner.vala.page:29(synopsis/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 ""
+"ÎÎ ÎÏÏÏ ÏÎ ÎÎÎÎÎÎ, ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ ÎÎÎ ÎÏÎÏÎÎÎÎ ÏÎÏ ÏÎÎÎÎÎ ÏÏÎÎÏÏ ÎÎÎ "
+"ÎÏÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎ ÎÎÎ ÎÎÎÎÏÎ. ÎÎ ÎÎÎÎÏÎ ÏÏÏ ÎÎ:"
+
+#: C/guitar-tuner.vala.page:31(item/p)
+msgid ""
+"Set up a basic project using the <link xref=\"getting-ready\">Anjuta IDE</"
+"link>."
+msgstr ""
+"ÎÎÎÎÏÎÏÏÎÏÎÏÎ ÎÎÎ ÎÎÏÎÎÏ ÎÏÎÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ <link xref=\"getting-ready"
+"\">Anjuta IDE</link>."
+
+#: C/guitar-tuner.vala.page:32(item/p)
+msgid "Create a simple GUI with <app>Anjuta</app>'s UI designer."
+msgstr "ÎÎÎÎÎÏÏÎÎÏÎÏÎ ÎÎÎ ÎÏÎÏ GUI ÎÎ ÏÎÎ ÏÏÎÎÎÎÏÏÎ UI ÏÎÏ <app>Anjuta</app>."
+
+#: C/guitar-tuner.vala.page:33(item/p)
+msgid ""
+"Use the <link href=\"http://developer.gnome.org/platform-overview/stable/";
+"gstreamer\">GStreamer</link> library to play sounds."
+msgstr ""
+"ÎÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÏÎ ÎÎÎÎÎÎÎÎÎÎ <link href=\"http://developer.gnome.org/";
+"platform-overview/stable/gstreamer\">GStreamer</link> ÎÎÎ ÎÎ ÏÎÎÎÎÎ ÎÏÎÏÏ."
+
+#: C/guitar-tuner.vala.page:37(item/p) C/image-viewer.vala.page:42(item/p)
+msgid ""
+"Basic knowledge of the <link href=\"https://live.gnome.org/Vala/Tutorial";
+"\">Vala</link> programming language."
+msgstr ""
+"ÎÎÏÎÎÎ ÎÎÏÏÎ ÏÎÏ ÎÎÏÏÏÎÏ ÏÏÎÎÏÎÎÎÎÏÎÏÎÎÏ <link href=\"https://live.gnome.org/";
+"Vala/Tutorial\">Vala</link>."
+
+#: C/guitar-tuner.vala.page:38(item/p) C/image-viewer.vala.page:43(item/p)
+msgid "An installed copy of <app>Anjuta</app>."
+msgstr "ÎÎÎ ÎÎÎÎÏÎÏÏÎÎÎÎÎ ÎÎÏÎÎÏÎÏÎ ÏÎÏ <app>Anjuta</app>."
+
+#: C/guitar-tuner.vala.page:45(section/title)
+msgid "Create a project in <app>Anjuta</app>"
+msgstr "ÎÎÎÎÎÏÏÎÎÏÏÎ ÎÎÎ ÎÏÎÎ ÎÎ ÏÎ <app>Anjuta</app>"
+
+#: C/guitar-tuner.vala.page:49(item/p) C/image-viewer.vala.page:57(item/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 ""
+"ÎÎÎÎÎÎÏÏÎ ÏÎ <app>Anjuta</app> ÎÎÎ ÏÎÏÎÏÏÎ <gui>ÎÎÎÎÎÏÏÎÎÎ ÎÎÎÏ ÎÏÎÎÏ</gui> "
+"Î <guiseq><gui>ÎÏÏÎÎÎ</gui><gui>ÎÎÎ</gui><gui>ÎÏÎÎ</gui></guiseq> ÎÎÎ ÎÎ "
+"ÎÎÎÎÎÎÏÎ ÏÎÎ ÎÎÎÎÏ ÏÎÏ ÎÏÎÎÏ."
+
+#: C/guitar-tuner.vala.page:52(item/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 ""
+"ÎÎÎÏÎ ÎÎÎÎ ÏÏÎÎ ÎÎÏÏÎÎÎ <gui>Vala</gui> ÎÎÎ ÎÏÎÎÎÎÏÎ <gui>Gtk+ (ÎÏÎÏ)</gui>. "
+"ÎÎÎÎ <gui>ÏÏÎÎÏÎÎÎ</gui> ÎÎÎ ÏÏÎÏÎÎÏÏÏÏÎ ÏÎÏ ÎÎÏÏÎÎÎÏÎÎÎÏ ÏÎÏ ÏÏÎÏ ÎÏÏÎÎÎÎÏ "
+"ÎÎÎÎÏ ÏÎÎÎÎÎÏ. ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ ÏÏ ÏÎÎÎÎ ÏÎÏ ÎÏÎÎÏ ÎÎÎ ÏÎÏ ÎÎÏÎÎÏÎÎÏ ÏÎ "
+"<file>guitar-tuner</file>."
+
+#: C/guitar-tuner.vala.page:55(item/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 ""
+"ÎÎÎÎÎÏÎÎÎÏÎ ÏÏÎ Î <gui>ÏÏÎÎÎÏÎ ÎÎÏÏÎÏÎÎÏÎ ÏÎÎÎÏÏÎ</gui> ÎÎÎÎÎ <gui>ÎÎÎÏÎÎ</"
+"gui>. ÎÏÎÎ ÎÏÏÎÎÎÎ ÏÎÎÎÎÎ, ÎÏÎÎÎÎÏÎ <link href=\"http://valadoc.org/";
+"gstreamer-0.10/index.htm\"><em>gstreamer-0.10</em></link> ÎÏÏ ÏÎ ÎÎÏÏÎ ÎÎÎ "
+"ÏÏÎÏÎÏÎÎÎÏÎ ÏÎÏ ÎÎÎÎÎÎÎÎÎÎÏ GStreamer ÏÏÎ ÎÏÎÎ ÏÎÏ. ÎÎÎÏÎ ÎÎÎÎ ÏÏÎ "
+"<gui>ÏÏÎÎÏÎÎÎ</gui>"
+
+#: C/guitar-tuner.vala.page:59(item/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 ""
+"ÎÎÎÎ ÏÏÎÎ <gui>ÎÏÎÏÎÎÎÎ</gui> ÎÎÎ ÏÎ ÎÏÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎÎÎÎ ÎÎÎ ÏÎÏ. ÎÏÏ ÏÎÏ "
+"ÎÎÏÏÎÎÎÏ <gui>ÎÏÎÎ</gui> Î <gui>ÎÏÏÎÎÎ</gui>, ÎÎÎÎÎÏÎ ÏÎ <file>src/"
+"guitar_tuner.vala</file> ÎÎ ÎÎÏÎÏ ÎÎÎÎ ÏÎÎÏ ÏÎÏ. ÎÎ ÏÏÎÏÎÎ ÎÎ ÎÎÎÏÎ ÎÎÏÎÎÎ "
+"ÎÏÎÎÎÎ ÏÎÏ ÎÎÎÎÎÎÎÎ ÎÎ ÏÎÏ ÎÏÎÎÎÎÏ:"
+
+#: C/guitar-tuner.vala.page:60(item/code)
+#: C/magic-mirror.vala.page:64(item/code)
+#, no-wrap
+msgid ""
+"\n"
+"using GLib;\n"
+"using Gtk;"
+msgstr ""
+"\n"
+"using GLib;\n"
+"using Gtk;"
+
+#: C/guitar-tuner.vala.page:69(section/p)
+msgid ""
+"The code loads an (empty) window from the user interface description file "
+"and displays it. More details are given below; you may choose to skip this "
+"list if you understand the basics:"
+msgstr ""
+"Î ÎÏÎÎÎÎÏ ÏÎÏÏÏÎÎÎ ÎÎÎ (ÎÎÎÏ) ÏÎÏÎÎÏÏÎ ÎÏÏ ÏÎ ÎÏÏÎÎÎ ÏÎÏÎÎÏÎÏÎÏ ÎÎÎÏÎÏÎÏ "
+"ÏÏÎÏÏÎ ÎÎÎ ÏÎ ÎÎÏÎÎÎÎÎÎ. ÎÎÏÎÏÏÏÏÎÏÎÏ ÎÎÏÏÎÎÎÏÎÎÎÏ ÎÎÎÎÎÏÎÎ ÏÎÏÎÎÎÏÏÂ ÎÏÎÏÎÎ "
+"ÎÎ ÎÏÎÎÎÎÎÏÎ ÎÎ ÏÏÎÏÏÎÏÎÏÏÎ ÎÏÏÎ ÏÎ ÎÎÏÏÎ ÎÎ ÎÎÏÎÎÎÎÎÎÎÎÏÎ ÏÎ ÎÎÏÎÎÎ:"
+
+#: C/guitar-tuner.vala.page:73(item/p) C/magic-mirror.vala.page:76(item/p)
+msgid ""
+"The two <code>using</code> lines import namespaces so we don't have to name "
+"them explicitly."
+msgstr ""
+"ÎÎ ÎÏÎ ÎÏÎÎÎÎÏ <code>using</code> ÎÎÏÎÎÎÏÎ ÏÏÏÎÏÏ ÎÎÎÎÎÏÏÎ ÎÏÏÎ ÏÏÏÎ ÎÎ ÎÎÎ "
+"ÏÎÏÏ ÎÎÎÎÎÏÎÏÎÎ ÏÎÏÎ."
+
+#: C/guitar-tuner.vala.page:76(item/p)
+msgid ""
+"The constructor of the <code>Main</code> class creates a new window by "
+"opening a GtkBuilder file (<file>src/guitar-tuner.ui</file>, defined a few "
+"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 ""
+"Î ÎÎÏÎÏÎÎÏÎÏÏÎÏ ÏÎÏ ÎÎÎÏÎÏ <code>Main</code> ÎÎÎÎÎÏÏÎÎÎ ÎÎÎ ÎÎÎ ÏÎÏÎÎÏÏÎ "
+"ÎÎÎÎÎÎÎÏÎÏ ÎÎÎ ÎÏÏÎÎÎ GtkBuilder (<file>src/guitar-tuner.ui</file>, ÏÎÏ "
+"ÎÏÎÎÎÏÎÎ ÎÎÎÎÏ ÎÏÎÎÎÎÏ ÏÎÏÎÏÎÎÏ), ÏÏÎÎÎÎÎÏÎÏ ÏÎ ÏÎÎÎÏÎ ÏÎÏ ÎÎÎ ÎÏÎÎÏÎ "
+"ÎÎÏÎÎÎÎÎÎÏÎÏ ÏÎ ÏÎ ÏÎÏÎÎÏÏÎ. ÎÏÏÏ ÏÎ ÎÏÏÎÎÎ GtkBuilder ÏÎÏÎÎÏÎÎ ÎÎÎ "
+"ÏÎÏÎÎÏÎÏÎ ÎÎÎÏ ÎÎÎÏÎÏÎÏ ÏÏÎÏÏÎ ÎÎÎ ÏÎÏÎ ÏÏÎ ÏÏÎÎÏÎÎÏÎ ÏÎÏ. ÎÏÎÏÎÎÏÎ ÎÎ "
+"ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÏÎÎ ÎÏÎÎÎÏÎÎÏÏÎ ÏÎÏ Anjuta ÎÎÎ ÏÏÎÎÎÎÏÎ ÎÎÎÏÎÏÏÎ ÏÏÎÏÏÎ "
+"GtkBuilder."
+
+#: C/guitar-tuner.vala.page:78(note/p)
+msgid ""
+"Connecting signals is how you define what happens when you push a button, or "
+"when some other event happens. Here, the <code>on_destroy</code> function is "
+"called (and quits the app) when you close the window."
+msgstr ""
+"Î ÏÏÎÎÎÏÎ ÏÎÎÎÏÏÎ ÎÎÎÎÎ ÏÏÏ ÎÏÎÎÎÏÎ ÏÎ ÏÏÎÎÎÎÎÎÎ ÏÏÎÎ ÏÎÏÎÏÎ ÎÎÎ ÎÎÏÎÏÎ, Î "
+"ÏÏÎÎ ÏÏÎÎÎÎ ÎÎÏÎÎÎ ÎÎÎÎ ÏÏÎÎÎÎ. ÎÎÏ, ÎÎÎÎÎÏÎÎ Î ÏÏÎÎÏÏÎÏÎ <code>on_destroy</"
+"code> (ÎÎÎ ÏÎÏÎÎÏÎÎÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ) ÏÏÎÎ ÎÎÎÎÎÎÏÎ ÏÎ ÏÎÏÎÎÏÏÎ."
+
+#: C/guitar-tuner.vala.page:82(item/p)
+msgid ""
+"The static <code>main</code> function is run by default when you start a "
+"Vala application. It calls a few functions which create the Main class, set "
+"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 ""
+"Î ÏÏÎÏÎÎÎ ÏÏÎÎÏÏÎÏÎ <code>main</code> ÏÏÎÏÎÎ ÎÏÏ ÏÏÎÎÏÎÎÎÎÎ ÏÏÎÎ ÎÎÎÎÎÎÏÎ "
+"ÎÎÎ ÎÏÎÏÎÎÎÎ Vala. ÎÎÎÎÎ ÎÎÎÎÏ ÏÏÎÎÏÏÎÏÎÎÏ ÏÎÏ ÎÎÎÎÎÏÏÎÎÏÎ ÏÎÎ ÎÏÏÎÎ ÎÎÎÏÎ, "
+"ÏÏÎÎÎÎÎÏÎ ÎÎÎ ÎÏÎÎÏÎ ÎÎÏÎÎÎÏÎ ÏÎÎ ÎÏÎÏÎÎÎÎ. Î ÏÏÎÎÏÏÎÏÎ <code>Gtk.main</"
+"code> ÎÎÎÎÎÎ ÏÎÎ ÎÏÏÎÎ ÎÏÏÏÎ ÏÎÏ GTK, ÏÎÏ ÎÎÏÎÎÎÎ ÏÎ ÎÎÎÏÎÏÎ ÏÏÎÏÏÎ ÎÎÎ "
+"ÎÎÎÎÎÎ ÏÎÎ ÎÏÎÎÏÎÏÎ ÎÎÎ ÏÏÎÎÎÎÏÎ (ÏÏÏÏ ÎÎÎÎ ÎÎÎ ÏÎÏÎÎÎÏÎ ÏÎÎÎÏÏÎÏ)."
+
+#: C/guitar-tuner.vala.page:86(section/p)
+msgid ""
+"This code is ready to be used, so you can compile it by clicking "
+"<guiseq><gui>Build</gui><gui>Build Project</gui></guiseq> (or press "
+"<keyseq><key>Shift</key><key>F7</key></keyseq>). 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 ""
+"ÎÏÏÏÏ Î ÎÏÎÎÎÎÏ ÎÎÎÎÎ ÎÏÎÎÎÎÏ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÎÎ. ÎÏÏÎ ÎÏÎÏÎÎÏÎ ÎÎ ÏÎÎ "
+"ÎÎÏÎÎÎÏÏÏÎÏÎÏÎ ÎÎ ÎÎÎÎ <guiseq><gui>ÎÎÏÎÏÎÎÏÎ</gui><gui>ÎÎÏÎÏÎÎÏÎ ÎÏÎÎÏ</"
+"gui></guiseq> (Î ÏÎÏÏÎÏÎÏ <keyseq><key>Shift</key><key>F7</key></keyseq>). "
+"ÎÏÎÎ ÏÎ ÎÎÎÎÏÎ ÎÏÏÏ, ÎÎ ÎÎÏÎÎÎÏÏÎÎ ÎÎÎÏ ÎÎÎÎÎÎÎÏ. ÎÎÎÎÎÏÎ ÏÎ <gui>ÏÏÎÎÎÏÎ</"
+"gui> ÏÎ <gui>ÏÏÎÎÏÎÎÎÎÎ</gui> ÎÎÎ ÎÏÎÎÏÎ ÎÎÎÎ <gui>ÎÎÏÎÎÎÏÎ</gui> ÎÎÎ "
+"ÏÏÎÎÎÏÎ ÏÎÏ ÎÎÏÎÎÏÎÎÏ ÎÎÏÎÏÎÎÏÎÏ. ÎÏÎÎÎÎÎÏÏÎ ÎÎ ÏÎ ÎÎÎÎÏÎ ÎÏÏÏ ÎÏÎÎ ÎÎÎ "
+"ÏÎÏÎ, ÎÎÎ ÏÎÎ ÏÏÏÏÎ ÎÎÏÎÏÎÎÏÎ."
+
+#: C/guitar-tuner.vala.page:91(section/p)
+msgid ""
+"A description of the user interface (UI) is contained in the GtkBuilder file "
+"<file>src/guitar_tuner.ui</file> defined at the top of the class. To edit "
+"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 ""
+"ÎÎÎ ÏÎÏÎÎÏÎÏÎ ÏÎÏ ÎÎÎÏÎÏÎÏ ÏÏÎÏÏÎ (UI) ÏÎÏÎÎÏÎÏÎÎ ÏÏÎ ÎÏÏÎÎÎ ÏÎÏ GtkBuilder "
+"<file>src/guitar_tuner.ui</file> ÏÎÏ ÎÏÎÏÏÎÎÎ ÏÏÎÎ ÎÎÏÏÏÎ ÏÎÏ ÎÎÎÏÎÏ. ÎÎÎ ÎÎ "
+"ÎÏÎÎÎÏÎÎÏÏÎÎÏÎ ÏÎ ÎÎÎÏÎÏÎ ÏÏÎÏÏÎ, ÎÎÎÎÎÏÎ ÏÎ <file>src/guitar_tuner.ui</"
+"file> ÎÎ ÎÎÏÎÏ ÎÎÎÎ ÏÎÎÏ ÏÎÏ ÏÏÎÎ ÎÎÏÏÎÏÎ <gui>ÎÏÎÎ</gui> Î <gui>ÎÏÏÎÎÎ</"
+"gui>. ÎÎ ÎÏÎÎÎÎÏÎ ÏÏÎ ÏÏÎÎÎÎÏÏÎ ÎÎÎÏÎÏÎÏ. ÎÎ ÏÎÏÎÎÏÏÎ ÏÏÎÎÎÎÏÎÏ ÎÎÎÎÎ ÏÏÎ "
+"ÎÎÎÏÏÎÂ ÏÎ <gui>ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ</gui> ÎÎÎ ÎÎ ÎÎÎÏÏÎÏÎÏ ÎÏÎÏÎÎÎÏ ÏÏÏÏÎÏÎÎÎÏ "
+"ÎÎÎÎÎ ÏÏÎ ÎÎÎÎÎ ÎÎÎ Î <gui>ÏÎÎÎÏÎ</gui> ÎÎ ÏÎ ÎÎÎÎÎÏÎÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ "
+"ÎÎÎÎÎ ÏÏÎ ÎÏÎÏÏÎÏÎ."
+
+#: C/guitar-tuner.vala.page:93(section/p)
+msgid ""
+"The layout of every UI in GTK+ is organized using boxes and tables. Let's "
+"use a vertical GtkButtonBox here to assign six GtkButtons, one for each of "
+"the six guitar strings."
+msgstr ""
+"Î ÎÎÎÏÎÎÎ ÎÎÎÎ ÎÎÎÏÎÏÎÏ ÏÏÎÏÏÎ ÏÏÎ Gtk+ ÎÏÎÎÎÏÎÎÏÎÎ ÏÎ ÏÎÎÎÏÎÎ ÎÎÎ ÏÎÎÎÎÎÏ. "
+"ÎÏ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÎÏ ÎÎÎ ÎÎÎÎÏÎ GtkButtonBox ÎÎÎ ÎÎ ÎÏÎÎÏÏÎÏÎÎ ÎÎÎ "
+"GtkButtons, ÎÎÎ ÎÎÎ ÎÎÎÎ ÎÎÎ ÎÏÏ ÏÎÏ ÎÎÎ ÏÎÏÎÎÏ ÏÎÏ ÎÎÎÎÏÎÏ."
+
+#: C/guitar-tuner.vala.page:99(item/p)
+msgid ""
+"In the <gui>Palette</gui> tab, from the <gui>Containers</gui> section, "
+"select a <gui>Button Box</gui> (GtkButtonBox) by clicking on the icon. Then "
+"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 ""
+"ÎÏÎÎ ÎÎÏÏÎÎÎ <gui>ÏÎÎÎÏÎ</gui>, ÎÏÏ ÏÎÎ ÎÎÏÏÎÏÎ <gui>ÏÎÏÎÎÎÏÎÏ</gui>, "
+"ÎÏÎÎÎÎÏÎ ÎÎÎ <gui>ÏÎÎÎÏÎÎ ÎÎÏÎÏÎÎÏ</gui> (GtkButtonBox) ÎÎ ÎÎÎÎ ÏÏÎ "
+"ÎÎÎÎÎÎÎÎÎ. ÎÏÎÎÏÎ ÎÎÎÎ ÏÏÎ ÏÎÏÎÎÏÏÎ ÏÏÎÎÎÎÏÎÏ ÏÏÎ ÎÎÎÏÏÎ ÎÎÎ ÏÎÏÎÎÎÏÎÏÎ ÏÎÏ "
+"ÏÏÎ ÏÎÏÎÎÏÏÎ. ÎÎÎÏ ÎÎÎÎÎÎÎÏ ÎÎ ÎÎÏÎÎÎÏÎÎ ÏÎÏ ÎÏÎÏÎÎÏÎ ÎÎ ÎÏÎÏÎÏÎ ÏÎÎ "
+"<gui>ÎÏÎÎÎÏ ÏÏÎ ÏÏÎÎÏÎÎÏÎ</gui> ÏÎ <input>6</input>. ÎÏÎÎÏÎ ÎÎÎÎ ÏÏÎ "
+"<gui>ÎÎÎÎÎÏÏÎÎÎ</gui>."
+
+#: C/guitar-tuner.vala.page:100(note/p)
+msgid ""
+"You can also change the <gui>Number of elements</gui> and the "
+"<gui>Orientation</gui> in the <gui>General</gui> tab on the right."
+msgstr ""
+"ÎÏÎÏÎÎÏÎ ÎÏÎÏÎÏ ÎÎ ÎÎÎÎÎÎÏÎ ÏÎÎ <gui>ÎÏÎÎÎÏ ÏÏÎ ÏÏÎÎÏÎÎÏÎ</gui> ÎÎÎ ÏÎÎ "
+"<gui>ÏÏÎÏÎÎÎÏÎÎÎÏÎÏ</gui> ÏÏÎÎ ÎÎÏÏÎÎÎ <gui>ÎÎÎÎÎÎ</gui> ÏÏÎ ÎÎÎÎÎ."
+
+#: C/guitar-tuner.vala.page:104(item/p)
+msgid ""
+"Now, from the <gui>Control and Display</gui> section of the <gui>Palette</"
+"gui> choose a <gui>Button</gui> (GtkButton) by clicking on it. Place it into "
+"the first section of the GtkButtonBox by clicking in the first section."
+msgstr ""
+"ÎÏÏÎ, ÎÏÏ ÏÎÎ ÎÎÏÏÎÏÎ <gui>ÎÎÎÎÏÎÏ ÎÎÎ ÎÎÏÎÎÎÏÎ</gui> ÏÎÏ <gui>ÏÎÎÎÏÎÏ</gui> "
+"ÎÏÎÎÎÎÏÎ ÎÎÎ <gui>ÎÎÏÎÏÎ</gui> (GtkButton) ÎÎ ÎÎÎÎ ÏÎÎÏ ÏÎÏ. ÎÎÏÎÎÎÏÎÏÏÎ ÏÎ "
+"ÏÏÎÎ ÏÏÏÏÎ ÎÎÏÏÎÏÎ ÏÎÏ GtkButtonBox ÎÎ ÎÎÎÎ ÏÏÎÎ ÏÏÏÏÎ ÎÎÏÏÎÏÎ."
+
+#: C/guitar-tuner.vala.page:107(item/p)
+msgid ""
+"While the button is still selected, scroll down in the <gui>General</gui> "
+"tab on the right to the <gui>Label</gui> property, and change it to <gui>E</"
+"gui>. This will be the low E guitar string."
+msgstr ""
+"ÎÏÎÎÏÎÏ ÏÎ ÎÎÏÎÏÎ ÎÎÏÎÎ ÎÏÎÎÎÎÎÎÎÎ, ÎÏÎÎÏÏÎ ÎÎÏÏ ÏÏÎÎ ÎÎÏÏÎÎÎ <gui>ÎÎÎÎÎÎ</"
+"gui> ÏÏÎ ÎÎÎÎÎ ÏÎÏ ÎÎÎÏÏÎÏÎÏ <gui>ÎÏÎÎÎÏÎ</gui> ÎÎÎ ÎÎÎÎÎÏÎ ÏÎÎ ÏÎ <gui>E</"
+"gui>. ÎÏÏÎ ÎÎ ÎÎÎÎÎ Î ÏÎÎÎÎÎ ÏÎÏÎÎ ÏÎÏ ÎÎÎÎÏÎÏ Î."
+
+#: C/guitar-tuner.vala.page:108(note/p)
+msgid ""
+"The <gui>General</gui> tab is located in the <gui>Widgets</gui> section on "
+"the right."
+msgstr ""
+"Î ÎÎÏÏÎÎÎ <gui>ÎÎÎÎÎÎ</gui> ÎÎÏÎÏÎÎÎÏÎÎ ÏÏÎÎ ÎÎÏÏÎÏÎ <gui>ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ</"
+"gui> ÏÏÎ ÎÎÎÎÎ."
+
+#: C/guitar-tuner.vala.page:113(item/p)
+msgid ""
+"Click on the <gui>Signals</gui> tab in the <gui>Widgets</gui> section on the "
+"right, and look for the <code>clicked</code> signal of the button. You can "
+"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 ""
+"ÎÎÎÎÎÎÎÏÎ ÏÏÎÎ ÎÎÏÏÎÎÎ <gui>ÏÎÎÎÏÎ</gui> ÏÏÎÎ ÎÎÏÏÎÏÎ <gui>ÎÏÎÏÎÎÎ "
+"ÏÏÏÏÎÏÎÎÎ</gui> ÏÏÎ ÎÎÎÎÎ ÎÎÎ ÎÏÎÎÏÎ ÏÎ ÏÎÎÎ <code>clicked</code> ÏÎÏ "
+"ÎÎÏÎÏÎÎÏ. ÎÏÎÏÎÎÏÎ ÎÎ ÏÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÎÎÎ ÎÎ ÏÏÎÎÎÏÎÏÎ ÎÎÎÎ ÏÎÎÏÎÏÏÎ "
+"ÏÎÎÎÏÏÎ ÏÎÏ ÎÎ ÎÎÎÎÎÏÎÎ ÏÏÎÎ ÏÎÏÎÎÎÎ ÏÎ ÎÎÏÎÏÎ ÎÏÏ ÏÎÎ ÏÏÎÏÏÎ. ÎÎÎ ÎÎ ÏÎ "
+"ÎÎÎÎÏÎ ÎÏÏÏ, ÎÎÎÎ ÏÏÎ ÏÎÎÎ ÎÎÎ ÏÎÎÎÏÏÎÎÎÎÎÏÏÎ <code>main_on_button_clicked</"
+"code> ÏÏÎ ÏÏÎÎÎ <gui>ÏÎÎÏÎÏÏÎÏ</gui> ÎÎÎ ÏÎÏÎÏÏÎ <key>Enter</key>."
+
+#: C/guitar-tuner.vala.page:126(section/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 ""
+"ÎÏÏÎ Î ÎÎÏÏÎÏÎ ÎÎ ÎÎÎÎÎÎ ÏÏÏ ÎÎ ÏÎÏÎÎÎÎ Î ÎÏÎÎÎÎÏ ÎÏÎÏÏ. <link href=\"http://";
+"developer.gnome.org/platform-overview/stable/gstreamer\">GStreamer</link> "
+"ÎÎÎÎÎ Î ÏÎÎÎÎÏÏÏ ÏÎÎÏÎÎÏÏÎ ÏÎÏ GNOME - ÎÏÎÏÎÎÏÎ ÎÎ ÏÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÎÎÎ "
+"ÏÎÎÎÎÎÎ, ÎÎÎÏÎÏÎ ÎÎÎ ÎÏÎÎÎÏÎÎÏÎÎ ÎÎÎÏÎÎ, ÎÏÎÏ, ÏÎÏÎ ÎÏÏÎÎÎÎÎÏÎÏ ÎÎÎ ÏÎ "
+"ÏÎÏÏÎÎÎÎ. ÎÎÏ, ÎÎ ÏÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÎÎ ÎÎ ÏÎÏÎÎÎÏÎÎ ÏÏÎÎÏÏ ÎÎÎÏ "
+"ÏÏÏÎÏÏÎÏÎÏ."
+
+#: C/guitar-tuner.vala.page:127(section/p)
+msgid ""
+"Conceptually, GStreamer works as follows: You create a <link href=\"http://";
+"gstreamer.freedesktop.org/data/doc/gstreamer/head/manual/html/section-intro-"
+"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 ""
+"ÎÎÎÎÎÎÎÎÎÎÎÎ, ÏÎ GStreamer ÎÎÎÏÎÏÏÎÎÎ ÏÏ ÎÎÎÏ: ÎÎÎÎÎÏÏÎÎÎÏÎ ÎÎÎ<link href="
+"\"http://gstreamer.freedesktop.org/data/doc/gstreamer/head/manual/html/";
+"section-intro-basics-bins.html\"> <em>ÎÎÎÏÎÏÎÏÏÎ</em></link> ÏÎÏ ÏÎÏÎÎÏÎÎ "
+"ÎÎÎÏÎÏÎ ÏÏÎÎÏÎÎÎ ÎÏÎÎÎÏÎÎÏÎÎÏ ÏÎÏ ÏÎÎÎÎÎÎÏÎ ÎÏÏ ÏÎÎ <em>ÏÎÎÎ</em> ÏÏÎ "
+"<em>ÏÎÎÎÎÏÏÎÏÎ</em> (ÎÎÎÎÎ). Î ÏÎÎÎ ÎÏÎÏÎÎ ÎÎ ÎÎÎÎÎ ÎÎÎ ÎÏÏÎÎÎ ÎÎÎÏÎÎÏ, "
+"ÎÎÎÏÎÎ, Î ÎÎÏÏÎÎÎÏ, ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ, ÎÎÎ Î ÎÎÎÎÎÏ ÎÏÎÏÎÎ ÎÎ ÎÎÎÎÎ ÎÏÎÏÎÎÏ "
+"ÏÏÏÏÎÏÎÎÏ Î ÎÎÏÏÎ ÎÏÎÏ."
+
+#: C/guitar-tuner.vala.page:136(section/p)
+msgid ""
+"In this example we will use a tone generator source called "
+"<code>audiotestsrc</code> and send the output to the default system sound "
+"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 ""
+"ÎÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÎÎ ÏÎÎÎ ÏÎÏÎÎÏÎÎÏ ÏÏÎÏÎ ÏÎÏ "
+"ÎÎÎÎÏÎÎ <code>audiotestsrc</code> ÎÎÎ ÎÎ ÏÏÎÎÎÎÏÎÎ ÏÎÎ ÎÎÎÎÎ ÏÏÎÎ "
+"ÏÏÎÎÏÎÎÎÎÎÎÎÎ ÏÏÏÎÎÏÎ ÎÏÎÏ ÏÎÏ ÏÏÏÏÎÎÎÏÎÏ, <code>autoaudiosink</code>. "
+"ÎÏÎÏÎÎ ÎÏÎÎ ÎÎ ÏÏÎÎÎÏÎÏÎÎ ÏÎÎ ÏÏÏÎÏÏÎÏÎ ÏÎÏ ÏÎÏÎÎÏÎÎÏ ÏÏÎÎÏÂ ÎÏÏÏ ÎÎÎÎÎ "
+"ÎÎÎÎÎÏÎÎÎ ÎÎÏÎ ÎÏÏ ÏÎÎ ÎÎÎÏÏÎÏÎ <code>freq</code> ÏÎÏ <code>audiotestsrc</"
+"code>."
+
+#: C/guitar-tuner.vala.page:138(section/p)
+msgid ""
+"We need to add a line to initialize GStreamer; put the following code on the "
+"line above the <code>Gtk.init</code> call in the <code>main</code> function:"
+msgstr ""
+"ÎÏÎÎÎÎÎÏÎÎ ÎÎ ÏÏÎÏÎÎÏÎÏÎÎ ÎÎÎ ÎÏÎÎÎÎ ÎÎÎ ÎÏÏÎÎÎÏÎÎÎÏÎ ÏÎÏ GStreamer ÎÎÎÏÎ "
+"ÏÎÎ ÏÎÏÎÎÎÏÏ ÎÏÎÎÎÎ ÏÏÎÎ ÎÏÎÎÎÎ ÏÎÎÏ ÎÏÏ ÏÎÎ ÎÎÎÏÎ <code>Gtk.init</code> ÏÏÎ "
+"ÏÏÎÎÏÏÎÏÎ <code>main</code>:"
+
+#: C/guitar-tuner.vala.page:139(section/code)
+#, no-wrap
+msgid "Gst.init (ref args);"
+msgstr "Gst.init (ref args);"
+
+#: C/guitar-tuner.vala.page:140(section/p)
+msgid ""
+"Then, copy the following function into <file>guitar_tuner.vala</file> inside "
+"our <code>Main</code> class:"
+msgstr ""
+"ÎÎÏÎ, ÎÎÏÎÎÏÎÏÏÎ ÏÎÎ ÎÎÏÎÎÏÎÎ ÏÏÎÎÏÏÎÏÎ ÏÏÎ <file>guitar_tuner.vala</file> "
+"ÎÎÏÎ ÏÏÎÎ ÎÎÎÏÎ ÎÎÏ <code>Main</code>:"
+
+#: C/guitar-tuner.vala.page:141(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"Gst.Element sink;\n"
+"Gst.Element source;\n"
+"Gst.Pipeline pipeline;\n"
+"\n"
+"private void play_sound(double frequency)\n"
+"{\n"
+"\tpipeline = new Gst.Pipeline (\"note\");\n"
+"\tsource   = Gst.ElementFactory.make (\"audiotestsrc\",\n"
+"\t                                    \"source\");\n"
+"\tsink     = Gst.ElementFactory.make (\"autoaudiosink\",\n"
+"\t                                    \"output\");\n"
+"\n"
+"\t/* set frequency */\n"
+"\tsource.set (\"freq\", frequency);\n"
+"\n"
+"\tpipeline.add (source);\n"
+"\tpipeline.add (sink);\n"
+"\tsource.link (sink);\n"
+"\n"
+"\tpipeline.set_state (Gst.State.PLAYING);\n"
+"\n"
+"\t/* stop it after 200ms */\n"
+"\tvar time = new TimeoutSource(200);\n"
+"\n"
+"\ttime.set_callback(() =&gt; {\n"
+"\t\tpipeline.set_state (Gst.State.PAUSED);\n"
+"\t\treturn false;\n"
+"\t});\n"
+"\ttime.attach(null);\n"
+"}"
+msgstr ""
+"\n"
+"Gst.Element sink;\n"
+"Gst.Element source;\n"
+"Gst.Pipeline pipeline;\n"
+"\n"
+"private void play_sound(double frequency)\n"
+"{\n"
+"\tpipeline = new Gst.Pipeline (\"note\");\n"
+"\tsource   = Gst.ElementFactory.make (\"audiotestsrc\",\n"
+"\t                                    \"source\");\n"
+"\tsink     = Gst.ElementFactory.make (\"autoaudiosink\",\n"
+"\t                                    \"output\");\n"
+"\n"
+"\t/* set frequency */\n"
+"\tsource.set (\"freq\", frequency);\n"
+"\n"
+"\tpipeline.add (source);\n"
+"\tpipeline.add (sink);\n"
+"\tsource.link (sink);\n"
+"\n"
+"\tpipeline.set_state (Gst.State.PLAYING);\n"
+"\n"
+"\t/* stop it after 200ms */\n"
+"\tvar time = new TimeoutSource(200);\n"
+"\n"
+"\ttime.set_callback(() =&gt; {\n"
+"\t\tpipeline.set_state (Gst.State.PAUSED);\n"
+"\t\treturn false;\n"
+"\t});\n"
+"\ttime.attach(null);\n"
+"}"
+
+#: C/guitar-tuner.vala.page:175(item/p)
+msgid ""
+"The first three lines create source and sink GStreamer elements (<link href="
+"\"http://valadoc.org/gstreamer-0.10/Gst.Element.html\";><code>Gst.Element</"
+"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 ""
+"ÎÎ ÏÏÎÎÏ ÏÏÏÏÎÏ ÎÏÎÎÎÎÏ ÎÎÎÎÎÏÏÎÎÏÎ ÏÎ ÏÏÎÎÏÎÎÎ ÏÎÎÎ ÎÎÎ ÎÎÎÎÎ ÏÎÏ GStreamer "
+"(<link href=\"http://valadoc.org/gstreamer-0.10/Gst.Element.html\";><code>Gst."
+"Element</code></link>), ÎÎÎ ÎÎÎ <link href=\"http://valadoc.org/";
+"gstreamer-0.10/Gst.Pipeline.html\">ÏÏÎÎÏÎÎÎ ÎÎÎÏÎÏÎÏÏÎÏ</link> (ÏÎ ÎÏÎÎÎ ÎÎ "
+"ÏÏÎÏÎÎÎÏÎÎÎÎÎÎ ÏÎÎ ÏÎÏÎÎÎÏÎÏ ÎÎÎ ÏÎ ÎÏÎ ÎÎÎÎ ÏÏÎÎÏÎÎÎ). ÎÏÏÎ ÎÎÎÎÎ "
+"ÎÎÏÎÎÎÎÏÎÏ ÎÎÎÏÎÏÎ, ÎÏÏÎ ÎÏÎÎÎÎÏÎÎ ÎÎÏ ÎÏÏ ÏÎ ÎÎÎÎÎÎ. ÎÎÎÎÏÎÎ ÏÎ ÏÎÎÎÎ \"note"
+"\" ÏÏÎ ÎÎÎÏÎÏÎÏÏÎÂ ÎÎÎÎÎÎÎÏÎÎ ÏÎÎ ÏÎÎÎ \"source\" ÎÎÎ ÏÏÎÎÎÎÎÏÎÎ ÏÏÎÎ ÏÎÎÎ "
+"<code>audiotestsrc</code>Â ÎÎÎ ÎÎÎÎÎÎÎÏÎÎ ÏÎÎ ÎÎÎÎÎ \"output\" ÎÎÎ "
+"ÏÏÎÎÎÎÎÏÎÎ ÏÏÎÎ ÎÎÎÎÎ <code>autoaudiosink</code> (ÏÏÎÎÏÎÎÎÎÎÎÎÎ ÎÎÎÎÎÏ "
+"ÎÎÏÏÎÏ ÎÏÎÏ)."
+
+#: C/guitar-tuner.vala.page:178(item/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 ""
+"Î ÎÎÎÏÎ ÏÏÎ <link href=\"http://valadoc.org/gobject-2.0/GLib.Object.set.html";
+"\"><code>source.set</code></link> ÎÏÎÎÎÎ ÏÎÎ ÎÎÎÏÏÎÏÎ <code>freq</code> ÏÎÏ "
+"ÏÏÎÎÏÎÎÎÏ ÏÎÎÎÏ ÏÎ <code>frequency</code>, Î ÎÏÎÎÎ ÎÏÎÎ ÏÎÏÎÏÏÎÎ ÏÏ ÏÏÎÏÎÎ "
+"ÏÏÎ ÏÏÎÎÏÏÎÏÎ <code>play_sound</code>. ÎÏÏÎ ÎÎÎÎÎ Î ÏÏÏÎÏÏÎÏÎ ÏÎÏ ÎÏÏÎÏ ÏÎ "
+"Hertz ÏÎÎÎÎÏ ÏÏÎÏÎÎÎÏ ÏÏÏÎÏÏÎÏÎÏ ÎÎ ÎÏÎÏÏÎÏÎ ÎÏÎÏÏÎÏÎ."
+
+#: C/guitar-tuner.vala.page:181(item/p)
+msgid ""
+"<link href=\"http://valadoc.org/gstreamer-0.10/Gst.Bin.add.html";
+"\"><code>pipeline.add</code></link> puts the source and sink into the "
+"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> ÎÎÎÎÎ ÏÎÎ ÏÎÎÎ ÎÎÎ ÏÎÎ ÎÎÎÎÎ ÏÏÎ "
+"ÎÎÎÏÎÏÎÏÏÎ. Î ÎÎÎÏÎÏÎÏÏÎ ÎÎÎÎÎ ÎÎÎ <link href=\"http://valadoc.org/";
+"gstreamer-0.10/Gst.Bin.html\"><code>Gst.Bin</code></link>,ÏÎÏ ÎÎÎÎÎ ÎÏÎÎ ÎÎÎ "
+"ÏÏÎÎÏÎÎÎ ÏÎÏ ÎÏÎÏÎÎ ÎÎ ÏÎÏÎÎÏÎÎ ÏÎÎÎÎÏÎÎ ÎÎÎÎ ÏÏÎÎÏÎÎÎ GStreamer. ÎÎÎÎÎÎ, "
+"ÎÏÎÏÎÎÏÎ ÎÎ ÏÏÎÏÎÎÏÎÏÎ ÏÏÎ ÏÏÎÎÏÎÎÎ ÎÎÎÎÏÎ ÏÏÎ ÎÎÎÏÎÏÎÏÏÎ ÏÏÎÏÎÎÏÎÎÏÎÏ "
+"ÏÎÏÎÏÏÏÏÎÏÎÏ ÎÎÎÏÎÎÏ ÏÏÎ <code>pipeline.add</code>."
+
+#: C/guitar-tuner.vala.page:184(item/p)
+msgid ""
+"Next, <link href=\"http://valadoc.org/gstreamer-0.10/Gst.Element.link.html";
+"\"><code>sink.link</code></link> is used to connect the elements together, "
+"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 ""
+"ÎÎÏÏÏÎÎ, ÏÎ <link href=\"http://valadoc.org/gstreamer-0.10/Gst.Element.link.";
+"html\"><code>sink.link</code></link> ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÎÎÎ ÏÏÎÎÎÏÎ ÏÏÎ "
+"ÏÏÎÎÏÎÎÏÎ ÎÎÎÎ, ÎÏÏÎ ÏÏÏÎ Î ÎÎÎÎÎÏ ÏÎÏ ÏÎÎÎÏ (ÎÎÎÏ ÏÏÎÎÏ) ÎÎ ÏÎÎÎÎÎÎÎ ÏÏÎÎ "
+"ÎÎÏÎÎÎ ÏÎÏ ÎÎÏÎÎÏ (Î ÎÏÎÎÎ ÎÎÏÎ ÎÎÎÎÎ ÎÎÎÎÎÏ ÏÏÎÎ ÎÎÏÏÎ ÎÏÎÏ). ÎÎ <link href="
+"\"http://www.valadoc.org/gstreamer-0.10/Gst.Element.set_state.html";
+"\"><code>pipeline.set_state</code></link> ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÎÏÎÎÏÎ ÎÎÎ ÏÎÎ "
+"ÎÎÎÎÎÎÏÎ ÏÎÏ ÎÎÎÏÎÏÎÎÏÎÎÏ, ÏÏÎÎÎÎÎÎÏÎÏ ÏÎÎ <link href=\"http://www.valadoc.";
+"org/gstreamer-0.10/Gst.State.html\">ÎÎÏÎÏÏÎÏÎ ÏÎÏ ÏÏÎÎÎÏÏÎÏ</link> ÎÎ ÏÎÎÎÎÎ "
+"(<code>Gst.State.PLAYING</code>)."
+
+#: C/guitar-tuner.vala.page:187(item/p)
+msgid ""
+"We don't want to play an annoying tone forever, so the last thing "
+"<code>play_sound</code> does is to add a <link href=\"http://www.valadoc.org/";
+"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 ""
+"ÎÎÎ ÎÎÎÎÏÎÎ ÎÎ ÏÎÎÎÎÏÎÎ ÎÎÎÎ ÎÎÎÏÎÎÏÎÎÏ ÎÏÎ ÎÎÎ ÏÎÎÏÎ, ÎÏÏÏÎ ÏÎ ÏÎÎÎÏÏÎÎÎ "
+"ÏÏÎÎÎÎ ÏÎÏ ÎÎÎÎÎ Î <code>play_sound</code> ÎÎÎÎÎ ÎÎ ÏÏÎÏÎÎÏÎÎ ÎÎÎÎ <link "
+"href=\"http://www.valadoc.org/glib-2.0/GLib.TimeoutSource.html";
+"\"><code>TimeoutSource</code></link>. ÎÏÏÏ ÎÏÎÎÎÎ ÎÎÎ ÏÏÎÎÎÎÏ ÏÏÎÎ ÏÎÏ ÎÎ "
+"ÏÏÎÎÎÏÎÏÎÎ ÏÎÎ ÎÏÎÂ ÏÎÏÎÎÎÎÎÎ ÎÎÎ 200 ms ÏÏÎÎ ÎÎÎÎÏÎÎ ÏÎÎ ÏÎÎÏÎÏÏÎ ÏÎÎÎÏÎÏ "
+"ÏÎÏ ÎÏÎÏÏÎÎÎ ÏÏÎ ÎÏÎÎÎÎ ÏÎÏ ÏÏÎÎÎÏÎ ÎÎÎ ÎÎÏÎÏÏÏÎÏÎÎ ÏÎ ÎÎÎÏÎÏÎÏÏÎ. "
+"ÎÏÎÏÏÏÎÏÎÎ <code>false</code> ÎÎÎ ÎÎ ÎÏÎÎÏÎÏÎÎ ÏÎÎ ÎÎÎÎ ÎÏÏ ÏÎ ÏÏÎÎÎÎÏ ÏÏÎÎ, "
+"ÎÎÎÎÏÏ ÎÎ ÏÏÎÎÏÎÎÎ ÎÎ ÎÎÎÎÎÏÎÎ ÎÎÎÎ 200 ms."
+
+#: C/guitar-tuner.vala.page:198(section/p)
+msgid ""
+"In the UI designer, you made it so that all of the buttons will call the "
+"same function, <gui>on_button_clicked</gui>, when they are clicked. Actually "
+"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 ""
+"ÎÏÎÎ ÏÏÎÎÎÎÏÏÎ ÎÎÎÏÎÏÏÎ ÏÏÎÏÏÎ, ÎÎÎÎÏÎ ÏÎÎ ÏÎ ÎÎÏÎÏÎÎ ÎÎ ÎÎÎÎÏÎ ÏÎÎ ÎÎÎÎ "
+"ÏÏÎÎÏÏÎÏÎ, <gui>on_button_clicked</gui>, ÏÏÎÎ ÏÎÏÎÎÎÏÎ. ÎÏÎÎ ÏÏÎÎÎÎÏÎÎÏÏÎÏÎ, "
+"ÏÎÎÎÏÏÎÎÎÎÎÏÎÎ <gui>main_on_button_clicked</gui> ÏÎÏ ÎÎÎÎ ÏÏÎÎ ÏÏÎÎÎÎÏÏÎ UI "
+"ÏÏÎ ÎÏÏÎ Î ÎÎÎÎÎÎÏ ÎÎÎÎÎ ÏÎÎÎÎ ÏÎÏ <code>Main</code> ÎÎÏ. ÎÏÎÏÎÎ ÎÎ "
+"ÏÏÎÏÎÎÏÎÏÎÎ ÎÏÏÎ ÏÎÎ ÏÏÎÎÏÏÎÏÎ ÏÏÎ ÏÎÎÎÎÎ ÎÏÏÎÎÎ."
+
+#: C/guitar-tuner.vala.page:199(section/p)
+msgid ""
+"To do this, in the user interface file (guitar_tuner.ui) select one of the "
+"buttons by clicking on it, then open <file>guitar_tuner.vala</file> (by "
+"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 ""
+"ÎÎÎ ÎÎ ÏÎ ÎÎÎÎÏÎ ÎÏÏÏ, ÏÏÎ ÎÏÏÎÎÎ ÎÎÎÏÎÏÎÏ ÏÏÎÏÏÎ (guitar_tuner.ui), "
+"ÎÏÎÎÎÎÏÎ ÎÎÎ ÎÏÏ ÏÎ ÎÎÏÎÏÎÎ ÎÎ ÎÎÎÎ ÏÎÎÏ ÏÎÏ, ÎÏÎÎÏÎ ÎÎÎÎÎÏÎ "
+"<file>guitar_tuner.vala</file> (ÎÎ ÎÎÎÎ ÏÏÎÎ ÎÎÏÏÎÎÎ ÏÏÎ ÎÎÎÏÏÎ). ÎÎÎÎÎÎÎÎ "
+"ÏÏÎÎ ÎÎÏÏÎÎÎ <gui>ÏÎÎÎÏÎ</gui> ÏÏÎ ÎÎÎÎÎ, ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÎÎÎ ÏÎÎ ÎÏÎÏÎÏ "
+"ÏÎÏ ÎÎÏÎÎÏÎÏ ÎÏÏÎÎÎÏ. ÎÏÏÎ, ÏÎÏÏÎ ÏÎ ÎÏÎÎÎÎ ÏÏÎÏ ÎÏÎÏÎÏÎ ÏÎ ÏÎÎÎ "
+"<gui>ÏÎÏÎÎÎÎÎ</gui> ÎÎÎ ÏÏÏÏÎÎÎ ÎÎÎ ÎÏÏÎÎÏÎ ÏÎÏ ÏÏÎ ÏÎÎÎÎÎ ÎÏÏÎÎÎ ÏÏÎÎ ÎÏÏÎ "
+"ÏÎÏ ÎÎÎÏÎÏ. Î ÏÎÏÎÎÎÏÏ ÎÏÎÎÎÎÏ ÎÎ ÏÏÎÏÏÎÎÎÎ ÏÏÎ ÏÎÎÎÎÎ ÏÎÏ ÎÏÏÎÎÎ:"
+
+#: C/guitar-tuner.vala.page:201(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"public void on_button_clicked (Gtk.Button sender) {\n"
+"\n"
+"}"
+msgstr ""
+"\n"
+"public void on_button_clicked (Gtk.Button sender) {\n"
+"\n"
+"}"
+
+#: C/guitar-tuner.vala.page:206(note/p)
+msgid ""
+"You can also just type the code at the beginning of the class instead of "
+"using the drag and drop."
+msgstr ""
+"ÎÏÎÏÎÎÏÎ ÎÏÎÏÎÏ ÎÎ ÏÎÎÎÏÏÎÎÎÎÎÏÎÏÎ ÎÏÎÎ ÏÏÎ ÎÏÎÎÎÎ ÏÏÎÎ ÎÏÏÎ ÏÎÏ ÎÎÎÏÎÏ ÎÎÏÎ "
+"ÏÎÏ ÏÏÎÏÎÏ ÏÏÏÏÎÎÎÏÎÏ ÎÎÎ ÎÏÏÎÎÏÎÏ."
+
+#: C/guitar-tuner.vala.page:207(section/p)
+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 ""
+"ÎÏÏÏÏ Î ÏÎÎÏÎÏÏÎÏ ÏÎÎÎÏÎÏ ÎÏÎÎ ÎÏÎÎ ÎÎÎ ÏÏÎÏÎÎ: ÏÎ <link href=\"http://";
+"valadoc.org/gtk+-3.0/Gtk.Widget.html\"><code>Gtk.Widget</code></link> ÏÎÏ "
+"ÎÎÎÎÏÎ Î ÏÏÎÎÏÏÎÏÎ (ÏÏÎÎ ÏÎÏÎÏÏÏÏÎ ÎÎÏ, ÏÎÎÏÎÏÎ ÎÎÎ <link href=\"http://";
+"valadoc.org/gtk+-3.0/Gtk.Button.html\"><code>Gtk.Button</code></link>)."
+
+#: C/guitar-tuner.vala.page:213(section/title)
+msgid "Define the signal handler"
+msgstr "ÎÏÎÏÎÏÏ ÏÎÏ ÏÎÎÏÎÏÏÎ ÏÎÎÎÏÏÎ"
+
+#: C/guitar-tuner.vala.page:214(section/p)
+msgid ""
+"We want to play the correct sound when the user clicks a button. For this, "
+"we flesh out the signal handler which we defined above, "
+"<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 ""
+"ÎÎÎÎÏÎÎ ÎÎ ÏÎÎÎÎÏÎÎ ÏÎÎ ÏÏÏÏÏ ÎÏÎ ÏÏÎÎ Î ÏÏÎÏÏÎÏ ÏÎÏÎ ÎÎÎ ÎÎÏÎÏÎ. ÎÎÎ ÎÏÏÏ, "
+"ÎÏÎÏÎÎÎÏÎÏÎÎ ÏÎÎ ÏÎÎÏÎÏÏÎ ÏÎÎÎÏÎÏ ÏÎÏ ÎÏÎÏÎÎÎ ÏÎÏÎÏÎÎÏ, "
+"<code>on_button_clicked</code>. ÎÎ ÎÏÎÏÎÏÏÎÎÎ ÎÎ ÎÏÎÏÎÎ ÏÏÎÎÎÏÎÎ ÎÎÎÎ ÎÎÏÎÏÎ "
+"ÏÎ ÎÎÎÏÎÏÎÏÎÎÏ ÏÎÎÏÎÏÏÎ ÏÎÎÎÏÎÏ, ÎÎÎÎ ÎÏÏÏ ÎÎ ÎÏÎÏÎÏÏÎ ÎÎ ÎÎÎÎÎÏÎÎ ÏÎ "
+"ÎÎÏÎÏÎÎÎÎÎ ÎÎÏÎÎÏÎÎÏÎÏ ÏÎÏ ÎÏÎÎÎÎ. ÎÎÏÎÎÎÏÎ, ÎÏÎÏÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ "
+"ÏÎÎ ÎÏÎÎÎÏÎ ÏÎÏ ÎÎÏÎÏÎÎÏ ÎÎÎ ÎÎ ÎÎÏÎÎÎÎÎÏÎÎ ÏÎÎÎ ÎÎÏÎÏÎ ÏÎÏÎÎÎÎÎ:"
+
+#: C/guitar-tuner.vala.page:215(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"public void on_button_clicked (Gtk.Button sender) {\n"
+"\tvar label = sender.get_child () as Gtk.Label;\n"
+"\tswitch (label.get_label()) {\n"
+"\t\tcase \"E\":\n"
+"\t\t\tplay_sound (329.63);\n"
+"\t\t\tbreak;\n"
+"\t\tcase \"A\":\n"
+"\t\t\tplay_sound (440);\n"
+"\t\t\tbreak;\n"
+"\t\tcase \"D\":\n"
+"\t\t\tplay_sound (587.33);\n"
+"\t\t\tbreak;\n"
+"\t\tcase \"G\":\n"
+"\t\t\tplay_sound (783.99);\n"
+"\t\t\tbreak;\n"
+"\t\tcase \"B\":\n"
+"\t\t\tplay_sound (987.77);\n"
+"\t\t\tbreak;\n"
+"\t\tcase \"e\":\n"
+"\t\t\tplay_sound (1318);\n"
+"\t\t\tbreak;\n"
+"\t\tdefault:\n"
+"\t\t\tbreak;\n"
+"\t}\n"
+"}\n"
+msgstr ""
+"\n"
+"public void on_button_clicked (Gtk.Button sender) {\n"
+"\tvar label = sender.get_child () as Gtk.Label;\n"
+"\tswitch (label.get_label()) {\n"
+"\t\tcase \"E\":\n"
+"\t\t\tplay_sound (329.63);\n"
+"\t\t\tbreak;\n"
+"\t\tcase \"A\":\n"
+"\t\t\tplay_sound (440);\n"
+"\t\t\tbreak;\n"
+"\t\tcase \"D\":\n"
+"\t\t\tplay_sound (587.33);\n"
+"\t\t\tbreak;\n"
+"\t\tcase \"G\":\n"
+"\t\t\tplay_sound (783.99);\n"
+"\t\t\tbreak;\n"
+"\t\tcase \"B\":\n"
+"\t\t\tplay_sound (987.77);\n"
+"\t\t\tbreak;\n"
+"\t\tcase \"e\":\n"
+"\t\t\tplay_sound (1318);\n"
+"\t\t\tbreak;\n"
+"\t\tdefault:\n"
+"\t\t\tbreak;\n"
+"\t}\n"
+"}\n"
+
+#: C/guitar-tuner.vala.page:242(section/p)
+msgid ""
+"The <code>Gtk.Button</code> that was clicked is passed as an argument "
+"(<code>sender</code>) to <code>on_button_clicked</code>. We can get the "
+"label of that button by using <code>get_child</code>, and then get the text "
+"from that label using <code>get_label</code>."
+msgstr ""
+"ÎÎ <code>Gtk.Button</code> ÏÎÏ ÏÎÏÎÎÎÎÎ ÏÎÏÎÎ ÏÏ ÏÏÎÏÎÎ (<code>sender</"
+"code>) ÏÏÎ <code>on_button_clicked</code>. ÎÏÎÏÎÏÎÎ ÎÎ ÏÎÏÎÏÎÎ ÏÎÎ ÎÏÎÎÎÏÎ "
+"ÎÏÏÎÏ ÏÎÏ ÎÎÏÎÏÎÎÏ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎÎ <code>get_child</code> ÎÎÎ ÎÏÎÎÏÎ ÎÎ "
+"ÏÎÏÎÏÎÎ ÏÎ ÎÎÎÎÎÎÎ ÎÏÏ ÎÏÏÎÎ ÏÎÎ ÎÏÎÎÎÏÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ <code>get_label</"
+"code>."
+
+#: C/guitar-tuner.vala.page:243(section/p)
+msgid ""
+"The switch statement compares the label text to the notes that we can play, "
+"and <code>play_sound</code> is called with the frequency appropriate for "
+"that note. This plays the tone; we have a working guitar tuner!"
+msgstr ""
+"Î ÏÏÏÏÎÏÎ ÎÎÎÎÏÏÏÎ ÏÏÎÎÏÎÎÎÎ ÏÎ ÎÎÎÎÎÎÎ ÎÏÎÎÎÏÎÏ ÎÎ ÏÎÏ ÎÏÏÎÏ ÏÎÏ ÎÏÎÏÎÏÎÎ "
+"ÎÎ ÏÎÎÎÎÏÎÎ ÎÎÎ ÎÎÎÎÎÏÎÎ Î <code>play_sound</code> ÎÎ ÏÎÎ ÎÎÏÎÎÎÎÎÎ "
+"ÏÏÏÎÏÏÎÏÎ ÎÎÎ ÎÏÏÎÎ ÏÎÎ ÎÏÏÎ. ÎÏÏÏ ÏÎÎÎÎÎ ÏÎÎ ÏÏÎÎÂ Î ÏÏÎÎÎÏÏÎÏ ÎÎÎÎÏÎÏ "
+"ÎÎÎÎÎ ÎÏÎÎÎÎÏ!"
+
+#: C/guitar-tuner.vala.page:254(section/p)
+msgid ""
+"If you run into problems with the tutorial, compare your code with this "
+"<link href=\"guitar-tuner/guitar-tuner.vala\">reference code</link>."
+msgstr ""
+"ÎÎ ÎÎÏÎÎÎÏÏÏÎÏÎÏÎ ÏÏÎÎÎÎÎÎÏÎ ÎÎ ÏÎ ÎÎÎÎÎÎ, ÏÏÎÎÏÎÎÎÏÎ ÏÎÎ ÎÏÎÎÎÎ ÏÎÏ ÎÎ "
+"ÎÏÏÏÎ ÏÎÎ <link href=\"guitar-tuner/guitar-tuner.vala\">ÎÏÎÎÎÎ ÎÎÎÏÎÏÎÏ</"
+"link>."
+
+#: C/guitar-tuner.vala.page:258(section/title)
+#: C/magic-mirror.vala.page:151(section/title)
+msgid "Further reading"
+msgstr "ÎÎÏÎÎÏÎÏÏ ÎÎÎÎÎÏÏÎ"
+
+#: C/guitar-tuner.vala.page:259(section/p)
+msgid ""
+"To find out more about the Vala programming language you might want to check "
+"out the <link href=\"http://live.gnome.org/Vala/Tutorial\";>Vala Tutorial</"
+"link> and the <link href=\"http://valadoc.org/\";>Vala API Documentation</"
+"link>"
+msgstr ""
+"ÎÎÎ ÎÎ ÎÏÎÎÏÎ ÏÎÏÎÏÏÏÏÎÏÎ ÎÎÎ ÏÎ ÎÎÏÏÏÎ ÏÏÎÎÏÎÎÎÎÏÎÏÎÎÏ Vala ÎÏÏÏ ÎÎÎÎÏÎÏÎ "
+"ÎÎ ÎÎÎÏÎÎÎÏÎ ÏÎ <link href=\"http://live.gnome.org/Vala/Tutorial\";>ÎÎÎÎÎÎ "
+"Vala</link> ÎÎÎ ÏÎ <link href=\"http://valadoc.org/\";>ÏÎÎÎÎÏÎÏÏÎ API Vala</"
+"link>"
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/hellognome.js.page:64(media)
+msgctxt "_"
+msgid ""
+"external ref='media/hellognomewebapp.png' "
+"md5='948efb6148ede3bc6b47b4b0bbe4a74f'"
+msgstr ""
+"external ref='media/hellognomewebapp.png' "
+"md5='948efb6148ede3bc6b47b4b0bbe4a74f'"
+
+#: C/hellognome.js.page:16(info/desc)
+msgid "Your first GNOME application!"
+msgstr "Î ÏÏÏÏÎ ÏÎÏ ÎÏÎÏÎÎÎÎ ÏÎ GNOME!"
+
+#: C/hellognome.js.page:19(page/title)
+msgid "1. Hello, GNOME!"
+msgstr "1. Hello, GNOME!"
+
+#: C/hellognome.js.page:21(synopsis/p)
+msgid ""
+"This tutorial will show you how to write your first GNOME application in "
+"JavaScript. You will use JavaScript to write for GNOME the same way you "
+"would for the web. Afterwards, you will learn how to use \"native\" widgets, "
+"to write applications that look and feel like other GNOME apps."
+msgstr ""
+"ÎÏÏÏ ÏÎ ÎÎÎÎÎÎ ÎÎ ÏÎÏ ÎÎÎÎÎÎ ÏÏÏ ÎÎ ÎÏÎÏÎÏÎ ÏÎÎ ÏÏÏÏÎ ÏÎÏ ÎÏÎÏÎÎÎÎ GNOME ÏÎ "
+"JavaScript. ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ JavaScript ÎÎÎ ÎÎ ÎÏÎÏÎÏÎ ÎÎÎ GNOME ÎÎ ÏÎÎ "
+"ÎÎÎÎ ÏÏÏÏÎ ÏÎÏ ÎÎ ÎÏÏÎÏÎ ÎÎÎ ÏÎÎ ÎÏÏÏ. ÎÎÏÏÏÎÎ, ÎÎ ÎÎÎÎÏÎ ÏÏÏ ÎÎ "
+"ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ \"native\" ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ, ÎÎÎ ÎÎ ÎÏÎÏÎÏÎ ÎÏÎÏÎÎÎÎÏ ÏÎÏ "
+"ÎÎÎÏÎÎÏÎ ÎÎÎ ÎÎÏÎÎÎÎÎÏÎÎ ÏÎÎ ÎÎÎÎÏ ÎÏÎÏÎÎÎÎÏ GNOME."
+
+#: C/hellognome.js.page:22(note/p)
+msgid ""
+"Have you gotten GNOME installed on your computer, and <link xref=\"set-up-"
+"gedit.js\">gedit</link> set up to write code with? You'll want to do these "
+"things first."
+msgstr ""
+"ÎÏÎÏÎ ÏÎÏÎÎ ÏÎÎ ÏÏÎÎÎÎÎÏÏÎ ÏÎÏ ÎÎ ÎÎÎÎÏÎÏÏÎÎÎÎÎ ÏÎ GNOME ÎÎÎ <link xref="
+"\"set-up-gedit.js\">gedit</link> ÏÏÎÎÎÏÎÎÎÎ ÎÎ ÎÏÎÏÎÎ ÎÏÎÎÎÎ ÎÎ ?. ÎÎ ÎÎÎÎÏÎ "
+"ÎÎ ÎÎÎÎÏÎ ÎÏÏÎ ÏÎ ÏÏÎÎÎÎÏÎ ÏÏÏÏÎ."
+
+#: C/hellognome.js.page:28(section/title)
+msgid "Let's start with a web page"
+msgstr "ÎÏ ÎÏÏÎÏÎÏÎÎ ÎÎ ÎÎÎ ÎÏÏÎÏÎÎÎÎÎ"
+
+#: C/hellognome.js.page:30(section/p)
+msgid ""
+"Here's some basic HTML, CSS, and JavaScript code. Does this look familiar?"
+msgstr ""
+"ÎÎÎÏ ÎÎÏÎÎÎÏ ÎÎÏÎÎÏÏ ÎÏÎÎÎÎÏ HTML, CSS ÎÎÎ JavaScript. ÎÎÏ ÏÎÎÎÎÏÎÎ ÎÏÏÏÏ "
+"ÎÎÎÎÎÎÏ;"
+
+#: C/hellognome.js.page:31(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"&lt;!DOCTYPE html&gt;\n"
+"&lt;html&gt;\n"
+"    &lt;head&gt;\n"
+"        &lt;title&gt;Hello, GNOME!&lt;/title&gt;\n"
+"\n"
+"        &lt;!-- Use JavaScript to show a greeting when someone clicks the button --&gt;\n"
+"        &lt;script type=\"application/javascript\"&gt;\n"
+"        function greeting () {\n"
+"            document.getElementById (\"greeting\").innerHTML = (\"O hai!\");\n"
+"        }\n"
+"        &lt;/script&gt;\n"
+"\n"
+"        &lt;!-- Very basic CSS style using the GNOME font --&gt;\n"
+"        &lt;style type=\"text/css\"&gt;\n"
+"            body {\n"
+"                font-face: Cantarell, sans-serif;\n"
+"                text-align: center; }\n"
+"        &lt;/style&gt;\n"
+"\n"
+"    &lt;/head&gt;\n"
+"    &lt;body&gt;\n"
+"        &lt;br /&gt; &lt;br /&gt;\n"
+"        &lt;button type=\"button\" onclick=\"greeting()\"&gt;Hello, GNOME!&lt;/button&gt;\n"
+"\n"
+"        &lt;!-- Empty H1 element gets filled in when the button is clicked --&gt;\n"
+"        &lt;h1 id=\"greeting\"&gt;&lt;/h1&gt;\n"
+"    &lt;/body&gt;\n"
+"&lt;/html&gt;\n"
+msgstr ""
+"\n"
+"&lt;!DOCTYPE html&gt;\n"
+"&lt;html&gt;\n"
+"    &lt;head&gt;\n"
+"        &lt;title&gt;Hello, GNOME!&lt;/title&gt;\n"
+"\n"
+"        &lt;!-- Use JavaScript to show a greeting when someone clicks the button --&gt;\n"
+"        &lt;script type=\"application/javascript\"&gt;\n"
+"        function greeting () {\n"
+"            document.getElementById (\"greeting\").innerHTML = (\"O hai!\");\n"
+"        }\n"
+"        &lt;/script&gt;\n"
+"\n"
+"        &lt;!-- Very basic CSS style using the GNOME font --&gt;\n"
+"        &lt;style type=\"text/css\"&gt;\n"
+"            body {\n"
+"                font-face: Cantarell, sans-serif;\n"
+"                text-align: center; }\n"
+"        &lt;/style&gt;\n"
+"\n"
+"    &lt;/head&gt;\n"
+"    &lt;body&gt;\n"
+"        &lt;br /&gt; &lt;br /&gt;\n"
+"        &lt;button type=\"button\" onclick=\"greeting()\"&gt;Hello, GNOME!&lt;/button&gt;\n"
+"\n"
+"        &lt;!-- Empty H1 element gets filled in when the button is clicked --&gt;\n"
+"        &lt;h1 id=\"greeting\"&gt;&lt;/h1&gt;\n"
+"    &lt;/body&gt;\n"
+"&lt;/html&gt;\n"
+
+#: C/hellognome.js.page:62(section/p)
+msgid ""
+"Let's save this as <file>hellognome.html</file>, and see what it looks like "
+"when we run it!"
+msgstr ""
+"ÎÏ ÏÎ ÎÏÎÎÎÎÎÏÏÎÏÎÎ ÏÏ <file>hellognome.html</file> ÎÎÎ ÎÎ ÎÎÏÎÎ ÏÏÏ "
+"ÏÎÎÎÎÏÎÎ ÏÏÎÎ ÏÎÎ ÎÎÏÎÎÎÏÎÎ!"
+
+#: C/hellognome.js.page:66(section/p)
+msgid ""
+"You <em>can</em> run the above code by opening <file>hellognome.html</file> "
+"in a web browser. But here, we're going to create a GNOME application that "
+"runs our web app inside of it, just like you see in the screenshot. You'll "
+"be able to resize and maximize the window, and click the X in the corner to "
+"close it, just like you'd expect from any other GNOME app. The difference is "
+"that this one will run our web code inside of it."
+msgstr ""
+"<em>ÎÏÎÏÎÎÏÎ</em> ÎÎ ÎÎÏÎÎÎÏÎÏÎ ÏÎÎ ÏÎÏÎÏÎÎÏ ÎÏÎÎÎÎ ÎÎÎÎÎÎÎÏÎÏ ÏÎ "
+"<file>hellognome.html</file> ÏÎ ÎÎÎÎ ÏÎÏÎÎÎÎÏÎ ÎÏÏÎÏ. ÎÎÎÎ ÎÎÏ, ÏÏÏÎÎÎÏÎÎ ÎÎ "
+"ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ ÎÎÎ ÎÏÎÏÎÎÎÎ GNOME ÏÎÏ ÏÏÎÏÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ ÎÏÏÎÏ ÎÎÏ ÎÎÏÎ "
+"ÏÎÏ, ÎÎÏÎÎÏÏ ÏÏÏÏ ÎÎÎÏÎÏÎ ÏÏÎ ÏÏÎÎÎÎÏÏÏÏÎ. ÎÎ ÎÏÎÏÎÏÎÏÎ ÎÎ ÎÏÎÎÎÎÎÏÏÎÏÎ ÎÎÎ "
+"ÎÎ ÎÎÎÎÏÏÎÏÎÎÎÏÎÏÎ ÏÎ ÏÎÏÎÎÏÏÎ ÎÎÎ ÏÎÏÏÎÏÎÏ ÏÎ Î ÏÏÎ ÎÏÎÎÎ ÎÎ ÏÎ ÎÎÎÎÏÎÏÎ, "
+"ÎÎÏÎÎÏÏ ÏÏÏÏ ÎÎ ÏÎÏÎÎÎÎÎÏÎ ÎÏÏ ÎÎÎÎ ÎÎÎÎ ÎÏÎÏÎÎÎÎ GNOME. Î ÎÎÎÏÎÏÎ ÎÎÎÎÎ ÏÏÎ "
+"ÎÏÏÏ ÎÎ ÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÏÎÎÎÎ ÏÎÏ ÎÏÏÎÏ ÎÎÏÎ ÏÎÏ."
+
+#: C/hellognome.js.page:67(section/p)
+msgid ""
+"The best part? We're going to continue to use JavaScript, to write all the "
+"parts that make our app work with GNOME. Let's look at the code, and see how "
+"it's done!"
+msgstr ""
+"ÎÎ ÎÏÎÏÏÎ ÎÎÏÎÏ; ÎÏÏÎÎÎÏÎÎ ÎÎ ÏÏÎÎÏÎÏÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ JavaScript, ÎÎ "
+"ÎÏÎÏÎÏÎÎ ÏÎÎ ÏÎ ÎÎÏÎ ÏÎÏ ÎÎÎÎÏÎ ÏÎÎ ÎÏÎÏÎÎÎÎ ÎÎÏ ÎÎ ÎÎÏÎÎÏÎÎ ÎÎ GNOME. ÎÏ "
+"ÎÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÏÎÎÎÎ ÎÎÎ ÎÏ ÎÎÏÎÎ ÏÏÏ ÏÎÎÎÎÏÎÎÎ!"
+
+#: C/hellognome.js.page:71(section/title)
+msgid "Creating a GNOME window to frame our web app"
+msgstr "ÎÎÎÎÎÏÏÎÎÎ ÎÎÏÏ ÏÎÏÎÎÏÏÎÏ GNOME ÏÏ ÏÎÎÎÏÎÎÏ ÎÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ ÎÎÏ"
+
+#: C/hellognome.js.page:73(section/p)
+msgid ""
+"First, we need to tell GNOME that this is a JavaScript application, which "
+"uses gjs. Gjs is GNOME's way of turning your JavaScript code into "
+"instructions it understands, so this line always has to go at the start of "
+"your applications."
+msgstr ""
+"ÎÏÏÏÎ, ÏÏÎÎÎÎÏÎÎÏÏÎ ÎÎ ÏÎÏÎÎ ÏÏÎ GNOME ÏÏÎ ÎÏÏÎ ÎÎÎÎÎ ÎÎÎ ÎÏÎÏÎÎÎÎ "
+"JavaScript, ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÎ gjs. Gjs ÎÎÎÎÎ ÎÎÎÏ ÏÏÏÏÎÏ ÏÎÏ GNOME ÎÎ "
+"ÎÎÏÎÏÏÎÏÎÎ ÏÎÎ ÎÏÎÎÎÎ ÏÎÏ JavaScript ÏÎ ÎÎÎÎÎÎÏ ÏÎÏ ÎÎÏÎÎÎÎÎÎÎÎÎ, ÎÏÏÎ ÎÏÏÎ "
+"Î ÎÏÎÎÎÎ ÏÏÎÏÎÎ ÏÎÎÏÎ ÎÎ ÏÎÎÎÎÎÎÎ ÏÏÎÎ ÎÏÏÎ ÏÏÎ ÎÏÎÏÎÎÎÏÎ ÏÎÏ."
+
+#: C/hellognome.js.page:74(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"#!/usr/bin/gjs\n"
+msgstr ""
+"\n"
+"#!/usr/bin/gjs\n"
+
+#: C/hellognome.js.page:77(section/p)
+msgid "After that, we need to tell GNOME which libraries we want to import."
+msgstr ""
+"ÎÎÏÎ ÎÏÏ ÎÏÏÏ, ÏÏÎÎÎÎÏÎÎÏÏÎ ÎÎ ÏÎÏÎÎ ÏÏÎ GNOME ÏÎÎÎÏ ÎÎÎÎÎÎÎÎÎÎÏ ÎÎÎÎÏÎÎ ÎÎ "
+"ÎÎÏÎÎÎÏÎÎ."
+
+#: C/hellognome.js.page:78(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"const GLib = imports.gi.GLib;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"const Webkit = imports.gi.WebKit;\n"
+msgstr ""
+"\n"
+"const GLib = imports.gi.GLib;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"const Webkit = imports.gi.WebKit;\n"
+
+#: C/hellognome.js.page:84(section/p)
+msgid ""
+"Just like how add-on libraries like jQuery let us do extra things with "
+"JavaScript, each of these libraries gives us new capabilities for our GNOME "
+"apps:"
+msgstr ""
+"ÎÏÏ ÏÏÏÏÎÎÏÎÏ ÎÎÎÎÎÎÎÎÎÎÏ ÏÏÏÏ Î jQuery ÎÎÏ ÎÏÎÏÏÎÏÎÏÎ ÎÎ ÎÎÎÎÏÎÎ ÏÏÏÏÎÎÏÎ "
+"ÏÏÎÎÎÎÏÎ ÎÎ ÏÎÎ JavaScript, ÎÎÎÎÎÎÎ ÎÏÏ ÎÏÏÎÏ ÏÎÏ ÎÎÎÎÎÎÎÎÎÎÏ ÎÎÏ ÎÎÎÎÎ ÎÎÎÏ "
+"ÎÏÎÎÏÏÏÎÏÎÏ ÎÎÎ ÏÎÏ ÎÏÎÏÎÎÎÎÏ ÎÎÏ ÏÏÎ GNOME:"
+
+#: C/hellognome.js.page:86(item/p)
+msgid ""
+"<file>Gtk</file> and <file>Lang</file> are basic parts of any GNOME "
+"application, which let you create windows and widgets and tie them together."
+msgstr ""
+"<file>Gtk</file> ÎÎÎ <file>Lang</file> ÎÎÎÎÎ ÎÎÏÎÎÎ ÎÎÏÎ ÎÎÎÎ ÎÏÎÏÎÎÎÎÏ "
+"GNOME, ÏÎÏ ÏÎÏ ÎÏÎÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎ ÏÎÏÎÎÏÏÎ ÎÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÎ "
+"ÎÎ ÏÎ ÏÏÎÎÎÏÎÏÎ ÎÎÎÎ."
+
+#: C/hellognome.js.page:87(item/p)
+msgid ""
+"<file>GLib</file> is a helper library, which lets us do things like tell "
+"GNOME where the <file>hellognome.html</file> file we created is."
+msgstr ""
+"Î <file>GLib</file> ÎÎÎÎÎ ÎÎÎ ÎÎÎÎÎÏÎÎÎ ÎÎÎÎÎÎÎÎÎÎ, ÏÎÏ ÎÏÎÏÏÎÏÎÎ ÎÎ ÎÎÎÎÏÎ "
+"ÏÏÎÎÎÎÏÎ ÏÏÏÏ ÎÎ ÏÎÎÏÎ ÏÏÎ GNOME ÏÎÏ ÎÎÎÎÎ ÏÎ ÎÏÏÎÎÎ <file>hellognome.html</"
+"file>ÏÎÏ ÎÎÎÎÎÏÏÎÎÏÎÎÎ."
+
+#: C/hellognome.js.page:88(item/p)
+msgid ""
+"And <file>Webkit</file> is a web rendering engine, which we'll use to "
+"basically create a browser window to open our HTML file with."
+msgstr ""
+"ÎÎÎ ÏÎ <file>Webkit</file> ÎÎÎÎÎ ÎÎÎ ÎÎÏÎÎÎ ÎÏÏÎÎÏÎÏ ÎÏÏÎÏ, ÏÎÏ ÎÎ "
+"ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ ÎÎÏÎÎÎ ÎÎÎ ÏÎÏÎÎÏÏÎ ÏÎÏÎÎÎÎÏÎ ÎÎÎ ÎÎ "
+"ÎÎÎÎÎÎÏÎÎ ÏÎ ÎÏÏÎÎÎ ÎÎÏ HTML."
+
+#: C/hellognome.js.page:91(section/p)
+msgid "Now we create the application itself:"
+msgstr "ÎÏÏÎ ÎÎÎÎÎÏÏÎÎÏÎÎ ÏÎÎ ÎÎÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ:"
+
+#: C/hellognome.js.page:92(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"const HelloGNOME = new Lang.Class ({\n"
+"    Name: 'Hello GNOME',\n"
+msgstr ""
+"\n"
+"const HelloGNOME = new Lang.Class ({\n"
+"    Name: 'Hello GNOME',\n"
+
+#: C/hellognome.js.page:96(section/p)
+msgid ""
+"This will look familiar to you if you've worked with object-oriented "
+"JavaScript before. That's right; our whole application is a class called "
+"HelloGNOME. And as you can see, we've given it a property that says what its "
+"name is."
+msgstr ""
+"ÎÏÏÏ ÎÎ ÎÎÎÏÎÎÎ ÎÎÎÎÎÎ ÏÎ ÏÎÏ ÎÎÎ ÎÏÎÏÎ ÎÎÏÎÎÏÎÎ ÎÎ ÎÎÏÎÎÎÎÎÎÎÎÏÏÏÎÏÎ "
+"JavaScript ÏÏÎÎ. ÎÏÏÏ ÎÎÎÎÎ ÏÏÏÏÏÂ ÏÎÎ ÎÎÏ Î ÎÏÎÏÎÎÎÎ ÎÎÎÎÎ ÎÎÎ ÎÎÎÏÎ ÏÎÏ "
+"ÎÎÎÎÏÎÎ HelloGNOME. ÎÎÎ ÏÏÏÏ ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÏÎ, ÏÎÏ ÎÏÏÎÎÎ ÎÎÎ ÎÎÎÏÏÎÏÎ ÏÎÏ "
+"ÎÎÎÎ ÏÎÎÎ ÎÎÎÎÎ ÏÎ ÏÎÎÎÎ ÏÎÏ."
+
+#: C/hellognome.js.page:98(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"    // Create the application itself\n"
+"    _init: function () {\n"
+"        this.application = new Gtk.Application ();\n"
+"\n"
+"        // Connect 'activate' and 'startup' signals to the callback functions\n"
+"        this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"        this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents windows when active\n"
+"    _onActivate: function () {\n"
+"        this._window.present ();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function () {\n"
+"        this._buildUI ();\n"
+"    },\n"
+msgstr ""
+"\n"
+"    // Create the application itself\n"
+"    _init: function () {\n"
+"        this.application = new Gtk.Application ();\n"
+"\n"
+"        // Connect 'activate' and 'startup' signals to the callback functions\n"
+"        this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"        this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents windows when active\n"
+"    _onActivate: function () {\n"
+"        this._window.present ();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function () {\n"
+"        this._buildUI ();\n"
+"    },\n"
+
+#: C/hellognome.js.page:118(section/p)
+msgid ""
+"Here's some code you will more or less copy-and-paste for every JavaScript "
+"application you build. It creates a new Application, and then binds its "
+"activate and startup signals to functions that make the window show itself "
+"and build its user interface, respectively."
+msgstr ""
+"ÎÎÎÏ ÎÎÏÎÎÏÏ ÎÏÎÎÎÎÏ ÏÎÏ ÏÎÏÎÏÏÏÏÎÏÎ Î ÎÎÎÏÏÎÏÎ ÎÎ ÎÎÏÎÎÏÎÏÎÏÎ ÎÎÎ ÎÎ "
+"ÎÏÎÎÎÎÎÎÏÎÏÎ ÎÎÎ ÎÎÎÎ ÎÏÎÏÎÎÎÎ JavaScript ÏÎÏ ÎÎÏÎÏÎÎÏÎÎÎÏÎ. ÎÎÎÎÎÏÏÎÎÎ ÎÎÎ "
+"ÎÎÎ ÎÏÎÏÎÎÎÎ ÎÎÎ ÎÏÎÎÏÎ ÏÏÎÎÎÎÎ ÏÎ ÎÎÎÏÎÎÏÎÎÎÎÎÎÎ ÎÎÎ ÎÏÏÎÎÎ ÏÎÎÎÏÎ ÏÎÏ ÎÎ "
+"ÏÏÎÎÏÏÎÏÎÎÏ ÏÎÏ ÎÎÎÎÏÎ ÏÎ ÏÎÏÎÎÏÏÎ ÎÎ ÎÎÏÎÎÎÎÎÏÎÎ ÏÎ ÎÎÎÎ ÎÎÎ ÎÎ "
+"ÎÎÏÎÏÎÎÏÎÎÎÎ ÏÎ ÎÎÎÏÎÏÎ ÏÏÎÏÏÎ ÏÎÏ ÎÎÏÎÏÏÎÎÏÎ."
+
+#: C/hellognome.js.page:119(section/p)
+msgid ""
+"What does that mean? Well, everything in a GNOME application sends out a "
+"signal when something important happens. A button might send out the clicked "
+"signal when you click on it, for instance. Our job is to connect the signals "
+"to functions which handle them, and make the things that we want to have "
+"happen occur. We do this using each object's connect method, which takes two "
+"arguments: The signal we want to handle, and the Lang.bind function, which "
+"we have to use to tell connect which function we want to have handle the "
+"signal."
+msgstr ""
+"ÎÎ ÏÎÎÎÎÎÎÎ ÎÏÏÏ; ÎÎÎÏÏÎ, ÏÎ ÎÎÎÎÏÎ ÏÎ ÎÎÎ ÎÏÎÏÎÎÎÎ GNOME ÏÏÎÎÎÎÎ ÎÎÎ ÏÎÎÎ "
+"ÏÏÎÎ ÎÎÏÎ ÏÎÎÎÎÏÎÎÏ ÏÏÎÎÎÎÎÎÎ. ÎÎÎ ÎÎÏÎÏÎ ÎÏÎÏÎÎ ÎÎ ÏÏÎÎÎÎÎ ÏÎ ÏÎÏÎÎÎÎÎ ÏÎÎÎ "
+"ÏÏÎÎ ÏÎ ÏÎÏÎÏÎ, ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ. Î ÎÎÏÎÎÎÎ ÎÎÏ ÎÎÎÎÎ ÎÎ ÏÏÎÎÎÏÎÏÎÎ ÏÎ ÏÎÎÎÏÎ "
+"ÎÎ ÏÎÏ ÏÏÎÎÏÏÎÏÎÎÏ ÏÎÏ ÏÎÏ ÏÎÎÏÎÎÎÎÏÎÎ ÎÎÎ ÎÎ ÎÎÎÎÏÎÎ ÏÎ ÏÏÎÎÎÎÏÎ ÏÎÏ "
+"ÎÎÎÎÏÎÎ ÎÎ ÎÏÎÏÎ ÏÏÎÎÎÎ ÎÎ ÎÎÎÎÏÎ. ÎÎ ÎÎÎÎÏÎÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ ÎÎÎÎÎÎ "
+"ÏÏÎÎÎÏÎÏ ÎÎÎÎ ÎÎÏÎÎÎÎÎÎÎÎÏ, ÏÎÏ ÏÎÎÏÎÎÎ ÎÏÎ ÎÏÎÏÎÎÏÎ: ÎÎ ÏÎÎÎ ÏÎÏ ÎÎÎÎÏÎÎ ÎÎ "
+"ÏÎÎÏÎÏÏÎÏÎÎ ÎÎÎ ÏÎ ÏÏÎÎÏÏÎÏÎ Lang.bind, ÏÎÏ ÏÏÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÎÎ "
+"ÎÎ ÏÎÏÎÎ ÏÏÎ ÏÏÎÎÎÏÎ ÏÎÎÎ ÏÏÎÎÏÏÎÏÎ ÎÎÎÎÏÎÎ ÎÎ ÏÎÎÏÎÏÏÎÎ ÏÎ ÏÎÎÎ."
+
+#: C/hellognome.js.page:120(section/p)
+msgid ""
+"In this case, we want _onActivate to handle the activate signal, and "
+"_onStartup to handle the startup signal. _onActivate just tells the window "
+"to present itself; so basically, whenever you <keyseq><key>Alt</key> "
+"<key>Tab</key></keyseq> to the application it appears, like you would expect "
+"it to. _onStartup calls _buildUI, which is the function that creates our "
+"user interface and is the next part that we will look at."
+msgstr ""
+"ÎÎ ÎÏÏÎÎ ÏÎÎ ÏÎÏÎÏÏÏÏÎ, ÎÎÎÎÏÎÎ ÏÎÎ _onActivate ÎÎ ÏÎÎÏÎÏÏÎÎ ÏÎ "
+"ÎÎÎÏÎÎÏÎÎÎÎÎÎÎ ÏÎÎÎ ÎÎÎ ÏÎ _onStartup ÎÎ ÏÎÎÏÎÏÏÎÎ ÏÎ ÎÏÏÎÎÏ ÏÎÎÎ. Î "
+"_onActivate ÎÏÎÎ ÎÎÎÎ ÏÏÎ ÏÎÏÎÎÏÏÎ ÎÎ ÏÎÏÎÏÏÎÎÏÎÎ ÏÎÎ ÎÎÏÏÏÎ ÏÎÏÂ ÎÏÏÎ "
+"ÎÎÏÎÎÎ, ÏÏÎÏÎ ÏÎÏÎÏÎ <keyseq><key>Alt</key> <key>Tab</key></keyseq> ÏÏÎÎ "
+"ÎÏÎÏÎÎÎÎ ÏÎÎÎÎÏÎÎ, ÏÏÏÏ ÎÎ ÏÎ ÏÎÏÎÎÎÎÎÏÎ. Î _onStartup ÎÎÎÎÎ _buildUI, ÏÎÏ "
+"ÎÎÎÎÎ Î ÏÏÎÎÏÏÎÏÎ ÏÎÏ ÎÎÎÎÎÏÏÎÎÎ ÏÎ ÎÎÎÏÎÏÎ ÏÏÎÏÏÎ ÎÎÏ ÎÎÎ ÎÎÎÎÎ ÏÎ ÎÏÏÎÎÎÎ "
+"ÎÎÏÎÏ ÏÎÏ ÎÎ ÎÎÎÏÎÎÎÏÎÎ."
+
+#: C/hellognome.js.page:121(note/p)
+msgid ""
+"When you copy and paste the above code for your own applications, be sure to "
+"change the name to a unique one each time."
+msgstr ""
+"ÎÏÎÎ ÎÎÏÎÎÏÎÏÎÏÎ ÎÎÎ ÎÏÎÎÎÎÎÎÏÎ ÏÎÎ ÏÎÏÎÏÎÎÏ ÎÏÎÎÎÎ ÎÎÎ ÏÎÏ ÎÎÎÎÏ ÏÎÏ "
+"ÎÏÎÏÎÎÎÎÏ, ÎÎÎÎÎÏÎÎÎÏÎ ÎÎ ÎÎÎÎÎÎÏÎ ÏÎ ÏÎÎÎÎ ÏÎ ÎÎÎ ÎÎÎÎÎÎÎÏ ÎÎÎÎ ÏÎÏÎ."
+
+#: C/hellognome.js.page:125(section/title)
+msgid "Designing our window's UI"
+msgstr "ÎÏÎÎÎÎÏÎ ÏÎÏ UI ÏÎÏ ÏÎÏÎÎÏÏÎÏ ÎÎÏ"
+
+#: C/hellognome.js.page:126(section/p)
+msgid ""
+"In the _buildUI function, we're going to tell GNOME about our window and the "
+"things inside it, one at a time. After that, we're going to connect "
+"everything together and put it all on display."
+msgstr ""
+"ÎÏÎ ÏÏÎÎÏÏÎÏÎ _buildUI, ÏÏÏÎÎÎÏÎÎ ÎÎ ÏÎÏÎÎ ÏÏÎ GNOME ÎÎÎ ÏÎ ÏÎÏÎÎÏÏÏ ÎÎÏ ÎÎÎ "
+"ÏÎ ÏÏÎÎÎÎÏÎ ÎÎÏÎ ÏÎÏ, ÎÎÎ ÏÎ ÏÎÏÎ. ÎÎÏÎ ÎÏÏ ÎÏÏÏ, ÏÏÏÎÎÎÏÎÎ ÎÎ ÏÏÎÎÎÏÎÏÎÎ ÏÎ "
+"ÎÎÎÎÏÎ ÎÎÎÎ ÎÎÎ ÎÎ ÏÎ ÎÎÎÎÏÎÎ ÏÎÎ ÏÎ ÏÏÎÎÎÎÎ."
+
+#: C/hellognome.js.page:128(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function () {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow  ({\n"
+"            application: this.application,\n"
+"            title: \"Welcome to GNOME\",\n"
+"            default_height: 200,\n"
+"            default_width: 400,\n"
+"            window_position: Gtk.WindowPosition.CENTER });\n"
+msgstr ""
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function () {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow  ({\n"
+"            application: this.application,\n"
+"            title: \"Welcome to GNOME\",\n"
+"            default_height: 200,\n"
+"            default_width: 400,\n"
+"            window_position: Gtk.WindowPosition.CENTER });\n"
+
+#: C/hellognome.js.page:141(section/p)
+msgid ""
+"The first object we create is an ApplicationWindow. It needs a title to go "
+"in the title bar, and its application property needs to be the application "
+"that we created, above. Beyond that, there are various ways of customizing "
+"how it looks, which the <link xref=\"GtkApplicationWindow.js"
+"\">ApplicationWindow</link> reference page will go into more detail about. "
+"As you can see here, we gave it a default height and width (measured in "
+"pixels), and told GNOME we want our window to appear in the center of the "
+"screen."
+msgstr ""
+"ÎÎ ÏÏÏÏÎ ÎÎÏÎÎÎÎÎÎÎÎ ÏÎÏ ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎÎÎ ÎÎÎ ApplicationWindow. "
+"ÎÏÎÎÎÎÎÏÎÎ ÎÎÎÎ ÏÎÏÎÎ ÎÎ ÎÏÎÎ ÏÏÎ ÎÏÎÎÎÎ ÏÎÏÎÎÏ ÎÎÎ Î ÎÎÎÏÏÎÏÎ ÎÏÎÏÎÎÎÎÏ ÏÎÏ "
+"ÏÏÎÎÎÎÎÏÎÎ ÎÎ ÎÎÎÎÎ Î ÎÏÎÏÎÎÎÎ ÏÎÏ ÎÎÎÎÎÏÏÎÎÏÎÎÎ, ÏÎÏÎÏÎÎÏ. ÎÎÏÎ ÎÏÏ ÎÏÏÏ, "
+"ÏÏÎÏÏÎÏÎ ÏÎÎÎÎÎÎÎ ÏÏÏÏÎÎ ÏÏÎÏÎÏÎÎÎÎÏ ÏÎÏ ÎÎÏÎÎÎÏÎÏ ÏÎÏ, ÏÎÏ Î ÏÎÎÎÎÎ "
+"ÎÎÎÏÎÏÎÏ <link xref=\"GtkApplicationWindow.js\">ApplicationWindow</link> ÎÎ "
+"ÎÏÎÎ ÏÎ ÏÎÏÎÏÏÏÏÎÏÎÏ ÎÎÏÏÎÎÎÏÎÎÎÏ. ÎÏÏÏ ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÏÎ ÎÎÏ, ÏÎÏ ÎÎÎÎÏÎÎ "
+"ÎÎÎ ÏÏÎÎÏÎÎÎÎÎÎÎÎ ÏÏÎÏ ÎÎÎ ÏÎÎÏÎÏ (ÎÎÏÏÎÎÎÎÎ ÏÎ ÎÎÎÎÎÎÏÏÎÎÏÎÎÎ) ÎÎÎ ÎÎÎÎ ÏÏÎ "
+"GNOME ÏÏÎ ÎÎÎÎÏÎÎ ÏÎ ÏÎÏÎÎÏÏÎ ÎÎÏ ÎÎ ÎÎÏÎÎÎÏÏÎÎ ÏÏÎ ÎÎÎÏÏÎ ÏÎÏ ÎÎÏÎÎÏ."
+
+#: C/hellognome.js.page:142(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"        // Create a webview to show the web app\n"
+"        this._webView = new Webkit.WebView ();\n"
+"\n"
+"        // Put the web app into the webview\n"
+"        this._webView.load_uri (GLib.filename_to_uri (GLib.get_current_dir() +\n"
+"            \"/hellognome.html\", null));\n"
+msgstr ""
+"\n"
+"        // Create a webview to show the web app\n"
+"        this._webView = new Webkit.WebView ();\n"
+"\n"
+"        // Put the web app into the webview\n"
+"        this._webView.load_uri (GLib.filename_to_uri (GLib.get_current_dir() +\n"
+"            \"/hellognome.html\", null));\n"
+
+#: C/hellognome.js.page:150(section/p)
+msgid ""
+"Remember how we imported Webkit right at the start? Here we're creating a "
+"new instance of a Webkit class called a WebView, which is more or less a "
+"browser window you can put inside of your app. After that, we then give it "
+"the URI that we want it to load when the application starts up."
+msgstr ""
+"ÎÎ ÎÏÎÎÏÏÎ ÏÏÏ ÎÎÏÎÎÎÎÎ ÏÎ Webkit ÎÎÎÎÎ ÏÏÎÎ ÎÏÏÎ. ÎÎÏ ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ ÎÎÎ "
+"ÏÏÎÎÎÎÏÏÏÏÎ ÏÎÏ ÎÎÎÏÎÏ Webkit ÏÎÏ ÎÎÎÎÏÎÎ ÎÎÎ WebView, ÏÎÏ ÎÎÎÎÎ ÏÎÏÎÏÏÏÏÎÏÎ "
+"Î ÎÎÎÏÏÎÏÎ ÎÎÎ ÏÎÏÎÎÏÏÎ ÏÎÏÎÎÎÎÏÎ ÏÏÎÏ ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÎÏÎ ÎÎÏÎ ÏÎÎ ÎÏÎÏÎÎÎÎ "
+"ÏÎÏ. ÎÎÏÎ ÎÏÏ ÎÏÏÏ, ÏÎÏ ÎÎÎÎÏÎÎ ÎÏÎÎÏÎ ÏÎÎ URI ÏÎÏ ÎÎÎÎÏÎÎ ÎÎ ÏÎÏÏÏÏÎÎ ÏÏÎÎ "
+"Î ÎÏÎÏÎÎÎÎ ÎÎÎÎÎÎ."
+
+#: C/hellognome.js.page:151(section/p)
+msgid ""
+"We <em>could</em> just give it a web URI, like <link href=\"http://gnome.org";
+"\">http://gnome.org</link>. Instead, here we use a couple of GLib helper "
+"functions to tell the WebView where our <file>hellognome.html</file> file "
+"is. GLib.get_current_dir returns the directory that our app's running in, "
+"and GLib.filename_to_uri turns our file's path and filename into a URI that "
+"the WebView's load_uri function understands. (filename_to_uri's second "
+"parameter should be null unless you know what it's used for and have a "
+"reason for changing it.)"
+msgstr ""
+"ÎÎ <em>ÎÏÎÏÎÏÏÎÎÎ</em> ÎÎ ÏÎÏ ÎÏÏÎÏÎÎ ÎÏÎÎ ÎÎÎ URI ÎÏÏÎÏ, ÏÏÏÏ <link href="
+"\"http://gnome.org\";>http://gnome.org</link>. ÎÎÏÎÎÎÏÎ, ÎÎÏ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ "
+"ÎÎÎÎÏ ÎÎÎÎÎÏÎÎÎÏ ÏÏÎÎÏÏÎÏÎÎÏ ÏÎÏ GLib ÎÎÎ ÎÎ ÏÎÏÎÎ ÏÏÎ WebView ÏÎÏ ÎÎÎÎÎ ÏÎ "
+"ÎÏÏÎÎÎ ÎÎÏ <file>hellognome.html</file>. Î GLib.get_current_dir ÎÏÎÏÏÏÎÏÎÎ "
+"ÏÎÎ ÎÎÏÎÎÎÎÎ ÏÎÏ ÎÎÏÎÎÎÎÏÎÎ Î ÎÏÎÏÎÎÎÎ ÎÎÏ ÎÎÎ ÏÎ GLib.filename_to_uri "
+"ÎÏÎÏÏÏÎÏÎÎ ÏÎ ÎÎÎÎÏÎÎÎ ÏÎÏ ÎÏÏÎÎÎÏ ÎÎÏ ÎÎÎ ÏÎ ÏÎÎÎÎ ÎÏÏÎÎÎÏ ÏÎ ÎÎÎ URI ÏÎÏ Î "
+"ÏÏÎÎÏÏÎÏÎ load_uri ÏÎÏ WebView ÎÎÏÎÎÎÎÎÎÎÎÎ. (Î ÎÎÏÏÎÏÎ ÏÎÏÎÎÎÏÏÎÏ "
+"filename_to_uri's ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎ ÎÎÎÎÎ ÎÎÏÏÏ ÎÎÎ ÎÎÏÎÏÎ ÏÎ ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ "
+"ÎÎÎ ÎÏÎÏÎ ÎÎÎÎ ÎÏÎÎ ÎÎ ÏÎ ÎÎÎÎÎÎÏÎ.)"
+
+#: C/hellognome.js.page:152(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"        // Put the webview into the window\n"
+"        this._window.add (this._webView);\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    },\n"
+"\n"
+"});\n"
+msgstr ""
+"\n"
+"        // Put the webview into the window\n"
+"        this._window.add (this._webView);\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    },\n"
+"\n"
+"});\n"
+
+#: C/hellognome.js.page:162(section/p)
+msgid ""
+"Each window can hold one, and only one, widget. Normally, we'd use a "
+"container widget like a <link xref=\"grid.js\">Grid</link> to put multiple "
+"widgets into, then use the window's add function to add the Grid to it. "
+"Here, we just need the WebView, so that's all we add to the window. After "
+"that, as the last part of the _buildUI function that creates our window, we "
+"tell the window to show itself and its contents."
+msgstr ""
+"ÎÎÎÎ ÏÎÏÎÎÏÏÎ ÎÏÎÏÎÎ ÎÎ ÎÏÎÏÎÏÎÎ ÎÎÎ ÎÎÎ ÎÏÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ. "
+"ÎÎÎÎÎÎÎÎ, ÎÎ ÏÏÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÎÎÎ ÏÎÏÎÎÎÏÎ ÎÏÎÏÎÎÎÏ ÏÏÏÏÎÏÎÎÎÏ "
+"ÏÏÏÏ ÎÎÎ <link xref=\"grid.js\">ÏÎÎÎÎÎ</link> ÎÎÎ ÎÎ ÎÎÎÎÏÎÎ ÏÎÎÎÎÏÎÎ "
+"ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÏÎ ÎÏÏÏ, ÎÏÎÎÏÎ ÏÏÎÏÎÎÎÏÎÎÎÏÏÎ ÏÎ ÏÏÎÎÏÏÎÏÎ ÏÏÎÏÎÎÎÎÏ "
+"ÏÎÏÎÎÏÏÎÏ ÎÎÎ ÎÎ ÏÏÎÏÎÎÏÎÏÎ ÏÎ ÏÎÎÎÎÎ ÏÎ ÎÏÏÏ. ÎÎÏ, ÏÏÎÏÎÎÏÎÏÎÎ ÎÏÎÎ ÏÎÎ "
+"WebView, ÎÏÏÎ ÏÏÏÎ ÎÎ ÎÎÎÎÎ ÏÏÎ ÏÏÎÏÎÎÏÎÏÎÎ ÏÏÎ ÏÎÏÎÎÏÏÎ. ÎÎÏÎ ÎÏÏ ÎÏÏÏ, ÏÏ "
+"ÏÎ ÏÎÎÎÏÏÎÎÎ ÎÎÏÎÏ ÏÎÏ ÏÏÎÎÏÏÎÏÎÏ _buildUI ÏÎÏ ÎÎÎÎÎÏÏÎÎÎ ÏÎ ÏÎÏÎÎÏÏÎ ÎÎÏ, "
+"ÎÎÎÎ ÏÏÎ ÏÎÏÎÎÏÏÎ ÎÎ ÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÎÏÏÏÎ ÏÎÏ ÎÎÎ ÏÎ ÏÎÏÎÎÏÏÎÎÎÎ ÏÎÏ."
+
+#: C/hellognome.js.page:163(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"// Run the application\n"
+"let app = new HelloGNOME ();\n"
+"app.application.run (ARGV);\n"
+msgstr ""
+"\n"
+"// Run the application\n"
+"let app = new HelloGNOME ();\n"
+"app.application.run (ARGV);\n"
+
+#: C/hellognome.js.page:168(section/p)
+msgid ""
+"Finally, we create a new instance of our HelloGNOME class, and tell GNOME to "
+"run it."
+msgstr ""
+"ÎÎÎÎÎÎ, ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ ÎÎÎ ÏÏÎÎÎÎÏÏÏÏÎ ÏÎÏ ÎÎÎÏÎÏ HelloGNOME ÎÎÎ ÎÎÎÎ ÏÏÎ "
+"GNOME ÎÎ ÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ."
+
+#: C/hellognome.js.page:172(section/title)
+msgid "Running your GNOME application"
+msgstr "ÎÎÏÎÎÎÏÎ ÏÎÏ ÎÏÎÏÎÎÎÎÏ ÏÎÏ GNOME"
+
+#: C/hellognome.js.page:174(section/p)
+msgid ""
+"Now that we've created our first GNOME application, it's time to test it "
+"out! You don't need to compile your app or install any special software for "
+"this; GNOME has gjs built in, to let it run GNOME Shell. Just save "
+"<file>hellognome.html</file> and our actual application, <file>hellognome."
+"js</file>, to a directory you can get to with the terminal. (They usually "
+"open onto your home directory, the one that's called by your username.) "
+"After that, open a terminal, go there, and type:"
+msgstr ""
+"ÎÏÏÎ ÏÎÏ ÎÏÎÏÎÎ ÎÎÎÎÎÏÏÎÎÏÎÎ ÏÎÎ ÏÏÏÏÎ ÎÎÏ ÎÏÎÏÎÎÎÎ GNOME, ÎÎÎÎÎ ÎÎÎÏÏÏ ÎÎ "
+"ÏÎ ÎÎÎÎÎÎÏÎÏÎÎ! ÎÎÎ ÏÏÎÎÎÎÎÏÎÎ ÎÎ ÎÎÏÎÎÎÏÏÏÎÏÎÏÎ ÏÎÎ ÎÏÎÏÎÎÎÎ ÏÎÏ Î ÎÎ "
+"ÎÎÎÎÏÎÏÏÎÏÎÏÎ ÎÏÎÎÎÎÎÏÎÏÎ ÎÎÎÎÎÏ ÎÎÎÎÏÎÎÎÏ ÎÎÎ ÎÏÏÏÂ ÏÎ GNOME ÎÏÎÎ "
+"ÎÎÏÏÎÎÏÏÎÎÎÎ ÏÎ gjs ÎÎÎ ÎÎ ÎÏÎÏÎÏÎÏÎ ÎÎ ÎÎÏÎÎÎÏÎÏÎ ÏÎ ÎÎÎÏÏÎÏ GNOME. ÎÏÎÎ "
+"ÎÏÎÎÎÎÎÏÏÏÎ ÏÎ <file>hellognome.html</file> ÎÎÎ ÏÎÎ ÎÎÎÏÎÎ ÎÎÏ ÎÏÎÏÎÎÎÎ, "
+"<file>hellognome.js</file>, ÏÎ ÎÎÎÎ ÎÎÏÎÎÎÎÎ ÏÎÏ ÎÏÎÏÎÎÏÎ ÎÎ ÏÎÏÎÏÎ ÎÎ ÏÎ "
+"ÏÎÏÎÎÏÎÎÏ. (ÎÏÎÎÎÏÏ ÎÎÎÎÎÎÏÎ ÏÏÎÎ ÏÏÎÏÏÏÎÎÏ ÏÎÏ ÎÎÏÎÎÎÎÎ, ÎÏÏÏÎ ÏÎÏ "
+"ÎÎÎÎÎÎÎÏÎÎ ÎÎ ÏÎ ÏÎÎÎÎ ÏÎÏ ÏÎÏ ÏÏÎÏÏÎ.) ÎÎÏÎ ÎÏÏ ÎÏÏÏ, ÎÎÎÎÎÏÎ ÎÎÎ "
+"ÏÎÏÎÎÏÎÎÏ, ÏÎÎÎÎÎÎÏÎ ÎÎÎÎ ÎÎÎ ÏÎÎÎÏÏÎÎÎÎÎÏÏÎ:"
+
+#: C/hellognome.js.page:175(section/screen)
+#, no-wrap
+msgid " <output style=\"prompt\">$ </output>gjs hellognome.js "
+msgstr " <output style=\"prompt\">$ </output>gjs hellognome.js "
+
+#: C/hellognome.js.page:176(section/p)
+msgid ""
+"You should see more or less the same screenshot as before, with a button "
+"that you can click to make a short message appear."
+msgstr ""
+"ÎÎ ÏÏÎÏÎÎ ÎÎ ÎÎÎÏÎ ÏÎÎÏ ÎÎÏÏ ÏÎ ÎÎÎÎ ÏÏÎÎÎÎÏÏÏÏÎ ÏÏÏÏ ÏÏÎÎ, ÎÎ ÎÎÎ ÎÎÏÎÏÎ "
+"ÏÏÎÏ ÎÏÎÏÎÎÏÎ ÎÎ ÏÎÏÎÏÎÏÎ ÎÎÎ ÎÎ ÏÏÎÎÎÎÎÏÎÏÎ ÏÎÎ ÎÎÏÎÎÎÏÎ ÎÎÏÏ ÏÏÎÏÎÎÎÏ "
+"ÎÎÎÏÎÎÏÎÏ."
+
+#: C/hellognome.js.page:179(note/p)
+msgid "You can use the terminal command"
+msgstr "ÎÏÎÏÎÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÏÎÎ ÎÎÏÎÎÎ ÏÎÏÎÎÏÎÎÎÏ"
+
+#: C/hellognome.js.page:180(note/screen)
+#, no-wrap
+msgid " <output style=\"prompt\">$ </output>cd <var>(directory name)</var> "
+msgstr " <output style=\"prompt\">$ </output>cd <var>(directory name)</var> "
+
+#: C/hellognome.js.page:181(note/p)
+msgid ""
+"to navigate between directories inside the Terminal, in order to get to "
+"where you saved the files. There is also an extension for Nautilus, GNOME's "
+"file manager, which lets you right-click anywhere inside it to open a "
+"terminal window right there. Check the app you use to install new software "
+"(like Add/Remove Programs or the Software Center) for it."
+msgstr ""
+"ÎÎÎ ÎÎ ÏÎÏÎÎÎÎÎÎÎÏÎ ÎÎÏÎÎÏ ÎÎÏÎÎÏÎÏÎ ÎÎÏ ÏÎÎ ÏÎÏÎÎÏÎÎÏ, ÎÎÎ ÎÎ ÎÎÎÏÎ ÏÎÏ "
+"ÎÏÎÎÎÎÎÏÏÎÏÎ ÏÎ ÎÏÏÎÎÎ. ÎÏÎÏÏÎÎ ÎÏÎÏÎÏ ÎÎÎ ÎÏÎÎÏÎÏÎ ÎÎÎ ÏÎÎ ÎÎÏÏÎÎÎ, ÏÎÎ "
+"ÎÎÎÏÎÎÏÎÏÏÎ ÎÏÏÎÎÏÎ ÏÎÏ GNOME, ÏÎÏ ÏÎÏ ÎÏÎÏÏÎÏÎÎ ÎÎ ÎÎÎÎ ÎÎÎÎ ÎÏÎÏÎÎÏÎÏÎ "
+"ÎÎÏÎ ÏÎÏ ÎÎ ÎÎÎÎÎÎÏÎ ÎÎÎ ÏÎÏÎÎÏÎÎÏ ÏÎÏÎÎÏÏÎ ÎÎÏÎÎÏÏ ÎÎÎÎ. ÎÎÎÎÎÏÎ ÏÎÎ "
+"ÎÏÎÏÎÎÎÎ ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÎÏÎ ÎÎÎ ÏÎÎ ÎÎÎÎÏÎÏÏÎÏÎ ÎÎÎÏ ÎÎÎÎÏÎÎÎÎÏ (ÏÏÏÏ "
+"ÏÏÎÏÎÎÎÎ/ÎÏÎÎÏÎÏÎ ÏÏÎÎÏÎÎÎÎÏÏÎ ÏÏÎ ÎÎÎÏÏÎ ÎÎÎÎÏÎÎÎÎÏ) ÎÎÎ ÎÏÏÏ."
+
+#: C/hellognome.js.page:188(section/p)
+msgid ""
+"<link xref=\"02_welcome_to_the_grid.js\">Continue on to the next tutorial</"
+"link> to learn how to build \"native\" GNOME applications that look and feel "
+"like the others, instead of a webview with HTML code inside. Or take a look "
+"at some <link xref=\"beginner.js#samples\">code samples</link>, if you'd "
+"like to see example code for each Gtk widget."
+msgstr ""
+"<link xref=\"02_welcome_to_the_grid.js\">ÎÏÎÎÏÎÏÏÎ ÎÎ ÏÎ ÎÏÏÎÎÎÎ ÎÎÎÎÎÎ</"
+"link> ÎÎÎ ÎÎ ÎÎÎÎÏÎ ÏÏÏ ÎÎ ÎÎÎÎÏÎÏÎ \"native\" ÎÏÎÏÎÎÎÎÏ GNOME ÏÎÏ ÏÎÎÎÎÎÏÎÎ "
+"ÎÎÎ ÎÎÏÎÎÎÎÎÏÎÎ ÏÏÏÏ ÎÎ ÎÎÎÎÏ, ÎÎÏÎÎÎÏÎ ÎÏÏ ÎÎÎ ÏÏÎÎÎÎÎ ÎÏÏÎÏ ÎÎ ÎÏÎÎÎÎ HTML "
+"ÎÎÏÎ ÏÎÏ. Î ÏÎÎÏÎ ÎÎÎ ÎÎÏÎÎ ÏÎ ÎÎÏÎÎÎ <link xref=\"beginner.js#samples"
+"\">ÎÎÎÎÎÎÏÎ ÎÏÎÎÎÎ</link>, ÎÎÎ ÎÎ ÎÎÎÎÏÎ ÎÎ ÎÎÎÏÎ ÏÎÎ ÎÏÎÎÎÎ ÏÎÏ "
+"ÏÎÏÎÎÎÎÎÎÎÏÎÏ ÎÎÎ ÎÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ Gtk."
+
+#: C/hellognome.js.page:189(section/p)
+msgid ""
+"Finally, if you want to just build GNOME applications using JavaScript "
+"libraries designed for the web, you can basically stop here and go do that! "
+"Take a look at the <link xref=\"scrolledwindow.js\">ScrolledWindow</link> "
+"code sample if you'd like to see how to make a WebView widget that can "
+"scroll to show parts of a larger web page, and check out <link xref="
+"\"beginner.js#tutorials\">the later tutorials</link> if you'd like to see "
+"how to create a .desktop file for your application, which will let it appear "
+"in your desktop's Activities menu with all your other apps."
+msgstr ""
+"ÎÎÎÎÎÎ, ÎÎÎ ÎÎÎÎÏÎ ÎÎ ÎÎÏÎÏÎÎÏÎÏÎÏÎ ÎÏÎÎ ÎÏÎÏÎÎÎÎÏ GNOME ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ "
+"ÎÎÎÎÎÎÎÎÎÎÏ JavaScript ÏÎÏ ÏÏÎÎÎÎÏÏÎÎÎÎ ÎÎÎ ÏÎÎ ÎÏÏÏ, ÎÏÎÏÎÎÏÎ ÎÎÏÎÎÎ ÎÎ "
+"ÏÏÎÎÎÏÎÏÎÏÎ ÎÎÏ ÎÎÎ ÎÎ ÏÎÏÎ ÎÎ ÏÎ ÎÎÎÎÏÎ! ÎÎÎÏÎ ÎÎÎ ÎÎÏÎÎ ÏÏÎ ÎÎÎÎÎÎ ÎÏÎÎÎÎ "
+"<link xref=\"scrolledwindow.js\">ScrolledWindow</link> ÎÎÎ ÎÎ ÎÎÎÎÏÎ ÎÎ "
+"ÎÎÎÏÎ ÏÏÏ ÎÎ ÎÎÎÎÏÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ WebView ÏÎÏ ÎÏÎÏÎÎ ÎÎ ÎÏÎÎÏÎÎ ÎÎÎ "
+"ÎÎÏÎÎÎÏÎÎ ÎÎÏÎ ÎÎÎÏ ÎÎÎÎÎÏÏÎÏÎÏ ÎÏÏÎÏÎÎÎÎÎÏ ÎÎÎ ÎÎ ÎÎÎÎÎÎÏÎ <link xref="
+"\"beginner.js#tutorials\">ÏÎ ÏÎÎÎÏÏÎÎÎ ÎÎÎÎÎÎÏÎ</link> ÎÎÎ ÎÎ ÎÎÎÎÏÎ ÎÎ "
+"ÎÎÎÏÎ ÏÎ ÎÎÎÎÎÏÏÎÎÎ ÎÎÏÏ ÎÏÏÎÎÎÏ .desktop ÎÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ ÏÎÏ, ÏÎÏ ÎÎ "
+"ÎÏÎÏÏÎÏÎÎ ÏÎÎ ÎÎÏÎÎÎÏÎ ÏÎÏ ÏÏÎ ÎÎÎÎÏ ÎÎÎÏÎÎÎÏÎ ÏÎÏ ÎÏÎÏÎÎÎÎÎÏ ÎÏÎÎÏÎÎÏ ÏÎÏ "
+"ÎÎ ÏÎÎÏ ÏÎÏ ÎÎÎÎÏ ÎÏÎÏÎÎÎÎÏ ÏÎÏ."
+
+#: C/hellognome.js.page:194(section/code)
+#, no-wrap
+msgid ""
+"#!/usr/bin/gjs\n"
+"\n"
+"const GLib = imports.gi.GLib;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"const Webkit = imports.gi.WebKit;\n"
+"\n"
+"const HelloGNOME = new Lang.Class ({\n"
+"    Name: 'Hello GNOME',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function () {\n"
+"        this.application = new Gtk.Application ();\n"
+"\n"
+"        // Connect 'activate' and 'startup' signals to the callback functions\n"
+"        this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"        this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents windows when active\n"
+"    _onActivate: function () {\n"
+"        this._window.present ();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function () {\n"
+"        this._buildUI ();\n"
+"    },\n"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function () {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow  ({\n"
+"            application: this.application,\n"
+"            title: \"Welcome to GNOME\",\n"
+"            default_height: 200,\n"
+"            default_width: 400,\n"
+"            window_position: Gtk.WindowPosition.CENTER });\n"
+"\n"
+"        // Create a webview to show the web app\n"
+"        this._webView = new Webkit.WebView ();\n"
+"\n"
+"        // Put the web app into the webview\n"
+"        this._webView.load_uri (GLib.filename_to_uri (GLib.get_current_dir() +\n"
+"            \"/hellognome.html\", null));\n"
+"\n"
+"        // Put the webview into the window\n"
+"        this._window.add (this._webView);\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    },\n"
+"\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new HelloGNOME ();\n"
+"app.application.run (ARGV);\n"
+msgstr ""
+"#!/usr/bin/gjs\n"
+"\n"
+"const GLib = imports.gi.GLib;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"const Webkit = imports.gi.WebKit;\n"
+"\n"
+"const HelloGNOME = new Lang.Class ({\n"
+"    Name: 'Hello GNOME',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function () {\n"
+"        this.application = new Gtk.Application ();\n"
+"\n"
+"        // Connect 'activate' and 'startup' signals to the callback functions\n"
+"        this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"        this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents windows when active\n"
+"    _onActivate: function () {\n"
+"        this._window.present ();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function () {\n"
+"        this._buildUI ();\n"
+"    },\n"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function () {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow  ({\n"
+"            application: this.application,\n"
+"            title: \"Welcome to GNOME\",\n"
+"            default_height: 200,\n"
+"            default_width: 400,\n"
+"            window_position: Gtk.WindowPosition.CENTER });\n"
+"\n"
+"        // Create a webview to show the web app\n"
+"        this._webView = new Webkit.WebView ();\n"
+"\n"
+"        // Put the web app into the webview\n"
+"        this._webView.load_uri (GLib.filename_to_uri (GLib.get_current_dir() +\n"
+"            \"/hellognome.html\", null));\n"
+"\n"
+"        // Put the webview into the window\n"
+"        this._window.add (this._webView);\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    },\n"
+"\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new HelloGNOME ();\n"
+"app.application.run (ARGV);\n"
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/helloWorld.js.page:27(media)
+msgctxt "_"
+msgid ""
+"external ref='media/helloWorld.png' md5='4c88a27211dfd1b33e504c9f78602f2d'"
+msgstr ""
+"external ref='media/helloWorld.png' md5='4c88a27211dfd1b33e504c9f78602f2d'"
+
+#: C/helloWorld.js.page:8(info/title)
+msgctxt "text"
+msgid "Hello World (JavaScript)"
+msgstr "Hello World (JavaScript)"
+
+#: C/helloWorld.js.page:23(info/desc)
+msgid "A basic \"hello, world\" application"
+msgstr "ÎÎÎ ÎÎÏÎÎÎ ÎÏÎÏÎÎÎÎ \"hello, world\""
+
+#: C/helloWorld.js.page:26(page/title)
+msgid "Hello World"
+msgstr "Hello World"
+
+#: C/helloWorld.js.page:29(synopsis/p)
+msgid "This tutorial will demonstrate how to:"
+msgstr "ÎÏÏÏ ÏÎ ÎÎÎÎÎÎ ÎÎ ÎÎÎÎÎÎ ÏÏÏ ÎÎ:"
+
+#: C/helloWorld.js.page:31(item/p)
+msgid "create a small \"Hello, World\" application using JavaScript and GTK+"
+msgstr ""
+"ÎÎÎÎÎÏÏÎÎÏÎÏÎ ÎÎÎ ÎÎÎÏÎ ÎÏÎÏÎÎÎÎ \"Hello, World\" ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ JavaScript "
+"ÎÎÎ GTK+"
+
+#: C/helloWorld.js.page:32(item/p)
+msgid "make the <file>.desktop</file> file"
+msgstr "ÎÎÎÎÏÎ ÏÎ ÎÏÏÎÎÎ <file>.desktop</file>"
+
+#: C/helloWorld.js.page:33(item/p)
+msgid "how to set up the build system"
+msgstr "ÏÏÎÎÎÏÎÏÎ ÏÎ ÏÏÏÏÎÎÎ ÎÏÎÎÏÎÏ"
+
+#: C/helloWorld.js.page:41(section/title)
+msgid "Create the HelloWorld program"
+msgstr "ÎÎÎÎÎÏÏÎÎÏÏÎ ÏÎ ÏÏÏÎÏÎÎÎÎ HelloWorld"
+
+#: C/helloWorld.js.page:46(section/p)
+msgid "This needs to be the first line of your script:"
+msgstr "ÎÏÏÏ ÏÏÎÎÎÎÎÏÎÎ ÎÎ ÎÎÎÎÎ Î ÏÏÏÏÎ ÎÏÎÎÎÎ ÏÎÏ ÏÎÎÎÏÎÎÏ ÏÎÏ:"
+
+#: C/helloWorld.js.page:47(section/code)
+#, no-wrap
+msgid "#!/usr/bin/gjs"
+msgstr "#!/usr/bin/gjs"
+
+#: C/helloWorld.js.page:48(section/p)
+msgid ""
+"It tells the script to use <link href=\"https://live.gnome.org/Gjs/\";>Gjs</"
+"link>. Gjs is a JavaScript binding for GNOME."
+msgstr ""
+"ÎÎÎÎ ÏÏÎ ÏÎÎÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ <link href=\"https://live.gnome.org/Gjs/";
+"\">Gjs</link>. Gjs ÎÎÎÎÎ ÎÎÎÏ ÏÏÎÎÎÏÎÎÏ JavaScript ÎÎÎ GNOME."
+
+#: C/helloWorld.js.page:53(section/code)
+#, no-wrap
+msgid ""
+"const Lang = imports.lang;\n"
+"const Gtk = imports.gi.Gtk;"
+msgstr ""
+"const Lang = imports.lang;\n"
+"const Gtk = imports.gi.Gtk;"
+
+#: C/helloWorld.js.page:55(section/p)
+msgid ""
+"In order for our script to work with GNOME, we need to import GNOME "
+"libraries via GObject Introspection. Here we import the language bindings "
+"and GTK+, the library which contains the graphical widgets used to make "
+"GNOME applications."
+msgstr ""
+"ÎÎÎ ÎÎ ÎÎÏÎÎÏÎÎ ÏÎ ÏÎÎÎÏÎÏ ÎÎÏ ÎÎ GNOME, ÏÏÎÎÎÎÏÎÎÏÏÎ ÎÎ ÎÎÏÎÎÎÏÎÎ ÏÎÏ "
+"ÎÎÎÎÎÎÎÎÎÎÏ GNOME ÎÎÏÎ ÎÏÏ ÏÎÎ ÎÏÏÎÎÎÎÎÏÎ GObject. ÎÎÏ ÎÎÏÎÎÎÏÎÎ ÏÎÏÏ "
+"ÏÏÎÎÎÏÎÎÏÏ ÎÎÏÏÏÎÏ ÎÎÎ GTK+, ÏÎÎ ÎÎÎÎÎÎÎÎÎÎ ÏÎÏ ÏÎÏÎÎÏÎÎ ÏÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎÎÎ "
+"ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÎ ÏÎÎ ÎÏÎÎÏÎ ÎÏÎÏÎÎÎÏÎ GNOME."
+
+#: C/helloWorld.js.page:59(section/code)
+#, no-wrap
+msgid ""
+"const Application = new Lang.Class({\n"
+"    //A Class requires an explicit Name parameter. This is the Class Name.\n"
+"    Name: 'Application',\n"
+"\n"
+"    //create the application\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application();\n"
+"\n"
+"       //connect to 'activate' and 'startup' signals to handlers.\n"
+"       this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"       this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    //create the UI\n"
+"    _buildUI: function() {\n"
+"        this._window = new Gtk.ApplicationWindow({ application: this.application,\n"
+"                                                   title: \"Hello World!\" });\n"
+"    },\n"
+"\n"
+"    //handler for 'activate' signal\n"
+"    _onActivate: function() {\n"
+"        //show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    },\n"
+"\n"
+"    //handler for 'startup' signal\n"
+"    _onStartup: function() {\n"
+"        this._buildUI();\n"
+"    }\n"
+"});\n"
+msgstr ""
+"const Application = new Lang.Class({\n"
+"    //A Class requires an explicit Name parameter. This is the Class Name.\n"
+"    Name: 'Application',\n"
+"\n"
+"    //create the application\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application();\n"
+"\n"
+"       //connect to 'activate' and 'startup' signals to handlers.\n"
+"       this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"       this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    //create the UI\n"
+"    _buildUI: function() {\n"
+"        this._window = new Gtk.ApplicationWindow({ application: this.application,\n"
+"                                                   title: \"Hello World!\" });\n"
+"    },\n"
+"\n"
+"    //handler for 'activate' signal\n"
+"    _onActivate: function() {\n"
+"        //show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    },\n"
+"\n"
+"    //handler for 'startup' signal\n"
+"    _onStartup: function() {\n"
+"        this._buildUI();\n"
+"    }\n"
+"});\n"
+
+#: C/helloWorld.js.page:91(section/p)
+msgid ""
+"GtkApplication initializes Gtk+. It also connects the <gui>x</gui> button "
+"that's automatically generated along with the window to the \"destroy\" "
+"signal."
+msgstr ""
+"Î GtkApplication ÎÏÏÎÎÎÏÎÎÎÎ ÏÎ Gtk+. ÎÏÎÏÎÏ ÏÏÎÎÎÎÎ ÏÎ ÎÎÏÎÏÎ <gui>x</gui> "
+"ÏÎÏ ÎÎÎÎÎÏÏÎÎÎÏÎÎ ÎÏÏÏÎÎÏÎ ÎÎÎÎ ÎÎ ÏÎ ÏÎÏÎÎÏÏÎ ÏÏÎ ÏÎÎÎ \"destroy\"."
+
+#: C/helloWorld.js.page:92(section/p)
+msgid ""
+"We can start building our first window. We do this by creating a variable "
+"called <var>_window</var> and assigning it a new Gtk.ApplicationWindow."
+msgstr ""
+"ÎÏÎÏÎÏÎÎ ÎÎ ÎÏÏÎÏÎÏÎÎ ÎÎ ÎÎÏÎÏÎÎÏÎÎÎÏÎÎ ÏÎ ÏÏÏÏÎ ÎÎÏ ÏÎÏÎÎÏÏÎ. ÎÏÏÏ ÏÎ "
+"ÎÎÎÎÏÎÎ ÎÎÎÎÎÏÏÎÏÎÏÎÏ ÎÎÎ ÎÎÏÎÎÎÎÏÎ ÏÎÏ ÎÎÎÎÏÎÎ <var>_window</var> ÎÎÎ ÏÎÏ "
+"ÎÏÎÎÎÎÎÏÎÎ ÎÎÎ ÎÎÎ Gtk.ApplicationWindow."
+
+#: C/helloWorld.js.page:93(section/p)
+msgid ""
+"We give the window a property called <var>title</var>. The title can be any "
+"string you want it to be. To be on the safe side, it's best to stick to "
+"UTF-8 encoding."
+msgstr ""
+"ÎÎÎÎÏÎÎ ÏÏÎ ÏÎÏÎÎÏÏÎ ÎÎÎ ÎÎÎÏÏÎÏÎ ÏÎÏ ÎÎÎÎÏÎÎ <var>title</var>. Î ÏÎÏÎÎÏ "
+"ÎÏÎÏÎÎ ÎÎ ÎÎÎÎÎ ÎÏÎÎÎÎÎÏÎÏÎ ÎÏÎÎÏÎÎÏÎ ÏÏÎÎÎÎÎÏÎÎÏÎ. ÎÎÎ ÎÎ ÎÎÏÎÏÏÎ ÎÏÏÎÎÎÎÏ, "
+"ÎÎÎÎÎ ÎÎÎÏÏÎÏÎ ÎÎ ÎÏÎÎÎÎÎÏÎ ÏÎÎ ÎÏÎÎÎÎÏÎÎÎÏÎ UTF-8."
+
+#: C/helloWorld.js.page:94(section/p)
+msgid ""
+"Now we have a window which has a title and a working \"close\" button. Let's "
+"add the actual \"Hello World\" text."
+msgstr ""
+"ÎÏÏÎ ÎÏÎÏÎÎ ÎÎÎ ÏÎÏÎÎÏÏÎ ÏÎÏ ÎÏÎÎ ÏÎÏÎÎ ÎÎÎ ÎÎÎ ÎÎÎÏÎÏÏÎÎÎÏ ÎÎÏÎÏÎ \"close"
+"\". ÎÏ ÏÏÎÏÎÎÏÎÏÎÎ ÏÎ ÎÎÎÏÎÏ ÎÎÎÎÎÎÎ \"Hello world\"."
+
+#: C/helloWorld.js.page:97(section/title)
+msgid "Label for the window"
+msgstr "ÎÏÎÎÎÏÎ ÎÎÎ ÏÎ ÏÎÏÎÎÏÏÎ"
+
+#: C/helloWorld.js.page:98(section/code)
+#, no-wrap
+msgid ""
+"// Add a label widget to your window\n"
+"this.label = new Gtk.Label({ label: \"Hello World\" });\n"
+"this._window.add(this.label);\n"
+"this._window.set_default_size(200, 200);"
+msgstr ""
+"// Add a label widget to your window\n"
+"this.label = new Gtk.Label({ label: \"Hello World\" });\n"
+"this._window.add(this.label);\n"
+"this._window.set_default_size(200, 200);"
+
+#: C/helloWorld.js.page:103(section/p)
+msgid ""
+"A text label is one of the GTK+ widgets we can use, on account of having "
+"imported the GTK+ library. To use it, we create a new variable called label, "
+"and assign it a new Gtk.Label. Then we give it properties inside the curly "
+"braces {}. In this case, we're setting the text that the label will hold. "
+"Finally, we create and run the application:"
+msgstr ""
+"ÎÎÎ ÎÏÎÎÎÏÎ ÎÎÎÎÎÎÎÏ ÎÎÎÎÎ ÎÎÎ ÎÏÏ ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÏÎÏ GTK+ ÏÎÏ "
+"ÎÏÎÏÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ, ÎÏÎÏ ÏÎÏ ÎÎÏÎÎÏÎÎÏ ÏÎÏ ÎÎÎÎÎÎÎÎÎÎÏ GTK+. ÎÎÎ "
+"ÏÎ ÏÏÎÏÎ ÏÎÏ, ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ ÎÎÎ ÎÎÏÎÎÎÎÏÎ ÏÎÏ ÎÎÎÎÎÎÎÏÎÎ ÎÏÎÎÎÏÎ ÎÎÎ ÏÎÏ "
+"ÎÏÎÎÎÎÎÏÎÎ ÎÎÎ ÎÎÎ Gtk.Label. ÎÏÎÎÏÎ ÏÎÏ ÎÎÎÎÏÎÎ ÎÎÎÏÏÎÏÎÏ ÎÎÏÎ ÏÎ ÎÎÎÏÎÎÏ "
+"{}. ÎÎ ÎÏÏÎÎ ÏÎÎ ÏÎÏÎÏÏÏÏÎ, ÎÏÎÎÎÏÎÎ ÏÎ ÎÎÎÎÎÎÎ ÏÎÏ ÎÎ ÎÏÎÏÎÏÎÎ Î ÎÏÎÎÎÏÎ. "
+"ÎÎÎÎÎÎ, ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ ÏÏÎÏÎÏÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ:"
+
+#: C/helloWorld.js.page:105(section/code)
+#, no-wrap
+msgid ""
+"//run the application\n"
+"let app = new Application();\n"
+"app.application.run(ARGV);"
+msgstr ""
+"//run the application\n"
+"let app = new Application();\n"
+"app.application.run(ARGV);"
+
+#: C/helloWorld.js.page:109(section/p)
+msgid ""
+"Gtk.ApplicationWindow can only hold one widget at a time. To construct more "
+"elaborate programs you need to create a holder widget like Gtk.Grid inside "
+"the window, and then add all the other widgets to it."
+msgstr ""
+"ÎÎ Gtk.Window ÎÏÎÏÎÎ ÎÎ ÎÏÎÏÎÏÎÎ ÎÏÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÏÎ ÏÎÏÎ. ÎÎÎ "
+"ÎÎÏÎÏÎÎÏÎ ÏÎÎ ÏÎÏÎÏÎÎÎÏÎ ÏÏÎÎÏÎÎÎÎÏÏÎ ÏÏÎÎÎÎÏÏÎÏÏÎ ÏÎ ÎÎÎÎÎÏÏÎÎÎ ÎÎÏÏ "
+"ÏÎÎÏÎÏÏÎ ÎÏÎÏÎÎÎÏ ÏÏÏÏÎÏÎÎÎÏ ÏÏÏÏ Gtk.Grid ÎÎÏÎ ÏÏÎ ÏÎÏÎÎÏÏÎ ÎÎÎ ÎÏÎÎÏÎ ÎÎ "
+"ÏÏÎÏÎÎÏÎÏÎ ÏÎÎ ÏÎ ÎÎÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÏÎ ÎÏÏÏ."
+
+#: C/helloWorld.js.page:113(section/title)
+msgid "helloWorld.js"
+msgstr "helloWorld.js"
+
+#: C/helloWorld.js.page:114(section/p)
+msgid "The complete file:"
+msgstr "ÎÎ ÏÎÎÏÎÏ ÎÏÏÎÎÎ:"
+
+#: C/helloWorld.js.page:115(section/code)
+#, no-wrap
+msgid ""
+"#!/usr/bin/gjs\n"
+"\n"
+"const Lang = imports.lang;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"\n"
+"const Application = new Lang.Class({\n"
+"    //A Class requires an explicit Name parameter. This is the Class Name.\n"
+"    Name: 'Application',\n"
+"\n"
+"    //create the application\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application();\n"
+"\n"
+"       //connect to 'activate' and 'startup' signals to handlers.\n"
+"       this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"       this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    //create the UI\n"
+"    _buildUI: function() {\n"
+"        this._window = new Gtk.ApplicationWindow({ application: this.application,\n"
+"                                                   title: \"Hello World!\" });\n"
+"        this._window.set_default_size(200, 200);\n"
+"        this.label = new Gtk.Label({ label: \"Hello World\" });\n"
+"        this._window.add(this.label);\n"
+"    },\n"
+"\n"
+"    //handler for 'activate' signal\n"
+"    _onActivate: function() {\n"
+"        //show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    },\n"
+"\n"
+"    //handler for 'startup' signal\n"
+"    _onStartup: function() {\n"
+"        this._buildUI();\n"
+"    }\n"
+"});\n"
+"\n"
+"//run the application\n"
+"let app = new Application();\n"
+"app.application.run(ARGV);\n"
+msgstr ""
+"#!/usr/bin/gjs\n"
+"\n"
+"const Lang = imports.lang;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"\n"
+"const Application = new Lang.Class({\n"
+"    //A Class requires an explicit Name parameter. This is the Class Name.\n"
+"    Name: 'Application',\n"
+"\n"
+"    //create the application\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application();\n"
+"\n"
+"       //connect to 'activate' and 'startup' signals to handlers.\n"
+"       this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"       this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    //create the UI\n"
+"    _buildUI: function() {\n"
+"        this._window = new Gtk.ApplicationWindow({ application: this.application,\n"
+"                                                   title: \"Hello World!\" });\n"
+"        this._window.set_default_size(200, 200);\n"
+"        this.label = new Gtk.Label({ label: \"Hello World\" });\n"
+"        this._window.add(this.label);\n"
+"    },\n"
+"\n"
+"    //handler for 'activate' signal\n"
+"    _onActivate: function() {\n"
+"        //show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    },\n"
+"\n"
+"    //handler for 'startup' signal\n"
+"    _onStartup: function() {\n"
+"        this._buildUI();\n"
+"    }\n"
+"});\n"
+"\n"
+"//run the application\n"
+"let app = new Application();\n"
+"app.application.run(ARGV);\n"
+
+#: C/helloWorld.js.page:118(section/title)
+msgid "Running the application from terminal"
+msgstr "ÎÎÏÎÎÎÏÏÎ ÏÎÎ ÎÏÎÏÎÎÎÎ ÎÏÏ ÏÎÏÎÎÏÎÎÏ"
+
+#: C/helloWorld.js.page:119(section/p)
+msgid ""
+"To run this application, first save it as helloWorld.js. Then open Terminal, "
+"go to the folder where your application is stored and run:"
+msgstr ""
+"ÎÎÎ ÎÎ ÏÏÎÎÎÏÎ ÎÏÏÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ, ÏÏÏÏÎ ÎÏÎÎÎÎÎÏÏÏÎ ÏÎÎ ÏÏ helloWorld.js. "
+"ÎÏÎÎÏÎ ÎÎÎÎÎÏÎ ÏÎÎ ÏÎÏÎÎÏÎÎÏ, ÏÎÎÎÎÎÎÏÎ ÏÏÎÎ ÏÎÎÎÎÎ ÏÏÎÏ Î ÎÏÎÏÎÎÎÎ ÏÎÏ "
+"ÎÏÎÎÎÎÎÏÎÏÎÎ ÎÎÎ ÏÏÎÎÏÎ:"
+
+#: C/helloWorld.js.page:120(section/screen)
+#, no-wrap
+msgid "<output style=\"prompt\">$ </output><input>gjs helloWorld.js</input>"
+msgstr "<output style=\"prompt\">$ </output><input>gjs helloWorld.js</input>"
+
+#: C/helloWorld.js.page:126(section/title)
+msgid "The <file>.desktop.in</file> file"
+msgstr "ÎÎ ÎÏÏÎÎÎ <file>.desktop.in</file>"
+
+#: C/helloWorld.js.page:127(section/p)
+msgid ""
+"Running applications from the Terminal is useful at the beginning of the "
+"application making process. To have fully working <link href=\"http://";
+"library.gnome.org/admin/system-admin-guide/stable/mimetypes-9.html.en"
+"\">application integration</link> in GNOME 3 requires a desktop launcher. "
+"For this you need to create a <file>.desktop</file> file. The <file>."
+"desktop</file> file describes the application name, the used icon and "
+"various integration bits. A deeper insight into the <file>.desktop</file> "
+"file can be found <link href=\"http://developer.gnome.org/desktop-entry-spec/";
+"\">here</link>. The <file>.desktop.in</file> file will create the <file>."
+"desktop</file>."
+msgstr ""
+"ÎÏÎÏÎÎÏÎÏ ÎÏÎÏÎÎÎÎÏ ÎÏÏ ÏÎÎ ÏÎÏÎÎÏÎÎÏ ÎÎÎÎÎ ÏÏÎÏÎÎÎ ÏÏÎÎ ÎÏÏÎ ÏÎÏ ÎÎÎÏÎÎÏÎÎÏ "
+"ÎÎÏÎÏÎÎÏÎÏ ÏÎÏ ÎÏÎÏÎÎÎÎÏ. ÎÎÎ ÎÎ ÎÏÎÏÎ ÎÎÎ ÏÎÎÏÏÏ ÎÎÎÏÎÏÏÎÎÎÎ <link href="
+"\"http://library.gnome.org/admin/system-admin-guide/stable/mimetypes-9.html.";
+"en\">ÎÎÎÎÎÎÏÏÎÎÎÎ ÎÏÎÏÎÎÎÎ</link> ÏÏÎ GNOME 3 ÎÏÎÎÏÎÎÏÎÎ ÎÎÎÏ ÎÎÎÎÎÎÏÎÏ "
+"ÎÏÎÏÎÎÎÎÎ ÎÏÎÎÏÎÎÏ. ÎÎÎ ÎÏÏÏ ÏÏÎÎÎÎÎÏÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎ ÎÎÎ ÎÏÏÎÎÎ <file>."
+"desktop</file>. ÎÎ ÎÏÏÎÎÎ <file>.desktop</file> ÏÎÏÎÎÏÎÏÎÎ ÏÎ ÏÎÎÎÎ ÏÎÏ "
+"ÎÏÎÏÎÎÎÎÏ, ÏÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎÎÎ ÎÎÎÎÎÎÎÎÎ ÎÎÎ ÏÎÎÎÎÎÎ ÎÏÎÎÎÎÎ ÎÎÎÎÎÎÏÏÏÎÏ. "
+"ÎÎÎ ÎÎÎÏÏÎÏÎ ÎÎÏÎÎ ÏÏÎ ÎÏÏÎÎÎ <file>.desktop</file> ÎÏÎÏÎÎ ÎÎ ÎÏÎÎÎÎ <link "
+"href=\"http://developer.gnome.org/desktop-entry-spec/\";>ÎÎÏ</link>. ÎÎ "
+"ÎÏÏÎÎÎ <file>.desktop.in</file> ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÎ ÏÎ <file>.desktop</file>."
+
+#: C/helloWorld.js.page:130(note/p)
+msgid ""
+"Before continuing, resave <file>helloWorld.js</file> as <file>helloWorld</"
+"file>. Then run this in the command line:"
+msgstr ""
+"ÎÏÎÎ ÏÏÎÎÏÎÏÎÏÎ, ÎÎÎÎÎÏÎÎÎÎÎÏÏÏÎ ÏÎ <file>helloWorld.js</file> ÏÏ "
+"<file>helloWorld</file>. ÎÏÎÎÏÎ ÎÎÏÎÎÎÏÏÎ ÏÎ ÏÏÎ ÎÏÎÎÎÎ ÎÎÏÎÎÏÎ:"
+
+#: C/helloWorld.js.page:131(note/screen)
+#, no-wrap
+msgid "<output style=\"prompt\">$ </output><input>chmod +x helloWorld</input>"
+msgstr "<output style=\"prompt\">$ </output><input>chmod +x helloWorld</input>"
+
+#: C/helloWorld.js.page:134(section/p)
+msgid ""
+"The example shows you the minimum requirements for a <code>.desktop.in</"
+"code> file."
+msgstr ""
+"ÎÎ ÏÎÏÎÎÎÎÎÎÎ ÎÎÏÎÎÎÎÎÎ ÏÎÏ ÎÎÎÏÎÏÏÎÏ ÎÏÎÎÏÎÏÎÎÏ ÎÎÎ ÎÎÎ ÎÏÏÎÎÎ<code>."
+"desktop.in</code>."
+
+#: C/helloWorld.js.page:135(section/code)
+#, no-wrap
+msgid ""
+"[Desktop Entry]\n"
+"Version=1.0\n"
+"Encoding=UTF-8\n"
+"Name=Hello World\n"
+"Comment=Say Hello\n"
+"Exec= prefix@/bin/helloWorld\n"
+"Icon=application-default-icon\n"
+"Terminal=false\n"
+"Type=Application\n"
+"StartupNotify=true\n"
+"Categories=GNOME;GTK;Utility;\n"
+msgstr ""
+"[Desktop Entry]\n"
+"Version=1.0\n"
+"Encoding=UTF-8\n"
+"Name=Hello World\n"
+"Comment=Say Hello\n"
+"Exec= prefix@/bin/helloWorld\n"
+"Icon=application-default-icon\n"
+"Terminal=false\n"
+"Type=Application\n"
+"StartupNotify=true\n"
+"Categories=GNOME;GTK;Utility;\n"
+
+#: C/helloWorld.js.page:137(section/p)
+msgid "Now let's go through some parts of the <code>.desktop.in</code> file."
+msgstr "ÎÏÏÎ, ÎÏ ÎÎÎÏÎÏÎÏÎÎ ÎÎÏÎÎÎ ÎÎÏÎ ÏÎÏ ÎÏÏÎÎÎÏ <code>.desktop.in</code>."
+
+#: C/helloWorld.js.page:139(item/title) C/toolbar_builder.py.page:93(td/p)
+#: C/toolbar_builder.vala.page:77(td/p)
+msgid "Name"
+msgstr "ÎÎÎÎÎ"
+
+#: C/helloWorld.js.page:139(item/p)
+msgid "The application name."
+msgstr "ÎÎ ÏÎÎÎÎ ÏÎÏ ÎÏÎÏÎÎÎÎÏ."
+
+#: C/helloWorld.js.page:140(item/title)
+msgid "Comment"
+msgstr "ÎÏÏÎÎÎ"
+
+#: C/helloWorld.js.page:140(item/p)
+msgid "A short description of the application."
+msgstr "ÎÎÎ ÏÏÎÏÎÎÎ ÏÎÏÎÎÏÎÏÎ ÏÎÏ ÎÏÎÏÎÎÎÎÏ."
+
+#: C/helloWorld.js.page:141(item/title)
+msgid "Exec"
+msgstr "Exec"
+
+#: C/helloWorld.js.page:141(item/p)
+msgid ""
+"Specifies a command to execute when you choose the application from the "
+"menu. In this example exec just tells where to find the <file>helloWorld</"
+"file> file and the file takes care of the rest."
+msgstr ""
+"ÎÏÎÎÎÎ ÎÎÎ ÎÎÏÎÎÎ ÎÎÎ ÎÎÏÎÎÎÏÎ ÏÏÎÎ ÎÏÎÎÎÎÎÏÎ ÏÎÎ ÎÏÎÏÎÎÎÎ ÎÏÏ ÏÎ ÎÎÎÎÏ. ÎÎ "
+"ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÏÎ exec ÎÏÎÎ ÎÎÎÎ ÏÎÏ ÎÎ ÎÏÎÎÏÎ ÏÎ ÎÏÏÎÎÎ "
+"<file>helloWorld</file> ÎÎÎ ÏÎ ÎÏÏÎÎÎ ÏÏÎÎÏÎÎÎÎ ÎÎÎ ÏÎ ÏÏÏÎÎÎÏÎ."
+
+#: C/helloWorld.js.page:142(item/title)
+msgid "Terminal"
+msgstr "ÎÎÏÎÎÏÎÎÏÏ"
+
+#: C/helloWorld.js.page:142(item/p)
+msgid ""
+"Specifies whether the command in the Exec key runs in a terminal window."
+msgstr "ÎÏÎÎÎÎ ÎÎÎ Î ÎÎÏÎÎÎ ÏÏÎ ÎÎÎÎÎÎ Exec ÏÏÎÏÎÎ ÏÎ ÎÎÎ ÏÎÏÎÎÏÏÎ ÏÎÏÎÎÏÎÎÎÏ."
+
+#: C/helloWorld.js.page:145(section/p)
+msgid ""
+"To put your application into the appropriate category, you need to add the "
+"necessary categories to the Categories line. More information on the "
+"different categories can be found in the <link href=\"http://standards.";
+"freedesktop.org/menu-spec/latest/apa.html\">menu specification</link>."
+msgstr ""
+"ÎÎÎ ÎÎ ÎÎÎÎÏÎ ÏÎÎ ÎÏÎÏÎÎÎÎ ÏÎÏ ÏÏÎ ÏÏÏÏÎ ÎÎÏÎÎÎÏÎÎ ÏÏÎÎÎÎÎÏÎÎ ÎÎ ÏÏÎÏÎÎÏÎÏÎ "
+"ÏÎÏ ÎÏÎÏÎÎÏÎÏÎÏ ÎÎÏÎÎÎÏÎÎÏ ÏÏÎ ÎÏÎÎÎÎ ÎÎÏÎÎÎÏÎÏÎ. ÎÎÏÎÏÏÏÏÎÏÎÏ ÏÎÎÏÎÏÎÏÎÎÏ "
+"ÎÎÎ ÏÎÏ ÎÎÎÏÎÏÎÏÎÎÎÏ ÎÎÏÎÎÎÏÎÎÏ ÎÏÎÏÎÏÎ ÎÎ ÎÏÎÎÎÏÎ ÏÏÎ <link href=\"http://";
+"standards.freedesktop.org/menu-spec/latest/apa.html\">ÏÏÎÎÎÎÎÏÎÏÎÏ ÎÎÎÎÏ</"
+"link>."
+
+#: C/helloWorld.js.page:146(section/p)
+msgid ""
+"In this example we use an existing icon. For a custom icon you need to have "
+"a .svg file of your icon, stored in <file>/usr/share/icons/hicolor/scalable/"
+"apps</file>. Write the name of your icon file to the .desktop.in file, on "
+"line 7. More information on icons in: <link href=\"http://library.gnome.org/";
+"admin/system-admin-guide/stable/themes-11.html.en\"> Installing Icons for "
+"Themes </link>, <link href=\"https://live.gnome.org/GnomeGoals/AppIcon";
+"\">Installing Icons for Themes</link> and <link href=\"http://freedesktop.";
+"org/wiki/Specifications/icon-theme-spec\">on freedesktop.org: Specifications/"
+"icon-theme-spec</link>."
+msgstr ""
+"ÎÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎÎ ÎÎÎ ÏÏÎÏÏÎÎ ÎÎÎÎÎÎÎÎÎ. ÎÎÎ ÎÎÎ "
+"ÏÏÎÏÎÏÎÎÏÎÎÎÎ ÎÎÎÎÎÎÎÎÎ ÏÏÎÎÎÎÎÏÎÎ ÎÎ ÎÏÎÏÎ ÎÎÎ ÎÏÏÎÎÎ .svg ÏÎÏ ÎÎÎÎÎÎÎÎÎÏ "
+"ÏÎÏ, ÎÏÎÎÎÎÎÏÎÎÎÎ ÏÏÎ <file>/usr/share/icons/hicolor/scalable/apps</file>. "
+"ÎÏÎÏÏÎ ÏÎ ÏÎÎÎÎ ÏÎÏ ÎÏÏÎÎÎÏ ÏÎÏ ÎÎÎÎÎÎÎÎÎÏ ÏÎÏ ÏÏÎ ÎÏÏÎÎÎ .desktop.in, ÏÏÎ "
+"ÎÏÎÎÎÎ 7. ÎÎÏÎÏÏÏÏÎÏÎÏ ÏÎÎÏÎÏÎÏÎÎÏ ÎÎÎ ÎÎÎÎÎÎÎÎÎ ÏÏÎ: <link href=\"http://";
+"library.gnome.org/admin/system-admin-guide/stable/themes-11.html.en"
+"\">ÎÎÎÎÏÎÏÏÎÏÎ ÎÎÎÎÎÎÎÎÏÎ ÎÎÎ ÎÎÎÎÏÎ</link>, <link href=\"https://live.gnome.";
+"org/GnomeGoals/AppIcon\">ÎÎÎÎÏÎÏÏÎÏÎ ÎÎÎÎÎÎÎÎÏÎ ÎÎÎ ÎÎÎÎÏÎ</link> ÎÎÎ <link "
+"href=\"http://freedesktop.org/wiki/Specifications/icon-theme-spec\";>on "
+"freedesktop.org: Specifications/icon-theme-spec</link>."
+
+#: C/helloWorld.js.page:149(section/title)
+msgid "The build system"
+msgstr "ÎÎ ÏÏÏÏÎÎÎ ÎÏÎÎÏÎÏ"
+
+#: C/helloWorld.js.page:150(section/p)
+msgid ""
+"To make your application truly a part of the GNOME 3 system you need to "
+"install it with the help of autotools. The autotools build will install all "
+"the necessary files to all the right places."
+msgstr ""
+"ÎÎÎ ÎÎ ÎÎÎÎÏÎ ÏÎÎ ÎÏÎÏÎÎÎÎ ÏÎÏ ÏÏÎÎÎÎÏÎÎÎ ÏÎÎÎÎ ÏÎÏ ÏÏÏÏÎÎÎÏÎÏ GNOME 3 "
+"ÏÏÎÎÎÎÏÏÎÏÏÎ ÏÎÎ ÎÎÎÎÏÎÏÏÎÏÎ ÏÎÏ ÎÎ ÏÎ ÎÎÎÎÎÎÎ ÏÏÎ autotools. Î ÎÎÏÎÏÎÎÏÎ "
+"ÏÏÎ autotools ÎÎ ÎÎÎÎÏÎÏÏÎÏÎÎ ÏÎÎ ÏÎ ÎÏÎÏÎÎÏÎÏÎ ÎÏÏÎÎÎ ÏÎ ÏÎÎÏ ÏÎÏ ÏÏÏÏÎÏ "
+"ÎÎÏÎÎÏ."
+
+#: C/helloWorld.js.page:151(section/p)
+msgid "For this you need to have the following files:"
+msgstr "ÎÎÎ ÎÏÏÏ ÏÏÎÎÎÎÏÏÎÏÏÎ ÎÎ ÎÏÎÏÎ ÏÎ ÏÎÏÎÎÎÏÏ ÎÏÏÎÎÎ:"
+
+#: C/helloWorld.js.page:154(section/title)
+#: C/weatherAutotools.js.page:39(item/p)
+msgid "autogen.sh"
+msgstr "autogen.sh"
+
+#: C/helloWorld.js.page:155(section/code)
+#, no-wrap
+msgid ""
+"#!/bin/sh\n"
+"\n"
+"set -e\n"
+"\n"
+"test -n \"$srcdir\" || srcdir=`dirname \"$0\"`\n"
+"test -n \"$srcdir\" || srcdir=.\n"
+"\n"
+"olddir=`pwd`\n"
+"cd \"$srcdir\"\n"
+"\n"
+"# This will run autoconf, automake, etc. for us\n"
+"autoreconf --force --install\n"
+"\n"
+"cd \"$olddir\"\n"
+"\n"
+"if test -z \"$NOCONFIGURE\"; then\n"
+"  \"$srcdir\"/configure \"$ \"\n"
+"fi\n"
+msgstr ""
+"#!/bin/sh\n"
+"\n"
+"set -e\n"
+"\n"
+"test -n \"$srcdir\" || srcdir=`dirname \"$0\"`\n"
+"test -n \"$srcdir\" || srcdir=.\n"
+"\n"
+"olddir=`pwd`\n"
+"cd \"$srcdir\"\n"
+"\n"
+"# This will run autoconf, automake, etc. for us\n"
+"autoreconf --force --install\n"
+"\n"
+"cd \"$olddir\"\n"
+"\n"
+"if test -z \"$NOCONFIGURE\"; then\n"
+"  \"$srcdir\"/configure \"$ \"\n"
+"fi\n"
+
+#: C/helloWorld.js.page:157(section/p)
+msgid "After the <file>autogen.sh</file> file is ready and saved, run:"
+msgstr ""
+"ÎÏÎÏ ÏÎ ÎÏÏÎÎÎ <file>autogen.sh</file> ÎÎÎÎÎ ÎÏÎÎÎÎ ÎÎÎ ÎÏÎÎÎÎÎÏÎÎÎÎ, "
+"ÎÎÏÎÎÎÏÏÎ:"
+
+#: C/helloWorld.js.page:158(section/screen)
+#, no-wrap
+msgid "<output style=\"prompt\">$ </output><input>chmod +x autogen.sh</input>"
+msgstr "<output style=\"prompt\">$ </output><input>chmod +x autogen.sh</input>"
+
+#: C/helloWorld.js.page:162(section/title)
+#: C/weatherAutotools.js.page:37(item/p)
+#: C/weatherAutotools.js.page:63(section/p)
+msgid "Makefile.am"
+msgstr "Makefile.am"
+
+#: C/helloWorld.js.page:163(section/code)
+#, no-wrap
+msgid ""
+"# The actual runnable program is set to the SCRIPTS primitive.\n"
+"# # Prefix bin_ tells where to copy this\n"
+"bin_SCRIPTS = helloWorld\n"
+"# # List of files to be distributed\n"
+"EXTRA_DIST=  \\\n"
+"\t$(bin_SCRIPTS)\n"
+"#\n"
+"#     # The desktop files\n"
+"desktopdir = $(datadir)/applications\n"
+"desktop_DATA = \\\n"
+"\thelloWorld.desktop\n"
+msgstr ""
+"# The actual runnable program is set to the SCRIPTS primitive.\n"
+"# # Prefix bin_ tells where to copy this\n"
+"bin_SCRIPTS = helloWorld\n"
+"# # List of files to be distributed\n"
+"EXTRA_DIST=  \\\n"
+"\t$(bin_SCRIPTS)\n"
+"#\n"
+"#     # The desktop files\n"
+"desktopdir = $(datadir)/applications\n"
+"desktop_DATA = \\\n"
+"\thelloWorld.desktop\n"
+
+#: C/helloWorld.js.page:167(section/title)
+#: C/weatherAutotools.js.page:38(item/p)
+#: C/weatherAutotools.js.page:130(section/p)
+msgid "configure.ac"
+msgstr "configure.ac"
+
+#: C/helloWorld.js.page:168(section/code)
+#, no-wrap
+msgid ""
+"# This file is processed by autoconf to create a configure script\n"
+"AC_INIT([Hello World], 1.0)\n"
+"AM_INIT_AUTOMAKE([1.10 no-define foreign dist-xz no-dist-gzip])\n"
+"AC_CONFIG_FILES([Makefile helloWorld.desktop])\n"
+"AC_OUTPUT\n"
+msgstr ""
+"# This file is processed by autoconf to create a configure script\n"
+"AC_INIT([Hello World], 1.0)\n"
+"AM_INIT_AUTOMAKE([1.10 no-define foreign dist-xz no-dist-gzip])\n"
+"AC_CONFIG_FILES([Makefile helloWorld.desktop])\n"
+"AC_OUTPUT\n"
+
+#: C/helloWorld.js.page:172(section/title)
+msgid "README"
+msgstr "README"
+
+#: C/helloWorld.js.page:173(section/p)
+msgid "Information users should read first. This file can be blank."
+msgstr ""
+"ÎÎ ÏÎÎÏÎÏÎÏÎÎÏ ÏÏÎÏÏÏÎ ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎÏÏÎÏÎ ÏÏÏÏÎ. ÎÏÏÏ ÏÎ ÎÏÏÎÎÎ ÎÏÎÏÎÎ ÎÎ "
+"ÎÎÎÎÎ ÎÎÎÏ."
+
+#: C/helloWorld.js.page:175(section/p)
+msgid ""
+"When you have the <file>helloWorld</file>, <file>helloWorld.desktop.in</"
+"file>, <file>Makefile.am</file>, <file>configure.ac</file> and <file>autogen."
+"sh</file> files with correct information and rights, the <file>README</file> "
+"file can include the following instructions:"
+msgstr ""
+"ÎÏÎÎ ÎÏÎÏÎ ÏÎ ÎÏÏÎÎÎ <file>helloWorld</file>, <file>helloWorld.desktop.in</"
+"file>, <file>Makefile.am</file>, <file>configure.ac</file> ÎÎÎ <file>autogen."
+"sh</file> ÎÎ ÏÏÏÏÎÏ ÏÎÎÏÎÏÎÏÎÎÏ ÎÎÎ ÎÎÎÎÎÏÎÎÏÎ, ÏÎ ÎÏÏÎÎÎ <file>README</"
+"file> ÎÏÎÏÎÎ ÎÎ ÏÏÎÏÎÏÎÎÎÎÎÎ ÏÎÏ ÎÎÏÎÎÏÎÎÏ ÎÎÎÎÎÎÏ:"
+
+#: C/helloWorld.js.page:176(section/code)
+#, no-wrap
+msgid ""
+"To build and install this program:\n"
+"\n"
+"./autogen.sh --prefix=/home/your_username/.local\n"
+"make install\n"
+"\n"
+"-------------\n"
+"Running the first line above creates the following files:\n"
+"\n"
+"aclocal.m4\n"
+"autom4te.cache\n"
+"config.log\n"
+"config.status\n"
+"configure\n"
+"helloWorld.desktop\n"
+"install-sh\n"
+"missing\n"
+"Makefile.in\n"
+"Makefile\n"
+"\n"
+"Running \"make install\", installs the application in /home/your_username/.local/bin\n"
+"and installs the helloWorld.desktop file in /home/your_username/.local/share/applications\n"
+"\n"
+"You can now run the application by typing \"Hello World\" in the Overview.\n"
+"\n"
+"----------------\n"
+"To uninstall, type:\n"
+"\n"
+"make uninstall\n"
+"\n"
+"----------------\n"
+"To create a tarball type:\n"
+"\n"
+"make distcheck\n"
+"\n"
+"This will create hello-world-1.0.tar.xz\n"
+"\n"
+msgstr ""
+"To build and install this program:\n"
+"\n"
+"./autogen.sh --prefix=/home/your_username/.local\n"
+"make install\n"
+"\n"
+"-------------\n"
+"Running the first line above creates the following files:\n"
+"\n"
+"aclocal.m4\n"
+"autom4te.cache\n"
+"config.log\n"
+"config.status\n"
+"configure\n"
+"helloWorld.desktop\n"
+"install-sh\n"
+"missing\n"
+"Makefile.in\n"
+"Makefile\n"
+"\n"
+"Running \"make install\", installs the application in /home/your_username/.local/bin\n"
+"and installs the helloWorld.desktop file in /home/your_username/.local/share/applications\n"
+"\n"
+"You can now run the application by typing \"Hello World\" in the Overview.\n"
+"\n"
+"----------------\n"
+"To uninstall, type:\n"
+"\n"
+"make uninstall\n"
+"\n"
+"----------------\n"
+"To create a tarball type:\n"
+"\n"
+"make distcheck\n"
+"\n"
+"This will create hello-world-1.0.tar.xz\n"
+"\n"
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/image.c.page:21(media) C/image.js.page:20(media)
+#: C/image.py.page:21(media) C/image.vala.page:21(media)
+msgctxt "_"
+msgid "external ref='media/image.png' md5='9416aa74d9d6a857783f7a36338e7a02'"
+msgstr "external ref='media/image.png' md5='9416aa74d9d6a857783f7a36338e7a02'"
+
+#: C/image.c.page:7(info/title)
+msgctxt "text"
+msgid "Image (C)"
+msgstr "ÎÎÎÏÎÎ (C)"
+
+#: C/image.c.page:17(info/desc) C/image.js.page:16(info/desc)
+#: C/image.py.page:17(info/desc) C/image.vala.page:17(info/desc)
+msgid "A widget displaying an image"
+msgstr "ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÏÎÏ ÎÎÏÎÎÎÎÎÎ ÎÎÎ ÎÎÎÏÎÎ"
+
+#: C/image.c.page:20(page/title) C/image.js.page:19(page/title)
+#: C/image.py.page:20(page/title) C/image.vala.page:20(page/title)
+msgid "Image"
+msgstr "ÎÎÎÏÎÎ"
+
+#: C/image.c.page:22(page/p) C/image.js.page:21(page/p)
+#: C/image.py.page:22(page/p) C/image.vala.page:22(page/p)
+msgid "This GtkApplication displays an image file from the current directory."
+msgstr ""
+"ÎÏÏÎ Î GtkApplication ÎÎÏÎÎÎÎÎÎ ÎÎÎ ÎÏÏÎÎÎ ÎÎÎÏÎÎÏ ÎÏÏ ÏÎÎ ÏÏÎÏÎÎÏÎ ÎÎÏÎÎÎÎÎ."
+
+#: C/image.c.page:23(note/p) C/image.js.page:22(note/p)
+#: C/image.vala.page:23(note/p)
+msgid ""
+"If the image file isn't loaded successfully, the image will contain a "
+"\"broken image\" icon. The <file>filename.png</file> needs to be in the "
+"current directory for this code to work. Use your favorite picture!"
+msgstr ""
+"ÎÎÎ ÏÎ ÎÏÏÎÎÎ ÎÎÎÏÎÎÏ ÎÎÎ ÏÎÏÏÏÎÎÎ ÎÏÎÏÏÏÏÏ, Î ÎÎÎÏÎÎ ÎÎ ÏÎÏÎÎÏÎÎ ÎÎÎ "
+"ÎÎÎÎÎÎÎÎÎ \"ÏÏÎÏÎÎÎÎÏ ÎÎÎÏÎÎÏ\". ÎÎ <file>filename.png</file> ÏÏÎÎÎÎÎÏÎÎ ÎÎ "
+"ÎÎÎÎÎ ÏÏÎÎ ÏÏÎÏÎÎÏÎ ÎÎÏÎÎÎÎÎ ÎÎÎ ÎÎ ÎÎÏÎÎÏÎÎ ÎÏÏÏÏ Î ÎÏÎÎÎÎÏ. ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ "
+"ÏÎÎ ÎÎÎÏÎÎÎÎÎ ÏÎÏ ÎÎÎÏÎÎ!"
+
+#: C/image.c.page:27(page/code)
+#, no-wrap
+msgid ""
+"#include &lt;gtk/gtk.h&gt;\n"
+"\n"
+"\n"
+"\n"
+"static void\n"
+"activate (GtkApplication *app,\n"
+"          gpointer        user_data)\n"
+"{\n"
+"  GtkWidget *window;\n"
+"  GtkWidget *image;\n"
+"\n"
+"  /*Create a window with a title and a default size*/\n"
+"  window = gtk_application_window_new (app);\n"
+"  gtk_window_set_title (GTK_WINDOW (window), \"Welcome to GNOME\");\n"
+"  gtk_window_set_default_size (GTK_WINDOW (window), 300, 300);\n"
+"\n"
+"  image = gtk_image_new_from_file (\"gnome-image.png\");\n"
+"\n"
+"  gtk_container_add (GTK_CONTAINER (window), GTK_WIDGET (image));\n"
+"\n"
+"  gtk_widget_show_all (GTK_WIDGET (window));\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"int\n"
+"main (int argc, char **argv)\n"
+"{\n"
+"  GtkApplication *app;\n"
+"  int status;\n"
+"\n"
+"  app = gtk_application_new (\"org.gtk.example\",G_APPLICATION_FLAGS_NONE);\n"
+"  g_signal_connect (app, \"activate\", G_CALLBACK (activate), NULL);\n"
+"  status = g_application_run (G_APPLICATION (app), argc, argv);\n"
+"  g_object_unref (app);\n"
+"  return status;\n"
+"}\n"
+msgstr ""
+"#include &lt;gtk/gtk.h&gt;\n"
+"\n"
+"\n"
+"\n"
+"static void\n"
+"activate (GtkApplication *app,\n"
+"          gpointer        user_data)\n"
+"{\n"
+"  GtkWidget *window;\n"
+"  GtkWidget *image;\n"
+"\n"
+"  /*Create a window with a title and a default size*/\n"
+"  window = gtk_application_window_new (app);\n"
+"  gtk_window_set_title (GTK_WINDOW (window), \"Welcome to GNOME\");\n"
+"  gtk_window_set_default_size (GTK_WINDOW (window), 300, 300);\n"
+"\n"
+"  image = gtk_image_new_from_file (\"gnome-image.png\");\n"
+"\n"
+"  gtk_container_add (GTK_CONTAINER (window), GTK_WIDGET (image));\n"
+"\n"
+"  gtk_widget_show_all (GTK_WIDGET (window));\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"int\n"
+"main (int argc, char **argv)\n"
+"{\n"
+"  GtkApplication *app;\n"
+"  int status;\n"
+"\n"
+"  app = gtk_application_new (\"org.gtk.example\",G_APPLICATION_FLAGS_NONE);\n"
+"  g_signal_connect (app, \"activate\", G_CALLBACK (activate), NULL);\n"
+"  status = g_application_run (G_APPLICATION (app), argc, argv);\n"
+"  g_object_unref (app);\n"
+"  return status;\n"
+"}\n"
+
+#: C/image.c.page:34(item/p)
+msgid ""
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkImage.html";
+"\">GtkImage</link>"
+msgstr ""
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkImage.html";
+"\">GtkImage</link>"
+
+#: C/image.js.page:6(info/title)
+msgctxt "text"
+msgid "Image (JavaScript)"
+msgstr "ÎÎÎÏÎÎ (JavaScript)"
+
+#: C/image.js.page:26(page/code)
+#, no-wrap
+msgid ""
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gio = imports.gi.Gio;\n"
+"const GLib = imports.gi.GLib;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"const ImageExample = new Lang.Class ({\n"
+"\tName: 'Image Example',\n"
+"\n"
+"\t/* Create the application itself\n"
+"\t   This boilerplate code is needed to build any GTK+ application. */\n"
+"        _init: function () {\n"
+"   \t     this.application = new Gtk.Application ({\n"
+"  \t          application_id: 'org.example.jsimage',\n"
+"  \t          flags: Gio.ApplicationFlags.FLAGS_NONE\n"
+"   \t     });\n"
+"\n"
+"\t// Connect 'activate' and 'startup' signals to the callback functions\n"
+"\tthis.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"\tthis.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"\t},\n"
+"\n"
+"\t// Callback function for 'activate' signal presents windows when active\n"
+"\t_onActivate: function () {\n"
+"\t\tthis._window.present ();\n"
+"\t},\n"
+"\n"
+"\t// Callback function for 'startup' signal initializes menus and builds the UI\n"
+"\t_onStartup: function () {\n"
+"\t\tthis._buildUI ();\n"
+"\t},\n"
+"\n"
+"\n"
+"\n"
+"\n"
+"\t// Build the application's UI\n"
+"\t_buildUI: function () {\n"
+"\n"
+"\t\t// Create the application window\n"
+"        \tthis._window = new Gtk.ApplicationWindow  ({ application: this.application,\n"
+"                                                     \t     window_position: Gtk.WindowPosition.CENTER,\n"
+"                                                     \t     title: \"Welcome to GNOME\",\n"
+"                                                     \t     default_height: 300,\n"
+"                                                     \t     default_width: 300 });\n"
+"\n"
+"\t\t// Create the label\n"
+"\t\tthis.jsimage = new Gtk.Image ({file: \"gnome-image.png\"});\n"
+"\t\tthis._window.add (this.jsimage);\n"
+"\n"
+"       \t \t// Show the window and all child widgets\n"
+"       \t \tthis._window.show_all();\n"
+"\t}\n"
+"\n"
+"\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new ImageExample ();\n"
+"app.application.run (ARGV);\n"
+msgstr ""
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gio = imports.gi.Gio;\n"
+"const GLib = imports.gi.GLib;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"const ImageExample = new Lang.Class ({\n"
+"\tName: 'Image Example',\n"
+"\n"
+"\t/* Create the application itself\n"
+"\t   This boilerplate code is needed to build any GTK+ application. */\n"
+"        _init: function () {\n"
+"   \t     this.application = new Gtk.Application ({\n"
+"  \t          application_id: 'org.example.jsimage',\n"
+"  \t          flags: Gio.ApplicationFlags.FLAGS_NONE\n"
+"   \t     });\n"
+"\n"
+"\t// Connect 'activate' and 'startup' signals to the callback functions\n"
+"\tthis.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"\tthis.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"\t},\n"
+"\n"
+"\t// Callback function for 'activate' signal presents windows when active\n"
+"\t_onActivate: function () {\n"
+"\t\tthis._window.present ();\n"
+"\t},\n"
+"\n"
+"\t// Callback function for 'startup' signal initializes menus and builds the UI\n"
+"\t_onStartup: function () {\n"
+"\t\tthis._buildUI ();\n"
+"\t},\n"
+"\n"
+"\n"
+"\n"
+"\n"
+"\t// Build the application's UI\n"
+"\t_buildUI: function () {\n"
+"\n"
+"\t\t// Create the application window\n"
+"        \tthis._window = new Gtk.ApplicationWindow  ({ application: this.application,\n"
+"                                                     \t     window_position: Gtk.WindowPosition.CENTER,\n"
+"                                                     \t     title: \"Welcome to GNOME\",\n"
+"                                                     \t     default_height: 300,\n"
+"                                                     \t     default_width: 300 });\n"
+"\n"
+"\t\t// Create the label\n"
+"\t\tthis.jsimage = new Gtk.Image ({file: \"gnome-image.png\"});\n"
+"\t\tthis._window.add (this.jsimage);\n"
+"\n"
+"       \t \t// Show the window and all child widgets\n"
+"       \t \tthis._window.show_all();\n"
+"\t}\n"
+"\n"
+"\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new ImageExample ();\n"
+"app.application.run (ARGV);\n"
+
+#: C/image.js.page:33(item/p)
+msgid ""
+"<link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Image.html";
+"\">Gtk.Image</link>"
+msgstr ""
+"<link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Image.html";
+"\">Gtk.Image</link>"
+
+#: C/image.py.page:7(info/title)
+msgctxt "text"
+msgid "Image (Python)"
+msgstr "ÎÎÎÏÎÎ (Python)"
+
+#: C/image.py.page:24(note/p)
+msgid ""
+"If the image file is not loaded successfully, the image will contain a "
+"\"broken image\" icon. The <file>filename.png</file> needs to be in the "
+"current directory for this code to work."
+msgstr ""
+"ÎÎÎ ÏÎ ÎÏÏÎÎÎ ÎÎÎÏÎÎÏ ÎÎÎ ÏÎÏÏÏÎÎÎ ÎÏÎÏÏÏÏÏ, Î ÎÎÎÏÎÎ ÎÎ ÏÎÏÎÎÏÎÎ ÎÎÎ "
+"ÎÎÎÎÎÎÎÎÎ \"ÏÏÎÏÎÎÎÎÏ ÎÎÎÏÎÎÏ\". ÎÎ <file>filename.png</file> ÏÏÎÎÎÎÎÏÎÎ ÎÎ "
+"ÎÎÎÎÎ ÏÏÎÎ ÏÏÎÏÎÎÏÎ ÎÎÏÎÎÎÎÎ ÎÎÎ ÎÎ ÎÎÏÎÎÏÎÎ ÎÏÏÏÏ Î ÎÏÎÎÎÎÏ."
+
+#: C/image.py.page:33(section/code)
+#, no-wrap
+msgid ""
+"from gi.repository import Gtk\n"
+"import sys\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    # create a window\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"Welcome to GNOME\", application=app)\n"
+"        self.set_default_size(300, 300)\n"
+"\n"
+"        # create an image\n"
+"        image = Gtk.Image()\n"
+"        # set the content of the image as the file filename.png\n"
+"        image.set_from_file(\"gnome-image.png\")\n"
+"        # add the image to the window\n"
+"        self.add(image)\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
+msgstr ""
+"from gi.repository import Gtk\n"
+"import sys\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    # create a window\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"Welcome to GNOME\", application=app)\n"
+"        self.set_default_size(300, 300)\n"
+"\n"
+"        # create an image\n"
+"        image = Gtk.Image()\n"
+"        # set the content of the image as the file filename.png\n"
+"        image.set_from_file(\"gnome-image.png\")\n"
+"        # add the image to the window\n"
+"        self.add(image)\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
+
+#: C/image.py.page:35(section/p)
+msgid ""
+"Another way to obtain what we have in the example is to create the image as "
+"an instance of another class and add it to the instance of <code>MyWindow</"
+"code> in the <code>do_activate(self)</code> method:"
+msgstr ""
+"ÎÎÎÏ ÎÎÎÎÏ ÏÏÏÏÎÏ ÎÎÎ ÎÎ ÏÎÏÎÏÎ ÏÏÎ ÎÏÎÏÎÎ ÏÏÎ ÏÎÏÎÎÎÎÎÎÎ ÎÎÎÎÎ Î ÎÎÎÎÎÏÏÎÎÎ "
+"ÏÎÏ ÎÎÎÏÎÎÏ ÏÏ ÎÎÎ ÏÏÎÎÎÎÏÏÏÏÎ ÎÎÎÏ ÎÎÎÎÏ ÎÎÎÏÎÏ ÎÎÎ ÏÏÎÏÎÎÎÎ ÏÎÏ ÏÏÎ "
+"ÏÏÎÎÎÎÏÏÏÏÎ ÏÎÏ <code>MyWindow</code> ÏÏÎ ÎÎÎÎÎÎ <code>do_activate(self)</"
+"code>:"
+
+#: C/image.py.page:36(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"# a class to create a window\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"Welcome to GNOME\", application=app)\n"
+"        self.set_default_size(300, 300)\n"
+"\n"
+"# a class to create an image\n"
+"class MyImage(Gtk.Image):\n"
+"    def __init__(self):\n"
+"        Gtk.Image.__init__(self)\n"
+"        self.set_from_file(\"gnome-image.png\")\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        # create an instance of MyWindow\n"
+"        win = MyWindow(self)\n"
+"        # create an instance of MyImage and add it to the window\n"
+"        win.add(MyImage())\n"
+"        # show the window and everything on it\n"
+"        win.show_all()"
+msgstr ""
+"\n"
+"# a class to create a window\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"Welcome to GNOME\", application=app)\n"
+"        self.set_default_size(300, 300)\n"
+"\n"
+"# a class to create an image\n"
+"class MyImage(Gtk.Image):\n"
+"    def __init__(self):\n"
+"        Gtk.Image.__init__(self)\n"
+"        self.set_from_file(\"gnome-image.png\")\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        # create an instance of MyWindow\n"
+"        win = MyWindow(self)\n"
+"        # create an instance of MyImage and add it to the window\n"
+"        win.add(MyImage())\n"
+"        # show the window and everything on it\n"
+"        win.show_all()"
+
+#: C/image.py.page:63(section/title)
+msgid "Useful methods for an Image widget"
+msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÎÎÏÎÎÏ"
+
+#: C/image.py.page:66(item/p)
+msgid ""
+"To set a stock icon as image, you can use <code>set_from_stock(stock_id, "
+"size)</code> where <code>stock_id</code> is a stock icon such as <code>Gtk."
+"STOCK_ABOUT</code> (more can be found at <link href=\"http://developer.gnome.";
+"org/gtk3/unstable/gtk3-Stock-Items\">Stock Items</link>, with the caveat "
+"that they should be modified as above) and <code>size</code> is a stock icon "
+"size to be chosen from <code>Gtk.IconSize.INVALID, Gtk.IconSize.MENU, Gtk."
+"IconSize.SMALL_TOOLBAR, Gtk.IconSize.LARGE_TOOLBAR, Gtk.IconSize.BUTTON, Gtk."
+"IconSize.DND, Gtk.IconSize.DIALOG</code>."
+msgstr ""
+"ÎÎÎ ÎÎ ÎÏÎÏÎÏÎ ÎÎÎ ÎÎÎÎÎÎÎÎÎ ÏÎÏÎÎÎÏÎÎÎÎÎÏ ÏÏ ÎÎÎÏÎÎ, ÎÏÎÏÎÎÏÎ ÎÎ "
+"ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÏÎ <code>set_from_stock(stock_id, size)</code> ÏÏÎÏ "
+"<code>stock_id</code> ÎÎÎÎÎ ÎÎÎ ÎÎÎÎÎÎÎÎÎ ÏÎÏÎÎÎÏÎÎÎÎÎÏ ÏÏÏÏ <code>Gtk."
+"STOCK_ABOUT</code> (ÏÎÏÎÏÏÏÏÎÏÎ ÎÏÎÏÎÎÏÎ ÎÎ ÎÏÎÎÏÎ ÏÏÎ <link href=\"http://";
+"developer.gnome.org/gtk3/unstable/gtk3-Stock-Items\">ÏÏÎÎÏÎÎÎ ÏÎÏÎÎÎÏÎÎÎÎÎÏ</"
+"link>, ÎÎ ÏÎÎ ÎÏÎÏÏÎÎÎÎ ÏÏÎ ÏÏÎÏÎÎ ÎÎ ÏÏÎÏÎÏÎÎÎÎÎÏÎ ÏÏÏÏ ÏÎÎ ÏÎÎÏ) ÎÎÎ "
+"<code>size</code> ÎÎÎÎÎ ÎÎÎÎÎÎÏ ÎÎÎÎÎÎÎÎÎÏ ÏÎÏÎÎÎÏÎÎÎÎÎÏ ÎÎÎ ÎÏÎÎÎÎÎ ÎÏÏ "
+"<code>Gtk.IconSize.INVALID, Gtk.IconSize.MENU, Gtk.IconSize.SMALL_TOOLBAR, "
+"Gtk.IconSize.LARGE_TOOLBAR, Gtk.IconSize.BUTTON, Gtk.IconSize.DND, Gtk."
+"IconSize.DIALOG</code>."
+
+#: C/image.py.page:67(item/p)
+msgid ""
+"You can also use <code>set_from_icon_name(icon_name, size)</code>, where "
+"<code>icon_name</code> is a stock icon name such as <code>\"gtk-about\"</"
+"code> (more can be found as above) and <code>size</code> is as above."
+msgstr ""
+"ÎÏÎÏÎÎÏÎ ÎÏÎÏÎÏ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ <code>set_from_icon_name(icon_name, size)"
+"</code>, ÏÏÎÏ <code>icon_name</code> ÎÎÎÎÎ ÏÎÎÎÎ ÎÎÎÎÎÎÎÎÎÏ ÏÎÏÎÎÎÏÎÎÎÎÎÏ "
+"ÏÏÏÏ ÏÎ <code>\"gtk-about\"</code> (ÏÎÏÎÏÏÏÏÎÏÎ ÎÏÎÏÎÏÎ ÎÎ ÎÏÎÎÎÏÎ ÏÏÏÏ "
+"ÏÎÏÎÏÎÎÏ) ÎÎÎ ÏÎ <code>size</code> ÎÎÎÎÎ ÏÏÏÏ ÏÎÏÎÏÎÎÏ."
+
+#: C/image.py.page:68(item/p)
+msgid ""
+"To load an image over a network use <code>set_from_pixbuf(pixbuf)</code>, "
+"where <code>pixbuf</code> is a <link href=\"http://developer.gnome.org/gdk-";
+"pixbuf/unstable//index.html\">GdkPixbuf</link>."
+msgstr ""
+"ÎÎÎ ÏÏÏÏÏÏÎ ÎÎÎÏÎÎÏ ÎÎÏÏ ÎÎÎÏÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÏÏÎ <code>set_from_pixbuf(pixbuf)"
+"</code>, ÏÏÎÏ <code>pixbuf</code> ÎÎÎÎÎ <link href=\"http://developer.gnome.";
+"org/gdk-pixbuf/unstable//index.html\">GdkPixbuf</link>."
+
+#: C/image.py.page:69(item/code)
+#, no-wrap
+msgid ""
+"\n"
+"from gi.repository import Gtk\n"
+"from gi.repository import GdkPixbuf\n"
+"import sys\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    # create a window\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"Welcome to GNOME\", application=app)\n"
+"        self.set_default_size(300, 300)\n"
+"\n"
+"        # create a pixbuf from file filename=\"gnome-image.png\", with width=32\n"
+"        # and height=64 amd boolean preserve_aspect_ratio=False.\n"
+"        pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_scale(\"gnome-image.png\", 64, 128, False)\n"
+"\n"
+"        # create an image\n"
+"        image = Gtk.Image()\n"
+"        # set the content of the image as the pixbuf\n"
+"        image.set_from_pixbuf(pixbuf)\n"
+"        # add the image to the window\n"
+"        self.add(image)"
+msgstr ""
+"\n"
+"from gi.repository import Gtk\n"
+"from gi.repository import GdkPixbuf\n"
+"import sys\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    # create a window\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"Welcome to GNOME\", application=app)\n"
+"        self.set_default_size(300, 300)\n"
+"\n"
+"        # create a pixbuf from file filename=\"gnome-image.png\", with width=32\n"
+"        # and height=64 amd boolean preserve_aspect_ratio=False.\n"
+"        pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_scale(\"gnome-image.png\", 64, 128, False)\n"
+"\n"
+"        # create an image\n"
+"        image = Gtk.Image()\n"
+"        # set the content of the image as the pixbuf\n"
+"        image.set_from_pixbuf(pixbuf)\n"
+"        # add the image to the window\n"
+"        self.add(image)"
+
+#: C/image.py.page:90(item/p)
+msgid ""
+"If <code>preserve_aspect_ratio=True</code> we can use "
+"<code>new_from_file_at_size(filename, width, height)</code>. If <code>width</"
+"code> or <code>height</code> is <code>-1</code>, it is not constrained."
+msgstr ""
+"ÎÎÎ <code>preserve_aspect_ratio=True</code> ÎÏÎÏÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ "
+"<code>new_from_file_at_size(filename, width, height)</code>. ÎÎÎ "
+"<code>width</code> Î <code>height</code> ÎÎÎÎÎ <code>-1</code>, ÎÎÎ "
+"ÏÎÏÎÎÏÎÎÎÏÎÎ."
+
+#: C/image.py.page:91(item/p)
+msgid ""
+"For loading from an input stream, see <code>new_from_stream()</code> and "
+"<code>new_from_stream_at_scale()</code> in the documentation"
+msgstr ""
+"ÎÎÎ ÏÏÏÏÏÏÎ ÎÏÏ ÏÎÎ ÎÎÏÏÎÎÏ, ÎÎÎÏÎ <code>new_from_stream()</code> ÎÎÎ "
+"<code>new_from_stream_at_scale()</code> ÏÏÎÎ ÏÎÎÎÎÏÎÏÏÎ"
+
+#: C/image.vala.page:7(info/title)
+msgctxt "text"
+msgid "Image (Vala)"
+msgstr "ÎÎÎÏÎÎ (Vala)"
+
+#: C/image.vala.page:26(page/code)
+#, no-wrap
+msgid ""
+"public class MyWindow : Gtk.ApplicationWindow {\n"
+"\tinternal MyWindow (MyApplication app) {\n"
+"\t\tObject (application: app, title: \"Welcome to GNOME\");\n"
+"\n"
+"\t\tvar image = new Gtk.Image ();\n"
+"\t\timage.set_from_file (\"gnome-image.png\");\n"
+"\t\tthis.add (image);\n"
+"\t\tthis.set_default_size (300, 300);\n"
+"\t}\n"
+"}\n"
+"\n"
+"public class MyApplication : Gtk.Application {\n"
+"\tprotected override void activate () {\n"
+"\t\tnew MyWindow (this).show_all ();\n"
+"\t}\n"
+"\n"
+"\tinternal MyApplication () {\n"
+"\t\tObject (application_id: \"org.example.MyApplication\");\n"
+"\t}\n"
+"}\n"
+"\n"
+"public int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
+msgstr ""
+"public class MyWindow : Gtk.ApplicationWindow {\n"
+"\tinternal MyWindow (MyApplication app) {\n"
+"\t\tObject (application: app, title: \"Welcome to GNOME\");\n"
+"\n"
+"\t\tvar image = new Gtk.Image ();\n"
+"\t\timage.set_from_file (\"gnome-image.png\");\n"
+"\t\tthis.add (image);\n"
+"\t\tthis.set_default_size (300, 300);\n"
+"\t}\n"
+"}\n"
+"\n"
+"public class MyApplication : Gtk.Application {\n"
+"\tprotected override void activate () {\n"
+"\t\tnew MyWindow (this).show_all ();\n"
+"\t}\n"
+"\n"
+"\tinternal MyApplication () {\n"
+"\t\tObject (application_id: \"org.example.MyApplication\");\n"
+"\t}\n"
+"}\n"
+"\n"
+"public int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
+
+#: C/image.vala.page:31(item/p)
+msgid ""
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Application.html";
+"\">GtkApplication</link>"
+msgstr ""
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Application.html";
+"\">GtkApplication</link>"
+
+#: C/image.vala.page:32(item/p)
+msgid ""
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.ApplicationWindow.html";
+"\">GtkApplicationWindow</link>"
+msgstr ""
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.ApplicationWindow.html";
+"\">GtkApplicationWindow</link>"
+
+#: C/image.vala.page:33(item/p)
+msgid ""
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Image.html\";>GtkImage</link>"
+msgstr ""
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Image.html\";>GtkImage</link>"
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/image-viewer.c.page:33(media) C/image-viewer.cpp.page:31(media)
+#: C/image-viewer.js.page:42(media) C/image-viewer.py.page:41(media)
+#: C/image-viewer.vala.page:48(media)
+msgctxt "_"
+msgid ""
+"external ref='media/image-viewer.png' md5='7720360611243b14283b83527be968c2'"
+msgstr ""
+"external ref='media/image-viewer.png' md5='7720360611243b14283b83527be968c2'"
+
+#: C/image-viewer.c.page:7(info/title)
+msgctxt "text"
+msgid "Image Viewer (C)"
+msgstr "ÎÏÎÎÎÎÎÎÏ ÎÎÎÏÎÏÎ (C)"
+
+#: C/image-viewer.c.page:10(info/desc) C/image-viewer.vala.page:10(info/desc)
+msgid "A little bit more than a simple \"Hello world\" Gtk application."
+msgstr "ÎÎÏÎ ÏÎÏÎÏÏÏÏÎÏÎ ÎÏÏ ÎÏÎÎ ÎÏÎÏÎÎÎÎ Gtk ÏÏÏÏ ÏÎ \"ÎÎÎÎ ÏÎÏ ÎÏÏÎÎ\"."
+
+#: C/image-viewer.c.page:23(page/title) C/image-viewer.cpp.page:21(page/title)
+msgid "Image Viewer"
+msgstr "ÎÏÎÎÎÎÎ ÎÎÎÏÎÏÎ"
+
+#: C/image-viewer.c.page:26(synopsis/p) C/image-viewer.cpp.page:24(synopsis/p)
+#: C/message-board.c.page:24(synopsis/p)
+#: C/record-collection.js.page:26(synopsis/p)
+msgid "In this tutorial, you will learn:"
+msgstr "ÎÎ ÎÏÏÏ ÏÎ ÎÎÎÎÎÎ, ÎÎ ÎÎÎÎÏÎ:"
+
+#: C/image-viewer.c.page:28(item/p)
+msgid "Some basic concepts of C/GObject programming"
+msgstr "ÎÎÏÎÎÎÏ ÎÎÏÎÎÎÏ ÎÎÎÎÎÎÏ ÏÎÏ ÏÏÎÎÏÎÎÎÎÏÎÏÎÎÏ C/GObject"
+
+#: C/image-viewer.c.page:29(item/p)
+msgid "How to write a Gtk application in C"
+msgstr "ÎÏÏ ÎÎ ÎÏÎÏÎÏÎ ÎÎÎ ÎÏÎÏÎÎÎÎ Gtk ÏÎ C"
+
+#: C/image-viewer.c.page:43(item/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 ""
+"ÎÏÎÎÎÎÏÎ <gui>Gtk+ (ÎÏÎÏ)</gui> ÎÏÏ ÏÎÎ ÎÎÏÏÎÎÎ <gui>C</gui>, ÏÎÏÎÏÏÎ "
+"<gui>ÏÏÎÎÏÎÎÎ</gui>, ÎÎÎ ÏÏÎÏÎÎÏÏÏÏÎ ÏÎÏ ÎÎÏÏÎÎÎÏÎÎÎÏ ÏÎÏ ÏÏÎÏ ÎÏÏÎÎÎÎÏ "
+"ÎÎÎÎÏ ÏÎÎÎÎÎÏ. ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ ÏÎ <file>image-viewer</file> ÏÏ ÏÎÎÎÎ ÏÎÏ "
+"ÎÏÎÎÏ ÎÎÎ ÏÎÏ ÎÎÏÎÎÏÎÎÏ."
+
+#: C/image-viewer.c.page:46(item/p)
+msgid ""
+"Make sure that <gui>Use GtkBuilder for user interface</gui> is disabled as "
+"we will create the UI manually in this tutorial. Check the <link xref="
+"\"guitar-tuner.c\">Guitar-Tuner</link> tutorial if you want to learn how to "
+"use the interface builder."
+msgstr ""
+"ÎÎÎÎÎÏÎÎÎÏÎ ÏÏÎ ÎÏÎÎÎÏÎÎÏÎÎÎÏÎÏÎ ÏÎ <gui>ÏÏÎÏÎ ÏÎÏ GtkBuilder ÎÎÎ ÎÎÎÏÎÏÎ "
+"ÏÏÎÏÎ</gui> ÎÏÎÎÎÎ ÎÎ ÏÏÎÎÎÎÏÎÎ ÏÎ ÎÎÎÏÎÏÎ ÏÏÎÏÏÎ ÏÎÎÏÎÎÎÎÎÏÎ ÏÎ ÎÏÏÏ ÏÎ "
+"ÎÎÎÎÎÎ. ÎÎÎÎÎÏÏÏÎ ÏÎ ÎÎÎÎÎÎ <link xref=\"guitar-tuner.c\">ÏÏÎÎÎÏÏÎÏ ÎÎÎÎÏÎÏ</"
+"link> ÎÎÎ ÎÎÎÎÏÎ ÎÎ ÎÎÎÎÏÎ ÏÎ ÏÏÎÏÎ ÏÎÏ ÎÎÏÎÏÎÎÏÎÏÏÎ ÎÎÎÏÎÏÎÏ."
+
+#: C/image-viewer.c.page:61(section/p)
+msgid ""
+"C is a rather verbose language, so don't be surprised that the file contains "
+"quite a lot of code. Most of it is template code. It loads an (empty) window "
+"and shows it. More details are given below; skip this list if you understand "
+"the basics:"
+msgstr ""
+"Î C ÎÎÎÎÎ ÎÎÎ ÎÎÎÎÎÎ ÏÎÏÎÎÏÎÏÎÎÎ ÎÎÏÏÏÎ, ÎÏÏÎ ÎÎÎ ÎÎÏÎÎÎÎÎÏÎ ÏÎÏ ÏÎ ÎÏÏÎÎÎ "
+"ÏÎÏÎÎÏÎÎ ÏÎÎÏ ÎÏÎÎÎÎ. Î ÏÎÏÎÏÏÏÏÎÏÎÏ ÎÏÎÎÎÎÏ ÎÎÎÎÎ ÏÏÏÏÏÏÎ ÎÏÎÎÎÎ. ÎÎÏÏÏÎÎÎ "
+"ÎÎÎ (ÎÎÎÏ) ÏÎÏÎÎÏÏÎ ÎÎÎ ÏÎ ÎÎÏÎÎÎÎÎÎ. ÎÎÏÎÏÏÏÏÎÏÎÏ ÎÎÏÏÎÎÎÏÎÎÎÏ ÏÏÎÏÏÎÏÎ ÏÎÎ "
+"ÎÎÏÏÂ ÏÏÎÏÏÎÏÎÏÏÎ ÎÏÏÎ ÏÎ ÎÎÏÏÎ ÎÎ ÎÎÏÎÎÎÎÎÎÎÎÏÎ ÏÎ ÎÎÏÎÎÎ:"
+
+#: C/image-viewer.c.page:68(item/p)
+msgid ""
+"The <code>create_window</code> function creates a new (empty) window and "
+"connects a signal to exit the application when that window is closed."
+msgstr ""
+"Î ÏÏÎÎÏÏÎÏÎ <code>create_window</code> ÎÎÎÎÎÏÏÎÎÎ ÎÎÎ ÎÎÎ (ÎÎÎÎÎ) ÏÎÏÎÎÏÏÎ "
+"ÎÎÎ ÏÏÎÎÎÎÎ ÎÎÎ ÏÎÎÎ ÎÎÎ ÎÎÎÎÎ ÏÎÏ ÎÏÎÏÎÎÎÎÏ ÏÏÎÎ ÏÎ ÏÎÏÎÎÏÏÎ ÎÎÎÎÎÎÎ."
+
+#: C/image-viewer.c.page:84(section/title)
+#: C/image-viewer.cpp.page:81(section/title)
+#: C/image-viewer.vala.page:133(section/title)
+msgid "Creating the user interface"
+msgstr "ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ ÎÎÎÏÎÏÎÏ ÏÏÎÏÏÎ"
+
+#: C/image-viewer.c.page:85(section/p)
+msgid ""
+"Now we will bring life into the empty window. GTK organizes the user "
+"interface with <code>GtkContainer</code>s that can contain other widgets and "
+"even other containers. Here we will use the simplest available container, a "
+"<code>GtkBox</code>:"
+msgstr ""
+"ÎÏÏÎ ÎÎÎÎÏÎÎ ÎÏÎ ÏÏÎ ÎÎÎÎÎ ÏÎÏÎÎÏÏÎ. ÎÎ GTK ÎÏÎÎÎÏÎÎÎ ÏÎ ÎÎÎÏÎÏÎ ÏÏÎÏÏÎ ÎÎ "
+"ÏÎ <code>GtkContainer</code> ÏÎÏ ÎÏÎÏÎÎ ÎÎ ÏÎÏÎÎÏÎÎ ÎÎÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ "
+"ÎÎÎ ÎÎÏÎÎ ÎÎÎÎÏÏ ÏÎÏÎÎÎÏÎÏ. ÎÎÏ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÏÎÎ ÎÏÎÎÏÏÏÎÏÎ ÎÎÎÎÎÏÎÎÎ "
+"ÏÎÏÎÎÎÏÎ, ÎÎÎÎ <code>GtkBox</code>:"
+
+#: C/image-viewer.c.page:88(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"static GtkWidget*\n"
+"create_window (void)\n"
+"{\n"
+"\tGtkWidget *window;\n"
+"\tGtkWidget *button;\n"
+"\tGtkWidget *image;\n"
+"\tGtkWidget *box;\n"
+"\n"
+"\t/* Set up the UI */\n"
+"\twindow = gtk_window_new (GTK_WINDOW_TOPLEVEL);\n"
+"\tgtk_window_set_title (GTK_WINDOW (window), \"image-viewer-c\");\n"
+"\n"
+"\tbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5);\n"
+"\tbutton = gtk_button_new_with_label (_(\"Open image\"));\n"
+"\timage = gtk_image_new ();\n"
+"\n"
+"\tgtk_box_pack_start (GTK_BOX (box), image, TRUE, TRUE, 0);\n"
+"\tgtk_box_pack_start (GTK_BOX (box), button, FALSE, FALSE, 0);\n"
+"\n"
+"\tgtk_container_add (GTK_CONTAINER (window), box);\n"
+"\n"
+"\t/* Connect signals */\n"
+"\n"
+"\t/* Show open dialog when opening a file */\n"
+"\tg_signal_connect (button, \"clicked\", G_CALLBACK (on_open_image), image);\n"
+"\n"
+"\t/* Exit when the window is closed */\n"
+"\tg_signal_connect (window, \"destroy\", G_CALLBACK (gtk_main_quit), NULL);\n"
+"\n"
+"\treturn window;\n"
+"}\n"
+msgstr ""
+"\n"
+"static GtkWidget*\n"
+"create_window (void)\n"
+"{\n"
+"\tGtkWidget *window;\n"
+"\tGtkWidget *button;\n"
+"\tGtkWidget *image;\n"
+"\tGtkWidget *box;\n"
+"\n"
+"\t/* Set up the UI */\n"
+"\twindow = gtk_window_new (GTK_WINDOW_TOPLEVEL);\n"
+"\tgtk_window_set_title (GTK_WINDOW (window), \"image-viewer-c\");\n"
+"\n"
+"\tbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5);\n"
+"\tbutton = gtk_button_new_with_label (_(\"Open image\"));\n"
+"\timage = gtk_image_new ();\n"
+"\n"
+"\tgtk_box_pack_start (GTK_BOX (box), image, TRUE, TRUE, 0);\n"
+"\tgtk_box_pack_start (GTK_BOX (box), button, FALSE, FALSE, 0);\n"
+"\n"
+"\tgtk_container_add (GTK_CONTAINER (window), box);\n"
+"\n"
+"\t/* Connect signals */\n"
+"\n"
+"\t/* Show open dialog when opening a file */\n"
+"\tg_signal_connect (button, \"clicked\", G_CALLBACK (on_open_image), image);\n"
+"\n"
+"\t/* Exit when the window is closed */\n"
+"\tg_signal_connect (window, \"destroy\", G_CALLBACK (gtk_main_quit), NULL);\n"
+"\n"
+"\treturn window;\n"
+"}\n"
+
+#: C/image-viewer.c.page:123(item/p)
+msgid ""
+"The first lines create the widgets we want to use: a button for opening up "
+"an image, the image view widget itself and the box we will use as a "
+"container. 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 ""
+"ÎÎ ÏÏÏÏÎÏ ÎÏÎÎÎÎÏ ÎÎÎÎÎÏÏÎÎÏÎ ÏÎ ÎÏÎÎÏÎÎÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÎ ÏÏÎÏÎ: ÎÎÎ "
+"ÎÎÏÎÏÎ ÎÎÎ ÎÎÎÎÎÎÎ ÎÎÎÏ ÎÎÎÏÎÎÏ, ÏÎ ÎÎÎÎ ÏÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÏÏÎÎÎÎÎÏ ÏÎÏ "
+"ÎÎÎÏÎÎÏ ÎÎÎ ÏÎ ÏÎÎÎÏÎÎ ÏÎÏ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÏÏ ÏÎÏÎÎÎÏÎ. ÎÎ ÎÎÎÏÎÎÎÏÎÎÎÏ "
+"ÏÏÏÏ <code>GTK_BOX</code> ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÎÎ ÎÎÎÎÏÎ ÎÏÎÎÎÎÎÎÏ ÏÏÏÎÏ ÎÎÎ "
+"ÎÎÎÎÎÎÏ ÏÎÏ ÎÏÎÎÏÎÏÎÏÎÎ ÎÎÎÏÏ Î C ÎÎÎ ÏÏÎÏÏÎÏÎÎÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏ "
+"ÎÎÏÎÎÎÎÎÎÎÎÏ ÎÎÏÏÏ ÏÎÎÎÏÎÎÏ."
+
+#: C/image-viewer.c.page:128(item/p)
+msgid ""
+"The calls to <code>gtk_box_pack_start</code> add the two widgets to the box "
+"and define their behaviour. The image will expand into any available space "
+"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 ""
+"ÎÎ ÎÎÎÏÎÎÏ ÏÏÎ <code>gtk_box_pack_start</code> ÏÏÎÏÎÎÏÎÏÎ ÏÎ ÎÏÎ ÎÏÎÏÎÎÎ "
+"ÏÏÏÏÎÏÎÎÎ ÏÏÎ ÏÎÎÎÏÎÎ ÎÎÎ ÎÏÎÎÎÏÎ ÏÎ ÏÏÎÏÎÏÎÏÎÏÎ ÏÎÏÏ. Î ÎÎÎÏÎÎ ÎÎ ÎÏÎÎÏÎÎÎÎ "
+"ÏÎ ÎÎÎÎ ÎÎÎÎÎÏÎÎÎ ÏÏÏÎ, ÎÎÏ ÏÎ ÎÎÏÎÏÎ ÎÎ ÎÎÎÎÎ ÎÏÎÎ ÏÏÏÎ ÎÎÎÎÎÎ ÏÏÎ "
+"ÏÏÎÎÎÎÎÏÎÎ. ÎÎ ÏÎÏÎÏÎÏÎÏÎÏÎ ÏÏÎ ÎÎÎ ÎÏÎÎÎÏÎÎ ÏÎÏÎ ÎÎÎÎÎÎ ÏÏÎ ÎÏÎÏÎÎÎ "
+"ÏÏÏÏÎÏÎÎÎ. ÎÏÎ GTK ÎÏÏÏ ÏÏÎÎÎÏÏ ÎÎÎ ÏÏÎÎÎÎÎÏÎÎ ÎÏÎÎÎÎ ÎÎÎÎÎ ÏÎÎ ÎÏÎÏ ÎÎ "
+"ÎÏÎÏÎ ÎÎÎ ÎÎÎÏÎÎÎ ÏÎÏ ÏÎÎÎÎÏÎÎ ÎÎÎÎ ÎÎ ÎÎÎÏÎÏÎÏÎÎÎ ÎÎÎÎÎÎ ÏÎÏÎÎÏÏÏÎ. ÎÏÎ "
+"ÏÏÎÎÏÎÎÎ, ÏÎ ÏÎÎÎÏÎÎ ÏÏÎÏÏÎÎÎÏÎÎ ÏÏÎ ÏÎÏÎÎÏÏÎ."
+
+#: C/image-viewer.c.page:134(item/p)
+msgid ""
+"We need to define what happens when the user clicks on the button. GTK uses "
+"the concept of <em>signals</em>. When the button is clicked, it fires the "
+"<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 ""
+"ÎÏÎÎÎÎÏÎÎÏÏÎ ÎÎ ÎÏÎÏÎÏÎÎ ÏÎ ÏÏÎÎÎÎÎÎÎ ÏÏÎÎ Î ÏÏÎÏÏÎÏ ÏÎÏÎ ÏÎ ÎÎÎ ÏÎÎÎÏÏÎ. ÎÎ "
+"GTK ÏÏÎÏÎÎÎÏÎÎÎÎ ÏÎÎ ÎÎÎÎÎÎ ÏÏÎ <em>ÏÎÎÎÏÏÎ</em>. ÎÏÎÎ ÏÎ ÎÎÏÎÏÎ ÏÎÏÎÎÏÎÎ, "
+"ÎÎÎÎÎÎ ÏÎ ÏÎÎÎ <em>ÏÎÏÎÎÎÎÎ</em>, ÏÎÏ ÎÏÎÏÎÏÎÎ ÎÎ ÏÏÎÎÎÏÎÏÎÎ ÎÎ ÎÎÏÎÎÎ "
+"ÎÎÎÏÎÎÎÎ. ÎÏÏÏ ÎÎÎÎÏÎÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ ÏÏÎÎÏÏÎÏÎ <code>g_signal_connect</"
+"code> ÏÎÏ ÎÎÎÎ ÏÏÎ GTK ÎÎ ÎÎÎÎÏÎÎ ÏÎ ÏÏÎÎÏÏÎÏÎ <code>on_open_image</code> "
+"ÏÏÎÎ ÏÎ ÎÎÏÎÏÎ ÏÎÏÎÎÏÎÎ ÎÎÎ ÎÎ ÏÎÏÎÏÎÎ ÏÎÎ ÎÎÎÏÎÎ ÏÏ ÏÏÏÏÎÎÏÎ ÏÏÎÏÎÎ ÏÎ ÎÏÏÎ "
+"ÏÎ ÏÏÎÎÏÏÎÏÎ. ÎÎ ÎÏÎÏÎÏÎÎ ÏÎÎ <em>ÎÏÎÎÎÎÎÎÏÎ</em> ÏÏÎÎ ÎÏÏÎÎÎÎ ÎÎÏÏÎÏÎ."
+
+#: C/image-viewer.c.page:139(item/p)
+msgid ""
+"The last <code>g_signal_connect()</code> makes sure that the application "
+"exits when the window is closed."
+msgstr ""
+"Î ÏÎÎÎÏÏÎÎÎÏ <code>g_signal_connect()</code> ÎÏÎÎÎÎÎÎÏÎÎÎ ÏÏÎ Î ÎÏÎÏÎÎÎÎ "
+"ÏÎÏÎÎÎ ÏÏÎÎ ÏÎ ÏÎÏÎÎÏÏÎ ÎÎÎÎÎÎÎ."
+
+#: C/image-viewer.c.page:142(item/p)
+msgid ""
+"As a last step, make sure to replace the <code>gtk_widget_show</code> call "
+"in the <code>main()</code> function by <code>gtk_widget_show_all()</code> to "
+"show the window and all the widgets it contains."
+msgstr ""
+"ÎÏ ÏÎÎÎÏÏÎÎÎ ÎÎÎÎ, ÎÎÎÎÎÏÎÎÎÏÎ ÎÎ ÎÎÏÎÎÎÏÎÏÏÎÏÎÏÎ ÏÎÎ ÎÎÎÏÎ "
+"<code>gtk_widget_show</code> ÏÏÎ ÏÏÎÎÏÏÎÏÎ <code>main()</code> ÎÏÏ "
+"<code>gtk_widget_show_all()</code> ÎÎÎ ÎÎ ÎÎÏÎÎÎÏÏÎÎ ÏÎ ÏÎÏÎÎÏÏÎ ÎÎÎ ÏÎÎ ÏÎ "
+"ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÏÎÏ ÏÎÏÎÎÏÎÎ."
+
+#: C/image-viewer.c.page:149(section/title)
+#: C/image-viewer.cpp.page:136(section/title)
+#: C/image-viewer.vala.page:204(section/title)
+msgid "Showing the image"
+msgstr "ÎÎÏÎÎÎÏÎ ÏÎÏ ÎÎÎÏÎÎÏ"
+
+#: C/image-viewer.c.page:150(section/p)
+msgid ""
+"We will now define the signal handler for the <em>clicked</em> signal or the "
+"button we mentioned before. Add this code before the <code>create_window()</"
+"code> method."
+msgstr ""
+"ÎÎ ÎÏÎÏÎÏÎÎ ÏÏÏÎ ÏÎÎ ÏÎÎÏÎÏÏÎ ÏÎÎÎÏÎÏ ÎÎÎ ÏÎ ÏÎÎÎ <em>ÏÎÏÎÎÎÎÎ</em> Î ÎÎÎ ÏÎ "
+"ÎÎÏÎÏÎ ÏÎÏ ÎÎÎÏÎÏÎÎÎ ÏÏÎÎ. ÎÏÎÏÎÎÏÏÎ ÎÏÏÏÎ ÏÎÎ ÎÏÎÎÎÎ ÏÏÎÎ ÏÎ ÎÎÎÎÎÎ "
+"<code>create_window()</code>."
+
+#: C/image-viewer.c.page:153(section/code)
+#, no-wrap
 msgid ""
-"Set <code>\"has-tooltip\"</code> and connect to <code>\"query-tooltip\"</"
-"code> as before."
+"\n"
+"static void\n"
+"on_open_image (GtkButton* button, gpointer user_data)\n"
+"{\n"
+"\tGtkWidget *image = GTK_WIDGET (user_data);\n"
+"\tGtkWidget *toplevel = gtk_widget_get_toplevel (image);\n"
+"\tGtkFileFilter *filter = gtk_file_filter_new ();\n"
+"\tGtkWidget *dialog = gtk_file_chooser_dialog_new (_(\"Open image\"),\n"
+"\t                                                 GTK_WINDOW (toplevel),\n"
+"\t                                                 GTK_FILE_CHOOSER_ACTION_OPEN,\n"
+"\t                                                 GTK_STOCK_OK, GTK_RESPONSE_ACCEPT,\n"
+"\t                                                 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,\n"
+"\t                                                 NULL);\n"
+"\n"
+"\tgtk_file_filter_add_pixbuf_formats (filter);\n"
+"\tgtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dialog),\n"
+"\t                             filter);\n"
+"\n"
+"\tswitch (gtk_dialog_run (GTK_DIALOG (dialog)))\n"
+"\t{\n"
+"\t\tcase GTK_RESPONSE_ACCEPT:\n"
+"\t\t{\n"
+"\t\t\tgchar *filename =\n"
+"\t\t\t\tgtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog));\n"
+"\t\t\tgtk_image_set_from_file (GTK_IMAGE (image), filename);\n"
+"\t\t\tbreak;\n"
+"\t\t}\n"
+"\t\tdefault:\n"
+"\t\t\tbreak;\n"
+"\t}\n"
+"\tgtk_widget_destroy (dialog);\n"
+"}\n"
 msgstr ""
-"ÎÏÎÏÏÎ <code>\"has-tooltip\"</code> ÎÎÎ ÏÏÎÎÎÎÎÎÏÎ ÏÏÎ <code>\"query-tooltip"
-"\"</code> ÏÏÏÏ ÏÏÎÎ."
+"\n"
+"static void\n"
+"on_open_image (GtkButton* button, gpointer user_data)\n"
+"{\n"
+"\tGtkWidget *image = GTK_WIDGET (user_data);\n"
+"\tGtkWidget *toplevel = gtk_widget_get_toplevel (image);\n"
+"\tGtkFileFilter *filter = gtk_file_filter_new ();\n"
+"\tGtkWidget *dialog = gtk_file_chooser_dialog_new (_(\"Open image\"),\n"
+"\t                                                 GTK_WINDOW (toplevel),\n"
+"\t                                                 GTK_FILE_CHOOSER_ACTION_OPEN,\n"
+"\t                                                 GTK_STOCK_OK, GTK_RESPONSE_ACCEPT,\n"
+"\t                                                 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,\n"
+"\t                                                 NULL);\n"
+"\n"
+"\tgtk_file_filter_add_pixbuf_formats (filter);\n"
+"\tgtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dialog),\n"
+"\t                             filter);\n"
+"\n"
+"\tswitch (gtk_dialog_run (GTK_DIALOG (dialog)))\n"
+"\t{\n"
+"\t\tcase GTK_RESPONSE_ACCEPT:\n"
+"\t\t{\n"
+"\t\t\tgchar *filename =\n"
+"\t\t\t\tgtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog));\n"
+"\t\t\tgtk_image_set_from_file (GTK_IMAGE (image), filename);\n"
+"\t\t\tbreak;\n"
+"\t\t}\n"
+"\t\tdefault:\n"
+"\t\t\tbreak;\n"
+"\t}\n"
+"\tgtk_widget_destroy (dialog);\n"
+"}\n"
 
-#: C/tooltip.py.page:45(p)
+#: C/image-viewer.c.page:186(section/p) C/image-viewer.cpp.page:172(section/p)
+#: C/image-viewer.js.page:278(section/p) C/image-viewer.py.page:192(section/p)
 msgid ""
-"Use <code>set_tooltip_window()</code> on the widget to set a GtkWindow "
-"created by you as tooltip window."
+"This is a bit more complicated than anything we've attempted so far, so "
+"let's break it down:"
 msgstr ""
-"ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ <code>set_tooltip_window()</code> ÏÏÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÎÎ "
-"ÎÎ ÎÏÎÏÎÏÎ ÎÎÎ GtkWindow ÏÎÏ ÎÎÎÎÎÏÏÎÎÎÎÎÎ ÎÏÏ ÎÏÎÏ ÏÏ ÏÎÏÎÎÏÏÎ ÏÏÎÎÎÏÎÎÏ "
-"ÎÎÏÎÎÏ."
+"ÎÏÏÏ ÎÎÎÎÎ ÎÎÎÎ ÏÎÎ ÏÎÏÎÏÎÎÎÎ ÎÏÏ ÏÏÎ ÎÏÎÏÎÎ ÎÎÎÎÎ ÎÎÏÏÎ ÏÏÏÎ, ÎÎÎ ÎÏÏÏ ÎÎ "
+"ÏÎ ÏÏÏÎÏÎÏÎÎ ÏÎ ÎÎÎÎÎÏÎÎ:"
 
-#: C/tooltip.py.page:46(p)
+#: C/image-viewer.c.page:188(item/p)
 msgid ""
-"In the <code>\"query-tooltip\"</code> callback you can access your window "
-"using <code>get_tooltip_window()</code> and manipulate as you wish. The "
-"semantics of the return value are exactly as before, return <code>True</"
-"code> to show the window, <code>False</code> to not show it."
+"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 ""
-"ÎÏÎÎ ÎÏÎÎÎÎÎÎÏÎ <code>\"query-tooltip\"</code> ÎÏÎÏÎÎÏÎ ÎÎ ÏÏÎÏÏÎÎÎÏÎÏÎ ÏÎ "
-"ÏÎÏÎÎÏÏÎ ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ <code>get_tooltip_window()</code> ÎÎÎ ÎÎ ÏÎ "
-"ÏÎÎÏÎÏÏÎÎÏÎ ÏÏÏÏ ÎÏÎÎÏÎÎÎÏÎ. Î ÏÎÎÎÏÎÎÎÎÎÎÎ ÏÎÏ ÏÎÎÎÏ ÎÏÎÏÏÏÎÏÎÏ ÎÎÎÎÎ "
-"ÎÎÏÎÎÏÏ ÏÏÏÏ ÏÏÎÎ, ÎÏÎÏÏÏÎÏÎ <code>True</code> ÎÎÎ ÎÎ ÎÎÏÎÎÎÏÎÏÎ ÏÎ "
-"ÏÎÏÎÎÏÏÎ, <code>False</code> ÎÎÎ ÎÎ ÎÎÎ ÏÎ ÎÎÏÎÎÎÏÎÏÎ."
+"ÎÎ ÏÏÏÏÎ ÏÏÎÏÎÎ ÏÎÏ ÏÎÎÎÏÎÏ ÎÎÎÎÎ ÏÎÎÏÎÏÎ ÏÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÏÎÏ ÎÏÏÎÎÎÎ "
+"ÏÎ ÏÎÎÎ. ÎÎÏÎÎÎÏ ÏÎÏÎÏ ÎÎÎÎ ÎÏÎÏÎÎÏÎ ÏÏÎÏÎÎÎ ÎÎ ÏÎ ÏÎÎÎ ÎÏÏÎÎÏÎÎ ÎÎÏÎ ÎÏÏ "
+"ÎÏÏÏ, ÎÎÎÎ ÏÎ <em>ÏÎÏÎÎÎÎÎ</em> ÎÎÎ ÎÏÎÎ. ÎÏÏÎÎÎÎ ÏÏÎÏÎÎ ÎÎÎÎÎ ÏÎ "
+"<code>user_data</code> ÏÎÏ ÎÎÎÎÎ ÎÎÎÏ ÎÎÎÎÏÎÏ ÏÏÎ ÎÎÎÎÎÎÎÎ ÏÎÏ ÏÎÏÎÏÎÎÎ ÏÏÎÎ "
+"ÏÏÎÎÎÏÎÎÎ ÏÎ ÏÎÎÎ. ÎÎ ÎÏÏÎÎ ÏÎÎ ÏÎÏÎÏÏÏÏÎ ÎÎÎÎÎ ÏÎ ÎÎÏÎÎÎÎÎÎÎÏ ÎÎÏ "
+"<code>GtkImage</code>."
+
+#: C/image-viewer.c.page:194(item/p)
+msgid ""
+"The next interesting line is where the dialog for choosing the file is "
+"created using <code>gtk_file_chooser_dialog_new</code>. The function takes "
+"the title of the dialog, the parent window of the dialog and several options "
+"like the number of buttons and their corresponding values."
+msgstr ""
+"Î ÎÏÏÎÎÎÎ ÎÎÎÎÎÏÎÏÎÏÏÎ ÎÏÎÎÎÎ ÎÎÎÎÎ ÏÏÎÎ Î ÎÎÎÎÎÎÎÏ ÎÏÎÎÎÎÎÏ ÏÎÏ ÎÏÏÎÎÎÏ "
+"ÎÎÎÎÎÏÏÎÎÎÏÎÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ <code>gtk_file_chooser_dialog_new</code>. Î "
+"ÏÏÎÎÏÏÎÏÎ ÏÎÎÏÎÎÎ ÏÎÎ ÏÎÏÎÎ ÏÎÏ ÎÎÎÎÏÎÎÏ, ÏÎ ÎÎÎÏÎ ÏÎÏÎÎÏÏÎ ÏÎÏ ÎÎÎÎÏÎÎÏ ÎÎÎ "
+"ÏÎÎÎÎÏ ÎÏÎÎÎÎÎÏ ÏÏÏÏ Î ÎÏÎÎÎÏÏ ÏÏÎ ÎÎÏÎÏÎÏÎ ÎÎÎ ÎÎ ÎÎÏÎÏÏÎÎÏÎÏ ÏÎÎÎÏ ÏÎÏÏ."
+
+#: C/image-viewer.c.page:198(item/p) C/image-viewer.cpp.page:180(item/p)
+#: C/image-viewer.js.page:285(item/p) C/image-viewer.py.page:199(item/p)
+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 ""
+"ÎÎÎÎÎÏÏÏÎ ÏÏÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÏÎ <em>ÏÏÎÎÎÎÎÏÎÏÎÎÎÎ</em> ÎÎÏÎÎÏÎ ÎÎÏÎÏÎÏÎ "
+"ÏÎÏ ÏÏÎÏÏÎÏÎ ÏÏÎ Gtk, ÎÎÏÎ ÎÎ ÎÏÎÏÎÏÎÎ ÎÎ ÎÎÎÎÎ \"ÎÎÏÏÏÏÎ\" Î \"ÎÎÎÎÎÎÎ\". "
+"ÎÎ ÏÎÎÎÎÎÎÏÎÎÎ ÏÏÎ ÏÏÎÏÎ ÏÏÎ ÏÏÎÎÎÎÎÏÎÏÎÎÎÏÎ ÎÎÎÎÎÏÏÎ ÎÎÎÎÎ ÏÏÎ ÎÎ ÎÏÎÎÎÏÎÏ "
+"ÏÏÎ ÎÎÏÎÏÎÏÎ ÎÎ ÎÏÎÏÎ ÎÎÎ ÎÎÏÎÏÏÎÏÏÎÎ ÏÏÎ ÎÎÏÏÏÎ ÏÎÏ ÏÏÎÏÏÎ."
+
+#: C/image-viewer.c.page:201(item/p)
+msgid ""
+"The next two lines restrict the <gui>Open</gui> dialog to only display files "
+"which can be opened by GtkImage. A filter object is created first; we then "
+"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 ""
+"ÎÎ ÎÏÏÎÎÎÎÏ ÎÏÎ ÎÏÎÎÎÎÏ ÏÎÏÎÎÏÎÎÎÏÎ ÏÎ ÎÎÎÎÎÎÎ <gui>ÎÎÎÎÎÎÎ</gui> ÎÎ "
+"ÎÎÏÎÎÎÎÎÎ ÎÏÎÎ ÎÏÏÎÎÎ ÏÎÏ ÎÏÎÏÎÏÎ ÎÎ ÎÎÎÎÏÎÎÏÎ ÎÏÏ ÏÎ GtkImage. ÎÎÎ "
+"ÎÎÏÎÎÎÎÎÎÎÎ ÏÎÎÏÏÎÏ ÎÎÎÎÎÏÏÎÎÎÏÎÎ ÏÏÏÏÎÂ ÎÏÎÎÏÎ ÏÏÎÏÎÎÏÎÏÎÎ ÏÎÎ ÏÎ ÎÎÎÎ ÏÏÎ "
+"ÎÏÏÎÎÏÎ ÏÎÏ ÏÏÎÏÏÎÏÎÎÎÎÏÎÎ ÎÏÏ <code>GdkPixbuf</code> (ÏÎÏ ÏÎÏÎÎÎÎÎÎÎÎÎ ÏÎÏ "
+"ÏÎÏÎÏÏÏÏÎÏÎÏ ÎÎÏÏÎÏ ÏÏÏÏ PNG ÎÎÎ JPEG) ÏÏÎ ÏÎÎÏÏÎ. ÎÎÎÎÏ, ÎÏÎÎÎÏÎÎ ÎÏÏÏ ÏÎ "
+"ÏÎÎÏÏÎ ÎÎ ÎÎÎÎÎ ÏÎ ÏÎÎÏÏÎ ÏÎÏ ÎÎÎÎÏÎÎÏ <gui>ÎÎÎÎÎÎÎ</gui>."
+
+#: C/image-viewer.c.page:204(item/p)
+msgid ""
+"<code>gtk_dialog_run</code> displays the <gui>Open</gui> dialog. The dialog "
+"will wait for the user to choose an image; when they do, "
+"<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> ÎÎÏÎÎÎÎÎÎ ÏÎ ÎÎÎÎÎÎÎ <gui>ÎÎÎÎÎÎÎ</gui>. Î "
+"ÎÎÎÎÎÎÎÏ ÎÎ ÏÎÏÎÎÎÎÎÎ ÏÎÎ ÏÏÎÏÏÎ ÎÎ ÎÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎÏÎÎÂ ÏÏÎÎ ÎÎÎÎÎÎÎÎ, Î "
+"<code>gtk_dialog_run</code> ÎÎ ÎÏÎÏÏÏÎÏÎÎ ÏÎÎ ÏÎÎÎ "
+"<code>GTK_RESPONSE_ACCEPT</code> (ÎÎ ÎÏÎÏÏÏÎÏÎÎ <code>GTK_RESPONSE_CANCEL</"
+"code> ÎÎ Î ÏÏÎÏÏÎÏ ÏÎÏÎÏÎÎ <gui>ÎÎÏÏÏÏÎ</gui>). Î ÏÏÏÏÎÏÎ <code>switch</"
+"code> ÎÎÎÎÏÎÎ ÎÎÎ ÎÏÏÏ."
+
+#: C/image-viewer.c.page:206(item/p)
+msgid ""
+"Assuming that the user did click <gui>Open</gui>, the next line sets the "
+"<code>file</code> property of the GtkImage to the filename of the image "
+"selected by the user. The GtkImage will then load and display the chosen "
+"image."
+msgstr ""
+"ÎÎ ÏÏÎÎÎÏÎÏÎÎ ÏÏÎ Î ÏÏÎÏÏÎÏ ÏÎÏÎÏÎ ÏÎ <gui>ÎÎÎÎÎÎÎ</gui>, Î ÎÏÏÎÎÎÎ ÎÏÎÎÎÎ "
+"ÎÏÎÎÎÎ ÏÎÎ ÎÎÎÏÏÎÏÎ <code>file</code> ÏÎÏ GtkImage ÏÏÎ ÏÎÎÎÎ ÏÎÏ ÎÏÏÎÎÎÏ "
+"ÎÎÎÏÎÎÏ ÏÎÏ ÎÏÎÎÎÎÎ Î ÏÏÎÏÏÎÏ. ÎÎ GtkImage ÎÎ ÏÎÏÏÏÏÎÎ ÏÏÏÎ ÎÎÎ ÎÎ ÎÎÏÎÎÎÏÎÎ "
+"ÏÎÎ ÎÏÎÎÎÎÎÎÎÎ ÎÎÎÏÎÎ."
+
+#: C/image-viewer.c.page:209(item/p)
+msgid ""
+"In the final line of this method, we destroy the <gui>Open</gui> dialog "
+"because we don't need it any more. Destroying automatically hides the dialog."
+msgstr ""
+"ÎÏÎÎ ÏÎÎÎÏÏÎÎÎ ÎÏÎÎÎÎ ÎÏÏÎÏ ÏÎÏ ÎÎÎÏÎÎÏ, ÎÎÏÎÏÏÏÎÏÎÏÎÎ ÏÎÎ ÎÎÎÎÎÎÎ "
+"<gui>ÎÎÎÎÎÎÎ</gui> ÎÎÎÏÎ ÎÎÎ ÏÎÎ ÏÏÎÎÎÎÏÎÎÏÏÎ ÏÎÎ. ÎÎÏÎÏÏÏÎÏÎÎÏÎÏ ÏÎÎ "
+"ÎÏÏÏÎÎÏÎ ÎÏÏÎÎÏÎÎ Î ÎÎÎÎÎÎÎÏ."
+
+#: C/image-viewer.c.page:218(section/p) C/image-viewer.cpp.page:206(section/p)
+msgid ""
+"If you haven't already done so, choose the <file>Debug/src/image-viewer</"
+"file> application in the dialog that appears. Finally, hit <gui>Run</gui> "
+"and enjoy!"
+msgstr ""
+"ÎÎÎ ÎÎÎ ÏÎ ÎÏÎÏÎ ÎÎÎ ÎÎÎÎÎ, ÎÏÎÎÎÎÏÎ ÏÎÎ ÎÏÎÏÎÎÎÎ <file>Debug/src/image-"
+"viewer</file> ÏÏÎÎ ÎÎÎÎÎÎÎ ÏÎÏ ÎÎÏÎÎÎÎÎÏÎÎ. ÎÎÎÎÎÎ, ÏÎÏÎÏÏÎ <gui>ÏÏÎÎÎÎÎ</"
+"gui> ÎÎÎ ÎÏÎÎÎÏÏÏÎ!"
+
+#: C/image-viewer.c.page:223(section/p)
+msgid ""
+"If you run into problems with the tutorial, compare your code with this "
+"<link href=\"image-viewer/image-viewer.c\">reference code</link>."
+msgstr ""
+"ÎÎ ÎÎÏÎÎÎÏÏÏÎÏÎÏÎ ÏÏÏÎÎÎÎÎ ÎÎ ÏÎ ÎÎÎÎÎÎ, ÏÏÎÎÏÎÎÎÏÎ ÏÎÎ ÎÏÎÎÎÎ ÏÎÏ ÎÎ ÎÏÏÏÎ "
+"ÏÎÎ <link href=\"image-viewer/image-viewer.c\">ÎÏÎÎÎÎ ÎÎÎÏÎÏÎÏ</link>."
+
+#: C/image-viewer.c.page:231(item/p) C/image-viewer.cpp.page:219(item/p)
+#: C/image-viewer.js.page:320(item/p) C/image-viewer.py.page:234(item/p)
+#: C/image-viewer.vala.page:292(item/p)
+msgid ""
+"Have the user select a directory rather than a file, and provide controls to "
+"cycle through all of the images in a directory."
+msgstr ""
+"ÎÎÎÏÎ ÏÎÎ ÏÏÎÏÏÎ ÎÎ ÎÏÎÎÎÎÎÎ ÎÎÎ ÎÎÏÎÎÎÎÎ ÎÎÏÎ ÎÎÎ ÎÏÏÎÎÎ ÎÎÎ ÎÏÏÏÎ ÎÎÎÎÏÎÏÏ "
+"ÎÎ ÎÏÏÎÎÎÏÎ ÏÎÎÏ ÏÎÏ ÎÎÎÏÎÎÏ ÏÎ ÎÎÎÎ ÎÎÏÎÎÎÎÎ."
+
+#: C/image-viewer.c.page:234(item/p) C/image-viewer.cpp.page:222(item/p)
+#: C/image-viewer.js.page:323(item/p) C/image-viewer.py.page:237(item/p)
+#: C/image-viewer.vala.page:295(item/p)
+msgid ""
+"Apply random filters and effects to the image when it is loaded and allow "
+"the user to save the modified image."
+msgstr ""
+"ÎÏÎÏÎÏÏÏÎ ÏÏÏÎÎÎ ÏÎÎÏÏÎ ÎÎÎ ÎÏÎ ÏÏÎÎ ÎÎÎÏÎÎ ÏÏÎÎ ÎÏÏÎ ÏÎÏÏÏÎÎÎ ÎÎÎ ÎÏÎÏÏÎÏÏÎ "
+"ÏÏÎÎ ÏÏÎÏÏÎ ÎÎ ÎÏÎÎÎÎÎÏÏÎÎ ÏÎÎ ÎÏÎÎÎÏÎÎÏÎÎÎÎ ÎÎÎÏÎÎ."
+
+#: C/image-viewer.c.page:235(item/p) C/image-viewer.cpp.page:223(item/p)
+#: C/image-viewer.js.page:324(item/p) C/image-viewer.py.page:238(item/p)
+#: C/image-viewer.vala.page:296(item/p)
+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> ÏÎÏÎÏÎÎ ÎÏÏÏÏÎÏ "
+"ÎÏÎÎÏÏÏÎÏÎÏ ÎÏÎÎÎÏÎÎÏÎÎÏ ÎÎÎÏÎÎÏ."
+
+#: C/image-viewer.c.page:238(item/p) C/image-viewer.cpp.page:226(item/p)
+#: C/image-viewer.js.page:327(item/p) C/image-viewer.py.page:241(item/p)
+#: C/image-viewer.vala.page:299(item/p)
+msgid ""
+"Allow the user to load images from network shares, scanners, and other more "
+"complicated sources."
+msgstr ""
+"ÎÏÎÏÏÎÏÏÎ ÏÏÎÎ ÏÏÎÏÏÎ ÎÎ ÏÎÏÏÏÎÎÎ ÎÎÎÏÎÎÏ ÎÏÏ ÎÎÏÎÏÎÏ ÎÎÎÏÏÎÏ, ÎÏÏ ÏÎÏÏÏÎÏ "
+"ÎÎÎ ÎÏÏ ÎÎÎÎÏ ÏÎÏÎÏÎÎÎÎÏ ÏÎÎÎÏ."
+
+#: C/image-viewer.c.page:239(item/p) C/image-viewer.cpp.page:227(item/p)
+#: C/image-viewer.js.page:328(item/p) C/image-viewer.py.page:242(item/p)
+#: C/image-viewer.vala.page:300(item/p)
+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 ""
+"ÎÏÎÏÎÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÏÎ <link href=\"http://library.gnome.org/devel/";
+"gio/unstable/\">GIO</link> ÎÎÎ ÏÎÎÏÎÏÎÏ ÎÎÏÎÏÎÏÏÎ ÎÏÏÎÎÏÎ ÎÎÎÏÏÎÏ ÎÎÎ ÏÎ "
+"ÏÎÏÏÎÎÎÎ, ÎÎÎ ÏÎ <link href=\"http://library.gnome.org/devel/gnome-scan/";
+"unstable/\">ÎÎÏÏÏÎ ÏÎÏ GNOME</link> ÎÎÎ ÏÎÎÏÎÏÎÏ ÏÎÏÏÏÎÏ."
+
+#: C/image-viewer.cpp.page:8(info/desc)
+msgid "A little bit more than a simple \"Hello world\" GTKmm application."
+msgstr "ÎÎÎ ÎÎÎÎ ÏÎÏÎÏÏÏÏÎÏÎ ÎÏÏ ÎÏÎÎ ÎÏÎÏÎÎÎÎ GTKmm ÏÎÎ ÏÎ \"Hello, world!\"."
 
-#: C/tooltip.py.page:55(link)
-msgid "GtkTooltip"
-msgstr "GtkTooltip"
+#: C/image-viewer.cpp.page:26(item/p)
+msgid "Some basic concepts of C++/GObject programming"
+msgstr "ÎÎÏÎÎÎÏ ÎÎÏÎÎÎÏ ÎÎÎÎÎÎÏ ÏÎÏ ÏÏÎÎÏÎÎÎÎÏÎÏÎÎÏ C++/GObject"
 
-#: C/tooltip.py.page:56(link) C/toolbar.py.page:52(link)
-msgid "GtkToolbar"
-msgstr "GtkToolbar"
+#: C/image-viewer.cpp.page:27(item/p)
+msgid "How to write a Gtk application in C++"
+msgstr "ÎÏÏ ÎÎ ÎÏÎÏÎÏÎ ÎÎÎ ÎÏÎÏÎÎÎÎ Gtk ÏÎ C++"
 
-#: C/tooltip.py.page:57(link) C/toolbar_builder.py.page:195(link)
-#: C/toolbar.py.page:57(link) C/togglebutton.py.page:46(link)
-msgid "GtkWidget"
-msgstr "GtkWidget"
+#: C/image-viewer.cpp.page:41(item/p)
+msgid ""
+"Choose <gui>GTKmm (Simple)</gui> from the <gui>C++</gui> tab, click "
+"<gui>Forward</gui>, and fill out your details on the next few pages. Use "
+"<file>image-viewer</file> as project name and directory."
+msgstr ""
+"ÎÏÎÎÎÎÏÎ <gui>GTKmm (ÎÏÎÏ)</gui> ÎÏÏ ÏÎÎ ÎÎÏÏÎÎÎ <gui>C++</gui>, ÏÎÏÎÏÏÎ "
+"<gui>ÎÏÏÎÏÏÎ</gui> ÎÎÎ ÏÏÎÏÎÎÏÏÏÏÎ ÏÎÏ ÎÎÏÏÎÎÎÏÎÎÎÏ ÏÎÏ ÏÏÎÏ ÎÏÏÎÎÎÎÏ ÎÎÎÎÏ "
+"ÏÎÎÎÎÎÏ. ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ ÏÎ <file>image-viewer</file> ÏÏ ÏÎÎÎÎ ÏÎÏ ÎÏÎÎÏ ÎÎÎ "
+"ÏÎÏ ÎÎÏÎÎÏÎÎÏ."
 
-#: C/tooltip.py.page:58(link) C/toolbar.py.page:55(link)
-#: C/combobox_multicolumn.py.page:47(link)
-msgid "Stock Items"
-msgstr "ÎÏÎÎÏÎÎÎ ÏÎÏÎÎÎÏÎÎÎÎÎÏ"
+#: C/image-viewer.cpp.page:44(item/p)
+msgid ""
+"Make sure that <gui>Use GtkBuilder for user interface</gui> is disabled as "
+"we will create the UI manually in this tutorial. Check the <link xref="
+"\"guitar-tuner.cpp\">Guitar-Tuner</link> tutorial if you want to learn how "
+"to use the interface builder."
+msgstr ""
+"ÎÎÎÎÏÏÎÏÏÎÎÏÎ ÏÏÎ ÎÏÎÎÎÏÎÎÏÎÎÎÏÎÏÎ ÏÎ <gui>ÎÏÎÏÎ ÏÎÏ GtkBuilder ÎÎÎ ÎÎÎÏÎÏÎ "
+"ÏÏÎÏÎ</gui> ÎÏÎÎÎÎ ÎÎ ÏÏÎÎÎÎÏÎÎ ÏÎ ÎÎÎÏÎÏÎ ÏÏÎÏÏÎ ÏÎÎÏÎÎÎÎÎÏÎ ÏÎ ÎÏÏÏ ÏÎ "
+"ÎÎÎÎÎÎ. ÎÎÎÎÎÏÏÏÎ ÏÎ ÎÎÎÎÎÎ <link xref=\"guitar-tuner.cpp\">ÏÏÎÎÎÏÏÎÏ "
+"ÎÎÎÎÏÎÏ</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/toolbar_builder.vala.page:24(None) C/toolbar_builder.py.page:36(None)
-#: C/toolbar.vala.page:23(None) C/toolbar.py.page:23(None)
-#: C/toolbar.js.page:21(None)
-msgid "@@image: 'media/toolbar.png'; md5=f0350855eedf6343952b72d6d906f738"
-msgstr "@@image: 'media/toolbar.png'Â md5=f0350855eedf6343952b72d6d906f738"
+#: C/image-viewer.cpp.page:49(item/p)
+msgid ""
+"Click <gui>Apply</gui> and the project will be created for you. Open "
+"<file>src/main.cc</file> from the <gui>Project</gui> or <gui>File</gui> "
+"tabs. You should see some code which starts with the lines:"
+msgstr ""
+"ÎÎÏÎÏÏÎ <gui>ÎÏÎÏÎÎÎÎ</gui> ÎÎÎ ÏÎ ÎÏÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎÎÎÎ ÎÎÎ ÏÎÏ. ÎÎÎÎÎÏÎ "
+"<file>src/main.cc</file> ÎÏÏ ÏÎÏ ÎÎÏÏÎÎÎÏ <gui>ÎÏÎÎ</gui> Î <gui>ÎÏÏÎÎÎ</"
+"gui>. ÎÎ ÏÏÎÏÎÎ ÎÎ ÎÎÎÏÎ ÎÎÏÎÎÎ ÎÏÎÎÎÎ ÏÎÏ ÎÎÎÎÎÎ ÎÎ ÏÎÏ ÎÏÎÎÎÎÏ:"
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/toolbar_builder.vala.page:32(None) C/toolbar_builder.py.page:48(None)
-msgid "@@image: 'media/glade_ui.png'; md5=baea74fe213bc12ea934f64f6977215a"
-msgstr "@@image: 'media/glade_ui.png'Â md5=baea74fe213bc12ea934f64f6977215a"
+#: C/image-viewer.cpp.page:50(item/code)
+#, no-wrap
+msgid ""
+"\n"
+"#include &lt;gtkmm.h&gt;\n"
+"#include &lt;iostream&gt;\n"
+"\n"
+"#include \"config.h\"&gt;"
+msgstr ""
+"\n"
+"#include &lt;gtkmm.h&gt;\n"
+"#include &lt;iostream&gt;\n"
+"\n"
+"#include \"config.h\"&gt;"
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/toolbar_builder.vala.page:38(None) C/toolbar_builder.py.page:54(None)
+#: C/image-viewer.cpp.page:64(item/p)
 msgid ""
-"@@image: 'media/glade_select_toolbar.png'; "
-"md5=f7b5b224050b2e387eb04362fc99df00"
+"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 ""
-"@@image: 'media/glade_select_toolbar.png'Â "
-"md5=f7b5b224050b2e387eb04362fc99df00"
+"ÎÎ ÏÏÎÎÏ ÎÏÎÎÎÎÏ <code>#include</code> ÏÏÎÎ ÎÎÏÏÏÎ ÏÎÏÎÎÎÎÎÎÎÎÏÎ ÏÎÎ "
+"<code>config</code> (ÎÏÎÎÎÎ ÏÏÎÏÎÎÎ ÎÎÏÎÏÎÎÏÎ ÏÎÏ autoconf), <code>gtkmm</"
+"code> (ÎÎÎÏÎÏÎ ÏÏÎÏÏÎ) ÎÎÎ ÎÎÎÎÎÎÎÎÎÎÏ <code>iostream</code> (C++-STL). "
+"ÎÏÎÎÏÏÎÏÎÎÏ ÎÏÏ ÎÏÏÎÏ ÏÎÏ ÎÎÎÎÎÎÎÎÎÎÏ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÏÏÎÎ ÏÏÏÎÎÎÏÎ ÎÏÎÎÎÎ."
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/toolbar_builder.vala.page:44(None) C/toolbar_builder.py.page:60(None)
+#: C/image-viewer.cpp.page:67(item/p)
 msgid ""
-"@@image: 'media/glade_toolbar_general.png'; "
-"md5=e31daba6e8a3e526aca89d5f1622edaa"
+"The <code>main</code> function creates a new (empty) window and sets the "
+"window title."
 msgstr ""
-"@@image: 'media/glade_toolbar_general.png'Â "
-"md5=e31daba6e8a3e526aca89d5f1622edaa"
+"Î ÏÏÎÎÏÏÎÏÎ <code>main</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/toolbar_builder.vala.page:50(None) C/toolbar_builder.py.page:66(None)
+#: C/image-viewer.cpp.page:70(item/p)
 msgid ""
-"@@image: 'media/glade_toolbar_common.png'; "
-"md5=d5ec6cc0218ca98e195dbd033feb9ac5"
+"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 ""
-"@@image: 'media/glade_toolbar_common.png'Â "
-"md5=d5ec6cc0218ca98e195dbd033feb9ac5"
+"Î ÎÎÎÏÎ <code>kit::run()</code> ÎÏÏÎÎÎÎ ÏÎÎ ÎÏÏÎÎ ÎÏÏÏÎ GTKmm, ÏÎÏ ÎÎÏÎÎÎÎ "
+"ÏÎ ÎÎÎÏÎÏÎ ÏÏÎÏÏÎ ÎÎÎ ÎÏÏÎÎÎÎ ÏÎÎ ÎÏÎÎÏÎÏÎ ÎÎÎ ÏÏÎÎÎÎÏÎ (ÏÏÏÏ ÎÎÎÎ ÎÎÎ "
+"ÏÎÏÎÎÎÏÎ ÏÎÎÎÏÏÎÏ). ÎÎÎÏÏ ÎÎÎÎÏÎÎ ÏÎ ÏÎÏÎÎÏÏÎ ÏÏ ÏÏÎÏÎÎ ÏÎ ÎÏÏÎÎ ÏÎ "
+"ÏÏÎÎÏÏÎÏÎ, Î ÎÏÎÏÎÎÎÎ ÎÎ ÎÎÎÎÏÎÎÎÎÏÎÎ ÎÏÏÏÎÎÏÎ ÏÏÎÎ ÏÎ ÏÎÏÎÎÏÏÎ ÎÎÎÎÏÎÎ."
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/toolbar_builder.vala.page:56(None) C/toolbar_builder.py.page:72(None)
+#: C/image-viewer.cpp.page:82(section/p)
 msgid ""
-"@@image: 'media/glade_toolbar_edit.png'; md5=feb1e2b7040d24a4d030f94cf07c81fd"
+"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 ""
-"@@image: 'media/glade_toolbar_edit.png'Â md5=feb1e2b7040d24a4d030f94cf07c81fd"
+"ÎÏÏÎ ÎÎÎÎÏÎÎ ÎÏÎ ÏÏÎ ÎÎÎÎÎ ÏÎÏÎÎÏÏÎ. ÎÎ GTKmm ÎÏÎÎÎÏÎÎÎ ÏÎ ÎÎÎÏÎÏÎ ÏÏÎÏÏÎ ÎÎ "
+"ÏÎ <code>Gtk::Container</code> ÏÎÏ ÎÏÎÏÎÎ ÎÎ ÏÎÏÎÎÏÎÎ ÎÎÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ "
+"ÎÎÎ ÎÎÏÎÎ ÎÎÎÎÏÏ ÏÎÏÎÎÎÏÎÏ. ÎÎÏ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÏÎÎ ÎÏÎÎÏÏÏÎÏÎ ÎÎÎÎÎÏÎÎÎ "
+"ÏÎÏÎÎÎÏÎ, ÎÎÎÎ <code>Gtk::Box</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/toolbar_builder.vala.page:115(None) C/toolbar_builder.py.page:131(None)
+#: C/image-viewer.cpp.page:85(section/code)
+#, no-wrap
 msgid ""
-"@@image: 'media/glade_toolbar_editor.png'; "
-"md5=8af65241e5ca47d5494a7b36640e6f1c"
+"\n"
+"int\n"
+"main (int argc, char *argv[])\n"
+"{\n"
+"\tGtk::Main kit(argc, argv);\n"
+"\n"
+"\tGtk::Window main_win;\n"
+"\tmain_win.set_title (\"image-viewer-cpp\");\n"
+"\n"
+"\tGtk::Box* box = Gtk::manage(new Gtk::Box());\n"
+"\tbox-&gt;set_orientation (Gtk::ORIENTATION_VERTICAL);\n"
+"\tbox-&gt;set_spacing(6);\n"
+"\tmain_win.add(*box);\n"
+"\n"
+"\timage = Gtk::manage(new Gtk::Image());\n"
+"\tbox-&gt;pack_start (*image, true, true);\n"
+"\n"
+"\tGtk::Button* button = Gtk::manage(new Gtk::Button(\"Open Imageâ\"));\n"
+"\tbutton-&gt;signal_clicked().connect (\n"
+"\t\tsigc::ptr_fun(&amp;on_open_image));\n"
+"\tbox-&gt;pack_start (*button, false, false);\n"
+"\n"
+"\tmain_win.show_all_children();\n"
+"\tkit.run(main_win);\n"
+"\n"
+"\treturn 0;\n"
+"}\n"
 msgstr ""
-"@@image: 'media/glade_toolbar_editor.png'Â "
-"md5=8af65241e5ca47d5494a7b36640e6f1c"
+"\n"
+"int\n"
+"main (int argc, char *argv[])\n"
+"{\n"
+"\tGtk::Main kit(argc, argv);\n"
+"\n"
+"\tGtk::Window main_win;\n"
+"\tmain_win.set_title (\"image-viewer-cpp\");\n"
+"\n"
+"\tGtk::Box* box = Gtk::manage(new Gtk::Box());\n"
+"\tbox-&gt;set_orientation (Gtk::ORIENTATION_VERTICAL);\n"
+"\tbox-&gt;set_spacing(6);\n"
+"\tmain_win.add(*box);\n"
+"\n"
+"\timage = Gtk::manage(new Gtk::Image());\n"
+"\tbox-&gt;pack_start (*image, true, true);\n"
+"\n"
+"\tGtk::Button* button = Gtk::manage(new Gtk::Button(\"Open Imageâ\"));\n"
+"\tbutton-&gt;signal_clicked().connect (\n"
+"\t\tsigc::ptr_fun(&amp;on_open_image));\n"
+"\tbox-&gt;pack_start (*button, false, false);\n"
+"\n"
+"\tmain_win.show_all_children();\n"
+"\tkit.run(main_win);\n"
+"\n"
+"\treturn 0;\n"
+"}\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/toolbar_builder.vala.page:124(None) C/toolbar_builder.py.page:140(None)
+#: C/image-viewer.cpp.page:115(item/p)
 msgid ""
-"@@image: 'media/glade_visible_no.png'; md5=dc6c025aa825f4d772fbd283d6330026"
+"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 ""
-"@@image: 'media/glade_visible_no.png'Â md5=dc6c025aa825f4d772fbd283d6330026"
-
-#: C/toolbar_builder.vala.page:7(title)
-msgid "Toolbar created using Glade (Vala)"
-msgstr "Î ÎÏÎÎÎÎÎÎÎÎÎÎ ÎÎÎÎÎÏÏÎÎÎÎÎÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ Glade (Vala)"
-
-#: C/toolbar_builder.vala.page:19(desc) C/toolbar.vala.page:18(desc)
-msgid "A bar of buttons"
-msgstr "ÎÏÎÎÎÎ ÎÎÏÎÏÎÏÎ"
-
-#: C/toolbar_builder.vala.page:22(title) C/toolbar_builder.py.page:34(title)
-msgid "Toolbar created using Glade"
-msgstr "Î ÎÏÎÎÎÎ ÎÏÎÎÎÎÎÏÎ ÎÎÎÎÎÏÏÎÎÎÎÎÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ Glade"
+"ÎÎ ÏÏÏÏÎÏ ÎÏÎÎÎÎÏ ÎÎÎÎÎÏÏÎÎÏÎ ÏÎ ÎÏÎÎÏÎÎÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÎ ÏÏÎÏÎ. ÎÎÎ "
+"ÎÎÏÎÏÎ ÎÎÎ ÎÎÎÎÎÎÎ ÎÎÎÏ ÎÎÎÏÎÎÏ, ÏÎ ÎÎÎÎ ÏÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÏÏÎÎÎÎÎÏ ÏÎÏ "
+"ÎÎÎÏÎÎÏ ÎÎÎ ÏÎ ÏÎÎÎÏÎÎ ÏÎÏ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÏÏ ÏÎÏÎÎÎÏÎ."
 
-#: C/toolbar_builder.vala.page:25(p)
+#: C/image-viewer.cpp.page:118(item/p)
 msgid ""
-"This example is similar to <link xref=\"toolbar.vala\"/>, except we use "
-"Glade to create the toolbar in an XML ui file."
+"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 ""
-"ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÎÎÎÎÎ ÏÎÏÏÎÎÎÎ ÎÎ <link xref=\"toolbar.vala\"/>, ÎÎÏÏÏ "
-"ÎÏÏ ÏÎ ÏÏÎÏÎ Glade ÎÎÎ ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ ÎÏÎÎÎÎÏ ÎÏÎÎÎÎÎÏÎ ÏÎ ÎÎÎ ÎÏÏÎÎÎ XML ui."
+"ÎÎ ÎÎÎÏÎÎÏ ÏÏÎ <code>pack_start</code> ÏÏÎÏÎÎÏÎÏÎ ÏÎ ÎÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ "
+"ÏÏÎ ÏÎÎÎÏÎÎ ÎÎÎ ÎÏÎÎÎÏÎ ÏÎ ÏÏÎÏÎÏÎÏÎÏÎ ÏÎÏÏ. Î ÎÎÎÏÎÎ ÎÎ ÎÏÎÎÏÎÎÎÎ ÏÎ ÎÎÎÎ "
+"ÎÎÎÎÎÏÎÎÎ ÏÏÏÎ, ÎÎÏ ÏÎ ÎÎÏÎÏÎ ÎÎ ÎÎÎÎÎ ÎÏÎÎ ÏÏÏÎ ÎÎÎÎÎÎ ÏÏÎ ÏÏÎÎÎÎÎÏÎÎ. ÎÎ "
+"ÏÎÏÎÏÎÏÎÏÎÏÎ ÏÏÎ ÎÎÎ ÎÏÎÎÎÏÎÎ ÏÎÏÎ ÎÎÎÎÎÎ ÏÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ. ÎÏÎ GTKmm "
+"ÎÏÏÏ ÏÏÎÎÎÏÏ ÎÎÎ ÏÏÎÎÎÎÎÏÎÎ ÎÏÎÎÎÎ ÎÎÎÎÎ ÏÎÎ ÎÏÎÏ ÎÎ ÎÏÎÏÎ ÎÎÎ ÎÎÎÏÎÎÎ ÏÎÏ "
+"ÏÎÎÎÎÏÎÎ ÎÎÎÎ ÎÎ ÎÎÎÏÎÏÎÏÎÎÎ ÎÎÎÎÎÎ ÏÎÏÎÎÏÏÏÎ. ÎÏÎ ÏÏÎÎÏÎÎÎ, ÏÎ ÏÎÎÎÏÎÎ "
+"ÏÏÎÏÏÎÎÎÏÎÎ ÏÏÎ ÏÎÏÎÎÏÏÎ."
 
-#: C/toolbar_builder.vala.page:27(p) C/toolbar_builder.py.page:43(p)
+#: C/image-viewer.cpp.page:124(item/p)
 msgid ""
-"To create the toolbar using the <link href=\"http://glade.gnome.org/\";>Glade "
-"Interface Designer</link>:"
-msgstr ""
-"ÎÎÎ ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ ÎÏÎÎÎÎÏ ÎÏÎÎÎÎÎÏÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ <link href=\"http://";
-"glade.gnome.org/\">ÏÏÎÎÎÎÏÏÎ ÎÎÎÏÎÏÎÏ Glade</link>:"
-
-#: C/toolbar_builder.vala.page:31(p) C/toolbar_builder.py.page:47(p)
-msgid "Open Glade, and save the file as <file>toolbar_builder.ui</file>"
+"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 ""
-"ÎÎÎÎÎÎÎ ÏÎÏ Glade ÎÎÎ ÎÏÎÎÎÎÎÏÏÎ ÏÎÏ ÎÏÏÎÎÎÏ ÏÏ <file>toolbar_builder.ui</"
-"file>"
-
-#: C/toolbar_builder.vala.page:32(media) C/toolbar_builder.py.page:48(media)
-msgid "Screenshot of Glade ui"
-msgstr "ÎÏÎÎÎÎÏÏÏÏÎ ÏÎÏ ui ÏÎÏ Glade"
+"ÎÏÎÎÎÎÏÎÎÏÏÎ ÎÎ ÎÏÎÏÎÏÎÎ ÏÎ ÏÏÎÎÎÎÎÎÎ ÏÏÎÎ Î ÏÏÎÏÏÎÏ ÏÎÏÎ ÏÎ ÎÎÎ ÏÎÎÎÏÏÎ. ÎÎ "
+"GTKmm ÏÏÎÏÎÎÎÏÎÎÎÎ ÏÎÎ ÎÎÎÎÎÎ ÏÏÎ <em>ÏÎÎÎÏÏÎ</em>. ÎÏÎÎ ÏÎ ÎÎÏÎÏÎ ÏÎÏÎÎÏÎÎ, "
+"ÎÎÎÎÎÎ ÏÎ ÏÎÎÎ <em>ÏÎÏÎÎÎÎÎ</em>, ÏÎÏ ÎÏÎÏÎÏÎÎ ÎÎ ÏÏÎÎÎÏÎÏÎÎ ÎÎ ÎÎÏÎÎÎ "
+"ÎÎÎÏÎÎÎÎ. ÎÏÏÏ ÎÎÎÎÏÎÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ ÎÎÎÎÎÎ <code>signal_clicked()."
+"connect</code> ÏÎÏ ÎÎÎÎ ÏÏÎ GTKmm ÎÎ ÎÎÎÎÏÎÎ ÏÎ ÏÏÎÎÏÏÎÏÎ "
+"<code>on_open_image</code> ÏÏÎÎ ÏÎ ÎÎÏÎÏÎ ÏÎÏÎÎÏÎÎ. ÎÎ ÎÏÎÏÎÏÎÎ ÏÎÎ "
+"<em>ÎÏÎÎÎÎÎÎÏÎ</em> ÏÏÎÎ ÎÏÏÎÎÎÎ ÎÎÏÏÎÏÎ."
 
-#: C/toolbar_builder.vala.page:37(p) C/toolbar_builder.py.page:53(p)
+#: C/image-viewer.cpp.page:128(item/p)
 msgid ""
-"Under <gui>Containers</gui> on the left hand side, right click on the "
-"toolbar icon and select <gui>Add widget as toplevel</gui>."
+"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 ""
-"ÎÏÎ <gui>ÏÎÏÎÎÎÏÎÏ</gui> ÏÏÎ ÎÏÎÏÏÎÏÎ, ÎÎÎÎ ÎÎÎÎ ÏÏÎÎ ÎÏÎÎÎÎ ÎÏÎÎÎÎÎÏÎ ÎÎÎ "
-"ÎÏÎÎÎÎÎ <gui>ÏÏÎÏÎÎÎÎ ÎÏÎÏÎÎÎÏ ÏÏÏÏÎÏÎÎÎÏ ÏÏ ÎÎÏÏÎÏÎÏ ÎÏÎÏÎÎÎÏ</gui>."
-
-#: C/toolbar_builder.vala.page:38(media) C/toolbar_builder.py.page:54(media)
-msgid "Screenshot of toolbar icon in Glade ui"
-msgstr "ÎÏÎÎÎÎÏÏÏÏÎ ÏÎÏ ÎÎÎÎÎÎÎÎÎÏ ÏÎÏ ÎÏÎÎÎÎÏ ÎÏÎÎÎÎÎÏÎ ÏÏÎ ui ÏÎÏ Glade"
+"ÎÎ ÏÎÎÎÏÏÎÎÎ ÎÎÎÎ ÎÎÎÎÎ Î ÎÎÏÎÎÎÏÎ ÏÎÏÎ ÏÏÎ ÎÏÎÏÎÎÏÎ ÏÏÏÏÎÏÎÎÏÎ ÏÏÎ ÏÎÏÎÎÏÏÎ "
+"ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ <code>show_all_children()</code>. ÎÏÏÏ ÎÎÎÎÎ ÎÏÎÎÏÎÎÎÎ ÎÏ ÏÎ "
+"ÏÏÎÏÎ ÏÎÏ ÎÎÎÏÎÎÏ <code>show()</code> ÏÎ ÏÎÎ ÏÎ ÎÏÎÎÏÏÎÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ."
 
-#: C/toolbar_builder.vala.page:43(p) C/toolbar_builder.py.page:59(p)
+#: C/image-viewer.cpp.page:137(section/p)
 msgid ""
-"Under the <gui>General</gui> tab on the bottom right, change the <gui>Name</"
-"gui> to <input>toolbar</input> and <gui>Show Arrow</gui> to <gui>No</gui>."
+"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 ""
-"ÎÏÎÎ ÎÎÏÏÎÎÎ <gui>ÎÎÎÎÎÎ</gui> ÏÏÎ ÎÎÏÏ ÎÎÎÎÎ, ÎÎÎÎÎÎ ÏÎÏ <gui>ÎÎÏÎÎÏÎÏ</"
-"gui> ÏÎ <input>ÎÏÎÎÎÎ ÎÏÎÎÎÎÎÏÎ</input> ÎÎÎ <gui>ÎÎÏÎÎÎÏÎ ÎÎÎÎÏÏ</gui> ÏÎ "
-"<gui>ÏÏÎ</gui>."
-
-#: C/toolbar_builder.vala.page:44(media) C/toolbar_builder.py.page:60(media)
-msgid "Screenshot of General tab"
-msgstr "ÎÏÎÎÎÎÏÏÏÏÎ ÏÎÏ ÎÎÎÎÎÎÏ ÎÎÏÏÎÎÎÏ"
+"ÎÎ ÎÏÎÏÎÏÎÎ ÏÏÏÎ ÏÎÎ ÏÎÎÏÎÏÏÎ ÏÎÎÎÏÎÏ ÎÎÎ ÏÎ ÏÎÎÎ <em>ÏÎÏÎÎÎÎÎ</em> Î ÎÎÎ ÏÎ "
+"ÎÎÏÎÏÎ ÏÎÏ ÎÎÎÏÎÏÎÎÎ ÏÏÎÎ. ÎÏÎÏÎÎÏÏÎ ÎÏÏÏÎ ÏÎÎ ÎÏÎÎÎÎ ÏÏÎÎ ÏÎ ÎÎÎÎÎÎ "
+"<code>main</code>."
 
-#: C/toolbar_builder.vala.page:49(p) C/toolbar_builder.py.page:65(p)
+#: C/image-viewer.cpp.page:140(section/code)
+#, no-wrap
 msgid ""
-"Under the <gui>Common</gui> tab, set <gui>Horizontal Expand</gui> to "
-"<gui>Yes</gui>."
+"\n"
+"Gtk::Image* image = 0;\n"
+"\n"
+"static void\n"
+"on_open_image ()\n"
+"{\n"
+"\tGtk::FileChooserDialog dialog(\"Open image\",\n"
+"\t                              Gtk::FILE_CHOOSER_ACTION_OPEN);\n"
+"\tdialog.add_button (Gtk::Stock::OPEN,\n"
+"\t                   Gtk::RESPONSE_ACCEPT);\n"
+"\tdialog.add_button (Gtk::Stock::CANCEL,\n"
+"\t                   Gtk::RESPONSE_CANCEL);\n"
+"\n"
+"\tGlib::RefPtr&lt;Gtk::FileFilter&gt; filter =\n"
+"\t\tGtk::FileFilter::create();\n"
+"\tfilter-&gt;add_pixbuf_formats();\n"
+"\tfilter-&gt;set_name(\"Images\");\n"
+"\tdialog.add_filter (filter);\n"
+"\n"
+"\tconst int response = dialog.run();\n"
+"\tdialog.hide();\n"
+"\n"
+"\tswitch (response)\n"
+"\t{\n"
+"\t\tcase Gtk::RESPONSE_ACCEPT:\n"
+"\t\t\timage-&gt;set(dialog.get_filename());\n"
+"\t\t\tbreak;\n"
+"\t\tdefault:\n"
+"\t\t\tbreak;\n"
+"\t}\n"
+"}\n"
 msgstr ""
-"ÎÏÎÎ ÎÎÏÏÎÎÎ <gui>ÎÎÎÎÎ</gui>, ÎÏÎÏÏÎ <gui>ÎÏÎÎÏÎÏÎÎ ÎÏÎÎÏÎÏÎ</gui> ÏÎ "
-"<gui>ÎÎÎ</gui>."
-
-#: C/toolbar_builder.vala.page:50(media) C/toolbar_builder.py.page:66(media)
-msgid "Screenshot of Common tab"
-msgstr "ÎÏÎÎÎÎÏÏÏÏÎ ÏÎÏ ÎÎÎÎÎÏ ÎÎÏÏÎÎÎÏ"
+"\n"
+"Gtk::Image* image = 0;\n"
+"\n"
+"static void\n"
+"on_open_image ()\n"
+"{\n"
+"\tGtk::FileChooserDialog dialog(\"Open image\",\n"
+"\t                              Gtk::FILE_CHOOSER_ACTION_OPEN);\n"
+"\tdialog.add_button (Gtk::Stock::OPEN,\n"
+"\t                   Gtk::RESPONSE_ACCEPT);\n"
+"\tdialog.add_button (Gtk::Stock::CANCEL,\n"
+"\t                   Gtk::RESPONSE_CANCEL);\n"
+"\n"
+"\tGlib::RefPtr&lt;Gtk::FileFilter&gt; filter =\n"
+"\t\tGtk::FileFilter::create();\n"
+"\tfilter-&gt;add_pixbuf_formats();\n"
+"\tfilter-&gt;set_name(\"Images\");\n"
+"\tdialog.add_filter (filter);\n"
+"\n"
+"\tconst int response = dialog.run();\n"
+"\tdialog.hide();\n"
+"\n"
+"\tswitch (response)\n"
+"\t{\n"
+"\t\tcase Gtk::RESPONSE_ACCEPT:\n"
+"\t\t\timage-&gt;set(dialog.get_filename());\n"
+"\t\t\tbreak;\n"
+"\t\tdefault:\n"
+"\t\t\tbreak;\n"
+"\t}\n"
+"}\n"
 
-#: C/toolbar_builder.vala.page:55(p) C/toolbar_builder.py.page:71(p)
+#: C/image-viewer.cpp.page:175(item/p)
 msgid ""
-"Right click on the toolbar in the top right and select <gui>Edit</gui>. The "
-"<gui>Tool Bar Editor</gui> window will appear."
+"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 ""
-"ÎÎÎÎ ÎÎÎÎ ÏÏÎ ÎÏÎÎÎÎ ÎÏÎÎÎÎÎÏÎ ÏÏÎ ÏÎÎÏ ÎÎÎÎÎ ÎÎÎ ÎÏÎÎÎÎÏÎ <gui>ÎÏÎÎÎÏÎÎÏÎÎ</"
-"gui>. ÎÎ ÏÎÏÎÎÏÏÎ <gui>ÎÏÎÎÎÏÎÎÏÏÎÏ ÎÏÎÎÎÎÏ ÎÏÎÎÎÎÎÏÎ</gui> ÎÎ ÎÎÏÎÎÎÏÏÎÎ."
-
-#: C/toolbar_builder.vala.page:56(media) C/toolbar_builder.py.page:72(media)
-msgid "Screenshot of where to right click to edit toolbar."
-msgstr "ÎÏÎÎÎÎÏÏÏÏÎ ÎÎÏÎÏ ÎÎÎÎÎÏ ÎÎÎÎ ÎÎÎ ÎÏÎÎÎÏÎÎÏÎÎ ÎÏÎÎÎÎÏ ÎÏÎÎÎÎÎÏÎ."
+"Î ÎÎÎÎÎÎÎÏ ÎÏÎÎÎÎÎÏ ÏÎÏ ÎÏÏÎÎÎÏ ÎÎÎÎÎÏÏÎÎÎÎÎÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎÎ "
+"ÎÎÏÎÏÎÎÏÎÏÏÎ <code>Gtk::FileChooserDialog</code>. ÎÏÏÏ ÏÎÎÏÎÎÎ ÏÎÎ ÏÎÏÎÎ ÎÎÎ "
+"ÏÏÏÎ ÏÎÏ ÎÎÎÎÏÎÎÏ. ÎÏÎÎ ÏÎÏÎÏÏÏÏÎ ÎÎÏ, ÎÎÎÎÎ ÎÎÎÏ ÎÎÎÎÎÎÎÏ <em>ÎÎÎÎÎÎÎÏÎÏ</"
+"em>."
 
-#: C/toolbar_builder.vala.page:61(p) C/toolbar_builder.py.page:77(p)
+#: C/image-viewer.cpp.page:179(item/p)
 msgid ""
-"We want to add 5 ToolButtons: New, Open, Undo, Fullscreen and Leave "
-"Fullscreen. First, we will add the New ToolButton."
+"The next two lines add an <em>Open</em> and a <em>Close</em> button to the "
+"dialog."
 msgstr ""
-"ÎÎÎÎÏÎÎ ÎÎ ÏÏÎÏÎÎÏÎÏÎÎ 5 ToolButtons: ÎÎÎ, ÎÎÎÎÎÎÎ, ÎÎÎÎÏÎÏÎ, ÏÎÎÏÎÏ ÎÎÏÎÎ "
-"ÎÎÎ ÎÎÎÎÏÎÎÎÎÏÎ ÏÎÎÏÎÏÏ ÎÎÏÎÎÏ. ÎÏÏÏÎ, ÎÎ ÏÏÎÏÎÎÏÎÏÎÎ ÏÎ ÎÎÎ ToolButton."
-
-#: C/toolbar_builder.vala.page:64(p) C/toolbar_builder.py.page:80(p)
-msgid "Under <gui>Hierarchy</gui> tab, click <gui>Add</gui>."
-msgstr "ÎÏÎÎ ÎÎÏÏÎÎÎ <gui>ÎÎÏÎÏÏÎÎ</gui>, ÎÎÎÎ <gui>ÏÏÎÏÎÎÎÎ</gui>."
-
-#: C/toolbar_builder.vala.page:65(p) C/toolbar_builder.py.page:81(p)
-msgid "Change the name of the ToolItem to <input>new_button</input>."
-msgstr "ÎÎÎÎÎÎ ÏÎÏ ÎÎÏÎÎÏÎÏ ÏÎÏ ToolItem ÏÎ <input>new_button</input>."
+"ÎÎ ÎÏÏÎÎÎÎÏ ÎÏÎ ÎÏÎÎÎÎÏ ÏÏÎÏÎÎÏÎÏÎ ÎÎÎ ÎÎÏÎÏÎ <em>ÎÎÎÎÎÎÎÏÎÏ</em> ÎÎÎ ÎÎÎ "
+"<em>ÎÎÎÎÏÎÎÎÏÎÏ</em> ÏÏÎ ÎÎÎÎÎÎÎ."
 
-#: C/toolbar_builder.vala.page:66(p) C/toolbar_builder.py.page:82(p)
+#: C/image-viewer.cpp.page:181(item/p)
 msgid ""
-"Scroll down and set <gui>Is important</gui> to <gui>Yes</gui>. This will "
-"cause the label of the ToolButton to be shown, when you view the toolbar."
+"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 ""
-"ÎÏÎÎÏÎ ÏÏÎÏ ÏÎ ÎÎÏÏ ÎÎÎ ÏÏÎÎÎÏÎ ÏÎÏ <gui>ÎÎÎÎÎ ÏÎÎÎÎÏÎÎÏ</gui> ÏÎ <gui>ÎÎÎ</"
-"gui>. ÎÏÏÏ ÎÎ ÏÏÎÎÎÎÎÏÎÎ ÏÎÎ ÎÏÎÎÎÏÎ ÏÎÏ ToolButton ÎÎ ÎÎÏÎÎÎÏÏÎÎ, ÏÏÎÎ "
-"ÏÏÎÎÎÎÎÏÎ ÏÎ ÎÏÎÎÎÎ ÎÏÎÎÎÎÎÏÎ."
-
-#: C/toolbar_builder.vala.page:67(p) C/toolbar_builder.py.page:83(p)
-msgid "Enter the <gui>action name</gui>: <input>app.new</input>."
-msgstr "ÎÎÏÎÎÎÏÎ ÏÎ <gui>ÏÎÎÎÎ ÎÎÎÏÎÎÎÎÏ</gui>: <input>app.new</input>."
-
-#: C/toolbar_builder.vala.page:68(p) C/toolbar_builder.py.page:84(p)
-msgid "Change the <gui>Label</gui> to <input>New</input>."
-msgstr "ÎÎÎÎÎÎ ÏÎÏ <gui>ÎÏÎÎÎÏÎ</gui> ÏÎ <input>New</input>."
+"ÎÎ ÎÎÏÏÎÏÎ ÏÏÎÏÎÎ ÏÏÎ ÎÎÎÎÎÎ <code>add_button()</code> ÎÎÎÎÎ ÎÎÎ ÎÎÎ "
+"ÎÎÎÎÏÎÏÎÎÏ ÏÎÏ ÏÎÏÎÎÎÎÎÏ ÎÎÏÎÏÎÎÏ. ÎÏÎÏÎÎÎÏÎÎÎÏÎÎ ÏÏÎÎÎÎÎÏÎÏÎÎÎÎÏ ÏÎÎÎÏ ÏÎÏ "
+"ÏÎÏÎÏÎÎÏÎÎ ÎÏÏ ÏÎ GTKmm ÎÎÏ, ÎÏÎÏÎÏ."
 
-#: C/toolbar_builder.vala.page:69(p) C/toolbar_builder.py.page:85(p)
+#: C/image-viewer.cpp.page:186(item/p)
 msgid ""
-"Select the <gui>New</gui> Stock Id from the drop down menu, or type "
-"<input>gtk-new</input>."
+"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 ""
-"ÎÏÎÎÎÎÎ ÏÎÏ <gui>ÎÎÎÏ</gui> Id ÏÎÏÎÎÎÏÎÎÎÎÎÏ ÎÏÏ ÏÎ ÏÏÏÏÏÏÎÎÎÎ ÎÎÎÎÏ, Î "
-"ÏÎÎÎÏÏÎÎÎÎÎÏÏÎ <input>gtk-new</input>."
+"ÎÎ ÎÏÏÎÎÎÎÏ ÎÏÎ ÎÏÎÎÎÎÏ ÏÎÏÎÎÏÎÎÎÏÎ ÏÎ ÎÎÎÎÎÎÎ <gui>ÎÎÎÎÎÎÎ</gui> ÎÎ "
+"ÎÎÏÎÎÎÎÎÎ ÎÏÎÎ ÎÏÏÎÎÎ ÏÎÏ ÎÏÎÏÎÏÎ ÎÎ ÎÎÎÎÏÎÎÏÎ ÎÏÏ ÏÎ <code>Gtk::Image</"
+"code>. ÎÎÎ ÎÎÏÎÎÎÎÎÎÎÎ ÏÎÎÏÏÎÏ ÎÎÎÎÎÏÏÎÎÎÏÎÎ ÏÏÏÏÎÂ ÎÏÎÎÏÎ ÏÏÎÏÎÎÏÎÏÎÎ ÏÎÎ "
+"ÏÎ ÎÎÎÎ ÏÏÎ ÎÏÏÎÎÏÎ ÏÎÏ ÏÏÎÏÏÎÏÎÎÎÎÏÎÎ ÎÏÏ ÏÏÎ ÏÎÎÏÏÎ ÏÎÏÎ ÏÏÎ ÎÎÎÏÎ ÎÏÏÎÎÎ "
+"ÏÎÏ ÏÏÎÏÏÎÏÎÎÎÎÏÎÎ ÎÏÏ ÏÎ <code>Gdk::Pixbuf</code> (ÏÎÏ ÏÎÏÎÎÎÎÎÎÎÎÎ ÏÎÏ "
+"ÏÎÏÎÏÏÏÏÎÏÎÏ ÎÎÏÏÎÏ ÎÎÎÏÎÏÎ ÏÏÏÏ PNG ÎÎÎ JPEG) ÏÏÎ ÏÎÎÏÏÎ. ÎÎÎÎÏ, ÎÏÎÎÎÏÎÎ "
+"ÎÏÏÏ ÏÎ ÏÎÎÏÏÎ ÎÎ ÎÎÎÎÎ ÏÎ ÏÎÎÏÏÎ ÏÎÏ ÎÎÎÎÏÎÎÏ <gui>ÎÎÎÎÎÎÎ</gui>."
 
-#: C/toolbar_builder.vala.page:71(p) C/toolbar_builder.py.page:87(p)
+#: C/image-viewer.cpp.page:187(item/p)
 msgid ""
-"Repeat the above steps for the remaining ToolButtons, with the following "
-"properties:"
+"<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 ""
-"ÎÏÎÎÎÎÎÏÎ ÏÏÎ ÏÎÏÎÏÎÎÏ ÎÎÎÎÏÏÎ ÎÎÎ ÏÎ ÏÏÎÎÎÎÏÏÎÎÎÎ ToolButtons, ÎÎ ÏÎÏ "
-"ÏÎÏÎÎÎÏÏ ÎÎÎÏÏÎÏÎÏ:"
-
-#: C/toolbar_builder.vala.page:77(p) C/toolbar_builder.py.page:93(p)
-#: C/helloWorld.js.page:139(title)
-msgid "Name"
-msgstr "ÎÎÎÎÎ"
-
-#: C/toolbar_builder.vala.page:78(p) C/toolbar_builder.py.page:94(p)
-msgid "Is important"
-msgstr "ÎÎÎÎÎ ÏÎÎÎÎÏÎÎÏ"
-
-#: C/toolbar_builder.vala.page:79(p) C/toolbar_builder.py.page:95(p)
-msgid "Action name"
-msgstr "ÎÎÎÎÎ ÎÎÎÏÎÎÎÎÏ"
-
-#: C/toolbar_builder.vala.page:80(p) C/toolbar_builder.py.page:96(p)
-#: C/label.vala.page:20(title) C/label.py.page:26(title)
-#: C/label.js.page:20(title) C/label.c.page:21(title)
-msgid "Label"
-msgstr "ÎÏÎÎÎÏÎ"
-
-#: C/toolbar_builder.vala.page:81(p) C/toolbar_builder.py.page:97(p)
-msgid "Stock Id"
-msgstr "Id ÏÎÏÎÎÎÏÎÎÎÎÎÏ"
-
-#: C/toolbar_builder.vala.page:86(p) C/toolbar_builder.py.page:102(p)
-msgid "open_button"
-msgstr "open_button"
-
-#: C/toolbar_builder.vala.page:87(p) C/toolbar_builder.vala.page:94(p)
-#: C/toolbar_builder.vala.page:101(p) C/toolbar_builder.vala.page:108(p)
-#: C/toolbar_builder.py.page:103(p) C/toolbar_builder.py.page:110(p)
-#: C/toolbar_builder.py.page:117(p) C/toolbar_builder.py.page:124(p)
-msgid "Yes"
-msgstr "ÎÎÎ"
-
-#: C/toolbar_builder.vala.page:88(p) C/toolbar_builder.py.page:104(p)
-msgid "app.open"
-msgstr "app.open"
-
-#: C/toolbar_builder.vala.page:89(p) C/toolbar_builder.py.page:105(p)
-msgid "Open"
-msgstr "Open"
-
-#: C/toolbar_builder.vala.page:90(p) C/toolbar_builder.py.page:106(p)
-msgid "gtk-open"
-msgstr "gtk-open"
-
-#: C/toolbar_builder.vala.page:93(p) C/toolbar_builder.py.page:109(p)
-msgid "undo_button"
-msgstr "undo_button"
-
-#: C/toolbar_builder.vala.page:95(p) C/toolbar_builder.py.page:111(p)
-msgid "win.undo"
-msgstr "win.undo"
-
-#: C/toolbar_builder.vala.page:96(p) C/toolbar_builder.py.page:112(p)
-msgid "Undo"
-msgstr "ÎÎÎÎÏÎÏÎ"
-
-#: C/toolbar_builder.vala.page:97(p) C/toolbar_builder.py.page:113(p)
-msgid "gtk-undo"
-msgstr "gtk-undo"
-
-#: C/toolbar_builder.vala.page:100(p) C/toolbar_builder.py.page:116(p)
-msgid "fullscreen_button"
-msgstr "fullscreen_button"
-
-#: C/toolbar_builder.vala.page:102(p) C/toolbar_builder.vala.page:109(p)
-#: C/toolbar_builder.py.page:118(p) C/toolbar_builder.py.page:125(p)
-msgid "win.fullscreen"
-msgstr "win.fullscreen"
-
-#: C/toolbar_builder.vala.page:103(p) C/toolbar_builder.py.page:119(p)
-msgid "Fullscreen"
-msgstr "ÎÎÎÏÎÏ ÎÎÏÎÎ"
-
-#: C/toolbar_builder.vala.page:104(p) C/toolbar_builder.py.page:120(p)
-msgid "gtk-fullscreen"
-msgstr "gtk-fullscreen"
-
-#: C/toolbar_builder.vala.page:107(p) C/toolbar_builder.py.page:123(p)
-msgid "leave_fullscreen_button"
-msgstr "leave_fullscreen_button"
-
-#: C/toolbar_builder.vala.page:110(p) C/toolbar_builder.py.page:126(p)
-msgid "Leave Fullscreen"
-msgstr "ÎÎÎÎÎÏ ÎÏÏ ÏÎÎÏÎ ÎÎÏÎÎ"
-
-#: C/toolbar_builder.vala.page:111(p) C/toolbar_builder.py.page:127(p)
-msgid "gtk-leave-fullscreen"
-msgstr "gtk-leave-fullscreen"
-
-#: C/toolbar_builder.vala.page:120(p) C/toolbar_builder.py.page:136(p)
-msgid "Close the <gui>Tool Bar Editor</gui>."
-msgstr "ÎÎÎÎÏÎÎÎ ÏÎÏ <gui>ÎÏÎÎÎÏÎÎÏÏÎ ÎÏÎÎÎÎÏ ÎÏÎÎÎÎÎÏÎ</gui>."
+"Î <code>Glib::RefPtr</code> ÎÎÎÎÎ ÎÎÎÏ ÎÎÏÏÎÎÏ ÎÎÎÎÏÎÏ ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ "
+"ÎÎÏ, ÎÏÏÏ ÎÏÎÎÎÎÎÎÏÎÎÎ ÏÏÎ ÏÎ ÏÎÎÏÏÎ ÎÎÏÎÏÏÏÎÏÎÏÎÎ ÏÏÎÎ ÎÎÎ ÏÏÎÏÏÎÎ ÎÎÎÏÎÏÎ "
+"ÎÎÎ ÎÏÏÏ ÏÎÎ."
 
-#: C/toolbar_builder.vala.page:123(p)
+#: C/image-viewer.cpp.page:191(item/p)
 msgid ""
-"When our program will first start, we don't want the <gui>Leave Fullscreen</"
-"gui> ToolButton to be visible, since the application will not be in "
-"fullscreen mode. You can set this in the <gui>Common</gui> tab, by clicking "
-"the <gui>Visible</gui> property to <gui>No</gui>. The ToolButton will still "
-"appear in the interface designer, but will behave correctly when the file is "
-"loaded into your program code."
+"<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 ""
-"ÎÏÎÎ ÏÎ ÏÏÏÎÏÎÎÎÎ ÎÎÏ ÎÎ ÎÎÎÎÎÎÏÎÎ ÏÏÎÎ ÎÏÏÎ, ÎÎÎ ÎÎÎÎÏÎÎ ÏÎ ToolButton "
-"<gui>ÎÎÎÎÎÏ ÎÏÏ ÏÎÎÏÎ ÎÎÏÎÎ</gui> ÎÎ ÎÎÎÎÎ ÎÏÎÏÏ, ÎÏÎÏ Î ÎÏÎÏÎÎÎÎ ÎÎÎ ÎÎ "
-"ÎÎÎÎÎ ÏÎ ÎÎÎÏÎÏÏÎÎÎ ÏÎÎÏÎÏÏ ÎÎÏÎÎÏ. ÎÏÎÏÎÎÏÎ ÎÎ ÏÎ ÏÏÎÎÎÏÎÏÎ ÏÏÎÎ ÎÎÏÏÎÎÎ "
-"<gui>ÎÎÎÎÎ</gui>, ÎÎ ÎÎÎÎ ÏÏÎÎ ÎÎÎÏÏÎÏÎ <gui>ÎÏÎÏÏ</gui> ÏÎ <gui>ÏÏÎ</gui>. "
-"ÎÎ ToolButton ÎÎ ÎÎÎÎÎÎÎÏÎÎÎ ÎÎ ÎÎÏÎÎÎÎÎÏÎÎ ÏÏÎÎ ÏÏÎÎÎÎÏÏÎ ÎÎÎÏÎÏÎÏ, ÎÎÎÎ ÎÎ "
-"ÏÏÎÏÎÏÎÏÎÏÎÏÎÎ ÏÏÏÏÎ, ÏÏÎÎ ÏÎ ÎÏÏÎÎÎ ÏÎÏÏÏÎÎÏÎÎ ÏÏÎÎ ÎÏÎÎÎÎ ÏÏÎÎÏÎÎÎÎÏÏÏ ÏÎÏ."
+"Î <code>dialog.run</code> ÎÎÏÎÎÎÎÎÎ ÏÎ ÎÎÎÎÎÎÎ <gui>ÎÎÎÎÎÎÎ</gui>. Î "
+"ÎÎÎÎÎÎÎÏ ÎÎ ÏÎÏÎÎÎÎÎÎ ÏÎÎ ÏÏÎÏÏÎ ÎÎ ÎÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎÏÎÎÂ ÏÏÎÎ ÎÎÎÎÎÎÎÎ, Î "
+"<code>dialog.run</code> ÎÎ ÎÏÎÏÏÏÎÏÎÎ ÏÎÎ ÏÎÎÎ <code>Gtk::RESPONSE_ACCEPT</"
+"code> (ÎÎ ÎÏÎÏÏÏÎÏÎÎ <code>Gtk::RESPONSE_CANCEL</code> ÎÎ Î ÏÏÎÏÏÎÏ ÏÎÏÎÏÎÎ "
+"<gui>ÎÎÏÏÏÏÎ</gui>). Î ÏÏÏÏÎÏÎ <code>switch</code> ÎÎÎÎÏÎÎ ÎÎÎ ÎÏÏÏ."
 
-#: C/toolbar_builder.vala.page:124(media) C/toolbar_builder.py.page:140(media)
-msgid "Setting the visible property to No"
-msgstr "ÎÏÎÏÎÏÏ ÏÎÏ ÎÎÎÏÏÎÏÎÏ ÎÏÎÏÏ ÏÎ ÏÏÎ"
+#: C/image-viewer.cpp.page:194(item/p)
+msgid ""
+"We hide the <gui>Open</gui> dialog because we don't need it any more. The "
+"dialog would be hidden later anyway, as it is only a local variable and is "
+"destroyed (and therefore hidden) when the scope ends."
+msgstr ""
+"ÎÏÏÎÎÏÎÎ ÏÎ ÎÎÎÎÎÎÎ <gui>ÎÎÎÎÎÎÎ</gui> ÎÏÎÎÎÎ ÎÎÎ ÏÎÎ ÏÏÎÎÎÎÏÎÎÏÏÎ ÏÎÎ. Î "
+"ÎÎÎÎÎÎÎÏ ÎÎ ÎÏÏÏÏÎÎ ÎÏÎÏÏÎÏÎ ÏÎ ÎÎÎÎ ÏÎÏÎÏÏÏÏÎ, ÎÎÎÏÏ ÎÎÎÎÎ ÎÎÎ ÏÎÏÎÎÎ "
+"ÎÎÏÎÎÎÎÏÎ ÎÏÎÎ ÎÎÎ ÎÎÏÎÏÏÏÎÏÎÏÎÎ (ÎÎÎ ÏÏÎÎÏÏÏ ÎÏÏÎÎÏÎÎ) ÏÏÎÎ Î ÎÎÎÎÎÎÎÎ "
+"ÏÎÎÎÎÏÎÎÎ."
 
-#: C/toolbar_builder.vala.page:129(p) C/toolbar_builder.py.page:145(p)
-msgid "Save your work, and close Glade."
-msgstr "ÎÏÎÎÎÎÎÏÏÎ ÏÎÏ ÎÏÎÎÏÎÎÏ ÏÎÏ ÎÎÎ ÎÎÎÎÏÎÎÎ ÏÎÏ Glade."
+#: C/image-viewer.cpp.page:197(item/p)
+msgid ""
+"Assuming that the user did click <gui>Open</gui>, the next line loads the "
+"file into the <code>Gtk::Image</code> so that it is displayed."
+msgstr ""
+"ÎÎ ÏÏÎÎÎÏÎÏÎÎ ÏÏÎ Î ÏÏÎÏÏÎÏ ÏÎÏÎÏÎ ÏÎ <gui>ÎÎÎÎÎÎÎ</gui>, Î ÎÏÏÎÎÎÎ ÎÏÎÎÎÎ "
+"ÏÎÏÏÏÎÎÎ ÏÎ ÎÏÏÎÎÎ ÏÏÎ <code>Gtk::Image</code>, ÎÏÏÎ ÏÏÏÎ ÎÎ ÎÎÏÎÎÎÎÎÏÎÎ."
 
-#: C/toolbar_builder.vala.page:132(p) C/toolbar_builder.py.page:148(p)
+#: C/image-viewer.cpp.page:211(section/p)
 msgid ""
-"The XML file created by Glade is shown below. This is the description of the "
-"toolbar. At the time of this writing, the option to add the class Gtk."
-"STYLE_CLASS_PRIMARY_TOOLBAR in the Glade Interface did not exist. We can "
-"manually add this to the XML file. To do this, add the following XML code at "
-"line 9 of <file>toolbar_builder.ui</file>:"
+"If you run into problems with the tutorial, compare your code with this "
+"<link href=\"image-viewer/image-viewer.cc\">reference code</link>."
 msgstr ""
-"ÎÎ ÎÎÎÎÎÏÏÎÎÎÎÎÎ ÎÏÏÎÎÎ XML ÎÏÏ ÏÎ Glade ÎÎÏÎÎÎÎÎÏÎÎ ÏÎÏÎÎÎÏÏ. ÎÏÏÎ ÎÎÎÎÎ Î "
-"ÏÎÏÎÎÏÎÏÎ ÏÎÏ ÎÏÎÎÎÎÎÎÎÎÎÎÏ. ÎÎ ÏÏÎÎÎÎ ÏÎÏ ÎÎÎÏÎÏÎÏ, Î ÎÏÎÎÎÎÎ ÏÏÎÏÎÎÎÎÏ "
-"ÏÏÎÎ ÎÎÎÏÎ Gtk.STYLE_CLASS_PRIMARY_TOOLBAR ÏÏÎÎ ÎÎÎÏÎÏÎ Glade ÎÎÎ ÏÏÎÏÏÎÎ. "
-"ÎÏÎÏÎÏÎÎ ÏÎÎÏÎÎÎÎÎÏÎ ÎÎ ÏÎ ÏÏÎÏÎÎÏÎÏÎÎ ÏÏÎ ÎÏÏÎÎÎ XML. ÎÎÎ ÎÎ ÏÎ ÎÎÎÎÏÎÎ, "
-"ÏÏÎÏÎÎÏÏÎ ÏÎÎ ÏÎÏÎÎÎÏÏ ÎÏÎÎÎÎ XML ÏÏÎ ÎÏÎÎÎÎ 9 ÏÎÏ <file>toolbar_builder.ui</"
-"file>:"
+"ÎÎ ÎÎÏÎÎÎÏÏÏÎÏÎÏÎ ÏÏÏÎÎÎÎÎ ÎÎ ÏÎ ÎÎÎÎÎÎ, ÏÏÎÎÏÎÎÎÏÎ ÏÎÎ ÎÏÎÎÎÎ ÏÎÏ ÎÎ ÎÏÏÏÎ "
+"ÏÎÎ <link href=\"image-viewer/image-viewer.cc\">ÎÏÎÎÎÎ ÎÎÎÏÎÏÎÏ</link>."
 
-#: C/toolbar_builder.vala.page:138(p) C/toolbar_builder.py.page:154(p)
+#: C/image-viewer.js.page:7(info/title)
+msgctxt "text"
+msgid "Image Viewer (JavaScript)"
+msgstr "ÎÏÎÎÎÎÎÎÏ ÎÎÎÏÎÏÎ (JavaScript)"
+
+#: C/image-viewer.js.page:10(info/desc)
 msgid ""
-"If you do not add this, the program will still work fine. The resulting "
-"toolbar will however look slightly different then the screenshot at the top "
-"of this page."
+"A little bit more than a simple \"Hello world\" application - write an image "
+"viewer in GTK. Includes an introduction to the JavaScript language."
 msgstr ""
-"ÎÎÎ ÎÎÎ ÏÎ ÏÏÎÏÎÎÏÎÏÎ, ÏÎ ÏÏÏÎÏÎÎÎÎ ÎÎ ÎÎÎÎÎÎÎÏÎÎÏÎÎ ÎÎ ÎÎÏÎÎÏÎÎ ÏÏÎÏÎÏÎ. Î "
-"ÏÎÎÎÎÎ ÎÏÎÎÎÎÎÎÎÎÎÎ ÏÎÏÏ ÎÎ ÏÎÎÎÎÏÎÎ ÎÎÎÏÏÎ ÎÎÎÏÎÏÎÏÎÎÎ ÏÏÏÎ ÎÏÏ ÏÎ "
-"ÏÏÎÎÎÎÏÏÏÏÎ ÏÏÎÎ ÎÎÏÏÏÎ ÎÏÏÎÏ ÏÎÏ ÏÎÎÎÎÎÏ."
+"ÎÎÎ ÎÎÎÎ ÏÎÏÎÏÏÏÏÎÏÎ ÎÏÏ ÎÏÎÎ ÎÏÎÏÎÎÎÎ ÏÎÎ ÏÎ \"Hello world\"- ÏÏÎÎÏÎÏÎ ÎÎÏÏ "
+"ÏÏÎÎÎÎÎÎ ÎÎÎÏÎÏÎ ÏÎ GTK. ÎÎÏÎÎÎÎÎÎÎÎÎ ÎÎÎ ÎÎÏÎÎÏÎÎ ÏÏÎ ÎÎÏÏÏÎ JavaScript."
+
+#: C/image-viewer.js.page:14(credit/name)
+#: C/image-viewer.py.page:14(credit/name)
+msgid "Jonh Wendell"
+msgstr "Jonh Wendell"
 
-#: C/toolbar_builder.vala.page:143(p) C/toolbar_builder.py.page:164(p)
+#: C/image-viewer.js.page:24(page/title) C/image-viewer.py.page:24(page/title)
+#: C/image-viewer.vala.page:31(page/title)
+msgid "1 Image Viewer"
+msgstr "1 ÎÏÎÎÎÎÎÎÏ ÎÎÎÏÎÏÎ"
+
+#: C/image-viewer.js.page:27(synopsis/p) C/image-viewer.py.page:27(synopsis/p)
 msgid ""
-"We now create the code below, which adds the toolbar from the file we just "
-"created."
+"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 ""
-"ÎÏÏÎ ÎÎÎÎÎÏÏÎÎÏÎÎ ÏÎÎ ÏÎÏÎÎÎÏÏ ÎÏÎÎÎÎ, ÏÎÏ ÏÏÎÏÎÎÏÎÎ ÏÎÎ ÎÏÎÎÎÎÎÎÎÎÎÎ ÎÏÏ ÏÎ "
-"ÎÏÏÎÎÎ ÏÎÏ ÎÏÎÎÏ ÎÎÎÎÎÏÏÎÎÏÎÎÎ."
+"ÎÎ ÎÏÏÏÎ ÏÎ ÎÎÎÎÎÎ ÎÎ ÎÏÎÏÎÏÎÎ ÎÎÎ ÏÎÎÏ ÎÏÎÎ ÎÏÎÏÎÎÎÎ ÏÎ GTK ÏÎÏ ÏÎÏÏÏÎÎÎ "
+"ÎÎÎ ÎÎÏÎÎÎÎÎÎ ÎÎÎ ÎÏÏÎÎÎ ÎÎÎÏÎÎÏ. ÎÎ ÎÎÎÎÏÎ ÏÏÏ ÎÎ:"
 
-#: C/toolbar_builder.vala.page:150(link) C/toolbar.vala.page:33(link)
-#: C/toolbar.js.page:31(link)
-msgid "Gtk.Toolbar"
-msgstr "ÎÏÎÎÎÎÎÎÎÎÎÎ Gtk"
+#: C/image-viewer.js.page:29(item/p)
+msgid "Write a basic GTK user interface in JavaScript"
+msgstr "ÎÏÎÏÎ ÎÎÎ ÎÎÏÎÎÎ ÎÎÎÏÎÏÎ ÏÏÎÏÏÎ GTK ÏÎ JavaScript"
 
-#: C/toolbar_builder.vala.page:151(link) C/toolbar.vala.page:34(link)
-msgid "Gtk.Toolbutton"
-msgstr "ÎÎÏÎÏÎ ÎÏÎÎÎÎÎÎÏ Gtk"
+#: C/image-viewer.js.page:30(item/p) C/image-viewer.py.page:30(item/p)
+msgid "Deal with events by connecting signals to signal handlers"
+msgstr "ÎÎ ÎÎÏÎÎÎÏÏÏÎÎÎÏÎ ÏÏÎÎÎÎÏÎ ÏÏÎÎÎÎÎÏÎÏ ÏÎÎÎÏÎ ÎÎ ÏÎÏÏ ÏÎÎÏÎÏÏÎÏ ÏÎÎÎÏÏÎ"
 
-#: C/toolbar_builder.vala.page:152(link) C/toolbar.vala.page:35(link)
-msgid "Gtk.Stock"
-msgstr "ÎÏÏÎÎÎÎ Gtk"
+#: C/image-viewer.js.page:31(item/p) C/image-viewer.py.page:31(item/p)
+msgid "Lay out GTK user interfaces using containers"
+msgstr "ÎÏÎÎÎÎÎÎÏÎ ÎÎÎÏÎÏÎÏ ÏÏÎÏÏÎ GTK ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎÏÎÎÎÏÎÏ"
 
-#: C/toolbar_builder.py.page:7(title)
-msgid "Toolbar created using Glade (Python)"
-msgstr "Î ÎÏÎÎÎÎÎÎÎÎÎÎ ÎÎÎÎÎÏÏÎÎÎÎÎÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ Glade (Python)"
+#: C/image-viewer.js.page:32(item/p) C/image-viewer.py.page:32(item/p)
+msgid "Load and display image files"
+msgstr "ÎÎÏÏÏÎÎÏÎ ÎÎÎ ÎÎ ÎÎÏÎÎÎÎÎÏÎ ÎÏÏÎÎÎ ÎÎÎÏÎÏÎ"
 
-#: C/toolbar_builder.py.page:26(name) C/textview.py.page:14(name)
-#: C/strings.py.page:14(name) C/signals-callbacks.py.page:14(name)
-#: C/properties.py.page:14(name) C/model-view-controller.py.page:14(name)
-#: C/label.py.page:18(name) C/entry.py.page:18(name)
-msgid "Sebastian PÃlsterl"
-msgstr "Sebastian PÃlsterl"
+#: C/image-viewer.js.page:37(item/p)
+msgid "An installed copy of the <em>gjs</em> interpreter"
+msgstr "ÎÎÎ ÎÎÎÎÏÎÏÏÎÎÎÎÎ ÎÎÏÎÎÏÎÏÎ ÏÎÏ ÎÎÎÏÎÎÎÎÏÏÎ <em>gjs</em>"
 
-#: C/toolbar_builder.py.page:27(email) C/textview.py.page:15(email)
-#: C/strings.py.page:15(email) C/signals-callbacks.py.page:15(email)
-#: C/properties.py.page:15(email) C/model-view-controller.py.page:15(email)
-#: C/label.py.page:19(email) C/entry.py.page:19(email)
-msgid "sebp k-d-w org"
-msgstr "sebp k-d-w org"
+#: C/image-viewer.js.page:38(item/p)
+msgid "Basic knowledge of any object-orientated programming language"
+msgstr "ÎÎÏÎÎÎ ÎÎÏÏÎ ÎÏÎÎÎÏÎÎÏÎÏÎ ÎÎÏÎÎÎÎÎÎÎÎÏÏÏÎÏÎÏÏ ÎÎÏÏÏÎÏ ÏÏÎÎÏÎÎÎÎÏÎÏÎÎÏ"
 
-#: C/toolbar_builder.py.page:31(desc) C/toolbar.py.page:18(desc)
-msgid "A bar of buttons and other widgets"
-msgstr "ÎÎÎ ÎÏÎÎÎÎ ÎÎÏÎÏÎÏÎ ÎÎÎ ÎÎÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ"
+#: C/image-viewer.js.page:52(item/p)
+msgid ""
+"Choose <gui>Generic Javascript</gui> from the <gui>JS</gui> tab, click "
+"<gui>Forward</gui>, and fill out your details on the next few pages. Use "
+"<file>image-viewer</file> as project name and directory."
+msgstr ""
+"ÎÏÎÎÎÎÏÎ <gui>ÎÎÎÎÎÎ Javascript</gui> ÎÏÏ ÏÎÎ ÎÎÏÏÎÎÎ <gui>JS</gui>, ÏÎÏÎÏÏÎ "
+"<gui>ÎÏÏÎÏÏÎ</gui>, ÎÎÎ ÏÏÎÏÎÎÏÏÏÏÎ ÏÎÏ ÎÎÏÏÎÎÎÏÎÎÎÏ ÏÎÏ ÏÏÎÏ ÎÏÏÎÎÎÎÏ ÎÎÎÎÏ "
+"ÏÎÎÎÎÎÏ. ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ ÏÎ <file>image-viewer</file> ÏÏ ÏÎÎÎÎ ÎÏÎÎÏ ÎÎÎ "
+"ÎÎÏÎÎÏÎÎÏ."
 
-#: C/toolbar_builder.py.page:37(p)
+#: C/image-viewer.js.page:55(item/p)
 msgid ""
-"This example is similar to <link xref=\"toolbar.py\"/>, except we use Glade "
-"to create the toolbar in an XML .ui file."
+"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 ""
-"ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÎÎÎÎÎ ÏÎÏÏÎÎÎÎ ÎÎ <link xref=\"toolbar.py\"/>, ÎÎÏÏÏ ÎÏÏ "
-"ÏÎ ÏÏÎÏÎ Glade ÎÎÎ ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ ÎÏÎÎÎÎÎÎÎÎÎÎÏ ÏÎ ÎÎÎ ÎÏÏÎÎÎ XML .ui."
+"ÎÎÏÎÏÏÎ <gui>ÎÏÎÏÎÎÎÎ</gui> ÎÎÎ ÏÎ ÎÏÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎÎÎÎ ÎÎÎ ÎÏÎÏ. ÎÎÎÎÎÏÎ ÏÎ "
+"<file>src/main.js</file> ÎÏÏ ÏÎÏ ÎÎÏÏÎÎÎÏ <gui>ÎÏÎÎ</gui> Î <gui>ÎÏÏÎÎÎ</"
+"gui>. ÎÎÏÎÎÎÎÎÎÎÎÎ ÏÎÎÏ ÎÎÏÎÎÏ ÏÎÏÎÎÎÎÎÎÎ ÎÏÎÎÎÎ."
 
-#: C/toolbar_builder.py.page:42(title)
-msgid "Creating the toolbar with Glade"
-msgstr "ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ ÎÏÎÎÎÎÎÎÎÎÎÎÏ ÎÎ Glade"
+#: C/image-viewer.js.page:62(section/title)
+msgid "JavaScript basics: Hello World"
+msgstr "ÎÎÏÎÎÎ JavaScript: Hello World"
 
-#: C/toolbar_builder.py.page:139(p)
+#: C/image-viewer.js.page:63(section/p)
 msgid ""
-"When our program will first start, we do not want the <gui>Leave Fullscreen</"
-"gui> ToolButton to be visible, since the application will not be in "
-"fullscreen mode. You can set this in the <gui>Common</gui> tab, by clicking "
-"the <gui>Visible</gui> property to <gui>No</gui>. The ToolButton will still "
-"appear in the interface designer, but will behave correctly when the file is "
-"loaded into your program code. Note that the method <code>show_all()</code> "
-"would override this setting - so in the code we have to use <code>show()</"
-"code> separately on all the elements."
+"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 ""
-"ÎÏÎÎ ÏÎ ÏÏÏÎÏÎÎÎÎ ÎÎÏ ÎÎ ÎÎÎÎÎÎÏÎÎ ÏÏÎÎ ÎÏÏÎ, ÎÎÎ ÎÎÎÎÏÎÎ ÏÎ ToolButton "
-"<gui>ÎÎÎÎÎÏ ÎÏÏ ÏÎÎÏÎ ÎÎÏÎÎ</gui> ÎÎ ÎÎÎÎÎ ÎÏÎÏÏ, ÎÏÎÏ Î ÎÏÎÏÎÎÎÎ ÎÎÎ ÎÎ "
-"ÎÎÎÎÎ ÏÎ ÎÎÎÏÎÏÏÎÎÎ ÏÎÎÏÎÏÏ ÎÎÏÎÎÏ. ÎÏÎÏÎÎÏÎ ÎÎ ÏÎ ÏÏÎÎÎÏÎÏÎ ÏÏÎÎ ÎÎÏÏÎÎÎ "
-"<gui>ÎÎÎÎÎ</gui>, ÎÎ ÎÎÎÎ ÏÏÎÎ ÎÎÎÏÏÎÏÎ <gui>ÎÏÎÏÏ</gui> ÏÎ <gui>ÏÏÎ</gui>. "
-"ÎÎ ToolButton ÎÎ ÎÎÎÎÎÎÎÏÎÎÎ ÎÎ ÎÎÏÎÎÎÎÎÏÎÎ ÏÏÎÎ ÏÏÎÎÎÎÏÏÎ ÎÎÎÏÎÏÎÏ, ÎÎÎÎ ÎÎ "
-"ÏÏÎÏÎÏÎÏÎÏÎÏÎÎ ÏÏÏÏÎ, ÏÏÎÎ ÏÎ ÎÏÏÎÎÎ ÏÎÏÏÏÎÎÏÎÎ ÏÏÎÎ ÎÏÎÎÎÎ ÏÏÎÎÏÎÎÎÎÏÏÏ "
-"ÏÎÏ. ÎÎÎÎÎÏÏÏÎ ÏÏÎ Î ÎÎÎÎÎÎÏ <code>show_all()</code> ÎÎ ÎÎÏÎÎÎÏÎÏÏÎÏÎÎ ÎÏÏÎ "
-"ÏÎ ÏÏÎÎÎÏÎ - ÎÏÏÎ ÏÏÎÎ ÎÏÎÎÎÎ ÏÏÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ <code>show()</code> "
-"ÎÎÏÏÏÎÏÏÎ ÏÎ ÏÎÎ ÏÎ ÏÏÎÎÏÎÎÎ."
+"ÎÏÎÎ ÎÎ ÎÎÎÎÎÎÏÎÏÎÎ ÏÎÎ ÏÏÎÏÎÎÎ ÏÎÏ ÏÏÎÎÎÎÎÎ ÎÎÎÏÎÎÏ, ÎÏ ÎÎÎÏÎÏÎÏÎÎ "
+"ÏÎÏÎÏÏÏÏÎÏÎ ÎÎÎ ÏÎÎ ÏÏÏÏÎ ÏÏÎÏÎÏ ÏÎÏ JavaScript ÏÏÎ GNOME. ÎÏÏÎÎÎ, Î ÏÏÏÏÎ "
+"ÏÎÏ ÎÎ ÎÏÎÎÎÎÎÏÎÏÎ ÎÎÏÏÏÎ ÏÏÎÎÏÎÎÎÎÏÎÏÎÎÏ ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎ ÏÎ ÏÏÏÎÏÎÎÎÎ Hello "
+"World ÏÎÏ ÎÏÎÏÎÎ ÎÎ ÎÏÎÎÎÎ ÎÎÎ ÏÏÎ <file>main.js</file>:"
 
-#: C/toolbar_builder.py.page:170(title)
-msgid "Useful methods for Gtk.Builder"
-msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ Gtk.Builder"
+#: C/image-viewer.js.page:64(section/code)
+#, no-wrap
+msgid "print (\"Hello world!\");"
+msgstr "ÎÎÏÏÏÏÏÎ (\"Hello world!\")Â"
 
-#: C/toolbar_builder.py.page:171(p)
+#: C/image-viewer.js.page:65(section/p)
 msgid ""
-"For the useful methods for a Toolbar widget, see <link xref=\"toolbar.py\"/>"
+"This should look quite natural if you're familiar with almost any other "
+"programming language. The function <code>print</code> is called with the "
+"argument <code>\"Hello world!\"</code>, which will be printed on the screen. "
+"Note that each line of code ends with a semicolon."
 msgstr ""
-"ÎÎÎ ÏÎÏ ÏÏÎÏÎÎÎÏ ÎÎÎÏÎÎÏÏ ÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÏÎÎÎÎÎÎÎÎÎÎÏ, ÎÎÎÏÎ "
-"<link xref=\"toolbar.py\"/>"
+"ÎÏÏÏ ÎÎ ÏÎÎÎÎÏÎÎ ÎÎÏÏÎÎÎ ÏÏÏÎÎÏ, ÎÎÎ ÎÎÏÏÎ ÎÎÎÎÎÎÎÏÎÎÎÎÏ ÎÎ ÏÏÎÎÏÎ "
+"ÎÏÎÎÎÎÎÏÎÏÎ ÎÎÎÎ ÎÎÏÏÏÎ ÏÏÎÎÏÎÎÎÎÏÎÏÎÎÏ. Î ÏÏÎÎÏÏÎÏÎ <code>print</code> "
+"ÎÎÎÎÎÏÎÎ ÎÎ ÏÎ ÏÏÎÏÎÎ <code>\"Hello world!\"</code>, ÏÎÏ ÎÎ ÎÎÏÏÏÏÎÎÎ ÏÏÎÎ "
+"ÎÎÏÎÎ. ÎÎÎÎÎÏÏÏÎ ÏÏÎ ÎÎÎÎ ÎÏÎÎÎÎ ÎÏÎÎÎÎ ÏÎÎÎÎÏÎÎÎ ÎÎ ;."
 
-#: C/toolbar_builder.py.page:173(p)
-msgid "Gtk.Builder builds an interface from an XML UI definition."
-msgstr "ÎÎ Gtk.Builder ÎÎÏÎÏÎÎÏÎÎÎÎ ÎÎÎ ÎÎÎÏÎÏÎ ÎÏÏ ÎÎÎÎ ÎÏÎÏÎÏ UI XML."
+#: C/image-viewer.js.page:69(section/title)
+msgid "Classes in JavaScript"
+msgstr "ÎÎÎÏÎÎÏ ÏÏÎ JavaScript"
+
+#: C/image-viewer.js.page:70(section/p)
+msgid "This is the standard way to define a class in JavaScript:"
+msgstr "ÎÏÏÏÏ ÎÎÎÎÎ Î ÏÏÏÎÎÏÏ ÏÏÏÏÎÏ ÎÏÎÏÎÎÏ ÎÎÎÏ ÎÎÎÏÎÏ ÏÏÎ JavaScript:"
 
-#: C/toolbar_builder.py.page:176(p)
+#: C/image-viewer.js.page:71(section/code)
+#, no-wrap
 msgid ""
-"<code>add_from_file(filename)</code> loads and parses the given file and "
-"merges it with the current contents of the Gtk.Builder."
+"\n"
+"function MyClass () {\n"
+"  this._init ();\n"
+"}\n"
+"\n"
+"MyClass.prototype = {\n"
+"\n"
+"  _init: function () {\n"
+"    this.propertyA = \"This is an object's field\";\n"
+"    this.propertyB = 10;\n"
+"  },\n"
+"\n"
+"  aMethod: function (arg1, arg2) {\n"
+"    print (\"inside aMethod: \" + arg1 + \" \" + arg2);\n"
+"  },\n"
+"\n"
+"  dumpProperties: function () {\n"
+"    print (this.propertyA);\n"
+"    print (this.propertyB);\n"
+"  }\n"
+"\n"
+"}"
 msgstr ""
-"Î <code>add_from_file(filename)</code> ÏÎÏÏÏÎÎÎ ÎÎÎ ÎÎÎÎÏÎÎ ÏÎ ÎÎÎÎÎÎÎÎ "
-"ÎÏÏÎÎÎ ÎÎÎ ÏÎ ÏÏÎÏÏÎÎÏÎÎ ÎÎ ÏÎ ÏÏÎÏÎÎÏÎ ÏÎÏÎÎÏÏÎÎÎÎ ÏÎÏ Gtk.Builder."
+"\n"
+"function MyClass () {\n"
+"  this._init ();\n"
+"}\n"
+"\n"
+"MyClass.prototype = {\n"
+"\n"
+"  _init: function () {\n"
+"    this.propertyA = \"This is an object's field\";\n"
+"    this.propertyB = 10;\n"
+"  },\n"
+"\n"
+"  aMethod: function (arg1, arg2) {\n"
+"    print (\"inside aMethod: \" + arg1 + \" \" + arg2);\n"
+"  },\n"
+"\n"
+"  dumpProperties: function () {\n"
+"    print (this.propertyA);\n"
+"    print (this.propertyB);\n"
+"  }\n"
+"\n"
+"}"
 
-#: C/toolbar_builder.py.page:177(p)
+#: C/image-viewer.js.page:93(section/p)
 msgid ""
-"<code>add_from_string(string)</code> parses the given string and merges it "
-"with the current contents of the Gtk.Builder."
+"This defines a class called <code>MyClass</code>. Let's go through each part "
+"of the class definition:"
 msgstr ""
-"Î <code>add_from_file(string)</code> ÏÎÏÏÏÎÎÎ ÏÎÎ ÎÎÎÎÎÎÎÎ ÏÏÎÎÎÎÎÏÎÎÏÎ ÎÎÎ "
-"ÏÎ ÏÏÎÏÏÎÎÏÎÎ ÎÎ ÏÎ ÏÏÎÏÎÎÏÎ ÏÎÏÎÎÏÏÎÎÎÎ ÏÎÏ Gtk.Builder."
+"ÎÏÏÏ ÎÏÎÎÎÎ ÎÎÎ ÎÎÎÏÎ ÏÎÏ ÎÎÎÎÏÎÎ <code>MyClass</code>. ÎÏ ÎÎÏÎÎ ÎÎÎÎ ÏÎÎÎÎ "
+"ÏÎÏ ÎÏÎÏÎÎÏ ÏÎÏ ÎÎÎÏÎÏ:"
 
-#: C/toolbar_builder.py.page:178(p)
+#: C/image-viewer.js.page:96(item/p)
 msgid ""
-"<code>add_objects_from_file(filename, object_ids)</code> is the same as "
-"<code>add_from_file()</code>, but it loads only the objects with the ids "
-"given in the <code>object_id</code>s list."
+"<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>add_objects_from_file(filename, object_ids)</code> ÎÎÎÎÎ Î ÎÎÎÎ ÎÎ "
-"<code>add_from_file()</code>, ÎÎÎÎ ÏÎÏÏÏÎÎÎ ÎÏÎÎ ÏÎ ÎÎÏÎÎÎÎÎÎÎÎ ÎÎ ÏÎÏ "
-"ÏÎÏÏÏÏÎÏÎÏ ÏÎÏ ÎÎÎÎÎÏÎÎ ÏÏÎ ÎÎÏÏÎ <code>object_id</code>."
+"<code>function MyClass</code> ÎÎÎÎÎ Î ÎÎÏÎÏÎÎÏÎÏÏÎÏ ÏÎÏ ÎÎÎÏÎÏ â ÏÎ ÏÎÎÎÎ "
+"ÏÎÏ ÏÏÎÏÎÎ ÎÎ ÏÎÎÏÎÎÎÎÎ ÎÎ ÏÎ ÏÎÎÎÎ ÏÎÏ ÎÎÎÏÎÏ. ÎÏÎÏÎÎÏÎ ÎÎ ÏÏÎÏÏÎÎÎÏÎÏÎ "
+"ÎÏÎÎÎÎÎÏÎÏÎ ÎÎÎÎÏ ÏÎÏ ÎÎÎÏÎÏ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ ÎÎÏÎÎÎÎÎÎÎÎ <code>this</"
+"code>Â ÎÎÏ, Î ÎÎÏÎÏÎÎÏÎÏÏÎÏ ÎÎÎÎÎ ÏÎ ÎÎÎÎÎÎ ÏÎÏ ÎÎÎÏÎÏ <code>_init</code>."
 
-#: C/toolbar_builder.py.page:179(p)
+#: C/image-viewer.js.page:99(item/p)
 msgid ""
-"<code>add_objects_from_string(filename, object_ids)</code> is the same as "
-"<code>add_from_string()</code>, but it loads only the objects with the ids "
-"given in the <code>object_id</code>s list."
+"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 ""
-"Î <code>add_objects_from_string(filename, object_ids)</code> ÎÎÎÎÎ Î ÎÎÎÎ ÎÎ "
-"<code>add_from_string()</code>, ÎÎÎÎ ÏÎÏÏÏÎÎÎ ÎÏÎÎ ÏÎ ÎÎÏÎÎÎÎÎÎÎÎ ÎÎ ÏÎÏ "
-"ÏÎÏÏÏÏÎÏÎÏ ÏÎÏ ÎÎÎÎÎÏÎÎ ÏÏÎ ÎÎÏÏÎ <code>object_id</code>."
+"Î ÎÎÎÎÎ <code>MyClass.prototype</code> ÎÎÎÎÎ ÎÎÎÎ ÏÎÏ ÎÏÎÎÎÏÎ ÏÎ <em>ÎÎÎÎ</"
+"em> ÏÎÏ ÎÎÎÏÎÏ. ÎÎÎÎ ÎÎÎÏÎ ÎÏÎÏÎÎÎÎÏÎÎ ÎÏÏ ÎÎÎÏÎÎÏÏ (ÏÏÎÎÏÏÎÏÎÎÏ) ÎÎÎ ÏÎÎÎÎ "
+"(ÎÎÏÎÎÎÎÏÎÏ)Â ÏÏÎÏÏÎÏÎ ÏÏÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÏÎ ÏÎÎÎÎ ÏÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ."
 
-#: C/toolbar_builder.py.page:180(p)
+#: C/image-viewer.js.page:102(item/p)
 msgid ""
-"<code>get_object(object_id)</code> retrieves the widget with the id "
-"<code>object_id</code> from the loaded objects in the builder."
+"The first method defined here is called <code>_init</code>, and we specify "
+"that it is a function with no arguments:"
 msgstr ""
-"Î <code>get_object(object_id)</code> ÎÎÎÎÏÎ ÏÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÎ ÏÎÎ "
-"ÏÎÏÏÏÏÎÏÎ <code>object_id</code> ÎÏÏ ÏÎ ÏÎÏÏÏÎÎÎÎ ÎÎÏÎÎÎÎÎÎÎÎ ÏÎÏ ÎÎÎÎÏÎ."
+"Î ÏÏÏÏÎ ÎÎÎÎÎÎÏ ÏÎÏ ÎÎÎÎÏÎÏÏÎÎÎ ÎÎÏ ÎÎÎÎÏÎÎ <code>_init</code> ÎÎÎ "
+"ÎÎÎÎÏÎÎÎÏÎÎ ÏÏÎ ÎÎÎÎÎ ÎÎÎ ÏÏÎÎÏÏÎÏÎ ÏÏÏÎÏ ÎÏÎÏÎÎÏÎ:"
 
-#: C/toolbar_builder.py.page:181(p)
-msgid "<code>get_objects()</code> returns all loaded objects."
-msgstr "Î <code>get_objects()</code> ÎÏÎÏÏÏÎÏÎÎ ÏÎÎ ÏÎ ÏÎÏÏÏÎÎÎÎ ÎÎÏÎÎÎÎÎÎÎÎ."
+#: C/image-viewer.js.page:103(item/code)
+#, no-wrap
+msgid "_init: function ()"
+msgstr "_init: function ()"
 
-#: C/toolbar_builder.py.page:182(p)
+#: C/image-viewer.js.page:104(item/p)
 msgid ""
-"<code>connect_signals(handler_object)</code> connects the signals to the "
-"methods given in the <code>handler_object</code>. This can be any object "
-"which contains keys or attributes that are called like the signal handler "
-"names given in the interface description, e.g. a class or a dict."
+"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 ""
-"Î <code>connect_signals(handler_object)</code> ÏÏÎÎÎÎÎ ÏÎ ÏÎÎÎÏÎ ÏÏÎÏ "
-"ÎÎÎÏÎÎÏÏ ÏÎÏ ÎÎÎÎÎÏÎÎ ÏÏÎÎ <code>handler_object</code>. ÎÏÏÏ ÎÏÎÏÎÎ ÎÎ ÎÎÎÎÎ "
-"ÎÏÎÎÎÎÎÏÎÏÎ ÎÎÏÎÎÎÎÎÎÎÎ ÏÎÏÎÎÏÎÎ ÎÎÎÎÎÎÎ Î ÎÎÏÏÎÏÎÎÏÎ ÏÎÏ ÎÎÎÎÏÎÏÎÎ ÏÏÏÏ ÏÎ "
-"ÎÎÏÎÎÏÎ ÏÎÎÏÎÏÏÎ ÏÎÎÎÏÎÏ ÏÎÏ ÎÎÎÎÎÏÎÎ ÏÏÎÎ ÏÎÏÎÎÏÎÏÎ ÎÎÎÏÎÏÎÏ, Ï.Ï. ÎÎÎ "
-"ÎÎÎÏÎ Î ÎÎÎ ÎÎÎÎÎÏ."
+"ÎÏÎÏÎÏÎÎ ÏÎ ÏÏÎÎÏÏÎÏÎ ÎÎÏÎ ÏÎ ÎÎÏÎÎÎÏ ÎÎÎÏÎÎÏ. ÎÏÎ ÏÎÎÎÎ ÎÏÎÎÎÎÏÎÎ ÎÎÏ, "
+"<code>propertyA</code> ÎÎÎ <code>propertyB</code>. ÎÎ ÏÏÏÏÎ ÎÏÎÎÎÏÎÎ ÏÎ ÎÎÎ "
+"ÏÏÎÎÎÎÎÏÎÎÏÎ ÎÎÎ ÏÎ ÎÎÏÏÎÏÎ ÎÏÎÎÎÏÎÎ ÏÎ ÎÎÎÎ ÎÎÎÏÎÎÎ (10). Î ÏÏÎÎÏÏÎÏÎ ÎÎÎ "
+"ÎÏÎÏÏÏÎÏÎÎ ÎÎÎÎÎ ÏÎÎÎ."
 
-#: C/toolbar_builder.py.page:193(link) C/togglebutton.c.page:39(link)
-#: C/switch.py.page:50(link) C/switch.c.page:36(link)
-#: C/statusbar.c.page:39(link) C/spinbutton.c.page:39(link)
-#: C/separator.py.page:39(link) C/radiobutton.py.page:52(link)
-#: C/radiobutton.c.page:36(link) C/grid.py.page:59(link)
-#: C/grid.c.page:35(link) C/buttonbox.py.page:51(link)
-msgid "GtkGrid"
-msgstr "GtkGrid"
-
-#: C/toolbar_builder.py.page:194(link) C/menubar.py.page:184(link)
-#: C/filechooserdialog.py.page:79(link)
-msgid "GtkBuilder"
-msgstr "GtkBuilder"
-
-#: C/toolbar_builder.py.page:196(link) C/toolbar.py.page:58(link)
-msgid "Event Structures"
-msgstr "ÎÎÎÎÏ ÏÏÎÎÎÎÏÏÎ"
-
-#: C/toolbar_builder.py.page:197(link)
-msgid "The Python Gtk+ 3 Tutorial - Glade and Gtk.Builder"
-msgstr "ÎÎ ÎÎÎÎÎÎ Python Gtk+ 3 - Glade ÎÎÎ Gtk.Builder"
-
-#: C/toolbar.vala.page:7(title)
-msgid "Toolbar (Vala)"
-msgstr "ÎÏÎÎÎÎÎÎÎÎÎÎ (Vala)"
+#: C/image-viewer.js.page:107(item/p)
+msgid ""
+"The next method is called <code>aMethod</code> and has two arguments, which "
+"it prints out when you call it. The final method is <code>dumpProperties</"
+"code>, and prints the fields <code>propertyA</code> and <code>propertyB</"
+"code>."
+msgstr ""
+"Î ÎÏÏÎÎÎÎ ÎÎÎÎÎÎÏ ÎÎÎÎÏÎÎ <code>aMethod</code> ÎÎÎ ÎÏÎÎ ÎÏÎ ÎÏÎÏÎÎÏÎ, ÏÎÏ "
+"ÎÎÏÏÏÏÎÎÏÎÎ ÏÏÎÎ ÏÎÎ ÎÎÎÎÎÏÎ. Î ÏÎÎÎÎÎ ÎÎÎÎÎÎÏ ÎÎÎÎÎ <code>dumpProperties</"
+"code> ÎÎÎ ÏÏÏÏÎÎÎ ÏÎ ÏÎÎÎÎ <code>propertyA</code> ÎÎÎ <code>propertyB</code>."
 
-#: C/toolbar.vala.page:21(title) C/toolbar.py.page:21(title)
-#: C/toolbar.js.page:20(title)
-msgid "Toolbar"
-msgstr "ÎÏÎÎÎÎÎÎÎÎÎÎ"
+#: C/image-viewer.js.page:110(item/p)
+msgid ""
+"Note how the class definition (prototype) is arranged; each function "
+"definition is separated by a comma."
+msgstr ""
+"ÎÎÎÎÎÏÏÏÎ ÏÏÏ ÏÎÎÏÎÏÎÎÎÎÏÎÎ Î ÎÏÎÏÎÏÏ ÎÎÎÏÎÏ (ÏÏÏÏÏÏÏÏÎ)Â ÎÎÎÎ ÎÏÎÏÎÏÏ "
+"ÏÏÎÎÏÏÎÏÎÏ ÎÎÏÏÏÎÎÎÏÎÎ ÎÎ ÎÏÎÎÎ."
+
+#: C/image-viewer.js.page:114(section/p)
+msgid "Now that MyClass has been defined, we can play with it:"
+msgstr "ÎÏÏÎ ÏÎÏ Î MyClass ÎÏÎÏÏÎÎÎ, ÎÏÎÏÎÏÎÎ ÎÎ ÏÎÎÎÎÏÎÎ ÎÎÎÎ ÏÎÏ:"
+
+#: C/image-viewer.js.page:115(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"var o = new MyClass ();\n"
+"o.aMethod (\"Hello\", \"world\");\n"
+"o.propertyA = \"Just changed its value!\";\n"
+"o.dumpProperties ();"
+msgstr ""
+"\n"
+"var o = new MyClass ();\n"
+"o.aMethod (\"Hello\", \"world\");\n"
+"o.propertyA = \"Just changed its value!\";\n"
+"o.dumpProperties ();"
 
-#: C/toolbar.vala.page:24(p) C/toolbar.js.page:22(p)
+#: C/image-viewer.js.page:120(section/p)
 msgid ""
-"Toolbar can contain either text or stock icons. In this sample we use stock "
-"icons. This example has fullscreen functionality."
+"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 ""
-"Î ÎÏÎÎÎÎÎÎÎÎÎÎ ÎÏÎÏÎÎ ÎÎ ÏÎÏÎÎÏÎÎ ÎÎÏÎ ÎÎÎÎÎÎÎ Î ÎÎÎÎÎÎÎÎÎ ÏÎÏÎÎÎÏÎÎÎÎÎÏ. ÎÎ "
-"ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÎÎÎÎÎÎÎÎÎ ÏÎÏÎÎÎÏÎÎÎÎÎÏ. ÎÏÏÏ ÏÎ "
-"ÏÎÏÎÎÎÎÎÎÎ ÎÏÎÎ ÎÎÎÏÎÏÏÎÎÎÏÏÎÏÎ ÏÎÎÏÎÏÏ ÎÎÏÎÎÏ."
+"ÎÏÏÏÏ Î ÎÏÎÎÎÎÏ ÎÎÎÎÎÏÏÎÎÎ ÎÎÎ ÎÎÎ ÏÏÎÎÎÎÏÏÏÏÎ ÏÎÏ ÎÎÎÏÎÏ ÏÎÏ ÎÎÎÎÏÎÎ "
+"<code>o</code>, ÏÏÎÏÎÎ ÏÎ <code>aMethod</code>, ÎÎÎÎÎÎÎ ÏÎÎ <code>propertyA</"
+"code> ÏÎ ÎÎÎÏÎÏÎÏÎÎÎ ÏÏÎÎÎÎÎÏÎÎÏÎ ÎÎÎ ÎÏÎÎÏÎ ÎÎÎÎÎ <code>dumpProperties</"
+"code> (ÏÎÏ ÎÎÎÎÎÎ ÏÎ ÏÎÎÎÎ)."
 
-#: C/toolbar.vala.page:25(p) C/toolbar.js.page:23(p)
+#: C/image-viewer.js.page:121(section/p)
 msgid ""
-"This example uses SimpleActions (window and app). App actions can easily be "
-"added the the app menu."
+"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 ""
-"ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎ SimpleActions (ÏÎÏÎÎÏÏÎ ÎÎÎ ÎÏÎÏÎÎÎÎ). ÎÎ "
-"ÎÎÎÏÎÎÎÎÏ ÏÎÏ ÎÏÎÏÎÎÎÎÏ ÎÏÎÏÎÏÎ ÎÏÎÎÎÎ ÎÎ ÏÏÎÏÏÎÎÎÏÎ ÏÏÎ ÎÎÎÎÏ ÏÎÏ ÎÏÎÏÎÎÎÎÏ."
-
-#: C/toolbar.py.page:7(title)
-msgid "Toolbar (Python)"
-msgstr "ÎÏÎÎÎÎÎÎÎÎÎÎ (Python)"
+"ÎÏÎÎÎÎÎÏÏÏÎ ÏÎÎ ÎÏÎÎÎÎ ÏÏÎ <file>main.js</file> ÎÎÎ ÎÏÎÎÏÎ ÏÏÎÎÏÎ ÏÎÎ "
+"ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ <guiseq><gui>ÏÏÎÎÎÎÎ</gui><gui>ÎÎÏÎÎÎÏÎ</gui></guiseq> ÎÏÏ "
+"ÏÎ ÎÎÎÎÏ Î ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎÎ ÎÏÎÎÎÎÎÎÎÎÎÎ."
 
-#: C/toolbar.py.page:24(p)
-msgid "An example of toolbar with buttons (from stock icons)."
-msgstr "ÎÎÏÎÎÎÎÎÎÎ ÎÏÎÎÎÎÎÎÎÎÎÎÏ ÎÎ ÎÎÏÎÏÎÎ (ÎÏÏ ÎÎÎÎÎÎÎÎÎ ÏÎÏÎÎÎÏÎÎÎÎÎÏ)."
+#: C/image-viewer.js.page:126(section/title)
+#: C/image-viewer.py.page:65(section/title)
+msgid "A first Gtk application"
+msgstr "ÎÎÎ ÏÏÏÏÎ ÎÏÎÏÎÎÎÎ ÏÎ Gtk"
 
-#: C/toolbar.py.page:35(title)
-msgid "Useful methods for a Toolbar widget"
-msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÏÎÎÎÎÎÎÎÎÎÎÏ"
+#: C/image-viewer.js.page:127(section/p)
+msgid "Let's see what a very basic Gtk application looks like in JavaScript:"
+msgstr "ÎÎÎ ÎÎ ÎÎÏÎÎ ÏÏÏ ÎÎÎ ÏÎÎÏ ÎÎÏÎÎÎ ÎÏÎÏÎÎÎÎ Gtk ÏÎÎÎÎÏÎÎ ÏÎ JavaScript:"
 
-#: C/toolbar.py.page:38(p)
+#: C/image-viewer.js.page:128(section/code)
+#, no-wrap
 msgid ""
-"Use <code>insert(tool_item, position)</code> to insert the <code>tool_item</"
-"code> at <code>position</code>. If <code>position</code> is negative, the "
-"item is appended at the end of the toolbar."
+"\n"
+"const Gtk = imports.gi.Gtk;\n"
+"\n"
+"Gtk.init (null, null);\n"
+"\n"
+"var w = new Gtk.Window ({title: \"Image Viewer Demo\"});\n"
+"w.show ();\n"
+"\n"
+"Gtk.main ();"
 msgstr ""
-"ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ <code>insert(tool_item, position)</code> ÎÎÎ ÏÎÎ ÎÎÏÎÎÏÎÎ ÏÎÏ "
-"<code>tool_item</code> ÏÏÎ <code>position</code>. ÎÎÎ Î <code>position</"
-"code> ÎÎÎÎÎ ÎÏÎÎÏÎÎÎ, ÏÎ ÏÏÎÎÏÎÎÎ ÏÏÎÏÎÏÏÎÏÎÎ ÏÏÎ ÏÎÎÎÏ ÏÎÏ ÎÏÎÎÎÎÎÎÎÎÎÎÏ."
+"\n"
+"const Gtk = imports.gi.Gtk;\n"
+"\n"
+"Gtk.init (null, null);\n"
+"\n"
+"var w = new Gtk.Window ({title: \"Image Viewer Demo\"});\n"
+"w.show ();\n"
+"\n"
+"Gtk.main ();"
+
+#: C/image-viewer.js.page:137(section/p) C/image-viewer.py.page:90(section/p)
+msgid "Let's take a look at what's happening:"
+msgstr "ÎÏ ÏÎÎÎÏÎÎ ÎÎÎ ÎÎÏÎÎ ÏÏÎ ÏÎ ÎÎÎÎÏÎÎ:"
 
-#: C/toolbar.py.page:39(p)
+#: C/image-viewer.js.page:140(item/p) C/image-viewer.py.page:93(item/p)
 msgid ""
-"<code>get_item_index(tool_item)</code> retrieves the position of "
-"<code>tool_item</code> on the toolbar."
+"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 ""
-"Î <code>get_item_index(tool_item)</code> ÎÎÎÎÏÎ ÏÎ ÎÎÏÎ ÏÎÏ <code>tool_item</"
-"code> ÏÏÎÎ ÎÏÎÎÎÎÎÎÎÎÎÎ."
+"Î ÏÏÏÏÎ ÎÏÎÎÎÎ ÎÎÏÎÎÎÎ ÏÎ ÏÎÎÎÎ ÏÏÏÎÏ Gtk (ÎÏÏÏ ÎÎÎÎÎ ÏÎÏ ÏÎÏÎÎÏÎÎ ÏÎÎ "
+"ÎÎÎÎÎÎÎÎÎÎ ÏÎÏ Gtk). ÎÎ ÎÎÎÎÎÎÎÎÎÎÏ ÏÎÏÎÏÎÎÏÎÎ ÎÏÏ ÏÎ GObject Introspection "
+"(gi), ÏÎÏ ÏÎÏÎÏÎÎ ÎÎÏÏÏÎÎÎÏ ÏÏÏÏÎÏÎÏÎÎÏ ÎÎÎ ÏÎÎÎÎÏ ÎÎÎÎÎÎÎÎÎÎÏ ÏÎÏ GNOME."
 
-#: C/toolbar.py.page:40(p)
+#: C/image-viewer.js.page:143(item/p)
 msgid ""
-"<code>get_n_items()</code> returns the number of items on the toolbar; "
-"<code>get_nth_item(position)</code> returns the item in position "
-"<code>position</code>."
+"<code>Gtk.init</code> initializes the Gtk library; this statement is "
+"mandatory for all Gtk programs."
 msgstr ""
-"Î <code>get_n_items()</code> ÎÏÎÏÏÏÎÏÎÎ ÏÎÎ ÎÏÎÎÎÏ ÏÏÎ ÏÏÎÎÏÎÎÏÎ ÏÎÏ "
-"ÎÏÎÎÎÎÎÎÎÎÎÎÏÂ Î <code>get_nth_item(position)</code> ÎÏÎÏÏÏÎÏÎÎ ÏÎ ÏÏÎÎÏÎÎÎ "
-"ÏÏÎ ÎÎÏÎ <code>position</code>."
+"ÎÎ <code>Gtk.init</code> ÎÏÏÎÎÎÏÎÎÎÎ ÏÎ ÎÎÎÎÎÎÎÎÎÎ Gtk ÎÏÏÎ Î ÏÏÏÏÎÏÎ ÎÎÎÎÎ "
+"ÏÏÎÏÏÎÏÏÎÎÎ ÎÎÎ ÏÎÎ ÏÎ ÏÏÎÎÏÎÎÎÎÏÎ Gtk."
 
-#: C/toolbar.py.page:41(p)
+#: C/image-viewer.js.page:146(item/p)
 msgid ""
-"If the toolbar does not have room for all the menu items, and "
-"<code>set_show_arrow(True)</code>, the items that do not have room are shown "
-"through an overflow menu."
+"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 ""
-"ÎÎÎ Î ÎÏÎÎÎÎÎÎÎÎÎÎ ÎÎÎ ÎÏÎÎ ÏÏÏÎ ÎÎÎ ÏÎÎ ÏÎ ÏÏÎÎÏÎÎÎ ÎÎÎÎÏ ÎÎÎ ÏÎÎ "
-"<code>set_show_arrow(True)</code>, ÏÎ ÏÏÎÎÏÎÎÎ ÏÎÏ ÎÎÎ ÎÏÎÏÎ ÏÏÏÎ "
-"ÎÎÏÎÎÎÎÎÎÏÎÎ ÎÎÏÎ ÎÏÏ ÎÎÎ ÎÎÎÎÏ ÏÏÎÏÏÎÎÎÎÏÎÏ."
+"Î ÎÏÏÎÎÎÎ ÎÏÎÎÎÎ ÎÎÎÎÎÏÏÎÎÎ ÏÎ ÎÏÏÎÎ ÏÎÏÎÎÏÏÎ ÎÎÎÎÎÏÏÎÏÎÏÎÏ ÎÎÎ ÎÎÎ "
+"ÎÎÏÎÎÎÎÎÎÎÎ <code>Gtk.Window</code>. ÎÏÎÏÎÎÏÎ ÎÎ ÏÎÏÎÏÎÏÎ ÎÏÎÎÏÎÏ ÎÎÎÏÏÎÏÎÏ "
+"ÏÏÎÎ ÎÎÏÎÏÎÎÏÎÏÏÎ ÏÎÏÎÎÏÏÎÏ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ ÏÏÎÏÎÎÎ <code>{property: "
+"value, property: value, ...}</code>. ÎÎ ÎÏÏÎÎ ÏÎÎ ÏÎÏÎÏÏÏÏÎ ÎÏÎÎÎÏÎÎ ÏÎÎ "
+"ÏÎÏÎÎ ÏÎÏ ÏÎÏÎÎÏÏÎÏ."
 
-#: C/toolbar.py.page:42(p)
+#: C/image-viewer.js.page:147(item/p)
 msgid ""
-"<code>set_icon_size(icon_size)</code> sets the size of icons in the toolbar; "
-"<code>icon_size</code> can be one of <code>Gtk.IconSize.INVALID, Gtk."
-"IconSize.MENU, Gtk.IconSize.SMALL_TOOLBAR, Gtk.IconSize.LARGE_TOOLBAR, Gtk."
-"IconSize.BUTTON, Gtk.IconSize.DND, Gtk.IconSize.DIALOG</code>. This should "
-"be used only for special-purpose toolbars, normal application toolbars "
-"should respect user preferences for the size of icons. <code>unset_icon_size"
-"()</code> unsets the preferences set with <code>set_icon_size(icon_size)</"
-"code>, so that user preferences are used to determine the icon size."
+"The next line explicitly shows the window. In Gtk, every widget is hidden by "
+"default."
 msgstr ""
-"Î <code>set_icon_size(icon_size)</code> ÏÏÎÎÎÎÎÎ ÏÎ ÎÎÎÎÎÎÏ ÏÏÎ ÎÎÎÎÎÎÎÎÏÎ "
-"ÏÏÎÎ ÎÏÎÎÎÎÎÎÎÎÎÎÂ ÏÎ <code>icon_size</code> can be one of <code>Gtk."
-"IconSize.INVALID, Gtk.IconSize.MENU, Gtk.IconSize.SMALL_TOOLBAR, Gtk."
-"IconSize.LARGE_TOOLBAR, Gtk.IconSize.BUTTON, Gtk.IconSize.DND, Gtk.IconSize."
-"DIALOG</code>. ÎÏÏÏ ÏÏÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÎÎ ÎÏÎÎ ÎÎÎ ÎÏÎÎÎÎÎÎÎÎÎÎÏ ÎÎÎÎÎÎÏ "
-"ÏÎÎÏÎÏ, ÎÏÎÎÎÎÎÎÎÎÎÎÏ ÎÎÎÎÎÎÎÎÏ ÎÏÎÏÎÎÎÎÏ ÏÏÎÏÎÎ ÎÎ ÏÎÎÎÎÏÎÎ ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÏ "
-"ÏÎÏ ÏÏÎÏÏÎ ÎÎÎ ÏÎ ÎÎÎÎÎÎÏ ÏÏÎ ÎÎÎÎÎÎÎÎÏÎ. Î <code>unset_icon_size()</code> "
-"ÎÎÎÎÏÎÎ ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÏ ÏÎÏ ÏÏÎÎÎÏÏÎÎÎÎ ÎÎ <code>unset_icon_size()</code>, "
-"ÎÏÏÎ ÏÏÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÏ ÏÏÎÏÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÎÏÎ ÎÎÎ ÏÎÎ ÏÏÎÏÎÎÎÏÎÏÎÏ ÏÎÏ "
-"ÎÎÎÎÎÎÏÏ ÏÎÏ ÎÎÎÎÎÎÎÎÎÏ."
+"Î ÎÏÏÎÎÎÎ ÎÏÎÎÎÎ ÏÎÏÎ ÎÎÏÎÎÎÎÎÎ ÏÎ ÏÎÏÎÎÏÏÎ. ÎÏÎ Gtk, ÎÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ "
+"ÎÏÏÎÎÏÎÎ ÎÏÏ ÏÏÎÎÏÎÎÎÎÎ."
 
-#: C/toolbar.py.page:43(p)
+#: C/image-viewer.js.page:148(item/p)
 msgid ""
-"<code>set_style(style)</code>, where <code>style</code> is one of <code>Gtk."
-"ToolbarStyle.ICONS, Gtk.ToolbarStyle.TEXT, Gtk.ToolbarStyle.BOTH, Gtk."
-"ToolbarStyle.BOTH_HORIZ</code>, sets if the toolbar shows only icons, only "
-"text, or both (vertically stacked or alongside each other). To let user "
-"preferences determine the toolbar style, and unset a toolbar style so set, "
-"use <code>unset_style()</code>."
+"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 ""
-"Î <code>set_style(style)</code>, ÏÏÎÏ <code>style</code> ÎÎÎÎÎ ÎÎÎ ÎÏÏ ÏÎ "
-"<code>Gtk.ToolbarStyle.ICONS, Gtk.ToolbarStyle.TEXT, Gtk.ToolbarStyle.BOTH, "
-"Gtk.ToolbarStyle.BOTH_HORIZ</code>, ÏÏÎÎÎÎÎÎ ÎÎÎ Î ÎÏÎÎÎÎÎÎÎÎÎÎ ÎÎÏÎÎÎÎÎÎ "
-"ÎÏÎÎ ÎÎÎÎÎÎÎÎÎ, ÎÏÎÎ ÎÎÎÎÎÎÎ Î ÎÎÎ ÏÎ ÎÏÎ (ÏÏÎÎÎÎÎÎÎÎÎ ÎÎÎÎÏÎ Î ÎÎÏÎÎ ÎÎÏÎÎÏ "
-"ÏÎÏÏ). ÎÎÎ ÎÎ ÎÏÎÏÏÎÏÎÏÎ ÏÏÎÏ ÏÏÎÏÎÎÎÏÎÎÏ ÏÎÏ ÏÏÎÏÏÎ ÎÎ ÎÎÎÎÏÎÏÎÏÎ ÏÎ ÏÏÎÏ "
-"ÏÎÏ ÎÏÎÎÎÎÎÎÎÎÎÎÏ ÎÎÎ ÎÎ ÎÎÎÎÏÎÏÎÏÎ ÎÎÎ ÏÏÎÏ ÎÏÎÎÎÎÎÎÎÎÎÎÏ ÏÎÏ ÏÏÎÎÎÏÏÎÎÎ "
-"ÎÏÏÎ, ÏÏÎÏÎÎÎÏÎÎÎÏÏÎ <code>unset_style()</code>."
-
-#: C/toolbar.py.page:53(link)
-msgid "GtkToolButton"
-msgstr "GtkToolButton"
-
-#: C/toolbar.py.page:54(link)
-msgid "GtkToolItem"
-msgstr "GtkToolItem"
-
-#: C/toolbar.py.page:56(link)
-msgid "GtkActionable"
-msgstr "GtkActionable"
-
-#: C/toolbar.js.page:7(title)
-msgid "Toolbar (JavaScript)"
-msgstr "ÎÏÎÎÎÎÎÎÎÎÎÎ (JavaScript)"
-
-#: C/toolbar.js.page:17(desc)
-msgid "A bar of tools"
-msgstr "ÎÏÎÎÎÎ ÎÏÎÎÎÎÎÏÎ"
-
-#: C/toolbar.js.page:32(link)
-msgid "Gtk.ToolButton"
-msgstr "ToolButton Gtk"
-
-#: C/toolbar.js.page:33(link)
-msgid "Gtk Stock items"
-msgstr "ÎÏÎÎÏÎÎÎ ÎÏÎÎÎÎÎÏÎÏ Gtk"
-
-#: C/toolbar.js.page:34(link)
-msgid "Gdk.WindowState"
-msgstr "Gdk.WindowState"
+"ÎÎÎÎÎÎ, ÏÎ <code>Gtk.main</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/togglebutton.vala.page:24(None) C/togglebutton.py.page:24(None)
-#: C/togglebutton.js.page:21(None) C/togglebutton.c.page:26(None)
-msgid "@@image: 'media/togglebutton.png'; md5=791e062613d4f9bd5936390b0aa18448"
+#: C/image-viewer.js.page:151(section/p)
+msgid ""
+"Save the code in <file>main.js</file> and run it. You will notice that the "
+"application does not quit when you close the window. This is because we "
+"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 ""
-"@@image: 'media/togglebutton.png'Â md5=791e062613d4f9bd5936390b0aa18448"
-
-#: C/togglebutton.vala.page:7(title)
-msgid "ToggleButton (Vala)"
-msgstr "ToggleButton (Vala)"
-
-#: C/togglebutton.vala.page:20(desc) C/togglebutton.py.page:20(desc)
-#: C/togglebutton.c.page:21(desc)
-msgid "A button which retains state"
-msgstr "ÎÎÎ ÎÎÏÎÏÎ ÏÎÏ ÎÏÎÏÎ ÎÎÏÎÏÏÎÏÎ"
-
-#: C/togglebutton.vala.page:23(title) C/togglebutton.py.page:23(title)
-#: C/togglebutton.js.page:20(title) C/togglebutton.c.page:24(title)
-msgid "ToggleButton"
-msgstr "ToggleButton"
-
-#: C/togglebutton.vala.page:25(p) C/togglebutton.py.page:25(p)
-#: C/togglebutton.c.page:27(p)
-msgid "When this ToggleButton is in an active state, the spinner spins."
-msgstr "ÎÏÎÎ ÎÏÏÏ ÏÎ ToggleButton ÎÎÎÎÎ ÎÎÎÏÎÏ, Î ÎÎÏÏÎÏÎÏ ÏÎÏÎÏÏÏÎÏÎÏÎÎ."
-
-#: C/togglebutton.vala.page:32(link) C/togglebutton.js.page:158(link)
-msgid "Gtk.ToggleButton"
-msgstr "Gtk.ToggleButton"
-
-#: C/togglebutton.py.page:7(title)
-msgid "ToggleButton (Python)"
-msgstr "ToggleButton (Python)"
+"ÎÏÎÎÎÎÎÏÏÎ ÏÎÏ ÎÏÎÎÎÎ ÏÏÎ <file>main.js</file> ÎÎÎ ÎÎÏÎÎÎÏÎ ÏÎÏ. ÎÎ "
+"ÏÎÎÎÎÏÏÎÏÎ ÏÏÎ Î ÎÏÎÏÎÎÎÎ ÎÎÎ ÎÎÎÎÏÎÎÎÎÏÎÎ ÏÏÎÎ ÎÎÎÎÎÎÏÎ ÏÎ ÏÎÏÎÎÏÏÎ. ÎÏÏÏ "
+"ÏÏÎÎÎÎÎÎÎ ÎÏÎÎÎÎ ÎÎÎ ÎÎÎÎÏÎÏÏÎÏÎÎÎ ÎÎÎÎ ÏÎÎÏÎÏÏÎ ÏÎÎÎÏÎÏ ÎÎÎ ÎÏÏÎÎÎÎÎÎ ÎÎ ÏÎ "
+"ÏÎÎÎ ÏÎÏ ÏÎÏÎÎÏÏÎÏ <code>destroy</code> (ÎÎÎÎÏÎÎÎ) ÎÎÏÎÎ. ÎÎ ÏÎ ÎÎÎÎÏÎÎ "
+"ÏÏÎÏÎÎÎ, ÎÎÎÎ ÎÎÎ ÏÏÏÎ ÎÏÎÏÎÎÏÎ ÎÏÎÎ ÎÎ ÏÎÏÎÏÎÏÎ <keyseq><key>Ctrl</"
+"key><key>C</key></keyseq> ÏÏÎ ÏÎÏÎÎÏÏÎ ÏÎÏÎÎÏÎÎÎÏ ÎÎÎ ÎÎ ÎÏÎÏÎÏÎ ÏÎ "
+"ÏÏÏÎÏÎÎÎÎ."
 
-#: C/togglebutton.py.page:37(title)
-msgid "Useful methods for a ToggleButton widget"
-msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ToggleButton"
+#: C/image-viewer.js.page:156(section/title)
+msgid "Adding classes"
+msgstr "ÎÏÎÏÎÎÎÎ ÎÎÎÏÎÏÎ"
 
-#: C/togglebutton.py.page:38(p) C/radiobutton.py.page:37(p)
-#: C/messagedialog.py.page:36(p) C/fontchooserwidget.py.page:34(p)
-#: C/dialog.py.page:36(p) C/button.py.page:34(p) C/aboutdialog.py.page:36(p)
+#: C/image-viewer.js.page:157(section/p)
 msgid ""
-"For an explanation of signals and callback functions, see <link xref="
-"\"signals-callbacks.py\">this page</link>."
+"The proper way of doing Gtk programming is by using classes. Let's rewrite "
+"the simple code you just wrote using classes:"
 msgstr ""
-"ÎÎÎ ÎÎÎ ÎÎÎÎÎÏÎ ÏÏÎ ÏÎÎÎÏÏÎ ÎÎÎ ÏÏÎÎÏÏÎÏÎÏÎ ÎÏÎÎÎÎÎÎÏÎÏ, ÎÎÎÏÎ <link xref="
-"\"signals-callbacks.py\">ÎÏÏÎÎ ÏÎ ÏÎÎÎÎÎ</link>."
+"Î ÎÎÏÎÎÎÎÎÎÏ ÏÏÏÏÎÏ ÎÎÎ ÎÎ ÎÎÎÎÎ ÏÏÎÎÏÎÎÎÎÏÎÏÎÏÏ Gtk ÎÎÎÎÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ "
+"ÎÎÎÏÎÎÏ. ÎÏ ÎÎÎÎÎÏÎÏÎÏÎÎ ÏÎÎ ÎÏÎÏ ÎÏÎÎÎÎ ÏÎÏ ÎÏÎÎÏ ÎÏÎÏÎÏÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ "
+"ÎÎÎÏÎÎÏ:"
 
-#: C/togglebutton.py.page:45(link) C/checkbutton.py.page:48(link)
-msgid "GtkToggleButton"
-msgstr "GtkToggleButton"
+#: C/image-viewer.js.page:158(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"const Gtk = imports.gi.Gtk;\n"
+"\n"
+"function ImageViewer () {\n"
+"  this._init ();\n"
+"}\n"
+"\n"
+"ImageViewer.prototype = {\n"
+"  _init: function () {\n"
+"    this.window = new Gtk.Window ({title: \"Image Viewer Demo\"});\n"
+"    this.window.show ();\n"
+"  }\n"
+"}\n"
+"\n"
+"Gtk.init (0, null);\n"
+"var iv = new ImageViewer ();\n"
+"Gtk.main ();"
+msgstr ""
+"\n"
+"const Gtk = imports.gi.Gtk;\n"
+"\n"
+"function ImageViewer () {\n"
+"  this._init ();\n"
+"}\n"
+"\n"
+"ImageViewer.prototype = {\n"
+"  _init: function () {\n"
+"    this.window = new Gtk.Window ({title: \"Image Viewer Demo\"});\n"
+"    this.window.show ();\n"
+"  }\n"
+"}\n"
+"\n"
+"Gtk.init (0, null);\n"
+"var iv = new ImageViewer ();\n"
+"Gtk.main ();"
 
-#: C/togglebutton.py.page:47(link) C/togglebutton.c.page:37(link)
-#: C/spinner.py.page:40(link) C/spinner.c.page:35(link)
-msgid "GtkSpinner"
-msgstr "GtkSpinner"
+#: C/image-viewer.js.page:176(section/p)
+msgid ""
+"Notice that the program is the same; we just moved the window creation code "
+"to our own <code>ImageViewer</code> class. The class's constructor calls the "
+"<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 ""
+"ÏÎÎÎÎÏÏÏÎ ÏÏÎ ÏÎ ÏÏÏÎÏÎÎÎÎ ÎÎÎÎÎ ÏÎ ÎÎÎÎÂ ÎÏÎÎÏ ÎÎÏÎÎÎÎÎÏÎÎÎ ÏÎÎ ÎÏÎÎÎÎ "
+"ÎÎÎÎÎÏÏÎÎÎÏ ÏÎÏÎÎÏÏÎÏ ÏÏÎ ÎÎÎÎ ÎÎÏ ÎÎÎÏÎ <code>ImageViewer</code>. Î "
+"ÎÎÏÎÏÎÎÏÎÏÏÎÏ ÎÎÎÏÎÏ ÎÎÎÎÎ ÏÎ ÎÎÎÎÎÎ <code>_init</code>, ÏÎÏ ÎÎÎÎÎÏÏÎÎÎ ÎÎÎ "
+"ÎÎÏÎÎÎÎÎÎ ÏÎ ÏÎÏÎÎÏÏÎ. ÎÏÎÎÏÎ ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ ÏÏÎÎÎÎÏÏÏÏÎ ÏÎÏ ÎÎÎÏÎÏ ÏÏÎÎ "
+"ÏÎ ÏÏÎÎÎÎÎ ÏÎÏ ÎÏÏÎÎÏ ÎÏÏÏÎÏ (<code>Gtk.main</code>)."
 
-#: C/togglebutton.js.page:7(title)
-msgid "ToggleButton (JavaScript)"
-msgstr "ToggleButton (JavaScript)"
+#: C/image-viewer.js.page:177(section/p)
+msgid ""
+"This code is modular and can be split into multiple files easily. This makes "
+"it cleaner and easier to read."
+msgstr ""
+"ÎÏÏÏÏ Î ÎÏÎÎÎÎÏ ÎÎÎÎÎ ÎÏÎÏÏÏÏÏ ÎÎÎ ÎÏÎÏÎÎ ÎÎ ÏÏÎÏÎÎ ÏÎ ÏÎÎÎÎÏÎÎ ÎÏÏÎÎÎ "
+"ÎÏÎÎÎÎ. ÎÏÏÏ ÏÎÎ ÎÎÎÎÎ ÎÎÎÎÏÏÏÎÏÎ ÎÎÎ ÏÎÎ ÎÏÎÎÎÎ ÎÎÎÎÎÏÏÎÎÎ."
 
-#: C/togglebutton.js.page:17(desc)
-msgid "Stays pressed until you click it again"
-msgstr "ÎÎÏÎÎÎÎÎÎ ÏÎÏÎÎÎÎÎ ÎÎÏÏÎ ÎÎ ÏÎ ÏÎÏÎÏÎÏÎ ÎÎÎÎ"
+#: C/image-viewer.js.page:181(section/title)
+#: C/image-viewer.py.page:114(section/title)
+msgid "Signals"
+msgstr "ÎÎÎÎÏÎ"
 
-#: C/togglebutton.js.page:22(p)
+#: C/image-viewer.js.page:182(section/p) C/image-viewer.py.page:115(section/p)
 msgid ""
-"A ToggleButton is like a normal <link xref=\"button.js\">Button</link>, "
-"except that it stays pressed in when you click it. You can use it like an on/"
-"off switch, to control things like the <link xref=\"spinner.js\">Spinner</"
-"link> in this example."
+"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 ""
-"ÎÎÎ ToggleButton ÎÎÎÎÎ ÏÎÎ ÎÎÎ ÎÎÎÎÎÎÎÏ <link xref=\"button.js\">ÎÎÏÎÏÎ</"
-"link>, ÎÎÏÏÏ ÎÏÏ ÏÎ ÏÏÎ ÏÎÏÎÎÎÎÎÎ ÏÎÏÎÎÎÎÎ ÏÏÎÎ ÏÎ ÏÎÏÎÏÎ. ÎÏÎÏÎÎÏÎ ÎÎ ÏÎ "
-"ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÏÎÎ ÎÎÎÎ ÎÎÎÎÏÏÏÎ ÎÎÎ/ÏÏÎ, ÎÎÎ ÎÎ ÎÎÎÎÎÎÏÎ ÏÏÎÎÎÎÏÎ ÏÏÏÏ ÏÎÎ "
-"<link xref=\"spinner.js\">ÎÎÏÏÎÏÎ</link> ÏÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ."
+"ÎÎ ÏÎÎÎÏÎ ÎÎÎÎÎ ÎÎÎ ÎÏÏ ÏÎÏ ÎÎÎÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÏÎÎ ÏÏÎÎÏÎÎÎÎÏÎÏÎÏ Gtk. "
+"ÎÏÎÏÎ ÎÎÏÎ ÏÏÎÎÎÎÎÎÎ ÏÎ ÎÎÎ ÎÎÏÎÎÎÎÎÎÎÎ, ÎÎÏÎÎÏÎÎ ÎÎÎ ÏÎÎÎÂ ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ, "
+"ÏÏÎÎ ÏÎÏÎÎÏÎÎ ÎÎÎ ÎÎÏÎÏÎ ÎÎÏÎÎÏÎÎ ÏÎ ÏÎÎÎ <code>clicked</code>. ÎÎÎ ÎÎÎÎÏÎ "
+"ÏÎ ÏÏÏÎÏÎÎÎÎ ÏÎÏ ÎÎ ÎÎÎÎÎ ÎÎÏÎ ÏÏÎÎ ÎÏÏÏ ÏÏÎÎÎÎÎÎÎ, ÏÏÎÏÎÎ ÎÎ ÏÏÎÎÎÏÎÏÎ ÎÎÎ "
+"ÏÏÎÎÏÏÎÏÎ (ÎÎÎÎ \"ÏÎÎÏÎÏÏÎ ÏÎÎÎÏÏÎ\") ÏÎ ÎÏÏÏ ÏÎ ÏÎÎÎ. ÎÏÎÏÏÎ ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ:"
 
-#: C/togglebutton.js.page:23(p)
+#: C/image-viewer.js.page:183(section/code)
+#, no-wrap
 msgid ""
-"A ToggleButton's get_active method returns true if it's pressed in, and "
-"false if it's not. Its set_active method is used if you want to change its "
-"state without needing to click on it. When it changes state from pressed in "
-"to popped out and vice-versa, it sends out the \"toggled\" signal, which you "
-"can connect to a function to do something."
-msgstr ""
-"ÎÎÎ ÎÎÎÎÎÎÏ get_active ÏÎÏ ToggleButton ÎÏÎÏÏÏÎÏÎÎ ÎÎÎÎÎÏ ÎÎÎ ÏÎÏÎÎÎÎ ÎÎÎ "
-"ÏÎÏÎÎÏ ÎÎÎ ÎÎÎ ÏÎÏÎÎÎÎ. Î ÎÎÎÎÎÎÏ ÏÎÏ set_active ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÎÎÎ ÎÎÎÎÏÎ "
-"ÎÎ ÎÎÎÎÎÎÏÎ ÏÎÎ ÎÎÏÎÏÏÎÏÎ ÏÎÏ ÏÏÏÎÏ ÎÎ ÏÏÎÎÎÎÎÏÎÎ ÎÎ ÏÎ ÏÎÏÎÏÎÏÎ. ÎÏÎÎ "
-"ÎÎÎÎÎÎÎ Î ÎÎÏÎÏÏÎÏÎ ÎÏÏ ÏÎÏÎÎÎÎÎ ÏÎ ÎÎÎÎÏÏÎÎÎÎ ÎÎÎ ÎÎÏÎÏÏÏÎÏÎ, ÏÏÎÎÎÎÎ ÏÎ "
-"ÏÎÎÎ \"ÎÎÎÎÎÎÎÎÎ\", ÏÎÏ ÎÏÎÏÎÎÏÎ ÎÎ ÏÏÎÎÎÏÎÏÎ ÎÎ ÎÎÎ ÏÏÎÎÏÏÎÏÎ ÎÎÎ ÎÎ ÎÎÎÎÎ "
-"ÎÎÏÎ."
+"\n"
+"function button_clicked () {\n"
+"  print (\"you clicked me!\");\n"
+"}\n"
+"var b = new Gtk.Button ({label:\"Click me\"});\n"
+"b.connect (\"clicked\", button_clicked);"
+msgstr ""
+"\n"
+"function button_clicked () {\n"
+"  print (\"you clicked me!\");\n"
+"}\n"
+"var b = new Gtk.Button ({label:\"Click me\"});\n"
+"b.connect (\"clicked\", button_clicked);"
 
-#: C/togglebutton.js.page:66(p) C/radiobutton.js.page:66(p)
+#: C/image-viewer.js.page:189(section/p) C/image-viewer.py.page:122(section/p)
 msgid ""
-"All the code for this sample goes in the RadioButtonExample class. The above "
-"code creates a <link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/";
-"Gtk.Application.html\">Gtk.Application</link> for our widgets and window to "
-"go in."
+"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 ""
-"ÎÎÎÏ Î ÎÏÎÎÎÎÏ ÎÎÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÏÎÎÎÎÎÎÎ ÏÏÎÎ ÎÎÎÏÎ "
-"RadioButtonExample. Î ÏÎÏÎÏÎÎÏ ÎÏÎÎÎÎÏ ÎÎÎÎÎÏÏÎÎÎ ÎÎÎ <link href=\"http://";
-"www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Application.html\">Gtk."
-"Application</link> ÎÎÎ ÎÎ ÎÏÎÏÎ ÎÎÏÎ ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÏ ÎÎÎ ÏÎ "
-"ÏÎÏÎÎÏÏÎ."
+"ÎÎ ÏÎÎÎÏÏÎÎÎÏ ÎÏÎ ÎÏÎÎÎÎÏ ÎÎÎÎÎÏÏÎÎÏÎ ÎÎÎ <code>Gtk.Button</code> ÏÎÏ "
+"ÎÎÎÎÎÎÎÏÎÎ <code>b</code> ÎÎÎ ÏÏÎÎÎÎÎ ÏÎ ÏÎÎÎ ÏÎ <code>clicked</code> ÏÏÎÎ "
+"ÏÏÎÎÏÏÎÏÎ <code>button_clicked</code>, Î ÎÏÎÎÎ ÎÏÎÎÎÏÎÎ ÏÎÎ ÏÎÎÏ. ÎÎÎÎ ÏÎÏÎ "
+"ÏÎÏ ÏÎÏÎÎÏÎÎ ÎÎÎ ÎÎÏÎÏÎ, Î ÎÏÎÎÎÎÏ ÏÏÎ ÏÏÎÎÏÏÎÏÎ <code>button_clicked</code> "
+"ÎÎ ÎÎÏÎÎÎÎÏÎÎ. ÎÎÏ ÎÏÎÎ ÏÏÏÏÎÎÎ ÎÎÎ ÎÎÎÏÎÎ."
 
-#: C/togglebutton.js.page:84(title)
-msgid "Creating the ToggleButton and other widgets"
-msgstr "ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ ToggleButton ÎÎÎ ÎÎÎÏÎ ÎÏÎÏÎÎÏÎ ÏÏÏÏÎÏÎÎÏÎ"
+#: C/image-viewer.js.page:190(section/p)
+msgid "The syntax for connecting any signal to a function is:"
+msgstr "Î ÏÏÎÏÎÎÎ ÎÎÎ ÏÏÎÎÎÏÎ ÎÏÎÎÎÏÎÎÏÎÏÎ ÏÎÎÎÏÎÏ ÏÎ ÎÎÎ ÏÏÎÎÏÏÎÏÎ ÎÎÎÎÎ:"
 
-#: C/togglebutton.js.page:90(p)
+#: C/image-viewer.js.page:191(section/code)
+#, no-wrap
 msgid ""
-"We want this <link xref=\"spinner.js\">Spinner</link> to expand vertically "
-"and horizontally, to take up as much space as possible inside the window."
+"\n"
+"object.connect (&lt;signal_name&gt;, &lt;function_to_be_called&gt;);"
 msgstr ""
-"ÎÎÎÎÏÎÎ ÎÏÏÏÏ Î <link xref=\"spinner.js\">ÎÎÏÏÎÏÎÏ</link> ÎÎ ÎÏÎÎÏÎÎÎÎ "
-"ÎÎÎÎÏÎ ÎÎÎ ÎÏÎÎÏÎÏÎÎ, ÎÎÎ ÎÎ ÎÎÏÎÎÎÎÎÎ ÏÏÎ ÏÎ ÎÏÎÎÏÏ ÏÎÏÎÏÏÏÏÎÏÎ ÏÏÏÎ ÎÎÏÎ "
-"ÏÏÎ ÏÎÏÎÎÏÏÎ."
+"\n"
+"object.connect (&lt;signal_name&gt;, &lt;function_to_be_called&gt;);"
 
-#: C/togglebutton.js.page:98(p)
+#: C/image-viewer.js.page:193(section/p)
 msgid ""
-"Creating a ToggleButton is a lot like creating a normal <link xref=\"button."
-"js\">Button</link>. The biggest difference is that you're handling a "
-"\"toggled\" signal instead of a \"clicked\" signal. This code binds the "
-"_onToggle function to that signal, so that it's called whenever our "
-"ToggleButton is toggled."
+"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 ""
-"Î ÎÎÎÎÎÏÏÎÎÎ ÎÎÏÏ ToggleButton ÎÎÎÎÎ ÏÎÏÎÎÏÎÏÎÏ ÎÎ ÏÎ ÎÎÎÎÎÏÏÎÎÎ ÎÎÏÏ "
-"ÎÎÎÎÎÎÎÎÏ <link xref=\"button.js\">ÎÎÏÎÏÎÎÏ</link>. Î ÎÎÎÎÎÏÏÎÏÎ ÎÎÎÏÎÏÎ "
-"ÎÎÎÎÎ ÏÏÎ ÏÎÎÏÎÎÎÏÏÎ ÎÎÎ \"ÎÎÎÎÎÎÎÎÎ\" ÏÎÎÎ ÎÎÏÎ ÎÎÎ ÎÎÎ \"ÏÎÏÎÎÎÎÎ\" ÏÎÎÎ. "
-"ÎÏÏÏÏ Î ÎÏÎÎÎÎÏ ÏÏÎÎÎÎÎ ÏÎ ÏÏÎÎÏÏÎÏÎ _onToggle ÎÎ ÎÏÏÏ ÏÎ ÏÎÎÎ, ÎÏÏÎ ÏÏÏÎ "
-"ÎÎÎÎÎÏÎÎ ÏÏÎÏÎ ÏÎ ToggleButton ÎÎÏ ÎÎÎÎÎÎÏÏÎÏÎÎ."
+"ÎÏÎÏÎÎÏÎ ÎÎ ÎÏÎÎÏÎ ÎÏÎÏÎÎÏÏ ÏÎÎÎÏÎÏ ÎÎÎ ÎÎÎÎ ÎÎÏÎÎÎÎÎÎÎÎ ÏÏÎ <link href="
+"\"http://library.gnome.org/devel/gtk/stable/ch01.html\";>ÎÎÎÏÎÏÎ ÎÎÎÏÎÏ GTK</"
+"link>."
 
-#: C/togglebutton.js.page:108(p)
+#: C/image-viewer.js.page:196(note/p)
 msgid ""
-"Here we create a simple <link xref=\"grid.js\">Grid</link> to organize "
-"everything in, then attach the Spinner and ToggleButton to it."
+"You can simplify the code by making use of an inline function definition:"
 msgstr ""
-"ÎÎÏ ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ ÎÏÎÏ <link xref=\"grid.js\">ÏÎÎÎÎÎ</link> ÎÎÎ ÎÎ "
-"ÎÏÎÎÎÏÏÎÏÎÎ ÎÎÏÎ ÏÎÏ ÏÎÎ, ÎÏÎÎÏÎ ÎÏÎÏÏÎÎÏÏÎÏÎÎ ÏÎÎ ÎÎÏÏÎÏÎ ÎÎÎ ÏÎ "
-"ToggleButton ÏÎ ÎÏÏÏ."
+"ÎÏÎÏÎÎÏÎ ÎÎ ÎÏÎÎÏÎÎÎÏÎÏÎ ÏÎÎ ÎÏÎÎÎÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÎÎÎÎ ÎÎÏÏÎÎÏÏÎÎÎÎ ÎÏÎÏÎÏ "
+"ÏÏÎÎÏÏÎÏÎÏ:"
 
-#: C/togglebutton.js.page:118(p)
+#: C/image-viewer.js.page:197(note/code)
+#, no-wrap
 msgid ""
-"Now we add the Grid to the Window, and tell the Window to show itself and "
-"its child widgets when the application is started."
+"\n"
+"b.connect (\"clicked\", function () { print (\"you clicked me!\"); });"
 msgstr ""
-"ÎÏÏÎ ÏÏÎÏÎÎÏÎÏÎÎ ÏÎ ÏÎÎÎÎÎ ÏÏÎ ÏÎÏÎÎÏÏÎ ÎÎÎ ÎÎÎÎ ÏÏÎ ÏÎÏÎÎÏÏÎ ÎÎ ÎÎÏÎÎÎÏÎÎ "
-"ÏÎÎ ÎÎÏÏÏÎ ÏÎÏ ÎÎÎ ÏÎ ÎÏÎÎÏÏÎÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÏÏÎÎ Î ÎÏÎÏÎÎÎÎ ÎÎÎÎÎÎ."
+"\n"
+"b.connect (\"clicked\", function () { print (\"you clicked me!\"); });"
 
-#: C/togglebutton.js.page:122(title)
-msgid "Making something happen when the ToggleButton is toggled"
-msgstr "ÎÎÎÎÎÏÎÏ ÎÎ ÏÏÎÎÎÎ ÎÎÏÎ ÏÏÎÎ ÏÎ ToggleButton ÎÎÎÎÎÎÏÏÎÏÎÎ"
+#: C/image-viewer.js.page:204(section/title)
+msgid "Closing the window"
+msgstr "ÎÎÎÎÏÎÎÎ ÏÎÏ ÏÎÏÎÎÏÏÎÏ"
 
-#: C/togglebutton.js.page:136(p)
+#: C/image-viewer.js.page:205(section/p)
 msgid ""
-"Whenever someone toggles the button, this function checks what its state is "
-"afterwards using get_active and starts or stops the spinner accordingly. We "
-"want it to spin only while the button is pressed in, so if get_active "
-"returns true we start the spinner. Otherwise, we tell it to stop."
+"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 ""
-"ÎÏÎÏÎ ÎÎÏÎÎÎÏ ÎÎÎÎÎÎÏÏÎÎ ÏÎ ÎÎÏÎÏÎ, ÎÏÏÎ Î ÏÏÎÎÏÏÎÏÎ ÎÎÎÎÏÎÎ ÏÎÎÎ ÎÎÎÎÎ Î "
-"ÎÎÏÎÏÏÎÏÎ ÏÎÏ ÎÎÏÏÏÎÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ get_active ÎÎÎ ÎÎÎÎÎÎ Î ÏÏÎÎÎÏÎ ÏÎÎ "
-"ÎÎÏÏÎÏÎ ÎÎÎÎÎÎÎ. ÎÎ ÎÎÎÎÏÎÎ ÎÏÎÎ ÎÎ ÏÎÏÎÏÏÏÎÏÎÎ ÎÎÏ ÏÎ ÎÎÏÎÏÎ ÎÎÎÎÎ "
-"ÏÎÏÎÎÎÎÎ, ÎÏÏÎ ÎÎÎ Î get_active ÎÏÎÏÏÏÎÏÎÎ ÎÎÎÎÎÏ ÎÏÏÎÎÎÏÎÎ ÏÎÎ ÎÎÏÏÎÏÎ. "
-"ÎÎÎÎÏÏ, ÏÎÏ ÎÎÎÎ ÎÎ ÏÏÎÎÎÏÎÏÎÎ."
+"ÎÏÎÎ ÎÎÎÎÎÎÏÎÎ ÎÎÎ ÏÎÏÎÎÏÏÎ Gtk ÎÎÎ ÎÎÎÎÎÎÎ ÏÏÎÎÎÎÏÎÎÎ, ÎÏÏÎÎÏÎÎ. ÎÏÏÏ "
+"ÎÏÎÏÏÎÏÎÎ ÏÎ ÎÎÎÏÎÏÎÏÎ ÏÎÏ ÏÎÏÎÎÏÏÎÏ ÏÏÎÎÏÏÏ (ÏÎÏ ÎÎÎÎÎ ÏÏÎÏÎÎÎ ÎÎÎ ÎÎÎÎÏÎ "
+"ÎÎ ÎÎÏÎÏÎÏÎ ÎÏÏ ÏÎÎ ÏÏÎÏÏÎ ÎÎÎ ÎÎÎÎÎ ÏÏÎÎÎÎÏÎÎÎ ÎÎ ÎÎÎÎÏÎÎ ÏÎ ÏÎÏÎÎÏÏÎ, ÎÎÎ "
+"ÏÎÏÎÎÎÎÎÎÎ)."
 
-#: C/togglebutton.js.page:143(p) C/radiobutton.js.page:264(p)
+#: C/image-viewer.js.page:206(section/p)
 msgid ""
-"Finally, we create a new instance of the finished RadioButtonExample class, "
-"and set the application running."
+"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 ""
-"ÎÎÎÎÎÎ, ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ ÏÎÏ ÏÎÎÎÎÏÎÎÎÎÏ ÎÎÎÏÎÏ "
-"RadioButtonExample ÎÎÎ ÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ."
-
-#: C/togglebutton.js.page:156(link) C/textview.js.page:252(link)
-#: C/switch.js.page:269(link) C/spinbutton.js.page:203(link)
-#: C/scale.js.page:212(link) C/radiobutton.js.page:278(link)
-#: C/grid.vala.page:31(link) C/grid.js.page:36(link)
-msgid "Gtk.Grid"
-msgstr "Gtk.Grid"
-
-#: C/togglebutton.js.page:157(link) C/spinner.vala.page:30(link)
-#: C/spinner.js.page:32(link)
-msgid "Gtk.Spinner"
-msgstr "Gtk.Spinner"
-
-#: C/togglebutton.c.page:7(title)
-msgid "ToggleButton (C)"
-msgstr "ToggleButton (C)"
-
-#: C/togglebutton.c.page:16(name) C/textview.c.page:12(name)
-#: C/switch.c.page:12(name) C/statusbar.c.page:16(name)
-#: C/spinner.c.page:13(name) C/spinbutton.c.page:15(name)
-#: C/scale.c.page:14(name) C/radiobutton.c.page:14(name)
-#: C/progressbar.c.page:13(name) C/messagedialog.c.page:13(name)
-#: C/linkbutton.c.page:12(name) C/label.c.page:13(name)
-#: C/image.c.page:12(name) C/grid.c.page:12(name) C/entry.c.page:12(name)
-#: C/dialog.c.page:14(name) C/button.c.page:14(name)
-#: C/aboutdialog.c.page:14(name)
-msgid "Monica Kochofar"
-msgstr "Monica Kochofar"
-
-#: C/togglebutton.c.page:17(email) C/textview.c.page:13(email)
-#: C/switch.c.page:13(email) C/statusbar.c.page:17(email)
-#: C/spinner.c.page:14(email) C/spinbutton.c.page:16(email)
-#: C/scale.c.page:15(email) C/radiobutton.c.page:15(email)
-#: C/progressbar.c.page:14(email) C/messagedialog.c.page:14(email)
-#: C/linkbutton.c.page:13(email) C/label.c.page:14(email)
-#: C/image.c.page:13(email) C/grid.c.page:13(email) C/entry.c.page:13(email)
-#: C/dialog.c.page:15(email) C/button.c.page:15(email)
-#: C/aboutdialog.c.page:15(email)
-msgid "monicakochofar gmail com"
-msgstr "monicakochofar gmail com"
-
-#: C/togglebutton.c.page:38(link)
-msgid "GtkTogglebutton"
-msgstr "GtkToggleButton"
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/textview.vala.page:26(None) C/textview.py.page:37(None)
-#: C/textview.c.page:26(None)
-msgid "@@image: 'media/textview.png'; md5=049e859ed1af2d7c93d8cb5cfd9f7792"
-msgstr "@@image: 'media/textview.png'Â md5=049e859ed1af2d7c93d8cb5cfd9f7792"
-
-#: C/textview.vala.page:7(title)
-msgid "TextView (Vala)"
-msgstr "TextView (Vala)"
+"ÎÏÎÎ ÏÎÏÎÏÏÏÏÎ ÎÎÏ, ÎÎÎÎÏÎÎ ÏÏÎÎÎÎÏÎÎÎ ÎÎ ÎÎÎÎÏÎÏÎÎ ÏÎ ÏÎÏÎÎÏÏÎ. Î "
+"ÎÏÎÎÏÏÏÎÏÎÏ ÏÏÏÏÎÏ ÎÎÎÎÎ ÏÏÎÎÎÎÎÏÎÏ ÏÎ ÏÎÎÎ <code>hide</code> ÏÎÏ "
+"ÎÎÏÎÎÎÎÎÎÎÎÏ GtkWindow ÎÎ ÎÎÎ ÏÏÎÎÏÏÎÏÎ ÏÎÏ ÎÎÎÎÎÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ. ÎÏÎÏÏÏÎÏÏÎ "
+"ÏÏÎ ÎÏÏÎÎÎ <file>image-viewer.js</file> ÎÎÎ ÏÏÎÏÎÎÏÏÎ ÏÎÎ ÏÎÏÎÎÎÏÏ ÎÏÎÎÎÎ "
+"ÏÏÎ ÎÎÎÎÎÎ <code>_init</code>, ÏÏÎÎ ÏÎÏÎÏÎÎÏ ÎÏÎÎÎÎ <code>this.window.show</"
+"code>:"
 
-#: C/textview.vala.page:17(desc) C/textview.c.page:17(desc)
-msgid "Widget which displays a GtkTextBuffer"
-msgstr "ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÏÎÏ ÎÎÏÎÎÎÎÎÎ ÎÎÎ GtkTextBuffer"
+#: C/image-viewer.js.page:207(section/code)
+#, no-wrap
+msgid "this.window.connect (\"hide\", Gtk.main_quit);"
+msgstr "this.window.connect (\"hide\", Gtk.main_quit)Â"
 
-#: C/textview.vala.page:20(title) C/textview.c.page:20(title)
-msgid "TextView widget"
-msgstr "ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ TreeView"
+#: C/image-viewer.js.page:208(section/p)
+msgid ""
+"This connects the <code>hide</code> signal of the window to Gtk's "
+"<code>main_quit</code> function, which ends the execution of the Gtk main "
+"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 ""
+"ÎÏÏÏ ÏÏÎÎÎÎÎ ÏÎ ÏÎÎÎ <code>hide</code> ÏÎÏ ÏÎÏÎÎÏÏÎÏ ÏÏÎ ÏÏÎÎÏÏÎÏÎ ÏÎÏ Gtk "
+"<code>main_quit</code>, ÏÎÏ ÏÎÎÎÎÏÎÎÎ ÏÎÎ ÎÎÏÎÎÎÏÎ ÏÎÏ ÎÏÏÎÎÏ ÎÏÏÏÎÏ Gtk. "
+"ÎÏÎÎÏ Î ÎÏÏÎÎÏ ÎÏÏÏÎÏ ÏÎÎÎÎÏÏÎÎ, Î ÏÏÎÎÏÏÎÏÎ <code>Gtk.main</code> "
+"ÎÏÎÏÏÏÎÏÎÎ. ÎÎ ÏÏÏÎÏÎÎÎÎ ÎÎÏ ÏÏÎÎÏÎÎÎÎ ÎÎ ÏÏÎÏÎÎ ÎÏÎÎÎÎÎÏÎÏÎ ÎÏÎÎÎÎ ÎÏÎÎÎÎÎÎ "
+"ÎÎÏÎ ÏÎ ÎÏÎÎÎÎ <code>Gtk.main ();</code>, ÎÎÎÎ ÎÏÎÏ ÎÎÎ ÎÏÎÏÎÎ ÎÏÎÎÎÎÎÏÎÏÎ "
+"ÎÏÎÎÎÎ ÎÎÏÎ ÎÏÏ ÎÏÏÏ ÏÎ ÏÎÎÎÎÎ, ÏÎ ÏÏÏÎÏÎÎÎÎ ÎÏÎÎ ÏÎÎÎÎÏÎÎÎ."
 
-#: C/textview.vala.page:21(p) C/textview.py.page:31(p) C/textview.c.page:21(p)
-msgid "If we press \"enter\", we have a new line."
-msgstr "ÎÎÎ ÏÎÏÎÏÎÏÎ \"enter\", ÎÏÎÏÎÎ ÎÎÎ ÎÏÎÎÎÎ."
+#: C/image-viewer.js.page:212(section/title)
+#: C/image-viewer.py.page:126(section/title)
+msgid "Containers: Laying-out the user interface"
+msgstr "ÎÎÏÎÎÎÏÎÏ: ÎÏÎÎÎÎÏÎ ÎÎÎÏÎÏÎÏ ÏÏÎÏÏÎ"
 
-#: C/textview.vala.page:22(p) C/textview.c.page:22(p)
+#: C/image-viewer.js.page:213(section/p) C/image-viewer.py.page:127(section/p)
 msgid ""
-"If we press \"enter\" more times then there are lines in the default sized "
-"window, then a vertical scrollbar appears."
+"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 ""
-"ÎÎÎ ÏÎÏÎÏÎÏÎÎ \"enter\" ÏÎÏÎÏÏÏÏÎÏÎÏ ÏÎÏÎÏ ÏÏÏÎ ÏÏÎÏÏÎÏÎ ÎÏÎÎÎÎÏ ÏÏÎ "
-"ÏÏÎÎÏÎÎÎÎÎÎÎÎ ÎÎÎÎÎÎÏ ÏÎÏÎÎÏÏÎÏ, ÎÎÏÎ ÎÎÏÎÎÎÎÎÏÎÎ Î ÎÎÎÎÏÎ ÎÏÎÎÎÎ ÎÏÎÎÏÎÏ"
+"ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ (ÎÎÎÎÏÎÎ, ÏÏÏÏ ÏÎ ÎÎÏÎÏÎÎ ÎÎÎ ÎÎ ÎÏÎÎÎÏÎÏ) ÎÏÎÏÎÏÎ ÎÎ "
+"ÏÎÏÎÎÎÏÎÎÎÏÎ ÏÏÎ ÏÎÏÎÎÏÏÎ ÎÎÎÎÎÏÎÏ ÏÏÎÏÎ ÏÏÎ <em>ÏÎÏÎÎÎÏÏÎ</em>. ÎÏÎÏÎÎÏÎ ÎÎ "
+"ÎÏÎÎÎÏÏÎÏÎ ÏÎÎ ÎÎÎÏÎÎÎ ÏÏÎÎÏÎÎÎÎÏÎÏ ÎÎÎÏÎÏÎÏÎÎÏÎ ÎÎÎÏÎ ÏÎÏÎÎÎÏÎÏ, ÏÏÏÏ "
+"ÏÎÎÎÏÎÎ ÎÎÎ ÏÎÎÎÎÎÏÎ."
 
-#: C/textview.vala.page:23(p) C/textview.c.page:23(p)
+#: C/image-viewer.js.page:214(section/p) C/image-viewer.py.page:128(section/p)
 msgid ""
-"If we write a long sentence, the text will wrap breaking lines between words."
+"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 ""
-"ÎÎÎ ÎÏÎÏÎÏÎÎ ÎÎÎ ÎÎÎÎÎÎ ÏÏÏÏÎÏÎ, ÏÎ ÎÎÎÎÎÎÎ ÎÎ ÎÎÎÎÎÏÎÏÎÎÎ ÎÎÎÎÏÏÏÎÎÏÎÏ ÏÎÏ "
-"ÎÏÎÎÎÎÏ ÎÎÏÎÎÏ ÏÏÎ ÎÎÎÎÏÎ."
+"ÎÎÎ <code>Gtk.Window</code> ÎÎÎÎÎ ÎÏÏ ÎÏÎÎ ÏÎÏ ÎÎÎ ÎÎÎÎÏ ÏÎÏÎÎÎÏÎ, ÎÎÎÎ "
+"ÎÏÎÏÎÎÏÎ ÎÎ ÏÎÏÎÎÎÏÎÏÎÏÎ ÎÏÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÎÎÏÎ ÏÎÎÏ ÏÎÏ. ÎÎ "
+"ÎÎÎÎÎÎ ÎÎ ÎÎÏÎÎÎ ÎÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ, ÎÎÎ ÎÎÎÏÎÎ ÎÎÎ ÎÎÎ ÎÎÏÎÏÎ, ÎÏÎ ÎÎ "
+"ÏÏÎÏÎÎ ÎÎ ÏÎÏÎÎÎÏÎÏÎÏÎÎ ÎÎÎÎ ÏÏÎÎÎÏÎÎ \"ÏÏÎÎÏÏÎÏÎÏ ÏÏÏÎÏÎÎÏÏÎÏÎÏ\" ÎÎÏÎ ÏÏÎ "
+"ÏÎÏÎÎÏÏÎ ÎÎÎ ÎÎ ÎÏÎÏÎÎÎ ÏÎ ÎÎÎÎ ÎÏÎÏÎÎÎ ÏÏÎÎÏÎÎÎ. ÎÎÎÏ ÎÏÎÎÎÏÏ ÎÏÏ <link "
+"href=\"http://library.gnome.org/devel/gtk/stable/GtkContainer.html\";>ÏÏÏÎÏÏ "
+"ÏÎÏÎÎÎÏÏÎ</link> ÎÎÎÎÎ ÎÎÎÎÎÏÎÎÎÎ, ÎÎÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÎÏ ÎÎÎ "
+"<code>Gtk.Box</code>. ÎÎÎ <code>Gtk.Box</code> ÎÏÎÏÎÎ ÎÎ ÎÏÎÏÎÏÎÎ ÏÎÎÎÎ "
+"ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ, ÎÏÎÎÎÏÎÎÎÎ ÎÏÎÎÏÎÏÎÎ Î ÎÎÎÎÏÎ. ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÎÏÎ ÎÎÎ ÏÎÎ "
+"ÏÎÏÎÏÎÎÎÎÏ ÎÎÎÏÎÎÎÎÏ ÎÎÎÎÎÏÎÏ ÏÎÎÎÎ ÏÎÎÎÏÎÎ ÏÎ ÎÎÎ ÎÎÏÎ ÏÏÎ ÎÎÎÎ Î.Î.Î."
 
-#: C/textview.vala.page:24(p)
+#: C/image-viewer.js.page:216(note/p) C/image-viewer.py.page:130(note/p)
 msgid ""
-"If we have a loooooooooooooooooooooooooooooooooooong word, a horizontal "
-"scrollbar will appear."
+"There is a graphical user interface designer called <app>Glade</app> "
+"integrated in <app>Anjuta</app> which makes UI design really easy. For this "
+"simple example, however, we will code everything manually."
 msgstr ""
-"ÎÎÎ ÎÏÎÏÎÎ ÎÎÎ ÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎ ÎÎÎÎ, ÎÎÎ ÎÏÎÎÏÎÏÎÎ "
-"ÎÏÎÎÎÎ ÎÏÎÎÏÎÏ ÎÎ ÎÎÏÎÎÎÏÏÎÎ."
-
-#: C/textview.vala.page:27(p) C/textview.c.page:27(p)
-msgid "This is an example of Gtk.TextView"
-msgstr "ÎÏÏÏ ÎÎÎÎÎ ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ ÏÎÏ Gtk.TextView"
-
-#: C/textview.vala.page:34(link) C/textview.js.page:256(link)
-msgid "Gtk.TextBuffer"
-msgstr "Gtk.TextBuffer"
+"ÎÏÎÏÏÎÎ ÎÎÎÏ ÎÏÎÏÎÎÏÏ ÏÏÎÎÎÎÏÏÎÏ ÎÎÎÏÎÏÎÏ ÏÏÎÏÏÎ ÎÎ ÏÎÎÎÎ <app>Glade</app> "
+"ÎÎÏÏÎÎÏÏÎÎÎÎÏ ÏÏÎ <app>Anjuta</app> ÏÎÏ ÎÎÎÎÎ ÏÎ ÏÏÎÎÎÎÏÎ ÎÏÎÏÎÎÎÏ "
+"ÏÎÏÎÎÎÎÎÎÎÏÎÏ ÏÎÎÏ ÎÏÎÎÎÎ. ÎÎÎ ÎÏÏÏ ÏÎ ÎÏÎÏ ÏÎÏÎÎÎÎÎÎÎ, ÏÎÏÏ, ÎÎ "
+"ÎÏÎÎÎÎÏÎÎÎÏÎÏÎÎ ÏÎ ÏÎÎÏÎ ÏÎÎÏÎÎÎÎÎÏÎ."
 
-#: C/textview.vala.page:35(link) C/textview.js.page:257(link)
-msgid "Gtk.TextView"
-msgstr "Gtk.TextView"
+#: C/image-viewer.js.page:218(section/p)
+msgid ""
+"Let's add the box and widgets to the window. Insert the following code into "
+"the <code>_init</code> method, immediately above the <code>this.window.show</"
+"code> line:"
+msgstr ""
+"ÎÏ ÏÏÎÏÎÎÏÎÏÎÎ ÎÎÎ ÏÎÎÎÏÎÎ ÎÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÏÏÎ ÏÎÏÎÎÏÏÎ. ÎÏÎÏÎÎÏÏÎ ÏÎÎ "
+"ÏÎÏÎÎÎÏÏ ÎÏÎÎÎÎ ÏÏÎ ÎÎÎÎÎÎ <code>_init</code>, ÎÎÎÏÏÏ ÏÎÎÏ ÎÏÏ ÏÎ ÎÏÎÎÎÎ "
+"<code>this.window.show</code> line:"
 
-#: C/textview.vala.page:36(link) C/textview.js.page:255(link)
-#: C/scrolledwindow.vala.page:30(link)
-msgid "Gtk.ScrolledWindow"
-msgstr "Gtk.ScrolledWindow"
+#: C/image-viewer.js.page:219(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"var main_box = new Gtk.Box ({orientation: Gtk.Orientation.VERTICAL, spacing: 0});\n"
+"this.window.add (main_box);"
+msgstr ""
+"\n"
+"var main_box = new Gtk.Box ({orientation: Gtk.Orientation.VERTICAL, spacing: 0});\n"
+"this.window.add (main_box);"
 
-#: C/textview.vala.page:37(link)
-msgid "Gtk.WrapMode"
-msgstr "Gtk.WrapMode"
+#: C/image-viewer.js.page:222(section/p)
+msgid ""
+"The first line creates a <code>Gtk.Box</code> called <code>main_box</code> "
+"and sets two of its properties: the <code>orientation</code> is set to "
+"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 ""
+"Î ÏÏÏÏÎ ÎÏÎÎÎÎ ÎÎÎÎÎÏÏÎÎÎ ÎÎÎ <code>Gtk.Box</code> ÏÎÏ ÎÎÎÎÎÎÎÏÎÎ "
+"<code>main_box</code> ÎÎÎ ÎÏÎÎÎÎ ÎÏÎ ÎÏÏ ÏÎÏ ÎÎÎÏÏÎÏÎÏ ÏÎÏ: ÏÎÎ "
+"<code>orientation</code> ÏÎÏ ÏÏÎÎÎÎÎÏÎÎ ÏÏÎ ÎÎÎÎÏÎ (ÎÏÏÏÎ ÏÎ ÎÏÎÏÎÎÎ "
+"ÏÏÏÏÎÏÎÎÎ ÏÎÎÏÎÏÎÎÎÏÎÏÎÎ ÏÎ ÏÏÎÎÎ), ÎÎÎ ÏÎ <code>spacing</code> ÎÎÎÎÎÏÎ ÏÏÎ "
+"ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÏÎÏ ÎÏÎÎ ÏÏÎÎÎÏÏÎÎ ÏÏÎ 0 ÎÎÎÎÎÎÏÏÎÎÏÎÎÎ. Î ÎÏÏÎÎÎÎ ÎÏÎÎÎÎ "
+"ÎÏÎÎÏÎ ÏÏÎÏÎÎÏÎÎ ÏÏÎ ÏÎÏÎÎÏÏÎ ÏÎ ÎÎÎÎÎÎÎÎÏÏÎÎÎÎÎÎ <code>Gtk.Box</code>."
 
-#: C/textview.vala.page:38(link) C/scrolledwindow.vala.page:31(link)
-msgid "Gtk.PolicyType"
-msgstr "Gtk.PolicyType"
+#: C/image-viewer.js.page:223(section/p) C/image-viewer.py.page:141(section/p)
+msgid ""
+"So far the window only contains an empty <code>Gtk.Box</code>, and if you "
+"run the program now you will see no changes at all (the <code>Gtk.Box</code> "
+"is a transparent container, so you can't see that it's there)."
+msgstr ""
+"ÎÎÏÏÎ ÏÏÎÎÎÎÏ ÏÎ ÏÎÏÎÎÏÏÎ ÏÎÏÎÎÏÎÎ ÎÏÎÎ ÎÎÎ ÎÎÎÎÎ <code>Gtk.Box</code> ÎÎÎ "
+"ÎÎÎ ÎÎÏÎÎÎÏÎÏÎ ÏÏÏÎ ÏÎ ÏÏÏÎÏÎÎÎÎ ÎÎ ÎÎ ÎÎÎÏÎ ÎÎÎÎÎ ÎÏÎÎÏÏÏÏ ÎÎÎÎÎÎ (ÏÎ "
+"<code>Gtk.Box</code> ÎÎÎÎÎ ÎÎÎÏ ÎÎÎÏÎÎÎÏ ÏÎÏÎÎÎÏÎÏ, ÎÏÏÏÎ ÎÎÎ ÎÏÎÏÎÎÏÎ ÎÎ "
+"ÎÎÎÏÎ ÏÏÎ ÎÎÎÎÎ ÎÎÎÎ)."
 
-#: C/textview.py.page:7(title)
-msgid "TextView (Python)"
-msgstr "TextView (Python)"
+#: C/image-viewer.js.page:227(section/title)
+#: C/image-viewer.py.page:145(section/title)
+msgid "Packing: Adding widgets to the container"
+msgstr "ÎÏÏÎÎÏÎÏÎÎ: ÎÏÏÏÎÎÏÎ ÎÏÎÏÎÎÏÎ ÏÏÏÏÎÏÎÎÏÎ ÏÏÎÎ ÏÎÏÎÎÎÏÎ"
 
-#: C/textview.py.page:25(desc)
-msgid "Widget that displays a GtkTextBuffer"
-msgstr "ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÏÎÏ ÎÎÏÎÎÎÎÎÎ ÎÎÎ GtkTextBuffer"
+#: C/image-viewer.js.page:228(section/p)
+msgid ""
+"To add some widgets to the <code>Gtk.Box</code>, insert the following code "
+"directly below the <code>this.window.add (main_box)</code> line:"
+msgstr ""
+"ÎÎÎ ÎÎ ÏÏÎÏÎÎÏÎÏÎ ÎÎÏÎÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÏÏÎ <code>Gtk.Box</code>, "
+"ÎÎÏÎÎÎÏÎ ÏÎÎ ÎÎÏÎÎÏÎÎ ÎÏÎÎÎÎ ÎÎÏÎÎÏÏ ÎÎÏÏ ÎÏÏ ÏÎÎ ÎÏÎÎÎÎ <code>this.window."
+"add (main_box)</code>:"
 
-#: C/textview.py.page:28(title) C/textview.js.page:24(title)
-msgid "TextView"
-msgstr "TextView"
+#: C/image-viewer.js.page:229(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"this.image = new Gtk.Image ();\n"
+"main_box.pack_start (this.image, true, true, 0);"
+msgstr ""
+"\n"
+"this.image = new Gtk.Image ();\n"
+"main_box.pack_start (this.image, true, true, 0);"
 
-#: C/textview.py.page:30(p)
-msgid "This is an example of Gtk.TextView."
-msgstr "ÎÏÏÏ ÎÎÎÎÎ ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ ÏÎÏ Gtk.TextView."
+#: C/image-viewer.js.page:232(section/p)
+msgid ""
+"The first line creates a new <code>Gtk.Image</code> called <code>image</"
+"code>, which will be used to display an image file. Then, the image widget "
+"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 ""
+"Î ÏÏÏÏÎ ÎÏÎÎÎÎ ÎÎÎÎÎÏÏÎÎÎ ÎÎÎ ÎÎÎÎÎÏÏÎÎÎ <code>Gtk.Image</code> ÏÎÏ "
+"ÎÎÎÎÎÎÎÏÎÎ <code>image</code>, ÏÎ ÎÏÎÎÎ ÎÎ ÎÎÏÎÎÎÎÎÎ ÎÎÎ ÎÏÏÎÎÎ ÎÎÎÏÎÎÏ. "
+"ÎÏÎÎÏÎ, ÏÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÎÎÏÎÎÏ ÏÏÎÏÏÎÎÎÏÎÎ (<em>ÏÎÎÎÏÎÏÎÏÎÎÎÎ</em>) "
+"ÏÏÎÎ ÏÎÏÎÎÎÏÎ <code>main_box</code> ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ ÎÎÎÎÎÎ ÏÎÏ <code>Gtk."
+"Box</code> <link href=\"http://library.gnome.org/devel/gtk/stable/GtkBox.";
+"html#gtk-box-pack-start\"><code>pack_start</code></link>."
 
-#: C/textview.py.page:32(p)
+#: C/image-viewer.js.page:233(section/p)
 msgid ""
-"But we can also have a new line if we write a long sentence (the text will "
-"wrap breaking lines between words)."
+"<code>pack_start</code> takes 4 arguments: the widget that is to be added to "
+"the <code>Gtk.Box</code> (<code>child</code>); whether the <code>Gtk.Box</"
+"code> should grow larger when the new widget is added (<code>expand</code>); "
+"whether the new widget should take up all of the extra space created if the "
+"<code>Gtk.Box</code> gets bigger (<code>fill</code>); and how much space "
+"there should be, in pixels, between the widget and its neighbors inside the "
+"<code>Gtk.Box</code> (<code>padding</code>)."
 msgstr ""
-"ÎÎÎÎ ÎÏÎÏÎÏÎÎ ÎÏÎÏÎÏ ÎÎ ÎÏÎÏÎÎ ÎÎÎ ÎÎÎ ÎÏÎÎÎÎ ÎÎÎ ÎÏÎÏÎÏÎÎ ÎÎÎ ÎÎÎÎÎÎ "
-"ÏÏÏÏÎÏÎ (ÏÎ ÎÎÎÎÎÎÎ ÎÎ ÎÎÎÎÎÏÎÏÎÎÎ ÎÎÎÎÏÏÏÎÎÏÎÏ ÏÎÏ ÎÏÎÎÎÎÏ ÎÎÏÎÎÏ ÏÏÎ "
-"ÎÎÎÎÏÎ)."
-
-#: C/textview.py.page:33(p)
-msgid "If we have a loooooooooooooooooooooooooooooooooooong"
-msgstr "ÎÎÎ ÎÏÎÏÎÎ ÎÎÎ ÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎ"
-
-#: C/textview.py.page:34(p)
-msgid "(that was long)"
-msgstr "(ÏÎÏ ÎÏÎÎ ÎÎÎÎÎÎ)"
-
-#: C/textview.py.page:35(p)
-msgid "word, an horizontal scrollbar will appear."
-msgstr "ÎÎÎÎ, ÎÎÎ ÎÏÎÎÏÎÏÎÎ ÎÏÎÎÎÎ ÎÏÎÎÏÎÏ ÎÎ ÎÎÏÎÎÎÏÏÎÎ."
-
-#: C/textview.py.page:48(title)
-msgid "Useful methods for a TextView widget"
-msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ TextView"
+"ÎÎ <code>pack_start</code> ÏÎÎÏÎÎÎ 4 ÎÏÎÏÎÎÏÎ: ÏÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÏÎÏ "
+"ÏÏÎÏÏÎÎÎÏÎÎ ÏÏÎ <code>Gtk.Box</code> (<code>child</code>)Â ÎÎ ÏÎ <code>Gtk."
+"Box</code> ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎ ÏÏÎÎ ÏÏÎÏÏÎÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ "
+"(<code>expand</code>)Â ÎÎ ÏÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÎ ÎÏÏÎÏÎ ÎÎ ÎÎÎÏÏÎÎ ÏÎÎ "
+"ÏÎÎ ÎÎÎÎÎÏÎÎÎ ÏÏÏÎ ÎÎ ÎÎÎÎÎÏÏÎÎ ÏÎ <code>Gtk.Box</code> (<code>fill</code>)Â "
+"ÎÎÎ ÏÏÏÎÏ ÏÏÏÎÏ ÏÏÎÏÎÎ ÎÎ ÏÏÎÏÏÎÎ, ÏÎ ÎÎÎÎÎÎÏÏÎÎÏÎÎÎ, ÎÎÎÎÎÏÎ ÏÏÎ ÎÏÎÏÎÎÏ "
+"ÏÏÏÏÎÏÎÎÏ ÎÎÎ ÏÏÎÏÏ ÎÎÎÏÎÎÎÏ ÏÎÏ ÎÎÏÎ ÏÏÎ <code>Gtk.Box</code>, "
+"(<code>padding</code>)."
 
-#: C/textview.py.page:49(p) C/label.py.page:69(p)
+#: C/image-viewer.js.page:234(section/p) C/image-viewer.py.page:153(section/p)
 msgid ""
-"An explanation of how to deal with strings and Unicode (and a recap of what "
-"these things are) can be found <link xref=\"strings.py.page\">here</link>."
+"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 ""
-"ÎÎÎ ÎÎÎÎÎÏÎ ÏÏÏ ÎÎ ÎÎÏÎÎÎÏÏÏÎÏÎÏÎ ÏÎÏ ÏÏÎÎÎÎÎÏÎÎÏÎÏ ÎÎÎ Unicode (ÎÎÎ ÎÎÎ "
-"ÎÎÎÎÎÏÎÎÎÎÏÏÎ ÏÎÏ ÏÎ ÎÏÏÎ ÏÎ ÏÏÎÎÎÎÏÎ ÎÎÎÎÎ) ÎÏÎÏÎÎ ÎÎ ÎÏÎÎÎÎ <link xref="
-"\"strings.py.page\">ÎÎÏ</link>."
+"ÎÎ ÏÎÏÎÎÎÏÎÏ (ÎÎÎ ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ) ÏÎÏ Gtk ÎÏÎÎÏÎÎÎÎÎÏÎÎ ÎÏÎÎÎÎÎÎ ÎÎÎ "
+"ÎÎ ÎÎÎÏÏÎÏÎ ÏÎÎ ÎÎÎÎÎÏÎÎÎ ÏÏÏÎ, ÎÎ ÏÎ ÎÏÎÏÎÏÎ. ÎÎÎ ÏÎÏÎÎÎÏÎÎÏÎ ÏÎ ÎÏÎÏÎÎÎ "
+"ÏÏÏÏÎÏÎÎÎ ÎÎÎÎÎÏÎÏ ÏÎÏÏ ÎÎÏÎÎÎÎÏ ÎÎÏÎÎÏ x, y-ÏÏÎÏÎÏÎÎÎÎÎÏÎ ÏÏÎ ÏÎÏÎÎÏÏÎÂ "
+"ÎÎÎÎ, ÏÎÏÎÎÎÏÎÏÎÏÎÎ ÏÏÎÏÎÎÎ ÎÎÏÎÎÏ ÏÎÏÏ. ÎÏÏÏ ÎÎÎÎÎ ÏÎ ÏÎÎÏÎÏÎÏ ÏÎÏ ÎÎÎÎÎÎÏ "
+"ÏÎÏ ÎÎÎÎÎÎÏÏ ÏÎÏ ÏÎÏÎÎÏÏÎÏ ÏÎÎ ÎÏÎÎÎÎ ÎÎÎ ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÏÏÎÏÎÎ ÎÎ "
+"ÏÎÏÎÏÎ ÎÏÏÏÎÎÏÎ ÎÎÎ ÎÎÎÎÎÏ ÎÎÎÎÎÎÏ ÏÏÎÏ ÏÎÏÎÏÏÏÏÎÏÎÏ ÏÎÏÎÏÏÏÏÎÎÏ."
 
-#: C/textview.py.page:50(p)
+#: C/image-viewer.js.page:235(section/p) C/image-viewer.py.page:154(section/p)
 msgid ""
-"A <code>Gtk.TextView</code> displays the text stored in a <code>Gtk."
-"TextBuffer</code>. However, most text manipulation is accomplished with "
-"iterators, represented by a <code>Gtk.TextIter</code> - a position between "
-"two characters in the text buffer. Iterators are not valid indefinitely; "
-"whenever the buffer is modified in a way that affects the contents of the "
-"buffer, all outstanding iterators become invalid. Because of this, iterators "
-"canât be used to preserve positions across buffer modifications. To preserve "
-"a position, we use a <code>Gtk.TextMark</code>, that can be set visible with "
-"<code>visible(True)</code>. A text buffer contains two built-in marks; an "
-"\"insert\" mark (the position of the cursor) and the \"selection_bound\" "
-"mark."
+"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 ""
-"ÎÎÎ <code>Gtk.TextView</code> ÎÎÏÎÎÎÎÎÎ ÏÎ ÎÏÎÎÎÎÎÏÎÎÎÎ ÎÎÎÎÎÎÎ ÏÎ ÎÎÎ "
-"<code>Gtk.TextBuffer</code>. ÎÎÏÏ, Î ÏÎÏÎÏÏÏÏÎÏÎ ÎÏÎÎÎÏÎÎÏÎÎ ÏÎÏ ÎÎÎÎÎÎÎÏ "
-"ÏÏÎÎÎÎÏÎÏÎÎÎÎÏÎÎ ÎÎ ÎÏÎÎÎÎÎÏÏÎÏ, ÎÎÏÎÏÏÎÏÏÏÎÏÏÎÎÎÎÎ ÎÏÏ ÎÎÎ <code>Gtk."
-"TextIter</code> - ÎÎÎ ÎÎÏÎ ÎÎÏÎÎÏ ÎÏÎ ÏÎÏÎÎÏÎÏÏÎ ÏÏÎÎ ÎÎÎÎÎÎÎÏÎ ÎÎÎÎÎ ÏÎÏ "
-"ÎÎÎÎÎÎÎÏ. ÎÎ ÎÏÎÎÎÎÎÏÏÎÏ ÎÎÎ ÎÎÎÎÎ ÎÎÎÏÏÎÎ ÎÏ' ÎÏÎÎÏÎÂ ÏÏÎÏÎ Î ÎÎÎÎÎÎÎÏÎ "
-"ÎÎÎÎÎ ÏÏÎÏÎÏÎÎÎÎÏÎÎ ÎÎ ÏÏÏÏÎ ÏÎÏ ÎÏÎÏÎÎÎÎÎ ÏÎ ÏÎÏÎÎÏÏÎÎÎÎ ÏÎÏ ÏÏÎÎÎÏÏÎÎÎÏ "
-"ÎÎÎÎÎÏ, ÏÎÎÎ ÎÎ ÎÎÎÏÎÎÎÎÏ ÎÏÎÎÎÎÎÏÏÎÏ ÎÎÎÎÎÏÎÎ ÎÎÏÏÎÎ. ÎÏÎÏ ÎÏÏÎÏ, ÎÎ "
-"ÎÏÎÎÎÎÎÏÏÎÏ ÎÎÎ ÎÏÎÏÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÎÏÎ ÎÎÎ ÎÎ ÎÎÎÏÎÏÎÏÎÏÎ ÏÎÏ ÎÎÏÎÎÏ ÎÎ "
-"ÏÎÏ ÏÏÎÏÎÏÎÎÎÏÎÎÏ ÏÎÏ ÎÎÎÎÎÎÎÏÎÏ ÎÎÎÎÎÏ. ÎÎÎ ÎÎ ÎÎÎÏÎÏÎÏÎÏÎ ÎÎÎ ÎÎÏÎ, "
-"ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÎÎÎ <code>Gtk.TextMark</code>, ÏÎÏ ÎÏÎÏÎÎ ÎÎ ÎÏÎÏÏÎÎ ÎÏÎÏÏ ÎÎ "
-"<code>visible(True)</code>. ÎÎÎ ÎÎÎÎÎÎÎÏÎ ÎÎÎÎÎ ÎÎÎÎÎÎÎÏ ÏÎÏÎÎÏÎÎ ÎÏÎ "
-"ÎÎÏÏÎÎÏÏÎÎÎÎ ÏÎÎÎÎÎÎÂ ÎÎÎ ÏÎÎÎÎÎ \"ÎÎÏÎÎÏÎÎÏ\" (Î ÎÎÏÎ ÏÎÏ ÎÏÎÎÎÎ) ÎÎÎ ÏÎ "
-"ÏÎÎÎÎÎ \"ÎÎÏÎÎÏÏÎ_ÎÏÎÎÎÎÎÏ\"."
+"ÎÏÎÏÎÏ ÏÎÎÎÎÏÏÏÎ ÏÏÏ ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÏÎÎÎÏÎÎÎÏÎÎ ÏÎ ÎÎÎ ÎÎÏÎÏÏÎÎ. "
+"ÎÏÎÎÏ ÏÎÎÎÏÎÏÎÏÏÎÏÎ ÎÎÏÎ ÏÏÎ <code>Gtk.Box</code>, ÏÎ <code>Gtk.Image</code> "
+"ÎÎÏÏÎÎÏÎÎ <em>ÎÏÎÎÏÏÎÎÏ</em> ÏÎÏ <code>Gtk.Box</code>. ÎÏÏÏ ÎÏÎÏÏÎÏÎÎ ÎÎ "
+"ÏÏÎÏÎÏÎÏÎÏÎÎÏÎÎ ÏÎ ÏÎÎ ÏÎ ÎÏÎÎÏÏÎÎÎ ÎÎÏÏ ÎÏÎÏÎÎÎÏ ÏÏÎÎÏÎÎÎÏ ÏÏ ÎÎÎ ÎÎÎÎÎÂ "
+"ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ, ÎÏÎÏÎÎÏÎ ÎÎ ÎÏÏÏÎÏÎ ÏÎ <code>Gtk.Box</code>, ÏÎÏ ÎÎ ÎÏÏÏÎÎ "
+"ÎÏÎÏÎÏ ÏÎÎ ÏÎ ÎÏÎÎÏÏÎÎÎ ÏÎÏ ÏÎÏÏÏÏÏÎÎÎ."
 
-#: C/textview.py.page:51(p)
-msgid "Methods for a TextView widget:"
-msgstr "ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ TextView:"
+#: C/image-viewer.js.page:236(section/p) C/image-viewer.py.page:155(section/p)
+msgid "Now insert these two lines, below the two you just added:"
+msgstr ""
+"ÎÏÏÎ ÏÏÎÏÎÎÏÏÎ ÎÏÏÎÏ ÏÎÏ ÎÏÎ ÎÏÎÎÎÎÏ, ÎÎÏÏ ÎÏÏ ÎÏÏÎÏ ÏÎÏ ÎÏÎÎÏ ÏÏÎÏÎÎÏÎÏÎ:"
 
-#: C/textview.py.page:53(p)
+#: C/image-viewer.js.page:237(section/code)
+#, no-wrap
 msgid ""
-"The TextView widget is by default editable. If you prefer otherwise, use "
-"<code>set_editable(False)</code>. If the buffer has no editable text, it "
-"might be a good idea to use <code>set_cursor_visible(False)</code> as well."
+"\n"
+"var open_button = new Gtk.Button ({label: \"Open a picture...\"});\n"
+"main_box.pack_start (open_button, false, false, 0);"
 msgstr ""
-"ÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ TextView ÎÎÎÎÎ ÎÏÏ ÏÏÎÎÏÎÎÎÎÎ ÎÏÎÎÎÏÎÎÏÎÎÎ. ÎÎÎ "
-"ÏÏÎÏÎÎÎÏÎ ÎÎÎÎÏÏ, ÏÏÎÏÎÎÎÏÎÎÎÏÏÎ <code>set_editable(False)</code>. ÎÎÎ Î "
-"ÎÎÎÎÎÎÎÏÎ ÎÎÎÎÎ ÎÎÎ ÎÏÎÎ ÎÏÎÎÎÏÎÎÏÎÎÎ ÎÎÎÎÎÎÎ, ÎÏÏÏ ÎÎ ÎÎÎÎÎ ÎÎÎ ÎÎÎÎ ÎÎÎÎ "
-"ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ <code>set_cursor_visible(False)</code> ÎÏÎÏÎÏ."
+"\n"
+"var open_button = new Gtk.Button ({label: \"Open a picture...\"});\n"
+"main_box.pack_start (open_button, false, false, 0);"
 
-#: C/textview.py.page:54(p)
+#: C/image-viewer.js.page:240(section/p)
 msgid ""
-"The justification of the text is set with <code>set_justification(Gtk."
-"Justification.JUSTIFICATION)</code> where <code>JUSTIFICATION</code> is one "
-"of <code>LEFT, RIGHT, CENTER, FILL</code>."
+"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 ""
-"Î ÏÏÎÎÏÎÏÎ ÏÎÏ ÎÎÎÎÎÎÎÏ ÎÏÎÎÎÏÎÎ ÎÎ <code>set_justification(Gtk."
-"Justification.JUSTIFICATION)</code> ÏÏÎÏ <code>JUSTIFICATION</code> ÎÎÎÎÎ "
-"ÎÎÎ ÎÏÏ ÏÎ <code>LEFT, RIGHT, CENTER, FILL</code>."
+"ÎÏÏÎÏ ÎÎ ÎÏÎÎÎÎÏ ÎÎÎÎÎ ÏÎÏÏÎÎÎÎÏ ÎÎ ÏÎÏ ÎÏÎ ÏÏÏÏÎÏ, ÎÎÎÎ ÎÏÏÎ ÏÎ ÏÎÏÎ "
+"ÎÎÎÎÎÏÏÎÎÏÎ ÎÎÎ <code>Gtk.Button</code> ÎÎÎ ÏÎ ÏÏÎÏÎÎÏÎÏÎ ÏÏÎ "
+"<code>main_box</code>. ÎÎÎÎÎÏÏÏÎ ÏÏÎ ÎÏÎÎÎÏÎÎ ÏÎ ÏÏÎÏÎÎ <code>expand</code> "
+"(ÏÎ ÎÎÏÏÎÏÎ) ÏÏÎ <code>false</code> ÎÎÏ, ÎÎÏ ÎÎÏÎ ÎÏÎÏÏÎÎ ÏÎ <code>true</"
+"code> ÎÎÎ ÏÎ <code>Gtk.Image</code>. ÎÏÏÏ ÎÎ ÏÏÎÎÎÎÎÏÎÎ ÏÏÎÎ ÎÎÎÏÎÎ ÎÎ "
+"ÎÎÎÏÏÎÎ ÏÎÎ ÏÎ ÎÎÎÎÎÏÎÎÎ ÏÏÏÎ ÎÎÎ ÏÎ ÎÎÏÎÏÎ ÎÎ ÏÎÏÎÎ ÎÏÎÎ ÏÏÎ ÏÏÎÎÎÎÎÏÎÎ. "
+"ÎÏÎÎ ÎÎÎÎÏÏÎÏÎÎÎÏÎÏÎ ÏÎ ÏÎÏÎÎÏÏÎ, ÏÎ ÎÎÎÎÎÎÏ ÏÏÎ ÎÎÏÎÏÎÏÎ ÎÎ ÏÎÏÎÎÎÎÎÎÎ ÏÎ "
+"ÎÎÎÎ, ÎÎÏ ÏÎ ÎÎÎÎÎÎÏ ÏÎÏ ÎÎÎÏÎÎÏ ÎÎ ÎÏÎÎÎÎÎ, ÎÎÏÎÎÎÎÎÎÎÎÎÏÎÏ ÏÎÎ ÏÎ ÏÏÏÎÎÎÏÎ "
+"ÏÎÏÎÎÏÏÎ."
 
-#: C/textview.py.page:55(p)
+#: C/image-viewer.js.page:241(section/p)
 msgid ""
-"The line wrapping of the text is set with <code>set_wrap_mode(Gtk.WrapMode."
-"WRAP)</code> where <code>WRAP</code> is one of <code>NONE</code> (the text "
-"area is made wider), <code>CHAR</code> (break lines anywhere the cursor can "
-"appear), <code>WORD</code> (break lines between words), <code>WORD_CHAR</"
-"code> (break lines between words, but if that is not enough between "
-"characters)."
+"Finally, we must change the <code>this.window.show ();</code> line to read:"
 msgstr ""
-"Î ÎÎÎÎÎÏÎÏÏÎ ÎÏÎÎÎÎÏ ÏÎÏ ÎÎÎÎÎÎÎÏ ÎÏÎÎÎÏÎÎ ÎÎ <code>set_wrap_mode(Gtk."
-"WrapMode.WRAP)</code> ÏÏÎÏ <code>WRAP</code> ÎÎÎÎÎ ÎÎÎ ÎÏÏ <code>NONE</code> "
-"(Î ÏÎÏÎÎÏÎ ÏÎÏ ÎÎÎÎÎÎÎÏ ÎÎÎÎÏÎÎ ÏÎÎÏÏÏÎÏÎ), <code>CHAR</code> (Î ÎÎÎÎÎÎ "
-"ÎÏÎÎÎÏÎ ÎÏÎÏÎÎÏÎÏÎ Î ÎÏÎÎÎÎÏ ÎÏÎÏÎÎ ÎÎ ÎÎÏÎÎÎÏÏÎÎ), <code>WORD</code> "
-"(ÎÎÎÎÎÎ ÎÏÎÎÎÏÎ ÎÎÏÎÎÏ ÎÎÎÎÏÎ), <code>WORD_CHAR</code> (ÎÎÎÎÎÎ ÎÏÎÎÎÏÎ "
-"ÎÎÏÎÎÏ ÎÎÎÎÏÎ, ÎÎÎÎ ÎÎÎ ÎÏÏÏ ÎÎÎ ÎÎÎÎÎ ÎÏÎÎÏÏ ÎÎÏÎÎÏ ÏÎÏÎÎÏÎÏÏÎ)."
+"ÎÎÎÎÎÎ, ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎÎÏÎÎ ÏÎ ÎÏÎÎÎÎ <code>this.window.show ();</code> ÎÎÎ "
+"ÎÎ ÎÎÎÎÎÏÎÎ:"
 
-#: C/textview.py.page:57(p)
-msgid "Methods for a TextBuffer widget:"
-msgstr "ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ TextBuffer:"
+#: C/image-viewer.js.page:242(section/code)
+#, no-wrap
+msgid "this.window.show_all ();"
+msgstr "this.window.show_all ()Â"
 
-#: C/textview.py.page:59(p)
+#: C/image-viewer.js.page:243(section/p)
 msgid ""
-"<code>get_insert()</code> returns the <code>Gtk.TextMark</code> that "
-"represents the cursor, that is the insertion point."
+"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 ""
-"Î <code>get_insert()</code> ÎÏÎÏÏÏÎÏÎÎ ÏÎ <code>Gtk.TextMark</code> ÏÎÏ "
-"ÎÎÎÏÎÏÎÏÏÎ ÏÎÎ ÎÏÎÎÎÎ, ÏÎÏ ÎÎÎÎÎ ÏÎ ÏÎÎÎÎÎ ÎÎÏÎÎÏÎÎÏ."
+"ÎÏÏÏ ÎÎ ÎÎÏÎÎÎÏÎÎ ÏÎ ÎÏÎÎÏÏÎÎÏ ÏÎÏ ÏÎÏÎÎÏÏÎÏ Gtk ÎÎÎ ÏÎÎ ÏÎ ÎÏÎÎÏÏÎÎÎ ÏÎÏ "
+"ÎÎÎ ÏÎ ÎÏÎÎÏÏÎÎÎ ÏÏÎ ÎÏÎÎÏÏÎÎÏÎ ÏÎÏ Î.Î.Î. (ÎÎ ÎÏÎÎÏÏÎ ÏÏÎ ÏÎ ÎÏÎÏÎÎÎ "
+"ÏÏÏÏÎÏÎÎÎ Gtk ÎÏÏÎÎÎÏÎÎ ÏÎÎ ÎÏÏ ÏÏÎÎÏÎÎÎÎÎ)"
 
-#: C/textview.py.page:60(p)
+#: C/image-viewer.js.page:247(section/title)
+#: C/image-viewer.py.page:164(section/title)
 msgid ""
-"<code>get_selection_bound()</code> returns the <code>Gtk.TextMark</code> "
-"that represents the selection bound."
+"Loading the image: Connecting to the button's <code>clicked</code> signal"
 msgstr ""
-"Î <code>get_selection_bound()</code> ÎÏÎÏÏÏÎÏÎÎ ÏÎ <code>Gtk.TextMark</code> "
-"ÏÎÏ ÎÎÎÏÎÏÎÏÏÎ ÏÎÎ ÎÎÏÎÎÏÎÎÎÎ ÎÏÎÎÎÎÎ."
+"ÎÏÏÏÏÏÎ ÏÎÏ ÎÎÎÏÎÎÏ: ÎÏÎÎÎÏÎ ÏÏÎ ÏÎÎÎ ÏÎÏ ÎÎÏÎÏÎÎÏ <code>clicked</code>"
 
-#: C/textview.py.page:61(p)
+#: C/image-viewer.js.page:248(section/p)
 msgid ""
-"<code>set_text(\"some text\", length)</code> where <code>length</code> is a "
-"positive integer or <code>-1</code>, sets the content of the buffer as the "
-"first <code>length</code> characters of the <code>\"some text\"</code> text. "
-"If <code>length</code> is omitted or <code>-1</code>, the text is inserted "
-"completely. The content of the buffer, if there is any, is destroyed."
+"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 ""
-"Î <code>set_text(\"some text\", length)</code> ÏÏÎÏ <code>length</code> "
-"ÎÎÎÎÎ ÎÎÎÏ ÎÎÏÎÎÏÏ ÎÎÎÏÎÎÎÏ Î <code>-1</code>, ÎÏÎÎÎÎ ÏÎ ÏÎÏÎÎÏÏÎÎÎÎ ÏÎÏ "
-"ÎÎÎÎÎÎÎÏÎÏ ÎÎÎÎÎÏ ÏÏ ÏÎÏÏ ÏÏÏÏÎÏÏ ÏÎÏÎÎÏÎÏÎÏ <code>length</code> ÏÎÏ "
-"ÎÎÎÎÎÎÎÏ <code>\"some text\"</code>. ÎÎÎ ÏÎ <code>length</code> ÏÎÏÎÎÎÎÏÎÏÎÎ "
-"Î <code>-1</code>, ÏÎ ÎÎÎÎÎÎÎ ÎÎÏÎÎÎÏÎÎ ÏÎÎÏÏÏ. ÎÎ ÏÎÏÎÎÏÏÎÎÎÎ ÏÎÏ "
-"ÎÎÎÎÎÎÎÏÎÏ ÎÎÎÎÎÏ, ÎÎÎ ÏÏÎÏÏÎÎ ÎÎÏÎÎÎ, ÎÎÏÎÏÏÏÎÏÎÏÎÎ."
+"ÎÏÎÎ Î ÏÏÎÏÏÎÏ ÏÎÏÎÏÎÎ ÏÏÎ ÎÎÏÎÏÎ <gui>ÎÎÎÎÎÎÎ</gui>, ÎÎÎÏ ÎÎÎÎÎÎÎÏ ÎÎ "
+"ÎÎÏÎÎÎÏÏÎÎ ÎÏÏÎ ÏÏÏÎ Î ÏÏÎÏÏÎÏ ÎÎ ÎÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎÏÎÎ. ÎÏÎÎÏ ÎÎÎÎÎÎÎÎ, Î "
+"ÎÎÎÏÎÎ ÎÎ ÏÎÏÏÏÎÎÎ ÎÎÎ ÎÎ ÎÎÏÎÎÎÏÏÎÎ ÏÏÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÏÎÏ ÎÎÎÏÎÎÏ."
 
-#: C/textview.py.page:62(p)
+#: C/image-viewer.js.page:249(section/p)
 msgid ""
-"<code>insert(iter, \"some text\", length)</code> where <code>iter</code> is "
-"a text iterator and <code>length</code> is a positive integer or <code>-1</"
-"code>, inserts in the buffer at <code>iter</code> the first <code>length</"
-"code> characters of the <code>\"some text\"</code> text. If <code>length</"
-"code> is omitted or <code>-1</code>, the text is inserted completely."
+"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 ""
-"Î <code>insert(iter, \"some text\", length)</code> ÏÏÎÏ <code>iter</code> "
-"ÎÎÎÎÎ ÎÎÎÏ ÎÏÎÎÎÎÎÏÏÎÏ ÎÎÎÎÎÎÎÏ ÎÎÎ <code>length</code> ÎÎÎÎÎ ÎÎÎÏ ÎÎÏÎÎÏÏ "
-"ÎÎÎÏÎÎÎÏ Î <code>-1</code>, ÎÎÏÎÎÎÎ ÏÏÎÎ ÎÎÎÎÎÎÎÏÎ ÎÎÎÎÎ ÏÏÎ <code>iter</"
-"code> ÏÎÏÏ ÏÏÏÏÎÏÏ ÏÎÏÎÎÏÎÏÎÏ <code>length</code> ÏÎÏ ÎÎÎÎÎÎÎÏ <code>\"some "
-"text\"</code>. ÎÎÎ ÏÎ <code>length</code> ÏÎÏÎÎÎÏÎÎÎ Î <code>-1</code>, ÏÎ "
-"ÎÎÎÎÎÎÎ ÎÎÏÎÎÎÏÎÎ ÏÎÎÏÏÏ."
+"ÎÎ ÏÏÏÏÎ ÎÎÎÎ ÎÎÎÎÎ ÎÎ ÏÏÎÎÎÏÎÏÎÎ ÏÎ ÏÎÎÎ <code>clicked</code> ÏÎÏ ÎÎÏÎÏÎÎÏ "
+"ÎÎ ÎÎÎ ÏÏÎÎÏÏÎÏÎ ÏÎÎÏÎÏÏÎ ÏÎÎÎÏÏÎ, ÏÎÎ ÎÏÎÎÎ ÎÎÎÎÏÎÎ ÎÎ <code>_openClicked</"
+"code>. ÎÎÎÏÎ ÎÏÏÏÎ ÏÎÎ ÎÏÎÎÎÎ ÎÎÎÏÏÏ ÎÎÏÎ ÏÎÎ ÎÏÎÎÎÎ <code>var open_button = "
+"new Gtk.Button</code> ÏÏÎÏ ÏÎ ÎÎÏÎÏÎ ÎÎÎÎÎÏÏÎÎÎÎÎÎ:"
 
-#: C/textview.py.page:63(p)
+#: C/image-viewer.js.page:250(section/code)
+#, no-wrap
 msgid ""
-"<code>insert_at_cursor(\"some text\", length)</code> does the same as "
-"<code>insert(iter, \"some text\", length)</code>, with the current cursor "
-"taken as <code>iter</code>."
+"\n"
+"open_button.connect (\"clicked\", Lang.bind (this, this._openClicked));"
 msgstr ""
-"Î <code>insert_at_cursor(\"some text\", length)</code> ÎÎÎÎÎ ÏÎ ÎÎÎÎ ÎÎ ÏÎÎ "
-"<code>insert(iter, \"some text\", length)</code>, ÎÎ ÏÎÎ ÏÏÎÏÎÎÏÎ ÎÏÎÎÎÎ ÎÎ "
-"ÎÎÎÎÎÎÎÏÎÎ ÏÏ <code>iter</code>."
+"\n"
+"open_button.connect (\"clicked\", Lang.bind (this, this._openClicked));"
 
-#: C/textview.py.page:64(p)
+#: C/image-viewer.js.page:252(section/p)
 msgid ""
-"<code>create_mark(\"mark_name\", iter, left_gravity)</code> where "
-"<code>iter</code> is a <code>Gtk.TextIter</code> and <code>left_gravity</"
-"code> is a boolean, creates a <code>Gtk.TextMark</code> at the position of "
-"<code>iter</code>. If <code>\"mark_name\"</code> is <code>None</code>, the "
-"mark is anonymous; otherwise, the mark can be retrieved by name using "
-"<code>get_mark()</code>. If a mark has left gravity, and text is inserted at "
-"the markâs current location, the mark will be moved to the left of the newly-"
-"inserted text. If <code>left_gravity</code> is omitted, it defaults to "
-"<code>False</code>."
+"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 ""
-"Î <code>create_mark(\"mark_name\", iter, left_gravity)</code> ÏÏÎÏ "
-"<code>iter</code> ÎÎÎÎÎ ÎÎÎ <code>Gtk.TextIter</code> ÎÎÎ "
-"<code>left_gravity</code> ÎÎÎÎÎ ÏÎÎÎ ÎÏÎÏÎ, ÎÎÎÎÎÏÏÎÎÎ ÎÎÎ <code>Gtk."
-"TextMark</code> ÏÏÎ ÎÎÏÎ ÏÎÏ <code>iter</code>. ÎÎÎ <code>\"mark_name\"</"
-"code> ÎÎÎÎÎ <code>None</code>, ÏÎ ÏÎÎÎÎÎ ÎÎÎÎÎ ÎÎÏÎÏÎÎÂ ÎÎÎÎÏÏ, ÏÎ ÏÎÎÎÎÎ "
-"ÎÏÎÏÎÎ ÎÎ ÎÎÎÎÏÎÎÎÎ ÎÎÏÎ ÏÎÎÎÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ <code>get_mark()</code>. ÎÎÎ "
-"ÎÎÎ ÏÎÎÎÎÎ ÎÏÎÎ ÏÏÎÎÎÎÏÏÎÎÎÎ ÎÎÏÏÏÎÏÎ ÎÎÎ ÏÎ ÎÎÎÎÎÎÎ ÎÎÏÎÎÎÏÎÎ ÏÏÎÎ ÏÏÎÏÎÏÏÎ "
-"ÎÎÏÎ ÏÎÏ ÏÎÎÎÎÎÎÏ, ÏÎ ÏÎÎÎÎÎ ÎÎ ÎÎÏÎÎÎÎÎÎÎÎ ÏÏÎ ÎÏÎÏÏÎÏÎ ÏÎÏ ÎÎÎÎÎÏÎÎÎÎÎÎÏ "
-"ÎÎÎÎÎÎÎÏ. ÎÎÎ Î <code>left_gravity</code> ÏÎÏÎÎÎÏÎÎÎ, ÏÏÎÎÏÎÎÎÎÎÏÎÎ ÏÎ "
-"<code>False</code>."
+"ÎÏÎÏÎÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÎÎÎÏ <em>Lang</em> JavaScript ÎÎÏ. ÎÏÎÏÏÎÏÎÎ ÏÎ ÏÏÎÎÎÏÎ "
+"ÎÎÎÏ <em>ÎÎÎÏÎÎÏ ÎÎÎÏÎÏ</em> ÎÎ ÏÎ ÏÎÎÎ, ÎÎÏÎ ÎÎÎ ÎÏÎÎ ÏÏÎÎÏÏÎÏÎ (ÏÏÏÎÏ "
+"ÎÎÎÏÎ) ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎÎ ÏÏÎÎ ÎÎÎ ÏÎ ÏÎÎÎ ÏÎÏ ÏÎÏÎÎÏÏÎÏ <code>hide</code>. "
+"ÎÎÎ ÎÎÎÏÏÏÎÎÏÎ ÎÎÎ ÎÏÏÏ ÎÎÎ ÏÏÏÎ, ÎÎÎÎÎ ÎÏÎÎ ÎÎÎ ÏÎÏÎÎÎÎ ÎÎÏÏÎÎÎÏÎÎÎ. ÎÎÎ ÎÎ "
+"ÎÎÏÎÎÏÎÎ ÏÏÎÎÎÎÏÏÎÏÏÎ ÎÏÎÏÎÏ ÎÎ ÎÎÎÎÏÎ ÏÎÎ ÏÎÏÎÎÎÏÏ ÎÏÎÎÎÎ ÏÏÎÎ ÎÎÏÏÏÎ ÏÎÏ "
+"ÎÏÏÎÎÎÏ:"
+
+#: C/image-viewer.js.page:253(section/code)
+#, no-wrap
+msgid "const Lang = imports.lang;"
+msgstr "const Lang = imports.langÂ"
+
+#: C/image-viewer.js.page:257(section/title)
+#: C/image-viewer.py.page:175(section/title)
+msgid "Loading the image: Writing the signal's callback"
+msgstr "ÎÏÏÏÏÏÎ ÏÎÏ ÎÎÎÏÎÎÏ: ÎÏÎÏÎÎÏÎÏ ÏÎÎ ÎÏÎÎÎÎÎÎÏÎ ÏÎÏ ÏÎÎÎÏÎÏ"
 
-#: C/textview.py.page:66(p)
+#: C/image-viewer.js.page:258(section/p)
 msgid ""
-"To specify that some text in the buffer should have specific formatting, you "
-"must define a tag to hold that formatting information, and then apply that "
-"tag to the region of text using <code>create_tag(\"tag name\", property)</"
-"code> and <code>apply_tag(tag, start_iter, end_iter)</code> as in, for "
-"instance:"
+"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 ""
-"ÎÎÎ ÎÎ ÎÏÎÏÎÏÎ ÏÏÎ ÎÎÏÎÎÎ ÎÎÎÎÎÎÎ ÏÏÎÎ ÎÎÎÎÎÎÎÏÎ ÎÎÎÎÎ ÏÏÎÏÎÎ ÎÎ ÎÏÎÎ ÎÎÎÎÎÎ "
-"ÎÎÏÏÎÏÎÎÎÏÎ, ÏÏÎÏÎÎ ÎÎ ÎÏÎÏÎÏÎ ÎÎÎ ÎÏÎÎÎÏÎ ÎÎ ÎÏÎÏÎÏÎÎ ÎÏÏÎÎ ÏÎÎ ÏÎÎÏÎÏÎÏÎÎ "
-"ÎÎÏÏÎÏÎÎÎÏÎÏ ÎÎÎ ÎÏÎÎÏÎ ÎÎ ÎÏÎÏÎÏÏÎÎ ÎÏÏÎÎ ÏÎÎ ÎÏÎÎÎÏÎ ÏÏÎÎ ÏÎÏÎÎÏÎ ÏÎÏ "
-"ÎÎÎÎÎÎÎÏ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ <code>create_tag(\"tag name\", property)</code> ÎÎÎ "
-"<code>apply_tag(tag, start_iter, end_iter)</code> ÏÏÏÏ ÏÏÎ, ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ:"
+"ÎÏÏÎ ÎÏÎÏÎÏÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ ÏÎ ÎÎÎÎÎÎ <code>_openClicked()</code>. "
+"ÎÎÏÎÎÎÏÎ ÏÎ ÎÎÏÎÎÏÎÎ ÏÏÎÎ ÎÎÎÎÎ ÎÏÎÎÎÎ <code>ImageViewer.prototype</code>, "
+"ÎÎÏÎ ÏÎ ÎÎÎÎÎÎ <code>_init</code> (ÎÎÎ ÎÎ ÎÎÏÎÏÎÏÎ ÏÎ ÎÏÎÎÎ):"
 
-#: C/textview.py.page:67(code)
+#: C/image-viewer.js.page:259(section/code)
 #, no-wrap
 msgid ""
 "\n"
-"tag = textbuffer.create_tag(\"orange_bg\", background=\"orange\")\n"
-"textbuffer.apply_tag(tag, start_iter, end_iter)"
+"  _openClicked: function () {\n"
+"    var chooser = new Gtk.FileChooserDialog ({title: \"Select an image\",\n"
+"                                              action: Gtk.FileChooserAction.OPEN,\n"
+"                                              transient_for: this.window,\n"
+"                                              modal: true});\n"
+"    chooser.add_button (Gtk.STOCK_CANCEL, 0);\n"
+"    chooser.add_button (Gtk.STOCK_OPEN, 1);\n"
+"    chooser.set_default_response (1);\n"
+"\n"
+"    var filter = new Gtk.FileFilter ();\n"
+"    filter.add_pixbuf_formats ();\n"
+"    chooser.filter = filter;\n"
+"\n"
+"    if (chooser.run () == 1)\n"
+"      this.image.file = chooser.get_filename ();\n"
+"\n"
+"    chooser.destroy ();\n"
+"  }"
 msgstr ""
 "\n"
-"tag = textbuffer.create_tag(\"orange_bg\", background=\"orange\")\n"
-"textbuffer.apply_tag(tag, start_iter, end_iter)"
+"  _openClicked: function () {\n"
+"    var chooser = new Gtk.FileChooserDialog ({title: \"Select an image\",\n"
+"                                              action: Gtk.FileChooserAction.OPEN,\n"
+"                                              transient_for: this.window,\n"
+"                                              modal: true});\n"
+"    chooser.add_button (Gtk.STOCK_CANCEL, 0);\n"
+"    chooser.add_button (Gtk.STOCK_OPEN, 1);\n"
+"    chooser.set_default_response (1);\n"
+"\n"
+"    var filter = new Gtk.FileFilter ();\n"
+"    filter.add_pixbuf_formats ();\n"
+"    chooser.filter = filter;\n"
+"\n"
+"    if (chooser.run () == 1)\n"
+"      this.image.file = chooser.get_filename ();\n"
+"\n"
+"    chooser.destroy ();\n"
+"  }"
 
-#: C/textview.py.page:70(p)
-msgid "The following are some of the common styles applied to text:"
+#: C/image-viewer.js.page:281(item/p)
+msgid ""
+"The line beginning with <code>var chooser</code> creates an <gui>Open</gui> "
+"dialog, which the user can use to choose files. We set four properties: the "
+"title of the dialog; the action (type) of the dialog (it's an \"open\" "
+"dialog, but we could have used <code>SAVE</code> if the intention was to "
+"save a file; <code>transient_for</code>, which sets the parent window of the "
+"dialog; and <code>modal</code> which, if set to <code>true</code>, prevents "
+"the user from clicking on another area of the application until the dialog "
+"is closed."
 msgstr ""
-"ÎÎ ÎÎÏÎÎÏÎÎ ÎÎÎÎÎ ÎÎÏÎÎÎÏ ÎÏÏ ÏÎÏ ÎÎÎÎÎÏ ÎÏÎÏÎÎÎÏÎÎÎÎÏ ÏÎÏÎÎÏÏÎÏÎÎÏ ÏÏÎ "
-"ÎÎÎÎÎÎÎ:"
-
-#: C/textview.py.page:72(p)
-msgid "Background colour (\"background\" property)"
-msgstr "ÎÏÏÎÎ ÏÎÏÎÏÎÎÎÎÎÏ (ÎÎÎÏÏÎÏÎ \"background\")"
-
-#: C/textview.py.page:73(p)
-msgid "Foreground colour (\"foreground\" property)"
-msgstr "ÎÏÏÎÎ ÏÏÎÏÎÎÎÎÎÏ (ÎÎÎÏÏÎÏÎ \"foreground\")"
-
-#: C/textview.py.page:74(p)
-msgid "Underline (\"underline\" property)"
-msgstr "ÎÏÎÎÏÎÎÎÎÏÎ (ÎÎÎÏÏÎÏÎ \"underline\")"
-
-#: C/textview.py.page:75(p)
-msgid "Bold (\"weight\" property)"
-msgstr "ÎÎÏÎÎÎ (ÎÎÎÏÏÎÏÎ \"weight\")"
-
-#: C/textview.py.page:76(p)
-msgid "Italics (\"style\" property)"
-msgstr "ÎÎÎÎÎÎ (ÎÎÎÏÏÎÏÎ \"style\")"
-
-#: C/textview.py.page:77(p)
-msgid "Strikethrough (\"strikethrough\" property)"
-msgstr "ÎÎÎÎÏÎÎÎÎÏÎ (ÎÎÎÏÏÎÏÎ \"strikethrough\")"
-
-#: C/textview.py.page:78(p)
-msgid "Justification (\"justification\" property)"
-msgstr "ÎÏÎÎÏÎÏÎ (ÎÎÎÏÏÎÏÎ \"justification\")"
-
-#: C/textview.py.page:79(p)
-msgid "Size (\"size\" and \"size-points\" properties)"
-msgstr "ÎÎÎÎÎÎÏ (ÎÎÎÏÏÎÏÎÏ \"size\" ÎÎÎ \"size-points\")"
-
-#: C/textview.py.page:80(p)
-msgid "Text wrapping (\"wrap-mode\" property)"
-msgstr "ÎÎÎÎÎÏÎÏÏÎ ÎÎÎÎÎÎÎÏ (ÎÎÎÏÏÎÏÎ \"wrap-mode\")"
+"Î ÎÏÎÎÎÎ ÏÎÏ ÎÎÎÎÎÎÎÎ ÎÎ <code>var chooser</code> ÎÎÎÎÎÏÏÎÎÎ ÎÎÎÎ ÎÎÎÎÎÎÎ "
+"<gui>ÎÎÎÎÎÎÎÏÎÏ</gui>, ÏÎÎ ÎÏÎÎÎ Î ÏÏÎÏÏÎÏ ÎÏÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÎÎÎ "
+"ÎÏÎÎÎÎÎ ÎÏÏÎÎÏÎ. ÎÏÎÎÎÏÎÎ ÏÎÏÏÎÏÎÏ ÎÎÎÏÏÎÏÎÏ: ÏÎÎ ÏÎÏÎÎ ÏÎÏ ÎÎÎÎÏÎÎÏÂ ÏÎÎ "
+"ÎÎÎÏÎÎÎÎ (ÏÏÏÎ) ÏÎÏ ÎÎÎÎÏÎÎÏ (ÎÎÎÎÎ ÎÎÎÎÎÎÎÏ \"open\", ÎÎÎÎ ÎÎ ÎÏÎÏÎÏÏÎÎÎ ÎÎ "
+"ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ <code>SAVE</code> ÎÎ Î ÏÏÏÎÎÏÎ ÎÏÎÎ ÎÎ ÎÏÎÎÎÎÎÏÏÎÏÎÎ ÎÎÎ "
+"ÎÏÏÎÎÎÂ <code>transient_for</code>, ÏÎÏ ÎÏÎÎÎÎ ÏÎ ÎÎÎÏÎ ÏÎÏÎÎÏÏÎ ÏÎÏ "
+"ÎÎÎÎÏÎÎÏÂ ÎÎÎ <code>modal</code> ÏÎÏ, ÎÎÎ ÎÏÎÏÏÎÎ <code>true</code>, "
+"ÎÏÎÏÏÎÏÎÎ ÏÎ ÏÏÎÏÏÎ ÎÏÏ ÎÎÎÎ ÏÎ ÎÎÎ ÎÎÎÎ ÏÎÏÎÎÏÎ ÏÎÏ ÎÏÎÏÎÎÎÎÏ ÎÎÏÏÎ ÏÎ "
+"ÎÎÎÎÏÎÎÎ ÏÎÏ ÎÎÎÎÏÎÎÏ."
 
-#: C/textview.py.page:82(p)
+#: C/image-viewer.js.page:284(item/p) C/image-viewer.py.page:198(item/p)
 msgid ""
-"You can also delete particular tags later using <code>remove_tag()</code> or "
-"delete all tags in a given region by calling <code>remove_all_tags()</code>."
+"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 ""
-"ÎÏÎÏÎÎÏÎ ÎÏÎÏÎÏ ÎÎ ÎÎÎÎÏÎÏÎÏÎ ÏÏÎÎÎÎÏÎÎÎÎÎÏ ÎÏÎÎÎÏÎÏ ÎÏÎÏÏÎÏÎ "
-"ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ <code>remove_tag()</code> Î ÎÎ ÎÎÎÎÏÎÏÎÏÎ ÏÎÎÏ ÏÎÏ ÎÏÎÎÎÏÎÏ "
-"ÏÎ ÎÎÎ ÎÎÎÎÎÎÎÎ ÏÎÏÎÎÏÎ ÎÎÎÏÎÏÎÏ <code>remove_all_tags()</code>."
+"ÎÎ ÎÏÏÎÎÎÎÏ ÎÏÎ ÎÏÎÎÎÎÏ ÏÏÎÏÎÎÏÎÏÎ ÏÎ ÎÎÏÎÏÎÎ <gui>Cancel</gui> ÎÎÎ "
+"<gui>Open</gui> ÏÏÎ ÎÎÎÎÎÎÎ. ÎÎ ÎÎÏÏÎÏÎ ÏÏÎÏÎÎ ÏÎÏ ÎÎÎÏÎÎÏ ÏÎÏ "
+"<code>add_button</code> ÎÎÎÎÎ Î (ÎÎÎÏÎÎÎ) ÏÎÎÎ ÏÎÏ ÎÏÎÏÏÏÎÏÎÎ ÏÏÎÎ ÏÎÏÎÎÏÎÎ "
+"ÏÎ ÎÎÏÎÏÎ: 0 ÎÎÎ ÏÎ <gui>ÎÎÏÏÏÏÎ</gui> ÎÎÎ 1 ÎÎÎ ÏÎ <gui>ÎÎÎÎÎÎÎ</gui>."
 
-#: C/textview.py.page:84(p)
-msgid "Methods for a TextIter widget"
-msgstr "ÎÎÎÎÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ TextIter"
+#: C/image-viewer.js.page:288(item/p) C/image-viewer.py.page:202(item/p)
+msgid ""
+"<code>set_default_response</code> determines the button that will be "
+"activated if the user double-clicks a file or presses <key>Enter</key>. In "
+"our case, we are using the <gui>Open</gui> button as default (which has the "
+"value 1)."
+msgstr ""
+"To <code>set_default_response</code> ÎÎÎÎÏÎÎÎÎ ÏÎÎÎ ÎÎÏÎÏÎ ÎÎ ÎÎÎÏÎÎÏÎÎÎÎÎÎ "
+"ÏÏÎÎ Î ÏÏÎÏÏÎÏ ÎÏÎÎÎÎÎÎ ÎÎÎ ÎÏÏÎÎÎ ÎÎ ÎÎÏÎÏ ÎÎÎÎ Î ÏÎÏÎÏÎÎ <key>Enter</key>. "
+"ÎÏÎÎ ÏÎÏÎÏÏÏÏÎ ÎÎÏ, ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÏÎ ÎÎÏÎÏÎ <gui>ÎÎÎÎÎÎÎ</gui> ÏÎÎ "
+"ÏÏÎÎÏÎÎÎÎÎÎÎÎ (ÏÎ ÎÏÎÎÎ ÎÏÎÎ ÏÎÎÎ 1)."
 
-#: C/textview.py.page:86(p)
+#: C/image-viewer.js.page:291(item/p) C/image-viewer.py.page:205(item/p)
 msgid ""
-"<code>forward_search(needle, flags, limit)</code> searches forward for "
-"<code>needle</code>. The search will not continue past the <code>Gtk."
-"TextIter</code> limit. The <code>flags</code> can be set to one of the "
-"following, or any combination of it by concatenating them with the bitwise-"
-"OR operator <code>|</code>: <code>0</code> (the match must be exact); "
-"<code>Gtk.TextSearchFlags.VISIBLE_ONLY</code> (the match may have invisible "
-"text interspersed in needle); <code>Gtk.TextSearchFlags.TEXT_ONLY</code> "
-"(the match may have pixbufs or child widgets mixed inside the matched "
-"range); <code>Gtk.TextSearchFlags.CASE_INSENSITIVE</code> (the text will be "
-"matched regardless of what case it is in). The method returns a tuple "
-"containing a <code>Gtk.TextIter</code> pointing to the start and to the "
-"first character after the match; if no match is found, <code>None</code> is "
-"returned."
+"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 ""
-"Î <code>forward_search(needle, flags, limit)</code> ÎÎÎÎÎÏÎ ÎÏÏÎÏÏÎ ÎÎÎ "
-"<code>needle</code>. Î ÎÎÎÎÎÏÎÏÎ ÎÎÎ ÎÎ ÏÏÎÎÏÎÏÎÎ ÏÎÏÎ ÎÏÏ ÏÎ ÏÏÎÎ <code>Gtk."
-"TextIter</code>. ÎÎ <code>flags</code> ÎÏÎÏÎÏÎ ÎÎ ÎÏÎÏÏÎÏÎ ÏÎ ÎÎÎ ÎÏÏ ÏÎ "
-"ÎÎÏÎÎÏÎÎ, Î ÎÏÎÎÎÎÎÎÏÎÏÎ ÏÏÎÎÏÎÏÎÏ ÏÎÏ ÏÏÎÎÎÏÎÎÎÏÎÏ ÏÎÏÏ ÎÎ ÏÎÎ ÏÎÎÎÏÏÎ OR "
-"<code>|</code>: <code>0</code> (Î ÏÏÎÏÏÎÎÎ ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎ ÎÎÏÎÎÎÏ)Â "
-"<code>Gtk.TextSearchFlags.VISIBLE_ONLY</code> (Î ÏÏÎÏÏÎÎÎ ÎÏÎÏÎÎ ÎÎ ÎÏÎÎ "
-"ÎÏÏÎÏÎ ÎÎÎÎÎÎÎ ÎÎÎÎÎÎÏÎÎÎÎ ÏÎ ÎÎÎÏÎÎ)Â <code>Gtk.TextSearchFlags.TEXT_ONLY</"
-"code> (Î ÏÏÎÏÏÎÎÎ ÎÏÎÏÎÎ ÎÎ ÎÏÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ pixbufs Î ÎÏÎÎÏÏÎÎÎ "
-"ÎÎÎÎÎÏÎÎÎÎÎ ÎÎÏÎ ÏÏÎÎ ÏÎÏÎÎÏÎ ÏÏÎÏÏÎÎÎÏ)Â ÏÎ <code>Gtk.TextSearchFlags."
-"CASE_INSENSITIVE</code> (ÏÎ ÎÎÎÎÎÎÎ ÎÎ ÏÎÎÏÎÎÎÎÎ ÎÎÎÎÎÏÏÎÏÎ ÎÏÏ ÎÎÏÎÎÎÎÎ/"
-"ÎÎÎÏÎ). Î ÎÎÎÎÎÎÏ ÎÏÎÏÏÏÎÏÎÎ ÎÎÎ ÏÎÎÎÎÎÎ ÏÎÏ ÏÎÏÎÎÏÎÎ ÎÎÎ <code>Gtk."
-"TextIter</code> ÏÎÏ ÎÎÎÏÎÎÎ ÏÏÎÎ ÎÏÏÎ ÎÎÎ ÏÏÎÎ ÏÏÏÏÎ ÏÎÏÎÎÏÎÏÎ ÎÎÏÎ ÏÎ "
-"ÏÏÎÏÏÎÎÎÂ ÎÎÎ ÎÎÎ ÎÏÎÎÎÎ ÏÏÎÏÏÎÎÎ, Î <code>None</code> ÎÏÎÏÏÏÎÏÎÏÎÎ."
+"ÎÎ ÎÏÏÎÎÎÎÏ ÏÏÎÎÏ ÎÏÎÎÎÎÏ ÏÎÏÎÎÏÎÎÎÏÎ ÏÎ ÎÎÎÎÎÎÎ <gui>ÎÎÎÎÎÎÎ</gui> ÎÎ "
+"ÎÎÏÎÎÎÎÎÎ ÎÏÎÎ ÎÏÏÎÎÎ ÏÎÏ ÎÏÎÏÎÏÎ ÎÎ ÎÎÎÎÏÎÎÏÎ ÎÏÏ ÏÎ <code>Gtk.Image</"
+"code>. ÎÎÎÎÎÏÏÎÎÏÎÎ ÏÏÏÏÎ ÎÎÎ ÎÎÏÎÎÎÎÎÎÎÎ ÏÎÎÏÏÎÏÂ ÏÏÎÏÎÎÏÎÏÎÎ ÏÏÎ ÏÎÎÏÏÎ "
+"ÏÎÏÎ ÏÏÎ ÎÎÎÏÎ ÎÏÏÎÎÎ ÏÎÏ ÏÏÎÏÏÎÏÎÎÎÎÏÎÎ ÎÏÏ ÏÎ <code>Gdk.Pixbuf</code> (ÏÎ "
+"ÎÏÎÎÎ ÏÎÏÎÎÏÎÎ ÏÎ ÏÎÏÎÏÏÏÏÎÏÎ ÎÎÎÎ ÎÎÎÏÎÏÎ ÏÏÏÏ PNG ÎÎÎ JPEG). ÎÎÎÎÏ, "
+"ÎÎÎÎÏÎÎÎÏÎÎ ÏÎ ÏÎÎÏÏÎ ÎÎ ÎÎÎÎÎ ÏÎ ÏÎÎÏÏÎ ÏÎÏ ÎÎÎÎÏÎÎÏ <gui>ÎÎÎÎÎÎÎ</gui>."
 
-#: C/textview.py.page:87(p)
+#: C/image-viewer.js.page:294(item/p)
 msgid ""
-"<code>backward_search(needle, flags, limit)</code> does the same as "
-"<code>forward_search()</code>, but moving backwards."
+"<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>backward_search(needle, flags, limit)</code> ÎÎÎÎÎ ÏÎ ÎÎÎÎ ÏÏÏÏ Î "
-"<code>forward_search()</code>, ÎÎÎÎ ÎÎÎÎÎÏÎÎ ÏÏÎÏ ÏÎ ÏÎÏÏ."
+"ÎÎ <code>dialog.run</code> ÎÎÏÎÎÎÎÎÎ ÏÎ ÎÎÎÎÎÎÎ <gui>ÎÎÎÎÎÎÎ</gui>. Î "
+"ÎÎÎÎÎÎÎÏ ÎÎ ÏÎÏÎÎÎÎÎÎ ÏÎÎ ÏÏÎÏÏÎ ÎÎ ÎÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎÏÎÎÂ ÏÏÎÎ ÎÎÎÎÎÎÎÎ, ÏÎ "
+"<code>chooser.run</code> ÎÎ ÎÏÎÏÏÏÎÏÎÎ ÏÎÎ ÏÎÎÎ <output>1</output> (ÎÎ "
+"ÎÏÎÏÏÏÎÏÎÎ <output>0</output> ÎÎ Î ÏÏÎÏÏÎÏ ÏÎÏÎÏÎÎ <gui>ÎÎÏÏÏÏÎ</gui>). Î "
+"ÏÏÏÏÎÏÎ <code>if</code> ÏÎ ÎÎÎÎÏÎÎ."
 
-#: C/textview.py.page:95(link) C/textview.c.page:38(link)
-#: C/filechooserdialog.py.page:74(link)
-msgid "GtkTextView"
-msgstr "GtkTextView"
+#: C/image-viewer.js.page:296(item/p) C/image-viewer.py.page:210(item/p)
+msgid ""
+"Assuming that the user did click <gui>Open</gui>, the next line sets the "
+"<code>file</code> property of the <code>Gtk.Image</code> to the filename of "
+"the image selected by the user. The <code>Gtk.Image</code> will then load "
+"and display the chosen image."
+msgstr ""
+"ÎÎ ÏÏÎÎÎÏÎÏÎÎ ÏÏÎ Î ÏÏÎÏÏÎÏ ÏÎÏÎÏÎ ÏÎ <gui>ÎÎÎÎÎÎÎ</gui>, Î ÎÏÏÎÎÎÎ ÎÏÎÎÎÎ "
+"ÎÏÎÎÎÎ ÏÎÎ ÎÎÎÏÏÎÏÎ <code>file</code> ÏÎÏ <code>Gtk.Image</code> ÏÏÎ ÏÎÎÎÎ "
+"ÏÎÏ ÎÏÏÎÎÎÏ ÎÎÎÏÎÎÏ ÏÎÏ ÎÏÎÎÎÎÎ Î ÏÏÎÏÏÎÏ. ÎÎ <code>Gtk.Image</code> ÎÎ "
+"ÏÎÏÏÏÏÎÎ ÎÎÎ ÎÎ ÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÏÎÎÎÎÎÎÎÎ ÎÎÎÏÎÎ."
 
-#: C/textview.py.page:96(link) C/textview.c.page:37(link)
-#: C/filechooserdialog.py.page:75(link)
-msgid "GtkTextBuffer"
-msgstr "GtkTextBuffer"
+#: C/image-viewer.js.page:299(item/p) C/image-viewer.py.page:213(item/p)
+#: C/image-viewer.vala.page:267(item/p)
+msgid ""
+"In the final line of this method, we destroy the <gui>Open</gui> dialog "
+"because we don't need it any more."
+msgstr ""
+"ÎÏÎÎ ÏÎÎÎÏÏÎÎÎ ÎÏÎÎÎÎ ÎÏÏÎÏ ÏÎÏ ÎÎÎÏÎÎÏ, ÎÎÏÎÏÏÏÎÏÎÏÎÎ ÏÎÎ ÎÎÎÎÎÎÎ "
+"<gui>ÎÎÎÎÎÎÎ</gui> ÎÎÎÏÎ ÎÎÎ ÏÎÎ ÏÏÎÎÎÎÏÎÎÏÏÎ ÏÎÎ."
 
-#: C/textview.py.page:97(link)
-msgid "GtkTextTag"
-msgstr "GtkTextTag"
+#: C/image-viewer.js.page:307(section/p)
+msgid ""
+"All of the code you need should now be in place, so try running the code. "
+"That should be it; a fully-functioning image viewer (and a whistlestop tour "
+"of JavaScript and Gtk) in not much time at all!"
+msgstr ""
+"ÎÎÎÏ Î ÎÏÎÎÎÎÏ ÏÎÏ ÏÏÎÎÎÎÎÏÏÎ ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎ ÏÏÏÎ ÏÏÎ ÎÎÏÎ ÏÎÏ, ÎÏÏÏÎ "
+"ÎÎÎÎÎÎÏÏÎ ÏÎÎ ÎÎÏÎÎÎÏÎ ÏÎÏ ÎÏÎÎÎÎ. ÎÏÏÏ ÎÏÎÎÎÂ ÎÎÎÏ ÏÎÎÏÏÏ ÎÎÎÏÎÏÏÎÎÎÏÏ "
+"ÏÏÎÎÎÎÎÎÏ ÎÎÎÏÎÏÎ (ÎÎÎ ÎÎÎ ÏÎÏÎÎÎÎÏÎ ÏÎÏ JavaScript ÎÎÎ Gtk) ÏÎ ÎÎÎÏÎÏÏÎ "
+"ÏÏÏÎÎ!"
 
-#: C/textview.py.page:98(link) C/textview.c.page:39(link)
-#: C/scrolledwindow.py.page:43(link) C/filechooserdialog.py.page:76(link)
-msgid "GtkScrolledWindow"
-msgstr "GtkScrolledWindow"
+#: C/image-viewer.js.page:312(section/p)
+msgid ""
+"If you run into problems with the tutorial, compare your code with this "
+"<link href=\"image-viewer/image-viewer.js\">reference code</link>."
+msgstr ""
+"ÎÎ ÎÎÏÎÎÎÏÏÏÎÏÎÏÎ ÏÏÏÎÎÎÎÎ ÎÎ ÏÎ ÎÎÎÎÎÎ, ÏÏÎÎÏÎÎÎÏÎ ÏÎÎ ÎÏÎÎÎÎ ÏÎÏ ÎÎ ÎÏÏÏÎ "
+"ÏÎÎ <link href=\"image-viewer/image-viewer.js\">ÎÏÎÎÎÎ ÎÎÎÏÎÏÎÏ</link>."
 
-#: C/textview.py.page:99(link) C/scrolledwindow.py.page:44(link)
-#: C/scale.py.page:57(link) C/paned.py.page:41(link)
-msgid "Standard Enumerations"
-msgstr "ÎÏÏÎÎÎÏ ÎÏÎÏÎÎÎÎÏÎÎÏ"
+#: C/image-viewer.py.page:7(info/title)
+msgctxt "text"
+msgid "Image Viewer (Python)"
+msgstr "ÎÏÎÎÎÎÎÎÏ ÎÎÎÏÎÏÎ (Python)"
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/textview.js.page:25(None)
+#: C/image-viewer.py.page:10(info/desc)
 msgid ""
-"@@image: 'media/textviewpenguinchat.png'; "
-"md5=0dd6f6aa44aaeab7901bd90162ed4c9a"
+"A little bit more than a simple \"Hello world\" application - write an image "
+"viewer in GTK."
 msgstr ""
-"@@image: 'media/textviewpenguinchat.png'Â "
-"md5=0dd6f6aa44aaeab7901bd90162ed4c9a"
+"ÎÎÎ ÎÎÎÎ ÏÎÏÎÏÏÏÏÎÏÎ ÎÏÏ ÎÏÎÎ ÎÏÎÏÎÎÎÎ ÏÎÎ ÏÎ \"ÎÎÎÎ ÏÎÏ ÎÏÏÎÎ\" - ÎÏÎÏÏÎ "
+"ÎÎÎÎ ÏÏÎÎÎÎÎÎ ÎÎÎÏÎÏÎ ÏÎ GTK."
 
-#: C/textview.js.page:7(title)
-msgid "TextView (JavaScript)"
-msgstr "TextView (JavaScript)"
+#: C/image-viewer.py.page:29(item/p)
+msgid "Write a basic GTK user interface in Python"
+msgstr "ÎÏÎÏÎÏÎ ÎÎÎ ÎÎÏÎÎÎ ÎÎÎÏÎÏÎ ÏÏÎÏÏÎ GTK ÏÎ Python"
 
-#: C/textview.js.page:21(desc)
-msgid "A multiline text editor"
-msgstr "ÎÏÎÎÎÏÎÎÏÏÎÏ ÎÎÎÎÎÎÎÏ ÏÎÎÎÎÏÎÏÎ ÎÏÎÎÎÏÎ"
+#: C/image-viewer.py.page:37(item/p)
+msgid "Basic knowledge of the python programming language"
+msgstr "ÎÎÏÎÎÎ ÎÎÏÏÎ ÏÎÏ ÎÎÏÏÏÎÏ ÏÏÎÎÏÎÎÎÎÏÎÏÎÎÏ Python"
 
-#: C/textview.js.page:26(p)
+#: C/image-viewer.py.page:51(item/p)
 msgid ""
-"A TextView is really (or at least usually) a nested set of three objects."
+"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 ""
-"ÎÎÎ TextView ÎÎÎÎÎ ÏÏÎÎÎÎÏÎÎÎ (Î ÏÎÏÎÎÏÎÏÏÎÎ ÏÏÎÎÎÏÏ) ÎÎÎ ÎÎÎÎÏÎ ÏÏÎÎÎÎ "
-"ÏÏÎÏÎ ÎÎÏÎÎÎÎÎÎÎÏÎ."
+"ÎÏÎÎÎÎÏÎ <gui>PyGTK (automake)</gui> ÎÏÏ ÏÎÎ ÎÎÏÏÎÎÎ <gui>Python</gui>, "
+"ÏÎÏÎÏÏÎ <gui>ÏÏÎÎÏÎÎÎ</gui>, ÎÎÎ ÏÏÎÏÎÎÏÏÏÏÎ ÏÎÏ ÎÎÏÏÎÎÎÏÎÎÎÏ ÏÎÏ ÏÏÎÏ "
+"ÎÏÏÎÎÎÎÏ ÎÎÎÎÏ ÏÎÎÎÎÎÏ. ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ ÏÎ <file>image-viewer</file> ÏÏ ÏÎÎÎÎ "
+"ÏÎÏ ÎÏÎÎÏ ÎÎÎ ÏÎÏ ÎÎÏÎÎÏÎÎÏ."
 
-#: C/textview.js.page:28(p)
+#: C/image-viewer.py.page:54(item/p)
 msgid ""
-"At the bottom there is a <link href=\"http://www.roojs.org/seed/gir-1.2-";
-"gtk-3.0/gjs/Gtk.TextBuffer.html\">TextBuffer</link>. This holds the text "
-"itself."
+"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 ""
-"ÎÏÎ ÏÎÎÎÏ ÎÎÎÎÎ ÎÎÎ <link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/";
-"gjs/Gtk.TextBuffer.html\">TextBuffer</link>. ÎÏÏÏ ÎÏÎÏÎ ÏÎ ÎÎÎÎ ÏÎ ÎÎÎÎÎÎÎ."
+"ÎÎÎÎÎÏÎÎÎÏÎ ÏÏÎ ÎÏÎÎÎÏÎÎÏÎÎÎÏÎÏÎ ÏÎ <gui>ÏÏÎÏÎ ÏÎÏ GtkBuilder ÎÎÎ ÎÎÎÏÎÏÎ "
+"ÏÏÎÏÎ</gui> ÎÏÎÎÎÎ ÎÎ ÏÏÎÎÎÎÏÎÎ ÏÎ ÎÎÎÏÎÏÎ ÏÏÎÏÏÎ ÏÎÎÏÎÎÎÎÎÏÎ ÏÎ ÎÏÏÏ ÏÎ "
+"ÏÎÏÎÎÎÎÎÎÎ. ÎÎÎ ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ ÏÏÎÏÎÏ ÏÎÏ ÏÏÎÎÎÎÏÏÎ ÎÎÎÏÎÏÎÏ, ÎÎÎÏÎ ÏÎ <link "
+"xref=\"guitar-tuner.py\">ÎÏÎÎÎÎÎÎ ÏÏÎÎÎÏÏÎ ÎÎÎÎÏÎÏ</link>."
 
-#: C/textview.js.page:29(p)
+#: C/image-viewer.py.page:59(item/p)
 msgid ""
-"In the middle there is the <link href=\"http://www.roojs.org/seed/gir-1.2-";
-"gtk-3.0/gjs/Gtk.TextView.html\">TextView</link>, which is a widget that lets "
-"you see and edit the text in the buffer. It automatically resizes itself "
-"depending on how much text there is."
+"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 ""
-"ÎÏÎ ÎÎÏÎ ÎÎÎÎÎ Î <link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/";
-"Gtk.TextView.html\">TextView</link>, ÏÎÏ ÎÎÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÏÎÏ ÏÎÏ "
-"ÎÏÎÏÏÎÏÎÎ ÎÎ ÎÎÎÏÎ ÎÎÎ ÎÎ ÎÏÎÎÎÏÎÎÏÏÎÎÏÎ ÏÎ ÎÎÎÎÎÎÎ ÏÏÎÎ ÎÎÎÎÎÎÎÏÎ ÎÎÎÎÎ. "
-"ÎÏÎÎÎÎÎÏÎÎÎ ÏÎÎ ÎÎÏÏÏÎ ÏÎÏ ÎÏÏÏÎÎÏÎ ÎÎÎÎÎÎÎ ÎÎ ÏÎ ÏÏÏÎ ÎÎÎÎÎÎÎ ÏÏÎÏÏÎÎ."
+"ÎÎÏÎÏÏÎ <gui>ÎÏÎÏÎÎÎÎ</gui> ÎÎÎ ÏÎ ÎÏÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎÎÎÎ ÎÎÎ ÎÏÎÏ. ÎÎÎÎÎÏÎ ÏÎ "
+"<file>src/image_viewer.py</file> ÎÏÏ ÏÎÏ ÎÎÏÏÎÎÎÏ <gui>ÎÏÎÎ</gui> Î "
+"<gui>ÎÏÏÎÎÎ</gui>. ÎÎÏÎÎÎÎÎÎÎÎÎ ÏÎÎÏ ÎÎÏÎÎÏ ÏÎÏÎÎÎÎÎÎÎ ÎÏÎÎÎÎ."
 
-#: C/textview.js.page:30(p)
-msgid ""
-"Since the automatic resizing can make a TextView unwieldy, you normally "
-"place it inside of a <link xref=\"scrolledwindow.js\">ScrolledWindow</link>. "
-"Despite the name, it's not an actual window in terms of having a title bar "
-"and an X button; it's a widget you put on the application you're making, "
-"which acts like a window onto a more manageable chunk of a TextView. If the "
-"text in the buffer is too big to fit, scrollbars will appear."
-msgstr ""
-"ÎÏÎÏ Î ÎÏÏÏÎÎÏÎ ÎÏÎÎÎÎÎÏÏÎ ÎÏÎÏÎÎ ÎÎ ÎÎÎÎÎ ÎÎÎ TextView ÎÎÎÎÎ, ÏÎÎ "
-"ÏÎÏÎÎÎÏÎÎÏÎ ÎÎÎÎÎÎÎÎ ÎÎÏÎ Ï' ÎÎÎ <link xref=\"scrolledwindow.js"
-"\">ScrolledWindow</link>. ÎÎÏÎ ÏÎ ÏÎÎÎÎ, ÎÎÎ ÎÎÎÎÎ ÎÎÎ ÎÎÎÏÎÏ ÏÎÏÎÎÏÏÎ "
-"ÎÏÎÎÏÎÏ ÎÏÎÎÎÎ ÏÎÏÎÎÏ ÎÎÎ ÎÎÎ ÎÎÏÎÏÎ ÎÂ ÎÎÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÏÎÏ "
-"ÎÎÎÎÏÎ ÏÏÎÎ ÎÏÎÏÎÎÎÎ ÏÎÏ ÎÎÎÎÏÎ, ÏÎÏ ÎÏÎ ÏÏÏÏ ÎÎÎ ÏÎÏÎÎÏÏÎ ÏÎ ÎÎÎ ÏÎÎ "
-"ÎÎÎÏÎÎÏÎÏÎÎÎ ÏÎÎÎÎ ÎÎÎÏ TextView. ÎÎÎ ÏÎ ÎÎÎÎÎÎÎ ÏÏÎÎ ÎÎÎÎÎÎÎÏÎ ÎÎÎÎÎ ÎÎÎÎÎ "
-"ÏÏÎÏÎÎÎÎÎÎ ÎÎÎÎÎÎ ÎÎÎ ÎÎ ÏÎÎÏÎÎÎÎÎ, ÎÎ ÎÎÏÎÎÎÏÏÎÏÎ ÎÏÎÎÎÎÏ ÎÏÎÎÏÎÏ."
+#: C/image-viewer.py.page:66(section/p)
+msgid "Let's see what a very basic Gtk application looks like in Python:"
+msgstr "ÎÎÎ ÎÎ ÎÎÏÎÎ ÏÏÏ ÏÎÎÎÎÏÎÎ ÎÎÎ ÏÎÎÏ ÎÎÏÎÎÎ ÎÏÎÏÎÎÎÎ Gtk ÏÎ Python:"
 
-#: C/textview.js.page:32(p)
+#: C/image-viewer.py.page:67(section/code)
+#, no-wrap
 msgid ""
-"If you want to change what text is displayed in the TextView, you act on the "
-"TextBuffer, since it's what actually holds the text. The same goes for if "
-"you want to see what text someone typed in. This sample application lets you "
-"talk to a (make-believe) penguin, and checks the TextBuffer to see if you "
-"typed the word \"fish\" anywhere in it."
+"\n"
+"from gi.repository import Gtk, GdkPixbuf, Gdk\n"
+"import os, sys\n"
+"\n"
+"class GUI:\n"
+"\tdef __init__(self):\n"
+"\t\twindow = Gtk.Window()\n"
+"\t\twindow.set_title (\"Hello World\")\n"
+"\t\twindow.connect_after('destroy', self.destroy)\n"
+"\n"
+"\t\twindow.show_all()\n"
+"\n"
+"\tdef destroy(window, self):\n"
+"\t\tGtk.main_quit()\n"
+"\n"
+"def main():\n"
+"\tapp = GUI()\n"
+"\tGtk.main()\n"
+"\n"
+"if __name__ == \"__main__\":\n"
+"    sys.exit(main())\n"
+"\n"
+"  "
 msgstr ""
-"ÎÎÎ ÎÎÎÎÏÎ ÎÎ ÎÎÎÎÎÎÏÎ ÏÎ ÎÎÏÎÎÎÎÏÎÎÎÎ ÎÎÎÎÎÎÎ ÏÏÎÎ TextView, ÎÏÎÎÏÎÏÎ ÏÏÎÎ "
-"TextBuffer, ÎÏÎÏ ÎÎÎÎÎ ÎÏÏÏ ÏÎÏ ÏÏÎÎ ÏÏÎÎÎÎÏÎÎÏÏÎÏÎ ÎÏÎÏÎ ÏÎ ÎÎÎÎÎÎÎ. ÎÎ "
-"ÎÎÎÎ ÎÎÎÎÏÎÎ ÎÎÎ ÎÎÎÎÏÎ ÎÎ ÎÎÎÏÎ ÏÎ ÎÎÎÎÎÎÎ ÎÏÎÎ ÏÏÏÏÏÎÎ ÎÎÏÎÎÎÏ. ÎÏÏÏ ÏÎ "
-"ÎÎÎÎÎÎ ÏÎÏ ÎÏÎÏÎÎÎÎÏ ÏÎÏ ÎÏÎÏÏÎÏÎÎ ÎÎ ÎÎÎÎÏÎÏÎ ÏÎ ÎÎÎÎ (ÏÎÏÏÎÏÏÎ ÏÎ) "
-"ÏÎÎÎÎÏÎÎÎ ÎÎÎ ÎÎÎÎÏÎÎ ÏÎ TextBuffer ÎÎÎ ÎÎ ÎÎÎÏÎ ÎÎÎ ÏÎÎÎÏÏÎÎÎÎÎÏÎÏÎ ÏÎ ÎÎÎÎ "
-"\"fish\" ÎÏÎÏÎÎÏÎÏÎ ÏÎ ÎÏÏÏ."
+"\n"
+"from gi.repository import Gtk, GdkPixbuf, Gdk\n"
+"import os, sys\n"
+"\n"
+"class GUI:\n"
+"\tdef __init__(self):\n"
+"\t\twindow = Gtk.Window()\n"
+"\t\twindow.set_title (\"Hello World\")\n"
+"\t\twindow.connect_after('destroy', self.destroy)\n"
+"\n"
+"\t\twindow.show_all()\n"
+"\n"
+"\tdef destroy(window, self):\n"
+"\t\tGtk.main_quit()\n"
+"\n"
+"def main():\n"
+"\tapp = GUI()\n"
+"\tGtk.main()\n"
+"\n"
+"if __name__ == \"__main__\":\n"
+"    sys.exit(main())\n"
+"\n"
+"  "
 
-#: C/textview.js.page:33(p)
+#: C/image-viewer.py.page:96(item/p)
 msgid ""
-"Real-life penguin populations are declining fast, because climate change is "
-"melting the ice that they live on and killing the fish that they eat. If "
-"you'd like to play a (somewhat silly) GNOME game based on this premise, take "
-"a look at <link href=\"http://pingus.seul.org/\";>Pingus</link>."
+"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 ""
-"ÎÎ ÏÎÎÎÏÏÎÎÎ ÏÎÎÎÎÏÎÎÎÏ ÏÏÎÎ ÏÏÎÎÎÎÏÎÎÎ ÎÏÎ ÎÎÎÏÎÎÎÏÎÎ ÎÏÎÎÎÏÎ, ÎÏÎÎÎÎ Î "
-"ÎÎÎÎÎÏÎÎÎ ÎÎÎÎÎÎ ÎÎÏÎÎÎ ÏÎÎ ÏÎÎÎ ÏÎÏ ÎÎÏÎ ÎÎÎ ÏÎÎÏÏÎÎÎ ÏÎ ÏÎÏÎÎ ÏÎÏ ÏÏÏÎÎ. "
-"ÎÎÎ ÎÎ ÎÎÎÎÏÎ ÎÎ ÏÎÎÎÎÏÎ ÎÎÎ (ÎÎÏÏÏ ÎÎÏÎÏÎ) ÏÎÎÏÎÎÎÎ ÏÎÏ GNOME ÎÎ ÎÎÏÎ ÎÏÏÎÎ "
-"ÏÎÎ ÏÏÎÏÏÏÎÎÏÎ, ÎÎÎÏÎÎÏÎ ÏÎ <link href=\"http://pingus.seul.org/\";>Pingus</"
-"link>."
+"ÎÏÎ ÎÎÎÎÎÎ <code>__init__</code> ÏÎÏ ÎÎÎÏÎÏ <code>GUI</code> ÎÎÎÎÎÏÏÎÎÎÏÏÎ "
+"ÎÎÎ (ÎÎÎÎÎ) <code>Gtk.Window</code>, ÎÏÎÏÏÎ ÏÎÎ ÏÎÏÎÎ ÏÎÏ ÎÎÎ ÎÎÏÎ ÏÏÎÎÎÏÏÎ "
+"ÎÎÎ ÏÎÎÎ ÎÎ ÏÎÏÎÎÏÎÎÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ ÏÏÎÎ ÏÎ ÏÎÏÎÎÏÏÎ ÎÎÎÎÏÎÎ. ÎÎÎÎÎ ÏÎÎÏ "
+"ÎÏÎÏ, ÏÎÏÎÏÏÏÏÎÏÎ ÎÎÎ ÏÎ ÏÎÎÎÏÎ ÎÏÎÏÏÎÏÎ."
 
-#: C/textview.js.page:73(p)
+#: C/image-viewer.py.page:101(item/p)
 msgid ""
-"All the code for this sample goes in the TextViewExample class. The above "
-"code creates a <link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/";
-"Gtk.Application.html\">Gtk.Application</link> for our widgets and window to "
-"go in."
+"Next, <code>destroy</code> is defined which just quits the application. It "
+"is called by the <code>destroy</code> signal connected above."
 msgstr ""
-"ÎÎÎÏ Î ÎÏÎÎÎÎÏ ÎÎÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÏÎÎÎÎÎÎÎ ÏÏÎÎ ÎÎÎÏÎ TextViewExample. Î "
-"ÏÎÏÎÏÎÎÏ ÎÏÎÎÎÎÏ ÎÎÎÎÎÏÏÎÎÎ ÎÎÎ <link href=\"http://www.roojs.com/seed/";
-"gir-1.2-gtk-3.0/gjs/Gtk.Application.html\">Gtk.Application</link> ÎÎÎ ÎÎ "
-"ÎÏÎÏÎ ÎÎÏÎ ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÏ ÎÎÎ ÏÎ ÏÎÏÎÎÏÏÎ."
+"ÎÎÏÎ, ÎÏÎÎÎÏÎÎ ÏÎ <code>destroy</code> ÏÎ ÎÏÎÎÎ ÎÏÎÎ ÎÎ ÏÎÏÎÎÏÎÏÎÎ ÏÎÎ "
+"ÎÏÎÏÎÎÎÎ. ÎÎÎÎÎÏÎÎ ÎÏÏ ÏÎ ÏÎÎÎ <code>destroy</code> ÏÎÏ ÏÏÎÎÎÏÎÏÎ ÏÎÏÎÏÎÎÏ."
 
-#: C/textview.js.page:91(title)
-msgid "Creating the TextView"
-msgstr "ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ TextView"
+#: C/image-viewer.py.page:105(item/p)
+msgid "The rest of the file does initialisation for Gtk and displays the GUI."
+msgstr ""
+"ÎÎ ÏÏÏÎÎÎÏÎ ÏÎÏ ÎÏÏÎÎÎÏ ÎÎÎÎÎ ÎÏÏÎÎÎÏÎÎÎÏÎ ÎÎÎ ÏÎ Gtk ÎÎÎ ÎÎÏÎÎÎÎÎÎ ÏÎ GUI."
 
-#: C/textview.js.page:101(p)
+#: C/image-viewer.py.page:109(section/p)
 msgid ""
-"Our first step in this example is to create the <link xref=\"label.js"
-"\">Label</link> that the penguin will use to talk to you. We set the text in "
-"it to wrap by setting its wrap property to true, but we'll use a different "
-"method on the TextView itself that allows for more fine-grained control."
+"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 ""
-"ÎÎ ÏÏÏÏÎ ÎÎÏ ÎÎÎÎ ÏÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÎÎÎÎÎ Î ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ <link xref="
-"\"label.js\">ÎÏÎÎÎÏÎÏ</link> ÏÎÏ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ Î ÏÎÎÎÎÏÎÎÎÏ ÎÎÎ ÎÎ ÏÎÏ "
-"ÎÎÎÎÏÎÎ. ÎÏÎÎÎÏÎÎ ÏÎ ÎÎÎÎÎÎÎ ÏÎ ÎÏÏÏ ÏÎ ÎÎÎÎÎÏÎÏÏÎ ÏÏÎÎÎÎÎÎÏÎÏ ÏÎÎ ÎÎÎÏÏÎÏÎ "
-"ÏÎÏ ÎÎÎÎÎÏÎÏÏÎ ÏÎ ÎÎÎÎÎ, ÎÎÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÎÎ ÎÎÎÏÎÏÎÏÎÎÎ ÎÎÎÎÎÎ "
-"ÏÏÎÎ ÎÎÎÎ ÏÎÎ TextView ÏÎÏ ÎÏÎÏÏÎÏÎÎ ÎÎÎ ÏÎÎ ÎÎÏÎÎÎ ÎÎÎÎÏÎ."
+"Î ÎÏÎÎÎÎÏ ÎÎÎÎÎ ÎÏÎÎÎÎÏ ÎÎ ÎÎÏÎÎÎÏÏÎÎ, ÎÏÏÏÎ ÎÎÎÎÎÎÏÏÎ ÏÎ ÏÎÏÏÎÏÎÏ "
+"<guiseq><gui>ÏÏÎÎÎÎÎ</gui><gui>ÎÎÏÎÎÎÏÎ</gui></guiseq>. ÎÎ ÏÏÎÏÎÎ ÎÎ "
+"ÎÎÏÎÎÎÏÎÎ ÎÎÎ ÎÎÎÎÎ ÏÎÏÎÎÏÏÎ."
 
-#: C/textview.js.page:112(p)
+#: C/image-viewer.py.page:116(section/code)
+#, no-wrap
 msgid ""
-"Our first step is to create a TextBuffer to put the words into. After that "
-"we create the TextView, and tell it to use the TextBuffer we created as its "
-"buffer. We also set it to be editable, since we want to be able to type new "
-"things in."
+"\n"
+"def button_clicked () :\n"
+"  print \"you clicked me!\"\n"
+"\n"
+"b = new Gtk.Button (\"Click me\")\n"
+"b.connect_after ('clicked', button_clicked)"
 msgstr ""
-"ÎÎ ÏÏÏÏÎ ÎÎÏ ÎÎÎÎ ÎÎÎÎÎ Î ÎÎÎÎÎÏÏÎÎÎ ÎÎÏÏ TextBuffer ÎÎÎ ÎÎ ÎÎÎÎÏÎÎ ÏÎÏ "
-"ÎÎÎÎÎÏ ÎÎÏÎ. ÎÏÎÏ ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ ÏÎÎ TextView ÎÎÎ ÏÎÏ ÏÎÏÎÎ ÎÎ "
-"ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÏÎÎ TextBuffer ÏÎÏ ÎÎÎÎÎÏÏÎÎÏÎÎÎ ÏÏ ÏÎÎ ÎÎÎÎÎÎÎÏÎ ÎÎÎÎÎ ÏÎÏ. "
-"ÎÎ ÏÏÎÎÎÎÎÏÎÎ ÎÏÎÏÎÏ ÎÎ ÎÎÎÎÎ ÎÏÎÎÎÏÎÎÏÎÎÎ, ÎÏÎÏ ÎÎÎÎÏÎÎ ÎÎ ÎÏÎÏÎÏÎÎ ÎÎ "
-"ÏÎÎÎÏÏÎÎÎÎÎÏÎÏÎÎ ÎÎÎ ÏÏÎÎÎÎÏÎ ÎÎÏÎ ÏÎÏ."
+"\n"
+"def button_clicked () :\n"
+"  print \"you clicked me!\"\n"
+"\n"
+"b = new Gtk.Button (\"Click me\")\n"
+"b.connect_after ('clicked', button_clicked)"
 
-#: C/textview.js.page:113(p)
+#: C/image-viewer.py.page:132(section/p)
 msgid ""
-"The wrap_mode property lets you select from four different <link href="
-"\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.WrapMode.html";
-"\">WrapModes</link>. Gtk.WrapMode.CHAR, for instance, starts wrapping around "
-"in the middle of a word if you keep typing when it gets to the edge. Most "
-"people are probably used to Gtk.WrapMode.WORD, which will automatically put "
-"the word you're typing on the next line if it gets to be too long."
+"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 ""
-"Î ÎÎÎÏÏÎÏÎ wrap_mode ÏÎÏ ÎÏÎÏÏÎÏÎÎ ÎÎ ÎÏÎÎÎÎÎÏÎ ÎÏÏ ÏÎÏÏÎÏÎ ÎÎÎÏÎÏÎÏÎÎÎ "
-"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.WrapMode.html";
-"\">WrapModes</link>. ÎÎ Gtk.WrapMode.CHAR, ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ, ÎÎÎÎÎÎ ÏÎÎ "
-"ÎÎÎÎÎÏÎÏÏÎ ÎÏÏÏ ÎÏÏ ÏÎ ÎÎÏÎ ÎÎÎÏ ÎÎÎÎÏ ÎÎÎ ÏÏÎÎÏÎÎÎÏÎ ÏÎÎ ÏÎÎÎÏÏÎÎÏÎÎÏÎ ÏÏÎÎ "
-"ÏÏÎÎÎÎ ÏÏÎÎ ÎÎÏÎ. ÎÎ ÏÎÏÎÏÏÏÏÎÏÎÎ ÎÎÎÏÏÏÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎ ÏÏÎÏÎÎÏÏ ÏÎ Gtk."
-"WrapMode.WORD, ÏÎÏ ÎÎ ÎÎÎÎÎ ÎÏÏÏÎÎÏÎ ÏÎ ÎÎÎÎ ÏÎÏ ÏÎÎÎÏÏÎÎÎÎÎÎÏÎ ÏÏÎÎ ÎÏÏÎÎÎÎ "
-"ÎÏÎÎÎÎ ÎÎÎ ÏÏÏÎÎÎÏÎÎ ÎÎ ÎÎÎÎÎ ÏÏÎÏÎÎÎÎÎÎ ÎÎÎÎÎÎ."
+"ÎÏ ÏÏÎÏÎÎÏÎÏÎÎ ÎÎÎ ÏÎÎÎÏÎÎ ÎÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÏÏÎ ÏÎÏÎÎÏÏÎ. ÎÏÎÏÎÎÏÏÎ ÏÎÎ "
+"ÏÎÏÎÎÎÏÏ ÎÏÎÎÎÎ ÏÏÎ ÎÎÎÎÎÎ <code>__init__</code>, ÎÎÎÏÏÏ ÎÎÏÎ ÏÎ ÎÏÎÎÎÎ "
+"<code>window.connect_after</code>:"
 
-#: C/textview.js.page:127(p)
+#: C/image-viewer.py.page:133(section/code)
+#, no-wrap
 msgid ""
-"Here we create a <link xref=\"scrolledwindow.js\">ScrolledWindow</link>, and "
-"set it to automatically scroll if it gets to be too big horizontally or "
-"vertically. We also give it a nice-looking ETCHED_IN border. After that, we "
-"put our TextView inside, and tell the ScrolledWindow to give us a viewport "
-"onto it."
+"\n"
+"box = Gtk.Box()\n"
+"box.set_spacing (5)\n"
+"box.set_orientation (Gtk.Orientation.VERTICAL)\n"
+"window.add (box)\n"
+"\n"
 msgstr ""
-"ÎÎÏ ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ <link xref=\"scrolledwindow.js\">ScrolledWindow</link>, "
-"ÎÎÎ ÏÎ ÎÏÎÎÎÏÎÎ ÏÎ ÎÏÏÏÎÎÏÎ ÎÏÎÎÏÎ ÎÎÎ ÎÎÎÎÏÎÎ ÏÏÎÏÎÎÎÎÎÎ ÎÎÎÎÎÎ ÎÏÎÎÏÎÏÎÎ Î "
-"ÎÎÎÎÏÎ. ÎÎÏ ÎÎÎÎÏÎÎ ÎÏÎÏÎÏ ÎÎÎ ÏÏÎÎÎ ÏÎÏÎÎÏÎÎÎÎ ETCHED_IN. ÎÎÏÎ ÎÏÏ ÎÏÏÏ, "
-"ÎÎÎÎÏÎÎ ÏÎÎ TextView ÎÎÏ ÎÎÏÎ ÎÎÎ ÎÎÎÎ ÏÏÎ ScrolledWindow ÎÎ ÎÎÏ ÎÏÏÎÎ ÎÎÎ "
-"ÎÏÏÎ ÏÏÎÎÎÎÎÏ ÎÎÏÎ ÏÎÏ."
-
-#: C/textview.js.page:131(title) C/radiobutton.js.page:117(title)
-msgid "Creating the rest of the user interface"
-msgstr "ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ ÏÏÏÎÎÎÏÎÏ ÎÎÎÏÎÏÎÏ ÏÏÎÏÏÎ"
+"\n"
+"box = Gtk.Box()\n"
+"box.set_spacing (5)\n"
+"box.set_orientation (Gtk.Orientation.VERTICAL)\n"
+"window.add (box)\n"
+"\n"
 
-#: C/textview.js.page:143(p)
+#: C/image-viewer.py.page:140(section/p)
 msgid ""
-"The first <link xref=\"grid.js\">Grid</link> we create only has the Label "
-"and the ScrolledWindow inside it."
+"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 ""
-"ÎÎ ÏÏÏÏÎ <link xref=\"grid.js\">ÏÎÎÎÎÎ</link> ÏÎÏ ÎÎÎÎÎÏÏÎÎÏÎÎÎ ÎÏÎÎ ÎÏÎÎ "
-"ÏÎÎ ÎÏÎÎÎÏÎ ÎÎÎ ÏÎ ScrolledWindow ÎÎÏÎ ÏÎÏ."
+"Î ÏÏÏÏÎ ÎÏÎÎÎÎ ÎÎÎÎÎÏÏÎÎÎ ÎÎÎ <code>Gtk.Box</code> ÏÎÏ ÎÎÎÎÎÎÎÏÎÎ <code>box</"
+"code> ÎÎÎ ÎÎ ÎÏÏÎÎÎÎÏ ÎÏÎÎÎÎÏ ÏÏÎÎÎÎÎÏÎ ÎÏÎ ÎÏÏ ÏÎÏ ÎÎÎÏÏÎÏÎÏ ÏÎÏ: ÏÎ "
+"<code>orientation</code> ÏÏÎÎÎÎÎÏÎÎ ÏÎ ÎÎÎÎÏÎ (ÎÏÏÏÎ ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ "
+"ÏÎÏÎÎÎÏÎÏÎÏÎÎ ÏÎ ÏÏÎÎÎ) ÎÎÎ ÏÎ <code>spacing</code> ÎÎÎÎÎÏÎ ÏÏÎ ÎÏÎÏÎÎÎ "
+"ÏÏÏÏÎÏÎÎÎ ÎÏÎÎ ÏÏÎÎÎÏÏÎÎ ÏÏÎ 5 ÎÎÎÎÎÎÏÏÎÎÏÎÎÎ. Î ÎÏÏÎÎÎÎ ÎÏÎÎÎÎ ÎÏÎÎÏÎ "
+"ÏÏÎÏÎÎÏÎÎ ÏÏÎ ÏÎÏÎÎÏÏÎ ÏÎ ÎÎÎÎÎÎÎÎÏÏÎÎÎÎÎÎ <code>Gtk.Box</code>."
 
-#: C/textview.js.page:162(p)
+#: C/image-viewer.py.page:146(section/p)
 msgid ""
-"We create a <link xref=\"button.js\">Button</link> to send your message to "
-"the penguin, and a new Grid that has the other one on top and the Button on "
-"the bottom. The Button has a margin on top, so that it isn't squished up "
-"against the ScrolledWindow."
+"To add some widgets to the <code>Gtk.Box</code>, insert the following code "
+"directly below the <code>window.add (box)</code> line:"
 msgstr ""
-"ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ <link xref=\"button.js\">ÎÎÏÎÏÎ</link> ÎÎÎ ÎÎ ÏÏÎÎÎÎÏÎÎ ÏÎ "
-"ÎÎÎÏÎÎ ÏÎÏ ÏÏÎÎ ÏÎÎÎÎÏÎÎÎ ÎÎÎ ÎÎÎ ÎÎÎ ÏÎÎÎÎÎ ÏÎÏ ÎÏÎÎ ÏÎ ÎÎÎÎ ÏÏÎÎ ÎÎÏÏÏÎ "
-"ÎÎÎ ÏÎ ÎÎÏÎÏÎ ÏÏÎ ÏÎÎÎÏ. ÎÎ ÎÎÏÎÏÎ ÎÏÎÎ ÎÎÎ ÏÎÏÎÎÏÏÎÎ ÏÏÎÎ ÎÎÏÏÏÎ, ÎÏÏÎ ÏÏÏÎ "
-"ÎÎÎ ÏÎÏÎÎÎÏÎÎ ÏÎÎÏ ÏÏÎ ScrolledWindow."
+"ÎÎÎ ÎÎ ÏÏÎÏÎÎÏÎÏÎ ÎÎÏÎÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÏÏÎ <code>Gtk.Box</code>, "
+"ÎÎÏÎÎÎÏÎ ÏÎÎ ÎÎÏÎÎÏÎÎ ÎÏÎÎÎÎ ÎÎÏÎÎÏÏ ÎÎÏÏ ÎÏÏ ÏÎÎ ÎÏÎÎÎÎ <code>window.add "
+"(box)</code>:"
 
-#: C/textview.js.page:173(p)
+#: C/image-viewer.py.page:147(section/code)
+#, no-wrap
 msgid ""
-"Finally, we attach the main Grid to the window, then we tell the window and "
-"everything inside it to become visible when the application is run."
+"\n"
+"self.image = Gtk.Image()\n"
+"box.pack_start (self.image, False, False, 0)"
 msgstr ""
-"ÎÎÎÎÎÎ, ÏÏÎÏÎÎÎÎÎÎÎ ÏÎ ÎÏÏÎÎ ÏÎÎÎÎÎ ÏÏÎ ÏÎÏÎÎÏÏÎ, ÎÏÎÎÏÎ ÎÎÎÎ ÏÏÎ ÏÎÏÎÎÏÏÎ "
-"ÎÎÎ ÏÎ ÎÎÎÎ ÏÎ ÏÎÏ ÎÎÎÎÎ ÎÎÏÎ ÏÎÏ ÎÎ ÎÎÎÎÎ ÎÏÎÏÏ ÏÏÎÎ ÏÏÎÏÎÎ Î ÎÏÎÏÎÎÎÎ."
-
-#: C/textview.js.page:178(title)
-msgid "Function which handles the penguin's response"
-msgstr "Î ÏÏÎÎÏÏÎÏÎ ÏÎÏ ÏÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÏÏÎÏÎÏÎ ÏÎÏ ÏÎÎÎÎÏÎÎÎÏ"
+"\n"
+"self.image = Gtk.Image()\n"
+"box.pack_start (self.image, False, False, 0)"
 
-#: C/textview.js.page:230(p)
+#: C/image-viewer.py.page:150(section/p)
 msgid ""
-"Here we use some basic JavaScript functions to have the penguins say "
-"something random. Penguins like fish, though, so if you mention fish we want "
-"the penguin to respond to that. To do that, we use the JavaScript String "
-"object's match method on <file>this.buffer.text</file>, which returns the "
-"contents of our TextBuffer."
+"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 ""
-"ÎÎÏ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÎÎÏÎÎÎÏ ÎÎÏÎÎÎÏ ÏÏÎÎÏÏÎÏÎÎÏ JavaScript ÎÎÎ ÎÎ ÎÎÎÎÏÎÎ "
-"ÏÎÏÏ ÏÎÎÎÎÏÎÎÎÏÏ ÎÎ ÎÎÎÎ ÎÎÏÎ ÏÏÏÎÎÎ. ÎÎ ÏÎÎÎÎÏÎÎÎÎ ÎÎÎÎÎ ÏÏÏÏ ÏÎ ÏÎÏÎÎ, "
-"ÏÎÏÏ, ÎÏÏÎ ÎÎÎ ÎÎÎÏÎÏÎÏÎ ÏÎÏÎ ÎÎÎÎÏÎÎ Î ÏÎÎÎÎÏÎÎÎÏ ÎÎ ÎÏÎÎÏÎ ÏÎ ÎÏÏÏ. ÎÎÎ ÎÎ "
-"ÎÎÎÎÎ ÎÏÏÏ, ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÎÎÎÎÎ ÏÏÎÏÏÎÎÎÏ ÏÎÏ ÎÎÏÎÎÎÎÎÎÎÎÏ "
-"ÏÏÎÎÎÎÎÏÎÎÏÎÏ JavaScript ÏÏÎ <file>this.buffer.text</file>, ÏÎÏ ÎÏÎÏÏÏÎÏÎÎ "
-"ÏÎ ÏÎÏÎÎÏÏÎÎÎÎ ÏÎÏ TextBuffer ÎÎÏ."
+"Î ÏÏÏÏÎ ÎÏÎÎÎÎ ÎÎÎÎÎÏÏÎÎÎ ÎÎÎ ÎÎÎÎÎÏÏÎÎÎ <code>Gtk.Image</code> ÏÎÏ "
+"ÎÎÎÎÎÎÎÏÎÎ <code>image</code>, ÏÎÏ ÎÎ ÎÎÏÎÎÎÎÎÎ ÎÎÎ ÎÏÏÎÎÎ ÎÎÎÏÎÎÏ. ÎÎÎÏÏ ÏÎ "
+"ÏÏÎÎÎÎÏÎÎÏÏÎ ÎÏÎÏÏÎÏÎ ÏÏÎ ÏÎÎÏÎÏÏÎ ÏÎÎÎÏÏÎ, ÎÎ ÏÎ ÎÏÎÏÎÏÎÎ ÏÏ ÎÎÏÎÎÎÎÏÎ "
+"ÎÏÏÎÎÎÏ ÎÎÎÏÎÏ. ÎÏÎÏÎÎ ÎÎ ÏÏÎÏÎÎÏÎÏÎ ÏÎ <code>image = 0</code> ÏÏÎÎ ÎÏÏÎ ÏÎÏ "
+"ÎÎÎÏÎÏ <code>GUI</code>. ÎÏÎÎÏÎ, ÏÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÏÎÏ ÎÎÎÏÎÎÏ "
+"ÏÏÎÏÏÎÎÎÏÎÎ (<em>ÏÎÎÎÏÎÏÎÏÎÎ</em>) ÏÏÎÎ ÏÎÏÎÎÎÏÎ <code>box</code> "
+"ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ ÎÎÎÎÎÎ <link href=\"http://library.gnome.org/devel/gtk/";
+"stable/GtkBox.html#gtk-box-pack-start\"><code>pack_start</code></link> ÏÎÏ "
+"GtkBox."
 
-#: C/textview.js.page:231(p)
+#: C/image-viewer.py.page:152(section/p)
 msgid ""
-"Since we want to clear out the TextBuffer after each time you click Send, we "
-"set <file>this.buffer.text</file> to contain an empty string afterwards. "
-"Then we return focus to our TextView, so that you can keep typing without "
-"having to click on it beforehand."
+"<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 ""
-"ÎÏÎÏ ÎÎÎÎÏÎÎ ÎÎ ÎÎÎÎÏÎÏÎÏÎÎ ÏÎÎ TextBuffer ÎÎÎÎ ÏÎÏÎ ÎÎÏÎ ÏÎ ÏÎÏÎÎÎ "
-"ÎÏÎÏÏÎÎÎ, ÎÏÎÎÎÏÎÎ ÏÎ <file>this.buffer.text</file> ÎÎ ÏÎÏÎÎÏÎÎ ÎÎÎ ÎÎÎÎ "
-"ÏÏÎÎÎÎÎÏÎÎÏÎ ÎÎÏÏÏÎÎ. ÎÏÎÎÏÎ ÎÏÎÏÏÏÎÏÎÏÎÎ ÏÎÎ ÎÏÏÎÎÏÎ ÏÏÎÎ TextView ÎÎÏ, "
-"ÎÏÏÎ ÏÏÏÎ ÎÎ ÎÏÎÏÎÎÏÎ ÎÎ ÏÏÎÎÏÎÏÎÏÎ ÏÎÎ ÏÎÎÎÏÏÎÎÏÎÎÏÎ ÏÏÏÎÏ ÎÎ ÏÏÎÏÎÎ ÎÎ "
-"ÏÎÏÎÏÎÏÎ ÏÎÎÏ ÏÎÏ ÏÏÎÎÎÏÎÎÎÎÎÎÎ."
+"ÎÎ <code>pack_start</code> ÏÎÎÏÎÎÎ 4 ÏÎÏÎÎÎÏÏÎÏÏ: ÏÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÏÎÏ "
+"ÎÎ ÏÏÎÏÏÎÎÎÎ ÏÏÎ GtkBox (<code>child</code>)Â ÎÎ ÏÎ <code>Gtk.Box</code> "
+"ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎ ÏÏÎÎ ÏÏÎÏÏÎÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ (<code>expand</"
+"code>)Â ÎÎ ÏÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÎ ÎÏÏÎÏÎ ÎÎ ÎÎÎÏÏÎÎ ÏÎÎ ÏÎÎ "
+"ÎÎÎÎÎÏÏÎÎÎÎÎÎ ÎÏÎÏÎÎÎÎ ÏÏÏÎ ÎÎ ÎÎÎÎÎÏÏÎÎ ÏÎ <code>Gtk.Box</code> "
+"(<code>fill</code>)Â ÎÎÎ ÏÏÏÎÏ ÏÏÏÎÏ ÏÏÎÏÎÎ ÎÎ ÏÏÎÏÏÎÎ, ÏÎ ÎÎÎÎÎÎÏÏÎÎÏÎÎÎ, "
+"ÎÎÎÎÎÏÎ ÏÏÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÎÎ ÏÏÎÏÏ ÎÎÎÏÎÎÎÏ ÏÎÏ ÎÎÏÎ ÏÏÎ <code>Gtk.Box</"
+"code>, (<code>padding</code>)."
 
-#: C/textview.js.page:238(p)
+#: C/image-viewer.py.page:156(section/code)
+#, no-wrap
 msgid ""
-"Finally, we create a new instance of the finished TextViewExample class, and "
-"set the application running."
+"\n"
+"button = Gtk.Button (\"Open a picture...\")\n"
+"box.pack_start (button, False, False, 0)\n"
 msgstr ""
-"ÎÎÎÎÎÎ, ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ ÏÎÏ ÏÎÎÎÎÏÎÎÎÎÏ ÎÎÎÏÎÏ "
-"TextViewExample ÎÎÎ ÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ."
-
-#: C/textview.js.page:251(link) C/statusbar.js.page:224(link)
-#: C/radiobutton.js.page:277(link) C/grid.js.page:35(link)
-#: C/button.js.page:32(link)
-msgid "Gtk.Button"
-msgstr "Gtk.Button"
-
-#: C/textview.js.page:253(link) C/switch.js.page:271(link)
-#: C/spinbutton.js.page:204(link) C/scale.js.page:213(link)
-#: C/radiobutton.js.page:279(link) C/label.vala.page:32(link)
-#: C/label.js.page:31(link) C/dialog.vala.page:33(link)
-msgid "Gtk.Label"
-msgstr "Gtk.Label"
-
-#: C/textview.js.page:254(link) C/radiobutton.vala.page:32(link)
-#: C/radiobutton.js.page:280(link)
-msgid "Gtk.RadioButton"
-msgstr "Gtk.RadioButton"
-
-#: C/textview.c.page:7(title)
-msgid "TextView (C)"
-msgstr "TextView (C)"
+"\n"
+"button = Gtk.Button (\"Open a picture...\")\n"
+"box.pack_start (button, False, False, 0)\n"
 
-#: C/textview.c.page:24(p)
+#: C/image-viewer.py.page:160(section/p)
 msgid ""
-"If we have a loooooooooooooooooooooooooooooooooooong (that was long) word, "
-"a* horizontal scrollbar will appear."
+"These lines are similar to the first two, but this time they create a "
+"<code>Gtk.Button</code> and add it to <code>box</code>. Notice that we are "
+"setting the <code>expand</code> argument (the second one) to <code>False</"
+"code> here, whereas it was set to <code>True</code> for the <code>Gtk.Image</"
+"code>. This will cause the image to take up all available space and the "
+"button to take only the space it needs. When you maximize the window, the "
+"button size will remain the same, but the image size will increase, taking "
+"up all of the rest of the window."
 msgstr ""
-"ÎÎÎ ÎÏÎÏÎÎ ÎÎÎ ÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎ ÎÎÎÎ (ÏÎÏ ÎÎÎÎÎ "
-"ÎÎÎÎÎÎ), ÎÎÎ* ÎÏÎÎÏÎÏÎÎ ÎÏÎÎÎÎ ÎÏÎÎÏÎÏ ÎÎ ÎÎÏÎÎÎÏÏÎÎ."
-
-#: C/textview.c.page:40(link)
-msgid "GtkContainer"
-msgstr "GtkContainer"
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/switch.vala.page:25(None) C/switch.py.page:26(None)
-#: C/switch.c.page:22(None)
-msgid "@@image: 'media/switch_off.png'; md5=211a2962708800697ad5373dcc86ad6d"
-msgstr "@@image: 'media/switch_off.png'Â md5=211a2962708800697ad5373dcc86ad6d"
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/switch.vala.page:26(None) C/switch.py.page:27(None)
-#: C/switch.c.page:23(None)
-msgid "@@image: 'media/switch_on.png'; md5=95e8769f758c2d95ace0fa8ecf30b29d"
-msgstr "@@image: 'media/switch_on.png'Â md5=95e8769f758c2d95ace0fa8ecf30b29d"
-
-#: C/switch.vala.page:7(title)
-msgid "Switch (Vala)"
-msgstr "ÎÎÎÎÏÏÏÎÏ (Vala)"
-
-#: C/switch.vala.page:21(desc) C/switch.py.page:22(desc)
-#: C/switch.c.page:17(desc)
-msgid "A \"light switch\" style toggle"
-msgstr "ÎÎÎ ÎÎÎÎÎÎÎÎ ÏÎÏÎÎÏÏÎÏÎÎÏ \"ÎÎÎÏÏÎÎÏ ÎÎÎÎÏÏÏÎ\""
-
-#: C/switch.vala.page:24(title) C/switch.py.page:25(title)
-#: C/switch.js.page:20(title) C/switch.c.page:20(title)
-msgid "Switch"
-msgstr "ÎÎÎÎÏÏÏÎÏ"
-
-#: C/switch.vala.page:28(p)
-msgid "This Switch toggles the title."
-msgstr "ÎÏÏÏÏ Î ÎÎÎÎÏÏÏÎÏ ÎÎÎÎÎÎÏÏÎÎ ÏÎÎ ÏÎÏÎÎ."
-
-#: C/switch.vala.page:35(link) C/switch.js.page:272(link)
-msgid "Gtk.Switch"
-msgstr "Gtk.Switch"
-
-#: C/switch.py.page:7(title)
-msgid "Switch (Python)"
-msgstr "ÎÎÎÎÏÏÏÎÏ (Python)"
+"ÎÏÏÎÏ ÎÎ ÎÏÎÎÎÎÏ ÎÎÎÎÎ ÏÎÏÏÎÎÎÎÏ ÎÎ ÏÎÏ ÎÏÎ ÏÏÏÏÎÏ, ÎÎÎÎ ÎÏÏÎ ÏÎ ÏÎÏÎ "
+"ÎÎÎÎÎÏÏÎÎÏÎ ÎÎÎ <code>Gtk.Button</code> ÎÎÎ ÏÎ ÏÏÎÏÎÎÏÎÏÎ ÏÏÎ <code>box</"
+"code>. ÎÎÎÎÎÏÏÏÎ ÏÏÎ ÎÏÎÎÎÏÎÎ ÏÎÎ (ÎÎÏÏÎÏÎ) ÏÎÏÎÎÎÏÏÎ, ÏÎÎ <code>expand</"
+"code> ÏÎ <code>False</code>, ÎÎÏ ÎÎÏÎ ÎÏÎÏÏÎÎ <code>True</code> ÎÎÎ ÏÎ "
+"<code>Gtk.Image</code>. ÎÏÏÎ Î ÎÎÎÏÎÎ ÎÎ ÏÎÏÎÎ ÏÎÎ ÏÎ ÎÎÎÎÎÏÎÎÎ ÏÏÏÎ ÎÎÎ ÏÎ "
+"ÎÎÏÎÏÎÎ ÎÏÎÎ ÏÏÎ ÏÏÎÎÎÎÎÎÏÎÎ. ÎÏÎÎ ÎÎÎÎÏÏÎÏÎÎÎÏÎÎÏ ÏÎ ÏÎÏÎÎÏÏÎ, ÏÎ ÎÎÎÎÎÎÏ "
+"ÏÏÎ ÎÎÏÎÏÎÏÎ ÎÎ ÏÎÏÎÎÎÎÎÎÎ ÏÎ ÎÎÎÎ, ÎÎÏ ÏÎÏ ÎÎÎÏÎÎÏ ÎÎ ÎÏÎÎÎÎÎ, "
+"ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎÎ ÏÎ ÏÏÏÎÎÎÏÎ ÏÎÏÎÎÏÏÎ."
 
-#: C/switch.py.page:29(p)
-msgid "This Switch makes the title appears and disappear."
-msgstr "ÎÏÏÏÏ Î ÎÎÎÎÏÏÏÎÏ ÎÎÎÎÎ ÏÎÎ ÏÎÏÎÎ ÎÎ ÎÎÏÎÎÎÎÎÏÎÎ ÎÎÎ ÎÎ ÎÎÎÏÎÎÎÎÎÏÎÎ."
+#: C/image-viewer.py.page:165(section/p)
+msgid ""
+"When the user clicks on the <gui>Open Image...</gui> button, a dialog should "
+"appear so that the user can choose a picture. Once chosen, the picture "
+"should be loaded and shown in the image widget."
+msgstr ""
+"ÎÏÎÎ Î ÏÏÎÏÏÎÏ ÏÎÏÎÏÎÎ ÏÎÎÏ ÏÏÎ ÎÎÏÎÏÎ <gui>ÎÎÎÎÎÎÎ ÎÎÎÏÎÎÏâ</gui>, ÎÎÎÏ "
+"ÎÎÎÎÎÎÎÏ ÎÎ ÎÎÏÎÎÎÏÏÎÎ ÏÏÏÎ Î ÏÏÎÏÏÎÏ ÎÎ ÎÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎÏÎÎ. ÎÏÎÎÏ "
+"ÎÎÎÎÎÎÎÎ, Î ÎÎÎÏÎÎ ÎÎ ÏÎÏÏÏÎÎÎ ÎÎÎ ÎÎ ÎÎÏÎÎÎÏÏÎÎ ÏÏÎ ÎÎÏÎÏÏÎÎÏÎ ÎÏÎÏÎÎÏ "
+"ÏÏÏÏÎÏÎÎÏ."
 
-#: C/switch.py.page:40(title)
-msgid "Useful methods for a Switch widget"
-msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÎÎÎÏÏÏÎ"
+#: C/image-viewer.py.page:166(section/p)
+msgid ""
+"The first step is to connect the <code>clicked</code> signal of the button "
+"to a signal handler function, which we call <code>on_open_clicked</code>. "
+"Put this code immediately after the <code>button = Gtk.Button()</code> line "
+"where the button was created:"
+msgstr ""
+"ÎÎ ÏÏÏÏÎ ÎÎÎÎ ÎÎÎÎÎ ÎÎ ÏÏÎÎÎÏÎÏÎÎ ÏÎ ÏÎÎÎ <code>clicked</code> ÏÎÏ ÎÎÏÎÏÎÎÏ "
+"ÎÎ ÎÎÎ ÏÏÎÎÏÏÎÏÎ ÏÎÎÏÎÏÏÎ ÏÎÎÎÏÏÎ, ÏÎÎ ÎÏÎÎÎ ÎÎÎÎÎÎÎÏÎÎ "
+"<code>on_open_clicked</code>. ÎÎÎÏÎ ÎÏÏÏÎ ÏÎÎ ÎÏÎÎÎÎ ÎÎÎÏÏÏ ÎÎÏÎ ÏÎÎ ÎÏÎÎÎÎ "
+"ÏÎÏ ÏÎ ÎÎÏÎÏÎ ÎÎÎÎÎÏÏÎÎÎÏÎÎ <code>button = Gtk.Button()</code>:"
 
-#: C/switch.py.page:41(p) C/checkbutton.py.page:38(p)
+#: C/image-viewer.py.page:167(section/code)
+#, no-wrap
 msgid ""
-"For a discussion on signals and callback functions, see <link xref=\"signals-"
-"callbacks.py\">this page</link>."
+"\n"
+"button.connect_after('clicked', self.on_open_clicked)\n"
 msgstr ""
-"ÎÎÎ ÎÎÎ ÏÏÎÎÏÎÏÎ ÏÏÎ ÏÎÎÎÏÏÎ ÎÎÎ ÏÏÎÎÏÏÎÏÎÏÎ ÎÏÎÎÎÎÎÎÏÎÏ, ÎÎÎÏÎ <link xref="
-"\"signals-callbacks.py\">ÎÏÏÎÎ ÏÎ ÏÎÎÎÎÎ</link>."
-
-#: C/switch.py.page:48(link) C/switch.c.page:35(link)
-#: C/radiobutton.c.page:37(link)
-msgid "GtkSwitch"
-msgstr "GtkSwitch"
-
-#: C/switch.py.page:49(link) C/switch.c.page:34(link)
-#: C/spinbutton.c.page:37(link) C/separator.py.page:40(link)
-#: C/radiobutton.c.page:35(link) C/label.py.page:88(link)
-#: C/label.c.page:38(link) C/grid.py.page:57(link) C/dialog.c.page:36(link)
-msgid "GtkLabel"
-msgstr "GtkLabel"
+"\n"
+"button.connect_after('clicked', self.on_open_clicked)\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/switch.js.page:21(None)
+#: C/image-viewer.py.page:170(section/p)
 msgid ""
-"@@image: 'media/switchanimals.png'; md5=513ae15dcf68e15eef30b76420b8c714"
+"This will connect the <code>clicked</code> signal to <code>on_open_clicked</"
+"code> method that we will define below."
 msgstr ""
-"@@image: 'media/switchanimals.png'Â md5=513ae15dcf68e15eef30b76420b8c714"
+"ÎÏÏÏ ÎÎ ÏÏÎÎÎÏÎÎ ÏÎ ÏÎÎÎ <code>clicked</code> ÏÏÎ ÎÎÎÎÎÎ "
+"<code>on_open_clicked</code> Î ÎÏÎÎÎ ÎÎ ÎÏÎÏÏÎÎ ÏÎÏÎÎÎÏÏ."
 
-#: C/switch.js.page:7(title)
-msgid "Switch (JavaScript)"
-msgstr "ÎÎÎÎÏÏÏÎÏ (JavaScript)"
+#: C/image-viewer.py.page:176(section/p)
+msgid ""
+"Now we can create the <code>on_open_clicked</code> method. Insert the "
+"following into the <code>GUI</code> class code block, after the "
+"<code>__init__</code> method:"
+msgstr ""
+"ÎÏÏÎ ÎÏÎÏÎÏÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ ÏÎ ÎÎÎÎÎÎ <code>on_open_clicked</code>. "
+"ÎÎÏÎÎÎÏÎ ÏÎ ÎÎÏÎÎÏÎÎ ÏÏÎ ÎÎÎÏÎ <code>GUI</code>, ÎÎÏÎ ÏÎ ÎÎÎÎÎÎ "
+"<code>__init__</code>:"
 
-#: C/switch.js.page:17(desc)
-msgid "A sliding switch that can be flipped on and off"
-msgstr "ÎÎÎÏ ÎÎÎÎÏÏÏ ÎÎÎÎÏÏÏÎÏ ÏÎÏ ÎÏÎÏÎÎ ÎÎ ÎÎÏÎÏÏÏÎÏÎÏÎÎ ÎÎÎ ÏÏÎ"
+#: C/image-viewer.py.page:177(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"def on_open_clicked (self, button):\n"
+"\tdialog = Gtk.FileChooserDialog (\"Open Image\", button.get_toplevel(), Gtk.FileChooserAction.OPEN);\n"
+"\tdialog.add_button (Gtk.STOCK_CANCEL, 0)\n"
+"\tdialog.add_button (Gtk.STOCK_OK, 1)\n"
+"\tdialog.set_default_response(1)\n"
+"\n"
+"\tfilefilter = Gtk.FileFilter ()\n"
+"\tfilefilter.add_pixbuf_formats ()\n"
+"\tdialog.set_filter(filefilter)\n"
+"\n"
+"\tif dialog.run() == 1:\n"
+"\t\tself.image.set_from_file(dialog.get_filename())\n"
+"\n"
+"\tdialog.destroy()"
+msgstr ""
+"\n"
+"def on_open_clicked (self, button):\n"
+"\tdialog = Gtk.FileChooserDialog (\"Open Image\", button.get_toplevel(), Gtk.FileChooserAction.OPEN);\n"
+"\tdialog.add_button (Gtk.STOCK_CANCEL, 0)\n"
+"\tdialog.add_button (Gtk.STOCK_OK, 1)\n"
+"\tdialog.set_default_response(1)\n"
+"\n"
+"\tfilefilter = Gtk.FileFilter ()\n"
+"\tfilefilter.add_pixbuf_formats ()\n"
+"\tdialog.set_filter(filefilter)\n"
+"\n"
+"\tif dialog.run() == 1:\n"
+"\t\tself.image.set_from_file(dialog.get_filename())\n"
+"\n"
+"\tdialog.destroy()"
 
-#: C/switch.js.page:22(p)
+#: C/image-viewer.py.page:195(item/p)
 msgid ""
-"A Switch has two positions, on and off. This example shows how you can use "
-"multiple switches together to control which <link xref=\"image.js\">Image</"
-"link> is shown in the window. The pictures used in this example <link href="
-"\"https://live.gnome.org/TarynFox?action=AttachFile&amp;do=get&amp;";
-"target=Animal+Photos.zip\">can be downloaded here</link>."
+"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 ""
-"ÎÎÎÏ ÎÎÎÎÏÏÏÎÏ ÎÏÎÎ ÎÏÎ ÎÎÏÎÎÏ ÎÎÎÏÎÎ/ÎÎÎÎÎÏÎÎ. ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÎÎÏÎÎÎÎÎÎ "
-"ÏÏÏ ÎÏÎÏÎÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÏÎÎÎÎÏÎÎÏÏ ÎÎÎÎÏÏÏÎÏ ÎÎÎÎ ÎÎÎ ÎÎ ÎÎÎÎÎÎÏÎ "
-"ÏÎÎÎ <link xref=\"image.js\">ÎÎÎÏÎÎ</link> ÏÏÎÎÎÎÎÎÏÎÎ ÏÏÎ ÏÎÏÎÎÏÏÎ. ÎÎ "
-"ÎÎÎÏÎÎÏ ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÏÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ  <link href=\"https://";
-"live.gnome.org/TarynFox?action=AttachFile&amp;do=get&amp;target=Animal"
-"+Photos.zip\">ÎÏÎÏÎÏÎ ÎÎ ÏÎÏÏÏÎÎÏÎ ÎÎÏ</link>."
+"Î ÎÏÎÎÎÎ ÏÎÏ ÎÎÎÎÎÎÎÎ ÎÎ <code>dialog</code> ÎÎÎÎÎÏÏÎÎÎ ÎÎÎÎ ÎÎÎÎÎÎÎ "
+"<gui>Open</gui>, ÏÎÎ ÎÏÎÎÎ Î ÏÏÎÏÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÎ ÎÎÎ ÎÎ ÎÎÎÎÎÎÎÎ ÎÏÏÎÎÎ. "
+"ÎÏÎÎÎÏÎÎ ÏÏÎÎÏ ÎÎÎÏÏÎÏÎÏ: ÏÎÎ ÏÎÏÎÎ ÏÎÏ ÎÎÎÎÏÎÎÏ, ÏÎÎ ÎÎÎÏÎÎÎÎ (type) ÏÎÏ "
+"ÎÎÎÎÏÎÎÏ (ÎÎÎÎÎ ÎÎÎÎÎÎÎÏ \"open\", ÎÎÎÎ ÎÎ ÎÏÎÏÎÏÏÎÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ "
+"<code>SAVE</code> ÎÎ ÎÎÎÎÎÎ ÎÎ ÎÏÎÎÎÎÎÏÏÎÏÎÎ ÎÎÎ ÎÏÏÎÎÎ)Â ÎÎÎ "
+"<code>transient_for</code>, ÏÏÎÏ ÎÏÎÎÎÎ ÏÎ ÎÎÎÎÎÏ ÏÎÏÎÎÏÏÎ ÏÎÏ ÎÎÎÎÏÎÎÏ."
 
-#: C/switch.js.page:23(p)
+#: C/image-viewer.py.page:208(item/p)
 msgid ""
-"The window will contain a \"broken image\" icon instead of a picture if "
-"picture files named <file>redfox.png</file>, <file>muteswan.png</file>, "
-"<file>fruitbat.png</file>, and <file>gentoopenguin.png</file> aren't in the "
-"same directory. You can change the code and the pictures around as you like, "
-"but the Creative Commons-licensed photos used in this example were taken "
-"from the following sources and cropped to 640x425:"
+"<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 ""
-"ÎÎ ÏÎÏÎÎÏÏÎ ÎÎ ÏÎÏÎÎÏÎÎ ÎÎÎ ÎÎÎÎÎÎÎÎÎ \"ÏÏÎÏÎÎÎÎÏ ÎÎÎÏÎÎÏ\" ÎÎÏÎ ÎÎÎ ÎÎÎ "
-"ÎÎÎÏÎÎ ÎÎÎ ÏÎ ÎÏÏÎÎÎ ÎÎÎÏÎÎÏ ÎÎ ÏÎÎÎÎ <file>redfox.png</file>, "
-"<file>muteswan.png</file>, <file>fruitbat.png</file> ÎÎÎ <file>gentoopenguin."
-"png</file> ÎÎÎ ÎÎÎÎÎ ÏÏÎÎ ÎÎÎÎ ÎÎÏÎÎÎÎÎ. ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÎÎÎÏÎ ÏÎÎ ÎÏÎÎÎÎ ÎÎÎ "
-"ÏÎÏ ÎÎÎÏÎÎÏ ÎÎÏÎÏÏÎ ÏÏÏÏ ÎÎÎÎÏÎ, ÎÎÎÎ ÎÎ ÏÏÏÎÎÏÎÏÎÎÏ ÎÎ ÎÎÎÎÎ Creative "
-"Commons ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÏÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÏÎÏÎÎÎÎÎ ÎÏÏ ÏÎÏ "
-"ÎÎÏÎÎÏÎÎÏ ÏÎÎÎÏ ÎÎÎ ÏÎÏÎÎÏÏÎÎÎÎ ÏÎ 640x425:"
+"ÎÎ <code>dialog.run</code> ÎÎÏÎÎÎÎÎÎ ÏÎ ÎÎÎÎÎÎÎ <gui>ÎÎÎÎÎÎÎ</gui>. Î "
+"ÎÎÎÎÎÎÎÏ ÎÎ ÏÎÏÎÎÎÎÎÎ ÏÎÎ ÏÏÎÏÏÎ ÎÎ ÎÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎÏÎÎÂ ÏÏÎÎ ÎÎÎÎÎÎÎÎ, ÏÎ "
+"<code>dialog.run</code> ÎÎ ÎÏÎÏÏÏÎÏÎÎ ÏÎÎ ÏÎÎÎ <output>1</output> (ÎÎ "
+"ÎÏÎÏÏÏÎÏÎÎ <output>0</output> ÎÎ Î ÏÏÎÏÏÎÏ ÏÎÏÎÏÎÎ <gui>ÎÎÏÏÏÏÎ</gui>). Î "
+"ÎÎÎÎÏÎÏ ÏÎÎÏ <code>if</code> ÎÎÎÎÏÎÎ ÎÎÎ ÎÏÏÏ."
 
-#: C/switch.js.page:25(p)
+#: C/image-viewer.py.page:221(section/p)
 msgid ""
-"<link href=\"http://en.wikipedia.org/wiki/File:Fuzzy_Freddy.jpg\";>Red fox "
-"photo</link> by Rob Lee, licensed <link href=\"http://creativecommons.org/";
-"licenses/by/2.0/deed.en\">CC-By</link>"
+"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 ""
-"<link href=\"http://en.wikipedia.org/wiki/File:Fuzzy_Freddy.jpg\";>ÏÏÏÎÎÏÎÏÎÎ "
-"ÎÏÎÎÎÎÎÏ ÎÎÎÏÎÏÏ</link> ÎÏÏ ÏÎÎ Rob Lee, ÎÎ ÎÎÎÎÎ <link href=\"http://";
-"creativecommons.org/licenses/by/2.0/deed.en\">CC-By</link>"
+"ÎÎ ÏÏÎÏÎÎ ÎÎ ÎÏÎÏÎ ÏÎÎÎ ÏÎÎ ÎÏÎÎÎÎ ÏÎÏ ÏÏÎÎÎÎÎÏÏÎ, ÎÏÏÏÎ ÎÎÎÎÎÎÏÏÎ ÎÎ ÏÎÎ "
+"ÎÎÏÎÎÎÏÎÏÎ. ÎÎÏ ÎÎÎÎÎ ÏÎ ÏÎÎÎÏÂ ÎÎÎ ÏÎÎÏÎÏ ÎÎÎ ÎÎÎÏÎÏÏÎÎÎÏ ÏÏÏÎÏÎÎÎÎ "
+"ÏÏÎÎÎÎÎÏ ÎÎÎÏÎÏÎ (ÎÎÎ ÎÎÎÏ ÎÎÎÏÏÏ ÎÎÎÎÏÏ ÏÎ Python ÎÎÎ Gtk) ÏÎ ÎÎÎÏÎÏÏÎ "
+"ÏÏÏÎÎ!"
 
-#: C/switch.js.page:26(p)
+#: C/image-viewer.py.page:226(section/p)
 msgid ""
-"<link href=\"http://en.wikipedia.org/wiki/File:Pygoscelis_papua_-";
-"Nagasaki_Penguin_Aquarium_-swimming_underwater-8a.jpg\">Gentoo penguin "
-"photo</link> by Ken Funakoshi, licensed <link href=\"http://creativecommons.";
-"org/licenses/by-sa/2.0/deed.en\">CC-By-SA</link>"
+"If you run into problems with the tutorial, compare your code with this "
+"<link href=\"image-viewer/image-viewer.py\">reference code</link>."
 msgstr ""
-"<link href=\"http://en.wikipedia.org/wiki/File:Pygoscelis_papua_-";
-"Nagasaki_Penguin_Aquarium_-swimming_underwater-8a.jpg\">ÏÏÏÎÎÏÎÏÎÎ "
-"ÏÎÎÎÎÏÎÎÎÏ Gentoo</link> ÎÏÏ ÏÎÎ Ken Funakoshi, ÎÎ ÎÎÎÎÎ <link href=\"http://";
-"creativecommons.org/licenses/by-sa/2.0/deed.en\">CC-By-SA</link>"
+"ÎÎ ÎÎÏÎÎÎÏÏÏÎÏÎÏÎ ÏÏÏÎÎÎÎÎ ÎÎ ÏÎÎ ÎÎÎÎÏ, ÏÏÎÎÏÎÎÎÏÎ ÏÎÎ ÎÏÎÎÎÎ ÏÎÏ ÎÎ ÎÏÏÏÎ "
+"ÏÎÎ <link href=\"image-viewer/image-viewer.py\">ÎÏÎÎÎÎ ÎÎÎÏÎÏÎÏ</link>."
+
+#: C/image-viewer.vala.page:7(info/title)
+msgctxt "text"
+msgid "Image Viewer (Vala)"
+msgstr "ÎÏÎÎÎÎÎÎÏ ÎÎÎÏÎÏÎ (Vala)"
+
+#: C/image-viewer.vala.page:22(credit/name)
+msgid "Philip Chimento"
+msgstr "Philip Chimento"
 
-#: C/switch.js.page:27(p)
+#: C/image-viewer.vala.page:33(synopsis/p)
 msgid ""
-"<link href=\"http://www.flickr.com/photos/shekgraham/127431519/in/";
-"photostream/\">Fruit bat photo</link> by Shek Graham, licensed <link href="
-"\"http://creativecommons.org/licenses/by/2.0/deed.en\";>CC-By</link>"
+"In this tutorial you will create an application which opens and displays an "
+"image file. You will learn:"
 msgstr ""
-"<link href=\"http://www.flickr.com/photos/shekgraham/127431519/in/";
-"photostream/\">ÏÏÏÎÎÏÎÏÎÎ ÎÏÏÏÎÏÎÎÎÏ ÏÏÎÏÏÏÎ</link> ÎÏÏ ÏÎÎ Shek Graham, "
-"licensed <link href=\"http://creativecommons.org/licenses/by/2.0/deed.en";
-"\">CC-By</link>"
+"ÎÎ ÎÏÏÏÎ ÏÎ ÎÎÎÎÎÎ ÎÎ ÏÏÎÎÎÎÏÎ ÎÎÎ ÎÏÎÏÎÎÎÎ ÏÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÏÎÎÎÎÎÎ ÎÎÎ "
+"ÎÏÏÎÎÎ ÎÎÎÏÎÎÏ. ÎÎ ÎÎÎÎÏÎ:"
 
-#: C/switch.js.page:28(p)
+#: C/image-viewer.vala.page:35(item/p)
 msgid ""
-"<link href=\"http://commons.wikimedia.org/wiki/File:Mute_Swan-";
-"Mindaugas_Urbonas.jpg\">Mute swan photo</link> by Mindaugas Urbonas, "
-"licensed <link href=\"http://creativecommons.org/licenses/by-sa/2.5/deed.en";
-"\">CC-By-SA</link>"
+"How to set up a basic project using the <link xref=\"getting-ready\">Anjuta "
+"IDE</link>."
 msgstr ""
-"<link href=\"http://commons.wikimedia.org/wiki/File:Mute_Swan-";
-"Mindaugas_Urbonas.jpg\">ÏÏÏÎÎÏÎÏÎÎ ÏÎÏÏÎÎÎÏ ÎÏÎÎÎÏ</link> ÎÏÏ Mindaugas "
-"Urbonas, ÎÎ ÎÎÎÎÎ <link href=\"http://creativecommons.org/licenses/by-sa/2.5/";
-"deed.en\">CC-By-SA</link>"
+"ÎÏÏ ÎÎ ÎÎÎÎÏÎÏÏÎÏÎÏÎ ÎÎÎ ÎÎÏÎÎÏ ÎÏÎÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ <link xref=\"getting-"
+"ready\">Anjuta IDE</link>."
 
-#: C/switch.js.page:30(p)
-#| msgid ""
-#| "Photo credits and licensing information are shown in the application's "
-#| "<link xref=\"aboutdialog.js\">AboutDialog.</link> Always remember to "
-#| "credit the original artist when using <link href=\"http://creativecommons.";
-#| "org\">Creative Commons-licensed works!</link>"
+#: C/image-viewer.vala.page:36(item/p)
 msgid ""
-"Photo credits and licensing information are shown in the application's <link "
-"xref=\"aboutdialog.js\">AboutDialog</link>. Always remember to credit the "
-"original artist when using <link href=\"http://creativecommons.org";
-"\">Creative Commons-licensed works!</link>"
+"How to write a <link href=\"http://developer.gnome.org/platform-overview/";
+"stable/gtk\">Gtk application</link> in Vala"
 msgstr ""
-"ÎÎÎÎÎÏ ÏÏÏÎÎÏÎÏÎÎÏ ÎÎÎ ÏÎÎÏÎÏÎÏÎÎÏ ÎÎÎÎÎÎÏÏÎÏÎÏ ÎÎÏÎÎÎÎÎÎÏÎÎ ÏÏÎ <link xref="
-"\"aboutdialog.js\">AboutDialog</link>. ÎÎ ÎÏÎÎÏÏÎ ÏÎÎÏÎ ÎÎ ÎÎÎÎÎÎÎÏÎÏÎ ÏÎÎ "
-"ÎÏÏÎÎÏ ÎÎÎÎÎÏÎÏÎÎ ÏÏÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÏÎ<link href=\"http://creativecommons.org";
-"\">ÎÏÎÎÏÎÎÏ ÎÎ ÎÎÎÎÎ Creative Commons!</link> ÏÎÏ ÎÏÎÏÎÎÎÎÏ"
+"ÎÏÏ ÎÎ ÎÏÎÏÎÏÎ ÎÎÎ <link href=\"http://developer.gnome.org/platform-overview/";
+"stable/gtk\">ÎÏÎÏÎÎÎÎ Gtk</link> ÏÏÎ Vala"
 
-#: C/switch.js.page:74(p)
+#: C/image-viewer.vala.page:37(item/p)
 msgid ""
-"All the code for this sample goes in the SwitchExample class. The above code "
-"creates a <link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.";
-"Application.html\">Gtk.Application</link> for our widgets and window to go "
-"in."
+"Some basic concepts of <link href=\"http://developer.gnome.org/gobject/";
+"stable/\">GObject</link> programming"
 msgstr ""
-"ÎÎÎÏ Î ÎÏÎÎÎÎÏ ÎÎÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÏÎÎÎÎÎÎÎ ÏÏÎÎ ÎÎÎÏÎ SwitchExample. Î "
-"ÏÎÏÎÏÎÎÏ ÎÏÎÎÎÎÏ ÎÎÎÎÎÏÏÎÎÎ ÎÎÎ <link href=\"http://www.roojs.com/seed/";
-"gir-1.2-gtk-3.0/gjs/Gtk.Application.html\">Gtk.Application</link> ÎÎÎ ÎÎ "
-"ÎÏÎÏÎ ÎÎÏÎ ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÏ ÎÎÎ ÏÎ ÏÎÏÎÎÏÏÎ."
+"ÎÎÏÎÎÎÏ ÎÎÏÎÎÎÏ ÎÎÎÎÎÎÏ ÏÎÏ ÏÏÎÎÏÎÎÎÎÏÎÏÎÎÏ <link href=\"http://developer.";
+"gnome.org/gobject/stable/\">GObject</link>"
 
-#: C/switch.js.page:75(p) C/messagedialog.js.page:70(p)
+#: C/image-viewer.vala.page:44(item/p)
 msgid ""
-"Before we call _buildUI to create the window and the widgets inside it, we "
-"need to call _initMenus, which tells GNOME to create the menu. We can put "
-"the actual code for _initMenus after the code for _buildUI, since it doesn't "
-"matter what order we put them in so long as _initMenus is called first in "
-"_onStartup."
+"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 ""
-"ÎÏÎÎ ÎÎÎÎÏÎÏÎÎ _buildUI ÎÎÎ ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ ÏÎÏÎÎÏÏÎÏ ÎÎÎ ÏÏÎ ÎÏÎÏÎÎÏÎ "
-"ÏÏÏÏÎÏÎÎÏÎ ÎÎÏÎ ÏÎÏ, ÏÏÎÎÎÎÏÎÎÏÏÎ ÎÎ ÎÎÎÎÏÎÏÎÎ _initMenus, ÏÎÏ ÎÎÎÎ ÏÏÎ "
-"GNOME ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÎ ÏÎ ÎÎÎÎÏ. ÎÏÎÏÎÏÎÎ ÎÎ ÎÎÎÎÏÎÎ ÏÎÎ ÎÎÎÏÎÏ ÎÏÎÎÎÎ ÎÎÎ "
-"_initMenus ÎÎÏÎ ÏÎÎ ÎÏÎÎÎÎ ÎÎÎ _buildUI, ÎÏÎÏ ÎÎÎ ÏÎÎÏÎÎÎÎ Î ÏÎÎÏÎ ÏÎÏ ÏÎ "
-"ÎÎÎÎÎÎ ÏÏÎ ÏÎ _initMenus ÎÎÎÎÎÏÎÎ ÏÏÏÏÎ ÏÏÎ _onStartup."
+"ÎÏÏÏ ÎÏÎÎÏÎ ÏÎÎ ÎÎÎÏÎÏÎ API <link href=\"http://valadoc.org/gtk+-3.0/\";>gtk"
+"+-3.0</link> ÏÏÎÏÎÎÎ, ÎÎ ÎÎÎ ÎÎÎ ÎÎÎÎÎ ÎÏÎÏÎÎÏÎÏÎ Î ÏÎÏÎÎÎÎÎÏÎÎÏÎ ÏÎÏ "
+"ÎÎÎÎÎÎÏÎÏ."
 
-#: C/switch.js.page:91(title)
-msgid "Creating the switches"
-msgstr "ÎÎÎÎÎÏÏÎÎÎ ÏÏÎ ÎÎÎÎÎÏÏÏÎ"
+#: C/image-viewer.vala.page:60(item/p)
+msgid ""
+"From the <gui>Vala</gui> tab choose <gui>Gtk+ (Simple)</gui>, click "
+"<gui>Continue</gui>, and fill out your details on the next page. Use "
+"<file>image-viewer</file> as project name and directory."
+msgstr ""
+"ÎÏÏ ÏÎÎ ÎÎÏÏÎÎÎ <gui>Vala</gui> ÎÏÎÎÎÎÏÎ <gui>Gtk+ (ÎÏÎÏ)</gui>, ÎÎÎÎ "
+"<gui>ÏÏÎÎÏÎÎÎ</gui> ÎÎÎ ÏÏÎÏÎÎÏÏÏÏÎ ÏÎÏ ÎÎÏÏÎÎÎÏÎÎÎÏ ÏÎÏ ÏÏÎÎ ÎÏÏÎÎÎÎ "
+"ÏÎÎÎÎÎ. ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ ÏÎ <file>image-viewer</file> ÏÏ ÏÎÎÎÎ ÏÎÏ ÎÏÎÎÏ ÎÎÎ "
+"ÏÎÏ ÎÎÏÎÎÏÎÎÏ."
 
-#: C/switch.js.page:97(p)
+#: C/image-viewer.vala.page:64(item/p)
 msgid ""
-"We first create the <link xref=\"image.js\">Image</link> that the switches "
-"will control. Remember that a file named <file>redfox.png</file> needs to be "
-"in the same directory as this application."
+"Make sure that <gui>Use GtkBuilder for user interface</gui> is unchecked as "
+"we will create the UI manually in this tutorial."
 msgstr ""
-"ÎÎÎÎÎÏÏÎÎÏÎÎ ÏÏÏÏÎ ÏÎÎ <link xref=\"image.js\">ÎÎÎÏÎÎ</link> ÏÎÏ ÎÎ "
-"ÎÎÎÎÏÏÏÎÏ ÎÎ ÎÎÎÎÏÎÏÎ. ÎÎ ÎÏÎÎÏÏÎ ÏÏÎ ÎÎÎ ÎÏÏÎÎÎ ÎÎ ÏÎÎÎÎ <file>redfox.png</"
-"file> ÏÏÎÎÎÎÎÏÎÎ ÎÎ ÎÎÎÎÎ ÏÏÎÎ ÎÎÎÎ ÎÎÏÎÎÎÎÎ ÏÏÏÏ ÎÏÏÎ Î ÎÏÎÏÎÎÎÎ."
+"ÎÎÎÎÎÏÎÎÎÏÎ ÏÏÎ ÏÎ <gui>ÏÏÎÏÎ ÏÎÏ GtkBuilder ÎÎÎ ÎÎÎÏÎÏÎ ÏÏÎÏÏÎ</gui> ÎÎÎÎÎ "
+"ÎÏÎÎÎÎÏÏÎ ÎÏÎÎÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ ÏÎÎ UI ÏÎÎÏÎÎÎÎÎÏÎ ÏÎ ÎÏÏÏ ÏÎ ÎÎÎÎÎÎ."
 
-#: C/switch.js.page:119(p)
+#: C/image-viewer.vala.page:65(note/p)
 msgid ""
-"We use a <link xref=\"label.js\">Label</link> to mark each Switch, and give "
-"them a bit of a margin on the right so that they aren't crammed right next "
-"to the Switches. After that we create the Switches, and set them to be "
-"switched off by default."
+"You will learn how to use the interface builder in the <link xref=\"guitar-"
+"tuner.vala\">Guitar-Tuner</link> tutorial."
 msgstr ""
-"ÎÏÎÏÎÎÎÏÎÎÎÏÎÎ ÎÎÎ <link xref=\"label.js\">ÎÏÎÎÎÏÎ</link> ÎÎÎ ÎÎ ÏÎÎÎÎÏÏÎÏÎÎ "
-"ÎÎÎÎ ÎÎÎÎÏÏÏÎ ÎÎÎ ÎÎ ÏÎÏÏ ÎÏÏÎÏÎÎ ÎÎÎÎ ÏÎÏÎÎÏÏÎÎ ÏÏÎ ÎÎÎÎÎ ÎÏÏÎ ÏÏÏÎ ÎÎ ÎÎÎ "
-"ÏÏÏÎÎÏÏÎÎÎÏÎÎ ÎÎÏÎÎÏÏ ÎÎÏÎÎ ÏÏÎÏÏ ÎÎÎÎÏÏÏÎÏ. ÎÎÏÎ ÎÎÎÎÎÏÏÎÎÏÎÎ ÏÎÏÏ "
-"ÎÎÎÎÏÏÏÎÏ ÎÎÎ ÏÎÏÏ ÎÏÎÎÎÏÎÎ ÎÎÎÎÎÏÎÎÏÏ ÎÏÏ ÏÏÎÎÏÎÎÎÎÎ."
+"ÎÎ ÎÎÎÎÏÎ ÏÏÏ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÏÎÎ ÎÎÏÎÏÎÎÏÎÏÏÎ ÎÎÎÏÎÏÎÏ ÏÏÎ ÎÎÎÎÎÎ <link "
+"xref=\"guitar-tuner.vala\">ÏÏÎÎÎÏÏÎÏ ÎÎÎÎÏÎÏ</link>."
 
-#: C/switch.js.page:120(p)
+#: C/image-viewer.vala.page:69(item/p)
 msgid ""
-"The signal a switch sends out when it's flipped on or off is called notify::"
-"active. After we create each switch, we connect its notify::active signal to "
-"a function called _switchFlip. If you have multiple switches that each do "
-"something different, you might want to connect them to different functions, "
-"but here they're both used for the same thing: To control what picture's "
-"displayed by _image."
+"Click <gui>Continue</gui> then <gui>Apply</gui> and the project will be "
+"created for you. Open <file>src/image_viewer.vala</file> from the "
+"<gui>Project</gui> or <gui>File</gui> tabs. You will see this code:"
 msgstr ""
-"ÎÎ ÏÎÎÎ ÏÎÏ ÎÎÎÏ ÎÎÎÎÏÏÏÎÏ ÏÏÎÎÎÎÎ ÏÏÎÎ ÎÎÏÎÏÏÏÎÏÎÏÎÎ ÎÎÎÏÎÎ/ÎÎÎÎÎÏÎÎ "
-"ÎÎÎÎÏÎÎ notify::active. ÎÎÏÎ ÏÎ ÎÎÎÎÎÏÏÎÎÎ ÎÎÎÎ ÎÎÎÎÏÏÏÎ, ÏÏÎÎÎÎÏÎÎ ÏÎ ÏÎÎÎ "
-"ÏÎÏ notify::active ÏÎ ÎÎÎ ÏÏÎÎÏÏÎÏÎ ÏÎÏ ÎÎÎÎÏÎÎ _switchFlip. ÎÎÎ ÎÏÎÏÎ "
-"ÏÎÎÎÎÏÏ ÎÎÎÎÏÏÏÎÏ ÏÎÏ Î ÎÎÎÎÎÎÏ ÏÎÏÏ ÎÎÎÎÎ ÎÎÏÎ ÎÎÎÏÎÏÎÏÎÎÏ, ÎÏÏÏ ÎÎÎÎÏÎÏÎ "
-"ÎÎ ÏÎÏÏ ÏÏÎÎÎÏÎÏÎ ÏÎ ÎÎÎÏÎÏÎÏÎÎÎÏ ÏÏÎÎÏÏÎÏÎÎÏ, ÎÎÎÎ ÎÎÏ ÎÎÎ ÎÎ ÎÏÎ "
-"ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÎÎ ÏÎ ÎÎÎÎ ÏÏÎÎÎÎ: ÏÎÎ ÎÎÎÎÏÎ ÏÎÏ ÎÎÏÎÎÎÎÏÎÎÎÎÏ ÎÎÎÏÎÎÏ "
-"ÎÏÏ ÏÎ _image."
+"ÎÎÏÎÏÏÎ <gui>ÏÏÎÎÏÎÎÎ</gui>, ÎÏÎÎÏÎ <gui>ÎÏÎÏÎÎÎÎ</gui> ÎÎÎ ÏÎ ÎÏÎÎ ÎÎ "
+"ÎÎÎÎÎÏÏÎÎÎÎÎ ÎÎÎ ÎÏÎÏ. ÎÎÎÎÎÏÎ ÏÎ <file>src/image_viewer.vala</file> ÎÏÏ ÏÎÏ "
+"ÎÎÏÏÎÎÎÏ <gui>ÎÏÎÎ</gui> Î <gui>ÎÏÏÎÎÎ</gui>. ÎÎ ÎÎÎÏÎ ÎÏÏÏÎ ÏÎÎ ÎÏÎÎÎÎ:"
 
-#: C/switch.js.page:144(p)
+#: C/image-viewer.vala.page:72(item/code)
+#, no-wrap
 msgid ""
-"We create a <link xref=\"grid.js\">Grid</link> for the Labels and Switches "
-"first, so that we can organize them in a 2x2 layout with a margin between it "
-"and the Image. Then we put that Grid into a larger 2x1 Grid that has the "
-"Image on top, and the Grid with the Labels and Switches on the bottom."
+"\n"
+"using GLib;\n"
+"using Gtk;\n"
+"\n"
+"public class Main : Object\n"
+"{\n"
+"\n"
+"\tpublic Main ()\n"
+"\t{\n"
+"\t\tWindow window = new Window();\n"
+"\t\twindow.set_title (\"Hello World\");\n"
+"\t\twindow.show_all();\n"
+"\t\twindow.destroy.connect(on_destroy);\n"
+"\t}\n"
+"\n"
+"\tpublic void on_destroy (Widget window)\n"
+"\t{\n"
+"\t\tGtk.main_quit();\n"
+"\t}\n"
+"\n"
+"\tstatic int main (string[] args)\n"
+"\t{\n"
+"\t\tGtk.init (ref args);\n"
+"\t\tvar app = new Main ();\n"
+"\n"
+"\t\tGtk.main ();\n"
+"\n"
+"\t\treturn 0;\n"
+"\t}\n"
+"}"
 msgstr ""
-"ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ <link xref=\"grid.js\">ÏÎÎÎÎÎ</link> ÎÎÎ ÏÎÏ ÎÏÎÎÎÏÎÏ ÎÎÎ "
-"ÏÎÏÏ ÎÎÎÎÏÏÏÎÏ ÏÏÏÏÎ, ÎÏÏÎ ÏÏÏÎ ÎÎ ÎÏÎÏÎÏÎÎ ÎÎ ÏÎÏ ÎÏÎÎÎÏÏÎÏÎÎ ÏÎ ÎÎÎ "
-"ÎÎÎÏÎÎÎ 2x2 ÎÎ ÎÎÎ ÏÎÏÎÎÏÏÎÎ ÎÎÏÎÎÏ ÏÎÏ ÎÎÎ ÏÎÏ ÎÎÎÏÎÎÏ. ÎÏÎÎÏÎ ÎÎÎÎÏÎÎ ÎÏÏÏ "
-"ÏÎ ÏÎÎÎÎÎ ÏÎ ÎÎÎ ÎÎÎÎÎÏÏÎÏÎ ÏÎÎÎÎÎ 2x1 ÏÎÏ ÎÏÎÎ ÏÎÎ ÎÎÎÏÎÎ ÏÏÎÎ ÎÎÏÏÏÎ ÎÎÎ "
-"ÏÎ ÏÎÎÎÎÎ ÎÎ ÏÎÏ ÎÏÎÎÎÏÎÏ ÎÎÎ ÏÎÏÏ ÎÎÎÎÏÏÏÎÏ ÏÏÎ ÏÎÎÎÏ."
+"\n"
+"using GLib;\n"
+"using Gtk;\n"
+"\n"
+"public class Main : Object\n"
+"{\n"
+"\n"
+"\tpublic Main ()\n"
+"\t{\n"
+"\t\tWindow window = new Window();\n"
+"\t\twindow.set_title (\"Hello World\");\n"
+"\t\twindow.show_all();\n"
+"\t\twindow.destroy.connect(on_destroy);\n"
+"\t}\n"
+"\n"
+"\tpublic void on_destroy (Widget window)\n"
+"\t{\n"
+"\t\tGtk.main_quit();\n"
+"\t}\n"
+"\n"
+"\tstatic int main (string[] args)\n"
+"\t{\n"
+"\t\tGtk.init (ref args);\n"
+"\t\tvar app = new Main ();\n"
+"\n"
+"\t\tGtk.main ();\n"
+"\n"
+"\t\treturn 0;\n"
+"\t}\n"
+"}"
 
-#: C/switch.js.page:153(p) C/spinbutton.js.page:165(p)
+#: C/image-viewer.vala.page:108(section/p)
 msgid ""
-"Finally, we add the larger Grid to the window, then tell the window to show "
-"itself and all the widgets inside of it."
+"The code loads an (empty) window from the user interface description file "
+"and shows it. More details are given below; skip this list if you understand "
+"the basics:"
 msgstr ""
-"ÎÎÎÎÎÎ, ÏÏÎÏÎÎÏÎÏÎÎ ÏÎ ÎÎÎÎÎÏÏÎÏÎ ÏÎÎÎÎÎ ÏÏÎ ÏÎÏÎÎÏÏÎ, ÎÏÎÎÏÎ ÎÎÎÎ ÏÏÎ "
-"ÏÎÏÎÎÏÏÎ ÎÎ ÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÎÏÏÏÎ ÏÎÏ ÎÎÎ ÏÎÎ ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÏÎ ÏÎÏ."
-
-#: C/switch.js.page:157(title)
-msgid "Function which handles the switches being flipped"
-msgstr "Î ÏÏÎÎÏÏÎÏÎ ÏÎÏ ÏÎÎÏÎÎÎÏÎÎ ÏÎÏÏ ÎÎÎÎÏÏÏÎÏ ÏÎÏ ÎÎÏÎÏÏÏÎÏÎÎÎÎ"
+"Î ÎÏÎÎÎÎÏ ÏÎÏÏÏÎÎÎ ÎÎÎ (ÎÎÎÏ) ÏÎÏÎÎÏÏÎ ÎÏÏ ÏÎ ÎÏÏÎÎÎ ÏÎÏÎÎÏÎÏÎÏ ÎÎÎÏÎÏÎÏ "
+"ÏÏÎÏÏÎ ÎÎÎ ÏÎ ÎÎÏÎÎÎÎÎÎ. ÎÎÏÎÏÏÏÏÎÏÎÏ ÏÎÎÏÎÏÎÏÎÎÏ ÏÏÎÏÏÎÏÎ ÏÎÎ ÎÎÏÏÂ "
+"ÏÏÎÏÏÎÏÎÏÏÎ ÎÏÏÎ ÏÎ ÎÎÏÏÎ ÎÎ ÎÎÏÎÎÎÎÎÎÎÎÏÎ ÏÎ ÎÎÏÎÎÎ:"
 
-#: C/switch.js.page:180(p)
+#: C/image-viewer.vala.page:113(item/p)
 msgid ""
-"Each time a Switch is flipped, this function checks to see which of the two "
-"Switches are active afterwards, using the Switches' built-in get_active() "
-"function. It then changes the Image accordingly. You can change the "
-"filenames around as you like, so long as you have pictures to go with them."
+"The two <code>using</code> lines at the top import namespaces so we don't "
+"have to name them explicitly."
 msgstr ""
-"ÎÎÎÎ ÏÎÏÎ ÏÎÏ ÎÎÎÏ ÎÎÎÎÏÏÏÎÏ ÎÎÎÏÏÏÎÏÎÏÎÎ, ÎÏÏÎ Î ÏÏÎÎÏÏÎÏÎ ÎÎÎÎÏÎÎ ÎÎ ÎÎÎ "
-"ÏÎÎÎÏ ÎÏÏ ÏÎÏÏ ÎÏÎ ÎÎÎÎÏÏÏÎÏ ÎÎÎÎÎ ÎÎÎÏÎÏÏ ÎÎÏÏÏÎÎ, ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎÎ "
-"ÎÎÏÏÎÎÏÏÎÎÎÎ ÏÏÎÎÏÏÎÏÎ get_active(). ÎÏÎÎÏÎ ÎÎÎÎÎÎÎ ÏÎÎ ÎÎÎÏÎÎ ÎÎÎÎÎÎÎ. "
-"ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÎÎÎÏÎ ÏÎ ÎÎÏÎÎÏÎ ÎÏÏÎÎÏÎ ÎÎÏÎÏÏÎ ÏÏÏÏ ÎÎÎÎÏÎ, ÎÏÏÏÎÎ ÎÏÎÏÎ "
-"ÎÎÎÏÎÎÏ ÏÎÏ ÎÎ ÏÎÎÎÎÎÎÏÎ ÎÎÎÎ ÏÎÏÏ."
-
-#: C/switch.js.page:184(title)
-msgid "Creating the AboutDialog"
-msgstr "ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ AboutDialog"
+"ÎÎ ÎÏÎ ÎÏÎÎÎÎÏ <code>using</code> ÏÏÎÎ ÎÎÏÏÏÎ ÎÎÏÎÎÎÏÎ ÏÎÏÏ ÏÏÏÎÏÏ ÎÎÎÎÎÏÏÎ, "
+"ÎÏÏÎ ÏÏÏÎ ÎÎ ÎÎÎ ÎÏÎÏÎÎ ÎÎ ÎÎÎÎÎÏÏÎÏÎ ÏÎÏÎ."
 
-#: C/switch.js.page:211(p)
+#: C/image-viewer.vala.page:116(item/p)
 msgid ""
-"The first step is building the <link xref=\"gmenu.js\">GMenu</link> that the "
-"\"About\" button goes into. This is the menu that appears when you click the "
-"application's name in the upper-left corner of the screen, next to the "
-"Activities menu. Our menu only has two options in it: About, and Quit."
+"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 ""
-"ÎÎ ÏÏÏÏÎ ÎÎÎÎ ÎÎÎÎÎ Î ÎÏÎÎÏÎ ÏÎÏ <link xref=\"gmenu.js\">GMenu</link> ÏÏÎ "
-"ÎÏÎÎÎ ÏÎ ÎÎÏÎÏÎ \"About\" ÎÏÎÎÎÎÎ. ÎÏÏÏ ÎÎÎÎÎ ÏÎ ÎÎÎÎÏ ÏÎÏ ÎÎÏÎÎÎÎÎÏÎÎ ÏÏÎÎ "
-"ÏÎÏÎÏ ÏÎ ÏÎÎÎÎ ÏÎÏ ÎÏÎÏÎÎÎÎÏ ÏÏÎÎ ÏÎÎÏ ÎÏÎÏÏÎÏÎ ÎÏÎÎÎ ÏÎÏ ÎÎÏÎÎÏ, ÎÎÏÎÎ ÏÏÎ "
-"ÎÎÎÎÏ ÎÎÎÏÎÎÎÎÏ. ÎÎ ÎÎÎÎÏ ÎÎÏ ÎÏÎÎ ÎÏÎÎ ÎÏÎ ÎÏÎÎÎÎÎÏ: ÏÎÏÎ ÎÎÎ ÎÎÎÎÏÎÎÎ."
+"Î ÎÎÏÎÏÎÎÏÎÏÏÎÏ ÏÎÏ ÎÎÎÏÎÏ <code>Main</code> ÎÎÎÎÎÏÏÎÎÎ ÎÎÎ ÎÎÎ (ÎÎÎÏ) "
+"ÏÎÏÎÎÏÏÎ ÎÎÎ ÏÏÎÎÎÎÎ ÎÎÎ <link href=\"https://live.gnome.org/Vala/";
+"SignalsAndCallbacks\">ÏÎÎÎ</link> ÎÎÎ ÎÎÎÎÎ ÎÏÏ ÏÎÎ ÎÏÎÏÎÎÎÎ, ÏÏÎÎ ÏÎ "
+"ÏÎÏÎÎÏÏÎ ÎÎÎÎÏÎÎ."
 
-#: C/switch.js.page:247(p)
+#: C/image-viewer.vala.page:121(item/p)
 msgid ""
-"An <link xref=\"aboutdialog.js\">AboutDialog</link> has a lot of different "
-"things you can set, to credit everyone who worked on the application and "
-"leave a note to whomever reads it. In this case, the copyright section "
-"contains our note and credits the original photographers, while the artists "
-"section shows you a list of the photographers with links to the original "
-"photos when you click the Credits button. The web URLs put after their names "
-"in the array turn their names into clickable links in the Credits section."
+"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 ""
-"ÎÎÎÏ <link xref=\"aboutdialog.js\">AboutDialog</link> ÎÏÎÎ ÏÎÎÎÎ ÎÎÎÏÎÏÎÏÎÎÎ "
-"ÏÏÎÎÎÎÏÎ ÏÎÏ ÎÏÎÏÎÎÏÎ ÎÎ ÎÏÎÏÎÏÎ, ÎÎÎ ÎÎ ÎÎÎÎÎÎÎÏÏÎÏÎ ÎÏÎÎÎÎÎÎÏÎÏÎ ÎÎÏÎÎÏÎ "
-"ÏÏÎÎ ÎÏÎÏÎÎÎÎ ÎÎÎ ÎÎ ÎÏÎÏÎÏÎ ÎÎÎ ÏÎÎÎÎÏÏÎ ÏÎ ÎÏÎÎÎÎÎÎÏÎÏÎ ÏÎ ÎÎÎÎÎÎÎÎ. ÎÎ "
-"ÎÏÏÎÎ ÏÎÎ ÏÎÏÎÏÏÏÏÎ, Î ÎÎÏÏÎÏÎ ÏÎÎÏÎÎÏÎÎÏÎ ÎÎÎÎÎÏÎÎÏÏÎ ÏÎÏÎÎÏÎÎ ÏÎ ÏÎÎÎÎÏÏÎ "
-"ÎÎÏ ÎÎÎ ÎÎÎÎÎÏ ÏÏÎ ÎÏÏÎÎÏÎ ÏÏÏÎÎÏÎÏÏÎ, ÎÎÏ Î ÎÎÏÏÎÏÎ ÏÏÎ ÎÎÎÎÎÏÎÏÎÏÎ ÏÎÏ "
-"ÎÎÏÎÎÎÎÎÎ ÎÎÎ ÎÎÏÏÎ ÏÏÎ ÏÏÏÎÎÏÎÏÏÎ ÎÎ ÏÏÎÎÎÏÎÎÏÏ ÏÏÎÏ ÎÏÏÎÎÎÏ ÏÏÏÎÎÏÎÏÎÎÏ "
-"ÏÏÎÎ ÏÎÏÎÏÎ ÏÎ ÎÎÏÎÏÎ ÎÎ ÏÎÏ ÎÎÎÎÎÏ. ÎÎ URLs ÏÎÏ ÎÏÏÎÏ ÎÎÏÎ ÏÎ ÎÎÏÎÎÏÎ ÏÎÏÏ "
-"ÏÏÎÎ ÏÎÎÎÎÎ ÎÎÎÎÏÎ ÏÎ ÎÎÏÎÎÏÎ ÏÎÏÏ ÎÏÎÎÎÎÎÎÎÏÏ ÏÏÎÎÎÏÎÎÏÏ ÏÏÎÎ ÎÎÏÏÎÏÎ ÎÎ "
-"ÏÎÏ ÎÎÎÎÎÏ."
+"Î ÏÏÎÎÏÏÎÏÎ <code>static main</code> ÏÏÎÏÎÎ ÎÏÏ ÏÏÎÎÏÎÎÎÎÎ ÏÏÎÎ ÎÎÎÎÎÎÏÎ ÎÎÎ "
+"ÎÏÎÏÎÎÎÎ Vala. ÎÎÎÎÎ ÎÎÎÎÏ ÏÏÎÎÏÏÎÏÎÎÏ ÏÎÏ ÎÎÎÎÎÏÏÎÎÏÎ ÏÎÎ ÎÎÎÏÎ <code>Main</"
+"code>, ÏÏÎÎÎÎÎÏÎ ÎÎÎ ÎÎÏÎ ÏÏÎÏÎÏÎ ÏÎÎ ÎÏÎÏÎÎÎÎ. Î ÏÏÎÎÏÏÎÏÎ <link href="
+"\"http://valadoc.org/gtk+-3.0/Gtk.main.html\";><code>Gtk.main</code></link> "
+"ÎÎÎÎÎÎ ÏÎÎ GTK <link href=\"http://en.wikipedia.org/wiki/Event_loop\";>ÎÏÏÎÎÏ "
+"ÎÏÏÏÎÏ</link>, ÏÎÏ ÏÏÎÏÎÎ ÏÎ ÎÎÎÏÎÏÎ ÏÏÎÏÏÎ ÎÎÎ ÎÎÎÎÎÎ ÎÎÏÏÎÏÎ ÏÏÎ ÏÏÎÎÎÎÏÏÎ "
+"(ÏÏÏÏ ÎÎÎÎ ÎÎÎ ÏÎÏÎÎÎÏÎ ÏÎÎÎÏÏÎÏ)."
 
-#: C/switch.js.page:254(p)
+#: C/image-viewer.vala.page:128(section/p)
+#: C/magic-mirror.vala.page:88(section/p)
 msgid ""
-"Finally, we create a new instance of the finished SwitchExample class, and "
-"set the application running."
+"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 ""
-"ÎÎÎÎÎÎ, ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ ÏÎÏ ÎÎÎÎÎÎÏÏÎÎÎÎÏ ÎÎÎÏÎÏ "
-"SwitchExample ÎÎÎ ÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ."
-
-#: C/switch.js.page:265(link) C/messagedialog.py.page:63(link)
-#: C/messagedialog.js.page:193(link) C/messagedialog.c.page:41(link)
-#: C/gmenu.vala.page:26(title) C/gmenu.py.page:26(title)
-#: C/gmenu.py.page:76(link) C/gmenu.js.page:20(title) C/gmenu.js.page:29(link)
-#: C/gmenu.c.page:20(title) C/gmenu.c.page:31(link)
-#: C/aboutdialog.py.page:47(link) C/aboutdialog.js.page:28(link)
-#: C/aboutdialog.c.page:37(link)
-msgid "GMenu"
-msgstr "GMenu"
-
-#: C/switch.js.page:266(link) C/messagedialog.py.page:61(link)
-#: C/messagedialog.js.page:194(link) C/messagedialog.c.page:39(link)
-#: C/menubar.py.page:183(link) C/gmenu.py.page:77(link)
-#: C/gmenu.js.page:30(link) C/gmenu.c.page:32(link)
-#: C/filechooserdialog.py.page:78(link) C/aboutdialog.js.page:29(link)
-msgid "GSimpleAction"
-msgstr "GSimpleAction"
+"ÎÎÎÎÎÎ ÏÎÏ <gui>ÏÏÎÎÎÏÎÏ</gui> ÏÎ <gui>ÏÏÎÎÏÎÎÎÎÎ</gui> ÎÎÎ ÏÏÏÎ ÏÎÏÎÎÎ "
+"<gui>ÎÎÏÎÎÎÏÎ</gui> ÎÎÎ ÏÏÎÎÎÏÎ ÏÎÏ ÎÎÏÎÎÏÎÎÏ ÎÎÏÎÏÎÎÏÎÏ. ÎÏÎÎÎÎÎÏÎÎ ÎÎ ÏÎ "
+"ÎÎÎÎÏÎ ÎÏÎÎ ÎÎÎ ÏÎÏÎ, ÎÎÎ ÏÎÎ ÏÏÏÏÎ ÎÎÏÎÏÎÎÏÎ."
 
-#: C/switch.js.page:270(link) C/image.js.page:33(link)
-msgid "Gtk.Image"
-msgstr "Gtk.Image"
+#: C/image-viewer.vala.page:134(section/p)
+msgid ""
+"Now we will bring life into the empty window. GTK organizes the user "
+"interface with <link href=\"http://www.valadoc.org/gtk+-2.0/Gtk.Container.";
+"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 ""
+"ÎÏÏÎ ÎÎ ÎÏÏÎÏÎÎ ÎÏÎ ÏÎ ÎÎÎ ÎÎÎÎÎ ÏÎÏÎÎÏÏÎ. ÎÎ GTK ÎÏÎÎÎÏÎÎÎ ÏÎ ÎÎÎÏÎÏÎ "
+"ÏÏÎÏÏÎ ÎÎ ÏÎ <link href=\"http://www.valadoc.org/gtk+-2.0/Gtk.Container.html";
+"\"><code>Gtk.Container</code></link> ÏÎÏ ÎÏÎÏÎÏÎ ÎÎ ÏÎÏÎÎÏÎÏÎ ÎÎÎÎ ÎÏÎÏÎÎÎ "
+"ÏÏÏÏÎÏÎÎÎ ÎÎÎ ÎÎÏÎÎ ÎÎÎÎÏÏ ÏÎÏÎÎÎÏÎÏ. ÎÎÏ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÏÎÎ ÎÏÎÎÏÏÏÎÏÎ "
+"ÎÎÎÎÎÏÎÎÎ ÏÎÏÎÎÎÏÎ, ÎÎÎ <link href=\"http://unstable.valadoc.org/gtk+-2.0/";
+"Gtk.Box.html\"><code>Gtk.Box</code></link>."
 
-#: C/switch.c.page:7(title)
-msgid "Switch (C)"
-msgstr "ÎÎÎÎÏÏÏÎÏ (C)"
+#: C/image-viewer.vala.page:138(section/p)
+msgid "Add the following lines to the top of the <code>Main</code> class:"
+msgstr ""
+"ÎÏÎÏÎÎÏÏÎ ÏÎÏ ÎÏÏÎÎÎÎÏ ÎÏÎÎÎÎÏ ÏÏÎÎ ÎÎÏÏÏÎ ÏÎÏ ÎÎÎÏÎÏ <code>Main</code>:"
 
-#: C/switch.c.page:24(p)
-msgid "This switch toggles the title of the window."
-msgstr "ÎÏÏÏÏ Î ÎÎÎÎÏÏÏÎÏ ÎÎÎÎÎÎÏÏÎÎ ÏÎÎ ÏÎÏÎÎ ÏÎÏ ÏÎÏÎÎÏÏÎÏ."
+#: C/image-viewer.vala.page:139(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"private Window window;\n"
+"private Image image;\n"
+msgstr ""
+"\n"
+"private Window window;\n"
+"private Image image;\n"
 
-#: C/strings.py.page:8(title)
-msgid "Strings (Python)"
-msgstr "ÎÏÎÎÎÎÎÏÎÎÏÎÏ (Python)"
+#: C/image-viewer.vala.page:144(section/p)
+msgid "Now replace the current constructor with the one below:"
+msgstr "ÎÏÏÎ ÎÎÏÎÎÎÏÎÏÏÎÏÏÎ ÏÎÎ ÏÏÎÏÎÎÏÎ ÎÎÏÎÏÎÎÏÎÏÏÎ ÎÎ ÏÎÎ ÏÎÏÎÎÎÏÏ:"
 
-#: C/strings.py.page:12(desc)
-msgid "An explanation of how to deal with strings in Python and GTK+."
+#: C/image-viewer.vala.page:145(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"\n"
+"public Main () {\n"
+"\n"
+"\twindow = new Window ();\n"
+"\twindow.set_title (\"Image Viewer in Vala\");\n"
+"\n"
+"\t// Set up the UI\n"
+"\tvar box = new Box (Orientation.VERTICAL, 5);\n"
+"\tvar button = new Button.with_label (\"Open image\");\n"
+"\timage = new Image ();\n"
+"\n"
+"\tbox.pack_start (image, true, true, 0);\n"
+"\tbox.pack_start (button, false, false, 0);\n"
+"\twindow.add (box);\n"
+"\n"
+"\t// Show open dialog when opening a file\n"
+"\tbutton.clicked.connect (on_open_image);\n"
+"\n"
+"\twindow.show_all ();\n"
+"\twindow.destroy.connect (main_quit);\n"
+"}\n"
 msgstr ""
-"ÎÎÎ ÎÎÎÎÎÏÎ ÏÏÏ ÎÎ ÎÎÏÎÎÎÏÏÏÎÏÎÏÎ ÏÎÏ ÏÏÎÎÎÎÎÏÎÎÏÎÏ ÏÎ Python ÎÎÎ GTK+."
+"\n"
+"\n"
+"public Main () {\n"
+"\n"
+"\twindow = new Window ();\n"
+"\twindow.set_title (\"Image Viewer in Vala\");\n"
+"\n"
+"\t// Set up the UI\n"
+"\tvar box = new Box (Orientation.VERTICAL, 5);\n"
+"\tvar button = new Button.with_label (\"Open image\");\n"
+"\timage = new Image ();\n"
+"\n"
+"\tbox.pack_start (image, true, true, 0);\n"
+"\tbox.pack_start (button, false, false, 0);\n"
+"\twindow.add (box);\n"
+"\n"
+"\t// Show open dialog when opening a file\n"
+"\tbutton.clicked.connect (on_open_image);\n"
+"\n"
+"\twindow.show_all ();\n"
+"\twindow.destroy.connect (main_quit);\n"
+"}\n"
 
-#: C/strings.py.page:25(title)
-msgid "Strings"
-msgstr "ÎÏÎÎÎÎÎÏÎÎÏÎÏ"
+#: C/image-viewer.vala.page:170(item/p)
+msgid ""
+"The first two lines are the parts of the GUI that we will need to access "
+"from more than one method. We declare them up here so that they are "
+"accessible throughout the class instead of only in the method where they are "
+"created."
+msgstr ""
+"ÎÎ ÏÏÏÏÎÏ ÎÏÎ ÎÏÎÎÎÎÏ ÎÎÎÎÎ ÎÎÏÎ ÏÎÏ GUI ÏÎÏ ÎÎ ÏÏÎÎÎÏÏÎÏÎ ÏÏÏÏÎÎÏÎ ÎÏÏ "
+"ÏÎÏÎÏÏÏÏÎÏÎÏ ÎÏÏ ÎÎÎ ÎÎÎÏÎÎÏÏ. ÎÎÏ ÎÎÎÏÎÎÏÎÎ ÎÎÏ ÎÏÏÎ ÏÏÏÎ ÎÎ ÎÎÎÎÎ "
+"ÏÏÎÏÎÎÏÎÎÎÏ ÎÎÏÎ ÎÏÏ ÏÎÎ ÎÎÎÏÎ ÎÎÏÎ ÎÏÎÎ ÎÏÏ ÏÎ ÎÎÎÎÎÎ ÏÏÎÏ ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ."
 
-#: C/strings.py.page:30(title)
-msgid "Definitions"
-msgstr "ÎÏÎÏÎÎÎ"
+#: C/image-viewer.vala.page:174(item/p)
+msgid ""
+"The first lines of the constructor create the empty window. The next lines "
+"create the widgets we want to use: a button for opening up an image, the "
+"image view widget itself and the box we will use as a container."
+msgstr ""
+"ÎÎ ÏÏÏÏÎÏ ÎÏÎÎÎÎÏ ÏÎÏ ÎÎÏÎÏÎÎÏÎÏÏÎ ÎÎÎÎÎÏÏÎÎÏÎ ÏÎ ÎÎÎÎÎ ÏÎÏÎÎÏÏÎ. ÎÎ "
+"ÎÏÏÎÎÎÎÏ ÎÏÎÎÎÎÏ ÎÎÎÎÎÏÏÎÎÏÎ ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÏÎÏ ÎÎÎÎÏÎÎ ÎÎ "
+"ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ: ÎÎÎ ÎÎÏÎÏÎ ÎÎÎ ÎÎÎÎÎÎÎ ÎÎÎÏ ÎÎÎÏÎÎÏ, ÏÎ ÎÎÎÎ ÏÎ ÎÏÎÏÎÎÏ "
+"ÏÏÏÏÎÏÎÎÏ ÏÏÎÎÎÎÎÏ ÏÎÏ ÎÎÎÏÎÎÏ ÎÎÎ ÏÎ ÏÎÎÎÏÎÎ ÏÎÏ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÏÏ "
+"ÏÎÏÎÎÎÏÎ."
 
-#: C/strings.py.page:32(p)
+#: C/image-viewer.vala.page:178(item/p)
 msgid ""
-"Conceptionally, a <em>string</em> is a list of <em>characters</em> such as "
-"'A', 'B', 'C' or 'Ã'. Characters are abstract representations and their "
-"meaning depends on the language and context they are used in. The "
-"<em>Unicode standard</em> describes how characters are represented by "
-"<em>code points</em>. For example the characters above are represented with "
-"the code points U+0041, U+0042, U+0043, and U+00C9, respectively. Basically, "
-"code points are numbers in the range from 0 to 0x10FFFF."
+"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 ""
-"ÎÎÎÎÎÎÎÎÎÎÎÎ ÎÎÎ <em>ÏÏÎÎÎÎÎÏÎÎÏÎ</em> ÎÎÎÎÎ ÎÎÎ ÎÎÏÏÎ <em>ÏÎÏÎÎÏÎÏÏÎ</em> "
-"ÏÏÏÏ 'A', 'B', 'C' or 'Ã'. ÎÎ ÏÎÏÎÎÏÎÏÎÏ ÎÎÎÎÎ ÎÏÎÏÎÎÎÎÎÏ ÎÎÎÏÎÏÎÏÏÎÏÎÎÏ ÎÎÎ "
-"ÏÎ ÎÏÎÎÎ ÏÎÏÏ ÎÎÎÏÏÎÏÎÎ ÎÏÏ ÏÎ ÎÎÏÏÏÎ ÎÎÎ ÏÎ ÏÎÏÎÎÏÏÎÎÎÎ ÏÏÎ ÎÏÎÎÎ "
-"ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ. ÎÎ <em>ÏÏÏÎÎÏ Unicode</em> ÏÎÏÎÎÏÎÏÎÎ ÏÏÏ ÎÎ ÏÎÏÎÎÏÎÏÎÏ "
-"ÎÎÎÏÎÏÎÏÏÏÎÏÎÎ ÎÏÏ <em>ÏÎÎÎÎÎ ÎÏÎÎÎÎ</em>. ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ ÎÎ ÏÎÏÎÏÎÎÏ "
-"ÏÎÏÎÎÏÎÏÎÏ ÎÎÎÏÎÏÎÏÏÏÎÏÎÎ ÎÎ ÏÎ ÏÎÎÎÎÎ ÎÏÎÎÎÎ U+0041, U+0042, U+0043 ÎÎÎ U"
-"+00C9, ÎÎÏÎÏÏÎÎÏÎ. ÎÎÏÎÎÎ, ÏÎ ÏÎÎÎÎÎ ÎÏÎÎÎÎ ÎÎÎÎÎ ÎÏÎÎÎÎÎ ÏÏÎÎ ÏÎÏÎÎÏÎ ÎÏÏ 0 "
-"ÎÏÏ 0x10FFFF."
+"ÎÎ ÎÎÎÏÎÎÏ ÏÏÎ <link href=\"http://unstable.valadoc.org/gtk+-2.0/Gtk.Box.";
+"pack_start.html\"><code>pack_start</code></link> ÏÏÎÏÎÎÏÎÏÎ ÏÎ ÎÏÎ ÎÏÎÏÎÎÎ "
+"ÏÏÏÏÎÏÎÎÎ ÏÏÎ ÏÎÎÎÏÎÎ ÎÎÎ ÎÏÎÎÎÏÎ ÏÎ ÏÏÎÏÎÏÎÏÎÏÎ ÏÎÏÏ. Î ÎÎÎÏÎÎ ÎÎ ÎÏÎÎÏÎÎÎÎ "
+"ÏÎ ÎÎÎÎ ÎÎÎÎÎÏÎÎÎ ÏÏÏÎ ÎÎÏ ÏÎ ÎÎÏÎÏÎ ÎÎ ÎÎÎÎÎ ÎÏÎÎ ÏÏÏÎ ÎÎÎÎÎÎ ÏÏÎ "
+"ÏÏÎÎÎÎÎÏÎÎ. ÎÎ ÏÎÏÎÏÎÏÎÏÎÏÎ ÏÏÎ ÎÎÎ ÎÏÎÎÎÏÎÎ ÏÎÏÎ ÎÎÎÎÎÎ ÏÏÎ ÎÏÎÏÎÎÎ "
+"ÏÏÏÏÎÏÎÎÎ. ÎÏÎ GTK ÎÏÏÏ ÏÏÎÎÎÏÏ ÎÎÎ ÏÏÎÎÎÎÎÏÎÎ ÎÏÎÎÎÎ ÎÎÎÎÎ ÏÎÎ ÎÏÎÏ ÎÎ "
+"ÎÏÎÏÎ ÎÎÎ ÎÎÎÏÎÎÎ ÏÎÏ ÏÎÎÎÎÏÎÎ ÎÎÎÎ ÎÎ ÎÎÎÏÎÏÎÏÎÎÎ ÎÎÎÎÎÎ ÏÎÏÎÎÏÏÏÎ. ÎÏÎ "
+"ÏÏÎÎÏÎÎÎ, ÏÎ ÏÎÎÎÏÎÎ ÏÏÎÏÏÎÎÎÏÎÎ ÏÏÎ ÏÎÏÎÎÏÏÎ."
 
-#: C/strings.py.page:34(p)
+#: C/image-viewer.vala.page:185(item/p)
 msgid ""
-"The representation of a string as a list of code points is abstract. In "
-"order to convert this abstract representation into a sequence of bytes the "
-"Unicode string must be <em>encoded</em>. The simplest from of encoding is "
-"ASCII and is performed as follows:"
+"We need to define what happens when the user clicks on the button. GTK uses "
+"the concept of <em>signals</em>."
 msgstr ""
-"Î ÎÎÎÏÎÏÎÏÏÎÏÎ ÎÎÎÏ ÏÏÎÎÎÎÎÏÎÎÏÎÏ ÏÏ ÎÎÎÏ ÎÎÏÏÎÏ ÏÎÎÎÎÏÎ ÎÏÎÎÎÎ ÎÎÎÎÎ "
-"ÎÏÎÏÎÎÎÎÎ. ÎÎÎ ÎÎ ÎÎÏÎÏÏÎÏÎÏÎ ÎÏÏÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎÎ ÎÎÎÏÎÏÎÏÏÎÏÎ ÏÎ ÎÎÎ ÏÎÎÏÎ "
-"bytes Î ÏÏÎÎÎÎÎÏÎÎÏÎ Unicode ÏÏÎÏÎÎ ÎÎ <em>ÎÏÎÎÎÎÏÎÎÎÎÎÎ</em>. Î ÎÏÎÎÏÏÏÎÏÎ "
-"ÎÎÏÏÎ ÎÏÎÎÎÎÏÎÎÎÏÎÏ ÎÎÎÎÎ Î ASCII ÎÎÎ ÎÎÏÎÎÎÎÏÎÎ ÏÏ ÎÎÎÏ:"
+"ÎÏÎÎÎÎÎÏÎÎ ÎÎ ÎÏÎÏÎÏÎÎ ÏÎ ÏÏÎÎÎÎÎÎÎ ÏÏÎÎ Î ÏÏÎÏÏÎÏ ÏÎÏÎ ÏÎ ÎÎÏÎÏÎ. ÎÎ GTK "
+"ÏÏÎÏÎÎÎÏÎÎÎÎ ÏÎÎ ÎÎÎÎÎÎ ÏÏÎ <em>ÏÎÎÎÏÏÎ</em>."
 
-#: C/strings.py.page:37(p)
+#: C/image-viewer.vala.page:186(item/p)
 msgid ""
-"If the code point is strictly less than 128, each byte is the same as the "
-"value of the code point."
+"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 ""
-"ÎÎÎ ÏÎ ÏÎÎÎÎÎ ÎÏÎÎÎÎ ÎÎÎÎÎ ÎÏÏÏÎÏÎ ÎÎÎÏÏÏÎÏÎ ÎÏÏ 128, ÎÎÎÎ byte ÎÎÎÎÎ Î ÎÎÎÎ "
-"ÏÏÏÏ Î ÏÎÎÎ ÏÎÏ ÏÎÎÎÎÎÏ ÎÏÎÎÎÎ."
+"ÎÏÎÎ ÏÎ <link href=\"http://valadoc.org/gtk+-3.0/Gtk.Button.html\";>ÎÎÏÎÏÎ</"
+"link> ÏÎÏÎÎÏÎÎ ÏÏÎÎÎÎÎÎ ÏÎ ÏÎÎÎ <link href=\"http://valadoc.org/gtk+-3.0/Gtk.";
+"Button.clicked.html\"><code>clicked</code></link>, ÏÎÏ ÎÏÎÏÎÏÎÎ ÎÎ "
+"ÏÏÎÎÎÏÎÏÎÎ ÎÎ ÎÎÏÎÎÎ ÎÎÎÏÎÎÎÎ (ÎÏÎÏÎÎÎÎ ÏÎ ÎÎÎ ÎÎÎÎÎÎ <link href=\"https://";
+"live.gnome.org/Vala/SignalsAndCallbacks\">ÎÏÎÎÎÎÎÎÏÎÏ</link>)."
 
-#: C/strings.py.page:38(p)
+#: C/image-viewer.vala.page:189(item/p)
 msgid ""
-"If the code point is 128 or greater, the Unicode string canât be represented "
-"in this encoding. (Python raises a <sys>UnicodeEncodeError</sys> exception "
-"in this case.)"
+"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 ""
-"ÎÎÎ ÏÎ ÏÎÎÎÎÎ ÎÏÎÎÎÎ ÎÎÎÎÎ 128 Î ÎÎÎÎÎÏÏÎÏÎ, Î ÏÏÎÎÎÎÎÏÎÎÏÎ Unicode ÎÎÎ "
-"ÎÏÎÏÎÎ ÎÎ ÎÎÎÏÎÏÎÏÏÎÎÎÎ ÏÎ ÎÏÏÎÎ ÏÎÎ ÎÏÎÎÎÎÏÎÎÎÏÎ. (Î Python ÎÎÎÎÏÎÎ ÎÎÎ "
-"ÎÎÎÎÏÎÏÎ <sys>UnicodeEncodeError</sys> ÏÎ ÎÏÏÎÎ ÏÎÎ ÏÎÏÎÏÏÏÏÎ.)"
+"ÎÏÏÏ ÎÎÎÎÏÎÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ ÎÎÎÎÎÎ <code>connect</code> ÏÎÏ ÏÎÎÎÏÎÏ ÏÎÏ "
+"ÎÎÏÎÏÎÎÏ <code>clicked</code>, ÏÎÏ ÏÎ ÎÏÏÎÎ ÏÎÎ ÏÎÏÎÏÏÏÏÎ ÎÎÎÎ ÏÏÎ GTK ÎÎ "
+"ÎÎÎÎÏÎÎ ÏÎÎ ÎÎÎÎÎÎ ÎÏÎÎÎÎÎÎÏÎÏ (ÎÏÏÎÏÏÎ ÎÎÏÎÎ) <code>on_image_open</code> "
+"ÏÏÎÎ ÏÎ ÎÎÏÎÏÎ ÏÎÏÎÎÏÎÎ. ÎÎ ÎÏÎÏÎÏÎÎ ÏÎÎ <em>ÎÏÎÎÎÎÎÎÏÎ</em> ÏÏÎÎ ÎÏÏÎÎÎÎ "
+"ÎÎÏÏÎÏÎ."
 
-#: C/strings.py.page:41(p)
+#: C/image-viewer.vala.page:193(item/p)
 msgid ""
-"Although ASCII encoding is simple to apply it can only encode for 128 "
-"different characters which is hardly enough. One of the most commonly used "
-"encodings that addresses this problem is UTF-8 (it can handle any Unicode "
-"code point). UTF stands for âUnicode Transformation Formatâ, and the â8â "
-"means that 8-bit numbers are used in the encoding."
+"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 ""
-"ÎÎ ÎÎÎ Î ÎÏÎÎÎÎÏÎÎÎÏÎ ASCII ÎÎÎÎÎ ÎÏÎÎ ÏÏÎÎ ÎÏÎÏÎÎÎÎ ÎÏÎÏÎÎ ÎÎ ÎÏÎÎÎÎÏÎÎÎÏÎÎ "
-"ÎÏÎÎ 128 ÎÎÎÏÎÏÎÏÎÎÎÏÏ ÏÎÏÎÎÏÎÏÎÏ ÏÎÏ ÎÎÎÎÎ ÎÎÎÏÎÏÎÎÎÏ. ÎÎÎ ÎÏÏ ÏÎÏ "
-"ÏÏÎÎÎÎÏÏÎÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎÎÎÏ ÎÏÎÎÎÎÏÎÎÎÏÎÎÏ ÏÎÏ ÎÎÏÎÎÎÏÏÏÎÎÎÎ ÎÏÏÏ ÏÎ "
-"ÏÏÏÎÎÎÎÎ ÎÎÎÎÎ Î UTF-8 (ÎÏÎÏÎÎ ÎÎ ÏÎÎÏÎÏÏÎÎ ÎÏÎÎÎÎÎÏÎÏÎ ÏÎÎÎÎÎ ÎÏÎÎÎÎ "
-"Unicode). UTF ÏÎÎÎÎÎÎÎ âÎÎÏÏÎ ÎÎÏÎÏÏÎÎÎÏÎÏÎÎÏ ÎÎÎÎÎÏ ÎÏÎÎÎÎâ, ÎÎÎ ÏÎ â8â "
-"ÏÎÎÎÎÎÎÎ ÏÏÎ ÎÏÎÎÎÎÎ 8 ÎÏÎÎÎÎÏÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÏÏÎÎ ÎÏÎÎÎÎÏÎÎÎÏÎ."
+"ÎÏÎÎ ÎÏÎÎÎÎÎÎÏÎ, ÏÏÎÎÎÎÏÎÎÏÏÎ ÎÎ ÏÏÎÏÏÎÎÎÏÎÏÎÎ ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ "
+"<code>window</code> ÎÎÎ <code>image</code>, ÎÎ' ÎÏÏÏ ÏÎ ÎÏÎÎÎÏÎÎ ÏÏ ÎÎÎÏÏÎÎÎ "
+"ÎÎÎÎ ÏÏÎÎ ÎÎÏÏÏÎ ÏÏÎ ÎÎÎÏÎÏÎ ÎÎÏ."
 
-#: C/strings.py.page:46(title)
-msgid "Strings in Python 2"
-msgstr "ÎÏÎÎÎÎÎÏÎÎÏÎÏ ÏÎ Python 2"
+#: C/image-viewer.vala.page:197(item/p)
+msgid ""
+"The last <code>connect</code> call makes sure that the application exits "
+"when the window is closed. The code generated by Anjuta called an "
+"<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 ""
+"Î ÏÎÎÎÏÏÎÎÎ ÎÎÎÏÎ <code>connect</code> ÎÎÎÎÎÏÎÎÏÎÎ ÏÏÎ Î ÎÏÎÏÎÎÎÎ ÎÎÎÏÏÎÏÎÎ "
+"ÏÏÎÎ ÏÎ ÏÎÏÎÎÏÏÎ ÎÎÎÎÎÎÎ. Î ÎÎÎÎÎÏÏÎÎÏÎÎÎÎÏ ÎÏÎÎÎÎÏ ÎÏÏ ÏÎ Anjuta ÎÎÎÎÏÎ ÎÎÎ "
+"ÎÎÎÎÎÎ ÎÏÎÎÎÎÎÎÏÎÏ <code>on_destroy</code> ÏÎÏ ÎÎÎÎÏÎ <link href=\"http://";
+"www.valadoc.org/gtk+-2.0/Gtk.main_quit.html\"><code>Gtk.main_quit</code></"
+"link>, ÎÎÎÎ Î ÏÏÎÎÎÏÎ ÏÎÏ ÏÎÎÎÏÎÏ ÎÎÏ ÏÏÎ <code>main_quit</code> ÎÎÎÏÎ ÎÎÎÎÎ "
+"ÎÏÎÎÎÏÏÎÏÎ. ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÎÏÎÏÎÏÎ ÏÎ ÎÎÎÎÎÎ <code>on_destroy</code>."
 
-#: C/strings.py.page:48(p)
+#: C/image-viewer.vala.page:205(section/p)
 msgid ""
-"Python 2 comes with two different kinds of objects that can be used to "
-"represent strings, <code>str</code> and <code>unicode</code>. Instances of "
-"<code>unicode</code> are used to express Unicode strings, whereas instances "
-"of the <code>str</code> type are byte representations (the encoded string). "
-"Under the hood, Python represents Unicode strings as either 16- or 32-bit "
-"integers, depending on how the Python interpreter was compiled."
+"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 ""
-"Î Python 2 ÎÏÏÎÏÎÎ ÎÎ ÎÏÎ ÎÎÎÏÎÏÎÏÎÎÎ ÎÎÎÎ ÎÎÏÎÎÎÎÎÎÎÏÎ ÏÎÏ ÎÏÎÏÎÏÎ ÎÎ "
-"ÏÏÎÏÎÎÎÏÎÎÎÎÎÏÎ ÎÎÎ ÎÎÎÏÎÏÎÏÏÎÏÎ ÏÏÎÎÎÎÎÏÎÎÏÏÎ, <code>str</code> ÎÎÎ "
-"<code>unicode</code>. ÎÎÏÎÏÏÏÏÎÎÏ ÏÎÏ <code>unicode</code> ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ "
-"ÎÎÎ ÎÎ ÎÎÏÏÎÏÎÏÎ ÏÏÎÎÎÎÎÏÎÎÏÎÏ Unicode, ÎÎÏ ÏÎÏÎÏÏÏÏÎÎÏ ÏÎÏ ÏÏÏÎÏ <code>str</"
-"code> ÎÎÎÎÎ ÎÎÎÏÎÏÎÏÏÎÏÎÎÏ byte (Î ÎÏÎÎÎÎÏÎÎÎÎÎÎÎ ÏÏÎÎÎÎÎÏÎÎÏÎ). ÎÏÎ ÎÏÎÎÎ, "
-"Î Python ÎÎÏÎÏÏÎÏÏÏÎÏÎÎ ÏÏÎÎÎÎÎÏÎÎÏÎÏ Unicode ÏÏ ÎÎÏÎ 16- Î 32- ÎÏÎÎÎÎÏÎ "
-"ÎÎÎÏÎÎÎÏÏ, ÎÎÎÎÎÎÎ ÎÎ ÏÎ ÏÏÏ Î ÎÎÎÏÎÎÎÎÏÏÎÏ Python ÎÎÏÎÎÎÏÏÏÎÏÏÎÎÎ."
+"ÎÎ ÎÏÎÏÎÏÎÎ ÏÏÏÎ ÏÎÎ ÏÎÎÏÎÏÏÎ ÏÎÎÎÏÎÏ ÎÎÎ ÏÎ ÏÎÎÎ <code>clicked</code> ÎÎÎ "
+"ÏÎ ÎÎÏÎÏÎ ÏÎÏ ÎÎÎÏÎÏÎÎÎ ÏÏÎÎ. ÎÏÎÏÎÎÏÏÎ ÎÏÏÏÎ ÏÎÎ ÎÏÎÎÎÎ ÎÎÏÎ ÏÎÎ "
+"ÎÎÏÎÏÎÎÏÎÏÏÎ:"
 
-#: C/strings.py.page:50(code)
+#: C/image-viewer.vala.page:208(section/code)
 #, no-wrap
 msgid ""
-"<![CDATA[\n"
-">>> unicode_string = u\"Fu\\u00dfb\\u00e4lle\"\n"
-">>> print unicode_string]]>\n"
-"FuÃbÃlle\n"
+"\n"
+"public void on_open_image (Button self) {\n"
+"\tvar filter = new FileFilter ();\n"
+"\tvar dialog = new FileChooserDialog (\"Open image\",\n"
+"\t                                    window,\n"
+"\t                                    FileChooserAction.OPEN,\n"
+"\t                                    Stock.OK,     ResponseType.ACCEPT,\n"
+"\t                                    Stock.CANCEL, ResponseType.CANCEL);\n"
+"\tfilter.add_pixbuf_formats ();\n"
+"\tdialog.add_filter (filter);\n"
+"\n"
+"\tswitch (dialog.run ())\n"
+"\t{\n"
+"\t\tcase ResponseType.ACCEPT:\n"
+"\t\t\tvar filename = dialog.get_filename ();\n"
+"\t\t\timage.set_from_file (filename);\n"
+"\t\t\tbreak;\n"
+"\t\tdefault:\n"
+"\t\t\tbreak;\n"
+"\t}\n"
+"\tdialog.destroy ();\n"
+"}\n"
 msgstr ""
-"<![CDATA[\n"
-">>> unicode_string = u\"Fu\\u00dfb\\u00e4lle\"\n"
-">>> print unicode_string]]>\n"
-"FuÃbÃlle\n"
+"\n"
+"public void on_open_image (Button self) {\n"
+"\tvar filter = new FileFilter ();\n"
+"\tvar dialog = new FileChooserDialog (\"Open image\",\n"
+"\t                                    window,\n"
+"\t                                    FileChooserAction.OPEN,\n"
+"\t                                    Stock.OK,     ResponseType.ACCEPT,\n"
+"\t                                    Stock.CANCEL, ResponseType.CANCEL);\n"
+"\tfilter.add_pixbuf_formats ();\n"
+"\tdialog.add_filter (filter);\n"
+"\n"
+"\tswitch (dialog.run ())\n"
+"\t{\n"
+"\t\tcase ResponseType.ACCEPT:\n"
+"\t\t\tvar filename = dialog.get_filename ();\n"
+"\t\t\timage.set_from_file (filename);\n"
+"\t\t\tbreak;\n"
+"\t\tdefault:\n"
+"\t\t\tbreak;\n"
+"\t}\n"
+"\tdialog.destroy ();\n"
+"}\n"
+
+#: C/image-viewer.vala.page:231(section/p)
+msgid "This is a bit complicated, so let's break it down:"
+msgstr "ÎÏÏÏ ÎÎÎÎÎ ÎÎÎÎ ÏÎÎ ÏÎÏÎÏÎÎÎÎ, ÎÎÎÏÏÏ ÎÏ ÏÎ ÏÏÏÎÏÎÏÎÎ:"
 
-#: C/strings.py.page:56(p)
+#: C/image-viewer.vala.page:232(note/p)
 msgid ""
-"Unicode strings can be converted to 8-bit strings with <code>unicode.encode()"
-"</code>. Pythonâs 8-bit strings have a <code>str.decode()</code> method that "
-"interprets the string using the given encoding (that is, it is the inverse "
-"of the <code>unicode.encode()</code>):"
+"A signal handler is a type of callback method that is called when a signal "
+"is emitted. Here the terms are used interchangeably."
 msgstr ""
-"ÎÎ ÏÏÎÎÎÎÎÏÎÎÏÎÏ Unicode ÎÏÎÏÎÏÎ ÎÎ ÎÎÏÎÏÏÎÏÎÏÎ ÏÎ ÏÏÎÎÎÎÎÏÎÎÏÎÏ 8 ÎÏÎÎÎÎÏÎ "
-"ÎÎ <code>unicode.encode()</code>. ÎÎ ÏÏÎÎÎÎÎÏÎÎÏÎÏ 8 ÎÏÎÎÎÎÏÎ ÎÏÎÏÎ ÎÎÎ "
-"ÎÎÎÎÎÎ <code>str.decode()</code> ÏÎÏ ÎÏÎÎÎÎÏÎÎ ÏÎ ÏÏÎÎÎÎÎÏÎÎÏÎ "
-"ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ ÎÎÎÎÎÎÎÎ ÎÏÎÎÎÎÏÎÎÎÏÎ (ÎÎÎÎÎÎ, ÎÎÎÎÎ ÏÎ ÎÎÏÎÏÏÏÎÏÎ ÏÎÏ "
-"<code>unicode.encode()</code>):"
+"ÎÎÎÏ ÏÎÎÏÎÏÏÎÏ ÏÎÎÎÏÎÏ ÎÎÎÎÎ ÎÎÎÏ ÏÏÏÎÏ ÏÎÏ ÎÎÎÏÎÎÏ ÎÏÎÎÎÎÎÎÏÎÏ ÏÎÏ ÎÎÎÎÎÏÎÎ "
+"ÏÏÎÎ ÎÎÎ ÏÎÎÎ ÎÎÏÎÎÏÎÏÎÎ. ÎÎÏ ÎÎ ÏÏÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÎÎÎÎÎÎÏÎÎÎ."
 
-#: C/strings.py.page:69(p)
+#: C/image-viewer.vala.page:235(item/p)
 msgid ""
-"Unfortunately, Python 2.x allows you to mix <code>unicode</code> and "
-"<code>str</code> if the 8-bit string happened to contain only 7-bit (ASCII) "
-"bytes, but would get <sys>UnicodeDecodeError</sys> if it contained non-ASCII "
-"values."
+"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 ""
-"ÎÏÏÏÏÏÏÏ, Î Python 2.x ÎÏÎÏÏÎÏÎÎ ÏÎÎ ÎÎÎÎÎÎÎÎ <code>unicode</code> ÎÎÎ "
-"<code>str</code> ÎÎÎ Î ÏÏÎÎÎÎÎÏÎÎÏÎ 8 ÎÏÎÎÎÎÏÎ ÏÏÎÎÎÎ ÎÎ ÏÎÏÎÎÏÎÎ ÎÏÎÎ bytes "
-"ÎÏÎÎ 7 ÎÏÎÎÎÎÏÎ (ASCII), ÎÎÎÎ ÎÎ ÎÏÎÏÎÏÏÎ ÎÎ ÏÎÏÎÎ <sys>UnicodeDecodeError</"
-"sys> ÎÎÎ ÏÎÏÎÎÏÎÎ ÎÎ ASCII ÏÎÎÎÏ."
-
-#: C/strings.py.page:74(title)
-msgid "Strings in Python 3"
-msgstr "ÎÏÎÎÎÎÎÏÎÎÏÎÏ ÏÎ Python 3"
+"ÎÎ ÏÏÏÏÎ ÏÏÎÏÎÎ ÏÎÏ ÎÎÎÏÎÎÏ ÎÏÎÎÎÎÎÎÏÎÏ ÎÎÎÎÎ ÏÎÎÏÎÏÎ ÏÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ "
+"ÏÎÏ ÎÏÏÎÎÎÎ ÏÎ ÏÎÎÎ. ÎÎÏÎÎÎÏ ÏÎÏÎÏ ÎÎÎÎ ÎÏÎÏÎÎÏÎ ÏÎÏ ÏÏÎÎÎÎÎÏÎÎ ÎÎ ÏÎ ÏÎÎÎ "
+"ÎÏÏÎÎÏÎÎ ÎÎÏÎ ÎÏÏ ÎÏÏÏ, ÎÎÎÎ <em>ÏÎÏÎÎÎÎÎ</em> ÎÎÎ ÎÏÎÎ ÎÎÎÎÎÎ."
 
-#: C/strings.py.page:76(p)
+#: C/image-viewer.vala.page:237(item/p)
 msgid ""
-"Since Python 3.0, all strings are stored as Unicode in an instance of the "
-"<code>str</code> type. Encoded strings on the other hand are represented as "
-"binary data in the form of instances of the bytes type. Conceptionally, "
-"<code>str</code> refers to text, whereas bytes refers to data. Use "
-"<code>encode()</code> to go from <code>str</code> to <code>bytes</code>, and "
-"<code>decode()</code> to go from <code>bytes</code> to <code>str</code>."
+"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 ""
-"ÎÏÏ ÏÎÎ Python 3.0, ÏÎÎÏ ÎÎ ÏÏÎÎÎÎÎÏÎÎÏÎÏ ÎÏÎÎÎÎÎÏÎÎÏÎÎ ÏÏ Unicode ÏÎ ÎÎÎ "
-"ÏÏÎÎÎÎÏÏÏÏÎ ÏÎÏ ÏÏÏÎÏ <code>str</code>. ÎÏÎÎÎÎÏÎÎÎÎÎÎÎÏ ÏÏÎÎÎÎÎÏÎÎÏÎÏ ÎÏÏ "
-"ÏÎÎ ÎÎÎÎ ÎÎÏÎÎ ÎÎÎÏÎÏÎÏÏÏÎÏÎÎ ÏÏ ÎÏÎÎÎÎÎ ÎÎÎÎÎÎÎÎ ÏÏÎ ÏÏÏÎÎ ÏÏÎÎÎÎÎÏÏÏÏÎ ÏÎÏ "
-"ÏÏÏÎÏ bytes. ÎÎÎÎÎÎÎÎÎÎÎÎ, Î <code>str</code> ÎÎÎÏÎÏÎÏÎÎ ÏÎ ÎÎÎÎÎÎÎ, ÎÎÏ ÏÎ "
-"bytes ÎÎÎÏÎÏÎÎÏÎÎ ÏÎ ÎÎÎÎÎÎÎÎ. ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ <code>encode()</code> ÎÎÎ "
-"ÎÎÏÎÎÎÏÎ ÎÏÏ <code>str</code> ÏÎ <code>bytes</code> ÎÎÎ <code>decode()</"
-"code> ÎÎÎ ÎÎÏÎÎÎÏÎ ÎÏÏ <code>bytes</code> ÏÎ <code>str</code>."
+"ÎÎ ÎÏÏÎÎ ÏÎÎ ÏÎÏÎÏÏÏÏÎ ÏÎ <code>button</code> ÎÏÏÎÎÎÎ ÏÎ ÏÎÎÎ <code>clicked</"
+"code>, ÏÎÏ ÏÏÎÎÎÎÏÎÎ ÎÎ ÏÎ ÎÎÎÎÎÎ ÎÏÎÎÎÎÎÎÏÎÏ <code>on_open_image</code>:"
 
-#: C/strings.py.page:78(p)
+#: C/image-viewer.vala.page:238(item/code)
+#, no-wrap
 msgid ""
-"In addition, it is no longer possible to mix Unicode strings with encoded "
-"strings, because it will result in a <code>TypeError</code>:"
+"\n"
+"        button.clicked.connect (on_open_image);\n"
 msgstr ""
-"ÎÏÎÏÎÎÎÎ, ÎÎÎ ÎÎÎÎÎ ÏÎÎ ÎÏÎÎÏÏ ÎÎ ÎÎÎÎÎÎÎÎÏÎ ÏÏÎÎÎÎÎÏÎÎÏÎÏ Unicode ÎÎ "
-"ÎÏÎÎÎÎÏÎÎÎÎÎÎÎÏ ÏÏÎÎÎÎÎÏÎÎÏÎÏ, ÎÏÎÎÎÎ ÎÎ ÎÎÏÎÎÎÎÎÎ ÏÎ ÎÎÎ <code>TypeError</"
-"code>:"
-
-#: C/strings.py.page:95(title)
-msgid "Unicode in GTK+"
-msgstr "Unicode ÏÎ GTK+"
+"\n"
+"        button.clicked.connect (on_open_image);\n"
 
-#: C/strings.py.page:97(p)
+#: C/image-viewer.vala.page:242(item/p)
 msgid ""
-"GTK+ uses UTF-8 encoded strings for all text. This means that if you call a "
-"method that returns a string you will always obtain an instance of the "
-"<code>str</code> type. The same applies to methods that expect one or more "
-"strings as parameter, they must be UTF-8 encoded. However, for convenience "
-"PyGObject will automatically convert any unicode instance to str if supplied "
-"as argument:"
+"The <code>on_open_image</code> method takes the button that emitted the "
+"signal as an argument:"
 msgstr ""
-"ÎÎ GTK+ ÏÏÎÏÎÎÎÏÎÎÎÎ ÎÏÎÎÎÎÏÎÎÎÎÎÎÎÏ ÏÏÎÎÎÎÎÏÎÎÏÎÏ UTF-8 ÎÎÎ ÏÎÎ ÏÎ ÎÎÎÎÎÎÎ. "
-"ÎÏÏÏ ÏÎÎÎÎÎÎÎ ÏÏÎ ÎÎÎ ÎÎÎÎÏÎÏÎ ÎÎÎ ÎÎÎÎÎÎ ÏÎÏ ÎÏÎÏÏÏÎÏÎÎ ÎÎÎ ÏÏÎÎÎÎÎÏÎÎÏÎ ÎÎ "
-"ÏÎÎÏÎÎÏÎ ÏÎÎÏÎ ÎÎÎ ÏÏÎÎÎÎÏÏÏÏÎ ÏÎÏ ÏÏÏÎÏ <code>str</code>. ÎÎ ÎÎÎÎ "
-"ÎÏÎÏÎÏÎÎÏÎÎ ÏÏÎÏ ÎÎÎÏÎÎÏÏ ÏÎÏ ÏÎÏÎÎÎÎÎÏÎ ÎÎÎ Î ÏÎÏÎÏÏÏÏÎÏÎÏ ÏÏÎÎÎÎÎÏÎÎÏÎÏ ÏÏ "
-"ÏÎÏÎÎÎÏÏÎ, ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎ ÎÏÎÎÎÎÏÎÎÎÎÎÎÎÏ UTF-8. ÎÎÏÏ, ÎÎÎ ÎÏÎÎÎÎÎ ÏÎ "
-"PyGObject ÎÎ ÎÎÏÎÏÏÎÏÎÎ ÎÏÏÏÎÎÏÎ ÎÏÎÎÎÎÎÏÎÏÎ ÏÏÎÎÎÎÏÏÏÏÎ unicode ÏÎ str ÎÎÎ "
-"ÏÎÏ ÎÎÎÎÎ ÏÏ ÏÏÎÏÎÎ:"
-
-#: C/strings.py.page:108(p)
-msgid "Furthermore:"
-msgstr "ÎÏÎÏÎÎÎÎ:"
+"Î ÎÎÎÎÎÎÏ <code>on_open_image</code> ÏÎÎÏÎÎÎ ÏÎ ÎÎÏÎÏÎ ÏÎÏ ÎÎÎÏÎÎÏÎ ÏÎ ÏÎÎÎ "
+"ÏÏ ÏÏÎÏÎÎ:"
 
-#: C/strings.py.page:113(p)
+#: C/image-viewer.vala.page:243(item/code)
+#, no-wrap
 msgid ""
-"would return <code>False</code>, with the warning <code>__main__:1: "
-"UnicodeWarning: Unicode equal comparison failed to convert both arguments to "
-"Unicode - interpreting them as being unequal</code> (<code>Gtk.Label.get_text"
-"()</code> will always return a <code>str</code> instance; therefore, "
-"<code>txt</code> and <code>unicode_string</code> are not equal)."
+"\n"
+"        public void on_open_image (Button self)\n"
 msgstr ""
-"ÎÎ ÎÏÎÏÏÏÎÏÎ <code>False</code>, ÎÎ ÏÎÎ ÏÏÎÎÎÎÎÏÎÎÎÏÎ <code>__main__:1: "
-"UnicodeWarning: Î ÏÏÎÎÏÎÏÎ ÏÎÎÎÏÎ Unicode ÎÏÎÏÏÏÎ ÎÎ ÎÎÏÎÏÏÎÏÎÎ ÎÎÎ ÏÎ ÎÏÎ "
-"ÎÏÎÏÎÎÏÎ ÏÎ Unicode - ÎÏÎÎÎÎÏÎÎÏÎÏ ÏÎ ÏÏ ÎÎÏÎÎÎÎ</code> (<code>Gtk.Label."
-"get_text()</code> ÎÎ ÎÏÎÏÏÏÎÏÎÎ ÏÎÎÏÎ ÎÎÎ ÏÏÎÎÎÎÏÏÏÏÎ <code>str</code>Â "
-"ÏÏÎÎÏÏÏ, <code>txt</code> and <code>unicode_string</code> ÎÎÎ ÎÎÎÎÎ ÏÎÎÎÎ)."
+"\n"
+"        public void on_open_image (Button self)\n"
 
-#: C/strings.py.page:115(p)
+#: C/image-viewer.vala.page:248(item/p)
 msgid ""
-"This is especially important if you want to internationalize your program "
-"using <link href=\"http://docs.python.org/library/gettext.html";
-"\"><code>gettext</code></link>. You have to make sure that <code>gettext</"
-"code> will return UTF-8 encoded 8-bit strings for all languages."
+"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 ""
-"ÎÏÏÏ ÎÎÎÎÎ ÎÎÎÎÎÏÎÏÎ ÏÎÎÎÎÏÎÎÏ ÎÎÎ ÎÎÎÎÏÎ ÎÎ ÎÎÎÎÎÎÏÎÎÎÏÎÏÎ ÏÎ ÏÏÏÎÏÎÎÎÎ ÏÎÏ "
-"ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ <link href=\"http://docs.python.org/library/gettext.html";
-"\"><code>gettext</code></link>. ÎÏÎÏÎÎ ÎÎ ÎÎÎÎÎÏÎÎÎÏÎ ÏÏÎ Î <code>gettext</"
-"code> ÎÎ ÎÏÎÏÏÏÎÏÎÎ ÎÏÎÎÎÎÏÎÎÎÎÎÎÎÏ ÏÏÎÎÎÎÎÏÎÎÏÎÏ 8 ÎÏÎÎÎÎÏÎ UTF-8 ÎÎÎ ÏÎÎÏ "
-"ÏÎÏ ÎÎÏÏÏÎÏ."
+"Î ÎÏÏÎÎÎÎ ÎÎÎÎÎÏÎÏÎÏÏÎ ÎÏÎÎÎÎ ÎÎÎÎÎ ÏÏÎÎ Î ÎÎÎÎÎÎÎÏ ÎÏÎÎÎÎÎÏ ÏÎÏ ÎÏÏÎÎÎÏ "
+"ÎÎÎÎÎÏÏÎÎÎÏÎÎ. ÎÎ <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.";
+"FileChooserDialog.html\"><code>FileChooserDialog</code></link> ÏÎÏ "
+"ÎÎÏÎÏÎÎÏÎÏÏÎ ÏÎÎÏÎÎÎ ÏÎÎ ÏÎÏÎÎ ÏÎÏ ÎÎÎÎÏÎÎÏ, ÏÎ ÎÎÎÏÎ ÏÎÏÎÎÏÏÎ ÏÎÏ ÎÎÎÎÏÎÎÏ "
+"ÎÎÎ ÏÎÎÎÎÏ ÎÏÎÎÎÎÎÏ ÏÏÏÏ Î ÎÏÎÎÎÏÏ ÏÏÎ ÎÎÏÎÏÎÏÎ ÎÎÎ ÎÎ ÎÎÏÎÏÏÎÎÏÎÏ ÏÎÎÎÏ "
+"ÏÎÏÏ."
 
-#: C/strings.py.page:117(p)
+#: C/image-viewer.vala.page:250(item/p)
 msgid ""
-"In general it is recommended to not use <code>unicode</code> objects in GTK+ "
-"applications at all, and only use UTF-8 encoded <code>str</code> objects "
-"since GTK+ does not fully integrate with <code>unicode</code> objects."
+"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 ""
-"ÎÎÎÎÎÎ ÏÏÎÎÏÏÎÏÎÎ ÎÎ ÎÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÏÎ ÎÎÏÎÎÎÎÎÎÎÎ <code>unicode</code> ÏÎ "
-"ÎÏÎÏÎÎÎÎÏ GTK+ ÎÎÎÏÎÎÏ ÎÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÏÎ ÎÏÎÎÎÎÏÎÎÎÎÎÎÎ ÎÎÏÎÎÎÎÎÎÎÎ "
-"<code>str</code> UTF-8 ÎÏÎÏ ÏÎ GTK+ ÎÎÎ ÎÎÏÏÎÎÏÏÎÎÎ ÏÎÎÏÏÏ ÎÎÏÎÎÎÎÎÎÎÎ "
-"<code>unicode</code>."
+"ÎÎÎÎÎÏÏÏÎ ÏÏÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÏÎ ÎÎÏÎÎÏÎ ÎÎÏÎÏÎÏÎ <link href=\"http://";
+"unstable.valadoc.org/gtk+-3.0/Gtk.Stock.html\"><em>ÎÏÎÎÎÎÎÏÎÏ</em></link> "
+"ÎÏÏ ÏÎ Gtk, ÎÎÏÎ ÎÎ ÎÏÎÏÎÏÎÎ ÏÎÎÏÎÎÎÎÎÏÎ \"ÎÎÏÏÏÏÎ\" Î \"ÎÎÎÎÎÎÎ\". ÎÎ "
+"ÏÎÎÎÎÎÎÏÎÎÎ ÏÎÏ ÏÏÎÏÎÏ ÏÏÎ ÎÎÎÎÎÏÏÎ ÎÏÎÎÎÎÎÏÎÏ ÎÎÎÎÎ ÏÏÎ ÎÎ ÎÏÎÎÎÏÎÏ ÏÏÎ "
+"ÎÎÏÎÏÎÏÎ ÎÎ ÎÏÎÏÎ ÎÎÎ ÎÎÏÎÏÏÎÏÏÎÎ ÏÏÎ ÎÎÏÏÏÎ ÏÎÏ ÏÏÎÏÏÎ."
 
-#: C/strings.py.page:119(p)
+#: C/image-viewer.vala.page:254(item/p)
 msgid ""
-"With Python 3.x things are much more consistent, because PyGObject will "
-"automatically encode/decode to/from UTF-8 if you pass a string to a method "
-"or a method returns a string. Strings, or text, will always be represented "
-"as instances of <code>str</code> only:"
+"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 ""
-"ÎÎ ÏÎÎ Python 3.x ÏÎ ÏÏÎÎÎÎÏÎ ÎÎÎÎÎ ÏÎÎÏ ÏÎÎ ÎÎÎÎÏÎÎÏÏÎ, ÎÏÎÎÎÎ ÏÎ PyGObject "
-"ÎÎ ÎÏÎÎÎÎÏÎÎÎÏÎÎ/ÎÏÎÎÏÎÎÎÎÏÎÎÎÏÎÎ ÎÏÏÏÎÎÏÎ ÏÏÎÏ/ÎÏÏ UTF-8 ÎÎÎ ÏÎÏÎÏÎÏÎ ÎÎÎ "
-"ÏÏÎÎÎÎÎÏÎÎÏÎ ÏÎ ÎÎÎ ÎÎÎÎÎÎ Î ÎÎÎ ÎÎÎ ÎÎÎÎÎÎÏ ÎÏÎÏÏÏÎÏÎÎ ÎÎÎ ÏÏÎÎÎÎÎÏÎÎÏÎ. "
-"ÎÏÎÎÎÎÎÏÎÎÏÎÏ, Î ÎÎÎÎÎÎÎ, ÎÎ ÎÎÎÏÎÏÎÏÏÏÎÏÎÎ ÏÎÎÏÎ ÏÏ ÏÎÏÎÏÏÏÏÎÎÏ ÎÏÎÎ "
-"<code>str</code>:"
-
-#: C/strings.py.page:124(title) C/signals-callbacks.py.page:44(title)
-#: C/properties.py.page:49(title) C/model-view-controller.py.page:182(title)
-msgid "References"
-msgstr "ÎÎÎÏÎÏÎÏ"
-
-#: C/strings.py.page:126(link)
-msgid "How To Deal With Strings - The Python GTK+ 3 Tutorial"
-msgstr "ÎÏÏ ÎÎ ÎÎÏÎÎÎÏÏÏÎÏÎÏÎ ÏÎÏ ÏÏÎÎÎÎÎÏÎÎÏÎÏ - ÎÎ ÎÎÎÎÎÎ Python GTK+ 3"
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/statusbar.vala.page:24(None) C/statusbar.py.page:24(None)
-msgid "@@image: 'media/statusbar.png'; md5=eb1aca55315d6cda57b12a5f36058ba8"
-msgstr "@@image: 'media/statusbar.png'Â md5=eb1aca55315d6cda57b12a5f36058ba8"
-
-#: C/statusbar.vala.page:7(title)
-msgid "Statusbar (Vala)"
-msgstr "ÎÏÎÎÎÎ ÎÎÏÎÏÏÎÏÎÏ (Vala)"
-
-#: C/statusbar.vala.page:20(desc) C/statusbar.py.page:20(desc)
-#: C/statusbar.c.page:21(desc)
-msgid "Report messages of minor importance to the user"
-msgstr "ÎÎÎÏÎÎÏÎ ÎÎÎÏÎÏÎÏ ÎÎÎÏÏÏÎÏÎÏ ÏÎÎÎÏÎÎÏ ÎÎÎ ÏÎÎ ÏÏÎÏÏÎ"
-
-#: C/statusbar.vala.page:23(title) C/statusbar.py.page:23(title)
-#: C/statusbar.js.page:20(title) C/statusbar.c.page:24(title)
-msgid "Statusbar"
-msgstr "ÎÏÎÎÎÎ ÎÎÏÎÏÏÎÏÎÏ"
-
-#: C/statusbar.vala.page:25(p)
-msgid "This statusbar tells you what's going on."
-msgstr "ÎÏÏÎ Î ÎÏÎÎÎÎ ÎÎÏÎÏÏÎÏÎÏ ÏÎÏ ÎÎÎÎ ÏÎ ÏÏÎÎÎÎÎÎÎ."
-
-#: C/statusbar.vala.page:32(link) C/statusbar.js.page:227(link)
-msgid "Gtk.Statusbar"
-msgstr "Gtk.Statusbar"
-
-#: C/statusbar.py.page:7(title)
-msgid "Statusbar (Python)"
-msgstr "ÎÏÎÎÎÎ ÎÎÏÎÏÏÎÏÎÏ (Python)"
+"ÎÎ ÎÏÏÎÎÎÎÏ ÎÏÎ ÎÏÎÎÎÎÏ ÏÎÏÎÎÏÎÎÎÏÎ ÏÎ ÎÎÎÎÎÎÎ <gui>ÎÎÎÎÎÎÎ</gui> ÎÎ "
+"ÎÎÏÎÎÎÎÎÎ ÎÏÎÎ ÎÏÏÎÎÎ ÏÎÏ ÎÏÎÏÎÏÎ ÎÎ ÎÎÎÎÏÎÎÏÎ ÎÏÏ ÏÎ <em>GtkImage</em>. ÎÎ "
+"GtkImage ÎÎÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÏÎÏ ÎÎÏÎÎÎÎÎÎ ÎÎÎ ÎÎÎÏÎÎ. ÎÎÎ "
+"ÎÎÏÎÎÎÎÎÎÎÎ ÏÎÎÏÏÎÏ ÎÎÎÎÎÏÏÎÎÎÏÎÎ ÏÏÏÏÎÂ ÎÏÎÎÏÎ ÏÏÎÏÎÎÏÎÏÎÎ ÏÎÎ ÏÎ ÎÎÎÎ ÏÏÎ "
+"ÎÏÏÎÎÏÎ ÏÎÏ ÏÏÎÏÏÎÏÎÎÎÎÏÎÎ ÎÏÏ <link href=\"http://www.valadoc.org/gdk-";
+"pixbuf-2.0/Gdk.Pixbuf.html\"><code>Gdk.Pixbuf</code></link>(ÏÎ ÎÏÎÎÎ "
+"ÏÎÏÎÎÎÎÎÎÎÎÎ ÏÎÏ ÏÎÏÎÏÏÏÏÎÏÎÏ ÎÎÏÏÎÏ ÎÎÎÏÎÏÎ ÏÏÏÏ PNG ÎÎÎ JPEG) ÏÏÎ ÏÎÎÏÏÎ. "
+"ÎÎÎÎÏ, ÎÏÎÎÎÏÎÎ ÎÏÏÏ ÏÎ ÏÎÎÏÏÎ ÎÎ ÎÎÎÎÎ ÏÎ ÏÎÎÏÏÎ ÏÎÏ ÎÎÎÎÏÎÎÏ <gui>ÎÎÎÎÎÎÎ</"
+"gui>."
 
-#: C/statusbar.py.page:25(p)
+#: C/image-viewer.vala.page:259(item/p)
 msgid ""
-"This statusbar tells you if you click the button or if you press any key "
-"(and which key)."
+"<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> ÎÎÏÎÎÎÎÎÎ ÏÎ ÎÎÎÎÎÎÎ <gui>ÎÎÎÎÎÎÎ</gui>. Î "
+"ÎÎÎÎÎÎÎÏ ÎÎ ÏÎÏÎÎÎÎÎÎ ÎÎ ÎÏÎÎÎÎÎÎ Î ÏÏÎÏÏÎÏ ÎÎÎ ÎÎÎÏÎÎÂ ÏÏÎÎ ÎÎÎÎÎ ÏÎ "
+"<code>dialog.run</code> ÎÎ ÎÏÎÏÏÏÎÏÎÎ ÏÎÎ ÏÎÎÎ <link href=\"http://www.";
+"valadoc.org/gtk+-3.0/Gtk.ResponseType.html\">ResponseType</link> "
+"<code>ResponseType.ACCEPT</code> (ÎÎ ÎÏÎÏÎÏÏÎ ÎÎ ÎÏÎÏÏÏÎÏÎÎ ÏÎ "
+"<code>ResponseType.CANCEL</code> ÎÎÎ Î ÏÏÎÏÏÎÏ ÏÎÏÎÏÏÎ <gui>ÎÎÏÏÏÏÎ</gui>). "
+"Î ÏÏÏÏÎÏÎ <code>switch</code> ÏÎ ÎÎÎÎÏÎÎ."
 
-#: C/statusbar.py.page:34(p)
+#: C/image-viewer.vala.page:264(item/p)
 msgid ""
-"<code>Gdk.keyval_name(event.keyval)</code> converts the key value "
-"<code>event.keyval</code> into a symbolic name. The names and corresponding "
-"key values can be found <link href=\"http://git.gnome.org/browse/gtk+/tree/";
-"gdk/gdkkeysyms.h\">here</link>, but for instance <code>GDK_KEY_BackSpace</"
-"code> becomes the string <code>\"BackSpace\"</code>."
+"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 ""
-"ÎÎ <code>Gdk.keyval_name(event.keyval)</code> ÎÎÏÎÏÏÎÏÎÎ ÏÎÎ ÏÎÎÎ ÎÎÎÎÎÎÎÏ "
-"ÏÎ <code>event.keyval</code> ÎÎÎ ÏÏÎÎÎÎÎÎÏ ÏÎÎÎÎ. ÎÎ ÎÎÏÎÎÏÎ ÎÎÎ ÎÎ "
-"ÎÎÏÎÏÏÎÎÏÎÏ ÏÎÎÎÏ ÎÎÎÎÎÎÎÏ ÎÏÎÏÎÏÎ ÎÎ ÎÏÎÎÎÏÎ <link href=\"http://git.gnome.";
-"org/browse/gtk+/tree/gdk/gdkkeysyms.h\">ÎÎÏ</link>, ÎÎÎÎ ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ ÏÎ "
-"<code>GDK_KEY_BackSpace</code> ÎÎÎÎÏÎÎ Î ÏÏÎÎÎÎÎÏÎÎÏÎ <code>\"BackSpace\"</"
-"code>."
+"ÎÎ ÏÏÎÎÎÏÎÏÎÎ ÏÏÎ Î ÏÏÎÏÏÎÏ ÏÎÏÎÏÎ ÏÎ <gui>ÎÎÎÎÎÎÎ</gui>, ÎÎ ÎÏÏÎÎÎÎÏ "
+"ÎÏÎÎÎÎÏ ÏÎÎÏÎÎÏÎ ÏÎ ÏÎÎÎÎ ÏÎÏ ÎÏÏÎÎÎÏ ÏÎÏ ÎÏÎÎÎÎÎÎÎÎÏ ÎÎÎÏÎÎÏ ÎÏÏ ÏÎÎ ÏÏÎÏÏÎ "
+"ÎÎÎ ÎÎÎÎ ÏÏÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ <code>GtkImage</code> ÎÎ ÏÎÏÏÏÏÎÎ ÎÎÎ ÎÎ "
+"ÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÏÎÎÎÎÎÎÎÎ ÎÎÎÏÎÎ."
 
-#: C/statusbar.py.page:40(title)
-msgid "Useful methods for a Statusbar widget"
-msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÏÎÎÎÎÏ ÎÎÏÎÏÏÎÏÎÏ"
+#: C/image-viewer.vala.page:268(item/p)
+msgid "Destroying automatically hides the dialog."
+msgstr "Î ÎÏÏÏÎÎÏÎ ÎÎÏÎÏÏÏÎÏÎ ÎÏÏÎÎÎ ÏÎ ÎÎÎÎÎÎÎ."
 
-#: C/statusbar.py.page:42(p)
+#: C/image-viewer.vala.page:277(section/p)
 msgid ""
-"<code>pop(context_id)</code> removes the first message in the statusbar "
-"stack with the given <code>context_id</code>."
+"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 ""
-"ÎÎ <code>pop(context_id)</code> ÎÏÎÎÏÎÎ ÏÎ ÏÏÏÏÎ ÎÎÎÏÎÎ ÏÏÎ ÏÏÎÎÎÎ ÏÎÏ "
-"ÎÏÎÎÎÎÏ ÎÎÏÎÏÏÎÏÎÏ ÎÎ ÏÎ ÎÎÏÎÎÎÎ <code>context_id</code>."
+"ÎÎÎ ÎÎÎ ÏÎ ÎÏÎÏÎ ÎÎÎ ÎÎÎÎÎ, ÎÏÎÎÎÎÏÎ ÏÎÎ ÎÏÎÏÎÎÎÎ <file>src/image-viewer</"
+"file> ÏÏÎÎ ÎÎÎÎÎÎÎ ÏÎÏ ÎÎÏÎÎÎÎÎÏÎÎ. ÎÎÎÎÎÎ, ÏÎÏÎÏÏÎ <gui>ÏÏÎÎÎÎÎ</gui> ÎÎÎ "
+"ÎÏÎÎÎÏÏÏÎ ÏÎ!"
 
-#: C/statusbar.py.page:43(p)
+#: C/image-viewer.vala.page:283(section/p)
 msgid ""
-"<code>remove_all(context_id)</code> removes all the messages in the "
-"statusbar stack with the given <code>context_id</code>."
+"If you run into problems with the tutorial, compare your code with this "
+"<link href=\"image-viewer/image-viewer.vala\">reference code</link>."
 msgstr ""
-"ÎÎ <code>remove_all(context_id)</code> ÎÏÎÎÏÎÎ ÏÎÎ ÏÎ ÎÎÎÏÎÎÏÎ ÏÏÎ ÏÏÎÎÎÎ "
-"ÏÎÏ ÎÏÎÎÎÎÏ ÎÎÏÎÏÏÎÏÎÏ ÎÎ ÏÎ ÎÎÏÎÎÎÎ <code>context_id</code>."
+"ÎÎ ÎÎÏÎÎÎÏÏÏÎÏÎÏÎ ÏÏÏÎÎÎÎÎ ÎÎ ÏÎ ÎÎÎÎÎÎ, ÏÏÎÎÏÎÎÎÏÎ ÏÎÎ ÎÏÎÎÎÎ ÏÎÏ ÎÎ ÎÏÏÏÎ "
+"ÏÎÎ <link href=\"image-viewer/image-viewer.vala\">ÎÏÎÎÎÎ ÎÎÎÏÎÏÎÏ</link>."
 
-#: C/statusbar.py.page:44(p)
+#: C/image-viewer.vala.page:290(item/p)
 msgid ""
-"<code>remove(context_id, message_id)</code> removes the message with the "
-"given <code>message_id</code> in the statusbar stack with the given "
-"<code>context_id</code>. The <code>message_id</code> is returned by "
-"<code>push(context_id, \"the message\")</code> when pushing the message on "
-"the statusbar."
+"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 ""
-"ÎÎ <code>remove(context_id, message_id)</code> ÎÏÎÎÏÎÎ ÏÎ ÎÎÎÏÎÎ ÎÎ ÏÎ "
-"ÎÎÏÎÎÎÎ <code>message_id</code> ÏÏÎ ÏÏÎÎÎÎ ÎÏÎÎÎÎÏ ÎÎÏÎÏÏÎÏÎÏ ÎÎ ÏÎ ÎÎÏÎÎÎÎ "
-"<code>context_id</code>. ÎÎ <code>message_id</code> ÎÏÎÏÏÏÎÏÎÏÎÎ ÎÎ "
-"<code>push(context_id, \"the message\")</code> ÏÏÎÎ ÏÏÎÏÎÎÎÏÎ ÏÎ ÎÎÎÏÎÎ ÏÏÎ "
-"ÎÏÎÎÎÎ ÎÎÏÎÏÏÎÏÎÏ."
+"ÎÎÎÎÏÎÏÏÎÏÏÎ ÏÎÎ ÎÏÏÎ ÏÏÏÎ ÏÏÎÎ ÏÎ ÏÎÏÎÎÏÏÎ ÎÎÎÎÎÎÎ ÎÎ ÎÎÎÎÎ ÏÏÎÎÎÎÏÎÎÎÎÎÏ "
+"ÎÎÎÎÎÎÏÏ ÎÎÎ ÎÎÎÎÎÎÏÎ. ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ, 200 Î 200 ÎÎÎÎÎÎÏÏÎÎÏÎÎÎ."
 
-#: C/statusbar.py.page:52(link)
-msgid "GtkStatusbar"
-msgstr "GtkStatusbar"
+#: C/js.page:7(info/title)
+msgctxt "link"
+msgid "JavaScript"
+msgstr "JavaScript"
 
-#: C/statusbar.py.page:53(link) C/spinner.js.page:29(link)
-#: C/progressbar.py.page:57(link)
-msgid "Gdk - Key Values"
-msgstr "ÎÎÎÎÏ ÎÎÎÎÎÎÎÏ Gdk"
+#: C/js.page:16(page/title)
+msgid "Tutorials, code samples and platform demos in JavaScript"
+msgstr "ÎÎÎÎÎÎÏÎ, ÎÎÎÎÎÎÏÎ ÎÏÎÎÎÎ ÎÎÎ ÏÎÏÎÎÎÎÎÎÎÏÎ ÏÎÎÏÏÏÏÎÎÏ ÏÎ JavaScript"
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/statusbar.js.page:21(None)
-msgid "@@image: 'media/statusbar2.png'; md5=ff6f7e5b270827ca98b2d5f7087aa766"
-msgstr "@@image: 'media/statusbar2.png'Â md5=ff6f7e5b270827ca98b2d5f7087aa766"
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/label.c.page:25(media) C/label.js.page:21(media)
+#: C/label.py.page:27(media) C/label.vala.page:21(media)
+msgctxt "_"
+msgid "external ref='media/label.png' md5='734975c18653d88379f983e4501c3fc0'"
+msgstr "external ref='media/label.png' md5='734975c18653d88379f983e4501c3fc0'"
+
+#: C/label.c.page:7(info/title)
+msgctxt "text"
+msgid "Label (C)"
+msgstr "ÎÏÎÎÎÏÎ (C)"
 
-#: C/statusbar.js.page:7(title)
-msgid "Statusbar (JavaScript)"
-msgstr "ÎÏÎÎÎÎ ÎÎÏÎÏÏÎÏÎÏ (JavaScript)"
+#: C/label.c.page:18(info/desc) C/label.vala.page:17(info/desc)
+msgid "A widget which displays text"
+msgstr "ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÏÎÏ ÎÎÏÎÎÎÎÎÎ ÎÎÎÎÎÎÎ"
 
-#: C/statusbar.js.page:17(desc)
-msgid "Show notifications in a dedicated statusbar"
-msgstr "ÎÎÏÎÎÎÏÎ ÎÎÎÎÏÎÎÎÏÎÏÎ ÏÎ ÎÎÎ ÎÏÎÏÎÏÎÎÎÎ ÎÏÎÎÎÎ ÎÎÏÎÏÏÎÏÎÏ"
+#: C/label.c.page:21(page/title) C/label.js.page:20(page/title)
+#: C/label.py.page:26(page/title) C/label.vala.page:20(page/title)
+#: C/toolbar_builder.py.page:96(td/p) C/toolbar_builder.vala.page:80(td/p)
+msgid "Label"
+msgstr "ÎÏÎÎÎÏÎ"
 
-#: C/statusbar.js.page:22(p)
-msgid ""
-"This statusbar keeps track of how many times you've clicked a button. "
-"Applications like <link href=\"http://projects.gnome.org/gedit/\";>gedit</"
-"link> use statusbars to display information at a glance, and show "
-"notifications without interrupting the user."
-msgstr ""
-"ÎÏÏÎ Î ÎÏÎÎÎÎ ÎÎÏÎÏÏÎÏÎÏ ÎÏÎÏÎ ÎÏÎÎ ÏÎÏ ÎÏÎÎÎÎÏ ÏÏÎ ÏÎÏÏÎ ÏÎÏ ÏÎÏÎÏÎÏÎ ÎÎÎ "
-"ÎÎÏÎÏÎ. ÎÏÎÏÎÎÎÎÏ ÏÏÏÏ <link href=\"http://projects.gnome.org/gedit/";
-"\">gedit</link> ÏÏÎÏÎÎÎÏÎÎÎÏÎ ÏÎÏ ÎÏÎÎÎÎÏ ÎÎÏÎÏÏÎÏÎÏ ÎÎÎ ÎÎÏÎÎÎÏÎ "
-"ÏÎÎÏÎÏÎÏÎÏÎ ÎÎ ÎÎÎ ÎÎÏÎÎ, ÎÎÎ ÎÎÏÎÎÎÏÎ ÎÎÎÎÏÎÎÎÏÎÏÎ ÏÏÏÎÏ ÎÎÎÎÎÏÎ ÏÎÏ ÏÏÎÏÏÎ."
+#: C/label.c.page:26(td/p) C/label.py.page:28(page/p)
+#: C/label.vala.page:22(page/p)
+msgid "A simple label"
+msgstr "ÎÎÎ ÎÏÎÎ ÎÏÎÎÎÏÎ"
 
-#: C/statusbar.js.page:23(p)
+#: C/label.c.page:31(page/code)
+#, no-wrap
 msgid ""
-"Messages pushed to a statusbar go on top of its stack, and can be popped off "
-"to show the next-most recent one. You can also clear away every message of a "
-"specific type all at once. This sample application demonstrates these "
-"functions."
+"#include &lt;gtk/gtk.h&gt;\n"
+"\n"
+"\n"
+"\n"
+"static void\n"
+"activate (GtkApplication *app,\n"
+"          gpointer        user_data)\n"
+"{\n"
+"  GtkWidget *window;\n"
+"  GtkWidget *label;\n"
+"\n"
+"  /*Create a window with a title and a default size*/\n"
+"  window = gtk_application_window_new (app);\n"
+"  gtk_window_set_application (GTK_WINDOW (window), GTK_APPLICATION (app));\n"
+"  gtk_window_set_title (GTK_WINDOW (window), \"Welcome to GNOME\");\n"
+"  gtk_window_set_default_size (GTK_WINDOW (window), 200,100);\n"
+"   \n"
+"  /*Create a label and set its alignment. Setting the line wrap to TRUE makes \n"
+"  the label break lines if the text exceeds the widget's size. When set to \n"
+"  FALSE the text gets cut off by the edge of the widget*/\n"
+"  label = gtk_label_new (\"Hello GNOME!\");\n"
+"  gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_CENTER);\n"
+"  gtk_label_set_line_wrap (GTK_LABEL (label), TRUE);\n"
+"\n"
+"  gtk_container_add (GTK_CONTAINER (window), GTK_WIDGET (label));\n"
+"\n"
+"  gtk_widget_show_all (GTK_WIDGET (window));\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"int\n"
+"main (int argc, char **argv)\n"
+"{\n"
+"  GtkApplication *app;\n"
+"  int status;\n"
+"\n"
+"  app = gtk_application_new (\"org.gtk.example\",G_APPLICATION_FLAGS_NONE);\n"
+"  g_signal_connect (app, \"activate\", G_CALLBACK (activate), NULL);\n"
+"  status = g_application_run (G_APPLICATION (app), argc, argv);\n"
+"  g_object_unref (app);\n"
+"  return status;\n"
+"}\n"
 msgstr ""
-"ÎÎÎÏÎÎÏÎ ÏÎÏ ÏÏÎÏÎÎÏÎÏÎÎ ÏÎ ÎÎÎ ÎÏÎÎÎÎ ÎÎÏÎÏÏÎÏÎÏ ÏÎÎÎÎÎÎÏÎ ÏÏÎÎ ÎÎÏÏÏÎ ÏÎÏ "
-"ÏÏÎÎÎÎ ÏÎÏ ÎÎÎ ÎÏÎÏÎÏÎ ÎÎ ÏÎÏÎÎÏÎ ÎÎÎ ÎÎ ÎÎÏÎÎÎÏÎÏÎ ÏÎÎ ÎÏÏÎÎÎÎ ÏÎÎ "
-"ÏÏÏÏÏÎÏÎ. ÎÏÎÏÎÎÏÎ ÎÏÎÏÎÏ ÎÎ ÎÎÎÎÏÎÏÎÏÎ ÎÎÎÎ ÎÎÎÏÎÎ ÏÏÎÎÎÎÏÎÎÎÎÎÏ ÏÏÏÎÏ "
-"ÎÎÎÎÎÎÎÏ. ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÎÏÎÏÎÎÎÎÏ ÎÎÎÏÎÎÎ ÎÏÏÎÏ ÏÎÏ ÏÏÎÎÏÏÎÏÎÎÏ."
+"#include &lt;gtk/gtk.h&gt;\n"
+"\n"
+"\n"
+"\n"
+"static void\n"
+"activate (GtkApplication *app,\n"
+"          gpointer        user_data)\n"
+"{\n"
+"  GtkWidget *window;\n"
+"  GtkWidget *label;\n"
+"\n"
+"  /*Create a window with a title and a default size*/\n"
+"  window = gtk_application_window_new (app);\n"
+"  gtk_window_set_application (GTK_WINDOW (window), GTK_APPLICATION (app));\n"
+"  gtk_window_set_title (GTK_WINDOW (window), \"Welcome to GNOME\");\n"
+"  gtk_window_set_default_size (GTK_WINDOW (window), 200,100);\n"
+"   \n"
+"  /*Create a label and set its alignment. Setting the line wrap to TRUE makes \n"
+"  the label break lines if the text exceeds the widget's size. When set to \n"
+"  FALSE the text gets cut off by the edge of the widget*/\n"
+"  label = gtk_label_new (\"Hello GNOME!\");\n"
+"  gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_CENTER);\n"
+"  gtk_label_set_line_wrap (GTK_LABEL (label), TRUE);\n"
+"\n"
+"  gtk_container_add (GTK_CONTAINER (window), GTK_WIDGET (label));\n"
+"\n"
+"  gtk_widget_show_all (GTK_WIDGET (window));\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"int\n"
+"main (int argc, char **argv)\n"
+"{\n"
+"  GtkApplication *app;\n"
+"  int status;\n"
+"\n"
+"  app = gtk_application_new (\"org.gtk.example\",G_APPLICATION_FLAGS_NONE);\n"
+"  g_signal_connect (app, \"activate\", G_CALLBACK (activate), NULL);\n"
+"  status = g_application_run (G_APPLICATION (app), argc, argv);\n"
+"  g_object_unref (app);\n"
+"  return status;\n"
+"}\n"
 
-#: C/statusbar.js.page:66(p)
+#: C/label.c.page:38(item/p)
 msgid ""
-"All the code for this sample goes in the StatusbarExample class. The above "
-"code creates a <link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/";
-"Gtk.Application.html\">Gtk.Application</link> for our widgets and window to "
-"go in."
+"<link href=\"http://developer.gnome.org/gtk3/3.4/GtkLabel.html\";>GtkLabel</"
+"link>"
 msgstr ""
-"ÎÎÎÏ Î ÎÏÎÎÎÎÏ ÎÎÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÏÎÎÎÎÎÎÎ ÏÏÎÎ ÎÎÎÏÎ StatusbarExample. "
-"Î ÏÎÏÎÏÎÎÏ ÎÏÎÎÎÎÏ ÎÎÎÎÎÏÏÎÎÎ ÎÎÎ <link href=\"http://www.roojs.com/seed/";
-"gir-1.2-gtk-3.0/gjs/Gtk.Application.html\">Gtk.Application</link> ÎÎÎ ÎÎ "
-"ÎÏÎÏÎ ÎÎÏÎ ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÏ ÎÎÎ ÏÎ ÏÎÏÎÎÏÏÎ."
+"<link href=\"http://developer.gnome.org/gtk3/3.4/GtkLabel.html\";>GtkLabel</"
+"link>"
 
-#: C/statusbar.js.page:83(p)
-msgid ""
-"The _buildUI function is where we put all the code to create the "
-"application's user interface. The first step is creating a new <link href="
-"\"GtkApplicationWindow.js.page\">Gtk.ApplicationWindow</link> to put all our "
-"widgets into. The next step is to create a vertically-oriented <link href="
-"\"paned.js.page\">Gtk.Paned</link> interface, to divide the window up into "
-"two sections. This way the statusbar looks like those used in other "
-"applications, and it stays at the bottom of the window, even if the user "
-"resizes it."
-msgstr ""
-"Î ÏÏÎÎÏÏÎÏÎ _buildUI ÎÎÎÎÎ ÎÎÎÎ ÏÎÏ ÎÎÎÎÏÎÎ ÏÎÎ ÏÎÎ ÎÏÎÎÎÎ ÎÎÎ ÎÎÎÎÎÏÏÎÎÎ "
-"ÎÎÎÏÎÏÎÏ ÏÏÎÏÏÎ ÏÎÏ ÎÏÎÏÎÎÎÎÏ. ÎÎ ÏÏÏÏÎ ÎÎÎÎ ÎÎÎÎÎ Î ÎÎÎÎÎÏÏÎÎÎ ÎÎÏÏ ÎÎÎÏ "
-"<link href=\"GtkApplicationWindow.js.page\">Gtk.ApplicationWindow</link> ÎÎÎ "
-"ÎÎ ÎÏÎÏÎ ÎÎÏÎ ÏÎÎ ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ. ÎÎ ÎÏÏÎÎÎÎ ÎÎÎÎ ÎÎÎÎÎ Î ÎÎÎÎÎÏÏÎÎÎ "
-"ÎÎÎÏ ÎÎÎÎÏÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎÎÎÏ ÎÎÎÏÎÏÎÏ <link href=\"paned.js.page\">Gtk."
-"Paned</link>, ÎÎÎ ÎÎÎÎÏÎÏÎ ÏÎÏ ÏÎÏÎÎÏÏÎÏ ÏÎ ÎÏÎ ÎÎÏÏÎÏÎÏ. ÎÏÏÏÏ Î ÏÏÏÏÎÏ ÏÎÏ "
-"ÎÏÎÎÎÎÏ ÎÎÏÎÏÏÎÏÎÏ ÏÎÎÎÎÏÎÎ ÏÏÏÏ ÎÏÏÏÎ ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÏÎ ÎÎÎÎÏ "
-"ÎÏÎÏÎÎÎÎÏ ÎÎÎ ÏÎÏÎÎÎÎÎÎ ÏÏÎ ÎÎÏÎ ÏÎÏ ÏÎÏÎÎÏÏÎÏ, ÎÎÏÎÎ ÎÎ ÎÎ Î ÏÏÎÏÏÎÏ ÏÎ "
-"ÎÏÎÎÎÎÎÏÏÎÎ."
+#: C/label.js.page:7(info/title)
+msgctxt "text"
+msgid "Label (JavaScript)"
+msgstr "ÎÏÎÎÎÏÎ (JavaScript)"
 
-#: C/statusbar.js.page:87(title)
-msgid "Creating the buttons"
-msgstr "ÎÎÎÎÎÏÏÎÎÎ ÎÎÏÎÏÎÏÎ"
+#: C/label.js.page:17(info/desc)
+msgid "A label which can contain text"
+msgstr "ÎÎÎ ÎÏÎÎÎÏÎ ÏÎÏ ÎÏÎÏÎÎ ÎÎ ÏÎÏÎÎÏÎÎ ÎÎÎÎÎÎÎ"
 
-#: C/statusbar.js.page:106(p)
-#| msgid ""
-#| "This code creates the three <link href=\"button.js.page\">Gtk.Buttons</"
-#| "link> we'll use to push a new message to the statusbar, pop the last one "
-#| "off, and clear all existing messages. The \"back\" and \"clear\" buttons "
-#| "are <link href=\"http://developer.gnome.org/gtk/2.24/gtk-Stock-Items.html";
-#| "\">stock buttons,</link> which are automatically translated into any "
-#| "language GNOME supports."
-msgid ""
-"This code creates the three <link href=\"button.js.page\">Gtk.Buttons</link> "
-"we'll use to push a new message to the statusbar, pop the last one off, and "
-"clear all existing messages. The \"back\" and \"clear\" buttons are <link "
-"href=\"http://developer.gnome.org/gtk/2.24/gtk-Stock-Items.html\";>stock "
-"buttons</link>, which are automatically translated into any language GNOME "
-"supports."
-msgstr ""
-"ÎÏÏÏÏ Î ÎÏÎÎÎÎÏ ÎÎÎÎÎÏÏÎÎÎ ÏÎ ÏÏÎÎ <link href=\"button.js.page\">Gtk."
-"Buttons</link> ÏÎÏ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÎÎ ÏÎÎ ÏÏÎÏÎÎÏÎ ÎÎÏÏ ÎÎÎÏ ÎÎÎÏÎÎÏÎÏ "
-"ÏÏÎ ÎÏÎÎÎÎ ÎÎÏÎÏÏÎÏÎÏ, ÎÎÎÎÎÎÎÏÎÏ ÏÎ ÏÎÎÎÏÏÎÎÎ ÎÎÎ ÎÎÎÎÏÎÎÎÎÏÎÏ ÏÎÎ ÏÎ "
-"ÏÏÎÏÏÎÎÏÎ ÎÎÎÏÎÎÏÎ. ÎÎ ÎÎÏÎÏÎÎ \"ÏÎÏÏ\" ÎÎÎ \"ÎÎÎÎÏÎÏÎÏÏ\" ÎÎÎÎÎ <link href="
-"\"http://developer.gnome.org/gtk/2.24/gtk-Stock-Items.html\";>ÎÎÏÎÏÎÎ "
-"ÏÎÏÎÎÎÏÎÎÎÎÎÏ</link>, ÏÎÏ ÎÎÏÎÏÏÎÎÎÎÏÎÎ ÎÏÏÏÎÎÏÎ ÏÎ ÎÏÎÎÎÎÎÏÎÏÎ ÎÎÏÏÏÎ GNOME "
-"ÏÏÎÏÏÎÏÎÎÎÎ."
+#: C/label.js.page:22(page/p)
+msgid "A label displaying a friendly message."
+msgstr "ÎÎÎ ÎÏÎÎÎÏÎ ÏÎÏ ÎÎÏÎÎÎÎÎÎ ÎÎÎ ÏÎÎÎÎÏ ÎÎÎÏÎÎ."
 
-#: C/statusbar.js.page:124(p)
+#: C/label.js.page:24(page/code)
+#, no-wrap
 msgid ""
-"This code creates the <link href=\"grid.js.page\">Gtk.Grid</link> that we'll "
-"use to organize the buttons, and attaches the buttons to it in order. It "
-"then creates a <link href=\"paned.js.page\">Gtk.Frame</link> which will take "
-"up most of the window and has a large amount of padding around the buttons, "
-"and adds the Grid to the Frame. Note that we still need to put the Frame "
-"into the Paned interface, and then add it to the ApplicationWindow."
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gio = imports.gi.Gio;\n"
+"const GLib = imports.gi.GLib;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"const LabelExample = new Lang.Class ({\n"
+"    Name: 'Label Example',\n"
+"\n"
+"    /* Create the application itself\n"
+"       This boilerplate code is needed to build any GTK+ application. */\n"
+"        _init: function () {\n"
+"            this.application = new Gtk.Application ({\n"
+"                application_id: 'org.example.jslabel',\n"
+"                flags: Gio.ApplicationFlags.FLAGS_NONE\n"
+"            });\n"
+"\n"
+"    // Connect 'activate' and 'startup' signals to the callback functions\n"
+"    this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"    this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents windows when active\n"
+"    _onActivate: function () {\n"
+"        this._window.present ();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal initializes menus and builds the UI\n"
+"    _onStartup: function () {\n"
+"        this._buildUI ();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function () {\n"
+"\n"
+"        // Create the application window\n"
+"            this._window = new Gtk.ApplicationWindow  ({ application: this.application,\n"
+"                                                              window_position: Gtk.WindowPosition.CENTER,\n"
+"                                                              title: \"Welcome to GNOME\",\n"
+"                                                              default_height: 100,\n"
+"                                                              default_width: 200 });\n"
+"\n"
+"        // Create the label\n"
+"        this.label = new Gtk.Label ({label: \"Hello GNOME!\"});\n"
+"        this._window.add (this.label);\n"
+"\n"
+"                // Show the window and all child widgets\n"
+"                this._window.show_all();\n"
+"    }\n"
+"\n"
+"\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new LabelExample ();\n"
+"app.application.run (ARGV);\n"
 msgstr ""
-"ÎÏÏÏÏ Î ÎÏÎÎÎÎÏ ÎÎÎÎÎÏÏÎÎÎ ÏÎ <link href=\"grid.js.page\">Gtk.Grid</link> "
-"ÏÎÏ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÎÎ ÎÏÎÎÎÏÏÎ ÏÏÎ ÎÎÏÎÏÎÏÎ ÎÎÎ ÎÏÎÏÏÎÎÏÏÎÎ ÏÎ ÎÎÏÎÏÎÎ "
-"ÏÎ ÎÏÏÏ ÏÎ ÏÎÎÏÎ. ÎÎÎÎÎÏÏÎÎÎ ÎÏÎÎÏÎ ÎÎÎ <link href=\"paned.js.page\">Gtk."
-"Frame</link> ÏÎÏ ÎÎ ÎÎÏÎÎÎÎÎÎ ÏÎ ÏÎÏÎÏÏÏÏÎÏÎ ÏÎÏÎÎÏÏÎ ÎÎÎ ÎÏÎÎ ÎÎÎÎÎÎ "
-"ÏÎÏÏÏÎÏÎ ÏÏÎÏÎÎÏÏÏÎÏ ÎÏÏÏ ÎÏÏ ÏÎ ÎÎÏÎÏÎÎ ÎÎÎ ÏÏÎÏÎÎÏÎÎ ÏÎ ÏÎÎÎÎÎ ÏÏÎ "
-"ÏÎÎÎÏÎÎ. ÎÎÎÎÎÏÏÏÎ ÏÏÎ ÎÎ ÏÏÎÎÎÏÏÎÏÎÎ ÎÎÏÎÎ ÎÎ ÎÎÎÎÏÎÎ ÏÎ ÏÎÎÎÏÎÎ ÏÏÎ "
-"ÏÎÏÎÏÎÎ ÎÎÎÏÎÏÎ ÎÎÎ ÎÏÎÎÏÎ ÎÎ ÏÎ ÏÏÎÏÎÎÏÎÏÎÎ ÏÏÎ ApplicationWindow."
-
-#: C/statusbar.js.page:128(title)
-msgid "Creating the statusbar"
-msgstr "ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ ÎÏÎÎÎÎÏ ÎÎÏÎÏÏÎÏÎÏ"
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gio = imports.gi.Gio;\n"
+"const GLib = imports.gi.GLib;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"const LabelExample = new Lang.Class ({\n"
+"    Name: 'Label Example',\n"
+"\n"
+"    /* Create the application itself\n"
+"       This boilerplate code is needed to build any GTK+ application. */\n"
+"        _init: function () {\n"
+"            this.application = new Gtk.Application ({\n"
+"                application_id: 'org.example.jslabel',\n"
+"                flags: Gio.ApplicationFlags.FLAGS_NONE\n"
+"            });\n"
+"\n"
+"    // Connect 'activate' and 'startup' signals to the callback functions\n"
+"    this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"    this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents windows when active\n"
+"    _onActivate: function () {\n"
+"        this._window.present ();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal initializes menus and builds the UI\n"
+"    _onStartup: function () {\n"
+"        this._buildUI ();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function () {\n"
+"\n"
+"        // Create the application window\n"
+"            this._window = new Gtk.ApplicationWindow  ({ application: this.application,\n"
+"                                                              window_position: Gtk.WindowPosition.CENTER,\n"
+"                                                              title: \"Welcome to GNOME\",\n"
+"                                                              default_height: 100,\n"
+"                                                              default_width: 200 });\n"
+"\n"
+"        // Create the label\n"
+"        this.label = new Gtk.Label ({label: \"Hello GNOME!\"});\n"
+"        this._window.add (this.label);\n"
+"\n"
+"                // Show the window and all child widgets\n"
+"                this._window.show_all();\n"
+"    }\n"
+"\n"
+"\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new LabelExample ();\n"
+"app.application.run (ARGV);\n"
 
-#: C/statusbar.js.page:145(p)
+#: C/label.js.page:31(item/p)
 msgid ""
-"Here we create the Gtk.Statusbar, and push a message to it to start off "
-"with. Then we give it its own narrow frame at the bottom of the window."
+"<link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Label.html";
+"\">Gtk.Label</link>"
 msgstr ""
-"ÎÎÏ ÎÎÎÎÎÏÏÎÎÏÎÎ ÏÎ Gtk.Statusbar, ÎÎÎ ÏÏÎÏÎÎÏÎÎ ÎÎÎ ÎÎÎÏÎÎ ÏÎ ÎÏÏÏ ÎÎÎ "
-"ÎÎÎÎÎÎÎÎ. ÎÏÎÎÏÎ ÏÎÏ ÎÎÎÎÏÎÎ ÏÎ ÎÎÎÏ ÏÎÏ ÏÏÎÎÏ ÏÎÎÎÏÎÎ ÏÏÎÎ ÏÎÏÎ ÏÎÏ "
-"ÏÎÏÎÎÏÏÎÏ."
+"<link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Label.html";
+"\">Gtk.Label</link>"
 
-#: C/statusbar.js.page:146(p)
-msgid ""
-"Every message needs to have a context id, which is an integer value you can "
-"get from the statusbar with the get_context_id() function. Its only "
-"parameter is the string value you use to describe that particular context "
-"id. Normally, you'll get a new context id for different kinds of messages, "
-"so that you can use the remove() function to remove a specific message and "
-"not just the most recent one on the stack. This is a simple example with "
-"only one kind of message, though, so we're just using one for everything."
+#: C/label.py.page:7(info/title)
+msgctxt "text"
+msgid "Label (Python)"
+msgstr "ÎÏÎÎÎÏÎ (Python)"
+
+#: C/label.py.page:23(info/desc)
+msgid "A widget that displays a small to medium amount of text"
 msgstr ""
-"ÎÎÎÎ ÎÎÎÏÎÎ ÏÏÎÎÎÎÎÏÎÎ ÎÎ ÎÏÎÎ ÎÎÎ ÏÎÏÏÏÏÎÏÎ ÏÏÎÏÏÎÎÎÎÎÎÏÎ, ÏÎÏ ÎÎÎÎÎ ÎÎÎ "
-"ÎÎÎÏÎÎÎ ÏÎÎÎ ÏÎÏ ÎÏÎÏÎÎÏÎ ÎÎ ÏÎÏÎÏÎ ÎÏÏ ÏÎ ÎÏÎÎÎÎ ÎÎÏÎÏÏÎÏÎÏ ÎÎ ÏÎ ÏÏÎÎÏÏÎÏÎ "
-"get_context_id(). Î ÎÏÎÎ ÏÎÏÎÎÎÏÏÎÏ ÏÎÏ ÎÎÎÎÎ Î ÏÎÎÎ ÏÏÎÎÎÎÎÏÎÎÏÎÏ ÏÎÏ "
-"ÏÏÎÏÎÎÎÏÎÎÎÎÏÎ ÎÎÎ ÏÎÏÎÎÏÎÏÎ ÎÏÏÎÏ ÏÎÏ ÏÏÎÎÎÎÏÎÎÎÎÎÏ ÏÎÏÏÏÏÎÏÎÏ "
-"ÏÏÎÏÏÎÎÎÎÎÎÏÎ. ÎÎÎÎÎÎÎÎ, ÎÎ ÏÎÏÎÏÎ ÎÎÎ ÎÎÎ ÏÎÏÏÏÏÎÏÎ ÏÏÎÏÏÎÎÎÎÎÎÏÎ ÎÎÎ "
-"ÎÎÎÏÎÏÎÏÎÎÎ ÎÎÎÎ ÎÎÎÏÎÎÏÏÎ, ÎÏÏÎ ÏÎÏ ÎÎ ÎÏÎÏÎÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÏÎ "
-"ÏÏÎÎÏÏÎÏÎ remove() ÎÎÎ ÎÎ ÎÏÎÎÏÎÏÎÏÎ ÎÎÎ ÏÏÎÎÎÎÏÎÎÎÎÎ ÎÎÎÏÎÎ ÎÎÎ ÏÏÎ ÎÏÎÎ ÏÎ "
-"ÏÎÎ ÏÏÏÏÏÎÏÎ ÏÏÎ ÏÏÎÎÎÎ. ÎÏÏÏ ÎÎÎÎÎ ÎÎÎ ÎÏÎÏ ÏÎÏÎÎÎÎÎÎÎ ÎÎ ÎÏÎÎ ÎÎÎ ÎÎÎÎÏ "
-"ÎÎÎÏÎÎÏÎÏ, ÎÎ ÎÎÎ, ÎÏÏÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÎÏÎÎ ÎÎÎ ÎÎÎ ÎÎÎÎÎÎ."
+"ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÏÎÏ ÎÎÏÎÎÎÎÎÎ ÎÎÎ ÎÎÎÏÎ ÎÏÏ ÎÎÏÎÎÎ ÏÎÏÏÏÎÏÎ ÎÎÎÎÎÎÎÏ"
 
-#: C/statusbar.js.page:147(p)
+#: C/label.py.page:35(section/code)
+#, no-wrap
 msgid ""
-"We use the push() function to push a new message onto the stack. Its first "
-"parameter is the context id, and its second is the message."
+"from gi.repository import Gtk\n"
+"import sys\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    # constructor for a Gtk.ApplicationWindow\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"Welcome to GNOME\", application=app)\n"
+"        self.set_default_size(200, 100)\n"
+"\n"
+"        # create a label\n"
+"        label = Gtk.Label()\n"
+"        # set the text of the label\n"
+"        label.set_text(\"Hello GNOME!\")\n"
+"        # add the label to the window\n"
+"        self.add(label)\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
 msgstr ""
-"ÎÏÎÏÎÎÎÏÎÎÎÏÎÎ ÏÎ ÏÏÎÎÏÏÎÏÎ push() ÎÎÎ ÏÎÎ ÏÏÎÏÎÎÏÎ ÎÎÏÏ ÎÎÎÏ ÎÎÎÏÎÎÏÎÏ ÏÏÎ "
-"ÏÏÎÎÎÎ. Î ÏÏÏÏÎ ÏÎÏ ÏÎÏÎÎÎÏÏÎÏ ÎÎÎÎÎ Î ÏÎÏÏÏÏÎÏÎ ÏÏÎÏÏÎÎÏÎÎÎÏÎ ÎÎÎ Î ÎÎÏÏÎÏÎ "
-"ÏÎÏ ÎÎÎÎÎ ÏÎ ÎÎÎÏÎÎ."
+"from gi.repository import Gtk\n"
+"import sys\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    # constructor for a Gtk.ApplicationWindow\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"Welcome to GNOME\", application=app)\n"
+"        self.set_default_size(200, 100)\n"
+"\n"
+"        # create a label\n"
+"        label = Gtk.Label()\n"
+"        # set the text of the label\n"
+"        label.set_text(\"Hello GNOME!\")\n"
+"        # add the label to the window\n"
+"        self.add(label)\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
 
-#: C/statusbar.js.page:160(p)
+#: C/label.py.page:37(section/p)
 msgid ""
-"This code finishes up creating the window, by packing the frames into the "
-"pane, adding it to the window, and telling the window to show all child "
-"widgets."
+"Another way to obtain what we have in the example is to create the label as "
+"an instance of another class and add it to the instance of <code>MyWindow</"
+"code> in the <code>do_activate(self)</code> method:"
 msgstr ""
-"ÎÏÏÏÏ Î ÎÏÎÎÎÎÏ ÏÎÎÎÎÏÎÎÎ ÎÎÎÎÎÏÏÎÏÎÏÎÏ ÏÎ ÏÎÏÎÎÏÏÎ, ÏÎÎÎÏÎÏÎÎÏÎÏ ÏÎ ÏÎÎÎÏÎÎ "
-"ÎÎÏÎ ÏÏÎ ÏÎÏÎÏÎÎ, ÏÎ ÏÏÎÏÎÎÏÎÎ ÏÏÎ ÏÎÏÎÎÏÏÎ ÎÎÎ ÎÎÎÎ ÏÏÎ ÏÎÏÎÎÏÏÎ ÎÎ "
-"ÎÎÏÎÎÎÏÎÎ ÏÎÎ ÏÎ ÎÏÎÎÏÏÎÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ."
-
-#: C/statusbar.js.page:164(title)
-msgid "Functions for interacting with the statusbar"
-msgstr "ÎÏÎÎÏÏÎÏÎÎÏ ÎÎÎ ÎÎÎÎÎÎÏÎÎÏÎÏÎ ÎÎ ÏÎ ÎÏÎÎÎÎ ÎÎÏÎÏÏÎÏÎÏ"
+"ÎÎÎÏ ÎÎÎÎÏ ÏÏÏÏÎÏ ÎÎÎ ÎÎ ÏÎÏÎÏÎ ÏÏÎ ÎÏÎÏÎÎ ÏÏÎ ÏÎÏÎÎÎÎÎÎÎ ÎÎÎÎÎ Î ÎÎÎÎÎÏÏÎÎÎ "
+"ÏÎÏ ÎÏÎÎÎÏÎÏ ÏÏ ÎÎÎ ÏÏÎÎÎÎÏÏÏÏÎ ÎÎÎÏ ÎÎÎÎÏ ÎÎÎÏÎÏ ÎÎÎ ÏÏÎÏÎÎÎÎ ÏÎÏ ÏÏÎ "
+"ÏÏÎÎÎÎÏÏÏÏÎ ÏÎÏ <code>MyWindow</code> ÏÏÎ ÎÎÎÎÎÎ <code>do_activate(self)</"
+"code>:"
 
-#: C/statusbar.js.page:205(p)
+#: C/label.py.page:38(section/code)
+#, no-wrap
 msgid ""
-"Here we have functions which demonstrate pushing a message onto the stack, "
-"popping the top one off of it, and clearing all messages of a particular "
-"context id. The pop() function just takes one parameter, which is the "
-"context id for the type of message you want to pop off the most recent one "
-"of. The remove_all() function works the same way, except it removes all "
-"messages of that type from the stack."
+"\n"
+"# a class to define a window\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"Welcome to GNOME\", application=app)\n"
+"        self.set_default_size(200, 100)\n"
+"\n"
+"# a class to define a label\n"
+"class MyLabel(Gtk.Label):\n"
+"    def __init__(self):\n"
+"        Gtk.Label.__init__(self)\n"
+"        self.set_text(\"Hello GNOME!\")\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        # create an instance of MyWindow\n"
+"        win = MyWindow(self)\n"
+"        # create an instance of MyLabel\n"
+"        label = MyLabel()\n"
+"        # and add it to the window\n"
+"        win.add(label)\n"
+"        # show the window and everything on it\n"
+"        win.show_all()"
 msgstr ""
-"ÎÎÏ ÎÏÎÏÎÎ ÏÏÎÎÏÏÎÏÎÎÏ ÏÎÏ ÎÎÎÏÎÎÏÎ ÏÏÎÏÎÎÏÎ ÎÎÎÏÎÎÏÎÏ ÏÏÎ ÏÏÎÎÎÎ, "
-"ÎÎÏÏÎÎÎÏÎÏ ÏÎÎ ÎÎÏÏÏÎ ÏÎÏ ÎÏÏ ÎÏÏÏ ÎÎÎ ÎÎÎÎÏÎÎÎÎÏÎÏ ÏÎÎ ÏÎ ÎÎÎÏÎÎÏÎ ÏÎÏ "
-"ÏÏÎÎÎÎÏÎÎÎÎÎÏ ÏÎÏÏÏÏÎÏÎÏ ÏÏÎÏÏÎÎÎÎÎÎÏÎ. Î ÏÏÎÎÏÏÎÏÎ pop() ÏÎÎÏÎÎÎ ÎÏÎÎ ÎÎÎ "
-"ÏÎÏÎÎÎÏÏÎ, ÏÎÏ ÎÎÎÎÎ Î ÏÎÏÏÏÏÎÏÎ ÏÏÎÏÏÎÎÎÎÎÎÏÎ ÎÎÎ ÏÎÎ ÏÏÏÎ ÏÎÏ ÎÎÎÏÎÎÏÎÏ "
-"ÏÎÏ ÎÎÎÎÏÎ ÎÎ ÎÎÏÎÎÏÎ ÎÏÏ ÏÎ ÏÎÎ ÏÏÏÏÏÎÏÎ. Î ÏÏÎÎÏÏÎÏÎ remove_all() ÎÎÏÎÎÏÎÎ "
-"ÎÎ ÏÎÎ ÎÎÎÎ ÏÏÏÏÎ, ÎÎÏÏÏ ÎÏÏ ÏÎÎ ÎÏÎÎÏÎÏÎ ÏÎÏÎ ÏÏÎ ÎÎÎÏÎÎÏÏÎ ÎÏÏÎÏ ÏÎÏ ÏÏÏÎÏ "
-"ÎÏÏ ÏÎ ÏÏÎÎÎÎ."
+"\n"
+"# a class to define a window\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"Welcome to GNOME\", application=app)\n"
+"        self.set_default_size(200, 100)\n"
+"\n"
+"# a class to define a label\n"
+"class MyLabel(Gtk.Label):\n"
+"    def __init__(self):\n"
+"        Gtk.Label.__init__(self)\n"
+"        self.set_text(\"Hello GNOME!\")\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        # create an instance of MyWindow\n"
+"        win = MyWindow(self)\n"
+"        # create an instance of MyLabel\n"
+"        label = MyLabel()\n"
+"        # and add it to the window\n"
+"        win.add(label)\n"
+"        # show the window and everything on it\n"
+"        win.show_all()"
+
+#: C/label.py.page:68(section/title)
+msgid "Useful methods for a Label widget"
+msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÏÎÎÎÏÎÏ"
 
-#: C/statusbar.js.page:211(p)
+#: C/label.py.page:69(section/p) C/textview.py.page:49(section/p)
 msgid ""
-"Finally, we create a new instance of the finished StatusbarExample class, "
-"and set the application running."
+"An explanation of how to deal with strings and Unicode (and a recap of what "
+"these things are) can be found <link xref=\"strings.py.page\">here</link>."
 msgstr ""
-"ÎÎÎÎÎÎ, ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ ÏÎÏ ÏÎÎÎÎÏÎÎÎÎÏ ÎÎÎÏÎÏ "
-"StatusbarExample ÎÎÎ ÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ."
-
-#: C/statusbar.js.page:225(link)
-msgid "Gtk.Frame"
-msgstr "Gtk.Frame"
-
-#: C/statusbar.js.page:226(link)
-msgid "Gtk.Paned"
-msgstr "Gtk.Paned"
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/statusbar.c.page:26(None)
-msgid "@@image: 'media/statusbar3.png'; md5=60c71604fb44656237ee66dfb39a8689"
-msgstr "@@image: 'media/statusbar3.png'Â md5=60c71604fb44656237ee66dfb39a8689"
-
-#: C/statusbar.c.page:7(title)
-msgid "Statusbar (C)"
-msgstr "ÎÏÎÎÎÎ ÎÎÏÎÏÏÎÏÎÏ (C)"
+"ÎÎÎ ÎÎÎÎÎÏÎ ÏÏÏ ÎÎ ÎÎÏÎÎÎÏÏÏÎÏÎÏÎ ÏÎÏ ÏÏÎÎÎÎÎÏÎÎÏÎÏ ÎÎÎ Unicode (ÎÎÎ ÎÎÎ "
+"ÎÎÎÎÎÏÎÎÎÎÏÏÎ ÏÎÏ ÏÎ ÎÏÏÎ ÏÎ ÏÏÎÎÎÎÏÎ ÎÎÎÎÎ) ÎÏÎÏÎÎ ÎÎ ÎÏÎÎÎÎ <link xref="
+"\"strings.py.page\">ÎÎÏ</link>."
 
-#: C/statusbar.c.page:27(p)
+#: C/label.py.page:70(section/p)
 msgid ""
-"This statusbar is used to demonstrate how messages are stacked in a last-in-"
-"first-out order. The message at the top of the stack is always the one "
-"displayed."
+"<code>label = Gtk.Label(label=\"Hello GNOME!\")</code> could also be used to "
+"create a label and set the text directly. For a general discussion of this, "
+"see <link xref=\"properties.py\">here</link>."
 msgstr ""
-"ÎÏÏÎ Î ÎÏÎÎÎÎ ÎÎÏÎÏÏÎÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÎÎÎ ÎÎ ÎÎÏÎÎÎÏÎÎ ÏÏÏÎ ÎÎÎÏÎÎÏÎ "
-"ÏÏÎÎÎÎÎÎÎÏÎÎ ÏÎ ÎÎÎ ÏÎÎÏÎ ÏÎÎÎÏÏÎÎÎ ÏÏÎÏ ÏÏÏÏÎ. ÎÎ ÎÎÎÏÎÎ ÏÏÎÎ ÎÎÏÏÏÎ ÏÎÏ "
-"ÏÏÎÎÎÎÏ ÎÎÎÎÎ ÏÎÎÏÎ ÎÏÏÏ ÏÎÏ ÎÎÏÎÎÎÎÎÏÎÎ."
-
-#: C/statusbar.c.page:37(link)
-msgid "GtkStatusBar"
-msgstr "GtkStatusBar"
-
-#: C/statusbar.c.page:38(link) C/scale.c.page:38(link)
-msgid "String Utility Functions"
-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/spinner.vala.page:21(None) C/spinner.py.page:21(None)
-#: C/spinner.js.page:21(None) C/spinner.c.page:23(None)
-msgid "@@image: 'media/spinner.png'; md5=d04f2d81f1d72c6c2f97e8729947dfed"
-msgstr "@@image: 'media/spinner.png'Â md5=d04f2d81f1d72c6c2f97e8729947dfed"
-
-#: C/spinner.vala.page:7(title)
-msgid "Spinner (Vala)"
-msgstr "ÎÎÏÏÎÏÎÏ (Vala)"
-
-#: C/spinner.vala.page:17(desc) C/spinner.py.page:17(desc)
-#: C/spinner.js.page:17(desc) C/spinner.c.page:18(desc)
-msgid "A spinner animation"
-msgstr "ÎÎÎÎÏÎ ÎÎÏÏÎÏÎ"
-
-#: C/spinner.vala.page:20(title) C/spinner.py.page:20(title)
-#: C/spinner.js.page:20(title) C/spinner.c.page:21(title)
-msgid "Spinner"
-msgstr "ÎÎÏÏÎÏÎÏ"
-
-#: C/spinner.vala.page:22(p) C/spinner.py.page:22(p) C/spinner.js.page:22(p)
-#: C/spinner.c.page:24(p)
-msgid "This Spinner is stopped and started by pressing the spacebar."
-msgstr "ÎÏÏÏÏ Î ÎÎÏÏÎÏÎÏ ÏÏÎÎÎÏÎ ÎÎÎ ÎÎÎÎÎÎ ÏÎÏÏÎÏÎÏ ÏÎ ÏÎÎÎÏÏÎ ÎÎÎÏÏÎÎÎÏÎÏ."
-
-#: C/spinner.vala.page:29(link)
-msgid "Gtk.Widget"
-msgstr "Gtk.Widget"
-
-#: C/spinner.vala.page:31(link)
-msgid "Gdk.keyval_name"
-msgstr "Gdk.keyval_name"
-
-#: C/spinner.py.page:7(title)
-msgid "Spinner (Python)"
-msgstr "ÎÎÏÏÎÏÎÏ (Python)"
+"ÎÎ <code>label = Gtk.Label(\"Hello GNOME!\")</code> ÎÏÎÏÎÎ ÎÏÎÏÎÏ ÎÎ "
+"ÏÏÎÏÎÎÎÏÎÎÎÎÎÎ ÎÎÎ ÏÎ ÎÎÎÎÎÏÏÎÎÎ ÎÎÎÏ ÎÏÎÎÎÏÎÏ ÎÎÎ ÏÎÎ ÎÏÎÏÎÏ ÏÎÏ ÎÎÎÎÎÎÎÏ "
+"ÎÎÎÏÎ. ÎÎÎ ÎÎÎ ÎÎÎÎÎÎ ÏÏÎÎÏÎÏÎ ÏÏÎÏÎÎÎ ÎÎ ÎÏÏÏ, ÎÎÎÏÎ <link xref="
+"\"properties.py\">ÎÎÏ</link>."
 
-#: C/spinner.py.page:31(p)
+#: C/label.py.page:72(item/p)
 msgid ""
-"<code>Gdk.keyval_name(event.keyval)</code> converts the key value "
-"<code>event.keyval</code> into a symbolic name. The names and corresponding "
-"key values can be found <link href=\"http://git.gnome.org/browse/gtk+/tree/";
-"gdk/gdkkeysyms.h\">here</link>,but for instance <code>GDK_KEY_BackSpace</"
-"code> becomes the string <code>\"BackSpace\"</code>."
+"<code>set_line_wrap(True)</code> breaks lines if the text of the label "
+"exceeds the size of the widget."
 msgstr ""
-"ÎÎ <code>Gdk.keyval_name(event.keyval)</code> ÎÎÏÎÏÏÎÏÎÎ ÏÎÎ ÏÎÎÎ ÎÎÎÎÎÎÎÏ "
-"<code>event.keyval</code> ÏÎ ÎÎÎ ÏÏÎÎÎÎÎÎÏ ÏÎÎÎÎ. ÎÎ ÎÎÏÎÎÏÎ ÎÎÎ ÎÎ "
-"ÎÎÏÎÏÏÎÎÏÎÏ ÏÎÎÎÏ ÎÎÎÎÎÎÎÏ ÎÏÎÏÎÏÎ ÎÎ ÎÏÎÎÎÏÎ <link href=\"http://git.gnome.";
-"org/browse/gtk+/tree/gdk/gdkkeysyms.h\">ÎÎÏ</link>, ÎÎÎÎ ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ ÏÎ "
-"<code>GDK_KEY_BackSpace</code> ÎÎÎÎÏÎÎ Î ÏÏÎÎÎÎÎÏÎÎÏÎ <code>\"BackSpace\"</"
-"code>."
-
-#: C/spinner.py.page:41(link)
-msgid "Key Values"
-msgstr "ÎÎÎÎÏ ÎÎÎÎÎÎÎÏ"
-
-#: C/spinner.js.page:7(title)
-msgid "Spinner (JavaScript)"
-msgstr "ÎÎÏÏÎÏÎÏ (JavaScript)"
-
-#: C/spinner.c.page:7(title)
-msgid "Spinner (C)"
-msgstr "ÎÎÏÏÎÏÎÏ (C)"
-
-#: C/spinner.c.page:34(link)
-msgid "GObject"
-msgstr "GObject"
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/spinbutton.vala.page:23(None) C/spinbutton.py.page:22(None)
-#: C/spinbutton.c.page:25(None)
-msgid "@@image: 'media/spinbutton.png'; md5=993cbb7d9bd271a329727a926195712a"
-msgstr "@@image: 'media/spinbutton.png'Â md5=993cbb7d9bd271a329727a926195712a"
-
-#: C/spinbutton.vala.page:7(title)
-msgid "SpinButton (Vala)"
-msgstr "SpinButton (Vala)"
-
-#: C/spinbutton.vala.page:19(desc)
-msgid "Retrieve an integer or floating point number."
-msgstr "ÎÎÎÎÏÎÏÎ ÎÎÎÏÎÎÎÏ Î ÎÏÎÎÎÎÏ ÎÎÎÎÏÎÏ ÏÏÎÎÎÎÏÏÎÎÎÏ."
-
-#: C/spinbutton.vala.page:22(title) C/spinbutton.py.page:21(title)
-#: C/spinbutton.js.page:23(title) C/spinbutton.c.page:23(title)
-msgid "SpinButton"
-msgstr "SpinButton"
-
-#: C/spinbutton.vala.page:24(p) C/spinbutton.py.page:23(p)
-#: C/spinbutton.c.page:26(p)
-msgid "Choose a number, by entering it or by clicking on the -/+ buttons!"
-msgstr "ÎÏÎÎÎÎÏÎ ÎÎÎÎ ÎÏÎÎÎÏ, ÏÎÎÎÏÏÎÎÎÎÏÎÏÎÏ ÏÎÎ Î ÎÎ ÎÎÎÎ ÏÏÎ ÎÎÏÎÏÎÎ -/+!"
-
-#: C/spinbutton.vala.page:31(link) C/spinbutton.js.page:205(link)
-msgid "Gtk.SpinButton"
-msgstr "Gtk.SpinButton"
-
-#: C/spinbutton.py.page:7(title)
-msgid "SpinButton (Python)"
-msgstr "SpinButton (Python)"
-
-#: C/spinbutton.py.page:18(desc)
-msgid "Retrieve an integer or floating-point number from the user."
-msgstr "ÎÎÎÎÏÎÏÎ ÎÎÎÏÎÎÎÏ Î ÎÏÎÎÎÎÏ ÎÎÎÎÏÎÏ ÏÏÎÎÎÎÏÏÎÎÎÏ ÎÏÏ ÏÎÎ ÏÏÎÏÏÎ."
-
-#: C/spinbutton.py.page:33(title)
-msgid "Useful methods for a SpinButton widget"
-msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ SpinButton"
+"ÎÎ <code>set_line_wrap(True)</code> ÏÏÎÎÎ ÏÎÏ ÎÏÎÎÎÎÏ ÎÎÎ ÏÎ ÎÎÎÎÎÎÎ ÏÎÏ "
+"ÎÏÎÎÎÏÎÏ ÏÏÎÏÎÎÎÎÎÎ ÏÎ ÎÎÎÎÎÎÏ ÏÎÏ ÎÏÎÏÎÎÎÏ ÏÏÏÏÎÏÎÎÎÏ."
 
-#: C/spinbutton.py.page:34(p)
+#: C/label.py.page:73(item/p)
 msgid ""
-"For an explanation of signals and callback functions, see <link xref="
-"\"signals-callbacks.py\">this page</link>. An example is the <code>\"value-"
-"changed\"</code> signal, emitted when the value of the spinbutton changes."
+"<code>set_justify(Gtk.Justification.LEFT)</code> (or <code>Gtk.Justification."
+"RIGHT, Gtk.Justification.CENTER, Gtk.Justification.FILL</code>) sets the "
+"alignment of the lines in the text of the label relative to each other. The "
+"method has no effect on a single-line label."
 msgstr ""
-"ÎÎÎ ÎÎÎ ÎÎÎÎÎÏÎ ÏÏÎ ÏÎÎÎÏÏÎ ÎÎÎ ÏÏÎÎÏÏÎÏÎÏÎ ÎÏÎÎÎÎÎÎÏÎÏ, ÎÎÎÏÎ <link xref="
-"\"signals-callbacks.py\">ÎÏÏÎÎ ÏÎ ÏÎÎÎÎÎ</link>. ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ ÎÎÎÎÎ ÏÎ "
-"ÏÎÎÎ <code>\"value-changed\"</code>, ÏÎÏ ÎÎÏÎÎÏÎÏÎÎ ÏÏÎÎ Î ÏÎÎÎ ÏÎÏ ÎÎÏÎÏÎÎÏ "
-"ÎÎÏÏÎÏÎ ÎÎÎÎÎÎÎ."
+"ÎÎ <code>set_justify(Gtk.Justification.LEFT)</code> (Î <code>Gtk."
+"Justification.RIGHT, Gtk.Justification.CENTER, Gtk.Justification.FILL</"
+"code>) ÎÏÎÎÎÎ ÏÎ ÏÏÎÎÏÎÏÎ ÏÏÎ ÎÏÎÎÎÏÎ ÏÏÎ ÎÎÎÎÎÎÎ ÏÎÏ ÎÏÎÎÎÏÎÏ ÏÏÎÎÏÎÎÏÎÎÎÎÏ "
+"ÎÎÏÎÎÏ ÏÎÏÏ. Î ÎÎÎÎÎÎÏ ÎÎÎ ÎÏÎÎ ÎÏÎÏÎÎÎÏÎÎ ÏÎ ÎÏÎÎÎÏÎ ÎÎÎÎÎÎÎÎÏ ÎÏÎÎÎÎÏ."
 
-#: C/spinbutton.py.page:35(p)
+#: C/label.py.page:74(item/p)
 msgid ""
-"A Gtk.Adjustment is needed to construct the Gtk.SpinButton. This is the "
-"representation of a value with a lower and upper bound, together with step "
-"and page increments, and a page size, and it is constructed as <code>Gtk."
-"Adjustment(value, lower, upper, step_increment, page_increment, page_size)</"
-"code> where the fields are of type <code>float</code>; <code>step_increment</"
-"code> is the increment/decrement that is obtained by using the cursor keys "
-"or the buttons of the spinbutton. Note that <code>page_increment</code> and "
-"<code>page_size</code> are not used in this case, and they should be set to "
-"<code>0</code>."
+"For decorated text we can use <code>set_markup(\"text\")</code>, where <code>"
+"\"text\"</code> is a text in the <link href=\"http://developer.gnome.org/";
+"pango/stable/PangoMarkupFormat.html\">Pango Markup Language</link>. An "
+"example:"
 msgstr ""
-"ÎÎÎ Gtk.Adjustment ÎÏÎÎÏÎÎÏÎÎ ÎÎÎ ÎÏÎÎÏÎ ÏÎÏ Gtk.SpinButton. ÎÏÏÎ Î "
-"ÎÎÎÏÎÏÎÏÏÎÏÎ ÎÎÎÏ ÏÎÎÎÏ ÎÎ ÎÎÏÏ ÎÎÎ ÎÎÏ ÏÏÎÎ, ÎÎÎÎ ÎÎ ÎÎÎÎ ÎÎÎ ÎÏÎÎÏÎÎÏ "
-"ÏÎÎÎÎÎÏ ÎÎÎ ÎÎÎÎÎÎÏ ÏÎÎÎÎÎÏ ÎÎÎ ÎÎÎÎÎÏÎÎ ÏÏ <code>Gtk.Adjustment(value, "
-"lower, upper, step_increment, page_increment, page_size)</code> ÏÏÎÏ ÏÎ "
-"ÏÎÎÎÎ ÎÎÎÎÎ ÏÏÏÎÏ <code>float</code>Â <code>step_increment</code> ÎÎÎÎÎ Î "
-"ÎÏÎÎÏÎ/ÎÎÎÏÏÎ ÏÎÏ ÏÎÎÏÎÎÏÎÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ ÏÎÎÎÏÏÎ ÎÏÎÎÎÎ Î ÏÎ ÎÎÏÎÏÎÎ "
-"ÏÎÏ ÎÎÏÎÏÎÎÏ ÎÎÏÏÎÏÎ. ÎÎÎÎÎÏÏÏÎ ÏÏÎ <code>page_increment</code> ÎÎÎ "
-"<code>page_size</code> ÎÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÏÎ ÎÏÏÎÎ ÏÎÎ ÏÎÏÎÏÏÏÏÎ ÎÎÎ ÎÎÎ "
-"ÏÏÎÏÎÎ ÎÎ ÎÏÎÎÎÎÏÎÎ ÏÎ <code>0</code>."
+"ÎÎÎ ÎÎÎÎÎÏÎÎÎÎÎÎ ÎÎÎÎÎÎÎ ÎÏÎÏÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÏÎ <code>set_markup"
+"(\"text\")</code>, where <code>\"text\"</code> ÏÎÏ ÎÎÎÎÎ ÎÎÎÎÎÎÎ ÏÏÎ <link "
+"href=\"http://developer.gnome.org/pango/stable/PangoMarkupFormat.html";
+"\">ÎÎÏÏÏÎ ÏÎÎÎÎÏÎÏ Pango</link>. ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ:"
 
-#: C/spinbutton.py.page:37(p)
+#: C/label.py.page:75(item/code)
+#, no-wrap
 msgid ""
-"If you want the value of the spinbutton to wrap around when they exceed the "
-"maximum or the minimum, set <code>set_wrap(True)</code>. The <code>\"wrapped"
-"\"</code> signal is emitted when this happens."
+"\n"
+"label.set_markup(\"Text can be &lt;small&gt;small&lt;/small&gt;, &lt;big&gt;big&lt;/big&gt;, \"\n"
+"                 \"&lt;b&gt;bold&lt;/b&gt;, &lt;i&gt;italic&lt;/i&gt; and even point to somewhere \"\n"
+"                 \"in the &lt;a href=\\\"http://www.gtk.org\\\"; \"\n"
+"                 \"title=\\\"Click to find out more\\\"&gt;internets&lt;/a&gt;.\")"
 msgstr ""
-"ÎÎÎ ÎÎÎÎÏÎ Î ÏÎÎÎ ÏÎÏ ÎÎÏÎÏÎÎÏ ÎÎÏÏÎÏÎ ÎÎ ÎÎÎÎÎÏÎÏÎÎÏÎÎ ÏÏÎÎ ÏÏÎÏÎÎÎÎÎÎ ÏÎ "
-"ÎÎÎÎÏÏÎ Î ÏÎ ÎÎÎÏÎÏÏÎ, ÎÏÎÏÏÎ <code>set_wrap(True)</code>. ÎÎ ÏÎÎÎ <code>"
-"\"wrapped\"</code> ÎÎÏÎÎÏÎÏÎÎ ÏÏÎÎ ÏÏÎÎÎÎÎÎÎ ÎÏÏÏ."
+"\n"
+"label.set_markup(\"Text can be &lt;small&gt;small&lt;/small&gt;, &lt;big&gt;big&lt;/big&gt;, \"\n"
+"                 \"&lt;b&gt;bold&lt;/b&gt;, &lt;i&gt;italic&lt;/i&gt; and even point to somewhere \"\n"
+"                 \"in the &lt;a href=\\\"http://www.gtk.org\\\"; \"\n"
+"                 \"title=\\\"Click to find out more\\\"&gt;internets&lt;/a&gt;.\")"
 
-#: C/spinbutton.py.page:38(p)
+#: C/label.vala.page:7(info/title)
+msgctxt "text"
+msgid "Label (Vala)"
+msgstr "ÎÏÎÎÎÏÎ (Vala)"
+
+#: C/label.vala.page:24(page/code)
+#, no-wrap
 msgid ""
-"<code>set_digits(digits)</code> sets the precision to be displayed by the "
-"spinbutton, up to 20 digits."
+"\n"
+"public class MyWindow : Gtk.ApplicationWindow {\n"
+"\tinternal MyWindow (MyApplication app) {\n"
+"\t\tObject (application: app, title: \"Welcome to GNOME\");\n"
+"\n"
+"\t\tvar label = new Gtk.Label (\"Hello GNOME!\");\n"
+"\n"
+"\t\tthis.add (label);\n"
+"\t\tthis.set_default_size (200, 100);\n"
+"\t\tthis.show_all ();\n"
+"\t}\n"
+"}\n"
+"\n"
+"public class MyApplication : Gtk.Application {\n"
+"\tprotected override void activate () {\n"
+"\t\tnew MyWindow (this).show ();\n"
+"\t}\n"
+"\n"
+"\tinternal MyApplication () {\n"
+"\t\tObject (application_id: \"org.example.MyApplication\");\n"
+"\t}\n"
+"}\n"
+"\n"
+"public int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
 msgstr ""
-"<code>set_digits(digits)</code> ÎÏÎÎÎÎ ÏÎÎ ÎÎÏÎÎÎÎÏÎÎÎÎ ÎÎÏÎÎÎÎÎ ÎÏÏ ÏÎ "
-"ÎÎÏÎÏÎ ÎÎÏÏÎÏÎ, ÎÎÏÏÎ 20 ÏÎÏÎÎ."
+"\n"
+"public class MyWindow : Gtk.ApplicationWindow {\n"
+"\tinternal MyWindow (MyApplication app) {\n"
+"\t\tObject (application: app, title: \"Welcome to GNOME\");\n"
+"\n"
+"\t\tvar label = new Gtk.Label (\"Hello GNOME!\");\n"
+"\n"
+"\t\tthis.add (label);\n"
+"\t\tthis.set_default_size (200, 100);\n"
+"\t\tthis.show_all ();\n"
+"\t}\n"
+"}\n"
+"\n"
+"public class MyApplication : Gtk.Application {\n"
+"\tprotected override void activate () {\n"
+"\t\tnew MyWindow (this).show ();\n"
+"\t}\n"
+"\n"
+"\tinternal MyApplication () {\n"
+"\t\tObject (application_id: \"org.example.MyApplication\");\n"
+"\t}\n"
+"}\n"
+"\n"
+"public int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
+
+#: C/license.page:8(info/desc)
+msgid "Legal information."
+msgstr "ÎÎÎÎÎÎÏ ÏÎÎÏÎÏÎÏÎÎÏ."
+
+#: C/license.page:11(page/title)
+msgid "License"
+msgstr "ÎÎÎÎÎ"
 
-#: C/spinbutton.py.page:39(p)
+#: C/license.page:12(page/p)
 msgid ""
-"To get the value of the spinbutton as an integer, use <code>get_value_as_int"
-"()</code>."
+"This work is distributed under a CreativeCommons Attribution-Share Alike 3.0 "
+"Unported license."
 msgstr ""
-"ÎÎÎ ÏÎ ÎÎÏÎ ÏÎÏ ÏÎÎÎÏ ÏÎÏ ÎÎÏÎÏÎÎÏ ÎÎÏÏÎÏÎ ÏÏ ÎÎÎÏÎÎÎÏ, ÏÏÎÏÎÎÎÏÎÎÎÏÏÎ "
-"<code>get_value_as_int()</code>."
+"ÎÏÏÎ Î ÎÏÎÎÏÎÎ ÎÎÎÎÎÎÎÏÎÎ ÎÎÏÏ ÎÏÏ ÏÎÎ ÎÎÎÎÎ ÏÎÏ CreativeCommons Attribution-"
+"Share Alike 3.0 Unported."
 
-#: C/spinbutton.py.page:47(link) C/spinbutton.c.page:36(link)
-msgid "GtkSpinButton"
-msgstr "GtkSpinButton"
+#: C/license.page:20(page/p)
+msgid "You are free:"
+msgstr "ÎÎÏÎÏÏÎ ÎÎÎÏÎÎÏÎÎ:"
 
-#: C/spinbutton.py.page:48(link) C/spinbutton.c.page:38(link)
-#: C/scale.py.page:56(link) C/scale.c.page:37(link)
-msgid "GtkAdjustment"
-msgstr "GtkAdjustment"
+#: C/license.page:25(item/title)
+msgid "<em>To share</em>"
+msgstr "<em>ÎÎ ÎÎÎÏÎÏÏÎÎÏÎ</em>"
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/spinbutton.js.page:24(None)
-msgid ""
-"@@image: 'media/spinbuttonkittens.png'; md5=577cce8a902140aacbab73fe8a76a010"
-msgstr ""
-"@@image: 'media/spinbuttonkittens.png'Â md5=577cce8a902140aacbab73fe8a76a010"
+#: C/license.page:26(item/p)
+msgid "To copy, distribute and transmit the work."
+msgstr "ÎÎ ÎÎÏÎÎÏÎÏÎÏÎ, ÎÎ ÎÎÎÎÎÎÎÎÏÎ ÎÎÎ ÎÎ ÎÎÏÎÏÎÏÎÏÎ ÏÎÎ ÎÏÎÎÏÎÎ."
 
-#: C/spinbutton.js.page:7(title)
-msgid "SpinButton (JavaScript)"
-msgstr "SpinButton (JavaScript)"
+#: C/license.page:29(item/title)
+msgid "<em>To remix</em>"
+msgstr "<em>ÎÎ ÏÏÎÏÎÏÎÎÎÏÎÏÎ</em>"
 
-#: C/spinbutton.js.page:20(desc)
-msgid "A number entry field that has + and - buttons"
-msgstr "ÎÎÎ ÏÎÎÎÎ ÎÎÏÎÎÏÎÎÏ ÎÏÎÎÎÎÏ ÏÎÏ ÎÏÎÎ ÎÎÏÎÏÎÎ + ÎÎÎ -"
+#: C/license.page:30(item/p)
+msgid "To adapt the work."
+msgstr "ÎÎ ÏÏÎÏÎÏÎÏÏÎÏÎ ÏÎÎ ÎÏÎÎÏÎÎ."
 
-#: C/spinbutton.js.page:25(p)
-#| msgid ""
-#| "A SpinButton is not related to a <link xref=\"spinner.js\">Spinner.</"
-#| "link> It's a text entry field which only accepts numbers, and which has "
-#| "plus and minus buttons to let you change the value without having to type "
-#| "anything in."
-msgid ""
-"A SpinButton is not related to a <link xref=\"spinner.js\">Spinner</link>. "
-"It's a text entry field which only accepts numbers, and which has plus and "
-"minus buttons to let you change the value without having to type anything in."
-msgstr ""
-"ÎÎÎ SpinButton ÎÎÎ ÏÏÎÏÎÎÎÏÎÎ ÎÎ ÎÎÎÎ <link xref=\"spinner.js\">Spinner</"
-"link>. ÎÎÎÎÎ ÎÎÎ ÏÎÎÎÎ ÎÎÏÎÎÏÎÎÏ ÎÎÎÎÎÎÎÏ ÏÎÏ ÎÎÏÎÏÎÎ ÎÏÎÎ ÎÏÎÎÎÎÏÏ ÎÎÎ ÎÎ "
-"ÎÏÎÎÎÎ ÎÏÎÏÎ ÎÎÏÎÏÎÎ ÏÏÎ ÎÎÎ ÏÎÎÎ ÎÎÎ ÎÎ ÏÎÏ ÎÏÎÏÏÎÏÎÏÎ ÏÎÎ ÎÎÎÎÎÎ ÏÎÏ ÏÎÎÎÏ "
-"ÏÏÏÎÏ ÎÎ ÏÏÎÏÎÎ ÎÎ ÏÎÎÎÏÏÎÎÎÎÎÏÎÏÎ ÎÎÏÎ."
+#: C/license.page:33(page/p)
+msgid "Under the following conditions:"
+msgstr "ÎÎÏÏ ÎÏÏ ÏÎÏÏ ÎÎÏÎÎÏÎÎÏÏ ÏÏÎÏÏ:"
 
-#: C/spinbutton.js.page:26(p)
-msgid ""
-"It's best used when it's obvious that only a number can be entered into it. "
-"In this example, two SpinButtons are used for the number of kittens and "
-"number of cans of tuna to give them."
-msgstr ""
-"ÎÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÎÏÎÏÏÎ ÏÏÎÎ ÎÎÎÎÎ ÏÎÎÎÏÏ ÏÏÎ ÎÏÎÎ ÎÎÎÏ ÎÏÎÎÎÏÏ ÎÏÎÏÎÎ ÎÎ "
-"ÎÏÎÎ ÏÎ ÎÏÏÏ. ÎÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ, ÎÏÎ SpinButtons ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÎÎ "
-"ÏÎÎ ÎÏÎÎÎÏ ÎÏÏ ÎÎÏÎÎÎÎ ÎÎÎ ÏÎÎ ÎÏÎÎÎÏ ÏÏÎ ÎÎÎÏÎÏÎÏÎ ÏÏÎÎÎÏ ÏÎÏ ÏÎÏÏ ÎÎÎÎÎÏÎÎ."
+#: C/license.page:38(item/title)
+msgid "<em>Attribution</em>"
+msgstr "<em>ÎÏÏÎÎÏÎ</em>"
 
-#: C/spinbutton.js.page:68(p)
+#: C/license.page:39(item/p)
 msgid ""
-"All the code for this sample goes in the SpinButtonExample class. The above "
-"code creates a <link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/";
-"Gtk.Application.html\">Gtk.Application</link> for our widgets and window to "
-"go in."
+"You must attribute the work in the manner specified by the author or "
+"licensor (but not in any way that suggests that they endorse you or your use "
+"of the work)."
 msgstr ""
-"ÎÎÎÏ Î ÎÏÎÎÎÎÏ ÎÎÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÏÎÎÎÎÎÎÎ ÏÏÎÎ ÎÎÎÏÎ SpinButtonExample. "
-"Î ÏÎÏÎÏÎÎÏ ÎÏÎÎÎÎÏ ÎÎÎÎÎÏÏÎÎÎ ÎÎÎ <link href=\"http://www.roojs.com/seed/";
-"gir-1.2-gtk-3.0/gjs/Gtk.Application.html\">Gtk.Application</link> ÎÎÎ ÎÎ "
-"ÎÏÎÏÎ ÎÎÏÎ ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÏ ÎÎÎ ÏÎ ÏÎÏÎÎÏÏÎ."
+"ÎÏÎÏÎÎ ÎÎ ÎÏÎÎÏÏÎÏÎ ÏÎÎ ÎÏÎÎÏÎÎ ÎÎÏÎ ÏÎÎ ÎÎÎÎÏÎÏÎÎÎÎ ÏÏÏÏÎ ÎÏÏ ÏÎÎ ÏÏÎÎÏÎÏÎÎ "
+"Î ÎÎÎÎÎÎÏÏÎ (ÎÎÎÎ ÏÏÎ ÎÎ ÎÏÎÎÎÎÎÏÎÏÎ ÏÏÏÏÎ ÏÎÏ ÏÏÎÏÎÎÎÎÎ ÏÏÎ ÏÏÎÏÏÎÏÎÎÎÏÎ "
+"ÎÏÎÏ Î ÏÎ ÏÏÎÏÎ ÏÎÏ ÎÏÎÎÏÎÎÏ)."
 
-#: C/spinbutton.js.page:84(title)
-msgid "Creating the SpinButtons"
-msgstr "ÎÎÎÎÎÏÏÎÎÎ ÏÏÎ SpinButtons"
+#: C/license.page:46(item/title)
+msgid "<em>Share Alike</em>"
+msgstr "<em>ÎÎÏÏÎÎÎÎ ÎÎÎÎÎÎÎ</em>"
 
-#: C/spinbutton.js.page:91(p)
+#: C/license.page:47(item/p)
 msgid ""
-"We can use the new_with_range function to create a new SpinButton quickly. "
-"Its first parameter is the SpinButton's starting value, its second is the "
-"maximum value, and its third is how much to increment it when the plus or "
-"minus buttons are pressed."
+"If you alter, transform, or build upon this work, you may distribute the "
+"resulting work only under the same, similar or a compatible license."
 msgstr ""
-"ÎÏÎÏÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÏÎ ÏÏÎÎÏÏÎÏÎ new_with_range ÎÎÎ ÏÎ ÎÎÎÎÎÏÏÎÎÎ "
-"ÎÎÏÏ ÎÎÎÏ SpinButton ÎÏÎÎÎÏÎ. Î ÏÏÏÏÎ ÏÎÏ ÏÎÏÎÎÎÏÏÎÏ ÎÎÎÎÎ Î ÎÏÏÎÎÎ ÏÎÎÎ ÏÎÏ "
-"SpinButton, Î ÎÎÏÏÎÏÎ ÏÎÏ ÎÎÎÎÎ Î ÎÎÎÎÏÏÎ ÏÎÎÎ ÎÎÎ Î ÏÏÎÏÎ ÏÎÏ ÎÎÎÎÎ ÏÏÏÎ ÎÎ "
-"ÎÏÎÎÎÎÎ ÏÏÎÎ ÏÎÏÎÎÏÎÏÎÎ ÏÎ ÎÎÏÎÏÎÎ ÏÏÎ ÎÎÎ ÏÎÎÎ."
+"ÎÎÎ ÎÎÎÎÎÎÏÎ, ÎÎÏÎÏÏÎÎÎÏÎÏÎÏÎ Î ÎÎÎÎÎÏÏÎÎÏÎÏÎ ÎÎ ÎÎÏÎ ÎÏÏÎÎ ÏÎÎ ÎÏÎÎÏÎÎ, "
+"ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÎÎÎÎÎÏÎ ÏÎÎ ÏÎÎÎÎÎ ÎÏÎÎÏÎÎ ÎÎÏÏ ÎÏÏ ÏÎÎ ÎÎÎÎ, ÏÎÏÏÎÎÎÎ Î "
+"ÏÏÎÎÎÏÎ ÎÎÎÎÎ."
 
-#: C/spinbutton.js.page:92(p)
+#: C/license.page:53(page/p)
 msgid ""
-"After we create the first SpinButton, we connect its value-changed signal to "
-"a function which handles what happens when the number inside either "
-"SpinButton changes."
+"For the full text of the license, see the <link href=\"http://";
+"creativecommons.org/licenses/by-sa/3.0/legalcode\">CreativeCommons website</"
+"link>, or read the full <link href=\"http://creativecommons.org/licenses/by-";
+"sa/3.0/\">Commons Deed</link>."
 msgstr ""
-"ÎÏÎÏ ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ ÏÎ ÏÏÏÏÎ SpinButton, ÏÏÎÎÎÎÏÎÎ ÏÎ ÏÎÎÎ ÏÎÏ ÎÎÎÎÎÎÎÎÎÏ "
-"ÏÎÎÎÏ ÏÎ ÎÎÎ ÏÏÎÎÏÏÎÏÎ ÏÎÏ ÏÎÎÏÎÎÎÏÎÎ ÏÎ ÏÏÎÎÎÎÎÎÎ ÏÏÎÎ Î ÎÏÎÎÎÏÏ ÎÎÏÎ ÏÏÎ "
-"SpinButton ÎÎÎÎÎÎÎ."
+"ÎÎÎ ÏÎ ÏÎÎÏÎÏ ÎÎÎÎÎÎÎ ÏÎÏ ÎÎÎÎÎÏ, ÎÎÎÏÎ ÏÎÎ <link href=\"http://";
+"creativecommons.org/licenses/by-sa/3.0/legalcode\">ÎÏÏÏÏÎÏÎ CreativeCommons</"
+"link>, Î ÎÎÎÎÎÏÏÎ ÏÎÎ ÏÎÎ <link href=\"http://creativecommons.org/licenses/";
+"by-sa/3.0/\">ÎÏÎÎÎ Commons</link>."
 
-#: C/spinbutton.js.page:111(p)
-#| msgid ""
-#| "If you want more fine-grained control over a SpinButton, or want to "
-#| "create a bunch of SpinButtons which all use the same parameters, you can "
-#| "create an object called an <link href=\"http://www.roojs.org/seed/gir-1.2-";
-#| "gtk-3.0/gjs/Gtk.Adjustment.html\">Adjustment.</link> Then you can use "
-#| "that object as a new SpinButton's adjustment property, and it sets all "
-#| "the values at once. Afterwards, you can change all the SpinButtons which "
-#| "use that adjustment by changing the Adjustment object's properties."
+#: C/license.page:60(note/p)
 msgid ""
-"If you want more fine-grained control over a SpinButton, or want to create a "
-"bunch of SpinButtons which all use the same parameters, you can create an "
-"object called an <link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/";
-"Gtk.Adjustment.html\">Adjustment</link>. Then you can use that object as a "
-"new SpinButton's adjustment property, and it sets all the values at once. "
-"Afterwards, you can change all the SpinButtons which use that adjustment by "
-"changing the Adjustment object's properties."
+"As a special exception, the copyright holders give you permission to copy, "
+"modify, and distribute the example code contained in this documentation "
+"under the terms of your choosing, without restriction."
 msgstr ""
-"ÎÎÎ ÎÎÎÎÏÎ ÏÎÏÎÏÏÏÏÎÏÎ ÎÎÏÏÎÎÎÏÎ ÎÎÎÎÏÎ ÏÎ ÎÎÎ SpinButton, Î ÎÎÎÎÏÎ ÎÎ "
-"ÎÎÎÎÎÏÏÎÎÏÎÏÎ ÎÎÎ ÎÎÎÎÎ SpinButtons ÏÎÏ ÏÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎ ÏÎÏ ÎÎÎÎÏ "
-"ÏÎÏÎÎÎÏÏÎÏÏ, ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎ ÎÎÎ ÎÎÏÎÎÎÎÎÎÎÎ ÏÎÏ ÎÎÎÎÏÎÎ <link "
-"href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.Adjustment.html";
-"\">Adjustment</link>. ÎÏÎÎÏÎ ÎÏÎÏÎÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÎÏÏÏ ÏÎ ÎÎÏÎÎÎÎÎÎÎÎ "
-"ÏÏ ÎÎÎ ÎÎÎ ÎÎÎÏÏÎÏÎ ÏÏÎÎÎÏÎÏ ÏÎÏ SpinButton ÎÎÎ ÎÏÎÎÎÎ ÏÎÎÏ ÏÎÏ ÏÎÎÎÏ "
-"ÎÎÎÎÎÎÎÏ. ÎÎÏÏÏÎÎ, ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÎÎÎÏÎ ÏÎÎ ÏÎ SpinButtons ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÏÎ "
-"ÎÏÏÎÎ ÏÎ ÏÏÎÎÎÏÎ ÎÎÎÎÎÎÎÏÎÏ ÏÎÏ ÎÎÎÏÏÎÏÎÏ ÏÎÏ ÎÎÏÎÎÎÎÎÎÎÎÏ ÏÏÎÎÎÏÎÏ."
+"ÎÏ ÎÎÎÎÎÎ ÎÎÎÎÏÎÏÎ, ÎÎ ÏÎÎÏÎÎÏÎÎÎÎ ÎÎÎÎÎÏÎÏÎÏ ÏÎÏ ÎÏÎÏÏÎÏÎÏÎ ÎÎ ÎÎÏÎÎÏÎÏÎÏÎ, "
+"ÎÎ ÏÏÎÏÎÏÎÎÎÏÎÏÎ ÎÎÎ ÎÎ ÎÎÎÎÎÎÎÎÏÎ ÏÎ ÏÎÏÎÎÎÎÎÎÎÏÎ ÎÏÎÎÎÎ ÏÎÏ "
+"ÏÎÏÎÎÎÎÎÎÎÎÎÏÎÎ Ï' ÎÏÏÎÎ ÏÎÎ ÏÎÎÎÎÏÎÏÏÎ ÏÏÏ ÏÎÏÏ ÏÏÎÏÏ ÏÎÏ ÎÏÎÎÎÎÎÏ ÏÎÏ, "
+"ÏÏÏÎÏ ÏÎÏÎÎÏÎÏÎÏ."
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/linkbutton.c.page:22(media) C/linkbutton.js.page:21(media)
+#: C/linkbutton.py.page:23(media) C/linkbutton.vala.page:21(media)
+msgctxt "_"
+msgid ""
+"external ref='media/linkbutton.png' md5='3712eae8953e87c65a6aa74503b8e32b'"
+msgstr ""
+"external ref='media/linkbutton.png' md5='3712eae8953e87c65a6aa74503b8e32b'"
+
+#: C/linkbutton.c.page:7(info/title)
+msgctxt "text"
+msgid "LinkButton (C)"
+msgstr "LinkButton (C)"
+
+#: C/linkbutton.c.page:17(info/desc) C/linkbutton.vala.page:17(info/desc)
+msgid "Create buttons bound to a URL"
+msgstr "ÎÎÎÎÎÏÏÎÎÎ ÎÎÏÎÏÎÏÎ ÎÎÏÎÎÏÎÎÎÏÎ ÏÎ ÎÎÎ URL"
+
+#: C/linkbutton.c.page:20(page/title) C/linkbutton.js.page:20(page/title)
+#: C/linkbutton.py.page:21(page/title) C/linkbutton.vala.page:20(page/title)
+msgid "LinkButton"
+msgstr "LinkButton"
 
-#: C/spinbutton.js.page:112(p)
+#: C/linkbutton.c.page:23(page/p)
+msgid "This button links to the GNOME live webpage."
+msgstr "ÎÏÏÏ ÏÎ ÎÎÏÎÏÎ ÏÏÎÎÎÎÎ ÎÎ ÏÎÎ ÎÏÏÎÏÎÎÎÎÎ ÏÎÏ GNOME."
+
+#: C/linkbutton.c.page:25(page/code)
+#, no-wrap
 msgid ""
-"The commented-out lines here show things you can do to customize your "
-"SpinButton. You can set the number of digits which go after the decimal "
-"point, for example, or tell it to wrap the number around if it goes past the "
-"upper or lower bounds that you set."
+"\n"
+"#include &lt;gtk/gtk.h&gt;\n"
+"\n"
+"static void\n"
+"activate (GtkApplication *app,\n"
+"          gpointer        user_data)\n"
+"{\n"
+"  GtkWidget *window;\n"
+"  GtkWidget *linkbutton;\n"
+"\n"
+"  window = gtk_application_window_new (app);\n"
+"\n"
+"  gtk_window_set_title (GTK_WINDOW (window), \"GNOME LinkButton\");\n"
+"  gtk_window_set_default_size (GTK_WINDOW (window), 250, 50);\n"
+"\n"
+"  linkbutton = gtk_link_button_new (\"Link to GNOME live!\");\n"
+"  gtk_link_button_set_uri (GTK_LINK_BUTTON(linkbutton), \"http://live.gnome.org\";);\n"
+"\n"
+"  gtk_container_add (GTK_CONTAINER (window), GTK_WIDGET (linkbutton));\n"
+"\n"
+"  gtk_widget_show_all (window);\n"
+"}\n"
+"\n"
+"int\n"
+"main (int argc, char **argv)\n"
+"{\n"
+"  GtkApplication *app;\n"
+"  int status;\n"
+"\n"
+"  app = gtk_application_new (\"org.gtk.example\", G_APPLICATION_FLAGS_NONE);\n"
+"  g_signal_connect (app, \"activate\", G_CALLBACK (activate), NULL);\n"
+"  status = g_application_run (G_APPLICATION (app), argc, argv);\n"
+"  g_object_unref (app);\n"
+"\n"
+"  return status;\n"
+"}\n"
 msgstr ""
-"ÎÎ ÏÏÎÎÎÎÏÎÎÎÎÏ ÎÏÎÎÎÎÏ ÎÎÏ ÎÎÏÎÎÎÎÎÏÎ ÏÏÎÎÎÎÏÎ ÏÎÏ ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÎÏÎ ÎÎÎ "
-"ÏÏÎÏÎÏÎÎÎÎ ÏÎÏ SpinButton ÏÎÏ. ÎÏÎÏÎÎÏÎ ÎÎ ÎÏÎÏÎÏÎ ÏÎÎ ÎÏÎÎÎÏ ÏÏÎ ÏÎÏÎÏÎ "
-"ÎÎÏÎ ÏÎÎ ÎÎÎÎÎÎÎÎ ÏÏÎÎÎÎÏÏÎÎÎ, ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ, Î ÎÎ ÏÎÏ ÏÎÎÏÎ ÎÎ ÎÎÎÎÎÏÎÏÏÎÎ "
-"ÏÎÎ ÎÏÎÎÎÏ ÎÎÎ ÎÎÏÎÏÎÏÎÎ ÏÎ ÎÎÏ Î ÎÎÏÏ ÏÏÎÎ ÏÎÏ ÎÏÎÏÎÏÎ."
+"\n"
+"#include &lt;gtk/gtk.h&gt;\n"
+"\n"
+"static void\n"
+"activate (GtkApplication *app,\n"
+"          gpointer        user_data)\n"
+"{\n"
+"  GtkWidget *window;\n"
+"  GtkWidget *linkbutton;\n"
+"\n"
+"  window = gtk_application_window_new (app);\n"
+"\n"
+"  gtk_window_set_title (GTK_WINDOW (window), \"GNOME LinkButton\");\n"
+"  gtk_window_set_default_size (GTK_WINDOW (window), 250, 50);\n"
+"\n"
+"  linkbutton = gtk_link_button_new (\"Link to GNOME live!\");\n"
+"  gtk_link_button_set_uri (GTK_LINK_BUTTON(linkbutton), \"http://live.gnome.org\";);\n"
+"\n"
+"  gtk_container_add (GTK_CONTAINER (window), GTK_WIDGET (linkbutton));\n"
+"\n"
+"  gtk_widget_show_all (window);\n"
+"}\n"
+"\n"
+"int\n"
+"main (int argc, char **argv)\n"
+"{\n"
+"  GtkApplication *app;\n"
+"  int status;\n"
+"\n"
+"  app = gtk_application_new (\"org.gtk.example\", G_APPLICATION_FLAGS_NONE);\n"
+"  g_signal_connect (app, \"activate\", G_CALLBACK (activate), NULL);\n"
+"  status = g_application_run (G_APPLICATION (app), argc, argv);\n"
+"  g_object_unref (app);\n"
+"\n"
+"  return status;\n"
+"}\n"
 
-#: C/spinbutton.js.page:113(p)
+#: C/linkbutton.c.page:33(item/p)
 msgid ""
-"For the kitties' sake, please don't use set_digits to allow a decimal number "
-"of kittens."
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkLinkButton.html";
+"\">GtkLinkButton</link>"
 msgstr ""
-"ÎÎÎ ÏÎÏÎ ÏÏÎ ÎÎÏÎÏÎ, ÏÎÏÎÎÎÎÏ ÎÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ set_digits ÏÎÏ ÎÏÎÏÏÎÏÎÎ "
-"ÎÎÎÎÎÎÎÏ ÎÏÎÎÎÏ ÎÎÏÎÏÎ."
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkLinkButton.html";
+"\">GtkLinkButton</link>"
 
-#: C/spinbutton.js.page:117(title)
-msgid "Creating the rest of the UI"
-msgstr "ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ ÏÏÏÎÎÎÏÎÏ ÎÎÎÏÎÏÎÏ ÏÏÎÏÏÎ"
+#: C/linkbutton.js.page:7(info/title)
+msgctxt "text"
+msgid "LinkButton (JavaScript)"
+msgstr "LinkButton (JavaScript)"
+
+#: C/linkbutton.js.page:17(info/desc)
+msgid "A button that links to a web page"
+msgstr "ÎÎÎ ÎÎÏÎÏÎ ÏÎÏ ÏÏÎÎÎÎÎ ÏÎ ÎÏÏÎÏÎÎÎÎÎ"
+
+#: C/linkbutton.js.page:22(page/p)
+msgid "A button that links to live.gnome.org."
+msgstr "ÎÎÎ ÎÎÏÎÏÎ ÏÎÏ ÏÏÎÎÎÎÎ ÎÎ ÏÎ live.gnome.org."
 
-#: C/spinbutton.js.page:128(p)
+#: C/linkbutton.js.page:24(page/code)
+#, no-wrap
 msgid ""
-"We create each <link xref=\"label.js\">Label</link> individually, and then "
-"string them together along with the SpinButtons. The last label needs to "
-"show the number of cans of tuna per kitten, so it has a variable in the "
-"middle, which corresponds to an equation that uses the SpinButtons' "
-"get_value functions to find out what they're set at. JavaScript's Math "
-"function's floor method is used to round the number of cans of tuna per "
-"kitten down to the nearest whole number."
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gio = imports.gi.Gio;\n"
+"const GLib = imports.gi.GLib;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"const LinkButtonExample = new Lang.Class ({\n"
+"    Name: 'LinkButton Example',\n"
+"\n"
+"    // Create the application itself\n"
+"        _init: function () {\n"
+"        this.application = new Gtk.Application ({\n"
+"              application_id: 'org.example.jslinkbutton',\n"
+"              flags: Gio.ApplicationFlags.FLAGS_NONE\n"
+"         });\n"
+"\n"
+"    // Connect 'activate' and 'startup' signals to the callback functions\n"
+"    this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"    this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents window when active\n"
+"    _onActivate: function () {\n"
+"        this._window.present ();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal initializes menus and builds the UI\n"
+"    _onStartup: function () {\n"
+"        this._buildUI ();\n"
+"    },\n"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function () {\n"
+"\n"
+"        // Create the application window\n"
+"    this._window = new Gtk.ApplicationWindow  ({ application: this.application,\n"
+"                                                 window_position: Gtk.WindowPosition.CENTER,\n"
+"                                                 title: \"GNOME LinkButton\",\n"
+"                                                 default_height: 50,\n"
+"                                                 default_width: 250 });\n"
+"\n"
+"        // Create the LinkButton and have it link to live.gnome.org\n"
+"        this.LinkButton = new Gtk.LinkButton ({label: \"Link to GNOME live!\",\n"
+"                               uri: \"http://live.gnome.org\"});\n"
+"        this._window.add (this.LinkButton);\n"
+"\n"
+"    // Show the window and all child widgets\n"
+"    this._window.show_all();\n"
+"    },\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new LinkButtonExample ();\n"
+"app.application.run (ARGV);\n"
 msgstr ""
-"ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎÎ <link xref=\"label.js\">ÎÏÎÎÎÏÎ</link> ÎÎÏÏÏÎÏÏÎ ÎÎÎ "
-"ÎÏÎÎÏÎ ÏÎÏ ÏÏÎÎÎÎÏÎÎ ÎÎÎÎ ÎÎ ÏÎ SpinButtons. Î ÏÎÎÎÏÏÎÎÎ ÎÏÎÎÎÏÎ ÏÏÎÎÎÎÎÏÎÎ "
-"ÎÎ ÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÏÎÎÎÏ ÏÏÎ ÎÎÎÏÎÏÎÏÎ ÏÏÎÎÎÏ ÎÎÎ ÎÎÏÎ, ÎÏÏÎ ÎÏÎÎ ÎÎÎ "
-"ÎÎÏÎÎÎÎÏÎ ÏÏÎ ÎÎÏÎ, ÏÎÏ ÎÎÏÎÏÏÎÎÏÎÎ ÏÎ ÎÎÎ ÎÎÎÏÏÏÎ ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÎ ÏÎÏ "
-"ÏÏÎÎÏÏÎÏÎÎÏ get_value ÏÏÎ SpinButtons ÎÎÎ ÏÎÎ ÎÏÏÎÏÎ ÏÎÏ ÎÏÎÏÎÎÏ ÏÎÏÏ. Î "
-"ÎÎÎÎÎÎÏ ÏÏÏÎÎÎÏÎÎÏÏÎÏ ÏÎÏ ÎÎÎÎÎÎÏÎÎÎÏ ÏÏÎÎÏÏÎÏÎÏ ÏÎÏ JavaScript "
-"ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÎÎÎ ÏÏÏÎÎÎÏÎÎÏÏÎ ÏÎÏ ÎÏÎÎÎÎÏ ÏÏÎ ÎÎÎÏÎÏÎÏÎ ÎÎÎ ÎÎÏÎ ÏÏÎÎ "
-"ÏÎÎÏÎÎÏÏÎÏÎ ÎÎÏÏ ÎÎÎÏÎÎÎ ÎÏÎÎÎÏ."
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gio = imports.gi.Gio;\n"
+"const GLib = imports.gi.GLib;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"const LinkButtonExample = new Lang.Class ({\n"
+"    Name: 'LinkButton Example',\n"
+"\n"
+"    // Create the application itself\n"
+"        _init: function () {\n"
+"        this.application = new Gtk.Application ({\n"
+"              application_id: 'org.example.jslinkbutton',\n"
+"              flags: Gio.ApplicationFlags.FLAGS_NONE\n"
+"         });\n"
+"\n"
+"    // Connect 'activate' and 'startup' signals to the callback functions\n"
+"    this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"    this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents window when active\n"
+"    _onActivate: function () {\n"
+"        this._window.present ();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal initializes menus and builds the UI\n"
+"    _onStartup: function () {\n"
+"        this._buildUI ();\n"
+"    },\n"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function () {\n"
+"\n"
+"        // Create the application window\n"
+"    this._window = new Gtk.ApplicationWindow  ({ application: this.application,\n"
+"                                                 window_position: Gtk.WindowPosition.CENTER,\n"
+"                                                 title: \"GNOME LinkButton\",\n"
+"                                                 default_height: 50,\n"
+"                                                 default_width: 250 });\n"
+"\n"
+"        // Create the LinkButton and have it link to live.gnome.org\n"
+"        this.LinkButton = new Gtk.LinkButton ({label: \"Link to GNOME live!\",\n"
+"                               uri: \"http://live.gnome.org\"});\n"
+"        this._window.add (this.LinkButton);\n"
+"\n"
+"    // Show the window and all child widgets\n"
+"    this._window.show_all();\n"
+"    },\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new LinkButtonExample ();\n"
+"app.application.run (ARGV);\n"
 
-#: C/spinbutton.js.page:154(p)
+#: C/linkbutton.js.page:31(item/p)
 msgid ""
-"Here we use <link xref=\"grid.js\">Grid</link> widgets to keep everything "
-"organized. One Grid holds the labels and SpinButtons in order, while the "
-"next puts that Grid on top and the final Label on the bottom."
+"<link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.LinkButton.";
+"html\">Gtk.LinkButton</link>"
 msgstr ""
-"ÎÎÏ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ <link xref=\"grid.js\">ÏÎÎÎÎÎ</link> ÎÏÎÏÎÎÏÎ ÏÏÏÏÎÏÎÎÏÎ "
-"ÎÎÎ ÎÎ ÎÏÎÏÎÎÎ ÏÎ ÎÎÎÎÏÎ ÎÏÎÎÎÏÎÎÎÎ. ÎÎÎ ÏÎÎÎÎÎ ÎÏÎÏÎ ÏÎÏ ÎÏÎÎÎÏÎÏ ÎÎÎ "
-"SpinButtons ÏÎ ÏÎÎÏÎ, ÎÎÏ ÏÎ ÎÏÏÎÎÎÎ ÎÎÎÎÎ ÎÏÏÏ ÏÎ ÏÎÎÎÎÎ ÏÏÎÎ ÎÎÏÏÏÎ ÎÎÎ "
-"ÏÎÎ ÏÎÎÎÎÎ ÎÏÎÎÎÏÎ ÏÏÎ ÏÎÎÎÏ."
+"<link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.LinkButton.";
+"html\">Gtk.LinkButton</link>"
+
+#: C/linkbutton.py.page:7(info/title)
+msgctxt "text"
+msgid "LinkButton (Python)"
+msgstr "LinkButton (Python)"
+
+#: C/linkbutton.py.page:18(info/desc)
+msgid "A button bound to an URL"
+msgstr "ÎÎÎ ÎÎÏÎÏÎ ÎÎÏÎÎÏÎÎÎÎ ÏÎ ÎÎÎ ÎÎÎÏÎÏÎÏÎ (URL)"
 
-#: C/spinbutton.js.page:155(p)
+#: C/linkbutton.py.page:24(page/p)
+msgid "A button that links to a web page."
+msgstr "ÎÎÎ ÎÎÏÎÏÎ ÏÎÏ ÏÏÎÎÎÎÎ ÏÎ ÎÏÏÎÏÎÎÎÎÎ."
+
+#: C/linkbutton.py.page:31(section/code)
+#, no-wrap
 msgid ""
-"There isn't a wrong way to organize things in Grids, so long as you like how "
-"it turns out. In this case, the top Grid has a margin on the bottom to keep "
-"it evenly spaced from the bottom Label, and the bottom Label is inside a "
-"separate Grid so it will be centered relative to the Labels and SpinButtons "
-"on the top."
+"from gi.repository import Gtk\n"
+"import sys\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    # a window\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"GNOME LinkButton\", application=app)\n"
+"        self.set_default_size(250, 50)\n"
+"\n"
+"        # a linkbutton pointing to the given URI\n"
+"        button = Gtk.LinkButton(uri=\"http://live.gnome.org\";)\n"
+"        # with given text\n"
+"        button.set_label(\"Link to GNOME live!\")\n"
+"\n"
+"        # add the button to the window\n"
+"        self.add(button)\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup (self):\n"
+"        Gtk.Application.do_startup (self)\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
 msgstr ""
-"ÎÎÎ ÏÏÎÏÏÎÎ ÎÏÏÎÎÎÎÎÎÏ ÏÏÏÏÎÏ ÎÏÎÎÎÏÏÎÏ ÏÏÎ ÏÏÎÎÎÎÏÏÎ ÏÏÎ ÏÎÎÎÎÎÏÎ, ÎÏÏÏÎÎ "
-"ÏÎÏ ÎÏÎÏÎÎ ÏÏÏÏ ÏÏÎÎÏÏÏÎÎ. ÎÎ ÎÏÏÎÎ ÏÎÎ ÏÎÏÎÏÏÏÏÎ, ÏÎ ÎÎÏÏÏÎÎÎ ÏÎÎÎÎÎ ÎÏÎÎ "
-"ÎÎÎ ÏÎÏÎÎÏÏÎÎ ÏÏÎ ÏÎÎÎÏ ÎÎÎ ÎÎ ÎÏÎÏÎÎÎÎ ÏÎ ÎÎÎÎÏÎÎÏÏÎ ÎÏÏÏÏÎÏÎ ÎÏÏ ÏÎÎ "
-"ÎÏÎÎÎÏÎ ÏÎÎÎÏÏ ÎÎÎ Î ÎÏÎÎÎÏÎ ÏÎÎÎÏÏ ÎÎÎÎÎ ÎÎÏÎ ÏÎ ÎÎÎ ÎÎÏÏÏÎÏÏÏ ÏÎÎÎÎÎ ÎÏÏÎ "
-"ÏÏÏÎ ÎÎ ÎÎÎÏÏÎÏÎÏÏÎÎ ÏÏÎÏÎÎÎ ÎÎ ÏÎÏ ÎÏÎÎÎÏÎÏ ÎÎÎ ÏÎ SpinButtons ÏÏÎÎ ÎÎÏÏÏÎ."
+"from gi.repository import Gtk\n"
+"import sys\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    # a window\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"GNOME LinkButton\", application=app)\n"
+"        self.set_default_size(250, 50)\n"
+"\n"
+"        # a linkbutton pointing to the given URI\n"
+"        button = Gtk.LinkButton(uri=\"http://live.gnome.org\";)\n"
+"        # with given text\n"
+"        button.set_label(\"Link to GNOME live!\")\n"
+"\n"
+"        # add the button to the window\n"
+"        self.add(button)\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup (self):\n"
+"        Gtk.Application.do_startup (self)\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
 
-#: C/spinbutton.js.page:169(title)
-msgid "Function which handles the SpinButtons' numerical values being adjusted"
-msgstr ""
-"Î ÏÏÎÎÏÏÎÏÎ ÏÎÏ ÏÎÎÏÎÎÎÏÎÎ ÏÎÏ ÎÏÎÎÎÎÏÎÎÎÏ ÏÎÎÎÏ ÏÏÎ SpinButtons ÏÏÎÎÎÏÏÎÎÎ"
+#: C/linkbutton.py.page:35(section/title)
+msgid "Useful methods for a LinkButton widget"
+msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ LinkButton"
 
-#: C/spinbutton.js.page:182(p)
+#: C/linkbutton.py.page:37(item/p)
 msgid ""
-"Here we update the perKitten variable based on the SpinButtons' new values, "
-"and use the set_label property to refresh what _lastLabel shows. Since both "
-"SpinButtons have their value-changed signal connected to this function, "
-"every time either of the numbers changes this function will update the Label."
+"<code>get_visited()</code> returns the 'visited' state (<code>True</code> or "
+"<code>False</code>) of the URI where the LinkButton points. The button "
+"becomes visited when it is clicked."
 msgstr ""
-"ÎÎÏ ÎÎÎÎÎÏÏÎÎÏÎÎ ÏÎ ÎÎÏÎÎÎÎÏÎ perKitten ÎÎ ÎÎÏÎ ÏÎÏ ÎÎÎÏ ÏÎÎÎÏ ÏÏÎ "
-"SpinButtons ÎÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÎÎÏÏÎÏÎ set_label ÎÎÎ ÎÎÎÎÎÏÏÎ ÏÎÏ "
-"ÏÏÎÎÎÎÎÏ _lastLabel. ÎÏÎÏ ÎÎÎ ÏÎ ÎÏÎ SpinButtons ÎÏÎÏÎ ÏÎ ÏÎÎÎ ÏÎÏÏ "
-"ÎÎÎÎÎÎÎÎÎÏ ÏÎÎÎÏ ÏÏÎÎÎÎÎÎÎ ÏÎ ÎÏÏÎ ÏÎ ÏÏÎÎÏÏÎÏÎ, ÎÎÎÎ ÏÎÏÎ ÎÏÎÎÎÎÎÏÎÏÎ ÎÏÏ "
-"ÏÎÏÏ ÎÏÎÎÎÎÏÏ ÎÎÎÎÎÎÎ ÎÏÏÎ ÏÎ ÏÏÎÎÏÏÎÏÎ ÎÎ ÎÎÎÎÎÏÏÏÎÎ ÏÎÎ ÎÏÎÎÎÏÎ."
+"<code>get_visited()</code> ÎÏÎÏÏÏÎÏÎÎ ÏÎÎ ÎÎÏÎÏÏÎÏÎ 'visited' (<code>True</"
+"code> Î <code>False</code>) ÏÎÏ URI ÏÏÎÏ ÏÎ ÏÎÎÎÎÎ LinkButton. ÎÎ ÎÎÏÎÏÎ "
+"ÎÎÎÎÏÎÎ ÎÎÎÎÎÏÏÎÎÎÎ ÏÏÎÎ ÏÎÏÎÎÏÎÎ."
 
-#: C/spinbutton.js.page:189(p)
+#: C/linkbutton.py.page:38(item/p)
 msgid ""
-"Finally, we create a new instance of the finished SpinButtonExample class, "
-"and set the application running."
+"<code>set_visited(True)</code> sets the 'visited' state of the URI where the "
+"LinkButton points as <code>True</code> (analogously for <code>False</code>)."
 msgstr ""
-"ÎÎÎÎÎÎ, ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ ÏÎÏ ÎÎÎÎÎÎÏÏÎÎÎÎÏ ÎÎÎÏÎÏ "
-"SpinButtonExample ÎÎÎ ÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ."
-
-#: C/spinbutton.js.page:200(link) C/scale.vala.page:32(link)
-#: C/scale.js.page:209(link)
-msgid "Gtk.Adjustment"
-msgstr "Gtk.Adjustment"
-
-#: C/spinbutton.c.page:7(title)
-msgid "SpinButton (C)"
-msgstr "SpinButton (C)"
-
-#: C/spinbutton.c.page:20(desc)
-msgid "Retrieve an integer or floating point number"
-msgstr "ÎÎÎÎÏÎÏÎ ÎÎÎÏÎÎÎÏ Î ÎÏÎÎÎÎÏ ÎÎÎÎÏÎÏ ÏÏÎÎÎÎÏÏÎÎÎÏ"
-
-#: C/signals-callbacks.py.page:8(title)
-msgid "Signals and callbacks (Python)"
-msgstr "ÎÎÎÎÏÎ ÎÎÎ ÎÏÎÎÎÎÎÎÏÎÎÏ (Python)"
-
-#: C/signals-callbacks.py.page:12(desc)
-msgid "An explanation of signals and callbacks in GTK+."
-msgstr "ÎÎÎ ÎÎÎÎÎÏÎ ÏÏÎ ÏÎÎÎÏÏÎ ÎÎÎ ÏÏÎ ÎÏÎÎÎÎÎÎÏÎÏÎ ÏÏÎ GTK+."
-
-#: C/signals-callbacks.py.page:25(title)
-msgid "Signals and callbacks"
-msgstr "ÎÎÎÎÏÎ ÎÎÎ ÎÏÎÎÎÎÎÎÏÎÎÏ"
-
-#: C/signals-callbacks.py.page:30(title) C/properties.py.page:30(title)
-#: C/model-view-controller.py.page:30(title)
-msgid "Overview"
-msgstr "ÎÏÎÏÎÏÏÎÏÎ"
+"<code>set_visited(True)</code> ÎÏÎÎÎÎ ÏÎÎ ÎÎÏÎÏÏÎÏÎ 'visited' ÏÎÏ URI ÏÏÎÏ "
+"ÏÎ ÏÎÎÎÎÎ LinkButton ÏÏ <code>True</code> (ÎÎÎÎÎÎÎ ÎÎÎ <code>False</code>)."
 
-#: C/signals-callbacks.py.page:32(p)
+#: C/linkbutton.py.page:39(item/p)
 msgid ""
-"Like most GUI toolkits, GTK+ uses an event-driven programming model. When "
-"the user is doing nothing, GTK+ sits in the main loop and waits for input. "
-"If the user performs some action - say, a mouse click - then the main loop "
-"\"wakes up\" and delivers an event to GTK+."
+"Each time the button is clicked, the signal <code>\"activate-link\"</code> "
+"is emitted. For an explanation of signals and callback functions, see <link "
+"xref=\"signals-callbacks.py\">this page</link>."
 msgstr ""
-"ÎÏÏÏ ÏÎ ÏÎÏÎÏÏÏÏÎÏÎ ÏÎÎÎÏÎ ÎÏÎÎÎÎÎÏÎ GUI, ÏÎ GTK+ ÏÏÎÏÎÎÎÏÎÎÎÎ ÎÎÎ ÏÏÏÏÏÏÎ "
-"ÏÏÎÎÏÎÎÎÎÏÎÏÎÎÏ ÎÎÎÎÎÏÎÎÎÎ ÎÏÏ ÏÏÎÎÎÎÏÎ. ÎÏÎÎ Î ÏÏÎÏÏÎÏ ÎÎÎ ÎÎÎÎÎ ÏÎÏÎÏÎ, ÏÎ "
-"GTK+ ÎÎÎÎÏÎÎ ÏÏÎÎ ÎÏÏÎÎ ÎÏÏÏÎ ÎÎÎ ÏÎÏÎÎÎÎÎÎ ÎÎÎ ÎÎÏÎÎÏÎÎ. ÎÎÎ Î ÏÏÎÏÏÎÏ "
-"ÎÎÏÎÎÎÏÎÎ ÎÎÏÎÎÎ ÎÎÎÏÎÎÎÎ - ÎÏ ÏÎÏÎÎ, ÏÎÏÎÎÎ ÏÎÎÏÎÎÎÎÏ - ÏÏÏÎ Î ÎÏÏÎÎÏ "
-"ÎÏÏÏÎÏ \"ÎÏÏÎÎ\" ÎÎÎ ÎÎÎÎÎÎÎÎÎÎ ÎÎÎ ÏÏÎÎÎÎ ÏÏÎ GTK+."
+"ÎÎÎÎ ÏÎÏÎ ÏÎÏ ÏÎ ÎÎÏÎÏÎ ÏÎÏÎÎÏÎÎ, ÏÎ ÏÎÎÎ <code>\"activate-link\"</code> "
+"ÎÎÏÎÎÏÎÏÎÎ. ÎÎÎ ÎÎÎ ÎÎÎÎÎÏÎ ÏÏÎ ÏÎÎÎÏÏÎ ÎÎÎ ÏÏÎ ÏÏÎÎÏÏÎÏÎÏÎ ÎÏÎÎÎÎÎÎÏÎÏ, "
+"ÎÎÎÏÎ <link xref=\"signals-callbacks.py\">ÎÏÏÎÎ ÏÎ ÏÎÎÎÎÎ</link>."
 
-#: C/signals-callbacks.py.page:34(p)
+#: C/linkbutton.py.page:47(item/p)
 msgid ""
-"When widgets receive an event, they frequently emit one or more signals. "
-"Signals notify your program that \"something interesting happened\" by "
-"invoking functions you have connected to the signal. Such functions are "
-"commonly known as callbacks. When your callbacks are invoked, you would "
-"typically take some action. After a callback finishes, GTK+ will return to "
-"the main loop and await more user input."
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkLinkButton.html";
+"\">GtkLinkButton</link>"
 msgstr ""
-"ÎÏÎÎ ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÏÎÎÏÎÎ ÎÎÎ ÏÏÎÎÎÎ, ÎÎÏÎÎÏÎÏÎ ÏÏÏÎÎ ÎÎÎ Î "
-"ÏÎÏÎÏÏÏÏÎÏÎ ÏÎÎÎÏÎ. ÎÎ ÏÎÎÎÏÎ ÎÎÎÎÏÎÎÎÏÎ ÏÎ ÏÏÏÎÏÎÎÎÎ ÏÎÏ ÏÏÎ \"ÎÎÏÎ "
-"ÏÎÎÎÎÏÎÎÏ ÏÏÎÎÎÎ\" ÎÎÎÏÎÏÎÏ ÏÎÏ ÏÏÎÎÏÏÎÏÎÎÏ ÏÎÏ ÎÏÎÏÎ ÏÏÎÎÎÏÎÎ ÏÏÎ ÏÎÎÎ. "
-"ÎÎÏÎÎÎÏ ÏÏÎÎÏÏÎÏÎÎÏ ÎÎÎÎÎ ÎÎÎÎÎÎ ÎÎÏÏÏÎÏ ÏÏ ÎÏÎÎÎÎÎÎÏÎÎÏ. ÎÏÎÎ ÎÎ "
-"ÎÏÎÎÎÎÎÎÏÎÎÏ ÏÎÏ ÎÎÎÎÏÎÏÎÎ, ÎÎ ÏÎÏÎÏÎ ÏÏÏÎÎÎ ÎÎÏÎÎÎ ÎÎÎÏÎÎÎÎ. ÎÏÎÏ ÏÎÎÎÎÏÏÎÎ "
-"Î ÎÏÎÎÎÎÎÎÏÎ, ÏÎ GTK+ ÎÎ ÎÏÎÏÏÏÎÏÎÎ ÏÏÎÎ ÎÏÏÎÎ ÎÏÏÏÎ ÎÎÎ ÎÎ ÏÎÏÎÎÎÎÎÎ "
-"ÏÎÏÎÏÏÏÏÎÏÎÏ ÎÎÏÎÎÏÎÎÏ ÏÎÏ ÏÏÎÏÏÎ."
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkLinkButton.html";
+"\">GtkLinkButton</link>"
 
-#: C/signals-callbacks.py.page:36(p)
-msgid ""
-"A generic example is: <code>handler_id = widget.connect(\"event\", callback, "
-"data)</code>. <code>widget</code> is an instance of a widget we created "
-"earlier. Next, the <code>event</code> we are interested in. Each widget has "
-"its own particular events which can occur. For instance, if you have a Gtk."
-"Button you usually want to connect to the \"clicked\" event: this means that "
-"when the button is clicked, the signal is issued. Another example is the "
-"<code>notify::property</code> signal: whenever a <link xref=\"properties.py"
-"\">property</link> is modified on a GObject, instead of just emitting the "
-"<code>notify</code> signal, GObject associates as a detail to this signal "
-"emission the name of the property modified. This allows clients who wish to "
-"be notified of changes to only one property to filter most events before "
-"receiving them. Thirdly, the callback argument is the name of the callback "
-"function, which contains the code which runs when signals of the specified "
-"type are issued. Finally, the optional data argument includes any data which "
-"should be passed when the signal is issued."
-msgstr ""
-"ekd;idetaiÎÎÎ ÎÎÎÎÎÏ ÏÎÏÎÎÎÎÎÎÎ ÎÎÎÎÎ: <code>handler_id = widget.connect"
-"(\"event\", callback, data)</code>. <code>widget</code> ÎÎÎÎÎ ÎÎÎ "
-"ÏÏÎÎÎÎÏÏÏÏÎ ÏÎÏ ÎÏÎÏÎÎÎÏ ÏÏÏÏÎÏÎÎÎÏ ÏÎÏ ÎÎÎÎÎÏÏÎÎÏÎÎÎ ÎÏÏÎÏÎÏÎ. ÎÎÏÏÏÎÎ "
-"ÎÎÎÎÎÏÎÏÏÎÎÏÏÎ ÎÎÎ ÏÎ <code>event</code>. ÎÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÏÎÎ ÏÎ "
-"ÎÎÎÎ ÏÎÏ ÏÏÎÎÎÎÏÎÎÎÎÎ ÏÏÎÎÎÎÏÎ ÏÎÏ ÎÏÎÏÎÏÎ ÎÎ ÏÏÎÎÎÏÎ. ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ, ÎÎÎ "
-"ÎÏÎÏÎ ÎÎÎ Gtk.Button ÏÏÎÎÎÏÏ ÎÎÎÎÏÎ ÎÎ ÏÏÎÎÎÎÎÎÏÎ ÎÎ ÏÎ \"ÏÎÏÎÎÎÎÎ\" ÏÏÎÎÎÎ: "
-"ÎÏÏÏ ÏÎÎÎÎÎÎÎ ÏÏÎ ÏÏÎÎ ÏÎ ÎÎÏÎÏÎ ÏÎÏÎÎÏÎÎ, ÏÎ ÏÎÎÎ ÎÎÎÎÎÎÏÎÎ. ÎÎÎ ÎÎÎÎ "
-"ÏÎÏÎÎÎÎÎÎÎ ÎÎÎÎÎ ÏÎ ÏÎÎÎ <code>notify::property</code>: ÏÏÎÏÎ ÎÎÎ <link xref="
-"\"properties.py\">ÎÎÎÏÏÎÏÎ</link> ÏÏÎÏÎÏÎÎÎÎÏÎÎ ÏÎ ÎÎÎ GObject, ÎÎÏÎ ÎÎÎ "
-"ÎÏÎÎ ÎÎÏÎÎÏÎ ÏÎÏ ÏÎÎÎÏÎÏ <code>notify</code>, ÏÎ GObject ÏÏÏÏÎÏÎÎÎÎ ÏÏ ÎÎÎ "
-"ÎÎÏÏÎÎÎÏÎÎÎ ÏÎ ÎÏÏÎ ÏÎÎ ÎÎÏÎÎÏÎ ÏÎÎÎÏÎÏ ÏÎ ÏÎÎÎÎ ÏÎÏ ÏÏÎÏÎÏÎÎÎÎÎÎÎÏ "
-"ÎÎÎÏÏÎÏÎÏ. ÎÏÏÏ ÎÏÎÏÏÎÏÎÎ ÏÏÎÏÏ ÏÎÎÎÏÎÏ ÏÎÏ ÎÏÎÎÏÎÎÏÎ ÎÎ ÎÎÎÎÏÎÎÎÎÎÏÎ ÎÎÎ "
-"ÏÎÏ ÎÎÎÎÎÎÏ ÏÎ ÎÏÎÎ ÎÎÎ ÎÎÎÏÏÎÏÎ ÎÎ ÏÎÎÏÏÎÏÎÏÎ ÏÎ ÏÎÏÎÏÏÏÏÎÏÎ ÏÏÎÎÎÎÏÎ ÏÏÎÎ "
-"ÏÎ ÎÎÏÎÎÏÎ. ÎÏÎÏÎ, ÏÎ ÏÏÎÏÎÎ ÎÏÎÎÎÎÎÎÏÎÏ ÎÎÎÎÎ ÏÎ ÏÎÎÎÎ ÏÎÏ ÏÏÎÎÏÏÎÏÎÏ "
-"ÎÏÎÎÎÎÎÎÏÎÏ, ÏÎÏ ÏÎÏÎÎÏÎÎ ÏÎÎ ÎÏÎÎÎÎ ÏÎÏ ÎÎÏÎÎÎÎÏÎÎ ÏÏÎÎ ÏÎ ÏÎÎÎÏÎ ÏÎÏ "
-"ÏÏÎÎÎÎÏÎÎÎÎÎÏ ÏÏÏÎÏ ÎÎÎÎÎÎÎÏÎÎ. ÎÎÎÎÎÎ, ÏÎ ÏÏÎÎÎÏÎÏÎÎÏ ÏÏÎÏÎÎ ÎÎÎÎÎÎÎÏÎ "
-"ÏÎÏÎÎÎÎÎÎÎÎÎ ÎÏÎÎÎÎÎÏÎÏÎ ÎÎÎÎÎÎÎÎ ÏÎÏ ÎÎ ÎÏÏÎÏÎ ÎÎ ÏÎÏÎÏÏÎÏÎ ÏÏÎÎ ÏÎ ÏÎÎÎ "
-"ÎÎÎÎÎÎÏÎÎ."
-
-#: C/signals-callbacks.py.page:38(p)
+#: C/linkbutton.vala.page:7(info/title)
+msgctxt "text"
+msgid "LinkButton (Vala)"
+msgstr "LinkButton (Vala)"
+
+#: C/linkbutton.vala.page:22(page/p)
+msgid "This button links to GNOME live."
+msgstr "ÎÏÏÏ ÏÎ ÎÎÏÎÏÎ ÏÏÎÎÎÎÎ ÎÎ ÏÎ ÎÏÎÏÎÎÏ GNOME."
+
+#: C/linkbutton.vala.page:24(page/code)
+#, no-wrap
 msgid ""
-"The function returns a number (the <code>handler_id</code>) that identifies "
-"this particular signal-callback pair. This number is required to disconnect "
-"from a signal such that the callback function will not be called during any "
-"future or currently ongoing emissions of the signal it has been connected "
-"to, as in <code>widget.disconnect(handler_id)</code>."
+"/* This is the application. */\n"
+"public class MyApplication : Gtk.Application {\n"
+"\t/* Override the 'activate' signal of GLib.Application. */\n"
+"\tprotected override void activate () {\n"
+"\n"
+"\t\t/* Create the window of this application and child widget and show all the things. */\n"
+"\t\tvar window = new Gtk.ApplicationWindow (this);\n"
+"\t\twindow.set_default_size (250, 50);\n"
+"\t\twindow.title = \"GNOME LinkButton\";\n"
+"\n"
+"\t\tvar linkbutton = new Gtk.LinkButton.with_label (\"http://live.gnome.org\";, \"Link to GNOME live!\");\n"
+"\n"
+"\t\twindow.add (linkbutton);\n"
+"\t\twindow.show_all ();\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* main creates and runs the application. */\n"
+"public int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
 msgstr ""
-"Î ÏÏÎÎÏÏÎÏÎ ÎÏÎÏÏÏÎÏÎÎ ÎÎÎÎ ÎÏÎÎÎÏ (the <code>handler_id</code>) ÏÎÏ "
-"ÎÎÎÎÎÏÏÎÎÎÎ ÎÏÏÏ ÏÎ ÏÏÎÎÎÎÏÎÎÎÎÎ ÎÎÏÎÎÏÎ ÏÎÎÎÏÎÏ-ÎÏÎÎÎÎÎÎÏÎÏ. ÎÏÏÏÏ Î "
-"ÎÏÎÎÎÏÏ ÎÏÎÎÏÎÎÏÎÎ ÎÎÎ ÎÏÎÏÏÎÎÎÏÎ ÎÏÏ ÎÎÎ ÏÎÏÎÎÎ ÏÎÎÎ ÏÎÏ Î ÏÏÎÎÏÏÎÏÎ "
-"ÎÏÎÎÎÎÎÎÏÎÏ ÎÎÎ ÎÎ ÎÎÎÎÎÎ ÎÎÏÎ ÏÎ ÎÎÎÏÎÎÎÎ ÎÏÎÎÏÎÎÎÏÎÏÎ ÎÎÎÎÎÎÏÎÎÏÎ Î "
-"ÏÏÎÏÏÎÏÏÎ ÏÏÎÎÏÎÎÏÎÎÎÏÎ ÎÎÏÎÎÏÏÎ ÏÎÏ ÏÎÎÎÏÎÏ ÏÏÎ ÎÏÎÎÎ ÏÏÎÎÎÎÎÎÎ, ÏÏÏÏ ÏÏÎ "
-"<code>widget.disconnect(handler_id)</code>."
+"/* This is the application. */\n"
+"public class MyApplication : Gtk.Application {\n"
+"\t/* Override the 'activate' signal of GLib.Application. */\n"
+"\tprotected override void activate () {\n"
+"\n"
+"\t\t/* Create the window of this application and child widget and show all the things. */\n"
+"\t\tvar window = new Gtk.ApplicationWindow (this);\n"
+"\t\twindow.set_default_size (250, 50);\n"
+"\t\twindow.title = \"GNOME LinkButton\";\n"
+"\n"
+"\t\tvar linkbutton = new Gtk.LinkButton.with_label (\"http://live.gnome.org\";, \"Link to GNOME live!\");\n"
+"\n"
+"\t\twindow.add (linkbutton);\n"
+"\t\twindow.show_all ();\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* main creates and runs the application. */\n"
+"public int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
 
-#: C/signals-callbacks.py.page:45(p)
+#: C/linkbutton.vala.page:29(item/p)
 msgid ""
-"<link href=\"http://developer.gnome.org/gobject/stable/signal.html";
-"\">Signals</link> in GObject documentation"
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.LinkButton.html\";>Gtk."
+"LinkButton</link>"
 msgstr ""
-"<link href=\"http://developer.gnome.org/gobject/stable/signal.html\";>ÎÎÎÎÏÎ</"
-"link> ÏÏÎÎ ÏÎÎÎÎÏÎÏÏÎ GObject"
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.LinkButton.html\";>Gtk."
+"LinkButton</link>"
 
-#: C/signals-callbacks.py.page:46(p)
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/magic-mirror.vala.page:41(media)
+msgctxt "_"
 msgid ""
-"<link href=\"http://python-gtk-3-tutorial.readthedocs.org/en/latest/basics.";
-"html\">Basics - Main loop and Signals</link> in Python Gtk+ 3 Tutorial"
+"external ref='media/magic-mirror.png' md5='8171faea6ed3b6ddac0da084c29e4e22'"
 msgstr ""
-"<link href=\"http://python-gtk-3-tutorial.readthedocs.org/en/latest/basics.";
-"html\">ÎÎÏÎÎÎ - ÎÏÏÎÎÏ ÎÏÏÏÎÏ ÎÎÎ ÏÎÎÎÏÎ</link> ÏÏÎ ÎÎÎÎÎÎ Python Gtk+ 3"
+"external ref='media/magic-mirror.png' md5='8171faea6ed3b6ddac0da084c29e4e22'"
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/set-up-gedit.js.page:24(None)
-msgid "@@image: 'media/geditview.png'; md5=f1438295662d95f56fcd1d8200efaaf2"
-msgstr "@@image: 'media/geditview.png'Â md5=f1438295662d95f56fcd1d8200efaaf2"
+#: C/magic-mirror.vala.page:7(info/title)
+msgctxt "text"
+msgid "Magic Mirror (Vala)"
+msgstr "ÎÎÎÎÎÏÏ ÎÎÎÏÎÏÏÎÏ (Vala)"
+
+#: C/magic-mirror.vala.page:10(info/desc)
+msgid "Use your webcam as a mirror using the GStreamer framework and Gtk+"
+msgstr ""
+"ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ ÏÎ ÎÎÎÎÏÎ ÏÎÏ ÏÏ ÎÎÎÏÎÏÏÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎÎ ÏÎÎÎÎÏÏ "
+"GStreamer ÎÎÎ Gtk+"
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/set-up-gedit.js.page:36(None)
-msgid "@@image: 'media/gediteditor.png'; md5=50db1ee8f2c545744879ee9fba5b4b24"
-msgstr "@@image: 'media/gediteditor.png'Â md5=50db1ee8f2c545744879ee9fba5b4b24"
+#: C/magic-mirror.vala.page:14(credit/name)
+msgid "Daniel G. Siegel"
+msgstr "Daniel G. Siegel"
 
-#: C/set-up-gedit.js.page:18(title)
-msgid "Set up gedit for JavaScript development"
-msgstr "ÎÎÎÎÏÎÏÏÎÏÎ gedit ÎÎÎ ÎÎÎÏÏÏÎÎ JavaScript"
+#: C/magic-mirror.vala.page:23(page/title)
+msgid "4 Magic Mirror"
+msgstr "4 ÎÎÎÎÎÏÏ ÎÎÎÏÎÏÏÎÏ"
 
-#: C/set-up-gedit.js.page:19(p)
-#| msgid ""
-#| "This tutorial will show you how to set up <link href=\"http://projects.";
-#| "gnome.org/gedit/\">gedit,</link> GNOME's basic text editor, so that it "
-#| "has a handful of extra features which are useful for writing JavaScript "
-#| "code."
+#: C/magic-mirror.vala.page:26(synopsis/p)
 msgid ""
-"This tutorial will show you how to set up <link href=\"http://projects.gnome.";
-"org/gedit/\">gedit</link>, GNOME's basic text editor, so that it has a "
-"handful of extra features which are useful for writing JavaScript code."
+"<em>Your mirror just fell off the wall and broke into a thousand pieces â "
+"but you need a mirror to shave your beard off or add some makeup! You only "
+"have 15 minutes left before catching the bus to work. So what can you do?</"
+"em>"
 msgstr ""
-"ÎÏÏÏ ÏÎ ÎÎÎÎÎÎ ÎÎÎÏÎÎÎ ÏÏÏ ÎÎ ÎÎÎÎÏÎÏÏÎÏÎÏÎ ÏÎ <link href=\"http://projects.";
-"gnome.org/gedit/\">gedit</link>, ÎÎÏÎÎÏ ÎÏÎÎÎÏÎÎÏÏÎ ÎÎÎÎÎÎÎÏ ÏÎÏ GNOME, ÎÏÏÎ "
-"ÏÏÏÎ ÎÎ ÎÏÎÎ ÎÎÏÎÎÎ ÏÏÏÏÎÎÏÎ ÎÎÏÏÎÏÎÎÏÎ ÏÎÏ ÎÎÎÎÎ ÏÏÎÏÎÎÎ ÎÎÎ ÏÏÎÎÏÎÏÎ "
-"ÎÏÎÎÎÎ JavaScript."
-
-#: C/set-up-gedit.js.page:22(title)
-msgid "Making code clearer"
-msgstr "ÎÎÎÎÎÏÎÏ ÏÎÎ ÎÏÎÎÎÎ ÏÎÏÎÏÏÎÏÎ"
+"<em>Î ÎÎÎÏÎÏÏÎÏ ÏÎÏ ÎÏÎÎÏ ÎÏÎÏÎ ÎÏÏ ÏÎÎ ÏÎÎÏÎ ÎÎÎ ÎÏÏÎÏÎ ÏÎ ÏÎÎÎÎ ÎÎÎÎÎÏÎÎ - "
+"ÎÎÎÎ ÏÏÎÎÎÎÎÏÎÎ ÎÎÎÏ ÎÎÎÏÎÏÏÎÏ ÎÎ ÎÏÏÎÏÎÏÎ ÏÎ ÎÎÎÎÎÎÎÎ ÏÎÏ ÎÎÎ ÎÎ ÏÏÎÏÎÎÏÎÏÎ "
+"ÎÎÏÎÎÎ ÎÎÎÎÏÎÏÎÎÎ! ÎÎÏ ÎÏÎÎÎÎÎÏÎ 15 ÎÎÏÏÎ ÏÏÎÎ ÎÎ ÏÏÎÎÎÎÎÏÎ ÏÎ ÎÎÏÏÎÏÎÎÎ ÎÎÎ "
+"ÏÎ ÎÎÏÎÎÎÎ. ÎÎ ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÎÏÎ;</em>"
 
-#: C/set-up-gedit.js.page:23(p)
+#: C/magic-mirror.vala.page:27(synopsis/p)
 msgid ""
-"Click on <gui>Edit</gui> in gedit's menu bar, then click on <gui>Preferences."
-"</gui> You should see something like this:"
+"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 ""
-"ÎÎÏÎÏÏÎ ÏÏÎÎ <gui>ÎÏÎÎÎÏÎÎÏÎÎ</gui> ÏÏÎ ÎÏÎÎÎÎ ÎÎÎÎÏ ÏÎÏ gedit, ÎÏÎÎÏÎ "
-"ÏÎÏÎÏÏÎ <gui>ÏÏÎÏÎÎÎÏÎÎÏ</gui>. ÎÎ ÏÏÎÏÎÎ ÎÎ ÎÎÎÏÎ ÎÎÏÎ ÏÏÏÏ ÎÏÏÏ:"
+"ÎÎ ÎÏÏÏÎ ÏÎÎ ÎÎÎÎÏ, ÎÎ ÏÏÎÎÎÎÏÎÎ ÎÎÎ ÏÏÏÎÏÎÎÎÎ ÏÎÏ ÎÏÎÏÏÎÏÎÎ ÏÎ ÏÏÎÏÎ ÏÎÏ "
+"ÎÏÏÎÎÎÎÎÏÎÏ ÏÎÏ ÏÏ ÎÎÎÏÎÏÏÎ. ÎÎ ÎÎÎÎÏÎ ÏÏÏ ÎÎ:"
 
-#: C/set-up-gedit.js.page:25(p)
-msgid "Here are the options you want to make sure are turned on."
-msgstr "ÎÎÏ ÎÎÎÎÎ ÎÎ ÎÏÎÎÎÎÎÏ ÏÎÏ ÎÎÎÎÏÎ ÎÎ ÎÎÎÎÎÏÎÎÎÏÎ ÏÏÎ ÎÎÎÎÎ ÎÎÎÏÎÎÏ."
+#: C/magic-mirror.vala.page:29(item/p)
+msgid "Create a GTK+ application"
+msgstr "ÎÎÎÎÎÏÏÎÎÏÎÏÎ ÎÎÎ ÎÏÎÏÎÎÎÎ ÏÎ GTK+"
 
-#: C/set-up-gedit.js.page:27(p)
-msgid ""
-"<gui>Display line numbers</gui> will help you compare the code you type in "
-"with the original, and make it easier to see which line is causing an error "
-"if there is a bug."
+#: C/magic-mirror.vala.page:30(item/p)
+msgid "Access your webcam using GStreamer and embed the result into a window"
 msgstr ""
-"<gui>Î ÎÎÏÎÎÎÏÎ ÏÏÎ ÎÏÎÎÎÏÎ ÎÏÎÎÎÎÏ</gui> ÎÎ ÏÎÏ ÎÎÎÎÎÏÎÎ ÎÎ ÏÏÎÎÏÎÎÎÏÎ ÏÎÎ "
-"ÎÏÎÎÎÎ ÏÎÏ ÏÎÎÎÏÏÎÎÎÎÎÏÎÏÎ ÎÎ ÏÎÎ ÎÏÏÎÎÏ ÎÎÎ ÎÎÎÏÎÎÎÏÎÎÎ ÎÎ ÎÎÎÏÎ ÏÎÎÎ "
-"ÎÏÎÎÎÎ ÏÏÎÎÎÎÎÎ ÎÎÎÎÏ ÎÎÎ ÏÏÎÏÏÎÎ ÏÏÎÎÎÎ."
+"ÎÏÎÏÎ ÏÏÏÏÎÎÏÎ ÏÏÎÎ ÎÏÏÎÎÎÎÎÏÎ ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ GStreamer ÎÎÎ ÏÏÏ ÎÎ "
+"ÎÎÏÏÎÎÏÏÎÎÏÎ ÏÎ ÎÏÎÏÎÎÎÏÎÎ ÏÎ ÎÎÎ ÏÎÏÎÎÏÏÎ"
 
-#: C/set-up-gedit.js.page:28(p)
-msgid ""
-"<gui>Highlight current line</gui> makes it easier to see which line you're "
-"on, when you have to go back and forth a lot."
-msgstr ""
-"<gui>Î ÏÎÎÎÏÎÏÏ ÏÎÏ ÏÏÎÏÎÏÏÎÏ ÎÏÎÎÎÎÏ</gui> ÎÎÎÏÎÎÎÏÎÎÎ ÎÎ ÎÎÎÏÎ ÏÎ ÏÎÎÎ "
-"ÎÏÎÎÎÎ ÎÎÏÎÏÏÎ, ÏÏÎÎ ÏÏÎÏÎÎ ÎÎ ÏÎÏÎ ÏÎÏÏ ÎÎÎ ÎÏÏÎÏ ÎÏÎÎÏÎ."
+#: C/magic-mirror.vala.page:31(item/p)
+msgid "Grab photos off your webcam"
+msgstr "ÎÎÏÎÏÎ ÏÏÏÎÎÏÎÏÎÎÏ ÎÎ ÏÎÎ ÎÏÏÎÎÎÎÎÏÎÏ ÏÎÏ"
 
-#: C/set-up-gedit.js.page:29(p)
-msgid ""
-"<gui>Highlight matching brackets</gui> helps you make sure you didn't leave "
-"out a bracket by accident."
-msgstr ""
-"<gui>Î ÏÎÎÎÏÎÏÏ ÏÎÏÎÎÎÎÏÎÏ ÏÎÏ ÏÎÎÏÎÎÎÎÎ</gui> ÎÎÎÎÎ ÎÎ ÎÎÎÎÎÏÎÎÎÏÎ ÏÏÎ ÎÎÎ "
-"ÎÏÎÎÎÏÎ ÎÎÎ ÏÎÏÎÎÎÎÏÎ ÏÏÏÎÎÎ."
+#: C/magic-mirror.vala.page:36(item/p)
+msgid "Installed copies of GTK, GStreamer, and a Vala compiler"
+msgstr "ÎÎÎÎÏÎÏÏÎÎÎÎÎ ÎÎÏÎÎÏÎÏÎ ÏÎÏ GTK, GStreamer ÎÎÎ ÎÎÎ ÎÎÏÎÎÎÏÏÏÎÏÏÎ Vala"
 
-#: C/set-up-gedit.js.page:34(title)
-msgid "Making editing easier"
-msgstr "ÎÎÎÏÎÎÎÏÎÎÎÏÎÏ ÏÎÎ ÎÏÎÎÎÏÎÎÏÎÎ"
+#: C/magic-mirror.vala.page:37(item/p)
+msgid "Basic knowledge of an object-oriented programming language"
+msgstr "ÎÎÏÎÎÎ ÎÎÏÏÎ ÎÎÎÏ ÎÎÏÎÎÎÎÎÎÎÎÏÏÏÎÏÎÏÏ ÎÎÏÏÏÎÏ ÏÏÎÎÏÎÎÎÎÏÎÏÎÎÏ"
 
-#: C/set-up-gedit.js.page:35(p)
+#: C/magic-mirror.vala.page:51(item/p)
 msgid ""
-"In gedit's <gui>Preferences</gui> dialog, click on the <gui>Editor</gui> "
-"tab. You should see something like this:"
+"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 ""
-"ÎÏÎÎ ÎÎÎÎÎÎÎ ÏÎÏ gedit <gui>ÏÏÎÏÎÎÎÏÎÎÏ</gui>, ÏÎÏÎÏÏÎ ÏÏÎÎ ÎÎÏÏÎÎÎ "
-"<gui>ÎÏÎÎÎÏÎÎÏÏÎÏ</gui>. ÎÎ ÏÏÎÏÎÎ ÎÎ ÎÎÎÏÎ ÎÎÏÎ ÏÏÏÏ ÎÏÏÏ:"
+"ÎÏÎÎÎÎÏÎ <gui>Gtk+ (ÎÏÎÏ)</gui> ÎÏÏ ÏÎÎ ÎÎÏÏÎÎÎ <gui>Vala</gui>, ÎÎÎÎ "
+"<gui>ÎÏÏÎÏÏÎ</gui>, ÎÎÎ ÏÏÎÏÎÎÏÏÏÏÎ ÏÎÏ ÎÎÏÏÎÎÎÏÎÎÎÏ ÏÎÏ ÏÏÎÏ ÎÏÏÎÎÎÎÏ ÎÎÎÎÏ "
+"ÏÎÎÎÎÎÏ. ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ ÏÏ ÏÎÎÎÎ ÏÎÏ ÎÏÎÎÏ ÎÎÎ ÏÎÏ ÎÎÏÎÎÏÎÎÏ ÏÎ <file>guitar-"
+"tuner</file>."
 
-#: C/set-up-gedit.js.page:37(p)
+#: C/magic-mirror.vala.page:54(item/p)
 msgid ""
-"Here, you want to have <gui>Enable automatic indentation</gui> turned on. "
-"This means that when you hit <key>Enter</key> the cursor stays indented as "
-"far as the last line was. This is extremely useful when writing JavaScript "
-"code, since it uses indentation to make it clearer which parts do what."
+"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 ""
-"ÎÎÏ, ÎÎÎÎÏÎ ÎÎ ÎÏÎÏÎ ÎÎÎÏÎÏ ÏÎ <gui>ÎÎÎÏÎÎÏÎÎÎÏÎ ÎÏÏÏÎÎÏÎÏ ÎÏÎÏÎÏ</gui>. "
-"ÎÏÏÎ ÏÎÎÎÎÎÎÎ ÏÏÎ ÏÏÎÎ ÏÎÏÎÏÎ <key>ÎÎÏÎÎÏÎÎ</key> Î ÎÏÎÎÎÎÏ ÏÎÏÎÎÎÎÎÎ ÎÎ "
-"ÎÏÎÏÎ ÏÏÎ ÎÏÎÎ Î ÏÎÎÎÏÏÎÎÎ ÎÏÎÎÎÎ. ÎÏÏÏ ÎÎÎÎÎ ÎÎÎÎÎÏÎÏÎ ÏÏÎÏÎÎÎ ÏÏÎÎ ÎÏÎÏÎÏÎ "
-"ÎÏÎÎÎÎ JavaScript, ÎÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÎ ÎÏÎÏÎ ÎÎÎ ÎÎ ÎÎÎÎÏÎ ÏÎÏÎÏÏÎÏÎ ÏÎÎÎ ÎÎÏÎ "
-"ÎÎÎÎÏÎ ÏÎ."
+"ÎÏÎÎÎÏÎÎÏÎÎÎÏÏÎ ÏÎ <gui>ÎÏÎÏÎ ÏÎÏ GtkBuilder ÎÎÎ ÎÎÎÏÎÏÎ ÏÏÎÏÎ</gui> ÎÏÎÎÎÎ "
+"ÎÎ ÏÏÎÎÎÎÏÎÎ ÏÎ ÎÎÎÏÎÏÎ ÏÏÎÏÏÎ ÏÎÎÏÎÎÎÎÎÏÎ ÏÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ. ÎÎÎÎÎÏÏÏÎ "
+"ÏÎ ÎÎÎÎÎÎ <link xref=\"guitar-tuner.vala\">ÏÏÎÎÎÏÏÎÏ ÎÎÎÎÏÎÏ</link> "
+"ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎÎ ÎÎÏÎÏÎÎÏÎÏÏÎ ÎÎÎÏÎÏÎÏ."
 
-#: C/set-up-gedit.js.page:38(p)
+#: C/magic-mirror.vala.page:59(item/p)
 msgid ""
-"If you want to share code with other people who write GNOME JavaScript "
-"applications, you'll also want to set <gui>Tab width</gui> to 4 and turn on "
-"<gui>Insert spaces instead of tabs.</gui>"
+"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 ""
-"ÎÎÎ ÎÎÎÎÏÎ ÎÎ ÎÎÎÏÎÏÏÎÎÏÎ ÎÏÎÎÎÎ ÎÎ ÎÎÎÎ ÎÏÎÎÎ ÏÎÏ ÎÏÎÏÎÏÎ ÎÏÎÏÎÎÎÎÏ "
-"JavaScript GNOME, ÎÎ ÎÎÎÎÏÎ ÎÏÎÏÎÏ ÎÎ ÎÏÎÏÎÏÎ <gui>ÏÎÎÏÎÏ ÏÏÎÎÎÎÎÏÎ</gui> "
-"ÏÏÎ 4 ÎÎÎ ÎÎ ÎÎÎÏÎÎÏÎÎÎÏÎÏÎ <gui>ÎÎÏÎÎÏÎÎ ÎÎÎÏÎ ÎÎÏÎ ÎÎÎ ÏÏÎÎÎÎÎÏÎÏ.</gui>"
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/separator.py.page:23(None)
-msgid "@@image: 'media/separator.png'; md5=8769b27662ce5c77f99e9ce33751a21a"
-msgstr "@@image: 'media/separator.png'Â md5=8769b27662ce5c77f99e9ce33751a21a"
-
-#: C/separator.py.page:7(title)
-msgid "Seperator (Python)"
-msgstr "ÎÎÎÏÏÏÎÏÏÎÏ (Python)"
-
-#: C/separator.py.page:18(desc)
-msgid "A separator widget"
-msgstr "ÎÎÎÏ ÎÎÎÏÏÏÎÏÏÎÏ ÎÏÎÏÎÎÎÏ ÏÏÏÏÎÏÎÎÎÏ"
-
-#: C/separator.py.page:21(title)
-msgid "Separator"
-msgstr "ÎÎÎÏÏÏÎÏÏÎÏ"
-
-#: C/separator.py.page:24(p)
-msgid "A horizontal and a vertical separator divide some labels."
-msgstr "ÎÏÎÎÏÎÏÎÎÏ ÎÎÎ ÎÎÎÎÏÎÏ ÎÎÎÏÏÏÎÏÏÎÏ ÎÎÎÎÏÎÏÎ ÎÎÏÎÎÎÏ ÎÏÎÎÎÏÎÏ."
-
-#: C/separator.py.page:34(title)
-msgid "API Reference"
-msgstr "ÎÎÎÏÎÏÎ API"
+"ÎÎÎÎÎÏÎÎÎÏÎ ÏÏÎ ÏÎ <gui>ÏÏÎÎÎÏÎ ÎÎÏÏÎÏÎÎÏÎ ÏÎÎÎÏÏÎ</gui> ÎÏÎÎÎÏÏÎÎÎ. ÎÏÎÎ "
+"ÎÏÏÎÎÎÎ ÏÎÎÎÎÎ, ÎÏÎÎÎÎÏÎ <em>gstreamer-0.10</em> ÎÏÏ ÏÎ ÎÎÏÏÎ ÎÎÎ "
+"ÏÏÎÏÎÏÎÎÎÏÎ ÏÎÏ ÎÎÎÎÎÎÎÎÎÎÏ <app>GStreamer</app> ÏÏÎ ÎÏÎÎ ÏÎÏ."
 
-#: C/separator.py.page:38(link)
-msgid "GtkSeparator"
-msgstr "GtkSeparator"
+#: C/magic-mirror.vala.page:63(item/p)
+msgid ""
+"Click <gui>Apply</gui> and the project will be created for you. Open "
+"<file>src/magic_mirror.vala</file> from the <gui>Project</gui> or <gui>File</"
+"gui> tabs. You should see some code which starts with the lines:"
+msgstr ""
+"ÎÎÏÎÏÏÎ <gui>ÎÏÎÏÎÎÎÎ</gui> ÎÎÎ ÏÎ ÎÏÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎÎÎÎ. ÎÎÎÎÎÏÎ <file>src/"
+"magic_mirror.vala</file> ÎÏÏ ÏÎÏ ÎÎÏÏÎÎÎÏ <gui>ÎÏÎÎ</gui> Î <gui>ÎÏÏÎÎÎ</"
+"gui>. ÎÎ ÏÏÎÏÎÎ ÎÎ ÎÎÎÏÎ ÎÎÏÎÎÎ ÎÏÎÎÎÎ ÏÎÏ ÎÎÎÎÎÎ ÎÎ ÏÎÏ ÎÏÎÎÎÎÏ:"
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/scrolledwindow.vala.page:22(None) C/scrolledwindow.py.page:21(None)
+#: C/magic-mirror.vala.page:73(section/p)
 msgid ""
-"@@image: 'media/scrolledwindow.png'; md5=697bb3205d5c4fb0b4ea8db435843157"
+"The code loads an (empty) window and shows it. More details are given below; "
+"skip this list if you understand the basics:"
 msgstr ""
-"@@image: 'media/scrolledwindow.png'Â md5=697bb3205d5c4fb0b4ea8db435843157"
-
-#: C/scrolledwindow.vala.page:7(title)
-msgid "ScrolledWindow (Vala)"
-msgstr "ScrolledWindow (Vala)"
-
-#: C/scrolledwindow.vala.page:18(desc) C/scrolledwindow.py.page:17(desc)
-msgid "Adds scrollbars to its child widget"
-msgstr "ÎÏÎÏÎÎÏÎÎ ÎÏÎÎÎÎÏ ÎÏÎÎÏÎÏ ÏÏÎ ÎÏÎÎÏÏÎÎÏ ÏÎÏ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÎÏ"
+"Î ÎÏÎÎÎÎÏ ÏÎÏÏÏÎÎÎ ÎÎÎ (ÎÎÎÏ) ÏÎÏÎÎÏÏÎ ÎÎÎ ÏÎ ÎÎÏÎÎÎÎÎÎ. ÎÎÏÎÏÏÏÏÎÏÎÏ "
+"ÏÎÎÏÎÏÎÏÎÎÏ ÏÏÎÏÏÎÏÎ ÏÎÎ ÎÎÏÏÂ ÏÏÎÏÏÎÏÎÏÏÎ ÎÏÏÎ ÏÎ ÎÎÏÏÎ ÎÎ ÎÎÏÎÎÎÎÎÎÎÎÏÎ ÏÎ "
+"ÎÎÏÎÎÎ:"
 
-#: C/scrolledwindow.vala.page:21(title) C/scrolledwindow.py.page:20(title)
-msgid "ScrolledWindow"
-msgstr "ScrolledWindow"
+#: C/magic-mirror.vala.page:79(item/p)
+msgid ""
+"The constructor of the <code>Main</code> class creates a new window and sets "
+"its title. Afterwards the window is shown and a signal is connected which "
+"quits the application if the window is closed. More on signals later on."
+msgstr ""
+"Î ÎÎÏÎÏÎÎÏÎÏÏÎÏ ÏÎÏ ÎÎÎÏÎÏ <code>Main</code> ÎÎÎÎÎÏÏÎÎÎ ÎÎÎ ÎÎÎ ÏÎÏÎÎÏÏÎ ÎÎÎ "
+"ÎÏÎÎÎÎ ÏÎÎ ÏÎÏÎÎ ÏÎÏ. ÎÎÏÏÏÎÎ ÎÎÏÎÎÎÎÎÏÎÎ ÏÎ ÏÎÏÎÎÏÏÎ ÎÎÎ ÎÎÎ ÏÎÎÎ ÏÏÎÎÎÎÏÎÎ "
+"ÏÎÏ ÎÎÎÎÏÎÎÎÎÏÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ, ÎÎÎ ÏÎ ÏÎÏÎÎÏÏÎ ÎÎÎÎÏÎÎ. ÎÎÏÎÏÏÏÏÎÏÎ ÎÎÎ ÏÎ "
+"ÏÎÎÎÏÎ ÎÏÎÏÏÎÏÎ."
 
-#: C/scrolledwindow.vala.page:23(p) C/scrolledwindow.py.page:22(p)
-msgid "An image in a scrolled window."
-msgstr "ÎÎÎ ÎÎÎÏÎÎ ÏÎ ÎÏÎÎÏÎÎÎÎ ÏÎÏÎÎÏÏÎ."
+#: C/magic-mirror.vala.page:83(item/p)
+msgid ""
+"The static <code>main</code> function is run by default when you start a "
+"Vala application. It calls a few functions which create the Main class, set "
+"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 ""
+"Î ÏÏÎÏÎÎÎ ÏÏÎÎÏÏÎÏÎ <code>main</code> ÏÏÎÏÎÎ ÎÏÏ ÏÏÎÎÏÎÎÎÎÎ ÏÏÎÎ ÎÎÎÎÎÎÏÎ "
+"ÎÎÎ ÎÏÎÏÎÎÎÎ Vala. ÎÎÎÎÎ ÎÎÎÎÏ ÏÏÎÎÏÏÎÏÎÎÏ ÏÎÏ ÎÎÎÎÎÏÏÎÎÏÎ ÏÎÎ ÎÏÏÎÎ ÎÎÎÏÎ, "
+"ÏÏÎÎÎÎÎÏÎ ÎÎÎ ÎÏÎÎÏÎ ÎÎÏÎÎÎÏÎ ÏÎÎ ÎÏÎÏÎÎÎÎ. Î ÏÏÎÎÏÏÎÏÎ <code>Gtk.Main</"
+"code> ÎÎÎÎÎÎ ÏÎÎ ÎÏÏÎÎ ÎÏÏÏÎ ÏÎÏ GTK, ÏÎÏ ÎÎÏÎÎÎÎ ÏÎ ÎÎÎÏÎÏÎ ÏÏÎÏÏÎ ÎÎÎ "
+"ÎÎÎÎÎÎ ÏÎÎ ÎÎÏÏÎÏÎ ÎÎÎ ÏÏÎÎÎÎÏÎ (ÏÏÏÏ ÎÎÎÎ ÎÎÎ ÏÎÏÎÎÎÏÎ ÏÎÎÎÏÏÎÏ)."
 
-#: C/scrolledwindow.py.page:7(title)
-msgid "ScrolledWindow (Python)"
-msgstr "ScrolledWindow (Python)"
+#: C/magic-mirror.vala.page:92(section/title)
+msgid "Access the webcam video stream with GStreamer"
+msgstr "ÎÏÏÏÎÎÏÎ ÏÏÎ ÏÎÎ ÎÎÎÏÎÎ ÏÎÏ ÎÎÎÎÏÎÏ web ÎÎ ÏÎ GStreamer"
 
-#: C/scrolledwindow.py.page:31(title)
-msgid "Useful methods for a ScrolledWindow widget"
-msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ScrolledWindow"
+#: C/magic-mirror.vala.page:93(section/p)
+msgid ""
+"The GStreamer multimedia framework is able to handle video from webcams. "
+"Let's add GStreamer to our application and so we can access the video stream."
+msgstr ""
+"Î ÏÎÎÎÎÏÏÏ ÏÎÎÏÎÎÏÏÎ GStreamer ÎÎÎÎÎ ÎÎÎÎÏÏ ÏÏÎ ÏÎÎÏÎÏÎÏ ÎÎÎÏÎÎ ÎÏÏ "
+"ÎÏÏÎÎÎÎÎÏÎÏ. ÎÏ ÏÏÎÏÎÎÏÎÏÎÎ ÏÎ GStreamer ÏÏÎÎ ÎÏÎÏÎÎÎÎ ÎÎÏ ÎÎÎ ÎÏÏÎ ÎÏÎÏÎÏÎÎ "
+"ÎÎ ÏÏÎÏÏÎÎÎÏÎÏÎÎ ÏÎ ÏÎÏÎÎ ÎÎÎÏÎÎ."
 
-#: C/scrolledwindow.py.page:33(p)
+#: C/magic-mirror.vala.page:95(section/code)
+#, no-wrap
 msgid ""
-"<code>set_policy(hscrollbar_policy, vscrollbar_policy)</code> where each of "
-"the arguments is one of <code>Gtk.Policy.AUTOMATIC, Gtk.Policy.ALWAYS, Gtk."
-"Policy.NEVER</code> regulates whether the horizontal and vertical scrollbars "
-"should appear: with <code>AUTOMATIC</code> they appear only if needed, "
-"<code>ALWAYS</code> and <code>NEVER</code> are self-explanatory."
+"\n"
+"using GLib;\n"
+"using Gtk;\n"
+"\n"
+"public class Main : Object\n"
+"{\n"
+"\tprivate Gst.Element camerabin;\n"
+"\n"
+"\tpublic Main () {\n"
+"\t\tthis.camerabin = Gst.ElementFactory.make (\"camerabin\", \"camera\");\n"
+"\t\tthis.camerabin.set_state (Gst.State.PLAYING);\n"
+"\t}\n"
+"\n"
+"\tstatic int main (string[] args) {\n"
+"\t\tGtk.init (ref args);\n"
+"\t\tGst.init (ref args);\n"
+"\t\tvar app = new Main ();\n"
+"\n"
+"\t\tGtk.main ();\n"
+"\n"
+"\t\treturn 0;\n"
+"\t}\n"
+"}\n"
 msgstr ""
-"<code>set_policy(hscrollbar_policy, vscrollbar_policy)</code> ÏÏÎÏ ÏÎÎ ÏÎ "
-"ÎÏÎÏÎÎÏÎ ÎÎÎÎÎ ÎÎÎ ÎÏÏ ÏÎ <code>Gtk.Policy.AUTOMATIC, Gtk.Policy.ALWAYS, Gtk."
-"Policy.NEVER</code> ÏÏÎÎÎÎÎÎ ÎÎÎ ÎÎ ÎÏÎÎÏÎÏÎÎÏ ÎÎÎ ÎÎÎÎÏÎÏ ÎÏÎÎÎÎÏ ÎÏÎÎÏÎÏ "
-"ÏÏÎÏÎÎ ÎÎ ÎÎÏÎÎÎÎÎÎÏÎÎ: ÎÎ <code>AUTOMATIC</code> ÎÎ ÎÎÏÎÎÎÎÎÎÏÎÎ ÎÏÎÎ ÎÎÎ "
-"ÏÏÎÎÎÎÎÏÎÎ, <code>ALWAYS</code> ÎÎÎ <code>NEVER</code> ÎÎÎÎÎ ÎÏÏÎÎÏÎÏÎ."
+"\n"
+"using GLib;\n"
+"using Gtk;\n"
+"\n"
+"public class Main : Object\n"
+"{\n"
+"\tprivate Gst.Element camerabin;\n"
+"\n"
+"\tpublic Main () {\n"
+"\t\tthis.camerabin = Gst.ElementFactory.make (\"camerabin\", \"camera\");\n"
+"\t\tthis.camerabin.set_state (Gst.State.PLAYING);\n"
+"\t}\n"
+"\n"
+"\tstatic int main (string[] args) {\n"
+"\t\tGtk.init (ref args);\n"
+"\t\tGst.init (ref args);\n"
+"\t\tvar app = new Main ();\n"
+"\n"
+"\t\tGtk.main ();\n"
+"\n"
+"\t\treturn 0;\n"
+"\t}\n"
+"}\n"
 
-#: C/scrolledwindow.py.page:34(p)
+#: C/magic-mirror.vala.page:120(item/p)
 msgid ""
-"<code>add_with_viewport(widget)</code> is used to add the Gtk.Widget "
-"<code>widget</code> without native scrolling capabilities inside the window."
+"First we remove the window we created before because GStreamer will take "
+"care of showing the picture on screen."
 msgstr ""
-"<code>add_with_viewport(widget)</code> ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÎÎÎ ÎÎ ÏÏÎÏÎÎÏÎÎ ÏÎ "
-"Gtk.Widget <code>widget</code> ÏÏÏÎÏ ÎÎÎÎÎÎÎÏ ÎÏÎÎÏÏÏÎÏÎÏ ÎÏÎÎÏÎÏ ÎÎÏÎ ÏÏÎ "
-"ÏÎÏÎÎÏÏÎ."
+"ÎÏÏÏÎ ÎÏ ÎÏÎÎÏÎÏÎÏÎÎ ÏÎ ÏÎÏÎÎÏÏÎ ÏÎÏ ÎÎÎÎÎÏÏÎÎÏÎÎÎ ÏÏÎÎ ÎÏÎÎÎÎ ÏÎ GStreamer "
+"ÎÎ ÏÏÎÎÏÎÏÎÎ ÏÎÎ ÎÎÏÎÎÎÏÎ ÏÎÏ ÎÎÎÏÎÎÏ ÏÏÎÎ ÎÎÏÎÎ."
 
-#: C/scrolledwindow.py.page:35(p)
+#: C/magic-mirror.vala.page:124(item/p)
 msgid ""
-"<code>set_placement(window_placement)</code> sets the placement of the "
-"contents with respect to the scrollbars for the scrolled window. The options "
-"for the argument are <code>Gtk.CornerType.TOP_LEFT</code> (default: the "
-"scrollbars are on the bottom and on the right of the window), <code>Gtk."
-"CornerType.TOP_RIGHT, Gtk.CornerType.BOTTOM_LEFT, Gtk.CornerType."
-"BOTTOM_RIGHT</code>."
+"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 ""
-"<code>set_placement(window_placement)</code> ÎÏÎÎÎÎ ÏÎÎ ÏÎÏÎÎÎÏÎÏÎ ÏÏÎ "
-"ÏÎÏÎÎÏÎÎÎÎÏÎ ÏÏÎÏÎÎÎ ÎÎ ÏÎÏ ÎÏÎÎÎÎÏ ÎÏÎÎÏÎÏ ÎÎÎ ÏÎ ÎÏÎÎÏÎÎÎÎ ÏÎÏÎÎÏÏÎ. ÎÎ "
-"ÎÏÎÎÎÎÎÏ ÎÎÎ ÏÎ ÏÏÎÏÎÎ ÎÎÎÎÎ <code>Gtk.CornerType.TOP_LEFT</code> "
-"(ÏÏÎÎÏÎÎÎÎÎ: ÎÎ ÎÏÎÎÎÎÏ ÎÏÎÎÏÎÏ ÎÎÎÎÎ ÏÏÎ ÏÎÎÎÏ ÎÎÎ ÏÏÎ ÎÎÎÎÎ ÏÎÏ "
-"ÏÎÏÎÎÏÏÎÏ), <code>Gtk.CornerType.TOP_RIGHT, Gtk.CornerType.BOTTOM_LEFT, Gtk."
-"CornerType.BOTTOM_RIGHT</code>."
+"ÎÏÏÎ ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ ÏÏÎÎÏÎÎÎ GStreamer ÏÎÏ ÏÏÎÏÏÎÎÎÎÎÎ ÏÎÎ ÎÏÏÎÎÎÎÎÏÎ ÎÎÏ. "
+"ÎÏÎÏÎÎÎÏÎÎÎÏÎÎ ÏÎ ÏÏÎÎÏÎÎÎ Camerabin, ÏÎÏ ÎÎÎÎÎ ÎÎÎ ÏÏÎÎÏÎÎÎ ÎÎÎÎÏÎÏ ÏÎÎ ÏÎ "
+"ÎÎÎ ÎÎÎ ÎÏÎÏÎÎ ÎÎ ÏÎÎÏÎÎÎ ÏÏÏÎÎÏÎÏÎÎÏ, ÎÎÎÏÎÎ ÎÎ ÎÏÎÏÎÏÎÎÎ ÎÏÎ ÎÎÎ ÏÎÎÏ "
+"ÏÎÏÎÏÏÏÏÎÏÎ. ÎÎÎÎÎÎ ÎÎÎ ÏÎÎ ÏÎÏÎÏÏÏÏÎ ÏÏÎÏÎÏ ÎÎÏ! ÎÎ ÏÎÎ <code>this."
+"camerabin.set_state (Gst.State.PLAYING)</code> ÎÎÎÎ ÏÏÎ ÎÎÎÏÎÏÎÏÏÎ GStreamer "
+"ÏÎÏ ÎÏÎÎÏ ÎÎÎÎÎÏÏÎÎÏÎÎÎ ÎÎ ÎÎÎÎÎÎÏÎÎ ÏÎ ÏÎÎÎÎÎÎ. ÎÎÎ ÎÎÎÎÎ ÎÏÎÎÎÎ;"
 
-#: C/scrolledwindow.py.page:36(p)
+#: C/magic-mirror.vala.page:131(item/p)
 msgid ""
-"<code>set_hadjustment(adjustment)</code> and <code>set_vadjustment"
-"(adjustment)</code> set the Gtk.Adjustment <code>adjustment</code>. This is "
-"the representation of a value with a lower and upper bound, together with "
-"step and page increments, and a page size, and it is constructed as "
-"<code>Gtk.Adjustment(value, lower, upper, step_increment, page_increment, "
-"page_size)</code> where the fields are of type <code>float</code>. (Note "
-"that <code>step_increment</code> is not used in this case, it can be set to "
-"<code>0</code>.)"
+"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 ""
-"<code>set_hadjustment(adjustment)</code> and <code>set_vadjustment"
-"(adjustment)</code> ÎÏÎÎÎÎ ÏÎ Gtk.Adjustment <code>adjustment</code>. ÎÏÏÎ "
-"ÎÎÎÎÎ Î ÎÎÎÏÎÏÎÏÏÎÏÎ ÎÎÎÏ ÏÎÎÎÏ ÎÎ ÎÎÎ ÎÎÏÏ ÎÎÎ ÎÎÎ ÏÎÎÏ ÏÏÎÎ, ÎÎÎÎ ÎÎ "
-"ÎÏÎÎÏÎÎÏ ÎÎÎÎÏÎÏ ÎÎÎ ÏÎÎÎÎÎÏ ÎÎÎ ÎÎÎ ÎÎÎÎÎÎÏ ÏÎÎÎÎÎÏ ÎÎÎ ÎÎÎÎÎÏÎÎ ÏÏ "
-"<code>Gtk.Adjustment(value, lower, upper, step_increment, page_increment, "
-"page_size)</code> ÏÏÎÏ ÏÎ ÏÎÎÎÎ ÎÎÎÎÎ ÏÎÏ ÏÏÏÎÏ <code>float</code>. "
-"(ÎÎÎÎÎÏÏÏÎ ÏÏÎ <code>step_increment</code> ÎÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÏÎ ÎÏÏÎÎ ÏÎÎ "
-"ÏÎÏÎÏÏÏÏÎ, ÎÏÎÏÎÎ ÎÎ ÎÏÎÏÏÎÎ ÏÎ <code>0</code>.)"
+"ÎÏÏÎÎÎ ÎÎÎÎÎ ÎÏÎÏÎÏ ÎÏÎÎÏÏ ÎÎ ÎÎÏÏÎÎÏÏÏÎÏÎÎ ÏÎ ÎÎÎÏÎÎ ÏÎÎ ÏÏÎÎÏÎ ÏÏÎ ÎÎÎÎ "
+"ÏÎÏÎÎÏÏÎ, ÎÎÎÎ ÎÏÏÏ ÎÎÎÎÎ ÏÏÎÏÏÏÎÎÎÎÎ ÎÎÎÎ ÏÎÏ ÏÎÏÎÎÎÎÎÎÎÎÎ ÎÎÏÎÎÎÏ "
+"ÎÎÏÏÎÎÎÏÎÎÎÏ ÏÎÏ ÏÏÏÏÎÎÎÏÎÏ ÏÎÏÎÎÏÏÎÏ Î ÏÎÏ ÎÎ ÏÎÏÎÎÎÎÏÎÏÎÎ ÎÎÏ."
 
-#: C/scrolledwindow.py.page:45(link) C/paned.py.page:42(link)
-#: C/image.vala.page:33(link) C/image.py.page:100(link)
-#: C/image.c.page:34(link) C/grid.py.page:58(link)
-msgid "GtkImage"
-msgstr "GtkImage"
+#: C/magic-mirror.vala.page:135(item/p)
+msgid ""
+"Compile and run it again. You will end up with two windows. In the next step "
+"we will integrate the video into the GTK+ window."
+msgstr ""
+"ÎÎÏÎÎÎÏÏÏÎÏÎ ÎÎÎ ÏÏÎÎÎÎÎ ÏÎÏ ÏÎÎÎ. ÎÎ ÎÎÏÎÎÎÎÎÏÎ ÎÎ ÎÏÎ ÏÎÏÎÎÏÏÎ. ÎÏÎ "
+"ÎÏÏÎÎÎÎ ÎÎÎÎ ÎÎ ÎÎÏÏÎÎÏÏÏÎÏÎÎ ÏÎ ÎÎÎÏÎÎ ÏÏÎ ÏÎÏÎÎÏÏÎ GTK+."
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/scale.vala.page:23(None) C/scale.py.page:22(None)
-msgid "@@image: 'media/scale.png'; md5=462c52a53b773cb9e8c62c646bf88452"
-msgstr "@@image: 'media/scale.png'Â md5=462c52a53b773cb9e8c62c646bf88452"
+#: C/magic-mirror.vala.page:145(section/p)
+msgid ""
+"If you run into problems with the tutorial, compare your code with this "
+"<link href=\"magic-mirror/magic-mirror.vala\">reference code</link>. There "
+"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 ""
+"ÎÎÎ ÎÏÎÏÎ ÏÏÎÎÎÎÎÎÏÎ ÎÎ ÏÎ ÎÎÎÎÎÎ, ÏÏÎÎÏÎÎÎÏÎ ÏÎÎ ÎÏÎÎÎÎ ÏÎÏ ÎÎ ÎÏÏÏÎ ÏÎÎ "
+"<link href=\"magic-mirror/magic-mirror.vala\">ÎÏÎÎÎÎ ÎÎÎÏÎÏÎÏ</link>. "
+"ÎÏÎÏÏÎÎ ÎÏÎÏÎÏ ÎÎÎ ÏÎÎ <link href=\"magic-mirror/magic-mirror-advanced.vala"
+"\">ÎÎÏÎÏÎÎÎÎÎ ÏÎÎÏÎÎÎÏÎ</link> ÏÎÏ ÎÎÏÏÎÎÏÏÎÎÎ ÏÎ ÏÎÏÎÎÏÏÎ ÏÎ ÎÎÎ ÎÎÎÎÎÎÎÏ "
+"Gtk.Window ÏÎÏ ÎÎÏÎÏÎÎÏÎÎ ÎÎÏÎÎÎÏ ÏÏÎÏÏÏÎÎÎÎÎÏ ÏÎÏÎÎÎÎÏ ÎÎÎ ÏÏÎÏÎÎÏÎÎ "
+"ÎÎÏÎÏÎÎ ÎÎÎ ÎÎÎÏÎÎ/ÏÏÎÎÎÏÎÎÎ ÏÎÏ ÎÎÎÏÎÎÏ."
 
-#: C/scale.vala.page:7(title)
-msgid "Scale (Vala)"
-msgstr "ÎÎÎÎÎÎÎ (Vala)"
+#: C/magic-mirror.vala.page:152(section/p)
+msgid ""
+"To find out more about the Vala programming language you might want to check "
+"out the <link href=\"http://live.gnome.org/Vala/Tutorial\";>Vala Tutorial</"
+"link>."
+msgstr ""
+"ÎÎÎ ÎÎ ÎÏÎÎÏÎ ÏÎÏÎÏÏÏÏÎÏÎ ÎÎÎ ÏÎ ÎÎÏÏÏÎ ÏÏÎÎÏÎÎÎÎÏÎÏÎÎÏ Vala ÎÏÏÏ ÎÎÎÎÏÎ ÎÎ "
+"ÎÎÎÎÎÎÏÎ ÏÎ <link href=\"http://live.gnome.org/Vala/Tutorial\";>ÎÎÎÎÎÎ Vala</"
+"link>."
 
-#: C/scale.vala.page:19(desc) C/scale.py.page:18(desc) C/scale.c.page:19(desc)
-msgid "A slider widget for selecting a value from a range"
-msgstr "ÎÎÎÏ ÎÎÎÏÎÎÏÎÏ ÎÏÎÏÎÎÎÏ ÏÏÏÏÎÏÎÎÎÏ ÎÎÎ ÎÏÎÎÎÎÎ ÏÎÎÎÏ ÎÏÏ ÎÎÎ ÏÎÏÎÎÏÎ"
+#: C/magic-mirror.vala.page:157(section/title)
+msgid "Conclusion"
+msgstr "ÎÏÎÏÎÏÎÏÎÎ"
 
-#: C/scale.vala.page:22(title) C/scale.py.page:21(title)
-#: C/scale.js.page:20(title) C/scale.c.page:22(title)
-msgid "Scale"
-msgstr "ÎÎÎÎÎÎÎ"
+#: C/magic-mirror.vala.page:158(section/p)
+msgid ""
+"That's it, you have managed to create a full-featured webcam photo "
+"application in 15 minutes. Now you can shave your beard off or add some "
+"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 ""
+"ÎÏÏÏ ÎÎÎÎÎ, ÎÎÏÎÏÎÏÏÎÏÎ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎ ÎÎÎ ÏÎÎÏÎ ÎÏÎÏÎÎÎÎ ÏÏÏÎÎÏÎÏÎÎÏ "
+"ÎÏÏÎÎÎÎÎÏÎÏ ÏÎ 15 ÎÎÏÏÎ. ÎÏÏÎ ÎÏÎÏÎÎÏÎ ÎÎ ÎÏÏÎÏÏÎÎÏÎ Î ÎÎ ÏÏÎÏÎÎÏÎÏÎ "
+"ÎÎÎÎÏÎÏÎÎÎ ÏÏÎ ÏÎÎÏÏÏ ÏÎÏ ÏÏÏÏÏÏÎ, ÎÎÏÎÎÏÏ ÏÏÎÎ ÎÎ ÎÏÎÏÎ ÎÎÎ ÏÎÎÏÏÎ ÎÎÎÏÎ "
+"ÏÏÎ ÎÎÏÎÎÎÎ ÏÎÏ, ÏÏÎÏ ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÏÏÏÏÏÎÎÏÎÏÎ ÏÎÏÏ ÏÎÎÎÏÏ ÏÎÏ ÎÎÎ "
+"ÏÏÎÎÎÎÎÏÎÏÏ ÏÎÏ ÎÎ ÎÎÎ ÏÎÎÎÏÎ ÎÏÎÏÎÎÎÎ ÏÎÏ ÎÏÎÎÏ ÎÎÎÎÏÎ ÏÎ 15 ÎÎÏÏÎ."
 
-#: C/scale.vala.page:24(p) C/scale.py.page:23(p) C/scale.c.page:25(p)
-msgid "Slide the scales!"
-msgstr "ÎÎÎÏÎÎÏÎ ÏÏÎ ÎÎÎÎÎÎÏÎ!"
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/menubar.py.page:28(media) C/menubar.vala.page:23(media)
+msgctxt "_"
+msgid "external ref='media/menubar.png' md5='7b642aaa1628d5e43ab85ac230ac1c78'"
+msgstr ""
+"external ref='media/menubar.png' md5='7b642aaa1628d5e43ab85ac230ac1c78'"
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/menubar.py.page:129(media) C/menubar.vala.page:133(media)
+msgctxt "_"
+msgid ""
+"external ref='media/menubar_choices.png' "
+"md5='47cdfa12caf85ba20dd3e835bd7f893f'"
+msgstr ""
+"external ref='media/menubar_choices.png' "
+"md5='47cdfa12caf85ba20dd3e835bd7f893f'"
+
+#: C/menubar.py.page:7(info/title)
+msgctxt "text"
+msgid "MenuBar (Python)"
+msgstr "MenuBar (Python)"
 
-#: C/scale.vala.page:31(link) C/scale.js.page:214(link)
-msgid "Gtk.Scale"
-msgstr "Gtk.Scale"
+#: C/menubar.py.page:24(info/desc) C/menubar.vala.page:19(info/desc)
+msgid "A widget which holds GtkMenuItem widgets"
+msgstr "ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÏÎÏ ÎÏÎÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ GtkMenuItem"
 
-#: C/scale.vala.page:33(link)
-msgid "Gtk.PositionType"
-msgstr "Gtk.PositionType"
+#: C/menubar.py.page:27(page/title) C/menubar.vala.page:22(page/title)
+msgid "MenuBar"
+msgstr "MenuBar"
 
-#: C/scale.vala.page:34(link)
-msgid "Gtk.Orientation"
-msgstr "Gtk.Orientation"
+#: C/menubar.py.page:29(page/p) C/menubar.vala.page:24(page/p)
+msgid "A MenuBar created using XML and GtkBuilder."
+msgstr "ÎÎÎ ÎÏÎÎÎÎ ÎÏÎÎÎÎÎÏÎ ÎÎÎÎÎÏÏÎÎÎÎÎÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ XML ÎÎÎ GtkBuilder."
 
-#: C/scale.py.page:7(title)
-msgid "Scale (Python)"
-msgstr "ÎÎÎÎÎÎÎ (Python)"
+#: C/menubar.py.page:33(section/title) C/menubar.vala.page:28(section/title)
+msgid "Create a MenuBar using XML"
+msgstr "ÎÎÎÎÎÏÏÎÎÏÏÎ ÎÎÎ MenuBar ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ XML"
 
-#: C/scale.py.page:33(title)
-msgid "Useful methods for a Scale widget"
-msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÎÎÎÎÎÎÏ"
+#: C/menubar.py.page:34(section/p) C/menubar.vala.page:29(section/p)
+msgid "To create the menubar using XML:"
+msgstr "ÎÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎ ÎÎÎ ÎÏÎÎÎÎ ÎÎÎÎÏ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ XML:"
 
-#: C/scale.py.page:34(p)
-msgid ""
-"For an explanation of signals and callback functions, see <link xref="
-"\"signals-callbacks.py\">this page</link>. An example is the <code>\"value-"
-"changed\"</code> signal, emitted when the value of the scale changes."
+#: C/menubar.py.page:36(item/p) C/menubar.vala.page:31(item/p)
+msgid "Create <file>menubar.ui</file> using your favorite text editor."
 msgstr ""
-"ÎÎÎ ÎÎÎ ÎÎÎÎÎÏÎ ÏÏÎ ÏÎÎÎÏÏÎ ÎÎÎ ÏÏÎÎÏÏÎÏÎÏÎ ÎÏÎÎÎÎÎÎÏÎÏ, ÎÎÎÏÎ <link xref="
-"\"signals-callbacks.py\">ÎÏÏÎÎ ÏÎ ÏÎÎÎÎÎ</link>. ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ ÎÎÎÎÎ ÏÎ "
-"ÏÎÎÎ <code>\"value-changed\"</code>, ÏÎÏ ÎÎÏÎÎÏÎÏÎÎ ÏÏÎÎ Î ÏÎÎÎ ÏÎÏ ÎÎÎÎÎÎÎÏ "
-"ÎÎÎÎÎÎÎ."
+"ÎÎÎÎÎÏÏÎÎÏÏÎ <file>menubar.ui</file> ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎÎ ÎÎÎÏÎÎÎÎÎ ÏÎÏ "
+"ÎÏÎÎÎÏÎÎÏÏÎ ÎÎÎÎÎÎÎÏ."
 
-#: C/scale.py.page:35(p)
-msgid ""
-"A Gtk.Adjustment is needed to construct the Gtk.Scale. This is the "
-"representation of a value with a lower and upper bound, together with step "
-"and page increments, and a page size, and it is constructed as <code>Gtk."
-"Adjustment(value, lower, upper, step_increment, page_increment, page_size)</"
-"code> where the fields are of type <code>float</code>; <code>step_increment</"
-"code> is the increment/decrement that is obtained by using the cursor keys, "
-"<code>page_increment</code> the one that is obtained clicking on the scale "
-"itself. Note that <code>page_size</code> is not used in this case, it should "
-"be set to <code>0</code>."
-msgstr ""
-"ÎÎÎ Gtk.Adjustment ÎÏÎÎÏÎÎÏÎÎ ÎÎÎ ÎÎ ÎÎÎÎÏÎÎ ÏÎÎ Gtk.Scale. ÎÏÏÎ ÎÎÎÎÎ Î "
-"ÎÎÎÏÎÏÎÏÏÎÏÎ ÎÎÎÏ ÏÎÎÎÏ ÎÎ ÎÎÏÏ ÎÎÎ ÎÎÏ ÏÏÎÎ, ÎÎÎÎ ÎÎ ÎÏÎÎÏÎÎÏ ÎÎÎÎÏÎÏ ÎÎÎ "
-"ÏÎÎÎÎÎÏ ÎÎÎ ÎÎÎ ÎÎÎÎÎÎÏ ÏÎÎÎÎÎÏ ÎÎÎ ÎÎÎÎÎÏÎÎ ÏÏ <code>Gtk.Adjustment(value, "
-"lower, upper, step_increment, page_increment, page_size)</code> ÏÏÎÏ ÏÎ "
-"ÏÎÎÎÎ ÎÎÎÎÎ ÏÎÏ ÏÏÏÎÏ <code>float</code>Â <code>step_increment</code> ÎÎÎÎÎ "
-"Î ÎÏÎÎÏÎ/ÎÎÎÏÏÎ ÏÎÏ ÏÎÎÏÎÎÏÎÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ ÏÎÎÎÏÏÎ ÎÏÎÎÎÎ, "
-"<code>page_increment</code> ÎÏÏÎ ÏÎÏ ÏÎÎÏÎÎÏÎÎ ÏÎÏÏÎÏÎÏ ÏÏÎÎ ÎÎÎÎ ÏÎÎ "
-"ÎÎÎÎÎÎÎ. ÎÎÎÎÎÏÏÏÎ ÏÏÎ ÏÎ <code>page_size</code> ÎÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÏÎ "
-"ÎÏÏÎÎ ÏÎÎ ÏÎÏÎÏÏÏÏÎ, ÎÎ ÏÏÎÏÎÎ ÎÎ ÎÏÎÏÏÎÎ ÏÎ <code>0</code>."
+#: C/menubar.py.page:37(item/p) C/menubar.vala.page:32(item/p)
+msgid "Enter the following line at the top of the file:"
+msgstr "ÎÎÏÎÎÎÏÎ ÏÎÎ ÎÏÏÎÎÎÎ ÎÏÎÎÎÎ ÏÏÎÎ ÎÎÏÏÏÎ ÏÎÏ ÎÏÏÎÎÎÏ:"
 
-#: C/scale.py.page:37(p)
+#: C/menubar.py.page:38(item/code) C/menubar.vala.page:33(item/code)
+#, no-wrap
 msgid ""
-"<code>get_value()</code> retrieves the current value of the scale; "
-"<code>set_value(value)</code> sets it (if the <code>value</code>, of type "
-"<code>float</code>, is outside the minimum or maximum range, it will be "
-"clamped to fit inside them). These are methods of the class Gtk.Range."
+"\n"
+"&lt;?xml version=\"1.0\"? encoding=\"UTF-8\"?&gt;"
 msgstr ""
-"Î <code>get_value()</code> ÎÎÎÎÏÎ ÏÎÎ ÏÏÎÏÎÏÏÎ ÏÎÎÎ ÏÎÏ ÎÎÎÎÎÎÎÏÂ Î "
-"<code>set_value(value)</code> ÏÎÎ ÎÏÎÎÎÎ (ÎÎÎ Î <code>value</code>, ÏÎÏ "
-"ÏÏÏÎÏ <code>float</code>, ÎÎÎÎÎ ÎÎÏ ÎÏÏ ÏÎÎ ÎÎÎÏÎÏÏÎ Î ÎÎÎÎÏÏÎ ÏÎÏÎÎÏÎ, ÎÎ "
-"ÎÎÏÎÎÏÎÎÎ ÎÎ ÏÏÎÏÎÏÎÎÏÏÎÎ ÎÎÏÎ ÏÎÏÏ). ÎÏÏÎÏ ÎÎÎÎÎ ÎÎ ÎÎÎÎÎÎÎ ÏÎÏ ÎÎÎÏÎÏ Gtk."
-"Range."
+"\n"
+"&lt;?xml version=\"1.0\"? encoding=\"UTF-8\"?&gt;"
 
-#: C/scale.py.page:38(p)
+#: C/menubar.py.page:41(item/p) C/menubar.vala.page:36(item/p)
 msgid ""
-"Use <code>set_draw_value(False)</code> to avoid displaying the current value "
-"as a string next to the slider."
+"We want to create the interface which will contain our menubar and its "
+"submenus. Our menubar will contain <gui>File</gui>, <gui>Edit</gui>, "
+"<gui>Choices</gui> and <gui>Help</gui> submenus. We add the following XML "
+"code to the file:"
 msgstr ""
-"ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ <code>set_draw_value(False)</code> ÎÎÎ ÎÏÎÏÏÎÎ ÎÎÏÎÎÎÏÎÏ ÏÎÏ "
-"ÏÏÎÏÎÏÏÎÏ ÏÎÎÎÏ ÏÏ ÏÏÎÎÎÎÎÏÎÎÏÎÏ ÎÎÏÎÎ ÏÏÎÎ ÎÎÎÏÎÎÏÎ."
+"ÎÎÎÎÏÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ ÏÎ ÎÎÎÏÎÏÎ ÏÎÏ ÎÎ ÏÎÏÎÎÏÎÎ ÏÎ ÎÏÎÎÎÎ ÎÎÎÎÏ ÎÎÏ ÎÎÎ "
+"ÏÎ ÏÏÎÎÎÎÎÏ ÏÎÏ. Î ÎÏÎÎÎÎ ÎÎÎÎÏ ÎÎÏ ÎÎ ÏÎÏÎÎÏÎÎ ÏÎ ÏÏÎÎÎÎÎÏ <gui>ÎÏÏÎÎÎ</"
+"gui>, <gui>ÎÏÎÎÎÏÎÎÏÎÎ</gui>, <gui>ÎÏÎÎÎÎÎÏ</gui> ÎÎÎ <gui>ÎÎÎÎÎÎÎ</gui>. "
+"ÎÏÎÏÎÎÏÎÏÎÎ ÏÎÎ ÎÎÏÎÎÏÎÎ ÎÏÎÎÎÎ XML ÏÏÎ ÎÏÏÎÎÎ:"
 
-#: C/scale.py.page:39(p)
+#: C/menubar.py.page:42(item/code) C/menubar.vala.page:37(item/code)
+#, no-wrap
 msgid ""
-"To highlight the part of the scale between the origin and the current value:"
+"&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n"
+"&lt;interface&gt;\n"
+"  &lt;menu id=\"menubar\"&gt;\n"
+"    &lt;submenu&gt;\n"
+"      &lt;attribute name=\"label\"&gt;File&lt;/attribute&gt;\n"
+"    &lt;/submenu&gt;\n"
+"    &lt;submenu&gt;\n"
+"      &lt;attribute name=\"label\"&gt;Edit&lt;/attribute&gt;\n"
+"    &lt;/submenu&gt;\n"
+"    &lt;submenu&gt;\n"
+"      &lt;attribute name=\"label\"&gt;Choices&lt;/attribute&gt;\n"
+"    &lt;/submenu&gt;\n"
+"    &lt;submenu&gt;\n"
+"      &lt;attribute name=\"label\"&gt;Help&lt;/attribute&gt;\n"
+"    &lt;/submenu&gt;\n"
+"  &lt;/menu&gt;\n"
+"&lt;/interface&gt;\n"
+msgstr ""
+"&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n"
+"&lt;interface&gt;\n"
+"  &lt;menu id=\"menubar\"&gt;\n"
+"    &lt;submenu&gt;\n"
+"      &lt;attribute name=\"label\"&gt;File&lt;/attribute&gt;\n"
+"    &lt;/submenu&gt;\n"
+"    &lt;submenu&gt;\n"
+"      &lt;attribute name=\"label\"&gt;Edit&lt;/attribute&gt;\n"
+"    &lt;/submenu&gt;\n"
+"    &lt;submenu&gt;\n"
+"      &lt;attribute name=\"label\"&gt;Choices&lt;/attribute&gt;\n"
+"    &lt;/submenu&gt;\n"
+"    &lt;submenu&gt;\n"
+"      &lt;attribute name=\"label\"&gt;Help&lt;/attribute&gt;\n"
+"    &lt;/submenu&gt;\n"
+"  &lt;/menu&gt;\n"
+"&lt;/interface&gt;\n"
+
+#: C/menubar.py.page:44(item/p)
+msgid ""
+"Now we will create the .py file and use GtkBuilder to import the "
+"<file>menubar.ui</file> we just created."
 msgstr ""
-"ÎÎÎ ÏÎÎÎÏÎÏ ÎÎÏÎÏÏ ÏÎÏ ÎÎÎÎÎÎÎÏ ÎÎÏÎÎÏ ÏÎÏ ÎÏÏÎÎÎÏ ÎÎÎ ÏÎÏ ÏÏÎÏÎÏÏÎÏ ÏÎÎÎÏ:"
+"ÎÏÏÎ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ ÏÎ ÎÏÏÎÎÎ .py ÎÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ GtkBuilder ÎÎÎ "
+"ÎÎÏÎÎÏÎÎ ÏÎÏ <file>menubar.ui</file> ÏÎÏ ÎÏÎÎÏ ÎÎÎÎÎÏÏÎÎÏÎÎÎ."
 
-#: C/scale.py.page:40(code)
+#: C/menubar.py.page:48(section/title) C/menubar.vala.page:42(section/title)
+msgid "Add the MenuBar to the window using GtkBuilder"
+msgstr "ÎÏÎÏÎÎÏÏÎ ÏÎ MenuBar ÏÏÎ ÏÎÏÎÎÏÏÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ GtkBuilder"
+
+#: C/menubar.py.page:49(section/code)
 #, no-wrap
 msgid ""
+"from gi.repository import Gtk\n"
+"import sys\n"
 "\n"
-"self.h_scale.set_restrict_to_fill_level(False)\n"
-"self.h_scale.set_fill_level(self.h_scale.get_value())\n"
-"self.h_scale.set_show_fill_level(True)"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"MenuBar Example\", application=app)\n"
+"        self.set_default_size(200, 200)\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"        # a builder to add the UI designed with Glade to the grid:\n"
+"        builder = Gtk.Builder()\n"
+"        # get the file (if it is there)\n"
+"        try:\n"
+"            builder.add_from_file(\"menubar_basis.ui\")\n"
+"        except:\n"
+"            print \"file not found\"\n"
+"            sys.exit()\n"
+"\n"
+"        # we use the method Gtk.Application.set_menubar(menubar) to add the menubar\n"
+"        # to the application (Note: NOT the window!)\n"
+"        self.set_menubar(builder.get_object(\"menubar\"))\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
 msgstr ""
+"from gi.repository import Gtk\n"
+"import sys\n"
 "\n"
-"self.h_scale.set_restrict_to_fill_level(False)\n"
-"self.h_scale.set_fill_level(self.h_scale.get_value())\n"
-"self.h_scale.set_show_fill_level(True)"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"MenuBar Example\", application=app)\n"
+"        self.set_default_size(200, 200)\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"        # a builder to add the UI designed with Glade to the grid:\n"
+"        builder = Gtk.Builder()\n"
+"        # get the file (if it is there)\n"
+"        try:\n"
+"            builder.add_from_file(\"menubar_basis.ui\")\n"
+"        except:\n"
+"            print \"file not found\"\n"
+"            sys.exit()\n"
+"\n"
+"        # we use the method Gtk.Application.set_menubar(menubar) to add the menubar\n"
+"        # to the application (Note: NOT the window!)\n"
+"        self.set_menubar(builder.get_object(\"menubar\"))\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
 
-#: C/scale.py.page:44(p)
+#: C/menubar.py.page:50(section/p)
 msgid ""
-"in the callback function of the \"value-changed\" signal, so to have the new "
-"filling every time the value is changed. These are methods of the class Gtk."
-"Range."
+"Now run the python application. It should look like the picture at the top "
+"of this page."
 msgstr ""
-"ÏÏÎÎ ÏÏÎÎÏÏÎÏÎ ÎÏÎÎÎÎÎÎÏÎÏ ÏÎÏ ÏÎÎÎÏÎÏ \"value-changed\", ÎÏÏÎ ÏÏÏÎ ÎÎ "
-"ÏÏÎÏÎÎÏÏÎÎÏÎÎ ÎÎÎÎ ÏÎÏÎ ÏÎÏ ÎÎÎÎÎÎÎ Î ÏÎÎÎ. ÎÏÏÎÏ ÎÎÎÎÎ ÎÎ ÎÎÎÎÎÎÎ ÏÎÏ "
-"ÎÎÎÏÎÏ Gtk.Range."
+"ÎÏÏÎ ÎÎÏÎÎÎÏÏÎ ÏÎÎ ÎÏÎÏÎÎÎÎ python. ÎÎ ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎÎÎ ÎÎ ÏÎÎ ÎÎÎÏÎÎ ÏÏÎÎ "
+"ÎÎÏÏÏÎ ÎÏÏÎÏ ÏÎÏ ÏÎÎÎÎÎÏ."
 
-#: C/scale.py.page:46(p)
-msgid ""
-"<code>add_mark(value, position, markup)</code> adds a mark at the "
-"<code>value</code> (<code>float</code> or <code>int</code> if that is the "
-"precision of the scale), in <code>position</code> (<code>Gtk.PositionType."
-"LEFT, Gtk.PositionType.RIGHT, Gtk.PositionType.TOP, Gtk.PositionType.BOTTOM</"
-"code>) with text <code>Null</code> or <code>markup</code> in the Pango "
-"Markup Language. To clear marks, <code>clear_marks()</code>."
-msgstr ""
-"<code>add_mark(value, position, markup)</code> ÏÏÎÏÎÎÏÎÎ ÎÎÎ ÏÎÎÎÎÎ ÏÏÎÎ "
-"<code>value</code> (<code>float</code> Î <code>int</code> ÎÎÎ ÎÏÏÎ ÎÎÎÎÎ Î "
-"ÎÎÏÎÎÎÎÎ ÏÎÏ ÎÎÎÎÎÎÎÏ), ÏÎ <code>position</code> (<code>Gtk.PositionType."
-"LEFT, Gtk.PositionType.RIGHT, Gtk.PositionType.TOP, Gtk.PositionType.BOTTOM</"
-"code>) ÎÎ ÎÎÎÎÎÎÎ <code>Null</code> Î <code>markup</code> ÏÏÎ ÎÎÏÏÏÎ "
-"ÎÏÎÏÎÎÎÎÏÎÏ Pango. ÎÎÎ ÎÎÎÎÏÎÏÎÏ ÏÎÎÎÎÎÏÎ, <code>clear_marks()</code>."
+#: C/menubar.py.page:54(section/title) C/menubar.vala.page:50(section/title)
+msgid "Add items to the menus"
+msgstr "ÎÏÎÏÎÎÎÎ ÏÏÎÎÏÎÎÏÎ ÏÏÎ ÎÎÎÎÏ"
 
-#: C/scale.py.page:47(p)
+#: C/menubar.py.page:55(section/p) C/menubar.vala.page:51(section/p)
 msgid ""
-"<code>set_digits(digits)</code> sets the precision of the scale at "
-"<code>digits</code> digits."
+"We start off by adding 2 menuitems to the <gui>File</gui> menu: <gui>New</"
+"gui> and <gui>Quit</gui>. We do this by adding a <code>section</code> to the "
+"the <code>File</code> submenu with these items. The <file>menubar.ui</file> "
+"should look like this (lines 6 to 13 inclusive comprise the newly added "
+"section):"
 msgstr ""
-"Î <code>set_digits(digits)</code> ÎÏÎÎÎÎ ÏÎÎ ÎÎÏÎÎÎÎÎ ÏÎÏ ÎÎÎÎÎÎÎÏ ÏÎ ÏÎÏÎÎ "
-"<code>digits</code>."
+"ÎÎÎÎÎÎÎÎ ÏÏÎÏÎÎÏÎÎÏÎÏ 2 ÏÏÎÎÏÎÎÎ ÎÎÎÎÏ ÏÏÎ ÎÎÎÎÏ <gui>ÎÏÏÎÎÎ</gui>: "
+"<gui>ÎÎÎ</gui> ÎÎÎ <gui>ÎÎÎÎÏÎÎÎ</gui>. ÎÎ ÎÎÎÎÏÎÎ ÎÏÏÏ ÏÏÎÏÎÎÏÎÎÏÎÏ ÎÎÎ "
+"<code>section</code> ÏÏÎ ÏÏÎÎÎÎÎÏ <code>File</code> ÎÎ ÎÏÏÎ ÏÎ ÏÏÎÎÏÎÎÎ. ÎÎ "
+"<file>menubar.ui</file> ÏÏÎÏÎÎ ÎÎ ÏÎÎÎÎÏÎÎ ÏÎÎ ÎÏÏÏ (ÎÏÎÎÎÎÏ 6 ÎÏÏ 13 "
+"ÏÏÎÏÎÏÎÎÎÎÎÎÎÏÎÎÎÎÏ ÎÏÎÏÎÎÎÏÎ ÏÎ ÎÎÎ ÎÎÏÏÎÏÎ ÏÎÏ ÏÏÎÏÏÎÎÎÎÎ):"
 
-#: C/scale.py.page:55(link) C/scale.c.page:35(link)
-msgid "GtkScale"
-msgstr "GtkScale"
+#: C/menubar.py.page:58(listing/title)
+msgid "menubar.ui"
+msgstr "menubar.ui"
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/scale.js.page:21(None)
+#: C/menubar.py.page:59(listing/code) C/menubar.vala.page:52(section/code)
+#, no-wrap
 msgid ""
-"@@image: 'media/scalepenguins.png'; md5=2dbe6a833fec86fde71a5ddb421e2cd5"
+"\n"
+"&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n"
+"&lt;interface&gt;\n"
+"  &lt;menu id=\"menubar\"&gt;\n"
+"    &lt;submenu&gt;\n"
+"      &lt;attribute name=\"label\"&gt;File&lt;/attribute&gt;\n"
+"      &lt;section&gt;\n"
+"        &lt;item&gt;\n"
+"          &lt;attribute name=\"label\"&gt;New&lt;/attribute&gt;\n"
+"        &lt;/item&gt;\n"
+"        &lt;item&gt;\n"
+"          &lt;attribute name =\"label\"&gt;Quit&lt;/attribute&gt;\n"
+"        &lt;/item&gt;\n"
+"      &lt;/section&gt;\n"
+"    &lt;/submenu&gt;\n"
+"    &lt;submenu&gt;\n"
+"      &lt;attribute name=\"label\"&gt;Edit&lt;/attribute&gt;\n"
+"    &lt;/submenu&gt;\n"
+"    &lt;submenu&gt;\n"
+"      &lt;attribute name=\"label\"&gt;Choices&lt;/attribute&gt;\n"
+"    &lt;/submenu&gt;\n"
+"    &lt;submenu&gt;\n"
+"      &lt;attribute name=\"label\"&gt;Help&lt;/attribute&gt;\n"
+"    &lt;/submenu&gt;\n"
+"  &lt;/menu&gt;\n"
+"&lt;/interface&gt;"
 msgstr ""
-"@@image: 'media/scalepenguins.png'Â md5=2dbe6a833fec86fde71a5ddb421e2cd5"
-
-#: C/scale.js.page:7(title)
-msgid "Scale (JavaScript)"
-msgstr "ÎÎÎÎÎÎÎ (JavaScript)"
+"\n"
+"&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n"
+"&lt;interface&gt;\n"
+"  &lt;menu id=\"menubar\"&gt;\n"
+"    &lt;submenu&gt;\n"
+"      &lt;attribute name=\"label\"&gt;File&lt;/attribute&gt;\n"
+"      &lt;section&gt;\n"
+"        &lt;item&gt;\n"
+"          &lt;attribute name=\"label\"&gt;New&lt;/attribute&gt;\n"
+"        &lt;/item&gt;\n"
+"        &lt;item&gt;\n"
+"          &lt;attribute name =\"label\"&gt;Quit&lt;/attribute&gt;\n"
+"        &lt;/item&gt;\n"
+"      &lt;/section&gt;\n"
+"    &lt;/submenu&gt;\n"
+"    &lt;submenu&gt;\n"
+"      &lt;attribute name=\"label\"&gt;Edit&lt;/attribute&gt;\n"
+"    &lt;/submenu&gt;\n"
+"    &lt;submenu&gt;\n"
+"      &lt;attribute name=\"label\"&gt;Choices&lt;/attribute&gt;\n"
+"    &lt;/submenu&gt;\n"
+"    &lt;submenu&gt;\n"
+"      &lt;attribute name=\"label\"&gt;Help&lt;/attribute&gt;\n"
+"    &lt;/submenu&gt;\n"
+"  &lt;/menu&gt;\n"
+"&lt;/interface&gt;"
+
+#: C/menubar.py.page:87(section/p)
+msgid ""
+"Following this pattern, you can now add a <code>Copy</code> and a "
+"<code>Paste</code> item to the <code>Edit</code> submenu, and an "
+"<code>About</code> item to the <code>Help</code> submenu."
+msgstr ""
+"ÎÎÎÎÎÏÎÏÎÏÎÏ ÎÏÏÏ ÏÎ ÎÎÏÎÎÎ, ÎÏÎÏÎÎÏÎ ÏÏÏÎ ÎÎ ÏÏÎÏÎÎÏÎÏÎ ÎÎÎ ÏÏÎÎÏÎÎÎ "
+"<code>Copy</code> ÎÎÎ ÎÎÎ <code>Paste</code> ÏÏÎ ÏÏÎÎÎÎÎÏ <code>Edit</code> "
+"ÎÎÎ ÎÎÎ ÏÏÎÎÏÎÎÎ <code>About</code> ÏÏÎ ÏÏÎÎÎÎÎÏ <code>Help</code>."
 
-#: C/scale.js.page:17(desc)
-msgid "A slider which corresponds to a numerical value"
-msgstr "ÎÎÎÏ ÎÎÎÏÎÎÏÎÏ ÏÎÏ ÎÎÏÎÏÏÎÎÏÎÎ ÏÎ ÎÎÎ ÎÏÎÎÎÎÏÎÎÎ ÏÎÎÎ"
+#: C/menubar.py.page:92(section/title) C/menubar.vala.page:86(section/title)
+msgid "Setup actions"
+msgstr "ÎÎÎÎÏÎÏÏÎÏÎ ÎÎÎÏÎÎÎÏÎ"
 
-#: C/scale.js.page:22(p)
+#: C/menubar.py.page:94(section/p)
 msgid ""
-"A Scale is a horizontal or vertical slider, that represents a value inside a "
-"numerical range. When you create a new Scale, you set what its default "
-"position is, what the numbers at the top and bottom of the range are, and "
-"things like how much it moves up or down when you click on the Scale to "
-"either side of the knob. To keep from having to type all that in every time "
-"you create a new Scale, you can create an object called an Adjustment which "
-"keeps track of all that, then tell each new Scale to use that Adjustment."
+"We now create the actions for \"New\" and \"Quit\" connected to a callback "
+"function in the Python file; for instance we create \"new\" as:"
 msgstr ""
-"ÎÎÎ ÎÎÎÎÎÎÎ ÎÎÎÎÎ ÎÎÎÏ ÎÏÎÎÏÎÏÎÎÏ Î ÎÎÎÎÏÎÏ ÎÎÎÏÎÎÏÎÏ, ÏÎÏ ÎÎÎÏÎÏÎÏÏÎ ÎÎÎ "
-"ÏÎÎÎ ÎÎÏÎ ÏÎ ÎÎÎ ÎÏÎÎÎÎÏÎÎÎ ÏÎÏÎÎÏÎ. ÎÏÎÎ ÎÎÎÎÎÏÏÎÎÎÏÎ ÎÎÎ ÎÎÎ ÎÎÎÎÎÎÎ, "
-"ÎÏÎÎÎÏÎ ÏÎÎÎ ÎÎÎÎÎ Î ÏÏÎÎÏÎÎÎÎÎÎÎÎ ÏÎÏ ÎÎÏÎ, ÏÎÎÎÎ ÎÎÎÎÎ ÎÎ ÎÏÎÎÎÎÎ ÏÏÎÎ "
-"ÎÎÏÏÏÎ ÎÎÎ ÏÏÎÎ ÏÎÏÎ ÏÎÏ ÏÎÏÎÎÏÎÏ ÎÎÎ ÏÏÎÎÎÎÏÎ ÏÏÏÏ ÏÏÏÎ ÎÎÏÎÎÎÎÎÎÏÎÎ ÏÎÎÏ Î "
-"ÎÎÏÏ ÏÏÎÎ ÏÎÏÎÏÎ ÏÎ ÎÎÎ ÎÎÎÎÎÎÎ ÏÎ ÎÏÎÎÎÎÎÏÎÏÎ ÏÎÎÏÏÎ ÏÎÏ ÎÎÏÎÏÎÎÏ. ÎÎÎ ÎÎ "
-"ÏÏÎÎÏÎÏÎÏÎ ÎÎ ÎÏÎÏÎ ÎÎ ÏÎÎÎÏÏÎÎÎÎÎÏÎÏÎ ÏÎÎ ÎÏÏÏ ÎÎÎÎ ÏÎÏÎ ÎÎÎÎÎÏÏÎÎÎÏÎ ÎÎÎ "
-"ÎÎÎ ÎÎÎÎÎÎÎ, ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎ ÎÎÎ ÎÎÏÎÎÎÎÎÎÎÎ ÏÎÏ ÎÎÎÎÏÎÎ ÏÏÎÎÎÏÎ "
-"ÎÎÎ ÎÎÎÏÎÎÏÎÎ ÏÎÎ ÎÏÏÏ, ÎÏÎÎÏÎ ÏÎÎÏÎ ÏÎ ÎÎÎÎ ÎÎÎ ÏÎÎÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ "
-"ÎÏÏÎÎ ÏÎ ÏÏÎÎÎÏÎ."
+"ÎÏÏÎ ÎÎÎÎÎÏÏÎÎÏÎÎ ÏÎÏ ÎÎÎÏÎÎÎÎÏ ÎÎÎ \"New\" ÎÎÎ \"Quit\" ÏÏÎÎÎÎÎÎÎÏ ÏÎ ÎÎÎ "
+"ÏÏÎÎÏÏÎÏÎ ÎÏÎÎÎÎÎÎÏÎÏ ÏÏÎ ÎÏÏÎÎÎ Python ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ ÎÎÎÎÎÏÏÎÎÏÎÎ ÏÎ \"new"
+"\" ÏÏ:"
 
-#: C/scale.js.page:23(p)
+#: C/menubar.py.page:95(section/code)
+#, no-wrap
 msgid ""
-"This scale is a simple widget that lets you adjust the size of an iceberg "
-"that penguins live on. The number of penguins on the iceberg is the product "
-"of the values of the two sliders. Try playing with them and seeing what "
-"happens."
+"\n"
+"new_action = Gio.SimpleAction.new(\"new\", None)\n"
+"new_action.connect(\"activate\", self.new_callback)"
 msgstr ""
-"ÎÏÏÎ Î ÎÎÎÎÎÎÎ ÎÎÎÎÎ ÎÎÎ ÎÏÎÏ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÏÎÏ ÏÎÏ ÎÏÎÏÏÎÏÎÎ ÎÎ "
-"ÏÏÎÎÎÏÎÏÎ ÏÎ ÎÎÎÎÎÎÏ ÎÎÏÏ ÏÎÎÏÎÎÏÎÎÏ ÏÏÎÏ ÎÎÏÎ ÎÎ ÏÎÎÎÎÏÎÎÎÎ. Î ÎÏÎÎÎÏÏ ÏÏÎ "
-"ÏÎÎÎÎÏÎÎÏÎ ÏÏÎ ÏÎÎÏÎÎÏÎÎ ÎÎÎÎÎ ÏÎ ÎÎÎÏÎÎÎÎ ÏÏÎ ÏÎÎÏÎ ÏÏÎ ÎÏÎ ÎÎÎÏÎÎÏÏÎ. "
-"ÎÎÎÎÎÎÏÏÎ ÎÎ ÏÎÎÎÎÏÎ ÎÎÎÎ ÏÎÏÏ ÎÎÎ ÎÎ ÎÎÎÏÎ ÏÎ ÏÏÎÎÎÎÎÎÎ."
+"\n"
+"new_action = Gio.SimpleAction.new(\"new\", None)\n"
+"new_action.connect(\"activate\", self.new_callback)"
+
+#: C/menubar.py.page:99(section/p)
+msgid "And we create the callback function of \"new\" as"
+msgstr "ÎÎÎ ÎÎÎÎÎÏÏÎÎÏÎÎ ÏÎ ÏÏÎÎÏÏÎÏÎ ÎÏÎÎÎÎÎÎÏÎÏ ÏÎÏ \"new\" ÏÏ"
 
-#: C/scale.js.page:65(p)
+#: C/menubar.py.page:100(section/code)
+#, no-wrap
 msgid ""
-"All the code for this sample goes in the ScaleExample class. The above code "
-"creates a <link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.";
-"Application.html\">Gtk.Application</link> for our widgets and window to go "
-"in."
+"\n"
+"def new_callback(self, action, parameter):\n"
+"    print \"You clicked \\\"New\\\"\""
 msgstr ""
-"ÎÎÎÏ Î ÎÏÎÎÎÎÏ ÎÎÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÏÎÎÎÎÎÎÎ ÏÏÎÎ ÎÎÎÏÎ ScaleExample. Î "
-"ÏÎÏÎÏÎÎÏ ÎÏÎÎÎÎÏ ÎÎÎÎÎÏÏÎÎÎ ÎÎÎ <link href=\"http://www.roojs.com/seed/";
-"gir-1.2-gtk-3.0/gjs/Gtk.Application.html\">Gtk.Application</link> ÎÎÎ ÎÎ "
-"ÎÏÎÏÎ ÎÎÏÎ ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÏ ÎÎÎ ÏÎ ÏÎÏÎÎÏÏÎ."
-
-#: C/scale.js.page:81(title)
-msgid "Creating the scales"
-msgstr "ÎÎÎÎÎÏÏÎÎÎ ÏÏÎ ÎÎÎÎÎÎÏÎ"
+"\n"
+"def new_callback(self, action, parameter):\n"
+"    print \"You clicked \\\"New\\\"\""
 
-#: C/scale.js.page:91(p)
+#: C/menubar.py.page:104(section/p)
 msgid ""
-"The new_with_range method is one way to create a new Scale widget. The "
-"parameters it takes are a <link href=\"http://www.roojs.org/seed/gir-1.2-";
-"gtk-3.0/gjs/Gtk.Orientation.html\">Gtk.Orientation</link>, the minimum "
-"value, the maximum value, and the increment for a single step. After that we "
-"use the Scale's methods to set its starting value, and how many decimal "
-"places it runs to. We also set its vertical alignment in this case, to "
-"control where it appears in the window."
+"Now, in the XML file, we connect the menu items to the actions in the XML "
+"file by adding the \"action\" attribute:"
 msgstr ""
-"Î ÎÎÎÎÎÎÏ new_with_range ÎÎÎÎÎ ÎÎÎÏ ÏÏÏÏÎÏ ÎÎÎÎÎÏÏÎÎÎÏ ÎÎÏÏ ÎÎÎÏ ÎÏÎÏÎÎÎÏ "
-"ÏÏÏÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎÏ. ÎÎ ÏÎÏÎÎÎÏÏÎÎ ÏÎÏ ÏÎÎÏÎÎÎ ÎÎÎÎÎ ÎÎÎ <link href=\"http://";
-"www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.Orientation.html\">Gtk."
-"Orientation</link>, Î ÎÎÎÏÎÏÏÎ ÏÎÎÎ, Î ÎÎÎÎÏÏÎ ÏÎÎÎ ÎÎÎ Î ÎÏÎÎÏÎ ÎÎÎ ÎÎÎ "
-"ÎÏÎÎ ÎÎÎÎ. ÎÎÏÏÏÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÏÎÏ ÎÎÎÏÎÎÏÏ ÎÎÎÎÎÎÎÏ ÎÎÎ ÎÎ ÎÏÎÏÎÏÎÎ ÏÎÎ "
-"ÎÏÏÎÎÎ ÏÎÏ ÏÎÎÎ ÎÎÎ ÏÏÏÎÏ ÎÎÎÎÎÎÎÎÏ ÎÎÏÎÎÏ ÎÎÎÏÏÎÏÎÎ. ÎÏÎÏÎÏ ÎÏÎÎÎÏÎÎ ÏÎÎ "
-"ÎÎÎÎÏÎ ÏÎÏ ÏÏÎÎÏÎÏÎ ÏÎ ÎÏÏÎÎ ÏÎÎ ÏÎÏÎÏÏÏÏÎ, ÎÎÎ ÏÎÎ ÎÎÎÎÏÎ ÏÎÏ ÎÎÏÎÎÎÎÎÏÎÎ "
-"ÏÏÎ ÏÎÏÎÎÏÏÎ."
+"ÎÏÏÎ, ÏÏÎ ÎÏÏÎÎÎ XML, ÏÏÎÎÎÎÏÎÎ ÏÎ ÏÏÎÎÏÎÎÎ ÏÎÏ ÎÎÎÎÏ ÏÏÎÏ ÎÎÎÏÎÎÎÎÏ ÏÎÏ "
+"ÎÏÏÎÎÎÏ XML ÏÏÎÏÎÎÏÎÎÏÎÏ ÏÎ ÎÎÏÏÎÏÎÎ \"action\":"
 
-#: C/scale.js.page:92(p)
+#: C/menubar.py.page:105(section/code)
+#, no-wrap
 msgid ""
-"We can use the set_draw_value method to tell it whether or not to show the "
-"number next to the sliding scale. It's commented out in this example."
+"\n"
+"&lt;item&gt;\n"
+"  &lt;attribute name=\"label\"&gt;New&lt;/attribute&gt;\n"
+"  &lt;attribute name=\"action\"&gt;app.new&lt;/attribute&gt;\n"
+"&lt;/item&gt;"
 msgstr ""
-"ÎÏÎÏÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÏÎ ÎÎÎÎÎÎ set_draw_value ÎÎÎ ÎÎ ÏÎÏ ÏÎÏÎÎ ÎÎÎ "
-"ÎÎ ÎÎÏÎÎÎÏÎÎ Î ÏÏÎ ÏÎÎ ÎÏÎÎÎÏ ÎÎÏÎÎ ÏÏÎÎ ÎÎÎÎÏÎ ÎÎÎÎÎÎÎ. ÎÏÎÎÎÎÎÎÏÎÎ ÏÎ ÎÏÏÏ "
-"ÏÎ ÏÎÏÎÎÎÎÎÎÎ."
+"\n"
+"&lt;item&gt;\n"
+"  &lt;attribute name=\"label\"&gt;New&lt;/attribute&gt;\n"
+"  &lt;attribute name=\"action\"&gt;app.new&lt;/attribute&gt;\n"
+"&lt;/item&gt;"
 
-#: C/scale.js.page:104(p)
+#: C/menubar.py.page:111(section/p)
 msgid ""
-"An Adjustment is an object we can use to simplify things when creating a new "
-"Scale. The Adjustment's \"value\" property is what the Scale's default value "
-"is, while \"upper\" and \"lower\" make the high and low ends of the "
-"numerical range. Meanwhile, the increment values show how much the slider "
-"moves when you do things like click on it."
+"Note that for an action that is relative to the application, we use the "
+"prefix <code>app.</code>; for actions that are relative to the window we use "
+"the prefix <code>win.</code>."
 msgstr ""
-"ÎÎÎ ÏÏÎÎÎÏÎ ÎÎÎÎÎ ÎÎÎ ÎÎÏÎÎÎÎÎÎÎÎ ÏÎÏ ÎÏÎÏÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÎÎ "
-"ÎÏÎÎÏÎÎÎÏÎ ÏÏÎ ÏÏÎÎÎÎÏÏÎ ÏÏÎÎ ÎÎÎÎÎÏÏÎÎÎÏÎ ÎÎÎ ÎÎÎ ÎÎÎÎÎÎÎ. Î ÎÎÎÏÏÎÏÎ ÏÎÏ "
-"ÏÏÎÎÎÏÎÏ \"value\" ÎÎÎÎÎ Î ÏÏÎÎÏÎÎÎÎÎÎÎÎ ÏÎÎÎ ÏÎÏ ÎÎÎÎÎÎÎÏ, ÎÎÏ \"upper\" "
-"ÎÎÎ \"lower\" ÎÎÎÎÏÎ ÏÎ ÏÎÎÏ ÎÎÎ ÎÎÏÏ ÎÎÏÎ ÏÎÏ ÎÏÎÎÎÎÏÎÎÎÏ ÏÎÏÎÎÏÎÏ. ÎÏÎ "
-"ÎÎÏÎÎÏ, ÎÎ ÏÎÎÎÏ ÎÏÎÎÏÎÏ ÎÎÏÎÎÎÎÎÏÎ ÏÏÏÎ ÎÎÏÎÎÎÎÎÎÏÎÎ Î ÎÎÎÏÎÎÏÎÏ ÏÏÎÎ "
-"ÎÎÎÎÏÎ ÏÏÎÎÎÎÏÎ ÏÏÏÏ ÏÎ ÏÎÏÎÎÎ ÏÎÎÏ ÏÎÏ."
+"ÎÎÎÎÎÏÏÏÎ ÏÏÎ ÎÎÎ ÎÎÎ ÎÎÎÏÎÎÎÎ ÏÎÏ ÎÎÎÎÎ ÏÏÎÏÎÎÎ ÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ, "
+"ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÏÎ ÏÏÏÎÎÎÎ <code>app.</code>Â ÎÎÎ ÎÎÎÏÎÎÎÎÏ ÏÎÏ ÎÎÎÎÎ "
+"ÏÏÎÏÎÎÎÏ ÎÎ ÏÎ ÏÎÏÎÎÏÏÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÏÎ ÏÏÏÎÎÎÎ <code>win.</code>."
 
-#: C/scale.js.page:116(p)
+#: C/menubar.py.page:113(section/p)
 msgid ""
-"Here we create a new Scale object using _adjustment as its \"adjustment\" "
-"property. This is a great shortcut. We still have to tell it to round off "
-"the decimal place, though. Note that the draw_value property is commented "
-"out; this is how you tell it not to show the number next to the Scale when "
-"you're creating one this way."
+"Finally, in the Python file, we add the action to the application or to the "
+"window - so for instance <code>app.new</code> will be added to the "
+"application in the method <code>do_startup(self)</code> as"
 msgstr ""
-"ÎÎÏ ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ ÎÎÎ ÎÎÏÎÎÎÎÎÎÎÎ ÎÎÎÎÎÎÎÏ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ _adjustment ÏÏ "
-"ÎÎÎÏÏÎÏÎ \"adjustment\". ÎÏÏÏ ÎÎÎÎÎ ÎÎÎ ÎÎÎÎÎÎ ÏÏÎÏÏÎÎÏÏÎ. ÎÏÎÏÎÎ ÎÎÏÎÎ ÎÎ "
-"ÏÎÏ ÏÎÏÎÎ ÎÎ ÏÏÏÎÎÎÏÎÎÏÎÎ ÏÎÏ ÎÎÎÎÎÎÎÎÏ ÎÎÏÎÎÏ, ÏÎÏÏ. ÎÎÎÎÎÏÏÏÎ ÏÏÎ Î "
-"ÎÎÎÏÏÎÏÎ draw_value ÎÎÎÎÎ ÏÏÎÎÎÎÏÎÎÎÎÂ ÎÏÏÎ ÏÎÏ ÎÎÏÎ ÎÎ ÎÎÎ ÎÎÏÎÎÎÏÎÎ ÏÎÎ "
-"ÎÏÎÎÎÏ ÎÎÏÎÎ ÏÏÎÎ ÎÎÎÎÎÎÎ ÏÏÎÎ ÎÎÎÎÎÏÏÎÎÎÏÎ ÎÎÎ ÎÎÎÎÎÎÎ ÎÎ ÎÏÏÏÎ ÏÎÎ ÏÏÏÏÎ."
+"ÎÎÎÎÎÎ, ÏÏÎ ÎÏÏÎÎÎ Python, ÏÏÎÏÎÎÏÎÏÎÎ ÏÎÎ ÎÎÎÏÎÎÎÎ ÏÏÎÎ ÎÏÎÏÎÎÎÎ Î ÏÏÎ "
+"ÏÎÏÎÎÏÏÎ - ÎÏÏÎ ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ <code>app.new</code> ÎÎ ÏÏÎÏÏÎÎÎÎ ÏÏÎÎ "
+"ÎÏÎÏÎÎÎÎ ÏÏÎ ÎÎÎÎÎÎ <code>do_startup(self)</code> ÏÏ"
 
-#: C/scale.js.page:132(p)
+#: C/menubar.py.page:114(section/code)
+#, no-wrap
 msgid ""
-"We can use the get_value method to find out the numerical value a Scale is "
-"set at. We can then do whatever we want with it, including multiply the two "
-"Scales' values together and have a <link xref=\"label.js\">Label</link> show "
-"us the product. We set the label's text to wrap around, because we're having "
-"it display a silly message too."
+"\n"
+"self.add_action(new_action)"
 msgstr ""
-"ÎÏÎÏÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÏÎ ÎÎÎÎÎÎ get_value ÎÎÎ ÎÎ ÎÏÎÏÎÎ ÏÎÎ "
-"ÎÏÎÎÎÎÏÎÎÎ ÏÎÎÎ ÎÏÎÏÎÎÏ ÎÎÎÏ ÎÎÎÎÎÎÎÏ. ÎÏÎÏÎÏÎÎ ÎÏÎÎÏÎ ÎÎ ÎÎÎÎÏÎÎ ÎÏÎÎÎÏÎÏÎ "
-"ÎÎÎÎÏÎÎ ÎÎÎÎ ÏÎÏ, ÏÏÎÏÎÏÎÎÎÎÎÎÎÎÎÏÎÏ ÏÎÎÎÎÏÎÎÏÎÎÏÎÏ ÏÏÎ ÏÎÎÏÎ ÏÏÎ ÎÏÎ "
-"ÎÎÎÎÎÎÏÎ ÎÎÎÎ ÎÎÎ ÎÎ ÎÏÎÏÎÎ ÎÎÎ <link xref=\"label.js\">ÎÏÎÎÎÏÎ</link> ÏÎÏ "
-"ÎÎÏ ÎÎÎÏÎÎÎ ÏÎ ÎÎÎÏÎÎÎÎ. ÎÏÎÎÎÏÎÎ ÏÎ ÎÎÎÎÎÎÎ ÏÎÏ ÎÏÎÎÎÏÎÏ ÎÎ ÎÎÎÎÎÏÎÏÎÎÏÎÎ, "
-"ÎÏÎÎÎÎ ÎÏÎÏÎÎ ÏÎÎ ÎÎÏÎÎÎÏÎ ÎÎÏÏ ÎÎÏÎÏÎÏ ÎÎÎÏÎÎÏÎÏ ÎÏÎÏÎÏ."
+"\n"
+"self.add_action(new_action)"
+
+#: C/menubar.py.page:119(section/title) C/menubar.vala.page:138(section/title)
+msgid "Actions: Application or Window?"
+msgstr "ÎÎÎÏÎÎÎÎÏ: ÎÏÎÏÎÎÎÎ Î ÏÎÏÎÎÏÏÎ;"
 
-#: C/scale.js.page:133(p)
+#: C/menubar.py.page:120(section/p) C/menubar.vala.page:139(section/p)
 msgid ""
-"After we create the Label, we connect the two Scales' \"value-changed\" "
-"signals to _recalc, a function that will recalculate the number of penguins "
-"on the iceberg and come up with a new message."
+"Above, we created the \"new\" and \"open\" actions as part of the "
+"MyApplication class. Actions which control the application itself, such as "
+"\"quit\" should be created similarly."
 msgstr ""
-"ÎÏÎÏ ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ ÏÎÎ ÎÏÎÎÎÏÎ, ÏÏÎÎÎÎÏÎÎ ÏÎ ÏÎÎÎÏÎ \"value-changed\" ÏÏÎ "
-"ÎÏÎ ÎÎÎÎÎÎÏÎ ÏÏÎ _recalc, ÎÎÎ ÏÏÎÎÏÏÎÏÎ ÏÎÏ ÎÎ ÎÎÎÎÏÏÎÎÎÎÎÏÎÎ ÏÎÎ ÎÏÎÎÎÏ ÏÏÎ "
-"ÏÎÎÎÎÏÎÎÏÎ ÏÏÎ ÏÎÎÏÎÎÏÎÎ ÎÎÎ ÎÎÎÎÎ ÎÎÎ ÎÎÎ ÎÎÎÏÎÎ."
+"ÎÎÎ ÏÎÎÏ, ÎÎÎÎÎÏÏÎÎÏÎÎÎ ÏÎÏ ÎÎÎÏÎÎÎÎÏ \"new\" ÎÎÎ \"open\" ÏÏ ÎÎÏÎÏ ÏÎÏ "
+"ÎÎÎÏÎÏ MyApplication. ÎÎ ÎÎÎÏÎÎÎÎÏ ÏÎÏ ÎÎÎÎÏÎÏÎ ÏÎÎ ÎÎÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ, ÏÏÏÏ "
+"\"quit\" ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎÎÎÏÎ ÏÎÏÏÎÎÎÎ."
 
-#: C/scale.js.page:148(p)
+#: C/menubar.py.page:122(section/p) C/menubar.vala.page:142(section/p)
 msgid ""
-"Here we create a <link xref=\"grid.js\">Grid</link> to put everything in, "
-"then attach all our widgets to it. Note that here and on some of the widgets "
-"themselves we're using margins to keep things neatly spaced."
+"Some actions, such as \"copy\" and \"paste\" deal with the window, not the "
+"application. Window actions should be created as part of the window class."
 msgstr ""
-"ÎÎÏ ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ <link xref=\"grid.js\">ÏÎÎÎÎÎ</link> ÎÎÎ ÎÎ ÏÎ ÎÎÎÎÏÎÎ "
-"ÏÎÎ ÎÎÏÎ, ÎÏÎÎÏÎ ÏÏÎÏÎÎÎÎÎÎÎ ÏÎÎ ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÏ. ÎÎÎÎÎÏÏÏÎ ÏÏÎ ÎÎÏ "
-"ÎÎÎ ÎÎÎ ÎÎÏÎÎÎ ÎÏÏ ÏÎ ÎÎÎÎ ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÏÎÏÎÎÏÏÎÎ ÎÎÎ "
-"ÎÎ ÎÏÎÏÎÏÎÏÎÎ ÏÎ ÏÏÎÎÎÎÏÎ ÏÎÏÎÎÎÏÎÎÎÎÎ ÎÎ ÏÎÎÎ."
+"ÎÎÏÎÎÎÏ ÎÎÎÏÎÎÎÎÏ, ÏÏÏÏ \"copy\" ÎÎÎ \"paste\" ÎÎÏÎÎÎÏÏÏÎÎÎÏÎ ÏÎ ÏÎÏÎÎÏÏÎ, "
+"ÏÏÎ ÏÎÎ ÎÏÎÏÎÎÎÎ. ÎÎ ÎÎÎÏÎÎÎÎÏ ÏÎÏÎÎÏÏÎÏ ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎÎÎÏÎ ÏÏ ÎÎÏÎÏ "
+"ÏÎÏ ÎÎÎÏÎÏ ÏÎÏÎÎÏÏÎÏ."
 
-#: C/scale.js.page:157(p)
+#: C/menubar.py.page:124(section/p)
+#, fuzzy
 msgid ""
-"Finally, we add the Grid to the window, then tell the window to show itself "
-"and all the widgets inside of it."
+"The complete example files contain both application actions and window "
+"actions. The window actions are the ones usually included in the <link xref="
+"\"gmenu.py\">application menu</link> also. It is not good practice to "
+"include window actions in the applcation menu. For demonstration purposes, "
+"the complete example files which follow include XML in the UI file which "
+"creates the application menu which includes a \"New\" and \"Open\" item, and "
+"these are hooked up to the same actions as the menubar items of the same "
+"name."
 msgstr ""
-"ÎÎÎÎÎÎ, ÏÏÎÏÎÎÏÎÏÎÎ ÏÎ ÏÎÎÎÎÎ ÏÏÎ ÏÎÏÎÎÏÏÎ, ÎÏÎÎÏÎ ÎÎÎÎ ÏÏÎ ÏÎÏÎÎÏÏÎ ÎÎ "
-"ÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÎÏÏÏÎ ÏÎÏ ÎÎÎ ÏÎÎ ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÏÎ ÏÎÏ."
+"ÎÎ ÏÎÎÏÎ ÎÏÏÎÎÎ ÏÎÏ ÏÎÏÎÎÎÎÎÎÎÏÎÏ ÏÎÏÎÎÏÎÏÎ ÎÎÏÏÏÎÏÎÏ ÏÎÏ ÎÎÎÏÎÎÎÎÏ "
+"ÎÏÎÏÎÎÎÎÏ ÎÎÎ ÏÎÏ ÎÏÎÏÎÎÎÎÏ ÏÎÏÎÎÏÏÎÏ. ÎÎ ÎÎÎÏÎÎÎÎÏ ÏÎÏÎÎÏÏÎÏ ÎÎÎÎÎ ÎÏÏÎÏ "
+"ÏÎÏ ÏÏÎÎÎÏÏ ÏÏÎÏÎÏÎÎÎÎÎÎÎÎÎÏÎÎ ÏÏÎ <link xref=\"gmenu.py\">ÎÎÎÎÏ ÎÏÎÏÎÎÎÎÏ</"
+"link> ÎÏÎÏÎÏ. ÎÎÎ ÎÎÎÎÎ ÎÎÎÎ ÏÏÎÎÏÎÎÎ ÎÎ ÏÏÎÏÎÏÎÎÎÎÎÎÎÎÏÎ ÎÎÎÏÎÎÎÎÏ "
+"ÏÎÏÎÎÏÏÎÏ ÏÏÎ ÎÎÎÎÏ ÏÎÏ ÎÏÎÏÎÎÎÎÏ. ÎÎÎ ÏÎÎÏÎÏÏ ÎÏÎÎÎÎÎÎÏ, ÏÎ ÏÎÎÏÎ ÎÏÏÎÎÎ "
+"ÏÎÏ ÏÎÏÎÎÎÎÎÎÎÏÎÏ ÏÎÏ ÎÎÎÎÎÏÎÎÎ ÏÎÏÎÎÏÎÏÎ XML ÏÏÎ ÎÏÏÎÎÎ UI ÏÎÏ ÎÎÎÎÎÏÏÎÎÎ "
+"ÏÎ ÎÎÎÎÏ ÎÏÎÏÎÎÎÎÏ ÏÎÏ ÏÎÏÎÎÎÎÎÎÎÎÎ ÏÎ ÏÏÎÎÏÎÎÎ \"New\" ÎÎÎ \"Open\" ÎÎÎ "
+"ÎÏÏÎ ÏÏÎÎÎÎÎÏÎÎ ÎÎ ÏÎÏ ÎÎÎÎÏ ÎÎÎÏÎÎÎÎÏ ÏÏÏÏ ÏÎ ÏÏÎÎÏÎÎÎ ÏÎÏ ÎÏÎÎÎÎÏ ÎÎÎÎÏ "
+"ÏÎÏ ÎÎÎÎÏ ÎÎÏÎÎÏÎÏ."
 
-#: C/scale.js.page:161(title)
-msgid "Function which handles the scales' values changing"
-msgstr "Î ÏÏÎÎÏÏÎÏÎ ÏÎÏ ÏÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÎÎÎÎÎ ÏÏÎ ÏÎÎÏÎ ÏÏÎ ÎÎÎÎÎÎÏÎ"
+#: C/menubar.py.page:128(section/title) C/menubar.vala.page:132(section/title)
+msgid "Choices submenu and items with state"
+msgstr "ÎÏÎÎÎÎÎÏ ÏÏÎÎÎÎÎÏ ÎÎÎ ÏÏÎÎÏÎÎÏÎ ÎÎ ÎÎÏÎÏÏÎÏÎ"
 
-#: C/scale.js.page:191(p)
+#: C/menubar.py.page:130(section/p)
 msgid ""
-"Remember, we can get a Scale's value using its get_value method. Here we "
-"simply recalculate what the product of the two values is after one of the "
-"Scales is moved, add in a silly message depending on how many penguins are "
-"left, and change the wording on _label to show the new number and message."
+"Lines 30 to 80 inclusive of the <link xref=\"menubar.py#xml-code\"/> "
+"demonstrate the XML code used to create the UI for <gui>Choices</gui> menu."
 msgstr ""
-"ÎÎ ÎÏÎÎÏÏÎ, ÎÏÎÏÎÏÎÎ ÎÎ ÏÎÏÎÏÎÎ ÎÎÎ ÏÎÎÎ ÎÎÎÎÎÎÎÏ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ ÎÎÎÎÎÎ "
-"ÏÎÏ get_value. ÎÎÏ ÎÏÎÎ ÎÎÎÎÏÏÎÎÎÎÎÎÎÏÎÎ ÏÎÎÎ ÎÎÎÎÎ ÏÎ ÎÎÎÏÎÎÎÎ ÏÏÎ ÎÏÎ "
-"ÏÎÎÏÎ ÎÎÏÎ ÏÎ ÎÎÏÎÎÎÎÎÏÎ ÎÎÎÏ ÎÏÏ ÏÎÏ ÎÎÎÎÎÎÎÏ, ÏÏÎÏÎÎÏÎÏÎÎ ÎÎÎ ÎÎÏÎÏÎ "
-"ÎÎÎÏÎÎ ÎÎÎÎÎÎÎ ÎÎ ÏÎ ÏÏÏÎÎ ÏÎÎÎÎÏÎÎÎÎ ÎÏÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎÎÎÎÏÎÎ ÏÎ ÎÎÎÏÏÏÏÏÎ "
-"ÏÏÎÎ _label ÎÎÎ ÎÎ ÎÎÎÎÎÏÎÎ ÏÎ ÎÎÎ ÎÏÎÎÎÏ ÎÎÎ ÏÎ ÎÎÎÏÎÎ."
+"ÎÎ ÎÏÎÎÎÎÏ 30 ÎÏÏ 80 ÏÏÎÏÎÏÎÎÎÎÎÎÎÏÎÎÎÎÏ ÏÎÏ ÎÎÏÎÎÎÏÎÏ <link xref=\"menubar."
+"py#xml-code\"/> ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎÎÎÏ ÎÏÎÎÎÎ XML ÎÎÎ ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ UI ÎÎÎ "
+"ÏÎ ÎÎÎÎÏ <gui>ÎÏÎÎÎÎÎÏ</gui>."
 
-#: C/scale.js.page:198(p)
+#: C/menubar.py.page:132(section/p)
 msgid ""
-"Finally, we create a new instance of the finished ScaleExample class, and "
-"set the application running."
+"The actions created so far are <em>stateless</em>, that is they do not "
+"retain or depend on a state given by the action itself. The actions we need "
+"to create for the Choices submenu, on the other hand, are <em>stateful</em>. "
+"An example of creation of a stateful action is:"
 msgstr ""
-"ÎÎÎÎÎÎ, ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ ÎÎÎ ÏÏÎÎÎÎÏÏÏÏÎ ÏÎÏ ÎÎÎÎÎÎÏÏÎÎÎÎÏ ÎÎÎÏÎÏ "
-"ScaleExample ÎÎÎ ÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ."
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/scale.c.page:24(None)
-msgid "@@image: 'media/scale2.png'; md5=ae2ba0a6675f3d9cdcd961cdf32f1a5c"
-msgstr "@@image: 'media/scale2.png'Â md5=ae2ba0a6675f3d9cdcd961cdf32f1a5c"
-
-#: C/scale.c.page:7(title)
-msgid "Scale (C)"
-msgstr "ÎÎÎÎÎÎÎ (C)"
-
-#: C/scale.c.page:36(link)
-msgid "GtkRange"
-msgstr "GtkRange"
+"ÎÎ ÎÎÎÎÎÏÏÎÎÎÎÎÎÏ ÎÎÎÏÎÎÎÎÏ ÎÎÏÏÎ ÎÎÏ ÎÎÎÎÎ <em>ÏÏÏÎÏ ÎÎÏÎÏÏÎÏÎ</em>, ÎÎÎÎÎÎ "
+"ÎÎÎ ÎÏÎÏÎÏÎ Î ÎÎÎÏÏÏÎÏÎÎ ÎÏÏ ÎÎÎ ÎÎÎÎÎÎÎÎ ÎÎÏÎÏÏÎÏÎ ÎÏÏ ÏÎÎ ÎÎÎÎ ÏÎÎ "
+"ÎÎÎÏÎÎÎÎ. ÎÎ ÎÎÎÏÎÎÎÎÏ ÏÎÏ ÏÏÎÎÎÎÏÎÎÏÏÎ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ ÎÎÎ ÏÎ ÏÏÎÎÎÎÎÏ "
+"ÎÏÎÎÎÎÏÎ, ÎÏÏ ÏÎÎ ÎÎÎÎ ÎÎÏÎÎ, ÎÎÎÎÎ <em>ÎÎ ÎÎÏÎÏÏÎÏÎ</em>. ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ "
+"ÎÎÎÎÎÏÏÎÎÎÏ ÎÎÎÏ ÎÎÎÏÎÎÎÎÏ ÎÎ ÎÎÏÎÏÏÎÏÎ ÎÎÎÎÎ:"
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/record-collection.js.page:64(None)
+#: C/menubar.py.page:133(section/code)
+#, no-wrap
 msgid ""
-"@@image: 'media/record-collection.png'; md5=2d645997687ed5aacd36aafafc16e072"
+"\n"
+"shape_action = Gio.SimpleAction.new_stateful(\"shape\", GLib.VariantType.new('s'), GLib.Variant.new_string('line'))"
 msgstr ""
-"@@image: 'media/record-collection.png'Â md5=2d645997687ed5aacd36aafafc16e072"
-
-#: C/record-collection.js.page:7(title)
-msgid "Record Collection (JavaScript)"
-msgstr "ÎÏÎÎÎÎÎ ÎÎÎÏÎÏÏÎ (JavaScript)"
+"\n"
+"shape_action = Gio.SimpleAction.new_stateful(\"shape\", GLib.VariantType.new('s'), GLib.Variant.new_string('line'))"
 
-#: C/record-collection.js.page:10(desc)
-msgid "Create a small database application for ordering your music collection"
+#: C/menubar.py.page:136(section/p)
+msgid ""
+"where the variables of the method are: name, parameter type (in this case, a "
+"string - see <link href=\"http://developer.gnome.org/glib/unstable/glib-";
+"GVariantType.html\">here</link> for a complete list of character meanings), "
+"initial state (in this case, 'line' - in case of a <code>True</code> boolean "
+"value it should be <code>Glib.Variant.new_boolean(True)</code>, and so on, "
+"see <link href=\"http://developer.gnome.org/glib/unstable/glib-GVariant.html";
+"\">here</link> for a complete list)"
 msgstr ""
-"ÎÎÎÎÎÏÏÎÎÎ ÎÎÎÏ ÎÎÎÏÎÏ ÎÏÎÏÎÎÎÎÏ ÎÎÏÎÏ ÎÎÎÎÎÎÎÏÎ ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ ÏÎÏ ÎÎÏÏÎÎÎÏ "
-"ÏÎÏ ÏÏÎÎÎÎÎÏ"
-
-#: C/record-collection.js.page:14(name) C/image-viewer.vala.page:14(name)
-#: C/image-viewer.cpp.page:12(name) C/image-viewer.c.page:14(name)
-#: C/guitar-tuner.vala.page:13(name) C/guitar-tuner.py.page:14(name)
-#: C/guitar-tuner.cpp.page:12(name) C/guitar-tuner.c.page:14(name)
-#: C/getting-ready.page:11(name) C/audio-player.vala.page:13(name)
-msgid "GNOME Documentation Project"
-msgstr "ÎÏÎÎ ÏÎÎÎÎÏÎÏÏÎÏ GNOME"
-
-#: C/record-collection.js.page:15(email) C/index.page:8(email)
-#: C/image-viewer.vala.page:15(email) C/image-viewer.cpp.page:13(email)
-#: C/image-viewer.c.page:15(email) C/guitar-tuner.vala.page:14(email)
-#: C/guitar-tuner.py.page:15(email) C/guitar-tuner.cpp.page:13(email)
-#: C/guitar-tuner.c.page:15(email) C/getting-ready.page:12(email)
-#: C/audio-player.vala.page:14(email)
-msgid "gnome-doc-list gnome org"
-msgstr "gnome-doc-list gnome org"
-
-#: C/record-collection.js.page:18(name) C/photo-wall.c.page:17(name)
-#: C/magic-mirror.vala.page:18(name) C/index.page:17(name)
-#: C/image-viewer.vala.page:18(name) C/image-viewer.py.page:18(name)
-#: C/image-viewer.js.page:18(name) C/image-viewer.cpp.page:16(name)
-#: C/image-viewer.c.page:18(name) C/guitar-tuner.vala.page:17(name)
-#: C/guitar-tuner.py.page:18(name) C/guitar-tuner.cpp.page:16(name)
-#: C/guitar-tuner.c.page:18(name)
-msgid "Johannes Schmid"
-msgstr "Johannes Schmid"
-
-#: C/record-collection.js.page:19(email) C/photo-wall.c.page:18(email)
-#: C/magic-mirror.vala.page:19(email) C/index.page:18(email)
-#: C/image-viewer.vala.page:19(email) C/image-viewer.py.page:19(email)
-#: C/image-viewer.js.page:19(email) C/image-viewer.cpp.page:17(email)
-#: C/image-viewer.c.page:19(email) C/guitar-tuner.vala.page:18(email)
-#: C/guitar-tuner.py.page:19(email) C/guitar-tuner.cpp.page:17(email)
-#: C/guitar-tuner.c.page:19(email)
-msgid "jhs gnome org"
-msgstr "jhs gnome org"
-
-#: C/record-collection.js.page:23(title)
-msgid "3 Record Collection"
-msgstr "3 ÏÏÎÎÎÎÎ ÎÎÎÏÎÏÏÎ"
-
-#: C/record-collection.js.page:26(p) C/message-board.c.page:24(p)
-#: C/image-viewer.cpp.page:24(p) C/image-viewer.c.page:26(p)
-msgid "In this tutorial, you will learn:"
-msgstr "ÎÎ ÎÏÏÏ ÏÎ ÎÎÎÎÎÎ, ÎÎ ÎÎÎÎÏÎ:"
+"ÏÏÎÏ ÎÎ ÎÎÏÎÎÎÎÏÎÏ ÏÎÏ ÎÎÎÏÎÎÏ ÎÎÎÎÎ: ÏÎÎÎÎ, ÏÏÏÎÏ ÏÎÏÎÎÎÏÏÎÏ (ÏÎ ÎÏÏÎÎ ÏÎÎ "
+"ÏÎÏÎÏÏÏÏÎ, ÎÎÎ ÏÏÎÎÎÎÎÏÎÎÏÎ - ÎÎÎÏÎ <link href=\"http://developer.gnome.org/";
+"glib/unstable/glib-GVariantType.html\">ÎÎÏ</link> ÎÎÎ ÎÎÎ ÏÎÎÏÎ ÎÎÏÏÎ "
+"ÏÎÎÎÏÎÏÎ ÏÎÏÎÎÏÎÏÎ), ÎÏÏÎÎÎÏ ÎÎÏÎÏÏÎÏÎÏ (ÏÎ ÎÏÏÎÎ ÏÎÎ ÏÎÏÎÏÏÏÏÎ, 'line' - ÏÎ "
+"ÏÎÏÎÏÏÏÏÎ ÎÎÎÏ <code>True</code> ÏÎÎÎÏ ÎÏÎÏÎ ÎÎ ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎ <code>Glib."
+"Variant.new_boolean(True)</code>, Î.Î.Î, ÎÎÎÏÎ <link href=\"http://developer.";
+"gnome.org/glib/unstable/glib-GVariant.html\">ÎÎÏ</link> ÎÎÎ ÎÎÎ ÏÎÎÏÎ ÎÎÏÏÎ)"
 
-#: C/record-collection.js.page:28(p)
-msgid "How to connect to a database using libgda"
-msgstr "ÎÏÏ ÎÎ ÏÏÎÎÎÎÎÎÏÎ ÎÎ ÎÎÎ ÎÎÏÎ ÎÎÎÎÎÎÎÏÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ libgda"
+#: C/menubar.py.page:138(section/p)
+msgid ""
+"After creating the stateful SimpleAction we connect it to the callback "
+"function and we add it to the window (or the application, if it is the "
+"case), as before:"
+msgstr ""
+"ÎÎÏÎ ÏÎ ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ SimpleAction ÎÎ ÎÎÏÎÏÏÎÏÎ ÏÎ ÏÏÎÎÎÎÏÎÎ ÏÏÎ ÏÏÎÎÏÏÎÏÎ "
+"ÎÏÎÎÎÎÎÎÏÎÏ ÎÎÎ ÏÎÎ ÏÏÎÏÎÎÏÎÏÎÎ ÏÏÎ ÏÎÏÎÎÏÏÎ (Î ÏÎÎ ÎÏÎÏÎÎÎÎ, ÎÎÎ ÎÎÎÎÎ Î "
+"ÏÎÏÎÏÏÏÏÎ), ÏÏÏÏ ÏÏÎÎ:"
 
-#: C/record-collection.js.page:29(p)
-msgid "How to insert and browse records in a database table"
+#: C/menubar.py.page:140(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"shape_action.connect(\"activate\", self.shape_callback)\n"
+"self.add_action(shape_action)"
 msgstr ""
-"ÎÏÏ ÎÎ ÎÎÏÎÎÎÏÎ ÎÎÎ ÎÎ ÏÎÏÎÎÎÎÎÎÎÏÎ ÏÎ ÎÎÎÏÎÏÎÏ ÏÏÎÎ ÏÎÎÎÎÎ ÎÎÏÎÏ ÎÎÎÎÎÎÎÏÎ"
+"\n"
+"shape_action.connect(\"activate\", self.shape_callback)\n"
+"self.add_action(shape_action)"
 
-#: C/record-collection.js.page:34(title) C/photo-wall.c.page:36(title)
-msgid "Introduction"
-msgstr "ÎÎÏÎÎÏÎÎ"
+#: C/menubar.py.page:147(section/title) C/menubar.vala.page:153(section/title)
+msgid "Complete XML UI file for this example"
+msgstr "ÎÎÎÏÎÏ ÎÏÏÎÎÎ UI XML ÎÎÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ"
 
-#: C/record-collection.js.page:35(p)
+#: C/menubar.py.page:148(section/code) C/menubar.vala.page:154(section/code)
+#, no-wrap
 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 ""
-"ÎÏÏÎ Î ÏÎÏÎÏÏÎÎÏÎ ÏÏÎÏÎÎÎÏÎÎÎÎ ÏÎ ÎÎÏÏÏÎ Javascript. ÎÏÏÎÎÎÏÎÎ ÎÎ "
-"ÏÎÏÎÏÏÎÎÏÎÏÎÎ ÏÏÏ ÎÎ ÏÏÎÎÎÎÎÎÏÎ ÎÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÎÎÎ ÎÎÏÎ ÎÎÎÎÎÎÎÏÎ "
-"ÎÏÏ ÎÎÎ ÏÏÏÎÏÎÎÎÎ GTK ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ ÎÎÎÎÎÎÎÎÎÎ GDA (ÏÏÏÏÎÎÏÎ ÎÎÎÎÎÎÎÏÎ "
-"GNOME). ÎÏÏÎ ÏÏÎÎÎÎÏÏÎÏÏÎ ÎÏÎÏÎÏ ÎÏÏÎ ÏÎ ÎÎÎÎÎÎÎÎÎÎ ÎÎÎÎÏÎÏÏÎÎÎÎÎ."
+"&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n"
+"&lt;interface&gt;\n"
+"  &lt;menu id=\"menubar\"&gt;\n"
+"    &lt;submenu&gt;\n"
+"      &lt;attribute name=\"label\"&gt;File&lt;/attribute&gt;\n"
+"      &lt;section&gt;\n"
+"        &lt;item&gt;\n"
+"          &lt;attribute name=\"label\"&gt;New&lt;/attribute&gt;\n"
+"          &lt;attribute name=\"action\"&gt;app.new&lt;/attribute&gt;\n"
+"        &lt;/item&gt;\n"
+"        &lt;item&gt;\n"
+"          &lt;attribute name=\"label\"&gt;Quit&lt;/attribute&gt;\n"
+"          &lt;attribute name=\"action\"&gt;app.quit&lt;/attribute&gt;\n"
+"        &lt;/item&gt;\n"
+"      &lt;/section&gt;\n"
+"    &lt;/submenu&gt;\n"
+"    &lt;submenu&gt;\n"
+"      &lt;attribute name=\"label\"&gt;Edit&lt;/attribute&gt;\n"
+"      &lt;section&gt;\n"
+"        &lt;item&gt;\n"
+"          &lt;attribute name=\"label\"&gt;Copy&lt;/attribute&gt;\n"
+"          &lt;attribute name=\"action\"&gt;win.copy&lt;/attribute&gt;\n"
+"        &lt;/item&gt;\n"
+"        &lt;item&gt;\n"
+"          &lt;attribute name=\"label\"&gt;Paste&lt;/attribute&gt;\n"
+"          &lt;attribute name=\"action\"&gt;win.paste&lt;/attribute&gt;\n"
+"        &lt;/item&gt;\n"
+"      &lt;/section&gt;\n"
+"    &lt;/submenu&gt;\n"
+"    &lt;submenu&gt;\n"
+"      &lt;attribute name=\"label\"&gt;Choices&lt;/attribute&gt;\n"
+"      &lt;submenu&gt;\n"
+"        &lt;attribute name=\"label\"&gt;Shapes&lt;/attribute&gt;\n"
+"          &lt;section&gt;\n"
+"            &lt;item&gt;\n"
+"              &lt;attribute name=\"label\"&gt;Line&lt;/attribute&gt;\n"
+"              &lt;attribute name=\"action\"&gt;win.shape&lt;/attribute&gt;\n"
+"              &lt;attribute name=\"target\"&gt;line&lt;/attribute&gt;\n"
+"            &lt;/item&gt;\n"
+"            &lt;item&gt;\n"
+"              &lt;attribute name=\"label\"&gt;Triangle&lt;/attribute&gt;\n"
+"              &lt;attribute name=\"action\"&gt;win.shape&lt;/attribute&gt;\n"
+"              &lt;attribute name=\"target\"&gt;triangle&lt;/attribute&gt;\n"
+"            &lt;/item&gt;\n"
+"            &lt;item&gt;\n"
+"              &lt;attribute name=\"label\"&gt;Square&lt;/attribute&gt;\n"
+"              &lt;attribute name=\"action\"&gt;win.shape&lt;/attribute&gt;\n"
+"              &lt;attribute name=\"target\"&gt;square&lt;/attribute&gt;\n"
+"            &lt;/item&gt;\n"
+"            &lt;item&gt;\n"
+"              &lt;attribute name=\"label\"&gt;Polygon&lt;/attribute&gt;\n"
+"              &lt;attribute name=\"action\"&gt;win.shape&lt;/attribute&gt;\n"
+"              &lt;attribute name=\"target\"&gt;polygon&lt;/attribute&gt;\n"
+"            &lt;/item&gt;\n"
+"            &lt;item&gt;\n"
+"              &lt;attribute name=\"label\"&gt;Circle&lt;/attribute&gt;\n"
+"              &lt;attribute name=\"action\"&gt;win.shape&lt;/attribute&gt;\n"
+"              &lt;attribute name=\"target\"&gt;circle&lt;/attribute&gt;\n"
+"            &lt;/item&gt;\n"
+"          &lt;/section&gt;\n"
+"      &lt;/submenu&gt;\n"
+"      &lt;section&gt;\n"
+"        &lt;item&gt;\n"
+"          &lt;attribute name=\"label\"&gt;On&lt;/attribute&gt;\n"
+"          &lt;attribute name=\"action\"&gt;app.state&lt;/attribute&gt;\n"
+"          &lt;attribute name=\"target\"&gt;on&lt;/attribute&gt;\n"
+"        &lt;/item&gt;\n"
+"        &lt;item&gt;\n"
+"          &lt;attribute name=\"label\"&gt;Off&lt;/attribute&gt;\n"
+"          &lt;attribute name=\"action\"&gt;app.state&lt;/attribute&gt;\n"
+"          &lt;attribute name=\"target\"&gt;off&lt;/attribute&gt;\n"
+"        &lt;/item&gt;\n"
+"      &lt;/section&gt;\n"
+"      &lt;section&gt;\n"
+"        &lt;item&gt;\n"
+"          &lt;attribute name=\"label\"&gt;Awesome&lt;/attribute&gt;\n"
+"          &lt;attribute name=\"action\"&gt;app.awesome&lt;/attribute&gt;\n"
+"        &lt;/item&gt;\n"
+"      &lt;/section&gt;\n"
+"    &lt;/submenu&gt;\n"
+"    &lt;submenu&gt;\n"
+"      &lt;attribute name=\"label\"&gt;Help&lt;/attribute&gt;\n"
+"      &lt;section&gt;\n"
+"        &lt;item&gt;\n"
+"          &lt;attribute name=\"label\"&gt;About&lt;/attribute&gt;\n"
+"          &lt;attribute name=\"action\"&gt;win.about&lt;/attribute&gt;\n"
+"        &lt;/item&gt;\n"
+"      &lt;/section&gt;\n"
+"    &lt;/submenu&gt;\n"
+"  &lt;/menu&gt;\n"
+"  &lt;menu id=\"appmenu\"&gt;\n"
+"    &lt;section&gt;\n"
+"      &lt;item&gt;\n"
+"        &lt;attribute name=\"label\"&gt;New&lt;/attribute&gt;\n"
+"        &lt;attribute name=\"action\"&gt;app.new&lt;/attribute&gt;\n"
+"      &lt;/item&gt;\n"
+"      &lt;item&gt;\n"
+"        &lt;attribute name=\"label\"&gt;Quit&lt;/attribute&gt;\n"
+"        &lt;attribute name=\"action\"&gt;app.quit&lt;/attribute&gt;\n"
+"      &lt;/item&gt;\n"
+"    &lt;/section&gt;\n"
+"  &lt;/menu&gt;\n"
+"&lt;/interface&gt;\n"
+msgstr ""
+"&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n"
+"&lt;interface&gt;\n"
+"  &lt;menu id=\"menubar\"&gt;\n"
+"    &lt;submenu&gt;\n"
+"      &lt;attribute name=\"label\"&gt;File&lt;/attribute&gt;\n"
+"      &lt;section&gt;\n"
+"        &lt;item&gt;\n"
+"          &lt;attribute name=\"label\"&gt;New&lt;/attribute&gt;\n"
+"          &lt;attribute name=\"action\"&gt;app.new&lt;/attribute&gt;\n"
+"        &lt;/item&gt;\n"
+"        &lt;item&gt;\n"
+"          &lt;attribute name=\"label\"&gt;Quit&lt;/attribute&gt;\n"
+"          &lt;attribute name=\"action\"&gt;app.quit&lt;/attribute&gt;\n"
+"        &lt;/item&gt;\n"
+"      &lt;/section&gt;\n"
+"    &lt;/submenu&gt;\n"
+"    &lt;submenu&gt;\n"
+"      &lt;attribute name=\"label\"&gt;Edit&lt;/attribute&gt;\n"
+"      &lt;section&gt;\n"
+"        &lt;item&gt;\n"
+"          &lt;attribute name=\"label\"&gt;Copy&lt;/attribute&gt;\n"
+"          &lt;attribute name=\"action\"&gt;win.copy&lt;/attribute&gt;\n"
+"        &lt;/item&gt;\n"
+"        &lt;item&gt;\n"
+"          &lt;attribute name=\"label\"&gt;Paste&lt;/attribute&gt;\n"
+"          &lt;attribute name=\"action\"&gt;win.paste&lt;/attribute&gt;\n"
+"        &lt;/item&gt;\n"
+"      &lt;/section&gt;\n"
+"    &lt;/submenu&gt;\n"
+"    &lt;submenu&gt;\n"
+"      &lt;attribute name=\"label\"&gt;Choices&lt;/attribute&gt;\n"
+"      &lt;submenu&gt;\n"
+"        &lt;attribute name=\"label\"&gt;Shapes&lt;/attribute&gt;\n"
+"          &lt;section&gt;\n"
+"            &lt;item&gt;\n"
+"              &lt;attribute name=\"label\"&gt;Line&lt;/attribute&gt;\n"
+"              &lt;attribute name=\"action\"&gt;win.shape&lt;/attribute&gt;\n"
+"              &lt;attribute name=\"target\"&gt;line&lt;/attribute&gt;\n"
+"            &lt;/item&gt;\n"
+"            &lt;item&gt;\n"
+"              &lt;attribute name=\"label\"&gt;Triangle&lt;/attribute&gt;\n"
+"              &lt;attribute name=\"action\"&gt;win.shape&lt;/attribute&gt;\n"
+"              &lt;attribute name=\"target\"&gt;triangle&lt;/attribute&gt;\n"
+"            &lt;/item&gt;\n"
+"            &lt;item&gt;\n"
+"              &lt;attribute name=\"label\"&gt;Square&lt;/attribute&gt;\n"
+"              &lt;attribute name=\"action\"&gt;win.shape&lt;/attribute&gt;\n"
+"              &lt;attribute name=\"target\"&gt;square&lt;/attribute&gt;\n"
+"            &lt;/item&gt;\n"
+"            &lt;item&gt;\n"
+"              &lt;attribute name=\"label\"&gt;Polygon&lt;/attribute&gt;\n"
+"              &lt;attribute name=\"action\"&gt;win.shape&lt;/attribute&gt;\n"
+"              &lt;attribute name=\"target\"&gt;polygon&lt;/attribute&gt;\n"
+"            &lt;/item&gt;\n"
+"            &lt;item&gt;\n"
+"              &lt;attribute name=\"label\"&gt;Circle&lt;/attribute&gt;\n"
+"              &lt;attribute name=\"action\"&gt;win.shape&lt;/attribute&gt;\n"
+"              &lt;attribute name=\"target\"&gt;circle&lt;/attribute&gt;\n"
+"            &lt;/item&gt;\n"
+"          &lt;/section&gt;\n"
+"      &lt;/submenu&gt;\n"
+"      &lt;section&gt;\n"
+"        &lt;item&gt;\n"
+"          &lt;attribute name=\"label\"&gt;On&lt;/attribute&gt;\n"
+"          &lt;attribute name=\"action\"&gt;app.state&lt;/attribute&gt;\n"
+"          &lt;attribute name=\"target\"&gt;on&lt;/attribute&gt;\n"
+"        &lt;/item&gt;\n"
+"        &lt;item&gt;\n"
+"          &lt;attribute name=\"label\"&gt;Off&lt;/attribute&gt;\n"
+"          &lt;attribute name=\"action\"&gt;app.state&lt;/attribute&gt;\n"
+"          &lt;attribute name=\"target\"&gt;off&lt;/attribute&gt;\n"
+"        &lt;/item&gt;\n"
+"      &lt;/section&gt;\n"
+"      &lt;section&gt;\n"
+"        &lt;item&gt;\n"
+"          &lt;attribute name=\"label\"&gt;Awesome&lt;/attribute&gt;\n"
+"          &lt;attribute name=\"action\"&gt;app.awesome&lt;/attribute&gt;\n"
+"        &lt;/item&gt;\n"
+"      &lt;/section&gt;\n"
+"    &lt;/submenu&gt;\n"
+"    &lt;submenu&gt;\n"
+"      &lt;attribute name=\"label\"&gt;Help&lt;/attribute&gt;\n"
+"      &lt;section&gt;\n"
+"        &lt;item&gt;\n"
+"          &lt;attribute name=\"label\"&gt;About&lt;/attribute&gt;\n"
+"          &lt;attribute name=\"action\"&gt;win.about&lt;/attribute&gt;\n"
+"        &lt;/item&gt;\n"
+"      &lt;/section&gt;\n"
+"    &lt;/submenu&gt;\n"
+"  &lt;/menu&gt;\n"
+"  &lt;menu id=\"appmenu\"&gt;\n"
+"    &lt;section&gt;\n"
+"      &lt;item&gt;\n"
+"        &lt;attribute name=\"label\"&gt;New&lt;/attribute&gt;\n"
+"        &lt;attribute name=\"action\"&gt;app.new&lt;/attribute&gt;\n"
+"      &lt;/item&gt;\n"
+"      &lt;item&gt;\n"
+"        &lt;attribute name=\"label\"&gt;Quit&lt;/attribute&gt;\n"
+"        &lt;attribute name=\"action\"&gt;app.quit&lt;/attribute&gt;\n"
+"      &lt;/item&gt;\n"
+"    &lt;/section&gt;\n"
+"  &lt;/menu&gt;\n"
+"&lt;/interface&gt;\n"
+
+#: C/menubar.py.page:152(section/title)
+msgid "Complete Python file for this example"
+msgstr "ÎÎ ÏÎÎÏÎÏ ÎÏÏÎÎÎ Python ÎÎÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ"
 
-#: C/record-collection.js.page:38(p)
+#: C/menubar.py.page:153(section/code)
+#, no-wrap
 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>."
+"from gi.repository import Gtk\n"
+"from gi.repository import GLib\n"
+"from gi.repository import Gio\n"
+"import sys\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"MenuBar Example\", application=app)\n"
+"        self.set_default_size(200, 200)\n"
+"\n"
+"        # action without a state created (name, parameter type)\n"
+"        copy_action = Gio.SimpleAction.new(\"copy\", None)\n"
+"        # connected with the callback function\n"
+"        copy_action.connect(\"activate\", self.copy_callback)\n"
+"        # added to the window\n"
+"        self.add_action(copy_action)\n"
+"\n"
+"        # action without a state created (name, parameter type)\n"
+"        paste_action = Gio.SimpleAction.new(\"paste\", None)\n"
+"        # connected with the callback function\n"
+"        paste_action.connect(\"activate\", self.paste_callback)\n"
+"        # added to the window\n"
+"        self.add_action(paste_action)\n"
+"\n"
+"        # action with a state created (name, parameter type, initial state)\n"
+"        shape_action = Gio.SimpleAction.new_stateful(\"shape\", GLib.VariantType.new('s'), GLib.Variant.new_string('line'))\n"
+"        # connected to the callback function\n"
+"        shape_action.connect(\"activate\", self.shape_callback)\n"
+"        # added to the window\n"
+"        self.add_action(shape_action)\n"
+"\n"
+"        # action with a state created\n"
+"        about_action = Gio.SimpleAction.new(\"about\", None)\n"
+"        # action connected to the callback function\n"
+"        about_action.connect(\"activate\", self.about_callback)\n"
+"        # action added to the application\n"
+"        self.add_action(about_action)\n"
+"\n"
+"    # callback function for copy_action\n"
+"    def copy_callback(self, action, parameter):\n"
+"        print \"\\\"Copy\\\" activated\"\n"
+"\n"
+"    # callback function for paste_action\n"
+"    def paste_callback(self, action, parameter):\n"
+"        print \"\\\"Paste\\\" activated\"\n"
+"\n"
+"    # callback function for shape_action\n"
+"    def shape_callback(self, action, parameter):\n"
+"\t\tprint \"Shape is set to\", parameter.get_string()\n"
+"\t\t# Note that we set the state of the action!\n"
+"\t\taction.set_state(parameter)\n"
+"\n"
+"    # callback function for about (see the AboutDialog example)\n"
+"    def about_callback(self, action, parameter):\n"
+"        # a  Gtk.AboutDialog\n"
+"        aboutdialog = Gtk.AboutDialog()\n"
+"\n"
+"        # lists of authors and documenters (will be used later)\n"
+"        authors = [\"GNOME Documentation Team\"]\n"
+"        documenters = [\"GNOME Documentation Team\"]\n"
+"\n"
+"        # we fill in the aboutdialog\n"
+"        aboutdialog.set_program_name(\"MenuBar Example\")\n"
+"        aboutdialog.set_copyright(\"Copyright \\xc2\\xa9 2012 GNOME Documentation Team\")\n"
+"        aboutdialog.set_authors(authors)\n"
+"        aboutdialog.set_documenters(documenters)\n"
+"        aboutdialog.set_website(\"http://developer.gnome.org\";)\n"
+"        aboutdialog.set_website_label(\"GNOME Developer Website\")\n"
+"\n"
+"        # to close the aboutdialog when \"close\" is clicked we connect the\n"
+"        # \"response\" signal to on_close\n"
+"        aboutdialog.connect(\"response\", self.on_close)\n"
+"        # show the aboutdialog\n"
+"        aboutdialog.show()\n"
+"\n"
+"    # a callback function to destroy the aboutdialog\n"
+"    def on_close(self, action, parameter):\n"
+"        action.destroy()\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        # FIRST THING TO DO: do_startup()\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"        # action without a state created\n"
+"        new_action = Gio.SimpleAction.new(\"new\", None)\n"
+"        # action connected to the callback function\n"
+"        new_action.connect(\"activate\", self.new_callback)\n"
+"        # action added to the application\n"
+"        self.add_action(new_action)\n"
+"\n"
+"        # action without a state created\n"
+"        quit_action = Gio.SimpleAction.new(\"quit\", None)\n"
+"        # action connected to the callback function\n"
+"        quit_action.connect(\"activate\", self.quit_callback)\n"
+"        # action added to the application\n"
+"        self.add_action(quit_action)\n"
+"\n"
+"        # action with a state created\n"
+"        state_action = Gio.SimpleAction.new_stateful(\"state\",  GLib.VariantType.new('s'), GLib.Variant.new_string('off'))\n"
+"        # action connected to the callback function\n"
+"        state_action.connect(\"activate\", self.state_callback)\n"
+"        # action added to the application\n"
+"        self.add_action(state_action)\n"
+"\n"
+"        # action with a state created\n"
+"        awesome_action = Gio.SimpleAction.new_stateful(\"awesome\", None, GLib.Variant.new_boolean(False))\n"
+"        # action connected to the callback function\n"
+"        awesome_action.connect(\"activate\", self.awesome_callback)\n"
+"        # action added to the application\n"
+"        self.add_action(awesome_action)\n"
+"\n"
+"        # a builder to add the UI designed with Glade to the grid:\n"
+"        builder = Gtk.Builder()\n"
+"        # get the file (if it is there)\n"
+"        try:\n"
+"            builder.add_from_file(\"menubar.ui\")\n"
+"        except:\n"
+"            print \"file not found\"\n"
+"            sys.exit()\n"
+"\n"
+"        # we use the method Gtk.Application.set_menubar(menubar) to add the menubar\n"
+"        # and the menu to the application (Note: NOT the window!)\n"
+"        self.set_menubar(builder.get_object(\"menubar\"))\n"
+"        self.set_app_menu(builder.get_object(\"appmenu\"))\n"
+"\n"
+"    # callback function for new\n"
+"    def new_callback(self, action, parameter):\n"
+"        print \"You clicked \\\"New\\\"\"\n"
+"\n"
+"    # callback function for quit\n"
+"    def quit_callback(self, action, parameter):\n"
+"        print \"You clicked \\\"Quit\\\"\"\n"
+"        sys.exit()\n"
+"\n"
+"    # callback function for state\n"
+"    def state_callback(self, action, parameter):\n"
+"        print \"State is set to\", parameter.get_string()\n"
+"        action.set_state(parameter)\n"
+"\n"
+"    # callback function for awesome\n"
+"    def awesome_callback(self, action, parameter):\n"
+"        action.set_state(GLib.Variant.new_boolean(not action.get_state()))\n"
+"        if action.get_state().get_boolean() is True:\n"
+"            print \"You checked \\\"Awesome\\\"\"\n"
+"        else:\n"
+"            print \"You unchecked \\\"Awesome\\\"\"\n"
+"\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
 msgstr ""
-"Î ÏÏÏÏÎÎÏÎ ÎÎÎÎÎÎÎÏÎ GNOME (GDA) ÎÎÎÎÎ ÎÎÎÎÎÎÎÎÎÎ ÏÎÏ ÎÏÎÎÎÏ Î ÏÎÎÏÏÏ ÎÎÎÎÎ "
-"ÎÎ ÎÏÏÎÎ ÎÎÎÎÎÎ ÏÏÏÏÎÎÏÎ ÏÎ ÎÎÎÏÎÏÎÏÎÎÎ ÎÎÎÎ ÎÎÎ ÏÏÏÎÏÏ ÏÎÎÏÎ ÎÎÎÎÎÎÎÏÎ. "
-"ÎÏÏÏ ÎÎÎÎÎÎ ÎÏÏ ÏÎÏÎÎÎÏÎÎÎÎ ÏÏÎÏÎÎÎÎ ÏÏÏÏÎÎÎÏÎ ÎÎÏÎÏ ÎÎÎÎÎÎÎÏÎ, ÏÎ "
-"ÎÏÎÎÎÎÎÏÎÏÎ ÎÎÎÎÏ ÏÎÎÎÏ ÎÎÎÎÎÎÎÏÎ, ÏÏÏÏ ÎÎÏÏÎÏÎÏÎÏÎ ÎÎÎÎÎÎÎÏÎÏÎÎÏ, ÎÎÎÎ "
-"ÎÎÏÎÎÎÎÎ LDAP, ÎÎÏ. ÎÎÎ ÏÎÏÎÏÏÏÏÎÏÎÏ ÏÎÎÏÎÏÎÏÎÎÏ ÎÎÎ ÎÎÎ ÏÎÎÏÎÏ API ÎÎÎ "
-"ÏÎÎÎÎÏÎÏÏÎ, ÎÏÎÏÎÎÏÏÎÎÏÎ ÏÎÎ <link href=\"http://library.gnome.org/devel/";
-"libgda/stable/\">ÎÏÏÏÏÎÏÎ GDA</link>."
+"from gi.repository import Gtk\n"
+"from gi.repository import GLib\n"
+"from gi.repository import Gio\n"
+"import sys\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"MenuBar Example\", application=app)\n"
+"        self.set_default_size(200, 200)\n"
+"\n"
+"        # action without a state created (name, parameter type)\n"
+"        copy_action = Gio.SimpleAction.new(\"copy\", None)\n"
+"        # connected with the callback function\n"
+"        copy_action.connect(\"activate\", self.copy_callback)\n"
+"        # added to the window\n"
+"        self.add_action(copy_action)\n"
+"\n"
+"        # action without a state created (name, parameter type)\n"
+"        paste_action = Gio.SimpleAction.new(\"paste\", None)\n"
+"        # connected with the callback function\n"
+"        paste_action.connect(\"activate\", self.paste_callback)\n"
+"        # added to the window\n"
+"        self.add_action(paste_action)\n"
+"\n"
+"        # action with a state created (name, parameter type, initial state)\n"
+"        shape_action = Gio.SimpleAction.new_stateful(\"shape\", GLib.VariantType.new('s'), GLib.Variant.new_string('line'))\n"
+"        # connected to the callback function\n"
+"        shape_action.connect(\"activate\", self.shape_callback)\n"
+"        # added to the window\n"
+"        self.add_action(shape_action)\n"
+"\n"
+"        # action with a state created\n"
+"        about_action = Gio.SimpleAction.new(\"about\", None)\n"
+"        # action connected to the callback function\n"
+"        about_action.connect(\"activate\", self.about_callback)\n"
+"        # action added to the application\n"
+"        self.add_action(about_action)\n"
+"\n"
+"    # callback function for copy_action\n"
+"    def copy_callback(self, action, parameter):\n"
+"        print \"\\\"Copy\\\" activated\"\n"
+"\n"
+"    # callback function for paste_action\n"
+"    def paste_callback(self, action, parameter):\n"
+"        print \"\\\"Paste\\\" activated\"\n"
+"\n"
+"    # callback function for shape_action\n"
+"    def shape_callback(self, action, parameter):\n"
+"\t\tprint \"Shape is set to\", parameter.get_string()\n"
+"\t\t# Note that we set the state of the action!\n"
+"\t\taction.set_state(parameter)\n"
+"\n"
+"    # callback function for about (see the AboutDialog example)\n"
+"    def about_callback(self, action, parameter):\n"
+"        # a  Gtk.AboutDialog\n"
+"        aboutdialog = Gtk.AboutDialog()\n"
+"\n"
+"        # lists of authors and documenters (will be used later)\n"
+"        authors = [\"GNOME Documentation Team\"]\n"
+"        documenters = [\"GNOME Documentation Team\"]\n"
+"\n"
+"        # we fill in the aboutdialog\n"
+"        aboutdialog.set_program_name(\"MenuBar Example\")\n"
+"        aboutdialog.set_copyright(\"Copyright \\xc2\\xa9 2012 GNOME Documentation Team\")\n"
+"        aboutdialog.set_authors(authors)\n"
+"        aboutdialog.set_documenters(documenters)\n"
+"        aboutdialog.set_website(\"http://developer.gnome.org\";)\n"
+"        aboutdialog.set_website_label(\"GNOME Developer Website\")\n"
+"\n"
+"        # to close the aboutdialog when \"close\" is clicked we connect the\n"
+"        # \"response\" signal to on_close\n"
+"        aboutdialog.connect(\"response\", self.on_close)\n"
+"        # show the aboutdialog\n"
+"        aboutdialog.show()\n"
+"\n"
+"    # a callback function to destroy the aboutdialog\n"
+"    def on_close(self, action, parameter):\n"
+"        action.destroy()\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        # FIRST THING TO DO: do_startup()\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"        # action without a state created\n"
+"        new_action = Gio.SimpleAction.new(\"new\", None)\n"
+"        # action connected to the callback function\n"
+"        new_action.connect(\"activate\", self.new_callback)\n"
+"        # action added to the application\n"
+"        self.add_action(new_action)\n"
+"\n"
+"        # action without a state created\n"
+"        quit_action = Gio.SimpleAction.new(\"quit\", None)\n"
+"        # action connected to the callback function\n"
+"        quit_action.connect(\"activate\", self.quit_callback)\n"
+"        # action added to the application\n"
+"        self.add_action(quit_action)\n"
+"\n"
+"        # action with a state created\n"
+"        state_action = Gio.SimpleAction.new_stateful(\"state\",  GLib.VariantType.new('s'), GLib.Variant.new_string('off'))\n"
+"        # action connected to the callback function\n"
+"        state_action.connect(\"activate\", self.state_callback)\n"
+"        # action added to the application\n"
+"        self.add_action(state_action)\n"
+"\n"
+"        # action with a state created\n"
+"        awesome_action = Gio.SimpleAction.new_stateful(\"awesome\", None, GLib.Variant.new_boolean(False))\n"
+"        # action connected to the callback function\n"
+"        awesome_action.connect(\"activate\", self.awesome_callback)\n"
+"        # action added to the application\n"
+"        self.add_action(awesome_action)\n"
+"\n"
+"        # a builder to add the UI designed with Glade to the grid:\n"
+"        builder = Gtk.Builder()\n"
+"        # get the file (if it is there)\n"
+"        try:\n"
+"            builder.add_from_file(\"menubar.ui\")\n"
+"        except:\n"
+"            print \"file not found\"\n"
+"            sys.exit()\n"
+"\n"
+"        # we use the method Gtk.Application.set_menubar(menubar) to add the menubar\n"
+"        # and the menu to the application (Note: NOT the window!)\n"
+"        self.set_menubar(builder.get_object(\"menubar\"))\n"
+"        self.set_app_menu(builder.get_object(\"appmenu\"))\n"
+"\n"
+"    # callback function for new\n"
+"    def new_callback(self, action, parameter):\n"
+"        print \"You clicked \\\"New\\\"\"\n"
+"\n"
+"    # callback function for quit\n"
+"    def quit_callback(self, action, parameter):\n"
+"        print \"You clicked \\\"Quit\\\"\"\n"
+"        sys.exit()\n"
+"\n"
+"    # callback function for state\n"
+"    def state_callback(self, action, parameter):\n"
+"        print \"State is set to\", parameter.get_string()\n"
+"        action.set_state(parameter)\n"
+"\n"
+"    # callback function for awesome\n"
+"    def awesome_callback(self, action, parameter):\n"
+"        action.set_state(GLib.Variant.new_boolean(not action.get_state()))\n"
+"        if action.get_state().get_boolean() is True:\n"
+"            print \"You checked \\\"Awesome\\\"\"\n"
+"        else:\n"
+"            print \"You unchecked \\\"Awesome\\\"\"\n"
+"\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
 
-#: C/record-collection.js.page:41(p)
+#: C/menubar.py.page:156(section/title)
+msgid "Mnemonics and Accelerators"
+msgstr "ÎÎÎÎÎÎÎÎÎÏ ÎÎÎ ÎÏÎÏÎÏÏÎÏÎÏ"
+
+#: C/menubar.py.page:157(section/p) C/menubar.vala.page:161(section/p)
 msgid ""
-"Although a big part of the code is related to user interface (GUI), we are "
-"going to focus our tutorial on the database parts (we might mention other "
-"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."
+"Labels may contain mnemonics. Mnemonics are underlined characters in the "
+"label, used for keyboard navigation. Mnemonics are created by placing an "
+"underscore before the mnemonic character. For example \"_File\" instead of "
+"just \"File\" in the menubar.ui label attribute."
 msgstr ""
-"ÎÎ ÎÎÎ ÎÎÎ ÎÎÎÎÎÎ ÏÎÎÎÎ ÏÎÏ ÎÏÎÎÎÎ ÏÏÏÏÎÏÎÎÎÏÎÎ ÎÎ ÏÎ ÎÎÎÏÎÏÎ ÏÏÎÏÏÎ (GUI), "
-"ÏÏÏÎÎÎÏÎÎ ÎÎ ÎÏÏÎÎÏÎÏÎÎ ÏÎ ÎÎÎÎÎÎ ÎÎÏ ÏÏÎ ÎÎÏÎ ÏÎÏ ÎÎÏÎÏ ÎÎÎÎÎÎÎÏÎ (ÎÎ ÎÎÎ "
-"ÎÎ ÎÎÎÏÎÏÎÎÏÎ ÎÎÎÎ ÎÎÏÎ ÏÎÏ ÎÎÏÏÎÏÎÏÎÎ ÏÏÎÏÎÎÎ). ÎÎÎ ÎÎ ÎÎÎÎÏÎ ÏÎÏÎÏÏÏÏÎÏÎ "
-"ÎÎÎ ÏÎ ÏÏÎÎÏÎÎÎÎÏÎ JavaScript ÏÏÎ GNOME, ÎÎÎÏÎ ÏÎ ÎÎÎÎÎÎ <link xref=\"image-"
-"viewer.js\">ÏÏÏÎÏÎÎÎÎ ÏÏÎÎÎÎÎÎ ÎÎÎÏÎÎÏ</link>."
-
-#: C/record-collection.js.page:47(title) C/photo-wall.c.page:46(title)
-#: C/message-board.c.page:41(title) C/magic-mirror.vala.page:44(title)
-#: C/image-viewer.vala.page:51(title) C/image-viewer.py.page:44(title)
-#: C/image-viewer.js.page:45(title) C/image-viewer.cpp.page:34(title)
-#: C/image-viewer.c.page:36(title) C/guitar-tuner.py.page:42(title)
-#: C/guitar-tuner.cpp.page:40(title) C/guitar-tuner.c.page:42(title)
-msgid "Create a project in Anjuta"
-msgstr "ÎÎÎÎÎÏÏÎÎÎ ÎÏÎÎÏ ÎÎ ÏÎ Anjuta"
+"ÎÎ ÎÏÎÎÎÏÎÏ ÎÏÎÏÎÎ ÎÎ ÏÎÏÎÎÏÎÏÎ ÎÎÎÎÎÎÎÎÎÏÏ ÎÎÎÏÎÎÏ. ÎÎ ÎÎÎÎÎÎÎÎÎÎ ÎÎÎÎÎ "
+"ÏÏÎÎÏÎÎÎÎÏÎÎÎÎÎ ÏÎÏÎÎÏÎÏÎÏ ÏÏÎÎ ÎÏÎÎÎÏÎ, ÏÏÎÏÎÎÎÏÎÎÎÏÎÎÎÎÎ ÎÎÎ ÏÎÏÎÎÎÎÏÎ "
+"ÏÎÎÎÏÏÎÎÎÎÎÎÏ. ÎÎ ÎÎÎÎÎÎÎÎÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ ÏÎÏÎÎÎÏÏÎÏÎÏ ÎÎÎ ÏÏÎÎÏÎÎÎÎÏÎ "
+"ÏÏÎÎ ÏÎÎ ÎÎÎÎÎÎÎÎÏ ÏÎÏÎÎÏÎÏÎ. ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ \"_File\" ÎÎÏÎ ÎÎÎ ÎÏÎÎ \"File"
+"\" ÏÏÎ ÎÎÏÏÎÏÎÎ ÎÏÎÎÎÏÎÏ menubar.ui."
 
-#: C/record-collection.js.page:48(p) C/photo-wall.c.page:47(p)
-#: C/magic-mirror.vala.page:45(p) C/image-viewer.vala.page:52(p)
-#: C/image-viewer.py.page:45(p) C/image-viewer.js.page:46(p)
-#: C/image-viewer.cpp.page:35(p) C/image-viewer.c.page:37(p)
-#: C/guitar-tuner.vala.page:46(p) C/guitar-tuner.py.page:43(p)
-#: C/guitar-tuner.cpp.page:41(p) C/guitar-tuner.c.page:43(p)
+#: C/menubar.py.page:158(section/p) C/menubar.vala.page:162(section/p)
 msgid ""
-"Before you start coding, you'll need to set up a new project in Anjuta. This "
-"will create all of the files you need to build and run the code later on. "
-"It's also useful for keeping everything together."
+"The mnemonics are visible when you press the <key>Alt</key> key. Pressing "
+"<keyseq><key>Alt</key><key>F</key></keyseq> will open the <gui>File</gui> "
+"menu."
 msgstr ""
-"ÎÏÎÎ ÎÎÎÎÎÎÏÎÏÎ ÎÎ ÏÏÎÎÏÎÎÎÎÏÎÎÎÏÎ, ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎ ÎÎÎ ÎÎÎÎÎÏÏÎÎÎ "
-"ÎÏÎÎ ÏÏÎ Anjuta. ÎÏÏÎ ÎÎ ÎÎÎÎÎÏÏÎÎÎÎÏÎ ÏÎÎ ÏÎ ÎÏÎÏÎÎÏÎÏÎ ÎÏÏÎÎÎ ÏÎÏ "
-"ÏÏÎÎÎÎÎÎÏÎÎ ÎÎÎ ÏÎÎ ÎÎÏÎÎÎÏÎ ÏÎÏ ÎÏÎÎÎÎ ÎÏÎÏÏÎÏÎ. ÎÏÎÏÎÏ ÎÎ ÎÏÎÎ ÏÏÎÏÎÎÎ ÎÎ "
-"ÏÎ ÎÏÎÏÎÏÎ ÏÎÎ ÎÎÎÎ."
+"ÎÎ ÎÎÎÎÎÎÎÎÎÎ ÎÎÎÎÎ ÎÏÎÏÎÎ ÏÏÎÎ ÏÎÏÎÏÎ ÏÎ ÏÎÎÎÏÏÎ <key>Alt</key>. ÎÎÏÏÎÏÎÏ "
+"<keyseq><key>Alt</key><key>F</key></keyseq> ÎÎ ÎÎÎÎÎÎÎ ÏÎ ÎÎÎÎÏ <gui>ÎÏÏÎÎÎ</"
+"gui>."
 
-#: C/record-collection.js.page:51(p) C/photo-wall.c.page:50(p)
-#: C/magic-mirror.vala.page:48(p) C/image-viewer.py.page:48(p)
-#: C/image-viewer.js.page:49(p) C/image-viewer.cpp.page:38(p)
-#: C/image-viewer.c.page:40(p) C/guitar-tuner.py.page:46(p)
-#: C/guitar-tuner.cpp.page:44(p) C/guitar-tuner.c.page:46(p)
+#: C/menubar.py.page:160(section/p) C/menubar.vala.page:167(section/p)
 msgid ""
-"Start Anjuta and click <guiseq><gui>File</gui><gui>New</gui><gui>Project</"
-"gui></guiseq> to open the project wizard."
+"Accelerators can be explicitly added in the UI definitions. For example, it "
+"is common to be able to quit an application by pressing <keyseq><key>Ctrl</"
+"key><key>Q</key></keyseq> or to save a file by pressing <keyseq><key>Ctrl</"
+"key><key>S</key></keyseq>. To add an accelerator to the UI definition, you "
+"simply need add an \"accel\" attribute to the item."
 msgstr ""
-"ÎÎÎÎÎÎÏÏÎ ÏÎ Anjuta ÎÎÎ ÏÎÏÎÏÏÎ <guiseq><gui>ÎÏÏÎÎÎ</gui><gui>ÎÎÎ</"
-"gui><gui>ÎÏÎÎ</gui></guiseq> ÎÎÎ ÎÎ ÎÎÎÎÎÎÏÎ ÏÎÎ ÎÎÎÎÏ ÏÎÏ ÎÏÎÎÏ."
+"ÎÎ ÎÏÎÏÎÏÏÎÏÎÏ ÎÏÎÏÎÏÎ ÎÎ ÏÏÎÏÏÎÎÎÏÎ ÏÎÏÎ ÏÏÎÏÏ ÎÏÎÏÎÎÏÏ UI. ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ, "
+"ÎÎÎÎÎ ÎÎÎÎÏ ÎÎ ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÎÏÎÏÎ ÎÎÎ ÎÏÎÏÎÎÎÎ ÏÎÏÏÎÏÎÏ <keyseq><key>Ctrl</"
+"key><key>Q</key></keyseq> Î ÎÎ ÎÏÎÎÎÎÎÏÏÎÏÎ ÎÎÎ ÎÏÏÎÎÎ ÏÎÏÏÎÏÎÏ "
+"<keyseq><key>Ctrl</key><key>S</key></keyseq>. ÎÎÎ ÏÎÎ ÏÏÎÏÎÎÎÎ ÎÎÏÏ "
+"ÎÏÎÏÎÏÏÎÏÎ ÏÏÎÎ ÎÏÎÏÎÏ ÏÎÏ UI, ÏÏÎÎÎÎÎÏÏÎ ÎÏÎÎ ÎÎ ÏÏÎÏÎÎÏÎÏÎ ÎÎÎ ÎÎÏÏÎÏÎÎ "
+"\"accel\" ÏÏÎ ÏÏÎÎÏÎÎÎ."
 
-#: C/record-collection.js.page:54(p)
+#: C/menubar.py.page:161(section/p) C/menubar.vala.page:168(section/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."
+"<code mime=\"application/xml\">&lt;attribute name=\"accel\"&gt;&amp;lt;"
+"Primary&amp;gt;q&lt;/attribute&gt;</code> will create the <keyseq><key>Ctrl</"
+"key><key>Q</key></keyseq> sequence when added to the <code>Quit</code> label "
+"item. Here, \"Primary\" refers to the <key>Ctrl</key> key on a PC or the "
+"<key>â</key> key on a Mac."
 msgstr ""
-"ÎÏÎÎÎÎÏÎ <gui>ÎÎÎÎÎÏ Javascript</gui> ÎÏÏ ÏÎÎ ÎÎÏÏÎÎÎ <gui>JS</gui>, ÏÎÏÎÏÏÎ "
-"<gui>ÎÏÏÎÏÏÎ</gui>, ÎÎÎ ÏÏÎÏÎÎÏÏÏÏÎ ÏÎÏ ÎÎÏÏÎÎÎÏÎÎÎÏ ÏÎÏ ÏÏÎÏ ÎÏÏÎÎÎÎÏ ÎÎÎÎÏ "
-"ÏÎÎÎÎÎÏ. ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ ÏÏ ÏÎÎÎÎ ÏÎÏ ÎÏÎÎÏ ÎÎÎ ÏÎÏ ÎÎÏÎÎÏÎÎÏ ÏÎ <file>record-"
-"collection</file>."
+"ÎÎ <code mime=\"application/xml\">&lt;attribute name=\"accel\"&gt;&amp;lt;"
+"Primary&amp;gt;q&lt;/attribute&gt;</code> ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÎ ÏÎÎ ÎÎÎÎÎÎÏÏÎÎ "
+"<keyseq><key>Ctrl</key><key>Q</key></keyseq> ÏÏÎÎ ÏÏÎÏÏÎÎÎÏÎÎ ÏÏÎ ÏÏÎÎÏÎÎÎ "
+"ÎÏÎÎÎÏÎÏ <code>'ÎÎÎÎÎÏ</code>. ÎÎÏ, ÏÎ \"Primary\" ÎÎÎÏÎÏÎÏÎÎ ÏÏÎ ÏÎÎÎÏÏÎ "
+"<key>Ctrl</key> ÏÎ ÎÎÎ ÏÏÎÏÏÏÎÎÏ ÏÏÎÎÎÎÎÏÏÎ Î ÏÏÎ ÏÎÎÎÏÏÎ <key>â</key> ÏÎ "
+"ÎÎÎ Mac."
 
-#: C/record-collection.js.page:57(p)
+#: C/menubar.py.page:163(section/code) C/menubar.vala.page:170(section/code)
+#, no-wrap
 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."
+"\n"
+"&lt;item&gt;\n"
+"  &lt;attribute name=\"label\"&gt;_Quit&lt;/attribute&gt;\n"
+"  &lt;attribute name=\"action\"&gt;app.quit&lt;/attribute&gt;\n"
+"  &lt;attribute name=\"accel\"&gt;&amp;lt;Primary&amp;gt;q&lt;/attribute&gt;\n"
+"&lt;/item&gt;"
 msgstr ""
-"ÎÎÏÎÏÏÎ <gui>ÏÎÎÎÎÏÎÎÎÎ</gui> ÎÎÎ ÏÎ ÎÏÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎÎÎÎ ÎÎÎ ÎÏÎÏ. ÎÎÎÎÎÏÎ "
-"ÏÎ <file>src/main.js</file> ÎÏÏ ÏÎÏ ÎÎÏÏÎÎÎÏ <gui>ÎÏÎÎ</gui> Î <gui>ÎÏÏÎÎÎ</"
-"gui>. ÎÎÏÎÎÎÎÎÎÎÎÎ ÏÎÎÏ ÎÏÎÏ ÏÎÏÎÎÎÎÎÎÎ ÎÏÎÎÎÎ."
+"\n"
+"&lt;item&gt;\n"
+"  &lt;attribute name=\"label\"&gt;_Quit&lt;/attribute&gt;\n"
+"  &lt;attribute name=\"action\"&gt;app.quit&lt;/attribute&gt;\n"
+"  &lt;attribute name=\"accel\"&gt;&amp;lt;Primary&amp;gt;q&lt;/attribute&gt;\n"
+"&lt;/item&gt;"
 
-#: C/record-collection.js.page:63(title)
-msgid "Program Structure"
-msgstr "ÎÎÎÎ ÏÏÎÎÏÎÎÎÎÏÎÏ"
+#: C/menubar.py.page:171(section/title) C/menubar.vala.page:178(section/title)
+msgid "Translatable strings"
+msgstr "ÎÎÏÎÏÏÎÏÎÎÎÏ ÏÏÎÎÎÎÎÏÎÎÏÎÏ"
 
-#: C/record-collection.js.page:65(p)
+#: C/menubar.py.page:172(section/p) C/menubar.vala.page:179(section/p)
 msgid ""
-"This demo is a simple GTK application (with a single window) capable of "
-"inserting records into a database table as well as browsing all records of "
-"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."
+"Since GNOME applications are being translated into <link href=\"http://l10n.";
+"gnome.org/languages/\">many languages</link>, it is important that the "
+"strings in your application are translable. To make a label translatable, "
+"simple set <code>translatable=\"yes\"</code>:"
 msgstr ""
-"ÎÏÏÎ Î ÏÎÏÎÏÏÎÎÏÎ ÎÎÎÎÎ ÎÎÎ ÎÏÎÎ ÎÏÎÏÎÎÎÎ GTK (ÎÎ ÎÎÎÎÎÎÎÏ ÏÎÏÎÎÏÏÎ) ÎÎÎÎÏ "
-"ÎÎ ÎÎÏÎÎÎÎ ÎÎÎÏÎÏÎÏ ÏÏÎÎ ÏÎÎÎÎÎ ÎÎÏÎÏ ÎÎÎÎÎÎÎÏÎ ÎÎÎÏÏ ÎÎÎ ÏÎÏÎÎÎÎÏÎ ÏÎÏÎ ÏÏÎ "
-"ÎÎÎÏÎÏÏÎ ÏÎÏ ÏÎÎÎÎÎ. Î ÏÎÎÎÎÎÏ ÎÏÎÎ ÎÏÎ ÏÎÎÎÎ: <code>id</code>, ÎÎÎÏ "
-"ÎÎÎÏÎÎÎÏ ÎÎÎ <code>name</code>, ÎÎÎÎ varchar. Î ÏÏÏÏÎ ÎÎÏÏÎÏÎ (ÏÏÎÎ ÎÎÏÏÏÎ) "
-"ÏÎÏ ÎÏÎÏÎÎÎÎÏ ÎÏÎÏÏÎÏÎÎ ÏÎÎ ÎÎÏÎÎÏÎÎ ÎÎÎÏÎÏÎÏ ÏÏÎÎ ÏÎÎÎÎÎ. Î ÏÎÎÎÏÏÎÎÎ "
-"ÎÎÏÏÎÏÎ (ÏÏÎÎÎÎÎÏ) ÎÏÎÏÏÎÏÎÎ ÎÎ ÎÎÎÏÎ ÏÎÎÏ ÏÎÏ ÎÎÎÏÎÏÎÏ ÎÏÏÎÏ ÏÎÏ ÏÎÎÎÎÎ. ÎÎ "
-"ÏÎÏÎÎÏÏÎÎÎÎ ÏÎÏ ÎÎÎÎÎÏÎÎÏÎÎ ÎÎÎÎ ÏÎÏÎ ÏÎÏ ÎÎÎ ÎÎÎ ÎÎÎÏÎÏÎ ÎÎÏÎÎÎÏÎÎ ÎÎÎ ÏÏÎÎ "
-"ÎÎÎÎÎÎÏÎ ÏÎÏ ÎÏÎÏÎÎÎÎÏ."
-
-#: C/record-collection.js.page:70(title)
-msgid "Starting the fun"
-msgstr "ÎÎÎÏÎÎ ÏÎÏ ÎÎÎÏÎÎÎÎÏÎÏ"
+"ÎÏÎÎÎÎ ÎÎ ÎÏÎÏÎÎÎÎÏ GNOME ÎÎÏÎÏÏÎÎÎÎÏÎÎ ÏÎ <link href=\"http://l10n.gnome.";
+"org/languages/\">ÏÎÎÎÎÏ ÎÎÏÏÏÎÏ</link>, ÎÎÎÎÎ ÏÎÎÎÎÏÎÎÏ ÏÏÎ ÎÎ ÏÏÎÎÎÎÎÏÎÎÏÎÏ "
+"ÏÏÎÎ ÎÏÎÏÎÎÎÎ ÏÎÏ ÎÎÎÎÎ ÎÎÏÎÏÏÎÏÎÎÎÏ. ÎÎÎ ÎÎ ÎÎÎÎÏÎ ÎÎÎ ÎÏÎÎÎÏÎ ÎÎÏÎÏÏÎÏÎÎÎ, "
+"ÎÏÎÎ ÎÎÎÏÎ <code>translatable=\"yes\"</code>:"
 
-#: C/record-collection.js.page:71(p)
-msgid "Let's start by examining the skeleton of the program:"
-msgstr "ÎÏ ÎÏÏÎÏÎÏÎÎ ÎÎÎÏÎÎÎÎÏÎÏ ÏÎÎ ÏÎÎÎÎÏÏ ÏÎÏ ÏÏÎÎÏÎÎÎÎÏÎÏ:"
+#: C/menubar.py.page:176(section/code)
+#, no-wrap
+msgid "&lt;attribute name=\"label\" translatable=\"yes\"&gt;Quit&lt;/attribute&gt;"
+msgstr "&lt;attribute name=\"label\" translatable=\"yes\"&gt;Quit&lt;/attribute&gt;"
 
-#: C/record-collection.js.page:97(p)
+#: C/menubar.py.page:183(item/p)
 msgid ""
-"Lines 1â4: Initial imports. Pay special attention to line 3, which tells "
-"Javascript to import the GDA library, our focus in this tutorial."
+"<link href=\"http://developer.gnome.org/gio/unstable/GSimpleAction.html";
+"\">GSimpleAction</link>"
 msgstr ""
-"ÎÏÎÎÎÎÏ 1-4: ÎÏÏÎÎÎÏ ÎÎÏÎÎÏÎÎÏ. ÎÏÏÏÎ ÎÎÎÎÎÏÎÏÎ ÏÏÎÏÎÏÎ ÏÏÎ ÎÏÎÎÎÎ 3, ÏÎÏ "
-"ÎÎÎÎ ÏÏÎ Javascript ÎÎ ÎÎÏÎÎÎÎ ÏÎ ÎÎÎÎÎÎÎÎÎÎ GDA, ÏÎ ÎÏÎÎÎÎÏÏÎ ÎÎÏ ÏÎ ÎÏÏÏ "
-"ÏÎ ÎÎÎÎÎÎ."
+"<link href=\"http://developer.gnome.org/gio/unstable/GSimpleAction.html";
+"\">GSimpleAction</link>"
 
-#: C/record-collection.js.page:98(p)
+#: C/menubar.py.page:184(item/p) C/toolbar_builder.py.page:194(item/p)
 msgid ""
-"Lines 6â17: Define our <code>Demo</code> class. Pay special attention to "
-"lines 13â15, where we call 3 methods which will do the whole job. They will "
-"be detailed below."
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkBuilder.html";
+"\">GtkBuilder</link>"
 msgstr ""
-"ÎÏÎÎÎÎÏ 6-17: ÎÏÎÏÏÎ ÏÎÎ ÎÎÎÏÎ ÎÎÏ <code>Demo</code>. ÎÏÏÏÎ ÎÎÎÎÎÏÎÏÎ "
-"ÏÏÎÏÎÏÎ ÏÏÎÏ ÎÏÎÎÎÎÏ 13-15, ÏÏÎÏ ÎÎÎÎÏÎÎ 3 ÎÎÎÏÎÎÏÏ ÏÎÏ ÎÎ ÎÎÎÎÏÎ ÏÎÎ ÏÎ "
-"ÎÎÏÎÎÎÎ. ÎÎÎÎÏÏÎÎÎ ÏÎÏÎÎÎÏÏ."
-
-#: C/record-collection.js.page:99(p)
-msgid "Lines 19â23: Start the application."
-msgstr "ÎÏÎÎÎÎÏ 19-23: ÎÎÎÏÎÎ ÏÎÏ ÎÏÎÏÎÎÎÎÏ."
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkBuilder.html";
+"\">GtkBuilder</link>"
 
-#: C/record-collection.js.page:104(title)
-msgid "Designing the application"
-msgstr "ÎÏÎÎÎÎÏÎÏÏ ÏÎÏ ÎÏÎÏÎÎÎÎÏ"
+#: C/menubar.vala.page:7(info/title)
+msgctxt "text"
+msgid "MenuBar (Vala)"
+msgstr "MenuBar (Vala)"
 
-#: C/record-collection.js.page:105(p)
+#: C/menubar.vala.page:39(item/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."
+"Now we will create the .vala file and use GtkBuilder to import the "
+"<file>menubar.ui</file> we just created."
 msgstr ""
-"ÎÏ ÏÎÎÎÏÎÎ ÎÎÎ ÎÎÏÎÎ ÏÏÎ ÎÎÎÎÎÎ <code>setupWindow</code>. ÎÎÎÎÎ ÏÏÎÏÎÏÎÎ ÎÎÎ "
-"ÏÎ ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ ÎÎÎÏÎÏÎÏ ÏÏÎÏÏÎ (UI). ÎÎÎÏÏ Î UI ÎÎÎ ÎÎÎÎÎ ÏÎ ÎÏÎÎÎÎÏÏÎ "
-"ÎÎÏ, ÎÎ ÎÎÎÎÎÏÎÏÎÎ ÎÏÎÎ ÏÎ ÏÏÎÏÎÎÎ ÎÎÏÎ."
+"ÎÏÏÎ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ ÏÎ ÎÏÏÎÎÎ .vala ÎÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ GtkBuilder "
+"ÎÎÎ ÎÎÏÎÎÏÎÎ ÏÎÏ <file>menubar.ui</file> ÏÎÏ ÎÏÎÎÏ ÎÎÎÎÎÏÏÎÎÏÎÎÎ."
 
-#: C/record-collection.js.page:156(p)
+#: C/menubar.vala.page:43(section/code)
+#, no-wrap
 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."
+"public class MyWindow : Gtk.ApplicationWindow {\n"
+"\tinternal MyWindow (MyApplication app) {\n"
+"\t\tObject (application: app, title: \"MenuBar Example\");\n"
+"\t\tthis.set_default_size (200, 200);\n"
+"\t}\n"
+"}\n"
+"\n"
+"class MyApplication: Gtk.Application {\n"
+"\tprotected override void activate () {\n"
+"\t\tnew MyWindow (this).show ();\n"
+"\t}\n"
+"\tprotected override void startup () {\n"
+"\t\tbase.startup ();\n"
+"\n"
+"\t\t/* Setup menubar. */\n"
+"\t\t/* Get the UI file. */\n"
+"\t\tvar builder = new Gtk.Builder ();\n"
+"\t\ttry {\n"
+"\t\t\tbuilder.add_from_file (\"menubar_basis.ui\");\n"
+"\t\t/* Handle the exception. */\n"
+"\t\t} catch (Error e) {\n"
+"\t\t\terror (\"Unable to load file: %s\", e.message);\n"
+"\t\t}\n"
+"\n"
+"\t\t/* Get the menubar from the builder. */\n"
+"\t\tthis.menubar = builder.get_object (\"menubar\") as MenuModel;\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* main creates and runs the application. */\n"
+"public int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
 msgstr ""
-"ÎÏÎÎÎÎÏ 22 ÎÎÎ 27: ÎÎÎÎÎÏÏÎÎÎ ÏÏÎ 2 ÎÎÏÎÏÏÏÎÏÎÏÎ (ÎÎÎ ÏÎ ÎÏÎ ÏÎÎÎÎ) ÏÏÎ "
-"ÎÏÎÎÎ ÎÎ ÏÏÎÏÏÎÏ ÎÎ ÏÎÎÎÏÏÎÎÎÎÎÏÎÏÎ ÎÎÏÎ ÎÎÎ ÎÎ ÎÎÏÎÏÎÎÎ ÏÏÎ ÎÎÏÎ ÎÎÎÎÎÎÎÏÎ."
+"public class MyWindow : Gtk.ApplicationWindow {\n"
+"\tinternal MyWindow (MyApplication app) {\n"
+"\t\tObject (application: app, title: \"MenuBar Example\");\n"
+"\t\tthis.set_default_size (200, 200);\n"
+"\t}\n"
+"}\n"
+"\n"
+"class MyApplication: Gtk.Application {\n"
+"\tprotected override void activate () {\n"
+"\t\tnew MyWindow (this).show ();\n"
+"\t}\n"
+"\tprotected override void startup () {\n"
+"\t\tbase.startup ();\n"
+"\n"
+"\t\t/* Setup menubar. */\n"
+"\t\t/* Get the UI file. */\n"
+"\t\tvar builder = new Gtk.Builder ();\n"
+"\t\ttry {\n"
+"\t\t\tbuilder.add_from_file (\"menubar_basis.ui\");\n"
+"\t\t/* Handle the exception. */\n"
+"\t\t} catch (Error e) {\n"
+"\t\t\terror (\"Unable to load file: %s\", e.message);\n"
+"\t\t}\n"
+"\n"
+"\t\t/* Get the menubar from the builder. */\n"
+"\t\tthis.menubar = builder.get_object (\"menubar\") as MenuModel;\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* main creates and runs the application. */\n"
+"public int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
 
-#: C/record-collection.js.page:157(p)
+#: C/menubar.vala.page:44(section/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."
+"Now, compile the vala file, and run it. The application should look like the "
+"picture at the top of this page."
 msgstr ""
-"ÎÏÎÎÎÎÏ 31-34: ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ ÎÎÏÎÏÎÎÏ ÎÎÏÎÎÏÎÎÏ. ÎÏÎÎÎÎÏÎÎ ÏÎ ÏÎÎÎ ÏÎÏ "
-"<code>clicked</code> ÏÏÎÎ ÎÎÎÏÏÎÎÎ ÎÎÎÎÎÎ <code>_insertClicked</code> ÏÎÏ "
-"ÎÎÎÏÎÏ. ÎÏÏÎ Î ÎÎÎÎÎÎÏ ÎÎÎÎÏÎÏÎÎ ÏÎÏÎÎÎÏÏ."
+"ÎÏÏÎ, ÎÎÏÎÎÎÏÏÏÎÏÏÎ ÏÎ ÎÏÏÎÎÎ vala ÎÎÎ ÎÎÏÎÎÎÏÏÎ ÏÎ. Î ÎÏÎÏÎÎÎÎ ÎÎ ÏÏÎÏÎÎ ÎÎ "
+"ÏÎÎÎÎÏÎÎ ÏÎÎ ÏÎÎ ÎÎÎÏÎÎ ÏÏÎÎ ÎÎÏÏÏÎ ÎÏÏÎÏ ÏÎÏ ÏÎÎÎÎÎÏ."
 
-#: C/record-collection.js.page:158(p)
+#: C/menubar.vala.page:79(section/p)
 msgid ""
-"Line 39: Create the widget (<code>TextView</code>) where we will show the "
-"contents of the table."
+"Following this pattern, you can now add a <code>Copy</code> and a "
+"<code>Paste</code> item to the <code>Edit</code> submenu, and an "
+"<code>About</code> item to the <code>Help</code> submenu. We will hold off "
+"on adding items to the <link xref=\"menubar.vala#choices\">Choices submenu</"
+"link> until further in the tutorial."
 msgstr ""
-"ÎÏÎÎÎÎ 39: ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ ÎÏÎÏÎÎÎÏ ÏÏÏÏÎÏÎÎÎÏ (<code>TextView</code>) ÏÏÎÏ "
-"ÎÎ ÎÎÏÎÎÎÏÎÏÎÎ ÏÎ ÏÎÏÎÎÏÏÎÎÎÎ ÏÎÏ ÏÎÎÎÎÎ."
+"ÎÎÎÎÎÏÎÏÎÏÎÏ ÎÏÏÏ ÏÎ ÎÎÏÎÎÎ, ÎÏÎÏÎÎÏÎ ÏÏÏÎ ÎÎ ÏÏÎÏÎÎÏÎÏÎ ÎÎÎ ÏÏÎÎÏÎÎÎ "
+"<code>Copy</code> and ÎÎÎ <code>Paste</code> ÏÏÎ ÏÏÎÎÎÎÎÏ <code>Edit</code> "
+"ÎÎÎ ÎÎÎ ÏÏÎÎÏÎÎÎ <code>About</code> ÏÏÎ ÏÏÎÎÎÎÎÏ <code>Help</code>. ÎÎ "
+"ÎÎÎÏÏÏÎÏÎÏÎÏÎÎ ÏÎÎ ÏÏÎÏÎÎÎÎ ÏÏÎÎÏÎÎÏÎ ÏÏÎ <link xref=\"menubar.vala#choices"
+"\">ÏÏÎÎÎÎÎÏ ÎÏÎÎÎÎÎÏ</link> ÎÎÏÏÎ ÏÎÏÎÏÎÏÎ ÏÏÎ ÎÎÎÎÎÎ."
 
-#: C/record-collection.js.page:159(p)
+#: C/menubar.vala.page:81(note/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."
+"You do not need to recompile the vala program if you only made changes to "
+"the UI file. Just run your previously compiled application, and the UI "
+"changes will be reflected."
 msgstr ""
-"ÎÏÎÎÎÎ 44: ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ ÎÏÎÎÎÏÎÏ ÏÏÎÏ ÎÎ ÎÎÏÎÎÎÏÏÎÎ Î ÎÏÎÎÎÏÏ ÏÏÎ ÎÎÎÏÎÏÏÎ "
-"ÏÏÎÎ ÏÎÎÎÎÎ. ÎÏÏÎÎÎ ÎÎÎÎÎ ÎÎÎÎÎÏ, ÎÎ ÎÎÎÎÎÏÏÎÎÎ ÎÏÎÏÏÎÏÎ."
+"ÎÎÎ ÏÏÎÎÎÎÎÏÏÎ ÎÎÎÎÎÎÏÎÎÎÏÏÏÎÏÎ ÏÎÏ ÏÏÎÎÏÎÎÎÎÏÎÏ vala ÎÎÎ ÎÎÎÎÏÎ ÎÎÎÎÎÎÏ "
+"ÎÏÎÎ ÏÏÎ ÎÏÏÎÎÎ UI. ÎÏÎÎ ÎÎÏÎÎÎÏÏÎ ÏÎÎ ÏÏÎÎÎÎÏÎÎÎÏÏ ÎÎÏÎÎÎÏÏÏÎÏÎÎÎÎ ÎÏÎÏÎÎÎÎ "
+"ÎÎÎ ÎÎ ÎÎÎÎÎÎÏ UI ÎÎ ÎÎÎÎÎÎÏÏÎÏÎ."
 
-#: C/record-collection.js.page:164(title)
-msgid "Connecting to and initializing the database"
-msgstr "ÎÏÎÎÎÏÎ ÎÎÎ ÎÏÏÎÎÎÏÎÎÎÏÎ ÎÎ ÏÎ ÎÎÏÎ ÎÎÎÎÎÎÎÏÎ"
+#: C/menubar.vala.page:87(section/p)
+msgid "This is a three step process."
+msgstr "ÎÏÏÎ ÎÎÎÎÎ ÎÎÎ ÎÎÎÏÎÎÏÎÎ ÏÏÎÏÎ ÎÎÎÎÏÏÎ."
 
-#: C/record-collection.js.page:165(p)
+#: C/menubar.vala.page:89(item/p)
 msgid ""
-"The code which makes the connection to the database is in the "
-"<code>setupDatabase</code> method below:"
+"First we create the ActionEntry array in the MyApplication class. An "
+"ActionEntry consists of:"
 msgstr ""
-"Î ÎÏÎÎÎÎÏ ÏÎÏ ÎÎÎÎÎ ÏÎ ÏÏÎÎÎÏÎ ÏÏÎ ÎÎÏÎ ÎÎÎÎÎÎÎÏÎ ÎÎÎÎÎ ÏÏÎÎ ÏÎÏÎÎÎÏÏ ÎÎÎÎÎÎ "
-"<code>setupDatabase</code>:"
+"ÎÏÏÏÎ ÎÎÎÎÎÏÏÎÎÏÎÎ ÏÎÎ ÏÎÎÎÎÎ ActionEntry ÏÏÎÎ ÎÎÎÏÎ MyApplication. ÎÎÎ "
+"ActionEntry ÎÏÎÏÎÎÎÎÏÎÎ ÎÏÏ:"
 
-#: C/record-collection.js.page:182(p)
-msgid ""
-"Lines 2â3: Create the GDA's <code>Connection</code> object. We must supply "
-"to its constructor some properties:"
-msgstr ""
-"ÎÏÎÎÎÎÏ 2-3: ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ ÎÎÏÎÎÎÎÎÎÎÎÏ ÏÎÏ GDA <code>Connection</code>. "
-"ÎÏÎÏÎÎ ÎÎ ÎÏÏÎÏÎÎ ÏÏÎÎ ÎÎÏÎÏÎÎÏÎÏÏÎ ÎÎÏÎÎÎÏ ÎÎÎÏÏÎÏÎÏ:"
+#: C/menubar.vala.page:92(item/p)
+msgid "the \"action name\" (mandatory)"
+msgstr "ÏÎ \"action name\" (ÏÏÎÏÏÎÏÏÎÎÏ)"
 
-#: C/record-collection.js.page:185(p)
+#: C/menubar.vala.page:93(item/p)
 msgid ""
-"<code>provider</code>: One of GDA's supported providers. GDA supports "
-"SQLite, MySQL, PostgreSQL, Oracle and many others. For demo purposes we will "
-"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)."
+"the callback function to connect to the \"activate\" signal of the action "
+"(if applicable)"
 msgstr ""
-"<code>provider</code>: ÎÎÎÏ ÎÏÏ ÏÎÏÏ ÏÏÎÏÏÎÏÎÎÏÎÎÎÎÏÏ ÏÎÏÏÏÎÏÏ. ÎÎ GDA "
-"ÏÏÎÏÏÎÏÎÎÎÎ SQLite, MySQL, PostgreSQL, Oracle ÎÎÎ ÏÎÎÎÎÏÏ ÎÎÎÎÏÏ. ÎÎÎ ÏÎÏÏ "
-"ÏÎÎÏÎÏÏ ÏÎÏ ÏÎÏÎÏÏÎÎÏÎÏ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÏÎ ÎÎÏÎ ÎÎÎÎÎÎÎÏÎ SQLite, ÎÏÎÎÎÎ "
-"ÎÎÎÎÎÎÏÏÎÏÎÎ ÎÏÏ ÏÏÎÎÏÎÎÎÎÎ ÏÏÎÏ ÏÎÏÎÏÏÏÏÎÏÎÏ ÎÎÎÎÎÎÎÏ ÎÎÎ ÎÎÎÎÎ ÎÏÎÎ ÏÏÎ "
-"ÏÏÎÏÎ (ÏÏÎÏÎÎÎÏÎÎÎÎ ÎÏÎÎ ÎÎÎ ÎÏÏÎÎÎ ÏÏ ÎÎÏÎ ÎÎÎÎÎÎÎÏÎ)."
+"ÏÎ ÏÏÎÎÏÏÎÏÎ ÎÏÎÎÎÎÎÎÏÎÏ ÎÎÎ ÎÎ ÏÏÎÎÎÏÎÏÎ ÏÎ ÏÎÎÎ \"activate\" ÏÎÏ ÎÎÎÏÎÎÎÎÏ "
+"(ÎÎÎ ÎÎÎÎÏÎÎ)"
 
-#: C/record-collection.js.page:188(p)
+#: C/menubar.vala.page:94(item/p)
 msgid ""
-"<code>cnc_string</code>: The connection string. It may change from provider "
-"to provider. The syntax for SQLite is: <code>DB_DIR=<var>PATH</var>;"
-"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)."
+"the type of the parameter that must be passed to the activate function for "
+"the action (if applicable)"
 msgstr ""
-"<code>cnc_string</code>: Î ÏÏÎÎÎÎÎÏÎÎÏÎ ÏÏÎÎÎÏÎÏ. ÎÏÎÏÎÎ ÎÎ ÎÎÎÎÎÎÎ ÎÏÏ "
-"ÏÎÏÎÏÎ ÏÎ ÏÎÏÎÏÎ. Î ÏÏÎÏÎÎÎ ÎÎÎ ÏÎ SQLite ÎÎÎÎÎ: <code>DB_DIR=<var>PATH</"
-"var>;DB_NAME=<var>FILENAME</var></code>. ÎÎ ÎÏÏÎ ÏÎÎ ÏÎÏÎÏÏÎÎÏÎ "
-"ÏÏÎÏÏÎÎÎÎÎÏÎÎ ÎÎÎ ÎÎÏÎ ÎÎÎÎÎÎÎÏÎ ÏÎÏ ÎÎÎÎÏÎÎ gnome_demo ÏÏÎÎ ÏÏÎÏÏÏÎÎÏ "
-"ÎÎÏÎÎÎÎÎ ÏÏÎÏÏÎ (ÏÎÎÎÎÏÏÏÎ ÏÎÎ ÎÎÎÏÎ ÏÏÎ ÏÏÎÎÏÏÎÏÎ .GLib's "
-"<code>get_home_dir</code>)."
+"ÏÎÎ ÏÏÏÎ ÏÎÏ ÏÎÏÎÎÎÏÏÎÏ ÏÎÏ ÏÏÎÏÎÎ ÎÎ ÏÎÏÎÏÏÎÎ ÏÏÎÎ ÎÎÎÏÎÎÏÎÎÎÎÎÎÎ ÏÏÎÎÏÏÎÏÎ "
+"ÎÎÎ ÏÎÎ ÎÎÎÏÎÎÎÎ (ÎÎÎ ÎÎÎÎÏÎÎ)"
 
-#: C/record-collection.js.page:192(p)
-msgid ""
-"If the provider is not supported by GDA, or if the connection string is "
-"missing some element, line 2 will raise an exception. So, in real life we "
-"should handle it with JavaScript's statement <code>try</code>...<code>catch</"
-"code>."
-msgstr ""
-"ÎÎÎ Î ÏÎÏÎÏÎÏ ÎÎÎ ÏÏÎÏÏÎÏÎÎÎÏÎÎ ÎÏÏ GDA, Î ÎÎÎ ÎÎÎÏÎÎ ÏÏÎ ÏÏÎÎÎÎÎÏÎÎÏÎ "
-"ÏÏÎÎÎÏÎÏ ÎÎÏÎÎÎ ÏÏÎÎÏÎÎÎ, Î ÎÏÎÎÎÎ 2 ÎÎ ÎÎÎÎÏÎÎ ÎÎÎ ÎÎÎÎÏÎÏÎ. ÎÏÏÎ, ÏÏÎÎ "
-"ÏÏÎÎÎÎÏÎÎÎ ÎÏÎ ÎÎ ÏÎ ÏÎÎÏÎÏÏÎÏÎÎ ÎÎ ÎÎÎ ÏÏÏÏÎÏÎ ÏÎÏ JavaScript <code>try</"
-"code>...<code>catch</code>."
+#: C/menubar.vala.page:95(item/p)
+msgid "the initial state for this action (if applicable)"
+msgstr "ÏÎÎ ÎÏÏÎÎÎ ÎÎÏÎÏÏÎÏÎ ÎÎÎ ÎÏÏÎÎ ÏÎÎ ÎÎÎÏÎÎÎÎ (ÎÎÎ ÎÎÎÎÏÎÎ)"
 
-#: C/record-collection.js.page:196(p)
-msgid ""
-"Line 4: Open the connection. In the SQLite provider, if the database does "
-"not exist, it will be created in this step."
-msgstr ""
-"ÎÏÎÎÎÎ 4: ÎÎÎÎÎÎÎ ÏÎÏ ÏÏÎÎÎÏÎÏ. ÎÏÎÎ ÏÎÏÎÏÎ SQLite, ÎÎÎ Î ÎÎÏÎ ÎÎÎÎÎÎÎÏÎ ÎÎÎ "
-"ÏÏÎÏÏÎÎ, ÎÎ ÎÎÎÎÎÏÏÎÎÎÎÎ ÏÎ ÎÏÏÏ ÏÎ ÎÎÎÎ."
+#: C/menubar.vala.page:96(item/p)
+msgid "the callback to connect to \"change-state\" signal (if applicable)"
+msgstr "ÏÎÎ ÎÏÎÎÎÎÎÎÏÎ ÏÏÎÎÎÏÎÏ ÎÎ ÏÎ ÏÎÎÎ \"change-state\" (ÎÎÎ ÎÎÎÎÏÎÎ)"
 
-#: C/record-collection.js.page:198(p)
+#: C/menubar.vala.page:98(item/code)
+#, no-wrap
 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)."
+"\n"
+"const ActionEntry[] actions = {\n"
+"    { \"new\", new_cb }, // {\"action name\", callback_function}\n"
+"    { \"quit\", quit_cb }\n"
+"};"
 msgstr ""
-"ÎÏÎÎÎÎÏ 6-10: ÎÏÎÏÏÎÎÎÏÏÎ ÎÎ ÎÎÎÎÏÎ ÎÎÎ ÎÏÎÎ ÎÏÎÎÎÎÎ ÎÎÎ ÎÎÎÎÏÎ ÏÏÎÏÎÎÏ ÏÎÏ "
-"ÏÎÎÎÎÎ (ÎÏÎÎÎÎ 7). ÎÎÎ ÎÎÎ ÏÏÎÏÏÎÎ (ÎÏÎÎÎÎ Î ÎÎÏÎ ÎÎÎÎÎÎÎÏÎ ÎÏÎÎÏ "
-"ÎÎÎÎÎÏÏÎÎÎÎÎÎ), ÎÏÏÎ Î ÎÎÏÎÎÎ ÎÎ ÎÎÎÎÏÎÎ ÎÎÎ ÎÎÎÎÏÎÏÎ, ÏÎÏ ÎÏÎÎÎÏÎÎÎÎÏÎÎ ÎÏÏ "
-"ÏÎÎ ÎÎÎÎÎ <code>try</code>...<code>catch</code>. ÎÎÎ ÏÏÎÎÎÎÎÎÎ ÎÏÏÏ, "
-"ÏÏÎÏÎÏÎÎ ÏÎ ÎÎÎÎÎÏÏÎÎÎ ÏÏÏÏÎÏÎÏ ÏÎÎÎÎÎ (ÎÏÎÎÎÎ 9)."
+"\n"
+"const ActionEntry[] actions = {\n"
+"    { \"new\", new_cb }, // {\"action name\", callback_function}\n"
+"    { \"quit\", quit_cb }\n"
+"}Â"
 
-#: C/record-collection.js.page:199(p)
-msgid ""
-"In order to run the SQL commands above we are using global GDA functions, "
-"<code>execute_select_command</code> and <code>execute_non_select_command</"
-"code>. They are simple to use, and just require two arguments: The "
-"<code>Connection</code> object and the SQL command to be parsed."
+#: C/menubar.vala.page:105(item/p)
+msgid "Second, we create the callback functions the actions are connected to."
 msgstr ""
-"ÎÎÎ ÏÎÎ ÎÎÏÎÎÎÏÎ ÏÏÎ ÏÎÏÎÏÎÎÏ ÎÎÏÎÎÏÎ SQL ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÏÎÏ ÎÎÎÎÎÎÏ "
-"ÏÏÎÎÏÏÎÏÎÎÏ GDA, <code>execute_select_command</code> ÎÎÎ "
-"<code>execute_non_select_command</code>. ÎÎÎÎÎ ÎÏÎÎÏ ÏÏÎ ÏÏÎÏÎ ÎÎÎ ÎÏÎÎÏÎÏÎ "
-"ÎÏÎÎ ÎÏÎ ÎÏÎÏÎÎÏÎ: ÎÎ ÎÎÏÎÎÎÎÎÎÎÎ <code>Connection</code> ÎÎÎ ÏÎÎ ÎÎÏÎÎÎ SQL "
-"ÎÎ ÎÎÎÎÏÎÎÎ."
+"ÎÎÏÏÎÏÎ, ÎÎÎÎÎÏÏÎÎÏÎÎ ÏÏÎÏ ÏÏÎÎÏÏÎÏÎÎÏ ÎÏÎÎÎÎÎÎÏÎÏ ÏÎÏ ÎÎÎÏÎÎÎÎÏ ÏÎÏ "
+"ÏÏÎÏÎÎÎÎÏÎÎ."
 
-#: C/record-collection.js.page:203(p)
-msgid "At this point we have the database set up, and are ready to use it."
+#: C/menubar.vala.page:106(item/code)
+#, no-wrap
+msgid ""
+"\n"
+"void new_cb (SimpleAction action, Variant? parameter) {\n"
+"    print (\"You clicked \\\"New\\\"\\n\");\n"
+"    //new MyWindow (this).show ();\n"
+"}\n"
+"\n"
+"void quit_cb (SimpleAction action, Variant? parameter) {\n"
+"    print (\"You clicked \\\"Quit\\\"\\n\");\n"
+"    //this.quit ();  **Bug #674090**\n"
+"}"
 msgstr ""
-"ÎÎ ÎÏÏÏ ÏÎ ÏÎÎÎÎÎ ÎÏÎÏÎÎ ÏÏÎÎÎÏÎÎ ÏÎ ÎÎÏÎ ÎÎÎÎÎÎÎÏÎ ÎÎÎ ÎÎÎÎÏÏÎ ÎÏÎÎÎÎÎ ÎÎ "
-"ÏÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ."
-
-#: C/record-collection.js.page:207(title)
-msgid "Selecting"
-msgstr "ÎÏÎÎÎÎÎ"
+"\n"
+"void new_cb (SimpleAction action, Variant; parameter) {\n"
+"    print (\"You clicked \\\"New\\\"\\n\")Â\n"
+"    //new MyWindow (this).show ()Â\n"
+"}\n"
+"\n"
+"void quit_cb (SimpleAction action, Variant; parameter) {\n"
+"    print (\"You clicked \\\"Quit\\\"\\n\")Â\n"
+"    //this.quit ()Â  **Bug #674090**\n"
+"}"
 
-#: C/record-collection.js.page:208(p)
+#: C/menubar.vala.page:117(item/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:"
+"And lastly, we connect the menu items to the actions in the XML file by "
+"adding the \"action\" attribute:"
 msgstr ""
-"ÎÎÏÎ ÏÎÎ ÏÏÎÎÎÏÎ ÎÎ ÏÎ ÎÎÏÎ ÎÎÎÎÎÎÎÏÎ, Î ÎÎÏÎÏÎÎÏÎÏÏÎÏ ÏÎÏ ÏÎÏÎÏÏÎÎÏÎÏ ÎÎÏ "
-"ÎÎÎÎÎ ÏÎ ÎÎÎÎÎÎ<code>selectData</code>. ÎÎÎÎÎ ÏÏÎÏÎÏÎÎ ÎÎÎ ÏÎ ÎÎÏÎ ÏÎÏÎ ÏÏÎ "
-"ÎÎÎÏÎÏÏÎ ÏÏÎÎ ÏÎÎÎÎÎ ÎÎÎ ÏÎÎ ÎÎÏÎÎÎÏÎ ÏÎÏÏ ÏÏÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ "
-"<code>TextView</code>. ÎÏ ÏÎÎÎÏÎÎ ÎÎÎ ÎÎÏÎÎ ÏÎ ÎÏÏÏ:"
+"ÎÎÎ ÏÎÎÎÏÏÎÎÎ, ÏÏÎÎÎÎÏÎÎ ÏÎ ÏÏÎÎÏÎÎÎ ÎÎÎÎÏ ÏÏÎÏ ÎÎÎÏÎÎÎÎÏ ÏÏÎ ÎÏÏÎÎÎ XML "
+"ÏÏÎÏÎÎÏÎÎÏÎÏ ÏÎ ÎÎÏÏÎÏÎÎ \"action\":"
 
-#: C/record-collection.js.page:229(p)
+#: C/menubar.vala.page:118(item/code)
+#, no-wrap
 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."
+"\n"
+"&lt;item&gt;\n"
+"  &lt;attribute name=\"label\"&gt;New&lt;/attribute&gt;\n"
+"  &lt;attribute name=\"action\"&gt;app.new&lt;/attribute&gt;\n"
+"&lt;/item&gt;\n"
+"&lt;item&gt;\n"
+"  &lt;attribute name=\"label\"&gt;Quit&lt;/attribute&gt;\n"
+"  &lt;attribute name=\"action\"&gt;app.quit&lt;/attribute&gt;\n"
+"&lt;/item&gt;"
 msgstr ""
-"ÎÏÎÎÎÎ 2: Î ÎÎÏÎÎÎ <code>SELECT</code>. ÎÏÎÏÎÎÎÏÎÎÎÏÎÎ ÏÎ ÎÎÎÎÎÎ ÏÏÎÎÏÏÎÏÎ "
-"ÏÎÏ GDA <code>execute_select_command</code> ÎÎÎ ÎÏÏÏ. ÎÏÎÏÏÏÎÏÎÎ ÎÎÎ "
-"ÎÎÏÎÎÎÎÎÎÎÎ <code>DataModel</code>, ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÎÏÎÏÏÎÏÎ ÎÎÎ "
-"ÎÎÎÎÏÎÏÎ ÏÏÎ ÎÏÎÎÎÏÎ."
+"\n"
+"&lt;item&gt;\n"
+"  &lt;attribute name=\"label\"&gt;New&lt;/attribute&gt;\n"
+"  &lt;attribute name=\"action\"&gt;app.new&lt;/attribute&gt;\n"
+"&lt;/item&gt;\n"
+"&lt;item&gt;\n"
+"  &lt;attribute name=\"label\"&gt;Quit&lt;/attribute&gt;\n"
+"  &lt;attribute name=\"action\"&gt;app.quit&lt;/attribute&gt;\n"
+"&lt;/item&gt;"
 
-#: C/record-collection.js.page:230(p)
+#: C/menubar.vala.page:134(section/p)
 msgid ""
-"Line 3: Create an <code>Iter</code> object, which is used to iterate over "
-"the <code>DataModel</code>'s records."
+"Lines 30 to 80 inclusive of the <link xref=\"menubar.vala#xml-code\"/> "
+"demonstrate the XML code used to create the UI for <gui>Choices</gui> menu."
 msgstr ""
-"ÎÏÎÎÎÎ 3: ÎÎÎÎÎÏÏÎÎÎ ÎÎÏÎÎÎÎÎÎÎÎÏ <code>Iter</code>, ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÎÎÎ "
-"ÎÏÎÎÎÎÎÏÎ ÏÏÎÏ ÎÎÎÏÎÏÎÏ ÏÎÏ <code>DataModel</code>."
+"ÎÏÎÎÎÎÏ 30 ÎÏÏ 80 ÏÏÎÏÎÏÎÎÎÎÎÎÎÏÎÎÎÎÏ ÏÎÏ ÎÎÏÎÎÎÏÎÏ <link xref=\"menubar."
+"vala#xml-code\"/> ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎÎÎÏ ÎÏÎÎÎÎ XML ÎÎÎ ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ UI ÎÎÎ "
+"ÏÎ ÎÎÎÎÏ <gui>ÎÏÎÎÎÎÎÏ</gui>."
 
-#: C/record-collection.js.page:231(p)
+#: C/menubar.vala.page:145(section/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."
+"The complete example files contain both application actions and window "
+"applications. The window actions are the ones usually included in the <link "
+"xref=\"gmenu.vala\">application menu</link> also. It is not good practice to "
+"include window actions in the applcation menu. For demonstration purposes, "
+"the complete example files which follow include XML in the UI file which "
+"creates the application menu which includes a \"New\" and \"Open\" item, and "
+"these are hooked up to the same actions as the menubar items of the same "
+"name."
 msgstr ""
-"ÎÏÎÎÎÎ 7: ÎÏÏÏÎÏ ÎÎÏÎ ÎÏÏ ÏÎÎÏ ÏÎÏ ÎÎÎÏÎÏÎÏ, ÏÎÏÎÎÎÏÎÏ ÏÎÏ ÎÎ ÏÎ ÎÎÎÎÎÎÎ ÏÎÏ "
-"ÎÎÏÎÎÎÎÎÎÎÎÏ <code>Iter</code>. ÎÎ ÎÏÏÏ ÏÎ ÏÎÎÎÎÎ, Î ÎÎÏÎÎÎÎÏÎ <code>iter</"
-"code> ÏÎÏÎÎÏÎÎ ÏÎ ÎÎÎÏÎÎ ÎÎÎÎÏÎÎÎÎÎ ÎÎÎÎÎÎÎÎ. Î ÎÎÎÎÎÎÏ ÏÎÏ <code>move_next</"
-"code> ÎÏÎÏÏÏÎÏÎÎ <code>false</code> ÏÏÎÎ ÏÏÎÎÎÎ ÏÎÎ ÏÎÎÎÏÏÎÎÎ ÎÎÎÏÎÏÎ."
+"ÎÎ ÏÎÎÏÎ ÎÏÏÎÎÎ ÏÎÏÎÎÎÎÎÎÎÏÎÏ ÏÎÏÎÎÏÎÏÎ ÎÎÏÏÏÎÏÎÏ ÏÎÏ ÎÎÎÏÎÎÎÎÏ ÎÏÎÏÎÎÎÎÏ "
+"ÎÎÎ ÎÏÎÏÎÎÎÎÏ ÏÎÏÎÎÏÏÎÏ. ÎÎ ÎÎÎÏÎÎÎÎÏ ÏÎÏÎÎÏÏÎÏ ÎÎÎÎÎ ÎÏÏÎÏ ÏÎÏ ÏÏÎÎÎÏÏ "
+"ÏÏÎÏÎÏÎÎÎÎÎÎÎÎÎÏÎÎ ÏÏÎ <link xref=\"gmenu.vala\">ÎÎÎÎÏ ÎÏÎÏÎÎÎÎÏ</link> "
+"ÎÏÎÏÎÏ. ÎÎÎ ÎÎÎÎÎ ÎÎÎÎ ÏÏÎÎÏÎÎÎ ÎÎ ÏÏÎÏÎÏÎÎÎÎÎÎÎÎÏÎ ÎÎÎÏÎÎÎÎÏ ÏÎÏÎÎÏÏÎÏ ÏÏÎ "
+"ÎÎÎÎÏ ÏÎÏ ÎÏÎÏÎÎÎÎÏ. ÎÎÎ ÏÎÎÏÎÏÏ ÎÏÎÎÎÎÎÎÏ, ÏÎ ÏÎÎÏÎ ÎÏÏÎÎÎ ÏÎÏ "
+"ÏÎÏÎÎÎÎÎÎÎÏÎÏ ÏÎÏ ÎÎÎÎÎÏÎÎÎ ÏÎÏÎÎÏÎÏÎ XML ÏÏÎ ÎÏÏÎÎÎ UI ÏÎÏ ÎÎÎÎÎÏÏÎÎÎ ÏÎ "
+"ÎÎÎÎÏ ÎÏÎÏÎÎÎÎÏ ÏÎÏ ÏÎÏÎÎÎÎÎÎÎÎÎ ÏÎ ÏÏÎÎÏÎÎÎ \"New\" ÎÎÎ \"Open\" ÎÎÎ ÎÏÏÎ "
+"ÏÏÎÎÎÎÎÏÎÎ ÎÎ ÏÎÏ ÎÎÎÎÏ ÎÎÎÏÎÎÎÎÏ ÏÏÏÏ ÏÎ ÏÏÎÎÏÎÎÎ ÏÎÏ ÎÏÎÎÎÎÏ ÎÎÎÎÏ ÏÎÏ "
+"ÎÎÎÎÏ ÎÎÏÎÎÏÎÏ."
 
-#: C/record-collection.js.page:233(p)
-msgid "Lines 8â9: We do two things in each line:"
-msgstr "ÎÏÎÎÎÎÏ 8-9: ÎÎÎÎÏÎÎ ÎÏÎ ÏÏÎÎÎÎÏÎ ÏÎ ÎÎÎÎ ÎÏÎÎÎÎ:"
+#: C/menubar.vala.page:156(section/title)
+msgid "Complete Vala file for this example"
+msgstr "ÎÎÎÏÎÏ ÎÏÏÎÎÎ Vala ÎÎÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ"
 
-#: C/record-collection.js.page:235(p)
+#: C/menubar.vala.page:157(section/code)
+#, no-wrap
 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."
+"public class MyWindow : Gtk.ApplicationWindow {\n"
+"\n"
+"\t/* Callback functions for the window actions. */\n"
+"\tvoid copy_cb (SimpleAction action, Variant? parameter) {\n"
+"\t\tprint (\"\\\"Copy\\\" activated\\n\");\n"
+"\t}\n"
+"\n"
+"\tvoid paste_cb (SimpleAction action, Variant? parameter) {\n"
+"\t\tprint (\"\\\"Paste\\\" activated\\n\");\n"
+"\t}\n"
+"\n"
+"\tvoid shape_cb (SimpleAction action, Variant? parameter) {\n"
+"\t\tprint (\"shape is set to %s\\n\", parameter.get_string(null));\n"
+"\t\taction.set_state (parameter);\n"
+"\t}\n"
+"\n"
+"\t/* Create the window actions. */\n"
+"\tconst ActionEntry[] actions = {\n"
+"\t\t/*{ \"action name\", cb to connect to \"activate\" signal, parameter type,\n"
+"\t\t     initial state, cb to connect to \"change-state\" signal } */\n"
+"\t\t{ \"copy\", copy_cb },\n"
+"\t\t{ \"paste\", paste_cb },\n"
+"\t\t{ \"shape\", shape_cb, \"s\", \"'line'\"}\n"
+"\t};\n"
+"\n"
+"\tinternal MyWindow (MyApplication app) {\n"
+"\t\tObject (application: app, title: \"MenuBar Example\");\n"
+"\t\tthis.set_default_size (200, 200);\n"
+"\n"
+"\t\t/* Setup window actions. */\n"
+"\t\tthis.add_action_entries (actions, this);\n"
+"\t}\n"
+"}\n"
+"\n"
+"class MyApplication: Gtk.Application {\n"
+"\tprotected override void activate () {\n"
+"\t\tnew MyWindow (this).show ();\n"
+"\t}\n"
+"\n"
+"\t/* Callback functions for the application actions. */\n"
+"\tvoid new_cb (SimpleAction action, Variant? parameter) {\n"
+"\t\t//new MyWindow (this).show ();\n"
+"\t\tprint (\"You clicked \\\"New\\\"\\n\");\n"
+"\t}\n"
+"\n"
+"\tvoid quit_cb (SimpleAction action, Variant? parameter) {\n"
+"\t\tprint (\"You clicked \\\"Quit\\\"\\n\");\n"
+"\t\t//this.quit ();  **Bug #674090**\n"
+"\t}\n"
+"\n"
+"\tvoid awesome_cb (SimpleAction action, Variant? parameter) {\n"
+"\t\tvar active = action.get_state ().get_boolean ();\n"
+"\t\taction.set_state (new Variant.boolean (!active));\n"
+"\t\tif (active)\n"
+"\t\t\tprint (\"You unchecked \\\"Awesome\\\"\\n\");\n"
+"\t\telse\n"
+"\t\t\tprint (\"You checked \\\"Awesome\\\"\\n\");\n"
+"\t}\n"
+"\n"
+"\tvoid state_cb (SimpleAction action, Variant? parameter) {\n"
+"\t\tprint (\"state is set to %s\\n\", parameter.get_string(null));\n"
+"\t\taction.set_state (parameter);\n"
+"\t}\n"
+"\n"
+"\t/* Create the application actions. */\n"
+"\tconst ActionEntry[] actions = {\n"
+"\t\t{ \"new\", new_cb },\n"
+"\t\t{ \"quit\", quit_cb },\n"
+"\t\t{ \"awesome\", awesome_cb, null, \"false\" },\n"
+"\t\t{ \"state\", state_cb, \"s\", \"'off'\" }\n"
+"\t};\n"
+"\n"
+"\tprotected override void startup () {\n"
+"\t\tbase.startup ();\n"
+"\n"
+"\t\t/* Setup application actions. */\n"
+"\t\tthis.add_action_entries (actions, this);\n"
+"\n"
+"\t\t/* Setup menubar and app_menu. */\n"
+"\t\t/* Get the UI file. */\n"
+"\t\tvar builder = new Gtk.Builder ();\n"
+"\t\ttry {\n"
+"\t\t\tbuilder.add_from_file (\"menubar.ui\");\n"
+"\t\t} catch (Error e) {\n"
+"\t\t\terror (\"Unable to load file: %s\", e.message);\n"
+"\t\t}\n"
+"\n"
+"\t\t/* Get the menubar from the builder. */\n"
+"\t\tthis.menubar = builder.get_object (\"menubar\") as MenuModel;\n"
+"\n"
+"\t\t/* Get the app_menu from the builder. */\n"
+"\t\tthis.app_menu = builder.get_object (\"appmenu\") as MenuModel;\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* main creates and runs the application. */\n"
+"public int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
 msgstr ""
-"ÎÏÎÏÎ ÏÎÏ ÎÎÎÏÎÎÏ ÏÎÏ <code>Iter</code> <code>get_value_at</code>, ÏÎÏ "
-"ÎÏÎÎÏÎÎ ÎÏÎÎ ÎÎÎ ÏÏÎÏÎÎ: Î ÎÏÎÎÎÏÏ ÏÎÏ ÏÏÎÎÎÏ ÎÎÎ ÎÎÎÎÏÎÏÎ, ÏÎÏ ÎÎÎÎÎÎ ÎÏÏ "
-"0. ÎÎÎÏÏ Î ÎÎÏÎÎÎ ÎÎÏ <code>SELECT</code> ÎÏÎÏÏÏÎÏÎÎ ÎÏÎÎ ÎÏÎ ÏÏÎÎÎÏ, "
-"ÎÎÎÎÏÎÏÎÎ ÏÎÏ ÏÏÎÎÎÏ 0 ÎÎÎ 1."
+"public class MyWindow : Gtk.ApplicationWindow {\n"
+"\n"
+"\t/* Callback functions for the window actions. */\n"
+"\tvoid copy_cb (SimpleAction action, Variant? parameter) {\n"
+"\t\tprint (\"\\\"Copy\\\" activated\\n\");\n"
+"\t}\n"
+"\n"
+"\tvoid paste_cb (SimpleAction action, Variant? parameter) {\n"
+"\t\tprint (\"\\\"Paste\\\" activated\\n\");\n"
+"\t}\n"
+"\n"
+"\tvoid shape_cb (SimpleAction action, Variant? parameter) {\n"
+"\t\tprint (\"shape is set to %s\\n\", parameter.get_string(null));\n"
+"\t\taction.set_state (parameter);\n"
+"\t}\n"
+"\n"
+"\t/* Create the window actions. */\n"
+"\tconst ActionEntry[] actions = {\n"
+"\t\t/*{ \"action name\", cb to connect to \"activate\" signal, parameter type,\n"
+"\t\t     initial state, cb to connect to \"change-state\" signal } */\n"
+"\t\t{ \"copy\", copy_cb },\n"
+"\t\t{ \"paste\", paste_cb },\n"
+"\t\t{ \"shape\", shape_cb, \"s\", \"'line'\"}\n"
+"\t};\n"
+"\n"
+"\tinternal MyWindow (MyApplication app) {\n"
+"\t\tObject (application: app, title: \"MenuBar Example\");\n"
+"\t\tthis.set_default_size (200, 200);\n"
+"\n"
+"\t\t/* Setup window actions. */\n"
+"\t\tthis.add_action_entries (actions, this);\n"
+"\t}\n"
+"}\n"
+"\n"
+"class MyApplication: Gtk.Application {\n"
+"\tprotected override void activate () {\n"
+"\t\tnew MyWindow (this).show ();\n"
+"\t}\n"
+"\n"
+"\t/* Callback functions for the application actions. */\n"
+"\tvoid new_cb (SimpleAction action, Variant? parameter) {\n"
+"\t\t//new MyWindow (this).show ();\n"
+"\t\tprint (\"You clicked \\\"New\\\"\\n\");\n"
+"\t}\n"
+"\n"
+"\tvoid quit_cb (SimpleAction action, Variant? parameter) {\n"
+"\t\tprint (\"You clicked \\\"Quit\\\"\\n\");\n"
+"\t\t//this.quit ();  **Bug #674090**\n"
+"\t}\n"
+"\n"
+"\tvoid awesome_cb (SimpleAction action, Variant? parameter) {\n"
+"\t\tvar active = action.get_state ().get_boolean ();\n"
+"\t\taction.set_state (new Variant.boolean (!active));\n"
+"\t\tif (active)\n"
+"\t\t\tprint (\"You unchecked \\\"Awesome\\\"\\n\");\n"
+"\t\telse\n"
+"\t\t\tprint (\"You checked \\\"Awesome\\\"\\n\");\n"
+"\t}\n"
+"\n"
+"\tvoid state_cb (SimpleAction action, Variant? parameter) {\n"
+"\t\tprint (\"state is set to %s\\n\", parameter.get_string(null));\n"
+"\t\taction.set_state (parameter);\n"
+"\t}\n"
+"\n"
+"\t/* Create the application actions. */\n"
+"\tconst ActionEntry[] actions = {\n"
+"\t\t{ \"new\", new_cb },\n"
+"\t\t{ \"quit\", quit_cb },\n"
+"\t\t{ \"awesome\", awesome_cb, null, \"false\" },\n"
+"\t\t{ \"state\", state_cb, \"s\", \"'off'\" }\n"
+"\t};\n"
+"\n"
+"\tprotected override void startup () {\n"
+"\t\tbase.startup ();\n"
+"\n"
+"\t\t/* Setup application actions. */\n"
+"\t\tthis.add_action_entries (actions, this);\n"
+"\n"
+"\t\t/* Setup menubar and app_menu. */\n"
+"\t\t/* Get the UI file. */\n"
+"\t\tvar builder = new Gtk.Builder ();\n"
+"\t\ttry {\n"
+"\t\t\tbuilder.add_from_file (\"menubar.ui\");\n"
+"\t\t} catch (Error e) {\n"
+"\t\t\terror (\"Unable to load file: %s\", e.message);\n"
+"\t\t}\n"
+"\n"
+"\t\t/* Get the menubar from the builder. */\n"
+"\t\tthis.menubar = builder.get_object (\"menubar\") as MenuModel;\n"
+"\n"
+"\t\t/* Get the app_menu from the builder. */\n"
+"\t\tthis.app_menu = builder.get_object (\"appmenu\") as MenuModel;\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* main creates and runs the application. */\n"
+"public int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
+
+#: C/menubar.vala.page:160(section/title)
+msgid "Mnemonics"
+msgstr "ÎÎÎÎÎÎÎÎÎ"
+
+#: C/menubar.vala.page:166(section/title)
+msgid "Accelerators"
+msgstr "ÎÏÎÏÎÏÏÎÏÎÏ"
 
-#: C/record-collection.js.page:236(p)
+#: C/menubar.vala.page:182(section/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>."
+"<code mime=\"application/xml\">&lt;attribute name=\"label\" translatable="
+"\"yes\"&gt;Quit&lt;/attribute&gt;</code>"
 msgstr ""
-"Î ÎÎÎÎÎÎÏ <code>get_value_at</code> ÎÏÎÏÏÏÎÏÎÎ ÏÎ ÏÎÎÎÎ ÏÎ ÎÎÏÏÎ "
-"<code>GValue</code> ÏÎÏ GLib. ÎÎÎÏ ÎÏÎÏÏ ÏÏÏÏÎÏ ÎÎÏÎÏÏÎÏÎÏ ÎÏÏÎÏ ÏÎÏ ÎÎÏÏÎÏ "
-"ÏÎ ÏÏÎÎÎÎÎÏÎÎÏÎ ÎÎÎÎÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ ÎÎÎÎÎÎ ÏÏÎÎÏÏÎÏÎ ÏÎÏ GDA "
-"<code>value_stringify</code>. ÎÏÏÏ ÎÎÎÎÏÎÎ ÎÎÏ ÎÎÎ ÎÏÎÎÎÎÎÏÎÏÎÎ ÏÎ "
-"ÎÏÎÏÎÎÎÏÎÎÏÎ ÏÏÎÏ ÎÎÏÎÎÎÎÏÎÏ <code>id_field</code> ÎÎÎ <code>name_field</"
-"code>."
+"<code mime=\"application/xml\">&lt;attribute name=\"label\" translatable="
+"\"yes\"&gt;Quit&lt;/attribute&gt;</code>"
 
-#: C/record-collection.js.page:239(p)
+#: C/menubar.vala.page:191(item/p)
 msgid ""
-"Line 11: Concatenate the two fields to make one text line, separated by "
-"<code>\"=&gt;\"</code>, and store it in the <code>text</code> variable."
+"<link href=\"http://valadoc.org/gio-2.0/GLib.ActionEntry.html\";>Glib."
+"ActionEntry</link>"
 msgstr ""
-"ÎÏÎÎÎÎ 11: ÎÏÎÎÎÏÏÎ ÏÏÎ ÎÏÎ ÏÎÎÎÏÎ ÎÎÎ ÏÎ ÎÎÎÎÎÏÏÎÎÎ ÎÎÎÏ ÎÏÎÎÎÎÏ ÎÎÎÎÎÎÎÏ, "
-"ÎÎÎÏÏÏÎÎÏÎÎÎÎÏ ÎÎ <code>\"=&gt;\"</code> ÎÎÎ ÎÏÎÎÎÎÎÏÏÎ ÏÎÏ ÏÏÎ ÎÎÏÎÎÎÎÏÎ "
-"<code>text</code>."
+"<link href=\"http://valadoc.org/gio-2.0/GLib.ActionEntry.html\";>Glib."
+"ActionEntry</link>"
 
-#: C/record-collection.js.page:240(p)
+#: C/menubar.vala.page:192(item/p)
 msgid ""
-"Line 14: After the loop is finished, we have all the records formatted in "
-"the <code>text</code> variable. In this line we just set the contents of the "
-"<code>TextView</code> with that variable."
+"<link href=\"http://valadoc.org/gio-2.0/Gtk.Builder.html\";>Gtk.Builder</link>"
 msgstr ""
-"ÎÏÎÎÎÎ 14: ÎÎÏÎ ÏÎ ÏÎÎÎÏ ÏÎÏ ÎÏÏÏÎÏ, ÎÏÎÏÎÎ ÏÎÎÏ ÏÎÏ ÎÎÏÏÎÏÎÎÎÎÎÎÎÏ ÎÎÎÏÎÏÎÏ "
-"ÏÏÎ ÎÎÏÎÎÎÎÏÎ <code>text</code>. ÎÎ ÎÏÏÎ ÏÎ ÎÏÎÎÎÎ ÎÏÎÎÎÏÎÎ ÎÏÎÎ ÏÎ "
-"ÏÎÏÎÎÏÏÎÎÎÎ ÏÎÏ <code>TextView</code> ÎÎ ÎÏÏÎ ÏÎ ÎÎÏÎÎÎÎÏÎ."
+"<link href=\"http://valadoc.org/gio-2.0/Gtk.Builder.html\";>Gtk.Builder</link>"
 
-#: C/record-collection.js.page:241(p)
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/menubutton.js.page:21(media) C/menubutton.py.page:27(media)
+#: C/menubutton.vala.page:21(media)
+msgctxt "_"
 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."
+"external ref='media/menubutton.png' md5='1feb7b836a522c3007079d4420621d9d'"
 msgstr ""
-"ÎÏÎÎÎÎ 15: ÎÎÏÎÎÎÏÎ ÏÎÏ ÎÏÎÎÎÎÏ ÏÏÎ ÎÎÎÏÎÏÏÎ ÏÏÎÎ ÏÎÎÎÎÎ, ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ "
-"ÎÎÎÎÎÎ <code>get_n_rows</code> ÏÎÏ <code>DataModel</code>."
+"external ref='media/menubutton.png' md5='1feb7b836a522c3007079d4420621d9d'"
 
-#: C/record-collection.js.page:246(title)
-msgid "Inserting"
-msgstr "ÎÎÏÎÎÏÎÎ"
+#: C/menubutton.js.page:7(info/title)
+msgctxt "text"
+msgid "MenuButton (JavaScript)"
+msgstr "MenuButton (JavaScript)"
 
-#: C/record-collection.js.page:247(p)
-msgid ""
-"OK, we know how to connect to a database and how to select rows from a "
-"table. Now it's time to do an <code>INSERT</code> on the table. Do you "
-"remember above, in the method <code>setupWindow</code> we connected the "
-"<gui>Insert</gui> button's <code>clicked</code> signal to the method "
-"<code>_insertClicked</code>? Let's see the implementation of this method."
-msgstr ""
-"ÎÎÏÎÎÎÎ, ÎÎÏÎÏÎÎ ÏÏÏ ÎÎ ÏÏÎÎÎÎÎÏÎÎ ÎÎ ÎÎÎ ÎÎÏÎ ÎÎÎÎÎÎÎÏÎ ÎÎÎ ÏÏÏ ÎÎ "
-"ÎÎÎÎÎÎÎÏÎÎ ÎÏÎÎÎÎÏ ÎÏÏ ÎÎÎÎ ÏÎÎÎÎÎ. ÎÏÏÎ ÎÎÎÎÎ ÏÏÎ ÎÎ ÎÎÎÎÏÎÎ ÎÎÎÎ "
-"<code>INSERT</code> ÏÏÎÎ ÏÎÎÎÎÎ. ÎÏÎÏÏÎÏÏÎ ÏÎÏÎÏÎÎÏ, ÏÏÎ ÎÎÎÎÎÎ "
-"<code>setupWindow</code> ÏÏÎÎÎÏÎÎÎ ÏÎ <gui>Insert</gui> ÏÎÏ ÎÎÏÎÏÎÎÏ ÎÎ ÏÎ "
-"ÏÎÎÎ <code>clicked</code> ÏÏÎ ÎÎÎÎÎÎ <code>_insertClicked</code>; ÎÏ ÎÎÏÎÎ "
-"ÏÎÎ ÏÎÎÏÎÎÎÏÎ ÎÏÏÎÏ ÏÎÏ ÎÎÎÏÎÎÏ."
+#: C/menubutton.js.page:12(credit/name)
+msgid "Anna Zacchi"
+msgstr "Anna Zacchi"
+
+#: C/menubutton.js.page:17(info/desc) C/menubutton.py.page:23(info/desc)
+#: C/menubutton.vala.page:17(info/desc)
+msgid "A widget that shows a menu when clicked on"
+msgstr "ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÏÎÏ ÎÎÏÎÎÎÎÎÎ ÎÎÎ ÎÎÎÎÏ ÏÏÎÎ ÏÎÏÎÎÎÎ"
+
+#: C/menubutton.js.page:20(page/title) C/menubutton.py.page:26(page/title)
+#: C/menubutton.vala.page:20(page/title)
+msgid "MenuButton"
+msgstr "MenuButton"
 
-#: C/record-collection.js.page:268(p)
+#: C/menubutton.js.page:22(page/p) C/menubutton.py.page:28(page/p)
+#: C/menubutton.vala.page:22(page/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:"
+"The GtkMenuButton widget is used to display a menu when clicked on. This "
+"menu can be provided either as a GtkMenu, or an abstract GMenuModel. The "
+"GtkMenuButton widget can hold any valid child widget. That is, it can hold "
+"almost any other standard GtkWidget. The most commonly used child is the "
+"provided GtkArrow."
 msgstr ""
-"ÎÎÎÎÎÎ ÏÎ ÏÏÎÏÎ ÏÏÎ ÏÏÎÎÏÏÎÏÎÏÎ ÎÏÎÎÎÎÎÏ ÏÎÏ GDA "
-"<code>execute_select_command</code> ÎÎÎ <code>execute_non_select_command</"
-"code> ÎÎÎ ÎÏÎÎÎÏÎ ÎÎÏÎÎÎÏÎ ÎÎÏÎÎÏÎ SQL ÏÏÎ ÎÎÏÎ ÎÎÎÎÎÎÎÏÎ. ÎÎ GDA ÎÏÎÏÏÎÏÎÎ "
-"ÏÎÎ ÎÎÏÎÏÎÎÏÎ ÎÎÎÏ ÏÏÏÏÎÏÎÏ SQL ÎÎÎÎÏÎ, ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ ÎÎÏÎÎÎÎÎÎÎÎ ÏÎÏ "
-"<code>SqlBuilder</code>. ÎÎÎÎ ÎÎÎÎÎ ÏÎ ÎÏÎÎÎ ÏÎÏ; GDA ÎÎ ÏÎÏÎÎÎÎ ÏÎÎ ÏÏÏÏÎÏÎ "
-"SQL ÎÏÎÎÎÎÎÎ ÎÎÎ ÎÎ ÎÏÎÎÏÏÏÎÎÎ ÎÎÎ ÏÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎÎÎ ÏÎÏÎÏÎ ÏÏÎÎÎÏÎÏ (ÎÎ "
-"ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÎÎÎ ÎÎÎÎÎÎÏÎ SQL ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÎ Î ÏÎÏÎÏÎÏ). ÎÏ "
-"ÎÎÎÎÏÎÏÎÏÎÎ ÏÎÎ ÎÏÎÎÎÎ:"
+"ÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ GtkMenuButton ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÎÎÎ ÏÎÎ ÎÎÏÎÎÎÏÎ ÎÎÏÏ "
+"ÎÎÎÎÏ ÏÏÎÎ ÏÎÏÎÎÏÎÎ. ÎÏÏÏ ÏÎ ÎÎÎÎÏ ÎÏÎÏÎÎ ÎÎ ÎÎÎÎÎ ÎÎÏÎ ÏÏ GtkMenu, Î ÏÏ ÎÎÎ "
+"ÎÏÎÏÏÎÏÎÎÎÎ GMenuModel. ÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ GtkMenuButton ÎÏÎÏÎÎ ÎÎ "
+"ÎÏÎÏÎÏÎÎ ÎÏÎÎÎÎÎÏÎÏÎ ÎÏÎÎÏÏÎÎÏ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ. ÎÎÎÎÎÎ, ÎÏÎÏÎÎ ÎÎ ÎÏÎÏÎÏÎÎ "
+"ÏÏÎÎÏÎ ÎÎÎÎ ÎÎÎÎ ÏÏÏÎÎÏ GtkWidget. ÎÎ ÏÎÎ ÏÏÏÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎÎÎ ÎÏÎÎÏÏÎÎÏ "
+"ÎÎÎÎÎ ÏÎ ÏÎÏÎÏÏÎÎÎÎ GtkArrow."
+
+#: C/menubutton.js.page:26(note/p) C/menubutton.py.page:30(note/p)
+#: C/menubutton.vala.page:26(note/p)
+msgid "You need to be running GNOME 3.6 for the MenuButton to work."
+msgstr "ÎÏÎÎÎÎÎÏÎÎ ÎÎ ÏÏÎÎÎÏÎ ÏÎ GNOME 3.6 ÎÎÎ ÎÎ ÎÎÏÎÎÏÎÎ ÏÎ MenuButton."
 
-#: C/record-collection.js.page:272(p)
+#: C/menubutton.js.page:27(page/code)
+#, no-wrap
 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."
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gio = imports.gi.Gio;\n"
+"const GLib = imports.gi.GLib;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"const Application = new Lang.Class ({\n"
+"    Name: 'Application',\n"
+"\n"
+"    //create the application\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application ({ application_id: 'org.example.myapp',\n"
+"                                                  flags: Gio.ApplicationFlags.FLAGS_NONE });\n"
+"\n"
+"       //connect to 'activate' and 'startup' signals to the callback functions\n"
+"       this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"       this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    //create the UI (in this case it's just the ApplicationWindow)\n"
+"    _buildUI: function() {\n"
+"        this._window = new Gtk.ApplicationWindow({ application: this.application,\n"
+"                                                   window_position: Gtk.WindowPosition.CENTER,\n"
+"                                                   title: \"Welcome to GNOME\" });\n"
+"        this._window.set_default_size(600, 400);\n"
+"        this.grid = new Gtk.Grid();\n"
+"        this._window.add(this.grid);\n"
+"\n"
+"\n"
+"        this._menuButton = new Gtk.MenuButton();\n"
+"        this.grid.attach(this._menuButton, 0, 0, 1, 1 );\n"
+"        this.menu = new Gtk.Menu.new_from_model(this.menuModel);\n"
+"\n"
+"        this.menu.show();\n"
+"        this._menuButton.set_menu(this.menu);\n"
+"        this._menuButton.set_size_request(80, 35);\n"
+"        this._menuButton.show();\n"
+"\n"
+"        this._window.show_all();\n"
+"    },\n"
+"\n"
+"    _showNew: function() {\n"
+"    print(\"New Menu. It doesn't do anything. It is only a demonstration.\");\n"
+"    },\n"
+"\n"
+"    _showAbout: function() {\n"
+"        print(\"No AboutDialog here.  This is only a demonstration.\");\n"
+"    },\n"
+"\n"
+"    //create the menu items and connect the signals to the callback functions.\n"
+"    _initMenus: function() {\n"
+"        let newAction = new Gio.SimpleAction({ name: 'new' });\n"
+"        newAction.connect('activate', Lang.bind(this,\n"
+"            function() {\n"
+"                this._showNew();\n"
+"            }));\n"
+"        this.application.add_action(newAction);\n"
+"\n"
+"        let aboutAction = new Gio.SimpleAction({ name: 'about' });\n"
+"        aboutAction.connect('activate', Lang.bind(this,\n"
+"            function() {\n"
+"                this._showAbout();\n"
+"            }));\n"
+"        this.application.add_action(aboutAction);\n"
+"\n"
+"        let quitAction = new Gio.SimpleAction({ name: 'quit' });\n"
+"        quitAction.connect('activate', Lang.bind(this,\n"
+"            function() {\n"
+"                this._window.destroy();\n"
+"            }));\n"
+"         this.application.add_action(quitAction);\n"
+"\n"
+"        this.menuModel = new Gio.Menu();\n"
+"\n"
+"        this.menuItemNew = Gio.MenuItem.new(\"New\", 'app.new');\n"
+"        this.menuItemAbout = Gio.MenuItem.new(\"About\", 'app.about');\n"
+"        this.fileMenuItem = Gio.MenuItem.new(\"Other\", null);\n"
+"\n"
+"        this.menuModel.append_item(this.menuItemNew);\n"
+"        this.menuModel.append_item(this.menuItemAbout);\n"
+"\n"
+"        //submenu\n"
+"        this.subMenu = new Gio.Menu();\n"
+"        this.fileMenuItem.set_submenu(this.subMenu);\n"
+"        this.menuItemQuit = Gio.MenuItem.new(\"Quit\", 'app.quit');\n"
+"        this.subMenu.append_item(this.menuItemQuit);\n"
+"        this.menuModel.append_item(this.fileMenuItem);\n"
+"    },\n"
+"\n"
+"    //callback function for 'activate' signal\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    //callback function for 'startup' signal\n"
+"    _onStartup: function() {\n"
+"        //You must call _initMenus() before calling _buildUI().\n"
+"        this._initMenus();\n"
+"        this._buildUI();\n"
+"    }\n"
+"});\n"
+"\n"
+"//run the application\n"
+"let app = new Application();\n"
+"app.application.run(ARGV);\n"
 msgstr ""
-"ÎÏÎÎÎÎÏ 2-3: ÎÎÎÎÎÏÎ ÎÎÎ Î ÏÏÎÏÏÎÏ ÏÏÎÏÎÎÏÏÏÎ ÏÎÎ ÏÎ ÏÎÎÎÎ. Î ÎÏÎÎÎÎÏ ÎÎÎ "
-"ÏÎÎ ÎÎÎÏÏÎÎÎ ÎÎÎÎÎÎ <code>_validateFields</code> ÎÎÎÎÎ ÏÏÎÎÎÎÏÎÎÎ ÎÏÎÏÏ ÎÎÎ "
-"ÎÏÎÏÎÎÏÎ ÎÎ ÏÎÎ ÎÎÎÎÎÏÎÏÎ ÏÏÎÎ ÏÎÎÏÎ ÏÎÏÎÏÏÎÎÏÎ ÏÎÎÎÎÎÏ ÎÏÎÎÎÎ."
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gio = imports.gi.Gio;\n"
+"const GLib = imports.gi.GLib;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"const Application = new Lang.Class ({\n"
+"    Name: 'Application',\n"
+"\n"
+"    //create the application\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application ({ application_id: 'org.example.myapp',\n"
+"                                                  flags: Gio.ApplicationFlags.FLAGS_NONE });\n"
+"\n"
+"       //connect to 'activate' and 'startup' signals to the callback functions\n"
+"       this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"       this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    //create the UI (in this case it's just the ApplicationWindow)\n"
+"    _buildUI: function() {\n"
+"        this._window = new Gtk.ApplicationWindow({ application: this.application,\n"
+"                                                   window_position: Gtk.WindowPosition.CENTER,\n"
+"                                                   title: \"Welcome to GNOME\" });\n"
+"        this._window.set_default_size(600, 400);\n"
+"        this.grid = new Gtk.Grid();\n"
+"        this._window.add(this.grid);\n"
+"\n"
+"\n"
+"        this._menuButton = new Gtk.MenuButton();\n"
+"        this.grid.attach(this._menuButton, 0, 0, 1, 1 );\n"
+"        this.menu = new Gtk.Menu.new_from_model(this.menuModel);\n"
+"\n"
+"        this.menu.show();\n"
+"        this._menuButton.set_menu(this.menu);\n"
+"        this._menuButton.set_size_request(80, 35);\n"
+"        this._menuButton.show();\n"
+"\n"
+"        this._window.show_all();\n"
+"    },\n"
+"\n"
+"    _showNew: function() {\n"
+"    print(\"New Menu. It doesn't do anything. It is only a demonstration.\");\n"
+"    },\n"
+"\n"
+"    _showAbout: function() {\n"
+"        print(\"No AboutDialog here.  This is only a demonstration.\");\n"
+"    },\n"
+"\n"
+"    //create the menu items and connect the signals to the callback functions.\n"
+"    _initMenus: function() {\n"
+"        let newAction = new Gio.SimpleAction({ name: 'new' });\n"
+"        newAction.connect('activate', Lang.bind(this,\n"
+"            function() {\n"
+"                this._showNew();\n"
+"            }));\n"
+"        this.application.add_action(newAction);\n"
+"\n"
+"        let aboutAction = new Gio.SimpleAction({ name: 'about' });\n"
+"        aboutAction.connect('activate', Lang.bind(this,\n"
+"            function() {\n"
+"                this._showAbout();\n"
+"            }));\n"
+"        this.application.add_action(aboutAction);\n"
+"\n"
+"        let quitAction = new Gio.SimpleAction({ name: 'quit' });\n"
+"        quitAction.connect('activate', Lang.bind(this,\n"
+"            function() {\n"
+"                this._window.destroy();\n"
+"            }));\n"
+"         this.application.add_action(quitAction);\n"
+"\n"
+"        this.menuModel = new Gio.Menu();\n"
+"\n"
+"        this.menuItemNew = Gio.MenuItem.new(\"New\", 'app.new');\n"
+"        this.menuItemAbout = Gio.MenuItem.new(\"About\", 'app.about');\n"
+"        this.fileMenuItem = Gio.MenuItem.new(\"Other\", null);\n"
+"\n"
+"        this.menuModel.append_item(this.menuItemNew);\n"
+"        this.menuModel.append_item(this.menuItemAbout);\n"
+"\n"
+"        //submenu\n"
+"        this.subMenu = new Gio.Menu();\n"
+"        this.fileMenuItem.set_submenu(this.subMenu);\n"
+"        this.menuItemQuit = Gio.MenuItem.new(\"Quit\", 'app.quit');\n"
+"        this.subMenu.append_item(this.menuItemQuit);\n"
+"        this.menuModel.append_item(this.fileMenuItem);\n"
+"    },\n"
+"\n"
+"    //callback function for 'activate' signal\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    //callback function for 'startup' signal\n"
+"    _onStartup: function() {\n"
+"        //You must call _initMenus() before calling _buildUI().\n"
+"        this._initMenus();\n"
+"        this._buildUI();\n"
+"    }\n"
+"});\n"
+"\n"
+"//run the application\n"
+"let app = new Application();\n"
+"app.application.run(ARGV);\n"
 
-#: C/record-collection.js.page:273(p)
+#: C/menubutton.js.page:32(item/p) C/menubutton.vala.page:32(item/p)
 msgid ""
-"Line 5: The faster way of doing the <code>INSERT</code>. It's commented out "
-"as we want to show how to use the <code>SqlBuilder</code> object to build a "
-"SQL statement portable across databases."
+"<link href=\"http://developer.gnome.org/gtk3/3.5/gtk3-GtkMenuButton.html";
+"\">MenuButton</link>"
 msgstr ""
-"ÎÏÎÎÎÎ 5: Î ÎÏÎÎÎÏÏÏÎÏÎÏ ÏÏÏÏÎÏ ÎÎÎ ÎÎÏÎÎÎÏÎ ÏÎÏ <code>INSERT</code>. "
-"ÎÏÎÎÎÎÎÎÏÎÎ, ÎÎÎÏÏ ÎÎÎÎÏÎÎ ÎÎ ÎÎÏÎÎÎÏÎÏÎÎ ÏÎ ÏÏÎÏÎ ÏÎÏ ÎÎÏÎÎÎÎÎÎÎÎÏ "
-"<code>SqlBuilder</code> ÎÎÎ ÎÎÏÎÏÎÎÏÎ ÎÎÎÏ ÏÏÏÏÎÏÎÏ SQL ÏÎÏÎÏÎÏ ÎÎÏÎ ÎÏÏ ÏÎÏ "
-"ÎÎÏÎÎÏ ÎÎÎÎÎÎÎÏÎ."
+"<link href=\"http://developer.gnome.org/gtk3/3.5/gtk3-GtkMenuButton.html";
+"\">MenuButton</link>"
 
-#: C/record-collection.js.page:274(p)
-msgid ""
-"Line 7: Create the <code>SqlBuilder</code> object. We must pass the type of "
-"statement we are going to build. It can be <code>SELECT</code>, "
-"<code>UPDATE</code>, <code>INSERT</code> or <code>DELETE</code>."
-msgstr ""
-"ÎÏÎÎÎÎ 7: ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ ÎÎÏÎÎÎÎÎÎÎÎÏ <code>SqlBuilder</code>. ÎÏÎÏÎÎ ÎÎ "
-"ÏÎÏÎÏÎÏÎÎ ÏÎÎ ÏÏÏÎ ÏÎÏ ÏÏÏÏÎÏÎÏ ÏÎÏ ÏÏÏÎÎÎÏÎÎ ÎÎ ÎÎÏÎÏÎÎÏÎÏÎÏÎÎ. ÎÏÎÏÎÎ ÎÎ "
-"ÎÎÎÎÎ <code>SELECT</code>, <code>UPDATE</code>, <code>INSERT</code> Î "
-"<code>DELETE</code>."
+#: C/menubutton.py.page:7(info/title) C/tooltip.py.page:7(info/title)
+msgctxt "text"
+msgid "MenuButton"
+msgstr "MenuButton"
 
-#: C/record-collection.js.page:275(p)
+#: C/menubutton.py.page:36(section/code)
+#, no-wrap
 msgid ""
-"Line 8: Set the name of the table on which the built statement will operate "
-"(it will generate <code>INSERT INTO demo</code>)"
+"from gi.repository import Gtk\n"
+"from gi.repository import Gio\n"
+"import sys\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"Menubutton Example\", application=app)\n"
+"        self.set_default_size(600, 400)\n"
+"\n"
+"        grid = Gtk.Grid()\n"
+"        \n"
+"        # a menubutton\n"
+"        menubutton = Gtk.MenuButton()\n"
+"        menubutton.set_size_request(80, 35)\n"
+"        \n"
+"        grid.attach(menubutton, 0, 0, 1, 1)\n"
+"        \n"
+"        # a menu with two actions\n"
+"        menumodel = Gio.Menu()\n"
+"        menumodel.append(\"New\", \"app.new\")\n"
+"        menumodel.append(\"About\", \"win.about\")\n"
+"\n"
+"        # a submenu with one action for the menu\n"
+"        submenu = Gio.Menu()\n"
+"        submenu.append(\"Quit\", \"app.quit\")\n"
+"        menumodel.append_submenu(\"Other\", submenu)\n"
+"\n"
+"        # the menu is set as the menu of the menubutton\n"
+"        menubutton.set_menu_model(menumodel)\n"
+"\n"
+"        # the action related to the window (about)\n"
+"        about_action = Gio.SimpleAction.new(\"about\", None)\n"
+"        about_action.connect(\"activate\", self.about_callback)\n"
+"        self.add_action(about_action)\n"
+"        \n"
+"        self.add(grid)\n"
+"\n"
+"    # callback for \"about\"\n"
+"    def about_callback(self, action, parameter):\n"
+"        print \"You clicked \\\"About\\\"\"\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"        #  the actions related to the application\n"
+"        new_action = Gio.SimpleAction.new(\"new\", None)\n"
+"        new_action.connect(\"activate\", self.new_callback)\n"
+"        self.add_action(new_action)\n"
+"        \n"
+"        quit_action = Gio.SimpleAction.new(\"quit\", None)\n"
+"        quit_action.connect(\"activate\", self.quit_callback)\n"
+"        self.add_action(quit_action)\n"
+"    \n"
+"    # callback functions for the actions related to the application\n"
+"    def new_callback(self, action, parameter):\n"
+"        print \"You clicked \\\"New\\\"\"\n"
+"\n"
+"    def quit_callback(self, action, parameter):\n"
+"        print \"You clicked \\\"Quit\\\"\"\n"
+"        self.quit()\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
 msgstr ""
-"ÎÏÎÎÎÎ 8: ÎÏÎÏÎÏÏ ÏÎÏ ÎÎÏÎÎÏÎÏ ÏÎÏ ÏÎÎÎÎÎ ÏÏÎÎ ÎÏÎÎÎ Î ÎÎÏÎÏÎÎÏÎÏÎÎÎÎ "
-"ÏÏÏÏÎÏÎ ÎÎ ÎÎÎÏÎÏÏÎÎÏÎÎ (ÎÎ ÏÎÏÎÎÎÎ <code>INSERT INTO demo</code>)"
+"from gi.repository import Gtk\n"
+"from gi.repository import Gio\n"
+"import sys\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"Menubutton Example\", application=app)\n"
+"        self.set_default_size(600, 400)\n"
+"\n"
+"        grid = Gtk.Grid()\n"
+"        \n"
+"        # a menubutton\n"
+"        menubutton = Gtk.MenuButton()\n"
+"        menubutton.set_size_request(80, 35)\n"
+"        \n"
+"        grid.attach(menubutton, 0, 0, 1, 1)\n"
+"        \n"
+"        # a menu with two actions\n"
+"        menumodel = Gio.Menu()\n"
+"        menumodel.append(\"New\", \"app.new\")\n"
+"        menumodel.append(\"About\", \"win.about\")\n"
+"\n"
+"        # a submenu with one action for the menu\n"
+"        submenu = Gio.Menu()\n"
+"        submenu.append(\"Quit\", \"app.quit\")\n"
+"        menumodel.append_submenu(\"Other\", submenu)\n"
+"\n"
+"        # the menu is set as the menu of the menubutton\n"
+"        menubutton.set_menu_model(menumodel)\n"
+"\n"
+"        # the action related to the window (about)\n"
+"        about_action = Gio.SimpleAction.new(\"about\", None)\n"
+"        about_action.connect(\"activate\", self.about_callback)\n"
+"        self.add_action(about_action)\n"
+"        \n"
+"        self.add(grid)\n"
+"\n"
+"    # callback for \"about\"\n"
+"    def about_callback(self, action, parameter):\n"
+"        print \"You clicked \\\"About\\\"\"\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"        #  the actions related to the application\n"
+"        new_action = Gio.SimpleAction.new(\"new\", None)\n"
+"        new_action.connect(\"activate\", self.new_callback)\n"
+"        self.add_action(new_action)\n"
+"        \n"
+"        quit_action = Gio.SimpleAction.new(\"quit\", None)\n"
+"        quit_action.connect(\"activate\", self.quit_callback)\n"
+"        self.add_action(quit_action)\n"
+"    \n"
+"    # callback functions for the actions related to the application\n"
+"    def new_callback(self, action, parameter):\n"
+"        print \"You clicked \\\"New\\\"\"\n"
+"\n"
+"    def quit_callback(self, action, parameter):\n"
+"        print \"You clicked \\\"Quit\\\"\"\n"
+"        self.quit()\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
 
-#: C/record-collection.js.page:276(p)
-msgid ""
-"Lines 9â10: Set the fields and its values that will be part of the "
-"statement. The first argument is the field name (as in the table). The "
-"second one is the value for that field."
-msgstr ""
-"ÎÏÎÎÎÎÏ 9-10: ÎÏÎÏÎÏÏ ÏÏÎ ÏÎÎÎÏÎ ÎÎÎ ÏÏÎ ÏÎÎÏÎ ÏÎÏÏ ÏÎÏ ÎÎ ÎÎÎÎÎ ÏÎÎÎÎ ÏÎÏ "
-"ÏÏÏÏÎÏÎÏ. ÎÎ ÏÏÏÏÎ ÏÏÎÏÎÎ ÎÎÎÎÎ ÏÎ ÏÎÎÎÎ ÏÎÎÎÎÏ (ÏÏÏÏ ÏÏÎÎ ÏÎÎÎÎÎ). ÎÎ "
-"ÎÎÏÏÎÏÎ ÏÏÎÏÎÎ ÎÎÎÎÎ Î ÏÎÎÎ ÎÎÎ ÎÏÏÏ ÏÎ ÏÎÎÎÎ."
+#: C/menubutton.py.page:40(section/title)
+msgid "Useful methods for a MenuButton widget"
+msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ MenuButton"
 
-#: C/record-collection.js.page:277(p)
+#: C/menubutton.py.page:41(section/p)
 msgid ""
-"Line 11: Get the dynamically generated <code>Statement</code> object, which "
-"represents a SQL statement."
+"The positioning of the menu is determined by the \"direction\" property of "
+"the menu button and the \"halign\" or \"valign\" properties of the menu. For "
+"example, when the direction is <code>Gtk.ArrowType.DOWN</code> (other "
+"option: <code>UP</code>) and the horizontal alignment is <code>Gtk.Align."
+"START</code> (other options: <code>CENTER</code> and <code>END</code>), the "
+"menu will be positioned below the button, with the starting edge (depending "
+"on the text direction) of the menu aligned with the starting edge of the "
+"button. If there is not enough space below the button, the menu is popped up "
+"above the button instead. If the alignment would move part of the menu "
+"offscreen, it is 'pushed in'."
 msgstr ""
-"ÎÏÎÎÎÎ 11: ÎÎÏÎ ÏÎÏ ÎÏÎÎÎÎÎÎ ÎÎÎÎÎÏÏÎÎÎÎÎÎÏ ÎÎÏÎÎÎÎÎÎÎÎÏ <code>Statement</"
-"code>, ÏÎÏ ÎÎÏÎÏÏÎÏÏÏÎÏÎÎ ÎÎÎ ÏÏÏÏÎÏÎ SQL."
-
-#: C/record-collection.js.page:278(p)
-msgid "Line 12: Finally, execute the SQL statement (<code>INSERT</code>)."
-msgstr "ÎÏÎÎÎÎ 12: ÎÎÎÎÎÎ, ÎÎÏÎÎÎÏÎ ÏÎÏ ÏÏÏÏÎÏÎÏ SQL (<code>INSERT</code>)."
+"Î ÏÎÏÎÎÎÏÎÏÎ ÎÎÏÏ ÎÎÎÎÏ ÎÎÎÎÏÎÎÎÏÎÎ ÎÏÏ ÏÎÎ ÎÎÎÏÏÎÏÎ \"direction\" ÏÎÏ "
+"ÎÎÏÎÏÎÎÏ ÎÎÎÎÏ ÎÎÎ ÏÎÏ ÎÎÎÏÏÎÏÎÏ ÏÎÏ ÎÎÎÎÏ \"halign\" Î \"valign\". ÎÎÎ "
+"ÏÎÏÎÎÎÎÎÎÎ, ÏÏÎÎ Î ÎÎÏÎÏÎÏÎÏÎ ÎÎÎÎÎ <code>Gtk.ArrowType.DOWN</code> (ÎÎÎÎ "
+"ÎÏÎÎÎÎÎ: <code>UP</code>) ÎÎÎ Î ÎÏÎÎÏÎÏÎÎ ÏÏÎÎÏÎÏÎ ÎÎÎÎÎ <code>Gtk.Align."
+"START</code> (ÎÎÎÎÏ ÎÏÎÎÎÎÎÏ: <code>CENTER</code> ÎÎÎ <code>END</code>), ÏÎ "
+"ÎÎÎÎÏ ÎÎ ÏÎÏÎÎÎÏÎÎÎÎ ÎÎÏÏ ÎÏÏ ÏÎ ÎÎÏÎÏÎ, ÎÎ ÏÎ ÎÏÏÎÎÏ ÎÎÏÎ (ÎÎÎÎÎÎÎ ÎÎ ÏÎÎ "
+"ÎÎÏÎÏÎÏÎÏÎ ÏÎÏ ÎÎÎÎÎÎÎÏ) ÏÎÏ ÎÎÎÎÏ ÏÏÎÎÏÎÏÎÎÎÎ ÎÎ ÏÎ ÎÏÏÎÎÏ ÎÎÏÎ ÏÎÏ "
+"ÎÎÏÎÏÎÎÏ. ÎÎÎ ÎÎÎ ÏÏÎÏÏÎÎ ÎÏÎÎÏÏÏ ÏÏÏÎÏ ÎÎÏÏ ÎÏÏ ÏÎ ÎÎÏÎÏÎ, ÏÎ ÎÎÎÎÏ "
+"ÎÎÎÎÏÎÏÎÎ ÏÎÎÏ ÎÏÏ ÏÎ ÎÎÏÎÏÎ. ÎÎÎ Î ÏÏÎÎÏÎÏÎ ÎÏÎÏÎÎ ÎÎ ÎÎÏÎÎÎÎÎÏÎÎ ÎÎÏÎÏ ÏÎÏ "
+"ÎÎÎÎÏ ÎÎÏÏÏ ÎÎÏÎÎÏ, ÎÎÎÎÎ 'pushed in'."
 
-#: C/record-collection.js.page:279(p)
+#: C/menubutton.py.page:43(section/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."
+"In the case of vertical alignment, the possible ArrowType directions are "
+"<code>LEFT</code> and <code>RIGHT</code> and the vertical alignment is again "
+"<code>START</code>, <code>CENTER</code> or <code>END</code>."
 msgstr ""
-"ÎÏÎÎÎÎ 14: ÎÎÎÎÎÏÎ ÏÎÎ ÏÎÏÏÏÏÎÏÎ ÎÎÎ ÏÎÎÎÎ ÎÎÎÎÎÏÏÎ ÏÏÎÎ ÎÎÏÎÎ. Î ÎÏÎÎÎÎÏ "
-"ÎÎÎ ÏÎÎ ÎÎÎÏÏÎÎÎ ÎÎÎÎÎÎ <code>_validateFields</code> ÎÎÎÎÎ ÏÏÎÎÎÎÏÎÎÎ ÎÏÎÏÏ "
-"ÎÎÎ ÎÏÎÏÎÎÏÎ ÎÎ ÏÎÎ ÎÎÎÎÎÏÎÏÎ ÏÏÎÎ ÏÎÎÏÎ ÏÎÏÎÏÏÎÎÏÎ ÏÎÎÎÎÎÏ ÎÏÎÎÎÎ."
+"ÎÏÎÎ ÏÎÏÎÏÏÏÏÎ ÎÎÎÏ ÎÎÎÎÏÎÏ ÏÏÎÎÏÎÏÎÏ, ÎÎ ÎÏÎÎÏÎÏ ÎÎÏÎÏÎÏÎÏÎÎÏ ÎÎÎÎÎ "
+"<code>LEFT</code> ÎÎÎ <code>RIGHT</code> ÎÎÎ Î ÎÎÎÎÏÎ ÏÏÎÎÏÎÏÎ ÎÎÎÎÎ ÎÎÎÎ "
+"<code>START</code>, <code>CENTER</code> Î <code>END</code>."
 
-#: C/record-collection.js.page:280(p)
+#: C/menubutton.py.page:45(section/p)
 msgid ""
-"Line 15: Refresh the view on the screen by doing another <code>SELECT</code>."
+"<code>set_align_widget(alignment)</code> and <code>set_direction(direction)</"
+"code> can be used to set these properties."
 msgstr ""
-"ÎÏÎÎÎÎ 15: ÎÎÎÎÎÏÏÎ ÏÎÏ ÏÏÎÎÎÎÎÏ ÏÏÎÎ ÎÎÏÎÎ ÎÎÎÎÎÏÎÏ ÎÎÎ ÎÎÎÎ <code>SELECT</"
-"code>."
+"ÎÎ <code>set_align_widget(alignment)</code> and <code>set_direction"
+"(direction)</code> ÎÏÎÏÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÎÏÎ ÎÎÎ ÎÎ ÎÏÎÏÏÎÏÎ ÎÏÏÎÏ ÎÎ "
+"ÎÎÎÏÏÎÏÎÏ."
 
-#: C/record-collection.js.page:282(p)
+#: C/menubutton.py.page:52(item/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."
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkMenuButton.html";
+"\">MenuButton</link>"
 msgstr ""
-"ÎÏÎÏÎÎÏÎ ÎÏÎÏÎÏ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÏÎÏÎÎÎÏÏÎÏÏ ÎÎÏ ÎÎÏÎÏÎÎÏÎÎÎÏÎ ÏÎÎ "
-"ÏÏÏÏÎÏÎ. ÎÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ ÎÎÏÎÎÎÎÎÎÎÎ <code>SqlBuilder</code> ÎÎÎ "
-"ÏÎÏÎÎÎÏÏÎÏÏ ÏÏÎÏÏÎÏÎÎ ÎÎÎÏÏÎÏÎÏ ÎÏÎÎÎÏÎÎÏ ÏÏÏÏ ÎÎÎÏÎÎÏ SQL. ÎÎÎÎÎÏÏÏÎ ÏÎ "
-"<link href=\"http://library.gnome.org/devel/libgda/stable/\";>ÏÎÎÎÎÏÎÏÏÎ GDA</"
-"link> ÎÎÎ ÏÎÏÎÏÏÏÏÎÏÎÏ ÏÎÎÏÎÏÎÏÎÎÏ ÏÏÎÏÎÎÎ ÎÎ ÏÎÏ ÏÎÏÎÎÎÏÏÎÏÏ."
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkMenuButton.html";
+"\">MenuButton</link>"
 
-#: C/record-collection.js.page:286(title) C/image-viewer.py.page:220(title)
-#: C/image-viewer.js.page:306(title) C/guitar-tuner.py.page:224(title)
-msgid "Run the application"
-msgstr "ÎÏÎÎÏÎ ÏÎÎ ÎÏÎÏÎÎÎÎ"
+#: C/menubutton.vala.page:7(info/title)
+msgctxt "text"
+msgid "MenuButton (Vala)"
+msgstr "MenuButton (Vala)"
 
-#: C/record-collection.js.page:287(p)
+#: C/menubutton.vala.page:27(page/code)
+#, no-wrap
 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!"
+"public class MyWindow : Gtk.ApplicationWindow {\n"
+"\n"
+"\tinternal MyWindow (MyApplication app) {\n"
+"\t\tObject (application: app, title: \"MenuButton Example\");\n"
+"\t\tthis.set_default_size (600, 400);\n"
+"\t\tvar grid = new Gtk.Grid ();\n"
+"\n"
+"\t\tvar menubutton = new Gtk.MenuButton();\n"
+"\t\tmenubutton.set_size_request (80, 35);\n"
+"\n"
+"\t\tvar menumodel = new Menu ();\n"
+"\t\tmenumodel.append (\"New\", \"app.new\");\n"
+"\t\tmenumodel.append (\"About\", \"win.about\");\n"
+"\n"
+"\t\t/* We create the last item as a MenuItem, so that\n"
+"\t\t * a submenu can be appended to this menu item.\n"
+"\t\t */\n"
+"\t\tvar submenu = new Menu ();\n"
+"\t\tmenumodel.append_submenu (\"Other\", submenu);\n"
+"\t\tsubmenu.append (\"Quit\", \"app.quit\");\n"
+"\t\tmenubutton.set_menu_model (menumodel);\n"
+"\n"
+"\t\tvar about_action = new SimpleAction (\"about\", null);\n"
+"\t\tabout_action.activate.connect (this.about_cb);\n"
+"\t\tthis.add_action (about_action);\n"
+"\n"
+"\t\tthis.add(grid);\n"
+"\t\tgrid.attach(menubutton, 0, 0, 1, 1);\n"
+"\t}\n"
+"\n"
+"\tvoid about_cb (SimpleAction simple, Variant? parameter) {\n"
+"\t\tprint (\"You clicked \\\"About\\\"\\n\");\n"
+"\t}\n"
+"}\n"
+"\n"
+"public class MyApplication : Gtk.Application {\n"
+"\tprotected override void activate () {\n"
+"\t\tnew MyWindow (this).show_all ();\n"
+"\t}\n"
+"\n"
+"\tinternal MyApplication () {\n"
+"\t\tObject (application_id: \"org.example.MyApplication\");\n"
+"\t}\n"
+"\n"
+"\t/* Override the 'startup' signal of GLib.Application. */\n"
+"\tprotected override void startup () {\n"
+"\t\tbase.startup ();\n"
+"\n"
+"\t\tvar new_action = new SimpleAction (\"new\", null);\n"
+"\t\tnew_action.activate.connect (this.new_cb);\n"
+"\t\tthis.add_action (new_action);\n"
+"\n"
+"\t\tvar quit_action = new SimpleAction (\"quit\", null);\n"
+"\t\tquit_action.activate.connect (this.quit);\n"
+"\t\tthis.add_action (quit_action);\n"
+"\t}\n"
+"\n"
+"\tvoid new_cb (SimpleAction simple, Variant? parameter) {\n"
+"\t\tprint (\"You clicked \\\"New\\\"\\n\");\n"
+"\t}\n"
+"}\n"
+"\n"
+"public int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
 msgstr ""
-"ÎÎÎÏ Î ÎÏÎÎÏÎÏÎÎÎÎÏ ÎÏÎÎÎÎÏ ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎ ÏÏÏÎ ÏÏÎ ÎÎÏÎ, ÎÏÏÎ ÏÏÎÏÏÎÎÎÏÏÎ "
-"ÎÎ ÏÏÎÎÎÏÎ ÏÎÎ ÎÏÎÎÎÎ. ÎÏÎÏÎ ÏÏÏÎ ÎÎÎ ÎÎÏÎ ÎÎÎÎÎÎÎÏÎ ÎÎÎ ÏÎ ÏÏÎÎÎÎÎÏ ÏÎÏ ÏÏÎ "
-"ÎÎÎÏÎÏÏÎ!"
-
-#: C/record-collection.js.page:291(title) C/photo-wall.c.page:379(title)
-#: C/magic-mirror.vala.page:144(title) C/image-viewer.vala.page:282(title)
-#: C/image-viewer.py.page:225(title) C/image-viewer.js.page:311(title)
-#: C/image-viewer.cpp.page:210(title) C/image-viewer.c.page:222(title)
-#: C/guitar-tuner.vala.page:253(title) C/guitar-tuner.py.page:229(title)
-#: C/guitar-tuner.js.page:234(title) C/guitar-tuner.cpp.page:255(title)
-#: C/guitar-tuner.c.page:257(title)
-msgid "Reference Implementation"
-msgstr "ÎÎÎÏÎÎÎÏÎ ÎÎÎÏÎÏÎÏ"
+"public class MyWindow : Gtk.ApplicationWindow {\n"
+"\n"
+"\tinternal MyWindow (MyApplication app) {\n"
+"\t\tObject (application: app, title: \"MenuButton Example\");\n"
+"\t\tthis.set_default_size (600, 400);\n"
+"\t\tvar grid = new Gtk.Grid ();\n"
+"\n"
+"\t\tvar menubutton = new Gtk.MenuButton();\n"
+"\t\tmenubutton.set_size_request (80, 35);\n"
+"\n"
+"\t\tvar menumodel = new Menu ();\n"
+"\t\tmenumodel.append (\"New\", \"app.new\");\n"
+"\t\tmenumodel.append (\"About\", \"win.about\");\n"
+"\n"
+"\t\t/* We create the last item as a MenuItem, so that\n"
+"\t\t * a submenu can be appended to this menu item.\n"
+"\t\t */\n"
+"\t\tvar submenu = new Menu ();\n"
+"\t\tmenumodel.append_submenu (\"Other\", submenu);\n"
+"\t\tsubmenu.append (\"Quit\", \"app.quit\");\n"
+"\t\tmenubutton.set_menu_model (menumodel);\n"
+"\n"
+"\t\tvar about_action = new SimpleAction (\"about\", null);\n"
+"\t\tabout_action.activate.connect (this.about_cb);\n"
+"\t\tthis.add_action (about_action);\n"
+"\n"
+"\t\tthis.add(grid);\n"
+"\t\tgrid.attach(menubutton, 0, 0, 1, 1);\n"
+"\t}\n"
+"\n"
+"\tvoid about_cb (SimpleAction simple, Variant? parameter) {\n"
+"\t\tprint (\"You clicked \\\"About\\\"\\n\");\n"
+"\t}\n"
+"}\n"
+"\n"
+"public class MyApplication : Gtk.Application {\n"
+"\tprotected override void activate () {\n"
+"\t\tnew MyWindow (this).show_all ();\n"
+"\t}\n"
+"\n"
+"\tinternal MyApplication () {\n"
+"\t\tObject (application_id: \"org.example.MyApplication\");\n"
+"\t}\n"
+"\n"
+"\t/* Override the 'startup' signal of GLib.Application. */\n"
+"\tprotected override void startup () {\n"
+"\t\tbase.startup ();\n"
+"\n"
+"\t\tvar new_action = new SimpleAction (\"new\", null);\n"
+"\t\tnew_action.activate.connect (this.new_cb);\n"
+"\t\tthis.add_action (new_action);\n"
+"\n"
+"\t\tvar quit_action = new SimpleAction (\"quit\", null);\n"
+"\t\tquit_action.activate.connect (this.quit);\n"
+"\t\tthis.add_action (quit_action);\n"
+"\t}\n"
+"\n"
+"\tvoid new_cb (SimpleAction simple, Variant? parameter) {\n"
+"\t\tprint (\"You clicked \\\"New\\\"\\n\");\n"
+"\t}\n"
+"}\n"
+"\n"
+"public int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
 
-#: C/record-collection.js.page:292(p)
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/message-board.c.page:36(media)
+msgctxt "_"
 msgid ""
-"If you run into problems with the tutorial, compare your code with this "
-"<link href=\"record-collection/record-collection.js\">reference code</link>."
+"external ref='media/message-board.ogv' md5='beb80c4538776dc2cdd26c95abea5027'"
 msgstr ""
-"ÎÎ ÎÎÏÎÎÎÏÏÏÎÏÎÏÎ ÏÏÏÎÎÎÎÎ ÎÎ ÏÎ ÎÎÎÎÎÎ, ÏÏÎÎÏÎÎÎÏÎ ÏÎÎ ÎÏÎÎÎÎ ÏÎÏ ÎÎ ÎÏÏÏÎ "
-"ÏÎÎ <link href=\"record-collection/record-collection.js\">ÎÏÎÎÎÎ ÎÎÎÏÎÏÎÏ</"
-"link>."
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/radiobutton.vala.page:24(None) C/radiobutton.py.page:25(None)
-#: C/radiobutton.c.page:24(None)
-msgid "@@image: 'media/radiobutton.png'; md5=d115460280d8e41493dd98054b5822a5"
-msgstr "@@image: 'media/radiobutton.png'Â md5=d115460280d8e41493dd98054b5822a5"
-
-#: C/radiobutton.vala.page:7(title)
-msgid "RadioButton (Vala)"
-msgstr "RadioButton (Vala)"
-
-#: C/radiobutton.vala.page:20(desc)
-msgid "A choice from multiple CheckButtons."
-msgstr "ÎÎÎ ÎÏÎÎÎÎÎ ÎÏÏ ÏÎÎÎÎÏÎÎ CheckButtons."
-
-#: C/radiobutton.vala.page:23(title) C/radiobutton.py.page:24(title)
-#: C/radiobutton.js.page:20(title) C/radiobutton.c.page:22(title)
-msgid "RadioButton"
-msgstr "RadioButton"
-
-#: C/radiobutton.vala.page:25(p)
-msgid "These RadioButtons report their activity in the terminal."
-msgstr "ÎÏÏÎ ÏÎ RadioButtons ÎÎÎÏÎÏÎÏÎ ÏÎ ÎÏÎÏÏÎÏÎÏÏÎÏÎ ÏÎÏÏ ÏÏÎ ÏÎÏÎÎÏÎÎÏ."
+"external ref='media/message-board.ogv' md5='beb80c4538776dc2cdd26c95abea5027'"
 
-#: C/radiobutton.py.page:7(title)
-msgid "RadioButton (Python)"
-msgstr "RadioButton (Python)"
+#: C/message-board.c.page:7(info/title)
+msgctxt "text"
+msgid "Message Board (C)"
+msgstr "ÎÎÎÎÎÎÏ ÎÎÎÏÎÎÏÎÏ (C)"
 
-#: C/radiobutton.py.page:21(desc)
-msgid "Mutually exclusive buttons."
-msgstr "ÎÎÎÎÎÎÎÎ ÎÏÎÎÎÎÎÏÎÎÎÎ ÎÎÏÎÏÎÎ."
+#: C/message-board.c.page:10(info/desc)
+msgid "A simple program using WebKitGTK+ and the DOM."
+msgstr "ÎÎÎ ÎÏÎÏ ÏÏÏÎÏÎÎÎÎ ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÎ WebKitGTK+ ÎÎÎ DOM."
 
-#: C/radiobutton.py.page:26(p)
-msgid ""
-"Three RadioButtons. You can see in the terminal if they are turned off or on."
-msgstr ""
-"ÎÏÎÎ RadioButtons. ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÏÎ ÏÏÎÎ ÏÎÏÎÎÏÎÎÏ ÎÎÎ ÎÎÎÎÎ ÎÎÎÎÎÏÎÎ Î "
-"ÎÎÎÏÎÎ."
+#: C/message-board.c.page:21(page/title)
+msgid "Message Board"
+msgstr "ÎÎÎÎÎÎÏ ÎÎÎÏÎÎÏÎÏ"
 
-#: C/radiobutton.py.page:36(title)
-msgid "Useful methods for a RadioButton widget"
-msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ RadioButton"
+#: C/message-board.c.page:26(item/p)
+msgid "How to display a web page with WebKit."
+msgstr "ÎÏÏ ÎÎ ÎÎÏÎÎÎÏÎÏÎ ÎÎÎ ÎÏÏÎÏÎÎÎÎÎ ÎÎ WebKit."
 
-#: C/radiobutton.py.page:39(p)
+#: C/message-board.c.page:27(item/p)
 msgid ""
-"Instead of <code>button1 = Gtk.RadioButton(label=\"Button 1\")</code> we "
-"could create the button and label it with"
+"How to manipulate the contents of a web page using WebKit's DOM functions."
 msgstr ""
-"ÎÎÏÎ ÎÎÎ <code>button1 = Gtk.RadioButton(label=\"Button 1\")</code> ÎÏÎÏÎÏÎÎ "
-"ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ ÏÎ ÎÎÏÎÏÎ ÎÎÎ ÏÎÎ ÎÏÎÎÎÏÎ ÏÎÏ ÎÎÎÎ"
+"ÎÏÏ ÎÎ ÏÎÎÏÎÏÏÎÎÏÎ ÏÎ ÏÎÏÎÎÏÏÎÎÎÎ ÎÎÎÏ ÎÏÏÎÏÎÎÎÎÎÏ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎÏ "
+"ÏÏÎÎÏÏÎÏÎÎÏ DOM ÏÎÏ WebKit."
 
-#: C/radiobutton.py.page:40(code)
-#, no-wrap
+#: C/message-board.c.page:30(synopsis/p)
 msgid ""
-"\n"
-"button1 = Gtk.RadioButton()\n"
-"button1.set_label(\"Button 1\")."
+"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 ""
-"\n"
-"button1 = Gtk.RadioButton()\n"
-"button1.set_label(\"Button 1\")."
+"ÎÏÏÏ ÏÎ ÎÎÎÎÎÎ ÏÏÎÎÎÏÎÎ ÎÎÎÎÎÎÎÏÏÎ ÎÎ ÏÎ ÎÎÏÏÏÎ ÏÏÎÎÏÎÎÎÎÏÎÏÎÎÏ C ÎÎÎ ÎÎÏÎÎÎ "
+"ÎÎÏÎÎÏÎÏÎ ÏÎÏ GTK+, ÏÏÎÏÎÏÎÎÎÎÎÎÎÏÎÎÎÎÏ ÏÎÏ ÎÎÎÎÎÏÏÎÎÎÏ ÎÎÎ ÏÎÏÎÎÎÏÎÏÎÏ "
+"ÎÏÎÏÎÎÏÎ ÏÏÏÏÎÏÎÎÏÎ ÎÎÎ ÏÎÏ ÏÏÎÎÎÏÎÏ ÏÏÎÎÏÏÎÏÎÏÎ ÎÏÎÎÎÎÎÎÏÎÏ ÏÎ ÏÎÎÎÏÎ. "
+"ÎÎÎÏÎ <link xref=\"image-viewer.c\"/> ÎÎÎ ÎÎ ÎÎÎÎÏÎ ÏÎ ÎÎÏÎÎÎ ÏÎÏ GTK+."
 
-#: C/radiobutton.py.page:43(p)
+#: C/message-board.c.page:43(section/p)
 msgid ""
-"For a general discussion of this, see <link xref=\"properties.py\">here</"
-"link>."
+"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 ""
-"ÎÎÎ ÎÎÎ ÎÎÎÎÎÎ ÏÏÎÎÏÎÏÎ ÏÎÏ ÎÎÎÏÎ <link xref=\"properties.py\">ÎÎÏ</link>."
+"ÎÎ GNOME ÏÎÏÎÎÏÎÎ ÏÎ WebKitGTK+, ÎÎÏÎÏÎÎÏÎÏÎÎÎÎ ÏÎÎÏ ÏÏÎÎ ÎÏÏÏÏÏ ÏÎÎÎÎÏÏ ÏÎÏ "
+"WebKit HTML. ÎÎ WebKit ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÎÎÏÎ ÎÏÏ ÏÎ GNOME, ÏÏÎ ÎÏÎÎ ÎÎÎ "
+"ÏÏÎÎÎÎÎ ÎÏÏÎÏÎÎÎÎÏÎ ÏÏÎ ÎÎÎÎÎÎÏÏÎ, ÎÎÎÎ ÎÏÎÏÎÏ ÎÎÎ ÎÎÎÎÎÏÏÎÎÎ ÏÎÎÏÏÎÏÎ "
+"ÎÎÎÏÎÏÏÎ ÏÏÎÏÏÎ ÏÎÏ ÎÏÎÏÎÏÎ ÎÏÎÎÎÎ ÎÎ ÎÎÏÏÎÏÎÎÎÎÎÏÎ ÎÎ CSS."
 
-#: C/radiobutton.py.page:44(p)
+#: C/message-board.c.page:48(section/p)
 msgid ""
-"Yet another way to create a new RadioButton with a label is <code>button1 = "
-"Gtk.RadioButton.new_with_label(None, \"Button 1\")</code> (the first "
-"arguement is the group of the radiobuttons, which we can get with "
-"<code>get_group()</code>, the second argument is the label)."
+"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 ""
-"ÎÎÏÎÎ ÎÎÎÏ ÎÎÎÎÏ ÏÏÏÏÎÏ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ ÎÎÎ ÎÎÎ RadioButton ÎÎ ÎÎÎ ÎÏÎÎÎÏÎ "
-"ÎÎÎÎÎ <code>button1 = Gtk.RadioButton.new_with_label(None, \"Button 1\")</"
-"code> (ÏÎ ÏÏÏÏÎ ÏÏÎÏÎÎ ÎÎÎÎÎ Î ÎÎÎÎÎ ÏÏÎ ÏÎÎÎÎÏÎÎÎÏÏÏÎ, ÏÎÏ ÎÏÎÏÎÏÎÎ ÎÎ "
-"ÏÎÏÎÏÎÎ ÎÎ <code>get_group()</code>, ÏÎ ÎÎÏÏÎÏÎ ÏÏÎÏÎÎ ÎÎÎÎÎ Î ÎÏÎÎÎÏÎ)."
-
-#: C/radiobutton.py.page:53(link)
-msgid "GtkRadioButton"
-msgstr "GtkRadioButton"
+"ÎÎ ÎÏÏÏ ÏÎ ÎÎÎÎÎÎ, ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎ ÎÎÎ ÎÏÎÏ ÏÎÎÎÎÎ ÎÎÎÏÎÎÏÎÏ "
+"ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ WebKit. Î ÏÎÎÎÎÎÏ ÎÎÎÏÎÎÏÎÏ ÎÎ ÎÏÎÏÏÎÏÎÎ ÏÎÎ ÎÎÏÎÎÏÎÎ "
+"ÎÎÏÎÎÎÏ ÎÎÎÎÎÎÎÏ ÎÎÎ ÏÎÎ ÏÏÎÏÎÎÎÎ ÏÎÏ ÏÎ ÎÎÎ ÎÎÏÏÎ ÎÎÎÏÎÎÏÏÎ ÏÎ HTML. ÎÏÎÎ "
+"ÏÎÎ ÎÎÎÎÎÎÏÎ, ÏÏÎÎÎÎÏÏÎÏÏÎ ÎÎ ÏÏÎÎÎÏÎÏÎ ÎÎÎ ÎÏÎÎ ÏÏÎ Anjuta."
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/radiobutton.js.page:21(None)
+#: C/message-board.c.page:54(item/p)
 msgid ""
-"@@image: 'media/radiobuttontravel.png'; md5=0c5f01ee160bb42716ccf5dccbd080c0"
+"In Anjuta, click <guiseq><gui>File</gui><gui>New</gui> <gui>Project</gui></"
+"guiseq> to open the new project assistant."
 msgstr ""
-"@@image: 'media/radiobuttontravel.png'Â md5=0c5f01ee160bb42716ccf5dccbd080c0"
-
-#: C/radiobutton.js.page:7(title)
-msgid "RadioButton (JavaScript)"
-msgstr "RadioButton (JavaScript)"
+"ÎÏÎ Anjuta, ÎÎÎÏÎ ÎÎÎÎ ÏÏÎ <guiseq><gui>ÎÏÏÎÎÎ</gui><gui>ÎÎÎ</gui> "
+"<gui>ÎÏÎÎ</gui></guiseq> ÎÎÎ ÎÎ ÎÎÎÎÎÎÏÎ ÏÎÎ ÎÎÎ ÎÎÎÎÏ ÎÏÎÎÏ."
 
-#: C/radiobutton.js.page:17(desc)
-msgid "Only one can be selected at a time"
-msgstr "ÎÏÎÎ ÎÎÎ ÎÏÎÏÎÎ ÎÎ ÎÏÎÎÎÎÎÎ ÏÎ ÏÎÏÎ"
-
-#: C/radiobutton.js.page:22(p)
+#: C/message-board.c.page:56(item/p)
 msgid ""
-"RadioButtons are named after old-style car radios, which had buttons for "
-"switching between channel presets. Because the radio could only be tuned to "
-"one station at a time, only one button could be pressed in at a time; if you "
-"pressed a new one, the one that was already pressed in would pop back out. "
-"That's how these buttons work, too."
+"Select <gui>GTK+ (simple)</gui> on the <gui>C</gui> tab, and click "
+"<gui>Continue</gui>."
 msgstr ""
-"RadioButtons ÎÎÎÎÎÎÎÎÏÎÎ ÎÎÏÎ ÏÎÎ ÏÎÎÎÎ ÎÏÎÎ ÏÎÎÎÎÏÏÎÏÎ ÎÏÏÎÎÎÎÎÏÏÎ, ÏÎÏ "
-"ÎÎÏÎÎ ÎÎÏÎÏÎÎ ÎÎÎ ÎÎÎÎÎÎ ÎÎÏÎÎÏ ÏÏÎÎÎÎÎÏÎÏÎÎÎÏÎ ÎÎÎÎÎÎÏÎ. ÎÏÎÎÎÎ ÏÎ "
-"ÏÎÎÎÏÏÏÎÎ ÎÏÎÏÎÏÏÎ ÎÎ ÏÏÎÏÎÎÎÏÏÎÎ ÎÏÎÎ ÏÎ ÎÎÎ ÏÏÎÎÎÏ ÏÎ ÏÎÏÎ, ÎÏÎÎ ÎÎÎ "
-"ÎÎÏÎÏÎ ÎÏÎÏÎÏÏÎ ÎÎ ÏÎÏÎÎÎÎ ÏÎ ÏÎÏÎÂ ÎÎ ÏÎÏÎÏÏÎÏÎ ÎÎÎ ÎÎÎ, ÎÏÏÏ ÏÎÏ ÎÏÎÎ ÎÎÎ "
-"ÏÎÏÎÎÎÎÎ ÏÎÏÎÎÏÏÎÎ ÏÎÏÏ. ÎÏÏÎ ÎÎÏÎÎÏÎÏÎ ÎÎÎ ÎÏÏÎ ÏÎ ÎÎÏÎÏÎÎ."
+"ÎÏÎÎÎÎÏÎ <gui>GTK+ (ÎÏÎÏ)</gui> ÏÏÎÎ ÎÎÏÏÎÎÎ <gui>C</gui> ÎÎÎ ÎÎÎÎ "
+"<gui>ÏÏÎÎÏÎÎÎ</gui>."
 
-#: C/radiobutton.js.page:23(p)
+#: C/message-board.c.page:58(item/p)
 msgid ""
-"Each RadioButton needs a text label and a group. Only one button in a group "
-"can be selected at a time. You don't name each group; you just set new "
-"RadioButtons to be part of the same group as an existing one. If you create "
-"a new one outside of a group, it automatically creates a new group for it to "
-"be part of."
+"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 ""
-"ÎÎÎÎ RadioButton ÏÏÎÎÎÎÎÏÎÎ ÎÎÎ ÎÏÎÎÎÏÎ ÎÎÎÎÎÎÎÏ ÎÎÎ ÎÎÎ ÎÎÎÎÎ. ÎÏÎÎ ÎÎÎ "
-"ÎÎÏÎÏÎ ÏÎ ÎÎÎ ÎÎÎÎÎ ÎÏÎÏÎÎ ÎÎ ÎÏÎÎÎÎÎÎ ÏÎ ÏÎÏÎ. ÎÎÎ ÎÎÎÎÎÎÎÏÎ ÎÎÎÎ ÎÎÎÎÎÂ "
-"ÎÏÎÎÏ ÏÏÎÎÎÏÎÏÎ ÎÎÎ RadioButtons ÎÎÎ ÎÎ ÎÎÎÎÎ ÏÎÎÎÎ ÏÎÏ ÎÎÎÎÏ ÎÎÎÎÎÏ ÏÏ ÎÎÎ "
-"ÏÏÎÏÏÎÏÏÎ. ÎÎÎ ÎÎÎÎÎÏÏÎÎÎÏÎ ÎÎÎ ÎÎÎ ÎÎÏÏÏ ÎÎÎÏ ÎÎÎÎÎÏ, ÎÎÎÎÎÏÏÎÎÎ ÎÏÏÏÎÎÏÎ "
-"ÎÎÎ ÎÎÎ ÎÎÎÎÎ ÎÎÎ ÎÎ ÎÎÎÎÎ ÎÎÏÎÏ ÏÎÏ."
-
-#: C/radiobutton.js.page:82(title)
-msgid "Creating the radiobuttons"
-msgstr "ÎÎÎÎÎÏÏÎÎÎ ÏÏÎ ÏÎÎÎÎÎÎÏÎÏÎÏÎ"
+"ÎÏÎÏÎÎÏÏÏÏÎ ÏÎÏ ÎÎÏÏÎÎÎÏÎÎÎÏ ÏÎÏ ÏÏÎ ÏÎÎÎÎÎ <gui>ÎÎÏÎÎÎÏ ÏÎÎÏÎÏÎÏÎÎÏ</gui>. "
+"ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ <input>ÏÎÎÎÎÎ ÎÎÎÏÎÎÏÎÏ</input> ÎÎÎ ÏÎ ÏÎÎÎÎ ÏÎÏ ÎÏÎÎÏ. ÎÎÎÎ "
+"<gui>ÏÏÎÎÏÎÎÎ</gui>."
 
-#: C/radiobutton.js.page:88(p)
+#: C/message-board.c.page:61(item/p)
 msgid ""
-"We use a <link xref=\"label.js\">Gtk.Label</link> to set each group of "
-"RadioButtons apart. Nothing will stop you from putting RadioButtons from all "
-"different groups wherever you want, so if you want people to know which ones "
-"go together you need to organize things accordingly."
+"Disable the <gui>Use GtkBuilder for user interface</gui> option as this "
+"tutorial builds the user-interface manually."
 msgstr ""
-"ÎÏÎÏÎÎÎÏÎÎÎÏÎÎ ÎÎÎ <link xref=\"label.js\">Gtk.Label</link> ÎÎÎ ÎÎ ÎÏÎÏÎÏÎÎ "
-"ÎÎÎÎ ÎÎÎÎÎ RadioButtons ÎÎÎÎÎÏÏÎÏÎ. ÎÎÏÎÏÎ ÎÎÎ ÏÎÏ ÎÎÏÎÎÎÎÎÎ ÎÎ ÎÎÎÎÏÎ ÏÎ "
-"RadioButtons ÎÏÏ ÏÎÎÏ ÏÎÏ ÎÎÎÏÎÏÎÏÎÎÎÏ ÎÎÎÎÎÏ ÏÏÎÏ ÎÎÎÎÏÎ, ÎÏÏÎ ÎÎÎ ÎÎÎÎÏÎ "
-"ÎÎ ÎÎÎÎÎ ÎÎ ÎÎÏÎÏÎ ÏÎÎÎ ÏÎÎÎÎÎÎÎ ÎÎÎÎ, ÏÏÎÎÎÎÏÏÎÏÏÎ ÎÎ ÎÏÎÎÎÏÏÎÏÎ ÏÎ "
-"ÏÏÎÎÎÎÏÎ ÎÎÎÎÎÎÎ."
+"ÎÏÎÎÎÏÎÎÏÎÎÎÏÏÎ ÏÎÎ ÎÏÎÎÎÎÎ <gui>ÏÏÎÏÎ GtkBuilder ÎÎÎ ÎÎÎÏÎÏÎ ÏÏÎÏÏÎ</gui> "
+"ÎÎÎÏÏ ÎÏÏÏ ÏÎ ÎÎÎÎÎÎ ÎÎÏÎÏÎÎÏÎÎÎÎ ÏÎ ÎÎÎÏÎÏÎ ÏÏÎÏÏÎ ÏÎÎÏÎÎÎÎÎÏÎ."
 
-#: C/radiobutton.js.page:101(p)
+#: C/message-board.c.page:64(item/p)
 msgid ""
-"Here are three different ways to create RadioButtons. The first is the usual "
-"way, where we create a new Gtk.RadioButton and assign its properties at the "
-"same time. The second and third use functions which automatically handle "
-"some of the properties; new_from_widget takes a single argument, the "
-"RadioButton that you want to put this new one in the same group as. "
-"Meanwhile, new_with_label_from_widget takes that and the RadioButton's label "
-"at the same time."
+"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 ""
-"ÎÎÏ ÏÏÎÏÏÎÏÎ ÏÏÎÎÏ ÎÎÎÏÎÏÎÏÎÎÎÎ ÏÏÏÏÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎ RadioButtons. Î "
-"ÏÏÏÏÎÏ ÎÎÎÎÎ Î ÏÏÎÎÎÎÏÎÎÎÎÏ ÏÏÏÏÎÏ, ÏÏÎÏ ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ ÎÎÎ Gtk."
-"RadioButton ÎÎÎ ÎÏÎÎÎÎÎÏÎÎ ÏÎÏ ÎÎÎÏÏÎÏÎÏ ÏÎÏ ÏÎÏÏÏÏÏÎÎÎ. Î ÎÎÏÏÎÏÎÏ ÎÎÎ "
-"ÏÏÎÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÏÎ ÏÏÎÎÏÏÎÏÎÎÏ ÏÎÏ ÏÎÎÏÎÎÎÎÏÎÎ ÎÏÏÏÎÎÏÎ ÎÎÏÎÎÎÏ ÎÏÏ ÏÎÏ "
-"ÎÎÎÏÏÎÏÎÏÂ ÏÎ new_from_widget ÏÎÎÏÎÎÎ ÎÎÎ ÎÎÎÎÎÎÎÏ ÏÏÎÏÎÎ, ÏÎ RadioButton "
-"ÏÏÎ ÎÏÎÎÎ ÎÎÎÎÏÎ ÎÎ ÎÎÎÎÏÎ ÎÏÏÏ ÏÎ ÎÎÎ ÏÏÎÎ ÎÎÎÎ ÎÎÎÎÎ. ÎÎ ÏÏ ÎÎÏÎÎÏ, ÏÎ "
-"new_with_label_from_widget ÏÎ ÏÎÎÏÎÎÎ ÎÎÎÏÏ ÎÎÎ ÏÎÎ ÎÏÎÎÎÏÎ ÏÎÏ RadioButton "
-"ÏÎÏÏÏÏÏÎÎÎ."
+"ÎÏÎÏÎÎ ÎÎ ÏÎÎÏÎ ÏÏÎ Anjuta ÏÏÎ ÏÏÎÏÎÎÎÏÎÎÎÎÏÎ WebKitGTK+ ÎÎÎ ÎÏÏÏ ÏÎ ÎÏÎÎ. "
+"ÎÏÎ ÏÎÎÎÎÎ <gui>ÎÏÎÎÎÎÎÏ ÎÏÎÎÏ</gui>, ÎÏÎÎÎÎÏÎ <gui>ÏÏÎÎÎÏÎ ÎÎÏÏÎÏÎÎÏÎ "
+"ÏÎÎÎÏÏÎ</gui>. ÎÎÎÎ <gui>ÏÏÎÎÏÎÎÎ</gui>. ÎÏÎ ÏÎÎÎÎÎ <gui>ÏÏÎÎÎÏÎ ÎÎÏÏÎÏÎÎÏÎ "
+"ÏÎÎÎÏÏÎ</gui>, ÏÎÎÎÎÏÏÏÎ <gui>webkitgtk-3.0</gui>."
 
-#: C/radiobutton.js.page:102(p)
+#: C/message-board.c.page:70(section/p)
 msgid ""
-"The first RadioButton in a group is the one that's selected by default. Try "
-"uncommenting the last line in this sample code to see how you can set a "
-"different one to be the default selection."
+"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 ""
-"ÎÎ ÏÏÏÏÎ RadioButton ÏÎ ÎÎÎ ÎÎÎÎÎ ÎÎÎÎÎ ÎÏÏÏ ÏÎÏ ÎÏÎÎÎÎÎÏÎÎ ÎÏÏ ÏÏÎÎÏÎÎÎÎÎ. "
-"ÎÎÎÎÎÎÏÏÎ ÏÎÎ ÎÏÎÏÏÎÎÎÎÏÎ ÏÎÏ ÏÎÎÎÏÏÎÎÎÏ ÎÏÎÎÎÎÏ ÏÎ ÎÏÏÏ ÏÎ ÎÎÎÎÎÎ ÎÏÎÎÎÎ "
-"ÎÎÎ ÎÎ ÎÎÎÏÎ ÏÏÏ ÎÏÎÏÎÎÏÎ ÎÎ ÏÏÎÎÎÏÎÏÎ ÎÎÎ ÎÎÎÏÎÏÎÏÎÎÏ ÎÎ ÎÎÎÎÎ Î ÏÏÎÎÏÎÎÎÎÎ."
+"ÎÏÎÏ ÏÎÎÎÎÏÏÎÏÎ ÎÎ ÏÎÎ ÎÎÎÎÏ ÏÎÏ ÎÎÎÏ ÎÏÎÎÏ, ÎÎÎÎÎÏÎ ÏÎ ÎÏÏÎÎÎ <file>src/"
+"main.c</file> ÎÎÏÎ ÎÏÏ ÏÎ <gui>ÎÏÎÎ</gui> Î ÎÏÏ ÏÎÎ ÎÎÏÏÎÎÎ <gui>ÎÏÏÎÎÎ</"
+"gui>. ÎÎ Anjuta ÎÎ ÏÎ ÎÎÎÎÏÎÎ ÎÎ ÎÎÏÎÎÎ ÎÎÏÎÎÏ ÎÏÎÎÎÎ GTK+ ÎÏÏ ÏÎ ÏÏÏÏÏÏÎ "
+"ÏÎÏ. ÎÏÎÏ ÎÎÎÎÎÏÏÎÎÎÏÎ ÎÎÎ ÎÏÎÎ WebKit, ÏÏÎÎÎÎÎÏÏÎ ÏÏÏÏÎ ÎÎ ÏÏÎÏÎÏÎÎÎÎÎÏÎ "
+"ÏÎÏ ÎÎÏÎÎÎÎÎÏ WebKit. ÎÎÏÎ ÏÎ ÎÏÎÎÎÎ ÏÎÏ ÏÎÏÎÎÏÎÎ <code>gtk/gtk.h</code>, "
+"ÏÏÎÏÎÎÏÏÎ ÏÎÎ ÏÎÏÎÎÎÏÏ ÎÏÎÎÎÎ:"
+
+#: C/message-board.c.page:77(section/code)
+#, no-wrap
+msgid "#include &lt;webkit/webkit.h&gt;"
+msgstr "#include &lt;webkit/webkit.h&gt;"
 
-#: C/radiobutton.js.page:113(p)
+#: C/message-board.c.page:79(section/p)
 msgid ""
-"Here we create the label for the second group of buttons, and then create "
-"them all the same way."
+"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 ""
-"ÎÎÏ ÎÎÎÎÎÏÏÎÎÏÎÎ ÏÎÎ ÎÏÎÎÎÏÎ ÎÎÎ ÏÎ ÎÎÏÏÎÏÎ ÎÎÎÎÎ ÎÎÏÎÏÎÏÎ ÎÎÎ ÎÏÎÎÏÎ ÏÎ "
-"ÎÎÎÎÎÏÏÎÎÏÎÎ ÏÎÎ ÎÎ ÏÎÎ ÎÎÎÎ ÏÏÏÏÎ."
+"ÎÏÎÎÎÎÎÎÏÏÏÎ ÏÏÎ ÏÎÎ ÎÎÏÎÎÏÎÏÎ ÎÎ ÏÎÎ ÎÎÏÎÏÎÎÏÎ ÏÎÏ ÎÏÎÏÎ ÎÎÎÎÎ ÎÎÏÏÎ ÏÏÏÎ. "
+"ÎÎÎÎ <guiseq><gui>ÎÎÏÎÏÎÎÏÎ</gui><gui>ÎÏÎÎ ÎÎÏÎÏÎÎÏÎÏ</gui></guiseq> Î ÎÏÎÎ "
+"ÏÎÏÎÏÏÎ <keyseq><key>Shift</key><key>F7</key></keyseq>. ÎÎÎ ÏÏÏÏÎ ÏÎÏÎ ÏÎÏ "
+"ÎÎÏÎÏÎÎÏÎÎÎÏÎ, ÎÎ ÏÎÏ ÎÎÏÎÎÎÎ ÎÎÎ ÎÎÏÎÎÎÏ ÎÏÎÎÎÎÎÏ ÏÏÎÎÎÏÎÏ. ÎÏÎÎ "
+"ÎÏÎÎÎÏÏÎÎÏÎ ÏÎÏ ÏÏÎÎÏÎÎÎÎÎÏ ÎÎÎ ÎÎÎÎ <gui>ÎÎÏÎÎÎÏÎ</gui>."
 
-#: C/radiobutton.js.page:129(p)
+#: C/message-board.c.page:85(section/p)
 msgid ""
-"This code creates a <link xref=\"button.js\">Gtk.Button</link> and binds it "
-"to a function which will show people a silly message when they click OK, "
-"depending on which RadioButtons were selected."
+"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 ""
-"ÎÏÏÏÏ Î ÎÏÎÎÎÎÏ ÎÎÎÎÎÏÏÎÎÎ ÎÎÎ <link xref=\"button.js\">Gtk.Button</link> "
-"ÎÎÎ ÏÎ ÏÏÎÎÎÎÎ ÎÎ ÎÎÎ ÏÏÎÎÏÏÎÏÎ ÏÎÏ ÎÎ ÎÎÏÎÎÎÏÎÎ ÏÏÎÏÏ ÎÎÎÎÏÏ ÎÎÎ ÏÎÎÏ "
-"ÎÎÎÏÎÎ ÏÏÎÎ ÏÎÏÎÏÎÏÎ ÎÎÏÎÎÎÎ, ÎÎÎÎÎÎÎ ÎÎ ÏÎ ÎÏÎÎÎÎÎÎÎÎ RadioButtons."
+"ÎÏÏÎ ÎÎ ÎÏÎÏÎÎÏÎ ÎÎ ÏÏÎÎÎÏÎ ÏÎ ÏÏÏÎÏÎÎÎÎ. ÎÎÎÏÎ ÎÎÎÎ ÏÏÎ <guiseq> "
+"<gui>ÎÏÎÎÎÎÎ</gui><gui>ÎÎÏÎÎÎÏÎ</gui></guiseq> Î ÎÏÎÎ ÏÎÏÎÏÏÎ <key>F3</key>. "
+"ÎÎ ÏÏÎÏÎÎ ÎÎ ÎÎÎÏÎ ÎÎÎ ÎÎÎÎÎ ÏÎÏÎÎÏÏÎ."
+
+#: C/message-board.c.page:91(section/title)
+msgid "Lay out your window and web view"
+msgstr "ÎÎÎÏÎÎÏÎÏÎ ÏÎÏ ÏÎÏÎÎÏÏÎÏ ÏÎÏ ÎÎÎ ÏÏÎÎÎÎÎ ÎÏÏÎÏ"
 
-#: C/radiobutton.js.page:130(p)
-#| msgid ""
-#| "To make sure the button's \"OK\" label shows up properly in every "
-#| "language that GNOME is translated into, remember to use one of Gtk's "
-#| "<link href=\"http://developer.gnome.org/gtk/2.24/gtk-Stock-Items.html";
-#| "\">stock button types.</link>"
+#: C/message-board.c.page:93(section/p)
 msgid ""
-"To make sure the button's \"OK\" label shows up properly in every language "
-"that GNOME is translated into, remember to use one of Gtk's <link href="
-"\"http://developer.gnome.org/gtk/2.24/gtk-Stock-Items.html\";>stock button "
-"types</link>."
+"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 ""
-"ÎÎÎ ÎÎ ÎÎÎÎÎÏÎÎÎÏÎ ÏÏÎ Î ÎÏÎÎÎÏÎ ÏÎÏ ÎÎÏÎÏÎÎÏ \"OK\" ÎÎÏÎÎÎÎÎÏÎÎ ÎÎÏÎÎÎÎÎÎ "
-"ÏÎ ÎÎÎÎ ÎÎÏÏÏÎ ÏÏÎÎ ÎÏÎÎÎ ÎÎÏÎÏÏÎÎÎÏÎÎ ÏÎ GNOME, ÎÎ ÎÏÎÎÏÏÎ ÎÎ "
-"ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÎÎÎÎ ÎÏÏ ÏÎÏÏ <link href=\"http://developer.gnome.org/";
-"gtk/2.24/gtk-Stock-Items.html\">ÏÏÏÎÏÏ ÎÎÏÎÏÎÏÎ ÏÎÏÎÎÎÏÎÎÎÎÎÏ</link> ÏÎÏ Gtk."
+"ÎÏÏÎ ÏÎÏ ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÏÎ ÎÎÎ ÏÎÏÎÎÏÏÎ, ÎÎÎÎÎ ÎÎÎÏÏÏ ÎÎ ÎÎÎÎÎÎÏÎÏÎ ÎÎÏÎÎÎÎ "
+"ÎÎ ÏÎ WebKit. ÎÎÎ ÎÏÏÏ ÏÎ ÎÎÎÎÎÎ, ÎÎ ÎÎÎÎÎÏÏÎÎÎÎÎ ÎÎÎ ÎÎÏÎÏÏÏÎÏÎ ÎÎÎÎÎÎÎÏ "
+"ÎÎÎ ÎÎÎ ÏÏÎÎÎÎÎ ÎÏÏÎÏ ÎÎÎ ÏÎÎÎÏÎÏÎÏÎÎ ÏÎÏÏ ÏÎ ÎÎÎ ÏÎÏÎÎÏÏÎ. ÎÏÎÎÏÎ ÏÎ "
+"ÏÏÎÎÏÏÎÏÎ <code>create_window</code> ÎÎÎ ÎÎÏÎÎÎÏÎÏÏÎÏÏÎ ÏÎÎ ÎÎ ÏÎÎ ÏÎÏÎÎÎÏÏ:"
 
-#: C/radiobutton.js.page:166(p)
+#: C/message-board.c.page:98(section/code)
+#, no-wrap
 msgid ""
-"We use a separate <link xref=\"grid.js\">Gtk.Grid</link> to organize each "
-"group of radio buttons. This way we can change the layout with less fuss "
-"later on. The second Grid has a margin on top, to visually separate the two "
-"sets of choices."
+"\n"
+"static GtkWidget*\n"
+"create_window (void)\n"
+"{\n"
+"    GtkWidget *window, *box, *scroll, *view, *entry;\n"
+"\n"
+"    window = gtk_window_new (GTK_WINDOW_TOPLEVEL);\n"
+"    gtk_window_set_default_size (GTK_WINDOW (window), 400, 400);\n"
+"    gtk_window_set_title (GTK_WINDOW (window), \"Message Board\");\n"
+"    g_signal_connect (window, \"delete-event\", G_CALLBACK (gtk_main_quit), NULL);\n"
+"\n"
+"    box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);\n"
+"    gtk_container_set_border_width (GTK_CONTAINER (box), 6);\n"
+"    gtk_container_add (GTK_CONTAINER (window), box);\n"
+"\n"
+"    entry = gtk_entry_new ();\n"
+"    gtk_box_pack_start (GTK_BOX (box), entry, FALSE, FALSE, 0);\n"
+"\n"
+"    scroll = gtk_scrolled_window_new (NULL, NULL);\n"
+"    g_object_set (scroll, \"shadow-type\", GTK_SHADOW_IN, NULL);\n"
+"    gtk_box_pack_start (GTK_BOX (box), scroll, TRUE, TRUE, 0);\n"
+"\n"
+"    view = webkit_web_view_new ();\n"
+"    gtk_container_add (GTK_CONTAINER (scroll), view);\n"
+"    webkit_web_view_load_string (WEBKIT_WEB_VIEW (view),\n"
+"                                 \"&lt;html&gt;&lt;body&gt;&lt;/body&gt;&lt;/html&gt;\",\n"
+"                                 \"text/html\",\n"
+"                                 \"UTF-8\",\n"
+"                                 NULL);\n"
+"\n"
+"    gtk_widget_show_all (GTK_WIDGET (box));\n"
+"    return window;\n"
+"}\n"
 msgstr ""
-"ÎÏÎÏÎÎÎÏÎÎÎÏÎÎ ÎÎÎ ÎÎÎÎÎÏÏÎÏÎ <link xref=\"grid.js\">Gtk.Grid</link> ÎÎÎ ÎÎ "
-"ÎÏÎÎÎÏÏÎÏÎÎ ÎÎÎÎ ÎÎÎÎÎ ÏÎÎÎÎÏÎÎÎÏÏÏÎ. ÎÎ ÎÏÏÏ ÏÎÎ ÏÏÏÏÎ ÎÏÎÏÎÏÎÎ ÎÎ "
-"ÎÎÎÎÎÎÏÎÎ ÏÎ ÎÎÎÏÎÎÎ ÎÎ ÎÎÎÏÏÎÏÎ ÎÎÎÏÏÎÏÏÏÎ ÎÏÎÏÏÎÏÎ. ÎÎ ÎÎÏÏÎÏÎ ÏÎÎÎÎÎ ÎÏÎÎ "
-"ÎÎÎ ÏÎÏÎÎÏÏÎÎ ÏÏÎÎ ÎÎÏÏÏÎ, ÎÎÎ ÎÏÏÎÎÎ ÎÎÎÎÏÎÏÎ ÏÏÎ ÎÏÎ ÏÏÎÏÎÏÎ ÎÏÎÎÎÎÏÎ."
+"\n"
+"static GtkWidget*\n"
+"create_window (void)\n"
+"{\n"
+"    GtkWidget *window, *box, *scroll, *view, *entry;\n"
+"\n"
+"    window = gtk_window_new (GTK_WINDOW_TOPLEVEL);\n"
+"    gtk_window_set_default_size (GTK_WINDOW (window), 400, 400);\n"
+"    gtk_window_set_title (GTK_WINDOW (window), \"Message Board\");\n"
+"    g_signal_connect (window, \"delete-event\", G_CALLBACK (gtk_main_quit), NULL);\n"
+"\n"
+"    box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);\n"
+"    gtk_container_set_border_width (GTK_CONTAINER (box), 6);\n"
+"    gtk_container_add (GTK_CONTAINER (window), box);\n"
+"\n"
+"    entry = gtk_entry_new ();\n"
+"    gtk_box_pack_start (GTK_BOX (box), entry, FALSE, FALSE, 0);\n"
+"\n"
+"    scroll = gtk_scrolled_window_new (NULL, NULL);\n"
+"    g_object_set (scroll, \"shadow-type\", GTK_SHADOW_IN, NULL);\n"
+"    gtk_box_pack_start (GTK_BOX (box), scroll, TRUE, TRUE, 0);\n"
+"\n"
+"    view = webkit_web_view_new ();\n"
+"    gtk_container_add (GTK_CONTAINER (scroll), view);\n"
+"    webkit_web_view_load_string (WEBKIT_WEB_VIEW (view),\n"
+"                                 \"&lt;html&gt;&lt;body&gt;&lt;/body&gt;&lt;/html&gt;\",\n"
+"                                 \"text/html\",\n"
+"                                 \"UTF-8\",\n"
+"                                 NULL);\n"
+"\n"
+"    gtk_widget_show_all (GTK_WIDGET (box));\n"
+"    return window;\n"
+"}\n"
 
-#: C/radiobutton.js.page:167(p)
+#: C/message-board.c.page:133(section/p)
 msgid ""
-"After we've organized them, we put them into a third, master Grid, along "
-"with the OK button. Then we attach that to the window."
+"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 ""
-"ÎÏÎÏ ÏÎ ÎÏÎÎÎÏÏÎÏÎÎ, ÏÎ ÎÎÎÎÏÎÎ ÏÎ ÎÎÎ ÏÏÎÏÎ, ÎÏÏÎÎ ÏÎÎÎÎÎ, ÎÎÎÎ ÎÎ ÏÎ "
-"ÎÎÏÎÏÎ ÎÎÏÎÎÎÎ. ÎÏÎÎÏÎ ÏÎ ÏÏÎÏÎÏÏÎÏÎÎ ÏÏÎ ÏÎÏÎÎÏÏÎ."
+"ÎÎÎÎÎÏÏÎÎÏÏÎ ÏÏÏÏÎ ÎÎÎ ÎÎÏÎÎÎÎÎÎÎÎ <code>GtkWindow</code> ÎÎÎ ÎÏÎÏÏÎ ÏÎÎ "
+"ÏÎÏÎÎ ÏÎ ÏÏÎÎÏÎÎÎÎÎÎÎÎ ÎÎÎÎÎÎÏ ÏÎÏ. ÎÏÎÎÎÏÏÎ ÎÏÎÏÎÏ ÏÎ ÏÏÎÎÏÏÎÏÎ "
+"<code>gtk_main_quit</code> ÎÎ ÏÎ ÏÎÎÎ <code>delete-event</code>. ÎÎ ÏÎÎÎ "
+"<code>delete-event</code> ÎÎÏÎÎÏÎÏÎÎ ÏÏÎÎ ÏÎ ÏÎÏÎÎÏÏÎ ÎÎÎÎÎÎÎ. Î ÏÏÎÎÏÏÎÏÎ "
+"<code>gtk_main_quit</code> ÎÎÎÎÎ ÏÎÎÎÎ ÏÎÏ GTK ÎÎÎ ÎÎÎÎÏÎÎÎÎÏÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ."
 
-#: C/radiobutton.js.page:175(p)
+#: C/message-board.c.page:139(section/p)
 msgid ""
-"Finally, we tell the window and everything inside it to become visible when "
-"the application is run."
+"You then create a vertical box and add it to the window. A window can only "
+"hold a single child widget, so you need to use a box to add multiple "
+"widgets. The second argument to <code>gtk_box_new</code> sets the amount of "
+"padding (in pixels) between each child, and the next line puts a six-pixel "
+"border around the entire thing."
 msgstr ""
-"ÎÎÎÎÎÎ, ÎÎÎÎ ÏÏÎ ÏÎÏÎÎÏÏÎ ÎÎÎ ÏÎ ÎÎÎÎ ÏÎ ÏÎÏ ÎÎÎÎÎ ÎÎÏÎ ÏÎÏ ÎÎ ÎÎÎÎÎ ÎÏÎÏÏ "
-"ÏÏÎÎ ÏÏÎÏÎÎ Î ÎÏÎÏÎÎÎÎ."
-
-#: C/radiobutton.js.page:180(title) C/combobox.js.page:169(title)
-#: C/comboboxtext.js.page:112(title)
-msgid "Function which handles your selection"
-msgstr "Î ÏÏÎÎÏÏÎÏÎ ÏÎÏ ÏÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÏÎÎÎÎÎ ÏÎÏ"
+"ÎÏÎÎÏÎ ÎÎÎÎÎÏÏÎÎÏÏÎ ÎÎÎ ÎÎÎÎÏÎ ÏÎÎÎÏÎÎ ÎÎÎ ÏÏÎÏÎÎÏÏÎ ÏÎ ÏÏÎ ÏÎÏÎÎÏÏÎ. ÎÎÎ "
+"ÏÎÏÎÎÏÏÎ ÎÏÎÏÎÎ ÎÎ ÎÏÎÏÎ ÎÏÎÎ ÎÎÎ ÎÎÎÎÎÎÎÏ ÎÏÎÎÏÏÎÎÏ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ, ÎÏÏÎ "
+"ÏÏÎÎÎÎÏÏÎÏÏÎ ÏÎ ÏÏÎÏÎ ÎÎÏÏ ÏÎÎÎÏÎÎÏ ÎÎÎ ÏÏÎÏÎÎÎÎ ÏÎÎÎÎÏÎÏÎ ÎÏÎÏÎÎÏÎ "
+"ÏÏÏÏÎÏÎÎÏÎ. ÎÎ ÎÎÏÏÎÏÎ ÏÏÎÏÎÎ ÏÏÎ <code>gtk_box_new</code> ÎÏÎÎÎÎ ÏÎÎ "
+"ÏÎÏÏÏÎÏÎ ÏÏÎÏÎÎÏÏÏÎÏ (ÏÎ ÎÎÎÎÎÎÏÏÎÎÏÎÎÎ) ÎÎÏÎÎÏ ÎÎÎÎ ÎÏÎÎÏÏÎÎÎÏ ÎÎÎ Î "
+"ÎÏÏÎÎÎÎ ÎÏÎÎÎÎ ÎÎÎÎÎ ÎÎÎ ÏÎÏÎÎÏÎÎÎÎ ÎÎÎ ÎÎÎÎÎÎÏÏÎÎÏÎÎÏÎ ÎÏÏÏ ÎÏÏ ÏÎÎ ÏÎ "
+"ÎÎÏÎÎÎÎÎÎÎÎ."
 
-#: C/radiobutton.js.page:200(p)
+#: C/message-board.c.page:145(section/p)
 msgid ""
-"When you click OK, a <link xref=\"messagedialog.js\">Gtk.MessageDialog</"
-"link> appears. This function creates and displays the popup window, then "
-"binds its OK button to a function that closes it. What text appears in the "
-"popup depends on the _messageText() function, which returns a different "
-"value depending on which set of options you chose."
+"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 ""
-"ÎÏÎÎ ÏÎÏÎÏÎ ÎÎÏÎÎÎÎ, ÎÎÎÏ <link xref=\"messagedialog.js\">Gtk.MessageDialog</"
-"link> ÎÎÏÎÎÎÎÎÏÎÎ. ÎÏÏÎ Î ÏÏÎÎÏÏÎÏÎ ÎÎÎÎÎÏÏÎÎÎ ÎÎÎ ÎÎÏÎÎÎÎÎÎ ÏÎ ÎÎÎÎÏÏÎÎÎÎ "
-"ÏÎÏÎÎÏÏÎ, ÎÏÎÎÏÎ ÏÏÎÎÎÎÎ ÏÎ ÎÎÏÎÏÎ ÏÎÏ ÎÎÏÎÎÎÎ ÎÎ ÏÎ ÏÏÎÎÏÏÎÏÎ ÏÎÏ ÏÎ "
-"ÎÎÎÎÎÎÎ. ÎÎ ÎÎÎÎÎÎÎ ÎÎÏÎÎÎÎÎÏÎÎ ÏÏÎ ÎÎÎÎÏÏÎÎÎÎ ÎÎÎÏÏÎÏÎÎ ÎÏÏ ÏÎ ÏÏÎÎÏÏÎÏÎ "
-"_messageText(), ÏÎÏ ÎÏÎÏÏÏÎÏÎÎ ÎÎÎ ÎÎÎÏÎÏÎÏÎÎÎ ÏÎÎÎ ÎÎÎÎÎÎÎ ÎÎ ÏÎ ÏÏÎÎÎÎ "
-"ÎÏÎÎÎÎÏÎ ÏÎÏ ÎÎÎÎÎÎÎÏÎ."
+"ÎÏÎÎÏÎ ÎÎÎÎÎÏÏÎÎÎÏÏÎ ÎÎÎ ÎÎÏÎÎÎÎÎÎÎÎ <code>GtkEntry</code> ÎÎÎ ÏÎÎÎÏÎÏÎÏÎ ÏÎ "
+"ÏÏÎ ÏÎÎÎÏÎÎ. ÎÎ ÏÏÎÏÎ ÎÎÎ ÏÎÏÎÏÏÎ ÏÏÎÏÎÎ ÏÏÎ <code>gtk_box_pack_start</code> "
+"ÎÎÎÎÏÎÎÎÎ ÏÏÎ Î ÎÎÏÎÏÏÏÎÏÎ ÎÎÎ ÎÎ ÏÏÎÏÎÎ ÎÎ ÏÎÏÎÎ ÎÏÎÏÎÎÎÎ ÏÏÏÎ ÏÎÏ ÏÎ "
+"ÏÎÎÎÏÎÎ ÎÏÎÎ ÎÎÎÎÎÏÎÎÎ. ÎÎ ÏÎÏÎÏÏÎ ÏÏÎÏÎÎ ÎÎÎÎÎ Î ÏÎÏÏÏÎÏÎ ÏÏÎÏÎÎÏÏÏÎÏ ÏÎÏ "
+"ÎÎÎÎÏÎ ÎÏÏÏ ÎÏÏ ÏÎÎ ÎÎÏÎÏÏÏÎÏÎ. ÎÎ ÎÏÏÎ ÏÎÎ ÏÎÏÎÏÏÏÏÎ, ÎÏÎÎÎÏÎ ÏÎ ÏÏÎÏÎÎÏÏÏÎ "
+"ÏÎ ÎÎÎÎÎ, ÎÏÎÎÎÎ ÎÏÎÏÏÎÏÎÏÎ ÏÏÎ ÏÎÎÎÏÎÎ ÎÎ ÏÎÎÏÎÏÏÎÎ ÏÎÎ ÏÎ ÏÏÎÏÎÎÏÏÏÎ."
 
-#: C/radiobutton.js.page:246(p)
+#: C/message-board.c.page:152(section/p)
 msgid ""
-"The get_active() method is how we can tell which RadioButton's pressed in. "
-"This function returns a different silly message depending on which set of "
-"buttons was pressed. Its return value is used as the MessageDialog's text "
-"property."
+"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 ""
-"Î ÎÎÎÎÎÎÏ get_active() ÎÎÎÎ ÏÏÏ ÎÏÎÏÎÏÎÎ ÎÎ ÏÎÏÎÎ ÏÎÎÎ RadioButton ÏÎÏÎÎÏÎÎ. "
-"ÎÏÏÎ Î ÏÏÎÎÏÏÎÏÎ ÎÏÎÏÏÏÎÏÎÎ ÎÎÎ ÎÎÎÏÎÏÎÏÎÎÏ ÏÎÎÏ ÎÎÎÏÎÎ ÎÎÎÎÎÎÎ ÎÎ ÏÎÎÎ "
-"ÏÏÎÎÎÎ ÎÎÏÎÏÎÏÎ ÏÎÏÎÎÎÎÎ. Î ÎÏÎÏÏÏÎÏÏÎÎÎÎ ÏÎÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÏÏ ÎÎÎÏÏÎÏÎ "
-"ÎÎÎÎÎÎÎÏ ÏÎÏ MessageDialog."
+"ÎÏÎÎ ÏÎÎ ÏÏÎÏÎÎÎÎ ÎÎÎÏ ÏÏÎÎÎÎÎÏ ÎÏÏÎÏ, ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎ ÎÎÎ ÎÏÎÎÏÎÎÎÎ "
+"ÏÎÏÎÎÏÏÎ ÎÎÎ ÎÎ ÎÏÎÎ ÎÎÏÎ ÏÎÏ. ÎÎ ÎÏÎÎÏÎÎÎÎ ÏÎÏÎÎÏÏÎ ÎÎ ÏÎÏÎÎÎÏÎÏÎÎ ÎÏÎÎÎÎÏ "
+"ÎÏÎÎÏÎÏ ÏÏÎ ÎÎÎÎÎ ÎÎÎ ÎÎÏÏ ÏÏÎÎ ÏÏÎÎÎÎÎÏÎÎ ÎÎÎ ÎÎ ÎÏÎÏÏÎÏÎÎ ÏÎÎ ÏÏÎÎÎÎÎ ÏÎÏ "
+"ÎÏÏÎÏ ÎÏÏ ÏÎ ÎÎÎÎÏÎÎ ÏÎÎÏ ÏÎÏ ÎÎÏÎÎÏ. ÎÏÏÎ ÏÎ ÏÎÏÎ, ÏÎÏÎÎÏÎ <code>TRUE</"
+"code> ÎÎÎ <code>TRUE</code> ÏÏÎ <code>gtk_box_pack_start</code> ÎÎÎ ÎÎ "
+"ÎÏÎÏÏÎÏÎÏÎ ÏÏÎ ÎÏÎÎÏÎÎÎÎ ÏÎÏÎÎÏÏÎ (ÎÎÎ ÏÏÎÎÏÏÏ ÏÏÎÎ ÏÏÎÎÎÎÎ ÎÏÏÎÏ) ÎÎ "
+"ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÎÏÎÎÎÎÎÏÎÏÎ ÎÎÎÎÎÏÎÎÎ ÏÏÏÎ ÏÏÎ ÏÎÎÎÏÎÎ."
 
-#: C/radiobutton.js.page:257(p)
+#: C/message-board.c.page:159(section/p)
 msgid ""
-"This function is called when the MessageDialog's OK button is pressed. It "
-"simply makes the popup go away."
+"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 ""
-"ÎÏÏÎ Î ÏÏÎÎÏÏÎÏÎ ÎÎÎÎÎÏÎÎ ÏÏÎÎ ÏÎ ÎÎÏÎÏÎ ÎÎÏÎÎÎÎ ÏÎÏ MessageDialog ÏÎÏÎÎÏÎÎ. "
-"ÎÎÎÎÎ ÎÏÎÎ ÏÎ ÎÎÎÎÏÏÎÎÎÎ ÎÎ ÏÏÎÎÎ."
-
-#: C/radiobutton.c.page:7(title)
-msgid "RadioButton (C)"
-msgstr "RadioButton (C)"
-
-#: C/radiobutton.c.page:19(desc)
-msgid "A choice from multiple checkbuttons"
-msgstr "ÎÎÎ ÎÏÎÎÎÎÎ ÎÏÏ ÏÎÎÎÎÏÎÎ ÎÎÏÎÏÎÎ ÎÎÎÎÏÎÏ"
-
-#: C/radiobutton.c.page:25(p)
-msgid "These radiobuttons report their activity in the terminal."
-msgstr "ÎÏÏÎ ÏÎ ÏÎÎÎÎÏÎÎÎÏÏÎ ÎÎÎÏÎÏÎÏÎ ÏÎÎ ÎÏÎÏÏÎÏÎÏÏÎÏÎ ÏÎÏÏ ÏÏÎ ÏÎÏÎÎÏÎÎÏ."
+"ÎÎÎÎÎÎ, ÎÎÎÎÎÏÏÎÎÎÏÎ ÎÎÎ <code>WebKitWebView</code> ÎÎÎ ÏÎ ÏÏÎÏÎÎÏÎÏÎ ÏÏÎ "
+"ÎÏÎÎÏÎÎÎÎ ÏÎÏÎÎÏÏÎ. ÎÏÎÎÏÎ ÏÎÏÏÏÎÎÏÎ ÎÎÎ ÏÎÎÏ ÎÎÏÎÎÎ ÏÎÎÎÎÎ HTML ÏÏÎÎ "
+"ÏÏÎÎÎÎÎ ÎÏÏÎÏ ÎÎÎÏÎÏÎÏ <code>webkit_web_view_load_string</code> ÎÎ ÏÎ "
+"ÏÎÏÎÎÎÏÏ ÎÏÎÏÎÎÏÎ:"
 
-#: C/py.page:6(title)
-msgid "Python"
-msgstr "Python"
+#: C/message-board.c.page:165(item/title)
+msgid "<code>WEBKIT_WEB_VIEW (view)</code>"
+msgstr "<code>WEBKIT_WEB_VIEW (view)</code>"
 
-#: C/py.page:15(title)
-msgid "Tutorials, code samples and platform demos in Python"
-msgstr "ÎÎÎÎÎÎÏÎ, ÎÎÎÎÎÎÏÎ ÎÏÎÎÎÎ ÎÎÎ ÏÎÏÎÎÎÎÎÎÎÏÎ ÏÎÎÏÏÏÏÎÎÏ ÏÎ Python"
+#: C/message-board.c.page:166(item/p)
+msgid ""
+"The view itself. Because <code>view</code> is typed as a <code>GtkWidget*</"
+"code>, you have to use <code>WEBKIT_WEB_VIEW</code> to safely cast the "
+"object."
+msgstr ""
+"Î ÎÎÎÎ Î ÏÏÎÎÎÎÎ. ÎÏÎÎÎÎ Î <code>view</code> ÏÎÎÎÏÏÎÎÎÎÎÎÏÎ ÏÏ "
+"<code>GtkWidget</code>, ÏÏÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ <code>WEBKIT_WEB_VIEW</"
+"code> ÎÎÎ ÎÏÏÎÎÎ ÎÎÎÎÎÎ ÏÎÏ ÎÎÏÎÎÎÎÎÎÎÎÏ."
 
-#: C/properties.py.page:8(title)
-msgid "Properties (Python)"
-msgstr "ÎÎÎÏÏÎÏÎÏ (Python)"
+#: C/message-board.c.page:171(item/title)
+msgid "<code>\"&lt;html&gt;&lt;body&gt;&lt;/body&gt;&lt;/html&gt;\"</code>"
+msgstr "<code>\"&lt;html&gt;&lt;body&gt;&lt;/body&gt;&lt;/html&gt;\"</code>"
 
-#: C/properties.py.page:12(desc)
-msgid "An explanation of properties, getters and setters."
-msgstr "ÎÎÎ ÎÎÎÎÎÏÎ ÏÏÎ ÎÎÎÎÏÎÏÏÎ, ÎÎÏÏÏÎ ÎÎÎ ÏÏÎÎÎÏÏÏÎ."
+#: C/message-board.c.page:172(item/p)
+msgid "The simplest HTML file you could possibly write."
+msgstr "ÎÎ ÎÏÎÎÏÏÏÎÏÎ ÎÏÏÎÎÎ HTML ÏÎÏ ÎÎ ÎÏÎÏÎÏÏÎÏÎ ÎÎ ÎÏÎÏÎÏÎ."
 
-#: C/properties.py.page:25(title)
-msgid "Properties"
-msgstr "ÎÎÎÏÏÎÏÎÏ"
+#: C/message-board.c.page:175(item/title)
+msgid "<code>\"text/html\"</code>"
+msgstr "<code>\"text/html\"</code>"
 
-#: C/properties.py.page:32(p)
+#: C/message-board.c.page:176(item/p)
 msgid ""
-"<em>Properties</em> describe the configuration and state of widgets, and "
-"each widget has its own particular set of properties. For example, a widget "
-"such as a button or a label has the property \"label\" which contains the "
-"text of the widget. You can specify the name and value of any number of "
-"properties as keyword arguments when creating an instance of a widget: for "
-"example, to create a label aligned to the right with the text âHello Worldâ "
-"and an angle of 25 degrees, you can use:"
+"The MIME type of the content you provided. In this case, you're using plain "
+"HTML."
 msgstr ""
-"ÎÎ <em>ÎÎÎÏÏÎÏÎÏ</em> ÏÎÏÎÎÏÎÏÎÏÎ ÏÎ ÎÎÎÎÏÏÏÏÏÎ ÎÎÎ ÎÎÏÎÏÏÎÏÎ ÏÏÎ ÎÏÎÏÎÎÏÎ "
-"ÏÏÏÏÎÏÎÎÏÎ ÎÎÎ ÎÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÏÎÎ ÏÎ ÎÎÎÏ ÏÎÏ ÎÎÎÎÎÏÎÏÎ ÏÏÎÎÎÎ "
-"ÎÎÎÎÏÎÏÏÎ. ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ, ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÏÏÏÏ ÎÎÎ ÎÎÏÎÏÎ Î ÎÎÎ "
-"ÎÏÎÎÎÏÎ ÎÏÎÎ ÏÎÎ ÎÎÎÏÏÎÏÎ \"label\" ÏÎÏ ÏÎÏÎÎÏÎÎ ÏÎ ÎÎÎÎÎÎÎ ÏÎÏ ÎÏÎÏÎÎÎÏ "
-"ÏÏÏÏÎÏÎÎÎÏ. ÎÏÎÏÎÎÏÎ ÎÎ ÎÏÎÏÎÏÎ ÏÎ ÏÎÎÎÎ ÎÎÎ ÏÎÎ ÏÎÎÎ ÎÏÎÎÎÏÎÎÏÎÏÎ ÎÏÎÎÎÎÏ "
-"ÎÎÎÎÏÎÏÏÎ ÏÏ ÎÏÎÏÎÎÏÎ ÎÎÎÎÏ-ÎÎÎÎÎÎ ÏÏÎÎ ÎÎÎÎÎÏÏÎÎÎÏÎ ÎÎÎ ÏÏÎÎÎÎÏÏÏÏÎ ÎÎÏÏ "
-"ÎÏÎÏÎÎÎÏ ÏÏÏÏÎÏÎÎÎÏ: ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ, ÎÎÎ ÏÎ ÎÎÎÎÎÏÏÎÎÎ ÎÎÎÏ ÎÏÎÎÎÏÎÏ "
-"ÏÏÎÎÏÎÏÎÎÎÎÏ ÏÏÎ ÎÎÎÎÎ ÎÎ ÏÎ ÎÎÎÎÎÎÎ âHello Worldâ ÎÎÎ ÎÎÎ ÎÏÎÎÎ 25 ÎÎÎÏÏÎ, "
-"ÎÏÎÏÎÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ:"
+"Î ÏÏÏÎÏ MIME ÏÎÏ ÏÎÏÎÎÏÎÎÎÎÎÏ ÏÎÏ ÎÎÎÎÏÎ. ÎÎ ÎÏÏÎÎ ÏÎÎ ÏÎÏÎÏÏÏÏÎ, "
+"ÏÏÎÏÎÎÎÏÎÎÎÎÏÎ ÎÏÎÏ HTML."
 
-#: C/properties.py.page:33(code)
-#, no-wrap
+#: C/message-board.c.page:180(item/title)
+msgid "<code>\"UTF-8\"</code>"
+msgstr "<code>\"UTF-8\"</code>"
+
+#: C/message-board.c.page:181(item/p)
 msgid ""
-"\n"
-"label = Gtk.Label(label=\"Hello World\", angle=25, halign=Gtk.Align.END)"
+"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 ""
-"\n"
-"label = Gtk.Label(label=\"Hello World\", angle=25, halign=Gtk.Align.END)"
+"Î ÎÏÎÎÎÎÏÎÎÎÏÎ ÏÎÏÎÎÏÎÏÎ ÏÎÏ ÏÎÏÎÏÏÎÎÎÎÏ ÏÎÏÎÎÏÎÎÎÎÎÏ. ÎÎ ÎÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÏÎ "
+"ÎÏÎÎ ASCII ÏÎÏÎÎÏÎÏÎÏ, ÎÎÎÎÎ ÎÎÎÎ Î ÎÎÎÎÏÎÏÎÏÏ UTF-8. ÎÎ UTF-8 "
+"ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÏÏ Î ÏÏÎÎÏÎÎÎÎÎÎÎÎ ÎÏÎÎÎÎÏÎÎÎÏÎ ÎÎÎÎÎÎÏÏÏÎÎÎ ÏÏÎ GNOME."
 
-#: C/properties.py.page:36(p)
-msgid "This is equivalent to:"
-msgstr "ÎÏÏÏ ÎÎÎÎÎ ÎÏÎÎÏÎÎÎÎ ÎÎ:"
+#: C/message-board.c.page:186(item/title)
+msgid "<code>NULL</code>"
+msgstr "<code>NULL</code>"
 
-#: C/properties.py.page:37(code)
-#, no-wrap
+#: C/message-board.c.page:187(item/p)
 msgid ""
-"\n"
-"label = Gtk.Label()\n"
-"label.set_label(\"Hello World\")\n"
-"label.set_angle(25)\n"
-"label.set_halign(Gtk.Align.END)"
+"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 ""
-"\n"
-"label = Gtk.Label()\n"
-"label.set_label(\"Hello World\")\n"
-"label.set_angle(25)\n"
-"label.set_halign(Gtk.Align.END)"
+"Î ÎÎÏÎ URI. ÎÎÎ ÏÎÎ ÏÏÎÎÎÎÏÏÎÏÏÎ ÏÎ ÎÏÏÏ ÏÎ ÎÏÎÏ ÏÎÏÎÎÎÎÎÎÎ, ÎÎÎÎ ÎÏÏÏ "
+"ÎÎÎÎÏÎÏÎ ÎÎ ÎÏÏÎÏÎ ÎÎÎ <sys>file:</sys> URI ÎÎÎ ÏÏÎÏÎÎÏÎÏÎ ÎÎÎÏÎÎÏ Î ÎÎÎÎ "
+"ÏÎÏÎÎÏÎÏÎÏÏÎÎÎ ÏÎÏ ÎÎÎÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÏÏÎÏÎÎÎÏ ÎÎÎÏÎÏÎÏ URI."
 
-#: C/properties.py.page:43(p)
+#: C/message-board.c.page:194(note/p)
 msgid ""
-"Once you have created such a label, you can get the text with the getter "
-"<code>label.get_label()</code>."
+"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 ""
-"ÎÏÎÎÏ ÎÎÎÎÎÏÏÎÎÏÎÏÎ ÎÎÎ ÏÎÏÎÎÎ ÎÏÎÎÎÏÎ, ÎÏÎÏÎÎÏÎ ÎÎ ÏÎÏÎÏÎ ÏÎ ÎÎÎÎÎÎÎ ÎÎ ÏÎÎ "
-"ÎÎÏÏÎ <code>label.get_label()</code>."
+"ÎÎÎÎ ÏÎÏÎ ÏÎÏ ÏÏÎÏÎÎÏÎÏÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ, ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÏÎÏÎ "
+"<code>gtk_widget_show</code> ÎÎÎ ÎÎ ÎÎÎÎÎ ÎÏÎÏÏ. ÎÎÎ ÎÎÎÎÏÎÏÎ "
+"<code>gtk_widget_show_all</code> ÏÎ ÎÎÎ ÏÎÏÎÎÎÏÎ ÎÏÎÏÎÎÎÏ ÏÏÏÏÎÏÎÎÎÏ ÏÏÏÏ "
+"<code>GtkBox</code>, ÏÎ GTK+ ÎÎ ÎÎÏÎÎÎÏÎÎ ÎÏÏÏÎÎÏÎ ÏÎÎ ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ "
+"ÎÎÏÎ ÏÏÎÎ ÏÎÏÎÎÎÏÎ, ÏÎ ÎÏÎÎÎÎÎÏÎÏÎ ÎÎÎÎÏ. ÎÎÏÎÎÎÏ ÏÎÏÎÏ ÎÎÎ ÎÎÎÎÏÎ ÎÎ "
+"ÎÎÎÎÏÎÏÎ <code>gtk_widget_show_all</code>, ÏÏÏÏ ÏÏÎÎ ÎÎÎÎÏÎ ÎÎ ÎÏÏÏÎÏÎ "
+"ÎÏÎÎÎÎÎÎ ÎÎÎ ÎÎ ÎÎÏÎÎÎÏÎÏÎ ÎÎÏÎÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÏÎ ÎÏÎÎÏÎÏÎ ÏÏÎÎÎÎÏÏÎ."
 
-#: C/properties.py.page:45(p)
+#: C/message-board.c.page:202(section/p)
 msgid ""
-"Instead of using getters and setters you can also get and set the properties "
-"with <code>get_property(\"prop-name\")</code> and <code>set_property(\"prop-"
-"name\", value)</code>, respectively."
+"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 ""
-"ÎÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÎÎÏÏÎÏ ÎÎÎ ÏÏÎÎÎÏÏÎÏ ÎÏÎÏÎÎÏÎ ÎÏÎÏÎÏ ÎÎ ÏÎÏÎÏÎ ÎÎÎ "
-"ÎÎ ÏÏÎÎÎÏÎÏÎ ÏÎÏ ÎÎÎÏÏÎÏÎÏ ÎÎ <code>get_property(\"prop-name\")</code> ÎÎÎ "
-"<code>set_property(\"prop-name\", value)</code>, ÎÎÏÎÏÏÎÎÏÎ."
+"ÎÎÎÎÎÎ, ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÏÎÏÎ <code>gtk_widget_show_all</code> ÏÏÎ ÏÎÎÎÏÎÎ. "
+"ÎÎÎÎÏÏ, ÎÎÎÎÎÎ ÎÏÏ ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÏÎÏ ÎÎÎÎÎÏÏÎÎÏÎÏÎ ÎÎÎ ÎÎ ÎÎÎÎÎ "
+"ÎÏÎÏÏ. (ÎÎ ÏÎÏÎÎÏÏÎ ÎÎÏÎÎÎÎÎÏÎÎ ÏÏÎ ÏÏÎÎÏÏÎÏÎ <code>main</code> ÎÎ "
+"<code>gtk_widget_show</code>.)"
 
-#: C/properties.py.page:51(p)
+#: C/message-board.c.page:206(section/p)
 msgid ""
-"<link href=\"http://python-gtk-3-tutorial.readthedocs.org/en/latest/basics.";
-"html\">Basics - Properties</link> in Python Gtk+ 3 Tutorial"
+"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 ""
-"<link href=\"http://python-gtk-3-tutorial.readthedocs.org/en/latest/basics.";
-"html\">ÎÎÏÎÎÎ - ÎÎÎÏÏÎÏÎÏ</link> ÏÏÎ ÎÎÎÎÎÎ Python Gtk+ 3"
+"ÎÎÎÏÏÏÎÏÎ ÎÎÎ ÎÎÏÎÎÎÏÏÎ ÎÎÎÎ ÏÎÎ ÏÎÎÎÎÎ ÎÎÎÏÎÎÏÎÏ. ÎÏÎÏÎÎ ÎÎ ÎÎÎÏÎ ÎÎÎ "
+"ÏÎÏÎÎÏÏÎ ÎÎ ÎÎÎ ÎÎÏÎÏÏÏÎÏÎ ÎÎÎÎÎÎÎÏ ÎÎÎ ÎÎÎ ÏÏÎÎÎÎÎ ÎÏÏÎÏ. ÎÎÎ ÎÎÎÎÎ ÏÎÏÎÏÎ "
+"ÎÎÏÎÎ, ÎÏÎÎÎÎ Î ÎÎÏÎÏÏÏÎÏÎ ÎÎÎÎÎÎÎÏ ÎÎÎ Î ÏÏÎÎÎÎÎ ÎÏÏÎÏ ÎÎÎ ÎÎÏÎÏÎ ÏÎÏÎÏÎ "
+"ÎÎÏÎÎÏ ÏÎÏÏ."
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/progressbar.vala.page:21(None) C/progressbar.c.page:23(None)
+#: C/message-board.c.page:212(section/title)
+msgid "Hook up signals"
+msgstr "ÎÏÎÎÎÏÎ ÏÎÎÎÏÏÎ"
+
+#: C/message-board.c.page:214(section/p)
 msgid ""
-"@@image: 'media/progressbar_fill.ogv'; md5=287763d1d3f4a328212ea2243910f5e4"
+"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 ""
-"@@image: 'media/progressbar_fill.ogv'Â md5=287763d1d3f4a328212ea2243910f5e4"
-
-#: C/progressbar.vala.page:7(title)
-msgid "ProgressBar (Vala)"
-msgstr "ProgressBar (Vala)"
-
-#: C/progressbar.vala.page:17(desc) C/progressbar.c.page:18(desc)
-msgid "A widget which indicates progress visually"
-msgstr "ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÏÎÏ ÎÎÎÏÎÎÎ ÏÎÎ ÏÏÏÎÎÎ ÎÏÏÎÎÎ"
-
-#: C/progressbar.vala.page:20(title) C/progressbar.py.page:20(title)
-#: C/progressbar.js.page:19(title) C/progressbar.c.page:21(title)
-msgid "ProgressBar"
-msgstr "ProgressBar"
+"ÎÏÏÎ, ÎÎÎÎÏÎ ÎÎ ÎÎÎÎÏÎ ÏÎÎ ÏÎÎÎÎÎ ÎÎÎÏÎÎÏÎÏ ÏÏÎÎ ÏÏÎÎÎÎÏÎÎÏÏÎÏÎ <em>ÎÎ "
+"ÎÎÎÎÎ</em> ÎÎÏÎ ÏÏÎÎ ÎÎÏÎÎÎÏÎ ÎÎÎÎÎÎÎ ÏÏÎÎ ÎÎÏÎÏÏÏÎÏÎ ÎÎÎÎÎÎÎÏ. ÎÎÎ ÎÎ ÏÎ "
+"ÎÎÎÎÏÎ ÎÏÏÏ, ÏÏÎÎÎÏÏÎ ÎÎÎ ÏÏÎÎÏÏÎÏÎ ÎÏÎÎÎÎÎÎÏÎÏ ÏÏÎ ÏÎÎÎ <code>activate</"
+"code> ÏÎÏ <code>entry</code>. ÎÎ GTK+ ÎÎÏÎÎÏÎÎ ÏÎ ÏÎÎÎ <code>activate</code> "
+"ÏÏÎÎ Î ÏÏÎÏÏÎÏ ÏÎÏÎ <key>Enter</key> ÏÏÎÎ ÎÎÏÎÏÏÏÎÏÎ. ÎÏÎÏÎÎÏÏÎ ÏÎ ÏÎÏÎÎÎÏÏ "
+"ÏÏÎ <code>create_window</code>, ÎÏÎÏÎÎÏÎÏÎ ÎÏÎÏ ÎÎÎ <code>entry</code> ÎÎÎ "
+"<code>view</code> ÎÏÎÏÏÎÏÎ:"
 
-#: C/progressbar.vala.page:22(p) C/progressbar.c.page:24(p)
+#: C/message-board.c.page:221(section/code)
+#, no-wrap
 msgid ""
-"This ProgressBar \"fills in\" by a fraction of the bar until it is full."
+"\n"
+"g_signal_connect (entry, \"activate\", G_CALLBACK (entry_activate_cb), view);\n"
 msgstr ""
-"ÎÏÏÎ Î ProgressBar \"ÎÎÎÎÎÎÎ\" ÎÎ ÎÎÎ ÎÎÎÏÎÎ ÏÎÏ ÎÏÎÎÎÎÏ ÎÎÏÏÎ ÎÎ ÎÎÎÎÏÎÎ."
-
-#: C/progressbar.vala.page:29(link) C/progressbar.js.page:41(link)
-#: C/grid.js.page:37(link)
-msgid "Gtk.ProgressBar"
-msgstr "Gtk.ProgressBar"
-
-#: C/progressbar.vala.page:30(link)
-msgid "GLib.Timeout"
-msgstr "GLib.Timeout"
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/progressbar.py.page:21(None) C/progressbar.js.page:20(None)
-msgid "@@image: 'media/progressbar.ogv'; md5=36deab3dd4b5be968828fa2ef416d612"
-msgstr "@@image: 'media/progressbar.ogv'Â md5=36deab3dd4b5be968828fa2ef416d612"
-
-#: C/progressbar.py.page:7(title)
-msgid "ProgressBar (Python)"
-msgstr "ProgressBar (Python)"
-
-#: C/progressbar.py.page:17(desc)
-msgid "A widget which indicates progress visually."
-msgstr "ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÏÎÏ ÎÎÎÏÎÎÎ ÏÎÎ ÏÏÏÎÎÎ ÎÏÏÎÎÎ."
-
-#: C/progressbar.py.page:25(p) C/progressbar.js.page:24(p)
-msgid "Pressing any key stops and starts this ProgressBar."
-msgstr "ÎÎÏÏÎÏÎÏ ÎÏÎÎÎÎÎÏÎÏÎ ÏÎÎÎÏÏÎ ÏÏÎÎÎÏÎ ÎÎÎ ÎÏÏÎÎÎÎ ÎÏÏÎ ÏÎ ProgressBar."
-
-#: C/progressbar.py.page:32(p) C/progressbar.js.page:31(p)
-msgid "This ProgressBar is stopped and started by pressing any key."
-msgstr "ÎÏÏÎ Î ProgressBar ÏÏÎÎÎÏÎ ÎÎÎ ÎÎÎÎÎÎ ÏÎÏÏÎÏÎÏ ÎÏÎÎÎÎÎÏÎÏÎ ÏÎÎÎÏÏÎ."
-
-#: C/progressbar.py.page:44(title)
-msgid "Useful methods for a ProgressBar widget"
-msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ProgressBar"
+"\n"
+"g_signal_connect (entry, \"activate\", G_CALLBACK (entry_activate_cb), view);\n"
 
-#: C/progressbar.py.page:46(p)
+#: C/message-board.c.page:225(section/p)
 msgid ""
-"Instead of <code>pulse()</code>, that makes the bar go back and forth, if we "
-"want the ProgressBar to \"fill in\" a fraction (a <code>float</code> between "
-"<code>0.0</code> and <code>1.0</code> included) of the bar that has been "
-"completed, use <code>set_fraction(fraction)</code>."
+"You then have to actually define <code>entry_activate_cb</code>. Define it "
+"as follows, anywhere above <code>create_window</code>:"
 msgstr ""
-"ÎÎÏÎ ÎÎÎ <code>pulse()</code>, ÏÎÏ ÎÎÎÎÎ ÏÎ ÎÏÎÎÎÎ ÎÎ ÏÎÎÎÎÎÎÎ ÎÏÏÎÏÏÎ ÏÎÏÏ, "
-"ÎÎÎ ÎÎÎÎÏÎÎ Î ProgressBar ÎÎ \"ÎÎÎÎÎÎÎ\" ÎÎÎ ÎÎÎÏÎÎ (ÎÎÎ <code>float</code> "
-"ÎÎÏÎÎÏ <code>0.0</code> ÎÎÎ <code>1.0</code> ÏÏÎÏÎÏÎÎÎÎÎÎÎÏÎÎÎÎÏ) ÏÎÏ "
-"ÎÏÎÎÎÎÏ ÏÎÏ ÎÏÎÎ ÎÎÎÎÎÎÏÏÎÎÎ, ÏÏÎÏÎÎÎÏÎÎÎÏÏÎ <code>set_fraction(fraction)</"
-"code>."
+"ÎÏÏÎ ÏÏÎÏÎÎ ÏÏÎÎ ÏÏÎÎÎÎÏÎÎÏÏÎÏÎ ÎÎ ÎÏÎÏÎÏÎ ÏÎ <code>entry_activate_cb</"
+"code>. ÎÏÎÏÏÎ ÏÎ ÏÏÏÏ ÎÎÎÎÎÏÎÎÎ, ÎÏÎÏÎÎÏÎÏÎ ÏÎÎÏ ÎÏÏ ÏÎ <code>create_window</"
+"code>:"
 
-#: C/progressbar.py.page:47(p)
+#: C/message-board.c.page:228(section/code)
+#, no-wrap
 msgid ""
-"To set a text and show it (superimposed over the bar) use <code>set_text"
-"(\"some text\")</code> and <code>set_show_text(True)</code>. If a text is "
-"not set and <code>set_show_text(True)</code> the text will be the percentage "
-"of the work that has been completed."
+"\n"
+"static void\n"
+"entry_activate_cb (GtkEntry *entry, WebKitWebView *view)\n"
+"{\n"
+"    WebKitDOMDocument *document;\n"
+"    WebKitDOMElement *body, *div;\n"
+"\n"
+"    document = webkit_web_view_get_dom_document (view);\n"
+"    body = webkit_dom_document_query_selector (document, \"body\", NULL);\n"
+"    div = webkit_dom_document_create_element (document, \"div\", NULL);\n"
+"    webkit_dom_node_set_text_content (WEBKIT_DOM_NODE (div),\n"
+"                                      gtk_entry_get_text (entry),\n"
+"                                      NULL);\n"
+"    webkit_dom_node_append_child (WEBKIT_DOM_NODE (body),\n"
+"                                  WEBKIT_DOM_NODE (div),\n"
+"                                  NULL);\n"
+"    gtk_entry_set_text (entry, \"\");\n"
+"}\n"
 msgstr ""
-"ÎÎÎ ÏÏÎÎÎÏÎ ÎÎÎÎÎÎÎÏ ÎÎÎ ÎÎÏÎÎÎÏÎ ÏÎÏ (ÏÏÎÏÏÎÎÎÎÎÎÎÏ ÏÎÏ ÎÏÎÎÎÎÏ) "
-"ÏÏÎÏÎÎÎÏÎÎÎÏÏÎ <code>set_text(\"some text\")</code> ÎÎÎ <code>set_show_text"
-"(True)</code>. ÎÎÎ ÎÎÎ ÎÎÎÎÎÎÎ ÎÎÎ ÎÏÎÎÎÏÎÎ ÎÎÎ ÏÎ <code>set_show_text(True)"
-"</code>, ÏÏÏÎ ÏÎ ÎÎÎÎÎÎÎ ÎÎ ÎÎÎÎÎ ÏÎÏÎÏÏÏ ÏÎÏ ÎÏÎÎÏÎÎÏ ÏÎÏ ÎÎÎÎÎÎÏÏÎÎÎÎ."
-
-#: C/progressbar.py.page:55(link) C/progressbar.c.page:34(link)
-#: C/grid.c.page:33(link)
-msgid "GtkProgressBar"
-msgstr "GtkProgressBar"
-
-#: C/progressbar.py.page:56(link)
-msgid "GLib - The Main Event Loop"
-msgstr "GLib - Î ÎÏÏÎÎÏ ÎÏÏÏÎÏ ÏÏÎÎÎÎÏÎÏ"
-
-#: C/progressbar.js.page:6(title)
-msgid "ProgressBar (JavaScript)"
-msgstr "ProgressBar (JavaScript)"
-
-#: C/progressbar.js.page:16(desc)
-msgid "A bar which animates to indicate progress"
-msgstr "ÎÎÎ ÎÏÎÎÎÎ ÏÎÏ ÎÎÎÎÎÏÎÎ ÎÎÎ ÎÎ ÎÎÎÎÎÎ ÏÎÎ ÏÏÏÎÎÎ"
-
-#: C/progressbar.js.page:38(link)
-msgid "GLib"
-msgstr "GLib"
+"\n"
+"static void\n"
+"entry_activate_cb (GtkEntry *entry, WebKitWebView *view)\n"
+"{\n"
+"    WebKitDOMDocument *document;\n"
+"    WebKitDOMElement *body, *div;\n"
+"\n"
+"    document = webkit_web_view_get_dom_document (view);\n"
+"    body = webkit_dom_document_query_selector (document, \"body\", NULL);\n"
+"    div = webkit_dom_document_create_element (document, \"div\", NULL);\n"
+"    webkit_dom_node_set_text_content (WEBKIT_DOM_NODE (div),\n"
+"                                      gtk_entry_get_text (entry),\n"
+"                                      NULL);\n"
+"    webkit_dom_node_append_child (WEBKIT_DOM_NODE (body),\n"
+"                                  WEBKIT_DOM_NODE (div),\n"
+"                                  NULL);\n"
+"    gtk_entry_set_text (entry, \"\");\n"
+"}\n"
 
-#: C/progressbar.c.page:7(title)
-msgid "ProgressBar (C)"
-msgstr "ProgressBar (C)"
+#: C/message-board.c.page:248(section/p)
+msgid ""
+"The first thing you do is get a <code>WebKitDOMDocument</code> object that "
+"represents the HTML document displayed in <code>view</code>. The DOM classes "
+"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 ""
+"ÎÎ ÏÏÏÏÎ ÏÏÎÎÎÎ ÎÎÎÎÎ ÎÎ ÏÎÏÎÏÎ ÎÎÎ ÎÎÏÎÎÎÎÎÎÎÎ <code>WebKitDOMDocument</"
+"code> ÏÎÏ ÎÎÏÎÏÏÎÏÏÏÎÏÎÎ ÏÎ ÎÎÏÎÎÎÎÏÎÎÎÎ ÎÎÎÏÎÏÎ ÏÏÎ <code>view</code>. ÎÎ "
+"ÎÎÎÏÎÎÏ DOM ÎÎÎ ÎÎ ÎÎÎÎÎÎÎ ÏÏÎ WebKit ÎÏÎÏÏÎÏÎÏÎ ÏÎÎ ÎÏÎÎÎÏÏÎÏÎ ÎÎÎ ÏÎÎÏÎÏÎÏ "
+"ÏÎÏ ÎÎÎÏÎÏÎÏ HTML ÎÎÎ ÎÎÏÎÎÏÎÏÎ ÏÎÎÏ ÏÎÏÏÎÎÎÎ ÎÎ ÏÎ APIs DOM ÏÎÏ ÎÎÎ ÎÏÎÏÎÎ "
+"ÎÎ ÎÎÏÎÏÎ ÎÏÏ ÏÎ JavaScript."
 
-#: C/progressbar.c.page:35(link)
-msgid "G_Timeout"
-msgstr "G_Timeout"
+#: C/message-board.c.page:254(section/p)
+msgid ""
+"Once you have the document, you want to get the <code>body</code> element so "
+"that you can add <code>div</code> elements to it. The "
+"<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 ""
+"ÎÏÎÎÏ ÎÏÎÏÎ ÏÎ ÎÎÎÏÎÏÎ, ÏÎÎÏÎÎÏÎ ÏÎ ÏÏÎÎÏÎÎÎ <code>body</code>, ÎÏÏÎ ÏÏÏÎ ÎÎ "
+"ÎÏÎÏÎÎÏÎ ÎÎ ÏÏÎÏÎÎÏÎÏÎ ÏÎ ÏÏÎÎÏÎÎÎ <code>div</code> ÏÎ ÎÏÏÏ. Î ÏÏÎÎÏÏÎÏÎ "
+"<code>webkit_dom_document_query_selector</code> ÎÏÎÏÏÎÏÎÎ ÏÎÎ ÎÏÏÎÏÎ ÎÎÏÏ "
+"ÏÏÎÎÏÎÎÎÏ ÏÏÎ ÎÎÎÏÎÏÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÎÏÎÎÎÎÎÎÏ CSS. ÎÏÏÏ ÏÎÏ ÎÎÏÏÏÎÎÎ ÎÏÏ "
+"ÏÎ ÎÏÎÏÎÎÎ ÎÎÏÏÎÏÏÎÎÏÎ ÎÏÏÏÏÎ ÎÎÎ ÏÎÏÎÏÎÎ ÏÎÏ ÎÎÎÏÎÏÎÏ."
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/photo-wall.c.page:78(None)
-msgid "@@image: 'media/photo-wall.png'; md5=f19590d97e8ec029cda3c44b769c11cd"
-msgstr "@@image: 'media/photo-wall.png'Â md5=f19590d97e8ec029cda3c44b769c11cd"
+#: C/message-board.c.page:265(section/p)
+msgid ""
+"Next, you create a new <code>div</code> element to hold the message. Every "
+"element you create has to be attached to a document, so the function to "
+"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 ""
+"ÎÎÏÎ, ÎÎÎÎÎÏÏÎÎÎÏÎ ÎÎÎ ÎÎÎ ÏÏÎÎÏÎÎÎ <code>div</code> ÎÎÎ ÎÏÎÏÎÎÎ ÏÎÏ "
+"ÎÎÎÏÎÎÏÎÏ. ÎÎÎÎ ÏÏÎÎÏÎÎÎ ÏÎÏ ÎÎÎÎÎÏÏÎÎÎÏÎ ÏÏÎÏÎÎ ÎÎ ÏÏÎÏÎÏÏÎÎÎÎ ÏÎ ÎÎÎ "
+"ÎÎÎÏÎÏo, ÎÏÏÎ Î ÏÏÎÎÏÏÎÏÎ ÏÏÎ ÎÎÎÎÎÏÏÎÎÎ ÎÎÏÏ ÏÏÎÎÏÎÎÎÏ ÏÎÎÏÎÎÎ ÏÎ "
+"<code>WebKitDOMDocument</code> ÏÏ ÏÎ ÏÏÏÏÎ ÏÎÏ ÎÏÎÏÎÎÏÎ. ÎÏÎÎÏÎ ÎÏÎÎÎÏÎ ÏÎ "
+"ÏÎÏÎÎÏÏÎÎÎÎ ÎÎÎÎÎÎÎÏ ÏÎÏ ÏÏÎÎÏÎÎÎÏ ÏÏÎ ÏÎÏÎÎÏÏÎÎÎÎ ÏÎÏ ÎÎÏÎÏÏÏÎÏÎÏ ÎÎÎÎÎÎÎÏ. "
+"ÎÏÎÎÎÎ ÏÎ <code>gtk_entry_get_text</code> ÎÏÎÏÏÏÎÏÎÎ ÏÎ <code>const gchar*</"
+"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/photo-wall.c.page:81(None)
+#: C/message-board.c.page:278(section/p)
 msgid ""
-"@@image: 'media/photo-wall-focused.png'; md5=9f1ceecf3a28c1e468597b093a10cbae"
+"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 ""
-"@@image: 'media/photo-wall-focused.png'Â md5=9f1ceecf3a28c1e468597b093a10cbae"
-
-#: C/photo-wall.c.page:6(title)
-msgid "Photo Wall (C)"
-msgstr "ÎÏÏÎÎÏÎÏÎÎÏÏ ÏÎÎÏÎÏ (C)"
-
-#: C/photo-wall.c.page:9(desc)
-msgid "A Clutter image viewer"
-msgstr "ÎÎÎÏ ÏÏÎÎÎÎÎÎÏ ÎÎÎÏÎÎÏ Clutter"
-
-#: C/photo-wall.c.page:13(name)
-msgid "Chris KÃhl"
-msgstr "Chris KÃhl"
-
-#: C/photo-wall.c.page:14(email)
-msgid "chrisk openismus com"
-msgstr "chrisk openismus com"
+"ÎÎÎÎÎÎ, ÏÏÎÏÎÏÏÎÏÎ ÏÎ ÎÎÎ ÏÏÎÎÏÎÎÎ <code>div</code> ÏÏÎ ÏÏÎÎ ÎÎÎ ÎÎÎÎÏÎÏÏÎ "
+"ÏÎÎ ÎÎÏÎÏÏÏÎÏÎ ÎÎÎÎÎÎÎÏ, ÎÏÏÎ ÏÏÏÎ ÎÎ ÎÏÎÏÎÎÏÎ ÎÎ ÏÏÏÏÏÎÏÎ ÎÎÏÎ ÎÎÎ. "
+"ÎÎÏÎÏÎÎÏÎ ÎÎÎ ÎÎÏÎÎÎÏÎ ÏÎÏ ÏÏÎÎÏÎÎÎÎÏÎÏ ÎÎÎÎ ÎÎÎ ÎÎÎÎÏÎÏ ÏÎÏ ÎÎÎ ÏÎÏ."
 
-#: C/photo-wall.c.page:22(title)
-msgid "Photo Wall"
-msgstr "ÎÏÏÎÎÏÎÏÎÎÏÏ ÏÎÎÏÎÏ"
+#: C/message-board.c.page:285(section/title)
+msgid "Make it look better with CSS"
+msgstr "ÎÎÎÏÎ ÏÎ ÎÎ ÏÎÎÎÎÏÎÎ ÎÎÎÏÏÎÏÎ ÎÎ CSS"
 
-#: C/photo-wall.c.page:25(p)
+#: C/message-board.c.page:287(section/p)
 msgid ""
-"For this example we will build a simple image viewer using Clutter. You will "
-"learn:"
+"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 ""
-"ÎÎÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÎÎ ÎÎÏÎÏÎÎÏÎÏÎÏÎÎ ÎÎÎÎ ÎÏÎÏ ÏÏÎÎÎÎÎÎ ÎÎÎÏÎÏÎ "
-"ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ Clutter. ÎÎ ÎÎÎÎÏÎ:"
-
-#: C/photo-wall.c.page:27(p)
-msgid "How to size and position <code>ClutterActor</code>s"
-msgstr "ÎÏÎÎÎÎÎÏÏÎ ÎÎÎ ÏÎÏÎÎÎÏÎÏÎ ÏÎÏ <code>ClutterActor</code>s"
-
-#: C/photo-wall.c.page:28(p)
-msgid "How to place an image in a <code>ClutterActor</code>"
-msgstr "ÎÏÏ ÎÎ ÏÎÏÎÎÎÏÎÏÎÏÎ ÎÎÎ ÎÎÎÏÎÎ ÏÎ ÎÎÎ <code>ClutterActor</code>"
+"ÎÎ ÎÏÏÏ ÏÎ ÏÎÎÎÎÎ, ÏÎ ÏÏÏÎÏÎÎÎÎ ÏÎÏ ÎÎÎÎÎ ÎÎÏÏÎÎÎ ÎÎÎÏÎÏÏÎÎÎÏ, ÎÎÎÎ ÏÏÎ ÏÎÎÏ "
+"ÏÎÎÏÏÎ. ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÏÏÎÏÎÎÎÏÎÏÎ ÏÎÎ ÎÎÏÎÎÎÏÎ ÎÎÎÏÎÎÏÎÏ ÎÎ CSS, ÎÏÎÎ ÏÏÏÏ "
+"ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÎ ÎÎÎÎ ÏÎÎÎÎÎ HTML. ÎÏÎÏÏÎÏÎ ÏÎÎÎÎÎ ÏÏÏÏÎÎ ÏÎÏ ÎÎ ÎÏÎÏÎÏÏÎÏÎ "
+"ÎÎ ÏÏÎÏÎÏÏÎÏÎÏÎ ÎÎÏÎÎÎ CSS ÏÏÎ ÏÎÎÎÎÎ: ÎÏÎÏÎÎÏÎ ÎÎ ÏÎ ÏÏÎÏÎÎÏÎÏÎ ÏÏÎ ÎÏÏÎÎÏ "
+"ÎÎÎÏÎÏÎ HTML. ÎÎ ÎÏÎÏÎÏÏÎÏÎ ÎÎ ÏÎ ÎÎÏÏÎÎÏÏÏÎÏÎ ÏÏÎ ÎÎÏÏÎÏÎÎ <code>style</"
+"code> ÏÏÎ ÏÏÎÎÏÎÎÏÎ <code>div</code>. ÎÎ ÎÏÎÏÎÏÏÎÏÎ ÎÎÏÎÎ ÎÎ ÏÎ "
+"ÎÎÏÎÏÎÎÏÎÏÎÏÎ ÏÏÎÎÏÎÎÎÎÏÎÏÏÎÎÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ APIs DOM."
 
-#: C/photo-wall.c.page:29(p)
-msgid "How to do simple transitions using Clutter's animation framework"
+#: C/message-board.c.page:294(section/p)
+msgid ""
+"In this tutorial, you'll attach the CSS using the <code>user-stylesheet-uri</"
+"code> property of the <code>WebKitWebSetting</code> object attached to your "
+"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 ""
-"ÎÏÏ ÎÎ ÎÎÎÎÏÎ ÎÏÎÎÏ ÎÎÏÎÎÎÏÎÎÏ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ ÏÎÎÎÎÏÏ ÎÎÎÎÏÎÏ ÏÎÏ Clutter"
+"ÎÎ ÎÏÏÏ ÏÎ ÎÎÎÎÎÎ, ÎÎ ÎÏÎÏÏÎÎÏÎÏÎ ÏÎ CSS ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎÎ ÎÎÎÏÏÎÏÎ "
+"<code>user-stylesheet-uri</code> ÏÎÏ ÏÏÎÏÎÏÏÎÎÎÎÎÏ ÎÎÏÎÎÎÎÎÎÎÎÏ "
+"<code>WebKitWebSetting</code> ÏÏÎÎ ÏÏÎÎÎÎÎ ÏÎÏ ÎÏÏÎÏ. ÎÎ ÎÎÎ ÏÎÎ ÏÎÎÏÎ "
+"ÎÏÎÏÎÎÎÎ, ÎÎ ÎÎÎÎÏÎ ÎÎ ÎÏÎÎÎÎÎÏÏÎÏÎ ÎÎÎ ÎÎ ÏÎÏÏÏÏÎÏÎ ÏÎ ÎÏÏÎÎÎ HTML. "
+"ÎÎÎÏÎÏÏÎÏÎÏ ÏÎÏ ÏÎÎÏÎÏÎÏÎÎÏ ÎÎÏÏÎÏÎÎÎÏÎÏ ÎÎÏ ÎÏÏ ÏÎ ÎÎÎÏÎÏ HTML ÏÎÎÎÎÎÎÎ ÏÏÎ "
+"ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÎÎÎÏÎ ÎÎÏÏÎÎÎ ÏÎ ÎÎÏÏÎÏÎÎÎÏÎ ÎÎÏ ÏÎÎ ÎÏÎÏÎÎÎÎ ÏÎÏ, ÏÏÏÎÏ ÎÎ "
+"ÏÏÎÎÎÏÏÎÎ ÎÎ ÎÎÎÎÎÎÏÎ ÏÎ ÎÏÏÎÎÎ ÏÏÎÏÏÎ. ÎÎÎÎÎÎÎÎ ÎÎ ÎÎÎÎÏÎÏÏÎÏÎÏÎ ÎÏÎÎ ÎÎÎ "
+"ÎÏÏÎÎÎ ÎÎÎÎ ÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ ÏÎÏ, ÎÎÎÎ ÎÎÎ ÎÎ ÎÎÎÏÎÏÎÏÎÏÎ ÎÏÎÎ ÎÎÎÎ ÏÎ ÏÎ ÎÎÎ "
+"ÎÏÏÎÎÎ ÎÎÎ ÎÏÏÎ ÏÎÎ ÏÎÏÎÏÏÎÎÏÎ, ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÎÎ ÎÏÎÏÎ ÏÎÏ ÎÎÎÎÏÎÎ "
+"ÎÎÎÎÎÎÎÎ URI. ÎÏÏÏÎ, ÎÏÎÏÏÎ ÏÎ CSS ÏÏ ÏÏÎÏÎÎÎ ÏÏÎÎÎÎÎÏÎÎÏÎ ÎÎÎÏÎ ÏÏÎÎ ÎÎÏÏÏÎ "
+"ÏÎÏ ÎÏÏÎÎÎÏ ÏÎÏ."
 
-#: C/photo-wall.c.page:30(p)
-msgid "How to make <code>ClutterActor</code>s respond to mouse events"
+#: C/message-board.c.page:303(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"static const guchar CSS[] =\n"
+"\"body { margin: 0; padding: 0; }\\n\"\n"
+"\"div { \"\n"
+"\" -webkit-border-radius: 2px;\"\n"
+"\" background: -webkit-gradient(linear, 0% 100%, 0% 0%,\"\n"
+"\" from(#f1f1f1), to(white));\"\n"
+"\" border: solid 1px #c6c6c6;\"\n"
+"\" -webkit-box-shadow: 0px 0px 2px #c6c6c6;\"\n"
+"\" margin: 12px; padding: 6px;\"\n"
+"\"}\";\n"
 msgstr ""
-"ÎÏÏ ÎÎ ÎÎÎÎÏÎ ÏÎ <code>ClutterActor</code>s ÎÎ ÎÏÎÎÏÎÏÎÎ ÏÏÎ ÏÏÎÎÎÎÏÎ ÏÎÏ "
-"ÏÎÎÏÎÎÎÎÏ"
-
-#: C/photo-wall.c.page:31(p)
-msgid "How to get file names from a directory"
-msgstr "ÎÏÏ ÎÎ ÏÎÏÎÏÎ ÎÎÏÎÎÏÎ ÎÏÏÎÎÎÏ ÎÏÏ ÎÎÎÎ ÎÎÏÎÎÎÎÎ"
-
-#: C/photo-wall.c.page:37(p)
+"\n"
+"static const guchar CSS[] =\n"
+"\"body { margin: 0; padding: 0; }\\n\"\n"
+"\"div { \"\n"
+"\" -webkit-border-radius: 2px;\"\n"
+"\" background: -webkit-gradient(linear, 0% 100%, 0% 0%,\"\n"
+"\" from(#f1f1f1), to(white));\"\n"
+"\" border: solid 1px #c6c6c6;\"\n"
+"\" -webkit-box-shadow: 0px 0px 2px #c6c6c6;\"\n"
+"\" margin: 12px; padding: 6px;\"\n"
+"\"}\";\n"
+
+#: C/message-board.c.page:316(section/p)
 msgid ""
-"Clutter is a library for creating dynamic user interfaces using OpenGL for "
-"hardware acceleration. This example demonstates a small, but central, part "
-"of the Clutter library to create a simple but attractive image viewing "
-"program."
+"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 ""
-"Clutter ÎÎÎÎÎ ÎÎÎ ÎÎÎÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎÎÎÏÏÎÎÎ ÎÏÎÎÎÎÎÏÎ ÎÎÎÏÎÏÏÎ ÏÏÎÏÏÎ "
-"ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ OpenGL ÎÎÎ ÎÏÎÏÎÏÏÎÏÎ ÏÎÎÎÎÏ. ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÎÎÎÏÎÎÎ "
-"ÎÎÎ ÎÎÎÏÏ, ÎÎÎÎ ÎÎÎÏÏÎÎÏ, ÏÎÎÎÎ ÏÎÏ Clutter ÎÎÎ ÎÎÎÎÎÏÏÎÎÎ ÎÎÏÏ ÎÏÎÎÏ ÎÎÎÎ "
-"ÎÎÎÏÏÏÎÎÎÏ ÏÏÎÎÏÎÎÎÎÏÎÏ ÏÏÎÎÎÎÎÏ ÎÎÎÏÎÎÏ."
+"Î,ÏÎ ÎÏÎÏÎ ÏÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÎÎÎÎÎ ÏÏÎÎÏÎÎÎ <code>div</code> ÎÎÏÎ ÏÎ ÎÎÎ "
+"ÏÏÎÎÏÎÎÎ <code>body</code>. ÎÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎ ÏÎÎ ÏÎÏÎÏÎÎÎÎ HTML, ÎÎ "
+"ÎÏÎÏÎÏÏÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÎÏÎÎÎÎÎÏÎÏÎ CSS ÎÎÎÎÎ ÎÏÎÏÎÎÏÎÏÎ. ÎÏÎÎ "
+"ÏÏÎÎÎÎÏÎÎÏÏÎÏÎ, ÎÎÎ ÎÎÏÎÏÏÎ ÎÎÎÏÎ ÎÎ CSS, ÎÎ ÏÏÎÏÎÎ ÎÎ ÏÏÎÏÏÎÎÎÏÎÏÎ ÎÎ ÏÎ "
+"ÎÎÎÎÎÎÏÎ ÎÎ ÎÎÏÎ ÏÎÏ ÏÎÏ ÎÏÎÏÎÎ ÎÎÎÏÏÎÏÎ."
 
-#: C/photo-wall.c.page:40(p)
+#: C/message-board.c.page:321(section/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."
+"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 ""
-"ÎÎÎ ÎÎ ÎÎÎÎÎÎÎÏÎÎ ÎÎ ÏÏÎÏÎÏÎÎ ÏÎÎ ÏÏÏÏÎ ÎÎÏ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÎÎÎ ÎÎÎÎ "
-"ÎÎÎÎÎ ÎÎÎÎÎÏÎÎ ÏÎÏ GLib ÎÏÎÏÎÏ. ÎÎ ÏÎÎ ÏÎÎÎÎÏÎÎÏ, ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÎÎ "
-"<code>GSList</code>, ÎÎÎ ÎÎÎÎÎÎÎÎ ÏÏÎÎÎÎÎÎÎ ÎÎÏÏÎ, ÎÎÎ ÎÎ ÎÏÎÏÎÏÎÏÎÎ ÏÎ "
-"<code>ClutterActor</code>s ÎÎÏ ÎÎÎ ÎÎÎ ÎÎÎÎ ÎÎÎ ÎÎÏÎÎÏÎ ÎÎÎÎÏÎÎÎÏ ÎÏÏÎÎÎÏ. "
-"ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÏÎÏÎÏ <code>GDir</code>, ÎÎÎ ÎÎÎÎÎÎÎ ÎÎÎ ÎÏÎÎÏÎÎ ÎÎ "
-"ÎÎÏÎÎÏÎÎÏÏ, ÎÎÎ ÏÏÎÏÏÎÎÎÏÎ ÏÎÏ ÎÎÏÎÎÏÎÎÏ ÏÎÏ ÎÎÎÏÎÎÏ ÎÎÏ ÎÎÎ ÎÎ "
-"ÏÏÎÎÎÎÏÏÏÏÎÏÎÎ ÏÎÏ ÎÎÎÎÏÎÎÎÏ ÏÎÏ ÎÏÏÎÎÎÏ."
+"ÎÎÎ ÎÏÎÏÎÎÎÎ ÏÎÏ CSS, ÎÏÎÎÎÏÎ ÏÎÎ <code>user-stylesheet-uri</code> ÏÏÎÎ "
+"ÏÏÎÎÏÏÎÏÎ <code>create_window</code>, ÎÏÎÏÎÎÏÎÏÎ ÎÎÏÎ ÏÎÎ ÎÏÎÏÎÏ ÏÎÏ "
+"<code>view</code>."
 
-#: C/photo-wall.c.page:53(p)
+#: C/message-board.c.page:327(section/code)
+#, no-wrap
 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."
+"\n"
+"tmp = g_base64_encode (CSS, strlen((gchar *) CSS));\n"
+"css = g_strconcat (\"data:text/css;charset=utf-8;base64,\",\n"
+"                   tmp, NULL);\n"
+"g_object_set (webkit_web_view_get_settings (WEBKIT_WEB_VIEW (view)),\n"
+"              \"user-stylesheet-uri\", css, NULL);\n"
+"g_free (css);\n"
+"g_free (tmp);\n"
 msgstr ""
-"ÎÏÎÎÎÎÏÎ <gui>Gtk+ (ÎÏÎÏ)</gui> ÎÏÏ ÏÎÎ ÎÎÏÏÎÎÎ <gui>C</gui>, ÏÎÏÎÏÏÎ "
-"<gui>ÏÏÎÎÏÎÎÎ</gui> ÎÎÎ ÏÏÎÏÎÎÏÏÏÏÎ ÏÎÏ ÎÎÏÏÎÎÎÏÎÎÎÏ ÏÎÏ ÏÏÎÏ ÎÏÏÎÎÎÎÏ ÎÎÎÎÏ "
-"ÏÎÎÎÎÎÏ. ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ ÏÎ <file>photo-wall</file> ÏÏ ÏÎÎÎÎ ÏÎÏ ÎÏÎÎÏ ÎÎÎ "
-"ÏÎÏ ÎÎÏÎÎÏÎÎÏ."
+"\n"
+"tmp = g_base64_encode (CSS, strlen((gchar *) CSS));\n"
+"css = g_strconcat (\"data:text/css;charset=utf-8;base64,\",\n"
+"                   tmp, NULL);\n"
+"g_object_set (webkit_web_view_get_settings (WEBKIT_WEB_VIEW (view)),\n"
+"              \"user-stylesheet-uri\", css, NULL);\n"
+"g_free (css);\n"
+"g_free (tmp);\n"
 
-#: C/photo-wall.c.page:56(p)
+#: C/message-board.c.page:337(section/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."
+"Also, make sure to add variable declarations for <code>tmp</code> and "
+"<code>css</code> to the top of <code>create_window</code>."
 msgstr ""
-"ÎÎÎÎÏÏÎÏÏÎÎÏÎ ÏÏÎ Î <gui>ÏÏÎÏÎ ÏÎÏ GtkBuilder ÎÎÎ ÎÎÎÏÎÏÎ ÏÏÎÏÏÎ</gui> ÎÎÎÎÎ "
-"ÎÎÎÎÎÏÎÎ ÎÏÎÎÎÎ ÎÎ ÏÏÎÎÎÎÏÎÎ ÏÎ UI ÏÎÎÏÎÎÎÎÎÏÎ ÏÎ ÎÏÏÏ ÏÎ ÎÎÎÎÎÎ. ÎÎÎÎÎÏÏÏÎ "
-"ÏÎ ÎÎÎÎÎÎ <link xref=\"guitar-tuner.c\">ÏÏÎÎÎÏÏÎÏ ÎÎÎÎÏÎÏ</link> "
-"ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎÎ ÎÎÏÎÏÎÎÏÎÏÏÎ ÎÎÎÏÎÏÎÏ."
+"ÎÏÎÏÎÏ, ÎÎÎÎÎÏÎÎÎÏÎ ÎÎ ÏÏÎÏÎÎÏÎÏÎ ÎÎÎÏÏÎÎÏ ÎÎÏÎÎÎÎÏÎÏ ÎÎÎ <code>tmp</code> "
+"ÎÎÎ <code>css</code> ÏÏÎÎ ÎÎÏÏÏÎ ÏÎÏ <code>create_window</code>."
 
-#: C/photo-wall.c.page:61(p)
+#: C/message-board.c.page:340(section/code)
+#, no-wrap
 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."
+"\n"
+"gchar *tmp, *css;\n"
 msgstr ""
-"ÎÎÎÏÎÎÏÎÎÎÏÏÎ <gui>ÏÏÎÎÎÏÎ ÎÎÏÏÎÏÎÎÏÎ ÏÎÎÎÏÏÎ</gui>. ÎÏÎÎ ÎÏÏÎÎÎÎ ÏÎÎÎÎÎ, "
-"ÎÏÎÎÎÎÏÎ <em>clutter-1.0</em> ÎÏÏ ÏÎ ÎÎÏÏÎ ÎÎÎ ÎÎ ÏÏÎÏÎÏÎÎÎÎÎÏÎ ÏÎ "
-"ÎÎÎÎÎÎÎÎÎÎ Clutter ÏÏÎ ÎÏÎÎ ÏÎÏ."
+"\n"
+"gchar *tmp, *cssÂ\n"
 
-#: C/photo-wall.c.page:65(p) C/image-viewer.c.page:51(p)
-#: C/guitar-tuner.c.page:56(p)
+#: C/message-board.c.page:344(section/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:"
+"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 ""
-"ÎÎÏÎÏÏÎ <gui>ÎÏÎÏÎÎÎÎ</gui> ÎÎÎ ÏÎ ÎÏÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎÎÎÎ ÎÎÎ ÏÎÏ. ÎÎÎÎÎÏÎ ÏÎ "
-"<file>src/main.c</file> ÎÏÏ ÏÎÏ ÎÎÏÏÎÎÎÏ <gui>ÎÏÎÎ</gui> Î <gui>ÎÏÏÎÎÎ</"
-"gui>. ÎÎ ÏÏÎÏÎÎ ÎÎ ÎÎÎÏÎ ÎÎÏÎÎÎ ÎÏÎÎÎÎ ÏÎÏ ÎÎÎÎÎÎÎÎ ÎÎ ÏÎÏ ÎÏÎÎÎÎÏ:"
-
-#: C/photo-wall.c.page:74(title)
-msgid "A look at Photo Wall"
-msgstr "ÎÎÎ ÎÎÏÎÎ ÏÏÎ ÏÏÏÎÎÏÎÏÎÎÏ ÏÎÎÎÎÎ"
-
-#: C/photo-wall.c.page:75(p)
-msgid "Our image viewer presents the user with a wall of images."
-msgstr "Î ÏÏÎÎÎÎÎÎÏ ÎÎÎÏÎÎÏ ÎÎÏ ÏÎÏÎÏÏÎÎÎÎÎ ÏÎÎ ÏÏÎÏÏÎ ÎÎ ÎÎÎÎ ÏÎÎÏÎ ÎÎÎÏÎÏÎ."
+"ÎÎÎÎÎÎÎÎ URI ÎÎÎÎÎÎÏÎ ÎÎ <sys>data:</sys> ÎÎÎ ÎÎÏÎÎÎÏ ÏÎÎÏÎÏÎÏÎÎÏ ÎÎÎ ÏÎÎ "
+"ÏÏÏÎ ÏÎÏÎÎÏÎÎÎÎÎÏ ÎÎÎ ÏÎÎ ÎÏÎÎÎÎÏÎÎÎÏÎ ÎÎÎÎÎÎÎÏÎ. ÎÎ ÎÎÎÏÎÎ ÎÎÎÎÎÎÎÎ "
+"ÎÎÎÎÎÏÎÎÏÎ ÎÎÏÎ ÏÎ ÎÏÎÎÎ, ÏÎ ÎÏÏÎÎ ÏÎÎ ÏÎÏÎÏÏÏÏÎ ÎÏÎÎÎÎÏÎÎÎÎÎÎÎ ÏÎ Base64. "
+"ÎÎÏÎÎÎÏÎ ÎÎ ÎÎÎÎ ÏÏÎÎÎÏÎ URI ÏÏÏÏ <sys>http:</sys>, <sys>ftp:</sys> ÎÎÎ "
+"<sys>file:</sys>, ÏÎ ÏÏÎÎÎ <sys>data:</sys> URI ÎÎÎ ÎÎÎÎÏÎÎÎÎ ÏÎÏ ÎÎ ÎÏÎÎÏÎ "
+"ÎÎÎ ÎÏÏÎÎÎ ÎÎÎ ÏÏÏÏÏÏÎ. ÎÎÎÎÎÎ, ÎÎÎÎÎ ÏÎ ÏÏÎÎÎÎÎÎ ÏÎÏÎÎÏÏÎÎÎÎ ÏÎÏ ÎÏÏÎÎÎÏ."
 
-#: C/photo-wall.c.page:79(p)
+#: C/message-board.c.page:351(section/p)
 msgid ""
-"When an image is clicked, it is animated to fill the viewing area. When the "
-"image having focus is clicked it is returned to its original position using "
-"an animation with the same duration of 500 milliseconds."
+"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 ""
-"ÎÏÎÎ ÎÎÎÎÏÎÎ ÎÎÎÎ ÏÎ ÎÎÎ ÎÎÎÏÎÎ, ÎÎÎÎÎÏÎÎ ÎÎÎ ÎÎ ÎÎÎÎÏÎÎ ÏÎÎ ÏÎÏÎÎÏÎ "
-"ÏÏÎÎÎÎÎÏ. ÎÏÎÎ ÎÎÎÎÏÎÎ ÎÎÎÎ ÏÎ ÎÎÎ ÎÏÏÎÎÏÎÎÎÎ ÎÎÎÏÎÎ ÎÏÎÏÏÏÎÏÎÏÎÎ ÏÏÎÎ "
-"ÎÏÏÎÎÎ ÏÎÏ ÎÎÏÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÎÎÎ ÎÎÎÎÏÎ ÎÎ ÏÎÎ ÎÎÎÎ ÎÎÎÏÎÎÎÎ ÏÏÎ 500 ms."
-
-#: C/photo-wall.c.page:85(title)
-msgid "Initial setup"
-msgstr "ÎÏÏÎÎÎ ÏÏÎÎÎÏÎ"
+"Î ÏÎÏÎÏÎÎÏ ÎÏÎÎÎÎÏ ÏÏÏÏÎ ÎÏÎÎÎÎÏÎÎÎÎ ÏÎÏÏ ÎÏÎÏÎÎÏÏ ÏÎÏ CSS ÏÎ Base64, ÎÏÎÎÏÎ "
+"ÏÏÎÎÏÎÎÎÎ ÎÏÏÏ ÎÎ ÏÏÎÎÎÏÎ ÏÏÎÎÎÎÎÏÎÎÏÎ ÎÎÎ ÎÎÎÎÎÏÏÎÎÎ ÎÎÎÎÎÎÎÏÎ URI. Î "
+"ÏÏÎÎÏÏÎÏÎ <code>g_strconcat</code> ÎÏÎÏÎÎ ÎÎ ÏÎÏÎÎ ÎÏÎÎÎÎÎÏÎÏÎ ÎÏÎÎÎÏ "
+"ÎÏÎÏÎÎÏÏÎ ÏÏÎÎÎÎÎÏÎÎÏÎÏ ÎÎÎ ÎÎ ÏÎ ÏÏÎÎÎÏÏÎÎ ÏÎÎ ÎÎÎÎ, ÎÏÏÎ ÎÏÎÏÎ ÎÎ ÏÎÏÎÏÎÏÎ "
+"ÏÎ <code>NULL</code> ÏÏ ÏÎÎÎÎÏ ÏÏÎÏÎÎ ÎÎÎ ÎÎ ÎÎÏÏÎÎÎÎ ÏÏÏÎ ÎÎ ÏÏÎÎÎÏÎÏÎÎ. "
+"ÎÎÎ ÎÎÏÎÏÎÏÎ ÎÎ ÎÎÎÏÎÎÏÏÏÎÏÎ ÎÏÏÎÏ ÏÎÏ ÏÏÎÏÏÏÎÎÎÏ ÏÏÎÎÎÎÎÏÎÎÏÎÏ ÎÏÎÏ ÎÏÎÏÎÏÎ "
+"ÏÎÎ ÎÎÎÏÏÎÏÎ ÏÏÎÎÎ ÎÎÏÏÎÏÎÎÎÏÎÏ."
 
-#: C/photo-wall.c.page:86(p)
+#: C/message-board.c.page:358(section/p)
 msgid ""
-"The following code segment contains many of the defines and variables we "
-"will be using in the following sections. Use this as a reference for later "
-"sections. Copy this code to the beginning of <file>src/main.c</file>:"
+"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 ""
-"ÎÎ ÏÎÏÎÎÎÏÏ ÏÎÎÎÎ ÎÏÎÎÎÎ ÏÎÏÎÎÏÎÎ ÏÎÎÎÎÏÏ ÎÏÎÏÎÎÏÏ ÎÎÎ ÎÎÏÎÎÎÎÏÎÏ ÏÎÏ ÎÎ "
-"ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÏÏÎÏ ÏÎÏÎÎÎÏÏ ÎÎÏÏÎÏÎÏ. ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ ÎÏÏÏ ÏÏ ÎÎÎÏÎÏÎ ÎÎÎ "
-"ÎÎÎÎÏ ÎÎÏÏÎÏÎÏ. ÎÎÏÎÎÏÎÏÏÎ ÎÏÏÏÎ ÏÎÎ ÎÏÎÎÎÎ ÏÏÎÎ ÎÏÏÎ ÏÎÏ <file>src/main.c</"
-"file>:"
+"ÎÎÏÎÏÎÎÏÎ ÎÎÎ ÎÎÏÎÎÎÏÎ ÏÎÏ ÏÏÎÎÏÎÎÎÎÏÎÏ ÏÎÎÎ. ÎÎ ÏÏÎÏÎÎ ÏÏÏÎ ÎÎ ÎÎÏÎÎÏÎÎ "
+"ÎÎÏÎÎÏÏ ÏÎ ÎÎÎÎ ÏÏÏÏ ÏÏÎ ÏÎÎÎÏ ÏÎÏ ÏÎÎÎÏÏÎÎÎÏ ÎÎÏÏÎÏÎÏ, ÎÎÏÏÏ ÎÏÏ ÏÎ "
+"ÎÎÎÏÎÎÏÎ ÏÎÏ ÎÎ ÎÎÏÏÎÏÎÎÎÏÎÏÎÎ ÏÎÎÏÏÎ ÎÎ ÏÎÏÎÎÏÎÎÎÎ ÎÎÎ ÎÎÏÏÎ ÎÎÎÎÎÎÎÎÏÎ "
+"ÏÎÏÎÏÎÎÎÎÎÏ."
 
-#: C/photo-wall.c.page:123(title)
-msgid "Jumping into the code"
-msgstr "ÎÎÏÎÎÎÏÎ ÏÏÎÎ ÎÏÎÎÎÎ"
+#: C/message-board.c.page:364(section/title)
+msgid "Learn more"
+msgstr "ÎÎÎÎÏÎ ÏÎÏÎÏÏÏÏÎÏÎ"
 
-#: C/photo-wall.c.page:124(p)
+#: C/message-board.c.page:366(section/p)
 msgid ""
-"We will start by taking a look at the <code>main()</code> function as a "
-"whole. Then we'll discuss the other code sections in detail. Change the "
-"<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."
+"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 ""
-"ÎÎ ÎÎÎÎÎÎÏÎÏÎÎ ÏÎÏÎÎÎÏÎÏ ÎÎÎ ÎÎÏÎÎ ÏÏÎ ÏÏÎÎÏÏÎÏÎ <code>main()</code> ÏÏ "
-"ÏÏÎÎÎÎ. ÎÏÎÎÏÎ ÎÎ ÏÏÎÎÏÎÏÎÏÎÎ ÏÎÏ ÎÎÎÎÏ ÎÎÏÏÎÏÎÏ ÎÏÎÎÎÎ ÎÎÏÏÎÎÎÏÏÏ. ÎÎÎÎÎÏÎ "
-"ÏÎ <file>src/main.c</file> ÎÎÎ ÎÎ ÏÎÏÎÎÏÎÎ ÎÏÏÎÎ ÏÎÎ ÏÏÎÎÏÏÎÏÎ <code>main()</"
-"code>. ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÎÏÎÏÎÏÎ ÏÎ ÏÏÎÎÏÏÎÏÎ <code>create_window()</code> "
-"ÎÎÎÏÏ ÎÎÎ ÏÎ ÏÏÎÎÎÎÏÎÎÏÏÎ ÏÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ."
+"ÎÏÏÏ ÏÎ ÎÎÎÎÎÎ ÎÎÎÏÎÎÎ ÏÎ ÎÎÎÎÎÏÏÎÎÎ ÎÎÎÏ ÎÎÏÎÎÎÏ ÎÏÎÏÎÎÎÎÏ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ "
+"GTK+ ÎÎÎ WebKit, ÏÎÏÎÎÎÎÎÎÎÎÎÏÎÏ ÏÎÎ ÎÎÏÎÎÎÏÎ ÎÎÏÏ ÎÎÎÏÎÏÎÏ ÎÎÎ ÎÏÎÎÎÏÎÎÏÎÎ "
+"ÏÏÎ ÎÎÎÎÎÎÎÏÎ ÏÎÏ. ÎÎÎ ÏÎ ÎÎÎÎÎÏÏÎÎÎ ÎÎÎÏ ÏÏÎÎÎÎÏÎÎÎÏ ÎÏÎÏÎÎÎÎÏ, ÎÎ ÎÎÎÎÏÎ "
+"ÏÏÎÏÎÎÏÏ ÎÎ ÎÎÎÎÏÎ ÎÎÏÎ ÏÎÏÎÏÏÏÏÎÏÎ. ÎÏÎÏÏÎÎÎÏÏÎ ÎÎ ÏÏÎÏÎÎÏÎÏÎ ÎÎÎÎ ÏÎÏ "
+"ÏÎÏÎÎÏÎÏÎÏÏÎÎÎ. ÎÎ ÎÎÏÎÎÎÏ ÎÎÎÎÏ:"
 
-#: C/photo-wall.c.page:165(p)
+#: C/message-board.c.page:372(item/p)
 msgid ""
-"Line 4: <code>ClutterColor</code> is defined by setting the red, green, blue "
-"and transparency (alpha) values. The values range from 0-255. For "
-"transparency a value of 255 is opaque."
+"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 ""
-"ÎÏÎÎÎÎ 4: <code>ClutterColor</code> ÎÏÎÏÏÎÎÎ ÎÏÎÎÎÎÏÎÏ ÏÎÏ ÏÎÎÎÏ ÎÏÎÎÎÎÎÏ, "
-"ÏÏÎÏÎÎÎÏ, ÎÎÎÎÎÎÎÏ ÎÎÎ ÎÎÎÏÎÎÎÎÎÏ (ÎÎÏÎ). ÎÎ ÎÏÏÎÏ ÏÎÎÏÎ ÎÏÏ 0-255. ÎÎÎ "
-"ÎÎÎÏÎÎÎÎÎ ÏÎÎÎ 255 ÎÎÎÎÎ ÎÎÎÎÏÎÎÎÏ."
+"ÎÎÎ ÎÎÏÎÏÏÎ ÎÎÎÏÎÎ ÎÎ ÏÎ CSS, ÎÎÎÎÎÎÏÏÎ ÎÎ ÎÎÎÎÎÎÏÎ ÏÎ ÎÎÏÏÎÏÎÎÎÏÎ ÏÎÏ "
+"ÎÎÏÎÎÎÏÎÏ ÏÎÏ ÎÎÎÏÎÎÏÎÏ. ÎÎ CSS ÎÎÎÎÎ ÎÏÎÎÎÎ ÎÎÎ ÎÎ ÎÎÎÎÎÎÏÎÏÎ, ÎÎÎÎ ÎÎÎÏÎÏÏ "
+"ÏÎÏÎÏÏÏÏÎÏÎ ÎÏÏÏÏÏ. ÎÏÎÏÏÎÎ ÏÎÎÎÎÏ ÎÎÎÎÎÎÏÏÎ CSS ÏÏÎ ÎÎÎÎÎÎÏÏÎ ÎÎÎ ÏÏÎÎÏÎ "
+"ÎÎÎÎ ÏÎ ÏÎÏ ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÎÏÎ ÏÏÎÎ ÎÏÏÏ, ÎÏÎÏÎÎÏÎ ÎÎ ÏÎ ÎÎÎÎÏÎ ÎÎ ÎÏÏÎÎ ÏÎÎ "
+"ÎÏÎÏÎÎÎÎ."
 
-#: C/photo-wall.c.page:166(p)
+#: C/message-board.c.page:378(item/p)
 msgid ""
-"Line 7: You must initialize Clutter. If you forget to do this, you will get "
-"very strange errors. Be warned."
+"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 ""
-"ÎÏÎÎÎÎ 7: ÎÏÎÏÎÎ ÎÎ ÎÏÏÎÎÎÏÎÎÎÏÎÏÎ ÏÎ Clutter. ÎÎÎ ÏÎ ÎÎÏÎÏÎÏÎ, ÎÎ ÏÎÏÎÏÎ "
-"ÏÎÎÏ ÏÎÏÎÎÏÎÎ ÏÏÎÎÎÎÏÎ. ÎÏÎÎÎÎÎÏÎÎÎÎÎÎÎÏÎ."
+"ÎÏÏÎ ÎÎÎÏÏÏ, ÏÎÎÎÏÎ ÏÎÎ ÏÎ ÎÎÎÏÎÎÏÎ ÏÎÏ ÏÏÎÎ ÎÎÎÎÎÎÏÎ ÏÎÎ ÏÎÎÎÎÎ ÎÎÎÏÎÎÏÏÎ. "
+"ÎÎÎÎÎÎÏÏÎ ÎÎ ÎÏÎÎÎÎÎÏÏÎÏÎ ÏÎ ÏÎÏÎÎÏÏÎÎÎÎ HTML ÎÎÏÎ ÎÏÏ ÎÎÎÎ ÏÎÏÏÎÏÏÎÎÏÎ ÎÎÎ "
+"ÏÎÏÏÏÏÏÎ ÏÎ ÎÏÎÎÎÎÎÏÎÎÎÎ ÎÏÏÎÎÎ (ÎÎÎ ÏÏÎÏÏÎÎ) ÏÏÎÎ ÎÎÎÎÎÎÏÎ."
 
-#: C/photo-wall.c.page:167(p)
+#: C/message-board.c.page:386(item/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."
+"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 ""
-"ÎÏÎÎÎÎÏ 9-11. ÎÎÏ ÏÎÎÏÎÎÏÎÎ ÏÎÎ ÏÏÎÎÏÎÎÎÎÎ <code>ClutterStage</code> ÏÎÏ "
-"ÎÏÎÎÎÎ ÎÏÏ <code>clutter_init</code>. ÎÏÎÎÏÎ ÎÏÎÎÎÏÎÎ ÏÎ ÎÎÎÎÎÎÏ "
-"ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎÏÏ ÎÏÎÏÎÎÏÏ ÎÏÏ ÏÎÎ ÏÏÎÎÎÎÏÎÎÎÎ ÎÎÏÏÎÏÎ ÎÎÎ ÏÎ ÎÎÎÏÎÏÎÏÎ "
-"ÏÎÏ <code>ClutterColor</code> ÏÎÏ ÎÏÎÎÏ ÎÏÎÏÎÎÎ."
+"ÎÎ ÎÏÎÏÎÏÎ ÏÎ ÎÎÎÏÎÎÏÎ ÏÎÏ ÎÎÎ ÏÎÎÏ ÏÏÏÎÎ, ÎÎ ÎÏÏÎÏÎÏÎ ÎÎ ÎÎÎÏÏÏÎÏÏÎ ÏÏÏÎ ÏÎ "
+"ÏÎÏÏÎÏÎÎÎÏÎÏÎ. ÎÏÎÏÎÎÏÎÏÎ ÎÎÎ ÏÎÎÎÎÎ ÏÏÏÎÎÏ ÏÎ ÎÎÎÎ ÎÎÎÏÎÎ ÏÏÎÎ "
+"ÏÎÏÏÎÏÎÎÎÎÏÎÎ. ÎÎ ÎÎÎÎÏÎ ÏÏÎÏÎÎÏÏ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎ ÎÎÏÎÎÎ ÏÏÏÏÎÎÏÎ ÎÏÎÎÏÏÎÎÎ "
+"ÏÏÎÎÏÎÎÎ <code>div</code> ÎÎ ÎÎÎÏÎÏÎÏÎÎÎÏ ÎÎÎÏÎÎÏ ÏÎÏ ÎÏÎÏÎÎÏÎ ÎÎ "
+"ÎÎÏÏÎÏÎÎÎÏÎÏÎ ÏÎ CSS."
 
-#: C/photo-wall.c.page:168(p)
+#: C/message-board.c.page:393(item/p)
 msgid ""
-"A <code>ClutterStage</code> is the top-level <code>ClutterActor</code> onto "
-"which other <code>ClutterActor</code>s are placed."
+"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 ""
-"ÎÎÎÏ <code>ClutterStage</code> ÎÎÎÎÎ ÎÎÏÏÎÏÎÏ ÎÏÎÏÎÎÎÏ <code>ClutterActor</"
-"code> ÏÏÎÎ ÎÏÎÎÎ ÎÎÎÎÎ <code>ClutterActor</code> ÏÎÏÎÎÎÏÎÏÎÏÎÎ."
+"ÎÏÏÏ ÏÎ ÏÏÏÎÏÎÎÎÎ ÎÏÎÏÎ ÏÎ ÎÎÎÏÎÎÏÎ ÎÎÎ ÏÎÎÏÎ. ÎÎÎÏÏÎÎÏÎ ÏÏÏÏÎÏÏ ÏÎÏ ÎÎ "
+"ÎÏÎÏÎÏÏÎÎ ÎÎ ÎÏÎÏÏÎÏÎÏÎ ÏÏÎ ÏÏÎÏÏÎ ÎÎ ÎÎÎÎÏÎÏÎÎ ÎÎÎÏÎÎÏÎ. ÎÏÏÏ ÎÎÎÎÏÎ ÏÎ "
+"ÎÎÎÏÎÎÏÎ ÎÎ ÎÎÎÏÎÎÎÎÎÎÏÎÎ ÎÏÏÏÎÎÏÎ ÏÏÎÎ ÏÎÎÎÏÎÎÏÎ, Î ÏÏÎÎ ÏÏÎÏÏÎÎ ÎÎÎÏ "
+"ÏÏÎÎÎÎÏÎÎÎÎÎÏ ÎÏÎÎÎÏÏ ÎÎÎÏÎÎÏÏÎ ÏÏÎÎ ÎÏÏ ÎÏÏÎ. Î ÎÎ ÎÏÎÏÎÏÏÎÏÎ ÎÎ ÏÏÎÏÎÎÏÎÏÎ "
+"ÎÎÎÎ ÏÏÎÎÎÏÎÎ ÏÎ ÎÎÎÎ ÎÎÎÏÎÎ ÎÎÎ ÎÎÎÎÏÎÏÎ ÏÎÏ. ÎÎ ÎÏÎÏÎÏÏÎÏÎ ÎÎÏÎÎ ÎÎ "
+"ÎÎÏÎÎÎÏÎÏÏÎÏÎÏÎ ÏÎ ÎÎÎÎÏ ÏÎÏÎÎÏÎÎÎÎÎÏ ÏÏÎÎ ÎÎÎÎÏÎ ÎÎÎÎÏ ÎÎÎÎ ÏÎ ÎÎÎÏÎÎ. "
+"ÎÏÏÎÏ ÏÎ ÏÎÏÎÎÏÎÏÎÏÏÎÎÎ ÏÎÏÎÎÏÎÏÎ ÏÎÏÎÏÏÏÏÎÏÎ ÏÎÏÎÎÎÎÏÎ ÏÎÏ DOM API ÏÎÏ "
+"WebKit."
 
-#: C/photo-wall.c.page:170(p)
-msgid ""
-"Line 12: Here we call our function for getting the image file paths. We'll "
-"look at this in a bit."
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/messagedialog.c.page:23(media) C/messagedialog.js.page:24(media)
+#: C/messagedialog.py.page:22(media) C/messagedialog.vala.page:21(media)
+msgctxt "_"
+msgid ""
+"external ref='media/messagedialog.png' md5='1956288274018e2386d9cba96a2101de'"
+msgstr ""
+"external ref='media/messagedialog.png' md5='1956288274018e2386d9cba96a2101de'"
+
+#: C/messagedialog.c.page:7(info/title)
+msgctxt "text"
+msgid "MessageDialog (C)"
+msgstr "MessageDialog (C)"
+
+#: C/messagedialog.c.page:18(info/desc) C/messagedialog.py.page:18(info/desc)
+#: C/messagedialog.vala.page:17(info/desc)
+msgid "A message window"
+msgstr "ÎÎÎ ÏÎÏÎÎÏÏÎ ÎÎÎÏÎÎÏÎÏ"
+
+#: C/messagedialog.c.page:21(page/title)
+#: C/messagedialog.js.page:23(page/title)
+#: C/messagedialog.py.page:21(page/title)
+#: C/messagedialog.vala.page:20(page/title)
+msgid "MessageDialog"
+msgstr "MessageDialog"
+
+#: C/messagedialog.c.page:24(page/p) C/messagedialog.vala.page:22(page/p)
+msgid "A modal message dialog which can cause the world to explode."
 msgstr ""
-"ÎÏÎÎÎÎ 12: ÎÎÏ ÎÎÎÎÏÎÎ ÏÎ ÏÏÎÎÏÏÎÏÎ ÎÎÏ ÎÎÎ ÎÎÏÎ ÏÏÎ ÎÎÎÎÏÎÎÏÎ ÎÏÏÎÎÎÏ "
-"ÎÎÎÏÎÎÏ. ÎÎ ÏÎ ÎÎÏÎÎ ÏÎ ÎÎÎÎ."
+"ÎÎÎÏ ÎÏÎÎÎÎÎÏÏÎÎÏÏ ÎÎÎÎÎÎÎÏ ÎÎÎÏÎÎÏÎÏ ÏÎÏ ÎÏÎÏÎÎ ÎÎ ÏÏÎÎÎÎÎÏÎÎ ÏÎÎ ÎÎÏÎÎÎ "
+"ÏÎÏ ÎÏÏÎÎÏ."
 
-#: C/photo-wall.c.page:171(p)
+#: C/messagedialog.c.page:25(note/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."
+"To test out the application once it has started running, you can click on "
+"the \"Message Dialog\" tab that appears in the top menubar of the screen."
 msgstr ""
-"ÎÏÎÎÎÎÏ 14-26: ÎÎÏ ÏÏÎÎÎÎÎÏÎÎ ÏÎ <code>ClutterActor</code>s, ÏÏÏÏÏÏÎ ÏÏÎ "
-"ÎÎÎÏÎÏÎ ÎÎÎ ÏÎÏÎÎÎÏÎÏÎ ÏÎÏÏ ÏÏÎ ÏÎÎÎÎÎ ÏÎÏÏ ÏÏÎÎ ÏÎÎÏÎ ÎÎÎÏÎÎÏ. ÎÎ ÏÎ ÎÎÏÎÎ "
-"ÎÎÏÏÎÎÎÏÏÏ ÏÏÎÎ ÎÏÏÎÎÎÎ ÎÎÏÏÎÏÎ."
+"ÎÎÎ ÎÎ ÎÎÎÎÎÎÏÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ ÎÏÎÎÏ ÎÏÏÎÏÎÎ ÎÎ ÎÎÏÎÎÎÎÏÎÎ, ÎÏÎÏÎÎÏÎ ÎÎ "
+"ÏÎÏÎÏÎÏÎ ÏÏÎÎ ÎÎÏÏÎÎÎ \"Message Dialog\" ÏÎÏ ÎÎÏÎÎÎÎÎÏÎÎ ÏÏÎÎ ÎÎÏÏÏÎ ÏÎÏ "
+"ÎÏÎÎÎÎÏ ÎÎÎÎÏ ÏÏÎÎ ÎÎÏÎÎ."
 
-#: C/photo-wall.c.page:172(p)
+#: C/messagedialog.c.page:29(page/code)
+#, no-wrap
 msgid ""
-"Line 29: Show the stage and <em>all its children</em>, meaning our images."
+"\n"
+"#include &lt;gtk/gtk.h&gt;\n"
+"\n"
+"\n"
+"\n"
+"/* Callback function in which reacts to the \"response\" signal from the user in\n"
+" * the message dialog window.\n"
+" * This function is used to interact with the user in the terminal.\n"
+" */\n"
+"static void\n"
+"on_response (GtkDialog *dialog,\n"
+"             gint       response_id,\n"
+"             gpointer   user_data)\n"
+"{\n"
+"  /* If the button clicked gives response OK (response_id being -5) */\n"
+"  if (response_id == GTK_RESPONSE_OK) \n"
+"     g_print (\"*boom*\\n\");\n"
+"\n"
+"  /* If the button clicked gives response CANCEL (response_id being -6) */\n"
+"  else if (response_id == GTK_RESPONSE_CANCEL)\n"
+"     g_print (\"good choice\\n\");\n"
+"\n"
+"  /* If the message dialog is destroyed (for example by pressing escape) */\n"
+"  else if (response_id == GTK_RESPONSE_DELETE_EVENT)\n"
+"     g_print (\"dialog closed or cancelled\\n\");\n"
+"\n"
+"  /* Destroy the dialog after one of the above actions have taken place */\n"
+"  gtk_widget_destroy (GTK_WIDGET (dialog));\n"
+"\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"/* Callback function for the response signal \"activate\" related to the SimpleAction\n"
+" * message_action.\n"
+" * This function is used to cause the message dialog window to popup.\n"
+" */\n"
+"static void\n"
+"message_cb (GSimpleAction *simple,\n"
+"            GVariant      *parameter,\n"
+"            gpointer       user_data)\n"
+"{\n"
+"   /* the parent variable in this case represents the window */\n"
+"   GtkWidget *message_dialog;\n"
+"   GtkWindow *parent = user_data;\n"
+"   \n"
+"   /* Create a new message dialog, and set the parameters as follows:\n"
+"    * Dialog Flags - make the constructed dialog modal \n"
+"    * (modal windows prevent interaction with other windows in the application)\n"
+"    * Message Type - nonfatal warning message\n"
+"    * Buttons Type - use the ok and cancel buttons\n"
+"    * message_format - text that you want the user to see in the window \n"
+"    */\n"
+"   message_dialog = gtk_message_dialog_new (parent, GTK_DIALOG_MODAL, \n"
+"                                            GTK_MESSAGE_WARNING, \n"
+"                                            GTK_BUTTONS_OK_CANCEL, \n"
+"                                            \"This action will cause the universe to stop existing.\");\n"
+"\n"
+"   gtk_widget_show_all (message_dialog);\n"
+"\n"
+"   g_signal_connect (GTK_DIALOG (message_dialog), \"response\", \n"
+"                    G_CALLBACK (on_response), NULL);\n"
+"\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"static void\n"
+"activate (GtkApplication *app,\n"
+"          gpointer        user_data)\n"
+"{\n"
+"  GtkWidget *window;\n"
+"  GtkWidget *label;\n"
+"\n"
+"  GSimpleAction *message_action;\n"
+"\n"
+"  /* Create a window with a title and a default size */\n"
+"  window = gtk_application_window_new (app);\n"
+"  gtk_window_set_title (GTK_WINDOW (window), \"GMenu Example\");\n"
+"  gtk_window_set_default_size (GTK_WINDOW (window), 400, 200);\n"
+"\n"
+"  /* Create a label and add it to the window */\n"
+"  label = gtk_label_new (\"This application goes boom!\");\n"
+"  gtk_container_add (GTK_CONTAINER (window), label);\n"
+"\n"
+"  /* Create a new simple action, giving it a NULL parameter type. It will \n"
+"   * always be NULL for actions invoked from a menu. (e.g clicking on an \"ok\" \n"
+"   * or \"cancel\" button)\n"
+"   */\n"
+"  message_action = g_simple_action_new (\"message\", NULL); \n"
+"\n"
+"  /* Connect the \"activate\" signal to the appropriate callback function */\n"
+"  g_signal_connect (message_action, \"activate\", G_CALLBACK (message_cb), \n"
+"                    GTK_WINDOW (window));\n"
+"\n"
+"  /* Adds the message_action to the overall action map. An Action map is an \n"
+"   * interface that contains a number of named GAction instances \n"
+"   * (such as message_action) \n"
+"   */\n"
+"  g_action_map_add_action (G_ACTION_MAP (window), G_ACTION (message_action));\n"
+"\n"
+"  gtk_widget_show_all (window);\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"/* Callback function for the response signal \"activate\" from the \"quit\" action \n"
+" * in the function directly below.\n"
+" */ \n"
+"static void\n"
+"quit_cb (GSimpleAction *simple,\n"
+"         GVariant      *parameter,\n"
+"         gpointer       user_data)\n"
+"{\n"
+"  GApplication *application = user_data;\n"
+"\n"
+"  g_application_quit (application);\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"/* Startup function for the menu we are creating in this sample */\n"
+"static void\n"
+"startup (GApplication *app,\n"
+"         gpointer      user_data)\n"
+"{\n"
+"  GMenu *menu;\n"
+"  GSimpleAction *quit_action;\n"
+"\n"
+"  /* Initialize the GMenu, and add a menu item with label \"Message\" and action \n"
+"   * \"win.message\". Also add another menu item with label \"Quit\" and action \n"
+"   * \"app.quit\" \n"
+"   */\n"
+"  menu = g_menu_new ();\n"
+"  g_menu_append (menu, \"Message\", \"win.message\");\n"
+"  g_menu_append (menu, \"Quit\", \"app.quit\");\n"
+"\n"
+"  /* Create a new simple action for the application. (In this case it is the \n"
+"   * \"quit\" action.\n"
+"   */\n"
+"  quit_action = g_simple_action_new (\"quit\", NULL);\n"
+"\n"
+"  /* Ensure that the menu we have just created is set for the overall application */\n"
+"  gtk_application_set_app_menu (GTK_APPLICATION (app), G_MENU_MODEL (menu));\n"
+"\n"
+"  g_signal_connect (quit_action, \n"
+"                    \"activate\", \n"
+"                    G_CALLBACK (quit_cb), \n"
+"                    app);\n"
+"\n"
+"  g_action_map_add_action (G_ACTION_MAP (app), G_ACTION (quit_action));\n"
+"\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"/* Startup function for the application */\n"
+"int\n"
+"main (int argc, char **argv)\n"
+"{\n"
+"  GtkApplication *app;\n"
+"  int status;\n"
+"\n"
+"  app = gtk_application_new (\"org.gtk.example\", G_APPLICATION_FLAGS_NONE);\n"
+"  g_signal_connect (app, \"activate\", G_CALLBACK (activate), NULL);\n"
+"  g_signal_connect (app, \"startup\", G_CALLBACK (startup), NULL);\n"
+"  status = g_application_run (G_APPLICATION (app), argc, argv);\n"
+"  g_object_unref (app);\n"
+"\n"
+"  return status;\n"
+"}\n"
 msgstr ""
-"ÎÏÎÎÎÎ 29: ÎÎÏÎÎÎÏÎ ÏÎÏ ÏÏÎÎÎÎÏ ÎÎÎ <em>ÏÎÏÎ ÏÏÎ ÎÏÎÎÏÏÎÎÏÎ ÏÎÏ</em>, ÏÎÏ "
-"ÏÎÎÎÎÎÎÎ ÏÏÎ ÎÎÎÏÎÏÎ ÎÎÏ."
-
-#: C/photo-wall.c.page:173(p)
-msgid "Line 32: Start the Clutter main loop."
-msgstr "ÎÏÎÎÎÎ 32: ÎÎÎÏÎÎ ÏÎÏ ÎÏÏÎÎÏ ÎÏÏÏÎÏ ÏÎÏ Clutter."
-
-#: C/photo-wall.c.page:178(title)
-msgid "Setting up our image actors"
-msgstr "ÎÎÎÎÏÎÏÏÎÏÎ ÏÏÎ ÎÏÎÏÏÏÎ ÎÎÎÏÎÎÏ"
+"\n"
+"#include &lt;gtk/gtk.h&gt;\n"
+"\n"
+"\n"
+"\n"
+"/* Callback function in which reacts to the \"response\" signal from the user in\n"
+" * the message dialog window.\n"
+" * This function is used to interact with the user in the terminal.\n"
+" */\n"
+"static void\n"
+"on_response (GtkDialog *dialog,\n"
+"             gint       response_id,\n"
+"             gpointer   user_data)\n"
+"{\n"
+"  /* If the button clicked gives response OK (response_id being -5) */\n"
+"  if (response_id == GTK_RESPONSE_OK) \n"
+"     g_print (\"*boom*\\n\");\n"
+"\n"
+"  /* If the button clicked gives response CANCEL (response_id being -6) */\n"
+"  else if (response_id == GTK_RESPONSE_CANCEL)\n"
+"     g_print (\"good choice\\n\");\n"
+"\n"
+"  /* If the message dialog is destroyed (for example by pressing escape) */\n"
+"  else if (response_id == GTK_RESPONSE_DELETE_EVENT)\n"
+"     g_print (\"dialog closed or cancelled\\n\");\n"
+"\n"
+"  /* Destroy the dialog after one of the above actions have taken place */\n"
+"  gtk_widget_destroy (GTK_WIDGET (dialog));\n"
+"\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"/* Callback function for the response signal \"activate\" related to the SimpleAction\n"
+" * message_action.\n"
+" * This function is used to cause the message dialog window to popup.\n"
+" */\n"
+"static void\n"
+"message_cb (GSimpleAction *simple,\n"
+"            GVariant      *parameter,\n"
+"            gpointer       user_data)\n"
+"{\n"
+"   /* the parent variable in this case represents the window */\n"
+"   GtkWidget *message_dialog;\n"
+"   GtkWindow *parent = user_data;\n"
+"   \n"
+"   /* Create a new message dialog, and set the parameters as follows:\n"
+"    * Dialog Flags - make the constructed dialog modal \n"
+"    * (modal windows prevent interaction with other windows in the application)\n"
+"    * Message Type - nonfatal warning message\n"
+"    * Buttons Type - use the ok and cancel buttons\n"
+"    * message_format - text that you want the user to see in the window \n"
+"    */\n"
+"   message_dialog = gtk_message_dialog_new (parent, GTK_DIALOG_MODAL, \n"
+"                                            GTK_MESSAGE_WARNING, \n"
+"                                            GTK_BUTTONS_OK_CANCEL, \n"
+"                                            \"This action will cause the universe to stop existing.\");\n"
+"\n"
+"   gtk_widget_show_all (message_dialog);\n"
+"\n"
+"   g_signal_connect (GTK_DIALOG (message_dialog), \"response\", \n"
+"                    G_CALLBACK (on_response), NULL);\n"
+"\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"static void\n"
+"activate (GtkApplication *app,\n"
+"          gpointer        user_data)\n"
+"{\n"
+"  GtkWidget *window;\n"
+"  GtkWidget *label;\n"
+"\n"
+"  GSimpleAction *message_action;\n"
+"\n"
+"  /* Create a window with a title and a default size */\n"
+"  window = gtk_application_window_new (app);\n"
+"  gtk_window_set_title (GTK_WINDOW (window), \"GMenu Example\");\n"
+"  gtk_window_set_default_size (GTK_WINDOW (window), 400, 200);\n"
+"\n"
+"  /* Create a label and add it to the window */\n"
+"  label = gtk_label_new (\"This application goes boom!\");\n"
+"  gtk_container_add (GTK_CONTAINER (window), label);\n"
+"\n"
+"  /* Create a new simple action, giving it a NULL parameter type. It will \n"
+"   * always be NULL for actions invoked from a menu. (e.g clicking on an \"ok\" \n"
+"   * or \"cancel\" button)\n"
+"   */\n"
+"  message_action = g_simple_action_new (\"message\", NULL); \n"
+"\n"
+"  /* Connect the \"activate\" signal to the appropriate callback function */\n"
+"  g_signal_connect (message_action, \"activate\", G_CALLBACK (message_cb), \n"
+"                    GTK_WINDOW (window));\n"
+"\n"
+"  /* Adds the message_action to the overall action map. An Action map is an \n"
+"   * interface that contains a number of named GAction instances \n"
+"   * (such as message_action) \n"
+"   */\n"
+"  g_action_map_add_action (G_ACTION_MAP (window), G_ACTION (message_action));\n"
+"\n"
+"  gtk_widget_show_all (window);\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"/* Callback function for the response signal \"activate\" from the \"quit\" action \n"
+" * in the function directly below.\n"
+" */ \n"
+"static void\n"
+"quit_cb (GSimpleAction *simple,\n"
+"         GVariant      *parameter,\n"
+"         gpointer       user_data)\n"
+"{\n"
+"  GApplication *application = user_data;\n"
+"\n"
+"  g_application_quit (application);\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"/* Startup function for the menu we are creating in this sample */\n"
+"static void\n"
+"startup (GApplication *app,\n"
+"         gpointer      user_data)\n"
+"{\n"
+"  GMenu *menu;\n"
+"  GSimpleAction *quit_action;\n"
+"\n"
+"  /* Initialize the GMenu, and add a menu item with label \"Message\" and action \n"
+"   * \"win.message\". Also add another menu item with label \"Quit\" and action \n"
+"   * \"app.quit\" \n"
+"   */\n"
+"  menu = g_menu_new ();\n"
+"  g_menu_append (menu, \"Message\", \"win.message\");\n"
+"  g_menu_append (menu, \"Quit\", \"app.quit\");\n"
+"\n"
+"  /* Create a new simple action for the application. (In this case it is the \n"
+"   * \"quit\" action.\n"
+"   */\n"
+"  quit_action = g_simple_action_new (\"quit\", NULL);\n"
+"\n"
+"  /* Ensure that the menu we have just created is set for the overall application */\n"
+"  gtk_application_set_app_menu (GTK_APPLICATION (app), G_MENU_MODEL (menu));\n"
+"\n"
+"  g_signal_connect (quit_action, \n"
+"                    \"activate\", \n"
+"                    G_CALLBACK (quit_cb), \n"
+"                    app);\n"
+"\n"
+"  g_action_map_add_action (G_ACTION_MAP (app), G_ACTION (quit_action));\n"
+"\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"/* Startup function for the application */\n"
+"int\n"
+"main (int argc, char **argv)\n"
+"{\n"
+"  GtkApplication *app;\n"
+"  int status;\n"
+"\n"
+"  app = gtk_application_new (\"org.gtk.example\", G_APPLICATION_FLAGS_NONE);\n"
+"  g_signal_connect (app, \"activate\", G_CALLBACK (activate), NULL);\n"
+"  g_signal_connect (app, \"startup\", G_CALLBACK (startup), NULL);\n"
+"  status = g_application_run (G_APPLICATION (app), argc, argv);\n"
+"  g_object_unref (app);\n"
+"\n"
+"  return status;\n"
+"}\n"
 
-#: C/photo-wall.c.page:179(p)
+#: C/messagedialog.c.page:36(item/p)
 msgid ""
-"In Clutter, an actor is the most basic visual element. Basically, everything "
-"you see is an actor."
+"<link href=\"http://developer.gnome.org/gio/stable/GApplication.html";
+"\">GApplication</link>"
 msgstr ""
-"ÎÏÎ Clutter, ÎÎÎÏ ÎÏÎÏÏÎÏ ÎÎÎÎÎ ÏÎ ÏÎÎ ÎÎÏÎÎÏ ÎÏÏÎÎÏ ÏÏÎÎÏÎÎÎ. ÎÎÏÎÎÎ, "
-"ÎÏÎÎÎÏÎÏÎ ÎÎÎÏÎÏÎ ÎÎÎÎÎ ÎÎÎÏ ÎÏÎÏÏÎÏ."
+"<link href=\"http://developer.gnome.org/gio/stable/GApplication.html";
+"\">GApplication</link>"
 
-#: C/photo-wall.c.page:180(p)
+#: C/messagedialog.c.page:38(item/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."
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkMessageDialog.html";
+"\">GtkMessageDialog</link>"
 msgstr ""
-"ÎÎ ÎÏÏÎÎ ÏÎÎ ÎÎÏÏÎÏÎ, ÏÏÏÎÎÎÏÎÎ ÎÎ ÎÎÎÏÎÎÎÏÎÎ ÏÏÎÎÏÏÎÏÎ ÏÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎÎÎ "
-"ÎÏÏÏÎ ÎÎÎ ÎÎÎÎÏÎÏÏÎÏÎ ÏÎÏ <code>ClutterActor</code>s ÏÎÏ ÎÎ ÎÎÏÎÎÎÏÎÎ ÏÎÏ "
-"ÎÎÎÏÎÎÏ ÎÎÏ."
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkMessageDialog.html";
+"\">GtkMessageDialog</link>"
 
-#: C/photo-wall.c.page:198(p)
+#: C/messagedialog.c.page:39(item/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."
+"<link href=\"http://developer.gnome.org/gio/stable/GSimpleAction.html#g-";
+"simple-action-new\">GSimpleAction</link>"
 msgstr ""
-"ÎÏÎÎÎÎ 5: ÎÎÏ ÎÎÎÎÏÎÎ ÎÎ ÏÎÏÎÏÎÎ ÏÎ ÎÎÎÎÏÎÎÎ ÏÏÎ ÎÎÏÎ <var>n</var> ÏÏÎ "
-"<code>GSList</code> ÏÎÏ ÎÏÎÏÎ ÏÎ ÎÎÏÎÎÏÎ ÎÎÎÎÏÎÎÎÏ ÎÎÎÏÎÎÏ. Î <var>n</var> "
-"ÎÎÏÎ ÏÏÎÎÎÎÎÎÎÏÎÎ ÎÎÏÎÏÎÎÎÎ ÏÏÎ <code>row</code> ÎÎÎ <code>col</code>. Î "
-"ÎÏÎÏÏÏÎÏÏÎÎÎÎ ÏÎÎÎ ÎÎÎÎÎ ÎÎÎÏ ÎÎÎÎÏÎÏ ÏÎ ÎÎÎ <code>GSList</code> ÏÎÏ ÎÎÎÎÎ "
-"ÎÏÎÎ ÎÎÎÏ ÎÏÎÎÎÏ ÏÏÎ ÎÎÏÏÎ. ÎÎ ÏÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÎÎ ÏÎ ÎÎÏÎ ÏÎÏ ÎÎÎÏÎÎÏ "
-"ÎÎÎÎÏÎÎÎÏ ÏÏÎÎ ÎÏÏÎÎÎÎ ÎÏÎÎÎÎ. Î ÏÏÏÏÎ ÏÎÏÎÎÎÏÏÎÏ ÎÎÎÎÎ ÎÎÎÏ ÎÎÎÎÏÎÏ ÏÏÎÎ "
-"ÎÎÏÎÎÎ ÏÎÏ ÎÎÏÏÎÏ."
+"<link href=\"http://developer.gnome.org/gio/stable/GSimpleAction.html#g-";
+"simple-action-new\">GSimpleAction</link>"
+
+#: C/messagedialog.js.page:7(info/title)
+msgctxt "text"
+msgid "MessageDialog (JavaScript)"
+msgstr "MessageDialog (JavaScript)"
+
+#: C/messagedialog.js.page:20(info/desc)
+msgid "A popup message attached to a window"
+msgstr "ÎÎÎ ÎÏÎÏÏÎÎÏÏÏÎÎÎÎ ÎÎÎÎÏÏÎÎÎÎ ÎÎÎÏÎÎ ÏÎ ÎÎÎ ÏÎÏÎÎÏÏÎ"
 
-#: C/photo-wall.c.page:200(p)
+#: C/messagedialog.js.page:25(page/p)
+#, fuzzy
 msgid ""
-"Line 6: This is where we actually create the <code>ClutterActor</code> and "
-"place the image into the actor. The first argument is the path which we "
-"access through our <code>GSList</code> node. The second argument is for "
-"error reporting but we are ignoring that to keep things short."
+"A MessageDialog is a modal message dialog, which means a popup that you have "
+"to respond to before you get back to what you were doing in the window that "
+"it's attached to. This one can cause the world to explode (or at least it "
+"says that it can). To make the popup appear when you run this sample, click "
+"on \"Message\" inside of its application menu -- that's the menu that "
+"appears when you click on an application's name in the upper-left screen "
+"corner, next to Activities."
 msgstr ""
-"ÎÏÎÎÎÎ 6: ÎÎÏ ÎÎÎÎÎÏÏÎÎÎÏÎÎ ÏÏÎÎ ÏÏÎÎÎÎÏÎÎÏÏÎÏÎ Î <code>ClutterActor</code> "
-"ÎÎÎ ÏÎÏÎÎÎÏÎÎÏÎÎ Î ÎÎÎÏÎÎ ÏÏÎÎ ÎÏÎÏÏÎ. ÎÎ ÏÏÏÏÎ ÏÏÎÏÎÎ ÎÎÎÎÎ Î ÎÎÎÎÏÎÎÎ "
-"ÏÏÎÏÏÎÎÎÏÎÏ ÎÎÏÎ ÎÏÏ ÏÎÎ ÎÏÎÎÎ <code>GSList</code>. ÎÎ ÎÎÏÏÎÏÎ ÏÏÎÏÎÎ ÎÎÎÎÎ "
-"ÎÎÎ ÎÎÎÏÎÏÎ ÏÏÎÎÎÎÏÎÏ, ÎÎÎÎ ÏÎ ÎÎÎÎÎÏÎÎ ÎÎÎ ÎÏÎÎÏÏ ÏÏÎÏÎÎÎÎÏ."
-
-#: C/photo-wall.c.page:202(p)
-msgid "Line 7: We'll look at this function in a later section."
-msgstr "ÎÏÎÎÎÎ 7: ÎÎ ÎÎÏÎÎ ÎÏÏÎ ÏÎÎ ÏÏÎÎÏÏÎÏÎ ÏÎ ÎÏÏÎÎÎÎ ÎÎÏÏÎÏÎ."
+"ÎÎÎÏ MessageDialog ÎÎÎÎÎ ÎÎÎÏ ÎÎÎÎÎÎÏÏÎÎÏÏ ÎÎÎÎÎÎÎÏ ÎÎÎÏÎÎÏÎÏ, ÏÎÏ ÏÎÎÎÎÎÎÎ "
+"ÎÎÎÎ ÎÎÎÎÏÏÎÎÎÎ ÏÏÎÎ ÎÏÎÎÎ ÏÏÎÏÎÎ ÎÎ ÎÏÎÎÏÎÏÎÏÎ ÏÏÎÎ ÎÎ ÎÏÎÏÏÏÎÏÎÏÎ ÏÎ ÏÏÎ "
+"ÎÎÎÎÏÎ ÏÏÎ ÏÎÏÎÎÏÏÎ ÏÏÎ ÎÏÎÎÎ ÎÎÎÎÎ ÏÏÎÏÎÏÏÎÎÎÎÎ. ÎÏÏÏ ÎÏÎÏÎÎ ÎÎ ÏÏÎÎÎÎÎÏÎÎ "
+"ÏÎÎ ÎÎÏÎÎÎ ÏÎÏ ÎÏÏÎÎÏ (Î ÏÎÏÎÎÏÎÏÏÎÎ ÎÎÎÎ ÏÏÎ ÎÏÎÏÎÎ). ÎÎÎ ÎÎ ÎÎÎÎÏÎ ÏÎ "
+"ÎÎÎÎÏÏÎÎÎÎ ÎÎ ÎÎÏÎÎÎÏÏÎÎ ÏÏÎÎ ÎÎÏÎÎÎÎÏÎ ÎÏÏÏ ÏÎ ÎÎÎÎÎÎ, ÏÎÏÎÏÏÎ ÏÏÎ \"Message"
+"\" ÎÎÏÎ ÏÏÎ ÎÎÎÎÏ ÏÎÏ ÎÏÎÏÎÎÎÎÏ ÏÎÏ -- ÎÏÏÏ ÎÎÎÎÎ ÏÎ ÎÎÎÎÏ ÏÎÏ ÎÎÏÎÎÎÎÎÏÎÎ "
+"ÏÏÎÎ ÏÎÏÎÏÎ ÏÏÎ ÏÎÎÎÎ ÎÎÎÏ ÎÏÎÏÎÎÎÎÏ ÏÏÎÎ ÏÎÎÏ ÎÏÎÏÏÎÏÎ ÎÏÎÎÎ ÏÎÏ ÎÎÏÎÎÏ, "
+"ÎÎÏÎÎ ÏÏÎÏ ÎÎÎÏÎÎÎÎÏ."
 
-#: C/photo-wall.c.page:204(p)
+#: C/messagedialog.js.page:26(note/p)
 msgid ""
-"Line 8: This adds the <code>ClutterActor</code> to the stage, which is a "
-"container. It also assumes ownership of the <code>ClutterActor</code> which "
-"is something you'll want to look into as you get deeper into GNOME "
-"development. See the <link href=\"http://library.gnome.org/devel/gobject/";
-"stable/gobject-memory.html\"><code>GObject</code> documentation</link> for "
-"the gory details."
+"The difference between a MessageDialog and a <link xref=\"dialog.js"
+"\">Dialog</link> is that a Dialog can contain whatever widgets and content "
+"you want to put in it, whereas a MessageDialog is just a convenient way to "
+"make popups appear with a basic message and buttons."
 msgstr ""
-"ÎÏÎÎÎÎ 8: ÎÏÏÎ ÏÏÎÏÎÎÏÎÎ ÏÎÎ <code>ClutterActor</code> ÏÏÎ ÏÏÎÎÎÎ, ÏÎÏ ÎÎÎÎÎ "
-"ÎÎÎÏ ÏÎÏÎÎÎÏÎÏ. ÎÏÎÏÎÏ ÏÏÎÎÎÏÎÎ ÎÎÎÎÎÏÎÏÎÎ ÏÎÏ <code>ClutterActor</code> ÏÎÏ "
-"ÎÎÎÎÎ ÎÎÏÎ ÏÎÏ ÎÎ ÎÎÎÎÏÎÏÎ ÎÎ ÎÎÎÏÎÎÎÏÎ ÎÎÎÏÏ ÏÎÎÎÎÎÎÏÎ ÎÎÎÏÏÎÏÎ ÏÏÎÎ "
-"ÎÎÎÏÏÏÎÎ ÏÎÏ GNOME. ÎÎÎÏÎ ÏÎÎ <link href=\"http://library.gnome.org/devel/";
-"gobject/stable/gobject-memory.html\"><code>GObject</code>ÏÎÎÎÎÏÎÏÏÎ</link> "
-"ÎÎÎ ÏÎÏ ÏÏÎÎÏÎÏ ÎÎÏÏÎÎÎÏÎÎÎÏ."
+"Î ÎÎÎÏÎÏÎ ÎÎÏÎÎÏ ÎÎÏÏ MessageDialog ÎÎÎ ÎÎÏÏ <link xref=\"dialog.js"
+"\">ÎÎÎÎÏÎÎÏ</link> ÎÎÎÎÎ ÏÏÎ Î ÎÎÎÎÎÎÎÏ ÎÏÎÏÎÎ ÎÎ ÏÎÏÎÎÏÎÎ ÎÏÎÎÎÎÎÏÎÏÎ "
+"ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÎ ÏÎÏÎÎÏÏÎÎÎÎ ÎÎÎÎÏÎ ÎÎ ÎÎÎÎÏÎ ÎÎÏÎ, ÎÎÏ ÎÎÎÏ "
+"MessageDialog ÎÎÎÎÎ ÎÏÎÎ ÎÎÎÏ ÎÎÎÎÎÏÏ ÏÏÏÏÎÏ ÎÎ ÎÎÎÎÏÎ ÏÎ ÎÎÎÎÏÏÎÎÎÎ ÎÎ "
+"ÎÎÏÎÎÎÏÏÎÏÎ ÎÎ ÎÎÎ ÎÎÏÎÎÏ ÎÎÎÏÎÎ ÎÎÎ ÎÎÏÎÏÎÎ."
 
-#: C/photo-wall.c.page:206(p)
+#: C/messagedialog.js.page:43(section/code)
+#, no-wrap
 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."
+"\n"
+"const MessageDialogExample = new Lang.Class ({\n"
+"    Name: 'MessageDialog Example',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function () {\n"
+"        this.application = new Gtk.Application ({\n"
+"            application_id: 'org.example.jsmessagedialog',\n"
+"            flags: Gio.ApplicationFlags.FLAGS_NONE });\n"
+"\n"
+"        // Connect 'activate' and 'startup' signals to the callback functions\n"
+"        this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"        this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents windows when active\n"
+"    _onActivate: function () {\n"
+"        this._window.present ();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal initializes menus and builds the UI\n"
+"    _onStartup: function () {\n"
+"        this._initMenus();\n"
+"        this._buildUI ();\n"
+"    },\n"
 msgstr ""
-"ÎÏÎÎÎÎ 9: ÎÏÏÏ ÏÏÎÏÎÎÏÎÎ ÏÎ <code>ClutterActor</code> ÏÎ ÎÎÎ <code>GSList</"
-"code>, ÎÏÏÎ ÏÏÏÎ ÎÏÎÏÏÎÏÎ ÎÎ ÎÏÎÏÎÏÎÎ ÎÎ ÎÏÎÎÎÎÎÎÎÏÎÎ ÏÎ <code>ClutterActor</"
-"code>."
+"\n"
+"const MessageDialogExample = new Lang.Class ({\n"
+"    Name: 'MessageDialog Example',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function () {\n"
+"        this.application = new Gtk.Application ({\n"
+"            application_id: 'org.example.jsmessagedialog',\n"
+"            flags: Gio.ApplicationFlags.FLAGS_NONE });\n"
+"\n"
+"        // Connect 'activate' and 'startup' signals to the callback functions\n"
+"        this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"        this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents windows when active\n"
+"    _onActivate: function () {\n"
+"        this._window.present ();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal initializes menus and builds the UI\n"
+"    _onStartup: function () {\n"
+"        this._initMenus();\n"
+"        this._buildUI ();\n"
+"    },\n"
 
-#: C/photo-wall.c.page:207(p)
+#: C/messagedialog.js.page:70(note/p) C/switch.js.page:75(note/p)
 msgid ""
-"Interesting to note is that we want to prepend the <code>ClutterActor</"
-"code>s rather than append so that we avoid traversing the list upon each "
-"insertion. You will often see <code>g_slist_prepend</code> followed by "
-"<code>g_slist_reverse</code> because it faster than inserting many objects "
-"at the end of the list."
+"Before we call _buildUI to create the window and the widgets inside it, we "
+"need to call _initMenus, which tells GNOME to create the menu. We can put "
+"the actual code for _initMenus after the code for _buildUI, since it doesn't "
+"matter what order we put them in so long as _initMenus is called first in "
+"_onStartup."
 msgstr ""
-"ÎÎÎÎÎÏÏÏÎ ÏÏÎ ÎÎÎÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎ ÏÎ <code>ClutterActor</code> ÏÎÏÎ ÎÎ ÏÎ "
-"ÏÏÎÏÎÏÏÎÏÎÏÎÎ ÎÎÎ ÎÏÎÏÏÎÎ ÎÎÎÏÏÎÏÎÏ ÏÎÏ ÎÎÏÏÎÏ ÎÎ ÎÎÎÎ ÎÎÏÎÎÏÎÎ. ÎÎ ÎÎÎÏÎ "
-"ÏÏÏÎÎ ÏÎ <code>g_slist_prepend</code> ÎÎÎÎÎÏÎÎÏÎÎÎÎ ÎÏÏ "
-"<code>g_slist_reverse</code> ÎÏÎÎÎÎ ÎÎÎÎÎ ÏÎÎ ÎÏÎÎÎÏÎ ÏÎÏÎ Î ÎÎÏÎÎÏÎÎ ÏÎÎÎÏÎ "
-"ÎÎÏÎÎÎÎÎÎÎÏÎ ÏÏÎ ÏÎÎÎÏ ÏÎÏ ÎÎÏÏÎÏ."
-
-#: C/photo-wall.c.page:213(title)
-msgid "Loading the images"
-msgstr "ÎÏÏÏÏÏÎ ÏÏÎ ÎÎÎÏÎÏÎ"
+"ÎÏÎÎ ÎÎÎÎÏÎÏÎÎ _buildUI ÎÎÎ ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ ÏÎÏÎÎÏÏÎÏ ÎÎÎ ÏÏÎ ÎÏÎÏÎÎÏÎ "
+"ÏÏÏÏÎÏÎÎÏÎ ÎÎÏÎ ÏÎÏ, ÏÏÎÎÎÎÏÎÎÏÏÎ ÎÎ ÎÎÎÎÏÎÏÎÎ _initMenus, ÏÎÏ ÎÎÎÎ ÏÏÎ "
+"GNOME ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÎ ÏÎ ÎÎÎÎÏ. ÎÏÎÏÎÏÎÎ ÎÎ ÎÎÎÎÏÎÎ ÏÎÎ ÎÎÎÏÎÏ ÎÏÎÎÎÎ ÎÎÎ "
+"_initMenus ÎÎÏÎ ÏÎÎ ÎÏÎÎÎÎ ÎÎÎ _buildUI, ÎÏÎÏ ÎÎÎ ÏÎÎÏÎÎÎÎ Î ÏÎÎÏÎ ÏÎÏ ÏÎ "
+"ÎÎÎÎÎÎ ÏÏÎ ÏÎ _initMenus ÎÎÎÎÎÏÎÎ ÏÏÏÏÎ ÏÏÎ _onStartup."
 
-#: C/photo-wall.c.page:214(p)
+#: C/messagedialog.js.page:71(section/code)
+#, no-wrap
 msgid ""
-"Let's take a short break from Clutter to see how we can get the file names "
-"from our image directory."
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function () {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow  ({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            title: \"Gtk.MessageDialog Example\",\n"
+"            default_height: 200,\n"
+"            default_width: 400 });\n"
 msgstr ""
-"ÎÏ ÎÎÎÎÏÎÎ ÎÎÎ ÏÏÎÏÎÎÎ ÎÎÎÎÎÏÎ ÎÏÏ ÏÎ Clutter ÎÎÎ ÎÎ ÎÎÏÎÎ ÏÏÏ ÎÏÎÏÎÏÎÎ ÎÎ "
-"ÏÎÏÎÏÎÎ ÏÎ ÎÎÏÎÎÏÎ ÎÏÏÎÎÎÏ ÎÏÏ ÏÎÎ ÎÎÏÎÎÎÎÏ ÎÎÏ ÏÏÎ ÎÎÎÏÎÏÎ."
-
-#: C/photo-wall.c.page:241(p)
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function () {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow  ({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            title: \"Gtk.MessageDialog Example\",\n"
+"            default_height: 200,\n"
+"            default_width: 400 });\n"
+
+#: C/messagedialog.js.page:85(section/code)
+#, no-wrap
 msgid ""
-"Lines 5 and 12: This opens our directory or, if an error occured, returns "
-"after printing an error message."
+"\n"
+"        // Create a silly warning message and add it to the window\n"
+"        this.warningLabel = new Gtk.Label ({\n"
+"            label: \"This application goes boom! (Not really.)\"});\n"
+"        this._window.add (this.warningLabel);\n"
 msgstr ""
-"ÎÏÎÎÎÎÏ 5 ÎÎÎ 12: ÎÏÏÏ ÎÎÎÎÎÎÎ ÏÎÎ ÎÎÏÎÎÎÎÏ ÎÎÏ Î, ÎÎÎ ÏÏÎÎÎÎ ÏÏÎÎÎÎ, "
-"ÎÏÎÏÏÏÎÏÎÎ ÎÎÏÎ ÏÎÎ ÎÎÏÏÏÏÏÎ ÎÎÎ ÎÎÎÏÎÎ ÏÏÎÎÎÎÏÎÏ."
+"\n"
+"        // Create a silly warning message and add it to the window\n"
+"        this.warningLabel = new Gtk.Label ({\n"
+"            label: \"This application goes boom! (Not really.)\"});\n"
+"        this._window.add (this.warningLabel);\n"
 
-#: C/photo-wall.c.page:242(p)
+#: C/messagedialog.js.page:91(section/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."
+"For this example, all that we have in the window the popup comes out of is a "
+"silly warning <link xref=\"label.js\">Label</link>."
 msgstr ""
-"ÎÏÎÎÎÎÏ 14-23: Î ÏÏÏÏÎ ÎÏÎÎÎÎ ÏÎÎÏÎÎÎ ÎÎÎ ÎÎÎÎ ÏÎÎÎÎ ÎÏÏÎÎÎÏ ÎÏÏ ÏÎ "
-"<code>GDir</code> ÏÎÏ ÎÎÎÎÎÎÎÎ ÏÎÎ ÎÏÏÎÏ. ÎÎÎ ÏÏÎÏÏÎ ÎÎÎ ÎÏÏÎÎÎ ÎÎÎÏÎÎÏ (ÏÎÏ "
-"ÎÎÎÎÏÎÏÎÎ ÎÎÎÏÏÎÏÎÏ ÏÎÎ ÎÏÎÎÏÎÏÎ ÏÎÏ, \".png\" Î \".jpg\") ÏÏÎÎ ÎÎÏÎÎÎÎÎ "
-"ÏÏÎÎÏÎÎÎÏÎÎ ÎÎ ÏÏÎÏÎÏÏÎÏÎÎ ÏÎ ÎÎÎÎÏÎÎÎ ÎÎÏÎÎÏÎÎÏ ÎÎÎÏÎÎÏ ÏÏÎ ÏÎÎÎÎ ÎÏÏÎÎÎÏ "
-"ÎÎÎ ÏÎ ÏÏÎÏÎÏÏÎÏÎÎ ÏÏÎ ÎÎÏÏÎ ÏÎÏ ÎÎÎÎÏÎÏÏÎÏÎÎÎ ÎÏÏÎÏÎÏÎ. ÎÎÎÎÏÏÎÎÎ "
-"ÏÏÎÏÏÎÎÎÏÎÎ ÎÎ ÏÎÏÎÏÎÎ ÏÎ ÎÏÏÎÎÎÎ ÏÎÎÎÎ ÎÎÎÎÏÎÎÎÏ ÎÎÎ ÎÎÎÎÎÎÏÎÎÎÏÎÎ ÏÎ ÎÏÏÏÎ "
-"ÎÎÎ ÎÏÎÎÎÎ ÎÎÏÎÎÎ ÎÎÎÎ ÎÏÏÎÎÎ."
+"ÎÎÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ, ÏÎÎ ÏÏÎ ÎÏÎÏÎÎ ÏÏÎ ÏÎÏÎÎÏÏÎ ÏÎÏ ÎÎÏÎÎÎÎÎÏÎÎ ÏÎ "
+"ÎÎÎÎÏÏÎÎÎÎ ÎÎÎÎÎ ÎÎÎ ÎÎÏÎÏÎ ÏÏÎÎÎÎÎÏÎÎÎÏÎ <link xref=\"label.js\">Label</"
+"link>."
 
-#: C/photo-wall.c.page:247(title)
-msgid "Set up the actors"
-msgstr "ÎÎÎÎÏÎÏÏÎÏÎ ÏÏÎ ÎÏÎÏÏÏÎ"
+#: C/messagedialog.js.page:95(section/title)
+msgid "Creating the application's menu"
+msgstr "ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ ÎÎÎÎÏ ÏÎÏ ÎÏÎÏÎÎÎÎÏ"
 
-#: C/photo-wall.c.page:248(p)
+#: C/messagedialog.js.page:96(section/code)
+#, no-wrap
 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."
+"\n"
+"    // Build the application menu, including the button that calls the dialog\n"
+"    _initMenus: function() {\n"
+"        let menu = new Gio.Menu();\n"
+"        menu.append(\"Message\",'app.message');\n"
+"        menu.append(\"Quit\",'app.quit');\n"
+"        this.application.set_app_menu(menu);\n"
+"\n"
+"        // This pops up a MessageDialog when \"Message\" is clicked in the menu\n"
+"        let messageAction = new Gio.SimpleAction ({ name: 'message' });\n"
+"        messageAction.connect('activate', Lang.bind(this,\n"
+"            function() {\n"
+"                this._showMessageDialog();\n"
+"            }));\n"
+"        this.application.add_action(messageAction);\n"
+"\n"
+"        // This closes the window when \"Quit\" is clicked in the menu\n"
+"        let quitAction = new Gio.SimpleAction ({ name: 'quit' });\n"
+"        quitAction.connect('activate', Lang.bind(this,\n"
+"            function() {\n"
+"                this._window.destroy();\n"
+"            }));\n"
+"        this.application.add_action(quitAction);\n"
+"    },\n"
 msgstr ""
-"ÎÏ ÏÎÎÎÏÎÎ ÎÎÎ ÎÎÏÎÎ ÏÏÏÎ ÏÏÎ ÎÎÎÎÎÎÏ ÎÎÎ ÏÎÎ ÏÎÏÎÎÎÏÎÏÎ ÏÎÏ "
-"<code>ClutterActor</code> ÎÎÎ ÎÏÎÏÎÏ ÎÎ ÎÏÎÎÎÎÏÎÏÎÎ ÏÎ <code>ClutterActor</"
-"code> ÎÎÎ ÎÎÎÎÎÎÏÎÎÏÎÏÎ ÏÏÎÏÏÎ."
+"\n"
+"    // Build the application menu, including the button that calls the dialog\n"
+"    _initMenus: function() {\n"
+"        let menu = new Gio.Menu();\n"
+"        menu.append(\"Message\",'app.message');\n"
+"        menu.append(\"Quit\",'app.quit');\n"
+"        this.application.set_app_menu(menu);\n"
+"\n"
+"        // This pops up a MessageDialog when \"Message\" is clicked in the menu\n"
+"        let messageAction = new Gio.SimpleAction ({ name: 'message' });\n"
+"        messageAction.connect('activate', Lang.bind(this,\n"
+"            function() {\n"
+"                this._showMessageDialog();\n"
+"            }));\n"
+"        this.application.add_action(messageAction);\n"
+"\n"
+"        // This closes the window when \"Quit\" is clicked in the menu\n"
+"        let quitAction = new Gio.SimpleAction ({ name: 'quit' });\n"
+"        quitAction.connect('activate', Lang.bind(this,\n"
+"            function() {\n"
+"                this._window.destroy();\n"
+"            }));\n"
+"        this.application.add_action(quitAction);\n"
+"    },\n"
 
-#: C/photo-wall.c.page:267(p)
+#: C/messagedialog.js.page:121(section/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."
+"Here, we build the <link xref=\"gmenu.js\">GMenu</link> where we'll be "
+"putting the \"Message\" button which triggers the popup MessageDialog. The "
+"GMenu is the menu that appears when you click the application's name in the "
+"upper-left corner of the screen, next to the Activities menu. Our menu only "
+"has two options in it: Message, and Quit."
 msgstr ""
-"ÎÏÎÎÎÎ 7: ÏÏÎÎÎÏÎ ÎÎÏÎÎÏÎÏÎÏ ÎÏÎÏÏÎ ÏÎÎÎÎÎÎÎ ÏÏÎ ÎÎÏÎÎÏÎ ÏÎ ÏÏÎÎÎÎÏÎ, ÏÎÏÎÎÎ "
-"ÏÏÏÏ <code>button-press-event</code> ÏÏÎÎ ÏÎÏÎÏÏÏÏÎ ÎÎÏ. ÎÎÎ ÏÏÏÎÎÏÎÏÎÎÏ "
-"ÏÎÎÏÎ, ÏÎÎÎ ÎÎ <code>ClutterActor</code> ÏÏÎÎ ÏÎÎÏÎ ÎÎ ÏÏÎÏÎÎ ÎÏÏÎÎÎ ÎÎ "
-"ÎÎÎÎÎ ÎÎÏÎÎÏÎÏÏÎÎÎÎ."
+"ÎÎÏ, ÎÎÏÎÏÎÎÏÎÎÎÏÎÎ ÏÎ <link xref=\"gmenu.js\">GMenu</link> ÏÏÎÏ ÎÎ ÎÎÎÎÏÎÎ "
+"ÏÎ ÎÎÏÎÏÎ \"Message\" ÏÎÏ ÏÏÎÎÎÎÎÎ ÏÎ ÎÎÎÎÏÏÎÎÎÎ MessageDialog. ÎÎ GMenu "
+"ÎÎÎÎÎ ÏÎ ÎÎÎÎÏ ÏÎÏ ÎÎÏÎÎÎÎÎÏÎÎ ÏÏÎÎ ÏÎÏÎÏ ÏÎ ÏÎÎÎÎ ÏÎÏ ÎÏÎÏÎÎÎÎÏ ÏÏÎÎ ÏÎÎÏ "
+"ÎÏÎÏÏÎÏÎ ÎÏÎÎÎ ÏÎÏ ÎÎÏÎÎÏ, ÎÎÏÎÎ ÏÏÎ ÎÎÎÎÏ ÎÎÎÏÎÎÎÎÏ. ÎÎ ÎÎÎÎÏ ÎÎÏ ÎÏÎÎ ÎÏÎÎ "
+"ÎÏÎ ÎÏÎÎÎÎÎÏ: ÎÎÎÏÎÎ ÎÎÎ ÎÎÎÎÏÎÎÎ."
+
+#: C/messagedialog.js.page:125(section/title)
+msgid "Creating the MessageDialog"
+msgstr "ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ MessageDialog"
 
-#: C/photo-wall.c.page:270(p)
+#: C/messagedialog.js.page:126(section/code)
+#, no-wrap
 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."
+"\n"
+"    _showMessageDialog: function () {\n"
+"\n"
+"        // Create a modal MessageDialog whose parent is the window\n"
+"        this._messageDialog = new Gtk.MessageDialog ({\n"
+"            transient_for: this._window,\n"
+"            modal: true,\n"
+"            buttons: Gtk.ButtonsType.OK_CANCEL,\n"
+"            message_type: Gtk.MessageType.WARNING,\n"
+"            text: \"This action will cause the universe to stop existing.\" });\n"
+"\n"
+"        this._messageDialog.connect ('response', Lang.bind(this, this._response_cb));\n"
+"        this._messageDialog.show();\n"
+"    },\n"
 msgstr ""
-"ÎÏÎÎÎÎ 9-12: ÎÏÏÎ ÏÏÎÎÎÎÏÎÎ ÏÎ <code>button-press-event</code> ÏÏÎÎ "
-"ÎÏÎÎÎÎÎÎÏÎ <code>actor_clicked_cb</code> ÏÎÏ ÎÎ ÎÎÏÎÎ ÏÏÎ ÏÏÎÎÏÎÎÎ."
+"\n"
+"    _showMessageDialog: function () {\n"
+"\n"
+"        // Create a modal MessageDialog whose parent is the window\n"
+"        this._messageDialog = new Gtk.MessageDialog ({\n"
+"            transient_for: this._window,\n"
+"            modal: true,\n"
+"            buttons: Gtk.ButtonsType.OK_CANCEL,\n"
+"            message_type: Gtk.MessageType.WARNING,\n"
+"            text: \"This action will cause the universe to stop existing.\" });\n"
+"\n"
+"        this._messageDialog.connect ('response', Lang.bind(this, this._response_cb));\n"
+"        this._messageDialog.show();\n"
+"    },\n"
 
-#: C/photo-wall.c.page:273(p)
-msgid "At this point we've got a wall of images that are ready to be viewed."
+#: C/messagedialog.js.page:141(section/p)
+msgid ""
+"To make our MessageDialog a popup attached to the main window, we set its "
+"modal property to true and set it to be \"transient_for\" _window. After "
+"that, we can set what kind of buttons it has and what kind of message it is "
+"(which determines what icon appears next to the message), and write out the "
+"text inside it, before connecting its \"response\" signal to the callback "
+"function which handles it."
 msgstr ""
-"ÎÎ ÎÏÏÏ ÏÎ ÏÎÎÎÎÎ ÏÎÏÎÎÎ ÎÎÎÎ ÏÎÎÏÎ ÎÎÎÏÎÏÎ ÏÎÏ ÎÎÎÎÎ ÎÏÎÎÎÎÏ ÎÎ ÏÏÎÎÎÎÎÎÏÎ."
+"ÎÎÎ ÎÎ ÎÎÎÎÏÎ ÏÎÎ MessageDialog ÎÎÏ ÎÎÎ ÏÏÎÏÎÏÏÎÎÎÎÎ ÎÎÎÎÏÏÎÎÎÎ ÏÏÎ ÎÏÏÎÎ "
+"ÏÎÏÎÎÏÏÎ, ÎÏÎÎÎÏÎÎ ÏÎÎ ÎÎÎÎÎÎÏÏÎÎÎ ÏÎÏ ÎÎÎÏÏÎÏÎ ÏÎ ÎÎÎÎÎ ÎÎÎ ÏÎ ÎÏÎÎÎÏÎÎ ÎÎ "
+"ÎÎÎÎÎ \"transient_for\" _window. ÎÎÏÎ ÎÏÏ ÎÏÏÏ, ÎÏÎÏÎÏÎÎ ÎÎ ÎÏÎÏÎÏÎÎ ÏÎ "
+"ÎÎÎÎÏÏ ÎÎÏÎÏÎÎ ÎÏÎÎ ÎÎÎ ÏÎ ÎÎÎÎÏÏ ÎÎÎÏÎÎ ÎÎÎÎÎ (ÏÎÏ ÎÎÎÎÏÎÎÎÎ ÏÎ ÎÎÎÎÎÎÎÎÎ "
+"ÎÎÏÎÎÎÎÎÏÎÎ ÎÎÏÎÎ ÏÏÎ ÎÎÎÏÎÎ) ÎÎÎ ÎÎ ÎÏÎÏÏÎÎ ÏÎ ÎÎÎÎÎÎÎ ÎÎÏÎ ÏÎÏ, ÏÏÎÎ ÏÎ "
+"ÏÏÎÎÎÏÎ ÏÎÏ ÏÎÎÎÏÎÏ ÏÎÏ \"response\" ÏÏÎ ÏÏÎÎÏÏÎÏÎ ÎÏÎÎÎÎÎÎÏÎÏ ÏÎÏ ÏÎ "
+"ÏÎÎÏÎÎÎÏÎÎ."
 
-#: C/photo-wall.c.page:277(title)
-msgid "Reacting to the clicks"
-msgstr "ÎÎÏÎÎÏÎÏÎ ÏÏÎ ÎÎÎÎ"
+#: C/messagedialog.js.page:142(note/p)
+msgid "Here are some resources for making your own MessageDialogs:"
+msgstr "ÎÎÏ ÏÏÎÏÏÎÏÎ ÎÎÏÎÎÎÏ ÏÎÎÎÏ ÎÎÎ ÎÎ ÎÎÎÎÏÎ ÏÎ ÎÎÎÎ ÏÎÏ MessageDialogs:"
 
-#: C/photo-wall.c.page:322(p)
+#: C/messagedialog.js.page:144(item/p)
 msgid ""
-"Lines 1â4: We have to make sure our callback function matches the signature "
-"required for the <code>button_clicked_event</code> signal. For our example, "
-"we will only use the first argument, the <code>ClutterActor</code> that is "
-"actually clicked."
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkMessageDialog.";
+"html#GtkButtonsType\">List of button types</link>"
 msgstr ""
-"ÎÏÎÎÎÎÏ 1-4: ÎÏÎÏÎÎ ÎÎ ÎÎÎÎÎÏÎÎÏÎÎ ÏÏÎ Î ÏÏÎÎÏÏÎÏÎ ÎÏÎÎÎÎÎÎÏÎÏ ÎÎÏ ÏÎÎÏÎÎÎÎÎ "
-"ÎÎ ÏÎÎ ÎÏÎÎÏÎÏÎÎÎÎ ÏÏÎÎÏÎÏÎ ÎÎÎ ÏÎ ÏÎÎÎ <code>button_clicked_event</code>. "
-"ÎÎÎ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÎÎÏ, ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÏÎÎ ÏÎ ÏÏÏÏÎ ÏÏÎÏÎÎ, ÏÎ "
-"<code>ClutterActor</code> ÏÎÏ ÏÏÎÎ ÏÏÎÎÎÎÏÎÎÏÏÎÏÎ ÏÎÏÎÎÎÎÎ."
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkMessageDialog.";
+"html#GtkButtonsType\">List of button types</link>"
 
-#: C/photo-wall.c.page:324(p)
+#: C/messagedialog.js.page:145(item/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."
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkMessageDialog.";
+"html#GtkMessageType\">List of message types</link>"
 msgstr ""
-"ÎÎÎÎÏ ÎÎÎÎÎÏ ÎÎÎ ÏÎ ÎÏÎÏÎÎÏÎ ÏÎÏ ÎÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÏÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ. Î "
-"<code>ClutterEvent</code> ÎÎÎÎÎ ÎÎÎÏÎÏÎÏÎÎÏÏ ÎÎÎÎÎÎÎ ÎÎ ÏÎ ÏÏÎÎÎÎ "
-"ÎÏÎÎÎÏÎÎÎÎÏÎÎ. ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ, ÎÎÎ ÏÏÎÎÎÎ ÏÎÎÎÏÏÎÏ ÏÎÏÎÎÎÎ ÎÎÎ "
-"<code>ClutterKeyEvent</code> ÎÏÏ ÏÎ ÎÏÎÎÎ ÎÏÎÏÎÎÏÎ ÎÎ ÏÎÏÎÏÎ ÏÎ ÏÎÎÎÏÏÎ ÏÎÏ "
-"ÏÎÏÎÎÎÎÎ ÎÎÏÎÎÏ ÎÎÎÏÎ ÏÎÎÏÎÏÎÏÎÏÎ. ÎÎÎ ÏÎ ÏÏÎÎÎÎÏÎ ÎÎÎÎ ÏÎÏ ÏÎÎÏÎÎÎÎÏ "
-"ÏÎÎÏÎÎÏÎ <code>ClutterButtonEvent</code> ÎÏÏ ÏÎ ÎÏÎÎÎ ÎÏÎÏÎÎÏÎ ÎÎ ÏÎÏÎÏÎ ÏÎÏ "
-"ÏÎÎÎÏ <code>x</code> ÎÎÎ <code>y</code>. ÎÎÎÏÎ ÏÎÎ ÏÎÎÎÎÏÎÏÏÎ ÏÎÏ Clutter "
-"ÎÎÎ ÎÎÎÎÏÏ ÏÏÏÎÏÏ <code>ClutterEvent</code>."
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkMessageDialog.";
+"html#GtkMessageType\">List of message types</link>"
 
-#: C/photo-wall.c.page:325(p)
+#: C/messagedialog.js.page:149(section/code)
+#, no-wrap
 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."
+"\n"
+"    // Callback function (aka signal handler) for the response signal\n"
+"    _response_cb: function (messagedialog, response_id) {\n"
+"\n"
+"        // A simple switch that changes the main window's label\n"
+"        switch (response_id) {\n"
+"            case Gtk.ResponseType.OK:\n"
+"                this.warningLabel.set_label (\"*BOOM*\\n\");\n"
+"                break;\n"
+"            case Gtk.ResponseType.CANCEL:\n"
+"                this.warningLabel.set_label (\"Good choice!\\n\");\n"
+"                break;\n"
+"            case Gtk.ResponseType.DELETE_EVENT:\n"
+"                this.warningLabel.set_label (\"Dialog closed or cancelled.\\n\");\n"
+"                break;\n"
+"        }\n"
+"\n"
+"        this._messageDialog.destroy();\n"
+"\n"
+"    }\n"
+"\n"
+"});\n"
 msgstr ""
-"Î <code>user_data</code> ÎÎÎÎÎ ÏÎ ÏÏÎÏÎÎÎÏÎÎÎÎ ÎÎÏÎÎÎÏ ÎÎÎ ÎÎ ÏÎÏÎÏÎÎ "
-"ÎÎÎÎÎÎÎÎ ÏÏÎ ÏÏÎÎÏÏÎÏÎ. ÎÎÎÏ ÎÎÎÎÏÎÏ ÏÎ ÎÏÎÎÎÎÎÏÎÏÎ ÏÏÏÎ ÎÎÎÎÎÎÎÏÎ ÎÏÎÏÎÎ ÎÎ "
-"ÏÎÏÎÏÏÎÎ. ÎÎÎ ÏÏÎÎÎÎÏÏÎÏÏÎ ÏÎÎÎÎÏÎÎ ÎÎÎÎÎÎÎÎ ÎÎ ÏÎÏÎÏÏÎÏÎ ÏÏÎÎ ÎÏÎÎÎÎÎÎÏÎ, "
-"ÎÏÎÏÎÎÏÎ ÎÎ ÏÎÏÎÎÎÏÎÏÎÏÎ ÏÎ ÎÎÎÎÎÎÎÎ ÏÎ ÎÎÎ ÎÎÎÎ ÎÎÎ ÎÎ ÏÎÏÎÏÎÏÎ ÏÎ "
-"ÎÎÎÏÎÏÎÏÎ ÏÎÏ."
+"\n"
+"    // Callback function (aka signal handler) for the response signal\n"
+"    _response_cb: function (messagedialog, response_id) {\n"
+"\n"
+"        // A simple switch that changes the main window's label\n"
+"        switch (response_id) {\n"
+"            case Gtk.ResponseType.OK:\n"
+"                this.warningLabel.set_label (\"*BOOM*\\n\");\n"
+"                break;\n"
+"            case Gtk.ResponseType.CANCEL:\n"
+"                this.warningLabel.set_label (\"Good choice!\\n\");\n"
+"                break;\n"
+"            case Gtk.ResponseType.DELETE_EVENT:\n"
+"                this.warningLabel.set_label (\"Dialog closed or cancelled.\\n\");\n"
+"                break;\n"
+"        }\n"
+"\n"
+"        this._messageDialog.destroy();\n"
+"\n"
+"    }\n"
+"\n"
+"});\n"
 
-#: C/photo-wall.c.page:329(p)
+#: C/messagedialog.js.page:172(section/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."
+"This function takes two parameters, the MessageDialog and its response_id, "
+"both of which are automatically supplied (you don't have to manually pass "
+"them to it for it to work). Here we use a simple switch to change the "
+"\"warning label\"'s text, depending on which option you select. The "
+"DELETE_EVENT occurs if you press Escape to cancel the MessageDialog, instead "
+"of clicking OK or Cancel. Whatever you select, the popup is destroyed "
+"afterwards."
 msgstr ""
-"ÎÏÎÎÎÎ 7: ÎÏÎÎÎÎÏÎÏÏÎÏÎÎ ÎÎÎ ÏÏÎÏÎÎÎ ÏÎÎÎÎÎ ÎÎÎ ÎÎÏÎÏÎÏÎÏ ÏÎÏ ÎÎÏÎÏÏÎÏÎÏ "
-"ÏÏÎÎ ÎÏÎÎÎ ÎÎÎÎÏÏÎ: ÎÎÏÎÏÏÎÏÎ ÏÎÎÏÎÏ Î ÎÎÏÎÏÏÎÏÎ ÎÏÏÎÎÏÎÏ. ÎÎÎÎÎÎÎÎ ÏÎ "
-"ÎÎÏÎÏÏÎÏÎ ÏÎÎÏÎÏ, ÎÏÏÎ ÎÎÎÎÎ ÎÎÎÏÎÎ ÎÎÎ ÎÏÎÎ ÎÏÏÎÎÏÎ. ÎÏÏÎ, ÎÏÎÎÎÏÎÎ ÏÎ "
-"ÏÎÎÎÎÎ ÏÎ <code>FALSE</code> ÎÏÏÎÎÎ."
+"ÎÏÏÎ Î ÏÏÎÎÏÏÎÏÎ ÏÎÎÏÎÎÎ ÎÏÎ ÏÎÏÎÎÎÏÏÎÏÏ, ÏÎÎ MessageDialog ÎÎÎ ÏÎÎ "
+"response_id, ÎÎÎ ÎÎ ÎÏÎ ÏÎÏÏ ÏÎÏÎÏÎÎÏÎÎ ÎÏÏÏÎÎÏÎ (ÎÎÎ ÏÏÎÎÎÎÎÏÎÎ ÎÎ ÏÎÏ "
+"ÏÎÏÎÏÎÏÎ ÎÏÏÏÎÎÏÎ ÏÎ ÎÏÏÏ ÎÎÎ ÎÎ ÎÎÏÎÎÏÎÎ). ÎÎÏ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÎÎÎ ÎÏÎÏ "
+"ÎÎÎÎÏÏÏÎ ÎÎÎ ÎÎÎÎÎÎ ÏÎÏ ÎÎÎÎÎÎÎÏ ÏÎÏ \"warning label\", ÎÎÎÎÎÎÎ ÎÎ ÏÎ ÏÎÎÎ "
+"ÎÏÎÎÎÎÎ ÎÎÎÎÎÎÎÏÎ. Î DELETE_EVENT ÏÏÎÎÎÎÎÎÎ ÎÎÎ ÏÎÏÎÏÎÏÎ ÎÎÎÏÏÎÎ ÎÎÎ ÎÎ "
+"ÎÎÏÏÏÏÎÏÎ ÏÎÎ MessageDialog, ÎÎÏÎ ÎÎ ÏÎÏÎÏÎÏÎ ÎÎÏÎÎÎÎ Î ÎÎÏÏÏÏÎ. Î,ÏÎ ÎÎÎ ÎÎ "
+"ÎÏÎÎÎÎÎÏÎ, ÏÎ ÎÎÎÎÏÏÎÎÎÎ ÎÎÏÎÏÏÏÎÏÎÏÎÎ ÎÎÏÏÏÎÎ."
 
-#: C/photo-wall.c.page:330(p)
+#: C/messagedialog.js.page:174(section/code)
+#, no-wrap
 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."
+"\n"
+"// Run the application\n"
+"let app = new MessageDialogExample ();\n"
+"app.application.run (ARGV);\n"
 msgstr ""
-"ÎÏÎÎÎÎ 9: ÎÏÏÎ Î ÎÏÎÎÎÎ ÎÏÎÎÎÎ ÏÏÎÏÎÎ ÎÎÎ ÏÏÎÏÎÏÎÎÏÎÎÎÎ ÏÏÎÎÏÏÎÏÎ, "
-"<code>foreach_set_focus_state</code>, ÎÎÎ ÎÎÎÎ ÏÏÎÎÏÎÎÎ ÏÏÎ "
-"<code>actor_list</code> ÎÎÏ, ÏÎÏÎÏÎÏÎÏ ÏÎ ÎÎÎÏÎÏÎÏÎ ÏÏÎ ÏÎÎÎÎÎ "
-"<code>is_focused</code>. ÎÎ ÎÎÏÎÎ ÏÎÎ ÎÏÎÏÎÏ ÏÎÏ ÏÏÎÎÏÏÎÏÎÏ "
-"<code>foreach_set_focus_state</code> ÏÏÎÎ ÎÏÏÎÎÎÎ ÎÎÏÏÎÏÎ."
+"\n"
+"// Run the application\n"
+"let app = new MessageDialogExample ();\n"
+"app.application.run (ARGV);\n"
 
-#: C/photo-wall.c.page:331(p)
+#: C/messagedialog.js.page:179(section/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:"
+"Finally, we create a new instance of the finished MessageDialogExample "
+"class, and set the application running."
 msgstr ""
-"ÎÏÎÎÎÎÏ 13-19: ÎÏÎÎÎÎÏÎÏ ÎÏÏÏÎ ÏÎÎ ÎÏÎÎÎÎ ÏÎÎÎÎÎÎÎ ÏÏÎ ÎÎÎ ÎÎÎÏÎÎ ÏÎÏ ÎÏÎÎ "
-"ÏÏÎÏÎÏÏÎ ÎÏÏÎÎÏÎ ÎÎÎ ÎÎÎÎÏÎÎ ÎÎ ÎÏÎÏÏÏÎÏÎÎ ÏÎ ÎÎÏÎÏÏÎÏÎ ÏÎÎÏÎÏ. Î ÏÏÎÎÏÏÎÏÎ "
-"<code>clutter_actor_animate</code> ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÎÎÎ ÏÎÎ ÎÎÎÎÏÎ ÎÎÎÏ "
-"ÎÎÎÏÏÎÏÎÏ ÏÎÏ <code>ClutterActor</code> Î ÎÎÎÎÏÎÏÏÎ ÎÏÏ ÏÎÎ ÏÏÎÏÎÏÏÎÏ "
-"ÎÎÏÎÏÏÎÏÎÎÏ ÏÏÎÏ ÏÏÎÎÎÎÏÎÎÎÎÎÏ ÎÎÏÎÏÏÎÏÎÎÏ. ÎÎ ÎÏÎÏÎÎÏÎ ÎÎÎÎÎ ÏÏÏÏ ÎÎÎÎÎÏÎÎÎ:"
-
-#: C/photo-wall.c.page:333(p)
-msgid "The address of the <code>ClutterActor</code> to animate"
-msgstr "Î ÎÎÎÏÎÏÎÏÎ ÏÎÏ <code>ClutterActor</code> ÎÎÎ ÎÎÎÎÏÎ"
+"ÎÎÎÎÎÎ, ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ ÎÎÎ ÏÏÎÎÎÎÏÏÏÏÎ ÏÎÏ ÎÎÎÎÎÎÏÏÎÎÎÎÏ ÎÎÎÏÎÏ "
+"MessageDialogExample ÎÎÎ ÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ."
 
-#: C/photo-wall.c.page:334(p)
+#: C/messagedialog.js.page:184(section/code)
+#, no-wrap
 msgid ""
-"The animation mode to use. Here we use <code>CLUTTER_LINEAR</code> so that "
-"we have a constant speed for animation."
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gio = imports.gi.Gio;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"const MessageDialogExample = new Lang.Class ({\n"
+"    Name: 'MessageDialog Example',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function () {\n"
+"        this.application = new Gtk.Application ({\n"
+"            application_id: 'org.example.jsmessagedialog',\n"
+"            flags: Gio.ApplicationFlags.FLAGS_NONE });\n"
+"\n"
+"        // Connect 'activate' and 'startup' signals to the callback functions\n"
+"        this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"        this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents windows when active\n"
+"    _onActivate: function () {\n"
+"        this._window.present ();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal initializes menus and builds the UI\n"
+"    _onStartup: function () {\n"
+"        this._initMenus();\n"
+"        this._buildUI ();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function () {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow  ({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            title: \"Gtk.MessageDialog Example\",\n"
+"            default_height: 200,\n"
+"            default_width: 400 });\n"
+"\n"
+"        // Create a silly warning message and add it to the window\n"
+"        this.warningLabel = new Gtk.Label ({\n"
+"            label: \"This application goes boom! (Not really.)\"});\n"
+"        this._window.add (this.warningLabel);\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    // Build the application menu, including the button that calls the dialog\n"
+"    _initMenus: function() {\n"
+"        let menu = new Gio.Menu();\n"
+"        menu.append(\"Message\",'app.message');\n"
+"        menu.append(\"Quit\",'app.quit');\n"
+"        this.application.set_app_menu(menu);\n"
+"\n"
+"        // This pops up a MessageDialog when \"Message\" is clicked in the menu\n"
+"        let messageAction = new Gio.SimpleAction ({ name: 'message' });\n"
+"        messageAction.connect('activate', Lang.bind(this,\n"
+"            function() {\n"
+"                this._showMessageDialog();\n"
+"            }));\n"
+"        this.application.add_action(messageAction);\n"
+"\n"
+"        // This closes the window when \"Quit\" is clicked in the menu\n"
+"        let quitAction = new Gio.SimpleAction ({ name: 'quit' });\n"
+"        quitAction.connect('activate', Lang.bind(this,\n"
+"            function() {\n"
+"                this._window.destroy();\n"
+"            }));\n"
+"        this.application.add_action(quitAction);\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    _showMessageDialog: function () {\n"
+"\n"
+"        // Create a modal MessageDialog whose parent is the window\n"
+"        this._messageDialog = new Gtk.MessageDialog ({\n"
+"            transient_for: this._window,\n"
+"            modal: true,\n"
+"            buttons: Gtk.ButtonsType.OK_CANCEL,\n"
+"            message_type: Gtk.MessageType.WARNING,\n"
+"            text: \"This action will cause the universe to stop existing.\" });\n"
+"\n"
+"        this._messageDialog.connect ('response', Lang.bind(this, this._response_cb));\n"
+"        this._messageDialog.show();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    // Callback function (aka signal handler) for the response signal\n"
+"    _response_cb: function (messagedialog, response_id) {\n"
+"\n"
+"        // A simple switch that changes the main window's label\n"
+"        switch (response_id) {\n"
+"            case Gtk.ResponseType.OK:\n"
+"                this.warningLabel.set_label (\"*BOOM*\\n\");\n"
+"                break;\n"
+"            case Gtk.ResponseType.CANCEL:\n"
+"                this.warningLabel.set_label (\"Good choice!\\n\");\n"
+"                break;\n"
+"            case Gtk.ResponseType.DELETE_EVENT:\n"
+"                this.warningLabel.set_label (\"Dialog closed or cancelled.\\n\");\n"
+"                break;\n"
+"        }\n"
+"\n"
+"        this._messageDialog.destroy();\n"
+"\n"
+"    }\n"
+"\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new MessageDialogExample ();\n"
+"app.application.run (ARGV);\n"
 msgstr ""
-"Î ÎÎÏÎÏÏÎÏÎ ÎÎÎÎÏÎÏ ÎÎÎ ÏÏÎÏÎ. ÎÎÏ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ <code>CLUTTER_LINEAR</"
-"code> ÎÏÏÎ ÏÏÏÎ ÎÎ ÎÏÎÏÎÎ ÎÎÎ ÏÏÎÎÎÏÎ ÏÎÏÏÏÎÏÎ ÎÎÎ ÎÎÎÎÏÎ."
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gio = imports.gi.Gio;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"const MessageDialogExample = new Lang.Class ({\n"
+"    Name: 'MessageDialog Example',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function () {\n"
+"        this.application = new Gtk.Application ({\n"
+"            application_id: 'org.example.jsmessagedialog',\n"
+"            flags: Gio.ApplicationFlags.FLAGS_NONE });\n"
+"\n"
+"        // Connect 'activate' and 'startup' signals to the callback functions\n"
+"        this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"        this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents windows when active\n"
+"    _onActivate: function () {\n"
+"        this._window.present ();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal initializes menus and builds the UI\n"
+"    _onStartup: function () {\n"
+"        this._initMenus();\n"
+"        this._buildUI ();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function () {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow  ({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            title: \"Gtk.MessageDialog Example\",\n"
+"            default_height: 200,\n"
+"            default_width: 400 });\n"
+"\n"
+"        // Create a silly warning message and add it to the window\n"
+"        this.warningLabel = new Gtk.Label ({\n"
+"            label: \"This application goes boom! (Not really.)\"});\n"
+"        this._window.add (this.warningLabel);\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    // Build the application menu, including the button that calls the dialog\n"
+"    _initMenus: function() {\n"
+"        let menu = new Gio.Menu();\n"
+"        menu.append(\"Message\",'app.message');\n"
+"        menu.append(\"Quit\",'app.quit');\n"
+"        this.application.set_app_menu(menu);\n"
+"\n"
+"        // This pops up a MessageDialog when \"Message\" is clicked in the menu\n"
+"        let messageAction = new Gio.SimpleAction ({ name: 'message' });\n"
+"        messageAction.connect('activate', Lang.bind(this,\n"
+"            function() {\n"
+"                this._showMessageDialog();\n"
+"            }));\n"
+"        this.application.add_action(messageAction);\n"
+"\n"
+"        // This closes the window when \"Quit\" is clicked in the menu\n"
+"        let quitAction = new Gio.SimpleAction ({ name: 'quit' });\n"
+"        quitAction.connect('activate', Lang.bind(this,\n"
+"            function() {\n"
+"                this._window.destroy();\n"
+"            }));\n"
+"        this.application.add_action(quitAction);\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    _showMessageDialog: function () {\n"
+"\n"
+"        // Create a modal MessageDialog whose parent is the window\n"
+"        this._messageDialog = new Gtk.MessageDialog ({\n"
+"            transient_for: this._window,\n"
+"            modal: true,\n"
+"            buttons: Gtk.ButtonsType.OK_CANCEL,\n"
+"            message_type: Gtk.MessageType.WARNING,\n"
+"            text: \"This action will cause the universe to stop existing.\" });\n"
+"\n"
+"        this._messageDialog.connect ('response', Lang.bind(this, this._response_cb));\n"
+"        this._messageDialog.show();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    // Callback function (aka signal handler) for the response signal\n"
+"    _response_cb: function (messagedialog, response_id) {\n"
+"\n"
+"        // A simple switch that changes the main window's label\n"
+"        switch (response_id) {\n"
+"            case Gtk.ResponseType.OK:\n"
+"                this.warningLabel.set_label (\"*BOOM*\\n\");\n"
+"                break;\n"
+"            case Gtk.ResponseType.CANCEL:\n"
+"                this.warningLabel.set_label (\"Good choice!\\n\");\n"
+"                break;\n"
+"            case Gtk.ResponseType.DELETE_EVENT:\n"
+"                this.warningLabel.set_label (\"Dialog closed or cancelled.\\n\");\n"
+"                break;\n"
+"        }\n"
+"\n"
+"        this._messageDialog.destroy();\n"
+"\n"
+"    }\n"
+"\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new MessageDialogExample ();\n"
+"app.application.run (ARGV);\n"
 
-#: C/photo-wall.c.page:335(p)
-msgid ""
-"The duration of the animation in milliseconds. I've chosen 500 ms for this "
-"example."
-msgstr "Î ÎÎÎÏÎÎÎÎ ÏÎÏ ÎÎÎÎÏÎÏ ÏÎ ms. ÎÏÎÎÎÎÎ 500 ms ÎÎÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ."
+#: C/messagedialog.py.page:7(info/title)
+msgctxt "text"
+msgid "MessageDialog (Python)"
+msgstr "MessageDialog (Python)"
 
-#: C/photo-wall.c.page:336(p)
+#: C/messagedialog.py.page:23(page/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."
+"A message dialog which prints messages on the terminal, depending on your "
+"choices."
 msgstr ""
-"ÎÎ ÏÏÎÎÎÎÏÏÎÎÎÎ ÎÏÎÏÎÎÏÎ ÎÎÎÎÎ ÎÎÏÎÎ ÎÎÎÏÏÎÏÎÏ/ÏÎÎÎÏ. ÎÎÏ ÎÎÎÎÏÎÎ ÎÎ "
-"ÎÏÎÏÎÏÎÎ ÏÎÎ ÏÎÎÎ <code>x</code> ÏÏÎÎ ÎÏÏÎÎÎ ÏÎÎÎ <code>x</code>, ÎÏÏÏÏ Î "
-"<code>ClutterActor</code> ÎÏÎÎ ÏÏÎÎ ÎÎÏÎÏÎÏÎÎÎ ÏÎ ÎÏÏÎÎÏÎ."
+"ÎÎÎÏ ÎÎÎÎÎÎÎÏ ÎÎÎÏÎÎÏÎÏ ÏÎÏ ÏÏÏÏÎÎÎ ÎÎÎÏÎÎÏÎ ÏÏÎ ÏÎÏÎÎÏÎÎÏ, ÎÎÎÎÎÎÎ ÎÎ ÏÎÏ "
+"ÎÏÎÎÎÎÎÏ ÏÎÏ."
 
-#: C/photo-wall.c.page:337(p)
+#: C/messagedialog.py.page:30(section/code)
+#, no-wrap
 msgid ""
-"The last argument must always be <code>NULL</code> to indicate that there "
-"are no more properties to be set."
+"from gi.repository import Gtk\n"
+"from gi.repository import Gio\n"
+"import sys\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"\n"
+"     # constructor for a window (the parent window) with a label\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"GMenu Example\", application=app)\n"
+"        self.set_default_size(400, 200)\n"
+"        label = Gtk.Label()\n"
+"        label.set_text(\"This application goes boom!\")\n"
+"        self.add(label)\n"
+"\n"
+"        # create the message_action (a Gio.SimpleAction) - for the window\n"
+"        message_action = Gio.SimpleAction.new(\"message\", None)\n"
+"        # connect the signal from the action to the function message_cb()\n"
+"        message_action.connect(\"activate\", self.message_cb)\n"
+"        # add the action to the application\n"
+"        app.add_action(message_action)\n"
+"\n"
+"    # callback function for the signal \"activate\" from the message_action\n"
+"    # in the menu of the parent window\n"
+"    def message_cb(self, action, parameter):\n"
+"        # a Gtk.MessageDialog\n"
+"        messagedialog = Gtk.MessageDialog(parent=self,\n"
+"                                          flags=Gtk.DialogFlags.MODAL,\n"
+"                                          type=Gtk.MessageType.WARNING,\n"
+"                                          buttons=Gtk.ButtonsType.OK_CANCEL,\n"
+"                                          message_format=\"This action will cause the universe to stop existing.\")\n"
+"        # connect the response (of the button clicked) to the function\n"
+"        # dialog_response()\n"
+"        messagedialog.connect(\"response\", self.dialog_response)\n"
+"        # show the messagedialog\n"
+"        messagedialog.show()\n"
+"\n"
+"    def dialog_response(self, widget, response_id):\n"
+"        # if the button clicked gives response OK (-5)\n"
+"        if response_id == Gtk.ResponseType.OK:\n"
+"\t\t    print \"*boom*\"\n"
+"\t\t# if the button clicked gives response CANCEL (-6)\n"
+"        elif response_id == Gtk.ResponseType.CANCEL:\n"
+"            print \"good choice\"\n"
+"        # if the messagedialog is destroyed (by pressing ESC)\n"
+"        elif response_id == Gtk.ResponseType.DELETE_EVENT:\n"
+"            print \"dialog closed or cancelled\"\n"
+"        # finally, destroy the messagedialog\n"
+"        widget.destroy()\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def quit_cb(self, action, parameter):\n"
+"        self.quit()\n"
+"\n"
+"    def do_startup (self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"        # create a menu (a Gio.Menu)\n"
+"        menu = Gio.Menu()\n"
+"        # append a menu item with label \"Message\" and action \"app.message\"\n"
+"        menu.append(\"Message\", \"app.message\")\n"
+"        # append a menu item with label \"Quit\" and action \"app.quit\"\n"
+"        menu.append(\"Quit\", \"app.quit\")\n"
+"        # set menu as the menu for the application\n"
+"        self.set_app_menu(menu)\n"
+"\n"
+"        # a new simpleaction - for the application\n"
+"        quit_action = Gio.SimpleAction.new(\"quit\", None)\n"
+"        quit_action.connect(\"activate\", self.quit_cb)\n"
+"        self.add_action (quit_action)\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
 msgstr ""
-"ÎÎ ÏÎÎÎÏÏÎÎÎ ÏÏÎÏÎÎ ÏÏÎÏÎÎ ÏÎÎÏÎÏÎ ÎÎ ÎÎÎÎÎ <code>NULL</code> ÎÎÎ ÎÎ ÎÎÎÎÎÎ "
-"ÏÏÎ ÎÎÎ ÏÏÎÏÏÎÏÎ ÏÎÏÎÏÏÏÏÎÏÎÏ ÎÎÎÏÏÎÏÎÏ ÎÎ ÎÏÎÏÏÎÏÎ."
+"from gi.repository import Gtk\n"
+"from gi.repository import Gio\n"
+"import sys\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"\n"
+"     # constructor for a window (the parent window) with a label\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"GMenu Example\", application=app)\n"
+"        self.set_default_size(400, 200)\n"
+"        label = Gtk.Label()\n"
+"        label.set_text(\"This application goes boom!\")\n"
+"        self.add(label)\n"
+"\n"
+"        # create the message_action (a Gio.SimpleAction) - for the window\n"
+"        message_action = Gio.SimpleAction.new(\"message\", None)\n"
+"        # connect the signal from the action to the function message_cb()\n"
+"        message_action.connect(\"activate\", self.message_cb)\n"
+"        # add the action to the application\n"
+"        app.add_action(message_action)\n"
+"\n"
+"    # callback function for the signal \"activate\" from the message_action\n"
+"    # in the menu of the parent window\n"
+"    def message_cb(self, action, parameter):\n"
+"        # a Gtk.MessageDialog\n"
+"        messagedialog = Gtk.MessageDialog(parent=self,\n"
+"                                          flags=Gtk.DialogFlags.MODAL,\n"
+"                                          type=Gtk.MessageType.WARNING,\n"
+"                                          buttons=Gtk.ButtonsType.OK_CANCEL,\n"
+"                                          message_format=\"This action will cause the universe to stop existing.\")\n"
+"        # connect the response (of the button clicked) to the function\n"
+"        # dialog_response()\n"
+"        messagedialog.connect(\"response\", self.dialog_response)\n"
+"        # show the messagedialog\n"
+"        messagedialog.show()\n"
+"\n"
+"    def dialog_response(self, widget, response_id):\n"
+"        # if the button clicked gives response OK (-5)\n"
+"        if response_id == Gtk.ResponseType.OK:\n"
+"\t\t    print \"*boom*\"\n"
+"\t\t# if the button clicked gives response CANCEL (-6)\n"
+"        elif response_id == Gtk.ResponseType.CANCEL:\n"
+"            print \"good choice\"\n"
+"        # if the messagedialog is destroyed (by pressing ESC)\n"
+"        elif response_id == Gtk.ResponseType.DELETE_EVENT:\n"
+"            print \"dialog closed or cancelled\"\n"
+"        # finally, destroy the messagedialog\n"
+"        widget.destroy()\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def quit_cb(self, action, parameter):\n"
+"        self.quit()\n"
+"\n"
+"    def do_startup (self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"        # create a menu (a Gio.Menu)\n"
+"        menu = Gio.Menu()\n"
+"        # append a menu item with label \"Message\" and action \"app.message\"\n"
+"        menu.append(\"Message\", \"app.message\")\n"
+"        # append a menu item with label \"Quit\" and action \"app.quit\"\n"
+"        menu.append(\"Quit\", \"app.quit\")\n"
+"        # set menu as the menu for the application\n"
+"        self.set_app_menu(menu)\n"
+"\n"
+"        # a new simpleaction - for the application\n"
+"        quit_action = Gio.SimpleAction.new(\"quit\", None)\n"
+"        quit_action.connect(\"activate\", self.quit_cb)\n"
+"        self.add_action (quit_action)\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
 
-#: C/photo-wall.c.page:339(p)
-msgid ""
-"The <code>depth</code> property needs a little more explaining. We need to "
-"raise the focused image so that it doesn't slide behind other "
-"<code>ClutterActor</code>s. In this section we are returning it to the same "
-"depth as the others on the wall."
-msgstr ""
-"Î ÎÎÎÏÏÎÏÎ <code>depth</code> ÏÏÎÎÎÎÎÏÎÎ ÏÎÏÎÏÏÏÏÎÏÎ ÎÎÎÎÎÏÎ. ÎÏÎÎÎÎÏÎÎÏÏÎ "
-"ÎÎ ÎÎÏÏÏÏÎÏÎÎ ÏÎÎ ÎÏÏÎÎÏÎÎÎÎ ÎÎÎÏÎÎ, ÎÏÏÎ ÏÏÏÎ ÎÎ ÎÎÎ ÎÎÎÏÎÎÏÎÎ ÏÎÏÏ ÎÏÏ "
-"ÎÎÎÎ <code>ClutterActor</code>. ÎÎ ÎÏÏÎ ÏÎÎ ÎÎÏÏÎÏÎ ÎÏÎÏÏÏÎÏÎÏÎÎ ÏÏÎ ÎÎÎÎ "
-"ÎÎÎÎÏ ÏÏÏÏ ÎÎ ÎÎÎÎÏ ÏÏÎÎ ÏÎÎÏÎ."
+#: C/messagedialog.py.page:35(section/title)
+msgid "Useful methods for a MessageDialog widget"
+msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ MessageDialog"
 
-#: C/photo-wall.c.page:340(p)
+#: C/messagedialog.py.page:38(item/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."
+"In the constructor of MessageDialog we could set flags as <code>Gtk."
+"DialogFlags.DESTROY_WITH_PARENT</code> (to destroy the messagedialog window "
+"when its parent window is destroyed) or as <code>Gtk.DialogFlags.MODAL</"
+"code> (no interaction with other windows of the application)."
 msgstr ""
-"ÎÎ ÎÎÎÎÏ ÎÏÎÏÎÏ ÎÎÎÎÏÎÎÎÎ ÏÎÎÎÏ <code>ClutterActor</code> ÎÎÏÎÏÎÎ ÏÏÎÎÎÎÏÎ. "
-"ÎÎÎÏ <code>ClutterActor</code> ÎÎ ÏÏÎÎÏÏÎÏÎ ÏÎÎÎ ÎÎÎÎÏÏ ÎÎÏÎÏÎÎ ÏÎ ÏÏÎÎÎÎÏÎ "
-"ÎÎÎÎ ÎÎÎ ÎÏÎÏÎÎ ÎÎ ÎÏÎÎÎÎÎÎ ÎÎÎ ÏÎ ÏÏÎÎÎÎ ÏÏÎÎÎÎÏÎÎ ÏÏÎ <code>ClutterActor</"
-"code> ÎÎÏÏ ÎÏÏ ÎÏÏÏ. ÎÎ ÎÎÏÎÎ ÏÏÏ ÎÎÏÎÎÏÎÎ ÎÏÏÏ ÏÎ ÎÎÎÎ ÎÎÎÎÏÎ."
+"ÎÏÎÎ ÎÎÏÎÏÎÎÏÎÏÏÎ ÏÎÏ MessageDialog ÎÏÎÏÎÏÎÎ ÎÎ ÎÏÎÏÎÏÎÎ ÏÎÎÎÎÎÏ ÏÏ "
+"<code>Gtk.DialogFlags.DESTROY_WITH_PARENT</code> (ÎÎÎ ÎÎÏÎÏÏÏÎÏÎ ÏÎÏ "
+"ÏÎÏÎÎÏÏÎÏ ÎÎÎÎÏÎÎÏ ÎÎÎÏÎÎÏÎÏ ÏÏÎÎ ÏÎ ÎÎÎÏÎ ÏÎÏÎÎÏÏÎ ÎÎÏÎÏÏÏÎÏÎÎÎ) Î ÏÏ "
+"<code>Gtk.DialogFlags.MODAL</code> (ÏÏÏÎÏ ÎÎÎÎÎÎÏÎÎÏÎÏÎ ÎÎ ÎÎÎÎ ÏÎÏÎÎÏÏÎ ÏÎÏ "
+"ÎÏÎÏÎÎÎÎÏ)."
 
-#: C/photo-wall.c.page:342(p)
+#: C/messagedialog.py.page:39(item/p)
 msgid ""
-"Line 24: Reaching this line of code means we are currently in the wall state "
-"and are about to give a <code>ClutterActor</code> focus. Here we save the "
-"starting position so that we can return to it later."
+"In the constructor of MessageDialog we could set type as any of <code>Gtk."
+"MessageType.INFO, Gtk.MessageType.WARNING, Gtk.MessageType.QUESTION, Gtk."
+"MessageType.ERROR, Gtk.MessageType.OTHER</code> depending on what type of "
+"message we want."
 msgstr ""
-"ÎÏÎÎÎÎ 24: ÏÏÎÎÎÎÏÎÏ ÎÏÏÎ ÏÎ ÎÏÎÎÎÎ ÏÎÏ ÎÏÎÎÎÎ ÏÎÎÎÎÎÎÎ ÏÏÎ ÎÎÎÎÏÏÎ ÏÏÎÏ ÏÎ "
-"ÏÎÏÏÎ ÏÏÎÎ ÎÎÏÎÏÏÎÏÎ ÏÎÎÏÎÏ ÎÎÎ ÏÏÏÎÎÎÏÎÎ ÎÎ ÎÏÏÎÏÎÎ ÎÎÎ <code>ClutterActor</"
-"code> ÎÏÏÎÎÏÎ. ÎÎÏ ÎÏÎÎÎÎÎÏÎÏÎÎ ÏÎÎ ÎÏÏÎÎÎ ÎÎÏÎ, ÎÏÏÎ ÏÏÏÎ ÎÎ ÎÏÎÏÎÏÎÎ ÎÎ "
-"ÎÏÎÏÏÏÎÏÎÏÎÎ ÎÏÎÏÏÎÏÎ."
+"ÎÏÎÎ ÎÎÏÎÏÎÎÏÎÏÏÎ ÏÎÏ MessageDialog ÎÏÎÏÎÏÎÎ ÎÎ ÎÏÎÏÎÏÎÎ ÏÏ ÏÏÏÎ ÎÏÎÎÎÎÎÏÎÏÎ "
+"ÎÏÏ ÏÎ <code>Gtk.MessageType.INFO, Gtk.MessageType.WARNING, Gtk.MessageType."
+"QUESTION, Gtk.MessageType.ERROR, Gtk.MessageType.OTHER</code> ÎÎÎÎÎÎÎ ÎÎ ÏÎ "
+"ÏÏÏÎ ÎÎÎÏÎÎÏÎÏ ÎÎÎÎÏÎÎ."
 
-#: C/photo-wall.c.page:343(p)
+#: C/messagedialog.py.page:40(item/p)
 msgid ""
-"Line 25: Setting the <code>ClutterActor</code>'s <code>reactive</code> "
-"property to <code>TRUE</code> makes this <code>ClutterActor</code> react to "
-"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."
+"In the constructor of MessageDialog we could set buttons as any of <code>Gtk."
+"ButtonsType.NONE, Gtk.ButtonsType.OK, Gtk.ButtonsType.CLOSE, Gtk.ButtonsType."
+"CANCEL, Gtk.ButtonsType.YES_NO, Gtk.ButtonsType.OK_CANCEL</code>, or any "
+"button using <code>add_button()</code> as in Gtk.Dialog."
 msgstr ""
-"ÎÏÎÎÎÎ 25: ÎÏÎÎÎÎÏÎÏ ÏÎÎ ÎÎÎÏÏÎÏÎ <code>reactive</code> ÏÎÏ "
-"<code>ClutterActor</code> ÏÎ <code>TRUE</code> ÎÎÎÎÎ ÏÎ <code>ClutterActor</"
-"code> ÎÎ ÎÎÏÎÎÏÎÏÎÎ ÏÎ ÏÏÎÎÎÎÏÎ. ÎÎ ÎÏÏÎ ÏÎÎ ÎÏÏÎÎÏÎÎÎÎ ÎÎÏÎÏÏÎÏÎ Î ÎÏÎÎÏ "
-"<code>ClutterActor</code> ÏÎÏ ÎÎÎÎÏÎÎ ÎÎ ÎÎÏÎÎÎ ÏÏÎÎÎÎÏÎ ÎÎ ÎÎÎÎÎ Î "
-"ÏÏÎÎÎÎÎÏÎÎÎÎÏ <code>ClutterActor</code>. ÎÎÎÎ ÏÏÎ <code>ClutterActor</code> "
-"ÎÎ ÎÏÎÏÏÏÎÏÎÎ ÏÏÎÎ ÎÏÏÎÎÎ ÏÎÏ ÎÎÏÎ."
+"ÎÏÎÎ ÎÎÏÎÏÎÎÏÎÏÏÎ ÏÎÏ MessageDialog ÎÏÎÏÎÏÎÎ ÎÎ ÎÏÎÏÎÏÎÎ ÎÎÏÎÏÎÎ ÎÏÎÎÎÎÎÏÎÏÎ "
+"ÎÏÏ ÏÎ <code>Gtk.ButtonsType.NONE, Gtk.ButtonsType.OK, Gtk.ButtonsType."
+"CLOSE, Gtk.ButtonsType.CANCEL, Gtk.ButtonsType.YES_NO, Gtk.ButtonsType."
+"OK_CANCEL</code>, Î ÎÏÎÎÎÎÎÏÎÏÎ ÎÎÏÎÏÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ <code>add_button()"
+"</code> ÏÏÏÏ ÏÏÎÎ Gtk.Dialog."
 
-#: C/photo-wall.c.page:344(p)
+#: C/messagedialog.py.page:41(item/p)
 msgid ""
-"Lines 27â33: This is similar to the above block of code. Notice that we are "
-"setting the the depth to raise it above the other images."
+"We could substitute the default image of the MessageDialog with another "
+"image using"
 msgstr ""
-"ÎÏÎÎÎÎÏ 27-33: ÎÏÏÏ ÎÎÎÎÎ ÏÎÎÎÎ ÎÎ ÏÎÎ ÏÎÏÎÏÎÎÏ ÎÎÎÎÎ ÎÏÎÎÎÎ. ÎÎÎÎÎÏÏÏÎ ÏÏÎ "
-"ÎÏÎÎÎÏÎÎ ÏÎ ÎÎÎÎÏ ÎÎÏÏÏÏÎÏ ÏÎÏ ÏÎÎÏ ÎÏÏ ÏÎÏ ÎÎÎÎÏ ÎÎÎÏÎÎÏ."
+"ÎÏÎÏÎÏÎÎ ÎÎ ÎÎÏÎÎÎÏÎÏÏÎÏÎÏÎÎ ÏÎÎ ÏÏÎÎÏÎÎÎÎÎÎÎÎ ÎÎÎÏÎÎ ÏÎÏ MessageDialog ÎÎ "
+"ÎÎÎÎ ÎÎÎÏÎÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ"
 
-#: C/photo-wall.c.page:345(p)
+#: C/messagedialog.py.page:42(item/code)
+#, no-wrap
 msgid ""
-"Line 37: Here we toggle the <code>is_focused</code> flag to the current "
-"state."
+"\n"
+"image = Gtk.Image()\n"
+"image.set_from_stock(Gtk.STOCK_CAPS_LOCK_WARNING, Gtk.IconSize.DIALOG)\n"
+"image.show()\n"
+"messagedialog.set_image(image)"
 msgstr ""
-"ÎÏÎÎÎÎ 37: ÎÎÏ ÎÎÎÎÎÎÏÏÎÏÎÎ ÏÎ ÏÎÎÎÎÎ <code>is_focused</code> ÏÏÎÎ ÏÏÎÏÎÏÏÎ "
-"ÎÎÏÎÏÏÎÏÎ."
+"\n"
+"image = Gtk.Image()\n"
+"image.set_from_stock(Gtk.STOCK_CAPS_LOCK_WARNING, Gtk.IconSize.DIALOG)\n"
+"image.show()\n"
+"messagedialog.set_image(image)"
 
-#: C/photo-wall.c.page:346(p)
+#: C/messagedialog.py.page:47(item/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."
+"where <code>Gtk.STOCK_CAPS_LOCK_WARNING</code> is any image from <link href="
+"\"http://developer.gnome.org/gtk3/unstable/gtk3-Stock-Items.html\";>Stock "
+"Items</link>. We could also set any image as in the Image widget, as "
+"<code>image.set_from_file(\"filename.png\")</code>."
 msgstr ""
-"ÎÏÏÏ ÎÎÎÏÎÏÎÎÎÎ ÏÏÎÎÎÎÏÎÎÎÏÏ, Î <code>ClutterActor</code> ÎÎ ÏÏÎÎÏÏÎÏÎÏ "
-"ÏÎÎÎÏ <code>depth</code> ÎÎÏÎÏÎÎ ÏÏÎÎÎÎÏÎ ÎÎÎÎ ÎÏÎÏÎÏÎ ÎÎ ÎÏÎÏÏÎÏÎÏÎ "
-"<code>ClutterActor</code> ÎÏÏ ÎÎÏÏ ÏÎÏÏ ÎÎ ÎÎÏÎÎÏÎ ÎÏÎÏÎÏ ÏÏÎÎÎÎÏÎ. "
-"ÎÏÎÏÏÏÎÏÎ ÏÎ <code>TRUE</code> ÎÎ ÏÏÎÎÎÏÎÏÎÎ ÏÎ ÏÏÎÎÎÎÏÎ ÎÏÏ ÏÎ ÎÎ "
-"ÏÏÎÎÏÎÏÎÏÎ, ÎÎÏ <code>FALSE</code> ÎÎ ÏÏÎÎÏÎÏÎÎ ÏÎ ÏÏÎÎÎÎÏÎ."
+"ÏÏÎÏ <code>Gtk.STOCK_CAPS_LOCK_WARNING</code> ÎÎÎÎÎ ÎÏÎÎÎÎÎÏÎÏÎ ÎÎÎÏÎÎ ÎÏÏ "
+"<link href=\"http://developer.gnome.org/gtk3/unstable/gtk3-Stock-Items.html";
+"\">ÏÏÎÎÏÎÎÎ ÎÏÎÎÎÎÎÏÎÏ</link>. ÎÏÎÏÎÏÎÎ ÎÏÎÏÎÏ ÎÎ ÎÏÎÏÎÏÎÎ ÎÏÎÎÎÎÎÏÎÏÎ "
+"ÎÎÎÏÎÎ ÏÏÏÏ ÏÏÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÏÎÏ ÎÎÎÏÎÎÏ, ÏÏ <code>image.set_from_file"
+"(\"filename.png\")</code>."
 
-#: C/photo-wall.c.page:348(p)
+#: C/messagedialog.py.page:48(item/p)
 msgid ""
-"Remember, however, that to receive events the <code>ClutterActor</code>s "
-"must be set <code>reactive</code>."
+"<code>format_secondary_text(\"some secondary message\")</code> sets a "
+"secondary message. The primary text becomes bold."
 msgstr ""
-"ÎÎ ÎÏÎÏÏÎÏÏÎ, ÏÎÏÏ, ÏÏÎ ÎÎÎ ÎÏÎÎÎÏÎ ÏÏÎÎÎÎÏÏÎ ÏÎ <code>ClutterActor</code> "
-"ÏÏÎÏÎÎ ÎÎ ÎÏÎÏÏÎÎ ÏÎ <code>reactive</code>."
+"ÎÎ <code>format_secondary_text(\"some secondary message\")</code> ÎÏÎÎÎÎ ÎÎÎ "
+"ÎÎÏÏÎÏÎÏÎÎ ÎÎÎÏÎÎ. ÎÎ ÏÏÏÏÎÏÎÎ ÎÎÎÎÎÎÎ ÎÎÎÎÏÎÎ ÎÎÏÎÎÎ."
 
-#: C/photo-wall.c.page:352(p)
+#: C/messagedialog.py.page:58(item/p)
 msgid ""
-"The following is the convenience function passed to <code>g_slist_foreach</"
-"code>."
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkMessageDialog.html";
+"\">GtkMessageDialog</link>"
 msgstr ""
-"ÎÎ ÏÎÏÎÎÎÏÏ ÎÎÎÎÎ ÎÎÎ ÏÏÎÎÏÏÎÏÎ ÎÎÎÏÎÏÎÏÎÏÎÏ ÏÎÏ ÏÎÏÎÏÎ ÏÎ "
-"<code>g_slist_foreach</code>."
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkMessageDialog.html";
+"\">GtkMessageDialog</link>"
 
-#: C/photo-wall.c.page:365(p)
+#: C/messagedialog.py.page:62(item/p)
 msgid ""
-"Lines 2â5: The signature of this function requires two <code>gpointer</"
-"code>s. The first is a pointer to the <code>ClutterActor</code> that our "
-"<code>GSList</code> holds and the other is the <code>is_focused</code> flag "
-"that we've passed in the previous section. We want to cast these and store "
-"them for easy use."
+"<link href=\"http://developer.gnome.org/gio/unstable/GActionMap.html";
+"\">GActionMap</link>"
 msgstr ""
-"ÎÏÎÎÎÎÏ 2-5: Î ÏÏÎÎÏÎÏÎ ÎÏÏÎÏ ÏÎÏ ÏÏÎÎÏÏÎÏÎÏ ÎÏÎÎÏÎÎ ÎÏÎ <code>gpointer</"
-"code>. ÎÎ ÏÏÏÏÎ ÎÎÎÎÎ ÎÎÎÏ ÎÎÎÎÏÎÏ ÏÏÎ <code>ClutterActor</code> ÏÎÏ Î "
-"<code>GSList</code> ÎÎÏ ÎÏÎÏÎ ÎÎÎ Î ÎÎÎÎÏ ÎÎÎÎÎ Î ÏÎÎÎÎÎ <code>is_focused</"
-"code> ÏÎÏ ÏÎÏÎÏÎÎÎ ÏÏÎÎ ÏÏÎÎÎÎÏÎÎÎÎ ÎÎÏÏÎÏÎ. ÎÎÎÎÏÎÎ ÎÎ ÏÎ ÎÎÎÎÎÎÏÎÎ ÎÎÎ ÎÎ "
-"ÏÎ ÎÏÎÎÎÎÎÏÏÎÏÎÎ ÎÎÎ ÎÏÎÎÎÎ ÏÏÎÏÎ."
+"<link href=\"http://developer.gnome.org/gio/unstable/GActionMap.html";
+"\">GActionMap</link>"
 
-#: C/photo-wall.c.page:366(p)
+#: C/messagedialog.vala.page:7(info/title)
+msgctxt "text"
+msgid "MessageDialog (Vala)"
+msgstr "MessageDialog (Vala)"
+
+#: C/messagedialog.vala.page:24(page/code)
+#, no-wrap
 msgid ""
-"Line 7: Depending on which boolean value is passed in, the "
-"<code>ClutterActor</code> will be set to respond to events or not."
+"\n"
+"//A window in the application\n"
+"public class Window : Gtk.ApplicationWindow {\n"
+"\tpublic Window (Application app) {\n"
+"\t\tObject (application: app, title: \"Gtk.MessageDialog Example\");\n"
+"\n"
+"\t\tvar label = new Gtk.Label (\"This application goes boom!\");\n"
+"\t\tthis.add (label);\n"
+"\n"
+"\t\tvar message_action = new SimpleAction (\"message\", null);\n"
+"\t\tmessage_action.activate.connect (message);\n"
+"\t\tthis.add_action (message_action);\n"
+"\n"
+"\t\tthis.set_default_size (400, 200);\n"
+"\t\tthis.show_all ();\n"
+"\t}\n"
+"\n"
+"\tvoid dialog_response (Gtk.Dialog dialog, int response_id) {\n"
+"\t\tswitch (response_id) {\n"
+"\t\t\tcase Gtk.ResponseType.OK:\n"
+"\t\t\t\tprint (\"*boom*\\n\");\n"
+"\t\t\t\tbreak;\n"
+"\t\t\tcase Gtk.ResponseType.CANCEL:\n"
+"\t\t\t\tprint (\"good choice\\n\");\n"
+"\t\t\t\tbreak;\n"
+"\t\t\tcase Gtk.ResponseType.DELETE_EVENT:\n"
+"\t\t\t\tprint (\"dialog closed or cancelled\\n\");\n"
+"\t\t\t\tbreak;\n"
+"\t\t}\n"
+"\t\t\tdialog.destroy();\n"
+"\t}\n"
+"\n"
+"\tvoid message (SimpleAction simple, Variant? parameter) {\n"
+"\t\tvar messagedialog = new Gtk.MessageDialog (this,\n"
+"                            Gtk.DialogFlags.MODAL,\n"
+"                            Gtk.MessageType.WARNING,\n"
+"                            Gtk.ButtonsType.OK_CANCEL,\n"
+"                            \"This action will cause the universe to stop existing.\");\n"
+"\n"
+"\t\tmessagedialog.response.connect (dialog_response);\n"
+"\t\tmessagedialog.show ();\n"
+"\t}\n"
+"}\n"
+"\n"
+"//This is the Application\n"
+"public class Application : Gtk.Application {\n"
+"\tprotected override void activate () {\n"
+"\t\tnew Window (this);\n"
+"\t}\n"
+"\n"
+"\tprotected override void startup () {\n"
+"\t\tbase.startup ();\n"
+"\n"
+"\t\tvar menu = new Menu ();\n"
+"\t\tmenu.append (\"Message\", \"win.message\");\n"
+"\t\tmenu.append (\"Quit\", \"app.quit\");\n"
+"\t\tthis.app_menu = menu;\n"
+"\n"
+"\t\tvar quit_action = new SimpleAction (\"quit\", null);\n"
+"\t\t//quit_action.activate.connect (this.quit);\n"
+"\t\tthis.add_action (quit_action);\n"
+"\t}\n"
+"\n"
+"\tpublic Application () {\n"
+"\t\tObject (application_id: \"org.example.application\");\n"
+"\t}\n"
+"}\n"
+"\n"
+"//main function creates Application and runs it\n"
+"int main (string[] args) {\n"
+"\treturn new Application ().run (args);\n"
+"}\n"
 msgstr ""
-"ÎÏÎÎÎÎ 7: ÎÎÎÎÎÎÎ ÎÎ ÏÎÎÎ ÏÎÎÎ ÎÏÎÏÎ ÏÎÏÎÏÎ, Î <code>ClutterActor</code> ÎÎ "
-"ÎÏÎÏÏÎÎ ÎÎ ÎÏÎÎÏÎÏÎÎ Î ÏÏÎ ÏÏÎ ÏÏÎÎÎÎÏÎ."
-
-#: C/photo-wall.c.page:371(title) C/image-viewer.vala.page:274(title)
-#: C/image-viewer.cpp.page:204(title) C/image-viewer.c.page:216(title)
-#: C/guitar-tuner.vala.page:247(title) C/guitar-tuner.cpp.page:249(title)
-#: C/guitar-tuner.c.page:251(title)
-msgid "Build and run the application"
-msgstr "ÎÎÏÎÏÎÎÏÎ ÎÎÎ ÎÎÏÎÎÎÏÎ ÏÎÏ ÎÏÎÏÎÎÎÎÏ"
+"\n"
+"//A window in the application\n"
+"public class Window : Gtk.ApplicationWindow {\n"
+"\tpublic Window (Application app) {\n"
+"\t\tObject (application: app, title: \"Gtk.MessageDialog Example\");\n"
+"\n"
+"\t\tvar label = new Gtk.Label (\"This application goes boom!\");\n"
+"\t\tthis.add (label);\n"
+"\n"
+"\t\tvar message_action = new SimpleAction (\"message\", null);\n"
+"\t\tmessage_action.activate.connect (message);\n"
+"\t\tthis.add_action (message_action);\n"
+"\n"
+"\t\tthis.set_default_size (400, 200);\n"
+"\t\tthis.show_all ();\n"
+"\t}\n"
+"\n"
+"\tvoid dialog_response (Gtk.Dialog dialog, int response_id) {\n"
+"\t\tswitch (response_id) {\n"
+"\t\t\tcase Gtk.ResponseType.OK:\n"
+"\t\t\t\tprint (\"*boom*\\n\");\n"
+"\t\t\t\tbreak;\n"
+"\t\t\tcase Gtk.ResponseType.CANCEL:\n"
+"\t\t\t\tprint (\"good choice\\n\");\n"
+"\t\t\t\tbreak;\n"
+"\t\t\tcase Gtk.ResponseType.DELETE_EVENT:\n"
+"\t\t\t\tprint (\"dialog closed or cancelled\\n\");\n"
+"\t\t\t\tbreak;\n"
+"\t\t}\n"
+"\t\t\tdialog.destroy();\n"
+"\t}\n"
+"\n"
+"\tvoid message (SimpleAction simple, Variant? parameter) {\n"
+"\t\tvar messagedialog = new Gtk.MessageDialog (this,\n"
+"                            Gtk.DialogFlags.MODAL,\n"
+"                            Gtk.MessageType.WARNING,\n"
+"                            Gtk.ButtonsType.OK_CANCEL,\n"
+"                            \"This action will cause the universe to stop existing.\");\n"
+"\n"
+"\t\tmessagedialog.response.connect (dialog_response);\n"
+"\t\tmessagedialog.show ();\n"
+"\t}\n"
+"}\n"
+"\n"
+"//This is the Application\n"
+"public class Application : Gtk.Application {\n"
+"\tprotected override void activate () {\n"
+"\t\tnew Window (this);\n"
+"\t}\n"
+"\n"
+"\tprotected override void startup () {\n"
+"\t\tbase.startup ();\n"
+"\n"
+"\t\tvar menu = new Menu ();\n"
+"\t\tmenu.append (\"Message\", \"win.message\");\n"
+"\t\tmenu.append (\"Quit\", \"app.quit\");\n"
+"\t\tthis.app_menu = menu;\n"
+"\n"
+"\t\tvar quit_action = new SimpleAction (\"quit\", null);\n"
+"\t\t//quit_action.activate.connect (this.quit);\n"
+"\t\tthis.add_action (quit_action);\n"
+"\t}\n"
+"\n"
+"\tpublic Application () {\n"
+"\t\tObject (application_id: \"org.example.application\");\n"
+"\t}\n"
+"}\n"
+"\n"
+"//main function creates Application and runs it\n"
+"int main (string[] args) {\n"
+"\treturn new Application ().run (args);\n"
+"}\n"
 
-#: C/photo-wall.c.page:372(p)
+#: C/messagedialog.vala.page:30(item/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!"
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.ResponseType.html\";>Gtk."
+"ResponseType</link>"
 msgstr ""
-"ÎÎÎÏ Î ÎÏÎÎÎÎÏ ÏÏÎÏÎÎ ÏÏÏÎ ÎÎ ÎÎÎÎÎ ÎÏÎÎÎÎÏ. ÎÏÏÎ ÏÏÎÎÎÎÏÏÎÏÏÎ ÎÎÏÎÎÎÏ "
-"ÎÎÎÏÎÎÏ ÎÎÎ ÏÏÏÏÏÏÎ. ÎÏÏ ÏÏÎÎÏÎÎÎÎÎ, ÎÎ ÎÎÎÏÎÎÏ ÏÎÏÏÏÎÎÎÏÎÎ ÎÏÏ ÎÎÎÎ "
-"ÎÎÏÎÎÎÎÎ <file>berlin_images</file>. ÎÎÎ ÎÎÎÎÏÎ, ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÎÎÎÏÎ ÏÎ "
-"ÎÏÎÎÎÎ <code>#define IMAGE_DIR_PATH</code> ÎÎÎÏÎ ÏÏÎÎ ÎÎÏÏÏÎ ÎÎÎ ÎÎ "
-"ÎÎÎÏÎÏÎÎÎÏÎ ÏÏÎÎ ÎÎÏÎÎÎÎÎ ÏÏÏÎÎÏÎÏÎÏÎ, Î ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎ ÎÎÎ ÎÎÏÎÎÎÎÎ "
-"<file>berlin_images</file> ÎÎ ÎÎÎÎ ÏÏÎ <guiseq><gui>ÎÏÎÎ</gui><gui>ÎÎÎÏ "
-"ÎÎÏÎÎÎÎÎÏ...</gui></guiseq> ÎÎÎ ÎÎÎÎÎÏÏÎÎÎ ÎÎÏÏ ÎÎÏÎÎÏÎÎÏ "
-"<file>berlin_images</file> ÏÏ ÏÏÎÎÎÏÎÎÏÎÎÏ ÏÎÏ ÎÎÏÎÎÏÎÎÏ <file>photo-wall</"
-"file>. ÎÎÎÎÎÏÎÎÎÏÎ ÏÏÎ ÎÎÎÎÏÎ ÏÎÏÎÎÏÎÏÏÎÎ ÎÏÎÎÎÎ ÎÎÎÏÎÎÏ ÏÏÎÎ ÎÎÏÎÎÎÎÎ!"
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.ResponseType.html\";>Gtk."
+"ResponseType</link>"
 
-#: C/photo-wall.c.page:374(p)
+#: C/messagedialog.vala.page:31(item/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."
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.MessageDialog.html\";>Gtk."
+"MessageDialog</link>"
 msgstr ""
-"ÎÏÎÎ ÏÎÎÎÎÏÏÎÏÎ, ÎÎÎÎ <guiseq><gui>ÎÎÏÎÏÎÎÏÎ</gui><gui>ÎÎÏÎÏÎÎÏÎ ÎÏÎÎÏ</"
-"gui></guiseq> ÎÎÎ ÎÎ ÎÎÏÎÏÎÎÏÎÏÎÏÎ ÎÏÎÎÎÏÎÏÎ ÎÎÎÎ, ÎÏÎÎÏÎ "
-"<guiseq><gui>ÏÏÎÎÎÎÎ</gui><gui>ÎÎÏÎÎÎÏÎ</gui></guiseq> ÎÎÎ ÎÎÎÏÎÎ ÏÎÏ "
-"ÎÏÎÏÎÎÎÎÏ."
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.MessageDialog.html\";>Gtk."
+"MessageDialog</link>"
 
-#: C/photo-wall.c.page:375(p)
+#: C/messagedialog.vala.page:32(item/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!"
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.DialogFlags.html\";>Gtk."
+"DialogFlags</link>"
 msgstr ""
-"ÎÎÎ ÎÎÎ ÏÎ ÎÏÎÏÎ ÎÎÎ ÎÎÎÎÎ, ÎÏÎÎÎÎÏÎ ÏÎÎ ÎÏÎÏÎÎÎÎ <file>Debug/src/photo-"
-"wall</file> ÏÏÎÎ ÎÎÎÎÎÎÎ ÏÎÏ ÎÎÏÎÎÎÎÎÏÎÎ. ÎÎÎÎÎÎ ÏÎÏÎÏÏÎ <gui>ÎÎÏÎÎÎÏÎ</gui> "
-"ÎÎÎ ÎÏÎÎÎÏÏÏÎ ÏÎ!"
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.DialogFlags.html\";>Gtk."
+"DialogFlags</link>"
 
-#: C/photo-wall.c.page:380(p)
+#: C/messagedialog.vala.page:33(item/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>."
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.MessageType.html\";>Gtk."
+"MessageType</link>"
 msgstr ""
-"ÎÎ ÎÎÏÎÎÎÏÏÏÎÏÎÏÎ ÏÏÏÎÎÎÎÎ ÎÎ ÏÎ ÎÎÎÎÎÎ, ÏÏÎÎÏÎÎÎÏÎ ÏÎÎ ÎÏÎÎÎÎ ÏÎÏ ÎÎ ÎÏÏÏÎ "
-"<link href=\"photo-wall/photo-wall.c\">ÎÏÎÎÎÎÏ ÎÎÎÏÎÏÎÏ</link>."
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/paned.py.page:21(None)
-msgid "@@image: 'media/paned.png'; md5=01e36d8a51ee18313616d63d2e15d993"
-msgstr "@@image: 'media/paned.png'Â md5=01e36d8a51ee18313616d63d2e15d993"
-
-#: C/paned.py.page:7(title)
-msgid "Paned (Python)"
-msgstr "ÎÎÎÎÏÎÎ (Python)"
-
-#: C/paned.py.page:17(desc)
-msgid "A widget with two adjustable panes"
-msgstr "ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÎ ÎÏÎ ÏÏÎÎÎÏÎÎÎ ÏÎÎÎÏÎÎ"
-
-#: C/paned.py.page:20(title)
-msgid "Paned"
-msgstr "ÎÎ ÏÎÎÎÏÎÎ"
-
-#: C/paned.py.page:22(p)
-msgid "Two images in two adjustable panes, horizontally aligned."
-msgstr "ÎÏÎ ÎÎÎÏÎÎÏ ÏÎ ÎÏÎ ÏÏÎÎÎÏÎÎÎ ÏÎÎÎÏÎÎ ÎÏÎÎÏÎÏÎÎ ÏÏÎÎÏÎÏÎÎÎÎÏ."
-
-#: C/paned.py.page:32(title)
-msgid "Useful methods for a Paned widget"
-msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÏÎ ÏÎÎÎÏÎÎ"
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.MessageType.html\";>Gtk."
+"MessageType</link>"
 
-#: C/paned.py.page:33(p)
+#: C/messagedialog.vala.page:34(item/p)
 msgid ""
-"To have two vertically aligned panes, use <code>Gtk.Orientation.VERTICAL</"
-"code> instead of <code>Gtk.Orientation.HORIZONTAL</code>. The method "
-"<code>add1(widget1)</code> will add the <code>widget1</code> to the top "
-"pane, and <code>add2(widget2)</code> will add the <code>widget2</code> to "
-"the bottom pane."
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.ButtonsType.html\";>Gtk."
+"ButtonsType</link>"
 msgstr ""
-"ÎÎÎ ÎÎ ÎÏÎÏÎ ÎÏÎ ÎÎÎÎÏÎ ÏÏÎÎÏÎÏÎÎÎÎ ÏÎÎÎÏÎÎ, ÏÏÎÏÎÎÎÏÎÎÎÏÏÎ <code>Gtk."
-"Orientation.VERTICAL</code> ÎÎÏÎ ÎÎÎ <code>Gtk.Orientation.HORIZONTAL</"
-"code>. Î ÎÎÎÎÎÎÏ <code>add1(widget1)</code> ÎÎ ÏÏÎÏÎÎÏÎÎ ÏÎ <code>widget1</"
-"code> ÏÏÎ ÎÎÏÏÏÎÎÎ ÏÎÎÎÏÎÎ ÎÎÎ <code>add2(widget2)</code> ÎÎ ÏÏÎÏÎÎÏÎÎ ÏÎ "
-"<code>widget2</code> ÏÏÎ ÎÎÏÏ ÏÎÎÎÏÎÎ."
-
-#: C/paned.py.page:40(link)
-msgid "GtkPaned"
-msgstr "GtkPaned"
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.ButtonsType.html\";>Gtk."
+"ButtonsType</link>"
 
-#: C/model-view-controller.py.page:8(title)
+#: C/model-view-controller.py.page:8(info/title)
+#, fuzzy
+msgctxt "text"
 msgid "The Model/View/Controller design (Python)"
 msgstr "Î ÏÏÎÎÎÎÏÎ ÏÏÎÏÏÏÎÏ/ÏÏÎÎÎÎÎÏ/ÎÎÎÎÎÏÎ (Python)"
 
-#: C/model-view-controller.py.page:12(desc)
-#: C/model-view-controller.py.page:25(title)
+#: C/model-view-controller.py.page:12(info/desc)
+#: C/model-view-controller.py.page:25(page/title)
 msgid "The Model/View/Controller design"
 msgstr "Î ÏÏÎÎÎÎÏÎ ÏÏÎÏÏÏÎÏ/ÏÏÎÎÎÎÎÏ/ÎÎÎÎÎÏÎ"
 
-#: C/model-view-controller.py.page:32(p)
+#: C/model-view-controller.py.page:30(section/title)
+#: C/properties.py.page:30(section/title)
+#: C/signals-callbacks.py.page:30(section/title)
+msgid "Overview"
+msgstr "ÎÏÎÏÎÏÏÎÏÎ"
+
+#: C/model-view-controller.py.page:32(section/p)
 msgid ""
 "Both the <link xref=\"treeview_simple_liststore.py\">TreeView</link> and the "
 "<link xref=\"combobox.py\">ComboBox</link> widgets are built on the "
@@ -7884,11 +29390,11 @@ msgstr ""
 "ÎÎÎ ÎÎÎÎÏÎÎÎÎ ÏÎÎ ÏÏÎÎÎÎÎ ÎÏÏÏÎ ÏÏÎ ÎÎÎÎÎÏÎ (ÎÎÏÎ ÎÏÏ ÏÎÎÎÏÎ ÏÏÏÏ <code>"
 "\"changed\"</code>)."
 
-#: C/model-view-controller.py.page:37(title)
+#: C/model-view-controller.py.page:37(section/title)
 msgid "The Model"
 msgstr "ÎÎ ÏÏÏÏÏÏÎ"
 
-#: C/model-view-controller.py.page:39(p)
+#: C/model-view-controller.py.page:39(section/p)
 msgid ""
 "The main difference between the two main implementations of <code>Gtk."
 "TreeModel</code> is that <code>Gtk.ListStore</code> contains simple rows of "
@@ -7902,7 +29408,7 @@ msgstr ""
 "ÎÏÎÎÎÎÏ ÎÎÎÎÎÎÎÏÎ, ÎÎÎÎ ÎÎÎÎ ÎÏÎÎÎÎ ÎÏÎÏÎÎ ÎÎ ÎÏÎÎ ÎÏÎÎÏÏÎÎÎÏ ÎÏÎÎÎÎÏ (ÏÎÏ "
 "ÎÎ ÏÎ ÏÎÎÏÎ ÏÎÏÏ ÎÏÎÏÎÏÎ ÎÎ ÎÏÎÏÎ ÎÏÎÎÏÏÎÎÎÏ ÎÏÎÎÎÎÏ Î.Î.Î)."
 
-#: C/model-view-controller.py.page:41(p)
+#: C/model-view-controller.py.page:41(section/p)
 msgid ""
 "The data in the Model can be retrieved or modified using the tree iter and "
 "column index, or <code>Gtk.TreeIter</code>, or <code>Gtk.TreePath</code>."
@@ -7911,7 +29417,7 @@ msgstr ""
 "ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎÎ ÎÏÎÎÎÎÎÏÎ ÎÎÎÎÏÎÏ ÎÎÎ ÎÎÎÎÏÎ ÏÏÎÎÎÏ, Î <code>Gtk."
 "TreeIter</code>, Î <code>Gtk.TreePath</code>."
 
-#: C/model-view-controller.py.page:43(p)
+#: C/model-view-controller.py.page:43(section/p)
 msgid ""
 "As with Python's built-in list object you can use <code>len()</code> to get "
 "the number of rows and use slices to retrieve or set values. Otherwise, the "
@@ -7926,7 +29432,7 @@ msgstr ""
 "ÏÎÏ ÎÎÎÏÎÎÎ ÏÏÎ ÎÎÏÎ ÏÎÏ ÎÎÎÎÎÏÎÎÎÎÎÎÏ ÎÏÎÎÎÎÏ. ÎÏÎÏÎÎÏÎ ÎÏÎÏÎÏ ÎÎ "
 "ÎÎÎÎÏÎÏÎÏÎ ÎÎÎ <code>Gtk.TreeIter</code> ÎÎÎÏÎÏÎÏ <code>get_iter()</code>."
 
-#: C/model-view-controller.py.page:45(p)
+#: C/model-view-controller.py.page:45(section/p)
 msgid ""
 "As <code>Gtk.ListStore</code> contains only one level, i.e. nodes do not "
 "have any child nodes, a path is essentially the index of the row you want to "
@@ -7946,11 +29452,11 @@ msgstr ""
 "ÎÎÎ Î ÎÎÎÎÏÎÎÎ <code>\"2:4\"</code> ÎÎÎÏÎÏÎÏÎÎ ÏÏÎÎ ÏÎÎÏÏÎ ÎÏÎÎÏÏÎÎÏ ÏÎÏ "
 "ÏÏÎÏÎÏ ÎÏÎÎÎÏ."
 
-#: C/model-view-controller.py.page:47(p)
+#: C/model-view-controller.py.page:47(section/p)
 msgid "Useful methods for a <code>Gtk.TreeModel</code>:"
 msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ <code>Gtk.TreeModel</code>:"
 
-#: C/model-view-controller.py.page:49(p)
+#: C/model-view-controller.py.page:49(item/p)
 msgid ""
 "<code>get_iter(path)</code> returns a <code>Gtk.TreeIter</code> instance "
 "pointing to <code>path</code>. This is expected to be a colon-separated list "
@@ -7967,7 +29473,7 @@ msgstr ""
 "ÎÎÎÎÏÏ 3 ÏÎÏ ÎÎ ÎÎÎÏÎÎÎ ÏÏÎÎ 11Î ÎÏÎÎÏÏÎÎÎ ÏÎÏ ÏÎÎÎÎÎÏ ÎÏÎÎÎÏ, ÏÎÎ 5Î "
 "ÎÏÎÎÏÏÎÎÎ ÏÎÏ 11ÎÏ ÎÏÎÎÏÏÎÎÎÏ ÎÎÎ 1Î ÎÏÎÎÏÏÎÎÎ ÏÎÏ 5ÎÏ ÎÏÎÎÏÏÎÎÎÏ."
 
-#: C/model-view-controller.py.page:50(p)
+#: C/model-view-controller.py.page:50(item/p)
 msgid ""
 "<code>iter_next(treeiter)</code> returns a <code>Gtk.TreeIter</code> "
 "instance pointing the node following treeiter at the current level or "
@@ -7977,7 +29483,7 @@ msgstr ""
 "TreeIter</code> ÏÎÏ ÎÎÎÏÎÎÎ ÏÎÎ ÎÏÎÎÎ ÏÎÏ ÎÎÎÎÎÏÎÎÎ ÏÎÎ treeiter ÏÏÎ ÏÏÎÏÎÎ "
 "ÎÏÎÏÎÎÎ Î <code>None</code> ÎÎÎ ÎÎÎ ÏÏÎÏÏÎÎ ÎÏÏÎÎÎÎ ÎÏÎÎÎÎÎÏÎ."
 
-#: C/model-view-controller.py.page:51(p)
+#: C/model-view-controller.py.page:51(item/p)
 msgid ""
 "<code>iter_has_child(treeiter)</code> returns <code>True</code> if "
 "<code>treeiter</code> has children, <code>False</code> otherwise."
@@ -7985,7 +29491,7 @@ msgstr ""
 "Î <code>iter_has_child(treeiter)</code> ÎÏÎÏÏÏÎÏÎÎ <code>True</code> ÎÎÎ Î "
 "<code>treeiter</code> ÎÏÎÎ ÎÏÎÎÏÏÎÎÎ, ÎÎÎÎÏÏ <code>False</code>."
 
-#: C/model-view-controller.py.page:52(p)
+#: C/model-view-controller.py.page:52(item/p)
 msgid ""
 "<code>iter_children(treeiter)</code> returns a <code>Gtk.TreeIter</code> "
 "instance pointing to the first child of <code>treeiter</code> or <code>None</"
@@ -7995,7 +29501,7 @@ msgstr ""
 "TreeIter</code> ÏÎÏ ÎÎÎÏÎÎÎ ÏÏÎÎ ÏÏÏÏÎ ÎÏÎÎÏÏÎÎÎ ÏÎÏ <code>treeiter</code> Î "
 "<code>None</code> ÎÎÎ Î <code>treeiter</code> ÎÎÎ ÎÏÎÎ ÎÏÎÎÏÏÎÎÎÏ."
 
-#: C/model-view-controller.py.page:53(p)
+#: C/model-view-controller.py.page:53(item/p)
 msgid ""
 "<code>get_iter_first()</code> returns a <code>Gtk.TreeIter</code> instance "
 "pointing to the first iterator in the tree (the one at the path <code>\"0\"</"
@@ -8005,11 +29511,11 @@ msgstr ""
 "TreeIter</code> ÏÎÏ ÎÎÎÏÎÎÎ ÏÏÎÎ ÏÏÏÏÎ ÎÏÎÎÎÎÎÏÏÎ ÏÏÎ ÎÎÎÎÏÎ (ÎÎ ÎÏÏÏÎ ÏÏÎ "
 "ÎÎÎÎÏÎÎÎ <code>\"0\"</code>) Î <code>None</code> ÎÎÎ ÏÎ ÎÎÎÎÏÎ ÎÎÎÎÎ ÎÎÎÏ."
 
-#: C/model-view-controller.py.page:56(p)
+#: C/model-view-controller.py.page:56(section/p)
 msgid "Useful methods for a <code>Gtk.ListStore</code>:"
 msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ <code>Gtk.ListStore</code>:"
 
-#: C/model-view-controller.py.page:58(p)
+#: C/model-view-controller.py.page:58(item/p)
 msgid ""
 "<code>append(row)</code> appends a new row to this list store, where "
 "<code>row</code> can be a list of values for each column; <code>row</code> "
@@ -8024,7 +29530,8 @@ msgstr ""
 "ÎÏÎÏÏÏÎÏÎÎ ÎÎÎ <code>Gtk.TreeIter</code> ÏÎÏ ÎÎÎÏÎÎÎ ÏÏÎÎ ÏÏÎÏÎÏÏÎÎÎÎÎ "
 "ÎÏÎÎÎÎ."
 
-#: C/model-view-controller.py.page:59(p) C/model-view-controller.py.page:65(p)
+#: C/model-view-controller.py.page:59(item/p)
+#: C/model-view-controller.py.page:65(item/p)
 msgid ""
 "<code>remove(iter)</code> removes <code>iter</code> from the <code>Gtk."
 "ListStore</code>, and returns <code>True</code> if the iter is valid, and "
@@ -8036,11 +29543,11 @@ msgstr ""
 "ÎÎÎÏÏÎ ÎÎÎ <code>False</code> ÎÎÎ Î ÎÏÎÎÎÎÎÏÎ ÎÎÎ ÎÎÎÎÎ. ÎÎÏÎ ÏÎÎ ÎÏÎÎÏÎÏÎ, "
 "Î <code>iter</code> ÎÏÎÎÎÏÎÎ ÎÎ ÎÎÎÎÎ Î ÎÏÏÎÎÎÎ ÎÎÎÏÏÎ ÎÏÎÎÎÎ."
 
-#: C/model-view-controller.py.page:62(p)
+#: C/model-view-controller.py.page:62(section/p)
 msgid "Useful methods for a <code>Gtk.TreeStore</code>:"
 msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ <code>Gtk.TreeStore</code>:"
 
-#: C/model-view-controller.py.page:64(p)
+#: C/model-view-controller.py.page:64(item/p)
 msgid ""
 "<code>append(parent, row)</code> appends a new row to this tree store; "
 "<code>parent</code> must be a valid Gtk.TreeIter. If parent is not "
@@ -8059,11 +29566,11 @@ msgstr ""
 "ÏÎÎÎÏÏÎÎÎ ÏÎÏÎÏÏÏÏÎ ÎÎÎ ÎÎÎÎ ÎÏÎÎÎÎ ÎÎ ÏÏÎÏÎÏÏÎÎÎÎ. Î ÎÎÎÎÎÎÏ ÎÏÎÏÏÏÎÏÎÎ ÎÎÎ "
 "<code>Gtk.TreeIter</code> ÏÎÏ ÎÎÎÏÎÎÎ ÏÎÎ ÏÏÎÏÎÏÏÎÎÎÎÎ ÎÏÎÎÎÎ."
 
-#: C/model-view-controller.py.page:71(title)
+#: C/model-view-controller.py.page:71(section/title)
 msgid "The View: the TreeView case"
 msgstr "Î ÏÏÎÎÎÎÎ: Î ÏÎÏÎÏÏÏÏÎ TreeView"
 
-#: C/model-view-controller.py.page:73(p)
+#: C/model-view-controller.py.page:73(section/p)
 msgid ""
 "A Treeview shows the structure of children and parent items as a tree. See "
 "for instance <link xref=\"treeview_treestore.py\">this example</link>."
@@ -8072,18 +29579,18 @@ msgstr ""
 "ÎÎÎÎÏÎ. ÎÎÎÏÎ ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ <link xref=\"treeview_treestore.py\">ÎÏÏÏ ÏÎ "
 "ÏÎÏÎÎÎÎÎÎÎ</link>."
 
-#: C/model-view-controller.py.page:75(p)
+#: C/model-view-controller.py.page:75(section/p)
 msgid ""
 "The <code>Gtk.TreeViewColumn</code> is used to organize the vertical columns."
 msgstr ""
 "Î <code>Gtk.TreeViewColumn</code> ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÎÎÎ ÎÏÎÎÎÏÏÎ ÏÏÎ ÎÎÎÎÏÏÎ "
 "ÏÏÎÎÏÎ."
 
-#: C/model-view-controller.py.page:77(p)
+#: C/model-view-controller.py.page:77(section/p)
 msgid "Useful methods for a <code>Gtk.TreeView</code>:"
 msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ <code>Gtk.TreeView</code>:"
 
-#: C/model-view-controller.py.page:79(p)
+#: C/model-view-controller.py.page:79(item/p)
 msgid ""
 "<code>set_model(model)</code> sets the model for this tree view. If this "
 "tree view already has a model set, it will remove it before setting the new "
@@ -8094,7 +29601,7 @@ msgstr ""
 "ÎÏÎÎÏÎÏÎÎ ÏÏÎÎ ÏÎ ÏÏÎÎÎÏÎ ÏÎÏ ÎÎÎÏ ÏÏÎÏÏÏÎÏ. ÎÎÎ ÏÎ ÏÏÏÏÏÏÎ ÎÎÎÎÎ "
 "<code>None</code>, ÏÏÏÎ ÎÎ ÎÎÎÎÏÎÏÎÎ ÏÎ ÏÎÎÎÏ ÏÏÏÏÏÏÎ."
 
-#: C/model-view-controller.py.page:80(p)
+#: C/model-view-controller.py.page:80(item/p)
 msgid ""
 "<code>get_model()</code> returns the model this tree view is based on, "
 "<code>None</code> if the model is unset."
@@ -8102,7 +29609,7 @@ msgstr ""
 "Î <code>get_model()</code> ÎÏÎÏÏÏÎÏÎÎ ÏÎ ÏÏÏÏÏÏÎ ÎÏÏÎÏ ÏÎÏ ÏÏÎÎÎÎÎÏ ÎÎÎÎÏÎÏ "
 "ÏÏÎ ÎÏÎÎÎ ÎÎÏÎÎÎÏÎÎ, <code>None</code> ÎÎÎ ÏÎ ÏÏÏÏÏÏÎ ÎÏÎÎ ÎÎÎÎÏÎÎÎÎ."
 
-#: C/model-view-controller.py.page:81(p)
+#: C/model-view-controller.py.page:81(item/p)
 msgid ""
 "<code>append_column(column)</code> appends <code>column</code> to the list "
 "of columns."
@@ -8110,7 +29617,7 @@ msgstr ""
 "Î <code>append_column(column)</code> ÏÏÎÏÎÏÏÎ <code>column</code> ÏÏÎ ÎÎÏÏÎ "
 "ÏÏÎ ÏÏÎÎÏÎ."
 
-#: C/model-view-controller.py.page:82(p)
+#: C/model-view-controller.py.page:82(item/p)
 msgid ""
 "<code>get_selection()</code> gets the <code>Gtk.TreeSelection</code> "
 "associated with this tree view."
@@ -8118,11 +29625,11 @@ msgstr ""
 "Î <code>get_selection()</code> ÏÎÎÏÎÎÎ ÏÎÎ <code>Gtk.TreeSelection</code> "
 "ÏÏÏÏÎÏÎÏÎÎÎÎ ÎÎ ÎÏÏÎÎ ÏÎÎ ÏÏÎÎÎÎÎ ÎÎÎÎÏÎÏ."
 
-#: C/model-view-controller.py.page:85(p)
+#: C/model-view-controller.py.page:85(section/p)
 msgid "Useful methods for a <code>Gtk.TreeViewColumn</code>:"
 msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ <code>Gtk.TreeViewColumn</code>:"
 
-#: C/model-view-controller.py.page:87(p)
+#: C/model-view-controller.py.page:87(item/p)
 msgid ""
 "<code>add_attribute(renderer, attribute, value)</code> adds an attribute "
 "mapping to this column. <code>attribute</code> is the parameter on "
@@ -8133,7 +29640,7 @@ msgstr ""
 "ÏÎÏÎÎÎÏÏÎÏ ÏÏÎÎ <code>renderer</code> ÎÎÎ ÎÎ ÎÏÎÏÏÎÎ ÎÏÏ ÏÎÎ <code>value</"
 "code>"
 
-#: C/model-view-controller.py.page:88(p)
+#: C/model-view-controller.py.page:88(item/p)
 msgid ""
 "<code>pack_start(renderer, expand)</code> packs <code>renderer</code> into "
 "the beginning of this column. If <code>expand</code> is <code>False</code>, "
@@ -8148,7 +29655,7 @@ msgstr ""
 "ÎÎÎÎÏÎÎÏÎÎ ÎÎÎÏÎÏ ÎÎÏÎÎÏ ÏÏÎ ÎÎÎÎÏÎ ÎÎÎ ÏÎ ÎÏÎÎÎ Î ÎÏÎÎÏÎÏÎ ÎÎÎÎÎ "
 "<code>True</code>."
 
-#: C/model-view-controller.py.page:89(p)
+#: C/model-view-controller.py.page:89(item/p)
 msgid ""
 "<code>pack_end(renderer, expand)</code> adds <code>renderer</code> to end of "
 "this column. If <code>expand</code> is <code>False</code>, then "
@@ -8163,17 +29670,17 @@ msgstr ""
 "ÎÎÎÎÏÎÎÏÎÎ ÎÎÎÏÎÏ ÎÎÏÎÎÏ ÏÏÎ ÎÎÎÎÏÎ ÎÎÎ ÏÎ ÎÏÎÎÎ Î <code>expand</code> ÎÎÎÎÎ "
 "<code>True</code>."
 
-#: C/model-view-controller.py.page:90(p)
+#: C/model-view-controller.py.page:90(item/p)
 msgid ""
 "<code>set_sort_column_id(sort_column_id)</code> sets the column of the model "
 "by which this column (of the view) should be sorted. This also makes the "
-"columnd header clickable."
+"column header clickable."
 msgstr ""
 "Î <code>set_sort_column_id(sort_column_id)</code> ÎÏÎÎÎÎ ÏÎ ÏÏÎÎÎ ÏÎÏ "
 "ÏÏÎÏÏÏÎÏ ÏÏÎÏÏÎÎ ÎÎ ÏÎ ÎÏÎÎÎ ÎÏÏÎ Î ÏÏÎÎÎ (ÏÎÏ ÏÏÎÎÎÎÎÏ) ÏÏÎÏÎÎ ÎÎ "
 "ÏÎÎÎÎÎÎÎÎÎÎ. ÎÏÏÏ ÎÏÎÏÎÏ ÎÎÎÎÎ ÏÎÎ ÎÎÏÎÎÎÎÎ ÏÎÏ ÏÏÎÎÎÏ ÎÏÎÎÎÎÎÎÎ."
 
-#: C/model-view-controller.py.page:91(p)
+#: C/model-view-controller.py.page:91(item/p)
 msgid ""
 "<code>set_sort_indicator(setting)</code> sets whether a little arrow is "
 "displayed in the column header; <code>setting</code> can either be "
@@ -8183,7 +29690,7 @@ msgstr ""
 "ÎÎÏÎÎÎÎÎÏÎÎ ÏÏÎÎ ÎÎÏÎÎÎÎÎ ÏÎÏ ÏÏÎÎÎÏÂ Î <code>setting</code> ÎÏÎÏÎÎ Î ÎÎ "
 "ÎÎÎÎÎ <code>True</code> (Î ÎÎÎÎÏÎÏ ÏÏÎÎÎÎÎÎÏÎÎ) Î <code>False</code>."
 
-#: C/model-view-controller.py.page:92(p)
+#: C/model-view-controller.py.page:92(item/p)
 msgid ""
 "<code>set_sort_order(order)</code> changes the order by which the column is "
 "sorted; <code>order</code> can either be <code>Gtk.SortType.ASCENDING</code> "
@@ -8193,11 +29700,11 @@ msgstr ""
 "ÏÎÎÎÎÎÎÎÎÏÎÎÂ Î <code>order</code> ÎÏÎÏÎÎ ÎÎ ÎÎÎÎÎ ÎÎÏÎ <code>Gtk.SortType."
 "ASCENDING</code> Î <code>Gtk.SortType.DESCENDING</code>."
 
-#: C/model-view-controller.py.page:98(title)
+#: C/model-view-controller.py.page:98(section/title)
 msgid "The View: the ComboBox case"
 msgstr "Î ÏÏÎÎÎÎÎ: Î ÏÎÏÎÏÏÏÏÎ ComboBox"
 
-#: C/model-view-controller.py.page:100(p)
+#: C/model-view-controller.py.page:100(section/p)
 msgid ""
 "A <code>Gtk.ComboBox</code> allows for the selection of an item from a "
 "dropdown menu, see for instance <link xref=\"combobox.py\">this example</"
@@ -8209,13 +29716,13 @@ msgstr ""
 "ÏÏÏÏÏÏÎÎÎÎ ÎÎÎÎÏ, ÎÎÎÏÎ <link xref=\"combobox.py\">ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ</"
 "link>. ÎÎÎ ÎÎÎ ÎÎÏÏÎ ÎÎÎÎÎÎÎÎÏÎ ÎÏÎÎÎÎÏÎ, ÎÏÎÏÎÎ ÎÎÏÎÎÎÏ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ "
 "ÏÎÎ ÎÏÎÏ <code>Gtk.ComboBoxText</code>. ÎÎÏÏÏÎÏÎ ÏÎ <code>Gtk.ComboBox</"
-"code> ÎÎÎ <code>Gtk.ComboBoxText</code> ÎÏÎÏÎÏÎ ÎÎ ÏÎÏÎÎÏÎÏÎ ÎÎÎ ÎÎÏÎÎÏÎÎ."
+"code> ÎÎÎ <code>Gtk.ComboBoxText</code> ÎÏÎÏÎÏÎ ÎÎ ÏÎÏÎÎÏÎÏÎ ÎÎÎ ÎÎÏÎÏÏÏÎÏÎ."
 
-#: C/model-view-controller.py.page:102(p)
+#: C/model-view-controller.py.page:102(section/p)
 msgid "Useful methods for a <code>Gtk.ComboBox</code>:"
 msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ <code>Gtk.ComboBox</code>:"
 
-#: C/model-view-controller.py.page:104(p)
+#: C/model-view-controller.py.page:104(item/p)
 msgid ""
 "The static method <code>new_with_entry()</code> creates a new empty "
 "<code>Gtk.ComboBox</code> with an entry; the static method "
@@ -8229,7 +29736,7 @@ msgstr ""
 "ÏÏÏÏÏÏÎ ÏÏÎ <code>model</code>Â ÎÎÎ Î ÏÏÎÏÎÎÎ ÎÎÎÎÎÎÏ "
 "<code>new_with_model_and_entry(model)</code> ÎÎÎÎÎ ÎÎÎÏ ÏÏÎÎÏÎÏÎÏÏ ÏÏÎ ÎÏÎ."
 
-#: C/model-view-controller.py.page:105(p)
+#: C/model-view-controller.py.page:105(item/p)
 msgid ""
 "<code>get_active_iter()</code> returns a <code>Gtk.TreeIter</code> pointing "
 "to the current active item. If no active item exists, <code>None</code> is "
@@ -8239,7 +29746,7 @@ msgstr ""
 "ÏÎÏ ÎÎÎÏÎÎÎ ÏÏÎ ÏÏÎÏÎÎ ÎÎÎÏÎÏ ÏÏÎÎÏÎÎÎ. ÎÎÎ ÎÎÎ ÏÏÎÏÏÎÎ ÎÎÎÏÎÏ ÏÏÎÎÏÎÎÎ, "
 "ÎÏÎÏÏÏÎÏÎÏÎÎ <code>None</code>."
 
-#: C/model-view-controller.py.page:106(p)
+#: C/model-view-controller.py.page:106(item/p)
 msgid ""
 "<code>set_model(model)</code> sets the model used by this combo box to be "
 "<code>model</code>, and it will unset a previously set model (if there is "
@@ -8252,7 +29759,7 @@ msgstr ""
 "ÎÎÎÎÎ <code>None</code>, ÏÏÏÎ ÎÎ ÎÎÎÎÏÎÏÎÎ ÏÎ ÏÏÏÏÏÏÎ. ÎÎÎÎÎÏÏÏÎ ÏÏÎ ÎÏÏÎ Î "
 "ÏÏÎÎÏÏÎÏÎ ÎÎÎ ÎÎÎÎÏÎÎÎÎ ÏÎÏÏ ÏÏÎÎÎÎÏÏÎÏ."
 
-#: C/model-view-controller.py.page:107(p)
+#: C/model-view-controller.py.page:107(item/p)
 msgid ""
 "<code>set_entry_text_column(text_column)</code> sets the model column which "
 "this combo box should use to get strings from to be <code>text_column</"
@@ -8267,7 +29774,7 @@ msgstr ""
 "<code>str</code> (ÎÏÏÏ ÎÎÎÎÎ ÎÎÏÎÎÎÎÎÎ ÎÏÎÎ ÎÎÎ ÎÏÏÏ ÏÎ ÏÏÎÎÎÏÎ ÏÎÎÎÏÎÎ "
 "ÎÎÎÎÎÏÏÎÎÎÎÎÎ ÎÎ ÏÎÎ ÎÎÎÏÏÎÏÎ âhas-entryâ ÎÏÎÏÎÎÎÎ ÏÎ ÎÎÎÎÎ)."
 
-#: C/model-view-controller.py.page:108(p)
+#: C/model-view-controller.py.page:108(item/p)
 msgid ""
 "<code>set_wrap_width(width)</code> sets the wrap width of this combo box to "
 "be <code>width</code>. The wrap width is basically the preferred number of "
@@ -8278,11 +29785,11 @@ msgstr ""
 "ÎÎÏÎÎÎ Î ÏÏÎÏÎÎÏÎÎÎÎÏ ÎÏÎÎÎÏÏ ÏÏÎ ÏÏÎÎÏÎ ÏÏÎÎ ÎÎÎÎÏÎ ÏÎ ÎÎÎÎÏÏÎÎÎÎ ÎÎ "
 "ÎÎÏÎÎÎÏÏÎÎ ÏÎ ÎÎÎ ÏÎÎÎÎÎ."
 
-#: C/model-view-controller.py.page:111(p)
+#: C/model-view-controller.py.page:111(section/p)
 msgid "Useful methods for a <code>Gtk.ComboBoxText</code>:"
 msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ <code>Gtk.ComboBoxText</code>:"
 
-#: C/model-view-controller.py.page:113(p)
+#: C/model-view-controller.py.page:113(item/p)
 msgid ""
 "The static method <code>new_with_entry()</code> creates a new empty "
 "<code>Gtk.ComboBoxText</code> with an entry."
@@ -8290,7 +29797,7 @@ msgstr ""
 "Î ÏÏÎÏÎÎÎ ÎÎÎÎÎÎÏ <code>new_with_entry()</code> ÎÎÎÎÎÏÏÎÎÎ ÎÎÎ ÎÎÎ ÎÎÎÏ "
 "<code>Gtk.ComboBoxText</code> ÎÎ ÎÎÎ ÎÎÎÏÎÏÎ."
 
-#: C/model-view-controller.py.page:114(p)
+#: C/model-view-controller.py.page:114(item/p)
 msgid ""
 "<code>append_text(text)</code> appends <code>text</code> to the list of "
 "strings stored in this combo box."
@@ -8298,7 +29805,7 @@ msgstr ""
 "Î <code>append_text(text)</code> ÏÏÎÏÎÏÏÎ ÏÎ <code>text</code> ÏÏÎ ÎÎÏÏÎ ÏÏÎ "
 "ÎÏÎÎÎÎÎÏÎÎÎÏÎ ÏÏÎÎÎÎÎÏÎÎÏÏÎ ÏÎ ÎÏÏÏ ÏÎ ÏÏÎÎÎÏÎ ÏÎÎÎÏÎÎ."
 
-#: C/model-view-controller.py.page:115(p)
+#: C/model-view-controller.py.page:115(item/p)
 msgid ""
 "<code>get_active_text()</code> returns the currently active string in this "
 "combo box, or <code>None</code> if none is selected. If this combo box "
@@ -8311,11 +29818,11 @@ msgstr ""
 "ÎÏÎÏÏÏÎÏÎÎ ÏÎ ÏÎÏÎÎÏÏÎÎÎÎ ÏÎÏ (ÏÎÏ ÎÎÎ ÎÎ ÎÎÎÎÎ ÎÎÎÎÎÎÏÏÎÎÎ ÎÎÎ ÏÏÎÎÏÎÎÎ ÎÏÏ "
 "ÏÎ ÎÎÏÏÎ)."
 
-#: C/model-view-controller.py.page:121(title)
+#: C/model-view-controller.py.page:121(section/title)
 msgid "The View: the Cellrenderers"
 msgstr "Î ÏÏÎÎÎÎÎ: ÎÎ ÏÏÎÎÎÎÏÏÎÏ ÎÎÎÎÎÏ"
 
-#: C/model-view-controller.py.page:123(p)
+#: C/model-view-controller.py.page:123(section/p)
 msgid ""
 "The View makes use of <code>Gtk.CellRenderer</code>s of various types to "
 "draw the data."
@@ -8323,15 +29830,15 @@ msgstr ""
 "Î ÏÏÎÎÎÎÎ ÎÎÎÎÎ ÏÏÎÏÎ ÏÏÎ <code>Gtk.CellRenderer</code> ÏÏÎ ÏÎÎÎÎÎÏÎ ÏÏÏÏÎ "
 "ÏÏÎÎÎÎÏÎÏ ÏÏÎ ÎÎÎÎÎÎÎÏÎ."
 
-#: C/model-view-controller.py.page:125(p)
+#: C/model-view-controller.py.page:125(section/p)
 msgid "Implementations of <code>Gtk.CellRenderer</code> and useful methods:"
 msgstr "ÎÏÎÏÎÎÎÎÏ ÏÎÏ <code>Gtk.CellRenderer</code> ÎÎÎ ÏÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ:"
 
-#: C/model-view-controller.py.page:127(p)
+#: C/model-view-controller.py.page:127(item/p)
 msgid "<code>Gtk.CellRendererText</code> - renders text in a cell"
 msgstr "<code>Gtk.CellRendererText</code> - ÎÏÎÎÎÎÎÎ ÎÎÎÎÎÎÎ ÏÎ ÎÎÎ ÎÎÎÎ"
 
-#: C/model-view-controller.py.page:128(p)
+#: C/model-view-controller.py.page:128(item/p)
 msgid ""
 "<code>Gtk.CellRendererToggle</code> - renders a toggle or radio button in a "
 "cell. Useful methods:"
@@ -8339,19 +29846,19 @@ msgstr ""
 "<code>Gtk.CellRendererToggle</code> - ÎÏÎÎÎÎÎÎ ÎÎÎ ÎÎÎÎÎÎÎÎ Î ÏÎÎÎÎÏÎÎÎÏÏÎ "
 "ÏÎ ÎÎÎ ÎÎÎÎ. ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ:"
 
-#: C/model-view-controller.py.page:130(p)
+#: C/model-view-controller.py.page:130(item/p)
 msgid ""
 "<code>set_active(setting)</code> - activates or deactivates a cell renderer"
 msgstr ""
 "<code>set_active(setting)</code> - ÎÎÎÏÎÎÏÎÎÎÎ Î ÎÏÎÎÎÏÎÎÏÎÎÎÎ ÎÎÎÎ "
 "ÎÏÎÏÏÏÏÏÎ ÎÎÎÎÏÎ"
 
-#: C/model-view-controller.py.page:131(p)
+#: C/model-view-controller.py.page:131(item/p)
 msgid "<code>get_active()</code> - returns whether the cell renderer is active"
 msgstr ""
 "<code>get_active()</code> - ÎÏÎÏÏÏÎÏÎÎ ÎÎÎ Î ÏÏÎÎÎÎÏÏÎÏ ÎÎÎÎÏÎ ÎÎÎÎÎ ÎÎÎÏÎÏÏ"
 
-#: C/model-view-controller.py.page:132(p)
+#: C/model-view-controller.py.page:132(item/p)
 msgid ""
 "<code>set_radio(radio)</code> - if radio is <code>True</code>, the cell "
 "renderer renders a radio toggle (i.e. a toggle in a group of mutually-"
@@ -8363,7 +29870,7 @@ msgstr ""
 "ÎÎÎÎÎ ÎÎÎÎÎÎÎÎ ÎÏÎÎÎÎÎÏÎÎÎÏÎ ÎÎÎÎÎÎÎÏÎ)Â ÎÎÎ <code>False</code>, ÎÏÎÎÎÎÎÎ "
 "ÎÎÎ ÎÎÎÎÎÎÎÎ ÎÎÎÎÏÎÏ (ÎÎÎ ÎÏÏÏÎÎÎÎ ÎÏÎÎÎÎÎ ÏÎÎÎÏ ÎÏÎÏÎ)"
 
-#: C/model-view-controller.py.page:133(p)
+#: C/model-view-controller.py.page:133(item/p)
 msgid ""
 "<code>get_radio()</code> - returns whether we are rendering radio toggles "
 "rather than checkboxes."
@@ -8371,11 +29878,11 @@ msgstr ""
 "<code>get_radio()</code> - ÎÏÎÏÏÏÎÏÎÎ ÎÎÎ ÎÏÎÎÎÎÎÏÎÎ ÏÎÎÎÎÎÎÎÎÎÎÎÎÏ ÎÎÏÎ ÎÎÎ "
 "ÏÎÎÎÏÎÎ ÎÎÎÎÏÎÏ."
 
-#: C/model-view-controller.py.page:136(p)
+#: C/model-view-controller.py.page:136(item/p)
 msgid "<code>Gtk.CellRendererPixbuf</code> - renders an image in a cell"
 msgstr "<code>Gtk.CellRendererPixbuf</code> - ÎÏÎÎÎÎÎÎ ÎÎÎ ÎÎÎÏÎÎ ÏÎ ÎÎÎ ÎÎÎÎ"
 
-#: C/model-view-controller.py.page:137(p)
+#: C/model-view-controller.py.page:137(item/p)
 msgid ""
 "<code>Gtk.CellRendererCombo</code> - renders text in a cell; but while "
 "<code>Gtk.CellRendererText</code> offers a simple entry to edit the text, "
@@ -8390,7 +29897,7 @@ msgstr ""
 "ÎÎÎÎÎÎÎÏ. ÎÏÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÎÎ ÎÎ ÎÎÎ ÏÏÏÎÏ ÎÎÎ ÏÏÏÏÎÏÎÏÎÎÎÎ ÎÏÎÏÎÎÏ "
 "ÏÏÏÏÎÏÎÎÏ Gtk.Entry, ÎÎÎÎÎÎÎ ÎÎ ÏÎÎ ÏÎÎÎ ÏÎÏ ÎÎÎÏÏÎÏÎÏ âhas-entryâ."
 
-#: C/model-view-controller.py.page:138(p)
+#: C/model-view-controller.py.page:138(item/p)
 msgid ""
 "<code>Gtk.CellRendererProgress</code> - renders a numeric value as a "
 "progress bar in a cell; it can display a text on top of the progress bar"
@@ -8399,31 +29906,31 @@ msgstr ""
 "ÎÏÎÎÎÎ ÏÏÎÏÎÎÏ ÏÎ ÎÎÎ ÎÎÎÎÂ ÎÏÎÏÎÎ ÎÎ ÎÎÏÎÎÎÏÎÎ ÎÎÎ ÎÎÎÎÎÎÎ ÏÏÎÎ ÎÎÏÏÏÎ ÏÎÏ "
 "ÎÏÎÎÎÎÏ ÏÏÎÏÎÎÏ"
 
-#: C/model-view-controller.py.page:139(p)
+#: C/model-view-controller.py.page:139(item/p)
 msgid ""
 "<code>Gtk.CellRendererSpinner</code> - renders a spinning animation in a cell"
 msgstr ""
 "<code>Gtk.CellRendererSpinner</code> - ÎÏÎÎÎÎÎÎ ÎÎÎ ÏÏÏÎÏÏÎÎÎÎ ÎÎÎÎÏÎ ÏÎ ÎÎÎ "
 "ÎÎÎÎ"
 
-#: C/model-view-controller.py.page:140(p)
+#: C/model-view-controller.py.page:140(item/p)
 msgid "<code>Gtk.CellRendererSpin</code> - renders a spin button in a cell"
 msgstr ""
 "<code>Gtk.CellRendererSpin</code> - ÎÏÎÎÎÎÎÎ ÎÎÎ ÎÎÏÎÏÎ ÏÏÏÎÎÎÎÎÏÎÎÏ ÏÎ ÎÎÎ "
 "ÎÎÎÎ"
 
-#: C/model-view-controller.py.page:141(p)
+#: C/model-view-controller.py.page:141(item/p)
 msgid ""
 "<code>Gtk.CellRendererAccel</code> - renders a keyboard accelerator in a cell"
 msgstr ""
 "<code>Gtk.CellRendererAccel</code> - ÎÏÎÎÎÎÎÎ ÎÎÎÎ ÎÏÎÏÎÏÏÎÏÎ ÏÎÎÎÏÏÎÎÎÎÎÎÏ "
 "ÏÎ ÎÎÎ ÎÎÎÎ"
 
-#: C/model-view-controller.py.page:147(title)
+#: C/model-view-controller.py.page:147(section/title)
 msgid "The Controller: the Selection"
 msgstr "Î ÎÎÎÎÎÏÎÏ: Î ÎÏÎÎÎÎÎ"
 
-#: C/model-view-controller.py.page:149(p)
+#: C/model-view-controller.py.page:149(section/p)
 msgid ""
 "Most applications will need to not only deal with displaying data, but also "
 "receiving input events from users. To do this, simply get a reference to a "
@@ -8434,7 +29941,7 @@ msgstr ""
 "ÎÎÎÎÎ ÎÏÏÏ, ÏÎÏÏÎ ÎÏÎÎ ÎÎÎ ÎÎÎÏÎÏÎ ÏÎ ÎÎÎ ÎÎÏÎÎÎÎÎÎÎÎ ÎÏÎÎÎÎÎÏ ÎÎÎ "
 "ÏÏÎÎÎÎÎÎÏÎ ÏÏÎ ÏÎÎÎ <code>\"changed\"</code>."
 
-#: C/model-view-controller.py.page:151(code)
+#: C/model-view-controller.py.page:151(section/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -8445,11 +29952,11 @@ msgstr ""
 "select = tree.get_selection()\n"
 "select.connect(\"changed\", on_tree_selection_changed)\n"
 
-#: C/model-view-controller.py.page:156(p)
+#: C/model-view-controller.py.page:156(section/p)
 msgid "Then to retrieve data for the row selected:"
 msgstr "ÎÏÎÎÏÎ ÎÎÎ ÎÎ ÎÎÎÎÏÎÏÎÏÎ ÎÎÎÎÎÎÎÎ ÎÎÎ ÏÎÎ ÎÏÎÎÎÎÎÎÎÎ ÎÏÎÎÎÎ:"
 
-#: C/model-view-controller.py.page:158(code)
+#: C/model-view-controller.py.page:158(section/code)
 #, no-wrap
 msgid ""
 "\n"
@@ -8464,29 +29971,29 @@ msgstr ""
 "    if treeiter != None:\n"
 "        print \"You selected\", model[treeiter][0]\n"
 
-#: C/model-view-controller.py.page:165(p)
-msgid "Useful method for a <code>Gtk.TreeSelection</code>:"
-msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ <code>Gtk.TreeSelection</code>:"
+#: C/model-view-controller.py.page:165(section/p)
+msgid "Useful methods for a <code>Gtk.TreeSelection</code>:"
+msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ <code>Gtk.TreeSelection</code>:"
 
-#: C/model-view-controller.py.page:168(p)
+#: C/model-view-controller.py.page:168(item/p)
 msgid ""
 "<code>set_mode(type)</code> sets the type of selection, where type is one of"
 msgstr ""
 "<code>set_mode(type)</code> ÎÏÎÎÎÎ ÏÎÎ ÏÏÏÎ ÏÎÏ ÎÏÎÎÎÎÎÏ, ÏÏÎÏ ÏÏÏÎÏ ÎÎÎÎÎ "
 "ÎÎÎÏ ÎÏÏ"
 
-#: C/model-view-controller.py.page:170(p)
+#: C/model-view-controller.py.page:170(item/p)
 msgid "<code>Gtk.SelectionMode.NONE</code> - no selection is possible"
 msgstr "<code>Gtk.SelectionMode.NONE</code> - ÎÎÎÎÎ ÎÏÎÎÎÎÎ ÎÎÎ ÎÎÎÎÎ ÎÏÎÎÏÎ"
 
-#: C/model-view-controller.py.page:171(p)
+#: C/model-view-controller.py.page:171(item/p)
 msgid ""
 "<code>Gtk.SelectionMode.SINGLE</code> - zero or one element may be selected"
 msgstr ""
 "<code>Gtk.SelectionMode.SINGLE</code> - ÎÎÎÎÎÎ Î ÎÎÎ ÏÏÎÎÏÎÎÎ ÎÏÎÏÎÎ ÎÎ "
 "ÎÏÎÎÎÎÎÎ"
 
-#: C/model-view-controller.py.page:172(p)
+#: C/model-view-controller.py.page:172(item/p)
 msgid ""
 "<code>Gtk.SelectionMode.BROWSE</code> - exactly one element is selected. In "
 "some circumstances, such as initially or during a search operation, itâs "
@@ -8500,13 +30007,14 @@ msgstr ""
 "ÏÏÎÎÎÎÏÎÎÎ ÏÏÎÏÏÎÏÏÎÎÏ ÎÎÎÎÎ ÎÎ ÎÎÎ ÎÏÎÏÎÎ ÎÎ ÎÏÎÎÏÎÎÎÎÎÎ Î ÏÏÎÏÏÎÏ ÎÎÎ "
 "ÏÏÎÏÎÎ ÎÏÎÎÎÎÎÎÎÎ ÏÏÎÎÏÎÎÎ ÎÎÏÏÏ ÎÏÏ ÏÎÎ ÎÏÎÎÎÎÎ ÎÎÏÏ ÎÎÎÎÏ ÏÏÎÎÏÎÎÎÏ."
 
-#: C/model-view-controller.py.page:173(p)
+#: C/model-view-controller.py.page:173(item/p)
+#, fuzzy
 msgid ""
 "<code>Gtk.SelectionMode.MULTIPLE</code> -any number of elements may be "
-"selected. Clicks toggle the state of an item. Any number of elements may be "
-"selected. The Ctrl key may be used to enlarge the selection, and Shift key "
-"to select between the focus and the child pointed to. Some widgets may also "
-"allow Click-drag to select a range of elements."
+"selected. Clicks toggle the state of an item. The Ctrl key may be used to "
+"enlarge the selection, and Shift key to select between the focus and the "
+"child pointed to. Some widgets may also allow Click-drag to select a range "
+"of elements."
 msgstr ""
 "<code>Gtk.SelectionMode.MULTIPLE</code> - ÎÏÎÎÎÏÎÎÏÎÏÎ ÎÏÎÎÎÏÏ ÏÏÎÎÏÎÎÏÎ "
 "ÎÏÎÏÎÎ ÎÎ ÎÏÎÎÎÎÎÎ. ÎÎ ÏÎÏÎÎÎ ÎÎÎÎÎÎÏÏÎÎ ÏÎÎ ÎÎÏÎÏÏÎÏÎ ÎÎÏÏ ÏÏÎÎÏÎÎÎÏ. "
@@ -8516,7 +30024,7 @@ msgstr ""
 "ÏÏÏÏÎÏÎÎÎ ÎÏÎÏÎÏÎ ÎÏÎÏÎÏ ÎÎ ÎÏÎÏÏÎÏÎÏÎ ÎÎÎÎ-ÎÎÏÎÏÎÏÎ ÎÎÎ ÎÏÎÎÎÎÎ ÎÎÎÏ "
 "ÏÎÏÎÎÏÎÏ ÏÏÎÎÏÎÎÏÎ."
 
-#: C/model-view-controller.py.page:176(p)
+#: C/model-view-controller.py.page:176(item/p)
 msgid ""
 "<code>get_selected()</code> returns a tuple <code>(model, treeiter)</code>, "
 "where <code>model</code> is the current model and <code>treeiter</code> a "
@@ -8535,11611 +30043,22235 @@ msgstr ""
 "ÎÏÎÏÏÏÎÏÎÎ ÎÎÎ ÎÎÏÏÎ ÏÏÎÎÎÎÎÏÏÏÏÎ <code>Gtk.TreePath</code> ÏÎÏÎ ÏÏÎ "
 "ÎÏÎÎÎÎÎÎÎÏÎ ÎÏÎÎÎÏÎ."
 
-#: C/model-view-controller.py.page:188(link)
-#: C/combobox_multicolumn.py.page:43(link) C/combobox.py.page:40(link)
-msgid "GtkComboBox"
-msgstr "GtkComboBox"
-
-#: C/model-view-controller.py.page:189(link)
-msgid "GtkCellRenderer"
-msgstr "GtkCellRenderer"
-
-#: C/model-view-controller.py.page:190(link)
-msgid "The Python Gtk+ 3 Tutorial - Tree and List Widgets"
-msgstr "ÎÎ ÎÎÎÎÎÎ Python Gtk+ 3 - ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÎÎÏÎÏ ÎÎÎ ÎÎÏÏÎÏ"
-
-#: C/model-view-controller.py.page:191(link)
-msgid "The Python Gtk+ 3 Tutorial - CellRenderers"
-msgstr "ÎÎ ÎÎÎÎÎÎ Python Gtk+ 3 - CellRenderers"
-
-#: C/model-view-controller.py.page:192(link)
-msgid "The Python Gtk+ 3 Tutorial - ComboBox"
-msgstr "ÎÎ ÎÎÎÎÎÎ Python Gtk+ 3 - ComboBox"
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/messagedialog.vala.page:21(None) C/messagedialog.py.page:22(None)
-#: C/messagedialog.js.page:24(None) C/messagedialog.c.page:23(None)
-msgid ""
-"@@image: 'media/messagedialog.png'; md5=1956288274018e2386d9cba96a2101de"
-msgstr ""
-"@@image: 'media/messagedialog.png'Â md5=1956288274018e2386d9cba96a2101de"
-
-#: C/messagedialog.vala.page:7(title)
-msgid "MessageDialog (Vala)"
-msgstr "MessageDialog (Vala)"
-
-#: C/messagedialog.vala.page:17(desc) C/messagedialog.py.page:18(desc)
-#: C/messagedialog.c.page:18(desc)
-msgid "A message window"
-msgstr "ÎÎÎ ÏÎÏÎÎÏÏÎ ÎÎÎÏÎÎÏÎÏ"
-
-#: C/messagedialog.vala.page:20(title) C/messagedialog.py.page:21(title)
-#: C/messagedialog.js.page:23(title) C/messagedialog.c.page:21(title)
-msgid "MessageDialog"
-msgstr "MessageDialog"
-
-#: C/messagedialog.vala.page:22(p) C/messagedialog.c.page:24(p)
-msgid "A modal message dialog which can cause the world to explode."
-msgstr ""
-"ÎÎÎÏ ÎÏÎÎÎÎÎÏÏÎÎÏÏ ÎÎÎÎÎÎÎÏ ÎÎÎÏÎÎÏÎÏ ÏÎÏ ÎÏÎÏÎÎ ÎÎ ÏÏÎÎÎÎÎÏÎÎ ÏÎÎ ÎÎÏÎÎÎ "
-"ÏÎÏ ÎÏÏÎÎÏ."
-
-#: C/messagedialog.vala.page:30(link)
-msgid "Gtk.ResponseType"
-msgstr "Gtk.ResponseType"
-
-#: C/messagedialog.vala.page:31(link) C/messagedialog.js.page:197(link)
-#: C/entry.js.page:32(link) C/combobox.js.page:243(link)
-#: C/comboboxtext.js.page:183(link)
-msgid "Gtk.MessageDialog"
-msgstr "Gtk.MessageDialog"
-
-#: C/messagedialog.vala.page:32(link)
-msgid "Gtk.DialogFlags"
-msgstr "Gtk.DialogFlags"
-
-#: C/messagedialog.vala.page:33(link)
-msgid "Gtk.MessageType"
-msgstr "Gtk.MessageType"
-
-#: C/messagedialog.vala.page:34(link)
-msgid "Gtk.ButtonsType"
-msgstr "Gtk.ButtonsType"
-
-#: C/messagedialog.py.page:7(title)
-msgid "MessageDialog (Python)"
-msgstr "MessageDialog (Python)"
-
-#: C/messagedialog.py.page:23(p)
-msgid ""
-"A message dialog which prints messages on the terminal, depending on your "
-"choices."
-msgstr ""
-"ÎÎÎÏ ÎÎÎÎÎÎÎÏ ÎÎÎÏÎÎÏÎÏ ÏÎÏ ÏÏÏÏÎÎÎ ÎÎÎÏÎÎÏÎ ÏÏÎ ÏÎÏÎÎÏÎÎÏ, ÎÎÎÎÎÎÎ ÎÎ ÏÎÏ "
-"ÎÏÎÎÎÎÎÏ ÏÎÏ."
-
-#: C/messagedialog.py.page:35(title)
-msgid "Useful methods for a MessageDialog widget"
-msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ MessageDialog"
+#: C/model-view-controller.py.page:182(section/title)
+#: C/properties.py.page:49(section/title)
+#: C/signals-callbacks.py.page:44(section/title)
+#: C/strings.py.page:124(section/title)
+msgid "References"
+msgstr "ÎÎÎÏÎÏÎÏ"
 
-#: C/messagedialog.py.page:38(p)
+#: C/model-view-controller.py.page:185(item/p)
+#: C/treeview_advanced_liststore.py.page:46(item/p)
+#: C/treeview_cellrenderertoggle.py.page:42(item/p)
+#: C/treeview_simple_liststore.py.page:44(item/p)
+#: C/treeview_treestore.py.page:42(item/p)
 msgid ""
-"In the constructor of MessageDialog we could set flags as <code>Gtk."
-"DialogFlags.DESTROY_WITH_PARENT</code> (to destroy the messagedialog window "
-"when its parent window is destroyed) or as <code>Gtk.DialogFlags.MODAL</"
-"code> (no interaction with other windows of the application)."
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkTreeModel.html";
+"\">GtkTreeModel</link>"
 msgstr ""
-"ÎÏÎÎ ÎÎÏÎÏÎÎÏÎÏÏÎ ÏÎÏ MessageDialog ÎÏÎÏÎÏÎÎ ÎÎ ÎÏÎÏÎÏÎÎ ÏÎÎÎÎÎÏ ÏÏ "
-"<code>Gtk.DialogFlags.DESTROY_WITH_PARENT</code> (ÎÎÎ ÎÎÏÎÏÏÏÎÏÎ ÏÎÏ "
-"ÏÎÏÎÎÏÏÎÏ ÎÎÎÎÏÎÎÏ ÎÎÎÏÎÎÏÎÏ ÏÏÎÎ ÏÎ ÎÎÎÏÎ ÏÎÏÎÎÏÏÎ ÎÎÏÎÏÏÏÎÏÎÎÎ) Î ÏÏ "
-"<code>Gtk.DialogFlags.MODAL</code> (ÏÏÏÎÏ ÎÎÎÎÎÎÏÎÎÏÎÏÎ ÎÎ ÎÎÎÎ ÏÎÏÎÎÏÏÎ ÏÎÏ "
-"ÎÏÎÏÎÎÎÎÏ)."
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkTreeModel.html";
+"\">GtkTreeModel</link>"
 
-#: C/messagedialog.py.page:39(p)
+#: C/model-view-controller.py.page:186(item/p)
+#: C/treeview_advanced_liststore.py.page:45(item/p)
+#: C/treeview_cellrenderertoggle.py.page:41(item/p)
+#: C/treeview_simple_liststore.py.page:43(item/p)
+#: C/treeview_treestore.py.page:41(item/p)
 msgid ""
-"In the constructor of MessageDialog we could set type as any of <code>Gtk."
-"MessageType.INFO, Gtk.MessageType.WARNING, Gtk.MessageType.QUESTION, Gtk."
-"MessageType.ERROR, Gtk.MessageType.OTHER</code> depending on what type of "
-"message we want."
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkTreeView.html";
+"\">GtkTreeView</link>"
 msgstr ""
-"ÎÏÎÎ ÎÎÏÎÏÎÎÏÎÏÏÎ ÏÎÏ MessageDialog ÎÏÎÏÎÏÎÎ ÎÎ ÎÏÎÏÎÏÎÎ ÏÏ ÏÏÏÎ ÎÏÎÎÎÎÎÏÎÏÎ "
-"ÎÏÏ ÏÎ <code>Gtk.MessageType.INFO, Gtk.MessageType.WARNING, Gtk.MessageType."
-"QUESTION, Gtk.MessageType.ERROR, Gtk.MessageType.OTHER</code> ÎÎÎÎÎÎÎ ÎÎ ÏÎ "
-"ÏÏÏÎ ÎÎÎÏÎÎÏÎÏ ÎÎÎÎÏÎÎ."
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkTreeView.html";
+"\">GtkTreeView</link>"
 
-#: C/messagedialog.py.page:40(p)
+#: C/model-view-controller.py.page:187(item/p)
+#: C/treeview_advanced_liststore.py.page:49(item/p)
+#: C/treeview_cellrenderertoggle.py.page:46(item/p)
+#: C/treeview_simple_liststore.py.page:47(item/p)
+#: C/treeview_treestore.py.page:45(item/p)
 msgid ""
-"In the constructor of MessageDialog we could set buttons as any of <code>Gtk."
-"ButtonsType.NONE, Gtk.ButtonsType.OK, Gtk.ButtonsType.CLOSE, Gtk.ButtonsType."
-"CANCEL, Gtk.ButtonsType.YES_NO, Gtk.ButtonsType.OK_CANCEL</code>, or any "
-"button using <code>add_button()</code> as in Gtk.Dialog."
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkTreeViewColumn.html";
+"\">GtkTreeViewColumn</link>"
 msgstr ""
-"ÎÏÎÎ ÎÎÏÎÏÎÎÏÎÏÏÎ ÏÎÏ MessageDialog ÎÏÎÏÎÏÎÎ ÎÎ ÎÏÎÏÎÏÎÎ ÎÎÏÎÏÎÎ ÎÏÎÎÎÎÎÏÎÏÎ "
-"ÎÏÏ ÏÎ <code>Gtk.ButtonsType.NONE, Gtk.ButtonsType.OK, Gtk.ButtonsType."
-"CLOSE, Gtk.ButtonsType.CANCEL, Gtk.ButtonsType.YES_NO, Gtk.ButtonsType."
-"OK_CANCEL</code>, Î ÎÏÎÎÎÎÎÏÎÏÎ ÎÎÏÎÏÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ <code>add_button()"
-"</code> ÏÏÏÏ ÏÏÎÎ Gtk.Dialog."
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkTreeViewColumn.html";
+"\">GtkTreeViewColumn</link>"
 
-#: C/messagedialog.py.page:41(p)
+#: C/model-view-controller.py.page:189(item/p)
 msgid ""
-"We could substitute the default image of the MessageDialog with another "
-"image using"
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkCellRenderer.html";
+"\">GtkCellRenderer</link>"
 msgstr ""
-"ÎÏÎÏÎÏÎÎ ÎÎ ÎÎÏÎÎÎÏÎÏÏÎÏÎÏÎÎ ÏÎÎ ÏÏÎÎÏÎÎÎÎÎÎÎÎ ÎÎÎÏÎÎ ÏÎÏ MessageDialog ÎÎ "
-"ÎÎÎÎ ÎÎÎÏÎÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ"
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkCellRenderer.html";
+"\">GtkCellRenderer</link>"
 
-#: C/messagedialog.py.page:42(code)
-#, no-wrap
+#: C/model-view-controller.py.page:190(item/p)
 msgid ""
-"\n"
-"image = Gtk.Image()\n"
-"image.set_from_stock(Gtk.STOCK_CAPS_LOCK_WARNING, Gtk.IconSize.DIALOG)\n"
-"image.show()\n"
-"messagedialog.set_image(image)"
+"<link href=\"http://python-gtk-3-tutorial.readthedocs.org/en/latest/treeview.";
+"html\">The Python Gtk+ 3 Tutorial - Tree and List Widgets</link>"
 msgstr ""
-"\n"
-"image = Gtk.Image()\n"
-"image.set_from_stock(Gtk.STOCK_CAPS_LOCK_WARNING, Gtk.IconSize.DIALOG)\n"
-"image.show()\n"
-"messagedialog.set_image(image)"
+"<link href=\"http://python-gtk-3-tutorial.readthedocs.org/en/latest/treeview.";
+"html\">The Python Gtk+ 3 Tutorial - Tree and List Widgets</link>"
 
-#: C/messagedialog.py.page:47(p)
+#: C/model-view-controller.py.page:191(item/p)
 msgid ""
-"where <code>Gtk.STOCK_CAPS_LOCK_WARNING</code> is any image from <link href="
-"\"http://developer.gnome.org/gtk3/unstable/gtk3-Stock-Items.html\";>Stock "
-"Items</link>. We could also set any image as in the Image widget, as "
-"<code>image.set_from_file(\"filename.png\")</code>."
+"<link href=\"http://python-gtk-3-tutorial.readthedocs.org/en/latest/";
+"cellrenderers.html\">The Python Gtk+ 3 Tutorial - CellRenderers</link>"
 msgstr ""
-"ÏÏÎÏ <code>Gtk.STOCK_CAPS_LOCK_WARNING</code> ÎÎÎÎÎ ÎÏÎÎÎÎÎÏÎÏÎ ÎÎÎÏÎÎ ÎÏÏ "
-"<link href=\"http://developer.gnome.org/gtk3/unstable/gtk3-Stock-Items.html";
-"\">ÏÏÎÎÏÎÎÎ ÎÏÎÎÎÎÎÏÎÏ</link>. ÎÏÎÏÎÏÎÎ ÎÏÎÏÎÏ ÎÎ ÎÏÎÏÎÏÎÎ ÎÏÎÎÎÎÎÏÎÏÎ "
-"ÎÎÎÏÎÎ ÏÏÏÏ ÏÏÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÏÎÏ ÎÎÎÏÎÎÏ, ÏÏ <code>image.set_from_file"
-"(\"filename.png\")</code>."
+"<link href=\"http://python-gtk-3-tutorial.readthedocs.org/en/latest/";
+"cellrenderers.html\">The Python Gtk+ 3 Tutorial - CellRenderers</link>"
 
-#: C/messagedialog.py.page:48(p)
+#: C/model-view-controller.py.page:192(item/p)
 msgid ""
-"<code>format_secondary_text(\"some secondary message\")</code> sets a "
-"secondary message. The primary text becomes bold."
+"<link href=\"http://python-gtk-3-tutorial.readthedocs.org/en/latest/combobox.";
+"html\">The Python Gtk+ 3 Tutorial - ComboBox</link>"
 msgstr ""
-"ÎÎ <code>format_secondary_text(\"some secondary message\")</code> ÎÏÎÎÎÎ ÎÎÎ "
-"ÎÎÏÏÎÏÎÏÎÎ ÎÎÎÏÎÎ. ÎÎ ÏÏÏÏÎÏÎÎ ÎÎÎÎÎÎÎ ÎÎÎÎÏÎÎ ÎÎÏÎÎÎ."
-
-#: C/messagedialog.py.page:58(link) C/messagedialog.c.page:38(link)
-msgid "GtkMessageDialog"
-msgstr "GtkMessageDialog"
-
-#: C/messagedialog.py.page:59(link) C/dialog.py.page:49(link)
-#: C/dialog.c.page:35(link)
-msgid "GtkDialog"
-msgstr "GtkDialog"
+"<link href=\"http://python-gtk-3-tutorial.readthedocs.org/en/latest/combobox.";
+"html\">The Python Gtk+ 3 Tutorial - ComboBox</link>"
 
-#: C/messagedialog.py.page:62(link) C/messagedialog.c.page:40(link)
-#: C/aboutdialog.c.page:38(link)
-msgid "GActionMap"
-msgstr "GActionMap"
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/paned.py.page:21(media)
+msgctxt "_"
+msgid "external ref='media/paned.png' md5='01e36d8a51ee18313616d63d2e15d993'"
+msgstr "external ref='media/paned.png' md5='01e36d8a51ee18313616d63d2e15d993'"
 
-#: C/messagedialog.js.page:7(title)
-msgid "MessageDialog (JavaScript)"
-msgstr "MessageDialog (JavaScript)"
+#: C/paned.py.page:7(info/title)
+msgctxt "text"
+msgid "Paned (Python)"
+msgstr "ÎÎÎÎÏÎÎ (Python)"
 
-#: C/messagedialog.js.page:20(desc)
-msgid "A popup message attached to a window"
-msgstr "ÎÎÎ ÎÏÎÏÏÎÎÏÏÏÎÎÎÎ ÎÎÎÎÏÏÎÎÎÎ ÎÎÎÏÎÎ ÏÎ ÎÎÎ ÏÎÏÎÎÏÏÎ"
+#: C/paned.py.page:17(info/desc)
+msgid "A widget with two adjustable panes"
+msgstr "ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÎ ÎÏÎ ÏÏÎÎÎÏÎÎÎ ÏÎÎÎÏÎÎ"
 
-#: C/messagedialog.js.page:25(p)
-msgid ""
-"A MessageDialog is a modal message dialog, which means a popup that you have "
-"to respond to before you get back to what you were doing in the window that "
-"it's attached to. This one can cause the world to explode (or at least it "
-"says that it can). To make the popup appear when you run this sample, click "
-"on \"Message\" inside of its application menu -- that's the menu that "
-"appears when you click on an application's name in the upper-left screen "
-"corner, next to Activities."
-msgstr ""
-"ÎÎÎÏ MessageDialog ÎÎÎÎÎ ÎÎÎÏ ÎÎÎÎÎÎÏÏÎÎÏÏ ÎÎÎÎÎÎÎÏ ÎÎÎÏÎÎÏÎÏ, ÏÎÏ ÏÎÎÎÎÎÎÎ "
-"ÎÎÎÎ ÎÎÎÎÏÏÎÎÎÎ ÏÏÎÎ ÎÏÎÎÎ ÏÏÎÏÎÎ ÎÎ ÎÏÎÎÏÎÏÎÏÎ ÏÏÎÎ ÎÎ ÎÏÎÏÏÏÎÏÎÏÎ ÏÎ ÏÏÎ "
-"ÎÎÎÎÏÎ ÏÏÎ ÏÎÏÎÎÏÏÎ ÏÏÎ ÎÏÎÎÎ ÎÎÎÎÎ ÏÏÎÏÎÏÏÎÎÎÎÎ. ÎÏÏÏ ÎÏÎÏÎÎ ÎÎ ÏÏÎÎÎÎÎÏÎÎ "
-"ÏÎÎ ÎÎÏÎÎÎ ÏÎÏ ÎÏÏÎÎÏ (Î ÏÎÏÎÎÏÎÏÏÎÎ ÎÎÎÎ ÏÏÎ ÎÏÎÏÎÎ). ÎÎÎ ÎÎ ÎÎÎÎÏÎ ÏÎ "
-"ÎÎÎÎÏÏÎÎÎÎ ÎÎ ÎÎÏÎÎÎÏÏÎÎ ÏÏÎÎ ÎÎÏÎÎÎÎÏÎ ÎÏÏÏ ÏÎ ÎÎÎÎÎÎ, ÏÎÏÎÏÏÎ ÏÏÎ \"Message"
-"\" ÎÎÏÎ ÏÏÎ ÎÎÎÎÏ ÏÎÏ ÎÏÎÏÎÎÎÎÏ ÏÎÏ -- ÎÏÏÏ ÎÎÎÎÎ ÏÎ ÎÎÎÎÏ ÏÎÏ ÎÎÏÎÎÎÎÎÏÎÎ "
-"ÏÏÎÎ ÏÎÏÎÏÎ ÏÏÎ ÏÎÎÎÎ ÎÎÎÏ ÎÏÎÏÎÎÎÎÏ ÏÏÎÎ ÏÎÎÏ ÎÏÎÏÏÎÏÎ ÎÏÎÎÎ ÏÎÏ ÎÎÏÎÎÏ, "
-"ÎÎÏÎÎ ÏÏÎÏ ÎÎÎÏÎÎÎÎÏ."
+#: C/paned.py.page:20(page/title)
+msgid "Paned"
+msgstr "ÎÎ ÏÎÎÎÏÎÎ"
 
-#: C/messagedialog.js.page:26(p)
-msgid ""
-"The difference between a MessageDialog and a <link xref=\"dialog.js"
-"\">Dialog</link> is that a Dialog can contain whatever widgets and content "
-"you want to put in it, whereas a MessageDialog is just a convenient way to "
-"make popups appear with a basic message and buttons."
-msgstr ""
-"Î ÎÎÎÏÎÏÎ ÎÎÏÎÎÏ ÎÎÏÏ MessageDialog ÎÎÎ ÎÎÏÏ <link xref=\"dialog.js"
-"\">ÎÎÎÎÏÎÎÏ</link> ÎÎÎÎÎ ÏÏÎ Î ÎÎÎÎÎÎÎÏ ÎÏÎÏÎÎ ÎÎ ÏÎÏÎÎÏÎÎ ÎÏÎÎÎÎÎÏÎÏÎ "
-"ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÎ ÏÎÏÎÎÏÏÎÎÎÎ ÎÎÎÎÏÎ ÎÎ ÎÎÎÎÏÎ ÎÎÏÎ, ÎÎÏ ÎÎÎÏ "
-"MessageDialog ÎÎÎÎÎ ÎÏÎÎ ÎÎÎÏ ÎÎÎÎÎÏÏ ÏÏÏÏÎÏ ÎÎ ÎÎÎÎÏÎ ÏÎ ÎÎÎÎÏÏÎÎÎÎ ÎÎ "
-"ÎÎÏÎÎÎÏÏÎÏÎ ÎÎ ÎÎÎ ÎÎÏÎÎÏ ÎÎÎÏÎÎ ÎÎÎ ÎÎÏÎÏÎÎ."
+#: C/paned.py.page:22(page/p)
+msgid "Two images in two adjustable panes, horizontally aligned."
+msgstr "ÎÏÎ ÎÎÎÏÎÎÏ ÏÎ ÎÏÎ ÏÏÎÎÎÏÎÎÎ ÏÎÎÎÏÎÎ ÎÏÎÎÏÎÏÎÎ ÏÏÎÎÏÎÏÎÎÎÎÏ."
 
-#: C/messagedialog.js.page:69(p) C/comboboxtext.js.page:65(p)
+#: C/paned.py.page:28(section/code)
+#, no-wrap
 msgid ""
-"All the code for this sample goes in the MessageDialogExample class. The "
-"above code creates a <link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/";
-"gjs/Gtk.Application.html\">Gtk.Application</link> for our widgets and window "
-"to go in."
+"from gi.repository import Gtk\n"
+"import sys\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"Paned Example\", application=app)\n"
+"        self.set_default_size(450, 350)\n"
+"\n"
+"        # a new widget with two adjustable panes,\n"
+"        # one on the left and one on the right\n"
+"        paned = Gtk.Paned.new(Gtk.Orientation.HORIZONTAL)\n"
+"\n"
+"        # two images\n"
+"        image1 = Gtk.Image()\n"
+"        image1.set_from_file(\"gnome-image.png\")\n"
+"        image2 = Gtk.Image()\n"
+"        image2.set_from_file(\"tux.png\")\n"
+"\n"
+"        # add the first image to the left pane\n"
+"        paned.add1(image1)\n"
+"        # add the second image to the right pane\n"
+"        paned.add2(image2)\n"
+"\n"
+"        # add the panes to the window\n"
+"        self.add(paned)\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
 msgstr ""
-"ÎÎÎÏ Î ÎÏÎÎÎÎÏ ÎÎÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÏÎÎÎÎÎÎÎ ÏÏÎÎ ÎÎÎÏÎ "
-"MessageDialogExample. Î ÏÎÏÎÏÎÎÏ ÎÏÎÎÎÎÏ ÎÎÎÎÎÏÏÎÎÎ ÎÎÎ <link href=\"http://";
-"www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Application.html\">Gtk."
-"Application</link> ÎÎÎ ÎÎ ÎÏÎÏÎ ÎÎÏÎ ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÏ ÎÎÎ ÏÎ "
-"ÏÎÏÎÎÏÏÎ."
+"from gi.repository import Gtk\n"
+"import sys\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"Paned Example\", application=app)\n"
+"        self.set_default_size(450, 350)\n"
+"\n"
+"        # a new widget with two adjustable panes,\n"
+"        # one on the left and one on the right\n"
+"        paned = Gtk.Paned.new(Gtk.Orientation.HORIZONTAL)\n"
+"\n"
+"        # two images\n"
+"        image1 = Gtk.Image()\n"
+"        image1.set_from_file(\"gnome-image.png\")\n"
+"        image2 = Gtk.Image()\n"
+"        image2.set_from_file(\"tux.png\")\n"
+"\n"
+"        # add the first image to the left pane\n"
+"        paned.add1(image1)\n"
+"        # add the second image to the right pane\n"
+"        paned.add2(image2)\n"
+"\n"
+"        # add the panes to the window\n"
+"        self.add(paned)\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
+
+#: C/paned.py.page:32(section/title)
+msgid "Useful methods for a Paned widget"
+msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÏÎ ÏÎÎÎÏÎÎ"
 
-#: C/messagedialog.js.page:91(p)
-#| msgid ""
-#| "For this example, all that we have in the window the popup comes out of "
-#| "is a silly warning <link xref=\"label.js\">Label.</link>"
+#: C/paned.py.page:33(section/p)
 msgid ""
-"For this example, all that we have in the window the popup comes out of is a "
-"silly warning <link xref=\"label.js\">Label</link>."
+"To have two vertically aligned panes, use <code>Gtk.Orientation.VERTICAL</"
+"code> instead of <code>Gtk.Orientation.HORIZONTAL</code>. The method "
+"<code>add1(widget1)</code> will add the <code>widget1</code> to the top "
+"pane, and <code>add2(widget2)</code> will add the <code>widget2</code> to "
+"the bottom pane."
 msgstr ""
-"ÎÎÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ, ÏÎÎ ÏÏÎ ÎÏÎÏÎÎ ÏÏÎ ÏÎÏÎÎÏÏÎ ÏÎÏ ÎÎÏÎÎÎÎÎÏÎÎ ÏÎ "
-"ÎÎÎÎÏÏÎÎÎÎ ÎÎÎÎÎ ÎÎÎ ÎÎÏÎÏÎ ÏÏÎÎÎÎÎÏÎÎÎÏÎ <link xref=\"label.js\">Label</"
-"link>."
-
-#: C/messagedialog.js.page:95(title)
-msgid "Creating the application's menu"
-msgstr "ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ ÎÎÎÎÏ ÏÎÏ ÎÏÎÏÎÎÎÎÏ"
+"ÎÎÎ ÎÎ ÎÏÎÏÎ ÎÏÎ ÎÎÎÎÏÎ ÏÏÎÎÏÎÏÎÎÎÎ ÏÎÎÎÏÎÎ, ÏÏÎÏÎÎÎÏÎÎÎÏÏÎ <code>Gtk."
+"Orientation.VERTICAL</code> ÎÎÏÎ ÎÎÎ <code>Gtk.Orientation.HORIZONTAL</"
+"code>. Î ÎÎÎÎÎÎÏ <code>add1(widget1)</code> ÎÎ ÏÏÎÏÎÎÏÎÎ ÏÎ <code>widget1</"
+"code> ÏÏÎ ÎÎÏÏÏÎÎÎ ÏÎÎÎÏÎÎ ÎÎÎ <code>add2(widget2)</code> ÎÎ ÏÏÎÏÎÎÏÎÎ ÏÎ "
+"<code>widget2</code> ÏÏÎ ÎÎÏÏ ÏÎÎÎÏÎÎ."
 
-#: C/messagedialog.js.page:121(p)
+#: C/paned.py.page:40(item/p)
 msgid ""
-"Here, we build the <link xref=\"gmenu.js\">GMenu</link> where we'll be "
-"putting the \"Message\" button which triggers the popup MessageDialog. The "
-"GMenu is the menu that appears when you click the application's name in the "
-"upper-left corner of the screen, next to the Activities menu. Our menu only "
-"has two options in it: Message, and Quit."
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkPaned.html";
+"\">GtkPaned</link>"
 msgstr ""
-"ÎÎÏ, ÎÎÏÎÏÎÎÏÎÎÎÏÎÎ ÏÎ <link xref=\"gmenu.js\">GMenu</link> ÏÏÎÏ ÎÎ ÎÎÎÎÏÎÎ "
-"ÏÎ ÎÎÏÎÏÎ \"Message\" ÏÎÏ ÏÏÎÎÎÎÎÎ ÏÎ ÎÎÎÎÏÏÎÎÎÎ MessageDialog. ÎÎ GMenu "
-"ÎÎÎÎÎ ÏÎ ÎÎÎÎÏ ÏÎÏ ÎÎÏÎÎÎÎÎÏÎÎ ÏÏÎÎ ÏÎÏÎÏ ÏÎ ÏÎÎÎÎ ÏÎÏ ÎÏÎÏÎÎÎÎÏ ÏÏÎÎ ÏÎÎÏ "
-"ÎÏÎÏÏÎÏÎ ÎÏÎÎÎ ÏÎÏ ÎÎÏÎÎÏ, ÎÎÏÎÎ ÏÏÎ ÎÎÎÎÏ ÎÎÎÏÎÎÎÎÏ. ÎÎ ÎÎÎÎÏ ÎÎÏ ÎÏÎÎ ÎÏÎÎ "
-"ÎÏÎ ÎÏÎÎÎÎÎÏ: ÎÎÎÏÎÎ ÎÎÎ ÎÎÎÎÏÎÎÎ."
-
-#: C/messagedialog.js.page:125(title)
-msgid "Creating the MessageDialog"
-msgstr "ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ MessageDialog"
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkPaned.html";
+"\">GtkPaned</link>"
 
-#: C/messagedialog.js.page:141(p)
+#: C/paned.py.page:41(item/p)
 msgid ""
-"To make our MessageDialog a popup attached to the main window, we set its "
-"modal property to true and set it to be \"transient_for\" _window. After "
-"that, we can set what kind of buttons it has and what kind of message it is "
-"(which determines what icon appears next to the message), and write out the "
-"text inside it, before connecting its \"response\" signal to the callback "
-"function which handles it."
+"<link href=\"http://developer.gnome.org/gtk3/stable/gtk3-Standard-";
+"Enumerations.html#GtkOrientation\">Standard Enumerations</link>"
 msgstr ""
-"ÎÎÎ ÎÎ ÎÎÎÎÏÎ ÏÎÎ MessageDialog ÎÎÏ ÎÎÎ ÏÏÎÏÎÏÏÎÎÎÎÎ ÎÎÎÎÏÏÎÎÎÎ ÏÏÎ ÎÏÏÎÎ "
-"ÏÎÏÎÎÏÏÎ, ÎÏÎÎÎÏÎÎ ÏÎÎ ÎÎÎÎÎÎÏÏÎÎÎ ÏÎÏ ÎÎÎÏÏÎÏÎ ÏÎ ÎÎÎÎÎ ÎÎÎ ÏÎ ÎÏÎÎÎÏÎÎ ÎÎ "
-"ÎÎÎÎÎ \"transient_for\" _window. ÎÎÏÎ ÎÏÏ ÎÏÏÏ, ÎÏÎÏÎÏÎÎ ÎÎ ÎÏÎÏÎÏÎÎ ÏÎ "
-"ÎÎÎÎÏÏ ÎÎÏÎÏÎÎ ÎÏÎÎ ÎÎÎ ÏÎ ÎÎÎÎÏÏ ÎÎÎÏÎÎ ÎÎÎÎÎ (ÏÎÏ ÎÎÎÎÏÎÎÎÎ ÏÎ ÎÎÎÎÎÎÎÎÎ "
-"ÎÎÏÎÎÎÎÎÏÎÎ ÎÎÏÎÎ ÏÏÎ ÎÎÎÏÎÎ) ÎÎÎ ÎÎ ÎÏÎÏÏÎÎ ÏÎ ÎÎÎÎÎÎÎ ÎÎÏÎ ÏÎÏ, ÏÏÎÎ ÏÎ "
-"ÏÏÎÎÎÏÎ ÏÎÏ ÏÎÎÎÏÎÏ ÏÎÏ \"response\" ÏÏÎ ÏÏÎÎÏÏÎÏÎ ÎÏÎÎÎÎÎÎÏÎÏ ÏÎÏ ÏÎ "
-"ÏÎÎÏÎÎÎÏÎÎ."
-
-#: C/messagedialog.js.page:142(p)
-msgid "Here are some resources for making your own MessageDialogs:"
-msgstr "ÎÎÏ ÏÏÎÏÏÎÏÎ ÎÎÏÎÎÎÏ ÏÎÎÎÏ ÎÎÎ ÎÎ ÎÎÎÎÏÎ ÏÎ ÎÎÎÎ ÏÎÏ MessageDialogs:"
+"<link href=\"http://developer.gnome.org/gtk3/stable/gtk3-Standard-";
+"Enumerations.html#GtkOrientation\">Standard Enumerations</link>"
 
-#: C/messagedialog.js.page:144(link)
-msgid "List of button types"
-msgstr "ÎÎÏÏÎ ÏÏÎ ÏÏÏÏÎ ÎÎÏÎÏÎÎÏ"
-
-#: C/messagedialog.js.page:145(link)
-msgid "List of message types"
-msgstr "ÎÎÏÏÎ ÏÏÎ ÏÏÏÏÎ ÎÎÎÏÎÎÏÎÏ"
-
-#: C/messagedialog.js.page:172(p)
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/photo-wall.c.page:78(media)
+msgctxt "_"
 msgid ""
-"This function takes two parameters, the MessageDialog and its response_id, "
-"both of which are automatically supplied (you don't have to manually pass "
-"them to it for it to work). Here we use a simple switch to change the "
-"\"warning label\"'s text, depending on which option you select. The "
-"DELETE_EVENT occurs if you press Escape to cancel the MessageDialog, instead "
-"of clicking OK or Cancel. Whatever you select, the popup is destroyed "
-"afterwards."
+"external ref='media/photo-wall.png' md5='f19590d97e8ec029cda3c44b769c11cd'"
 msgstr ""
-"ÎÏÏÎ Î ÏÏÎÎÏÏÎÏÎ ÏÎÎÏÎÎÎ ÎÏÎ ÏÎÏÎÎÎÏÏÎÏÏ, ÏÎÎ MessageDialog ÎÎÎ ÏÎÎ "
-"response_id, ÎÎÎ ÎÎ ÎÏÎ ÏÎÏÏ ÏÎÏÎÏÎÎÏÎÎ ÎÏÏÏÎÎÏÎ (ÎÎÎ ÏÏÎÎÎÎÎÏÎÎ ÎÎ ÏÎÏ "
-"ÏÎÏÎÏÎÏÎ ÎÏÏÏÎÎÏÎ ÏÎ ÎÏÏÏ ÎÎÎ ÎÎ ÎÎÏÎÎÏÎÎ). ÎÎÏ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÎÎÎ ÎÏÎÏ "
-"ÎÎÎÎÏÏÏÎ ÎÎÎ ÎÎÎÎÎÎ ÏÎÏ ÎÎÎÎÎÎÎÏ ÏÎÏ \"warning label\", ÎÎÎÎÎÎÎ ÎÎ ÏÎ ÏÎÎÎ "
-"ÎÏÎÎÎÎÎ ÎÎÎÎÎÎÎÏÎ. Î DELETE_EVENT ÏÏÎÎÎÎÎÎÎ ÎÎÎ ÏÎÏÎÏÎÏÎ ÎÎÎÏÏÎÎ ÎÎÎ ÎÎ "
-"ÎÎÏÏÏÏÎÏÎ ÏÎÎ MessageDialog, ÎÎÏÎ ÎÎ ÏÎÏÎÏÎÏÎ ÎÎÏÎÎÎÎ Î ÎÎÏÏÏÏÎ. Î,ÏÎ ÎÎÎ ÎÎ "
-"ÎÏÎÎÎÎÎÏÎ, ÏÎ ÎÎÎÎÏÏÎÎÎÎ ÎÎÏÎÏÏÏÎÏÎÏÎÎ ÎÎÏÏÏÎÎ."
+"external ref='media/photo-wall.png' md5='f19590d97e8ec029cda3c44b769c11cd'"
 
-#: C/messagedialog.js.page:179(p)
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/photo-wall.c.page:81(media)
+msgctxt "_"
 msgid ""
-"Finally, we create a new instance of the finished MessageDialogExample "
-"class, and set the application running."
+"external ref='media/photo-wall-focused.png' "
+"md5='9f1ceecf3a28c1e468597b093a10cbae'"
 msgstr ""
-"ÎÎÎÎÎÎ, ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ ÎÎÎ ÏÏÎÎÎÎÏÏÏÏÎ ÏÎÏ ÎÎÎÎÎÎÏÏÎÎÎÎÏ ÎÎÎÏÎÏ "
-"MessageDialogExample ÎÎÎ ÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ."
+"external ref='media/photo-wall-focused.png' "
+"md5='9f1ceecf3a28c1e468597b093a10cbae'"
 
-#: C/messagedialog.c.page:7(title)
-msgid "MessageDialog (C)"
-msgstr "MessageDialog (C)"
+#: C/photo-wall.c.page:6(info/title)
+msgctxt "text"
+msgid "Photo Wall (C)"
+msgstr "ÎÏÏÎÎÏÎÏÎÎÏÏ ÏÎÎÏÎÏ (C)"
 
-#: C/messagedialog.c.page:25(p)
-msgid ""
-"To test out the application once it has started running, you can click on "
-"the \"Message Dialog\" tab that appears in the top menubar of the screen."
-msgstr ""
-"ÎÎÎ ÎÎ ÎÎÎÎÎÎÏÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ ÎÏÎÎÏ ÎÏÏÎÏÎÎ ÎÎ ÎÎÏÎÎÎÎÏÎÎ, ÎÏÎÏÎÎÏÎ ÎÎ "
-"ÏÎÏÎÏÎÏÎ ÏÏÎÎ ÎÎÏÏÎÎÎ \"Message Dialog\" ÏÎÏ ÎÎÏÎÎÎÎÎÏÎÎ ÏÏÎÎ ÎÎÏÏÏÎ ÏÎÏ "
-"ÎÏÎÎÎÎÏ ÎÎÎÎÏ ÏÏÎÎ ÎÎÏÎÎ."
+#: C/photo-wall.c.page:9(info/desc)
+msgid "A Clutter image viewer"
+msgstr "ÎÎÎÏ ÏÏÎÎÎÎÎÎÏ ÎÎÎÏÎÏÎ ÏÎ Clutter"
 
-#: C/messagedialog.c.page:36(link)
-msgid "GApplication"
-msgstr "GApplication"
+#: C/photo-wall.c.page:13(credit/name)
+msgid "Chris KÃhl"
+msgstr "Chris KÃhl"
+
+#: C/photo-wall.c.page:22(page/title)
+msgid "Photo Wall"
+msgstr "ÎÏÏÎÎÏÎÏÎÎÏÏ ÏÎÎÏÎÏ"
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/message-board.c.page:36(None)
+#: C/photo-wall.c.page:25(synopsis/p)
 msgid ""
-"@@image: 'media/message-board.ogv'; md5=beb80c4538776dc2cdd26c95abea5027"
+"For this example we will build a simple image viewer using Clutter. You will "
+"learn:"
 msgstr ""
-"@@image: 'media/message-board.ogv'Â md5=beb80c4538776dc2cdd26c95abea5027"
-
-#: C/message-board.c.page:7(title)
-msgid "Message Board (C)"
-msgstr "ÎÎÎÎÎÎÏ ÎÎÎÏÎÎÏÎÏ (C)"
+"ÎÎÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÎÎ ÎÎÏÎÏÎÎÏÎÏÎÏÎÎ ÎÎÎÎ ÎÏÎÏ ÏÏÎÎÎÎÎÎ ÎÎÎÏÎÏÎ "
+"ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ Clutter. ÎÎ ÎÎÎÎÏÎ:"
 
-#: C/message-board.c.page:10(desc)
-msgid "A simple program using WebKitGTK+ and the DOM."
-msgstr "ÎÎÎ ÎÏÎÏ ÏÏÏÎÏÎÎÎÎ ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÎ WebKitGTK+ ÎÎÎ ÏÎ DOM."
+#: C/photo-wall.c.page:27(item/p)
+msgid "How to size and position <code>ClutterActor</code>s"
+msgstr "ÎÏÎÎÎÎÎÏÏÎ ÎÎÎ ÏÎÏÎÎÎÏÎÏÎ ÏÎÏ <code>ClutterActor</code>s"
 
-#: C/message-board.c.page:14(name) C/index.page:12(name)
-msgid "Shaun McCance"
-msgstr "Shaun McCance"
+#: C/photo-wall.c.page:28(item/p)
+msgid "How to place an image in a <code>ClutterActor</code>"
+msgstr "ÎÏÏ ÎÎ ÏÎÏÎÎÎÏÎÏÎÏÎ ÎÎÎ ÎÎÎÏÎÎ ÏÎ ÎÎÎ <code>ClutterActor</code>"
 
-#: C/message-board.c.page:15(email) C/index.page:13(email)
-msgid "shaunm gnome org"
-msgstr "shaunm gnome org"
+#: C/photo-wall.c.page:29(item/p)
+msgid "How to do simple transitions using Clutter's animation framework"
+msgstr ""
+"ÎÏÏ ÎÎ ÎÎÎÎÏÎ ÎÏÎÎÏ ÎÎÏÎÎÎÏÎÎÏ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ ÏÎÎÎÎÏÏ ÎÎÎÎÏÎÏ ÏÎÏ Clutter"
 
-#: C/message-board.c.page:16(years) C/index.page:14(years)
-msgid "2010"
-msgstr "2010"
+#: C/photo-wall.c.page:30(item/p)
+msgid "How to make <code>ClutterActor</code>s respond to mouse events"
+msgstr ""
+"ÎÏÏ ÎÎ ÎÎÎÎÏÎ ÏÎ <code>ClutterActor</code>s ÎÎ ÎÏÎÎÏÎÏÎÎ ÏÏÎ ÏÏÎÎÎÎÏÎ ÏÎÏ "
+"ÏÎÎÏÎÎÎÎÏ"
 
-#: C/message-board.c.page:21(title)
-msgid "Message Board"
-msgstr "ÎÎÎÎÎÎÏ ÎÎÎÏÎÎÏÎÏ"
+#: C/photo-wall.c.page:31(item/p)
+msgid "How to get file names from a directory"
+msgstr "ÎÏÏ ÎÎ ÏÎÏÎÏÎ ÎÎÏÎÎÏÎ ÎÏÏÎÎÎÏ ÎÏÏ ÎÎÎÎ ÎÎÏÎÎÎÎÎ"
 
-#: C/message-board.c.page:26(p)
-msgid "How to display a web page with WebKit."
-msgstr "ÎÏÏ ÎÎ ÎÎÏÎÎÎÏÎÏÎ ÎÎÎ ÎÏÏÎÏÎÎÎÎÎ ÎÎ WebKit."
+#: C/photo-wall.c.page:36(section/title)
+#: C/record-collection.js.page:34(section/title)
+msgid "Introduction"
+msgstr "ÎÎÏÎÎÏÎÎ"
 
-#: C/message-board.c.page:27(p)
+#: C/photo-wall.c.page:37(section/p)
 msgid ""
-"How to manipulate the contents of a web page using WebKit's DOM functions."
+"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 ""
-"ÎÏÏ ÎÎ ÏÎÎÏÎÏÏÎÎÏÎ ÏÎ ÏÎÏÎÎÏÏÎÎÎÎ ÎÎÎÏ ÎÏÏÎÏÎÎÎÎÎÏ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎÏ "
-"ÏÏÎÎÏÏÎÏÎÎÏ DOM ÏÎÏ WebKit."
+"Clutter ÎÎÎÎÎ ÎÎÎ ÎÎÎÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎÎÎÏÏÎÎÎ ÎÏÎÎÎÎÎÏÎ ÎÎÎÏÎÏÏÎ ÏÏÎÏÏÎ "
+"ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ OpenGL ÎÎÎ ÎÏÎÏÎÏÏÎÏÎ ÏÎÎÎÎÏ. ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÎÎÎÏÎÎÎ "
+"ÎÎÎ ÎÎÎÏÏ, ÎÎÎÎ ÎÎÎÏÏÎÎÏ, ÏÎÎÎÎ ÏÎÏ Clutter ÎÎÎ ÎÎÎÎÎÏÏÎÎÎ ÎÎÏÏ ÎÏÎÎÏ ÎÎÎÎ "
+"ÎÎÎÏÏÏÎÎÎÏ ÏÏÎÎÏÎÎÎÎÏÎÏ ÏÏÎÎÎÎÎÏ ÎÎÎÏÎÎÏ."
 
-#: C/message-board.c.page:30(p)
+#: C/photo-wall.c.page:40(section/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+."
+"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 ""
-"ÎÏÏÏ ÏÎ ÎÎÎÎÎÎ ÏÏÎÎÎÏÎÎ ÎÎÎÎÎÎÎÏÏÎ ÎÎ ÏÎ ÎÎÏÏÏÎ ÏÏÎÎÏÎÎÎÎÏÎÏÎÎÏ C ÎÎÎ ÎÎÏÎÎÎ "
-"ÎÎÏÎÎÏÎÏÎ ÏÎÏ GTK+, ÏÏÎÏÎÏÎÎÎÎÎÎÎÏÎÎÎÎÏ ÏÎÏ ÎÎÎÎÎÏÏÎÎÎÏ ÎÎÎ ÏÎÏÎÎÎÏÎÏÎÏ "
-"ÎÏÎÏÎÎÏÎ ÏÏÏÏÎÏÎÎÏÎ ÎÎÎ ÏÎÏ ÏÏÎÎÎÏÎÏ ÏÏÎÎÏÏÎÏÎÏÎ ÎÏÎÎÎÎÎÎÏÎÏ ÏÎ ÏÎÎÎÏÎ. "
-"ÎÎÎÏÎ <link xref=\"image-viewer.c\"/> ÎÎÎ ÎÎ ÎÎÎÎÏÎ ÏÎ ÎÎÏÎÎÎ ÏÎÏ GTK+."
+"ÎÎÎ ÎÎ ÎÎÎÎÎÎÎÏÎÎ ÎÎ ÏÏÎÏÎÏÎÎ ÏÎÎ ÏÏÏÏÎ ÎÎÏ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÎÎÎ ÎÎÎÎ "
+"ÎÎÎÎÎ ÎÎÎÎÎÏÎÎ ÏÎÏ GLib ÎÏÎÏÎÏ. ÎÎ ÏÎÎ ÏÎÎÎÎÏÎÎÏ, ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÎÎ "
+"<code>GSList</code>, ÎÎÎ ÎÎÎÎÎÎÎÎ ÏÏÎÎÎÎÎÎÎ ÎÎÏÏÎ, ÎÎÎ ÎÎ ÎÏÎÏÎÏÎÏÎÎ ÏÎ "
+"<code>ClutterActor</code>s ÎÎÏ ÎÎÎ ÎÎÎ ÎÎÎÎ ÎÎÎ ÎÎÏÎÎÏÎ ÎÎÎÎÏÎÎÎÏ ÎÏÏÎÎÎÏ. "
+"ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÏÎÏÎÏ <code>GDir</code>, ÎÎÎ ÎÎÎÎÎÎÎ ÎÎÎ ÎÏÎÎÏÎÎ ÎÎ "
+"ÎÎÏÎÎÏÎÎÏÏ, ÎÎÎ ÏÏÎÏÏÎÎÎÏÎ ÏÎÏ ÎÎÏÎÎÏÎÎÏ ÏÎÏ ÎÎÎÏÎÎÏ ÎÎÏ ÎÎÎ ÎÎ "
+"ÏÏÎÎÎÎÏÏÏÏÎÏÎÎ ÏÎÏ ÎÎÎÎÏÎÎÎÏ ÏÎÏ ÎÏÏÎÎÎÏ."
 
-#: C/message-board.c.page:43(p)
+#: C/photo-wall.c.page:53(item/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."
+"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 ""
-"ÎÎ GNOME ÏÎÏÎÎÏÎÎ ÏÎ WebKitGTK+, ÎÎÏÎÏÎÎÏÎÏÎÎÎÎ ÏÎÎÏ ÏÏÎÎ ÎÏÏÏÏÏ ÏÎÎÎÎÏÏ ÏÎÏ "
-"WebKit HTML. ÎÎ WebKit ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÎÎÏÎ ÎÏÏ ÏÎ GNOME, ÏÏÎ ÎÏÎÎ ÎÎÎ "
-"ÏÏÎÎÎÎÎ ÎÏÏÎÏÎÎÎÎÏÎ ÏÏÎ ÎÎÎÎÎÎÏÏÎ, ÎÎÎÎ ÎÏÎÏÎÏ ÎÎÎ ÎÎÎÎÎÏÏÎÎÎ ÏÎÎÏÏÎÏÎ "
-"ÎÎÎÏÎÏÏÎ ÏÏÎÏÏÎ ÏÎÏ ÎÏÎÏÎÏÎ ÎÏÎÎÎÎ ÎÎ ÎÎÏÏÎÏÎÎÎÎÎÏÎ ÎÎ CSS."
+"ÎÏÎÎÎÎÏÎ <gui>Gtk+ (ÎÏÎÏ)</gui> ÎÏÏ ÏÎÎ ÎÎÏÏÎÎÎ <gui>C</gui>, ÏÎÏÎÏÏÎ "
+"<gui>ÏÏÎÎÏÎÎÎ</gui> ÎÎÎ ÏÏÎÏÎÎÏÏÏÏÎ ÏÎÏ ÎÎÏÏÎÎÎÏÎÎÎÏ ÏÎÏ ÏÏÎÏ ÎÏÏÎÎÎÎÏ ÎÎÎÎÏ "
+"ÏÎÎÎÎÎÏ. ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ ÏÎ <file>photo-wall</file> ÏÏ ÏÎÎÎÎ ÏÎÏ ÎÏÎÎÏ ÎÎÎ "
+"ÏÎÏ ÎÎÏÎÎÏÎÎÏ."
 
-#: C/message-board.c.page:48(p)
+#: C/photo-wall.c.page:56(item/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."
+"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 ""
-"ÎÎ ÎÏÏÏ ÏÎ ÎÎÎÎÎÎ, ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎ ÎÎÎ ÎÏÎÏ ÏÎÎÎÎÎ ÎÎÎÏÎÎÏÎÏ "
-"ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ WebKit. Î ÏÎÎÎÎÎÏ ÎÎÎÏÎÎÏÎÏ ÎÎ ÎÏÎÏÏÎÏÎÎ ÏÎÎ ÎÎÏÎÎÏÎÎ "
-"ÎÎÏÎÎÎÏ ÎÎÎÎÎÎÎÏ ÎÎÎ ÏÎÎ ÏÏÎÏÎÎÎÎ ÏÎÏ ÏÎ ÎÎÎ ÎÎÏÏÎ ÎÎÎÏÎÎÏÏÎ ÏÎ HTML. ÎÏÎÎ "
-"ÏÎÎ ÎÎÎÎÎÎÏÎ, ÏÏÎÎÎÎÏÏÎÏÏÎ ÎÎ ÏÏÎÎÎÏÎÏÎ ÎÎÎ ÎÏÎÎ ÏÏÎ Anjuta."
+"ÎÎÎÎÏÏÎÏÏÎÎÏÎ ÏÏÎ Î <gui>ÏÏÎÏÎ ÏÎÏ GtkBuilder ÎÎÎ ÎÎÎÏÎÏÎ ÏÏÎÏÏÎ</gui> ÎÎÎÎÎ "
+"ÎÎÎÎÎÏÎÎ ÎÏÎÎÎÎ ÎÎ ÏÏÎÎÎÎÏÎÎ ÏÎ UI ÏÎÎÏÎÎÎÎÎÏÎ ÏÎ ÎÏÏÏ ÏÎ ÎÎÎÎÎÎ. ÎÎÎÎÎÏÏÏÎ "
+"ÏÎ ÎÎÎÎÎÎ <link xref=\"guitar-tuner.c\">ÏÏÎÎÎÏÏÎÏ ÎÎÎÎÏÎÏ</link> "
+"ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎÎ ÎÎÏÎÏÎÎÏÎÏÏÎ ÎÎÎÏÎÏÎÏ."
 
-#: C/message-board.c.page:54(p)
+#: C/photo-wall.c.page:61(item/p)
 msgid ""
-"In Anjuta, click <guiseq><gui>File</gui><gui>New</gui><gui>Project</gui></"
-"guiseq> to open the new project assistant."
+"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 ""
-"ÎÏÎ Anjuta, ÎÎÎÎ <guiseq><gui>ÎÏÏÎÎÎ</gui><gui>ÎÎÎ</gui><gui>ÎÏÎÎ</gui></"
-"guiseq> ÎÎÎ ÎÎ ÎÎÎÎÎÎÏÎ ÏÎÎ ÎÎÎ ÎÎÎÎÏ ÎÏÎÎÏ."
+"ÎÎÎÏÎÎÏÎÎÎÏÏÎ <gui>ÏÏÎÎÎÏÎ ÎÎÏÏÎÏÎÎÏÎ ÏÎÎÎÏÏÎ</gui>. ÎÏÎÎ ÎÏÏÎÎÎÎ ÏÎÎÎÎÎ, "
+"ÎÏÎÎÎÎÏÎ <em>clutter-1.0</em> ÎÏÏ ÏÎ ÎÎÏÏÎ ÎÎÎ ÎÎ ÏÏÎÏÎÏÎÎÎÎÎÏÎ ÏÎ "
+"ÎÎÎÎÎÎÎÎÎÎ Clutter ÏÏÎ ÎÏÎÎ ÏÎÏ."
 
-#: C/message-board.c.page:56(p)
-msgid ""
-"Select <gui>GTK+ (simple)</gui> on the <gui>C</gui> tab, and click "
-"<gui>Continue</gui>."
-msgstr ""
-"ÎÏÎÎÎÎÏÎ <gui>GTK+ (ÎÏÎÏ)</gui> ÏÏÎÎ ÎÎÏÏÎÎÎ <gui>C</gui> ÎÎÎ ÎÎÎÎ "
-"<gui>ÏÏÎÎÏÎÎÎ</gui>."
+#: C/photo-wall.c.page:74(section/title)
+msgid "A look at Photo Wall"
+msgstr "ÎÎÎ ÎÎÏÎÎ ÏÏÎ ÏÏÏÎÎÏÎÏÎÎÏ ÏÎÎÎÎÎ"
 
-#: C/message-board.c.page:58(p)
+#: C/photo-wall.c.page:75(section/p)
+msgid "Our image viewer presents the user with a wall of images."
+msgstr "Î ÏÏÎÎÎÎÎÎÏ ÎÎÎÏÎÎÏ ÎÎÏ ÏÎÏÎÏÏÎÎÎÎÎ ÏÎÎ ÏÏÎÏÏÎ ÎÎ ÎÎÎÎ ÏÎÎÏÎ ÎÎÎÏÎÏÎ."
+
+#: C/photo-wall.c.page:79(section/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>."
+"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 ""
-"ÎÏÎÏÎÎÏÏÏÏÎ ÏÎÏ ÎÎÏÏÎÎÎÏÎÎÎÏ ÏÎÏ ÏÏÎ ÏÎÎÎÎÎ <gui>ÎÎÏÎÎÎÏ ÏÎÎÏÎÏÎÏÎÎÏ</gui>. "
-"ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ <input>ÏÎÎÎÎÎ ÎÎÎÏÎÎÏÎÏ</input> ÎÎÎ ÏÎ ÏÎÎÎÎ ÏÎÏ ÎÏÎÎÏ. ÎÎÎÎ "
-"<gui>ÏÏÎÎÏÎÎÎ</gui>."
+"ÎÏÎÎ ÎÎÎÎÏÎÎ ÎÎÎÎ ÏÎ ÎÎÎ ÎÎÎÏÎÎ, ÎÎÎÎÎÏÎÎ ÎÎÎ ÎÎ ÎÎÎÎÏÎÎ ÏÎÎ ÏÎÏÎÎÏÎ "
+"ÏÏÎÎÎÎÎÏ. ÎÏÎÎ ÎÎÎÎÏÎÎ ÎÎÎÎ ÏÎ ÎÎÎ ÎÏÏÎÎÏÎÎÎÎ ÎÎÎÏÎÎ ÎÏÎÏÏÏÎÏÎÏÎÎ ÏÏÎÎ "
+"ÎÏÏÎÎÎ ÏÎÏ ÎÎÏÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÎÎÎ ÎÎÎÎÏÎ ÎÎ ÏÎÎ ÎÎÎÎ ÎÎÎÏÎÎÎÎ ÏÏÎ 500 ms."
+
+#: C/photo-wall.c.page:85(section/title)
+msgid "Initial setup"
+msgstr "ÎÏÏÎÎÎ ÏÏÎÎÎÏÎ"
 
-#: C/message-board.c.page:61(p)
+#: C/photo-wall.c.page:86(section/p)
 msgid ""
-"Disable the <gui>Use GtkBuilder for user interface</gui> option as this "
-"tutorial builds the user-interface manually."
+"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 ""
-"ÎÏÎÎÎÏÎÎÏÎÎÎÏÏÎ ÏÎÎ ÎÏÎÎÎÎÎ <gui>ÏÏÎÏÎ GtkBuilder ÎÎÎ ÎÎÎÏÎÏÎ ÏÏÎÏÏÎ</gui> "
-"ÎÎÎÏÏ ÎÏÏÏ ÏÎ ÎÎÎÎÎÎ ÎÎÏÎÏÎÎÏÎÎÎÎ ÏÎ ÎÎÎÏÎÏÎ ÏÏÎÏÏÎ ÏÎÎÏÎÎÎÎÎÏÎ."
+"ÎÎ ÏÎÏÎÎÎÏÏ ÏÎÎÎÎ ÎÏÎÎÎÎ ÏÎÏÎÎÏÎÎ ÏÎÎÎÎÏÏ ÎÏÎÏÎÎÏÏ ÎÎÎ ÎÎÏÎÎÎÎÏÎÏ ÏÎÏ ÎÎ "
+"ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÏÏÎÏ ÏÎÏÎÎÎÏÏ ÎÎÏÏÎÏÎÏ. ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ ÎÏÏÏ ÏÏ ÎÎÎÏÎÏÎ ÎÎÎ "
+"ÎÎÎÎÏ ÎÎÏÏÎÏÎÏ. ÎÎÏÎÎÏÎÏÏÎ ÎÏÏÏÎ ÏÎÎ ÎÏÎÎÎÎ ÏÏÎÎ ÎÏÏÎ ÏÎÏ <file>src/main.c</"
+"file>:"
 
-#: C/message-board.c.page:64(p)
+#: C/photo-wall.c.page:89(section/code)
+#, no-wrap
 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>."
+"\n"
+"#include &lt;clutter/clutter.h&gt;\n"
+"\n"
+"#define STAGE_WIDTH  800\n"
+"#define STAGE_HEIGHT 600\n"
+"\n"
+"#define THUMBNAIL_SIZE 200\n"
+"#define ROW_COUNT (STAGE_HEIGHT / THUMBNAIL_SIZE)\n"
+"#define COL_COUNT (STAGE_WIDTH  / THUMBNAIL_SIZE)\n"
+"#define THUMBNAIL_COUNT (ROW_COUNT * COL_COUNT)\n"
+"\n"
+"#define ANIMATION_DURATION_MS 500\n"
+"\n"
+"#define FOCUS_DEPTH 100.0\n"
+"#define UNFOCUS_DEPTH 0.0\n"
+"\n"
+"#define IMAGE_DIR_PATH \"./berlin_images/\"\n"
+"\n"
+"static GSList *actor_list = NULL;\n"
+"static GSList *img_path_list = NULL;\n"
+"\n"
+"typedef struct Position\n"
+"{\n"
+"    float x;\n"
+"    float y;\n"
+"}\n"
+"Position;\n"
+"\n"
+"static Position origin = {0, 0};\n"
+"\n"
 msgstr ""
-"ÎÏÎÏÎÎ ÎÎ ÏÎÎÏÎ ÏÏÎ Anjuta ÏÏÎ ÏÏÎÏÎÎÎÏÎÎÎÎÏÎ WebKitGTK+ ÎÎÎ ÎÏÏÏ ÏÎ ÎÏÎÎ. "
-"ÎÏÎ ÏÎÎÎÎÎ <gui>ÎÏÎÎÎÎÎÏ ÎÏÎÎÏ</gui>, ÎÏÎÎÎÎÏÎ <gui>ÏÏÎÎÎÏÎ ÎÎÏÏÎÏÎÎÏÎ "
-"ÏÎÎÎÏÏÎ</gui>. ÎÎÎÎ <gui>ÏÏÎÎÏÎÎÎ</gui>. ÎÏÎ ÏÎÎÎÎÎ <gui>ÏÏÎÎÎÏÎ ÎÎÏÏÎÏÎÎÏÎ "
-"ÏÎÎÎÏÏÎ</gui>, ÏÎÎÎÎÏÏÏÎ <gui>webkitgtk-3.0</gui>."
+"\n"
+"#include &lt;clutter/clutter.h&gt;\n"
+"\n"
+"#define STAGE_WIDTH  800\n"
+"#define STAGE_HEIGHT 600\n"
+"\n"
+"#define THUMBNAIL_SIZE 200\n"
+"#define ROW_COUNT (STAGE_HEIGHT / THUMBNAIL_SIZE)\n"
+"#define COL_COUNT (STAGE_WIDTH  / THUMBNAIL_SIZE)\n"
+"#define THUMBNAIL_COUNT (ROW_COUNT * COL_COUNT)\n"
+"\n"
+"#define ANIMATION_DURATION_MS 500\n"
+"\n"
+"#define FOCUS_DEPTH 100.0\n"
+"#define UNFOCUS_DEPTH 0.0\n"
+"\n"
+"#define IMAGE_DIR_PATH \"./berlin_images/\"\n"
+"\n"
+"static GSList *actor_list = NULL;\n"
+"static GSList *img_path_list = NULL;\n"
+"\n"
+"typedef struct Position\n"
+"{\n"
+"    float x;\n"
+"    float y;\n"
+"}\n"
+"Position;\n"
+"\n"
+"static Position origin = {0, 0};\n"
+"\n"
+
+#: C/photo-wall.c.page:123(section/title)
+msgid "Jumping into the code"
+msgstr "ÎÎÏÎÎÎÏÎ ÏÏÎÎ ÎÏÎÎÎÎ"
 
-#: C/message-board.c.page:70(p)
+#: C/photo-wall.c.page:124(section/p)
 msgid ""
-"After you finish the new project assistant, open the file <file>src/main.c</"
-"file> from either the <gui>Project</gui> or the <gui>File</gui> tab. Anjuta "
-"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:"
+"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 ""
-"ÎÏÎÏ ÏÎÎÎÎÏÏÎÏÎ ÎÎ ÏÎÎ ÎÎÎÎÏ ÏÎÏ ÎÎÎÏ ÎÏÎÎÏ, ÎÎÎÎÎÏÎ ÏÎ ÎÏÏÎÎÎ <file>src/"
-"main.c</file> ÎÎÏÎ ÎÏÏ ÏÎ <gui>ÎÏÎÎ</gui> Î ÎÏÏ ÏÎÎ ÎÎÏÏÎÎÎ <gui>ÎÏÏÎÎÎ</"
-"gui>. ÎÎ Anjuta ÎÎ ÏÎ ÎÎÎÎÏÎÎ ÎÎ ÎÎÏÎÎÎ ÎÎÏÎÎÏ ÎÏÎÎÎÎ GTK+ ÎÏÏ ÏÎ ÏÏÏÏÏÏÎ "
-"ÏÎÏ. ÎÏÎÏ ÎÎÎÎÎÏÏÎÎÎÏÎ ÎÎÎ ÎÏÎÎ WebKit, ÏÏÎÎÎÎÎÏÏÎ ÏÏÏÏÎ ÎÎ ÏÏÎÏÎÏÎÎÎÎÎÏÎ "
-"ÏÎÏ ÎÎÏÎÎÎÎÎÏ WebKit. ÎÎÏÎ ÏÎ ÎÏÎÎÎÎ ÏÎÏ ÏÎÏÎÎÏÎÎ <code>gtk/gtk.h</code>, "
-"ÏÏÎÏÎÎÏÏÎ ÏÎÎ ÏÎÏÎÎÎÏÏ ÎÏÎÎÎÎ:"
+"ÎÎ ÎÎÎÎÎÎÏÎÏÎÎ ÏÎÏÎÎÎÏÎÏ ÎÎÎ ÎÎÏÎÎ ÏÏÎ ÏÏÎÎÏÏÎÏÎ <code>main()</code> ÏÏ "
+"ÏÏÎÎÎÎ. ÎÏÎÎÏÎ ÎÎ ÏÏÎÎÏÎÏÎÏÎÎ ÏÎÏ ÎÎÎÎÏ ÎÎÏÏÎÏÎÏ ÎÏÎÎÎÎ ÎÎÏÏÎÎÎÏÏÏ. ÎÎÎÎÎÏÎ "
+"ÏÎ <file>src/main.c</file> ÎÎÎ ÎÎ ÏÎÏÎÎÏÎÎ ÎÏÏÎÎ ÏÎÎ ÏÏÎÎÏÏÎÏÎ <code>main()</"
+"code>. ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÎÏÎÏÎÏÎ ÏÎ ÏÏÎÎÏÏÎÏÎ <code>create_window()</code> "
+"ÎÎÎÏÏ ÎÎÎ ÏÎ ÏÏÎÎÎÎÏÎÎÏÏÎ ÏÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ."
 
-#: C/message-board.c.page:77(code)
+#: C/photo-wall.c.page:127(section/code)
 #, no-wrap
-msgid "#include &lt;webkit/webkit.h&gt;"
-msgstr "#include &lt;webkit/webkit.h&gt;"
-
-#: C/message-board.c.page:79(p)
 msgid ""
-"Verify that everything works by building what you have so far. Click "
-"<guiseq><gui>Build</gui><gui>Build Project</gui></guiseq> or just press "
-"<keyseq><key>Shift</key><key>F7</key></keyseq>. The first time you build, "
-"you will be asked for some configure options. Just accept the defaults and "
-"click <gui>Execute</gui>."
+"\n"
+"int\n"
+"main(int argc, char *argv[])\n"
+"{\n"
+"    ClutterColor stage_color = { 16, 16, 16, 255 };\n"
+"    ClutterActor *stage = NULL;\n"
+"\n"
+"    clutter_init(&amp;argc, &amp;argv);\n"
+"\n"
+"    stage = clutter_stage_get_default();\n"
+"    clutter_actor_set_size(stage, STAGE_WIDTH, STAGE_HEIGHT);\n"
+"    clutter_stage_set_color(CLUTTER_STAGE (stage), &amp;stage_color);\n"
+"\n"
+"    load_image_path_names();\n"
+"\n"
+"    guint row = 0;\n"
+"    guint col = 0;\n"
+"    for(row=0; row &lt; ROW_COUNT; ++row)\n"
+"    {\n"
+"        for(col=0; col &lt; COL_COUNT; ++col)\n"
+"        {\n"
+"            GSList *img_path_node = g_slist_nth(img_path_list, (row * COL_COUNT) + col);\n"
+"            ClutterActor *actor = clutter_texture_new_from_file((gchar *)(img_path_node-&gt;data), NULL);\n"
+"            initialize_actor(actor, row, col);\n"
+"            clutter_container_add_actor(CLUTTER_CONTAINER(stage), actor);\n"
+"            actor_list = g_slist_prepend(actor_list, actor);\n"
+"        }\n"
+"    }\n"
+"\n"
+"    /* Show the stage. */\n"
+"    clutter_actor_show(stage);\n"
+"\n"
+"    /* Start the clutter main loop. */\n"
+"    clutter_main();\n"
+"\n"
+"    return 0;\n"
+"}"
 msgstr ""
-"ÎÏÎÎÎÎÎÎÏÏÏÎ ÏÏÎ ÏÎÎ ÎÎÏÎÎÏÎÏÎ ÎÎ ÏÎÎ ÎÎÏÎÏÎÎÏÎ ÏÎÏ ÎÏÎÏÎ ÎÎÎÎÎ ÎÎÏÏÎ ÏÏÏÎ. "
-"ÎÎÎÎ <guiseq><gui>ÎÎÏÎÏÎÎÏÎ</gui><gui>ÎÏÎÎ ÎÎÏÎÏÎÎÏÎÏ</gui></guiseq> Î ÎÏÎÎ "
-"ÏÎÏÎÏÏÎ <keyseq><key>Shift</key><key>F7</key></keyseq>. ÎÎÎ ÏÏÏÏÎ ÏÎÏÎ ÏÎÏ "
-"ÎÎÏÎÏÎÎÏÎÎÎÏÎ, ÎÎ ÏÎÏ ÎÎÏÎÎÎÎ ÎÎÎ ÎÎÏÎÎÎÏ ÎÏÎÎÎÎÎÏ ÏÏÎÎÎÏÎÏ. ÎÏÎÎ "
-"ÎÏÎÎÎÏÏÎÎÏÎ ÏÎÏ ÏÏÎÎÏÎÎÎÎÎÏ ÎÎÎ ÎÎÎÎ <gui>ÎÎÏÎÎÎÏÎ</gui>."
+"\n"
+"int\n"
+"main(int argc, char *argv[])\n"
+"{\n"
+"    ClutterColor stage_color = { 16, 16, 16, 255 };\n"
+"    ClutterActor *stage = NULL;\n"
+"\n"
+"    clutter_init(&amp;argc, &amp;argv);\n"
+"\n"
+"    stage = clutter_stage_get_default();\n"
+"    clutter_actor_set_size(stage, STAGE_WIDTH, STAGE_HEIGHT);\n"
+"    clutter_stage_set_color(CLUTTER_STAGE (stage), &amp;stage_color);\n"
+"\n"
+"    load_image_path_names();\n"
+"\n"
+"    guint row = 0;\n"
+"    guint col = 0;\n"
+"    for(row=0; row &lt; ROW_COUNT; ++row)\n"
+"    {\n"
+"        for(col=0; col &lt; COL_COUNT; ++col)\n"
+"        {\n"
+"            GSList *img_path_node = g_slist_nth(img_path_list, (row * COL_COUNT) + col);\n"
+"            ClutterActor *actor = clutter_texture_new_from_file((gchar *)(img_path_node-&gt;data), NULL);\n"
+"            initialize_actor(actor, row, col);\n"
+"            clutter_container_add_actor(CLUTTER_CONTAINER(stage), actor);\n"
+"            actor_list = g_slist_prepend(actor_list, actor);\n"
+"        }\n"
+"    }\n"
+"\n"
+"    /* Show the stage. */\n"
+"    clutter_actor_show(stage);\n"
+"\n"
+"    /* Start the clutter main loop. */\n"
+"    clutter_main();\n"
+"\n"
+"    return 0;\n"
+"}"
 
-#: C/message-board.c.page:85(p)
+#: C/photo-wall.c.page:165(item/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."
+"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 ""
-"ÎÏÏÎ ÎÎ ÎÏÎÏÎÎÏÎ ÎÎ ÏÏÎÎÎÏÎ ÏÎ ÏÏÏÎÏÎÎÎÎ. ÎÎÎÎ <guiseq><gui>ÏÏÎÎÎÎÎ</"
-"gui><gui>ÎÎÏÎÎÎÏÎ</gui></guiseq> Î ÎÏÎÎ ÏÎÏÎÏÏÎ <key>F3</key>. ÎÎ ÏÏÎÏÎÎ ÎÎ "
-"ÎÎÎÏÎ ÎÎÎ ÎÎÎÎÎ ÏÎÏÎÎÏÏÎ."
-
-#: C/message-board.c.page:91(title)
-msgid "Lay out your window and web view"
-msgstr "ÎÎÎÏÎÎÏÎÏÎ ÏÎÏ ÏÎÏÎÎÏÏÎÏ ÏÎÏ ÎÎÎ ÏÏÎÎÎÎÎ ÎÏÏÎÏ"
+"ÎÏÎÎÎÎ 4: <code>ClutterColor</code> ÎÏÎÏÏÎÎÎ ÎÏÎÎÎÎÏÎÏ ÏÎÏ ÏÎÎÎÏ ÎÏÎÎÎÎÎÏ, "
+"ÏÏÎÏÎÎÎÏ, ÎÎÎÎÎÎÎÏ ÎÎÎ ÎÎÎÏÎÎÎÎÎÏ (ÎÎÏÎ). ÎÎ ÎÏÏÎÏ ÏÎÎÏÎ ÎÏÏ 0-255. ÎÎÎ "
+"ÎÎÎÏÎÎÎÎÎ ÏÎÎÎ 255 ÎÎÎÎÎ ÎÎÎÎÏÎÎÎÏ."
 
-#: C/message-board.c.page:93(p)
+#: C/photo-wall.c.page:166(item/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:"
+"Line 7: You must initialize Clutter. If you forget to do this, you will get "
+"very strange errors. Be warned."
 msgstr ""
-"ÎÏÏÎ ÏÎÏ ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÏÎ ÎÎÎ ÏÎÏÎÎÏÏÎ, ÎÎÎÎÎ ÎÎÎÏÏÏ ÎÎ ÎÎÎÎÎÎÏÎÏÎ ÎÎÏÎÎÎÎ "
-"ÎÎ ÏÎ WebKit. ÎÎÎ ÎÏÏÏ ÏÎ ÎÎÎÎÎÎ, ÎÎ ÎÎÎÎÎÏÏÎÎÎÎÎ ÎÎÎ ÎÎÏÎÏÏÏÎÏÎ ÎÎÎÎÎÎÎÏ "
-"ÎÎÎ ÎÎÎ ÏÏÎÎÎÎÎ ÎÏÏÎÏ ÎÎÎ ÏÎÎÎÏÎÏÎÏÎÎ ÏÎÏÏ ÏÎ ÎÎÎ ÏÎÏÎÎÏÏÎ. ÎÏÎÎÏÎ ÏÎ "
-"ÏÏÎÎÏÏÎÏÎ <code>create_window</code> ÎÎÎ ÎÎÏÎÎÎÏÎÏÏÎÏÏÎ ÏÎÎ ÎÎ ÏÎÎ ÏÎÏÎÎÎÏÏ:"
+"ÎÏÎÎÎÎ 7: ÎÏÎÏÎÎ ÎÎ ÎÏÏÎÎÎÏÎÎÎÏÎÏÎ ÏÎ Clutter. ÎÎÎ ÏÎ ÎÎÏÎÏÎÏÎ, ÎÎ ÏÎÏÎÏÎ "
+"ÏÎÎÏ ÏÎÏÎÎÏÎÎ ÏÏÎÎÎÎÏÎ. ÎÏÎÎÎÎÎÏÎÎÎÎÎÎÎÏÎ."
 
-#: C/message-board.c.page:133(p)
+#: C/photo-wall.c.page:167(item/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."
+"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 ""
-"ÎÎÎÎÎÏÏÎÎÏÏÎ ÏÏÏÏÎ ÎÎÎ ÎÎÏÎÎÎÎÎÎÎÎ <code>GtkWindow</code> ÎÎÎ ÎÏÎÏÏÎ ÏÎÎ "
-"ÏÎÏÎÎ ÏÎ ÏÏÎÎÏÎÎÎÎÎÎÎÎ ÎÎÎÎÎÎÏ ÏÎÏ. ÎÏÎÎÎÏÏÎ ÎÏÎÏÎÏ ÏÎ ÏÏÎÎÏÏÎÏÎ "
-"<code>gtk_main_quit</code> ÎÎ ÏÎ ÏÎÎÎ <code>delete-event</code>. ÎÎ ÏÎÎÎ "
-"<code>delete-event</code> ÎÎÏÎÎÏÎÏÎÎ ÏÏÎÎ ÏÎ ÏÎÏÎÎÏÏÎ ÎÎÎÎÎÎÎ. Î ÏÏÎÎÏÏÎÏÎ "
-"<code>gtk_main_quit</code> ÎÎÎÎÎ ÏÎÎÎÎ ÏÎÏ GTK ÎÎÎ ÎÎÎÎÏÎÎÎÎÏÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ."
+"ÎÏÎÎÎÎÏ 9-11. ÎÎÏ ÏÎÎÏÎÎÏÎÎ ÏÎÎ ÏÏÎÎÏÎÎÎÎÎ <code>ClutterStage</code> ÏÎÏ "
+"ÎÏÎÎÎÎ ÎÏÏ <code>clutter_init</code>. ÎÏÎÎÏÎ ÎÏÎÎÎÏÎÎ ÏÎ ÎÎÎÎÎÎÏ "
+"ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎÏÏ ÎÏÎÏÎÎÏÏ ÎÏÏ ÏÎÎ ÏÏÎÎÎÎÏÎÎÎÎ ÎÎÏÏÎÏÎ ÎÎÎ ÏÎ ÎÎÎÏÎÏÎÏÎ "
+"ÏÎÏ <code>ClutterColor</code> ÏÎÏ ÎÏÎÎÏ ÎÏÎÏÎÎÎ."
 
-#: C/message-board.c.page:139(p)
+#: C/photo-wall.c.page:168(note/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."
+"A <code>ClutterStage</code> is the top-level <code>ClutterActor</code> onto "
+"which other <code>ClutterActor</code>s are placed."
 msgstr ""
-"ÎÏÎÎÏÎ ÎÎÎÎÎÏÏÎÎÏÏÎ ÎÎÎ ÎÎÎÎÏÎ ÏÎÎÎÏÎÎ ÎÎÎ ÏÏÎÏÎÎÏÏÎ ÏÎ ÏÏÎ ÏÎÏÎÎÏÏÎ. ÎÎÎ "
-"ÏÎÏÎÎÏÏÎ ÎÏÎÏÎÎ ÎÎ ÎÏÎÏÎ ÎÏÎÎ ÎÎÎ ÎÎÎÎÎÎÎÏ ÎÏÎÎÏÏÎÎÏ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ, ÎÏÏÎ "
-"ÏÏÎÎÎÎÏÏÎÏÏÎ ÏÎ ÏÏÎÏÎ ÎÎÏÏ ÏÎÎÎÏÎÎÏ ÎÎÎ ÏÏÎÏÎÎÎÎ ÏÎÎÎÎÏÎÏÎ ÎÏÎÏÎÎÏÎ "
-"ÏÏÏÏÎÏÎÎÏÎ. ÎÎ ÎÎÏÏÎÏÎ ÏÏÎÏÎÎ ÏÏÎ <code>gtk_box_new</code> ÎÏÎÎÎÎ ÏÎÎ "
-"ÏÎÏÏÏÎÏÎ ÏÏÎÏÎÎÏÏÏÎÏ (ÏÎ ÎÎÎÎÎÎÏÏÎÎÏÎÎÎ) ÎÎÏÎÎÏ ÎÎÎÎ ÎÏÎÎÏÏÎÎÎÏ ÎÎÎ Î "
-"ÎÏÏÎÎÎÎ ÎÏÎÎÎÎ ÎÎÎÎÎ ÎÎÎ ÏÎÏÎÎÏÎÎÎÎ ÎÎÎ ÎÎÎÎÎÎÏÏÎÎÏÎÎÏÎ ÎÏÏÏ ÎÏÏ ÏÎÎ ÏÎ "
-"ÎÎÏÎÎÎÎÎÎÎÎ."
+"ÎÎÎ <code>ClutterStage</code> ÎÎÎÎÎ ÎÎÏÏÎÏÎÏ ÎÏÎÏÎÎÎÏ <code>ClutterActor</"
+"code> ÏÏÎ ÎÏÎÎÎ ÏÎÏÎÎÎÏÎÏÎÏÎÎ ÎÎÎÎÎ <code>ClutterActor</code>."
 
-#: C/message-board.c.page:145(p)
+#: C/photo-wall.c.page:170(item/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."
+"Line 12: Here we call our function for getting the image file paths. We'll "
+"look at this in a bit."
 msgstr ""
-"ÎÏÎÎÏÎ ÎÎÎÎÎÏÏÎÎÎÏÏÎ ÎÎÎ ÎÎÏÎÎÎÎÎÎÎÎ <code>GtkEntry</code> ÎÎÎ ÏÎÎÎÏÎÏÎÏÎ ÏÎ "
-"ÏÏÎ ÏÎÎÎÏÎÎ. ÎÎ ÏÏÎÏÎ ÎÎÎ ÏÎÏÎÏÏÎ ÏÏÎÏÎÎ ÏÏÎ <code>gtk_box_pack_start</code> "
-"ÎÎÎÎÏÎÎÎÎ ÏÏÎ Î ÎÎÏÎÏÏÏÎÏÎ ÎÎÎ ÎÎ ÏÏÎÏÎÎ ÎÎ ÏÎÏÎÎ ÎÏÎÏÎÎÎÎ ÏÏÏÎ ÏÎÏ ÏÎ "
-"ÏÎÎÎÏÎÎ ÎÏÎÎ ÎÎÎÎÎÏÎÎÎ. ÎÎ ÏÎÏÎÏÏÎ ÏÏÎÏÎÎ ÎÎÎÎÎ Î ÏÎÏÏÏÎÏÎ ÏÏÎÏÎÎÏÏÏÎÏ ÏÎÏ "
-"ÎÎÎÎÏÎ ÎÏÏÏ ÎÏÏ ÏÎÎ ÎÎÏÎÏÏÏÎÏÎ. ÎÎ ÎÏÏÎ ÏÎÎ ÏÎÏÎÏÏÏÏÎ, ÎÏÎÎÎÏÎ ÏÎ ÏÏÎÏÎÎÏÏÏÎ "
-"ÏÎ ÎÎÎÎÎ, ÎÏÎÎÎÎ ÎÏÎÏÏÎÏÎÏÎ ÏÏÎ ÏÎÎÎÏÎÎ ÎÎ ÏÎÎÏÎÏÏÎÎ ÏÎÎ ÏÎ ÏÏÎÏÎÎÏÏÏÎ."
+"ÎÏÎÎÎÎ 12: ÎÎÏ ÎÎÎÎÏÎÎ ÏÎ ÏÏÎÎÏÏÎÏÎ ÎÎÏ ÎÎÎ ÎÎÏÎ ÏÏÎ ÎÎÎÎÏÎÎÏÎ ÎÏÏÎÎÎÏ "
+"ÎÎÎÏÎÎÏ. ÎÎ ÏÎ ÎÎÏÎÎ ÏÎ ÎÎÎÎ."
 
-#: C/message-board.c.page:152(p)
+#: C/photo-wall.c.page:171(item/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."
+"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 ""
-"ÎÏÎÎ ÏÎÎ ÏÏÎÏÎÎÎÎ ÎÎÎÏ ÏÏÎÎÎÎÎÏ ÎÏÏÎÏ, ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎ ÎÎÎ ÎÏÎÎÏÎÎÎÎ "
-"ÏÎÏÎÎÏÏÎ ÎÎÎ ÎÎ ÎÏÎÎ ÎÎÏÎ ÏÎÏ. ÎÎ ÎÏÎÎÏÎÎÎÎ ÏÎÏÎÎÏÏÎ ÎÎ ÏÎÏÎÎÎÏÎÏÎÎ ÎÏÎÎÎÎÏ "
-"ÎÏÎÎÏÎÏ ÏÏÎ ÎÎÎÎÎ ÎÎÎ ÎÎÏÏ ÏÏÎÎ ÏÏÎÎÎÎÎÏÎÎ ÎÎÎ ÎÎ ÎÏÎÏÏÎÏÎÎ ÏÎÎ ÏÏÎÎÎÎÎ ÏÎÏ "
-"ÎÏÏÎÏ ÎÏÏ ÏÎ ÎÎÎÎÏÎÎ ÏÎÎÏ ÏÎÏ ÎÎÏÎÎÏ. ÎÏÏÎ ÏÎ ÏÎÏÎ, ÏÎÏÎÎÏÎ <code>TRUE</"
-"code> ÎÎÎ <code>TRUE</code> ÏÏÎ <code>gtk_box_pack_start</code> ÎÎÎ ÎÎ "
-"ÎÏÎÏÏÎÏÎÏÎ ÏÏÎ ÎÏÎÎÏÎÎÎÎ ÏÎÏÎÎÏÏÎ (ÎÎÎ ÏÏÎÎÏÏÏ ÏÏÎÎ ÏÏÎÎÎÎÎ ÎÏÏÎÏ) ÎÎ "
-"ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÎÏÎÎÎÎÎÏÎÏÎ ÎÎÎÎÎÏÎÎÎ ÏÏÏÎ ÏÏÎ ÏÎÎÎÏÎÎ."
+"ÎÏÎÎÎÎÏ 14-26: ÎÎÏ ÏÏÎÎÎÎÎÏÎÎ ÏÎ <code>ClutterActor</code>s, ÏÏÏÏÏÏÎ ÏÏÎ "
+"ÎÎÎÏÎÏÎ ÎÎÎ ÏÎÏÎÎÎÏÎÏÎ ÏÎÏÏ ÏÏÎ ÏÎÎÎÎÎ ÏÎÏÏ ÏÏÎÎ ÏÎÎÏÎ ÎÎÎÏÎÎÏ. ÎÎ ÏÎ ÎÎÏÎÎ "
+"ÎÎÏÏÎÎÎÏÏÏ ÏÏÎÎ ÎÏÏÎÎÎÎ ÎÎÏÏÎÏÎ."
 
-#: C/message-board.c.page:159(p)
+#: C/photo-wall.c.page:172(item/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:"
+"Line 29: Show the stage and <em>all its children</em>, meaning our images."
 msgstr ""
-"ÎÎÎÎÎÎ, ÎÎÎÎÎÏÏÎÎÎÏÎ ÎÎÎ <code>WebKitWebView</code> ÎÎÎ ÏÎ ÏÏÎÏÎÎÏÎÏÎ ÏÏÎ "
-"ÎÏÎÎÏÎÎÎÎ ÏÎÏÎÎÏÏÎ. ÎÏÎÎÏÎ ÏÎÏÏÏÎÎÏÎ ÎÎÎ ÏÎÎÏ ÎÎÏÎÎÎ ÏÎÎÎÎÎ HTML ÏÏÎÎ "
-"ÏÏÎÎÎÎÎ ÎÏÏÎÏ ÎÎÎÏÎÏÎÏ <code>webkit_web_view_load_string</code> ÎÎ ÏÎ "
-"ÏÎÏÎÎÎÏÏ ÎÏÎÏÎÎÏÎ:"
+"ÎÏÎÎÎÎ 29: ÎÎÏÎÎÎÏÎ ÏÎÏ ÏÏÎÎÎÎÏ ÎÎÎ <em>ÏÎÏÎ ÏÏÎ ÎÏÎÎÏÏÎÎÏÎ ÏÎÏ</em>, ÏÎÏ "
+"ÏÎÎÎÎÎÎÎ ÏÏÎ ÎÎÎÏÎÏÎ ÎÎÏ."
 
-#: C/message-board.c.page:165(code)
-#, no-wrap
-msgid "WEBKIT_WEB_VIEW (view)"
-msgstr "WEBKIT_WEB_VIEW (view)"
+#: C/photo-wall.c.page:173(item/p)
+msgid "Line 32: Start the Clutter main loop."
+msgstr "ÎÏÎÎÎÎ 32: ÎÎÎÏÎÎ ÏÎÏ ÎÏÏÎÎÏ ÎÏÏÏÎÏ ÏÎÏ Clutter."
+
+#: C/photo-wall.c.page:178(section/title)
+msgid "Setting up our image actors"
+msgstr "ÎÎÎÎÏÎÏÏÎÏÎ ÏÏÎ ÎÏÎÏÏÏÎ ÎÎÎÏÎÎÏ"
 
-#: C/message-board.c.page:166(p)
+#: C/photo-wall.c.page:179(note/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."
+"In Clutter, an actor is the most basic visual element. Basically, everything "
+"you see is an actor."
 msgstr ""
-"Î ÎÎÎÎ Î ÏÏÎÎÎÎÎ. ÎÏÎÎÎÎ Î <code>view</code> ÏÎÎÎÏÏÎÎÎÎÎÎÏÎ ÏÏ "
-"<code>GtkWidget</code>, ÏÏÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ <code>WEBKIT_WEB_VIEW</"
-"code> ÎÎÎ ÎÏÏÎÎÎ ÎÎÎÎÎÎ ÏÎÏ ÎÎÏÎÎÎÎÎÎÎÎÏ."
-
-#: C/message-board.c.page:171(code)
-#, no-wrap
-msgid "\"&lt;html&gt;&lt;body&gt;&lt;/body&gt;&lt;/html&gt;\""
-msgstr "\"&lt;html&gt;&lt;body&gt;&lt;/body&gt;&lt;/html&gt;\""
-
-#: C/message-board.c.page:172(p)
-msgid "The simplest HTML file you could possibly write."
-msgstr "ÎÎ ÎÏÎÎÏÏÏÎÏÎ ÎÏÏÎÎÎ HTML ÏÎÏ ÎÎ ÎÏÎÏÎÏÏÎÏÎ ÎÎ ÎÏÎÏÎÏÎ."
-
-#: C/message-board.c.page:175(code)
-#, no-wrap
-msgid "\"text/html\""
-msgstr "\"text/html\""
+"ÎÏÎ Clutter, ÎÎÎÏ ÎÏÎÏÏÎÏ ÎÎÎÎÎ ÏÎ ÏÎÎ ÎÎÏÎÎÏ ÎÏÏÎÎÏ ÏÏÎÎÏÎÎÎ. ÎÎÏÎÎÎ, "
+"ÎÏÎÎÎÏÎÏÎ ÎÎÎÏÎÏÎ ÎÎÎÎÎ ÎÎÎÏ ÎÏÎÏÏÎÏ."
 
-#: C/message-board.c.page:176(p)
+#: C/photo-wall.c.page:180(section/p)
 msgid ""
-"The MIME type of the content you provided. In this case, you're using plain "
-"HTML."
+"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 ""
-"Î ÏÏÏÎÏ MIME ÏÎÏ ÏÎÏÎÎÏÎÎÎÎÎÏ ÏÎÏ ÎÎÎÎÏÎ. ÎÎ ÎÏÏÎÎ ÏÎÎ ÏÎÏÎÏÏÏÏÎ, "
-"ÏÏÎÏÎÎÎÏÎÎÎÎÏÎ ÎÏÎÏ HTML."
+"ÎÎ ÎÏÏÎÎ ÏÎÎ ÎÎÏÏÎÏÎ, ÏÏÏÎÎÎÏÎÎ ÎÎ ÎÎÎÏÎÎÎÏÎÎ ÏÏÎÎÏÏÎÏÎ ÏÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎÎÎ "
+"ÎÏÏÏÎ ÎÎÎ ÎÎÎÎÏÎÏÏÎÏÎ ÏÎÏ <code>ClutterActor</code>s ÏÎÏ ÎÎ ÎÎÏÎÎÎÏÎÎ ÏÎÏ "
+"ÎÎÎÏÎÎÏ ÎÎÏ."
 
-#: C/message-board.c.page:180(code)
+#: C/photo-wall.c.page:183(section/code)
 #, no-wrap
-msgid "\"UTF-8\""
-msgstr "\"UTF-8\""
-
-#: C/message-board.c.page:181(p)
 msgid ""
-"The character encoding of the content you provided. Although you only used "
-"ASCII characters, it's a good idea to specify UTF-8. UTF-8 is used as the "
-"default encoding throughout the GNOME platform."
+"\n"
+"for(row=0; row &lt; ROW_COUNT; ++row)\n"
+"{\n"
+"    for(col=0; col &lt; COL_COUNT; ++col)\n"
+"    {\n"
+"        GSList *img_path_node = g_slist_nth(img_path_list, (row * COL_COUNT) + col);\n"
+"        ClutterActor *actor = clutter_texture_new_from_file((gchar *)(img_path_node-&gt;data), NULL);\n"
+"        initialize_actor(actor, row, col);\n"
+"        clutter_container_add_actor(CLUTTER_CONTAINER(stage), actor);\n"
+"        actor_list = g_slist_prepend(actor_list, actor);\n"
+"    }\n"
+"}\n"
+"\n"
 msgstr ""
-"Î ÎÏÎÎÎÎÏÎÎÎÏÎ ÏÎÏÎÎÏÎÏÎ ÏÎÏ ÏÎÏÎÏÏÎÎÎÎÏ ÏÎÏÎÎÏÎÎÎÎÎÏ. ÎÎ ÎÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÏÎ "
-"ÎÏÎÎ ASCII ÏÎÏÎÎÏÎÏÎÏ, ÎÎÎÎÎ ÎÎÎÎ Î ÎÎÎÎÏÎÏÎÏÏ UTF-8. ÎÎ UTF-8 "
-"ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÏÏ Î ÏÏÎÎÏÎÎÎÎÎÎÎÎ ÎÏÎÎÎÎÏÎÎÎÏÎ ÎÎÎÎÎÎÏÏÏÎÎÎ ÏÏÎ GNOME."
+"\n"
+"for(row=0; row &lt; ROW_COUNT; ++row)\n"
+"{\n"
+"    for(col=0; col &lt; COL_COUNT; ++col)\n"
+"    {\n"
+"        GSList *img_path_node = g_slist_nth(img_path_list, (row * COL_COUNT) + col);\n"
+"        ClutterActor *actor = clutter_texture_new_from_file((gchar *)(img_path_node-&gt;data), NULL);\n"
+"        initialize_actor(actor, row, col);\n"
+"        clutter_container_add_actor(CLUTTER_CONTAINER(stage), actor);\n"
+"        actor_list = g_slist_prepend(actor_list, actor);\n"
+"    }\n"
+"}\n"
+"\n"
 
-#: C/message-board.c.page:186(code)
-#, no-wrap
-msgid "NULL"
-msgstr "NULL"
+#: C/photo-wall.c.page:198(item/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 ""
+"ÎÏÎÎÎÎ 5: ÎÎÏ ÎÎÎÎÏÎÎ ÎÎ ÏÎÏÎÏÎÎ ÏÎ ÎÎÎÎÏÎÎÎ ÏÏÎ ÎÎÏÎ <var>n</var> ÏÏÎ "
+"<code>GSList</code> ÏÎÏ ÎÏÎÏÎ ÏÎ ÎÎÏÎÎÏÎ ÎÎÎÎÏÎÎÎÏ ÎÎÎÏÎÎÏ. Î <var>n</var> "
+"ÎÎÏÎ ÏÏÎÎÎÎÎÎÎÏÎÎ ÎÎÏÎÏÎÎÎÎ ÏÏÎ <code>row</code> ÎÎÎ <code>col</code>. Î "
+"ÎÏÎÏÏÏÎÏÏÎÎÎÎ ÏÎÎÎ ÎÎÎÎÎ ÎÎÎÏ ÎÎÎÎÏÎÏ ÏÎ ÎÎÎ <code>GSList</code> ÏÎÏ ÎÎÎÎÎ "
+"ÎÏÎÎ ÎÎÎÏ ÎÏÎÎÎÏ ÏÏÎ ÎÎÏÏÎ. ÎÎ ÏÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÎÎ ÏÎ ÎÎÏÎ ÏÎÏ ÎÎÎÏÎÎÏ "
+"ÎÎÎÎÏÎÎÎÏ ÏÏÎÎ ÎÏÏÎÎÎÎ ÎÏÎÎÎÎ. Î ÏÏÏÏÎ ÏÎÏÎÎÎÏÏÎÏ ÎÎÎÎÎ ÎÎÎÏ ÎÎÎÎÏÎÏ ÏÏÎÎ "
+"ÎÎÏÎÎÎ ÏÎÏ ÎÎÏÏÎÏ."
 
-#: C/message-board.c.page:187(p)
+#: C/photo-wall.c.page:200(item/p)
 msgid ""
-"The base URI. You don't need it in this simple example, but you might want "
-"to provide a <sys>file:</sys> URI if you add images or other features where "
-"you want to use relative URI references."
+"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 ""
-"Î ÎÎÏÎ URI. ÎÎÎ ÏÎÎ ÏÏÎÎÎÎÏÏÎÏÏÎ ÏÎ ÎÏÏÏ ÏÎ ÎÏÎÏ ÏÎÏÎÎÎÎÎÎÎ, ÎÎÎÎ ÎÏÏÏ "
-"ÎÎÎÎÏÎÏÎ ÎÎ ÎÏÏÎÏÎ ÎÎÎ <sys>file:</sys> URI ÎÎÎ ÏÏÎÏÎÎÏÎÏÎ ÎÎÎÏÎÎÏ Î ÎÎÎÎ "
-"ÏÎÏÎÎÏÎÏÎÏÏÎÎÎ ÏÎÏ ÎÎÎÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÏÏÎÏÎÎÎÏ ÎÎÎÏÎÏÎÏ URI."
+"ÎÏÎÎÎÎ 6: ÎÎÏ ÎÎÎÎÎÏÏÎÎÎÏÎÎ ÏÏÎÎ ÏÏÎÎÎÎÏÎÎÏÏÎÏÎ Î <code>ClutterActor</code> "
+"ÎÎÎ ÏÎÏÎÎÎÏÎÎÏÎÎ Î ÎÎÎÏÎÎ ÏÏÎÎ ÎÏÎÏÏÎ. ÎÎ ÏÏÏÏÎ ÏÏÎÏÎÎ ÎÎÎÎÎ Î ÎÎÎÎÏÎÎÎ "
+"ÏÏÎÏÏÎÎÎÏÎÏ ÎÎÏÎ ÎÏÏ ÏÎÎ ÎÏÎÎÎ <code>GSList</code>. ÎÎ ÎÎÏÏÎÏÎ ÏÏÎÏÎÎ ÎÎÎÎÎ "
+"ÎÎÎ ÎÎÎÏÎÏÎ ÏÏÎÎÎÎÏÎÏ, ÎÎÎÎ ÏÎ ÎÎÎÎÎÏÎÎ ÎÎÎ ÎÏÎÎÏÏ ÏÏÎÏÎÎÎÎÏ."
+
+#: C/photo-wall.c.page:202(item/p)
+msgid "Line 7: We'll look at this function in a later section."
+msgstr "ÎÏÎÎÎÎ 7: ÎÎ ÎÎÏÎÎ ÎÏÏÎ ÏÎÎ ÏÏÎÎÏÏÎÏÎ ÏÎ ÎÏÏÎÎÎÎ ÎÎÏÏÎÏÎ."
 
-#: C/message-board.c.page:194(p)
+#: C/photo-wall.c.page:204(item/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."
+"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 ""
-"ÎÎÎÎ ÏÎÏÎ ÏÎÏ ÏÏÎÏÎÎÏÎÏÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ, ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÏÎÏÎ "
-"<code>gtk_widget_show</code> ÎÎÎ ÎÎ ÎÎÎÎÎ ÎÏÎÏÏ. ÎÎÎ ÎÎÎÎÏÎÏÎ "
-"<code>gtk_widget_show_all</code> ÏÎ ÎÎÎ ÏÎÏÎÎÎÏÎ ÎÏÎÏÎÎÎÏ ÏÏÏÏÎÏÎÎÎÏ ÏÏÏÏ "
-"<code>GtkBox</code>, ÏÎ GTK+ ÎÎ ÎÎÏÎÎÎÏÎÎ ÎÏÏÏÎÎÏÎ ÏÎÎ ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ "
-"ÎÎÏÎ ÏÏÎÎ ÏÎÏÎÎÎÏÎ, ÏÎ ÎÏÎÎÎÎÎÏÎÏÎ ÎÎÎÎÏ. ÎÎÏÎÎÎÏ ÏÎÏÎÏ ÎÎÎ ÎÎÎÎÏÎ ÎÎ "
-"ÎÎÎÎÏÎÏÎ <code>gtk_widget_show_all</code>, ÏÏÏÏ ÏÏÎÎ ÎÎÎÎÏÎ ÎÎ ÎÏÏÏÎÏÎ "
-"ÎÏÎÎÎÎÎÎ ÎÎÎ ÎÎ ÎÎÏÎÎÎÏÎÏÎ ÎÎÏÎÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÏÎ ÎÏÎÎÏÎÏÎ ÏÏÎÎÎÎÏÏÎ."
+"ÎÏÎÎÎÎ 8: ÎÏÏÎ ÏÏÎÏÎÎÏÎÎ ÏÎÎ <code>ClutterActor</code> ÏÏÎ ÏÏÎÎÎÎ, ÏÎÏ ÎÎÎÎÎ "
+"ÎÎÎÏ ÏÎÏÎÎÎÏÎÏ. ÎÏÎÏÎÏ ÏÏÎÎÎÏÎÎ ÎÎÎÎÎÏÎÏÎÎ ÏÎÏ <code>ClutterActor</code> ÏÎÏ "
+"ÎÎÎÎÎ ÎÎÏÎ ÏÎÏ ÎÎ ÎÎÎÎÏÎÏÎ ÎÎ ÎÎÎÏÎÎÎÏÎ ÎÎÎÏÏ ÏÎÎÎÎÎÎÏÎ ÎÎÎÏÏÎÏÎ ÏÏÎÎ "
+"ÎÎÎÏÏÏÎÎ ÏÎÏ GNOME. ÎÎÎÏÎ ÏÎÎ <link href=\"http://library.gnome.org/devel/";
+"gobject/stable/gobject-memory.html\"><code>GObject</code>ÏÎÎÎÎÏÎÏÏÎ</link> "
+"ÎÎÎ ÏÎÏ ÏÏÎÎÏÎÏ ÎÎÏÏÎÎÎÏÎÎÎÏ."
 
-#: C/message-board.c.page:202(p)
+#: C/photo-wall.c.page:206(item/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>.)"
+"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 ""
-"ÎÎÎÎÎÎ, ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÏÎÏÎ <code>gtk_widget_show_all</code> ÏÏÎ ÏÎÎÎÏÎÎ. "
-"ÎÎÎÎÏÏ, ÎÎÎÎÎÎ ÎÏÏ ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÏÎÏ ÎÎÎÎÎÏÏÎÎÏÎÏÎ ÎÎÎ ÎÎ ÎÎÎÎÎ "
-"ÎÏÎÏÏ. (ÎÎ ÏÎÏÎÎÏÏÎ ÎÎÏÎÎÎÎÎÏÎÎ ÏÏÎ ÏÏÎÎÏÏÎÏÎ <code>main</code> ÎÎ "
-"<code>gtk_widget_show</code>.)"
+"ÎÏÎÎÎÎ 9: ÎÏÏÏ ÏÏÎÏÎÎÏÎÎ ÏÎ <code>ClutterActor</code> ÏÎ ÎÎÎ <code>GSList</"
+"code>, ÎÏÏÎ ÏÏÏÎ ÎÏÎÏÏÎÏÎ ÎÎ ÎÏÎÏÎÏÎÎ ÎÎ ÎÏÎÎÎÎÎÎÎÏÎÎ ÏÎ <code>ClutterActor</"
+"code>."
 
-#: C/message-board.c.page:206(p)
+#: C/photo-wall.c.page:207(note/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."
+"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 ""
-"ÎÎÎÏÏÏÎÏÎ ÎÎÎ ÎÎÏÎÎÎÏÏÎ ÎÎÎÎ ÏÎÎ ÏÎÎÎÎÎ ÎÎÎÏÎÎÏÎÏ. ÎÏÎÏÎÎ ÎÎ ÎÎÎÏÎ ÎÎÎ "
-"ÏÎÏÎÎÏÏÎ ÎÎ ÎÎÎ ÎÎÏÎÏÏÏÎÏÎ ÎÎÎÎÎÎÎÏ ÎÎÎ ÎÎÎ ÏÏÎÎÎÎÎ ÎÏÏÎÏ. ÎÎÎ ÎÎÎÎÎ ÏÎÏÎÏÎ "
-"ÎÎÏÎÎ, ÎÏÎÎÎÎ Î ÎÎÏÎÏÏÏÎÏÎ ÎÎÎÎÎÎÎÏ ÎÎÎ Î ÏÏÎÎÎÎÎ ÎÏÏÎÏ ÎÎÎ ÎÎÏÎÏÎ ÏÎÏÎÏÎ "
-"ÎÎÏÎÎÏ ÏÎÏÏ."
+"ÎÎÎÎÎÏÏÏÎ ÏÏÎ ÎÎÎÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎ ÏÎ <code>ClutterActor</code> ÏÎÏÎ ÎÎ ÏÎ "
+"ÏÏÎÏÎÏÏÎÏÎÏÎÎ ÎÎÎ ÎÏÎÏÏÎÎ ÎÎÎÏÏÎÏÎÏ ÏÎÏ ÎÎÏÏÎÏ ÎÎ ÎÎÎÎ ÎÎÏÎÎÏÎÎ. ÎÎ ÎÎÎÏÎ "
+"ÏÏÏÎÎ ÏÎ <code>g_slist_prepend</code> ÎÎÎÎÎÏÎÎÏÎÎÎÎ ÎÏÏ "
+"<code>g_slist_reverse</code> ÎÏÎÎÎÎ ÎÎÎÎÎ ÏÎÎ ÎÏÎÎÎÏÎ ÏÎÏÎ Î ÎÎÏÎÎÏÎÎ ÏÎÎÎÏÎ "
+"ÎÎÏÎÎÎÎÎÎÎÏÎ ÏÏÎ ÏÎÎÎÏ ÏÎÏ ÎÎÏÏÎÏ."
 
-#: C/message-board.c.page:212(title)
-msgid "Hook up signals"
-msgstr "ÎÏÎÎÎÏÎ ÏÎÎÎÏÏÎ"
+#: C/photo-wall.c.page:213(section/title)
+msgid "Loading the images"
+msgstr "ÎÏÏÏÏÏÎ ÏÏÎ ÎÎÎÏÎÏÎ"
 
-#: C/message-board.c.page:214(p)
+#: C/photo-wall.c.page:214(section/p)
 msgid ""
-"Now you want to make the message board actually <em>do</em> something when "
-"you enter text into the text entry. To do this, connect a callback function "
-"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:"
+"Let's take a short break from Clutter to see how we can get the file names "
+"from our image directory."
 msgstr ""
-"ÎÏÏÎ, ÎÎÎÎÏÎ ÎÎ ÎÎÎÎÏÎ ÏÎÎ ÏÎÎÎÎÎ ÎÎÎÏÎÎÏÎÏ ÏÏÎÎ ÏÏÎÎÎÎÏÎÎÏÏÎÏÎ <em>ÎÎ "
-"ÎÎÎÎÎ</em> ÎÎÏÎ ÏÏÎÎ ÎÎÏÎÎÎÏÎ ÎÎÎÎÎÎÎ ÏÏÎÎ ÎÎÏÎÏÏÏÎÏÎ ÎÎÎÎÎÎÎÏ. ÎÎÎ ÎÎ ÏÎ "
-"ÎÎÎÎÏÎ ÎÏÏÏ, ÏÏÎÎÎÏÏÎ ÎÎÎ ÏÏÎÎÏÏÎÏÎ ÎÏÎÎÎÎÎÎÏÎÏ ÏÏÎ ÏÎÎÎ <code>activate</"
-"code> ÏÎÏ <code>entry</code>. ÎÎ GTK+ ÎÎÏÎÎÏÎÎ ÏÎ ÏÎÎÎ <code>activate</code> "
-"ÏÏÎÎ Î ÏÏÎÏÏÎÏ ÏÎÏÎ <key>Enter</key> ÏÏÎÎ ÎÎÏÎÏÏÏÎÏÎ. ÎÏÎÏÎÎÏÏÎ ÏÎ ÏÎÏÎÎÎÏÏ "
-"ÏÏÎ <code>create_window</code>, ÎÏÎÏÎÎÏÎÏÎ ÎÏÎÏ ÎÎÎ <code>entry</code> ÎÎÎ "
-"<code>view</code> ÎÏÎÏÏÎÏÎ:"
+"ÎÏ ÎÎÎÎÏÎÎ ÎÎÎ ÏÏÎÏÎÎÎ ÎÎÎÎÎÏÎ ÎÏÏ ÏÎ Clutter ÎÎÎ ÎÎ ÎÎÏÎÎ ÏÏÏ ÎÏÎÏÎÏÎÎ ÎÎ "
+"ÏÎÏÎÏÎÎ ÏÎ ÎÎÏÎÎÏÎ ÎÏÏÎÎÎÏ ÎÏÏ ÏÎÎ ÎÎÏÎÎÎÎÏ ÎÎÏ ÏÏÎ ÎÎÎÏÎÏÎ."
 
-#: C/message-board.c.page:225(p)
+#: C/photo-wall.c.page:215(section/code)
+#, no-wrap
 msgid ""
-"You then have to actually define <code>entry_activate_cb</code>. Define it "
-"as follows, anywhere above <code>create_window</code>:"
+"\n"
+"static void\n"
+"load_image_path_names()\n"
+"{\n"
+"    /* Ensure we can access the directory. */\n"
+"    GError *error = NULL;\n"
+"    GDir *dir = g_dir_open(IMAGE_DIR_PATH, 0, &amp;error);\n"
+"    if(error)\n"
+"    {\n"
+"        g_warning(\"g_dir_open() failed with error: %s\\n\", error-&gt;message);\n"
+"        g_clear_error(&amp;error);\n"
+"        return;\n"
+"    }\n"
+"\n"
+"    const gchar *filename = g_dir_read_name(dir);\n"
+"    while(filename)\n"
+"    {\n"
+"        if(g_str_has_suffix(filename, \".jpg\") || g_str_has_suffix(filename, \".png\"))\n"
+"        {\n"
+"            gchar *path = g_build_filename(IMAGE_DIR_PATH, filename, NULL);\n"
+"            img_path_list = g_slist_prepend(img_path_list, path);\n"
+"        }\n"
+"        filename = g_dir_read_name(dir);\n"
+"    }\n"
+"}"
 msgstr ""
-"ÎÏÏÎ ÏÏÎÏÎÎ ÏÏÎÎ ÏÏÎÎÎÎÏÎÎÏÏÎÏÎ ÎÎ ÎÏÎÏÎÏÎ ÏÎ <code>entry_activate_cb</"
-"code>. ÎÏÎÏÏÎ ÏÎ ÏÏÏÏ ÎÎÎÎÎÏÎÎÎ, ÎÏÎÏÎÎÏÎÏÎ ÏÎÎÏ ÎÏÏ ÏÎ <code>create_window</"
-"code>:"
+"\n"
+"static void\n"
+"load_image_path_names()\n"
+"{\n"
+"    /* Ensure we can access the directory. */\n"
+"    GError *error = NULL;\n"
+"    GDir *dir = g_dir_open(IMAGE_DIR_PATH, 0, &amp;error);\n"
+"    if(error)\n"
+"    {\n"
+"        g_warning(\"g_dir_open() failed with error: %s\\n\", error-&gt;message);\n"
+"        g_clear_error(&amp;error);\n"
+"        return;\n"
+"    }\n"
+"\n"
+"    const gchar *filename = g_dir_read_name(dir);\n"
+"    while(filename)\n"
+"    {\n"
+"        if(g_str_has_suffix(filename, \".jpg\") || g_str_has_suffix(filename, \".png\"))\n"
+"        {\n"
+"            gchar *path = g_build_filename(IMAGE_DIR_PATH, filename, NULL);\n"
+"            img_path_list = g_slist_prepend(img_path_list, path);\n"
+"        }\n"
+"        filename = g_dir_read_name(dir);\n"
+"    }\n"
+"}"
 
-#: C/message-board.c.page:248(p)
+#: C/photo-wall.c.page:241(item/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."
+"Lines 5 and 12: This opens our directory or, if an error occured, returns "
+"after printing an error message."
 msgstr ""
-"ÎÎ ÏÏÏÏÎ ÏÏÎÎÎÎ ÎÎÎÎÎ ÎÎ ÏÎÏÎÏÎ ÎÎÎ ÎÎÏÎÎÎÎÎÎÎÎ <code>WebKitDOMDocument</"
-"code> ÏÎÏ ÎÎÏÎÏÏÎÏÏÏÎÏÎÎ ÏÎ ÎÎÏÎÎÎÎÏÎÎÎÎ ÎÎÎÏÎÏÎ ÏÏÎ <code>view</code>. ÎÎ "
-"ÎÎÎÏÎÎÏ DOM ÎÎÎ ÎÎ ÎÎÎÎÎÎÎ ÏÏÎ WebKit ÎÏÎÏÏÎÏÎÏÎ ÏÎÎ ÎÏÎÎÎÏÏÎÏÎ ÎÎÎ ÏÎÎÏÎÏÎÏ "
-"ÏÎÏ ÎÎÎÏÎÏÎÏ HTML ÎÎÎ ÎÎÏÎÎÏÎÏÎ ÏÎÎÏ ÏÎÏÏÎÎÎÎ ÎÎ ÏÎ APIs DOM ÏÎÏ ÎÎÎ ÎÏÎÏÎÎ "
-"ÎÎ ÎÎÏÎÏÎ ÎÏÏ ÏÎ JavaScript."
+"ÎÏÎÎÎÎÏ 5 ÎÎÎ 12: ÎÏÏÏ ÎÎÎÎÎÎÎ ÏÎÎ ÎÎÏÎÎÎÎÏ ÎÎÏ Î, ÎÎÎ ÏÏÎÎÎÎ ÏÏÎÎÎÎ, "
+"ÎÏÎÏÏÏÎÏÎÎ ÎÎÏÎ ÏÎÎ ÎÎÏÏÏÏÏÎ ÎÎÎ ÎÎÎÏÎÎ ÏÏÎÎÎÎÏÎÏ."
 
-#: C/message-board.c.page:254(p)
+#: C/photo-wall.c.page:242(item/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."
+"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 ""
-"ÎÏÎÎÏ ÎÏÎÏÎ ÏÎ ÎÎÎÏÎÏÎ, ÏÎÎÏÎÎÏÎ ÏÎ ÏÏÎÎÏÎÎÎ <code>body</code>, ÎÏÏÎ ÏÏÏÎ ÎÎ "
-"ÎÏÎÏÎÎÏÎ ÎÎ ÏÏÎÏÎÎÏÎÏÎ ÏÎ ÏÏÎÎÏÎÎÎ <code>div</code> ÏÎ ÎÏÏÏ. Î ÏÏÎÎÏÏÎÏÎ "
-"<code>webkit_dom_document_query_selector</code> ÎÏÎÏÏÎÏÎÎ ÏÎÎ ÎÏÏÎÏÎ ÎÎÏÏ "
-"ÏÏÎÎÏÎÎÎÏ ÏÏÎ ÎÎÎÏÎÏÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÎÏÎÎÎÎÎÎÏ CSS. ÎÏÏÏ ÏÎÏ ÎÎÏÏÏÎÎÎ ÎÏÏ "
-"ÏÎ ÎÏÎÏÎÎÎ ÎÎÏÏÎÏÏÎÎÏÎ ÎÏÏÏÏÎ ÎÎÎ ÏÎÏÎÏÎÎ ÏÎÏ ÎÎÎÏÎÏÎÏ."
-
-#: C/message-board.c.page:261(cite) C/message-board.c.page:273(cite)
-#: C/message-board.c.page:325(cite) C/message-board.c.page:382(cite)
-#: C/message-board.c.page:390(cite)
-msgid "shaunm"
-msgstr "shaunm"
+"ÎÏÎÎÎÎÏ 14-23: Î ÏÏÏÏÎ ÎÏÎÎÎÎ ÏÎÎÏÎÎÎ ÎÎÎ ÎÎÎÎ ÏÎÎÎÎ ÎÏÏÎÎÎÏ ÎÏÏ ÏÎ "
+"<code>GDir</code> ÏÎÏ ÎÎÎÎÎÎÎÎ ÏÎÎ ÎÏÏÎÏ. ÎÎÎ ÏÏÎÏÏÎ ÎÎÎ ÎÏÏÎÎÎ ÎÎÎÏÎÎÏ (ÏÎÏ "
+"ÎÎÎÎÏÎÏÎÎ ÎÎÎÏÏÎÏÎÏ ÏÎÎ ÎÏÎÎÏÎÏÎ ÏÎÏ, \".png\" Î \".jpg\") ÏÏÎÎ ÎÎÏÎÎÎÎÎ "
+"ÏÏÎÎÏÎÎÎÏÎÎ ÎÎ ÏÏÎÏÎÏÏÎÏÎÎ ÏÎ ÎÎÎÎÏÎÎÎ ÎÎÏÎÎÏÎÎÏ ÎÎÎÏÎÎÏ ÏÏÎ ÏÎÎÎÎ ÎÏÏÎÎÎÏ "
+"ÎÎÎ ÏÎ ÏÏÎÏÎÏÏÎÏÎÎ ÏÏÎ ÎÎÏÏÎ ÏÎÏ ÎÎÎÎÏÎÏÏÎÏÎÎÎ ÎÏÏÎÏÎÏÎ. ÎÎÎÎÏÏÎÎÎ "
+"ÏÏÎÏÏÎÎÎÏÎÎ ÎÎ ÏÎÏÎÏÎÎ ÏÎ ÎÏÏÎÎÎÎ ÏÎÎÎÎ ÎÎÎÎÏÎÎÎÏ ÎÎÎ ÎÎÎÎÎÎÏÎÎÎÏÎÎ ÏÎ ÎÏÏÏÎ "
+"ÎÎÎ ÎÏÎÎÎÎ ÎÎÏÎÎÎ ÎÎÎÎ ÎÏÏÎÎÎ."
 
-#: C/message-board.c.page:262(p)
-msgid "FIXME: Is this true? Does query_selector take CSS, CSSish, or what?"
-msgstr "ÎÎÎÎÎÎÎÎ: ÎÎÎÎÎ ÎÎÎÎÎÎÎ; ÎÎ query_selector ÏÎÎÏÎÎÎ CSS, CSSish Î ÏÎ;"
+#: C/photo-wall.c.page:247(section/title)
+msgid "Set up the actors"
+msgstr "ÎÎÎÎÏÎÏÏÎÏÎ ÏÏÎ ÎÏÎÏÏÏÎ"
 
-#: C/message-board.c.page:265(p)
+#: C/photo-wall.c.page:248(section/p)
 msgid ""
-"Next, you create a new <code>div</code> element to hold the message. Every "
-"element you create has to be attached to a document, so the function to "
-"create an element takes the <code>WebKitDOMDocument</code> as its first "
-"arguments. You then set the text content of the element to the contents of "
-"the text entry. Because <code>gtk_entry_get_text</code> returns a "
-"<code>const gchar*</code>, you don't have to free the result."
+"We 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 ""
-"ÎÎÏÎ, ÎÎÎÎÎÏÏÎÎÎÏÎ ÎÎÎ ÎÎÎ ÏÏÎÎÏÎÎÎ <code>div</code> ÎÎÎ ÎÏÎÏÎÎÎ ÏÎÏ "
-"ÎÎÎÏÎÎÏÎÏ. ÎÎÎÎ ÏÏÎÎÏÎÎÎ ÏÎÏ ÎÎÎÎÎÏÏÎÎÎÏÎ ÏÏÎÏÎÎ ÎÎ ÏÏÎÏÎÏÏÎÎÎÎ ÏÎ ÎÎÎ "
-"ÎÎÎÏÎÏo, ÎÏÏÎ Î ÏÏÎÎÏÏÎÏÎ ÏÏÎ ÎÎÎÎÎÏÏÎÎÎ ÎÎÏÏ ÏÏÎÎÏÎÎÎÏ ÏÎÎÏÎÎÎ ÏÎ "
-"<code>WebKitDOMDocument</code> ÏÏ ÏÎ ÏÏÏÏÎ ÏÎÏ ÎÏÎÏÎÎÏÎ. ÎÏÎÎÏÎ ÎÏÎÎÎÏÎ ÏÎ "
-"ÏÎÏÎÎÏÏÎÎÎÎ ÎÎÎÎÎÎÎÏ ÏÎÏ ÏÏÎÎÏÎÎÎÏ ÏÏÎ ÏÎÏÎÎÏÏÎÎÎÎ ÏÎÏ ÎÎÏÎÏÏÏÎÏÎÏ ÎÎÎÎÎÎÎÏ. "
-"ÎÏÎÎÎÎ ÏÎ <code>gtk_entry_get_text</code> ÎÏÎÏÏÏÎÏÎÎ ÏÎ <code>const gchar*</"
-"code>, ÎÎÎ ÏÏÎÏÎÎ ÎÎ ÎÏÎÎÎÏÎÎÏÏÏÎÏÎ ÏÎ ÎÏÎÏÎÎÎÏÎÎ."
+"ÎÏ ÏÎÎÎÏÎÎ ÎÎÎ ÎÎÏÎÎ ÏÏÏÎ ÏÏÎ ÎÎÎÎÎÎÏ ÎÎÎ ÏÎÎ ÏÎÏÎÎÎÏÎÏÎ ÏÎÏ "
+"<code>ClutterActor</code> ÎÎÎ ÎÏÎÏÎÏ ÎÎ ÎÏÎÎÎÎÏÎÏÎÎ ÏÎ <code>ClutterActor</"
+"code> ÎÎÎ ÎÎÎÎÎÎÏÎÎÏÎÏÎ ÏÏÎÏÏÎ."
 
-#: C/message-board.c.page:274(p)
+#: C/photo-wall.c.page:251(section/code)
+#, no-wrap
 msgid ""
-"Not passing the GError**, but we should give it a quick mention and link to "
-"somewhere that explains how GError-handling works."
+"\n"
+"/* This function handles setting up and placing the rectangles. */\n"
+"static void\n"
+"initialize_actor(ClutterActor *actor, guint row, guint col)\n"
+"{\n"
+"    clutter_actor_set_size(actor, THUMBNAIL_SIZE, THUMBNAIL_SIZE);\n"
+"    clutter_actor_set_position(actor, col * THUMBNAIL_SIZE, row * THUMBNAIL_SIZE);\n"
+"    clutter_actor_set_reactive(actor, TRUE);\n"
+"\n"
+"    g_signal_connect(actor,\n"
+"                     \"button-press-event\",\n"
+"                     G_CALLBACK(actor_clicked_cb),\n"
+"                     NULL);\n"
+"}"
 msgstr ""
-"ÎÎ ÎÎÎ ÏÎÏÎÎÏÎ ÏÎ GError**, ÎÎÎÎ ÎÎ ÎÏÎÏÎÏÏÎÎÎ ÎÎ ÏÎÏ ÎÏÏÎÏÎÎ ÎÎÎ ÎÏÎÎÎÏÎ "
-"ÎÎÎÏÎÏÎ ÎÎÎ ÏÏÎÎÎÏÎ ÎÎÏÎÏ, ÏÏÎÏ ÎÎÎÎÎÎÏÎÎ ÏÏÏ ÎÎÎÏÎÏÏÎÎÎ Î ÏÎÎÏÎÏÎÏÏ GError."
+"\n"
+"/* This function handles setting up and placing the rectangles. */\n"
+"static void\n"
+"initialize_actor(ClutterActor *actor, guint row, guint col)\n"
+"{\n"
+"    clutter_actor_set_size(actor, THUMBNAIL_SIZE, THUMBNAIL_SIZE);\n"
+"    clutter_actor_set_position(actor, col * THUMBNAIL_SIZE, row * THUMBNAIL_SIZE);\n"
+"    clutter_actor_set_reactive(actor, TRUE);\n"
+"\n"
+"    g_signal_connect(actor,\n"
+"                     \"button-press-event\",\n"
+"                     G_CALLBACK(actor_clicked_cb),\n"
+"                     NULL);\n"
+"}"
 
-#: C/message-board.c.page:278(p)
+#: C/photo-wall.c.page:267(item/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."
+"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 ""
-"ÎÎÎÎÎÎ, ÏÏÎÏÎÏÏÎÏÎ ÏÎ ÎÎÎ ÏÏÎÎÏÎÎÎ <code>div</code> ÏÏÎ ÏÏÎÎ ÎÎÎ ÎÎÎÎÏÎÏÏÎ "
-"ÏÎÎ ÎÎÏÎÏÏÏÎÏÎ ÎÎÎÎÎÎÎÏ, ÎÏÏÎ ÏÏÏÎ ÎÎ ÎÏÎÏÎÎÏÎ ÎÎ ÏÏÏÏÏÎÏÎ ÎÎÏÎ ÎÎÎ. "
-"ÎÎÏÎÏÎÎÏÎ ÎÎÎ ÎÎÏÎÎÎÏÎ ÏÎÏ ÏÏÎÎÏÎÎÎÎÏÎÏ ÎÎÎÎ ÎÎÎ ÎÎÎÎÏÎÏ ÏÎÏ ÎÎÎ ÏÎÏ."
-
-#: C/message-board.c.page:285(title)
-msgid "Make it look better with CSS"
-msgstr "ÎÎÎÏÎ ÏÎ ÎÎ ÏÎÎÎÎÏÎÎ ÎÎÎÏÏÎÏÎ ÎÎ CSS"
+"ÎÏÎÎÎÎ 7: ÏÏÎÎÎÏÎ ÎÎÏÎÎÏÎÏÎÏ ÎÏÎÏÏÎ ÏÎÎÎÎÎÎÎ ÏÏÎ ÎÎÏÎÎÏÎ ÏÎ ÏÏÎÎÎÎÏÎ, ÏÎÏÎÎÎ "
+"ÏÏÏÏ <code>button-press-event</code> ÏÏÎÎ ÏÎÏÎÏÏÏÏÎ ÎÎÏ. ÎÎÎ ÏÏÏÎÎÏÎÏÎÎÏ "
+"ÏÎÎÏÎ, ÏÎÎÎ ÎÎ <code>ClutterActor</code> ÏÏÎÎ ÏÎÎÏÎ ÎÎ ÏÏÎÏÎÎ ÎÏÏÎÎÎ ÎÎ "
+"ÎÎÎÎÎ ÎÎÏÎÎÏÎÏÏÎÎÎÎ."
 
-#: C/message-board.c.page:287(p)
+#: C/photo-wall.c.page:270(item/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."
+"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 ""
-"ÎÎ ÎÏÏÏ ÏÎ ÏÎÎÎÎÎ, ÏÎ ÏÏÏÎÏÎÎÎÎ ÏÎÏ ÎÎÎÎÎ ÎÎÏÏÎÎÎ ÎÎÎÏÎÏÏÎÎÎÏ, ÎÎÎÎ ÏÏÎ ÏÎÎÏ "
-"ÏÎÎÏÏÎ. ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÏÏÎÏÎÎÎÏÎÏÎ ÏÎÎ ÎÎÏÎÎÎÏÎ ÎÎÎÏÎÎÏÎÏ ÎÎ CSS, ÎÏÎÎ ÏÏÏÏ "
-"ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÎ ÎÎÎÎ ÏÎÎÎÎÎ HTML. ÎÏÎÏÏÎÏÎ ÏÎÎÎÎÎ ÏÏÏÏÎÎ ÏÎÏ ÎÎ ÎÏÎÏÎÏÏÎÏÎ "
-"ÎÎ ÏÏÎÏÎÏÏÎÏÎÏÎ ÎÎÏÎÎÎ CSS ÏÏÎ ÏÎÎÎÎÎ: ÎÏÎÏÎÎÏÎ ÎÎ ÏÎ ÏÏÎÏÎÎÏÎÏÎ ÏÏÎ ÎÏÏÎÎÏ "
-"ÎÎÎÏÎÏÎ HTML. ÎÎ ÎÏÎÏÎÏÏÎÏÎ ÎÎ ÏÎ ÎÎÏÏÎÎÏÏÏÎÏÎ ÏÏÎ ÎÎÏÏÎÏÎÎ <code>style</"
-"code> ÏÏÎ ÏÏÎÎÏÎÎÏÎ <code>div</code>. ÎÎ ÎÏÎÏÎÏÏÎÏÎ ÎÎÏÎÎ ÎÎ ÏÎ "
-"ÎÎÏÎÏÎÎÏÎÏÎÏÎ ÏÏÎÎÏÎÎÎÎÏÎÏÏÎÎÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ APIs DOM."
+"ÎÏÎÎÎÎ 9-12: ÎÏÏÎ ÏÏÎÎÎÎÏÎÎ ÏÎ <code>button-press-event</code> ÏÏÎÎ "
+"ÎÏÎÎÎÎÎÎÏÎ <code>actor_clicked_cb</code> ÏÎÏ ÎÎ ÎÎÏÎÎ ÏÏÎ ÏÏÎÎÏÎÎÎ."
 
-#: C/message-board.c.page:294(p)
-msgid ""
-"In this tutorial, you'll attach the CSS using the <code>user-stylesheet-uri</"
-"code> property of the <code>WebKitWebSetting</code> object attached to your "
-"web view. In a more complete application, you would want to save and load "
-"your HTML file. Keeping the style information outside the actual HTML means "
-"that you can change the styling completely within your application, without "
-"having to change users' files. You would normally just install a file along "
-"with your application, but just to keep everything in one file for this "
-"demo, we'll use a trick called a data URI. First, define the CSS as a static "
-"string near the top of your file."
+#: C/photo-wall.c.page:273(section/p)
+msgid "At this point we've got a wall of images that are ready to be viewed."
 msgstr ""
-"ÎÎ ÎÏÏÏ ÏÎ ÎÎÎÎÎÎ, ÎÎ ÎÏÎÏÏÎÎÏÎÏÎ ÏÎ CSS ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎÎ ÎÎÎÏÏÎÏÎ "
-"<code>user-stylesheet-uri</code> ÏÎÏ ÏÏÎÏÎÏÏÎÎÎÎÎÏ ÎÎÏÎÎÎÎÎÎÎÎÏ "
-"<code>WebKitWebSetting</code> ÏÏÎÎ ÏÏÎÎÎÎÎ ÏÎÏ ÎÏÏÎÏ. ÎÎ ÎÎÎ ÏÎÎ ÏÎÎÏÎ "
-"ÎÏÎÏÎÎÎÎ, ÎÎ ÎÎÎÎÏÎ ÎÎ ÎÏÎÎÎÎÎÏÏÎÏÎ ÎÎÎ ÎÎ ÏÎÏÏÏÏÎÏÎ ÏÎ ÎÏÏÎÎÎ HTML. "
-"ÎÎÎÏÎÏÏÎÏÎÏ ÏÎÏ ÏÎÎÏÎÏÎÏÎÎÏ ÎÎÏÏÎÏÎÎÎÏÎÏ ÎÎÏ ÎÏÏ ÏÎ ÎÎÎÏÎÏ HTML ÏÎÎÎÎÎÎÎ ÏÏÎ "
-"ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÎÎÎÏÎ ÎÎÏÏÎÎÎ ÏÎ ÎÎÏÏÎÏÎÎÎÏÎ ÎÎÏ ÏÎÎ ÎÏÎÏÎÎÎÎ ÏÎÏ, ÏÏÏÎÏ ÎÎ "
-"ÏÏÎÎÎÏÏÎÎ ÎÎ ÎÎÎÎÎÎÏÎ ÏÎ ÎÏÏÎÎÎ ÏÏÎÏÏÎ. ÎÎÎÎÎÎÎÎ ÎÎ ÎÎÎÎÏÎÏÏÎÏÎÏÎ ÎÏÎÎ ÎÎÎ "
-"ÎÏÏÎÎÎ ÎÎÎÎ ÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ ÏÎÏ, ÎÎÎÎ ÎÎÎ ÎÎ ÎÎÎÏÎÏÎÏÎÏÎ ÎÏÎÎ ÎÎÎÎ ÏÎ ÏÎ ÎÎÎ "
-"ÎÏÏÎÎÎ ÎÎÎ ÎÏÏÎ ÏÎÎ ÏÎÏÎÏÏÎÎÏÎ, ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÎÎ ÎÏÎÏÎ ÏÎÏ ÎÎÎÎÏÎÎ "
-"ÎÎÎÎÎÎÎÎ URI. ÎÏÏÏÎ, ÎÏÎÏÏÎ ÏÎ CSS ÏÏ ÏÏÎÏÎÎÎ ÏÏÎÎÎÎÎÏÎÎÏÎ ÎÎÎÏÎ ÏÏÎÎ ÎÎÏÏÏÎ "
-"ÏÎÏ ÎÏÏÎÎÎÏ ÏÎÏ."
+"ÎÎ ÎÏÏÏ ÏÎ ÏÎÎÎÎÎ ÏÎÏÎÎÎ ÎÎÎÎ ÏÎÎÏÎ ÎÎÎÏÎÏÎ ÏÎÏ ÎÎÎÎÎ ÎÏÎÎÎÎÏ ÎÎ ÏÏÎÎÎÎÎÎÏÎ."
+
+#: C/photo-wall.c.page:277(section/title)
+msgid "Reacting to the clicks"
+msgstr "ÎÎÏÎÎÏÎÏÎ ÏÏÎ ÎÎÎÎ"
 
-#: C/message-board.c.page:316(p)
+#: C/photo-wall.c.page:281(section/code)
+#, no-wrap
 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."
+"\n"
+"static gboolean\n"
+"actor_clicked_cb(ClutterActor *actor,\n"
+"                 ClutterEvent *event,\n"
+"                 gpointer      user_data)\n"
+"{\n"
+"    /* Flag to keep track of our state. */\n"
+"    static gboolean is_focused = FALSE;\n"
+"\n"
+"    g_slist_foreach(actor_list, foreach_set_focus_state, &amp;is_focused);\n"
+"\n"
+"    if(is_focused)\n"
+"    {\n"
+"        clutter_actor_animate(actor, CLUTTER_LINEAR, ANIMATION_DURATION_MS,\n"
+"                              \"x\",      origin.x,\n"
+"                              \"y\",      origin.y,\n"
+"                              \"depth\",  UNFOCUS_DEPTH,\n"
+"                              \"width\",  (float) THUMBNAIL_SIZE,\n"
+"                              \"height\", (float) THUMBNAIL_SIZE,\n"
+"                              NULL);\n"
+"    }\n"
+"    else\n"
+"    {\n"
+"        /*Save the current location before animating. */\n"
+"        clutter_actor_get_position(actor, &amp;origin.x, &amp;origin.y);\n"
+"        clutter_actor_set_reactive(actor, TRUE);\n"
+"        clutter_actor_animate(actor, CLUTTER_LINEAR, ANIMATION_DURATION_MS,\n"
+"                              \"x\",      (STAGE_WIDTH - STAGE_HEIGHT) / 2.0,\n"
+"                              \"y\",      0.0,\n"
+"                              \"depth\",  FOCUS_DEPTH,\n"
+"                              \"width\",  (float) STAGE_HEIGHT,\n"
+"                              \"height\", (float) STAGE_HEIGHT,\n"
+"                              NULL);\n"
+"    }\n"
+"\n"
+"    /* Toggle our flag. */\n"
+"    is_focused = !is_focused;\n"
+"\n"
+"    return TRUE;\n"
+"}"
 msgstr ""
-"Î,ÏÎ ÎÏÎÏÎ ÏÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÎÎÎÎÎ ÏÏÎÎÏÎÎÎ <code>div</code> ÎÎÏÎ ÏÎ ÎÎÎ "
-"ÏÏÎÎÏÎÎÎ <code>body</code>. ÎÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎ ÏÎÎ ÏÎÏÎÏÎÎÎÎ HTML, ÎÎ "
-"ÎÏÎÏÎÏÏÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÎÏÎÎÎÎÎÏÎÏÎ CSS ÎÎÎÎÎ ÎÏÎÏÎÎÏÎÏÎ. ÎÏÎÎ "
-"ÏÏÎÎÎÎÏÎÎÏÏÎÏÎ, ÎÎÎ ÎÎÏÎÏÏÎ ÎÎÎÏÎ ÎÎ CSS, ÎÎ ÏÏÎÏÎÎ ÎÎ ÏÏÎÏÏÎÎÎÏÎÏÎ ÎÎ ÏÎ "
-"ÎÎÎÎÎÎÏÎ ÎÎ ÎÎÏÎ ÏÎÏ ÏÎÏ ÎÏÎÏÎÎ ÎÎÎÏÏÎÏÎ."
+"\n"
+"static gboolean\n"
+"actor_clicked_cb(ClutterActor *actor,\n"
+"                 ClutterEvent *event,\n"
+"                 gpointer      user_data)\n"
+"{\n"
+"    /* Flag to keep track of our state. */\n"
+"    static gboolean is_focused = FALSE;\n"
+"\n"
+"    g_slist_foreach(actor_list, foreach_set_focus_state, &amp;is_focused);\n"
+"\n"
+"    if(is_focused)\n"
+"    {\n"
+"        clutter_actor_animate(actor, CLUTTER_LINEAR, ANIMATION_DURATION_MS,\n"
+"                              \"x\",      origin.x,\n"
+"                              \"y\",      origin.y,\n"
+"                              \"depth\",  UNFOCUS_DEPTH,\n"
+"                              \"width\",  (float) THUMBNAIL_SIZE,\n"
+"                              \"height\", (float) THUMBNAIL_SIZE,\n"
+"                              NULL);\n"
+"    }\n"
+"    else\n"
+"    {\n"
+"        /*Save the current location before animating. */\n"
+"        clutter_actor_get_position(actor, &amp;origin.x, &amp;origin.y);\n"
+"        clutter_actor_set_reactive(actor, TRUE);\n"
+"        clutter_actor_animate(actor, CLUTTER_LINEAR, ANIMATION_DURATION_MS,\n"
+"                              \"x\",      (STAGE_WIDTH - STAGE_HEIGHT) / 2.0,\n"
+"                              \"y\",      0.0,\n"
+"                              \"depth\",  FOCUS_DEPTH,\n"
+"                              \"width\",  (float) STAGE_HEIGHT,\n"
+"                              \"height\", (float) STAGE_HEIGHT,\n"
+"                              NULL);\n"
+"    }\n"
+"\n"
+"    /* Toggle our flag. */\n"
+"    is_focused = !is_focused;\n"
+"\n"
+"    return TRUE;\n"
+"}"
 
-#: C/message-board.c.page:321(p)
+#: C/photo-wall.c.page:322(item/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."
+"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 ""
-"ÎÎÎ ÎÏÎÏÎÎÎÎ ÏÎÏ CSS, ÎÏÎÎÎÏÎ ÏÎÎ <code>user-stylesheet-uri</code> ÏÏÎÎ "
-"ÏÏÎÎÏÏÎÏÎ <code>create_window</code>, ÎÏÎÏÎÎÏÎÏÎ ÎÎÏÎ ÏÎÎ ÎÏÎÏÎÏ ÏÎÏ "
-"<code>view</code>."
-
-#: C/message-board.c.page:325(p)
-msgid "g_base64_encode has bad args"
-msgstr "ÎÎ g_base64_encode ÎÏÎÎ ÎÏÏÎÎÎ ÎÏÎÏÎÎÏÎ"
+"ÎÏÎÎÎÎÏ 1-4: ÎÏÎÏÎÎ ÎÎ ÎÎÎÎÎÏÎÎÏÎÎ ÏÏÎ Î ÏÏÎÎÏÏÎÏÎ ÎÏÎÎÎÎÎÎÏÎÏ ÎÎÏ ÏÎÎÏÎÎÎÎÎ "
+"ÎÎ ÏÎÎ ÎÏÎÎÏÎÏÎÎÎÎ ÏÏÎÎÏÎÏÎ ÎÎÎ ÏÎ ÏÎÎÎ <code>button_clicked_event</code>. "
+"ÎÎÎ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÎÎÏ, ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÏÎÎ ÏÎ ÏÏÏÏÎ ÏÏÎÏÎÎ, ÏÎ "
+"<code>ClutterActor</code> ÏÎÏ ÏÏÎÎ ÏÏÎÎÎÎÏÎÎÏÏÎÏÎ ÏÎÏÎÎÎÎÎ."
 
-#: C/message-board.c.page:337(p)
+#: C/photo-wall.c.page:324(note/p)
 msgid ""
-"Also, make sure to add variable declarations for <code>tmp</code> and "
-"<code>css</code> to the top of <code>create_window</code>."
+"A 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 ""
-"ÎÏÎÏÎÏ, ÎÎÎÎÎÏÎÎÎÏÎ ÎÎ ÏÏÎÏÎÎÏÎÏÎ ÎÎÎÏÏÎÎÏ ÎÎÏÎÎÎÎÏÎÏ ÎÎÎ <code>tmp</code> "
-"ÎÎÎ <code>css</code> ÏÏÎÎ ÎÎÏÏÏÎ ÏÎÏ <code>create_window</code>."
+"ÎÎÎÎÏ ÎÎÎÎÎÏ ÎÎÎ ÏÎ ÎÏÎÏÎÎÏÎ ÏÎÏ ÎÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÏÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ. Î "
+"<code>ClutterEvent</code> ÎÎÎÎÎ ÎÎÎÏÎÏÎÏÎÎÏÏ ÎÎÎÎÎÎÎ ÎÎ ÏÎ ÏÏÎÎÎÎ "
+"ÎÏÎÎÎÏÎÎÎÎÏÎÎ. ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ, ÎÎÎ ÏÏÎÎÎÎ ÏÎÎÎÏÏÎÏ ÏÎÏÎÎÎÎ ÎÎÎ "
+"<code>ClutterKeyEvent</code> ÎÏÏ ÏÎ ÎÏÎÎÎ ÎÏÎÏÎÎÏÎ ÎÎ ÏÎÏÎÏÎ ÏÎ ÏÎÎÎÏÏÎ ÏÎÏ "
+"ÏÎÏÎÎÎÎÎ ÎÎÏÎÎÏ ÎÎÎÏÎ ÏÎÎÏÎÏÎÏÎÏÎ. ÎÎÎ ÏÎ ÏÏÎÎÎÎÏÎ ÎÎÎÎ ÏÎÏ ÏÎÎÏÎÎÎÎÏ "
+"ÏÎÎÏÎÎÏÎ <code>ClutterButtonEvent</code> ÎÏÏ ÏÎ ÎÏÎÎÎ ÎÏÎÏÎÎÏÎ ÎÎ ÏÎÏÎÏÎ ÏÎÏ "
+"ÏÎÎÎÏ <code>x</code> ÎÎÎ <code>y</code>. ÎÎÎÏÎ ÏÎÎ ÏÎÎÎÎÏÎÏÏÎ ÏÎÏ Clutter "
+"ÎÎÎ ÎÎÎÎÏÏ ÏÏÏÎÏÏ <code>ClutterEvent</code>."
 
-#: C/message-board.c.page:340(code)
-#, no-wrap
+#: C/photo-wall.c.page:325(note/p)
 msgid ""
-"\n"
-"gchar *tmp, *css;\n"
+"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 ""
-"\n"
-"gchar *tmp, *cssÂ\n"
+"Î <code>user_data</code> ÎÎÎÎÎ ÏÎ ÏÏÎÏÎÎÎÏÎÎÎÎ ÎÎÏÎÎÎÏ ÎÎÎ ÎÎ ÏÎÏÎÏÎÎ "
+"ÎÎÎÎÎÎÎÎ ÏÏÎ ÏÏÎÎÏÏÎÏÎ. ÎÎÎÏ ÎÎÎÎÏÎÏ ÏÎ ÎÏÎÎÎÎÎÏÎÏÎ ÏÏÏÎ ÎÎÎÎÎÎÎÏÎ ÎÏÎÏÎÎ ÎÎ "
+"ÏÎÏÎÏÏÎÎ. ÎÎÎ ÏÏÎÎÎÎÏÏÎÏÏÎ ÏÎÎÎÎÏÎÎ ÎÎÎÎÎÎÎÎ ÎÎ ÏÎÏÎÏÏÎÏÎ ÏÏÎÎ ÎÏÎÎÎÎÎÎÏÎ, "
+"ÎÏÎÏÎÎÏÎ ÎÎ ÏÎÏÎÎÎÏÎÏÎÏÎ ÏÎ ÎÎÎÎÎÎÎÎ ÏÎ ÎÎÎ ÎÎÎÎ ÎÎÎ ÎÎ ÏÎÏÎÏÎÏÎ ÏÎ "
+"ÎÎÎÏÎÏÎÏÎ ÏÎÏ."
 
-#: C/message-board.c.page:344(p)
+#: C/photo-wall.c.page:329(item/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."
+"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 ""
-"ÎÎÎÎÎÎÎÎ URI ÎÎÎÎÎÎÏÎ ÎÎ <sys>data:</sys> ÎÎÎ ÎÎÏÎÎÎÏ ÏÎÎÏÎÏÎÏÎÎÏ ÎÎÎ ÏÎÎ "
-"ÏÏÏÎ ÏÎÏÎÎÏÎÎÎÎÎÏ ÎÎÎ ÏÎÎ ÎÏÎÎÎÎÏÎÎÎÏÎ ÎÎÎÎÎÎÎÏÎ. ÎÎ ÎÎÎÏÎÎ ÎÎÎÎÎÎÎÎ "
-"ÎÎÎÎÎÏÎÎÏÎ ÎÎÏÎ ÏÎ ÎÏÎÎÎ, ÏÎ ÎÏÏÎÎ ÏÎÎ ÏÎÏÎÏÏÏÏÎ ÎÏÎÎÎÎÏÎÎÎÎÎÎÎ ÏÎ Base64. "
-"ÎÎÏÎÎÎÏÎ ÎÎ ÎÎÎÎ ÏÏÎÎÎÏÎ URI ÏÏÏÏ <sys>http:</sys>, <sys>ftp:</sys> ÎÎÎ "
-"<sys>file:</sys>, ÏÎ ÏÏÎÎÎ <sys>data:</sys> URI ÎÎÎ ÎÎÎÎÏÎÎÎÎ ÏÎÏ ÎÎ ÎÏÎÎÏÎ "
-"ÎÎÎ ÎÏÏÎÎÎ ÎÎÎ ÏÏÏÏÏÏÎ. ÎÎÎÎÎÎ, ÎÎÎÎÎ ÏÎ ÏÏÎÎÎÎÎÎ ÏÎÏÎÎÏÏÎÎÎÎ ÏÎÏ ÎÏÏÎÎÎÏ."
+"ÎÏÎÎÎÎ 7: ÎÏÎÎÎÎÏÎÏÏÎÏÎÎ ÎÎÎ ÏÏÎÏÎÎÎ ÏÎÎÎÎÎ ÎÎÎ ÎÎÏÎÏÎÏÎÏ ÏÎÏ ÎÎÏÎÏÏÎÏÎÏ "
+"ÏÏÎÎ ÎÏÎÎÎ ÎÎÎÎÏÏÎ: ÎÎÏÎÏÏÎÏÎ ÏÎÎÏÎÏ Î ÎÎÏÎÏÏÎÏÎ ÎÏÏÎÎÏÎÏ. ÎÎÎÎÎÎÎÎ ÏÎ "
+"ÎÎÏÎÏÏÎÏÎ ÏÎÎÏÎÏ, ÎÏÏÎ ÎÎÎÎÎ ÎÎÎÏÎÎ ÎÎÎ ÎÏÎÎ ÎÏÏÎÎÏÎ. ÎÏÏÎ, ÎÏÎÎÎÏÎÎ ÏÎ "
+"ÏÎÎÎÎÎ ÏÎ <code>FALSE</code> ÎÏÏÎÎÎ."
 
-#: C/message-board.c.page:351(p)
+#: C/photo-wall.c.page:330(item/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."
+"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 ""
-"Î ÏÎÏÎÏÎÎÏ ÎÏÎÎÎÎÏ ÏÏÏÏÎ ÎÏÎÎÎÎÏÎÎÎÎ ÏÎÏÏ ÎÏÎÏÎÎÏÏ ÏÎÏ CSS ÏÎ Base64, ÎÏÎÎÏÎ "
-"ÏÏÎÎÏÎÎÎÎ ÎÏÏÏ ÎÎ ÏÏÎÎÎÏÎ ÏÏÎÎÎÎÎÏÎÎÏÎ ÎÎÎ ÎÎÎÎÎÏÏÎÎÎ ÎÎÎÎÎÎÎÏÎ URI. Î "
-"ÏÏÎÎÏÏÎÏÎ <code>g_strconcat</code> ÎÏÎÏÎÎ ÎÎ ÏÎÏÎÎ ÎÏÎÎÎÎÎÏÎÏÎ ÎÏÎÎÎÏ "
-"ÎÏÎÏÎÎÏÏÎ ÏÏÎÎÎÎÎÏÎÎÏÎÏ ÎÎÎ ÎÎ ÏÎ ÏÏÎÎÎÏÏÎÎ ÏÎÎ ÎÎÎÎ, ÎÏÏÎ ÎÏÎÏÎ ÎÎ ÏÎÏÎÏÎÏÎ "
-"ÏÎ <code>NULL</code> ÏÏ ÏÎÎÎÎÏ ÏÏÎÏÎÎ ÎÎÎ ÎÎ ÎÎÏÏÎÎÎÎ ÏÏÏÎ ÎÎ ÏÏÎÎÎÏÎÏÎÎ. "
-"ÎÎÎ ÎÎÏÎÏÎÏÎ ÎÎ ÎÎÎÏÎÎÏÏÏÎÏÎ ÎÏÏÎÏ ÏÎÏ ÏÏÎÏÏÏÎÎÎÏ ÏÏÎÎÎÎÎÏÎÎÏÎÏ ÎÏÎÏ ÎÏÎÏÎÏÎ "
-"ÏÎÎ ÎÎÎÏÏÎÏÎ ÏÏÎÎÎ ÎÎÏÏÎÏÎÎÎÏÎÏ."
+"ÎÏÎÎÎÎ 9: ÎÏÏÎ Î ÎÏÎÎÎÎ ÎÏÎÎÎÎ ÏÏÎÏÎÎ ÎÎÎ ÏÏÎÏÎÏÎÎÏÎÎÎÎ ÏÏÎÎÏÏÎÏÎ, "
+"<code>foreach_set_focus_state</code>, ÎÎÎ ÎÎÎÎ ÏÏÎÎÏÎÎÎ ÏÏÎ "
+"<code>actor_list</code> ÎÎÏ, ÏÎÏÎÏÎÏÎÏ ÏÎ ÎÎÎÏÎÏÎÏÎ ÏÏÎ ÏÎÎÎÎÎ "
+"<code>is_focused</code>. ÎÎ ÎÎÏÎÎ ÏÎÎ ÎÏÎÏÎÏ ÏÎÏ ÏÏÎÎÏÏÎÏÎÏ "
+"<code>foreach_set_focus_state</code> ÏÏÎÎ ÎÏÏÎÎÎÎ ÎÎÏÏÎÏÎ."
 
-#: C/message-board.c.page:358(p)
+#: C/photo-wall.c.page:331(item/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."
+"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 ""
-"ÎÎÏÎÏÎÎÏÎ ÎÎÎ ÎÎÏÎÎÎÏÎ ÏÎÏ ÏÏÎÎÏÎÎÎÎÏÎÏ ÏÎÎÎ. ÎÎ ÏÏÎÏÎÎ ÏÏÏÎ ÎÎ ÎÎÏÎÎÏÎÎ "
-"ÎÎÏÎÎÏÏ ÏÎ ÎÎÎÎ ÏÏÏÏ ÏÏÎ ÏÎÎÎÏ ÏÎÏ ÏÎÎÎÏÏÎÎÎÏ ÎÎÏÏÎÏÎÏ, ÎÎÏÏÏ ÎÏÏ ÏÎ "
-"ÎÎÎÏÎÎÏÎ ÏÎÏ ÎÎ ÎÎÏÏÎÏÎÎÎÏÎÏÎÎ ÏÎÎÏÏÎ ÎÎ ÏÎÏÎÎÏÎÎÎÎ ÎÎÎ ÎÎÏÏÎ ÎÎÎÎÎÎÎÎÏÎ "
-"ÏÎÏÎÏÎÎÎÎÎÏ."
+"ÎÏÎÎÎÎÏ 13-19: ÎÏÎÎÎÎÏÎÏ ÎÏÏÏÎ ÏÎÎ ÎÏÎÎÎÎ ÏÎÎÎÎÎÎÎ ÏÏÎ ÎÎÎ ÎÎÎÏÎÎ ÏÎÏ ÎÏÎÎ "
+"ÏÏÎÏÎÏÏÎ ÎÏÏÎÎÏÎ ÎÎÎ ÎÎÎÎÏÎÎ ÎÎ ÎÏÎÏÏÏÎÏÎÎ ÏÎ ÎÎÏÎÏÏÎÏÎ ÏÎÎÏÎÏ. Î ÏÏÎÎÏÏÎÏÎ "
+"<code>clutter_actor_animate</code> ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÎÎÎ ÏÎÎ ÎÎÎÎÏÎ ÎÎÎÏ "
+"ÎÎÎÏÏÎÏÎÏ ÏÎÏ <code>ClutterActor</code> Î ÎÎÎÎÏÎÏÏÎ ÎÏÏ ÏÎÎ ÏÏÎÏÎÏÏÎÏ "
+"ÎÎÏÎÏÏÎÏÎÎÏ ÏÏÎÏ ÏÏÎÎÎÎÏÎÎÎÎÎÏ ÎÎÏÎÏÏÎÏÎÎÏ. ÎÎ ÎÏÎÏÎÎÏÎ ÎÎÎÎÎ ÏÏÏÏ ÎÎÎÎÎÏÎÎÎ:"
 
-#: C/message-board.c.page:364(title)
-msgid "Learn more"
-msgstr "ÎÎÎÎÏÎ ÏÎÏÎÏÏÏÏÎÏÎ"
+#: C/photo-wall.c.page:333(item/p)
+msgid "The address of the <code>ClutterActor</code> to animate"
+msgstr "Î ÎÎÎÏÎÏÎÏÎ ÏÎÏ <code>ClutterActor</code> ÎÎÎ ÎÎÎÎÏÎ"
 
-#: C/message-board.c.page:366(p)
+#: C/photo-wall.c.page:334(item/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:"
+"The animation mode to use. Here we use <code>CLUTTER_LINEAR</code> so that "
+"we have a constant speed for animation."
 msgstr ""
-"ÎÏÏÏ ÏÎ ÎÎÎÎÎÎ ÎÎÎÏÎÎÎ ÏÎ ÎÎÎÎÎÏÏÎÎÎ ÎÎÎÏ ÎÎÏÎÎÎÏ ÎÏÎÏÎÎÎÎÏ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ "
-"GTK+ ÎÎÎ WebKit, ÏÎÏÎÎÎÎÎÎÎÎÎÏÎÏ ÏÎÎ ÎÎÏÎÎÎÏÎ ÎÎÏÏ ÎÎÎÏÎÏÎÏ ÎÎÎ ÎÏÎÎÎÏÎÎÏÎÎ "
-"ÏÏÎ ÎÎÎÎÎÎÎÏÎ ÏÎÏ. ÎÎÎ ÏÎ ÎÎÎÎÎÏÏÎÎÎ ÎÎÎÏ ÏÏÎÎÎÎÏÎÎÎÏ ÎÏÎÏÎÎÎÎÏ, ÎÎ ÎÎÎÎÏÎ "
-"ÏÏÎÏÎÎÏÏ ÎÎ ÎÎÎÎÏÎ ÎÎÏÎ ÏÎÏÎÏÏÏÏÎÏÎ. ÎÏÎÏÏÎÎÎÏÏÎ ÎÎ ÏÏÎÏÎÎÏÎÏÎ ÎÎÎÎ ÏÎÏ "
-"ÏÎÏÎÎÏÎÏÎÏÏÎÎÎ. ÎÎ ÎÎÏÎÎÎÏ ÎÎÎÎÏ:"
+"Î ÎÎÏÎÏÏÎÏÎ ÎÎÎÎÏÎÏ ÎÎÎ ÏÏÎÏÎ. ÎÎÏ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ <code>CLUTTER_LINEAR</"
+"code> ÎÏÏÎ ÏÏÏÎ ÎÎ ÎÏÎÏÎÎ ÎÎÎ ÏÏÎÎÎÏÎ ÏÎÏÏÏÎÏÎ ÎÎÎ ÎÎÎÎÏÎ."
 
-#: C/message-board.c.page:372(p)
+#: C/photo-wall.c.page:335(item/p)
 msgid ""
-"If you're comfortable with CSS, try changing the style of the message "
-"display. CSS is easy to get started with, but increasingly more powerful. "
-"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 ""
-"ÎÎÎ ÎÎÏÎÏÏÎ ÎÎÎÏÎÎ ÎÎ ÏÎ CSS, ÎÎÎÎÎÎÏÏÎ ÎÎ ÎÎÎÎÎÎÏÎ ÏÎ ÎÎÏÏÎÏÎÎÎÏÎ ÏÎÏ "
-"ÎÎÏÎÎÎÏÎÏ ÏÎÏ ÎÎÎÏÎÎÏÎÏ. ÎÎ CSS ÎÎÎÎÎ ÎÏÎÎÎÎ ÎÎÎ ÎÎ ÎÎÎÎÎÎÏÎÏÎ, ÎÎÎÎ ÎÎÎÏÎÏÏ "
-"ÏÎÏÎÏÏÏÏÎÏÎ ÎÏÏÏÏÏ. ÎÏÎÏÏÎÎ ÏÎÎÎÎÏ ÎÎÎÎÎÎÏÏÎ CSS ÏÏÎ ÎÎÎÎÎÎÏÏÎ ÎÎÎ ÏÏÎÎÏÎ "
-"ÎÎÎÎ ÏÎ ÏÎÏ ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÎÏÎ ÏÏÎÎ ÎÏÏÏ, ÎÏÎÏÎÎÏÎ ÎÎ ÏÎ ÎÎÎÎÏÎ ÎÎ ÎÏÏÎÎ ÏÎÎ "
-"ÎÏÎÏÎÎÎÎ."
+"The duration of the animation in milliseconds. I've chosen 500 ms for this "
+"example."
+msgstr "Î ÎÎÎÏÎÎÎÎ ÏÎÏ ÎÎÎÎÏÎÏ ÏÎ ms. ÎÏÎÎÎÎÎ 500 ms ÎÎÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ."
 
-#: C/message-board.c.page:378(p)
+#: C/photo-wall.c.page:336(item/p)
 msgid ""
-"Right now, you lose all your messages whenever you close the message board. "
-"Try saving the HTML contents after each post, and loading the saved file (if "
-"it exists) on startup."
+"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 ""
-"ÎÏÏÎ ÎÎÎÏÏÏ, ÏÎÎÎÏÎ ÏÎÎ ÏÎ ÎÎÎÏÎÎÏÎ ÏÎÏ ÏÏÎÎ ÎÎÎÎÎÎÏÎ ÏÎÎ ÏÎÎÎÎÎ ÎÎÎÏÎÎÏÏÎ. "
-"ÎÎÎÎÎÎÏÏÎ ÎÎ ÎÏÎÎÎÎÎÏÏÎÏÎ ÏÎ ÏÎÏÎÎÏÏÎÎÎÎ HTML ÎÎÏÎ ÎÏÏ ÎÎÎÎ ÏÎÏÏÎÏÏÎÎÏÎ ÎÎÎ "
-"ÏÎÏÏÏÏÏÎ ÏÎ ÎÏÎÎÎÎÎÏÎÎÎÎ ÎÏÏÎÎÎ (ÎÎÎ ÏÏÎÏÏÎÎ) ÏÏÎÎ ÎÎÎÎÎÎÏÎ."
-
-#: C/message-board.c.page:382(p)
-msgid "Link to method to get HTML from DOM and to GIO APIs."
-msgstr "ÎÏÎÎÎÎÎÎÏÎ ÎÎ ÏÎ ÎÎÎÎÎÎ ÎÎÏÎÏ HTML ÎÏÏ DOM ÎÎÎ ÏÎ GIO APIs."
+"ÎÎ ÏÏÎÎÎÎÏÏÎÎÎÎ ÎÏÎÏÎÎÏÎ ÎÎÎÎÎ ÎÎÏÎÎ ÎÎÎÏÏÎÏÎÏ/ÏÎÎÎÏ. ÎÎÏ ÎÎÎÎÏÎÎ ÎÎ "
+"ÎÏÎÏÎÏÎÎ ÏÎÎ ÏÎÎÎ <code>x</code> ÏÏÎÎ ÎÏÏÎÎÎ ÏÎÎÎ <code>x</code>, ÎÏÏÏÏ Î "
+"<code>ClutterActor</code> ÎÏÎÎ ÏÏÎÎ ÎÎÏÎÏÎÏÎÎÎ ÏÎ ÎÏÏÎÎÏÎ."
 
-#: C/message-board.c.page:386(p)
+#: C/photo-wall.c.page:337(item/p)
 msgid ""
-"If you keep your messages around for a long time, you'll start wondering "
-"when you posted them. Add a timestamp to each message when it's posted. "
-"You'll probably want to create some additional child <code>div</code> "
-"elements with different classes that you can style in the CSS."
+"The last argument must always be <code>NULL</code> to indicate that there "
+"are no more properties to be set."
 msgstr ""
-"ÎÎ ÎÏÎÏÎÏÎ ÏÎ ÎÎÎÏÎÎÏÎ ÏÎÏ ÎÎÎ ÏÎÎÏ ÏÏÏÎÎ, ÎÎ ÎÏÏÎÏÎÏÎ ÎÎ ÎÎÎÏÏÏÎÏÏÎ ÏÏÏÎ ÏÎ "
-"ÏÎÏÏÎÏÎÎÎÏÎÏÎ. ÎÏÎÏÎÎÏÎÏÎ ÎÎÎ ÏÎÎÎÎÎ ÏÏÏÎÎÏ ÏÎ ÎÎÎÎ ÎÎÎÏÎÎ ÏÏÎÎ "
-"ÏÎÏÏÎÏÎÎÎÎÏÎÎ. ÎÎ ÎÎÎÎÏÎ ÏÏÎÏÎÎÏÏ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎ ÎÎÏÎÎÎ ÏÏÏÏÎÎÏÎ ÎÏÎÎÏÏÎÎÎ "
-"ÏÏÎÎÏÎÎÎ <code>div</code> ÎÎ ÎÎÎÏÎÏÎÏÎÎÎÏ ÎÎÎÏÎÎÏ ÏÎÏ ÎÏÎÏÎÎÏÎ ÎÎ "
-"ÎÎÏÏÎÏÎÎÎÏÎÏÎ ÏÎ CSS."
-
-#: C/message-board.c.page:390(p)
-msgid "Link to strftime or something"
-msgstr "ÎÏÎÎÎÏÎ ÎÎ strftime Î ÎÎÏÎ ÎÎÎÎ"
+"ÎÎ ÏÎÎÎÏÏÎÎÎ ÏÏÎÏÎÎ ÏÏÎÏÎÎ ÏÎÎÏÎÏÎ ÎÎ ÎÎÎÎÎ <code>NULL</code> ÎÎÎ ÎÎ ÎÎÎÎÎÎ "
+"ÏÏÎ ÎÎÎ ÏÏÎÏÏÎÏÎ ÏÎÏÎÏÏÏÏÎÏÎÏ ÎÎÎÏÏÎÏÎÏ ÎÎ ÎÏÎÏÏÎÏÎ."
 
-#: C/message-board.c.page:393(p)
+#: C/photo-wall.c.page:339(note/p)
 msgid ""
-"This program keeps messages around forever. Think about ways you could allow "
-"the user to delete messages. Perhaps you want messages to disappear "
-"automatically after they're too old, or after there are a certain number of "
-"messages before them. Or you could add a link in each message to delete it. "
-"You could even override the context menu when you right-click on a message. "
-"These features involve exploring WebKit's DOM API more."
+"The <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 ""
-"ÎÏÏÏ ÏÎ ÏÏÏÎÏÎÎÎÎ ÎÏÎÏÎ ÏÎ ÎÎÎÏÎÎÏÎ ÎÎÎ ÏÎÎÏÎ. ÎÎÎÏÏÎÎÏÎ ÏÏÏÏÎÏÏ ÏÎÏ ÎÎ "
-"ÎÏÎÏÎÏÏÎÎ ÎÎ ÎÏÎÏÏÎÏÎÏÎ ÏÏÎ ÏÏÎÏÏÎ ÎÎ ÎÎÎÎÏÎÏÎÎ ÎÎÎÏÎÎÏÎ. ÎÏÏÏ ÎÎÎÎÏÎ ÏÎ "
-"ÎÎÎÏÎÎÏÎ ÎÎ ÎÎÎÏÎÎÎÎÎÎÏÎÎ ÎÏÏÏÎÎÏÎ ÏÏÎÎ ÏÎÎÎÏÎÎÏÎ, Î ÏÏÎÎ ÏÏÎÏÏÎÎ ÎÎÎÏ "
-"ÏÏÎÎÎÎÏÎÎÎÎÎÏ ÎÏÎÎÎÏÏ ÎÎÎÏÎÎÏÏÎ ÏÏÎÎ ÎÏÏ ÎÏÏÎ. Î ÎÎ ÎÏÎÏÎÏÏÎÏÎ ÎÎ ÏÏÎÏÎÎÏÎÏÎ "
-"ÎÎÎÎ ÏÏÎÎÎÏÎÎ ÏÎ ÎÎÎÎ ÎÎÎÏÎÎ ÎÎÎ ÎÎÎÎÏÎÏÎ ÏÎÏ. ÎÎ ÎÏÎÏÎÏÏÎÏÎ ÎÎÏÎÎ ÎÎ "
-"ÎÎÏÎÎÎÏÎÏÏÎÏÎÏÎ ÏÎ ÎÎÎÎÏ ÏÎÏÎÎÏÎÎÎÎÎÏ ÏÏÎÎ ÎÎÎÎÏÎ ÎÎÎÎÏ ÎÎÎÎ ÏÎ ÎÎÎÏÎÎ. "
-"ÎÏÏÎÏ ÏÎ ÏÎÏÎÎÏÎÏÎÏÏÎÎÎ ÏÎÏÎÎÏÎÏÎ ÏÎÏÎÏÏÏÏÎÏÎ ÏÎÏÎÎÎÎÏÎ ÏÎÏ DOM API ÏÎÏ "
-"WebKit."
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/menubutton.py.page:27(None) C/menubutton.vala.page:21(None)
-#: C/menubutton.js.page:21(None)
-msgid "@@image: 'media/menubutton.png'; md5=1feb7b836a522c3007079d4420621d9d"
-msgstr "@@image: 'media/menubutton.png'Â md5=1feb7b836a522c3007079d4420621d9d"
-
-#: C/menubutton.py.page:23(desc) C/menubutton.vala.page:17(desc)
-#: C/menubutton.js.page:17(desc)
-msgid "A widget that shows a menu when clicked on"
-msgstr "ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÏÎÏ ÎÎÏÎÎÎÎÎÎ ÎÎÎ ÎÎÎÎÏ ÏÏÎÎ ÏÎÏÎÎÎÎ"
+"Î ÎÎÎÏÏÎÏÎ <code>depth</code> ÏÏÎÎÎÎÎÏÎÎ ÏÎÏÎÏÏÏÏÎÏÎ ÎÎÎÎÎÏÎ. ÎÏÎÎÎÎÏÎÎÏÏÎ "
+"ÎÎ ÎÎÏÏÏÏÎÏÎÎ ÏÎÎ ÎÏÏÎÎÏÎÎÎÎ ÎÎÎÏÎÎ, ÎÏÏÎ ÏÏÏÎ ÎÎ ÎÎÎ ÎÎÎÏÎÎÏÎÎ ÏÎÏÏ ÎÏÏ "
+"ÎÎÎÎ <code>ClutterActor</code>. ÎÎ ÎÏÏÎ ÏÎÎ ÎÎÏÏÎÏÎ ÎÏÎÏÏÏÎÏÎÏÎÎ ÏÏÎ ÎÎÎÎ "
+"ÎÎÎÎÏ ÏÏÏÏ ÎÎ ÎÎÎÎÏ ÏÏÎÎ ÏÎÎÏÎ."
 
-#: C/menubutton.py.page:28(p) C/menubutton.vala.page:22(p)
-#: C/menubutton.js.page:22(p)
+#: C/photo-wall.c.page:340(note/p)
 msgid ""
-"The GtkMenuButton widget is used to display a menu when clicked on. This "
-"menu can be provided either as a GtkMenu, or an abstract GMenuModel. The "
-"GtkMenuButton widget can hold any valid child widget. That is, it can hold "
-"almost any other standard GtkWidget. The most commonly used child is the "
-"provided GtkArrow."
+"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 ""
-"ÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ GtkMenuButton ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÎÎÎ ÏÎÎ ÎÎÏÎÎÎÏÎ ÎÎÏÏ "
-"ÎÎÎÎÏ ÏÏÎÎ ÏÎÏÎÎÏÎÎ. ÎÏÏÏ ÏÎ ÎÎÎÎÏ ÎÏÎÏÎÎ ÎÎ ÎÎÎÎÎ ÎÎÏÎ ÏÏ GtkMenu, Î ÏÏ ÎÎÎ "
-"ÎÏÎÏÏÎÏÎÎÎÎ GMenuModel. ÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ GtkMenuButton ÎÏÎÏÎÎ ÎÎ "
-"ÎÏÎÏÎÏÎÎ ÎÏÎÎÎÎÎÏÎÏÎ ÎÏÎÎÏÏÎÎÏ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ. ÎÎÎÎÎÎ, ÎÏÎÏÎÎ ÎÎ ÎÏÎÏÎÏÎÎ "
-"ÏÏÎÎÏÎ ÎÎÎÎ ÎÎÎÎ ÏÏÏÎÎÏ GtkWidget. ÎÎ ÏÎÎ ÏÏÏÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎÎÎ ÎÏÎÎÏÏÎÎÏ "
-"ÎÎÎÎÎ ÏÎ ÏÎÏÎÏÏÎÎÎÎ GtkArrow."
-
-#: C/menubutton.py.page:30(p) C/menubutton.vala.page:26(p)
-#: C/menubutton.js.page:26(p)
-msgid "You need to be running GNOME 3.6 for the MenuButton to work."
-msgstr "ÎÏÎÎÎÎÎÏÎÎ ÎÎ ÏÏÎÎÎÏÎ ÏÎ GNOME 3.6 ÎÎÎ ÎÎ ÎÎÏÎÎÏÎÎ ÏÎ MenuButton."
-
-#: C/menubutton.py.page:40(title)
-msgid "Useful methods for a MenuButton widget"
-msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ MenuButton"
+"ÎÎ ÎÎÎÎÏ ÎÏÎÏÎÏ ÎÎÎÎÏÎÎÎÎ ÏÎÎÎÏ <code>ClutterActor</code> ÎÎÏÎÏÎÎ ÏÏÎÎÎÎÏÎ. "
+"ÎÎÎÏ <code>ClutterActor</code> ÎÎ ÏÏÎÎÏÏÎÏÎ ÏÎÎÎ ÎÎÎÎÏÏ ÎÎÏÎÏÎÎ ÏÎ ÏÏÎÎÎÎÏÎ "
+"ÎÎÎÎ ÎÎÎ ÎÏÎÏÎÎ ÎÎ ÎÏÎÎÎÎÎÎ ÎÎÎ ÏÎ ÏÏÎÎÎÎ ÏÏÎÎÎÎÏÎÎ ÏÏÎ <code>ClutterActor</"
+"code> ÎÎÏÏ ÎÏÏ ÎÏÏÏ. ÎÎ ÎÎÏÎÎ ÏÏÏ ÎÎÏÎÎÏÎÎ ÎÏÏÏ ÏÎ ÎÎÎÎ ÎÎÎÎÏÎ."
 
-#: C/menubutton.py.page:41(p)
+#: C/photo-wall.c.page:342(item/p)
 msgid ""
-"The positioning of the menu is determined by the \"direction\" property of "
-"the menu button and the \"halign\" or \"valign\" properties of the menu. For "
-"example, when the direction is <code>Gtk.ArrowType.DOWN</code> (other "
-"option: <code>UP</code>) and the horizontal alignment is <code>Gtk.Align."
-"START</code> (other options: <code>CENTER</code> and <code>END</code>), the "
-"menu will be positioned below the button, with the starting edge (depending "
-"on the text direction) of the menu aligned with the starting edge of the "
-"button. If there is not enough space below the button, the menu is popped up "
-"above the button instead. If the alignment would move part of the menu "
-"offscreen, it is 'pushed in'."
+"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 ""
-"Î ÏÎÏÎÎÎÏÎÏÎ ÎÎÏÏ ÎÎÎÎÏ ÎÎÎÎÏÎÎÎÏÎÎ ÎÏÏ ÏÎÎ ÎÎÎÏÏÎÏÎ \"direction\" ÏÎÏ "
-"ÎÎÏÎÏÎÎÏ ÎÎÎÎÏ ÎÎÎ ÏÎÏ ÎÎÎÏÏÎÏÎÏ ÏÎÏ ÎÎÎÎÏ \"halign\" Î \"valign\". ÎÎÎ "
-"ÏÎÏÎÎÎÎÎÎÎ, ÏÏÎÎ Î ÎÎÏÎÏÎÏÎÏÎ ÎÎÎÎÎ <code>Gtk.ArrowType.DOWN</code> (ÎÎÎÎ "
-"ÎÏÎÎÎÎÎ: <code>UP</code>) ÎÎÎ Î ÎÏÎÎÏÎÏÎÎ ÏÏÎÎÏÎÏÎ ÎÎÎÎÎ <code>Gtk.Align."
-"START</code> (ÎÎÎÎÏ ÎÏÎÎÎÎÎÏ: <code>CENTER</code> ÎÎÎ <code>END</code>), ÏÎ "
-"ÎÎÎÎÏ ÎÎ ÏÎÏÎÎÎÏÎÎÎÎ ÎÎÏÏ ÎÏÏ ÏÎ ÎÎÏÎÏÎ, ÎÎ ÏÎ ÎÏÏÎÎÏ ÎÎÏÎ (ÎÎÎÎÎÎÎ ÎÎ ÏÎÎ "
-"ÎÎÏÎÏÎÏÎÏÎ ÏÎÏ ÎÎÎÎÎÎÎÏ) ÏÎÏ ÎÎÎÎÏ ÏÏÎÎÏÎÏÎÎÎÎ ÎÎ ÏÎ ÎÏÏÎÎÏ ÎÎÏÎ ÏÎÏ "
-"ÎÎÏÎÏÎÎÏ. ÎÎÎ ÎÎÎ ÏÏÎÏÏÎÎ ÎÏÎÎÏÏÏ ÏÏÏÎÏ ÎÎÏÏ ÎÏÏ ÏÎ ÎÎÏÎÏÎ, ÏÎ ÎÎÎÎÏ "
-"ÎÎÎÎÏÎÏÎÎ ÏÎÎÏ ÎÏÏ ÏÎ ÎÎÏÎÏÎ. ÎÎÎ Î ÏÏÎÎÏÎÏÎ ÎÏÎÏÎÎ ÎÎ ÎÎÏÎÎÎÎÎÏÎÎ ÎÎÏÎÏ ÏÎÏ "
-"ÎÎÎÎÏ ÎÎÏÏÏ ÎÎÏÎÎÏ, ÎÎÎÎÎ 'pushed in'."
+"ÎÏÎÎÎÎ 24: ÏÏÎÎÎÎÏÎÏ ÎÏÏÎ ÏÎ ÎÏÎÎÎÎ ÏÎÏ ÎÏÎÎÎÎ ÏÎÎÎÎÎÎÎ ÏÏÎ ÎÎÎÎÏÏÎ ÏÏÎÏ ÏÎ "
+"ÏÎÏÏÎ ÏÏÎÎ ÎÎÏÎÏÏÎÏÎ ÏÎÎÏÎÏ ÎÎÎ ÏÏÏÎÎÎÏÎÎ ÎÎ ÎÏÏÎÏÎÎ ÎÎÎ <code>ClutterActor</"
+"code> ÎÏÏÎÎÏÎ. ÎÎÏ ÎÏÎÎÎÎÎÏÎÏÎÎ ÏÎÎ ÎÏÏÎÎÎ ÎÎÏÎ, ÎÏÏÎ ÏÏÏÎ ÎÎ ÎÏÎÏÎÏÎÎ ÎÎ "
+"ÎÏÎÏÏÏÎÏÎÏÎÎ ÎÏÎÏÏÎÏÎ."
 
-#: C/menubutton.py.page:43(p)
+#: C/photo-wall.c.page:343(item/p)
 msgid ""
-"In the case of vertical alignment, the possible ArrowType directions are "
-"<code>LEFT</code> and <code>RIGHT</code> and the vertical alignment is again "
-"<code>START</code>, <code>CENTER</code> or <code>END</code>."
+"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 ""
-"ÎÏÎÎ ÏÎÏÎÏÏÏÏÎ ÎÎÎÏ ÎÎÎÎÏÎÏ ÏÏÎÎÏÎÏÎÏ, ÎÎ ÎÏÎÎÏÎÏ ÎÎÏÎÏÎÏÎÏÎÎÏ ÎÎÎÎÎ "
-"<code>LEFT</code> ÎÎÎ <code>RIGHT</code> ÎÎÎ Î ÎÎÎÎÏÎ ÏÏÎÎÏÎÏÎ ÎÎÎÎÎ ÎÎÎÎ "
-"<code>START</code>, <code>CENTER</code> Î <code>END</code>."
+"ÎÏÎÎÎÎ 25: ÎÏÎÎÎÎÏÎÏ ÏÎÎ ÎÎÎÏÏÎÏÎ <code>reactive</code> ÏÎÏ "
+"<code>ClutterActor</code> ÏÎ <code>TRUE</code> ÎÎÎÎÎ ÏÎ <code>ClutterActor</"
+"code> ÎÎ ÎÎÏÎÎÏÎÏÎÎ ÏÎ ÏÏÎÎÎÎÏÎ. ÎÎ ÎÏÏÎ ÏÎÎ ÎÏÏÎÎÏÎÎÎÎ ÎÎÏÎÏÏÎÏÎ Î ÎÏÎÎÏ "
+"<code>ClutterActor</code> ÏÎÏ ÎÎÎÎÏÎÎ ÎÎ ÎÎÏÎÎÎ ÏÏÎÎÎÎÏÎ ÎÎ ÎÎÎÎÎ Î "
+"ÏÏÎÎÎÎÎÏÎÎÎÎÏ <code>ClutterActor</code>. ÎÎÎÎ ÏÏÎ <code>ClutterActor</code> "
+"ÎÎ ÎÏÎÏÏÏÎÏÎÎ ÏÏÎÎ ÎÏÏÎÎÎ ÏÎÏ ÎÎÏÎ."
 
-#: C/menubutton.py.page:45(p)
+#: C/photo-wall.c.page:344(item/p)
 msgid ""
-"<code>set_align_widget(alignment)</code> and <code>set_direction(direction)</"
-"code> can be used to set these properties."
+"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 ""
-"ÎÎ <code>set_align_widget(alignment)</code> and <code>set_direction"
-"(direction)</code> ÎÏÎÏÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÎÏÎ ÎÎÎ ÎÎ ÎÏÎÏÏÎÏÎ ÎÏÏÎÏ ÎÎ "
-"ÎÎÎÏÏÎÏÎÏ."
-
-#: C/menubutton.vala.page:7(title)
-msgid "MenuButton (Vala)"
-msgstr "MenuButton (Vala)"
-
-#: C/menubutton.js.page:7(title)
-msgid "MenuButton (JavaScript)"
-msgstr "MenuButton (JavaScript)"
-
-#: C/menubutton.js.page:12(name)
-msgid "Anna Zacchi"
-msgstr "Anna Zacchi"
-
-#: C/menubutton.js.page:13(email)
-msgid "azzurroverde gmail com"
-msgstr "azzurroverde gmail com"
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/menubar.vala.page:23(None) C/menubar.py.page:28(None)
-msgid "@@image: 'media/menubar.png'; md5=7b642aaa1628d5e43ab85ac230ac1c78"
-msgstr "@@image: 'media/menubar.png'Â md5=7b642aaa1628d5e43ab85ac230ac1c78"
+"ÎÏÎÎÎÎÏ 27-33: ÎÏÏÏ ÎÎÎÎÎ ÏÎÎÎÎ ÎÎ ÏÎÎ ÏÎÏÎÏÎÎÏ ÎÎÎÎÎ ÎÏÎÎÎÎ. ÎÎÎÎÎÏÏÏÎ ÏÏÎ "
+"ÎÏÎÎÎÏÎÎ ÏÎ ÎÎÎÎÏ ÎÎÏÏÏÏÎÏ ÏÎÏ ÏÎÎÏ ÎÏÏ ÏÎÏ ÎÎÎÎÏ ÎÎÎÏÎÎÏ."
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/menubar.vala.page:133(None) C/menubar.py.page:129(None)
+#: C/photo-wall.c.page:345(item/p)
 msgid ""
-"@@image: 'media/menubar_choices.png'; md5=47cdfa12caf85ba20dd3e835bd7f893f"
+"Line 37: Here we toggle the <code>is_focused</code> flag to the current "
+"state."
 msgstr ""
-"@@image: 'media/menubar_choices.png'Â md5=47cdfa12caf85ba20dd3e835bd7f893f"
-
-#: C/menubar.vala.page:7(title)
-msgid "MenuBar (Vala)"
-msgstr "MenuBar (Vala)"
-
-#: C/menubar.vala.page:19(desc) C/menubar.py.page:24(desc)
-msgid "A widget which holds GtkMenuItem widgets"
-msgstr "ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÏÎÏ ÎÏÎÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ GtkMenuItem"
-
-#: C/menubar.vala.page:22(title) C/menubar.py.page:27(title)
-msgid "MenuBar"
-msgstr "MenuBar"
-
-#: C/menubar.vala.page:24(p) C/menubar.py.page:29(p)
-msgid "A MenuBar created using XML and GtkBuilder."
-msgstr "ÎÎÎ ÎÏÎÎÎÎ ÎÏÎÎÎÎÎÏÎ ÎÎÎÎÎÏÏÎÎÎÎÎÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ XML ÎÎÎ GtkBuilder."
-
-#: C/menubar.vala.page:28(title) C/menubar.py.page:33(title)
-msgid "Create a MenuBar using XML"
-msgstr "ÎÎÎÎÎÏÏÎÎÏÏÎ ÎÎÎ MenuBar ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ XML"
-
-#: C/menubar.vala.page:29(p) C/menubar.py.page:34(p)
-msgid "To create the menubar using XML:"
-msgstr "ÎÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎ ÎÎÎ ÎÏÎÎÎÎ ÎÎÎÎÏ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ XML:"
+"ÎÏÎÎÎÎ 37: ÎÎÏ ÎÎÎÎÎÎÏÏÎÏÎÎ ÏÎ ÏÎÎÎÎÎ <code>is_focused</code> ÏÏÎÎ ÏÏÎÏÎÏÏÎ "
+"ÎÎÏÎÏÏÎÏÎ."
 
-#: C/menubar.vala.page:31(p) C/menubar.py.page:36(p)
-msgid "Create <file>menubar.ui</file> using your favorite text editor."
+#: C/photo-wall.c.page:346(item/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 ""
-"ÎÎÎÎÎÏÏÎÎÏÏÎ <file>menubar.ui</file> ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎÎ ÎÎÎÏÎÎÎÎÎ ÏÎÏ "
-"ÎÏÎÎÎÏÎÎÏÏÎ ÎÎÎÎÎÎÎÏ."
+"ÎÏÏÏ ÎÎÎÏÎÏÎÎÎÎ ÏÏÎÎÎÎÏÎÎÎÏÏ, Î <code>ClutterActor</code> ÎÎ ÏÏÎÎÏÏÎÏÎÏ "
+"ÏÎÎÎÏ <code>depth</code> ÎÎÏÎÏÎÎ ÏÏÎÎÎÎÏÎ ÎÎÎÎ ÎÏÎÏÎÏÎ ÎÎ ÎÏÎÏÏÎÏÎÏÎ "
+"<code>ClutterActor</code> ÎÏÏ ÎÎÏÏ ÏÎÏÏ ÎÎ ÎÎÏÎÎÏÎ ÎÏÎÏÎÏ ÏÏÎÎÎÎÏÎ. "
+"ÎÏÎÏÏÏÎÏÎ ÏÎ <code>TRUE</code> ÎÎ ÏÏÎÎÎÏÎÏÎÎ ÏÎ ÏÏÎÎÎÎÏÎ ÎÏÏ ÏÎ ÎÎ "
+"ÏÏÎÎÏÎÏÎÏÎ, ÎÎÏ <code>FALSE</code> ÎÎ ÏÏÎÎÏÎÏÎÎ ÏÎ ÏÏÎÎÎÎÏÎ."
 
-#: C/menubar.vala.page:32(p) C/menubar.py.page:37(p)
-msgid "Enter the following line at the top of the file:"
-msgstr "ÎÎÏÎÎÎÏÎ ÏÎÎ ÎÏÏÎÎÎÎ ÎÏÎÎÎÎ ÏÏÎÎ ÎÎÏÏÏÎ ÏÎÏ ÎÏÏÎÎÎÏ:"
+#: C/photo-wall.c.page:348(note/p)
+msgid ""
+"Remember, however, that to receive events the <code>ClutterActor</code>s "
+"must be set <code>reactive</code>."
+msgstr ""
+"ÎÎ ÎÏÎÏÏÎÏÏÎ, ÏÎÏÏ, ÏÏÎ ÎÎÎ ÎÏÎÎÎÏÎ ÏÏÎÎÎÎÏÏÎ ÏÎ <code>ClutterActor</code> "
+"ÏÏÎÏÎÎ ÎÎ ÎÏÎÏÏÎÎ ÏÎ <code>reactive</code>."
 
-#: C/menubar.vala.page:36(p) C/menubar.py.page:41(p)
+#: C/photo-wall.c.page:352(section/p)
 msgid ""
-"We want to create the interface which will contain our menubar and it's "
-"submenus. Our menubar will contain <gui>File</gui>, <gui>Edit</gui>, "
-"<gui>Choices</gui> and <gui>Help</gui> submenus. We add the following XML "
-"code to the file:"
+"The following is the convenience function passed to <code>g_slist_foreach</"
+"code>."
 msgstr ""
-"ÎÎÎÎÏÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ ÏÎ ÎÎÎÏÎÏÎ ÏÎÏ ÎÎ ÏÎÏÎÎÏÎÎ ÏÎ ÎÏÎÎÎÎ ÎÎÎÎÏ ÎÎÏ ÎÎÎ "
-"ÏÎ ÏÏÎÎÎÎÎÏ ÏÎÏ. Î ÎÏÎÎÎÎ ÎÎÎÎÏ ÎÎÏ ÎÎ ÏÎÏÎÎÏÎÎ ÏÎ ÏÏÎÎÎÎÎÏ <gui>ÎÏÏÎÎÎ</"
-"gui>, <gui>ÎÏÎÎÎÏÎÎÏÎÎ</gui>, <gui>ÎÏÎÎÎÎÎÏ</gui> ÎÎÎ <gui>ÎÎÎÎÎÎÎ</gui>. "
-"ÎÏÎÏÎÎÏÎÏÎÎ ÏÎÎ ÎÎÏÎÎÏÎÎ ÎÏÎÎÎÎ XML ÏÏÎ ÎÏÏÎÎÎ:"
+"ÎÎ ÏÎÏÎÎÎÏÏ ÎÎÎÎÎ ÎÎÎ ÏÏÎÎÏÏÎÏÎ ÎÎÎÏÎÏÎÏÎÏÎÏ ÏÎÏ ÏÎÏÎÏÎ ÏÎ "
+"<code>g_slist_foreach</code>."
 
-#: C/menubar.vala.page:39(p)
+#: C/photo-wall.c.page:355(section/code)
+#, no-wrap
 msgid ""
-"Now we will create the .vala file and use GtkBuilder to import the "
-"<file>menubar.ui</file> we just created."
+"\n"
+"static void\n"
+"foreach_set_focus_state(gpointer data, gpointer user_data)\n"
+"{\n"
+"    ClutterActor *actor = CLUTTER_ACTOR(data);\n"
+"    gboolean is_reactive = *((gboolean*)user_data);\n"
+"\n"
+"    clutter_actor_set_reactive(actor, is_reactive);\n"
+"}"
 msgstr ""
-"ÎÏÏÎ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ ÏÎ ÎÏÏÎÎÎ .vala ÎÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ GtkBuilder "
-"ÎÎÎ ÎÎÏÎÎÏÎÎ ÏÎÏ <file>menubar.ui</file> ÏÎÏ ÎÏÎÎÏ ÎÎÎÎÎÏÏÎÎÏÎÎÎ."
+"\n"
+"static void\n"
+"foreach_set_focus_state(gpointer data, gpointer user_data)\n"
+"{\n"
+"    ClutterActor *actor = CLUTTER_ACTOR(data);\n"
+"    gboolean is_reactive = *((gboolean*)user_data);\n"
+"\n"
+"    clutter_actor_set_reactive(actor, is_reactive);\n"
+"}"
 
-#: C/menubar.vala.page:42(title) C/menubar.py.page:48(title)
-msgid "Add the MenuBar to the window using GtkBuilder"
-msgstr "ÎÏÎÏÎÎÏÏÎ ÏÎ MenuBar ÏÏÎ ÏÎÏÎÎÏÏÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ GtkBuilder"
+#: C/photo-wall.c.page:365(item/p)
+msgid ""
+"Lines 2â5: The signature of this function requires two <code>gpointer</"
+"code>s. The first is a pointer to the <code>ClutterActor</code> that our "
+"<code>GSList</code> holds and the other is the <code>is_focused</code> flag "
+"that we've passed in the previous section. We want to cast these and store "
+"them for easy use."
+msgstr ""
+"ÎÏÎÎÎÎÏ 2-5: Î ÏÏÎÎÏÎÏÎ ÎÏÏÎÏ ÏÎÏ ÏÏÎÎÏÏÎÏÎÏ ÎÏÎÎÏÎÎ ÎÏÎ <code>gpointer</"
+"code>. ÎÎ ÏÏÏÏÎ ÎÎÎÎÎ ÎÎÎÏ ÎÎÎÎÏÎÏ ÏÏÎ <code>ClutterActor</code> ÏÎÏ Î "
+"<code>GSList</code> ÎÎÏ ÎÏÎÏÎ ÎÎÎ Î ÎÎÎÎÏ ÎÎÎÎÎ Î ÏÎÎÎÎÎ <code>is_focused</"
+"code> ÏÎÏ ÏÎÏÎÏÎÎÎ ÏÏÎÎ ÏÏÎÎÎÎÏÎÎÎÎ ÎÎÏÏÎÏÎ. ÎÎÎÎÏÎÎ ÎÎ ÏÎ ÎÎÎÎÎÎÏÎÎ ÎÎÎ ÎÎ "
+"ÏÎ ÎÏÎÎÎÎÎÏÏÎÏÎÎ ÎÎÎ ÎÏÎÎÎÎ ÏÏÎÏÎ."
 
-#: C/menubar.vala.page:44(p)
+#: C/photo-wall.c.page:366(item/p)
 msgid ""
-"Now, compile the vala file, and run it. The application should look like the "
-"picture at the top of this page."
+"Line 7: Depending on which boolean value is passed in, the "
+"<code>ClutterActor</code> will be set to respond to events or not."
 msgstr ""
-"ÎÏÏÎ, ÎÎÏÎÎÎÏÏÏÎÏÏÎ ÏÎ ÎÏÏÎÎÎ vala ÎÎÎ ÎÎÏÎÎÎÏÏÎ ÏÎ. Î ÎÏÎÏÎÎÎÎ ÎÎ ÏÏÎÏÎÎ ÎÎ "
-"ÏÎÎÎÎÏÎÎ ÏÎÎ ÏÎÎ ÎÎÎÏÎÎ ÏÏÎÎ ÎÎÏÏÏÎ ÎÏÏÎÏ ÏÎÏ ÏÎÎÎÎÎÏ."
+"ÎÏÎÎÎÎ 7: ÎÎÎÎÎÎÎ ÎÎ ÏÎÎÎ ÏÎÎÎ ÎÏÎÏÎ ÏÎÏÎÏÎ, Î <code>ClutterActor</code> ÎÎ "
+"ÎÏÎÏÏÎÎ ÎÎ ÎÏÎÎÏÎÏÎÎ Î ÏÏÎ ÏÏÎ ÏÏÎÎÎÎÏÎ."
 
-#: C/menubar.vala.page:50(title) C/menubar.py.page:54(title)
-msgid "Add items to the menus"
-msgstr "ÎÏÎÏÎÎÎÎ ÏÏÎÎÏÎÎÏÎ ÏÏÎ ÎÎÎÎÏ"
+#: C/photo-wall.c.page:372(section/p)
+msgid ""
+"All of the code should now be ready to go. All you need now is some pictures "
+"to load. By default, the pictures are loaded from a <file>berlin_images</"
+"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 ""
+"ÎÎÎÏ Î ÎÏÎÎÎÎÏ ÏÏÎÏÎÎ ÏÏÏÎ ÎÎ ÎÎÎÎÎ ÎÏÎÎÎÎÏ. ÎÏÏÎ ÏÏÎÎÎÎÏÏÎÏÏÎ ÎÎÏÎÎÎÏ "
+"ÎÎÎÏÎÎÏ ÎÎÎ ÏÏÏÏÏÏÎ. ÎÏÏ ÏÏÎÎÏÎÎÎÎÎ, ÎÎ ÎÎÎÏÎÎÏ ÏÎÏÏÏÎÎÎÏÎÎ ÎÏÏ ÎÎÎÎ "
+"ÎÎÏÎÎÎÎÎ <file>berlin_images</file>. ÎÎÎ ÎÎÎÎÏÎ, ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÎÎÎÏÎ ÏÎ "
+"ÎÏÎÎÎÎ <code>#define IMAGE_DIR_PATH</code> ÎÎÎÏÎ ÏÏÎÎ ÎÎÏÏÏÎ ÎÎÎ ÎÎ "
+"ÎÎÎÏÎÏÎÎÎÏÎ ÏÏÎÎ ÎÎÏÎÎÎÎÎ ÏÏÏÎÎÏÎÏÎÏÎ, Î ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎ ÎÎÎ ÎÎÏÎÎÎÎÎ "
+"<file>berlin_images</file> ÎÎ ÎÎÎÎ ÏÏÎ <guiseq><gui>ÎÏÎÎ</gui><gui>ÎÎÎÏ "
+"ÎÎÏÎÎÎÎÎÏ...</gui></guiseq> ÎÎÎ ÎÎÎÎÎÏÏÎÎÎ ÎÎÏÏ ÎÎÏÎÎÏÎÎÏ "
+"<file>berlin_images</file> ÏÏ ÏÏÎÎÎÏÎÎÏÎÎÏ ÏÎÏ ÎÎÏÎÎÏÎÎÏ <file>photo-wall</"
+"file>. ÎÎÎÎÎÏÎÎÎÏÎ ÏÏÎ ÎÎÎÎÏÎ ÏÎÏÎÎÏÎÏÏÎÎ ÎÏÎÎÎÎ ÎÎÎÏÎÎÏ ÏÏÎÎ ÎÎÏÎÎÎÎÎ!"
 
-#: C/menubar.vala.page:51(p) C/menubar.py.page:55(p)
+#: C/photo-wall.c.page:374(section/p)
 msgid ""
-"We start off by adding 2 menuitems to the <gui>File</gui> menu: <gui>New</"
-"gui> and <gui>Quit</gui>. We do this by adding a <code>section</code> to the "
-"the <code>File</code> submenu with these items. The <file>menubar.ui</file> "
-"should look like this (lines 6 to 13 inclusive comprise the newly added "
-"section):"
+"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 ""
-"ÎÎÎÎÎÎÎÎ ÏÏÎÏÎÎÏÎÎÏÎÏ 2 ÏÏÎÎÏÎÎÎ ÎÎÎÎÏ ÏÏÎ ÎÎÎÎÏ <gui>ÎÏÏÎÎÎ</gui>: "
-"<gui>ÎÎÎ</gui> ÎÎÎ <gui>ÎÎÎÎÏÎÎÎ</gui>. ÎÎ ÎÎÎÎÏÎÎ ÎÏÏÏ ÏÏÎÏÎÎÏÎÎÏÎÏ ÎÎÎ "
-"<code>section</code> ÏÏÎ ÏÏÎÎÎÎÎÏ <code>File</code> ÎÎ ÎÏÏÎ ÏÎ ÏÏÎÎÏÎÎÎ. ÎÎ "
-"<file>menubar.ui</file> ÏÏÎÏÎÎ ÎÎ ÏÎÎÎÎÏÎÎ ÏÎÎ ÎÏÏÏ (ÎÏÎÎÎÎÏ 6 ÎÏÏ 13 "
-"ÏÏÎÏÎÏÎÎÎÎÎÎÎÏÎÎÎÎÏ ÎÏÎÏÎÎÎÏÎ ÏÎ ÎÎÎ ÎÎÏÏÎÏÎ ÏÎÏ ÏÏÎÏÏÎÎÎÎÎ):"
+"ÎÏÎÎ ÏÎÎÎÎÏÏÎÏÎ, ÎÎÎÎ <guiseq><gui>ÎÎÏÎÏÎÎÏÎ</gui><gui>ÎÎÏÎÏÎÎÏÎ ÎÏÎÎÏ</"
+"gui></guiseq> ÎÎÎ ÎÎ ÎÎÏÎÏÎÎÏÎÏÎÏÎ ÎÏÎÎÎÏÎÏÎ ÎÎÎÎ, ÎÏÎÎÏÎ "
+"<guiseq><gui>ÏÏÎÎÎÎÎ</gui><gui>ÎÎÏÎÎÎÏÎ</gui></guiseq> ÎÎÎ ÎÎÎÏÎÎ ÏÎÏ "
+"ÎÏÎÏÎÎÎÎÏ."
 
-#: C/menubar.vala.page:79(p)
+#: C/photo-wall.c.page:375(section/p)
 msgid ""
-"Following this pattern, you can now add a <code>Copy</code> and a "
-"<code>Paste</code> item to the <code>Edit</code> submenu, and an "
-"<code>About</code> item to the <code>Help</code> submenu. We will hold off "
-"on adding items to the <link xref=\"menubar.vala#choices\">Choices submenu</"
-"link> until further in the tutorial."
+"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 ""
-"ÎÎÎÎÎÏÎÏÎÏÎÏ ÎÏÏÏ ÏÎ ÎÎÏÎÎÎ, ÎÏÎÏÎÎÏÎ ÏÏÏÎ ÎÎ ÏÏÎÏÎÎÏÎÏÎ ÎÎÎ ÏÏÎÎÏÎÎÎ "
-"<code>Copy</code> and ÎÎÎ <code>Paste</code> ÏÏÎ ÏÏÎÎÎÎÎÏ <code>Edit</code> "
-"ÎÎÎ ÎÎÎ ÏÏÎÎÏÎÎÎ <code>About</code> ÏÏÎ ÏÏÎÎÎÎÎÏ <code>Help</code>. ÎÎ "
-"ÎÎÎÏÏÏÎÏÎÏÎÏÎÎ ÏÎÎ ÏÏÎÏÎÎÎÎ ÏÏÎÎÏÎÎÏÎ ÏÏÎ <link xref=\"menubar.vala#choices"
-"\">ÏÏÎÎÎÎÎÏ ÎÏÎÎÎÎÎÏ</link> ÎÎÏÏÎ ÏÎÏÎÏÎÏÎ ÏÏÎ ÎÎÎÎÎÎ."
+"ÎÎÎ ÎÎÎ ÏÎ ÎÏÎÏÎ ÎÎÎ ÎÎÎÎÎ, ÎÏÎÎÎÎÏÎ ÏÎÎ ÎÏÎÏÎÎÎÎ <file>Debug/src/photo-"
+"wall</file> ÏÏÎÎ ÎÎÎÎÎÎÎ ÏÎÏ ÎÎÏÎÎÎÎÎÏÎÎ. ÎÎÎÎÎÎ ÏÎÏÎÏÏÎ <gui>ÎÎÏÎÎÎÏÎ</gui> "
+"ÎÎÎ ÎÏÎÎÎÏÏÏÎ ÏÎ!"
 
-#: C/menubar.vala.page:81(p)
+#: C/photo-wall.c.page:380(section/p)
 msgid ""
-"You do not need to recompile the vala program if you only made changes to "
-"the UI file. Just run your previously compiled application, and the UI "
-"changes will be reflected."
+"If you run into problems with the tutorial, compare your code with this "
+"<link href=\"photo-wall/photo-wall.c\">reference code</link>."
 msgstr ""
-"ÎÎÎ ÏÏÎÎÎÎÎÏÏÎ ÎÎÎÎÎÎÏÎÎÎÏÏÏÎÏÎ ÏÎÏ ÏÏÎÎÏÎÎÎÎÏÎÏ vala ÎÎÎ ÎÎÎÎÏÎ ÎÎÎÎÎÎÏ "
-"ÎÏÎÎ ÏÏÎ ÎÏÏÎÎÎ UI. ÎÏÎÎ ÎÎÏÎÎÎÏÏÎ ÏÎÎ ÏÏÎÎÎÎÏÎÎÎÏÏ ÎÎÏÎÎÎÏÏÏÎÏÎÎÎÎ ÎÏÎÏÎÎÎÎ "
-"ÎÎÎ ÎÎ ÎÎÎÎÎÎÏ UI ÎÎ ÎÎÎÎÎÎÏÏÎÏÎ."
+"ÎÎ ÎÎÏÎÎÎÏÏÏÎÏÎÏÎ ÏÏÏÎÎÎÎÎ ÎÎ ÏÎ ÎÎÎÎÎÎ, ÏÏÎÎÏÎÎÎÏÎ ÏÎÎ ÎÏÎÎÎÎ ÏÎÏ ÎÎ ÎÏÏÏÎ "
+"ÏÎÎ <link href=\"photo-wall/photo-wall.c\">ÎÏÎÎÎÎÏ ÎÎÎÏÎÏÎÏ</link>."
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/progressbar.c.page:23(media) C/progressbar.vala.page:21(media)
+msgctxt "_"
+msgid ""
+"external ref='media/progressbar_fill.ogv' "
+"md5='287763d1d3f4a328212ea2243910f5e4'"
+msgstr ""
+"external ref='media/progressbar_fill.ogv' "
+"md5='287763d1d3f4a328212ea2243910f5e4'"
+
+#: C/progressbar.c.page:7(info/title)
+msgctxt "text"
+msgid "ProgressBar (C)"
+msgstr "ProgressBar (C)"
 
-#: C/menubar.vala.page:86(title) C/menubar.py.page:92(title)
-msgid "Setup actions"
-msgstr "ÎÎÎÎÏÎÏÏÎÏÎ ÎÎÎÏÎÎÎÏÎ"
+#: C/progressbar.c.page:18(info/desc) C/progressbar.vala.page:17(info/desc)
+msgid "A widget which indicates progress visually"
+msgstr "ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÏÎÏ ÎÎÎÏÎÎÎ ÏÎÎ ÏÏÏÎÎÎ ÎÏÏÎÎÎ"
 
-#: C/menubar.vala.page:87(p)
-msgid "This is a three step process."
-msgstr "ÎÏÏÎ ÎÎÎÎÎ ÎÎÎ ÎÎÎÏÎÎÏÎÎ ÏÏÎÏÎ ÎÎÎÎÏÏÎ."
+#: C/progressbar.c.page:21(page/title) C/progressbar.js.page:19(page/title)
+#: C/progressbar.py.page:20(page/title) C/progressbar.vala.page:20(page/title)
+msgid "ProgressBar"
+msgstr "ProgressBar"
 
-#: C/menubar.vala.page:89(p)
+#: C/progressbar.c.page:24(page/p) C/progressbar.vala.page:22(page/p)
 msgid ""
-"First we create the ActionEntry array in the MyApplication class. An "
-"ActionEntry consists of:"
+"This ProgressBar \"fills in\" by a fraction of the bar until it is full."
 msgstr ""
-"ÎÏÏÏÎ ÎÎÎÎÎÏÏÎÎÏÎÎ ÏÎÎ ÏÎÎÎÎÎ ActionEntry ÏÏÎÎ ÎÎÎÏÎ MyApplication. ÎÎÎ "
-"ActionEntry ÎÏÎÏÎÎÎÎÏÎÎ ÎÏÏ:"
+"ÎÏÏÎ Î ProgressBar \"ÎÎÎÎÎÎÎ\" ÎÎ ÎÎÎ ÎÎÎÏÎÎ ÏÎÏ ÎÏÎÎÎÎÏ ÎÎÏÏÎ ÎÎ ÎÎÎÎÏÎÎ."
 
-#: C/menubar.vala.page:92(p)
-msgid "the \"action name\" (mandatory)"
-msgstr "ÏÎ \"action name\" (ÏÏÎÏÏÎÏÏÎÎÏ)"
+#: C/progressbar.c.page:26(page/code)
+#, no-wrap
+msgid ""
+"\n"
+"#include &lt;gtk/gtk.h&gt;\n"
+"\n"
+"\n"
+"static gboolean\n"
+"fill (gpointer   user_data)\n"
+"{\n"
+"  GtkWidget *progress_bar = user_data;\n"
+"\n"
+"  /*Get the current progress*/\n"
+"  gdouble fraction;\n"
+"  fraction = gtk_progress_bar_get_fraction (GTK_PROGRESS_BAR (progress_bar));\n"
+"\n"
+"  /*Increase the bar by 10% each time this function is called*/\n"
+"  fraction += 0.1;\n"
+"\n"
+"  /*Fill in the bar with the new fraction*/\n"
+"  gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (progress_bar), fraction);\n"
+"\n"
+"  /*Ensures that the fraction stays below 1.0*/\n"
+"  if (fraction &lt; 1.0) \n"
+"    return TRUE;\n"
+"  \n"
+"  return FALSE;\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"static void\n"
+"activate (GtkApplication *app,\n"
+"          gpointer        user_data)\n"
+"{\n"
+"  GtkWidget *window;\n"
+"  GtkWidget *progress_bar;\n"
+"\n"
+"  gdouble fraction = 0.0;\n"
+"\n"
+"  /*Create a window with a title, and a default size*/\n"
+"  window = gtk_application_window_new (app);\n"
+"  gtk_window_set_title (GTK_WINDOW (window), \"ProgressBar Example\");\n"
+"  gtk_window_set_default_size (GTK_WINDOW (window), 220, 20);\n"
+" \n"
+"  /*Create a progressbar and add it to the window*/\n"
+"  progress_bar = gtk_progress_bar_new ();\n"
+"  gtk_container_add (GTK_CONTAINER (window), progress_bar);\n"
+"\n"
+"  /*Fill in the given fraction of the bar. Has to be between 0.0-1.0 inclusive*/\n"
+"  gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (progress_bar), fraction);\n"
+"\n"
+"  /*Use the created fill function every 500 milliseconds*/\n"
+"  g_timeout_add (500, fill, GTK_PROGRESS_BAR (progress_bar));\n"
+" \n"
+"  gtk_widget_show_all (window);\n"
+"}\n"
+" \n"
+"\n"
+"\n"
+"int\n"
+"main (int argc, char **argv)\n"
+"{\n"
+"  GtkApplication *app;\n"
+"  int status;\n"
+" \n"
+"  app = gtk_application_new (\"org.gtk.example\", G_APPLICATION_FLAGS_NONE);\n"
+"  g_signal_connect (app, \"activate\", G_CALLBACK (activate), NULL);\n"
+"  status = g_application_run (G_APPLICATION (app), argc, argv);\n"
+"  g_object_unref (app);\n"
+" \n"
+"  return status;\n"
+"}\n"
+msgstr ""
+"\n"
+"#include &lt;gtk/gtk.h&gt;\n"
+"\n"
+"\n"
+"static gboolean\n"
+"fill (gpointer   user_data)\n"
+"{\n"
+"  GtkWidget *progress_bar = user_data;\n"
+"\n"
+"  /*Get the current progress*/\n"
+"  gdouble fraction;\n"
+"  fraction = gtk_progress_bar_get_fraction (GTK_PROGRESS_BAR (progress_bar));\n"
+"\n"
+"  /*Increase the bar by 10% each time this function is called*/\n"
+"  fraction += 0.1;\n"
+"\n"
+"  /*Fill in the bar with the new fraction*/\n"
+"  gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (progress_bar), fraction);\n"
+"\n"
+"  /*Ensures that the fraction stays below 1.0*/\n"
+"  if (fraction &lt; 1.0) \n"
+"    return TRUE;\n"
+"  \n"
+"  return FALSE;\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"static void\n"
+"activate (GtkApplication *app,\n"
+"          gpointer        user_data)\n"
+"{\n"
+"  GtkWidget *window;\n"
+"  GtkWidget *progress_bar;\n"
+"\n"
+"  gdouble fraction = 0.0;\n"
+"\n"
+"  /*Create a window with a title, and a default size*/\n"
+"  window = gtk_application_window_new (app);\n"
+"  gtk_window_set_title (GTK_WINDOW (window), \"ProgressBar Example\");\n"
+"  gtk_window_set_default_size (GTK_WINDOW (window), 220, 20);\n"
+" \n"
+"  /*Create a progressbar and add it to the window*/\n"
+"  progress_bar = gtk_progress_bar_new ();\n"
+"  gtk_container_add (GTK_CONTAINER (window), progress_bar);\n"
+"\n"
+"  /*Fill in the given fraction of the bar. Has to be between 0.0-1.0 inclusive*/\n"
+"  gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (progress_bar), fraction);\n"
+"\n"
+"  /*Use the created fill function every 500 milliseconds*/\n"
+"  g_timeout_add (500, fill, GTK_PROGRESS_BAR (progress_bar));\n"
+" \n"
+"  gtk_widget_show_all (window);\n"
+"}\n"
+" \n"
+"\n"
+"\n"
+"int\n"
+"main (int argc, char **argv)\n"
+"{\n"
+"  GtkApplication *app;\n"
+"  int status;\n"
+" \n"
+"  app = gtk_application_new (\"org.gtk.example\", G_APPLICATION_FLAGS_NONE);\n"
+"  g_signal_connect (app, \"activate\", G_CALLBACK (activate), NULL);\n"
+"  status = g_application_run (G_APPLICATION (app), argc, argv);\n"
+"  g_object_unref (app);\n"
+" \n"
+"  return status;\n"
+"}\n"
 
-#: C/menubar.vala.page:93(p)
+#: C/progressbar.c.page:35(item/p)
 msgid ""
-"the callback function to connect to the \"activate\" signal of the action "
-"(if applicable)"
+"<link href=\"http://developer.gnome.org/glib/stable/glib-The-Main-Event-Loop.";
+"html#g-timeout-add\">G_Timeout</link>"
 msgstr ""
-"ÏÎ ÏÏÎÎÏÏÎÏÎ ÎÏÎÎÎÎÎÎÏÎÏ ÎÎÎ ÎÎ ÏÏÎÎÎÏÎÏÎ ÏÎ ÏÎÎÎ \"activate\" ÏÎÏ ÎÎÎÏÎÎÎÎÏ "
-"(ÎÎÎ ÎÎÎÎÏÎÎ)"
+"<link href=\"http://developer.gnome.org/glib/stable/glib-The-Main-Event-Loop.";
+"html#g-timeout-add\">G_Timeout</link>"
 
-#: C/menubar.vala.page:94(p)
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/progressbar.js.page:20(media) C/progressbar.py.page:21(media)
+msgctxt "_"
 msgid ""
-"the type of the parameter that must be passed to the activate function for "
-"the action (if applicable)"
+"external ref='media/progressbar.ogv' md5='36deab3dd4b5be968828fa2ef416d612'"
 msgstr ""
-"ÏÎÎ ÏÏÏÎ ÏÎÏ ÏÎÏÎÎÎÏÏÎÏ ÏÎÏ ÏÏÎÏÎÎ ÎÎ ÏÎÏÎÏÏÎÎ ÏÏÎÎ ÎÎÎÏÎÎÏÎÎÎÎÎÎÎ ÏÏÎÎÏÏÎÏÎ "
-"ÎÎÎ ÏÎÎ ÎÎÎÏÎÎÎÎ (ÎÎÎ ÎÎÎÎÏÎÎ)"
+"external ref='media/progressbar.ogv' md5='36deab3dd4b5be968828fa2ef416d612'"
 
-#: C/menubar.vala.page:95(p)
-msgid "the initial state for this action (if applicable)"
-msgstr "ÏÎÎ ÎÏÏÎÎÎ ÎÎÏÎÏÏÎÏÎ ÎÎÎ ÎÏÏÎÎ ÏÎÎ ÎÎÎÏÎÎÎÎ (ÎÎÎ ÎÎÎÎÏÎÎ)"
+#: C/progressbar.js.page:6(info/title)
+msgctxt "text"
+msgid "ProgressBar (JavaScript)"
+msgstr "ProgressBar (JavaScript)"
 
-#: C/menubar.vala.page:96(p)
-msgid "the callback to connect to \"change-state\" signal (if applicable)"
-msgstr "ÏÎÎ ÎÏÎÎÎÎÎÎÏÎ ÏÏÎÎÎÏÎÏ ÎÎ ÏÎ ÏÎÎÎ \"change-state\" (ÎÎÎ ÎÎÎÎÏÎÎ)"
+#: C/progressbar.js.page:16(info/desc)
+msgid "A bar which animates to indicate progress"
+msgstr "ÎÎÎ ÎÏÎÎÎÎ ÏÎÏ ÎÎÎÎÎÏÎÎ ÎÎÎ ÎÎ ÎÎÎÎÎÎ ÏÎÎ ÏÏÏÎÎÎ"
+
+#: C/progressbar.js.page:24(div/p) C/progressbar.py.page:25(div/p)
+msgid "Pressing any key stops and starts this ProgressBar."
+msgstr "ÎÎÏÏÎÏÎÏ ÎÏÎÎÎÎÎÏÎÏÎ ÏÎÎÎÏÏÎ ÏÏÎÎÎÏÎ ÎÎÎ ÎÏÏÎÎÎÎ ÎÏÏÎ ÏÎ ProgressBar."
+
+#: C/progressbar.js.page:31(page/p) C/progressbar.py.page:32(page/p)
+msgid "This ProgressBar is stopped and started by pressing any key."
+msgstr "ÎÏÏÎ Î ProgressBar ÏÏÎÎÎÏÎ ÎÎÎ ÎÎÎÎÎÎ ÏÎÏÏÎÏÎÏ ÎÏÎÎÎÎÎÏÎÏÎ ÏÎÎÎÏÏÎ."
 
-#: C/menubar.vala.page:98(code)
+#: C/progressbar.js.page:33(page/code)
 #, no-wrap
 msgid ""
+"#!/usr/bin/gjs\n"
 "\n"
-"const ActionEntry[] actions = {\n"
-"    { \"new\", new_cb }, // {\"action name\", callback_function}\n"
-"    { \"quit\", quit_cb }\n"
-"};"
-msgstr ""
+"const Gio = imports.gi.Gio;\n"
+"const GLib = imports.gi.GLib;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
 "\n"
-"const ActionEntry[] actions = {\n"
-"    { \"new\", new_cb }, // {\"action name\", callback_function}\n"
-"    { \"quit\", quit_cb }\n"
-"}Â"
-
-#: C/menubar.vala.page:105(p)
-msgid "Second, we create the callback functions the actions are connected to."
+"const ProgressBarExample = new Lang.Class({\n"
+"    Name: 'ProgressBar Example',\n"
+"\n"
+"    // Create the application itself\n"
+"        _init: function() {\n"
+"        this.application = new Gtk.Application({\n"
+"            application_id: 'org.example.jsprogressbar',\n"
+"            flags: Gio.ApplicationFlags.FLAGS_NONE\n"
+"        });\n"
+"\n"
+"    // Connect 'activate' and 'startup' signals to the callback functions\n"
+"    this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"    this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents windows when active\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function() {\n"
+"        this._buildUI ();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function() {\n"
+"\n"
+"        // Create the application window\n"
+"            this._window = new Gtk.ApplicationWindow({ application: this.application,\n"
+"                                                       window_position: Gtk.WindowPosition.CENTER,\n"
+"                                                       default_height: 20,\n"
+"                                                       default_width: 220,\n"
+"                                                       title: \"ProgressBar Example\"});\n"
+"\n"
+"        // Create the progress bar\n"
+"        this.progressBar = new Gtk.ProgressBar ();\n"
+"        this._window.add(this.progressBar);\n"
+"\n"
+"        // Start the function that pulses the bar every 100 milliseconds\n"
+"        this.sourceID = GLib.timeout_add(GLib.PRIORITY_DEFAULT, 100, Lang.bind(this, this._barPulse));\n"
+"\n"
+"        // Connect a keypress event to the function that toggles the bar to start or stop pulsing\n"
+"        this._window.connect(\"key-press-event\", Lang.bind(this, this._onKeyPress));\n"
+"\n"
+"            // Show the window and all child widgets\n"
+"            this._window.show_all();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    // Pulse the progressbar (unless it has been disabled by a keypress)\n"
+"    _barPulse: function() {\n"
+"        this.progressBar.pulse();\n"
+"        return true;\n"
+"    },\n"
+"\n"
+"    // Start or stop the progressbar when a key is pressed\n"
+"    _onKeyPress: function() {\n"
+"        if (this.sourceID == 0)\n"
+"            this.sourceID = GLib.timeout_add(GLib.PRIORITY_DEFAULT, 100, Lang.bind(this, this._barPulse));\n"
+"        else {\n"
+"            GLib.source_remove(this.sourceID);\n"
+"            this.sourceID = 0;\n"
+"        }\n"
+"    }\n"
+"\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new ProgressBarExample ();\n"
+"app.application.run (ARGV);\n"
 msgstr ""
-"ÎÎÏÏÎÏÎ, ÎÎÎÎÎÏÏÎÎÏÎÎ ÏÏÎÏ ÏÏÎÎÏÏÎÏÎÎÏ ÎÏÎÎÎÎÎÎÏÎÏ ÏÎÏ ÎÎÎÏÎÎÎÎÏ ÏÎÏ "
-"ÏÏÎÏÎÎÎÎÏÎÎ."
-
-#: C/menubar.vala.page:106(code)
-#, no-wrap
-msgid ""
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gio = imports.gi.Gio;\n"
+"const GLib = imports.gi.GLib;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"const ProgressBarExample = new Lang.Class({\n"
+"    Name: 'ProgressBar Example',\n"
+"\n"
+"    // Create the application itself\n"
+"        _init: function() {\n"
+"        this.application = new Gtk.Application({\n"
+"            application_id: 'org.example.jsprogressbar',\n"
+"            flags: Gio.ApplicationFlags.FLAGS_NONE\n"
+"        });\n"
+"\n"
+"    // Connect 'activate' and 'startup' signals to the callback functions\n"
+"    this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"    this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents windows when active\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function() {\n"
+"        this._buildUI ();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function() {\n"
+"\n"
+"        // Create the application window\n"
+"            this._window = new Gtk.ApplicationWindow({ application: this.application,\n"
+"                                                       window_position: Gtk.WindowPosition.CENTER,\n"
+"                                                       default_height: 20,\n"
+"                                                       default_width: 220,\n"
+"                                                       title: \"ProgressBar Example\"});\n"
+"\n"
+"        // Create the progress bar\n"
+"        this.progressBar = new Gtk.ProgressBar ();\n"
+"        this._window.add(this.progressBar);\n"
+"\n"
+"        // Start the function that pulses the bar every 100 milliseconds\n"
+"        this.sourceID = GLib.timeout_add(GLib.PRIORITY_DEFAULT, 100, Lang.bind(this, this._barPulse));\n"
+"\n"
+"        // Connect a keypress event to the function that toggles the bar to start or stop pulsing\n"
+"        this._window.connect(\"key-press-event\", Lang.bind(this, this._onKeyPress));\n"
 "\n"
-"void new_cb (SimpleAction action, Variant? parameter) {\n"
-"    print (\"You clicked \\\"New\\\"\\n\");\n"
-"    //new MyWindow (this).show ();\n"
-"}\n"
+"            // Show the window and all child widgets\n"
+"            this._window.show_all();\n"
+"    },\n"
 "\n"
-"void quit_cb (SimpleAction action, Variant? parameter) {\n"
-"    print (\"You clicked \\\"Quit\\\"\\n\");\n"
-"    //this.quit ();  **Bug #674090**\n"
-"}"
-msgstr ""
 "\n"
-"void new_cb (SimpleAction action, Variant; parameter) {\n"
-"    print (\"You clicked \\\"New\\\"\\n\")Â\n"
-"    //new MyWindow (this).show ()Â\n"
-"}\n"
 "\n"
-"void quit_cb (SimpleAction action, Variant; parameter) {\n"
-"    print (\"You clicked \\\"Quit\\\"\\n\")Â\n"
-"    //this.quit ()Â  **Bug #674090**\n"
-"}"
+"    // Pulse the progressbar (unless it has been disabled by a keypress)\n"
+"    _barPulse: function() {\n"
+"        this.progressBar.pulse();\n"
+"        return true;\n"
+"    },\n"
+"\n"
+"    // Start or stop the progressbar when a key is pressed\n"
+"    _onKeyPress: function() {\n"
+"        if (this.sourceID == 0)\n"
+"            this.sourceID = GLib.timeout_add(GLib.PRIORITY_DEFAULT, 100, Lang.bind(this, this._barPulse));\n"
+"        else {\n"
+"            GLib.source_remove(this.sourceID);\n"
+"            this.sourceID = 0;\n"
+"        }\n"
+"    }\n"
+"\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new ProgressBarExample ();\n"
+"app.application.run (ARGV);\n"
 
-#: C/menubar.vala.page:117(p)
+#: C/progressbar.js.page:38(item/p)
 msgid ""
-"And lastly, we connect the menu items to the actions in the XML file by "
-"adding the \"action\" attribute:"
+"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/GLib.html\";>GLib</"
+"link>"
 msgstr ""
-"ÎÎÎ ÏÎÎÎÏÏÎÎÎ, ÏÏÎÎÎÎÏÎÎ ÏÎ ÏÏÎÎÏÎÎÎ ÎÎÎÎÏ ÏÏÎÏ ÎÎÎÏÎÎÎÎÏ ÏÏÎ ÎÏÏÎÎÎ XML "
-"ÏÏÎÏÎÎÏÎÎÏÎÏ ÏÎ ÎÎÏÏÎÏÎÎ \"action\":"
+"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/GLib.html\";>GLib</"
+"link>"
 
-#: C/menubar.vala.page:132(title) C/menubar.py.page:128(title)
-msgid "Choices submenu and items with state"
-msgstr "ÎÏÎÎÎÎÎÏ ÏÏÎÎÎÎÎÏ ÎÎÎ ÏÏÎÎÏÎÎÏÎ ÎÎ ÎÎÏÎÏÏÎÏÎ"
+#: C/progressbar.py.page:7(info/title)
+msgctxt "text"
+msgid "ProgressBar (Python)"
+msgstr "ProgressBar (Python)"
+
+#: C/progressbar.py.page:17(info/desc)
+msgid "A widget which indicates progress visually."
+msgstr "ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÏÎÏ ÎÎÎÏÎÎÎ ÏÎÎ ÏÏÏÎÎÎ ÎÏÏÎÎÎ."
 
-#: C/menubar.vala.page:134(p)
+#: C/progressbar.py.page:39(section/code)
+#, no-wrap
 msgid ""
-"Lines 30 to 80 inclusive of the <link xref=\"menubar.vala#xml-code\"/> "
-"demonstrate the XML code used to create the UI for <gui>Choices</gui> menu."
+"from gi.repository import GLib\n"
+"from gi.repository import Gtk\n"
+"import sys\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    # a window\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"ProgressBar Example\", application=app)\n"
+"        self.set_default_size(220, 20)\n"
+"\n"
+"        # a progressbar\n"
+"        self.progress_bar = Gtk.ProgressBar()\n"
+"        # add the progressbar to the window\n"
+"        self.add(self.progress_bar)\n"
+"\n"
+"        # the method self.pulse is called each 100 milliseconds\n"
+"        # and self.source_id is set to be the ID of the event source\n"
+"        # (i.e. the bar changes position every 100 milliseconds)\n"
+"        self.source_id = GLib.timeout_add(100, self.pulse)\n"
+"\n"
+"    # event handler\n"
+"    # any signal from the keyboard controls if the progressbar stops/starts\n"
+"    def do_key_press_event(self, event):\n"
+"        # if the progressbar has been stopped (therefore source_id == 0 - see\n"
+"        # \"else\" below), turn it back on\n"
+"        if (self.source_id == 0):\n"
+"            self.source_id = GLib.timeout_add(100, self.pulse)\n"
+"        # if the bar is moving, remove the source with the ID of source_id\n"
+"        # from the main context (stop the bar) and set the source_id to 0\n"
+"        else:\n"
+"            GLib.source_remove(self.source_id)\n"
+"            self.source_id = 0\n"
+"        # stop the signal emission\n"
+"        return True\n"
+"\n"
+"    # source function\n"
+"    # the progressbar is in \"activity mode\" when this method is called\n"
+"    def pulse(self):\n"
+"        self.progress_bar.pulse()\n"
+"        # call the function again\n"
+"        return True\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
 msgstr ""
-"ÎÏÎÎÎÎÏ 30 ÎÏÏ 80 ÏÏÎÏÎÏÎÎÎÎÎÎÎÏÎÎÎÎÏ ÏÎÏ ÎÎÏÎÎÎÏÎÏ <link xref=\"menubar."
-"vala#xml-code\"/> ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎÎÎÏ ÎÏÎÎÎÎ XML ÎÎÎ ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ UI ÎÎÎ "
-"ÏÎ ÎÎÎÎÏ <gui>ÎÏÎÎÎÎÎÏ</gui>."
+"from gi.repository import GLib\n"
+"from gi.repository import Gtk\n"
+"import sys\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    # a window\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"ProgressBar Example\", application=app)\n"
+"        self.set_default_size(220, 20)\n"
+"\n"
+"        # a progressbar\n"
+"        self.progress_bar = Gtk.ProgressBar()\n"
+"        # add the progressbar to the window\n"
+"        self.add(self.progress_bar)\n"
+"\n"
+"        # the method self.pulse is called each 100 milliseconds\n"
+"        # and self.source_id is set to be the ID of the event source\n"
+"        # (i.e. the bar changes position every 100 milliseconds)\n"
+"        self.source_id = GLib.timeout_add(100, self.pulse)\n"
+"\n"
+"    # event handler\n"
+"    # any signal from the keyboard controls if the progressbar stops/starts\n"
+"    def do_key_press_event(self, event):\n"
+"        # if the progressbar has been stopped (therefore source_id == 0 - see\n"
+"        # \"else\" below), turn it back on\n"
+"        if (self.source_id == 0):\n"
+"            self.source_id = GLib.timeout_add(100, self.pulse)\n"
+"        # if the bar is moving, remove the source with the ID of source_id\n"
+"        # from the main context (stop the bar) and set the source_id to 0\n"
+"        else:\n"
+"            GLib.source_remove(self.source_id)\n"
+"            self.source_id = 0\n"
+"        # stop the signal emission\n"
+"        return True\n"
+"\n"
+"    # source function\n"
+"    # the progressbar is in \"activity mode\" when this method is called\n"
+"    def pulse(self):\n"
+"        self.progress_bar.pulse()\n"
+"        # call the function again\n"
+"        return True\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
 
-#: C/menubar.vala.page:138(title) C/menubar.py.page:119(title)
-msgid "Actions: Application or Window?"
-msgstr "ÎÎÎÏÎÎÎÎÏ: ÎÏÎÏÎÎÎÎ Î ÏÎÏÎÎÏÏÎ;"
+#: C/progressbar.py.page:44(section/title)
+msgid "Useful methods for a ProgressBar widget"
+msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ProgressBar"
 
-#: C/menubar.vala.page:139(p) C/menubar.py.page:120(p)
+#: C/progressbar.py.page:46(item/p)
 msgid ""
-"Above, we created the \"new\" and \"open\" actions as part of the "
-"MyApplication class. Actions which control the application itself, such as "
-"\"quit\" should be created similarly."
+"Instead of <code>pulse()</code>, that makes the bar go back and forth, if we "
+"want the ProgressBar to \"fill in\" a fraction (a <code>float</code> between "
+"<code>0.0</code> and <code>1.0</code> included) of the bar that has been "
+"completed, use <code>set_fraction(fraction)</code>."
 msgstr ""
-"ÎÎÎ ÏÎÎÏ, ÎÎÎÎÎÏÏÎÎÏÎÎÎ ÏÎÏ ÎÎÎÏÎÎÎÎÏ \"new\" ÎÎÎ \"open\" ÏÏ ÎÎÏÎÏ ÏÎÏ "
-"ÎÎÎÏÎÏ MyApplication. ÎÎ ÎÎÎÏÎÎÎÎÏ ÏÎÏ ÎÎÎÎÏÎÏÎ ÏÎÎ ÎÎÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ, ÏÏÏÏ "
-"\"quit\" ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎÎÎÏÎ ÏÎÏÏÎÎÎÎ."
+"ÎÎÏÎ ÎÎÎ <code>pulse()</code>, ÏÎÏ ÎÎÎÎÎ ÏÎ ÎÏÎÎÎÎ ÎÎ ÏÎÎÎÎÎÎÎ ÎÏÏÎÏÏÎ ÏÎÏÏ, "
+"ÎÎÎ ÎÎÎÎÏÎÎ Î ProgressBar ÎÎ \"ÎÎÎÎÎÎÎ\" ÎÎÎ ÎÎÎÏÎÎ (ÎÎÎ <code>float</code> "
+"ÎÎÏÎÎÏ <code>0.0</code> ÎÎÎ <code>1.0</code> ÏÏÎÏÎÏÎÎÎÎÎÎÎÏÎÎÎÎÏ) ÏÎÏ "
+"ÎÏÎÎÎÎÏ ÏÎÏ ÎÏÎÎ ÎÎÎÎÎÎÏÏÎÎÎ, ÏÏÎÏÎÎÎÏÎÎÎÏÏÎ <code>set_fraction(fraction)</"
+"code>."
 
-#: C/menubar.vala.page:142(p) C/menubar.py.page:122(p)
+#: C/progressbar.py.page:47(item/p)
 msgid ""
-"Some actions, such as \"copy\" and \"paste\" deal with the window, not the "
-"application. Window actions should be created as part of the window class."
+"To set a text and show it (superimposed over the bar) use <code>set_text"
+"(\"some text\")</code> and <code>set_show_text(True)</code>. If a text is "
+"not set and <code>set_show_text(True)</code> the text will be the percentage "
+"of the work that has been completed."
 msgstr ""
-"ÎÎÏÎÎÎÏ ÎÎÎÏÎÎÎÎÏ, ÏÏÏÏ \"copy\" ÎÎÎ \"paste\" ÎÎÏÎÎÎÏÏÏÎÎÎÏÎ ÏÎ ÏÎÏÎÎÏÏÎ, "
-"ÏÏÎ ÏÎÎ ÎÏÎÏÎÎÎÎ. ÎÎ ÎÎÎÏÎÎÎÎÏ ÏÎÏÎÎÏÏÎÏ ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎÎÎÏÎ ÏÏ ÎÎÏÎÏ "
-"ÏÎÏ ÎÎÎÏÎÏ ÏÎÏÎÎÏÏÎÏ."
+"ÎÎÎ ÏÏÎÎÎÏÎ ÎÎÎÎÎÎÎÏ ÎÎÎ ÎÎÏÎÎÎÏÎ ÏÎÏ (ÏÏÎÏÏÎÎÎÎÎÎÎÏ ÏÎÏ ÎÏÎÎÎÎÏ) "
+"ÏÏÎÏÎÎÎÏÎÎÎÏÏÎ <code>set_text(\"some text\")</code> ÎÎÎ <code>set_show_text"
+"(True)</code>. ÎÎÎ ÎÎÎ ÎÎÎÎÎÎÎ ÎÎÎ ÎÏÎÎÎÏÎÎ ÎÎÎ ÏÎ <code>set_show_text(True)"
+"</code>, ÏÏÏÎ ÏÎ ÎÎÎÎÎÎÎ ÎÎ ÎÎÎÎÎ ÏÎÏÎÏÏÏ ÏÎÏ ÎÏÎÎÏÎÎÏ ÏÎÏ ÎÎÎÎÎÎÏÏÎÎÎÎ."
 
-#: C/menubar.vala.page:145(p)
+#: C/progressbar.py.page:55(item/p)
 msgid ""
-"The complete example files contain both application actions and window "
-"applications. The window actions are the ones usually included in the <link "
-"xref=\"gmenu.vala\">application menu</link> also. It is not good practice to "
-"include window actions in the applcation menu. For demonstration purposes, "
-"the complete example files which follow include XML in the UI file which "
-"creates the application menu which includes a \"New\" and \"Open\" item, and "
-"these are hooked up to the same actions as the menubar items of the same "
-"name."
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkProgressBar.html";
+"\">GtkProgressBar</link>"
 msgstr ""
-"ÎÎ ÏÎÎÏÎ ÎÏÏÎÎÎ ÏÎÏÎÎÎÎÎÎÎÏÎÏ ÏÎÏÎÎÏÎÏÎ ÎÎÏÏÏÎÏÎÏ ÏÎÏ ÎÎÎÏÎÎÎÎÏ ÎÏÎÏÎÎÎÎÏ "
-"ÎÎÎ ÎÏÎÏÎÎÎÎÏ ÏÎÏÎÎÏÏÎÏ. ÎÎ ÎÎÎÏÎÎÎÎÏ ÏÎÏÎÎÏÏÎÏ ÎÎÎÎÎ ÎÏÏÎÏ ÏÎÏ ÏÏÎÎÎÏÏ "
-"ÏÏÎÏÎÏÎÎÎÎÎÎÎÎÎÏÎÎ ÏÏÎ <link xref=\"gmenu.vala\">ÎÎÎÎÏ ÎÏÎÏÎÎÎÎÏ</link> "
-"ÎÏÎÏÎÏ. ÎÎÎ ÎÎÎÎÎ ÎÎÎÎ ÏÏÎÎÏÎÎÎ ÎÎ ÏÏÎÏÎÏÎÎÎÎÎÎÎÎÏÎ ÎÎÎÏÎÎÎÎÏ ÏÎÏÎÎÏÏÎÏ ÏÏÎ "
-"ÎÎÎÎÏ ÏÎÏ ÎÏÎÏÎÎÎÎÏ. ÎÎÎ ÏÎÎÏÎÏÏ ÎÏÎÎÎÎÎÎÏ, ÏÎ ÏÎÎÏÎ ÎÏÏÎÎÎ ÏÎÏ "
-"ÏÎÏÎÎÎÎÎÎÎÏÎÏ ÏÎÏ ÎÎÎÎÎÏÎÎÎ ÏÎÏÎÎÏÎÏÎ XML ÏÏÎ ÎÏÏÎÎÎ UI ÏÎÏ ÎÎÎÎÎÏÏÎÎÎ ÏÎ "
-"ÎÎÎÎÏ ÎÏÎÏÎÎÎÎÏ ÏÎÏ ÏÎÏÎÎÎÎÎÎÎÎÎ ÏÎ ÏÏÎÎÏÎÎÎ \"New\" ÎÎÎ \"Open\" ÎÎÎ ÎÏÏÎ "
-"ÏÏÎÎÎÎÎÏÎÎ ÎÎ ÏÎÏ ÎÎÎÎÏ ÎÎÎÏÎÎÎÎÏ ÏÏÏÏ ÏÎ ÏÏÎÎÏÎÎÎ ÏÎÏ ÎÏÎÎÎÎÏ ÎÎÎÎÏ ÏÎÏ "
-"ÎÎÎÎÏ ÎÎÏÎÎÏÎÏ."
-
-#: C/menubar.vala.page:153(title) C/menubar.py.page:147(title)
-msgid "Complete XML UI file for this example"
-msgstr "ÎÎÎÏÎÏ ÎÏÏÎÎÎ UI XML ÎÎÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ"
-
-#: C/menubar.vala.page:156(title)
-msgid "Complete Vala file for this example"
-msgstr "ÎÎÎÏÎÏ ÎÏÏÎÎÎ Vala ÎÎÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ"
-
-#: C/menubar.vala.page:160(title)
-msgid "Mnemonics"
-msgstr "MÎÎÎÎÎÎÎÎ"
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkProgressBar.html";
+"\">GtkProgressBar</link>"
 
-#: C/menubar.vala.page:161(p) C/menubar.py.page:157(p)
+#: C/progressbar.py.page:56(item/p)
 msgid ""
-"Labels may contain mnemonics. Mnemonics are underlined characters in the "
-"label, used for keyboard navigation. Mnemonics are created by placing an "
-"underscore before the mnemonic character. For example \"_File\" instead of "
-"just \"File\" in the menubar.ui label attribute."
+"<link href=\"http://developer.gnome.org/glib/stable/glib-The-Main-Event-Loop.";
+"html\">GLib - The Main Event Loop</link>"
 msgstr ""
-"ÎÎ ÎÏÎÎÎÏÎÏ ÎÏÎÏÎÎ ÎÎ ÏÎÏÎÎÏÎÏÎ ÎÎÎÎÎÎÎÎÎÏÏ ÎÎÎÏÎÎÏ. ÎÎ ÎÎÎÎÎÎÎÎÎÎ ÎÎÎÎÎ "
-"ÏÏÎÎÏÎÎÎÎÏÎÎÎÎÎ ÏÎÏÎÎÏÎÏÎÏ ÏÏÎÎ ÎÏÎÎÎÏÎ, ÏÏÎÏÎÎÎÏÎÎÎÏÎÎÎÎÎ ÎÎÎ ÏÎÏÎÎÎÎÏÎ "
-"ÏÎÎÎÏÏÎÎÎÎÎÎÏ. ÎÎ ÎÎÎÎÎÎÎÎÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ ÏÎÏÎÎÎÏÏÎÏÎÏ ÎÎÎ ÏÏÎÎÏÎÎÎÎÏÎ "
-"ÏÏÎÎ ÏÎÎ ÎÎÎÎÎÎÎÎÏ ÏÎÏÎÎÏÎÏÎ. ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ \"_File\" ÎÎÏÎ ÎÎÎ ÎÏÎÎ \"File"
-"\" ÏÏÎ ÎÎÏÏÎÏÎÎ ÎÏÎÎÎÏÎÏ menubar.ui."
+"<link href=\"http://developer.gnome.org/glib/stable/glib-The-Main-Event-Loop.";
+"html\">GLib - The Main Event Loop</link>"
 
-#: C/menubar.vala.page:162(p) C/menubar.py.page:158(p)
+#: C/progressbar.py.page:57(item/p)
 msgid ""
-"The mnemonics are visible when you press the <key>Alt</key> key. Pressing "
-"<keyseq><key>Alt</key><key>F</key></keyseq> will open the <gui>File</gui> "
-"menu."
+"<link href=\"http://developer.gnome.org/gdk/stable/gdk-Keyboard-Handling";
+"\">Gdk - Key Values</link>"
 msgstr ""
-"ÎÎ ÎÎÎÎÎÎÎÎÎÎ ÎÎÎÎÎ ÎÏÎÏÎÎ ÏÏÎÎ ÏÎÏÎÏÎ ÏÎ ÏÎÎÎÏÏÎ <key>Alt</key>. ÎÎÏÏÎÏÎÏ "
-"<keyseq><key>Alt</key><key>F</key></keyseq> ÎÎ ÎÎÎÎÎÎÎ ÏÎ ÎÎÎÎÏ <gui>ÎÏÏÎÎÎ</"
-"gui>."
+"<link href=\"http://developer.gnome.org/gdk/stable/gdk-Keyboard-Handling";
+"\">Gdk - Key Values</link>"
 
-#: C/menubar.vala.page:166(title)
-msgid "Accelerators"
-msgstr "ÎÏÎÏÎÏÏÎÏÎÏ"
+#: C/progressbar.vala.page:7(info/title)
+msgctxt "text"
+msgid "ProgressBar (Vala)"
+msgstr "ProgressBar (Vala)"
 
-#: C/menubar.vala.page:167(p) C/menubar.py.page:160(p)
+#: C/progressbar.vala.page:24(page/code)
+#, no-wrap
 msgid ""
-"Accelerators can be explicitly added in the UI definitions. For example, it "
-"is common to be able to quit an application by pressing <keyseq><key>Ctrl</"
-"key><key>Q</key></keyseq> or to save a file by pressing <keyseq><key>Ctrl</"
-"key><key>S</key></keyseq>. To add an accelerator to the UI definition, you "
-"simply need add an \"accel\" attribute to the item."
+"public class MyApplication : Gtk.Application {\n"
+"\n"
+"\tGtk.ProgressBar progress_bar;\n"
+"\n"
+"\tprotected override void activate () {\n"
+"\t\tvar window = new Gtk.ApplicationWindow (this);\n"
+"\t\twindow.set_title (\"ProgressBar Example\");\n"
+"\t\twindow.set_default_size (220, 20);\n"
+"\n"
+"\t\tprogress_bar = new Gtk.ProgressBar ();\n"
+"\t\twindow.add (progress_bar);\n"
+"\t\twindow.show_all ();\n"
+"\n"
+"\t\tdouble fraction = 0.0;\n"
+"\t\tprogress_bar.set_fraction (fraction);\n"
+"\t\tGLib.Timeout.add (500, fill);\n"
+"\t}\n"
+"\n"
+"\tbool fill () {\n"
+"\t\tdouble fraction = progress_bar.get_fraction (); //get current progress\n"
+"\t\tfraction += 0.1; //increase by 10% each time this function is called\n"
+"\n"
+"\t\tprogress_bar.set_fraction (fraction);\n"
+"\n"
+"\t\t/* This function is only called by GLib.Timeout.add while it returns true; */\n"
+"\t\tif (fraction &lt; 1.0)\n"
+"\t\t\treturn true;\n"
+"\t\treturn false;\n"
+"\t}\n"
+"}\n"
+"\n"
+"public int main (string[] args) {\n"
+"\tvar progress_bar_application = new MyApplication ();\n"
+"\tint status =  progress_bar_application.run (args);\n"
+"\treturn status;\n"
+"}\n"
 msgstr ""
-"ÎÎ ÎÏÎÏÎÏÏÎÏÎÏ ÎÏÎÏÎÏÎ ÎÎ ÏÏÎÏÏÎÎÎÏÎ ÏÎÏÎ ÏÏÎÏÏ ÎÏÎÏÎÎÏÏ UI. ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ, "
-"ÎÎÎÎÎ ÎÎÎÎÏ ÎÎ ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÎÏÎÏÎ ÎÎÎ ÎÏÎÏÎÎÎÎ ÏÎÏÏÎÏÎÏ <keyseq><key>Ctrl</"
-"key><key>Q</key></keyseq> Î ÎÎ ÎÏÎÎÎÎÎÏÏÎÏÎ ÎÎÎ ÎÏÏÎÎÎ ÏÎÏÏÎÏÎÏ "
-"<keyseq><key>Ctrl</key><key>S</key></keyseq>. ÎÎÎ ÏÎÎ ÏÏÎÏÎÎÎÎ ÎÎÏÏ "
-"ÎÏÎÏÎÏÏÎÏÎ ÏÏÎÎ ÎÏÎÏÎÏ ÏÎÏ UI, ÏÏÎÎÎÎÎÏÏÎ ÎÏÎÎ ÎÎ ÏÏÎÏÎÎÏÎÏÎ ÎÎÎ ÎÎÏÏÎÏÎÎ "
-"\"accel\" ÏÏÎ ÏÏÎÎÏÎÎÎ."
+"public class MyApplication : Gtk.Application {\n"
+"\n"
+"\tGtk.ProgressBar progress_bar;\n"
+"\n"
+"\tprotected override void activate () {\n"
+"\t\tvar window = new Gtk.ApplicationWindow (this);\n"
+"\t\twindow.set_title (\"ProgressBar Example\");\n"
+"\t\twindow.set_default_size (220, 20);\n"
+"\n"
+"\t\tprogress_bar = new Gtk.ProgressBar ();\n"
+"\t\twindow.add (progress_bar);\n"
+"\t\twindow.show_all ();\n"
+"\n"
+"\t\tdouble fraction = 0.0;\n"
+"\t\tprogress_bar.set_fraction (fraction);\n"
+"\t\tGLib.Timeout.add (500, fill);\n"
+"\t}\n"
+"\n"
+"\tbool fill () {\n"
+"\t\tdouble fraction = progress_bar.get_fraction (); //get current progress\n"
+"\t\tfraction += 0.1; //increase by 10% each time this function is called\n"
+"\n"
+"\t\tprogress_bar.set_fraction (fraction);\n"
+"\n"
+"\t\t/* This function is only called by GLib.Timeout.add while it returns true; */\n"
+"\t\tif (fraction &lt; 1.0)\n"
+"\t\t\treturn true;\n"
+"\t\treturn false;\n"
+"\t}\n"
+"}\n"
+"\n"
+"public int main (string[] args) {\n"
+"\tvar progress_bar_application = new MyApplication ();\n"
+"\tint status =  progress_bar_application.run (args);\n"
+"\treturn status;\n"
+"}\n"
 
-#: C/menubar.vala.page:168(p) C/menubar.py.page:161(p)
+#: C/progressbar.vala.page:29(item/p)
 msgid ""
-"<code mime=\"application/xml\"><![CDATA[<attribute name=\"accel\">&lt;"
-"Primary&gt;q</attribute>]]></code> will create the <keyseq><key>Ctrl</"
-"key><key>Q</key></keyseq> sequence when added to the <code>Quit</code> label "
-"item. Here, \"Primary\" refers to the <key>Ctrl</key> key on a PC or the "
-"<key>â</key> key on a Mac."
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.ProgressBar.html\";>Gtk."
+"ProgressBar</link>"
 msgstr ""
-"<code mime=\"application/xml\"><![CDATA[<attribute name=\"accel\">&lt;"
-"Primary&gt;q</attribute>]]></code> ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÎ ÏÎÎ ÎÎÎÎÎÎÏÏÎÎ "
-"<keyseq><key>Ctrl</key><key>Q</key></keyseq> ÏÏÎÎ ÏÏÎÏÏÎÎÎÏÎÎ ÏÏÎ ÏÏÎÎÏÎÎÎ "
-"ÎÏÎÎÎÏÎÏ <code>Quit</code>. ÎÎÏ, ÏÎ \"Primary\" ÎÎÎÏÎÏÎÏÎÎ ÏÏÎ ÏÎÎÎÏÏÎ "
-"<key>Ctrl</key> ÏÎ ÎÎÎ ÏÏÎÏÏÏÎÎÏ ÏÏÎÎÎÎÎÏÏÎ Î ÏÏÎ ÏÎÎÎÏÏÎ <key>â</key> ÏÎ "
-"Mac."
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.ProgressBar.html\";>Gtk."
+"ProgressBar</link>"
 
-#: C/menubar.vala.page:178(title) C/menubar.py.page:171(title)
-msgid "Translatable strings"
-msgstr "ÎÎÏÎÏÏÎÏÎÎÎÏ ÏÏÎÎÎÎÎÏÎÎÏÎÏ"
-
-#: C/menubar.vala.page:179(p) C/menubar.py.page:172(p)
+#: C/progressbar.vala.page:30(item/p)
 msgid ""
-"Since GNOME applications are being translated into <link href=\"http://l10n.";
-"gnome.org/languages/\">many languages</link>, it is important that the "
-"strings in your application are translable. To make a label translatable, "
-"simple set <code>translatable=\"yes\"</code>:"
+"<link href=\"http://www.valadoc.org/glib-2.0/GLib.Timeout.html\";>GLib."
+"Timeout</link>"
 msgstr ""
-"ÎÏÎÎÎÎ ÎÎ ÎÏÎÏÎÎÎÎÏ GNOME ÎÎÏÎÏÏÎÎÎÎÏÎÎ ÏÎ <link href=\"http://l10n.gnome.";
-"org/languages/\">ÏÎÎÎÎÏ ÎÎÏÏÏÎÏ</link>, ÎÎÎÎÎ ÏÎÎÎÎÏÎÎÏ ÏÏÎ ÎÎ ÏÏÎÎÎÎÎÏÎÎÏÎÏ "
-"ÏÏÎÎ ÎÏÎÏÎÎÎÎ ÏÎÏ ÎÎÎÎÎ ÎÎÏÎÏÏÎÏÎÎÎÏ. ÎÎÎ ÎÎ ÎÎÎÎÏÎ ÎÎÎ ÎÏÎÎÎÏÎ ÎÎÏÎÏÏÎÏÎÎÎ, "
-"ÎÏÎÎ ÎÎÎÏÎ <code>translatable=\"yes\"</code>:"
-
-#: C/menubar.vala.page:186(title) C/filechooserdialog.vala.page:34(title)
-msgid "Relevant API documentation"
-msgstr "ÎÏÎÏÎÎÎ ÏÎÎÎÎÏÎÏÏÎ API"
+"<link href=\"http://www.valadoc.org/glib-2.0/GLib.Timeout.html\";>GLib."
+"Timeout</link>"
 
-#: C/menubar.vala.page:191(link)
-msgid "Glib.ActionEntry"
-msgstr "Glib.ActionEntry"
+#: C/properties.py.page:8(info/title)
+msgctxt "text"
+msgid "Properties (Python)"
+msgstr "ÎÎÎÏÏÎÏÎÏ (Python)"
 
-#: C/menubar.vala.page:192(link) C/filechooserdialog.vala.page:41(link)
-msgid "Gtk.Builder"
-msgstr "Gtk.Builder"
+#: C/properties.py.page:12(info/desc)
+msgid "An explanation of properties, getters and setters."
+msgstr "ÎÎÎ ÎÎÎÎÎÏÎ ÏÏÎ ÎÎÎÎÏÎÏÏÎ, ÎÎÏÏÏÎ ÎÎÎ ÏÏÎÎÎÏÏÏÎ."
 
-#: C/menubar.py.page:7(title)
-msgid "MenuBar (Python)"
-msgstr "MenuBar (Python)"
+#: C/properties.py.page:25(page/title)
+msgid "Properties"
+msgstr "ÎÎÎÏÏÎÏÎÏ"
 
-#: C/menubar.py.page:44(p)
+#: C/properties.py.page:32(section/p)
 msgid ""
-"Now we will create the .py file and use GtkBuilder to import the "
-"<file>menubar.ui</file> we just created."
+"<em>Properties</em> describe the configuration and state of widgets, and "
+"each widget has its own particular set of properties. For example, a widget "
+"such as a button or a label has the property \"label\" which contains the "
+"text of the widget. You can specify the name and value of any number of "
+"properties as keyword arguments when creating an instance of a widget: for "
+"example, to create a label aligned to the right with the text âHello Worldâ "
+"and an angle of 25 degrees, you can use:"
 msgstr ""
-"ÎÏÏÎ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ ÏÎ ÎÏÏÎÎÎ .py ÎÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ GtkBuilder ÎÎÎ "
-"ÎÎÏÎÎÏÎÎ ÏÎÏ <file>menubar.ui</file> ÏÎÏ ÎÏÎÎÏ ÎÎÎÎÎÏÏÎÎÏÎÎÎ."
+"ÎÎ <em>ÎÎÎÏÏÎÏÎÏ</em> ÏÎÏÎÎÏÎÏÎÏÎ ÏÎ ÎÎÎÎÏÏÏÏÏÎ ÎÎÎ ÎÎÏÎÏÏÎÏÎ ÏÏÎ ÎÏÎÏÎÎÏÎ "
+"ÏÏÏÏÎÏÎÎÏÎ ÎÎÎ ÎÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÏÎÎ ÏÎ ÎÎÎÏ ÏÎÏ ÎÎÎÎÎÏÎÏÎ ÏÏÎÎÎÎ "
+"ÎÎÎÎÏÎÏÏÎ. ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ, ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÏÏÏÏ ÎÎÎ ÎÎÏÎÏÎ Î ÎÎÎ "
+"ÎÏÎÎÎÏÎ ÎÏÎÎ ÏÎÎ ÎÎÎÏÏÎÏÎ \"label\" ÏÎÏ ÏÎÏÎÎÏÎÎ ÏÎ ÎÎÎÎÎÎÎ ÏÎÏ ÎÏÎÏÎÎÎÏ "
+"ÏÏÏÏÎÏÎÎÎÏ. ÎÏÎÏÎÎÏÎ ÎÎ ÎÏÎÏÎÏÎ ÏÎ ÏÎÎÎÎ ÎÎÎ ÏÎÎ ÏÎÎÎ ÎÏÎÎÎÏÎÎÏÎÏÎ ÎÏÎÎÎÎÏ "
+"ÎÎÎÎÏÎÏÏÎ ÏÏ ÎÏÎÏÎÎÏÎ ÎÎÎÎÏ-ÎÎÎÎÎÎ ÏÏÎÎ ÎÎÎÎÎÏÏÎÎÎÏÎ ÎÎÎ ÏÏÎÎÎÎÏÏÏÏÎ ÎÎÏÏ "
+"ÎÏÎÏÎÎÎÏ ÏÏÏÏÎÏÎÎÎÏ: ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ, ÎÎÎ ÏÎ ÎÎÎÎÎÏÏÎÎÎ ÎÎÎÏ ÎÏÎÎÎÏÎÏ "
+"ÏÏÎÎÏÎÏÎÎÎÎÏ ÏÏÎ ÎÎÎÎÎ ÎÎ ÏÎ ÎÎÎÎÎÎÎ âHello Worldâ ÎÎÎ ÎÎÎ ÎÏÎÎÎ 25 ÎÎÎÏÏÎ, "
+"ÎÏÎÏÎÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ:"
 
-#: C/menubar.py.page:50(p)
+#: C/properties.py.page:33(section/code)
+#, no-wrap
 msgid ""
-"Now run the python application. It should look like the picture at the top "
-"of this page."
+"\n"
+"label = Gtk.Label(label=\"Hello World\", angle=25, halign=Gtk.Align.END)"
 msgstr ""
-"ÎÏÏÎ ÎÎÏÎÎÎÏÏÎ ÏÎÎ ÎÏÎÏÎÎÎÎ python. ÎÎ ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎÎÎ ÎÎ ÏÎÎ ÎÎÎÏÎÎ ÏÏÎÎ "
-"ÎÎÏÏÏÎ ÎÏÏÎÏ ÏÎÏ ÏÎÎÎÎÎÏ."
+"\n"
+"label = Gtk.Label(label=\"Hello World\", angle=25, halign=Gtk.Align.END)"
 
-#: C/menubar.py.page:58(title)
-msgid "menubar.ui"
-msgstr "menubar.ui"
+#: C/properties.py.page:36(section/p)
+msgid "This is equivalent to:"
+msgstr "ÎÏÏÏ ÎÎÎÎÎ ÎÏÎÎÏÎÎÎÎ ÎÎ:"
+
+#: C/properties.py.page:37(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"label = Gtk.Label()\n"
+"label.set_label(\"Hello World\")\n"
+"label.set_angle(25)\n"
+"label.set_halign(Gtk.Align.END)"
+msgstr ""
+"\n"
+"label = Gtk.Label()\n"
+"label.set_label(\"Hello World\")\n"
+"label.set_angle(25)\n"
+"label.set_halign(Gtk.Align.END)"
 
-#: C/menubar.py.page:87(p)
+#: C/properties.py.page:43(section/p)
 msgid ""
-"Following this pattern, you can now add a <code>Copy</code> and a "
-"<code>Paste</code> item to the <code>Edit</code> submenu, and an "
-"<code>About</code> item to the <code>Help</code> submenu."
+"Once you have created such a label, you can get the text with the getter "
+"<code>label.get_label()</code>."
 msgstr ""
-"ÎÎÎÎÎÏÎÏÎÏÎÏ ÎÏÏÏ ÏÎ ÎÎÏÎÎÎ, ÎÏÎÏÎÎÏÎ ÏÏÏÎ ÎÎ ÏÏÎÏÎÎÏÎÏÎ ÎÎÎ ÏÏÎÎÏÎÎÎ "
-"<code>Copy</code> ÎÎÎ ÎÎÎ <code>Paste</code> ÏÏÎ ÏÏÎÎÎÎÎÏ <code>Edit</code> "
-"ÎÎÎ ÎÎÎ ÏÏÎÎÏÎÎÎ <code>About</code> ÏÏÎ ÏÏÎÎÎÎÎÏ <code>Help</code>."
+"ÎÏÎÎÏ ÎÎÎÎÎÏÏÎÎÏÎÏÎ ÎÎÎ ÏÎÏÎÎÎ ÎÏÎÎÎÏÎ, ÎÏÎÏÎÎÏÎ ÎÎ ÏÎÏÎÏÎ ÏÎ ÎÎÎÎÎÎÎ ÎÎ ÏÎÎ "
+"ÎÎÏÏÎ <code>label.get_label()</code>."
 
-#: C/menubar.py.page:94(p)
+#: C/properties.py.page:45(section/p)
 msgid ""
-"We now create the actions for \"New\" and \"Quit\" connected to a callback "
-"function in the Python file; for instance we create \"new\" as:"
+"Instead of using getters and setters you can also get and set the properties "
+"with <code>get_property(\"prop-name\")</code> and <code>set_property(\"prop-"
+"name\", value)</code>, respectively."
 msgstr ""
-"ÎÏÏÎ ÎÎÎÎÎÏÏÎÎÏÎÎ ÏÎÏ ÎÎÎÏÎÎÎÎÏ ÎÎÎ \"New\" ÎÎÎ \"Quit\" ÏÏÎÎÎÎÎÎÎÏ ÏÎ ÎÎÎ "
-"ÏÏÎÎÏÏÎÏÎ ÎÏÎÎÎÎÎÎÏÎÏ ÏÏÎ ÎÏÏÎÎÎ Python ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ ÎÎÎÎÎÏÏÎÎÏÎÎ ÏÎ \"new"
-"\" ÏÏ:"
+"ÎÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÎÎÏÏÎÏ ÎÎÎ ÏÏÎÎÎÏÏÎÏ ÎÏÎÏÎÎÏÎ ÎÏÎÏÎÏ ÎÎ ÏÎÏÎÏÎ ÎÎÎ "
+"ÎÎ ÏÏÎÎÎÏÎÏÎ ÏÎÏ ÎÎÎÏÏÎÏÎÏ ÎÎ <code>get_property(\"prop-name\")</code> ÎÎÎ "
+"<code>set_property(\"prop-name\", value)</code>, ÎÎÏÎÏÏÎÎÏÎ."
 
-#: C/menubar.py.page:95(code)
-#, no-wrap
+#: C/properties.py.page:51(section/p)
 msgid ""
-"\n"
-"new_action = Gio.SimpleAction.new(\"new\", None)\n"
-"new_action.connect(\"activate\", self.new_callback)"
+"<link href=\"http://python-gtk-3-tutorial.readthedocs.org/en/latest/basics.";
+"html\">Basics - Properties</link> in Python Gtk+ 3 Tutorial"
 msgstr ""
-"\n"
-"new_action = Gio.SimpleAction.new(\"new\", None)\n"
-"new_action.connect(\"activate\", self.new_callback)"
+"<link href=\"http://python-gtk-3-tutorial.readthedocs.org/en/latest/basics.";
+"html\">ÎÎÏÎÎÎ - ÎÎÎÏÏÎÏÎÏ</link> ÏÏÎ ÎÎÎÎÎÎ Python Gtk+ 3"
 
-#: C/menubar.py.page:99(p)
-msgid "And we create the callback function of \"new\" as"
-msgstr "ÎÎÎ ÎÎÎÎÎÏÏÎÎÏÎÎ ÏÎ ÏÏÎÎÏÏÎÏÎ ÎÏÎÎÎÎÎÎÏÎÏ ÏÎÏ \"new\" ÏÏ"
+#: C/py.page:6(info/title)
+msgctxt "link"
+msgid "Python"
+msgstr "Python"
+
+#: C/py.page:15(page/title)
+msgid "Tutorials, code samples and platform demos in Python"
+msgstr "ÎÎÎÎÎÎÏÎ, ÎÎÎÎÎÎÏÎ ÎÏÎÎÎÎ ÎÎÎ ÏÎÏÎÎÎÎÎÎÎÏÎ ÏÎÎÏÏÏÏÎÎÏ ÏÎ Python"
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/radiobutton.c.page:24(media) C/radiobutton.py.page:25(media)
+#: C/radiobutton.vala.page:24(media)
+msgctxt "_"
+msgid ""
+"external ref='media/radiobutton.png' md5='d115460280d8e41493dd98054b5822a5'"
+msgstr ""
+"external ref='media/radiobutton.png' md5='d115460280d8e41493dd98054b5822a5'"
+
+#: C/radiobutton.c.page:7(info/title)
+msgctxt "text"
+msgid "RadioButton (C)"
+msgstr "RadioButton (C)"
+
+#: C/radiobutton.c.page:19(info/desc)
+msgid "A choice from multiple checkbuttons"
+msgstr "ÎÎÎ ÎÏÎÎÎÎÎ ÎÏÏ ÏÎÎÎÎÏÎÎ ÎÎÏÎÏÎÎ ÎÎÎÎÏÎÏ"
+
+#: C/radiobutton.c.page:22(page/title) C/radiobutton.js.page:20(page/title)
+#: C/radiobutton.py.page:24(page/title) C/radiobutton.vala.page:23(page/title)
+msgid "RadioButton"
+msgstr "RadioButton"
+
+#: C/radiobutton.c.page:25(page/p)
+msgid "These radiobuttons report their activity in the terminal."
+msgstr "ÎÏÏÎ ÏÎ ÏÎÎÎÎÏÎÎÎÏÏÎ ÎÎÎÏÎÏÎÏÎ ÏÎÎ ÎÏÎÏÏÎÏÎÏÏÎÏÎ ÏÎÏÏ ÏÏÎ ÏÎÏÎÎÏÎÎÏ."
 
-#: C/menubar.py.page:100(code)
+#: C/radiobutton.c.page:27(page/code)
 #, no-wrap
 msgid ""
 "\n"
-"def new_callback(self, action, parameter):\n"
-"    print \"You clicked \\\"New\\\"\""
+"#include &lt;gtk/gtk.h&gt;\n"
+"\n"
+"\n"
+"\n"
+"/*Signal handler for the \"toggled\" signal of the RadioButton*/\n"
+"static void\n"
+"button_toggled_cb (GtkWidget *button,\n"
+"                   gpointer   user_data)\n"
+"{\n"
+"  char *b_state;\n"
+"  const char *button_label;\n"
+"\n"
+"  if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (button)))\n"
+"          b_state = \"on\";\n"
+"  else {\n"
+"          b_state = \"off\";\n"
+"          g_print (\"\\n\");\n"
+"  }\n"
+"\n"
+"  button_label = gtk_button_get_label (GTK_BUTTON (button));\n"
+"\n"
+"  g_print (\"%s was turned %s\\n\", button_label, b_state);\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"static void\n"
+"activate (GtkApplication *app,\n"
+"          gpointer        user_data)\n"
+"{\n"
+"  GtkWidget *grid;\n"
+"  GtkWidget *window;\n"
+"\n"
+"  GtkWidget *button1;\n"
+"  GtkWidget *button2;\n"
+"  GtkWidget *button3;\n"
+"\n"
+"  /*Create a window with a set title and default size.\n"
+"  Also, set a border width for the amount of space to leave\n"
+"  inside the window*/\n"
+"  window = gtk_application_window_new (app);\n"
+"  gtk_window_set_title (GTK_WINDOW (window), \"RadioButton Example\");\n"
+"  gtk_window_set_default_size (GTK_WINDOW (window), 250, 100);\n"
+"  gtk_container_set_border_width (GTK_CONTAINER(window), 20);\n"
+"\n"
+"\n"
+"  /*Create an initial radio button*/\n"
+"  button1 = gtk_radio_button_new_with_label (NULL, \"Button 1\");\n"
+"\n"
+"  /*Create a second radio button, and add it to the same group as Button 1*/\n"
+"  button2 = gtk_radio_button_new_with_label_from_widget (GTK_RADIO_BUTTON (button1), \n"
+"                                                         \"Button 2\");\n"
+"\n"
+"  /*Create a third button, and add it to the same group as Button 1*/\n"
+"  button3 = gtk_radio_button_new_with_label_from_widget (GTK_RADIO_BUTTON (button1), \n"
+"                                                         \"Button 3\");\n"
+"\n"
+"\n"
+"  /*Create a grid, attach the buttons, and position them accordingly*/\n"
+"  grid = gtk_grid_new ();\n"
+"  gtk_grid_attach (GTK_GRID (grid), button1, 0, 0, 1, 1);\n"
+"  gtk_grid_attach (GTK_GRID (grid), button2, 0, 1, 1, 1);\n"
+"  gtk_grid_attach (GTK_GRID (grid), button3, 0, 2, 1, 1);\n"
+"\n"
+"  /*Be sure to set the initial state of each button*/\n"
+"  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button2), TRUE);\n"
+"  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button1), FALSE);\n"
+"  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button3), FALSE);\n"
+"\n"
+"  /*Connect the signal handlers (aka Callback functions) to the buttons*/\n"
+"  g_signal_connect (GTK_TOGGLE_BUTTON (button1), \"toggled\", \n"
+"                    G_CALLBACK (button_toggled_cb), window);\n"
+"  g_signal_connect (GTK_TOGGLE_BUTTON (button2), \"toggled\", \n"
+"                    G_CALLBACK (button_toggled_cb), window);\n"
+"  g_signal_connect (GTK_TOGGLE_BUTTON (button3), \"toggled\", \n"
+"                    G_CALLBACK (button_toggled_cb), window);\n"
+"\n"
+"  gtk_container_add (GTK_CONTAINER (window), GTK_WIDGET (grid));\n"
+"\n"
+"  gtk_widget_show_all (window);\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"int\n"
+"main (int argc, char **argv)\n"
+"{\n"
+"  GtkApplication *app;\n"
+"  int status;\n"
+"\n"
+"  app = gtk_application_new (\"org.gtk.example\", G_APPLICATION_FLAGS_NONE);\n"
+"  g_signal_connect (app, \"activate\", G_CALLBACK (activate), NULL);\n"
+"  status = g_application_run (G_APPLICATION (app), argc, argv);\n"
+"  g_object_unref (app);\n"
+"\n"
+"  return status;\n"
+"}\n"
 msgstr ""
 "\n"
-"def new_callback(self, action, parameter):\n"
-"    print \"You clicked \\\"New\\\"\""
+"#include &lt;gtk/gtk.h&gt;\n"
+"\n"
+"\n"
+"\n"
+"/*Signal handler for the \"toggled\" signal of the RadioButton*/\n"
+"static void\n"
+"button_toggled_cb (GtkWidget *button,\n"
+"                   gpointer   user_data)\n"
+"{\n"
+"  char *b_state;\n"
+"  const char *button_label;\n"
+"\n"
+"  if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (button)))\n"
+"          b_state = \"on\";\n"
+"  else {\n"
+"          b_state = \"off\";\n"
+"          g_print (\"\\n\");\n"
+"  }\n"
+"\n"
+"  button_label = gtk_button_get_label (GTK_BUTTON (button));\n"
+"\n"
+"  g_print (\"%s was turned %s\\n\", button_label, b_state);\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"static void\n"
+"activate (GtkApplication *app,\n"
+"          gpointer        user_data)\n"
+"{\n"
+"  GtkWidget *grid;\n"
+"  GtkWidget *window;\n"
+"\n"
+"  GtkWidget *button1;\n"
+"  GtkWidget *button2;\n"
+"  GtkWidget *button3;\n"
+"\n"
+"  /*Create a window with a set title and default size.\n"
+"  Also, set a border width for the amount of space to leave\n"
+"  inside the window*/\n"
+"  window = gtk_application_window_new (app);\n"
+"  gtk_window_set_title (GTK_WINDOW (window), \"RadioButton Example\");\n"
+"  gtk_window_set_default_size (GTK_WINDOW (window), 250, 100);\n"
+"  gtk_container_set_border_width (GTK_CONTAINER(window), 20);\n"
+"\n"
+"\n"
+"  /*Create an initial radio button*/\n"
+"  button1 = gtk_radio_button_new_with_label (NULL, \"Button 1\");\n"
+"\n"
+"  /*Create a second radio button, and add it to the same group as Button 1*/\n"
+"  button2 = gtk_radio_button_new_with_label_from_widget (GTK_RADIO_BUTTON (button1), \n"
+"                                                         \"Button 2\");\n"
+"\n"
+"  /*Create a third button, and add it to the same group as Button 1*/\n"
+"  button3 = gtk_radio_button_new_with_label_from_widget (GTK_RADIO_BUTTON (button1), \n"
+"                                                         \"Button 3\");\n"
+"\n"
+"\n"
+"  /*Create a grid, attach the buttons, and position them accordingly*/\n"
+"  grid = gtk_grid_new ();\n"
+"  gtk_grid_attach (GTK_GRID (grid), button1, 0, 0, 1, 1);\n"
+"  gtk_grid_attach (GTK_GRID (grid), button2, 0, 1, 1, 1);\n"
+"  gtk_grid_attach (GTK_GRID (grid), button3, 0, 2, 1, 1);\n"
+"\n"
+"  /*Be sure to set the initial state of each button*/\n"
+"  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button2), TRUE);\n"
+"  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button1), FALSE);\n"
+"  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button3), FALSE);\n"
+"\n"
+"  /*Connect the signal handlers (aka Callback functions) to the buttons*/\n"
+"  g_signal_connect (GTK_TOGGLE_BUTTON (button1), \"toggled\", \n"
+"                    G_CALLBACK (button_toggled_cb), window);\n"
+"  g_signal_connect (GTK_TOGGLE_BUTTON (button2), \"toggled\", \n"
+"                    G_CALLBACK (button_toggled_cb), window);\n"
+"  g_signal_connect (GTK_TOGGLE_BUTTON (button3), \"toggled\", \n"
+"                    G_CALLBACK (button_toggled_cb), window);\n"
+"\n"
+"  gtk_container_add (GTK_CONTAINER (window), GTK_WIDGET (grid));\n"
+"\n"
+"  gtk_widget_show_all (window);\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"int\n"
+"main (int argc, char **argv)\n"
+"{\n"
+"  GtkApplication *app;\n"
+"  int status;\n"
+"\n"
+"  app = gtk_application_new (\"org.gtk.example\", G_APPLICATION_FLAGS_NONE);\n"
+"  g_signal_connect (app, \"activate\", G_CALLBACK (activate), NULL);\n"
+"  status = g_application_run (G_APPLICATION (app), argc, argv);\n"
+"  g_object_unref (app);\n"
+"\n"
+"  return status;\n"
+"}\n"
 
-#: C/menubar.py.page:104(p)
+#: C/radiobutton.c.page:37(item/p) C/switch.c.page:35(item/p)
 msgid ""
-"Now, in the XML file, we we connect the menu items to the actions in the XML "
-"file by adding the \"action\" attribute:"
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkSwitch.html";
+"\">GtkSwitch</link>"
 msgstr ""
-"ÎÏÏÎ, ÏÏÎ ÎÏÏÎÎÎ XML, ÏÏÎÎÎÎÏÎÎ ÏÎ ÏÏÎÎÏÎÎÎ ÎÎÎÎÏ ÏÏÎÏ ÎÎÎÏÎÎÎÎÏ ÏÏÎ ÎÏÏÎÎÎ "
-"XML ÏÏÎÏÎÎÏÎÎÏÎÏ ÏÎ ÎÎÏÏÎÏÎÎ \"action\":"
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkSwitch.html";
+"\">GtkSwitch</link>"
 
-#: C/menubar.py.page:111(p)
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/radiobutton.js.page:21(media)
+msgctxt "_"
 msgid ""
-"Note that for an action that is relative to the application, we use the "
-"prefix <code>app.</code>; for actions that are relative to the window we use "
-"the prefix <code>win.</code>."
+"external ref='media/radiobuttontravel.png' "
+"md5='0c5f01ee160bb42716ccf5dccbd080c0'"
 msgstr ""
-"ÎÎÎÎÎÏÏÏÎ ÏÏÎ ÎÎÎ ÎÎÎ ÎÎÎÏÎÎÎÎ ÏÎÏ ÎÎÎÎÎ ÏÏÎÏÎÎÎ ÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ, "
-"ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÏÎ ÏÏÏÎÎÎÎ <code>app.</code>Â ÎÎÎ ÎÎÎÏÎÎÎÎÏ ÏÎÏ ÎÎÎÎÎ "
-"ÏÏÎÏÎÎÎÏ ÎÎ ÏÎ ÏÎÏÎÎÏÏÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÏÎ ÏÏÏÎÎÎÎ <code>win.</code>."
+"external ref='media/radiobuttontravel.png' "
+"md5='0c5f01ee160bb42716ccf5dccbd080c0'"
+
+#: C/radiobutton.js.page:7(info/title)
+msgctxt "text"
+msgid "RadioButton (JavaScript)"
+msgstr "RadioButton (JavaScript)"
 
-#: C/menubar.py.page:113(p)
+#: C/radiobutton.js.page:17(info/desc)
+msgid "Only one can be selected at a time"
+msgstr "ÎÏÎÎ ÎÎÎ ÎÏÎÏÎÎ ÎÎ ÎÏÎÎÎÎÎÎ ÏÎ ÏÎÏÎ"
+
+#: C/radiobutton.js.page:22(page/p)
 msgid ""
-"Finally, in the Python file, we add the action to the application or to the "
-"window - so for instance <code>app.new</code> will be added to the "
-"application in the method <code>do_startup(self)</code> as"
+"RadioButtons are named after old-style car radios, which had buttons for "
+"switching between channel presets. Because the radio could only be tuned to "
+"one station at a time, only one button could be pressed in at a time; if you "
+"pressed a new one, the one that was already pressed in would pop back out. "
+"That's how these buttons work, too."
 msgstr ""
-"ÎÎÎÎÎÎ, ÏÏÎ ÎÏÏÎÎÎ Python, ÏÏÎÏÎÎÏÎÏÎÎ ÏÎÎ ÎÎÎÏÎÎÎÎ ÏÏÎÎ ÎÏÎÏÎÎÎÎ Î ÏÏÎ "
-"ÏÎÏÎÎÏÏÎ - ÎÏÏÎ ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ <code>app.new</code> ÎÎ ÏÏÎÏÏÎÎÎÎ ÏÏÎÎ "
-"ÎÏÎÏÎÎÎÎ ÏÏÎ ÎÎÎÎÎÎ <code>do_startup(self)</code> ÏÏ"
+"RadioButtons ÎÎÎÎÎÎÎÎÏÎÎ ÎÎÏÎ ÏÎÎ ÏÎÎÎÎ ÎÏÎÎ ÏÎÎÎÎÏÏÎÏÎ ÎÏÏÎÎÎÎÎÏÏÎ, ÏÎÏ "
+"ÎÎÏÎÎ ÎÎÏÎÏÎÎ ÎÎÎ ÎÎÎÎÎÎ ÎÎÏÎÎÏ ÏÏÎÎÎÎÎÏÎÏÎÎÎÏÎ ÎÎÎÎÎÎÏÎ. ÎÏÎÎÎÎ ÏÎ "
+"ÏÎÎÎÏÏÏÎÎ ÎÏÎÏÎÏÏÎ ÎÎ ÏÏÎÏÎÎÎÏÏÎÎ ÎÏÎÎ ÏÎ ÎÎÎ ÏÏÎÎÎÏ ÏÎ ÏÎÏÎ, ÎÏÎÎ ÎÎÎ "
+"ÎÎÏÎÏÎ ÎÏÎÏÎÏÏÎ ÎÎ ÏÎÏÎÎÎÎ ÏÎ ÏÎÏÎÂ ÎÎ ÏÎÏÎÏÏÎÏÎ ÎÎÎ ÎÎÎ, ÎÏÏÏ ÏÎÏ ÎÏÎÎ ÎÎÎ "
+"ÏÎÏÎÎÎÎÎ ÏÎÏÎÎÏÏÎÎ ÏÎÏÏ. ÎÏÏÎ ÎÎÏÎÎÏÎÏÎ ÎÎÎ ÎÏÏÎ ÏÎ ÎÎÏÎÏÎÎ."
+
+#: C/radiobutton.js.page:23(page/p)
+msgid ""
+"Each RadioButton needs a text label and a group. Only one button in a group "
+"can be selected at a time. You don't name each group; you just set new "
+"RadioButtons to be part of the same group as an existing one. If you create "
+"a new one outside of a group, it automatically creates a new group for it to "
+"be part of."
+msgstr ""
+"ÎÎÎÎ RadioButton ÏÏÎÎÎÎÎÏÎÎ ÎÎÎ ÎÏÎÎÎÏÎ ÎÎÎÎÎÎÎÏ ÎÎÎ ÎÎÎ ÎÎÎÎÎ. ÎÏÎÎ ÎÎÎ "
+"ÎÎÏÎÏÎ ÏÎ ÎÎÎ ÎÎÎÎÎ ÎÏÎÏÎÎ ÎÎ ÎÏÎÎÎÎÎÎ ÏÎ ÏÎÏÎ. ÎÎÎ ÎÎÎÎÎÎÎÏÎ ÎÎÎÎ ÎÎÎÎÎÂ "
+"ÎÏÎÎÏ ÏÏÎÎÎÏÎÏÎ ÎÎÎ RadioButtons ÎÎÎ ÎÎ ÎÎÎÎÎ ÏÎÎÎÎ ÏÎÏ ÎÎÎÎÏ ÎÎÎÎÎÏ ÏÏ ÎÎÎ "
+"ÏÏÎÏÏÎÏÏÎ. ÎÎÎ ÎÎÎÎÎÏÏÎÎÎÏÎ ÎÎÎ ÎÎÎ ÎÎÏÏÏ ÎÎÎÏ ÎÎÎÎÎÏ, ÎÎÎÎÎÏÏÎÎÎ ÎÏÏÏÎÎÏÎ "
+"ÎÎÎ ÎÎÎ ÎÎÎÎÎ ÎÎÎ ÎÎ ÎÎÎÎÎ ÎÎÏÎÏ ÏÎÏ."
 
-#: C/menubar.py.page:114(code)
+#: C/radiobutton.js.page:40(section/code)
 #, no-wrap
 msgid ""
 "\n"
-"self.add_action(new_action)"
+"const RadioButtonExample = new Lang.Class({\n"
+"    Name: 'RadioButton Example',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application({\n"
+"            application_id: 'org.example.jsradiobutton',\n"
+"            flags: Gio.ApplicationFlags.FLAGS_NONE\n"
+"        });\n"
+"\n"
+"    // Connect 'activate' and 'startup' signals to the callback functions\n"
+"    this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"    this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents window when active\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function() {\n"
+"        this._buildUI ();\n"
+"    },\n"
 msgstr ""
 "\n"
-"self.add_action(new_action)"
+"const RadioButtonExample = new Lang.Class({\n"
+"    Name: 'RadioButton Example',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application({\n"
+"            application_id: 'org.example.jsradiobutton',\n"
+"            flags: Gio.ApplicationFlags.FLAGS_NONE\n"
+"        });\n"
+"\n"
+"    // Connect 'activate' and 'startup' signals to the callback functions\n"
+"    this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"    this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents window when active\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function() {\n"
+"        this._buildUI ();\n"
+"    },\n"
 
-#: C/menubar.py.page:124(p)
+#: C/radiobutton.js.page:66(section/p) C/togglebutton.js.page:66(section/p)
 msgid ""
-"The complete example files contain both application actions and window "
-"applications. The window actions are the ones usually included in the <link "
-"xref=\"gmenu.py\">application menu</link> also. It is not good practice to "
-"include window actions in the applcation menu. For demonstration purposes, "
-"the complete example files which follow include XML in the UI file which "
-"creates the application menu which includes a \"New\" and \"Open\" item, and "
-"these are hooked up to the same actions as the menubar items of the same "
-"name."
+"All the code for this sample goes in the RadioButtonExample class. The above "
+"code creates a <link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/";
+"Gtk.Application.html\">Gtk.Application</link> for our widgets and window to "
+"go in."
 msgstr ""
-"ÎÎ ÏÎÎÏÎ ÎÏÏÎÎÎ ÏÎÏ ÏÎÏÎÎÎÎÎÎÎÏÎÏ ÏÎÏÎÎÏÎÏÎ ÎÎÏÏÏÎÏÎÏ ÏÎÏ ÎÎÎÏÎÎÎÎÏ "
-"ÎÏÎÏÎÎÎÎÏ ÎÎÎ ÏÎÏ ÎÏÎÏÎÎÎÎÏ ÏÎÏÎÎÏÏÎÏ. ÎÎ ÎÎÎÏÎÎÎÎÏ ÏÎÏÎÎÏÏÎÏ ÎÎÎÎÎ ÎÏÏÎÏ "
-"ÏÎÏ ÏÏÎÎÎÏÏ ÏÏÎÏÎÏÎÎÎÎÎÎÎÎÎÏÎÎ ÏÏÎ <link xref=\"gmenu.py\">ÎÎÎÎÏ ÎÏÎÏÎÎÎÎÏ</"
-"link> ÎÏÎÏÎÏ. ÎÎÎ ÎÎÎÎÎ ÎÎÎÎ ÏÏÎÎÏÎÎÎ ÎÎ ÏÏÎÏÎÏÎÎÎÎÎÎÎÎÏÎ ÎÎÎÏÎÎÎÎÏ "
-"ÏÎÏÎÎÏÏÎÏ ÏÏÎ ÎÎÎÎÏ ÏÎÏ ÎÏÎÏÎÎÎÎÏ. ÎÎÎ ÏÎÎÏÎÏÏ ÎÏÎÎÎÎÎÎÏ, ÏÎ ÏÎÎÏÎ ÎÏÏÎÎÎ "
-"ÏÎÏ ÏÎÏÎÎÎÎÎÎÎÏÎÏ ÏÎÏ ÎÎÎÎÎÏÎÎÎ ÏÎÏÎÎÏÎÏÎ XML ÏÏÎ ÎÏÏÎÎÎ UI ÏÎÏ ÎÎÎÎÎÏÏÎÎÎ "
-"ÏÎ ÎÎÎÎÏ ÎÏÎÏÎÎÎÎÏ ÏÎÏ ÏÎÏÎÎÎÎÎÎÎÎÎ ÏÎ ÏÏÎÎÏÎÎÎ \"New\" ÎÎÎ \"Open\" ÎÎÎ "
-"ÎÏÏÎ ÏÏÎÎÎÎÎÏÎÎ ÎÎ ÏÎÏ ÎÎÎÎÏ ÎÎÎÏÎÎÎÎÏ ÏÏÏÏ ÏÎ ÏÏÎÎÏÎÎÎ ÏÎÏ ÎÏÎÎÎÎÏ ÎÎÎÎÏ "
-"ÏÎÏ ÎÎÎÎÏ ÎÎÏÎÎÏÎÏ."
+"ÎÎÎÏ Î ÎÏÎÎÎÎÏ ÎÎÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÏÎÎÎÎÎÎÎ ÏÏÎÎ ÎÎÎÏÎ "
+"RadioButtonExample. Î ÏÎÏÎÏÎÎÏ ÎÏÎÎÎÎÏ ÎÎÎÎÎÏÏÎÎÎ ÎÎÎ <link href=\"http://";
+"www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Application.html\">Gtk."
+"Application</link> ÎÎÎ ÎÎ ÎÏÎÏÎ ÎÎÏÎ ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÏ ÎÎÎ ÏÎ "
+"ÏÎÏÎÎÏÏÎ."
+
+#: C/radiobutton.js.page:67(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function() {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            border_width: 20,\n"
+"            title: \"Travel Planning\"});\n"
+msgstr ""
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function() {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            border_width: 20,\n"
+"            title: \"Travel Planning\"});\n"
+
+#: C/radiobutton.js.page:82(section/title)
+msgid "Creating the radiobuttons"
+msgstr "ÎÎÎÎÎÏÏÎÎÎ ÏÏÎ ÏÎÎÎÎÎÎÏÎÏÎÏÎ"
 
-#: C/menubar.py.page:130(p)
+#: C/radiobutton.js.page:83(section/code)
+#, no-wrap
 msgid ""
-"Lines 30 to 80 inclusive of the <link xref=\"menubar.py#xml-code\"/> "
-"demonstrate the XML code used to create the UI for <gui>Choices</gui> menu."
+"\n"
+"        // Create a label for the first group of buttons\n"
+"        this._placeLabel = new Gtk.Label ({label: \"Where would you like to travel to?\"});\n"
 msgstr ""
-"ÎÎ ÎÏÎÎÎÎÏ 30 ÎÏÏ 80 ÏÏÎÏÎÏÎÎÎÎÎÎÎÏÎÎÎÎÏ ÏÎÏ ÎÎÏÎÎÎÏÎÏ <link xref=\"menubar."
-"py#xml-code\"/> ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎÎÎÏ ÎÏÎÎÎÎ XML ÎÎÎ ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ UI ÎÎÎ "
-"ÏÎ ÎÎÎÎÏ <gui>ÎÏÎÎÎÎÎÏ</gui>."
+"\n"
+"        // Create a label for the first group of buttons\n"
+"        this._placeLabel = new Gtk.Label ({label: \"Where would you like to travel to?\"});\n"
 
-#: C/menubar.py.page:132(p)
+#: C/radiobutton.js.page:88(section/p)
 msgid ""
-"The actions created so far are <em>stateless</em>, that is they do not "
-"retain or depend on a state given by the action itself. The actions we need "
-"to create for the Choices submenu, on the other hand, are <em>stateful</em>. "
-"An example of creation of a stateful action is:"
+"We use a <link xref=\"label.js\">Gtk.Label</link> to set each group of "
+"RadioButtons apart. Nothing will stop you from putting RadioButtons from all "
+"different groups wherever you want, so if you want people to know which ones "
+"go together you need to organize things accordingly."
 msgstr ""
-"ÎÎ ÎÎÎÎÎÏÏÎÎÎÎÎÎÏ ÎÎÎÏÎÎÎÎÏ ÎÎÏÏÎ ÎÎÏ ÎÎÎÎÎ <em>ÏÏÏÎÏ ÎÎÏÎÏÏÎÏÎ</em>, ÎÎÎÎÎÎ "
-"ÎÎÎ ÎÏÎÏÎÏÎ Î ÎÎÎÏÏÏÎÏÎÎ ÎÏÏ ÎÎÎ ÎÎÎÎÎÎÎÎ ÎÎÏÎÏÏÎÏÎ ÎÏÏ ÏÎÎ ÎÎÎÎ ÏÎÎ "
-"ÎÎÎÏÎÎÎÎ. ÎÎ ÎÎÎÏÎÎÎÎÏ ÏÎÏ ÏÏÎÎÎÎÏÎÎÏÏÎ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ ÎÎÎ ÏÎ ÏÏÎÎÎÎÎÏ "
-"ÎÏÎÎÎÎÏÎ, ÎÏÏ ÏÎÎ ÎÎÎÎ ÎÎÏÎÎ, ÎÎÎÎÎ <em>ÎÎ ÎÎÏÎÏÏÎÏÎ</em>. ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ "
-"ÎÎÎÎÎÏÏÎÎÎÏ ÎÎÎÏ ÎÎÎÏÎÎÎÎÏ ÎÎ ÎÎÏÎÏÏÎÏÎ ÎÎÎÎÎ:"
+"ÎÏÎÏÎÎÎÏÎÎÎÏÎÎ ÎÎÎ <link xref=\"label.js\">Gtk.Label</link> ÎÎÎ ÎÎ ÎÏÎÏÎÏÎÎ "
+"ÎÎÎÎ ÎÎÎÎÎ RadioButtons ÎÎÎÎÎÏÏÎÏÎ. ÎÎÏÎÏÎ ÎÎÎ ÏÎÏ ÎÎÏÎÎÎÎÎÎ ÎÎ ÎÎÎÎÏÎ ÏÎ "
+"RadioButtons ÎÏÏ ÏÎÎÏ ÏÎÏ ÎÎÎÏÎÏÎÏÎÎÎÏ ÎÎÎÎÎÏ ÏÏÎÏ ÎÎÎÎÏÎ, ÎÏÏÎ ÎÎÎ ÎÎÎÎÏÎ "
+"ÎÎ ÎÎÎÎÎ ÎÎ ÎÎÏÎÏÎ ÏÎÎÎ ÏÎÎÎÎÎÎÎ ÎÎÎÎ, ÏÏÎÎÎÎÏÏÎÏÏÎ ÎÎ ÎÏÎÎÎÏÏÎÏÎ ÏÎ "
+"ÏÏÎÎÎÎÏÎ ÎÎÎÎÎÎÎ."
 
-#: C/menubar.py.page:133(code)
+#: C/radiobutton.js.page:90(section/code)
 #, no-wrap
 msgid ""
 "\n"
-"shape_action = Gio.SimpleAction.new_stateful(\"shape\", GLib.VariantType.new('s'), GLib.Variant.new_string('line'))"
+"        // Create three radio buttons three different ways\n"
+"        this._place1 = new Gtk.RadioButton ({label: \"The Beach\"});\n"
+"\n"
+"        this._place2 = Gtk.RadioButton.new_from_widget (this._place1);\n"
+"        this._place2.set_label (\"The Moon\");\n"
+"\n"
+"        this._place3 = Gtk.RadioButton.new_with_label_from_widget (this._place1, \"Antarctica\");\n"
+"        // this._place3.set_active (true);\n"
 msgstr ""
 "\n"
-"shape_action = Gio.SimpleAction.new_stateful(\"shape\", GLib.VariantType.new('s'), GLib.Variant.new_string('line'))"
+"        // Create three radio buttons three different ways\n"
+"        this._place1 = new Gtk.RadioButton ({label: \"The Beach\"});\n"
+"\n"
+"        this._place2 = Gtk.RadioButton.new_from_widget (this._place1);\n"
+"        this._place2.set_label (\"The Moon\");\n"
+"\n"
+"        this._place3 = Gtk.RadioButton.new_with_label_from_widget (this._place1, \"Antarctica\");\n"
+"        // this._place3.set_active (true);\n"
 
-#: C/menubar.py.page:136(p)
+#: C/radiobutton.js.page:101(section/p)
 msgid ""
-"where the variables of the method are: name, parameter type (in this case, a "
-"string - see <link href=\"http://developer.gnome.org/glib/unstable/glib-";
-"GVariantType.html\">here</link> for a complete list of character meanings), "
-"initial state (in this case, 'line' - in case of a <code>True</code> boolean "
-"value it should be <code>Glib.Variant.new_boolean(True)</code>, and so on, "
-"see <link href=\"http://developer.gnome.org/glib/unstable/glib-GVariant.html";
-"\">here</link> for a complete list)"
+"Here are three different ways to create RadioButtons. The first is the usual "
+"way, where we create a new Gtk.RadioButton and assign its properties at the "
+"same time. The second and third use functions which automatically handle "
+"some of the properties; new_from_widget takes a single argument, the "
+"RadioButton that you want to put this new one in the same group as. "
+"Meanwhile, new_with_label_from_widget takes that and the RadioButton's label "
+"at the same time."
 msgstr ""
-"ÏÏÎÏ ÎÎ ÎÎÏÎÎÎÎÏÎÏ ÏÎÏ ÎÎÎÏÎÎÏ ÎÎÎÎÎ: ÏÎÎÎÎ, ÏÏÏÎÏ ÏÎÏÎÎÎÏÏÎÏ (ÏÎ ÎÏÏÎÎ ÏÎÎ "
-"ÏÎÏÎÏÏÏÏÎ, ÎÎÎ ÏÏÎÎÎÎÎÏÎÎÏÎ - ÎÎÎÏÎ <link href=\"http://developer.gnome.org/";
-"glib/unstable/glib-GVariantType.html\">ÎÎÏ</link> ÎÎÎ ÎÎÎ ÏÎÎÏÎ ÎÎÏÏÎ "
-"ÏÎÎÎÏÎÏÎ ÏÎÏÎÎÏÎÏÎ), ÎÏÏÎÎÎÏ ÎÎÏÎÏÏÎÏÎÏ (ÏÎ ÎÏÏÎÎ ÏÎÎ ÏÎÏÎÏÏÏÏÎ, 'line' - ÏÎ "
-"ÏÎÏÎÏÏÏÏÎ ÎÎÎÏ <code>True</code> ÏÎÎÎÏ ÎÏÎÏÎ ÎÎ ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎ <code>Glib."
-"Variant.new_boolean(True)</code>, Î.Î.Î, ÎÎÎÏÎ <link href=\"http://developer.";
-"gnome.org/glib/unstable/glib-GVariant.html\">ÎÎÏ</link> ÎÎÎ ÎÎÎ ÏÎÎÏÎ ÎÎÏÏÎ)"
+"ÎÎÏ ÏÏÎÏÏÎÏÎ ÏÏÎÎÏ ÎÎÎÏÎÏÎÏÎÎÎÎ ÏÏÏÏÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎ RadioButtons. Î "
+"ÏÏÏÏÎÏ ÎÎÎÎÎ Î ÏÏÎÎÎÎÏÎÎÎÎÏ ÏÏÏÏÎÏ, ÏÏÎÏ ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ ÎÎÎ Gtk."
+"RadioButton ÎÎÎ ÎÏÎÎÎÎÎÏÎÎ ÏÎÏ ÎÎÎÏÏÎÏÎÏ ÏÎÏ ÏÎÏÏÏÏÏÎÎÎ. Î ÎÎÏÏÎÏÎÏ ÎÎÎ "
+"ÏÏÎÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÏÎ ÏÏÎÎÏÏÎÏÎÎÏ ÏÎÏ ÏÎÎÏÎÎÎÎÏÎÎ ÎÏÏÏÎÎÏÎ ÎÎÏÎÎÎÏ ÎÏÏ ÏÎÏ "
+"ÎÎÎÏÏÎÏÎÏÂ ÏÎ new_from_widget ÏÎÎÏÎÎÎ ÎÎÎ ÎÎÎÎÎÎÎÏ ÏÏÎÏÎÎ, ÏÎ RadioButton "
+"ÏÏÎ ÎÏÎÎÎ ÎÎÎÎÏÎ ÎÎ ÎÎÎÎÏÎ ÎÏÏÏ ÏÎ ÎÎÎ ÏÏÎÎ ÎÎÎÎ ÎÎÎÎÎ. ÎÎ ÏÏ ÎÎÏÎÎÏ, ÏÎ "
+"new_with_label_from_widget ÏÎ ÏÎÎÏÎÎÎ ÎÎÎÏÏ ÎÎÎ ÏÎÎ ÎÏÎÎÎÏÎ ÏÎÏ RadioButton "
+"ÏÎÏÏÏÏÏÎÎÎ."
 
-#: C/menubar.py.page:138(p)
+#: C/radiobutton.js.page:102(section/p)
 msgid ""
-"After creating the stateful SimpleAction we connect it to the callback "
-"function and we add it to the window (or the application, if it is the "
-"case), as before:"
+"The first RadioButton in a group is the one that's selected by default. Try "
+"uncommenting the last line in this sample code to see how you can set a "
+"different one to be the default selection."
 msgstr ""
-"ÎÎÏÎ ÏÎ ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ SimpleAction ÎÎ ÎÎÏÎÏÏÎÏÎ ÏÎ ÏÏÎÎÎÎÏÎÎ ÏÏÎ ÏÏÎÎÏÏÎÏÎ "
-"ÎÏÎÎÎÎÎÎÏÎÏ ÎÎÎ ÏÎÎ ÏÏÎÏÎÎÏÎÏÎÎ ÏÏÎ ÏÎÏÎÎÏÏÎ (Î ÏÎÎ ÎÏÎÏÎÎÎÎ, ÎÎÎ ÎÎÎÎÎ Î "
-"ÏÎÏÎÏÏÏÏÎ), ÏÏÏÏ ÏÏÎÎ:"
+"ÎÎ ÏÏÏÏÎ RadioButton ÏÎ ÎÎÎ ÎÎÎÎÎ ÎÎÎÎÎ ÎÏÏÏ ÏÎÏ ÎÏÎÎÎÎÎÏÎÎ ÎÏÏ ÏÏÎÎÏÎÎÎÎÎ. "
+"ÎÎÎÎÎÎÏÏÎ ÏÎÎ ÎÏÎÏÏÎÎÎÎÏÎ ÏÎÏ ÏÎÎÎÏÏÎÎÎÏ ÎÏÎÎÎÎÏ ÏÎ ÎÏÏÏ ÏÎ ÎÎÎÎÎÎ ÎÏÎÎÎÎ "
+"ÎÎÎ ÎÎ ÎÎÎÏÎ ÏÏÏ ÎÏÎÏÎÎÏÎ ÎÎ ÏÏÎÎÎÏÎÏÎ ÎÎÎ ÎÎÎÏÎÏÎÏÎÎÏ ÎÎ ÎÎÎÎÎ Î ÏÏÎÎÏÎÎÎÎÎ."
 
-#: C/menubar.py.page:140(code)
+#: C/radiobutton.js.page:104(section/code)
 #, no-wrap
 msgid ""
 "\n"
-"shape_action.connect(\"activate\", self.shape_callback)\n"
-"self.add_action(shape_action)"
+"        // Create a label for the second group of buttons\n"
+"        this._thingLabel = new Gtk.Label ({label: \"And what would you like to bring?\" });\n"
+"\n"
+"        // Create three more radio buttons\n"
+"        this._thing1 = new Gtk.RadioButton ({label: \"Penguins\" });\n"
+"        this._thing2 = new Gtk.RadioButton ({label: \"Sunscreen\", group: this._thing1 });\n"
+"        this._thing3 = new Gtk.RadioButton ({label: \"A spacesuit\", group: this._thing1 });\n"
 msgstr ""
 "\n"
-"shape_action.connect(\"activate\", self.shape_callback)\n"
-"self.add_action(shape_action)"
-
-#: C/menubar.py.page:152(title)
-msgid "Complete Python file for this example"
-msgstr "ÎÎ ÏÎÎÏÎÏ ÎÏÏÎÎÎ Python ÎÎÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ"
-
-#: C/menubar.py.page:156(title)
-msgid "Mnemonics and Accelerators"
-msgstr "ÎÎÎÎÎÎÎÎÎÏ ÎÎÎ ÎÏÎÏÎÏÏÎÏÎÏ"
+"        // Create a label for the second group of buttons\n"
+"        this._thingLabel = new Gtk.Label ({label: \"And what would you like to bring?\" });\n"
+"\n"
+"        // Create three more radio buttons\n"
+"        this._thing1 = new Gtk.RadioButton ({label: \"Penguins\" });\n"
+"        this._thing2 = new Gtk.RadioButton ({label: \"Sunscreen\", group: this._thing1 });\n"
+"        this._thing3 = new Gtk.RadioButton ({label: \"A spacesuit\", group: this._thing1 });\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/magic-mirror.vala.page:41(None)
-msgid "@@image: 'media/magic-mirror.png'; md5=8171faea6ed3b6ddac0da084c29e4e22"
+#: C/radiobutton.js.page:113(section/p)
+msgid ""
+"Here we create the label for the second group of buttons, and then create "
+"them all the same way."
 msgstr ""
-"@@image: 'media/magic-mirror.png'Â md5=8171faea6ed3b6ddac0da084c29e4e22"
+"ÎÎÏ ÎÎÎÎÎÏÏÎÎÏÎÎ ÏÎÎ ÎÏÎÎÎÏÎ ÎÎÎ ÏÎ ÎÎÏÏÎÏÎ ÎÎÎÎÎ ÎÎÏÎÏÎÏÎ ÎÎÎ ÎÏÎÎÏÎ ÏÎ "
+"ÎÎÎÎÎÏÏÎÎÏÎÎ ÏÎÎ ÎÎ ÏÎÎ ÎÎÎÎ ÏÏÏÏÎ."
 
-#: C/magic-mirror.vala.page:7(title)
-msgid "Magic Mirror (Vala)"
-msgstr "ÎÎÎÎÎÏÏ ÎÎÎÏÎÏÏÎÏ (Vala)"
+#: C/radiobutton.js.page:117(section/title)
+#: C/textview.js.page:131(section/title)
+msgid "Creating the rest of the user interface"
+msgstr "ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ ÏÏÏÎÎÎÏÎÏ ÎÎÎÏÎÏÎÏ ÏÏÎÏÏÎ"
 
-#: C/magic-mirror.vala.page:10(desc)
-msgid "Use your webcam as a mirror using the GStreamer framework and Gtk+"
+#: C/radiobutton.js.page:119(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"        // Create a stock OK button\n"
+"        this._okButton = new Gtk.Button ({\n"
+"            label: 'gtk-ok',\n"
+"            use_stock: 'true',\n"
+"            halign: Gtk.Align.END });\n"
+"\n"
+"        // Connect the button to the function which handles clicking it\n"
+"        this._okButton.connect ('clicked', Lang.bind (this, this._okClicked));\n"
 msgstr ""
-"ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ ÏÎ ÎÎÎÎÏÎ ÏÎÏ ÏÏ ÎÎÎÏÎÏÏÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎÎ ÏÎÎÎÎÏÏ "
-"GStreamer ÎÎÎ Gtk+"
-
-#: C/magic-mirror.vala.page:14(name)
-msgid "Daniel G. Siegel"
-msgstr "Daniel G. Siegel"
-
-#: C/magic-mirror.vala.page:15(email)
-msgid "dgsiegel gnome org"
-msgstr "dgsiegel gnome org"
-
-#: C/magic-mirror.vala.page:23(title)
-msgid "4 Magic Mirror"
-msgstr "4 ÎÎÎÎÎÏÏ ÎÎÎÏÎÏÏÎÏ"
+"\n"
+"        // Create a stock OK button\n"
+"        this._okButton = new Gtk.Button ({\n"
+"            label: 'gtk-ok',\n"
+"            use_stock: 'true',\n"
+"            halign: Gtk.Align.END });\n"
+"\n"
+"        // Connect the button to the function which handles clicking it\n"
+"        this._okButton.connect ('clicked', Lang.bind (this, this._okClicked));\n"
 
-#: C/magic-mirror.vala.page:26(em)
+#: C/radiobutton.js.page:129(section/p)
 msgid ""
-"Your mirror just fell off the wall and broke into a thousand pieces â but "
-"you need a mirror to shave your beard off or add some makeup! You only have "
-"15 minutes left before catching the bus to work. So what can you do?"
+"This code creates a <link xref=\"button.js\">Gtk.Button</link> and binds it "
+"to a function which will show people a silly message when they click OK, "
+"depending on which RadioButtons were selected."
 msgstr ""
-"Î ÎÎÎÏÎÏÏÎÏ ÏÎÏ ÎÏÎÎÏ ÎÏÎÏÎ ÎÏÏ ÏÎÎ ÏÎÎÏÎ ÎÎÎ ÎÏÏÎÏÎ ÏÎ ÏÎÎÎÎ ÎÎÎÎÎÏÎÎ - "
-"ÎÎÎÎ ÏÏÎÎÎÎÎÏÎÎ ÎÎÎÏ ÎÎÎÏÎÏÏÎÏ ÎÎ ÎÏÏÎÏÎÏÎ ÏÎ ÎÎÎÎÎÎÎÎ ÏÎÏ ÎÎÎ ÎÎ ÏÏÎÏÎÎÏÎÏÎ "
-"ÎÎÏÎÎÎ ÎÎÎÎÏÎÏÎÎÎ! ÎÎÏ ÎÏÎÎÎÎÎÏÎ 15 ÎÎÏÏÎ ÏÏÎÎ ÎÎ ÏÏÎÎÎÎÎÏÎ ÏÎ ÎÎÏÏÎÏÎÎÎ ÎÎÎ "
-"ÏÎ ÎÎÏÎÎÎÎ. ÎÎ ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÎÏÎ;"
+"ÎÏÏÏÏ Î ÎÏÎÎÎÎÏ ÎÎÎÎÎÏÏÎÎÎ ÎÎÎ <link xref=\"button.js\">Gtk.Button</link> "
+"ÎÎÎ ÏÎ ÏÏÎÎÎÎÎ ÎÎ ÎÎÎ ÏÏÎÎÏÏÎÏÎ ÏÎÏ ÎÎ ÎÎÏÎÎÎÏÎÎ ÏÏÎÏÏ ÎÎÎÎÏÏ ÎÎÎ ÏÎÎÏ "
+"ÎÎÎÏÎÎ ÏÏÎÎ ÏÎÏÎÏÎÏÎ ÎÎÏÎÎÎÎ, ÎÎÎÎÎÎÎ ÎÎ ÏÎ ÎÏÎÎÎÎÎÎÎÎ RadioButtons."
 
-#: C/magic-mirror.vala.page:27(p)
+#: C/radiobutton.js.page:130(section/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:"
+"To make sure the button's \"OK\" label shows up properly in every language "
+"that GNOME is translated into, remember to use one of Gtk's <link href="
+"\"http://developer.gnome.org/gtk/2.24/gtk-Stock-Items.html\";>stock button "
+"types</link>."
 msgstr ""
-"ÎÎ ÎÏÏÏÎ ÏÎÎ ÎÎÎÎÏ, ÎÎ ÏÏÎÎÎÎÏÎÎ ÎÎÎ ÏÏÏÎÏÎÎÎÎ ÏÎÏ ÎÏÎÏÏÎÏÎÎ ÏÎ ÏÏÎÏÎ ÏÎÏ "
-"ÎÏÏÎÎÎÎÎÏÎÏ ÏÎÏ ÏÏ ÎÎÎÏÎÏÏÎ. ÎÎ ÎÎÎÎÏÎ ÏÏÏ ÎÎ:"
-
-#: C/magic-mirror.vala.page:29(p)
-msgid "Create a GTK+ application"
-msgstr "ÎÎÎÎÎÏÏÎÎÏÎÏÎ ÎÎÎ ÎÏÎÏÎÎÎÎ ÏÎ GTK+"
+"ÎÎÎ ÎÎ ÎÎÎÎÎÏÎÎÎÏÎ ÏÏÎ Î ÎÏÎÎÎÏÎ ÏÎÏ ÎÎÏÎÏÎÎÏ \"OK\" ÎÎÏÎÎÎÎÎÏÎÎ ÎÎÏÎÎÎÎÎÎ "
+"ÏÎ ÎÎÎÎ ÎÎÏÏÏÎ ÏÏÎÎ ÎÏÎÎÎ ÎÎÏÎÏÏÎÎÎÏÎÎ ÏÎ GNOME, ÎÎ ÎÏÎÎÏÏÎ ÎÎ "
+"ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÎÎÎÎ ÎÏÏ ÏÎÏÏ <link href=\"http://developer.gnome.org/";
+"gtk/2.24/gtk-Stock-Items.html\">ÏÏÏÎÏÏ ÎÎÏÎÏÎÏÎ ÏÎÏÎÎÎÏÎÎÎÎÎÏ</link> ÏÎÏ Gtk."
 
-#: C/magic-mirror.vala.page:30(p)
-msgid "Access your webcam using GStreamer and embed the result into a window"
+#: C/radiobutton.js.page:132(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"        // Create a grid to put the \"place\" items in\n"
+"        this._places = new Gtk.Grid ();\n"
+"\n"
+"        // Attach the \"place\" items to the grid\n"
+"        this._places.attach (this._placeLabel, 0, 0, 1, 1);\n"
+"        this._places.attach (this._place1, 0, 1, 1, 1);\n"
+"        this._places.attach (this._place2, 0, 2, 1, 1);\n"
+"        this._places.attach (this._place3, 0, 3, 1, 1);\n"
+"\n"
+"        // Create a grid to put the \"thing\" items in\n"
+"        this._things = new Gtk.Grid ({ margin_top: 50 });\n"
+"\n"
+"        // Attach the \"thing\" items to the grid\n"
+"        this._things.attach (this._thingLabel, 0, 0, 1, 1);\n"
+"        this._things.attach (this._thing1, 0, 1, 1, 1);\n"
+"        this._things.attach (this._thing2, 0, 2, 1, 1);\n"
+"        this._things.attach (this._thing3, 0, 3, 1, 1);\n"
+"\n"
+"        // Create a grid to put everything in\n"
+"        this._grid = new Gtk.Grid ({\n"
+"            halign: Gtk.Align.CENTER,\n"
+"            valign: Gtk.Align.CENTER,\n"
+"            margin_left: 40,\n"
+"            margin_right: 50 });\n"
+"\n"
+"        // Attach everything to the grid\n"
+"        this._grid.attach (this._places, 0, 0, 1, 1);\n"
+"        this._grid.attach (this._things, 0, 1, 1, 1);\n"
+"        this._grid.attach (this._okButton, 0, 2, 1, 1);\n"
+"\n"
+"        // Add the grid to the window\n"
+"        this._window.add (this._grid);\n"
 msgstr ""
-"ÎÏÎÏÎ ÏÏÏÏÎÎÏÎ ÏÏÎÎ ÎÏÏÎÎÎÎÎÏÎ ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ GStreamer ÎÎÎ ÏÏÏ ÎÎ "
-"ÎÎÏÏÎÎÏÏÎÎÏÎ ÏÎ ÎÏÎÏÎÎÎÏÎÎ ÏÎ ÎÎÎ ÏÎÏÎÎÏÏÎ"
-
-#: C/magic-mirror.vala.page:31(p)
-msgid "Grab photos off your webcam"
-msgstr "ÎÎÏÎÏÎ ÏÏÏÎÎÏÎÏÎÎÏ ÎÎ ÏÎÎ ÎÏÏÎÎÎÎÎÏÎÏ ÏÎÏ"
+"\n"
+"        // Create a grid to put the \"place\" items in\n"
+"        this._places = new Gtk.Grid ();\n"
+"\n"
+"        // Attach the \"place\" items to the grid\n"
+"        this._places.attach (this._placeLabel, 0, 0, 1, 1);\n"
+"        this._places.attach (this._place1, 0, 1, 1, 1);\n"
+"        this._places.attach (this._place2, 0, 2, 1, 1);\n"
+"        this._places.attach (this._place3, 0, 3, 1, 1);\n"
+"\n"
+"        // Create a grid to put the \"thing\" items in\n"
+"        this._things = new Gtk.Grid ({ margin_top: 50 });\n"
+"\n"
+"        // Attach the \"thing\" items to the grid\n"
+"        this._things.attach (this._thingLabel, 0, 0, 1, 1);\n"
+"        this._things.attach (this._thing1, 0, 1, 1, 1);\n"
+"        this._things.attach (this._thing2, 0, 2, 1, 1);\n"
+"        this._things.attach (this._thing3, 0, 3, 1, 1);\n"
+"\n"
+"        // Create a grid to put everything in\n"
+"        this._grid = new Gtk.Grid ({\n"
+"            halign: Gtk.Align.CENTER,\n"
+"            valign: Gtk.Align.CENTER,\n"
+"            margin_left: 40,\n"
+"            margin_right: 50 });\n"
+"\n"
+"        // Attach everything to the grid\n"
+"        this._grid.attach (this._places, 0, 0, 1, 1);\n"
+"        this._grid.attach (this._things, 0, 1, 1, 1);\n"
+"        this._grid.attach (this._okButton, 0, 2, 1, 1);\n"
+"\n"
+"        // Add the grid to the window\n"
+"        this._window.add (this._grid);\n"
 
-#: C/magic-mirror.vala.page:33(p) C/image-viewer.vala.page:40(p)
-#: C/image-viewer.py.page:34(p) C/image-viewer.js.page:34(p)
-#: C/guitar-tuner.vala.page:35(p) C/guitar-tuner.py.page:32(p)
-#: C/guitar-tuner.cpp.page:30(p) C/guitar-tuner.c.page:32(p)
-msgid "You'll need the following to be able to follow this tutorial:"
+#: C/radiobutton.js.page:166(section/p)
+msgid ""
+"We use a separate <link xref=\"grid.js\">Gtk.Grid</link> to organize each "
+"group of radio buttons. This way we can change the layout with less fuss "
+"later on. The second Grid has a margin on top, to visually separate the two "
+"sets of choices."
 msgstr ""
-"ÎÎ ÏÏÎÎÎÏÏÎÎÏÎ ÏÎ ÏÎÏÎÎÎÏÏ ÎÎÎ ÎÎ ÎÏÎÏÎÏÎÏÎ ÎÎ ÎÎÎÎÎÏÎÎÏÎÏÎ ÎÏÏÏ ÏÎ ÎÎÎÎÎÎ:"
+"ÎÏÎÏÎÎÎÏÎÎÎÏÎÎ ÎÎÎ ÎÎÎÎÎÏÏÎÏÎ <link xref=\"grid.js\">Gtk.Grid</link> ÎÎÎ ÎÎ "
+"ÎÏÎÎÎÏÏÎÏÎÎ ÎÎÎÎ ÎÎÎÎÎ ÏÎÎÎÎÏÎÎÎÏÏÏÎ. ÎÎ ÎÏÏÏ ÏÎÎ ÏÏÏÏÎ ÎÏÎÏÎÏÎÎ ÎÎ "
+"ÎÎÎÎÎÎÏÎÎ ÏÎ ÎÎÎÏÎÎÎ ÎÎ ÎÎÎÏÏÎÏÎ ÎÎÎÏÏÎÏÏÏÎ ÎÏÎÏÏÎÏÎ. ÎÎ ÎÎÏÏÎÏÎ ÏÎÎÎÎÎ ÎÏÎÎ "
+"ÎÎÎ ÏÎÏÎÎÏÏÎÎ ÏÏÎÎ ÎÎÏÏÏÎ, ÎÎÎ ÎÏÏÎÎÎ ÎÎÎÎÏÎÏÎ ÏÏÎ ÎÏÎ ÏÏÎÏÎÏÎ ÎÏÎÎÎÎÏÎ."
 
-#: C/magic-mirror.vala.page:35(p) C/image-viewer.py.page:36(p)
-#: C/image-viewer.js.page:36(p) C/guitar-tuner.py.page:34(p)
-#: C/guitar-tuner.cpp.page:32(p) C/guitar-tuner.c.page:34(p)
-msgid "An installed copy of the <link xref=\"getting-ready\">Anjuta IDE</link>"
+#: C/radiobutton.js.page:167(section/p)
+msgid ""
+"After we've organized them, we put them into a third, master Grid, along "
+"with the OK button. Then we attach that to the window."
 msgstr ""
-"ÎÎÎ ÎÎÎÎÏÎÏÏÎÎÎÎÎ ÎÎÏÎÎÏÎÏÎ ÏÎÏ <link xref=\"getting-ready\">Anjuta IDE</"
-"link>"
-
-#: C/magic-mirror.vala.page:36(p)
-msgid "Installed copies of GTK, GStreamer, and a Vala compiler"
-msgstr "ÎÎÎÎÏÎÏÏÎÎÎÎÎ ÎÎÏÎÎÏÎÏÎ ÏÎÏ GTK, GStreamer ÎÎÎ ÎÎÎ ÎÎÏÎÎÎÏÏÏÎÏÏÎ Vala"
-
-#: C/magic-mirror.vala.page:37(p)
-msgid "Basic knowledge of an object-oriented programming language"
-msgstr "ÎÎÏÎÎÎ ÎÎÏÏÎ ÎÎÎÏ ÎÎÏÎÎÎÎÎÎÎÎÏÏÏÎÏÎÏÏ ÎÎÏÏÏÎÏ ÏÏÎÎÏÎÎÎÎÏÎÏÎÎÏ"
+"ÎÏÎÏ ÏÎ ÎÏÎÎÎÏÏÎÏÎÎ, ÏÎ ÎÎÎÎÏÎÎ ÏÎ ÎÎÎ ÏÏÎÏÎ, ÎÏÏÎÎ ÏÎÎÎÎÎ, ÎÎÎÎ ÎÎ ÏÎ "
+"ÎÎÏÎÏÎ ÎÎÏÎÎÎÎ. ÎÏÎÎÏÎ ÏÎ ÏÏÎÏÎÏÏÎÏÎÎ ÏÏÎ ÏÎÏÎÎÏÏÎ."
 
-#: C/magic-mirror.vala.page:51(p)
+#: C/radiobutton.js.page:175(section/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."
+"Finally, we tell the window and everything inside it to become visible when "
+"the application is run."
 msgstr ""
-"ÎÏÎÎÎÎÏÎ <gui>Gtk+ (ÎÏÎÏ)</gui> ÎÏÏ ÏÎÎ ÎÎÏÏÎÎÎ <gui>Vala</gui>, ÎÎÎÎ "
-"<gui>ÎÏÏÎÏÏÎ</gui>, ÎÎÎ ÏÏÎÏÎÎÏÏÏÏÎ ÏÎÏ ÎÎÏÏÎÎÎÏÎÎÎÏ ÏÎÏ ÏÏÎÏ ÎÏÏÎÎÎÎÏ ÎÎÎÎÏ "
-"ÏÎÎÎÎÎÏ. ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ ÏÏ ÏÎÎÎÎ ÏÎÏ ÎÏÎÎÏ ÎÎÎ ÏÎÏ ÎÎÏÎÎÏÎÎÏ ÏÎ <file>guitar-"
-"tuner</file>."
+"ÎÎÎÎÎÎ, ÎÎÎÎ ÏÏÎ ÏÎÏÎÎÏÏÎ ÎÎÎ ÏÎ ÎÎÎÎ ÏÎ ÏÎÏ ÎÎÎÎÎ ÎÎÏÎ ÏÎÏ ÎÎ ÎÎÎÎÎ ÎÏÎÏÏ "
+"ÏÏÎÎ ÏÏÎÏÎÎ Î ÎÏÎÏÎÎÎÎ."
 
-#: C/magic-mirror.vala.page:54(p)
+#: C/radiobutton.js.page:181(section/code)
+#, no-wrap
 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."
+"\n"
+"    _okClicked: function () {\n"
+"\n"
+"        // Create a popup that shows a silly message\n"
+"        this._travel = new Gtk.MessageDialog ({\n"
+"            transient_for: this._window,\n"
+"            modal: true,\n"
+"            message_type: Gtk.MessageType.OTHER,\n"
+"            buttons: Gtk.ButtonsType.OK,\n"
+"            text: this._messageText() });\n"
+"\n"
+"        // Show the popup\n"
+"        this._travel.show();\n"
+"\n"
+"        // Bind the OK button to the function that closes the popup\n"
+"        this._travel.connect (\"response\", Lang.bind (this, this._clearTravelPopUp));\n"
+"\n"
+"    },\n"
 msgstr ""
-"ÎÏÎÎÎÏÎÎÏÎÎÎÏÏÎ ÏÎ <gui>ÎÏÎÏÎ ÏÎÏ GtkBuilder ÎÎÎ ÎÎÎÏÎÏÎ ÏÏÎÏÎ</gui> ÎÏÎÎÎÎ "
-"ÎÎ ÏÏÎÎÎÎÏÎÎ ÏÎ ÎÎÎÏÎÏÎ ÏÏÎÏÏÎ ÏÎÎÏÎÎÎÎÎÏÎ ÏÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ. ÎÎÎÎÎÏÏÏÎ "
-"ÏÎ ÎÎÎÎÎÎ <link xref=\"guitar-tuner.vala\">ÏÏÎÎÎÏÏÎÏ ÎÎÎÎÏÎÏ</link> "
-"ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎÎ ÎÎÏÎÏÎÎÏÎÏÏÎ ÎÎÎÏÎÏÎÏ."
+"\n"
+"    _okClicked: function () {\n"
+"\n"
+"        // Create a popup that shows a silly message\n"
+"        this._travel = new Gtk.MessageDialog ({\n"
+"            transient_for: this._window,\n"
+"            modal: true,\n"
+"            message_type: Gtk.MessageType.OTHER,\n"
+"            buttons: Gtk.ButtonsType.OK,\n"
+"            text: this._messageText() });\n"
+"\n"
+"        // Show the popup\n"
+"        this._travel.show();\n"
+"\n"
+"        // Bind the OK button to the function that closes the popup\n"
+"        this._travel.connect (\"response\", Lang.bind (this, this._clearTravelPopUp));\n"
+"\n"
+"    },\n"
 
-#: C/magic-mirror.vala.page:59(p)
+#: C/radiobutton.js.page:200(section/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."
+"When you click OK, a <link xref=\"messagedialog.js\">Gtk.MessageDialog</"
+"link> appears. This function creates and displays the popup window, then "
+"binds its OK button to a function that closes it. What text appears in the "
+"popup depends on the _messageText() function, which returns a different "
+"value depending on which set of options you chose."
 msgstr ""
-"ÎÎÎÎÎÏÎÎÎÏÎ ÏÏÎ ÏÎ <gui>ÏÏÎÎÎÏÎ ÎÎÏÏÎÏÎÎÏÎ ÏÎÎÎÏÏÎ</gui> ÎÏÎÎÎÏÏÎÎÎ. ÎÏÎÎ "
-"ÎÏÏÎÎÎÎ ÏÎÎÎÎÎ, ÎÏÎÎÎÎÏÎ <em>gstreamer-0.10</em> ÎÏÏ ÏÎ ÎÎÏÏÎ ÎÎÎ "
-"ÏÏÎÏÎÏÎÎÎÏÎ ÏÎÏ ÎÎÎÎÎÎÎÎÎÎÏ <app>GStreamer</app> ÏÏÎ ÎÏÎÎ ÏÎÏ."
+"ÎÏÎÎ ÏÎÏÎÏÎ ÎÎÏÎÎÎÎ, ÎÎÎÏ <link xref=\"messagedialog.js\">Gtk.MessageDialog</"
+"link> ÎÎÏÎÎÎÎÎÏÎÎ. ÎÏÏÎ Î ÏÏÎÎÏÏÎÏÎ ÎÎÎÎÎÏÏÎÎÎ ÎÎÎ ÎÎÏÎÎÎÎÎÎ ÏÎ ÎÎÎÎÏÏÎÎÎÎ "
+"ÏÎÏÎÎÏÏÎ, ÎÏÎÎÏÎ ÏÏÎÎÎÎÎ ÏÎ ÎÎÏÎÏÎ ÏÎÏ ÎÎÏÎÎÎÎ ÎÎ ÏÎ ÏÏÎÎÏÏÎÏÎ ÏÎÏ ÏÎ "
+"ÎÎÎÎÎÎÎ. ÎÎ ÎÎÎÎÎÎÎ ÎÎÏÎÎÎÎÎÏÎÎ ÏÏÎ ÎÎÎÎÏÏÎÎÎÎ ÎÎÎÏÏÎÏÎÎ ÎÏÏ ÏÎ ÏÏÎÎÏÏÎÏÎ "
+"_messageText(), ÏÎÏ ÎÏÎÏÏÏÎÏÎÎ ÎÎÎ ÎÎÎÏÎÏÎÏÎÎÎ ÏÎÎÎ ÎÎÎÎÎÎÎ ÎÎ ÏÎ ÏÏÎÎÎÎ "
+"ÎÏÎÎÎÎÏÎ ÏÎÏ ÎÎÎÎÎÎÎÏÎ."
 
-#: C/magic-mirror.vala.page:63(p)
+#: C/radiobutton.js.page:202(section/code)
+#, no-wrap
 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:"
+"\n"
+"    _messageText: function() {\n"
+"\n"
+"        // Create a silly message for the popup depending on what you selected\n"
+"        var stringMessage = \"\";\n"
+"\n"
+"        if (this._place1.get_active()) {\n"
+"\n"
+"            if (this._thing1.get_active())\n"
+"                stringMessage = \"Penguins love the beach, too!\";\n"
+"\n"
+"            else if (this._thing2.get_active())\n"
+"                stringMessage = \"Make sure to put on that sunscreen!\";\n"
+"\n"
+"            else stringMessage = \"Are you going to the beach in space?\";\n"
+"\n"
+"        }\n"
+"\n"
+"        else if (this._place2.get_active()) {\n"
+"\n"
+"            if (this._thing1.get_active())\n"
+"                stringMessage = \"The penguins will take over the moon!\";\n"
+"\n"
+"            else if (this._thing2.get_active())\n"
+"                stringMessage = \"A lack of sunscreen will be the least of your problems!\";\n"
+"\n"
+"            else stringMessage = \"You'll probably want a spaceship, too!\";\n"
+"        }\n"
+"\n"
+"        else if (this._place3.get_active()) {\n"
+"\n"
+"            if (this._thing1.get_active())\n"
+"                stringMessage = \"The penguins will be happy to be back home!\";\n"
+"\n"
+"            else if (this._thing2.get_active())\n"
+"                stringMessage = \"Antarctic sunbathing may be hazardous to your health!\";\n"
+"\n"
+"            else stringMessage = \"Try bringing a parka instead!\";\n"
+"        }\n"
+"\n"
+"        return stringMessage;\n"
+"\n"
+"    },\n"
 msgstr ""
-"ÎÎÏÎÏÏÎ <gui>ÎÏÎÏÎÎÎÎ</gui> ÎÎÎ ÏÎ ÎÏÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎÎÎÎ. ÎÎÎÎÎÏÎ <file>src/"
-"magic_mirror.vala</file> ÎÏÏ ÏÎÏ ÎÎÏÏÎÎÎÏ <gui>ÎÏÎÎ</gui> Î <gui>ÎÏÏÎÎÎ</"
-"gui>. ÎÎ ÏÏÎÏÎÎ ÎÎ ÎÎÎÏÎ ÎÎÏÎÎÎ ÎÏÎÎÎÎ ÏÎÏ ÎÎÎÎÎÎ ÎÎ ÏÎÏ ÎÏÎÎÎÎÏ:"
+"\n"
+"    _messageText: function() {\n"
+"\n"
+"        // Create a silly message for the popup depending on what you selected\n"
+"        var stringMessage = \"\";\n"
+"\n"
+"        if (this._place1.get_active()) {\n"
+"\n"
+"            if (this._thing1.get_active())\n"
+"                stringMessage = \"Penguins love the beach, too!\";\n"
+"\n"
+"            else if (this._thing2.get_active())\n"
+"                stringMessage = \"Make sure to put on that sunscreen!\";\n"
+"\n"
+"            else stringMessage = \"Are you going to the beach in space?\";\n"
+"\n"
+"        }\n"
+"\n"
+"        else if (this._place2.get_active()) {\n"
+"\n"
+"            if (this._thing1.get_active())\n"
+"                stringMessage = \"The penguins will take over the moon!\";\n"
+"\n"
+"            else if (this._thing2.get_active())\n"
+"                stringMessage = \"A lack of sunscreen will be the least of your problems!\";\n"
+"\n"
+"            else stringMessage = \"You'll probably want a spaceship, too!\";\n"
+"        }\n"
+"\n"
+"        else if (this._place3.get_active()) {\n"
+"\n"
+"            if (this._thing1.get_active())\n"
+"                stringMessage = \"The penguins will be happy to be back home!\";\n"
+"\n"
+"            else if (this._thing2.get_active())\n"
+"                stringMessage = \"Antarctic sunbathing may be hazardous to your health!\";\n"
+"\n"
+"            else stringMessage = \"Try bringing a parka instead!\";\n"
+"        }\n"
+"\n"
+"        return stringMessage;\n"
+"\n"
+"    },\n"
 
-#: C/magic-mirror.vala.page:72(title) C/image-viewer.vala.page:107(title)
-#: C/image-viewer.cpp.page:60(title) C/image-viewer.c.page:60(title)
-#: C/guitar-tuner.vala.page:68(title) C/guitar-tuner.cpp.page:63(title)
-#: C/guitar-tuner.c.page:65(title)
-msgid "Build the code for the first time"
-msgstr "ÎÎÏÎÏÎÎÏÎÏÏÎ ÏÎÎ ÎÏÎÎÎÎ ÎÎÎ ÏÏÏÏÎ ÏÎÏÎ"
+#: C/radiobutton.js.page:246(section/p)
+msgid ""
+"The get_active() method is how we can tell which RadioButton's pressed in. "
+"This function returns a different silly message depending on which set of "
+"buttons was pressed. Its return value is used as the MessageDialog's text "
+"property."
+msgstr ""
+"Î ÎÎÎÎÎÎÏ get_active() ÎÎÎÎ ÏÏÏ ÎÏÎÏÎÏÎÎ ÎÎ ÏÎÏÎÎ ÏÎÎÎ RadioButton ÏÎÏÎÎÏÎÎ. "
+"ÎÏÏÎ Î ÏÏÎÎÏÏÎÏÎ ÎÏÎÏÏÏÎÏÎÎ ÎÎÎ ÎÎÎÏÎÏÎÏÎÎÏ ÏÎÎÏ ÎÎÎÏÎÎ ÎÎÎÎÎÎÎ ÎÎ ÏÎÎÎ "
+"ÏÏÎÎÎÎ ÎÎÏÎÏÎÏÎ ÏÎÏÎÎÎÎÎ. Î ÎÏÎÏÏÏÎÏÏÎÎÎÎ ÏÎÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÏÏ ÎÎÎÏÏÎÏÎ "
+"ÎÎÎÎÎÎÎÏ ÏÎÏ MessageDialog."
 
-#: C/magic-mirror.vala.page:73(p)
+#: C/radiobutton.js.page:248(section/code)
+#, no-wrap
 msgid ""
-"The code loads an (empty) window and shows it. More details are given below; "
-"skip this list if you understand the basics:"
+"\n"
+"    _clearTravelPopUp: function () {\n"
+"\n"
+"        this._travel.destroy();\n"
+"\n"
+"    }\n"
+"\n"
+"});\n"
 msgstr ""
-"Î ÎÏÎÎÎÎÏ ÏÎÏÏÏÎÎÎ ÎÎÎ (ÎÎÎÏ) ÏÎÏÎÎÏÏÎ ÎÎÎ ÏÎ ÎÎÏÎÎÎÎÎÎ. ÎÎÏÎÏÏÏÏÎÏÎÏ "
-"ÏÎÎÏÎÏÎÏÎÎÏ ÏÏÎÏÏÎÏÎ ÏÎÎ ÎÎÏÏÂ ÏÏÎÏÏÎÏÎÏÏÎ ÎÏÏÎ ÏÎ ÎÎÏÏÎ ÎÎ ÎÎÏÎÎÎÎÎÎÎÎÏÎ ÏÎ "
-"ÎÎÏÎÎÎ:"
+"\n"
+"    _clearTravelPopUp: function () {\n"
+"\n"
+"        this._travel.destroy();\n"
+"\n"
+"    }\n"
+"\n"
+"});\n"
 
-#: C/magic-mirror.vala.page:76(p) C/guitar-tuner.vala.page:73(p)
+#: C/radiobutton.js.page:257(section/p)
 msgid ""
-"The two <code>using</code> lines import namespaces so we don't have to name "
-"them explicitly."
+"This function is called when the MessageDialog's OK button is pressed. It "
+"simply makes the popup go away."
 msgstr ""
-"ÎÎ ÎÏÎ ÎÏÎÎÎÎÏ <code>using</code> ÎÎÏÎÎÎÏÎ ÏÏÏÎÏÏ ÎÎÎÎÎÏÏÎ ÎÏÏÎ ÏÏÏÎ ÎÎ ÎÎÎ "
-"ÏÎÏÏ ÎÎÎÎÎÏÎÏÎÎ ÏÎÏÎ."
+"ÎÏÏÎ Î ÏÏÎÎÏÏÎÏÎ ÎÎÎÎÎÏÎÎ ÏÏÎÎ ÏÎ ÎÎÏÎÏÎ ÎÎÏÎÎÎÎ ÏÎÏ MessageDialog ÏÎÏÎÎÏÎÎ. "
+"ÎÎÎÎÎ ÎÏÎÎ ÏÎ ÎÎÎÎÏÏÎÎÎÎ ÎÎ ÏÏÎÎÎ."
 
-#: C/magic-mirror.vala.page:79(p)
+#: C/radiobutton.js.page:259(section/code)
+#, no-wrap
 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."
+"\n"
+"// Run the application\n"
+"let app = new RadioButtonExample ();\n"
+"app.application.run (ARGV);\n"
 msgstr ""
-"Î ÎÎÏÎÏÎÎÏÎÏÏÎÏ ÏÎÏ ÎÎÎÏÎÏ <code>Main</code> ÎÎÎÎÎÏÏÎÎÎ ÎÎÎ ÎÎÎ ÏÎÏÎÎÏÏÎ ÎÎÎ "
-"ÎÏÎÎÎÎ ÏÎÎ ÏÎÏÎÎ ÏÎÏ. ÎÎÏÏÏÎÎ ÎÎÏÎÎÎÎÎÏÎÎ ÏÎ ÏÎÏÎÎÏÏÎ ÎÎÎ ÎÎÎ ÏÎÎÎ ÏÏÎÎÎÎÏÎÎ "
-"ÏÎÏ ÎÎÎÎÏÎÎÎÎÏÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ, ÎÎÎ ÏÎ ÏÎÏÎÎÏÏÎ ÎÎÎÎÏÎÎ. ÎÎÏÎÏÏÏÏÎÏÎ ÎÎÎ ÏÎ "
-"ÏÎÎÎÏÎ ÎÏÎÏÏÎÏÎ."
+"\n"
+"// Run the application\n"
+"let app = new RadioButtonExample ();\n"
+"app.application.run (ARGV);\n"
 
-#: C/magic-mirror.vala.page:83(p)
+#: C/radiobutton.js.page:264(section/p) C/togglebutton.js.page:143(section/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)."
+"Finally, we create a new instance of the finished RadioButtonExample class, "
+"and set the application running."
 msgstr ""
-"Î ÏÏÎÏÎÎÎ ÏÏÎÎÏÏÎÏÎ <code>main</code> ÏÏÎÏÎÎ ÎÏÏ ÏÏÎÎÏÎÎÎÎÎ ÏÏÎÎ ÎÎÎÎÎÎÏÎ "
-"ÎÎÎ ÎÏÎÏÎÎÎÎ Vala. ÎÎÎÎÎ ÎÎÎÎÏ ÏÏÎÎÏÏÎÏÎÎÏ ÏÎÏ ÎÎÎÎÎÏÏÎÎÏÎ ÏÎÎ ÎÏÏÎÎ ÎÎÎÏÎ, "
-"ÏÏÎÎÎÎÎÏÎ ÎÎÎ ÎÏÎÎÏÎ ÎÎÏÎÎÎÏÎ ÏÎÎ ÎÏÎÏÎÎÎÎ. Î ÏÏÎÎÏÏÎÏÎ <code>Gtk.Main</"
-"code> ÎÎÎÎÎÎ ÏÎÎ ÎÏÏÎÎ ÎÏÏÏÎ ÏÎÏ GTK, ÏÎÏ ÎÎÏÎÎÎÎ ÏÎ ÎÎÎÏÎÏÎ ÏÏÎÏÏÎ ÎÎÎ "
-"ÎÎÎÎÎÎ ÏÎÎ ÎÎÏÏÎÏÎ ÎÎÎ ÏÏÎÎÎÎÏÎ (ÏÏÏÏ ÎÎÎÎ ÎÎÎ ÏÎÏÎÎÎÏÎ ÏÎÎÎÏÏÎÏ)."
+"ÎÎÎÎÎÎ, ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ ÏÎÏ ÏÎÎÎÎÏÎÎÎÎÏ ÎÎÎÏÎÏ "
+"RadioButtonExample ÎÎÎ ÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ."
 
-#: C/magic-mirror.vala.page:87(p) C/image-viewer.vala.page:127(p)
-#: C/image-viewer.cpp.page:76(p) C/image-viewer.c.page:79(p)
-#: C/guitar-tuner.cpp.page:78(p) C/guitar-tuner.c.page:84(p)
+#: C/radiobutton.js.page:269(section/code)
+#, no-wrap
 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>)."
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gio = imports.gi.Gio;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"const RadioButtonExample = new Lang.Class({\n"
+"    Name: 'RadioButton Example',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application({\n"
+"            application_id: 'org.example.jsradiobutton',\n"
+"            flags: Gio.ApplicationFlags.FLAGS_NONE\n"
+"        });\n"
+"\n"
+"    // Connect 'activate' and 'startup' signals to the callback functions\n"
+"    this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"    this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents window when active\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function() {\n"
+"        this._buildUI ();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function() {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            border_width: 20,\n"
+"            title: \"Travel Planning\"});\n"
+"\n"
+"        // Create a label for the first group of buttons\n"
+"        this._placeLabel = new Gtk.Label ({label: \"Where would you like to travel to?\"});\n"
+"\n"
+"        // Create three radio buttons three different ways\n"
+"        this._place1 = new Gtk.RadioButton ({label: \"The Beach\"});\n"
+"\n"
+"        this._place2 = Gtk.RadioButton.new_from_widget (this._place1);\n"
+"        this._place2.set_label (\"The Moon\");\n"
+"\n"
+"        this._place3 = Gtk.RadioButton.new_with_label_from_widget (this._place1, \"Antarctica\");\n"
+"        // this._place3.set_active (true);\n"
+"\n"
+"        // Create a label for the second group of buttons\n"
+"        this._thingLabel = new Gtk.Label ({label: \"And what would you like to bring?\" });\n"
+"\n"
+"        // Create three more radio buttons\n"
+"        this._thing1 = new Gtk.RadioButton ({label: \"Penguins\" });\n"
+"        this._thing2 = new Gtk.RadioButton ({label: \"Sunscreen\", group: this._thing1 });\n"
+"        this._thing3 = new Gtk.RadioButton ({label: \"A spacesuit\", group: this._thing1 });\n"
+"\n"
+"        // Create a stock OK button\n"
+"        this._okButton = new Gtk.Button ({\n"
+"            label: 'gtk-ok',\n"
+"            use_stock: 'true',\n"
+"            halign: Gtk.Align.END });\n"
+"\n"
+"        // Connect the button to the function which handles clicking it\n"
+"        this._okButton.connect ('clicked', Lang.bind (this, this._okClicked));\n"
+"\n"
+"        // Create a grid to put the \"place\" items in\n"
+"        this._places = new Gtk.Grid ();\n"
+"\n"
+"        // Attach the \"place\" items to the grid\n"
+"        this._places.attach (this._placeLabel, 0, 0, 1, 1);\n"
+"        this._places.attach (this._place1, 0, 1, 1, 1);\n"
+"        this._places.attach (this._place2, 0, 2, 1, 1);\n"
+"        this._places.attach (this._place3, 0, 3, 1, 1);\n"
+"\n"
+"        // Create a grid to put the \"thing\" items in\n"
+"        this._things = new Gtk.Grid ({ margin_top: 50 });\n"
+"\n"
+"        // Attach the \"thing\" items to the grid\n"
+"        this._things.attach (this._thingLabel, 0, 0, 1, 1);\n"
+"        this._things.attach (this._thing1, 0, 1, 1, 1);\n"
+"        this._things.attach (this._thing2, 0, 2, 1, 1);\n"
+"        this._things.attach (this._thing3, 0, 3, 1, 1);\n"
+"\n"
+"        // Create a grid to put everything in\n"
+"        this._grid = new Gtk.Grid ({\n"
+"            halign: Gtk.Align.CENTER,\n"
+"            valign: Gtk.Align.CENTER,\n"
+"            margin_left: 40,\n"
+"            margin_right: 50 });\n"
+"\n"
+"        // Attach everything to the grid\n"
+"        this._grid.attach (this._places, 0, 0, 1, 1);\n"
+"        this._grid.attach (this._things, 0, 1, 1, 1);\n"
+"        this._grid.attach (this._okButton, 0, 2, 1, 1);\n"
+"\n"
+"        // Add the grid to the window\n"
+"        this._window.add (this._grid);\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    _okClicked: function () {\n"
+"\n"
+"        // Create a popup that shows a silly message\n"
+"        this._travel = new Gtk.MessageDialog ({\n"
+"            transient_for: this._window,\n"
+"            modal: true,\n"
+"            message_type: Gtk.MessageType.OTHER,\n"
+"            buttons: Gtk.ButtonsType.OK,\n"
+"            text: this._messageText() });\n"
+"\n"
+"        // Show the popup\n"
+"        this._travel.show();\n"
+"\n"
+"        // Bind the OK button to the function that closes the popup\n"
+"        this._travel.connect (\"response\", Lang.bind (this, this._clearTravelPopUp));\n"
+"\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    _messageText: function() {\n"
+"\n"
+"        // Create a silly message for the popup depending on what you selected\n"
+"        var stringMessage = \"\";\n"
+"\n"
+"        if (this._place1.get_active()) {\n"
+"\n"
+"            if (this._thing1.get_active())\n"
+"                stringMessage = \"Penguins love the beach, too!\";\n"
+"\n"
+"            else if (this._thing2.get_active())\n"
+"                stringMessage = \"Make sure to put on that sunscreen!\";\n"
+"\n"
+"            else stringMessage = \"Are you going to the beach in space?\";\n"
+"\n"
+"        }\n"
+"\n"
+"        else if (this._place2.get_active()) {\n"
+"\n"
+"            if (this._thing1.get_active())\n"
+"                stringMessage = \"The penguins will take over the moon!\";\n"
+"\n"
+"            else if (this._thing2.get_active())\n"
+"                stringMessage = \"A lack of sunscreen will be the least of your problems!\";\n"
+"\n"
+"            else stringMessage = \"You'll probably want a spaceship, too!\";\n"
+"        }\n"
+"\n"
+"        else if (this._place3.get_active()) {\n"
+"\n"
+"            if (this._thing1.get_active())\n"
+"                stringMessage = \"The penguins will be happy to be back home!\";\n"
+"\n"
+"            else if (this._thing2.get_active())\n"
+"                stringMessage = \"Antarctic sunbathing may be hazardous to your health!\";\n"
+"\n"
+"            else stringMessage = \"Try bringing a parka instead!\";\n"
+"        }\n"
+"\n"
+"        return stringMessage;\n"
+"\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"\n"
+"    _clearTravelPopUp: function () {\n"
+"\n"
+"        this._travel.destroy();\n"
+"\n"
+"    }\n"
+"\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new RadioButtonExample ();\n"
+"app.application.run (ARGV);\n"
 msgstr ""
-"ÎÏÏÏÏ Î ÎÏÎÎÎÎÏ ÎÎÎÎÎ ÎÏÎÎÎÎÏ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÎÎ, ÎÏÏÏÎ ÎÏÎÏÎÎÏÎ ÎÎ ÏÎÎ "
-"ÎÎÏÎÎÎÏÏÏÎÏÎÏÎ ÎÎ ÎÎÎÎ <guiseq><gui>ÎÎÏÎÏÎÎÏÎ</gui><gui>ÎÎÏÎÏÎÎÏÎ ÎÏÎÎÏ</"
-"gui></guiseq> (Î ÏÎÎÎÎÎÏÎÏ <keyseq><key>Shift</key><key>F7</key></keyseq>)."
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gio = imports.gi.Gio;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"const RadioButtonExample = new Lang.Class({\n"
+"    Name: 'RadioButton Example',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application({\n"
+"            application_id: 'org.example.jsradiobutton',\n"
+"            flags: Gio.ApplicationFlags.FLAGS_NONE\n"
+"        });\n"
+"\n"
+"    // Connect 'activate' and 'startup' signals to the callback functions\n"
+"    this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"    this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents window when active\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function() {\n"
+"        this._buildUI ();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function() {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            border_width: 20,\n"
+"            title: \"Travel Planning\"});\n"
+"\n"
+"        // Create a label for the first group of buttons\n"
+"        this._placeLabel = new Gtk.Label ({label: \"Where would you like to travel to?\"});\n"
+"\n"
+"        // Create three radio buttons three different ways\n"
+"        this._place1 = new Gtk.RadioButton ({label: \"The Beach\"});\n"
+"\n"
+"        this._place2 = Gtk.RadioButton.new_from_widget (this._place1);\n"
+"        this._place2.set_label (\"The Moon\");\n"
+"\n"
+"        this._place3 = Gtk.RadioButton.new_with_label_from_widget (this._place1, \"Antarctica\");\n"
+"        // this._place3.set_active (true);\n"
+"\n"
+"        // Create a label for the second group of buttons\n"
+"        this._thingLabel = new Gtk.Label ({label: \"And what would you like to bring?\" });\n"
+"\n"
+"        // Create three more radio buttons\n"
+"        this._thing1 = new Gtk.RadioButton ({label: \"Penguins\" });\n"
+"        this._thing2 = new Gtk.RadioButton ({label: \"Sunscreen\", group: this._thing1 });\n"
+"        this._thing3 = new Gtk.RadioButton ({label: \"A spacesuit\", group: this._thing1 });\n"
+"\n"
+"        // Create a stock OK button\n"
+"        this._okButton = new Gtk.Button ({\n"
+"            label: 'gtk-ok',\n"
+"            use_stock: 'true',\n"
+"            halign: Gtk.Align.END });\n"
+"\n"
+"        // Connect the button to the function which handles clicking it\n"
+"        this._okButton.connect ('clicked', Lang.bind (this, this._okClicked));\n"
+"\n"
+"        // Create a grid to put the \"place\" items in\n"
+"        this._places = new Gtk.Grid ();\n"
+"\n"
+"        // Attach the \"place\" items to the grid\n"
+"        this._places.attach (this._placeLabel, 0, 0, 1, 1);\n"
+"        this._places.attach (this._place1, 0, 1, 1, 1);\n"
+"        this._places.attach (this._place2, 0, 2, 1, 1);\n"
+"        this._places.attach (this._place3, 0, 3, 1, 1);\n"
+"\n"
+"        // Create a grid to put the \"thing\" items in\n"
+"        this._things = new Gtk.Grid ({ margin_top: 50 });\n"
+"\n"
+"        // Attach the \"thing\" items to the grid\n"
+"        this._things.attach (this._thingLabel, 0, 0, 1, 1);\n"
+"        this._things.attach (this._thing1, 0, 1, 1, 1);\n"
+"        this._things.attach (this._thing2, 0, 2, 1, 1);\n"
+"        this._things.attach (this._thing3, 0, 3, 1, 1);\n"
+"\n"
+"        // Create a grid to put everything in\n"
+"        this._grid = new Gtk.Grid ({\n"
+"            halign: Gtk.Align.CENTER,\n"
+"            valign: Gtk.Align.CENTER,\n"
+"            margin_left: 40,\n"
+"            margin_right: 50 });\n"
+"\n"
+"        // Attach everything to the grid\n"
+"        this._grid.attach (this._places, 0, 0, 1, 1);\n"
+"        this._grid.attach (this._things, 0, 1, 1, 1);\n"
+"        this._grid.attach (this._okButton, 0, 2, 1, 1);\n"
+"\n"
+"        // Add the grid to the window\n"
+"        this._window.add (this._grid);\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    _okClicked: function () {\n"
+"\n"
+"        // Create a popup that shows a silly message\n"
+"        this._travel = new Gtk.MessageDialog ({\n"
+"            transient_for: this._window,\n"
+"            modal: true,\n"
+"            message_type: Gtk.MessageType.OTHER,\n"
+"            buttons: Gtk.ButtonsType.OK,\n"
+"            text: this._messageText() });\n"
+"\n"
+"        // Show the popup\n"
+"        this._travel.show();\n"
+"\n"
+"        // Bind the OK button to the function that closes the popup\n"
+"        this._travel.connect (\"response\", Lang.bind (this, this._clearTravelPopUp));\n"
+"\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    _messageText: function() {\n"
+"\n"
+"        // Create a silly message for the popup depending on what you selected\n"
+"        var stringMessage = \"\";\n"
+"\n"
+"        if (this._place1.get_active()) {\n"
+"\n"
+"            if (this._thing1.get_active())\n"
+"                stringMessage = \"Penguins love the beach, too!\";\n"
+"\n"
+"            else if (this._thing2.get_active())\n"
+"                stringMessage = \"Make sure to put on that sunscreen!\";\n"
+"\n"
+"            else stringMessage = \"Are you going to the beach in space?\";\n"
+"\n"
+"        }\n"
+"\n"
+"        else if (this._place2.get_active()) {\n"
+"\n"
+"            if (this._thing1.get_active())\n"
+"                stringMessage = \"The penguins will take over the moon!\";\n"
+"\n"
+"            else if (this._thing2.get_active())\n"
+"                stringMessage = \"A lack of sunscreen will be the least of your problems!\";\n"
+"\n"
+"            else stringMessage = \"You'll probably want a spaceship, too!\";\n"
+"        }\n"
+"\n"
+"        else if (this._place3.get_active()) {\n"
+"\n"
+"            if (this._thing1.get_active())\n"
+"                stringMessage = \"The penguins will be happy to be back home!\";\n"
+"\n"
+"            else if (this._thing2.get_active())\n"
+"                stringMessage = \"Antarctic sunbathing may be hazardous to your health!\";\n"
+"\n"
+"            else stringMessage = \"Try bringing a parka instead!\";\n"
+"        }\n"
+"\n"
+"        return stringMessage;\n"
+"\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"\n"
+"    _clearTravelPopUp: function () {\n"
+"\n"
+"        this._travel.destroy();\n"
+"\n"
+"    }\n"
+"\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new RadioButtonExample ();\n"
+"app.application.run (ARGV);\n"
 
-#: C/magic-mirror.vala.page:88(p) C/image-viewer.vala.page:128(p)
+#: C/radiobutton.js.page:277(item/p) C/statusbar.js.page:224(item/p)
+#: C/textview.js.page:251(item/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."
+"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.Button.html";
+"\">Gtk.Button</link>"
 msgstr ""
-"ÎÎÎÎÎÎ ÏÎÏ <gui>ÏÏÎÎÎÏÎÏ</gui> ÏÎ <gui>ÏÏÎÎÏÎÎÎÎÎ</gui> ÎÎÎ ÏÏÏÎ ÏÎÏÎÎÎ "
-"<gui>ÎÎÏÎÎÎÏÎ</gui> ÎÎÎ ÏÏÎÎÎÏÎ ÏÎÏ ÎÎÏÎÎÏÎÎÏ ÎÎÏÎÏÎÎÏÎÏ. ÎÏÎÎÎÎÎÏÎÎ ÎÎ ÏÎ "
-"ÎÎÎÎÏÎ ÎÏÎÎ ÎÎÎ ÏÎÏÎ, ÎÎÎ ÏÎÎ ÏÏÏÏÎ ÎÎÏÎÏÎÎÏÎ."
-
-#: C/magic-mirror.vala.page:92(title)
-msgid "Access the webcam video stream with GStreamer"
-msgstr "ÎÏÏÏÎÎÏÎ ÏÏÎ ÏÎÎ ÎÎÎÏÎÎ ÏÎÏ ÎÎÎÎÏÎÏ web ÎÎ ÏÎ GStreamer"
+"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.Button.html";
+"\">Gtk.Button</link>"
 
-#: C/magic-mirror.vala.page:93(p)
+#: C/radiobutton.js.page:278(item/p) C/scale.js.page:212(item/p)
+#: C/spinbutton.js.page:203(item/p) C/switch.js.page:269(item/p)
+#: C/textview.js.page:252(item/p) C/togglebutton.js.page:156(item/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."
+"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.Grid.html";
+"\">Gtk.Grid</link>"
 msgstr ""
-"Î ÏÎÎÎÎÏÏÏ ÏÎÎÏÎÎÏÏÎ GStreamer ÎÎÎÎÎ ÎÎÎÎÏÏ ÏÏÎ ÏÎÎÏÎÏÎÏ ÎÎÎÏÎÎ ÎÏÏ "
-"ÎÏÏÎÎÎÎÎÏÎÏ. ÎÏ ÏÏÎÏÎÎÏÎÏÎÎ ÏÎ GStreamer ÏÏÎÎ ÎÏÎÏÎÎÎÎ ÎÎÏ ÎÎÎ ÎÏÏÎ ÎÏÎÏÎÏÎÎ "
-"ÎÎ ÏÏÎÏÏÎÎÎÏÎÏÎÎ ÏÎ ÏÎÏÎÎ ÎÎÎÏÎÎ."
+"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.Grid.html";
+"\">Gtk.Grid</link>"
 
-#: C/magic-mirror.vala.page:120(p)
+#: C/radiobutton.js.page:279(item/p) C/scale.js.page:213(item/p)
+#: C/spinbutton.js.page:204(item/p) C/switch.js.page:271(item/p)
+#: C/textview.js.page:253(item/p)
 msgid ""
-"First we remove the window we created before because GStreamer will take "
-"care of showing the picture on screen."
+"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.Label.html";
+"\">Gtk.Label</link>"
 msgstr ""
-"ÎÏÏÏÎ ÎÏ ÎÏÎÎÏÎÏÎÏÎÎ ÏÎ ÏÎÏÎÎÏÏÎ ÏÎÏ ÎÎÎÎÎÏÏÎÎÏÎÎÎ ÏÏÎÎ ÎÏÎÎÎÎ ÏÎ GStreamer "
-"ÎÎ ÏÏÎÎÏÎÏÎÎ ÏÎÎ ÎÎÏÎÎÎÏÎ ÏÎÏ ÎÎÎÏÎÎÏ ÏÏÎÎ ÎÎÏÎÎ."
+"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.Label.html";
+"\">Gtk.Label</link>"
 
-#: C/magic-mirror.vala.page:124(p)
+#: C/radiobutton.js.page:280(item/p) C/textview.js.page:254(item/p)
 msgid ""
-"Now we are creating a GStreamer element which accesses our webcam. We are "
-"using the Camerabin element, which is an all-in-one camera element and is "
-"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?"
+"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.RadioButton.";
+"html\">Gtk.RadioButton</link>"
 msgstr ""
-"ÎÏÏÎ ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ ÏÏÎÎÏÎÎÎ GStreamer ÏÎÏ ÏÏÎÏÏÎÎÎÎÎÎ ÏÎÎ ÎÏÏÎÎÎÎÎÏÎ ÎÎÏ. "
-"ÎÏÎÏÎÎÎÏÎÎÎÏÎÎ ÏÎ ÏÏÎÎÏÎÎÎ Camerabin, ÏÎÏ ÎÎÎÎÎ ÎÎÎ ÏÏÎÎÏÎÎÎ ÎÎÎÎÏÎÏ ÏÎÎ ÏÎ "
-"ÎÎÎ ÎÎÎ ÎÏÎÏÎÎ ÎÎ ÏÎÎÏÎÎÎ ÏÏÏÎÎÏÎÏÎÎÏ, ÎÎÎÏÎÎ ÎÎ ÎÏÎÏÎÏÎÎÎ ÎÏÎ ÎÎÎ ÏÎÎÏ "
-"ÏÎÏÎÏÏÏÏÎÏÎ. ÎÎÎÎÎÎ ÎÎÎ ÏÎÎ ÏÎÏÎÏÏÏÏÎ ÏÏÎÏÎÏ ÎÎÏ! ÎÎ ÏÎÎ <code>this."
-"camerabin.set_state (Gst.State.PLAYING)</code> ÎÎÎÎ ÏÏÎ ÎÎÎÏÎÏÎÏÏÎ GStreamer "
-"ÏÎÏ ÎÏÎÎÏ ÎÎÎÎÎÏÏÎÎÏÎÎÎ ÎÎ ÎÎÎÎÎÎÏÎÎ ÏÎ ÏÎÎÎÎÎÎ. ÎÎÎ ÎÎÎÎÎ ÎÏÎÎÎÎ;"
+"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.RadioButton.";
+"html\">Gtk.RadioButton</link>"
+
+#: C/radiobutton.py.page:7(info/title)
+msgctxt "text"
+msgid "RadioButton (Python)"
+msgstr "RadioButton (Python)"
+
+#: C/radiobutton.py.page:21(info/desc)
+msgid "Mutually exclusive buttons."
+msgstr "ÎÎÎÎÎÎÎÎ ÎÏÎÎÎÎÎÏÎÎÎÎ ÎÎÏÎÏÎÎ."
 
-#: C/magic-mirror.vala.page:131(p)
+#: C/radiobutton.py.page:26(page/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."
+"Three RadioButtons. You can see in the terminal if they are turned off or on."
 msgstr ""
-"ÎÏÏÎÎÎ ÎÎÎÎÎ ÎÏÎÏÎÏ ÎÏÎÎÏÏ ÎÎ ÎÎÏÏÎÎÏÏÏÎÏÎÎ ÏÎ ÎÎÎÏÎÎ ÏÎÎ ÏÏÎÎÏÎ ÏÏÎ ÎÎÎÎ "
-"ÏÎÏÎÎÏÏÎ, ÎÎÎÎ ÎÏÏÏ ÎÎÎÎÎ ÏÏÎÏÏÏÎÎÎÎÎ ÎÎÎÎ ÏÎÏ ÏÎÏÎÎÎÎÎÎÎÎÎ ÎÎÏÎÎÎÏ "
-"ÎÎÏÏÎÎÎÏÎÎÎÏ ÏÎÏ ÏÏÏÏÎÎÎÏÎÏ ÏÎÏÎÎÏÏÎÏ Î ÏÎÏ ÎÎ ÏÎÏÎÎÎÎÏÎÏÎÎ ÎÎÏ."
+"ÎÏÎÎ RadioButtons. ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÏÎ ÏÏÎÎ ÏÎÏÎÎÏÎÎÏ ÎÎÎ ÎÎÎÎÎ ÎÎÎÎÎÏÎÎ Î "
+"ÎÎÎÏÎÎ."
 
-#: C/magic-mirror.vala.page:135(p)
+#: C/radiobutton.py.page:32(section/code)
+#, no-wrap
 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."
+"from gi.repository import Gtk\n"
+"import sys\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"RadioButton Example\", application=app)\n"
+"        self.set_default_size(250, 100)\n"
+"        self.set_border_width(20)\n"
+"\n"
+"        # a new radiobutton with a label\n"
+"        button1 = Gtk.RadioButton(label=\"Button 1\")\n"
+"        # connect the signal \"toggled\" emitted by the radiobutton\n"
+"        # with the callback function toggled_cb\n"
+"        button1.connect(\"toggled\", self.toggled_cb)\n"
+"\n"
+"        # another radiobutton, in the same group as button1\n"
+"        button2 = Gtk.RadioButton.new_from_widget(button1)\n"
+"        # with label \"Button 2\"\n"
+"        button2.set_label(\"Button 2\")\n"
+"        # connect the signal \"toggled\" emitted by the radiobutton\n"
+"        # with the callback function toggled_cb\n"
+"        button2.connect(\"toggled\", self.toggled_cb)\n"
+"        # set button2 not active by default\n"
+"        button2.set_active(False)\n"
+"\n"
+"        # another radiobutton, in the same group as button1,\n"
+"        # with label \"Button 3\"\n"
+"        button3 = Gtk.RadioButton.new_with_label_from_widget(button1, \"Button 3\")\n"
+"        # connect the signal \"toggled\" emitted by the radiobutton\n"
+"        # with the callback function toggled_cb\n"
+"        button3.connect(\"toggled\", self.toggled_cb)\n"
+"        # set button3 not active by default\n"
+"        button3.set_active(False)\n"
+"\n"
+"        # a grid to place the buttons\n"
+"        grid = Gtk.Grid.new()\n"
+"        grid.attach(button1, 0, 0, 1, 1);\n"
+"        grid.attach(button2, 0, 1, 1, 1);\n"
+"        grid.attach(button3, 0, 2, 1, 1);\n"
+"        # add the grid to the window\n"
+"        self.add(grid)\n"
+"\n"
+"    # callback function\n"
+"    def toggled_cb(self, button):\n"
+"        # a string to describe the state of the button\n"
+"        state = \"unknown\"\n"
+"        # whenever the button is turned on, state is on\n"
+"        if button.get_active():\n"
+"            state = \"on\"\n"
+"        # else state is off\n"
+"        else:\n"
+"            state = \"off\"\n"
+"        # whenever the function is called (a button is turned on or off)\n"
+"        # print on the terminal which button was turned on/off\n"
+"        print button.get_label() + \" was turned \" + state\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
 msgstr ""
-"ÎÎÏÎÎÎÏÏÏÎÏÎ ÎÎÎ ÏÏÎÎÎÎÎ ÏÎÏ ÏÎÎÎ. ÎÎ ÎÎÏÎÎÎÎÎÏÎ ÎÎ ÎÏÎ ÏÎÏÎÎÏÏÎ. ÎÏÎ "
-"ÎÏÏÎÎÎÎ ÎÎÎÎ ÎÎ ÎÎÏÏÎÎÏÏÏÎÏÎÎ ÏÎ ÎÎÎÏÎÎ ÏÏÎ ÏÎÏÎÎÏÏÎ GTK+."
+"from gi.repository import Gtk\n"
+"import sys\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"RadioButton Example\", application=app)\n"
+"        self.set_default_size(250, 100)\n"
+"        self.set_border_width(20)\n"
+"\n"
+"        # a new radiobutton with a label\n"
+"        button1 = Gtk.RadioButton(label=\"Button 1\")\n"
+"        # connect the signal \"toggled\" emitted by the radiobutton\n"
+"        # with the callback function toggled_cb\n"
+"        button1.connect(\"toggled\", self.toggled_cb)\n"
+"\n"
+"        # another radiobutton, in the same group as button1\n"
+"        button2 = Gtk.RadioButton.new_from_widget(button1)\n"
+"        # with label \"Button 2\"\n"
+"        button2.set_label(\"Button 2\")\n"
+"        # connect the signal \"toggled\" emitted by the radiobutton\n"
+"        # with the callback function toggled_cb\n"
+"        button2.connect(\"toggled\", self.toggled_cb)\n"
+"        # set button2 not active by default\n"
+"        button2.set_active(False)\n"
+"\n"
+"        # another radiobutton, in the same group as button1,\n"
+"        # with label \"Button 3\"\n"
+"        button3 = Gtk.RadioButton.new_with_label_from_widget(button1, \"Button 3\")\n"
+"        # connect the signal \"toggled\" emitted by the radiobutton\n"
+"        # with the callback function toggled_cb\n"
+"        button3.connect(\"toggled\", self.toggled_cb)\n"
+"        # set button3 not active by default\n"
+"        button3.set_active(False)\n"
+"\n"
+"        # a grid to place the buttons\n"
+"        grid = Gtk.Grid.new()\n"
+"        grid.attach(button1, 0, 0, 1, 1);\n"
+"        grid.attach(button2, 0, 1, 1, 1);\n"
+"        grid.attach(button3, 0, 2, 1, 1);\n"
+"        # add the grid to the window\n"
+"        self.add(grid)\n"
+"\n"
+"    # callback function\n"
+"    def toggled_cb(self, button):\n"
+"        # a string to describe the state of the button\n"
+"        state = \"unknown\"\n"
+"        # whenever the button is turned on, state is on\n"
+"        if button.get_active():\n"
+"            state = \"on\"\n"
+"        # else state is off\n"
+"        else:\n"
+"            state = \"off\"\n"
+"        # whenever the function is called (a button is turned on or off)\n"
+"        # print on the terminal which button was turned on/off\n"
+"        print button.get_label() + \" was turned \" + state\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
+
+#: C/radiobutton.py.page:36(section/title)
+msgid "Useful methods for a RadioButton widget"
+msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ RadioButton"
 
-#: C/magic-mirror.vala.page:145(p)
+#: C/radiobutton.py.page:39(section/p)
 msgid ""
-"If you run into problems with the tutorial, compare your code with this "
-"<link href=\"magic-mirror/magic-mirror.vala\">reference code</link>. There "
-"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."
+"Instead of <code>button1 = Gtk.RadioButton(label=\"Button 1\")</code> we "
+"could create the button and label it with"
 msgstr ""
-"ÎÎÎ ÎÏÎÏÎ ÏÏÎÎÎÎÎÎÏÎ ÎÎ ÏÎ ÎÎÎÎÎÎ, ÏÏÎÎÏÎÎÎÏÎ ÏÎÎ ÎÏÎÎÎÎ ÏÎÏ ÎÎ ÎÏÏÏÎ ÏÎÎ "
-"<link href=\"magic-mirror/magic-mirror.vala\">ÎÏÎÎÎÎ ÎÎÎÏÎÏÎÏ</link>. "
-"ÎÏÎÏÏÎÎ ÎÏÎÏÎÏ ÎÎÎ ÏÎÎ <link href=\"magic-mirror/magic-mirror-advanced.vala"
-"\">ÎÎÏÎÏÎÎÎÎÎ ÏÎÎÏÎÎÎÏÎ</link> ÏÎÏ ÎÎÏÏÎÎÏÏÎÎÎ ÏÎ ÏÎÏÎÎÏÏÎ ÏÎ ÎÎÎ ÎÎÎÎÎÎÎÏ "
-"Gtk.Window ÏÎÏ ÎÎÏÎÏÎÎÏÎÎ ÎÎÏÎÎÎÏ ÏÏÎÏÏÏÎÎÎÎÎÏ ÏÎÏÎÎÎÎÏ ÎÎÎ ÏÏÎÏÎÎÏÎÎ "
-"ÎÎÏÎÏÎÎ ÎÎÎ ÎÎÎÏÎÎ/ÏÏÎÎÎÏÎÎÎ ÏÎÏ ÎÎÎÏÎÎÏ."
+"ÎÎÏÎ ÎÎÎ <code>button1 = Gtk.RadioButton(label=\"Button 1\")</code> ÎÏÎÏÎÏÎÎ "
+"ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ ÏÎ ÎÎÏÎÏÎ ÎÎÎ ÏÎÎ ÎÏÎÎÎÏÎ ÏÎÏ ÎÎÎÎ"
 
-#: C/magic-mirror.vala.page:151(title) C/guitar-tuner.vala.page:258(title)
-msgid "Further reading"
-msgstr "ÎÎÏÎÎÏÎÏÏ ÎÎÎÎÎÏÏÎ"
+#: C/radiobutton.py.page:40(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"button1 = Gtk.RadioButton()\n"
+"button1.set_label(\"Button 1\")."
+msgstr ""
+"\n"
+"button1 = Gtk.RadioButton()\n"
+"button1.set_label(\"Button 1\")."
 
-#: C/magic-mirror.vala.page:152(p)
+#: C/radiobutton.py.page:43(section/p)
 msgid ""
-"To find out more about the Vala programming language you might want to check "
-"out the <link href=\"http://live.gnome.org/Vala/Tutorial\";>Vala Tutorial</"
+"For a general discussion of this, see <link xref=\"properties.py\">here</"
 "link>."
 msgstr ""
-"ÎÎÎ ÎÎ ÎÏÎÎÏÎ ÏÎÏÎÏÏÏÏÎÏÎ ÎÎÎ ÏÎ ÎÎÏÏÏÎ ÏÏÎÎÏÎÎÎÎÏÎÏÎÎÏ Vala ÎÏÏÏ ÎÎÎÎÏÎ ÎÎ "
-"ÎÎÎÎÎÎÏÎ ÏÎ <link href=\"http://live.gnome.org/Vala/Tutorial\";>ÎÎÎÎÎÎ Vala</"
-"link>."
-
-#: C/magic-mirror.vala.page:157(title)
-msgid "Conclusion"
-msgstr "ÎÏÎÏÎÏÎÏÎÎ"
+"ÎÎÎ ÎÎÎ ÎÎÎÎÎÎ ÏÏÎÎÏÎÏÎ ÏÎÏ ÎÎÎÏÎ <link xref=\"properties.py\">ÎÎÏ</link>."
 
-#: C/magic-mirror.vala.page:158(p)
+#: C/radiobutton.py.page:44(section/p)
 msgid ""
-"That's it, you have managed to create a full-featured webcam photo "
-"application in 15 minutes. Now you can shave your beard off or add some "
-"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."
+"Yet another way to create a new RadioButton with a label is <code>button1 = "
+"Gtk.RadioButton.new_with_label(None, \"Button 1\")</code> (the first "
+"arguement is the group of the radiobuttons, which we can get with "
+"<code>get_group()</code>, the second argument is the label)."
 msgstr ""
-"ÎÏÏÏ ÎÎÎÎÎ, ÎÎÏÎÏÎÏÏÎÏÎ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎ ÎÎÎ ÏÎÎÏÎ ÎÏÎÏÎÎÎÎ ÏÏÏÎÎÏÎÏÎÎÏ "
-"ÎÏÏÎÎÎÎÎÏÎÏ ÏÎ 15 ÎÎÏÏÎ. ÎÏÏÎ ÎÏÎÏÎÎÏÎ ÎÎ ÎÏÏÎÏÏÎÎÏÎ Î ÎÎ ÏÏÎÏÎÎÏÎÏÎ "
-"ÎÎÎÎÏÎÏÎÎÎ ÏÏÎ ÏÎÎÏÏÏ ÏÎÏ ÏÏÏÏÏÏÎ, ÎÎÏÎÎÏÏ ÏÏÎÎ ÎÎ ÎÏÎÏÎ ÎÎÎ ÏÎÎÏÏÎ ÎÎÎÏÎ "
-"ÏÏÎ ÎÎÏÎÎÎÎ ÏÎÏ, ÏÏÎÏ ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÏÏÏÏÏÎÎÏÎÏÎ ÏÎÏÏ ÏÎÎÎÏÏ ÏÎÏ ÎÎÎ "
-"ÏÏÎÎÎÎÎÏÎÏÏ ÏÎÏ ÎÎ ÎÎÎ ÏÎÎÎÏÎ ÎÏÎÏÎÎÎÎ ÏÎÏ ÎÏÎÎÏ ÎÎÎÎÏÎ ÏÎ 15 ÎÎÏÏÎ."
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/linkbutton.vala.page:21(None) C/linkbutton.py.page:23(None)
-#: C/linkbutton.js.page:21(None) C/linkbutton.c.page:22(None)
-msgid "@@image: 'media/linkbutton.png'; md5=3712eae8953e87c65a6aa74503b8e32b"
-msgstr "@@image: 'media/linkbutton.png'Â md5=3712eae8953e87c65a6aa74503b8e32b"
-
-#: C/linkbutton.vala.page:7(title)
-msgid "LinkButton (Vala)"
-msgstr "LinkButton (Vala)"
-
-#: C/linkbutton.vala.page:17(desc) C/linkbutton.c.page:17(desc)
-msgid "Create buttons bound to a URL"
-msgstr "ÎÎÎÎÎÏÏÎÎÎ ÎÎÏÎÏÎÏÎ ÎÎÏÎÎÏÎÎÎÏÎ ÏÎ ÎÎÎ URL"
-
-#: C/linkbutton.vala.page:20(title) C/linkbutton.py.page:21(title)
-#: C/linkbutton.js.page:20(title) C/linkbutton.c.page:20(title)
-msgid "LinkButton"
-msgstr "LinkButton"
-
-#: C/linkbutton.vala.page:22(p)
-msgid "This button links to GNOME live."
-msgstr "ÎÏÏÏ ÏÎ ÎÎÏÎÏÎ ÏÏÎÎÎÎÎ ÎÎ ÏÎ ÎÏÎÏÎÎÏ GNOME."
-
-#: C/linkbutton.vala.page:29(link) C/linkbutton.js.page:31(link)
-msgid "Gtk.LinkButton"
-msgstr "Gtk.LinkButton"
+"ÎÎÏÎÎ ÎÎÎÏ ÎÎÎÎÏ ÏÏÏÏÎÏ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ ÎÎÎ ÎÎÎ RadioButton ÎÎ ÎÎÎ ÎÏÎÎÎÏÎ "
+"ÎÎÎÎÎ <code>button1 = Gtk.RadioButton.new_with_label(None, \"Button 1\")</"
+"code> (ÏÎ ÏÏÏÏÎ ÏÏÎÏÎÎ ÎÎÎÎÎ Î ÎÎÎÎÎ ÏÏÎ ÏÎÎÎÎÏÎÎÎÏÏÏÎ, ÏÎÏ ÎÏÎÏÎÏÎÎ ÎÎ "
+"ÏÎÏÎÏÎÎ ÎÎ <code>get_group()</code>, ÏÎ ÎÎÏÏÎÏÎ ÏÏÎÏÎÎ ÎÎÎÎÎ Î ÎÏÎÎÎÏÎ)."
 
-#: C/linkbutton.py.page:7(title)
-msgid "LinkButton (Python)"
-msgstr "LinkButton (Python)"
+#: C/radiobutton.py.page:53(item/p)
+msgid ""
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkRadioButton.html";
+"\">GtkRadioButton</link>"
+msgstr ""
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkRadioButton.html";
+"\">GtkRadioButton</link>"
 
-#: C/linkbutton.py.page:18(desc)
-msgid "A button bound to an URL"
-msgstr "ÎÎÎ ÎÎÏÎÏÎ ÎÎÏÎÎÏÎÎÎÎ ÏÎ ÎÎÎ URL"
+#: C/radiobutton.vala.page:7(info/title)
+msgctxt "text"
+msgid "RadioButton (Vala)"
+msgstr "RadioButton (Vala)"
 
-#: C/linkbutton.py.page:24(p)
-msgid "A button that links to a web page."
-msgstr "ÎÎÎ ÎÎÏÎÏÎ ÏÎÏ ÏÏÎÎÎÎÎ ÏÎ ÎÏÏÎÏÎÎÎÎÎ."
+#: C/radiobutton.vala.page:20(info/desc)
+msgid "A choice from multiple CheckButtons."
+msgstr "ÎÎÎ ÎÏÎÎÎÎÎ ÎÏÏ ÏÎÎÎÎÏÎÎ CheckButtons."
 
-#: C/linkbutton.py.page:35(title)
-msgid "Useful methods for a LinkButton widget"
-msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ LinkButton"
+#: C/radiobutton.vala.page:25(page/p)
+msgid "These RadioButtons report their activity in the terminal."
+msgstr "ÎÏÏÎ ÏÎ RadioButtons ÎÎÎÏÎÏÎÏÎ ÏÎ ÎÏÎÏÏÎÏÎÏÏÎÏÎ ÏÎÏÏ ÏÏÎ ÏÎÏÎÎÏÎÎÏ."
 
-#: C/linkbutton.py.page:37(p)
+#: C/radiobutton.vala.page:27(page/code)
+#, no-wrap
 msgid ""
-"<code>get_visited()</code> returns the 'visited' state (<code>True</code> or "
-"<code>False</code>) of the URI where the LinkButton points. The button "
-"becomes visited when it is clicked."
+"public class MyWindow : Gtk.ApplicationWindow {\n"
+"\tinternal MyWindow (MyApplication app) {\n"
+"\t\tObject (application: app, title: \"RadioButton Example\");\n"
+"\n"
+"\t\tthis.border_width = 20;\n"
+"\t\tthis.set_default_size (250, 100);\n"
+"\n"
+"\t\t/* We demonstrate 3 different RadioButton creation methods */\n"
+"\n"
+"\t\t//Create a Radio Button\n"
+"\t\tvar button1 = new Gtk.RadioButton (null);\n"
+"\t\tbutton1.set_label (\"Button 1\");\n"
+"\n"
+"\t\t//Create a RadioButton with a label, and add it to the same group as button1.\n"
+"\t\tvar button2 = new Gtk.RadioButton.with_label (button1.get_group(),\"Button 2\");\n"
+"\n"
+"\t\t//Create a RadioButton with a label, adding it to button1's group.\n"
+"\t\tvar button3 = new Gtk.RadioButton.with_label_from_widget (button1, \"Button 3\");\n"
+"\n"
+"\t\t//Attach the buttons to a grid.\n"
+"\t\tvar grid = new Gtk.Grid ();\n"
+"\t\tgrid.attach (button1, 0, 0, 1, 1);\n"
+"\t\tgrid.attach (button2, 0, 1, 1, 1);\n"
+"\t\tgrid.attach (button3, 0, 2, 1, 1);\n"
+"\n"
+"\t\t//Add the button to the window.\n"
+"\t\tthis.add (grid);\n"
+"\n"
+"\t\t//Connect the signal handlers (aka. callback functions) to the buttons.\n"
+"\t\tbutton1.toggled.connect (button_toggled_cb);\n"
+"\t\tbutton2.toggled.connect (button_toggled_cb);\n"
+"\t\tbutton3.toggled.connect (button_toggled_cb);\n"
+"\t}\n"
+"\n"
+"\tvoid button_toggled_cb (Gtk.ToggleButton button)\n"
+"\t{\n"
+"\t\tvar state = \"unknown\";\n"
+"\n"
+"\t\tif (button.get_active ())\n"
+"\t\t\tstate = \"on\";\n"
+"\t\telse {\n"
+"\t\t\tstate = \"off\";\n"
+"\t\t\tprint (\"\\n\");\n"
+"\t\t}\n"
+"\t\tprint (button.get_label() + \" was turned \" + state + \"\\n\");\n"
+"\t}\n"
+"}\n"
+"\n"
+"public class MyApplication : Gtk.Application {\n"
+"\tprotected override void activate () {\n"
+"\n"
+"\t\t//Show all of the things.\n"
+"\t\tnew MyWindow (this).show_all ();\n"
+"\t}\n"
+"\n"
+"\tinternal MyApplication () {\n"
+"\t\tObject (application_id: \"org.example.MyApplication\");\n"
+"\t}\n"
+"}\n"
+"\n"
+"public int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
 msgstr ""
-"<code>get_visited()</code> ÎÏÎÏÏÏÎÏÎÎ ÏÎÎ ÎÎÏÎÏÏÎÏÎ 'visited' (<code>True</"
-"code> Î <code>False</code>) ÏÎÏ URI ÏÏÎÏ ÏÎ ÏÎÎÎÎÎ LinkButton. ÎÎ ÎÎÏÎÏÎ "
-"ÎÎÎÎÏÎÎ ÎÎÎÎÎÏÏÎÎÎÎ ÏÏÎÎ ÏÎÏÎÎÏÎÎ."
+"public class MyWindow : Gtk.ApplicationWindow {\n"
+"\tinternal MyWindow (MyApplication app) {\n"
+"\t\tObject (application: app, title: \"RadioButton Example\");\n"
+"\n"
+"\t\tthis.border_width = 20;\n"
+"\t\tthis.set_default_size (250, 100);\n"
+"\n"
+"\t\t/* We demonstrate 3 different RadioButton creation methods */\n"
+"\n"
+"\t\t//Create a Radio Button\n"
+"\t\tvar button1 = new Gtk.RadioButton (null);\n"
+"\t\tbutton1.set_label (\"Button 1\");\n"
+"\n"
+"\t\t//Create a RadioButton with a label, and add it to the same group as button1.\n"
+"\t\tvar button2 = new Gtk.RadioButton.with_label (button1.get_group(),\"Button 2\");\n"
+"\n"
+"\t\t//Create a RadioButton with a label, adding it to button1's group.\n"
+"\t\tvar button3 = new Gtk.RadioButton.with_label_from_widget (button1, \"Button 3\");\n"
+"\n"
+"\t\t//Attach the buttons to a grid.\n"
+"\t\tvar grid = new Gtk.Grid ();\n"
+"\t\tgrid.attach (button1, 0, 0, 1, 1);\n"
+"\t\tgrid.attach (button2, 0, 1, 1, 1);\n"
+"\t\tgrid.attach (button3, 0, 2, 1, 1);\n"
+"\n"
+"\t\t//Add the button to the window.\n"
+"\t\tthis.add (grid);\n"
+"\n"
+"\t\t//Connect the signal handlers (aka. callback functions) to the buttons.\n"
+"\t\tbutton1.toggled.connect (button_toggled_cb);\n"
+"\t\tbutton2.toggled.connect (button_toggled_cb);\n"
+"\t\tbutton3.toggled.connect (button_toggled_cb);\n"
+"\t}\n"
+"\n"
+"\tvoid button_toggled_cb (Gtk.ToggleButton button)\n"
+"\t{\n"
+"\t\tvar state = \"unknown\";\n"
+"\n"
+"\t\tif (button.get_active ())\n"
+"\t\t\tstate = \"on\";\n"
+"\t\telse {\n"
+"\t\t\tstate = \"off\";\n"
+"\t\t\tprint (\"\\n\");\n"
+"\t\t}\n"
+"\t\tprint (button.get_label() + \" was turned \" + state + \"\\n\");\n"
+"\t}\n"
+"}\n"
+"\n"
+"public class MyApplication : Gtk.Application {\n"
+"\tprotected override void activate () {\n"
+"\n"
+"\t\t//Show all of the things.\n"
+"\t\tnew MyWindow (this).show_all ();\n"
+"\t}\n"
+"\n"
+"\tinternal MyApplication () {\n"
+"\t\tObject (application_id: \"org.example.MyApplication\");\n"
+"\t}\n"
+"}\n"
+"\n"
+"public int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
 
-#: C/linkbutton.py.page:38(p)
+#: C/radiobutton.vala.page:32(item/p)
 msgid ""
-"<code>set_visited(True)</code> sets the 'visited' state of the URI where the "
-"LinkButton points as <code>True</code> (analogously for <code>False</code>)."
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.RadioButton.html\";>Gtk."
+"RadioButton</link>"
 msgstr ""
-"<code>set_visited(True)</code> ÎÏÎÎÎÎ ÏÎÎ ÎÎÏÎÏÏÎÏÎ 'visited' ÏÎÏ URI ÏÏÎÏ "
-"ÏÎ ÏÎÎÎÎÎ LinkButton ÏÏ <code>True</code> (ÎÎÎÎÎÎÎ ÎÎÎ <code>False</code>)."
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.RadioButton.html\";>Gtk."
+"RadioButton</link>"
 
-#: C/linkbutton.py.page:39(p)
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/record-collection.js.page:64(media)
+msgctxt "_"
 msgid ""
-"Each time the button is clicked, the signal <code>\"activate-link\"</code> "
-"is emitted. For an explanation of signals and callback functions, see <link "
-"xref=\"signals-callbacks.py\">this page</link>."
+"external ref='media/record-collection.png' "
+"md5='2d645997687ed5aacd36aafafc16e072'"
 msgstr ""
-"ÎÎÎÎ ÏÎÏÎ ÏÎÏ ÏÎ ÎÎÏÎÏÎ ÏÎÏÎÎÏÎÎ, ÏÎ ÏÎÎÎ <code>\"activate-link\"</code> "
-"ÎÎÏÎÎÏÎÏÎÎ. ÎÎÎ ÎÎÎ ÎÎÎÎÎÏÎ ÏÏÎ ÏÎÎÎÏÏÎ ÎÎÎ ÏÏÎ ÏÏÎÎÏÏÎÏÎÏÎ ÎÏÎÎÎÎÎÎÏÎÏ, "
-"ÎÎÎÏÎ <link xref=\"signals-callbacks.py\">ÎÏÏÎÎ ÏÎ ÏÎÎÎÎÎ</link>."
-
-#: C/linkbutton.py.page:47(link) C/linkbutton.c.page:33(link)
-msgid "GtkLinkButton"
-msgstr "GtkLinkButton"
+"external ref='media/record-collection.png' "
+"md5='2d645997687ed5aacd36aafafc16e072'"
 
-#: C/linkbutton.js.page:7(title)
-msgid "LinkButton (JavaScript)"
-msgstr "LinkButton (JavaScript)"
-
-#: C/linkbutton.js.page:17(desc)
-msgid "A button that links to a web page"
-msgstr "ÎÎÎ ÎÎÏÎÏÎ ÏÎÏ ÏÏÎÎÎÎÎ ÏÎ ÎÏÏÎÏÎÎÎÎÎ"
-
-#: C/linkbutton.js.page:22(p)
-msgid "A button that links to live.gnome.org."
-msgstr "ÎÎÎ ÎÎÏÎÏÎ ÏÎÏ ÏÏÎÎÎÎÎ ÎÎ ÏÎ live.gnome.org."
+#: C/record-collection.js.page:7(info/title)
+msgctxt "text"
+msgid "Record Collection (JavaScript)"
+msgstr "ÎÏÎÎÎÎÎ ÎÎÎÏÎÏÏÎ (JavaScript)"
 
-#: C/linkbutton.c.page:7(title)
-msgid "LinkButton (C)"
-msgstr "LinkButton (C)"
+#: C/record-collection.js.page:10(info/desc)
+msgid "Create a small database application for ordering your music collection"
+msgstr ""
+"ÎÎÎÎÎÏÏÎÎÎ ÎÎÎÏ ÎÎÎÏÎÏ ÎÏÎÏÎÎÎÎÏ ÎÎÏÎÏ ÎÎÎÎÎÎÎÏÎ ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ ÏÎÏ ÎÎÏÏÎÎÎÏ "
+"ÏÎÏ ÏÏÎÎÎÎÎÏ"
 
-#: C/linkbutton.c.page:23(p)
-msgid "This button links to the GNOME live webpage."
-msgstr "ÎÏÏÏ ÏÎ ÎÎÏÎÏÎ ÏÏÎÎÎÎÎ ÎÎ ÏÎÎ ÎÏÏÎÏÎÎÎÎÎ ÏÎÏ GNOME."
+#: C/record-collection.js.page:23(page/title)
+msgid "3 Record Collection"
+msgstr "3 ÏÏÎÎÎÎÎ ÎÎÎÏÎÏÏÎ"
 
-#: C/license.page:8(desc)
-msgid "Legal information."
-msgstr "ÎÎÎÎÎÎÏ ÏÎÎÏÎÏÎÏÎÎÏ."
+#: C/record-collection.js.page:28(item/p)
+msgid "How to connect to a database using libgda"
+msgstr "ÎÏÏ ÎÎ ÏÏÎÎÎÎÎÎÏÎ ÎÎ ÎÎÎ ÎÎÏÎ ÎÎÎÎÎÎÎÏÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ libgda"
 
-#: C/license.page:11(title)
-msgid "License"
-msgstr "ÎÎÎÎÎ"
+#: C/record-collection.js.page:29(item/p)
+msgid "How to insert and browse records in a database table"
+msgstr ""
+"ÎÏÏ ÎÎ ÎÎÏÎÎÎÏÎ ÎÎÎ ÎÎ ÏÎÏÎÎÎÎÎÎÎÏÎ ÏÎ ÎÎÎÏÎÏÎÏ ÏÏÎÎ ÏÎÎÎÎÎ ÎÎÏÎÏ ÎÎÎÎÎÎÎÏÎ"
 
-#: C/license.page:12(p)
+#: C/record-collection.js.page:35(section/p)
 msgid ""
-"This work is distributed under a CreativeCommons Attribution-Share Alike 3.0 "
-"Unported license."
+"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 ""
-"ÎÏÏÎ Î ÎÏÎÎÏÎÎ ÎÎÎÎÎÎÎÏÎÎ ÎÎÏÏ ÎÏÏ ÏÎÎ ÎÎÎÎÎ ÏÎÏ CreativeCommons Attribution-"
-"Share Alike 3.0 Unported."
-
-#: C/license.page:20(p)
-msgid "You are free:"
-msgstr "ÎÎÏÎÏÏÎ ÎÎÎÏÎÎÏÎÎ:"
-
-#: C/license.page:25(em)
-msgid "To share"
-msgstr "ÎÎ ÎÎÎÏÎÏÏÎÎÏÎ"
+"ÎÏÏÎ Î ÏÎÏÎÏÏÎÎÏÎ ÏÏÎÏÎÎÎÏÎÎÎÎ ÏÎ ÎÎÏÏÏÎ Javascript. ÎÏÏÎÎÎÏÎÎ ÎÎ "
+"ÏÎÏÎÏÏÎÎÏÎÏÎÎ ÏÏÏ ÎÎ ÏÏÎÎÎÎÎÎÏÎ ÎÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÎÎÎ ÎÎÏÎ ÎÎÎÎÎÎÎÏÎ "
+"ÎÏÏ ÎÎÎ ÏÏÏÎÏÎÎÎÎ GTK ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ ÎÎÎÎÎÎÎÎÎÎ GDA (ÏÏÏÏÎÎÏÎ ÎÎÎÎÎÎÎÏÎ "
+"GNOME). ÎÏÏÎ ÏÏÎÎÎÎÏÏÎÏÏÎ ÎÏÎÏÎÏ ÎÏÏÎ ÏÎ ÎÎÎÎÎÎÎÎÎÎ ÎÎÎÎÏÎÏÏÎÎÎÎÎ."
 
-#: C/license.page:26(p)
-msgid "To copy, distribute and transmit the work."
-msgstr "ÎÎ ÎÎÏÎÎÏÎÏÎÏÎ, ÎÎ ÎÎÎÎÎÎÎÎÏÎ ÎÎÎ ÎÎ ÎÎÏÎÏÎÏÎÏÎ ÏÎÎ ÎÏÎÎÏÎÎ."
+#: C/record-collection.js.page:38(section/p)
+msgid ""
+"GNOME Data Access (GDA) is library whose purpose is to provide universal "
+"access to different kinds and types of data sources. This goes from "
+"traditional relational database systems, to any imaginable kind of data "
+"source such as a mail server, a LDAP directory, etc. For more information, "
+"and for a full API and documentation, visit the <link href=\"http://library.";
+"gnome.org/devel/libgda/stable/\">GDA website</link>."
+msgstr ""
+"Î ÏÏÏÏÎÎÏÎ ÎÎÎÎÎÎÎÏÎ GNOME (GDA) ÎÎÎÎÎ ÎÎÎÎÎÎÎÎÎÎ ÏÎÏ ÎÏÎÎÎÏ Î ÏÎÎÏÏÏ ÎÎÎÎÎ "
+"ÎÎ ÎÏÏÎÎ ÎÎÎÎÎÎ ÏÏÏÏÎÎÏÎ ÏÎ ÎÎÎÏÎÏÎÏÎÎÎ ÎÎÎÎ ÎÎÎ ÏÏÏÎÏÏ ÏÎÎÏÎ ÎÎÎÎÎÎÎÏÎ. "
+"ÎÏÏÏ ÎÎÎÎÎÎ ÎÏÏ ÏÎÏÎÎÎÏÎÎÎÎ ÏÏÎÏÎÎÎÎ ÏÏÏÏÎÎÎÏÎ ÎÎÏÎÏ ÎÎÎÎÎÎÎÏÎ, ÏÎ "
+"ÎÏÎÎÎÎÎÏÎÏÎ ÎÎÎÎÏ ÏÎÎÎÏ ÎÎÎÎÎÎÎÏÎ, ÏÏÏÏ ÎÎÏÏÎÏÎÏÎÏÎ ÎÎÎÎÎÎÎÏÎÏÎÎÏ, ÎÎÎÎ "
+"ÎÎÏÎÎÎÎÎ LDAP, ÎÎÏ. ÎÎÎ ÏÎÏÎÏÏÏÏÎÏÎÏ ÏÎÎÏÎÏÎÏÎÎÏ ÎÎÎ ÎÎÎ ÏÎÎÏÎÏ API ÎÎÎ "
+"ÏÎÎÎÎÏÎÏÏÎ, ÎÏÎÏÎÎÏÏÎÎÏÎ ÏÎÎ <link href=\"http://library.gnome.org/devel/";
+"libgda/stable/\">ÎÏÏÏÏÎÏÎ GDA</link>."
 
-#: C/license.page:29(em)
-msgid "To remix"
-msgstr "ÎÎ ÎÎÎÎÎÎÎÎÏÎ"
+#: C/record-collection.js.page:41(section/p)
+msgid ""
+"Although a big part of the code is related to user interface (GUI), we are "
+"going to focus our tutorial on the database parts (we might mention other "
+"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 ""
+"ÎÎ ÎÎÎ ÎÎÎ ÎÎÎÎÎÎ ÏÎÎÎÎ ÏÎÏ ÎÏÎÎÎÎ ÏÏÏÏÎÏÎÎÎÏÎÎ ÎÎ ÏÎ ÎÎÎÏÎÏÎ ÏÏÎÏÏÎ (GUI), "
+"ÏÏÏÎÎÎÏÎÎ ÎÎ ÎÏÏÎÎÏÎÏÎÎ ÏÎ ÎÎÎÎÎÎ ÎÎÏ ÏÏÎ ÎÎÏÎ ÏÎÏ ÎÎÏÎÏ ÎÎÎÎÎÎÎÏÎ (ÎÎ ÎÎÎ "
+"ÎÎ ÎÎÎÏÎÏÎÎÏÎ ÎÎÎÎ ÎÎÏÎ ÏÎÏ ÎÎÏÏÎÏÎÏÎÎ ÏÏÎÏÎÎÎ). ÎÎÎ ÎÎ ÎÎÎÎÏÎ ÏÎÏÎÏÏÏÏÎÏÎ "
+"ÎÎÎ ÏÎ ÏÏÎÎÏÎÎÎÎÏÎ JavaScript ÏÏÎ GNOME, ÎÎÎÏÎ ÏÎ ÎÎÎÎÎÎ <link xref=\"image-"
+"viewer.js\">ÏÏÏÎÏÎÎÎÎ ÏÏÎÎÎÎÎÎ ÎÎÎÏÎÎÏ</link>."
 
-#: C/license.page:30(p)
-msgid "To adapt the work."
-msgstr "ÎÎ ÏÏÎÏÎÏÎÏÏÎÏÎ ÏÎÎ ÎÏÎÎÏÎÎ."
+#: C/record-collection.js.page:54(item/p)
+msgid ""
+"Choose <gui>Generic Javascript</gui> from the <gui>JS</gui> tab, click "
+"<gui>Forward</gui>, and fill-out your details on the next few pages. Use "
+"<file>record-collection</file> as project name and directory."
+msgstr ""
+"ÎÏÎÎÎÎÏÎ <gui>ÎÎÎÎÎÏ Javascript</gui> ÎÏÏ ÏÎÎ ÎÎÏÏÎÎÎ <gui>JS</gui>, ÏÎÏÎÏÏÎ "
+"<gui>ÎÏÏÎÏÏÎ</gui>, ÎÎÎ ÏÏÎÏÎÎÏÏÏÏÎ ÏÎÏ ÎÎÏÏÎÎÎÏÎÎÎÏ ÏÎÏ ÏÏÎÏ ÎÏÏÎÎÎÎÏ ÎÎÎÎÏ "
+"ÏÎÎÎÎÎÏ. ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ ÏÏ ÏÎÎÎÎ ÏÎÏ ÎÏÎÎÏ ÎÎÎ ÏÎÏ ÎÎÏÎÎÏÎÎÏ ÏÎ <file>record-"
+"collection</file>."
 
-#: C/license.page:33(p)
-msgid "Under the following conditions:"
-msgstr "ÎÎÏÏ ÎÏÏ ÏÎÏÏ ÎÎÏÎÎÏÎÎÏÏ ÏÏÎÏÏ:"
+#: C/record-collection.js.page:57(item/p)
+msgid ""
+"Click <gui>Finished</gui> and the project will be created for you. Open "
+"<file>src/main.js</file> from the <gui>Project</gui> or <gui>File</gui> "
+"tabs. It contains very basic example code."
+msgstr ""
+"ÎÎÏÎÏÏÎ <gui>ÏÎÎÎÎÏÎÎÎÎ</gui> ÎÎÎ ÏÎ ÎÏÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎÎÎÎ ÎÎÎ ÎÏÎÏ. ÎÎÎÎÎÏÎ "
+"ÏÎ <file>src/main.js</file> ÎÏÏ ÏÎÏ ÎÎÏÏÎÎÎÏ <gui>ÎÏÎÎ</gui> Î <gui>ÎÏÏÎÎÎ</"
+"gui>. ÎÎÏÎÎÎÎÎÎÎÎÎ ÏÎÎÏ ÎÏÎÏ ÏÎÏÎÎÎÎÎÎÎ ÎÏÎÎÎÎ."
 
-#: C/license.page:38(em)
-msgid "Attribution"
-msgstr "ÎÏÏÎÎÏÎ"
+#: C/record-collection.js.page:63(section/title)
+msgid "Program Structure"
+msgstr "ÎÎÎÎ ÏÏÎÎÏÎÎÎÎÏÎÏ"
 
-#: C/license.page:39(p)
+#: C/record-collection.js.page:65(section/p)
 msgid ""
-"You must attribute the work in the manner specified by the author or "
-"licensor (but not in any way that suggests that they endorse you or your use "
-"of the work)."
+"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 ""
-"ÎÏÎÏÎÎ ÎÎ ÎÏÎÎÏÏÎÏÎ ÏÎÎ ÎÏÎÎÏÎÎ ÎÎÏÎ ÏÎÎ ÎÎÎÎÏÎÏÎÎÎÎ ÏÏÏÏÎ ÎÏÏ ÏÎÎ ÏÏÎÎÏÎÏÎÎ "
-"Î ÎÎÎÎÎÎÏÏÎ (ÎÎÎÎ ÏÏÎ ÎÎ ÎÏÎÎÎÎÎÏÎÏÎ ÏÏÏÏÎ ÏÎÏ ÏÏÎÏÎÎÎÎÎ ÏÏÎ ÏÏÎÏÏÎÏÎÎÎÏÎ "
-"ÎÏÎÏ Î ÏÎ ÏÏÎÏÎ ÏÎÏ ÎÏÎÎÏÎÎÏ)."
+"ÎÏÏÎ Î ÏÎÏÎÏÏÎÎÏÎ ÎÎÎÎÎ ÎÎÎ ÎÏÎÎ ÎÏÎÏÎÎÎÎ GTK (ÎÎ ÎÎÎÎÎÎÎÏ ÏÎÏÎÎÏÏÎ) ÎÎÎÎÏ "
+"ÎÎ ÎÎÏÎÎÎÎ ÎÎÎÏÎÏÎÏ ÏÏÎÎ ÏÎÎÎÎÎ ÎÎÏÎÏ ÎÎÎÎÎÎÎÏÎ ÎÎÎÏÏ ÎÎÎ ÏÎÏÎÎÎÎÏÎ ÏÎÏÎ ÏÏÎ "
+"ÎÎÎÏÎÏÏÎ ÏÎÏ ÏÎÎÎÎÎ. Î ÏÎÎÎÎÎÏ ÎÏÎÎ ÎÏÎ ÏÎÎÎÎ: <code>id</code>, ÎÎÎÏ "
+"ÎÎÎÏÎÎÎÏ ÎÎÎ <code>name</code>, ÎÎÎÎ varchar. Î ÏÏÏÏÎ ÎÎÏÏÎÏÎ (ÏÏÎÎ ÎÎÏÏÏÎ) "
+"ÏÎÏ ÎÏÎÏÎÎÎÎÏ ÎÏÎÏÏÎÏÎÎ ÏÎÎ ÎÎÏÎÎÏÎÎ ÎÎÎÏÎÏÎÏ ÏÏÎÎ ÏÎÎÎÎÎ. Î ÏÎÎÎÏÏÎÎÎ "
+"ÎÎÏÏÎÏÎ (ÏÏÎÎÎÎÎÏ) ÎÏÎÏÏÎÏÎÎ ÎÎ ÎÎÎÏÎ ÏÎÎÏ ÏÎÏ ÎÎÎÏÎÏÎÏ ÎÏÏÎÏ ÏÎÏ ÏÎÎÎÎÎ. ÎÎ "
+"ÏÎÏÎÎÏÏÎÎÎÎ ÏÎÏ ÎÎÎÎÎÏÎÎÏÎÎ ÎÎÎÎ ÏÎÏÎ ÏÎÏ ÎÎÎ ÎÎÎ ÎÎÎÏÎÏÎ ÎÎÏÎÎÎÏÎÎ ÎÎÎ ÏÏÎÎ "
+"ÎÎÎÎÎÎÏÎ ÏÎÏ ÎÏÎÏÎÎÎÎÏ."
+
+#: C/record-collection.js.page:70(section/title)
+msgid "Starting the fun"
+msgstr "ÎÎÎÏÎÎ ÏÎÏ ÎÎÎÏÎÎÎÎÏÎÏ"
 
-#: C/license.page:46(em)
-msgid "Share Alike"
-msgstr "ÎÎÏÏÎÎÎÎ ÎÎÎÎÎÎÎ"
+#: C/record-collection.js.page:71(section/p)
+msgid "Let's start by examining the skeleton of the program:"
+msgstr "ÎÏ ÎÏÏÎÏÎÏÎÎ ÎÎÎÏÎÎÎÎÏÎÏ ÏÎÎ ÏÎÎÎÎÏÏ ÏÎÏ ÏÏÎÎÏÎÎÎÎÏÎÏ:"
 
-#: C/license.page:47(p)
+#: C/record-collection.js.page:72(section/code)
+#, no-wrap
 msgid ""
-"If you alter, transform, or build upon this work, you may distribute the "
-"resulting work only under the same, similar or a compatible license."
+"\n"
+"const GLib = imports.gi.GLib;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Gda = imports.gi.Gda;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"function Demo () {\n"
+"  this._init ();\n"
+"}\n"
+"\n"
+"Demo.prototype = {\n"
+"\n"
+"  _init: function () {\n"
+"    this.setupWindow ();\n"
+"    this.setupDatabase ();\n"
+"    this.selectData ();\n"
+"  }\n"
+"}\n"
+"\n"
+"Gtk.init (0, null);\n"
+"\n"
+"var demo = new Demo ();\n"
+"\n"
+"Gtk.main ();"
 msgstr ""
-"ÎÎÎ ÎÎÎÎÎÎÏÎ, ÎÎÏÎÏÏÎÎÎÏÎÏÎÏÎ Î ÎÎÎÎÎÏÏÎÎÏÎÏÎ ÎÎ ÎÎÏÎ ÎÏÏÎÎ ÏÎÎ ÎÏÎÎÏÎÎ, "
-"ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÎÎÎÎÎÏÎ ÏÎÎ ÏÎÎÎÎÎ ÎÏÎÎÏÎÎ ÎÎÏÏ ÎÏÏ ÏÎÎ ÎÎÎÎ, ÏÎÏÏÎÎÎÎ Î "
-"ÏÏÎÎÎÏÎ ÎÎÎÎÎ."
+"\n"
+"const GLib = imports.gi.GLib;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Gda = imports.gi.Gda;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"function Demo () {\n"
+"  this._init ();\n"
+"}\n"
+"\n"
+"Demo.prototype = {\n"
+"\n"
+"  _init: function () {\n"
+"    this.setupWindow ();\n"
+"    this.setupDatabase ();\n"
+"    this.selectData ();\n"
+"  }\n"
+"}\n"
+"\n"
+"Gtk.init (0, null);\n"
+"\n"
+"var demo = new Demo ();\n"
+"\n"
+"Gtk.main ();"
 
-#: C/license.page:53(p)
+#: C/record-collection.js.page:97(item/p)
 msgid ""
-"For the full text of the license, see the <link href=\"http://";
-"creativecommons.org/licenses/by-sa/3.0/legalcode\">CreativeCommons website</"
-"link>, or read the full <link href=\"http://creativecommons.org/licenses/by-";
-"sa/3.0/\">Commons Deed</link>."
+"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 ""
-"ÎÎÎ ÏÎ ÏÎÎÏÎÏ ÎÎÎÎÎÎÎ ÏÎÏ ÎÎÎÎÎÏ, ÎÎÎÏÎ ÏÎÎ <link href=\"http://";
-"creativecommons.org/licenses/by-sa/3.0/legalcode\">ÎÏÏÏÏÎÏÎ CreativeCommons</"
-"link>, Î ÎÎÎÎÎÏÏÎ ÏÎÎ ÏÎÎ <link href=\"http://creativecommons.org/licenses/";
-"by-sa/3.0/\">ÎÏÎÎÎ Commons</link>."
+"ÎÏÎÎÎÎÏ 1-4: ÎÏÏÎÎÎÏ ÎÎÏÎÎÏÎÎÏ. ÎÏÏÏÎ ÎÎÎÎÎÏÎÏÎ ÏÏÎÏÎÏÎ ÏÏÎ ÎÏÎÎÎÎ 3, ÏÎÏ "
+"ÎÎÎÎ ÏÏÎ Javascript ÎÎ ÎÎÏÎÎÎÎ ÏÎ ÎÎÎÎÎÎÎÎÎÎ GDA, ÏÎ ÎÏÎÎÎÎÏÏÎ ÎÎÏ ÏÎ ÎÏÏÏ "
+"ÏÎ ÎÎÎÎÎÎ."
 
-#: C/license.page:60(p)
+#: C/record-collection.js.page:98(item/p)
 msgid ""
-"As a special exception, the copyright holders give you permission to copy, "
-"modify, and distribute the example code contained in this documentation "
-"under the terms of your choosing, without restriction."
+"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 ""
-"ÎÏ ÎÎÎÎÎÎ ÎÎÎÎÏÎÏÎ, ÎÎ ÏÎÎÏÎÎÏÎÎÎÎ ÎÎÎÎÎÏÎÏÎÏ ÏÎÏ ÎÏÎÏÏÎÏÎÏÎ ÎÎ ÎÎÏÎÎÏÎÏÎÏÎ, "
-"ÎÎ ÏÏÎÏÎÏÎÎÎÏÎÏÎ ÎÎÎ ÎÎ ÎÎÎÎÎÎÎÎÏÎ ÏÎ ÏÎÏÎÎÎÎÎÎÎÏÎ ÎÏÎÎÎÎ ÏÎÏ "
-"ÏÎÏÎÎÎÎÎÎÎÎÎÏÎÎ Ï' ÎÏÏÎÎ ÏÎÎ ÏÎÎÎÎÏÎÏÏÎ ÏÏÏ ÏÎÏÏ ÏÏÎÏÏ ÏÎÏ ÎÏÎÎÎÎÎÏ ÏÎÏ, "
-"ÏÏÏÎÏ ÏÎÏÎÎÏÎÏÎÏ."
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/label.vala.page:21(None) C/label.py.page:27(None)
-#: C/label.js.page:21(None) C/label.c.page:25(None)
-msgid "@@image: 'media/label.png'; md5=734975c18653d88379f983e4501c3fc0"
-msgstr "@@image: 'media/label.png'Â md5=734975c18653d88379f983e4501c3fc0"
-
-#: C/label.vala.page:7(title)
-msgid "Label (Vala)"
-msgstr "ÎÏÎÎÎÏÎ (Vala)"
-
-#: C/label.vala.page:17(desc) C/label.c.page:18(desc)
-msgid "A widget which displays text"
-msgstr "ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÏÎÏ ÎÎÏÎÎÎÎÎÎ ÎÎÎÎÎÎÎ"
-
-#: C/label.vala.page:22(p) C/label.py.page:28(p) C/label.c.page:26(p)
-msgid "A simple label"
-msgstr "ÎÎÎ ÎÏÎÎ ÎÏÎÎÎÏÎ"
+"ÎÏÎÎÎÎÏ 6-17: ÎÏÎÏÏÎ ÏÎÎ ÎÎÎÏÎ ÎÎÏ <code>Demo</code>. ÎÏÏÏÎ ÎÎÎÎÎÏÎÏÎ "
+"ÏÏÎÏÎÏÎ ÏÏÎÏ ÎÏÎÎÎÎÏ 13-15, ÏÏÎÏ ÎÎÎÎÏÎÎ 3 ÎÎÎÏÎÎÏÏ ÏÎÏ ÎÎ ÎÎÎÎÏÎ ÏÎÎ ÏÎ "
+"ÎÎÏÎÎÎÎ. ÎÎÎÎÏÏÎÎÎ ÏÎÏÎÎÎÏÏ."
 
-#: C/label.py.page:7(title)
-msgid "Label (Python)"
-msgstr "ÎÏÎÎÎÏÎ (Python)"
+#: C/record-collection.js.page:99(item/p)
+msgid "Lines 19â23: Start the application."
+msgstr "ÎÏÎÎÎÎÏ 19-23: ÎÎÎÏÎÎ ÏÎÏ ÎÏÎÏÎÎÎÎÏ."
 
-#: C/label.py.page:23(desc)
-msgid "A widget that displays a small to medium amount of text"
-msgstr ""
-"ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÏÎÏ ÎÎÏÎÎÎÎÎÎ ÎÎÎ ÎÎÎÏÎ ÎÏÏ ÎÎÏÎÎÎ ÏÎÏÏÏÎÏÎ ÎÎÎÎÎÎÎÏ"
+#: C/record-collection.js.page:104(section/title)
+msgid "Designing the application"
+msgstr "ÎÏÎÎÎÎÏÎÏÏ ÏÎÏ ÎÏÎÏÎÎÎÎÏ"
 
-#: C/label.py.page:37(p)
+#: C/record-collection.js.page:105(section/p)
 msgid ""
-"Another way to obtain what we have in the example is to create the label as "
-"an instance of another class and add it to the instance of <code>MyWindow</"
-"code> in the <code>do_activate(self)</code> method:"
+"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 ""
-"ÎÎÎÏ ÎÎÎÎÏ ÏÏÏÏÎÏ ÎÎÎ ÎÎ ÏÎÏÎÏÎ ÏÏÎ ÎÏÎÏÎÎ ÏÏÎ ÏÎÏÎÎÎÎÎÎÎ ÎÎÎÎÎ Î ÎÎÎÎÎÏÏÎÎÎ "
-"ÏÎÏ ÎÏÎÎÎÏÎÏ ÏÏ ÎÎÎ ÏÏÎÎÎÎÏÏÏÏÎ ÎÎÎÏ ÎÎÎÎÏ ÎÎÎÏÎÏ ÎÎÎ ÏÏÎÏÎÎÎÎ ÏÎÏ ÏÏÎ "
-"ÏÏÎÎÎÎÏÏÏÏÎ ÏÎÏ <code>MyWindow</code> ÏÏÎ ÎÎÎÎÎÎ <code>do_activate(self)</"
-"code>:"
+"ÎÏ ÏÎÎÎÏÎÎ ÎÎÎ ÎÎÏÎÎ ÏÏÎ ÎÎÎÎÎÎ <code>setupWindow</code>. ÎÎÎÎÎ ÏÏÎÏÎÏÎÎ ÎÎÎ "
+"ÏÎ ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ ÎÎÎÏÎÏÎÏ ÏÏÎÏÏÎ (UI). ÎÎÎÏÏ Î UI ÎÎÎ ÎÎÎÎÎ ÏÎ ÎÏÎÎÎÎÏÏÎ "
+"ÎÎÏ, ÎÎ ÎÎÎÎÎÏÎÏÎÎ ÎÏÎÎ ÏÎ ÏÏÎÏÎÎÎ ÎÎÏÎ."
 
-#: C/label.py.page:38(code)
+#: C/record-collection.js.page:106(section/code)
 #, no-wrap
 msgid ""
 "\n"
-"# a class to define a window\n"
-"class MyWindow(Gtk.ApplicationWindow):\n"
-"    def __init__(self, app):\n"
-"        Gtk.Window.__init__(self, title=\"Welcome to GNOME\", application=app)\n"
-"        self.set_default_size(200, 100)\n"
+"  setupWindow: function () {\n"
+"    this.window = new Gtk.Window ({title: \"Data Access Demo\", height_request: 350});\n"
+"    this.window.connect (\"delete-event\", function () {\n"
+"      Gtk.main_quit();\n"
+"      return true;\n"
+"      });\n"
 "\n"
-"# a class to define a label\n"
-"class MyLabel(Gtk.Label):\n"
-"    def __init__(self):\n"
-"        Gtk.Label.__init__(self)\n"
-"        self.set_text(\"Hello GNOME!\")\n"
+"    // main box\n"
+"    var main_box = new Gtk.Box ({orientation: Gtk.Orientation.VERTICAL, spacing: 5});\n"
+"    this.window.add (main_box);\n"
 "\n"
-"class MyApplication(Gtk.Application):\n"
-"    def __init__(self):\n"
-"        Gtk.Application.__init__(self)\n"
+"    // first label\n"
+"    var info1 = new Gtk.Label ({label: \"&lt;b&gt;Insert a record&lt;/b&gt;\", xalign: 0, use_markup: true});\n"
+"    main_box.pack_start (info1, false, false, 5);\n"
 "\n"
-"    def do_activate(self):\n"
-"        # create an instance of MyWindow\n"
-"        win = MyWindow(self)\n"
-"        # create an instance of MyLabel\n"
-"        label = MyLabel()\n"
-"        # and add it to the window\n"
-"        win.add(label)\n"
-"        # show the window and everything on it\n"
-"        win.show_all()"
+"    // \"insert a record\" horizontal box\n"
+"    var insert_box = new Gtk.Box ({orientation: Gtk.Orientation.HORIZONTAL, spacing: 5});\n"
+"    main_box.pack_start (insert_box, false, false, 5);\n"
+"\n"
+"    // ID field\n"
+"    insert_box.pack_start (new Gtk.Label ({label: \"ID:\"}), false, false, 5);\n"
+"    this.id_entry = new Gtk.Entry ();\n"
+"    insert_box.pack_start (this.id_entry, false, false, 5);\n"
+"\n"
+"    // Name field\n"
+"    insert_box.pack_start (new Gtk.Label ({label: \"Name:\"}), false, false, 5);\n"
+"    this.name_entry = new Gtk.Entry ({activates_default: true});\n"
+"    insert_box.pack_start (this.name_entry, true, true, 5);\n"
+"\n"
+"    // Insert button\n"
+"    var insert_button = new Gtk.Button ({label: \"Insert\", can_default: true});\n"
+"    insert_button.connect (\"clicked\", Lang.bind (this, this._insertClicked));\n"
+"    insert_box.pack_start (insert_button, false, false, 5);\n"
+"    insert_button.grab_default ();\n"
+"\n"
+"    // Browse textview\n"
+"    var info2 = new Gtk.Label ({label: \"&lt;b&gt;Browse the table&lt;/b&gt;\", xalign: 0, use_markup: true});\n"
+"    main_box.pack_start (info2, false, false, 5);\n"
+"    this.text = new Gtk.TextView ({editable: false});\n"
+"    var sw = new Gtk.ScrolledWindow ({shadow_type:Gtk.ShadowType.IN});\n"
+"    sw.add (this.text);\n"
+"    main_box.pack_start (sw, true, true, 5);\n"
+"\n"
+"    this.count_label = new Gtk.Label ({label: \"\", xalign: 0, use_markup: true});\n"
+"    main_box.pack_start (this.count_label, false, false, 0);\n"
+"\n"
+"    this.window.show_all ();\n"
+"  },"
 msgstr ""
 "\n"
-"# a class to define a window\n"
-"class MyWindow(Gtk.ApplicationWindow):\n"
-"    def __init__(self, app):\n"
-"        Gtk.Window.__init__(self, title=\"Welcome to GNOME\", application=app)\n"
-"        self.set_default_size(200, 100)\n"
+"  setupWindow: function () {\n"
+"    this.window = new Gtk.Window ({title: \"Data Access Demo\", height_request: 350});\n"
+"    this.window.connect (\"delete-event\", function () {\n"
+"      Gtk.main_quit();\n"
+"      return true;\n"
+"      });\n"
 "\n"
-"# a class to define a label\n"
-"class MyLabel(Gtk.Label):\n"
-"    def __init__(self):\n"
-"        Gtk.Label.__init__(self)\n"
-"        self.set_text(\"Hello GNOME!\")\n"
+"    // main box\n"
+"    var main_box = new Gtk.Box ({orientation: Gtk.Orientation.VERTICAL, spacing: 5});\n"
+"    this.window.add (main_box);\n"
 "\n"
-"class MyApplication(Gtk.Application):\n"
-"    def __init__(self):\n"
-"        Gtk.Application.__init__(self)\n"
+"    // first label\n"
+"    var info1 = new Gtk.Label ({label: \"&lt;b&gt;Insert a record&lt;/b&gt;\", xalign: 0, use_markup: true});\n"
+"    main_box.pack_start (info1, false, false, 5);\n"
 "\n"
-"    def do_activate(self):\n"
-"        # create an instance of MyWindow\n"
-"        win = MyWindow(self)\n"
-"        # create an instance of MyLabel\n"
-"        label = MyLabel()\n"
-"        # and add it to the window\n"
-"        win.add(label)\n"
-"        # show the window and everything on it\n"
-"        win.show_all()"
-
-#: C/label.py.page:68(title)
-msgid "Useful methods for a Label widget"
-msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÏÎÎÎÏÎÏ"
+"    // \"insert a record\" horizontal box\n"
+"    var insert_box = new Gtk.Box ({orientation: Gtk.Orientation.HORIZONTAL, spacing: 5});\n"
+"    main_box.pack_start (insert_box, false, false, 5);\n"
+"\n"
+"    // ID field\n"
+"    insert_box.pack_start (new Gtk.Label ({label: \"ID:\"}), false, false, 5);\n"
+"    this.id_entry = new Gtk.Entry ();\n"
+"    insert_box.pack_start (this.id_entry, false, false, 5);\n"
+"\n"
+"    // Name field\n"
+"    insert_box.pack_start (new Gtk.Label ({label: \"Name:\"}), false, false, 5);\n"
+"    this.name_entry = new Gtk.Entry ({activates_default: true});\n"
+"    insert_box.pack_start (this.name_entry, true, true, 5);\n"
+"\n"
+"    // Insert button\n"
+"    var insert_button = new Gtk.Button ({label: \"Insert\", can_default: true});\n"
+"    insert_button.connect (\"clicked\", Lang.bind (this, this._insertClicked));\n"
+"    insert_box.pack_start (insert_button, false, false, 5);\n"
+"    insert_button.grab_default ();\n"
+"\n"
+"    // Browse textview\n"
+"    var info2 = new Gtk.Label ({label: \"&lt;b&gt;Browse the table&lt;/b&gt;\", xalign: 0, use_markup: true});\n"
+"    main_box.pack_start (info2, false, false, 5);\n"
+"    this.text = new Gtk.TextView ({editable: false});\n"
+"    var sw = new Gtk.ScrolledWindow ({shadow_type:Gtk.ShadowType.IN});\n"
+"    sw.add (this.text);\n"
+"    main_box.pack_start (sw, true, true, 5);\n"
+"\n"
+"    this.count_label = new Gtk.Label ({label: \"\", xalign: 0, use_markup: true});\n"
+"    main_box.pack_start (this.count_label, false, false, 0);\n"
+"\n"
+"    this.window.show_all ();\n"
+"  },"
 
-#: C/label.py.page:70(p)
+#: C/record-collection.js.page:156(item/p)
 msgid ""
-"<code>label = Gtk.Label(label=\"Hello GNOME!\")</code> could also be used "
-"create a label and set the text directly. For a general discussion of this, "
-"see <link xref=\"properties.py\">here</link>."
+"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 ""
-"Î <code>label = Gtk.Label(\"Hello GNOME!\")</code> ÎÏÎÏÎÎ ÎÏÎÏÎÏ ÎÎ "
-"ÏÏÎÏÎÎÎÏÎÎÎÎÎÎ ÎÎÎ ÎÎÎÎÎÏÏÎÎÎ ÎÏÎÎÎÏÎÏ ÎÎÎ ÎÏÎÏÎÏ ÏÎÏ ÎÎÎÎÎÎÎÏ ÎÎÎÏÎ. ÎÎÎ "
-"ÎÎÎ ÎÎÎÎÎÎ ÏÏÎÎÏÎÏÎ ÏÎÏ, ÎÎÎÏÎ <link xref=\"properties.py\">ÎÎÏ</link>."
+"ÎÏÎÎÎÎÏ 22 ÎÎÎ 27: ÎÎÎÎÎÏÏÎÎÎ ÏÏÎ 2 ÎÎÏÎÏÏÏÎÏÎÏÎ (ÎÎÎ ÏÎ ÎÏÎ ÏÎÎÎÎ) ÏÏÎ "
+"ÎÏÎÎÎ ÎÎ ÏÏÎÏÏÎÏ ÎÎ ÏÎÎÎÏÏÎÎÎÎÎÏÎÏÎ ÎÎÏÎ ÎÎÎ ÎÎ ÎÎÏÎÏÎÎÎ ÏÏÎ ÎÎÏÎ ÎÎÎÎÎÎÎÏÎ."
 
-#: C/label.py.page:72(p)
+#: C/record-collection.js.page:157(item/p)
 msgid ""
-"<code>set_line_wrap(True)</code> breaks lines if the text of the label "
-"exceeds the size of the widget."
+"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 ""
-"ÎÎ <code>set_line_wrap(True)</code> ÏÏÎÎÎ ÏÎÏ ÎÏÎÎÎÎÏ ÎÎÎ ÏÎ ÎÎÎÎÎÎÎ ÏÎÏ "
-"ÎÏÎÎÎÏÎÏ ÏÏÎÏÎÎÎÎÎÎ ÏÎ ÎÎÎÎÎÎÏ ÏÎÏ ÎÏÎÏÎÎÎÏ ÏÏÏÏÎÏÎÎÎÏ."
+"ÎÏÎÎÎÎÏ 31-34: ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ ÎÎÏÎÏÎÎÏ ÎÎÏÎÎÏÎÎÏ. ÎÏÎÎÎÎÏÎÎ ÏÎ ÏÎÎÎ ÏÎÏ "
+"<code>clicked</code> ÏÏÎÎ ÎÎÎÏÏÎÎÎ ÎÎÎÎÎÎ <code>_insertClicked</code> ÏÎÏ "
+"ÎÎÎÏÎÏ. ÎÏÏÎ Î ÎÎÎÎÎÎÏ ÎÎÎÎÏÎÏÎÎ ÏÎÏÎÎÎÏÏ."
 
-#: C/label.py.page:73(p)
+#: C/record-collection.js.page:158(item/p)
 msgid ""
-"<code>set_justify(Gtk.Justification.LEFT)</code> (or <code>Gtk.Justification."
-"RIGHT, Gtk.Justification.CENTER, Gtk.Justification.FILL</code>) sets the "
-"alignment of the lines in the text of the label relative to each other. The "
-"method has no effect on a single-line label."
+"Line 39: Create the widget (<code>TextView</code>) where we will show the "
+"contents of the table."
 msgstr ""
-"ÎÎ <code>set_justify(Gtk.Justification.LEFT)</code> (Î <code>Gtk."
-"Justification.RIGHT, Gtk.Justification.CENTER, Gtk.Justification.FILL</"
-"code>) ÎÏÎÎÎÎ ÏÎ ÏÏÎÎÏÎÏÎ ÏÏÎ ÎÏÎÎÎÏÎ ÏÏÎ ÎÎÎÎÎÎÎ ÏÎÏ ÎÏÎÎÎÏÎÏ ÏÏÎÎÏÎÎÏÎÎÎÎÏ "
-"ÎÎÏÎÎÏ ÏÎÏÏ. Î ÎÎÎÎÎÎÏ ÎÎÎ ÎÏÎÎ ÎÏÎÏÎÎÎÏÎÎ ÏÎ ÎÏÎÎÎÏÎ ÎÎÎÎÎÎÎÎÏ ÎÏÎÎÎÎÏ."
+"ÎÏÎÎÎÎ 39: ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ ÎÏÎÏÎÎÎÏ ÏÏÏÏÎÏÎÎÎÏ (<code>TextView</code>) ÏÏÎÏ "
+"ÎÎ ÎÎÏÎÎÎÏÎÏÎÎ ÏÎ ÏÎÏÎÎÏÏÎÎÎÎ ÏÎÏ ÏÎÎÎÎÎ."
 
-#: C/label.py.page:74(p)
+#: C/record-collection.js.page:159(item/p)
 msgid ""
-"For decorated text we can use <code>set_markup(\"text\")</code>, where <code>"
-"\"text\"</code> is a text in the <link href=\"http://developer.gnome.org/";
-"pango/stable/PangoMarkupFormat.html\">Pango Markup Language</link>. An "
-"example:"
+"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 ""
-"ÎÎÎ ÎÎÎÎÎÏÎÎÎÎÎÎ ÎÎÎÎÎÎÎ ÎÏÎÏÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÏÎ <code>set_markup"
-"(\"text\")</code>, where <code>\"text\"</code> ÏÎÏ ÎÎÎÎÎ ÎÎÎÎÎÎÎ ÏÏÎ <link "
-"href=\"http://developer.gnome.org/pango/stable/PangoMarkupFormat.html";
-"\">ÎÎÏÏÏÎ ÏÎÎÎÎÏÎÏ Pango</link>. ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ:"
+"ÎÏÎÎÎÎ 44: ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ ÎÏÎÎÎÏÎÏ ÏÏÎÏ ÎÎ ÎÎÏÎÎÎÏÏÎÎ Î ÎÏÎÎÎÏÏ ÏÏÎ ÎÎÎÏÎÏÏÎ "
+"ÏÏÎÎ ÏÎÎÎÎÎ. ÎÏÏÎÎÎ ÎÎÎÎÎ ÎÎÎÎÎÏ, ÎÎ ÎÎÎÎÎÏÏÎÎÎ ÎÏÎÏÏÎÏÎ."
 
-#: C/label.js.page:7(title)
-msgid "Label (JavaScript)"
-msgstr "ÎÏÎÎÎÏÎ (JavaScript)"
+#: C/record-collection.js.page:164(section/title)
+msgid "Connecting to and initializing the database"
+msgstr "ÎÏÎÎÎÏÎ ÎÎÎ ÎÏÏÎÎÎÏÎÎÎÏÎ ÎÎ ÏÎ ÎÎÏÎ ÎÎÎÎÎÎÎÏÎ"
 
-#: C/label.js.page:17(desc)
-msgid "A label which can contain text"
-msgstr "ÎÎÎ ÎÏÎÎÎÏÎ ÏÎÏ ÎÏÎÏÎÎ ÎÎ ÏÎÏÎÎÏÎÎ ÎÎÎÎÎÎÎ"
+#: C/record-collection.js.page:165(section/p)
+msgid ""
+"The code which makes the connection to the database is in the "
+"<code>setupDatabase</code> method below:"
+msgstr ""
+"Î ÎÏÎÎÎÎÏ ÏÎÏ ÎÎÎÎÎ ÏÎ ÏÏÎÎÎÏÎ ÏÏÎ ÎÎÏÎ ÎÎÎÎÎÎÎÏÎ ÎÎÎÎÎ ÏÏÎÎ ÏÎÏÎÎÎÏÏ ÎÎÎÎÎÎ "
+"<code>setupDatabase</code>:"
 
-#: C/label.js.page:22(p)
-msgid "A label displaying a friendly message."
-msgstr "ÎÎÎ ÎÏÎÎÎÏÎ ÏÎÏ ÎÎÏÎÎÎÎÎÎ ÎÎÎ ÏÎÎÎÎÏ ÎÎÎÏÎÎ."
+#: C/record-collection.js.page:168(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"  setupDatabase: function () {\n"
+"    this.connection = new Gda.Connection ({provider: Gda.Config.get_provider(\"SQLite\"),\n"
+"                                          cnc_string:\"DB_DIR=\" + GLib.get_home_dir () + \";DB_NAME=gnome_demo\"});\n"
+"    this.connection.open ();\n"
+"\n"
+"    try {\n"
+"      var dm = Gda.execute_select_command (this.connection, \"select * from demo\");\n"
+"    } catch (e) {\n"
+"      Gda.execute_non_select_command (this.connection, \"create table demo (id integer, name varchar(100))\");\n"
+"    }\n"
+"  },"
+msgstr ""
+"\n"
+"  setupDatabase: function () {\n"
+"    this.connection = new Gda.Connection ({provider: Gda.Config.get_provider(\"SQLite\"),\n"
+"                                          cnc_string:\"DB_DIR=\" + GLib.get_home_dir () + \";DB_NAME=gnome_demo\"});\n"
+"    this.connection.open ();\n"
+"\n"
+"    try {\n"
+"      var dm = Gda.execute_select_command (this.connection, \"select * from demo\");\n"
+"    } catch (e) {\n"
+"      Gda.execute_non_select_command (this.connection, \"create table demo (id integer, name varchar(100))\");\n"
+"    }\n"
+"  },"
 
-#: C/label.c.page:7(title)
-msgid "Label (C)"
-msgstr "ÎÏÎÎÎÏÎ (C)"
+#: C/record-collection.js.page:182(item/p)
+msgid ""
+"Lines 2â3: Create the GDA's <code>Connection</code> object. We must supply "
+"to its constructor some properties:"
+msgstr ""
+"ÎÏÎÎÎÎÏ 2-3: ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ ÎÎÏÎÎÎÎÎÎÎÎÏ ÏÎÏ GDA <code>Connection</code>. "
+"ÎÏÎÏÎÎ ÎÎ ÎÏÏÎÏÎÎ ÏÏÎÎ ÎÎÏÎÏÎÎÏÎÏÏÎ ÎÎÏÎÎÎÏ ÎÎÎÏÏÎÏÎÏ:"
 
-#: C/js.page:7(title)
-msgid "JavaScript"
-msgstr "JavaScript"
+#: C/record-collection.js.page:185(item/p)
+msgid ""
+"<code>provider</code>: One of GDA's supported providers. GDA supports "
+"SQLite, MySQL, PostgreSQL, Oracle and many others. For demo purposes we will "
+"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>: ÎÎÎÏ ÎÏÏ ÏÎÏÏ ÏÏÎÏÏÎÏÎÎÏÎÎÎÎÏÏ ÏÎÏÏÏÎÏÏ. ÎÎ GDA "
+"ÏÏÎÏÏÎÏÎÎÎÎ SQLite, MySQL, PostgreSQL, Oracle ÎÎÎ ÏÎÎÎÎÏÏ ÎÎÎÎÏÏ. ÎÎÎ ÏÎÏÏ "
+"ÏÎÎÏÎÏÏ ÏÎÏ ÏÎÏÎÏÏÎÎÏÎÏ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÏÎ ÎÎÏÎ ÎÎÎÎÎÎÎÏÎ SQLite, ÎÏÎÎÎÎ "
+"ÎÎÎÎÎÎÏÏÎÏÎÎ ÎÏÏ ÏÏÎÎÏÎÎÎÎÎ ÏÏÎÏ ÏÎÏÎÏÏÏÏÎÏÎÏ ÎÎÎÎÎÎÎÏ ÎÎÎ ÎÎÎÎÎ ÎÏÎÎ ÏÏÎ "
+"ÏÏÎÏÎ (ÏÏÎÏÎÎÎÏÎÎÎÎ ÎÏÎÎ ÎÎÎ ÎÏÏÎÎÎ ÏÏ ÎÎÏÎ ÎÎÎÎÎÎÎÏÎ)."
 
-#: C/js.page:16(title)
-msgid "Tutorials, code samples and platform demos in JavaScript"
-msgstr "ÎÎÎÎÎÎÏÎ, ÎÎÎÎÎÎÏÎ ÎÏÎÎÎÎ ÎÎÎ ÏÎÏÎÎÎÎÎÎÎÏÎ ÏÎÎÏÏÏÏÎÎÏ ÏÎ JavaScript"
+#: C/record-collection.js.page:188(item/p)
+msgid ""
+"<code>cnc_string</code>: The connection string. It may change from provider "
+"to provider. The syntax for SQLite is: <code>DB_DIR=<var>PATH</var>;"
+"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>: Î ÏÏÎÎÎÎÎÏÎÎÏÎ ÏÏÎÎÎÏÎÏ. ÎÏÎÏÎÎ ÎÎ ÎÎÎÎÎÎÎ ÎÏÏ "
+"ÏÎÏÎÏÎ ÏÎ ÏÎÏÎÏÎ. Î ÏÏÎÏÎÎÎ ÎÎÎ ÏÎ SQLite ÎÎÎÎÎ: <code>DB_DIR=<var>PATH</"
+"var>;DB_NAME=<var>FILENAME</var></code>. ÎÎ ÎÏÏÎ ÏÎÎ ÏÎÏÎÏÏÎÎÏÎ "
+"ÏÏÎÏÏÎÎÎÎÎÏÎÎ ÎÎÎ ÎÎÏÎ ÎÎÎÎÎÎÎÏÎ ÏÎÏ ÎÎÎÎÏÎÎ gnome_demo ÏÏÎÎ ÏÏÎÏÏÏÎÎÏ "
+"ÎÎÏÎÎÎÎÎ ÏÏÎÏÏÎ (ÏÎÎÎÎÏÏÏÎ ÏÎÎ ÎÎÎÏÎ ÏÏÎ ÏÏÎÎÏÏÎÏÎ .GLib's "
+"<code>get_home_dir</code>)."
 
-#: C/index.page:7(name)
-msgid "GNOME Documentation Team"
-msgstr "ÎÎÎÎÎ ÏÎÎÎÎÏÎÏÏÎÏ GNOME"
+#: C/record-collection.js.page:192(note/p)
+msgid ""
+"If the provider is not supported by GDA, or if the connection string is "
+"missing some element, line 2 will raise an exception. So, in real life we "
+"should handle it with JavaScript's statement <code>try</code>...<code>catch</"
+"code>."
+msgstr ""
+"ÎÎÎ Î ÏÎÏÎÏÎÏ ÎÎÎ ÏÏÎÏÏÎÏÎÎÎÏÎÎ ÎÏÏ GDA, Î ÎÎÎ ÎÎÎÏÎÎ ÏÏÎ ÏÏÎÎÎÎÎÏÎÎÏÎ "
+"ÏÏÎÎÎÏÎÏ ÎÎÏÎÎÎ ÏÏÎÎÏÎÎÎ, Î ÎÏÎÎÎÎ 2 ÎÎ ÎÎÎÎÏÎÎ ÎÎÎ ÎÎÎÎÏÎÏÎ. ÎÏÏÎ, ÏÏÎÎ "
+"ÏÏÎÎÎÎÏÎÎÎ ÎÏÎ ÎÎ ÏÎ ÏÎÎÏÎÏÏÎÏÎÎ ÎÎ ÎÎÎ ÏÏÏÏÎÏÎ ÏÎÏ JavaScript <code>try</"
+"code>...<code>catch</code>."
 
-#: C/index.page:9(years)
-msgid "2010, 2011"
-msgstr "2010, 2011"
+#: C/record-collection.js.page:196(item/p)
+msgid ""
+"Line 4: Open the connection. In the SQLite provider, if the database does "
+"not exist, it will be created in this step."
+msgstr ""
+"ÎÏÎÎÎÎ 4: ÎÎÎÎÎÎÎ ÏÎÏ ÏÏÎÎÎÏÎÏ. ÎÏÎÎ ÏÎÏÎÏÎ SQLite, ÎÎÎ Î ÎÎÏÎ ÎÎÎÎÎÎÎÏÎ ÎÎÎ "
+"ÏÏÎÏÏÎÎ, ÎÎ ÎÎÎÎÎÏÏÎÎÎÎÎ ÏÎ ÎÏÏÏ ÏÎ ÎÎÎÎ."
 
-#: C/index.page:27(title)
-msgid "GNOME Developer Platform Demos"
-msgstr "ÎÎÏÎÎÎÎÎÎÎÏÎ ÎÎÎÏÏÏÎÎÏ ÏÎÎÏÏÏÏÎÎÏ GNOME"
+#: C/record-collection.js.page:198(item/p)
+msgid ""
+"Lines 6â10: Try to do a simple select to check if the table exists (line 7). "
+"If it does not exist (because the database was just created), this command "
+"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 ""
+"ÎÏÎÎÎÎÏ 6-10: ÎÏÎÏÏÎÎÎÏÏÎ ÎÎ ÎÎÎÎÏÎ ÎÎÎ ÎÏÎÎ ÎÏÎÎÎÎÎ ÎÎÎ ÎÎÎÎÏÎ ÏÏÎÏÎÎÏ ÏÎÏ "
+"ÏÎÎÎÎÎ (ÎÏÎÎÎÎ 7). ÎÎÎ ÎÎÎ ÏÏÎÏÏÎÎ (ÎÏÎÎÎÎ Î ÎÎÏÎ ÎÎÎÎÎÎÎÏÎ ÎÏÎÎÏ "
+"ÎÎÎÎÎÏÏÎÎÎÎÎÎ), ÎÏÏÎ Î ÎÎÏÎÎÎ ÎÎ ÎÎÎÎÏÎÎ ÎÎÎ ÎÎÎÎÏÎÏÎ, ÏÎÏ ÎÏÎÎÎÏÎÎÎÎÏÎÎ ÎÏÏ "
+"ÏÎÎ ÎÎÎÎÎ <code>try</code>...<code>catch</code>. ÎÎÎ ÏÏÎÎÎÎÎÎÎ ÎÏÏÏ, "
+"ÏÏÎÏÎÏÎÎ ÏÎ ÎÎÎÎÎÏÏÎÎÎ ÏÏÏÏÎÏÎÏ ÏÎÎÎÎÎ (ÎÏÎÎÎÎ 9)."
+
+#: C/record-collection.js.page:199(item/p)
+msgid ""
+"In order to run the SQL commands above we are using global GDA functions, "
+"<code>execute_select_command</code> and <code>execute_non_select_command</"
+"code>. They are simple to use, and just require two arguments: The "
+"<code>Connection</code> object and the SQL command to be parsed."
+msgstr ""
+"ÎÎÎ ÏÎÎ ÎÎÏÎÎÎÏÎ ÏÏÎ ÏÎÏÎÏÎÎÏ ÎÎÏÎÎÏÎ SQL ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÏÎÏ ÎÎÎÎÎÎÏ "
+"ÏÏÎÎÏÏÎÏÎÎÏ GDA, <code>execute_select_command</code> ÎÎÎ "
+"<code>execute_non_select_command</code>. ÎÎÎÎÎ ÎÏÎÎÏ ÏÏÎ ÏÏÎÏÎ ÎÎÎ ÎÏÎÎÏÎÏÎ "
+"ÎÏÎÎ ÎÏÎ ÎÏÎÏÎÎÏÎ: ÎÎ ÎÎÏÎÎÎÎÎÎÎÎ <code>Connection</code> ÎÎÎ ÏÎÎ ÎÎÏÎÎÎ SQL "
+"ÎÎ ÎÎÎÎÏÎÎÎ."
 
-#: C/index.page:30(title)
-msgid "How to set up your development environment"
-msgstr "ÎÏÏ ÎÎ ÎÎÎÎÏÎÏÏÎÏÎÏÎ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÎÎÎÏÏÏÎÎÏ"
+#: C/record-collection.js.page:203(section/p)
+msgid "At this point we have the database set up, and are ready to use it."
+msgstr ""
+"ÎÎ ÎÏÏÏ ÏÎ ÏÎÎÎÎÎ ÎÏÎÏÎÎ ÏÏÎÎÎÏÎÎ ÏÎ ÎÎÏÎ ÎÎÎÎÎÎÎÏÎ ÎÎÎ ÎÎÎÎÏÏÎ ÎÏÎÎÎÎÎ ÎÎ "
+"ÏÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ."
 
-#: C/index.page:34(title)
-msgid "Tutorials, code samples, platform demos and more"
-msgstr "ÎÎÎÎÎÎÏÎ, ÎÎÎÎÎÎÏÎ ÎÏÎÎÎÎ, ÏÎÏÎÎÎÎÎÎÎÏÎ ÏÎÎÏÏÏÏÎÎÏ ÎÎÎ ÎÎÎÎ"
+#: C/record-collection.js.page:207(section/title)
+msgid "Selecting"
+msgstr "ÎÏÎÎÎÎÎ"
 
-#: C/index.page:38(title)
-msgid "Get Involved"
-msgstr "ÎÏÎÎÎÏÎÏÎ"
+#: C/record-collection.js.page:208(section/p)
+msgid ""
+"After connecting to the database, our demo's constructor calls the "
+"<code>selectData</code> method. It is responsible for getting all the "
+"records in the table and showing them on the <code>TextView</code> widget. "
+"Let's take a look at it:"
+msgstr ""
+"ÎÎÏÎ ÏÎÎ ÏÏÎÎÎÏÎ ÎÎ ÏÎ ÎÎÏÎ ÎÎÎÎÎÎÎÏÎ, Î ÎÎÏÎÏÎÎÏÎÏÏÎÏ ÏÎÏ ÏÎÏÎÏÏÎÎÏÎÏ ÎÎÏ "
+"ÎÎÎÎÎ ÏÎ ÎÎÎÎÎÎ<code>selectData</code>. ÎÎÎÎÎ ÏÏÎÏÎÏÎÎ ÎÎÎ ÏÎ ÎÎÏÎ ÏÎÏÎ ÏÏÎ "
+"ÎÎÎÏÎÏÏÎ ÏÏÎÎ ÏÎÎÎÎÎ ÎÎÎ ÏÎÎ ÎÎÏÎÎÎÏÎ ÏÎÏÏ ÏÏÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ "
+"<code>TextView</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/image-viewer.vala.page:48(None) C/image-viewer.py.page:41(None)
-#: C/image-viewer.js.page:42(None) C/image-viewer.cpp.page:31(None)
-#: C/image-viewer.c.page:33(None)
-msgid "@@image: 'media/image-viewer.png'; md5=7720360611243b14283b83527be968c2"
+#: C/record-collection.js.page:211(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"  selectData: function () {\n"
+"    var dm = Gda.execute_select_command (this.connection, \"select * from demo order by 1, 2\");\n"
+"    var iter = dm.create_iter ();\n"
+"\n"
+"    var text = \"\";\n"
+"\n"
+"    while (iter.move_next ()) {\n"
+"      var id_field = Gda.value_stringify (iter.get_value_at (0));\n"
+"      var name_field = Gda.value_stringify (iter.get_value_at (1));\n"
+"\n"
+"      text += id_field + \"\\t=&gt;\\t\" + name_field + '\\n';\n"
+"    }\n"
+"\n"
+"    this.text.buffer.text = text;\n"
+"    this.count_label.label = \"&lt;i&gt;\" + dm.get_n_rows () + \" record(s)&lt;/i&gt;\";\n"
+"  },"
 msgstr ""
-"@@image: 'media/image-viewer.png'; md5=7720360611243b14283b83527be968c2"
+"\n"
+"  selectData: function () {\n"
+"    var dm = Gda.execute_select_command (this.connection, \"select * from demo order by 1, 2\");\n"
+"    var iter = dm.create_iter ();\n"
+"\n"
+"    var text = \"\";\n"
+"\n"
+"    while (iter.move_next ()) {\n"
+"      var id_field = Gda.value_stringify (iter.get_value_at (0));\n"
+"      var name_field = Gda.value_stringify (iter.get_value_at (1));\n"
+"\n"
+"      text += id_field + \"\\t=&gt;\\t\" + name_field + '\\n';\n"
+"    }\n"
+"\n"
+"    this.text.buffer.text = text;\n"
+"    this.count_label.label = \"&lt;i&gt;\" + dm.get_n_rows () + \" record(s)&lt;/i&gt;\";\n"
+"  },"
 
-#: C/image-viewer.vala.page:7(title)
-msgid "Image Viewer (Vala)"
-msgstr "ÎÏÎÎÎÎÎÎÏ ÎÎÎÏÎÏÎ (Vala)"
+#: C/record-collection.js.page:229(item/p)
+msgid ""
+"Line 2: The <code>SELECT</code> command. We are using the global GDA's "
+"function <code>execute_select_command</code> for that. It returns a "
+"<code>DataModel</code> object, which is later used to retrieve the rows."
+msgstr ""
+"ÎÏÎÎÎÎ 2: Î ÎÎÏÎÎÎ <code>SELECT</code>. ÎÏÎÏÎÎÎÏÎÎÎÏÎÎ ÏÎ ÎÎÎÎÎÎ ÏÏÎÎÏÏÎÏÎ "
+"ÏÎÏ GDA <code>execute_select_command</code> ÎÎÎ ÎÏÏÏ. ÎÏÎÏÏÏÎÏÎÎ ÎÎÎ "
+"ÎÎÏÎÎÎÎÎÎÎÎ <code>DataModel</code>, ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÎÏÎÏÏÎÏÎ ÎÎÎ "
+"ÎÎÎÎÏÎÏÎ ÏÏÎ ÎÏÎÎÎÏÎ."
 
-#: C/image-viewer.vala.page:10(desc) C/image-viewer.c.page:10(desc)
-msgid "A little bit more than a simple \"Hello world\" Gtk application."
-msgstr "ÎÎÏÎ ÏÎÏÎÏÏÏÏÎÏÎ ÎÏÏ ÎÏÎÎ ÎÏÎÏÎÎÎÎ Gtk ÏÏÏÏ ÏÎ \"ÎÎÎÎ ÏÎÏ ÎÏÏÎÎ\"."
+#: C/record-collection.js.page:230(item/p)
+msgid ""
+"Line 3: Create an <code>Iter</code> object, which is used to iterate over "
+"the <code>DataModel</code>'s records."
+msgstr ""
+"ÎÏÎÎÎÎ 3: ÎÎÎÎÎÏÏÎÎÎ ÎÎÏÎÎÎÎÎÎÎÎÏ <code>Iter</code>, ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÎÎÎ "
+"ÎÏÎÎÎÎÎÏÎ ÏÏÎÏ ÎÎÎÏÎÏÎÏ ÏÎÏ <code>DataModel</code>."
 
-#: C/image-viewer.vala.page:22(name)
-msgid "Philip Chimento"
-msgstr "Philip Chimento"
+#: C/record-collection.js.page:231(item/p)
+msgid ""
+"Line 7: Loop through all the records, fetching them with the help of the "
+"<code>Iter</code> object. At this point, the <code>iter</code> variable "
+"contains the actual, retrieved data. Its <code>move_next</code> method "
+"returns <code>false</code> when it reaches the last record."
+msgstr ""
+"ÎÏÎÎÎÎ 7: ÎÏÏÏÎÏ ÎÎÏÎ ÎÏÏ ÏÎÎÏ ÏÎÏ ÎÎÎÏÎÏÎÏ, ÏÎÏÎÎÎÏÎÏ ÏÎÏ ÎÎ ÏÎ ÎÎÎÎÎÎÎ ÏÎÏ "
+"ÎÎÏÎÎÎÎÎÎÎÎÏ <code>Iter</code>. ÎÎ ÎÏÏÏ ÏÎ ÏÎÎÎÎÎ, Î ÎÎÏÎÎÎÎÏÎ <code>iter</"
+"code> ÏÎÏÎÎÏÎÎ ÏÎ ÎÎÎÏÎÎ ÎÎÎÎÏÎÎÎÎÎ ÎÎÎÎÎÎÎÎ. Î ÎÎÎÎÎÎÏ ÏÎÏ <code>move_next</"
+"code> ÎÏÎÏÏÏÎÏÎÎ <code>false</code> ÏÏÎÎ ÏÏÎÎÎÎ ÏÎÎ ÏÎÎÎÏÏÎÎÎ ÎÎÎÏÎÏÎ."
 
-#: C/image-viewer.vala.page:23(email)
-msgid "philip chimento gmail com"
-msgstr "philip chimento gmail com"
+#: C/record-collection.js.page:233(item/p)
+msgid "Lines 8â9: We do two things in each line:"
+msgstr "ÎÏÎÎÎÎÏ 8-9: ÎÎÎÎÏÎÎ ÎÏÎ ÏÏÎÎÎÎÏÎ ÏÎ ÎÎÎÎ ÎÏÎÎÎÎ:"
 
-#: C/image-viewer.vala.page:31(title) C/image-viewer.py.page:24(title)
-#: C/image-viewer.js.page:24(title)
-msgid "1 Image Viewer"
-msgstr "1 ÎÏÎÎÎÎÎÎÏ ÎÎÎÏÎÏÎ"
+#: C/record-collection.js.page:235(item/p)
+msgid ""
+"Use <code>Iter</code>'s method <code>get_value_at</code>, which requires "
+"only one argument: the column number to retrieve, starting at 0. As our "
+"<code>SELECT</code> command returns only two columns, we are retrieving "
+"columns 0 and 1."
+msgstr ""
+"ÎÏÎÏÎ ÏÎÏ ÎÎÎÏÎÎÏ ÏÎÏ <code>Iter</code> <code>get_value_at</code>, ÏÎÏ "
+"ÎÏÎÎÏÎÎ ÎÏÎÎ ÎÎÎ ÏÏÎÏÎÎ: Î ÎÏÎÎÎÏÏ ÏÎÏ ÏÏÎÎÎÏ ÎÎÎ ÎÎÎÎÏÎÏÎ, ÏÎÏ ÎÎÎÎÎÎ ÎÏÏ "
+"0. ÎÎÎÏÏ Î ÎÎÏÎÎÎ ÎÎÏ <code>SELECT</code> ÎÏÎÏÏÏÎÏÎÎ ÎÏÎÎ ÎÏÎ ÏÏÎÎÎÏ, "
+"ÎÎÎÎÏÎÏÎÎ ÏÎÏ ÏÏÎÎÎÏ 0 ÎÎÎ 1."
 
-#: C/image-viewer.vala.page:33(p)
+#: C/record-collection.js.page:236(item/p)
 msgid ""
-"In this tutorial you will create an application which opens and displays an "
-"image file. You will learn:"
+"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 ""
-"ÎÎ ÎÏÏÏÎ ÏÎ ÎÎÎÎÎÎ ÎÎ ÏÏÎÎÎÎÏÎ ÎÎÎ ÎÏÎÏÎÎÎÎ ÏÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÏÎÎÎÎÎÎ ÎÎÎ "
-"ÎÏÏÎÎÎ ÎÎÎÏÎÎÏ. ÎÎ ÎÎÎÎÏÎ:"
+"Î ÎÎÎÎÎÎÏ <code>get_value_at</code> ÎÏÎÏÏÏÎÏÎÎ ÏÎ ÏÎÎÎÎ ÏÎ ÎÎÏÏÎ "
+"<code>GValue</code> ÏÎÏ GLib. ÎÎÎÏ ÎÏÎÏÏ ÏÏÏÏÎÏ ÎÎÏÎÏÏÎÏÎÏ ÎÏÏÎÏ ÏÎÏ ÎÎÏÏÎÏ "
+"ÏÎ ÏÏÎÎÎÎÎÏÎÎÏÎ ÎÎÎÎÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ ÎÎÎÎÎÎ ÏÏÎÎÏÏÎÏÎ ÏÎÏ GDA "
+"<code>value_stringify</code>. ÎÏÏÏ ÎÎÎÎÏÎÎ ÎÎÏ ÎÎÎ ÎÏÎÎÎÎÎÏÎÏÎÎ ÏÎ "
+"ÎÏÎÏÎÎÎÏÎÎÏÎ ÏÏÎÏ ÎÎÏÎÎÎÎÏÎÏ <code>id_field</code> ÎÎÎ <code>name_field</"
+"code>."
 
-#: C/image-viewer.vala.page:35(p)
+#: C/record-collection.js.page:239(item/p)
 msgid ""
-"How to set up a basic project using the <link xref=\"getting-ready\">Anjuta "
-"IDE</link>."
+"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 ""
-"ÎÏÏ ÎÎ ÎÎÎÎÏÎÏÏÎÏÎÏÎ ÎÎÎ ÎÎÏÎÎÏ ÎÏÎÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ <link xref=\"getting-"
-"ready\">Anjuta IDE</link>."
+"ÎÏÎÎÎÎ 11: ÎÏÎÎÎÏÏÎ ÏÏÎ ÎÏÎ ÏÎÎÎÏÎ ÎÎÎ ÏÎ ÎÎÎÎÎÏÏÎÎÎ ÎÎÎÏ ÎÏÎÎÎÎÏ ÎÎÎÎÎÎÎÏ, "
+"ÎÎÎÏÏÏÎÎÏÎÎÎÎÏ ÎÎ <code>\"=&gt;\"</code> ÎÎÎ ÎÏÎÎÎÎÎÏÏÎ ÏÎÏ ÏÏÎ ÎÎÏÎÎÎÎÏÎ "
+"<code>text</code>."
 
-#: C/image-viewer.vala.page:36(p)
+#: C/record-collection.js.page:240(item/p)
 msgid ""
-"How to write a <link href=\"http://developer.gnome.org/platform-overview/";
-"stable/gtk\">Gtk application</link> in Vala"
+"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 ""
-"ÎÏÏ ÎÎ ÎÏÎÏÎÏÎ ÎÎÎ <link href=\"http://developer.gnome.org/platform-overview/";
-"stable/gtk\">ÎÏÎÏÎÎÎÎ Gtk</link> ÏÏÎ Vala"
+"ÎÏÎÎÎÎ 14: ÎÎÏÎ ÏÎ ÏÎÎÎÏ ÏÎÏ ÎÏÏÏÎÏ, ÎÏÎÏÎÎ ÏÎÎÏ ÏÎÏ ÎÎÏÏÎÏÎÎÎÎÎÎÎÏ ÎÎÎÏÎÏÎÏ "
+"ÏÏÎ ÎÎÏÎÎÎÎÏÎ <code>text</code>. ÎÎ ÎÏÏÎ ÏÎ ÎÏÎÎÎÎ ÎÏÎÎÎÏÎÎ ÎÏÎÎ ÏÎ "
+"ÏÎÏÎÎÏÏÎÎÎÎ ÏÎÏ <code>TextView</code> ÎÎ ÎÏÏÎ ÏÎ ÎÎÏÎÎÎÎÏÎ."
 
-#: C/image-viewer.vala.page:37(p)
+#: C/record-collection.js.page:241(item/p)
 msgid ""
-"Some basic concepts of <link href=\"http://developer.gnome.org/gobject/";
-"stable/\">GObject</link> programming"
+"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 ""
-"ÎÎÏÎÎÎÏ ÎÎÏÎÎÎÏ ÎÎÎÎÎÎÏ ÏÎÏ ÏÏÎÎÏÎÎÎÎÏÎÏÎÎÏ <link href=\"http://developer.";
-"gnome.org/gobject/stable/\">GObject</link>"
+"ÎÏÎÎÎÎ 15: ÎÎÏÎÎÎÏÎ ÏÎÏ ÎÏÎÎÎÎÏ ÏÏÎ ÎÎÎÏÎÏÏÎ ÏÏÎÎ ÏÎÎÎÎÎ, ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ "
+"ÎÎÎÎÎÎ <code>get_n_rows</code> ÏÎÏ <code>DataModel</code>."
+
+#: C/record-collection.js.page:246(section/title)
+msgid "Inserting"
+msgstr "ÎÎÏÎÎÏÎÎ"
 
-#: C/image-viewer.vala.page:42(p) C/guitar-tuner.vala.page:37(p)
+#: C/record-collection.js.page:247(section/p)
 msgid ""
-"Basic knowledge of the <link href=\"https://live.gnome.org/Vala/Tutorial";
-"\">Vala</link> programming language."
+"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 ""
-"ÎÎÏÎÎÎ ÎÎÏÏÎ ÏÎÏ ÎÎÏÏÏÎÏ ÏÏÎÎÏÎÎÎÎÏÎÏÎÎÏ <link href=\"https://live.gnome.org/";
-"Vala/Tutorial\">Vala</link>."
+"ÎÎÏÎÎÎÎ, ÎÎÏÎÏÎÎ ÏÏÏ ÎÎ ÏÏÎÎÎÎÎÏÎÎ ÎÎ ÎÎÎ ÎÎÏÎ ÎÎÎÎÎÎÎÏÎ ÎÎÎ ÏÏÏ ÎÎ "
+"ÎÎÎÎÎÎÎÏÎÎ ÎÏÎÎÎÎÏ ÎÏÏ ÎÎÎÎ ÏÎÎÎÎÎ. ÎÏÏÎ ÎÎÎÎÎ ÏÏÎ ÎÎ ÎÎÎÎÏÎÎ ÎÎÎÎ "
+"<code>INSERT</code> ÏÏÎÎ ÏÎÎÎÎÎ. ÎÏÎÏÏÎÏÏÎ ÏÎÏÎÏÎÎÏ, ÏÏÎ ÎÎÎÎÎÎ "
+"<code>setupWindow</code> ÏÏÎÎÎÏÎÎÎ ÏÎ <gui>Insert</gui> ÏÎÏ ÎÎÏÎÏÎÎÏ ÎÎ ÏÎ "
+"ÏÎÎÎ <code>clicked</code> ÏÏÎ ÎÎÎÎÎÎ <code>_insertClicked</code>; ÎÏ ÎÎÏÎÎ "
+"ÏÎÎ ÏÎÎÏÎÎÎÏÎ ÎÏÏÎÏ ÏÎÏ ÎÎÎÏÎÎÏ."
 
-#: C/image-viewer.vala.page:43(p) C/guitar-tuner.vala.page:38(p)
-msgid "An installed copy of <app>Anjuta</app>."
-msgstr "ÎÎÎ ÎÎÎÎÏÎÏÏÎÎÎÎÎ ÎÎÏÎÎÏÎÏÎ ÏÎÏ <app>Anjuta</app>."
+#: C/record-collection.js.page:250(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"  _insertClicked: function () {\n"
+"    if (!this._validateFields ())\n"
+"      return;\n"
+"\n"
+"    // Gda.execute_non_select_command (this.connection,\n"
+"    //   \"insert into demo values ('\" + this.id_entry.text + \"', '\" + this.name_entry.text + \"')\");\n"
+"\n"
+"    var b = new Gda.SqlBuilder ({stmt_type:Gda.SqlStatementType.INSERT});\n"
+"    b.set_table (\"demo\");\n"
+"    b.add_field_value_as_gvalue (\"id\", this.id_entry.text);\n"
+"    b.add_field_value_as_gvalue (\"name\", this.name_entry.text);\n"
+"    var stmt = b.get_statement ();\n"
+"    this.connection.statement_execute_non_select (stmt, null);\n"
+"\n"
+"    this._clearFields ();\n"
+"    this.selectData ();\n"
+"  },"
+msgstr ""
+"\n"
+"  _insertClicked: function () {\n"
+"    if (!this._validateFields ())\n"
+"      return;\n"
+"\n"
+"    // Gda.execute_non_select_command (this.connection,\n"
+"    //   \"insert into demo values ('\" + this.id_entry.text + \"', '\" + this.name_entry.text + \"')\");\n"
+"\n"
+"    var b = new Gda.SqlBuilder ({stmt_type:Gda.SqlStatementType.INSERT});\n"
+"    b.set_table (\"demo\");\n"
+"    b.add_field_value_as_gvalue (\"id\", this.id_entry.text);\n"
+"    b.add_field_value_as_gvalue (\"name\", this.name_entry.text);\n"
+"    var stmt = b.get_statement ();\n"
+"    this.connection.statement_execute_non_select (stmt, null);\n"
+"\n"
+"    this._clearFields ();\n"
+"    this.selectData ();\n"
+"  },"
 
-#: C/image-viewer.vala.page:44(p)
+#: C/record-collection.js.page:268(section/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."
+"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 ""
-"ÎÏÏÏ ÎÏÎÎÏÎ ÏÎÎ ÎÎÎÏÎÏÎ API <link href=\"http://valadoc.org/gtk+-3.0/\";>gtk"
-"+-3.0</link> ÏÏÎÏÎÎÎ, ÎÎ ÎÎÎ ÎÎÎ ÎÎÎÎÎ ÎÏÎÏÎÎÏÎÏÎ Î ÏÎÏÎÎÎÎÎÏÎÎÏÎ ÏÎÏ "
-"ÎÎÎÎÎÎÏÎÏ."
+"ÎÎÎÎÎÎ ÏÎ ÏÏÎÏÎ ÏÏÎ ÏÏÎÎÏÏÎÏÎÏÎ ÎÏÎÎÎÎÎÏ ÏÎÏ GDA "
+"<code>execute_select_command</code> ÎÎÎ <code>execute_non_select_command</"
+"code> ÎÎÎ ÎÏÎÎÎÏÎ ÎÎÏÎÎÎÏÎ ÎÎÏÎÎÏÎ SQL ÏÏÎ ÎÎÏÎ ÎÎÎÎÎÎÎÏÎ. ÎÎ GDA ÎÏÎÏÏÎÏÎÎ "
+"ÏÎÎ ÎÎÏÎÏÎÎÏÎ ÎÎÎÏ ÏÏÏÏÎÏÎÏ SQL ÎÎÎÎÏÎ, ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ ÎÎÏÎÎÎÎÎÎÎÎ ÏÎÏ "
+"<code>SqlBuilder</code>. ÎÎÎÎ ÎÎÎÎÎ ÏÎ ÎÏÎÎÎ ÏÎÏ; GDA ÎÎ ÏÎÏÎÎÎÎ ÏÎÎ ÏÏÏÏÎÏÎ "
+"SQL ÎÏÎÎÎÎÎÎ ÎÎÎ ÎÎ ÎÏÎÎÏÏÏÎÎÎ ÎÎÎ ÏÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎÎÎ ÏÎÏÎÏÎ ÏÏÎÎÎÏÎÏ (ÎÎ "
+"ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÎÎÎ ÎÎÎÎÎÎÏÎ SQL ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÎ Î ÏÎÏÎÏÎÏ). ÎÏ "
+"ÎÎÎÎÏÎÏÎÏÎÎ ÏÎÎ ÎÏÎÎÎÎ:"
 
-#: C/image-viewer.vala.page:57(p) C/guitar-tuner.vala.page:49(p)
+#: C/record-collection.js.page:272(item/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."
+"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 ""
-"ÎÎÎÎÎÎÏÏÎ ÏÎ <app>Anjuta</app> ÎÎÎ ÏÎÏÎÏÏÎ <gui>ÎÎÎÎÎÏÏÎÎÎ ÎÎÎÏ ÎÏÎÎÏ</gui> "
-"Î <guiseq><gui>ÎÏÏÎÎÎ</gui><gui>ÎÎÎ</gui><gui>ÎÏÎÎ</gui></guiseq> ÎÎÎ ÎÎ "
-"ÎÎÎÎÎÎÏÎ ÏÎÎ ÎÎÎÎÏ ÏÎÏ ÎÏÎÎÏ."
+"ÎÏÎÎÎÎÏ 2-3: ÎÎÎÎÎÏÎ ÎÎÎ Î ÏÏÎÏÏÎÏ ÏÏÎÏÎÎÏÏÏÎ ÏÎÎ ÏÎ ÏÎÎÎÎ. Î ÎÏÎÎÎÎÏ ÎÎÎ "
+"ÏÎÎ ÎÎÎÏÏÎÎÎ ÎÎÎÎÎÎ <code>_validateFields</code> ÎÎÎÎÎ ÏÏÎÎÎÎÏÎÎÎ ÎÏÎÏÏ ÎÎÎ "
+"ÎÏÎÏÎÎÏÎ ÎÎ ÏÎÎ ÎÎÎÎÎÏÎÏÎ ÏÏÎÎ ÏÎÎÏÎ ÏÎÏÎÏÏÎÎÏÎ ÏÎÎÎÎÎÏ ÎÏÎÎÎÎ."
 
-#: C/image-viewer.vala.page:60(p)
+#: C/record-collection.js.page:273(item/p)
 msgid ""
-"From the <gui>Vala</gui> tab choose <gui>Gtk+ (Simple)</gui>, click "
-"<gui>Continue</gui>, and fill out your details on the next page. Use "
-"<file>image-viewer</file> as project name and directory."
+"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 ""
-"ÎÏÏ ÏÎÎ ÎÎÏÏÎÎÎ <gui>Vala</gui> ÎÏÎÎÎÎÏÎ <gui>Gtk+ (ÎÏÎÏ)</gui>, ÎÎÎÎ "
-"<gui>ÏÏÎÎÏÎÎÎ</gui> ÎÎÎ ÏÏÎÏÎÎÏÏÏÏÎ ÏÎÏ ÎÎÏÏÎÎÎÏÎÎÎÏ ÏÎÏ ÏÏÎÎ ÎÏÏÎÎÎÎ "
-"ÏÎÎÎÎÎ. ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ ÏÎ <file>image-viewer</file> ÏÏ ÏÎÎÎÎ ÏÎÏ ÎÏÎÎÏ ÎÎÎ "
-"ÏÎÏ ÎÎÏÎÎÏÎÎÏ."
+"ÎÏÎÎÎÎ 5: Î ÎÏÎÎÎÏÏÏÎÏÎÏ ÏÏÏÏÎÏ ÎÎÎ ÎÎÏÎÎÎÏÎ ÏÎÏ <code>INSERT</code>. "
+"ÎÏÎÎÎÎÎÎÏÎÎ, ÎÎÎÏÏ ÎÎÎÎÏÎÎ ÎÎ ÎÎÏÎÎÎÏÎÏÎÎ ÏÎ ÏÏÎÏÎ ÏÎÏ ÎÎÏÎÎÎÎÎÎÎÎÏ "
+"<code>SqlBuilder</code> ÎÎÎ ÎÎÏÎÏÎÎÏÎ ÎÎÎÏ ÏÏÏÏÎÏÎÏ SQL ÏÎÏÎÏÎÏ ÎÎÏÎ ÎÏÏ ÏÎÏ "
+"ÎÎÏÎÎÏ ÎÎÎÎÎÎÎÏÎ."
 
-#: C/image-viewer.vala.page:64(p)
+#: C/record-collection.js.page:274(item/p)
 msgid ""
-"Make sure that <gui>Use GtkBuilder for user interface</gui> is unchecked as "
-"we will create the UI manually in this tutorial."
+"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 ""
-"ÎÎÎÎÎÏÎÎÎÏÎ ÏÏÎ ÏÎ <gui>ÏÏÎÏÎ ÏÎÏ GtkBuilder ÎÎÎ ÎÎÎÏÎÏÎ ÏÏÎÏÏÎ</gui> ÎÎÎÎÎ "
-"ÎÏÎÎÎÎÏÏÎ ÎÏÎÎÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ ÏÎÎ UI ÏÎÎÏÎÎÎÎÎÏÎ ÏÎ ÎÏÏÏ ÏÎ ÎÎÎÎÎÎ."
+"ÎÏÎÎÎÎ 7: ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ ÎÎÏÎÎÎÎÎÎÎÎÏ <code>SqlBuilder</code>. ÎÏÎÏÎÎ ÎÎ "
+"ÏÎÏÎÏÎÏÎÎ ÏÎÎ ÏÏÏÎ ÏÎÏ ÏÏÏÏÎÏÎÏ ÏÎÏ ÏÏÏÎÎÎÏÎÎ ÎÎ ÎÎÏÎÏÎÎÏÎÏÎÏÎÎ. ÎÏÎÏÎÎ ÎÎ "
+"ÎÎÎÎÎ <code>SELECT</code>, <code>UPDATE</code>, <code>INSERT</code> Î "
+"<code>DELETE</code>."
 
-#: C/image-viewer.vala.page:65(p)
+#: C/record-collection.js.page:275(item/p)
 msgid ""
-"You will learn how to use the interface builder in the <link xref=\"guitar-"
-"tuner.vala\">Guitar-Tuner</link> tutorial."
+"Line 8: Set the name of the table on which the built statement will operate "
+"(it will generate <code>INSERT INTO demo</code>)"
 msgstr ""
-"ÎÎ ÎÎÎÎÏÎ ÏÏÏ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÏÎÎ ÎÎÏÎÏÎÎÏÎÏÏÎ ÎÎÎÏÎÏÎÏ ÏÏÎ ÎÎÎÎÎÎ <link "
-"xref=\"guitar-tuner.vala\">ÏÏÎÎÎÏÏÎÏ ÎÎÎÎÏÎÏ</link>."
+"ÎÏÎÎÎÎ 8: ÎÏÎÏÎÏÏ ÏÎÏ ÎÎÏÎÎÏÎÏ ÏÎÏ ÏÎÎÎÎÎ ÏÏÎÎ ÎÏÎÎÎ Î ÎÎÏÎÏÎÎÏÎÏÎÎÎÎ "
+"ÏÏÏÏÎÏÎ ÎÎ ÎÎÎÏÎÏÏÎÎÏÎÎ (ÎÎ ÏÎÏÎÎÎÎ <code>INSERT INTO demo</code>)"
 
-#: C/image-viewer.vala.page:69(p)
+#: C/record-collection.js.page:276(item/p)
 msgid ""
-"Click <gui>Continue</gui> then <gui>Apply</gui> and the project will be "
-"created for you. Open <file>src/image_viewer.vala</file> from the "
-"<gui>Project</gui> or <gui>File</gui> tabs. You will see this code:"
+"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 ""
-"ÎÎÏÎÏÏÎ <gui>ÏÏÎÎÏÎÎÎ</gui>, ÎÏÎÎÏÎ <gui>ÎÏÎÏÎÎÎÎ</gui> ÎÎÎ ÏÎ ÎÏÎÎ ÎÎ "
-"ÎÎÎÎÎÏÏÎÎÎÎÎ ÎÎÎ ÎÏÎÏ. ÎÎÎÎÎÏÎ ÏÎ <file>src/image_viewer.vala</file> ÎÏÏ ÏÎÏ "
-"ÎÎÏÏÎÎÎÏ <gui>ÎÏÎÎ</gui> Î <gui>ÎÏÏÎÎÎ</gui>. ÎÎ ÎÎÎÏÎ ÎÏÏÏÎ ÏÎÎ ÎÏÎÎÎÎ:"
+"ÎÏÎÎÎÎÏ 9-10: ÎÏÎÏÎÏÏ ÏÏÎ ÏÎÎÎÏÎ ÎÎÎ ÏÏÎ ÏÎÎÏÎ ÏÎÏÏ ÏÎÏ ÎÎ ÎÎÎÎÎ ÏÎÎÎÎ ÏÎÏ "
+"ÏÏÏÏÎÏÎÏ. ÎÎ ÏÏÏÏÎ ÏÏÎÏÎÎ ÎÎÎÎÎ ÏÎ ÏÎÎÎÎ ÏÎÎÎÎÏ (ÏÏÏÏ ÏÏÎÎ ÏÎÎÎÎÎ). ÎÎ "
+"ÎÎÏÏÎÏÎ ÏÏÎÏÎÎ ÎÎÎÎÎ Î ÏÎÎÎ ÎÎÎ ÎÏÏÏ ÏÎ ÏÎÎÎÎ."
 
-#: C/image-viewer.vala.page:108(p)
+#: C/record-collection.js.page:277(item/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:"
+"Line 11: Get the dynamically generated <code>Statement</code> object, which "
+"represents a SQL statement."
 msgstr ""
-"Î ÎÏÎÎÎÎÏ ÏÎÏÏÏÎÎÎ ÎÎÎ (ÎÎÎÏ) ÏÎÏÎÎÏÏÎ ÎÏÏ ÏÎ ÎÏÏÎÎÎ ÏÎÏÎÎÏÎÏÎÏ ÎÎÎÏÎÏÎÏ "
-"ÏÏÎÏÏÎ ÎÎÎ ÏÎ ÎÎÏÎÎÎÎÎÎ. ÎÎÏÎÏÏÏÏÎÏÎÏ ÏÎÎÏÎÏÎÏÎÎÏ ÏÏÎÏÏÎÏÎ ÏÎÎ ÎÎÏÏÂ "
-"ÏÏÎÏÏÎÏÎÏÏÎ ÎÏÏÎ ÏÎ ÎÎÏÏÎ ÎÎ ÎÎÏÎÎÎÎÎÎÎÎÏÎ ÏÎ ÎÎÏÎÎÎ:"
+"ÎÏÎÎÎÎ 11: ÎÎÏÎ ÏÎÏ ÎÏÎÎÎÎÎÎ ÎÎÎÎÎÏÏÎÎÎÎÎÎÏ ÎÎÏÎÎÎÎÎÎÎÎÏ <code>Statement</"
+"code>, ÏÎÏ ÎÎÏÎÏÏÎÏÏÏÎÏÎÎ ÎÎÎ ÏÏÏÏÎÏÎ SQL."
+
+#: C/record-collection.js.page:278(item/p)
+msgid "Line 12: Finally, execute the SQL statement (<code>INSERT</code>)."
+msgstr "ÎÏÎÎÎÎ 12: ÎÎÎÎÎÎ, ÎÎÏÎÎÎÏÎ ÏÎÏ ÏÏÏÏÎÏÎÏ SQL (<code>INSERT</code>)."
 
-#: C/image-viewer.vala.page:113(p)
+#: C/record-collection.js.page:279(item/p)
 msgid ""
-"The two <code>using</code> lines at the top import namespaces so we don't "
-"have to name them explicitly."
+"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 ""
-"ÎÎ ÎÏÎ ÎÏÎÎÎÎÏ <code>using</code> ÏÏÎÎ ÎÎÏÏÏÎ ÎÎÏÎÎÎÏÎ ÏÎÏÏ ÏÏÏÎÏÏ ÎÎÎÎÎÏÏÎ, "
-"ÎÏÏÎ ÏÏÏÎ ÎÎ ÎÎÎ ÎÏÎÏÎÎ ÎÎ ÎÎÎÎÎÏÏÎÏÎ ÏÎÏÎ."
+"ÎÏÎÎÎÎ 14: ÎÎÎÎÎÏÎ ÏÎÎ ÏÎÏÏÏÏÎÏÎ ÎÎÎ ÏÎÎÎÎ ÎÎÎÎÎÏÏÎ ÏÏÎÎ ÎÎÏÎÎ. Î ÎÏÎÎÎÎÏ "
+"ÎÎÎ ÏÎÎ ÎÎÎÏÏÎÎÎ ÎÎÎÎÎÎ <code>_validateFields</code> ÎÎÎÎÎ ÏÏÎÎÎÎÏÎÎÎ ÎÏÎÏÏ "
+"ÎÎÎ ÎÏÎÏÎÎÏÎ ÎÎ ÏÎÎ ÎÎÎÎÎÏÎÏÎ ÏÏÎÎ ÏÎÎÏÎ ÏÎÏÎÏÏÎÎÏÎ ÏÎÎÎÎÎÏ ÎÏÎÎÎÎ."
 
-#: C/image-viewer.vala.page:116(p)
+#: C/record-collection.js.page:280(item/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."
+"Line 15: Refresh the view on the screen by doing another <code>SELECT</code>."
 msgstr ""
-"Î ÎÎÏÎÏÎÎÏÎÏÏÎÏ ÏÎÏ ÎÎÎÏÎÏ <code>Main</code> ÎÎÎÎÎÏÏÎÎÎ ÎÎÎ ÎÎÎ (ÎÎÎÏ) "
-"ÏÎÏÎÎÏÏÎ ÎÎÎ ÏÏÎÎÎÎÎ ÎÎÎ <link href=\"https://live.gnome.org/Vala/";
-"SignalsAndCallbacks\">ÏÎÎÎ</link> ÎÎÎ ÎÎÎÎÎ ÎÏÏ ÏÎÎ ÎÏÎÏÎÎÎÎ, ÏÏÎÎ ÏÎ "
-"ÏÎÏÎÎÏÏÎ ÎÎÎÎÏÎÎ."
+"ÎÏÎÎÎÎ 15: ÎÎÎÎÎÏÏÎ ÏÎÏ ÏÏÎÎÎÎÎÏ ÏÏÎÎ ÎÎÏÎÎ ÎÎÎÎÎÏÎÏ ÎÎÎ ÎÎÎÎ <code>SELECT</"
+"code>."
 
-#: C/image-viewer.vala.page:117(p) C/image-viewer.c.page:69(p)
-#: C/guitar-tuner.c.page:74(p)
+#: C/record-collection.js.page:282(note/p)
 msgid ""
-"Connecting signals is how you define what happens when you push a button, or "
-"when some other event happens. Here, the <code>destroy</code> function is "
-"called (and quits the app) when you close the window."
+"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 ""
-"ÎÏÎÎÎÏÎ ÏÎÎÎÏÏÎ ÎÎÎÎÎ ÏÏÏ ÎÎÎÎÏÎÎÎÏÎ ÏÎ ÏÏÎÎÎÎÎÎÎ ÏÏÎÎ ÏÎÏÎÏÎ ÎÎÎ ÎÎÏÎÏÎ, Î "
-"ÏÏÎÎ ÏÏÎÎÎÎ ÎÎÏÎÎÎ ÎÎÎÎ ÏÏÎÎÎÎ. ÎÎÏ, ÎÎÎÎÎÏÎÎ Î ÏÏÎÎÏÏÎÏÎ <code>destroy</"
-"code> (ÎÎÎ ÏÎÏÎÎÏÎÎÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ) ÏÏÎÎ ÎÎÎÎÎÎÏÎ ÏÎ ÏÎÏÎÎÏÏÎ."
+"ÎÏÎÏÎÎÏÎ ÎÏÎÏÎÏ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÏÎÏÎÎÎÏÏÎÏÏ ÎÎÏ ÎÎÏÎÏÎÎÏÎÎÎÏÎ ÏÎÎ "
+"ÏÏÏÏÎÏÎ. ÎÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ ÎÎÏÎÎÎÎÎÎÎÎ <code>SqlBuilder</code> ÎÎÎ "
+"ÏÎÏÎÎÎÏÏÎÏÏ ÏÏÎÏÏÎÏÎÎ ÎÎÎÏÏÎÏÎÏ ÎÏÎÎÎÏÎÎÏ ÏÏÏÏ ÎÎÎÏÎÎÏ SQL. ÎÎÎÎÎÏÏÏÎ ÏÎ "
+"<link href=\"http://library.gnome.org/devel/libgda/stable/\";>ÏÎÎÎÎÏÎÏÏÎ GDA</"
+"link> ÎÎÎ ÏÎÏÎÏÏÏÏÎÏÎÏ ÏÎÎÏÎÏÎÏÎÎÏ ÏÏÎÏÎÎÎ ÎÎ ÏÎÏ ÏÎÏÎÎÎÏÏÎÏÏ."
 
-#: C/image-viewer.vala.page:121(p)
+#: C/record-collection.js.page:287(section/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)."
+"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 ""
-"Î ÏÏÎÎÏÏÎÏÎ <code>static main</code> ÏÏÎÏÎÎ ÎÏÏ ÏÏÎÎÏÎÎÎÎÎ ÏÏÎÎ ÎÎÎÎÎÎÏÎ ÎÎÎ "
-"ÎÏÎÏÎÎÎÎ Vala. ÎÎÎÎÎ ÎÎÎÎÏ ÏÏÎÎÏÏÎÏÎÎÏ ÏÎÏ ÎÎÎÎÎÏÏÎÎÏÎ ÏÎÎ ÎÎÎÏÎ <code>Main</"
-"code>, ÏÏÎÎÎÎÎÏÎ ÎÎÎ ÎÎÏÎ ÏÏÎÏÎÏÎ ÏÎÎ ÎÏÎÏÎÎÎÎ. Î ÏÏÎÎÏÏÎÏÎ <link href="
-"\"http://valadoc.org/gtk+-3.0/Gtk.main.html\";><code>Gtk.main</code></link> "
-"ÎÎÎÎÎÎ ÏÎÎ GTK <link href=\"http://en.wikipedia.org/wiki/Event_loop\";>ÎÏÏÎÎÏ "
-"ÎÏÏÏÎÏ</link>, ÏÎÏ ÏÏÎÏÎÎ ÏÎ ÎÎÎÏÎÏÎ ÏÏÎÏÏÎ ÎÎÎ ÎÎÎÎÎÎ ÎÎÏÏÎÏÎ ÏÏÎ ÏÏÎÎÎÎÏÏÎ "
-"(ÏÏÏÏ ÎÎÎÎ ÎÎÎ ÏÎÏÎÎÎÏÎ ÏÎÎÎÏÏÎÏ)."
-
-#: C/image-viewer.vala.page:133(title) C/image-viewer.cpp.page:81(title)
-#: C/image-viewer.c.page:84(title)
-msgid "Creating the user interface"
-msgstr "ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ ÎÎÎÏÎÏÎÏ ÏÏÎÏÏÎ"
+"ÎÎÎÏ Î ÎÏÎÎÏÎÏÎÎÎÎÏ ÎÏÎÎÎÎÏ ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎ ÏÏÏÎ ÏÏÎ ÎÎÏÎ, ÎÏÏÎ ÏÏÎÏÏÎÎÎÏÏÎ "
+"ÎÎ ÏÏÎÎÎÏÎ ÏÎÎ ÎÏÎÎÎÎ. ÎÏÎÏÎ ÏÏÏÎ ÎÎÎ ÎÎÏÎ ÎÎÎÎÎÎÎÏÎ ÎÎÎ ÏÎ ÏÏÎÎÎÎÎÏ ÏÎÏ ÏÏÎ "
+"ÎÎÎÏÎÏÏÎ!"
 
-#: C/image-viewer.vala.page:134(p)
+#: C/record-collection.js.page:292(section/p)
 msgid ""
-"Now we will bring life into the empty window. GTK organizes the user "
-"interface with <link href=\"http://www.valadoc.org/gtk+-2.0/Gtk.Container.";
-"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>."
+"If you run into problems with the tutorial, compare your code with this "
+"<link href=\"record-collection/record-collection.js\">reference code</link>."
 msgstr ""
-"ÎÏÏÎ ÎÎ ÎÏÏÎÏÎÎ ÎÏÎ ÏÎ ÎÎÎ ÎÎÎÎÎ ÏÎÏÎÎÏÏÎ. ÎÎ GTK ÎÏÎÎÎÏÎÎÎ ÏÎ ÎÎÎÏÎÏÎ "
-"ÏÏÎÏÏÎ ÎÎ ÏÎ <link href=\"http://www.valadoc.org/gtk+-2.0/Gtk.Container.html";
-"\"><code>Gtk.Container</code></link> ÏÎÏ ÎÏÎÏÎÏÎ ÎÎ ÏÎÏÎÎÏÎÏÎ ÎÎÎÎ ÎÏÎÏÎÎÎ "
-"ÏÏÏÏÎÏÎÎÎ ÎÎÎ ÎÎÏÎÎ ÎÎÎÎÏÏ ÏÎÏÎÎÎÏÎÏ. ÎÎÏ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÏÎÎ ÎÏÎÎÏÏÏÎÏÎ "
-"ÎÎÎÎÎÏÎÎÎ ÏÎÏÎÎÎÏÎ, ÎÎÎ <link href=\"http://unstable.valadoc.org/gtk+-2.0/";
-"Gtk.Box.html\"><code>Gtk.Box</code></link>."
+"ÎÎ ÎÎÏÎÎÎÏÏÏÎÏÎÏÎ ÏÏÏÎÎÎÎÎ ÎÎ ÏÎ ÎÎÎÎÎÎ, ÏÏÎÎÏÎÎÎÏÎ ÏÎÎ ÎÏÎÎÎÎ ÏÎÏ ÎÎ ÎÏÏÏÎ "
+"ÏÎÎ <link href=\"record-collection/record-collection.js\">ÎÏÎÎÎÎ ÎÎÎÏÎÏÎÏ</"
+"link>."
 
-#: C/image-viewer.vala.page:138(p)
-msgid "Add the following lines to the top of the <code>Main</code> class:"
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/scale.c.page:24(media)
+msgctxt "_"
+msgid "external ref='media/scale2.png' md5='ae2ba0a6675f3d9cdcd961cdf32f1a5c'"
+msgstr "external ref='media/scale2.png' md5='ae2ba0a6675f3d9cdcd961cdf32f1a5c'"
+
+#: C/scale.c.page:7(info/title)
+msgctxt "text"
+msgid "Scale (C)"
+msgstr "ÎÎÎÎÎÎÎ (C)"
+
+#: C/scale.c.page:19(info/desc) C/scale.py.page:18(info/desc)
+#: C/scale.vala.page:19(info/desc)
+msgid "A slider widget for selecting a value from a range"
 msgstr ""
-"ÎÏÎÏÎÎÏÏÎ ÏÎÏ ÎÏÏÎÎÎÎÏ ÎÏÎÎÎÎÏ ÏÏÎÎ ÎÎÏÏÏÎ ÏÎÏ ÎÎÎÏÎÏ <code>Main</code>:"
+"ÎÎÎÏ ÎÎÎÏÎÎÏÎÏ ÎÏÎÏÎÎÎÏ ÏÏÏÏÎÏÎÎÎÏ ÎÎÎ ÎÏÎÎÎÎÎ ÎÎÎÏ ÏÎÎÎÏ ÎÏÏ ÎÎÎ ÏÎÏÎÎÏÎ"
 
-#: C/image-viewer.vala.page:144(p)
-msgid "Now replace the current constructor with the one below:"
-msgstr "ÎÏÏÎ ÎÎÏÎÎÎÏÎÏÏÎÏÏÎ ÏÎÎ ÏÏÎÏÎÎÏÎ ÎÎÏÎÏÎÎÏÎÏÏÎ ÎÎ ÏÎÎ ÏÎÏÎÎÎÏÏ:"
+#: C/scale.c.page:22(page/title) C/scale.js.page:20(page/title)
+#: C/scale.py.page:21(page/title) C/scale.vala.page:22(page/title)
+msgid "Scale"
+msgstr "ÎÎÎÎÎÎÎ"
+
+#: C/scale.c.page:25(page/p) C/scale.py.page:23(page/p)
+#: C/scale.vala.page:24(page/p)
+msgid "Slide the scales!"
+msgstr "ÎÎÎÏÎÎÏÎ ÏÏÎ ÎÎÎÎÎÎÏÎ!"
 
-#: C/image-viewer.vala.page:170(p)
+#: C/scale.c.page:27(page/code)
+#, no-wrap
 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."
+"\n"
+"#include &lt;gtk/gtk.h&gt;\n"
+"\n"
+"\n"
+"\n"
+"/* This is the callback function. \n"
+" * It is a handler function which reacts to the signal. \n"
+" * In this case, it will notify the user the value of their scale as a label.\n"
+" */\n"
+"static void\n"
+"hscale_moved (GtkRange *range,\n"
+"              gpointer  user_data)\n"
+"{\n"
+"   GtkWidget *label = user_data;\n"
+"\n"
+"   /* Get the value of the range, and convert it into a string which will be\n"
+"    * used as a new label for the horizontal scale.\n"
+"    * %.0f - stands for a double that will have 0 decimal places.\n"
+"    */\n"
+"   gdouble pos = gtk_range_get_value (range);\n"
+"   /* Note: Using g_strdup_printf returns a string that must be freed. \n"
+"    * (In which is done below)\n"
+"    */\n"
+"   gchar *str = g_strdup_printf (\"Horizontal scale is %.0f\", pos);\n"
+"   gtk_label_set_text (GTK_LABEL (label), str);\n"
+"\n"
+"   g_free(str);\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"/* This is the second callback function. It is a handler function which \n"
+" * reacts to the signal. It does the same thing as the function above, except with\n"
+" * the vertical scale.\n"
+" */\n"
+"vscale_moved (GtkRange *range,\n"
+"              gpointer  user_data)\n"
+"{\n"
+"   GtkWidget *label = user_data;\n"
+"   \n"
+"   gdouble pos = gtk_range_get_value (range);\n"
+"   /* %.1f - stands for a double that will have 1 decimal place */\n"
+"   gchar *str = g_strdup_printf (\"Vertical scale is %.1f\", pos);\n"
+"   gtk_label_set_text (GTK_LABEL (label), str);\n"
+"\n"
+"   \n"
+"   g_free (str);\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"static void\n"
+"activate (GtkApplication *app,\n"
+"          gpointer        user_data)\n"
+"{\n"
+"  /* Declare variables */\n"
+"  GtkWidget *window;\n"
+"  GtkWidget *h_scale;\n"
+"  GtkWidget *v_scale;\n"
+"  GtkWidget *hlabel;\n"
+"  GtkWidget *vlabel;\n"
+"  GtkWidget *grid;\n"
+"\n"
+"  /* The Adjustment object represents a value \n"
+"   * which has an associated lower and upper bound.\n"
+"   */\n"
+"  GtkAdjustment *hadjustment;\n"
+"  GtkAdjustment *vadjustment;\n"
+"\n"
+"  /* Create a window with a title and a default size */\n"
+"  window = gtk_application_window_new (app);\n"
+"  gtk_window_set_title (GTK_WINDOW (window), \"Scale Example\");\n"
+"  gtk_window_set_default_size (GTK_WINDOW (window), 400, 300);\n"
+"  gtk_container_set_border_width (GTK_CONTAINER (window), 5);\n"
+"\n"
+"  /* Two labels to be shown in the window */\n"
+"  hlabel = gtk_label_new (\"Move the scale handle...\");\n"
+"  vlabel = gtk_label_new (\"Move the scale handle...\");\n"
+"\n"
+"   \n"
+"  /* gtk_adjustment_new takes six parameters, three of which \n"
+"   * may be difficult to understand:\n"
+"   * step increment- move the handle with the arrow keys on your keyboard to see.\n"
+"   * page increment - move the handle by clicking away from it \n"
+"   * on the scale to see.\n"
+"   * page size - not used here.\n"
+"   */\n"
+"  hadjustment = gtk_adjustment_new (0, 0, 100, 5, 10, 0);\n"
+"  vadjustment = gtk_adjustment_new (50, 0, 100, 5, 10, 0); \n"
+"\n"
+"  /* Create the Horizontal scale, making sure the \n"
+"   * digits used have no decimals.\n"
+"   */\n"
+"  h_scale = gtk_scale_new (GTK_ORIENTATION_HORIZONTAL, hadjustment);\n"
+"  gtk_scale_set_digits (GTK_SCALE (h_scale), 0); \n"
+"\n"
+"  /* Allow it to expand horizontally (if there's space), and \n"
+"   * set the vertical alignment\n"
+"   */\n"
+"  gtk_widget_set_hexpand (h_scale, TRUE);\n"
+"  gtk_widget_set_valign (h_scale, GTK_ALIGN_START);\n"
+"  \n"
+"  /* Connecting the \"value-changed\" signal for the horizontal scale \n"
+"   * to the appropriate callback function. \n"
+"   * take note that GtkRange is part of GtkScale's Object Hierarchy.\n"
+"   */\n"
+"  g_signal_connect (h_scale, \n"
+"                    \"value-changed\", \n"
+"                    G_CALLBACK (hscale_moved), \n"
+"                    hlabel);\n"
+"\n"
+"\n"
+"\n"
+"  /* Create the Vertical scale. This time, we will see what happens \n"
+"   * when the digits arent initially set.\n"
+"   */\n"
+"  v_scale = gtk_scale_new (GTK_ORIENTATION_VERTICAL, vadjustment);\n"
+"  gtk_widget_set_vexpand (v_scale, TRUE);\n"
+"\n"
+"  /* Connecting the \"value-changed\" signal for the vertical scale to \n"
+"   * the appropriate callback function.\n"
+"   */\n"
+"  g_signal_connect (v_scale, \n"
+"                    \"value-changed\", \n"
+"                    G_CALLBACK (vscale_moved), \n"
+"                    vlabel);\n"
+"\n"
+"  /* Create a grid and arrange everything accordingly */\n"
+"  grid = gtk_grid_new ();\n"
+"  gtk_grid_set_column_spacing (GTK_GRID (grid), 10);\n"
+"  gtk_grid_set_column_homogeneous (GTK_GRID (grid), TRUE);\n"
+"  gtk_grid_attach (GTK_GRID (grid), h_scale, 0, 0, 1, 1);\n"
+"  gtk_grid_attach (GTK_GRID (grid), v_scale, 1, 0, 1, 1);\n"
+"  gtk_grid_attach (GTK_GRID (grid), hlabel, 0, 1, 1, 1);\n"
+"  gtk_grid_attach (GTK_GRID (grid), vlabel, 1, 1, 1, 1);\n"
+"  \n"
+"\n"
+"  gtk_container_add (GTK_CONTAINER (window), grid);\n"
+"\n"
+"  gtk_widget_show_all (window);\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"int\n"
+"main (int argc, char **argv)\n"
+"{\n"
+"  GtkApplication *app;\n"
+"  int status;\n"
+"\n"
+"  app = gtk_application_new (\"org.gtk.example\", G_APPLICATION_FLAGS_NONE);\n"
+"  g_signal_connect (app, \"activate\", G_CALLBACK (activate), NULL);\n"
+"  status = g_application_run (G_APPLICATION (app), argc, argv);\n"
+"  g_object_unref (app);\n"
+"\n"
+"  return status;\n"
+"}\n"
 msgstr ""
-"ÎÎ ÏÏÏÏÎÏ ÎÏÎ ÎÏÎÎÎÎÏ ÎÎÎÎÎ ÎÎÏÎ ÏÎÏ GUI ÏÎÏ ÎÎ ÏÏÎÎÎÏÏÎÏÎ ÏÏÏÏÎÎÏÎ ÎÏÏ "
-"ÏÎÏÎÏÏÏÏÎÏÎÏ ÎÏÏ ÎÎÎ ÎÎÎÏÎÎÏÏ. ÎÎÏ ÎÎÎÏÎÎÏÎÎ ÎÎÏ ÎÏÏÎ ÏÏÏÎ ÎÎ ÎÎÎÎÎ "
-"ÏÏÎÏÎÎÏÎÎÎÏ ÎÎÏÎ ÎÏÏ ÏÎÎ ÎÎÎÏÎ ÎÎÏÎ ÎÏÎÎ ÎÏÏ ÏÎ ÎÎÎÎÎÎ ÏÏÎÏ ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ."
+"\n"
+"#include &lt;gtk/gtk.h&gt;\n"
+"\n"
+"\n"
+"\n"
+"/* This is the callback function. \n"
+" * It is a handler function which reacts to the signal. \n"
+" * In this case, it will notify the user the value of their scale as a label.\n"
+" */\n"
+"static void\n"
+"hscale_moved (GtkRange *range,\n"
+"              gpointer  user_data)\n"
+"{\n"
+"   GtkWidget *label = user_data;\n"
+"\n"
+"   /* Get the value of the range, and convert it into a string which will be\n"
+"    * used as a new label for the horizontal scale.\n"
+"    * %.0f - stands for a double that will have 0 decimal places.\n"
+"    */\n"
+"   gdouble pos = gtk_range_get_value (range);\n"
+"   /* Note: Using g_strdup_printf returns a string that must be freed. \n"
+"    * (In which is done below)\n"
+"    */\n"
+"   gchar *str = g_strdup_printf (\"Horizontal scale is %.0f\", pos);\n"
+"   gtk_label_set_text (GTK_LABEL (label), str);\n"
+"\n"
+"   g_free(str);\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"/* This is the second callback function. It is a handler function which \n"
+" * reacts to the signal. It does the same thing as the function above, except with\n"
+" * the vertical scale.\n"
+" */\n"
+"vscale_moved (GtkRange *range,\n"
+"              gpointer  user_data)\n"
+"{\n"
+"   GtkWidget *label = user_data;\n"
+"   \n"
+"   gdouble pos = gtk_range_get_value (range);\n"
+"   /* %.1f - stands for a double that will have 1 decimal place */\n"
+"   gchar *str = g_strdup_printf (\"Vertical scale is %.1f\", pos);\n"
+"   gtk_label_set_text (GTK_LABEL (label), str);\n"
+"\n"
+"   \n"
+"   g_free (str);\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"static void\n"
+"activate (GtkApplication *app,\n"
+"          gpointer        user_data)\n"
+"{\n"
+"  /* Declare variables */\n"
+"  GtkWidget *window;\n"
+"  GtkWidget *h_scale;\n"
+"  GtkWidget *v_scale;\n"
+"  GtkWidget *hlabel;\n"
+"  GtkWidget *vlabel;\n"
+"  GtkWidget *grid;\n"
+"\n"
+"  /* The Adjustment object represents a value \n"
+"   * which has an associated lower and upper bound.\n"
+"   */\n"
+"  GtkAdjustment *hadjustment;\n"
+"  GtkAdjustment *vadjustment;\n"
+"\n"
+"  /* Create a window with a title and a default size */\n"
+"  window = gtk_application_window_new (app);\n"
+"  gtk_window_set_title (GTK_WINDOW (window), \"Scale Example\");\n"
+"  gtk_window_set_default_size (GTK_WINDOW (window), 400, 300);\n"
+"  gtk_container_set_border_width (GTK_CONTAINER (window), 5);\n"
+"\n"
+"  /* Two labels to be shown in the window */\n"
+"  hlabel = gtk_label_new (\"Move the scale handle...\");\n"
+"  vlabel = gtk_label_new (\"Move the scale handle...\");\n"
+"\n"
+"   \n"
+"  /* gtk_adjustment_new takes six parameters, three of which \n"
+"   * may be difficult to understand:\n"
+"   * step increment- move the handle with the arrow keys on your keyboard to see.\n"
+"   * page increment - move the handle by clicking away from it \n"
+"   * on the scale to see.\n"
+"   * page size - not used here.\n"
+"   */\n"
+"  hadjustment = gtk_adjustment_new (0, 0, 100, 5, 10, 0);\n"
+"  vadjustment = gtk_adjustment_new (50, 0, 100, 5, 10, 0); \n"
+"\n"
+"  /* Create the Horizontal scale, making sure the \n"
+"   * digits used have no decimals.\n"
+"   */\n"
+"  h_scale = gtk_scale_new (GTK_ORIENTATION_HORIZONTAL, hadjustment);\n"
+"  gtk_scale_set_digits (GTK_SCALE (h_scale), 0); \n"
+"\n"
+"  /* Allow it to expand horizontally (if there's space), and \n"
+"   * set the vertical alignment\n"
+"   */\n"
+"  gtk_widget_set_hexpand (h_scale, TRUE);\n"
+"  gtk_widget_set_valign (h_scale, GTK_ALIGN_START);\n"
+"  \n"
+"  /* Connecting the \"value-changed\" signal for the horizontal scale \n"
+"   * to the appropriate callback function. \n"
+"   * take note that GtkRange is part of GtkScale's Object Hierarchy.\n"
+"   */\n"
+"  g_signal_connect (h_scale, \n"
+"                    \"value-changed\", \n"
+"                    G_CALLBACK (hscale_moved), \n"
+"                    hlabel);\n"
+"\n"
+"\n"
+"\n"
+"  /* Create the Vertical scale. This time, we will see what happens \n"
+"   * when the digits arent initially set.\n"
+"   */\n"
+"  v_scale = gtk_scale_new (GTK_ORIENTATION_VERTICAL, vadjustment);\n"
+"  gtk_widget_set_vexpand (v_scale, TRUE);\n"
+"\n"
+"  /* Connecting the \"value-changed\" signal for the vertical scale to \n"
+"   * the appropriate callback function.\n"
+"   */\n"
+"  g_signal_connect (v_scale, \n"
+"                    \"value-changed\", \n"
+"                    G_CALLBACK (vscale_moved), \n"
+"                    vlabel);\n"
+"\n"
+"  /* Create a grid and arrange everything accordingly */\n"
+"  grid = gtk_grid_new ();\n"
+"  gtk_grid_set_column_spacing (GTK_GRID (grid), 10);\n"
+"  gtk_grid_set_column_homogeneous (GTK_GRID (grid), TRUE);\n"
+"  gtk_grid_attach (GTK_GRID (grid), h_scale, 0, 0, 1, 1);\n"
+"  gtk_grid_attach (GTK_GRID (grid), v_scale, 1, 0, 1, 1);\n"
+"  gtk_grid_attach (GTK_GRID (grid), hlabel, 0, 1, 1, 1);\n"
+"  gtk_grid_attach (GTK_GRID (grid), vlabel, 1, 1, 1, 1);\n"
+"  \n"
+"\n"
+"  gtk_container_add (GTK_CONTAINER (window), grid);\n"
+"\n"
+"  gtk_widget_show_all (window);\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"int\n"
+"main (int argc, char **argv)\n"
+"{\n"
+"  GtkApplication *app;\n"
+"  int status;\n"
+"\n"
+"  app = gtk_application_new (\"org.gtk.example\", G_APPLICATION_FLAGS_NONE);\n"
+"  g_signal_connect (app, \"activate\", G_CALLBACK (activate), NULL);\n"
+"  status = g_application_run (G_APPLICATION (app), argc, argv);\n"
+"  g_object_unref (app);\n"
+"\n"
+"  return status;\n"
+"}\n"
 
-#: C/image-viewer.vala.page:174(p)
+#: C/scale.c.page:35(item/p)
 msgid ""
-"The first lines of the constructor create the empty window. The next lines "
-"create the widgets we want to use: a button for opening up an image, the "
-"image view widget itself and the box we will use as a container."
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkScale.html";
+"\">GtkScale</link>"
 msgstr ""
-"ÎÎ ÏÏÏÏÎÏ ÎÏÎÎÎÎÏ ÏÎÏ ÎÎÏÎÏÎÎÏÎÏÏÎ ÎÎÎÎÎÏÏÎÎÏÎ ÏÎ ÎÎÎÎÎ ÏÎÏÎÎÏÏÎ. ÎÎ "
-"ÎÏÏÎÎÎÎÏ ÎÏÎÎÎÎÏ ÎÎÎÎÎÏÏÎÎÏÎ ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÏÎÏ ÎÎÎÎÏÎÎ ÎÎ "
-"ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ: ÎÎÎ ÎÎÏÎÏÎ ÎÎÎ ÎÎÎÎÎÎÎ ÎÎÎÏ ÎÎÎÏÎÎÏ, ÏÎ ÎÎÎÎ ÏÎ ÎÏÎÏÎÎÏ "
-"ÏÏÏÏÎÏÎÎÏ ÏÏÎÎÎÎÎÏ ÏÎÏ ÎÎÎÏÎÎÏ ÎÎÎ ÏÎ ÏÎÎÎÏÎÎ ÏÎÏ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÏÏ "
-"ÏÎÏÎÎÎÏÎ."
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkScale.html";
+"\">GtkScale</link>"
 
-#: C/image-viewer.vala.page:178(p)
+#: C/scale.c.page:36(item/p)
 msgid ""
-"The calls to <link href=\"http://unstable.valadoc.org/gtk+-2.0/Gtk.Box.";
-"pack_start.html\"><code>pack_start</code></link> add the two widgets to the "
-"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."
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkRange.html";
+"\">GtkRange</link>"
 msgstr ""
-"ÎÎ ÎÎÎÏÎÎÏ ÏÏÎ <link href=\"http://unstable.valadoc.org/gtk+-2.0/Gtk.Box.";
-"pack_start.html\"><code>pack_start</code></link> ÏÏÎÏÎÎÏÎÏÎ ÏÎ ÎÏÎ ÎÏÎÏÎÎÎ "
-"ÏÏÏÏÎÏÎÎÎ ÏÏÎ ÏÎÎÎÏÎÎ ÎÎÎ ÎÏÎÎÎÏÎ ÏÎ ÏÏÎÏÎÏÎÏÎÏÎ ÏÎÏÏ. Î ÎÎÎÏÎÎ ÎÎ ÎÏÎÎÏÎÎÎÎ "
-"ÏÎ ÎÎÎÎ ÎÎÎÎÎÏÎÎÎ ÏÏÏÎ ÎÎÏ ÏÎ ÎÎÏÎÏÎ ÎÎ ÎÎÎÎÎ ÎÏÎÎ ÏÏÏÎ ÎÎÎÎÎÎ ÏÏÎ "
-"ÏÏÎÎÎÎÎÏÎÎ. ÎÎ ÏÎÏÎÏÎÏÎÏÎÏÎ ÏÏÎ ÎÎÎ ÎÏÎÎÎÏÎÎ ÏÎÏÎ ÎÎÎÎÎÎ ÏÏÎ ÎÏÎÏÎÎÎ "
-"ÏÏÏÏÎÏÎÎÎ. ÎÏÎ GTK ÎÏÏÏ ÏÏÎÎÎÏÏ ÎÎÎ ÏÏÎÎÎÎÎÏÎÎ ÎÏÎÎÎÎ ÎÎÎÎÎ ÏÎÎ ÎÏÎÏ ÎÎ "
-"ÎÏÎÏÎ ÎÎÎ ÎÎÎÏÎÎÎ ÏÎÏ ÏÎÎÎÎÏÎÎ ÎÎÎÎ ÎÎ ÎÎÎÏÎÏÎÏÎÎÎ ÎÎÎÎÎÎ ÏÎÏÎÎÏÏÏÎ. ÎÏÎ "
-"ÏÏÎÎÏÎÎÎ, ÏÎ ÏÎÎÎÏÎÎ ÏÏÎÏÏÎÎÎÏÎÎ ÏÏÎ ÏÎÏÎÎÏÏÎ."
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkRange.html";
+"\">GtkRange</link>"
 
-#: C/image-viewer.vala.page:185(p)
+#: C/scale.c.page:37(item/p) C/spinbutton.c.page:38(item/p)
 msgid ""
-"We need to define what happens when the user clicks on the button. GTK uses "
-"the concept of <em>signals</em>."
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkAdjustment.html";
+"\">GtkAdjustment</link>"
 msgstr ""
-"ÎÏÎÎÎÎÎÏÎÎ ÎÎ ÎÏÎÏÎÏÎÎ ÏÎ ÏÏÎÎÎÎÎÎÎ ÏÏÎÎ Î ÏÏÎÏÏÎÏ ÏÎÏÎ ÏÎ ÎÎÏÎÏÎ. ÎÎ GTK "
-"ÏÏÎÏÎÎÎÏÎÎÎÎ ÏÎÎ ÎÎÎÎÎÎ ÏÏÎ <em>ÏÎÎÎÏÏÎ</em>."
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkAdjustment.html";
+"\">GtkAdjustment</link>"
 
-#: C/image-viewer.vala.page:186(p)
+#: C/scale.c.page:38(item/p)
 msgid ""
-"When the <link href=\"http://valadoc.org/gtk+-3.0/Gtk.Button.html\";>button</"
-"link> is clicked, it fires the <link href=\"http://valadoc.org/gtk+-3.0/Gtk.";
-"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)."
+"<link href=\"http://developer.gnome.org/glib/stable/glib-String-Utility-";
+"Functions.html#g-strdup-printf\">String Utility Functions</link>"
 msgstr ""
-"ÎÏÎÎ ÏÎ <link href=\"http://valadoc.org/gtk+-3.0/Gtk.Button.html\";>ÎÎÏÎÏÎ</"
-"link> ÏÎÏÎÎÏÎÎ ÏÏÎÎÎÎÎÎ ÏÎ ÏÎÎÎ <link href=\"http://valadoc.org/gtk+-3.0/Gtk.";
-"Button.clicked.html\"><code>clicked</code></link>, ÏÎÏ ÎÏÎÏÎÏÎÎ ÎÎ "
-"ÏÏÎÎÎÏÎÏÎÎ ÎÎ ÎÎÏÎÎÎ ÎÎÎÏÎÎÎÎ (ÎÏÎÏÎÎÎÎ ÏÎ ÎÎÎ ÎÎÎÎÎÎ <link href=\"https://";
-"live.gnome.org/Vala/SignalsAndCallbacks\">ÎÏÎÎÎÎÎÎÏÎÏ</link>)."
+"<link href=\"http://developer.gnome.org/glib/stable/glib-String-Utility-";
+"Functions.html#g-strdup-printf\">String Utility Functions</link>"
 
-#: C/image-viewer.vala.page:189(p)
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/scale.js.page:21(media)
+msgctxt "_"
 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."
+"external ref='media/scalepenguins.png' md5='2dbe6a833fec86fde71a5ddb421e2cd5'"
 msgstr ""
-"ÎÏÏÏ ÎÎÎÎÏÎÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ ÎÎÎÎÎÎ <code>connect</code> ÏÎÏ ÏÎÎÎÏÎÏ ÏÎÏ "
-"ÎÎÏÎÏÎÎÏ <code>clicked</code>, ÏÎÏ ÏÎ ÎÏÏÎÎ ÏÎÎ ÏÎÏÎÏÏÏÏÎ ÎÎÎÎ ÏÏÎ GTK ÎÎ "
-"ÎÎÎÎÏÎÎ ÏÎÎ ÎÎÎÎÎÎ ÎÏÎÎÎÎÎÎÏÎÏ (ÎÏÏÎÏÏÎ ÎÎÏÎÎ) <code>on_image_open</code> "
-"ÏÏÎÎ ÏÎ ÎÎÏÎÏÎ ÏÎÏÎÎÏÎÎ. ÎÎ ÎÏÎÏÎÏÎÎ ÏÎÎ <em>ÎÏÎÎÎÎÎÎÏÎ</em> ÏÏÎÎ ÎÏÏÎÎÎÎ "
-"ÎÎÏÏÎÏÎ."
+"external ref='media/scalepenguins.png' md5='2dbe6a833fec86fde71a5ddb421e2cd5'"
+
+#: C/scale.js.page:7(info/title)
+msgctxt "text"
+msgid "Scale (JavaScript)"
+msgstr "ÎÎÎÎÎÎÎ (JavaScript)"
+
+#: C/scale.js.page:17(info/desc)
+msgid "A slider which corresponds to a numerical value"
+msgstr "ÎÎÎÏ ÎÎÎÏÎÎÏÎÏ ÏÎÏ ÎÎÏÎÏÏÎÎÏÎÎ ÏÎ ÎÎÎ ÎÏÎÎÎÎÏÎÎÎ ÏÎÎÎ"
 
-#: C/image-viewer.vala.page:193(p)
+#: C/scale.js.page:22(page/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."
+"A Scale is a horizontal or vertical slider, that represents a value inside a "
+"numerical range. When you create a new Scale, you set what its default "
+"position is, what the numbers at the top and bottom of the range are, and "
+"things like how much it moves up or down when you click on the Scale to "
+"either side of the knob. To keep from having to type all that in every time "
+"you create a new Scale, you can create an object called an Adjustment which "
+"keeps track of all that, then tell each new Scale to use that Adjustment."
 msgstr ""
-"ÎÏÎÎ ÎÏÎÎÎÎÎÎÏÎ, ÏÏÎÎÎÎÏÎÎÏÏÎ ÎÎ ÏÏÎÏÏÎÎÎÏÎÏÎÎ ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ "
-"<code>window</code> ÎÎÎ <code>image</code>, ÎÎ' ÎÏÏÏ ÏÎ ÎÏÎÎÎÏÎÎ ÏÏ ÎÎÎÏÏÎÎÎ "
-"ÎÎÎÎ ÏÏÎÎ ÎÎÏÏÏÎ ÏÏÎ ÎÎÎÏÎÏÎ ÎÎÏ."
+"ÎÎÎ ÎÎÎÎÎÎÎ ÎÎÎÎÎ ÎÎÎÏ ÎÏÎÎÏÎÏÎÎÏ Î ÎÎÎÎÏÎÏ ÎÎÎÏÎÎÏÎÏ, ÏÎÏ ÎÎÎÏÎÏÎÏÏÎ ÎÎÎ "
+"ÏÎÎÎ ÎÎÏÎ ÏÎ ÎÎÎ ÎÏÎÎÎÎÏÎÎÎ ÏÎÏÎÎÏÎ. ÎÏÎÎ ÎÎÎÎÎÏÏÎÎÎÏÎ ÎÎÎ ÎÎÎ ÎÎÎÎÎÎÎ, "
+"ÎÏÎÎÎÏÎ ÏÎÎÎ ÎÎÎÎÎ Î ÏÏÎÎÏÎÎÎÎÎÎÎÎ ÏÎÏ ÎÎÏÎ, ÏÎÎÎÎ ÎÎÎÎÎ ÎÎ ÎÏÎÎÎÎÎ ÏÏÎÎ "
+"ÎÎÏÏÏÎ ÎÎÎ ÏÏÎÎ ÏÎÏÎ ÏÎÏ ÏÎÏÎÎÏÎÏ ÎÎÎ ÏÏÎÎÎÎÏÎ ÏÏÏÏ ÏÏÏÎ ÎÎÏÎÎÎÎÎÎÏÎÎ ÏÎÎÏ Î "
+"ÎÎÏÏ ÏÏÎÎ ÏÎÏÎÏÎ ÏÎ ÎÎÎ ÎÎÎÎÎÎÎ ÏÎ ÎÏÎÎÎÎÎÏÎÏÎ ÏÎÎÏÏÎ ÏÎÏ ÎÎÏÎÏÎÎÏ. ÎÎÎ ÎÎ "
+"ÏÏÎÎÏÎÏÎÏÎ ÎÎ ÎÏÎÏÎ ÎÎ ÏÎÎÎÏÏÎÎÎÎÎÏÎÏÎ ÏÎÎ ÎÏÏÏ ÎÎÎÎ ÏÎÏÎ ÎÎÎÎÎÏÏÎÎÎÏÎ ÎÎÎ "
+"ÎÎÎ ÎÎÎÎÎÎÎ, ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎ ÎÎÎ ÎÎÏÎÎÎÎÎÎÎÎ ÏÎÏ ÎÎÎÎÏÎÎ ÏÏÎÎÎÏÎ "
+"ÎÎÎ ÎÎÎÏÎÎÏÎÎ ÏÎÎ ÎÏÏÏ, ÎÏÎÎÏÎ ÏÎÎÏÎ ÏÎ ÎÎÎÎ ÎÎÎ ÏÎÎÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ "
+"ÎÏÏÎÎ ÏÎ ÏÏÎÎÎÏÎ."
 
-#: C/image-viewer.vala.page:197(p)
+#: C/scale.js.page:23(page/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."
+"This scale is a simple widget that lets you adjust the size of an iceberg "
+"that penguins live on. The number of penguins on the iceberg is the product "
+"of the values of the two sliders. Try playing with them and seeing what "
+"happens."
 msgstr ""
-"Î ÏÎÎÎÏÏÎÎÎ ÎÎÎÏÎ <code>connect</code> ÎÎÎÎÎÏÎÎÏÎÎ ÏÏÎ Î ÎÏÎÏÎÎÎÎ ÎÎÎÏÏÎÏÎÎ "
-"ÏÏÎÎ ÏÎ ÏÎÏÎÎÏÏÎ ÎÎÎÎÎÎÎ. Î ÎÎÎÎÎÏÏÎÎÏÎÎÎÎÏ ÎÏÎÎÎÎÏ ÎÏÏ ÏÎ Anjuta ÎÎÎÎÏÎ ÎÎÎ "
-"ÎÎÎÎÎÎ ÎÏÎÎÎÎÎÎÏÎÏ <code>on_destroy</code> ÏÎÏ ÎÎÎÎÏÎ <link href=\"http://";
-"www.valadoc.org/gtk+-2.0/Gtk.main_quit.html\"><code>Gtk.main_quit</code></"
-"link>, ÎÎÎÎ Î ÏÏÎÎÎÏÎ ÏÎÏ ÏÎÎÎÏÎÏ ÎÎÏ ÏÏÎ <code>main_quit</code> ÎÎÎÏÎ ÎÎÎÎÎ "
-"ÎÏÎÎÎÏÏÎÏÎ. ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÎÏÎÏÎÏÎ ÏÎ ÎÎÎÎÎÎ <code>on_destroy</code>."
-
-#: C/image-viewer.vala.page:204(title) C/image-viewer.cpp.page:136(title)
-#: C/image-viewer.c.page:149(title)
-msgid "Showing the image"
-msgstr "ÎÎÏÎÎÎÏÎ ÏÎÏ ÎÎÎÏÎÎÏ"
+"ÎÏÏÎ Î ÎÎÎÎÎÎÎ ÎÎÎÎÎ ÎÎÎ ÎÏÎÏ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÏÎÏ ÏÎÏ ÎÏÎÏÏÎÏÎÎ ÎÎ "
+"ÏÏÎÎÎÏÎÏÎ ÏÎ ÎÎÎÎÎÎÏ ÎÎÏÏ ÏÎÎÏÎÎÏÎÎÏ ÏÏÎÏ ÎÎÏÎ ÎÎ ÏÎÎÎÎÏÎÎÎÎ. Î ÎÏÎÎÎÏÏ ÏÏÎ "
+"ÏÎÎÎÎÏÎÎÏÎ ÏÏÎ ÏÎÎÏÎÎÏÎÎ ÎÎÎÎÎ ÏÎ ÎÎÎÏÎÎÎÎ ÏÏÎ ÏÎÎÏÎ ÏÏÎ ÎÏÎ ÎÎÎÏÎÎÏÏÎ. "
+"ÎÎÎÎÎÎÏÏÎ ÎÎ ÏÎÎÎÎÏÎ ÎÎÎÎ ÏÎÏÏ ÎÎÎ ÎÎ ÎÎÎÏÎ ÏÎ ÏÏÎÎÎÎÎÎÎ."
 
-#: C/image-viewer.vala.page:205(p)
+#: C/scale.js.page:40(section/code)
+#, no-wrap
 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:"
+"\n"
+"const ScaleExample = new Lang.Class({\n"
+"    Name: 'Scale Example',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application({\n"
+"            application_id: 'org.example.jsscale'\n"
+"        });\n"
+"\n"
+"    // Connect 'activate' and 'startup' signals to the callback functions\n"
+"    this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"    this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents window when active\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function() {\n"
+"        this._buildUI ();\n"
+"    },\n"
 msgstr ""
-"ÎÎ ÎÏÎÏÎÏÎÎ ÏÏÏÎ ÏÎÎ ÏÎÎÏÎÏÏÎ ÏÎÎÎÏÎÏ ÎÎÎ ÏÎ ÏÎÎÎ <code>clicked</code> ÎÎÎ "
-"ÏÎ ÎÎÏÎÏÎ ÏÎÏ ÎÎÎÏÎÏÎÎÎ ÏÏÎÎ. ÎÏÎÏÎÎÏÏÎ ÎÏÏÏÎ ÏÎÎ ÎÏÎÎÎÎ ÎÎÏÎ ÏÎÎ "
-"ÎÎÏÎÏÎÎÏÎÏÏÎ:"
-
-#: C/image-viewer.vala.page:231(p)
-msgid "This is a bit complicated, so let's break it down:"
-msgstr "ÎÏÏÏ ÎÎÎÎÎ ÎÎÎÎ ÏÎÎ ÏÎÏÎÏÎÎÎÎ, ÎÎÎÏÏÏ ÎÏ ÏÎ ÏÏÏÎÏÎÏÎÎ:"
+"\n"
+"const ScaleExample = new Lang.Class({\n"
+"    Name: 'Scale Example',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application({\n"
+"            application_id: 'org.example.jsscale'\n"
+"        });\n"
+"\n"
+"    // Connect 'activate' and 'startup' signals to the callback functions\n"
+"    this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"    this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents window when active\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function() {\n"
+"        this._buildUI ();\n"
+"    },\n"
 
-#: C/image-viewer.vala.page:232(p)
+#: C/scale.js.page:65(section/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."
+"All the code for this sample goes in the ScaleExample class. The above code "
+"creates a <link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.";
+"Application.html\">Gtk.Application</link> for our widgets and window to go "
+"in."
 msgstr ""
-"ÎÎÎÏ ÏÎÎÏÎÏÏÎÏ ÏÎÎÎÏÎÏ ÎÎÎÎÎ ÎÎÎÏ ÏÏÏÎÏ ÏÎÏ ÎÎÎÏÎÎÏ ÎÏÎÎÎÎÎÎÏÎÏ ÏÎÏ ÎÎÎÎÎÏÎÎ "
-"ÏÏÎÎ ÎÎÎ ÏÎÎÎ ÎÎÏÎÎÏÎÏÎÎ. ÎÎÏ ÎÎ ÏÏÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÎÎÎÎÎÎÏÎÎÎ."
+"ÎÎÎÏ Î ÎÏÎÎÎÎÏ ÎÎÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÏÎÎÎÎÎÎÎ ÏÏÎÎ ÎÎÎÏÎ ScaleExample. Î "
+"ÏÎÏÎÏÎÎÏ ÎÏÎÎÎÎÏ ÎÎÎÎÎÏÏÎÎÎ ÎÎÎ <link href=\"http://www.roojs.com/seed/";
+"gir-1.2-gtk-3.0/gjs/Gtk.Application.html\">Gtk.Application</link> ÎÎÎ ÎÎ "
+"ÎÏÎÏÎ ÎÎÏÎ ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÏ ÎÎÎ ÏÎ ÏÎÏÎÎÏÏÎ."
 
-#: C/image-viewer.vala.page:235(p)
+#: C/scale.js.page:66(section/code)
+#, no-wrap
 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."
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function() {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            border_width: 20,\n"
+"            title: \"Birds on a Floe\"});\n"
 msgstr ""
-"ÎÎ ÏÏÏÏÎ ÏÏÎÏÎÎ ÏÎÏ ÎÎÎÏÎÎÏ ÎÏÎÎÎÎÎÎÏÎÏ ÎÎÎÎÎ ÏÎÎÏÎÏÎ ÏÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ "
-"ÏÎÏ ÎÏÏÎÎÎÎ ÏÎ ÏÎÎÎ. ÎÎÏÎÎÎÏ ÏÎÏÎÏ ÎÎÎÎ ÎÏÎÏÎÎÏÎ ÏÎÏ ÏÏÎÎÎÎÎÏÎÎ ÎÎ ÏÎ ÏÎÎÎ "
-"ÎÏÏÎÎÏÎÎ ÎÎÏÎ ÎÏÏ ÎÏÏÏ, ÎÎÎÎ <em>ÏÎÏÎÎÎÎÎ</em> ÎÎÎ ÎÏÎÎ ÎÎÎÎÎÎ."
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function() {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            border_width: 20,\n"
+"            title: \"Birds on a Floe\"});\n"
+
+#: C/scale.js.page:81(section/title)
+msgid "Creating the scales"
+msgstr "ÎÎÎÎÎÏÏÎÎÎ ÏÏÎ ÎÎÎÎÎÎÏÎ"
 
-#: C/image-viewer.vala.page:237(p)
+#: C/scale.js.page:82(section/code)
+#, no-wrap
 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:"
+"\n"
+"        // Create the horizontal scale\n"
+"        this._hScale = Gtk.Scale.new_with_range (Gtk.Orientation.HORIZONTAL, 0.0, 100.0, 5.0);\n"
+"        this._hScale.set_valign (Gtk.Align.START);\n"
+"        this._hScale.set_value (50);\n"
+"        this._hScale.set_digits (0);\n"
+"        // this._hScale.set_draw_value (false);\n"
 msgstr ""
-"ÎÎ ÎÏÏÎÎ ÏÎÎ ÏÎÏÎÏÏÏÏÎ ÏÎ <code>button</code> ÎÏÏÎÎÎÎ ÏÎ ÏÎÎÎ <code>clicked</"
-"code>, ÏÎÏ ÏÏÎÎÎÎÏÎÎ ÎÎ ÏÎ ÎÎÎÎÎÎ ÎÏÎÎÎÎÎÎÏÎÏ <code>on_open_image</code>:"
+"\n"
+"        // Create the horizontal scale\n"
+"        this._hScale = Gtk.Scale.new_with_range (Gtk.Orientation.HORIZONTAL, 0.0, 100.0, 5.0);\n"
+"        this._hScale.set_valign (Gtk.Align.START);\n"
+"        this._hScale.set_value (50);\n"
+"        this._hScale.set_digits (0);\n"
+"        // this._hScale.set_draw_value (false);\n"
 
-#: C/image-viewer.vala.page:242(p)
+#: C/scale.js.page:91(section/p)
 msgid ""
-"The <code>on_open_image</code> method takes the button that emitted the "
-"signal as an argument:"
+"The new_with_range method is one way to create a new Scale widget. The "
+"parameters it takes are a <link href=\"http://www.roojs.org/seed/gir-1.2-";
+"gtk-3.0/gjs/Gtk.Orientation.html\">Gtk.Orientation</link>, the minimum "
+"value, the maximum value, and the increment for a single step. After that we "
+"use the Scale's methods to set its starting value, and how many decimal "
+"places it runs to. We also set its vertical alignment in this case, to "
+"control where it appears in the window."
 msgstr ""
-"Î ÎÎÎÎÎÎÏ <code>on_open_image</code> ÏÎÎÏÎÎÎ ÏÎ ÎÎÏÎÏÎ ÏÎÏ ÎÎÎÏÎÎÏÎ ÏÎ ÏÎÎÎ "
-"ÏÏ ÏÏÎÏÎÎ:"
+"Î ÎÎÎÎÎÎÏ new_with_range ÎÎÎÎÎ ÎÎÎÏ ÏÏÏÏÎÏ ÎÎÎÎÎÏÏÎÎÎÏ ÎÎÏÏ ÎÎÎÏ ÎÏÎÏÎÎÎÏ "
+"ÏÏÏÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎÏ. ÎÎ ÏÎÏÎÎÎÏÏÎÎ ÏÎÏ ÏÎÎÏÎÎÎ ÎÎÎÎÎ ÎÎÎ <link href=\"http://";
+"www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.Orientation.html\">Gtk."
+"Orientation</link>, Î ÎÎÎÏÎÏÏÎ ÏÎÎÎ, Î ÎÎÎÎÏÏÎ ÏÎÎÎ ÎÎÎ Î ÎÏÎÎÏÎ ÎÎÎ ÎÎÎ "
+"ÎÏÎÎ ÎÎÎÎ. ÎÎÏÏÏÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÏÎÏ ÎÎÎÏÎÎÏÏ ÎÎÎÎÎÎÎÏ ÎÎÎ ÎÎ ÎÏÎÏÎÏÎÎ ÏÎÎ "
+"ÎÏÏÎÎÎ ÏÎÏ ÏÎÎÎ ÎÎÎ ÏÏÏÎÏ ÎÎÎÎÎÎÎÎÏ ÎÎÏÎÎÏ ÎÎÎÏÏÎÏÎÎ. ÎÏÎÏÎÏ ÎÏÎÎÎÏÎÎ ÏÎÎ "
+"ÎÎÎÎÏÎ ÏÎÏ ÏÏÎÎÏÎÏÎ ÏÎ ÎÏÏÎÎ ÏÎÎ ÏÎÏÎÏÏÏÏÎ, ÎÎÎ ÏÎÎ ÎÎÎÎÏÎ ÏÎÏ ÎÎÏÎÎÎÎÎÏÎÎ "
+"ÏÏÎ ÏÎÏÎÎÏÏÎ."
 
-#: C/image-viewer.vala.page:248(p)
+#: C/scale.js.page:92(section/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."
+"We can use the set_draw_value method to tell it whether or not to show the "
+"number next to the sliding scale. It's commented out in this example."
 msgstr ""
-"Î ÎÏÏÎÎÎÎ ÎÎÎÎÎÏÎÏÎÏÏÎ ÎÏÎÎÎÎ ÎÎÎÎÎ ÏÏÎÎ Î ÎÎÎÎÎÎÎÏ ÎÏÎÎÎÎÎÏ ÏÎÏ ÎÏÏÎÎÎÏ "
-"ÎÎÎÎÎÏÏÎÎÎÏÎÎ. ÎÎ <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.";
-"FileChooserDialog.html\"><code>FileChooserDialog</code></link> ÏÎÏ "
-"ÎÎÏÎÏÎÎÏÎÏÏÎ ÏÎÎÏÎÎÎ ÏÎÎ ÏÎÏÎÎ ÏÎÏ ÎÎÎÎÏÎÎÏ, ÏÎ ÎÎÎÏÎ ÏÎÏÎÎÏÏÎ ÏÎÏ ÎÎÎÎÏÎÎÏ "
-"ÎÎÎ ÏÎÎÎÎÏ ÎÏÎÎÎÎÎÏ ÏÏÏÏ Î ÎÏÎÎÎÏÏ ÏÏÎ ÎÎÏÎÏÎÏÎ ÎÎÎ ÎÎ ÎÎÏÎÏÏÎÎÏÎÏ ÏÎÎÎÏ "
-"ÏÎÏÏ."
+"ÎÏÎÏÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÏÎ ÎÎÎÎÎÎ set_draw_value ÎÎÎ ÎÎ ÏÎÏ ÏÎÏÎÎ ÎÎÎ "
+"ÎÎ ÎÎÏÎÎÎÏÎÎ Î ÏÏÎ ÏÎÎ ÎÏÎÎÎÏ ÎÎÏÎÎ ÏÏÎÎ ÎÎÎÎÏÎ ÎÎÎÎÎÎÎ. ÎÏÎÎÎÎÎÎÏÎÎ ÏÎ ÎÏÏÏ "
+"ÏÎ ÏÎÏÎÎÎÎÎÎÎ."
 
-#: C/image-viewer.vala.page:250(p)
+#: C/scale.js.page:94(section/code)
+#, no-wrap
 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."
+"\n"
+"        // Create a master adjustment to use for the vertical (or any other) scale\n"
+"        this._adjustment = new Gtk.Adjustment ({\n"
+"            value: 95,\n"
+"            lower: 0,\n"
+"            upper: 100,\n"
+"            step_increment: 5,\n"
+"            page_increment: 10 });\n"
 msgstr ""
-"ÎÎÎÎÎÏÏÏÎ ÏÏÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÏÎ ÎÎÏÎÎÏÎ ÎÎÏÎÏÎÏÎ <link href=\"http://";
-"unstable.valadoc.org/gtk+-3.0/Gtk.Stock.html\"><em>ÎÏÎÎÎÎÎÏÎÏ</em></link> "
-"ÎÏÏ ÏÎ Gtk, ÎÎÏÎ ÎÎ ÎÏÎÏÎÏÎÎ ÏÎÎÏÎÎÎÎÎÏÎ \"ÎÎÏÏÏÏÎ\" Î \"ÎÎÎÎÎÎÎ\". ÎÎ "
-"ÏÎÎÎÎÎÎÏÎÎÎ ÏÎÏ ÏÏÎÏÎÏ ÏÏÎ ÎÎÎÎÎÏÏÎ ÎÏÎÎÎÎÎÏÎÏ ÎÎÎÎÎ ÏÏÎ ÎÎ ÎÏÎÎÎÏÎÏ ÏÏÎ "
-"ÎÎÏÎÏÎÏÎ ÎÎ ÎÏÎÏÎ ÎÎÎ ÎÎÏÎÏÏÎÏÏÎÎ ÏÏÎ ÎÎÏÏÏÎ ÏÎÏ ÏÏÎÏÏÎ."
+"\n"
+"        // Create a master adjustment to use for the vertical (or any other) scale\n"
+"        this._adjustment = new Gtk.Adjustment ({\n"
+"            value: 95,\n"
+"            lower: 0,\n"
+"            upper: 100,\n"
+"            step_increment: 5,\n"
+"            page_increment: 10 });\n"
 
-#: C/image-viewer.vala.page:254(p)
+#: C/scale.js.page:104(section/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."
+"An Adjustment is an object we can use to simplify things when creating a new "
+"Scale. The Adjustment's \"value\" property is what the Scale's default value "
+"is, while \"upper\" and \"lower\" make the high and low ends of the "
+"numerical range. Meanwhile, the increment values show how much the slider "
+"moves when you do things like click on it."
 msgstr ""
-"ÎÎ ÎÏÏÎÎÎÎÏ ÎÏÎ ÎÏÎÎÎÎÏ ÏÎÏÎÎÏÎÎÎÏÎ ÏÎ ÎÎÎÎÎÎÎ <gui>ÎÎÎÎÎÎÎ</gui> ÎÎ "
-"ÎÎÏÎÎÎÎÎÎ ÎÏÎÎ ÎÏÏÎÎÎ ÏÎÏ ÎÏÎÏÎÏÎ ÎÎ ÎÎÎÎÏÎÎÏÎ ÎÏÏ ÏÎ <em>GtkImage</em>. ÎÎ "
-"GtkImage ÎÎÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÏÎÏ ÎÎÏÎÎÎÎÎÎ ÎÎÎ ÎÎÎÏÎÎ. ÎÎÎ "
-"ÎÎÏÎÎÎÎÎÎÎÎ ÏÎÎÏÏÎÏ ÎÎÎÎÎÏÏÎÎÎÏÎÎ ÏÏÏÏÎÂ ÎÏÎÎÏÎ ÏÏÎÏÎÎÏÎÏÎÎ ÏÎÎ ÏÎ ÎÎÎÎ ÏÏÎ "
-"ÎÏÏÎÎÏÎ ÏÎÏ ÏÏÎÏÏÎÏÎÎÎÎÏÎÎ ÎÏÏ <link href=\"http://www.valadoc.org/gdk-";
-"pixbuf-2.0/Gdk.Pixbuf.html\"><code>Gdk.Pixbuf</code></link>(ÏÎ ÎÏÎÎÎ "
-"ÏÎÏÎÎÎÎÎÎÎÎÎ ÏÎÏ ÏÎÏÎÏÏÏÏÎÏÎÏ ÎÎÏÏÎÏ ÎÎÎÏÎÏÎ ÏÏÏÏ PNG ÎÎÎ JPEG) ÏÏÎ ÏÎÎÏÏÎ. "
-"ÎÎÎÎÏ, ÎÏÎÎÎÏÎÎ ÎÏÏÏ ÏÎ ÏÎÎÏÏÎ ÎÎ ÎÎÎÎÎ ÏÎ ÏÎÎÏÏÎ ÏÎÏ ÎÎÎÎÏÎÎÏ <gui>ÎÎÎÎÎÎÎ</"
-"gui>."
+"ÎÎÎ ÏÏÎÎÎÏÎ ÎÎÎÎÎ ÎÎÎ ÎÎÏÎÎÎÎÎÎÎÎ ÏÎÏ ÎÏÎÏÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÎÎ "
+"ÎÏÎÎÏÎÎÎÏÎ ÏÏÎ ÏÏÎÎÎÎÏÏÎ ÏÏÎÎ ÎÎÎÎÎÏÏÎÎÎÏÎ ÎÎÎ ÎÎÎ ÎÎÎÎÎÎÎ. Î ÎÎÎÏÏÎÏÎ ÏÎÏ "
+"ÏÏÎÎÎÏÎÏ \"value\" ÎÎÎÎÎ Î ÏÏÎÎÏÎÎÎÎÎÎÎÎ ÏÎÎÎ ÏÎÏ ÎÎÎÎÎÎÎÏ, ÎÎÏ \"upper\" "
+"ÎÎÎ \"lower\" ÎÎÎÎÏÎ ÏÎ ÏÎÎÏ ÎÎÎ ÎÎÏÏ ÎÎÏÎ ÏÎÏ ÎÏÎÎÎÎÏÎÎÎÏ ÏÎÏÎÎÏÎÏ. ÎÏÎ "
+"ÎÎÏÎÎÏ, ÎÎ ÏÎÎÎÏ ÎÏÎÎÏÎÏ ÎÎÏÎÎÎÎÎÏÎ ÏÏÏÎ ÎÎÏÎÎÎÎÎÎÏÎÎ Î ÎÎÎÏÎÎÏÎÏ ÏÏÎÎ "
+"ÎÎÎÎÏÎ ÏÏÎÎÎÎÏÎ ÏÏÏÏ ÏÎ ÏÎÏÎÎÎ ÏÎÎÏ ÏÎÏ."
 
-#: C/image-viewer.vala.page:259(p)
+#: C/scale.js.page:106(section/code)
+#, no-wrap
 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."
+"\n"
+"        // Create a vertical scale using the adjustment we just made\n"
+"        this._vScale = new Gtk.Scale ({\n"
+"            orientation: Gtk.Orientation.VERTICAL,\n"
+"            adjustment: this._adjustment,\n"
+"            digits: 0,\n"
+"            // draw_value: false,\n"
+"            margin_left: 10 });\n"
 msgstr ""
-"ÎÎ <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Dialog.run.html";
-"\"><code>dialog.run</code></link> ÎÎÏÎÎÎÎÎÎ ÏÎ ÎÎÎÎÎÎÎ <gui>ÎÎÎÎÎÎÎ</gui>. Î "
-"ÎÎÎÎÎÎÎÏ ÎÎ ÏÎÏÎÎÎÎÎÎ ÎÎ ÎÏÎÎÎÎÎÎ Î ÏÏÎÏÏÎÏ ÎÎÎ ÎÎÎÏÎÎÂ ÏÏÎÎ ÎÎÎÎÎ ÏÎ "
-"<code>dialog.run</code> ÎÎ ÎÏÎÏÏÏÎÏÎÎ ÏÎÎ ÏÎÎÎ <link href=\"http://www.";
-"valadoc.org/gtk+-3.0/Gtk.ResponseType.html\">ResponseType</link> "
-"<code>ResponseType.ACCEPT</code> (ÎÎ ÎÏÎÏÎÏÏÎ ÎÎ ÎÏÎÏÏÏÎÏÎÎ ÏÎ "
-"<code>ResponseType.CANCEL</code> ÎÎÎ Î ÏÏÎÏÏÎÏ ÏÎÏÎÏÏÎ <gui>ÎÎÏÏÏÏÎ</gui>). "
-"Î ÏÏÏÏÎÏÎ <code>switch</code> ÏÎ ÎÎÎÎÏÎÎ."
+"\n"
+"        // Create a vertical scale using the adjustment we just made\n"
+"        this._vScale = new Gtk.Scale ({\n"
+"            orientation: Gtk.Orientation.VERTICAL,\n"
+"            adjustment: this._adjustment,\n"
+"            digits: 0,\n"
+"            // draw_value: false,\n"
+"            margin_left: 10 });\n"
 
-#: C/image-viewer.vala.page:264(p)
+#: C/scale.js.page:116(section/p)
 msgid ""
-"Assuming that the user did click <gui>Open</gui>, the next lines get the "
-"filename of the image selected by the user, and tell the <code>GtkImage</"
-"code> widget to load and display the selected image."
+"Here we create a new Scale object using _adjustment as its \"adjustment\" "
+"property. This is a great shortcut. We still have to tell it to round off "
+"the decimal place, though. Note that the draw_value property is commented "
+"out; this is how you tell it not to show the number next to the Scale when "
+"you're creating one this way."
 msgstr ""
-"ÎÎ ÏÏÎÎÎÏÎÏÎÎ ÏÏÎ Î ÏÏÎÏÏÎÏ ÏÎÏÎÏÎ ÏÎ <gui>ÎÎÎÎÎÎÎ</gui>, ÎÎ ÎÏÏÎÎÎÎÏ "
-"ÎÏÎÎÎÎÏ ÏÎÎÏÎÎÏÎ ÏÎ ÏÎÎÎÎ ÏÎÏ ÎÏÏÎÎÎÏ ÏÎÏ ÎÏÎÎÎÎÎÎÎÎÏ ÎÎÎÏÎÎÏ ÎÏÏ ÏÎÎ ÏÏÎÏÏÎ "
-"ÎÎÎ ÎÎÎÎ ÏÏÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ <code>GtkImage</code> ÎÎ ÏÎÏÏÏÏÎÎ ÎÎÎ ÎÎ "
-"ÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÏÎÎÎÎÎÎÎÎ ÎÎÎÏÎÎ."
+"ÎÎÏ ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ ÎÎÎ ÎÎÏÎÎÎÎÎÎÎÎ ÎÎÎÎÎÎÎÏ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ _adjustment ÏÏ "
+"ÎÎÎÏÏÎÏÎ \"adjustment\". ÎÏÏÏ ÎÎÎÎÎ ÎÎÎ ÎÎÎÎÎÎ ÏÏÎÏÏÎÎÏÏÎ. ÎÏÎÏÎÎ ÎÎÏÎÎ ÎÎ "
+"ÏÎÏ ÏÎÏÎÎ ÎÎ ÏÏÏÎÎÎÏÎÎÏÎÎ ÏÎÏ ÎÎÎÎÎÎÎÎÏ ÎÎÏÎÎÏ, ÏÎÏÏ. ÎÎÎÎÎÏÏÏÎ ÏÏÎ Î "
+"ÎÎÎÏÏÎÏÎ draw_value ÎÎÎÎÎ ÏÏÎÎÎÎÏÎÎÎÎÂ ÎÏÏÎ ÏÎÏ ÎÎÏÎ ÎÎ ÎÎÎ ÎÎÏÎÎÎÏÎÎ ÏÎÎ "
+"ÎÏÎÎÎÏ ÎÎÏÎÎ ÏÏÎÎ ÎÎÎÎÎÎÎ ÏÏÎÎ ÎÎÎÎÎÏÏÎÎÎÏÎ ÎÎÎ ÎÎÎÎÎÎÎ ÎÎ ÎÏÏÏÎ ÏÎÎ ÏÏÏÏÎ."
 
-#: C/image-viewer.vala.page:267(p) C/image-viewer.py.page:213(p)
-#: C/image-viewer.js.page:299(p)
+#: C/scale.js.page:118(section/code)
+#, no-wrap
 msgid ""
-"In the final line of this method, we destroy the <gui>Open</gui> dialog "
-"because we don't need it any more."
+"\n"
+"        // Create the label that shows the product of the two values\n"
+"        this._product = (this._hScale.get_value() * this._vScale.get_value());\n"
+"        this._label = new Gtk.Label ({\n"
+"            label: (String(this._product) + \" penguins on the iceberg.\"),\n"
+"            height_request: 200,\n"
+"            width_request: 200,\n"
+"            wrap: true});\n"
+"\n"
+"        // Connect the two scales to functions which recalculate the label\n"
+"        this._hScale.connect (\"value-changed\", Lang.bind (this, this._recalc));\n"
+"        this._vScale.connect (\"value-changed\", Lang.bind (this, this._recalc));\n"
 msgstr ""
-"ÎÏÎÎ ÏÎÎÎÏÏÎÎÎ ÎÏÎÎÎÎ ÎÏÏÎÏ ÏÎÏ ÎÎÎÏÎÎÏ, ÎÎÏÎÏÏÏÎÏÎÏÎÎ ÏÎÎ ÎÎÎÎÎÎÎ "
-"<gui>ÎÎÎÎÎÎÎ</gui> ÎÎÎÏÎ ÎÎÎ ÏÎÎ ÏÏÎÎÎÎÏÎÎÏÏÎ ÏÎÎ."
-
-#: C/image-viewer.vala.page:268(p)
-msgid "Destroying automatically hides the dialog."
-msgstr "Î ÎÏÏÏÎÎÏÎ ÎÎÏÎÏÏÏÎÏÎ ÎÏÏÎÎÎ ÏÎ ÎÎÎÎÎÎÎ."
+"\n"
+"        // Create the label that shows the product of the two values\n"
+"        this._product = (this._hScale.get_value() * this._vScale.get_value());\n"
+"        this._label = new Gtk.Label ({\n"
+"            label: (String(this._product) + \" penguins on the iceberg.\"),\n"
+"            height_request: 200,\n"
+"            width_request: 200,\n"
+"            wrap: true});\n"
+"\n"
+"        // Connect the two scales to functions which recalculate the label\n"
+"        this._hScale.connect (\"value-changed\", Lang.bind (this, this._recalc));\n"
+"        this._vScale.connect (\"value-changed\", Lang.bind (this, this._recalc));\n"
 
-#: C/image-viewer.vala.page:275(p) C/image-viewer.cpp.page:205(p)
-#: C/image-viewer.c.page:217(p) C/guitar-tuner.vala.page:248(p)
-#: C/guitar-tuner.c.page:252(p)
+#: C/scale.js.page:132(section/p)
 msgid ""
-"All of the code should now be ready to go. Click <guiseq><gui>Build</"
-"gui><gui>Build Project</gui></guiseq> to build everything again, and then "
-"<guiseq><gui>Run</gui><gui>Execute</gui></guiseq> to start the application."
+"We can use the get_value method to find out the numerical value a Scale is "
+"set at. We can then do whatever we want with it, including multiply the two "
+"Scales' values together and have a <link xref=\"label.js\">Label</link> show "
+"us the product. We set the label's text to wrap around, because we're having "
+"it display a silly message too."
 msgstr ""
-"ÎÎÎÏ Î ÎÏÎÎÎÎÏ ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎ ÎÏÎÎÎÎÏ ÏÏÏÎ. ÎÎÎÎ <guiseq><gui>ÎÎÏÎÏÎÎÏÎ</"
-"gui><gui>ÎÎÏÎÏÎÎÏÎ ÎÏÎÎÏ</gui></guiseq> ÎÎÎ ÎÎÎÎÎÏÎÏÎÎÏÎ ÏÏÎ ÏÎÎÏÏÎ ÎÎÎ "
-"ÎÏÎÎÏÎ <guiseq><gui>ÏÏÎÎÎÎÎ</gui><gui>ÎÎÏÎÎÎÏÎ</gui></guiseq> ÎÎÎ ÎÎÎÏÎÎ ÏÎÏ "
-"ÎÏÎÏÎÎÎÎÏ."
+"ÎÏÎÏÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÏÎ ÎÎÎÎÎÎ get_value ÎÎÎ ÎÎ ÎÏÎÏÎÎ ÏÎÎ "
+"ÎÏÎÎÎÎÏÎÎÎ ÏÎÎÎ ÎÏÎÏÎÎÏ ÎÎÎÏ ÎÎÎÎÎÎÎÏ. ÎÏÎÏÎÏÎÎ ÎÏÎÎÏÎ ÎÎ ÎÎÎÎÏÎÎ ÎÏÎÎÎÏÎÏÎ "
+"ÎÎÎÎÏÎÎ ÎÎÎÎ ÏÎÏ, ÏÏÎÏÎÏÎÎÎÎÎÎÎÎÎÏÎÏ ÏÎÎÎÎÏÎÎÏÎÎÏÎÏ ÏÏÎ ÏÎÎÏÎ ÏÏÎ ÎÏÎ "
+"ÎÎÎÎÎÎÏÎ ÎÎÎÎ ÎÎÎ ÎÎ ÎÏÎÏÎÎ ÎÎÎ <link xref=\"label.js\">ÎÏÎÎÎÏÎ</link> ÏÎÏ "
+"ÎÎÏ ÎÎÎÏÎÎÎ ÏÎ ÎÎÎÏÎÎÎÎ. ÎÏÎÎÎÏÎÎ ÏÎ ÎÎÎÎÎÎÎ ÏÎÏ ÎÏÎÎÎÏÎÏ ÎÎ ÎÎÎÎÎÏÎÏÎÎÏÎÎ, "
+"ÎÏÎÎÎÎ ÎÏÎÏÎÎ ÏÎÎ ÎÎÏÎÎÎÏÎ ÎÎÏÏ ÎÎÏÎÏÎÏ ÎÎÎÏÎÎÏÎÏ ÎÏÎÏÎÏ."
 
-#: C/image-viewer.vala.page:277(p)
+#: C/scale.js.page:133(section/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!"
+"After we create the Label, we connect the two Scales' \"value-changed\" "
+"signals to _recalc, a function that will recalculate the number of penguins "
+"on the iceberg and come up with a new message."
 msgstr ""
-"ÎÎÎ ÎÎÎ ÏÎ ÎÏÎÏÎ ÎÎÎ ÎÎÎÎÎ, ÎÏÎÎÎÎÏÎ ÏÎÎ ÎÏÎÏÎÎÎÎ <file>src/image-viewer</"
-"file> ÏÏÎÎ ÎÎÎÎÎÎÎ ÏÎÏ ÎÎÏÎÎÎÎÎÏÎÎ. ÎÎÎÎÎÎ, ÏÎÏÎÏÏÎ <gui>ÏÏÎÎÎÎÎ</gui> ÎÎÎ "
-"ÎÏÎÎÎÏÏÏÎ ÏÎ!"
+"ÎÏÎÏ ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ ÏÎÎ ÎÏÎÎÎÏÎ, ÏÏÎÎÎÎÏÎÎ ÏÎ ÏÎÎÎÏÎ \"value-changed\" ÏÏÎ "
+"ÎÏÎ ÎÎÎÎÎÎÏÎ ÏÏÎ _recalc, ÎÎÎ ÏÏÎÎÏÏÎÏÎ ÏÎÏ ÎÎ ÎÎÎÎÏÏÎÎÎÎÎÏÎÎ ÏÎÎ ÎÏÎÎÎÏ ÏÏÎ "
+"ÏÎÎÎÎÏÎÎÏÎ ÏÏÎ ÏÎÎÏÎÎÏÎÎ ÎÎÎ ÎÎÎÎÎ ÎÎÎ ÎÎÎ ÎÎÎÏÎÎ."
 
-#: C/image-viewer.vala.page:283(p)
+#: C/scale.js.page:135(section/code)
+#, no-wrap
 msgid ""
-"If you run into problems with the tutorial, compare your code with this "
-"<link href=\"image-viewer/image-viewer.vala\">reference code</link>."
+"\n"
+"        // Create a grid to arrange things in\n"
+"        this._UIGrid = new Gtk.Grid ({\n"
+"            halign: Gtk.Align.CENTER,\n"
+"            valign: Gtk.Align.CENTER,\n"
+"            margin_top: 20,\n"
+"            margin_left: 20});\n"
+"\n"
+"        // Attach everything to the grid\n"
+"        this._UIGrid.attach (this._label, 0, 0, 1, 1);\n"
+"        this._UIGrid.attach (this._hScale, 0, 1, 1, 1);\n"
+"        this._UIGrid.attach (this._vScale, 1, 0, 1, 1);\n"
 msgstr ""
-"ÎÎ ÎÎÏÎÎÎÏÏÏÎÏÎÏÎ ÏÏÏÎÎÎÎÎ ÎÎ ÏÎ ÎÎÎÎÎÎ, ÏÏÎÎÏÎÎÎÏÎ ÏÎÎ ÎÏÎÎÎÎ ÏÎÏ ÎÎ ÎÏÏÏÎ "
-"ÏÎÎ <link href=\"image-viewer/image-viewer.vala\">ÎÏÎÎÎÎ ÎÎÎÏÎÏÎÏ</link>."
+"\n"
+"        // Create a grid to arrange things in\n"
+"        this._UIGrid = new Gtk.Grid ({\n"
+"            halign: Gtk.Align.CENTER,\n"
+"            valign: Gtk.Align.CENTER,\n"
+"            margin_top: 20,\n"
+"            margin_left: 20});\n"
+"\n"
+"        // Attach everything to the grid\n"
+"        this._UIGrid.attach (this._label, 0, 0, 1, 1);\n"
+"        this._UIGrid.attach (this._hScale, 0, 1, 1, 1);\n"
+"        this._UIGrid.attach (this._vScale, 1, 0, 1, 1);\n"
 
-#: C/image-viewer.vala.page:287(title) C/image-viewer.py.page:230(title)
-#: C/image-viewer.js.page:316(title) C/image-viewer.cpp.page:215(title)
-#: C/image-viewer.c.page:227(title) C/guitar-tuner.vala.page:264(title)
-#: C/guitar-tuner.py.page:234(title) C/guitar-tuner.cpp.page:268(title)
-#: C/guitar-tuner.c.page:262(title)
-msgid "Next steps"
-msgstr "ÎÏÏÎÎÎÎ ÎÎÎÎÏÎ"
+#: C/scale.js.page:148(section/p)
+msgid ""
+"Here we create a <link xref=\"grid.js\">Grid</link> to put everything in, "
+"then attach all our widgets to it. Note that here and on some of the widgets "
+"themselves we're using margins to keep things neatly spaced."
+msgstr ""
+"ÎÎÏ ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ <link xref=\"grid.js\">ÏÎÎÎÎÎ</link> ÎÎÎ ÎÎ ÏÎ ÎÎÎÎÏÎÎ "
+"ÏÎÎ ÎÎÏÎ, ÎÏÎÎÏÎ ÏÏÎÏÎÎÎÎÎÎÎ ÏÎÎ ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÏ. ÎÎÎÎÎÏÏÏÎ ÏÏÎ ÎÎÏ "
+"ÎÎÎ ÎÎÎ ÎÎÏÎÎÎ ÎÏÏ ÏÎ ÎÎÎÎ ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÏÎÏÎÎÏÏÎÎ ÎÎÎ "
+"ÎÎ ÎÏÎÏÎÏÎÏÎÎ ÏÎ ÏÏÎÎÎÎÏÎ ÏÎÏÎÎÎÏÎÎÎÎÎ ÎÎ ÏÎÎÎ."
 
-#: C/image-viewer.vala.page:288(p) C/image-viewer.py.page:231(p)
-#: C/image-viewer.js.page:317(p) C/image-viewer.cpp.page:216(p)
-#: C/image-viewer.c.page:228(p) C/guitar-tuner.vala.page:265(p)
-#: C/guitar-tuner.py.page:235(p) C/guitar-tuner.cpp.page:269(p)
-#: C/guitar-tuner.c.page:263(p)
-msgid "Here are some ideas for how you can extend this simple demonstration:"
+#: C/scale.js.page:149(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"        // Add the grid to the window\n"
+"        this._window.add (this._UIGrid);\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    },\n"
 msgstr ""
-"ÎÎÏ ÎÎÎÎÎ ÎÎÏÎÎÎÏ ÎÎÎÎÏ ÎÎÎ ÏÎ ÏÏÏ ÎÏÎÏÎÎÏÎ ÎÎ ÎÏÎÎÏÎÎÎÎÏÎ ÎÏÏÎ ÏÎÎ ÎÏÎÎ "
-"ÏÎÏÎÏÏÎÎÏÎ:"
+"\n"
+"        // Add the grid to the window\n"
+"        this._window.add (this._UIGrid);\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    },\n"
 
-#: C/image-viewer.vala.page:290(p)
+#: C/scale.js.page:157(section/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."
+"Finally, we add the Grid to the window, then tell the window to show itself "
+"and all the widgets inside of it."
 msgstr ""
-"ÎÎÎÎÏÎÏÏÎÏÏÎ ÏÎÎ ÎÏÏÎ ÏÏÏÎ ÏÏÎÎ ÏÎ ÏÎÏÎÎÏÏÎ ÎÎÎÎÎÎÎ ÎÎ ÎÎÎÎÎ ÏÏÎÎÎÎÏÎÎÎÎÎÏ "
-"ÎÎÎÎÎÎÏÏ ÎÎÎ ÎÎÎÎÎÎÏÎ. ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ, 200 Î 200 ÎÎÎÎÎÎÏÏÎÎÏÎÎÎ."
+"ÎÎÎÎÎÎ, ÏÏÎÏÎÎÏÎÏÎÎ ÏÎ ÏÎÎÎÎÎ ÏÏÎ ÏÎÏÎÎÏÏÎ, ÎÏÎÎÏÎ ÎÎÎÎ ÏÏÎ ÏÎÏÎÎÏÏÎ ÎÎ "
+"ÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÎÏÏÏÎ ÏÎÏ ÎÎÎ ÏÎÎ ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÏÎ ÏÎÏ."
+
+#: C/scale.js.page:161(section/title)
+msgid "Function which handles the scales' values changing"
+msgstr "Î ÏÏÎÎÏÏÎÏÎ ÏÎÏ ÏÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÎÎÎÎÎ ÏÏÎ ÏÎÎÏÎ ÏÏÎ ÎÎÎÎÎÎÏÎ"
 
-#: C/image-viewer.vala.page:292(p) C/image-viewer.py.page:234(p)
-#: C/image-viewer.js.page:320(p) C/image-viewer.cpp.page:219(p)
-#: C/image-viewer.c.page:231(p)
+#: C/scale.js.page:163(section/code)
+#, no-wrap
 msgid ""
-"Have the user select a directory rather than a file, and provide controls to "
-"cycle through all of the images in a directory."
+"\n"
+"    _recalc: function() {\n"
+"\n"
+"        // Figure out what the product of the two scales' values is\n"
+"        var product = (this._hScale.get_value() * this._vScale.get_value());\n"
+"\n"
+"        // Create a blank comment line in case there isn't a silly comment to make\n"
+"        var comment = \"\";\n"
+"\n"
+"        // Make a silly comment based on the number of penguins\n"
+"        if (product &gt; 9000) {\n"
+"            comment = \"It's over 9000!\";\n"
+"        }\n"
+"        else if (product &lt; 1000 &amp;&amp; product &gt; 0) {\n"
+"            comment = \"They're getting lonely.\";\n"
+"        }\n"
+"        else if (product == 0) {\n"
+"            comment = \"They're all gone ...\";\n"
+"        }\n"
+"        else comment = \"\";\n"
+"\n"
+"        // Set ._label's new text\n"
+"        this._label.set_label (String (product) + \" penguins on the iceberg. \" + comment);\n"
+"\n"
+"    }\n"
+"\n"
+"});\n"
 msgstr ""
-"ÎÎÎÏÎ ÏÎÎ ÏÏÎÏÏÎ ÎÎ ÎÏÎÎÎÎÎÎ ÎÎÎ ÎÎÏÎÎÎÎÎ ÎÎÏÎ ÎÎÎ ÎÏÏÎÎÎ ÎÎÎ ÎÏÏÏÎ ÎÎÎÎÏÎÏÏ "
-"ÎÎ ÎÏÏÎÎÎÏÎ ÏÎÎÏ ÏÎÏ ÎÎÎÏÎÎÏ ÏÎ ÎÎÎÎ ÎÎÏÎÎÎÎÎ."
+"\n"
+"    _recalc: function() {\n"
+"\n"
+"        // Figure out what the product of the two scales' values is\n"
+"        var product = (this._hScale.get_value() * this._vScale.get_value());\n"
+"\n"
+"        // Create a blank comment line in case there isn't a silly comment to make\n"
+"        var comment = \"\";\n"
+"\n"
+"        // Make a silly comment based on the number of penguins\n"
+"        if (product &gt; 9000) {\n"
+"            comment = \"It's over 9000!\";\n"
+"        }\n"
+"        else if (product &lt; 1000 &amp;&amp; product &gt; 0) {\n"
+"            comment = \"They're getting lonely.\";\n"
+"        }\n"
+"        else if (product == 0) {\n"
+"            comment = \"They're all gone ...\";\n"
+"        }\n"
+"        else comment = \"\";\n"
+"\n"
+"        // Set ._label's new text\n"
+"        this._label.set_label (String (product) + \" penguins on the iceberg. \" + comment);\n"
+"\n"
+"    }\n"
+"\n"
+"});\n"
 
-#: C/image-viewer.vala.page:295(p) C/image-viewer.py.page:237(p)
-#: C/image-viewer.js.page:323(p) C/image-viewer.cpp.page:222(p)
-#: C/image-viewer.c.page:234(p)
+#: C/scale.js.page:191(section/p)
 msgid ""
-"Apply random filters and effects to the image when it is loaded and allow "
-"the user to save the modified image."
+"Remember, we can get a Scale's value using its get_value method. Here we "
+"simply recalculate what the product of the two values is after one of the "
+"Scales is moved, add in a silly message depending on how many penguins are "
+"left, and change the wording on _label to show the new number and message."
 msgstr ""
-"ÎÏÎÏÎÏÏÏÎ ÏÏÏÎÎÎ ÏÎÎÏÏÎ ÎÎÎ ÎÏÎ ÏÏÎÎ ÎÎÎÏÎÎ ÏÏÎÎ ÎÏÏÎ ÏÎÏÏÏÎÎÎ ÎÎÎ ÎÏÎÏÏÎÏÏÎ "
-"ÏÏÎÎ ÏÏÎÏÏÎ ÎÎ ÎÏÎÎÎÎÎÏÏÎÎ ÏÎÎ ÎÏÎÎÎÏÎÎÏÎÎÎÎ ÎÎÎÏÎÎ."
+"ÎÎ ÎÏÎÎÏÏÎ, ÎÏÎÏÎÏÎÎ ÎÎ ÏÎÏÎÏÎÎ ÎÎÎ ÏÎÎÎ ÎÎÎÎÎÎÎÏ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ ÎÎÎÎÎÎ "
+"ÏÎÏ get_value. ÎÎÏ ÎÏÎÎ ÎÎÎÎÏÏÎÎÎÎÎÎÎÏÎÎ ÏÎÎÎ ÎÎÎÎÎ ÏÎ ÎÎÎÏÎÎÎÎ ÏÏÎ ÎÏÎ "
+"ÏÎÎÏÎ ÎÎÏÎ ÏÎ ÎÎÏÎÎÎÎÎÏÎ ÎÎÎÏ ÎÏÏ ÏÎÏ ÎÎÎÎÎÎÎÏ, ÏÏÎÏÎÎÏÎÏÎÎ ÎÎÎ ÎÎÏÎÏÎ "
+"ÎÎÎÏÎÎ ÎÎÎÎÎÎÎ ÎÎ ÏÎ ÏÏÏÎÎ ÏÎÎÎÎÏÎÎÎÎ ÎÏÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎÎÎÎÏÎÎ ÏÎ ÎÎÎÏÏÏÏÏÎ "
+"ÏÏÎÎ _label ÎÎÎ ÎÎ ÎÎÎÎÎÏÎÎ ÏÎ ÎÎÎ ÎÏÎÎÎÏ ÎÎÎ ÏÎ ÎÎÎÏÎÎ."
 
-#: C/image-viewer.vala.page:296(p) C/image-viewer.py.page:238(p)
-#: C/image-viewer.js.page:324(p) C/image-viewer.cpp.page:223(p)
-#: C/image-viewer.c.page:235(p)
+#: C/scale.js.page:193(section/code)
+#, no-wrap
 msgid ""
-"<link href=\"http://www.gegl.org/api.html\";>GEGL</link> provides powerful "
-"image manipulation capabilities."
+"\n"
+"// Run the application\n"
+"let app = new ScaleExample ();\n"
+"app.application.run (ARGV);\n"
 msgstr ""
-"ÎÎ <link href=\"http://www.gegl.org/api.html\";>GEGL</link> ÏÎÏÎÏÎÎ ÎÏÏÏÏÎÏ "
-"ÎÏÎÎÏÏÏÎÏÎÏ ÎÏÎÎÎÏÎÎÏÎÎÏ ÎÎÎÏÎÎÏ."
+"\n"
+"// Run the application\n"
+"let app = new ScaleExample ();\n"
+"app.application.run (ARGV);\n"
 
-#: C/image-viewer.vala.page:299(p) C/image-viewer.py.page:241(p)
-#: C/image-viewer.js.page:327(p) C/image-viewer.cpp.page:226(p)
-#: C/image-viewer.c.page:238(p)
+#: C/scale.js.page:198(section/p)
 msgid ""
-"Allow the user to load images from network shares, scanners, and other more "
-"complicated sources."
+"Finally, we create a new instance of the finished ScaleExample class, and "
+"set the application running."
 msgstr ""
-"ÎÏÎÏÏÎÏÏÎ ÏÏÎÎ ÏÏÎÏÏÎ ÎÎ ÏÎÏÏÏÎÎÎ ÎÎÎÏÎÎÏ ÎÏÏ ÎÎÏÎÏÎÏ ÎÎÎÏÏÎÏ, ÎÏÏ ÏÎÏÏÏÎÏ "
-"ÎÎÎ ÎÏÏ ÎÎÎÎÏ ÏÎÏÎÏÎÎÎÎÏ ÏÎÎÎÏ."
+"ÎÎÎÎÎÎ, ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ ÎÎÎ ÏÏÎÎÎÎÏÏÏÏÎ ÏÎÏ ÎÎÎÎÎÎÏÏÎÎÎÎÏ ÎÎÎÏÎÏ "
+"ScaleExample ÎÎÎ ÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ."
 
-#: C/image-viewer.vala.page:300(p) C/image-viewer.py.page:242(p)
-#: C/image-viewer.js.page:328(p) C/image-viewer.cpp.page:227(p)
-#: C/image-viewer.c.page:239(p)
+#: C/scale.js.page:203(section/code)
+#, no-wrap
 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."
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gio = imports.gi.Gio;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"const ScaleExample = new Lang.Class({\n"
+"    Name: 'Scale Example',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application({\n"
+"            application_id: 'org.example.jsscale'\n"
+"        });\n"
+"\n"
+"    // Connect 'activate' and 'startup' signals to the callback functions\n"
+"    this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"    this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents window when active\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function() {\n"
+"        this._buildUI ();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function() {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            border_width: 20,\n"
+"            title: \"Birds on a Floe\"});\n"
+"\n"
+"        // Create the horizontal scale\n"
+"        this._hScale = Gtk.Scale.new_with_range (Gtk.Orientation.HORIZONTAL, 0.0, 100.0, 5.0);\n"
+"        this._hScale.set_valign (Gtk.Align.START);\n"
+"        this._hScale.set_value (50);\n"
+"        this._hScale.set_digits (0);\n"
+"        // this._hScale.set_draw_value (false);\n"
+"\n"
+"        // Create a master adjustment to use for the vertical (or any other) scale\n"
+"        this._adjustment = new Gtk.Adjustment ({\n"
+"            value: 95,\n"
+"            lower: 0,\n"
+"            upper: 100,\n"
+"            step_increment: 5,\n"
+"            page_increment: 10 });\n"
+"\n"
+"        // Create a vertical scale using the adjustment we just made\n"
+"        this._vScale = new Gtk.Scale ({\n"
+"            orientation: Gtk.Orientation.VERTICAL,\n"
+"            adjustment: this._adjustment,\n"
+"            digits: 0,\n"
+"            // draw_value: false,\n"
+"            margin_left: 10 });\n"
+"\n"
+"        // Create the label that shows the product of the two values\n"
+"        this._product = (this._hScale.get_value() * this._vScale.get_value());\n"
+"        this._label = new Gtk.Label ({\n"
+"            label: (String(this._product) + \" penguins on the iceberg.\"),\n"
+"            height_request: 200,\n"
+"            width_request: 200,\n"
+"            wrap: true});\n"
+"\n"
+"        // Connect the two scales to functions which recalculate the label\n"
+"        this._hScale.connect (\"value-changed\", Lang.bind (this, this._recalc));\n"
+"        this._vScale.connect (\"value-changed\", Lang.bind (this, this._recalc));\n"
+"\n"
+"        // Create a grid to arrange things in\n"
+"        this._UIGrid = new Gtk.Grid ({\n"
+"            halign: Gtk.Align.CENTER,\n"
+"            valign: Gtk.Align.CENTER,\n"
+"            margin_top: 20,\n"
+"            margin_left: 20});\n"
+"\n"
+"        // Attach everything to the grid\n"
+"        this._UIGrid.attach (this._label, 0, 0, 1, 1);\n"
+"        this._UIGrid.attach (this._hScale, 0, 1, 1, 1);\n"
+"        this._UIGrid.attach (this._vScale, 1, 0, 1, 1);\n"
+"\n"
+"        // Add the grid to the window\n"
+"        this._window.add (this._UIGrid);\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    _recalc: function() {\n"
+"\n"
+"        // Figure out what the product of the two scales' values is\n"
+"        var product = (this._hScale.get_value() * this._vScale.get_value());\n"
+"\n"
+"        // Create a blank comment line in case there isn't a silly comment to make\n"
+"        var comment = \"\";\n"
+"\n"
+"        // Make a silly comment based on the number of penguins\n"
+"        if (product &gt; 9000) {\n"
+"            comment = \"It's over 9000!\";\n"
+"        }\n"
+"        else if (product &lt; 1000 &amp;&amp; product &gt; 0) {\n"
+"            comment = \"They're getting lonely.\";\n"
+"        }\n"
+"        else if (product == 0) {\n"
+"            comment = \"They're all gone ...\";\n"
+"        }\n"
+"        else comment = \"\";\n"
+"\n"
+"        // Set ._label's new text\n"
+"        this._label.set_label (String (product) + \" penguins on the iceberg. \" + comment);\n"
+"\n"
+"    }\n"
+"\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new ScaleExample ();\n"
+"app.application.run (ARGV);\n"
 msgstr ""
-"ÎÏÎÏÎÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÏÎ <link href=\"http://library.gnome.org/devel/";
-"gio/unstable/\">GIO</link> ÎÎÎ ÏÎÎÏÎÏÎÏ ÎÎÏÎÏÎÏÏÎ ÎÏÏÎÎÏÎ ÎÎÎÏÏÎÏ ÎÎÎ ÏÎ "
-"ÏÎÏÏÎÎÎÎ, ÎÎÎ ÏÎ <link href=\"http://library.gnome.org/devel/gnome-scan/";
-"unstable/\">ÎÎÏÏÏÎ ÏÎÏ GNOME</link> ÎÎÎ ÏÎÎÏÎÏÎÏ ÏÎÏÏÏÎÏ."
-
-#: C/image-viewer.py.page:7(title)
-msgid "Image Viewer (Python)"
-msgstr "ÎÏÎÎÎÎÎÎÏ ÎÎÎÏÎÏÎ (Python)"
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gio = imports.gi.Gio;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"const ScaleExample = new Lang.Class({\n"
+"    Name: 'Scale Example',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application({\n"
+"            application_id: 'org.example.jsscale'\n"
+"        });\n"
+"\n"
+"    // Connect 'activate' and 'startup' signals to the callback functions\n"
+"    this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"    this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents window when active\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function() {\n"
+"        this._buildUI ();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function() {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            border_width: 20,\n"
+"            title: \"Birds on a Floe\"});\n"
+"\n"
+"        // Create the horizontal scale\n"
+"        this._hScale = Gtk.Scale.new_with_range (Gtk.Orientation.HORIZONTAL, 0.0, 100.0, 5.0);\n"
+"        this._hScale.set_valign (Gtk.Align.START);\n"
+"        this._hScale.set_value (50);\n"
+"        this._hScale.set_digits (0);\n"
+"        // this._hScale.set_draw_value (false);\n"
+"\n"
+"        // Create a master adjustment to use for the vertical (or any other) scale\n"
+"        this._adjustment = new Gtk.Adjustment ({\n"
+"            value: 95,\n"
+"            lower: 0,\n"
+"            upper: 100,\n"
+"            step_increment: 5,\n"
+"            page_increment: 10 });\n"
+"\n"
+"        // Create a vertical scale using the adjustment we just made\n"
+"        this._vScale = new Gtk.Scale ({\n"
+"            orientation: Gtk.Orientation.VERTICAL,\n"
+"            adjustment: this._adjustment,\n"
+"            digits: 0,\n"
+"            // draw_value: false,\n"
+"            margin_left: 10 });\n"
+"\n"
+"        // Create the label that shows the product of the two values\n"
+"        this._product = (this._hScale.get_value() * this._vScale.get_value());\n"
+"        this._label = new Gtk.Label ({\n"
+"            label: (String(this._product) + \" penguins on the iceberg.\"),\n"
+"            height_request: 200,\n"
+"            width_request: 200,\n"
+"            wrap: true});\n"
+"\n"
+"        // Connect the two scales to functions which recalculate the label\n"
+"        this._hScale.connect (\"value-changed\", Lang.bind (this, this._recalc));\n"
+"        this._vScale.connect (\"value-changed\", Lang.bind (this, this._recalc));\n"
+"\n"
+"        // Create a grid to arrange things in\n"
+"        this._UIGrid = new Gtk.Grid ({\n"
+"            halign: Gtk.Align.CENTER,\n"
+"            valign: Gtk.Align.CENTER,\n"
+"            margin_top: 20,\n"
+"            margin_left: 20});\n"
+"\n"
+"        // Attach everything to the grid\n"
+"        this._UIGrid.attach (this._label, 0, 0, 1, 1);\n"
+"        this._UIGrid.attach (this._hScale, 0, 1, 1, 1);\n"
+"        this._UIGrid.attach (this._vScale, 1, 0, 1, 1);\n"
+"\n"
+"        // Add the grid to the window\n"
+"        this._window.add (this._UIGrid);\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    _recalc: function() {\n"
+"\n"
+"        // Figure out what the product of the two scales' values is\n"
+"        var product = (this._hScale.get_value() * this._vScale.get_value());\n"
+"\n"
+"        // Create a blank comment line in case there isn't a silly comment to make\n"
+"        var comment = \"\";\n"
+"\n"
+"        // Make a silly comment based on the number of penguins\n"
+"        if (product &gt; 9000) {\n"
+"            comment = \"It's over 9000!\";\n"
+"        }\n"
+"        else if (product &lt; 1000 &amp;&amp; product &gt; 0) {\n"
+"            comment = \"They're getting lonely.\";\n"
+"        }\n"
+"        else if (product == 0) {\n"
+"            comment = \"They're all gone ...\";\n"
+"        }\n"
+"        else comment = \"\";\n"
+"\n"
+"        // Set ._label's new text\n"
+"        this._label.set_label (String (product) + \" penguins on the iceberg. \" + comment);\n"
+"\n"
+"    }\n"
+"\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new ScaleExample ();\n"
+"app.application.run (ARGV);\n"
+
+#: C/scale.js.page:209(item/p) C/spinbutton.js.page:200(item/p)
+msgid ""
+"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.Adjustment.";
+"html\">Gtk.Adjustment</link>"
+msgstr ""
+"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.Adjustment.";
+"html\">Gtk.Adjustment</link>"
+
+#: C/scale.js.page:214(item/p)
+msgid ""
+"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.Scale.html";
+"\">Gtk.Scale</link>"
+msgstr ""
+"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.Scale.html";
+"\">Gtk.Scale</link>"
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/scale.py.page:22(media) C/scale.vala.page:23(media)
+msgctxt "_"
+msgid "external ref='media/scale.png' md5='462c52a53b773cb9e8c62c646bf88452'"
+msgstr "external ref='media/scale.png' md5='462c52a53b773cb9e8c62c646bf88452'"
+
+#: C/scale.py.page:7(info/title)
+msgctxt "text"
+msgid "Scale (Python)"
+msgstr "ÎÎÎÎÎÎÎ (Python)"
 
-#: C/image-viewer.py.page:10(desc)
+#: C/scale.py.page:29(section/code)
+#, no-wrap
 msgid ""
-"A little bit more than a simple \"Hello world\" application - write an image "
-"viewer in GTK."
+"from gi.repository import Gtk\n"
+"import sys\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"Scale Example\", application=app)\n"
+"        self.set_default_size(400, 300)\n"
+"        self.set_border_width(5)\n"
+"\n"
+"        # two adjustments (initial value, min value, max value,\n"
+"        # step increment - press cursor keys to see!,\n"
+"        # page increment - click around the handle to see!,\n"
+"        # page size - not used here)\n"
+"        ad1 = Gtk.Adjustment(0, 0, 100, 5, 10, 0)\n"
+"        ad2 = Gtk.Adjustment(50, 0, 100, 5, 10, 0)\n"
+"\n"
+"        # an horizontal scale\n"
+"        self.h_scale = Gtk.Scale(orientation=Gtk.Orientation.HORIZONTAL, adjustment=ad1)\n"
+"        # of integers (no digits)\n"
+"        self.h_scale.set_digits(0)\n"
+"        # that can expand horizontally if there is space in the grid (see below)\n"
+"        self.h_scale.set_hexpand(True)\n"
+"        # that is aligned at the top of the space allowed in the grid (see below)\n"
+"        self.h_scale.set_valign(Gtk.Align.START)\n"
+"\n"
+"        # we connect the signal \"value-changed\" emitted by the scale with the callback\n"
+"        # function scale_moved\n"
+"        self.h_scale.connect(\"value-changed\", self.scale_moved)\n"
+"\n"
+"        # a vertical scale\n"
+"        self.v_scale = Gtk.Scale(orientation=Gtk.Orientation.VERTICAL, adjustment=ad2)\n"
+"        # that can expand vertically if there is space in the grid (see below)\n"
+"        self.v_scale.set_vexpand(True)\n"
+"\n"
+"        # we connect the signal \"value-changed\" emitted by the scale with the callback\n"
+"        # function scale_moved\n"
+"        self.v_scale.connect(\"value-changed\", self.scale_moved)\n"
+"\n"
+"        # a label\n"
+"        self.label = Gtk.Label()\n"
+"        self.label.set_text(\"Move the scale handles...\")\n"
+"\n"
+"        # a grid to attach the widgets\n"
+"        grid = Gtk.Grid()\n"
+"        grid.set_column_spacing(10)\n"
+"        grid.set_column_homogeneous(True)\n"
+"        grid.attach(self.h_scale, 0, 0, 1, 1)\n"
+"        grid.attach_next_to(self.v_scale, self.h_scale, Gtk.PositionType.RIGHT, 1, 1)\n"
+"        grid.attach(self.label, 0, 1, 2, 1)\n"
+"\n"
+"        self.add(grid)\n"
+"\n"
+"    # any signal from the scales is signaled to the label the text of which is changed\n"
+"    def scale_moved(self, event):\n"
+"        self.label.set_text(\"Horizontal scale is \" + str(int(self.h_scale.get_value())) +\n"
+"                            \"; vertical scale is \" + str(self.v_scale.get_value()) + \".\")\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
 msgstr ""
-"ÎÎÎ ÎÎÎÎ ÏÎÏÎÏÏÏÏÎÏÎ ÎÏÏ ÎÏÎÎ ÎÏÎÏÎÎÎÎ ÏÎÎ ÏÎ \"ÎÎÎÎ ÏÎÏ ÎÏÏÎÎ\" - ÎÏÎÏÏÎ "
-"ÎÎÎÎ ÏÏÎÎÎÎÎÎ ÎÎÎÏÎÏÎ ÏÎ GTK."
-
-#: C/image-viewer.py.page:14(name) C/image-viewer.js.page:14(name)
-msgid "Jonh Wendell"
-msgstr "Jonh Wendell"
+"from gi.repository import Gtk\n"
+"import sys\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"Scale Example\", application=app)\n"
+"        self.set_default_size(400, 300)\n"
+"        self.set_border_width(5)\n"
+"\n"
+"        # two adjustments (initial value, min value, max value,\n"
+"        # step increment - press cursor keys to see!,\n"
+"        # page increment - click around the handle to see!,\n"
+"        # page size - not used here)\n"
+"        ad1 = Gtk.Adjustment(0, 0, 100, 5, 10, 0)\n"
+"        ad2 = Gtk.Adjustment(50, 0, 100, 5, 10, 0)\n"
+"\n"
+"        # an horizontal scale\n"
+"        self.h_scale = Gtk.Scale(orientation=Gtk.Orientation.HORIZONTAL, adjustment=ad1)\n"
+"        # of integers (no digits)\n"
+"        self.h_scale.set_digits(0)\n"
+"        # that can expand horizontally if there is space in the grid (see below)\n"
+"        self.h_scale.set_hexpand(True)\n"
+"        # that is aligned at the top of the space allowed in the grid (see below)\n"
+"        self.h_scale.set_valign(Gtk.Align.START)\n"
+"\n"
+"        # we connect the signal \"value-changed\" emitted by the scale with the callback\n"
+"        # function scale_moved\n"
+"        self.h_scale.connect(\"value-changed\", self.scale_moved)\n"
+"\n"
+"        # a vertical scale\n"
+"        self.v_scale = Gtk.Scale(orientation=Gtk.Orientation.VERTICAL, adjustment=ad2)\n"
+"        # that can expand vertically if there is space in the grid (see below)\n"
+"        self.v_scale.set_vexpand(True)\n"
+"\n"
+"        # we connect the signal \"value-changed\" emitted by the scale with the callback\n"
+"        # function scale_moved\n"
+"        self.v_scale.connect(\"value-changed\", self.scale_moved)\n"
+"\n"
+"        # a label\n"
+"        self.label = Gtk.Label()\n"
+"        self.label.set_text(\"Move the scale handles...\")\n"
+"\n"
+"        # a grid to attach the widgets\n"
+"        grid = Gtk.Grid()\n"
+"        grid.set_column_spacing(10)\n"
+"        grid.set_column_homogeneous(True)\n"
+"        grid.attach(self.h_scale, 0, 0, 1, 1)\n"
+"        grid.attach_next_to(self.v_scale, self.h_scale, Gtk.PositionType.RIGHT, 1, 1)\n"
+"        grid.attach(self.label, 0, 1, 2, 1)\n"
+"\n"
+"        self.add(grid)\n"
+"\n"
+"    # any signal from the scales is signaled to the label the text of which is changed\n"
+"    def scale_moved(self, event):\n"
+"        self.label.set_text(\"Horizontal scale is \" + str(int(self.h_scale.get_value())) +\n"
+"                            \"; vertical scale is \" + str(self.v_scale.get_value()) + \".\")\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
 
-#: C/image-viewer.py.page:15(email) C/image-viewer.js.page:15(email)
-msgid "jwendell gnome org"
-msgstr "jwendell gnome org"
+#: C/scale.py.page:33(section/title)
+msgid "Useful methods for a Scale widget"
+msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÎÎÎÎÎÎÏ"
 
-#: C/image-viewer.py.page:27(p) C/image-viewer.js.page:27(p)
+#: C/scale.py.page:34(section/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:"
+"For an explanation of signals and callback functions, see <link xref="
+"\"signals-callbacks.py\">this page</link>. An example is the <code>\"value-"
+"changed\"</code> signal, emitted when the value of the scale changes."
 msgstr ""
-"ÎÎ ÎÏÏÏÎ ÏÎ ÎÎÎÎÎÎ ÎÎ ÎÏÎÏÎÏÎÎ ÎÎÎ ÏÎÎÏ ÎÏÎÎ ÎÏÎÏÎÎÎÎ ÏÎ GTK ÏÎÏ ÏÎÏÏÏÎÎÎ "
-"ÎÎÎ ÎÎÏÎÎÎÎÎÎ ÎÎÎ ÎÏÏÎÎÎ ÎÎÎÏÎÎÏ. ÎÎ ÎÎÎÎÏÎ ÏÏÏ ÎÎ:"
-
-#: C/image-viewer.py.page:29(p)
-msgid "Write a basic GTK user interface in Python"
-msgstr "ÎÏÎÏÎÏÎ ÎÎÎ ÎÎÏÎÎÎ ÎÎÎÏÎÏÎ ÏÏÎÏÏÎ GTK ÏÎ Python"
-
-#: C/image-viewer.py.page:30(p) C/image-viewer.js.page:30(p)
-msgid "Deal with events by connecting signals to signal handlers"
-msgstr "ÎÎ ÎÎÏÎÎÎÏÏÏÎÎÎÏÎ ÏÏÎÎÎÎÏÎ ÏÏÎÎÎÎÎÏÎÏ ÏÎÎÎÏÎ ÎÎ ÏÎÏÏ ÏÎÎÏÎÏÏÎÏ ÏÎÎÎÏÏÎ"
-
-#: C/image-viewer.py.page:31(p) C/image-viewer.js.page:31(p)
-msgid "Lay out GTK user interfaces using containers"
-msgstr "ÎÏÎÎÎÎÎÎÏÎ ÎÎÎÏÎÏÎÏ ÏÏÎÏÏÎ GTK ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎÏÎÎÎÏÎÏ"
-
-#: C/image-viewer.py.page:32(p) C/image-viewer.js.page:32(p)
-msgid "Load and display image files"
-msgstr "ÎÎÏÏÏÎÎÏÎ ÎÎÎ ÎÎ ÎÎÏÎÎÎÎÎÏÎ ÎÏÏÎÎÎ ÎÎÎÏÎÏÎ"
-
-#: C/image-viewer.py.page:37(p)
-msgid "Basic knowledge of the python programming language"
-msgstr "ÎÎÏÎÎÎ ÎÎÏÏÎ ÏÎÏ ÎÎÏÏÏÎÏ ÏÏÎÎÏÎÎÎÎÏÎÏÎÎÏ Python"
+"ÎÎÎ ÎÎÎ ÎÎÎÎÎÏÎ ÏÏÎ ÏÎÎÎÏÏÎ ÎÎÎ ÏÏÎÎÏÏÎÏÎÏÎ ÎÏÎÎÎÎÎÎÏÎÏ, ÎÎÎÏÎ <link xref="
+"\"signals-callbacks.py\">ÎÏÏÎÎ ÏÎ ÏÎÎÎÎÎ</link>. ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ ÎÎÎÎÎ ÏÎ "
+"ÏÎÎÎ <code>\"value-changed\"</code>, ÏÎÏ ÎÎÏÎÎÏÎÏÎÎ ÏÏÎÎ Î ÏÎÎÎ ÏÎÏ ÎÎÎÎÎÎÎÏ "
+"ÎÎÎÎÎÎÎ."
 
-#: C/image-viewer.py.page:51(p)
+#: C/scale.py.page:35(section/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."
+"A Gtk.Adjustment is needed to construct the Gtk.Scale. This is the "
+"representation of a value with a lower and upper bound, together with step "
+"and page increments, and a page size, and it is constructed as <code>Gtk."
+"Adjustment(value, lower, upper, step_increment, page_increment, page_size)</"
+"code> where the fields are of type <code>float</code>; <code>step_increment</"
+"code> is the increment/decrement that is obtained by using the cursor keys, "
+"<code>page_increment</code> the one that is obtained clicking on the scale "
+"itself. Note that <code>page_size</code> is not used in this case, it should "
+"be set to <code>0</code>."
 msgstr ""
-"ÎÏÎÎÎÎÏÎ <gui>PyGTK (automake)</gui> ÎÏÏ ÏÎÎ ÎÎÏÏÎÎÎ <gui>Python</gui>, "
-"ÏÎÏÎÏÏÎ <gui>ÏÏÎÎÏÎÎÎ</gui>, ÎÎÎ ÏÏÎÏÎÎÏÏÏÏÎ ÏÎÏ ÎÎÏÏÎÎÎÏÎÎÎÏ ÏÎÏ ÏÏÎÏ "
-"ÎÏÏÎÎÎÎÏ ÎÎÎÎÏ ÏÎÎÎÎÎÏ. ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ ÏÎ <file>image-viewer</file> ÏÏ ÏÎÎÎÎ "
-"ÏÎÏ ÎÏÎÎÏ ÎÎÎ ÏÎÏ ÎÎÏÎÎÏÎÎÏ."
+"ÎÎÎ Gtk.Adjustment ÎÏÎÎÏÎÎÏÎÎ ÎÎÎ ÎÎ ÎÎÎÎÏÎÎ ÏÎÎ Gtk.Scale. ÎÏÏÎ ÎÎÎÎÎ Î "
+"ÎÎÎÏÎÏÎÏÏÎÏÎ ÎÎÎÏ ÏÎÎÎÏ ÎÎ ÎÎÏÏ ÎÎÎ ÎÎÏ ÏÏÎÎ, ÎÎÎÎ ÎÎ ÎÏÎÎÏÎÎÏ ÎÎÎÎÏÎÏ ÎÎÎ "
+"ÏÎÎÎÎÎÏ ÎÎÎ ÎÎÎ ÎÎÎÎÎÎÏ ÏÎÎÎÎÎÏ ÎÎÎ ÎÎÎÎÎÏÎÎ ÏÏ <code>Gtk.Adjustment(value, "
+"lower, upper, step_increment, page_increment, page_size)</code> ÏÏÎÏ ÏÎ "
+"ÏÎÎÎÎ ÎÎÎÎÎ ÏÎÏ ÏÏÏÎÏ <code>float</code>Â <code>step_increment</code> ÎÎÎÎÎ "
+"Î ÎÏÎÎÏÎ/ÎÎÎÏÏÎ ÏÎÏ ÏÎÎÏÎÎÏÎÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ ÏÎÎÎÏÏÎ ÎÏÎÎÎÎ, "
+"<code>page_increment</code> ÎÏÏÎ ÏÎÏ ÏÎÎÏÎÎÏÎÎ ÏÎÏÏÎÏÎÏ ÏÏÎÎ ÎÎÎÎ ÏÎÎ "
+"ÎÎÎÎÎÎÎ. ÎÎÎÎÎÏÏÏÎ ÏÏÎ ÏÎ <code>page_size</code> ÎÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÏÎ "
+"ÎÏÏÎÎ ÏÎÎ ÏÎÏÎÏÏÏÏÎ, ÎÎ ÏÏÎÏÎÎ ÎÎ ÎÏÎÏÏÎÎ ÏÎ <code>0</code>."
 
-#: C/image-viewer.py.page:54(p)
+#: C/scale.py.page:37(item/p)
 msgid ""
-"Be sure to disable <gui>Use GtkBuilder for user interface</gui> as we will "
-"build the user interface manually in this example. For an example of using "
-"the interface designer, check the <link xref=\"guitar-tuner.py\">Guitar-"
-"Tuner demo</link>."
+"<code>get_value()</code> retrieves the current value of the scale; "
+"<code>set_value(value)</code> sets it (if the <code>value</code>, of type "
+"<code>float</code>, is outside the minimum or maximum range, it will be "
+"clamped to fit inside them). These are methods of the class Gtk.Range."
 msgstr ""
-"ÎÎÎÎÎÏÎÎÎÏÎ ÏÏÎ ÎÏÎÎÎÏÎÎÏÎÎÎÏÎÏÎ ÏÎ <gui>ÏÏÎÏÎ ÏÎÏ GtkBuilder ÎÎÎ ÎÎÎÏÎÏÎ "
-"ÏÏÎÏÎ</gui> ÎÏÎÎÎÎ ÎÎ ÏÏÎÎÎÎÏÎÎ ÏÎ ÎÎÎÏÎÏÎ ÏÏÎÏÏÎ ÏÎÎÏÎÎÎÎÎÏÎ ÏÎ ÎÏÏÏ ÏÎ "
-"ÏÎÏÎÎÎÎÎÎÎ. ÎÎÎ ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ ÏÏÎÏÎÏ ÏÎÏ ÏÏÎÎÎÎÏÏÎ ÎÎÎÏÎÏÎÏ, ÎÎÎÏÎ ÏÎ <link "
-"xref=\"guitar-tuner.py\">ÎÏÎÎÎÎÎÎ ÏÏÎÎÎÏÏÎ ÎÎÎÎÏÎÏ</link>."
+"Î <code>get_value()</code> ÎÎÎÎÏÎ ÏÎÎ ÏÏÎÏÎÏÏÎ ÏÎÎÎ ÏÎÏ ÎÎÎÎÎÎÎÏÂ Î "
+"<code>set_value(value)</code> ÏÎÎ ÎÏÎÎÎÎ (ÎÎÎ Î <code>value</code>, ÏÎÏ "
+"ÏÏÏÎÏ <code>float</code>, ÎÎÎÎÎ ÎÎÏ ÎÏÏ ÏÎÎ ÎÎÎÏÎÏÏÎ Î ÎÎÎÎÏÏÎ ÏÎÏÎÎÏÎ, ÎÎ "
+"ÎÎÏÎÎÏÎÎÎ ÎÎ ÏÏÎÏÎÏÎÎÏÏÎÎ ÎÎÏÎ ÏÎÏÏ). ÎÏÏÎÏ ÎÎÎÎÎ ÎÎ ÎÎÎÎÎÎÎ ÏÎÏ ÎÎÎÏÎÏ Gtk."
+"Range."
 
-#: C/image-viewer.py.page:59(p)
+#: C/scale.py.page:38(item/p)
 msgid ""
-"Click <gui>Apply</gui> and the project will be created for you. Open "
-"<file>src/image_viewer.py</file> from the <gui>Project</gui> or <gui>File</"
-"gui> tabs. It contains very basic example code."
+"Use <code>set_draw_value(False)</code> to avoid displaying the current value "
+"as a string next to the slider."
 msgstr ""
-"ÎÎÏÎÏÏÎ <gui>ÎÏÎÏÎÎÎÎ</gui> ÎÎÎ ÏÎ ÎÏÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎÎÎÎ ÎÎÎ ÎÏÎÏ. ÎÎÎÎÎÏÎ ÏÎ "
-"<file>src/image_viewer.py</file> ÎÏÏ ÏÎÏ ÎÎÏÏÎÎÎÏ <gui>ÎÏÎÎ</gui> Î "
-"<gui>ÎÏÏÎÎÎ</gui>. ÎÎÏÎÎÎÎÎÎÎÎÎ ÏÎÎÏ ÎÎÏÎÎÏ ÏÎÏÎÎÎÎÎÎÎ ÎÏÎÎÎÎ."
-
-#: C/image-viewer.py.page:65(title) C/image-viewer.js.page:126(title)
-msgid "A first Gtk application"
-msgstr "ÎÎÎ ÏÏÏÏÎ ÎÏÎÏÎÎÎÎ ÏÎ Gtk"
-
-#: C/image-viewer.py.page:66(p)
-msgid "Let's see what a very basic Gtk application looks like in Python:"
-msgstr "ÎÎÎ ÎÎ ÎÎÏÎÎ ÏÏÏ ÏÎÎÎÎÏÎÎ ÎÎÎ ÏÎÎÏ ÎÎÏÎÎÎ ÎÏÎÏÎÎÎÎ Gtk ÏÎ Python:"
-
-#: C/image-viewer.py.page:90(p) C/image-viewer.js.page:137(p)
-msgid "Let's take a look at what's happening:"
-msgstr "ÎÏ ÏÎÎÎÏÎÎ ÎÎÎ ÎÎÏÎÎ ÏÏÎ ÏÎ ÎÎÎÎÏÎÎ:"
+"ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ <code>set_draw_value(False)</code> ÎÎÎ ÎÏÎÏÏÎÎ ÎÎÏÎÎÎÏÎÏ ÏÎÏ "
+"ÏÏÎÏÎÏÏÎÏ ÏÎÎÎÏ ÏÏ ÏÏÎÎÎÎÎÏÎÎÏÎÏ ÎÎÏÎÎ ÏÏÎÎ ÎÎÎÏÎÎÏÎ."
 
-#: C/image-viewer.py.page:93(p) C/image-viewer.js.page:140(p)
+#: C/scale.py.page:39(item/p)
 msgid ""
-"The first line imports the Gtk namespace (that is, it includes the Gtk "
-"library). The libraries are provided by GObject Introspection (gi), which "
-"provides language bindings for many GNOME libraries."
+"To highlight the part of the scale between the origin and the current value:"
 msgstr ""
-"Î ÏÏÏÏÎ ÎÏÎÎÎÎ ÎÎÏÎÎÎÎ ÏÎ ÏÎÎÎÎ ÏÏÏÎÏ Gtk (ÎÏÏÏ ÎÎÎÎÎ ÏÎÏ ÏÎÏÎÎÏÎÎ ÏÎÎ "
-"ÎÎÎÎÎÎÎÎÎÎ ÏÎÏ Gtk). ÎÎ ÎÎÎÎÎÎÎÎÎÎÏ ÏÎÏÎÏÎÎÏÎÎ ÎÏÏ ÏÎ GObject Introspection "
-"(gi), ÏÎÏ ÏÎÏÎÏÎÎ ÎÎÏÏÏÎÎÎÏ ÏÏÏÏÎÏÎÏÎÎÏ ÎÎÎ ÏÎÎÎÎÏ ÎÎÎÎÎÎÎÎÎÎÏ ÏÎÏ GNOME."
+"ÎÎÎ ÏÎÎÎÏÎÏ ÎÎÏÎÏÏ ÏÎÏ ÎÎÎÎÎÎÎÏ ÎÎÏÎÎÏ ÏÎÏ ÎÏÏÎÎÎÏ ÎÎÎ ÏÎÏ ÏÏÎÏÎÏÏÎÏ ÏÎÎÎÏ:"
 
-#: C/image-viewer.py.page:96(p)
+#: C/scale.py.page:40(item/code)
+#, no-wrap
 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."
+"\n"
+"self.h_scale.set_restrict_to_fill_level(False)\n"
+"self.h_scale.set_fill_level(self.h_scale.get_value())\n"
+"self.h_scale.set_show_fill_level(True)"
 msgstr ""
-"ÎÏÎ ÎÎÎÎÎÎ <code>__init__</code> ÏÎÏ ÎÎÎÏÎÏ <code>GUI</code> ÎÎÎÎÎÏÏÎÎÎÏÏÎ "
-"ÎÎÎ (ÎÎÎÎÎ) <code>Gtk.Window</code>, ÎÏÎÏÏÎ ÏÎÎ ÏÎÏÎÎ ÏÎÏ ÎÎÎ ÎÎÏÎ ÏÏÎÎÎÏÏÎ "
-"ÎÎÎ ÏÎÎÎ ÎÎ ÏÎÏÎÎÏÎÎÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ ÏÏÎÎ ÏÎ ÏÎÏÎÎÏÏÎ ÎÎÎÎÏÎÎ. ÎÎÎÎÎ ÏÎÎÏ "
-"ÎÏÎÏ, ÏÎÏÎÏÏÏÏÎÏÎ ÎÎÎ ÏÎ ÏÎÎÎÏÎ ÎÏÎÏÏÎÏÎ."
+"\n"
+"self.h_scale.set_restrict_to_fill_level(False)\n"
+"self.h_scale.set_fill_level(self.h_scale.get_value())\n"
+"self.h_scale.set_show_fill_level(True)"
 
-#: C/image-viewer.py.page:101(p)
+#: C/scale.py.page:44(item/p)
 msgid ""
-"Next, <code>destroy</code> is defined which just quits the application. It "
-"is called by the <code>destroy</code> signal connected above."
+"in the callback function of the \"value-changed\" signal, so to have the new "
+"filling every time the value is changed. These are methods of the class Gtk."
+"Range."
 msgstr ""
-"ÎÎÏÎ, ÎÏÎÎÎÏÎÎ ÏÎ <code>destroy</code> ÏÎ ÎÏÎÎÎ ÎÏÎÎ ÎÎ ÏÎÏÎÎÏÎÏÎÎ ÏÎÎ "
-"ÎÏÎÏÎÎÎÎ. ÎÎÎÎÎÏÎÎ ÎÏÏ ÏÎ ÏÎÎÎ <code>destroy</code> ÏÎÏ ÏÏÎÎÎÏÎÏÎ ÏÎÏÎÏÎÎÏ."
+"ÏÏÎÎ ÏÏÎÎÏÏÎÏÎ ÎÏÎÎÎÎÎÎÏÎÏ ÏÎÏ ÏÎÎÎÏÎÏ \"value-changed\", ÎÏÏÎ ÏÏÏÎ ÎÎ "
+"ÏÏÎÏÎÎÏÏÎÎÏÎÎ ÎÎÎÎ ÏÎÏÎ ÏÎÏ ÎÎÎÎÎÎÎ Î ÏÎÎÎ. ÎÏÏÎÏ ÎÎÎÎÎ ÎÎ ÎÎÎÎÎÎÎ ÏÎÏ "
+"ÎÎÎÏÎÏ Gtk.Range."
 
-#: C/image-viewer.py.page:105(p)
-msgid "The rest of the file does initialisation for Gtk and displays the GUI."
+#: C/scale.py.page:46(item/p)
+msgid ""
+"<code>add_mark(value, position, markup)</code> adds a mark at the "
+"<code>value</code> (<code>float</code> or <code>int</code> if that is the "
+"precision of the scale), in <code>position</code> (<code>Gtk.PositionType."
+"LEFT, Gtk.PositionType.RIGHT, Gtk.PositionType.TOP, Gtk.PositionType.BOTTOM</"
+"code>) with text <code>Null</code> or <code>markup</code> in the Pango "
+"Markup Language. To clear marks, <code>clear_marks()</code>."
 msgstr ""
-"ÎÎ ÏÏÏÎÎÎÏÎ ÏÎÏ ÎÏÏÎÎÎÏ ÎÎÎÎÎ ÎÏÏÎÎÎÏÎÎÎÏÎ ÎÎÎ ÏÎ Gtk ÎÎÎ ÎÎÏÎÎÎÎÎÎ ÏÎ GUI."
+"<code>add_mark(value, position, markup)</code> ÏÏÎÏÎÎÏÎÎ ÎÎÎ ÏÎÎÎÎÎ ÏÏÎÎ "
+"<code>value</code> (<code>float</code> Î <code>int</code> ÎÎÎ ÎÏÏÎ ÎÎÎÎÎ Î "
+"ÎÎÏÎÎÎÎÎ ÏÎÏ ÎÎÎÎÎÎÎÏ), ÏÎ <code>position</code> (<code>Gtk.PositionType."
+"LEFT, Gtk.PositionType.RIGHT, Gtk.PositionType.TOP, Gtk.PositionType.BOTTOM</"
+"code>) ÎÎ ÎÎÎÎÎÎÎ <code>Null</code> Î <code>markup</code> ÏÏÎ ÎÎÏÏÏÎ "
+"ÎÏÎÏÎÎÎÎÏÎÏ Pango. ÎÎÎ ÎÎÎÎÏÎÏÎÏ ÏÎÎÎÎÎÏÎ, <code>clear_marks()</code>."
 
-#: C/image-viewer.py.page:109(p)
+#: C/scale.py.page:47(item/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."
+"<code>set_digits(digits)</code> sets the precision of the scale at "
+"<code>digits</code> digits."
 msgstr ""
-"Î ÎÏÎÎÎÎÏ ÎÎÎÎÎ ÎÏÎÎÎÎÏ ÎÎ ÎÎÏÎÎÎÏÏÎÎ, ÎÏÏÏÎ ÎÎÎÎÎÎÏÏÎ ÏÎ ÏÎÏÏÎÏÎÏ "
-"<guiseq><gui>ÏÏÎÎÎÎÎ</gui><gui>ÎÎÏÎÎÎÏÎ</gui></guiseq>. ÎÎ ÏÏÎÏÎÎ ÎÎ "
-"ÎÎÏÎÎÎÏÎÎ ÎÎÎ ÎÎÎÎÎ ÏÎÏÎÎÏÏÎ."
+"Î <code>set_digits(digits)</code> ÎÏÎÎÎÎ ÏÎÎ ÎÎÏÎÎÎÎÎ ÏÎÏ ÎÎÎÎÎÎÎÏ ÏÎ ÏÎÏÎÎ "
+"<code>digits</code>."
 
-#: C/image-viewer.py.page:114(title) C/image-viewer.js.page:181(title)
-msgid "Signals"
-msgstr "ÎÎÎÎÏÎ"
+#: C/scale.py.page:55(item/p)
+msgid ""
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkScale.html";
+"\">GtkScale</link>"
+msgstr ""
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkScale.html";
+"\">GtkScale</link>"
 
-#: C/image-viewer.py.page:115(p) C/image-viewer.js.page:182(p)
+#: C/scale.py.page:56(item/p) C/spinbutton.py.page:48(item/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:"
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkAdjustment.html";
+"\">GtkAdjustment</link>"
 msgstr ""
-"ÎÎ ÏÎÎÎÏÎ ÎÎÎÎÎ ÎÎÎ ÎÏÏ ÏÎÏ ÎÎÎÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÏÎÎ ÏÏÎÎÏÎÎÎÎÏÎÏÎÏ Gtk. "
-"ÎÏÎÏÎ ÎÎÏÎ ÏÏÎÎÎÎÎÎÎ ÏÎ ÎÎÎ ÎÎÏÎÎÎÎÎÎÎÎ, ÎÎÏÎÎÏÎÎ ÎÎÎ ÏÎÎÎÂ ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ, "
-"ÏÏÎÎ ÏÎÏÎÎÏÎÎ ÎÎÎ ÎÎÏÎÏÎ ÎÎÏÎÎÏÎÎ ÏÎ ÏÎÎÎ <code>clicked</code>. ÎÎÎ ÎÎÎÎÏÎ "
-"ÏÎ ÏÏÏÎÏÎÎÎÎ ÏÎÏ ÎÎ ÎÎÎÎÎ ÎÎÏÎ ÏÏÎÎ ÎÏÏÏ ÏÏÎÎÎÎÎÎÎ, ÏÏÎÏÎÎ ÎÎ ÏÏÎÎÎÏÎÏÎ ÎÎÎ "
-"ÏÏÎÎÏÏÎÏÎ (ÎÎÎÎ \"ÏÎÎÏÎÏÏÎ ÏÎÎÎÏÏÎ\") ÏÎ ÎÏÏÏ ÏÎ ÏÎÎÎ. ÎÏÎÏÏÎ ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ:"
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkAdjustment.html";
+"\">GtkAdjustment</link>"
 
-#: C/image-viewer.py.page:122(p) C/image-viewer.js.page:189(p)
+#: C/scale.py.page:57(item/p) C/scrolledwindow.py.page:44(item/p)
+#: C/textview.py.page:99(item/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."
+"<link href=\"http://developer.gnome.org/gtk3/unstable/gtk3-Standard-";
+"Enumerations.html\">Standard Enumerations</link>"
 msgstr ""
-"ÎÎ ÏÎÎÎÏÏÎÎÎÏ ÎÏÎ ÎÏÎÎÎÎÏ ÎÎÎÎÎÏÏÎÎÏÎ ÎÎÎ <code>Gtk.Button</code> ÏÎÏ "
-"ÎÎÎÎÎÎÎÏÎÎ <code>b</code> ÎÎÎ ÏÏÎÎÎÎÎ ÏÎ ÏÎÎÎ ÏÎ <code>clicked</code> ÏÏÎÎ "
-"ÏÏÎÎÏÏÎÏÎ <code>button_clicked</code>, Î ÎÏÎÎÎ ÎÏÎÎÎÏÎÎ ÏÎÎ ÏÎÎÏ. ÎÎÎÎ ÏÎÏÎ "
-"ÏÎÏ ÏÎÏÎÎÏÎÎ ÎÎÎ ÎÎÏÎÏÎ, Î ÎÏÎÎÎÎÏ ÏÏÎ ÏÏÎÎÏÏÎÏÎ <code>button_clicked</code> "
-"ÎÎ ÎÎÏÎÎÎÎÏÎÎ. ÎÎÏ ÎÏÎÎ ÏÏÏÏÎÎÎ ÎÎÎ ÎÎÎÏÎÎ."
+"<link href=\"http://developer.gnome.org/gtk3/unstable/gtk3-Standard-";
+"Enumerations.html\">Standard Enumerations</link>"
 
-#: C/image-viewer.py.page:126(title) C/image-viewer.js.page:212(title)
-msgid "Containers: Laying-out the user interface"
-msgstr "ÎÎÏÎÎÎÏÎÏ: ÎÏÎÎÎÎÏÎ ÎÎÎÏÎÏÎÏ ÏÏÎÏÏÎ"
+#: C/scale.vala.page:7(info/title)
+msgctxt "text"
+msgid "Scale (Vala)"
+msgstr "ÎÎÎÎÎÎÎ (Vala)"
 
-#: C/image-viewer.py.page:127(p) C/image-viewer.js.page:213(p)
+#: C/scale.vala.page:26(page/code)
+#, no-wrap
 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."
+"/* This is the application. */\n"
+"public class MyApplication : Gtk.Application {\n"
+"\tGtk.Scale h_scale;\n"
+"\tGtk.Scale v_scale;\n"
+"\tGtk.Label label;\n"
+"\n"
+"\t/* Override the 'activate' signal of GLib.Application. */\n"
+"\tprotected override void activate () {\n"
+"\t\tvar window = new Gtk.ApplicationWindow (this);\n"
+"\t\twindow.title = \"Scale Example\";\n"
+"\t\twindow.set_default_size (400, 300);\n"
+"\t\twindow.set_border_width (5);\n"
+"\n"
+"\t\th_scale = new Gtk.Scale.with_range (Gtk.Orientation.HORIZONTAL, 0.0, 100.0, 5.0);\n"
+"\t\th_scale.set_digits (0); //number of decimal places displayed\n"
+"\t\th_scale.set_valign (Gtk.Align.START); //horizontal alignment\n"
+"\n"
+"\t\tvar adjustment = new Gtk.Adjustment (42.0, 0.0, 100.0, 5.0, 10.0, 0.0);\n"
+"\t\tv_scale = new Gtk.Scale (Gtk.Orientation.VERTICAL, adjustment);\n"
+"\t\tv_scale.set_vexpand(true);\n"
+"\n"
+"\t\tlabel = new Gtk.Label (\"Move the scale handles...\");\n"
+"\n"
+"\t\tvar grid = new Gtk.Grid ();\n"
+"\t\tgrid.set_column_spacing (10); //amount of space between columns\n"
+"\t\tgrid.set_column_homogeneous (true); //all columns same width\n"
+"\t\tgrid.attach (h_scale, 0, 0, 1, 1);\n"
+"\t\tgrid.attach_next_to (v_scale, h_scale, Gtk.PositionType.RIGHT, 1, 1);\n"
+"\t\tgrid.attach (label, 0, 1, 2, 1);\n"
+"\n"
+"\t\th_scale.value_changed.connect (scale_moved);\n"
+"\t\tv_scale.value_changed.connect (scale_moved);\n"
+"\n"
+"\t\twindow.add (grid);\n"
+"\t\twindow.show_all ();\n"
+"\t}\n"
+"\n"
+"\t/* Callback function for \"value-changed\" signal.\n"
+"\t * The paramter refers to the scale which emitted the signal.\n"
+"\t * Since we are accessing the values of not one, but two scales,\n"
+"\t * we made the ranges instance variables, and ignore the\n"
+"\t * parameter.\n"
+"\t */\n"
+"\tvoid scale_moved (Gtk.Range range) {\n"
+"\t\tlabel.set_text (\"Horizontal scale is %.1f; vertical scale is %.1f.\".printf (h_scale.get_value (), v_scale.get_value ()));\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* main creates and runs the application. */\n"
+"public int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
 msgstr ""
-"ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ (ÎÎÎÎÏÎÎ, ÏÏÏÏ ÏÎ ÎÎÏÎÏÎÎ ÎÎÎ ÎÎ ÎÏÎÎÎÏÎÏ) ÎÏÎÏÎÏÎ ÎÎ "
-"ÏÎÏÎÎÎÏÎÎÎÏÎ ÏÏÎ ÏÎÏÎÎÏÏÎ ÎÎÎÎÎÏÎÏ ÏÏÎÏÎ ÏÏÎ <em>ÏÎÏÎÎÎÏÏÎ</em>. ÎÏÎÏÎÎÏÎ ÎÎ "
-"ÎÏÎÎÎÏÏÎÏÎ ÏÎÎ ÎÎÎÏÎÎÎ ÏÏÎÎÏÎÎÎÎÏÎÏ ÎÎÎÏÎÏÎÏÎÎÏÎ ÎÎÎÏÎ ÏÎÏÎÎÎÏÎÏ, ÏÏÏÏ "
-"ÏÎÎÎÏÎÎ ÎÎÎ ÏÎÎÎÎÎÏÎ."
+"/* This is the application. */\n"
+"public class MyApplication : Gtk.Application {\n"
+"\tGtk.Scale h_scale;\n"
+"\tGtk.Scale v_scale;\n"
+"\tGtk.Label label;\n"
+"\n"
+"\t/* Override the 'activate' signal of GLib.Application. */\n"
+"\tprotected override void activate () {\n"
+"\t\tvar window = new Gtk.ApplicationWindow (this);\n"
+"\t\twindow.title = \"Scale Example\";\n"
+"\t\twindow.set_default_size (400, 300);\n"
+"\t\twindow.set_border_width (5);\n"
+"\n"
+"\t\th_scale = new Gtk.Scale.with_range (Gtk.Orientation.HORIZONTAL, 0.0, 100.0, 5.0);\n"
+"\t\th_scale.set_digits (0); //number of decimal places displayed\n"
+"\t\th_scale.set_valign (Gtk.Align.START); //horizontal alignment\n"
+"\n"
+"\t\tvar adjustment = new Gtk.Adjustment (42.0, 0.0, 100.0, 5.0, 10.0, 0.0);\n"
+"\t\tv_scale = new Gtk.Scale (Gtk.Orientation.VERTICAL, adjustment);\n"
+"\t\tv_scale.set_vexpand(true);\n"
+"\n"
+"\t\tlabel = new Gtk.Label (\"Move the scale handles...\");\n"
+"\n"
+"\t\tvar grid = new Gtk.Grid ();\n"
+"\t\tgrid.set_column_spacing (10); //amount of space between columns\n"
+"\t\tgrid.set_column_homogeneous (true); //all columns same width\n"
+"\t\tgrid.attach (h_scale, 0, 0, 1, 1);\n"
+"\t\tgrid.attach_next_to (v_scale, h_scale, Gtk.PositionType.RIGHT, 1, 1);\n"
+"\t\tgrid.attach (label, 0, 1, 2, 1);\n"
+"\n"
+"\t\th_scale.value_changed.connect (scale_moved);\n"
+"\t\tv_scale.value_changed.connect (scale_moved);\n"
+"\n"
+"\t\twindow.add (grid);\n"
+"\t\twindow.show_all ();\n"
+"\t}\n"
+"\n"
+"\t/* Callback function for \"value-changed\" signal.\n"
+"\t * The paramter refers to the scale which emitted the signal.\n"
+"\t * Since we are accessing the values of not one, but two scales,\n"
+"\t * we made the ranges instance variables, and ignore the\n"
+"\t * parameter.\n"
+"\t */\n"
+"\tvoid scale_moved (Gtk.Range range) {\n"
+"\t\tlabel.set_text (\"Horizontal scale is %.1f; vertical scale is %.1f.\".printf (h_scale.get_value (), v_scale.get_value ()));\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* main creates and runs the application. */\n"
+"public int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
 
-#: C/image-viewer.py.page:128(p) C/image-viewer.js.page:214(p)
+#: C/scale.vala.page:31(item/p)
 msgid ""
-"A <code>Gtk.Window</code> is itself a type of container, but you can only "
-"put one widget directly into it. We would like to have two widgets, an image "
-"and a button, so we must put a \"higher-capacity\" container inside the "
-"window to hold the other widgets. A number of <link href=\"http://library.";
-"gnome.org/devel/gtk/stable/GtkContainer.html\">container types</link> are "
-"available, but we will use a <code>Gtk.Box</code> here. A <code>Gtk.Box</"
-"code> can hold several widgets, organized horizontally or vertically. You "
-"can do more complicated layouts by putting several boxes inside another box "
-"and so on."
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Scale.html\";>Gtk.Scale</"
+"link>"
 msgstr ""
-"ÎÎÎ <code>Gtk.Window</code> ÎÎÎÎÎ ÎÏÏ ÎÏÎÎ ÏÎÏ ÎÎÎ ÎÎÎÎÏ ÏÎÏÎÎÎÏÎ, ÎÎÎÎ "
-"ÎÏÎÏÎÎÏÎ ÎÎ ÏÎÏÎÎÎÏÎÏÎÏÎ ÎÏÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÎÎÏÎ ÏÎÎÏ ÏÎÏ. ÎÎ "
-"ÎÎÎÎÎÎ ÎÎ ÎÎÏÎÎÎ ÎÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ, ÎÎÎ ÎÎÎÏÎÎ ÎÎÎ ÎÎÎ ÎÎÏÎÏÎ, ÎÏÎ ÎÎ "
-"ÏÏÎÏÎÎ ÎÎ ÏÎÏÎÎÎÏÎÏÎÏÎÎ ÎÎÎÎ ÏÏÎÎÎÏÎÎ \"ÏÏÎÎÏÏÎÏÎÏ ÏÏÏÎÏÎÎÏÏÎÏÎÏ\" ÎÎÏÎ ÏÏÎ "
-"ÏÎÏÎÎÏÏÎ ÎÎÎ ÎÎ ÎÏÎÏÎÎÎ ÏÎ ÎÎÎÎ ÎÏÎÏÎÎÎ ÏÏÎÎÏÎÎÎ. ÎÎÎÏ ÎÏÎÎÎÏÏ ÎÏÏ <link "
-"href=\"http://library.gnome.org/devel/gtk/stable/GtkContainer.html\";>ÏÏÏÎÏÏ "
-"ÏÎÏÎÎÎÏÏÎ</link> ÎÎÎÎÎ ÎÎÎÎÎÏÎÎÎÎ, ÎÎÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÎÏ ÎÎÎ "
-"<code>Gtk.Box</code>. ÎÎÎ <code>Gtk.Box</code> ÎÏÎÏÎÎ ÎÎ ÎÏÎÏÎÏÎÎ ÏÎÎÎÎ "
-"ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ, ÎÏÎÎÎÏÎÎÎÎ ÎÏÎÎÏÎÏÎÎ Î ÎÎÎÎÏÎ. ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÎÏÎ ÎÎÎ ÏÎÎ "
-"ÏÎÏÎÏÎÎÎÎÏ ÎÎÎÏÎÎÎÎÏ ÎÎÎÎÎÏÎÏ ÏÎÎÎÎ ÏÎÎÎÏÎÎ ÏÎ ÎÎÎ ÎÎÏÎ ÏÏÎ ÎÎÎÎ Î.Î.Î."
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Scale.html\";>Gtk.Scale</"
+"link>"
 
-#: C/image-viewer.py.page:130(p) C/image-viewer.js.page:216(p)
+#: C/scale.vala.page:32(item/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."
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Adjustment.html\";>Gtk."
+"Adjustment</link>"
 msgstr ""
-"ÎÏÎÏÏÎÎ ÎÎÎÏ ÎÏÎÏÎÎÏÏ ÏÏÎÎÎÎÏÏÎÏ ÎÎÎÏÎÏÎÏ ÏÏÎÏÏÎ ÎÎ ÏÎÎÎÎ <app>Glade</app> "
-"ÎÎÏÏÎÎÏÏÎÎÎÎÏ ÏÏÎ <app>Anjuta</app> ÏÎÏ ÎÎÎÎÎ ÏÎ ÏÏÎÎÎÎÏÎ ÎÏÎÏÎÎÎÏ "
-"ÏÎÏÎÎÎÎÎÎÎÏÎÏ ÏÎÎÏ ÎÏÎÎÎÎ. ÎÎÎ ÎÏÏÏ ÏÎ ÎÏÎÏ ÏÎÏÎÎÎÎÎÎÎ, ÏÎÏÏ, ÎÎ "
-"ÎÏÎÎÎÎÏÎÎÎÏÎÏÎÎ ÏÎ ÏÎÎÏÎ ÏÎÎÏÎÎÎÎÎÏÎ."
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Adjustment.html\";>Gtk."
+"Adjustment</link>"
 
-#: C/image-viewer.py.page:132(p)
+#: C/scale.vala.page:33(item/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:"
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.PositionType.html\";>Gtk."
+"PositionType</link>"
 msgstr ""
-"ÎÏ ÏÏÎÏÎÎÏÎÏÎÎ ÎÎÎ ÏÎÎÎÏÎÎ ÎÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÏÏÎ ÏÎÏÎÎÏÏÎ. ÎÏÎÏÎÎÏÏÎ ÏÎÎ "
-"ÏÎÏÎÎÎÏÏ ÎÏÎÎÎÎ ÏÏÎ ÎÎÎÎÎÎ <code>__init__</code>, ÎÎÎÏÏÏ ÎÎÏÎ ÏÎ ÎÏÎÎÎÎ "
-"<code>window.connect_after</code>:"
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.PositionType.html\";>Gtk."
+"PositionType</link>"
 
-#: C/image-viewer.py.page:140(p)
+#: C/scale.vala.page:34(item/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."
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Orientation.html\";>Gtk."
+"Orientation</link>"
 msgstr ""
-"Î ÏÏÏÏÎ ÎÏÎÎÎÎ ÎÎÎÎÎÏÏÎÎÎ ÎÎÎ <code>Gtk.Box</code> ÏÎÏ ÎÎÎÎÎÎÎÏÎÎ <code>box</"
-"code> ÎÎÎ ÎÎ ÎÏÏÎÎÎÎÏ ÎÏÎÎÎÎÏ ÏÏÎÎÎÎÎÏÎ ÎÏÎ ÎÏÏ ÏÎÏ ÎÎÎÏÏÎÏÎÏ ÏÎÏ: ÏÎ "
-"<code>orientation</code> ÏÏÎÎÎÎÎÏÎÎ ÏÎ ÎÎÎÎÏÎ (ÎÏÏÏÎ ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ "
-"ÏÎÏÎÎÎÏÎÏÎÏÎÎ ÏÎ ÏÏÎÎÎ) ÎÎÎ ÏÎ <code>spacing</code> ÎÎÎÎÎÏÎ ÏÏÎ ÎÏÎÏÎÎÎ "
-"ÏÏÏÏÎÏÎÎÎ ÎÏÎÎ ÏÏÎÎÎÏÏÎÎ ÏÏÎ 5 ÎÎÎÎÎÎÏÏÎÎÏÎÎÎ. Î ÎÏÏÎÎÎÎ ÎÏÎÎÎÎ ÎÏÎÎÏÎ "
-"ÏÏÎÏÎÎÏÎÎ ÏÏÎ ÏÎÏÎÎÏÏÎ ÏÎ ÎÎÎÎÎÎÎÎÏÏÎÎÎÎÎÎ <code>Gtk.Box</code>."
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Orientation.html\";>Gtk."
+"Orientation</link>"
 
-#: C/image-viewer.py.page:141(p) C/image-viewer.js.page:223(p)
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/scrolledwindow.py.page:21(media) C/scrolledwindow.vala.page:22(media)
+msgctxt "_"
 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)."
+"external ref='media/scrolledwindow.png' "
+"md5='697bb3205d5c4fb0b4ea8db435843157'"
 msgstr ""
-"ÎÎÏÏÎ ÏÏÎÎÎÎÏ ÏÎ ÏÎÏÎÎÏÏÎ ÏÎÏÎÎÏÎÎ ÎÏÎÎ ÎÎÎ ÎÎÎÎÎ <code>Gtk.Box</code> ÎÎÎ "
-"ÎÎÎ ÎÎÏÎÎÎÏÎÏÎ ÏÏÏÎ ÏÎ ÏÏÏÎÏÎÎÎÎ ÎÎ ÎÎ ÎÎÎÏÎ ÎÎÎÎÎ ÎÏÎÎÏÏÏÏ ÎÎÎÎÎÎ (ÏÎ "
-"<code>Gtk.Box</code> ÎÎÎÎÎ ÎÎÎÏ ÎÎÎÏÎÎÎÏ ÏÎÏÎÎÎÏÎÏ, ÎÏÏÏÎ ÎÎÎ ÎÏÎÏÎÎÏÎ ÎÎ "
-"ÎÎÎÏÎ ÏÏÎ ÎÎÎÎÎ ÎÎÎÎ)."
+"external ref='media/scrolledwindow.png' "
+"md5='697bb3205d5c4fb0b4ea8db435843157'"
 
-#: C/image-viewer.py.page:145(title) C/image-viewer.js.page:227(title)
-msgid "Packing: Adding widgets to the container"
-msgstr "ÎÏÏÎÎÏÎÏÎÎ: ÎÏÏÏÎÎÏÎ ÎÏÎÏÎÎÏÎ ÏÏÏÏÎÏÎÎÏÎ ÏÏÎÎ ÏÎÏÎÎÎÏÎ"
+#: C/scrolledwindow.py.page:7(info/title)
+msgctxt "text"
+msgid "ScrolledWindow (Python)"
+msgstr "ScrolledWindow (Python)"
 
-#: C/image-viewer.py.page:146(p)
-msgid ""
-"To add some widgets to the <code>Gtk.Box</code>, insert the following code "
-"directly below the <code>window.add (box)</code> line:"
-msgstr ""
-"ÎÎÎ ÎÎ ÏÏÎÏÎÎÏÎÏÎ ÎÎÏÎÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÏÏÎ <code>Gtk.Box</code>, "
-"ÎÎÏÎÎÎÏÎ ÏÎÎ ÎÎÏÎÎÏÎÎ ÎÏÎÎÎÎ ÎÎÏÎÎÏÏ ÎÎÏÏ ÎÏÏ ÏÎÎ ÎÏÎÎÎÎ <code>window.add "
-"(box)</code>:"
+#: C/scrolledwindow.py.page:17(info/desc)
+#: C/scrolledwindow.vala.page:18(info/desc)
+msgid "Adds scrollbars to its child widget"
+msgstr "ÎÏÎÏÎÎÏÎÎ ÎÏÎÎÎÎÏ ÎÏÎÎÏÎÏ ÏÏÎ ÎÏÎÎÏÏÎÎÏ ÏÎÏ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÎÏ"
+
+#: C/scrolledwindow.py.page:20(page/title)
+#: C/scrolledwindow.vala.page:21(page/title)
+msgid "ScrolledWindow"
+msgstr "ScrolledWindow"
+
+#: C/scrolledwindow.py.page:22(page/p) C/scrolledwindow.vala.page:23(page/p)
+msgid "An image in a scrolled window."
+msgstr "ÎÎÎ ÎÎÎÏÎÎ ÏÎ ÎÏÎÎÏÎÎÎÎ ÏÎÏÎÎÏÏÎ."
 
-#: C/image-viewer.py.page:150(p)
+#: C/scrolledwindow.py.page:28(section/code)
+#, no-wrap
 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."
+"from gi.repository import Gtk\n"
+"import sys\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"ScrolledWindow Example\", application=app)\n"
+"        self.set_default_size(200, 200)\n"
+"\n"
+"        # the scrolledwindow\n"
+"        scrolled_window = Gtk.ScrolledWindow()\n"
+"        scrolled_window.set_border_width(10)\n"
+"        # there is always the scrollbar (otherwise: AUTOMATIC - only if needed - or NEVER)\n"
+"        scrolled_window.set_policy(Gtk.PolicyType.ALWAYS, Gtk.PolicyType.ALWAYS)\n"
+"\n"
+"        # an image - slightly larger than the window...\n"
+"        image = Gtk.Image()\n"
+"        image.set_from_file(\"gnome-image.png\")\n"
+"\n"
+"        # add the image to the scrolledwindow\n"
+"        scrolled_window.add_with_viewport(image)\n"
+"\n"
+"        # add the scrolledwindow to the window\n"
+"        self.add(scrolled_window)\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
 msgstr ""
-"Î ÏÏÏÏÎ ÎÏÎÎÎÎ ÎÎÎÎÎÏÏÎÎÎ ÎÎÎ ÎÎÎÎÎÏÏÎÎÎ <code>Gtk.Image</code> ÏÎÏ "
-"ÎÎÎÎÎÎÎÏÎÎ <code>image</code>, ÏÎÏ ÎÎ ÎÎÏÎÎÎÎÎÎ ÎÎÎ ÎÏÏÎÎÎ ÎÎÎÏÎÎÏ. ÎÎÎÏÏ ÏÎ "
-"ÏÏÎÎÎÎÏÎÎÏÏÎ ÎÏÎÏÏÎÏÎ ÏÏÎ ÏÎÎÏÎÏÏÎ ÏÎÎÎÏÏÎ, ÎÎ ÏÎ ÎÏÎÏÎÏÎÎ ÏÏ ÎÎÏÎÎÎÎÏÎ "
-"ÎÏÏÎÎÎÏ ÎÎÎÏÎÏ. ÎÏÎÏÎÎ ÎÎ ÏÏÎÏÎÎÏÎÏÎ ÏÎ <code>image = 0</code> ÏÏÎÎ ÎÏÏÎ ÏÎÏ "
-"ÎÎÎÏÎÏ <code>GUI</code>. ÎÏÎÎÏÎ, ÏÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÏÎÏ ÎÎÎÏÎÎÏ "
-"ÏÏÎÏÏÎÎÎÏÎÎ (<em>ÏÎÎÎÏÎÏÎÏÎÎ</em>) ÏÏÎÎ ÏÎÏÎÎÎÏÎ <code>box</code> "
-"ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ ÎÎÎÎÎÎ <link href=\"http://library.gnome.org/devel/gtk/";
-"stable/GtkBox.html#gtk-box-pack-start\"><code>pack_start</code></link> ÏÎÏ "
-"GtkBox."
+"from gi.repository import Gtk\n"
+"import sys\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"ScrolledWindow Example\", application=app)\n"
+"        self.set_default_size(200, 200)\n"
+"\n"
+"        # the scrolledwindow\n"
+"        scrolled_window = Gtk.ScrolledWindow()\n"
+"        scrolled_window.set_border_width(10)\n"
+"        # there is always the scrollbar (otherwise: AUTOMATIC - only if needed - or NEVER)\n"
+"        scrolled_window.set_policy(Gtk.PolicyType.ALWAYS, Gtk.PolicyType.ALWAYS)\n"
+"\n"
+"        # an image - slightly larger than the window...\n"
+"        image = Gtk.Image()\n"
+"        image.set_from_file(\"gnome-image.png\")\n"
+"\n"
+"        # add the image to the scrolledwindow\n"
+"        scrolled_window.add_with_viewport(image)\n"
+"\n"
+"        # add the scrolledwindow to the window\n"
+"        self.add(scrolled_window)\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
 
-#: C/image-viewer.py.page:152(p)
+#: C/scrolledwindow.py.page:31(section/title)
+msgid "Useful methods for a ScrolledWindow widget"
+msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ScrolledWindow"
+
+#: C/scrolledwindow.py.page:33(item/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> ÏÎÎÏÎÎÎ 4 ÏÎÏÎÎÎÏÏÎÏÏ: ÏÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÏÎÏ "
-"ÎÎ ÏÏÎÏÏÎÎÎÎ ÏÏÎ GtkBox (<code>child</code>)Â ÎÎ ÏÎ <code>Gtk.Box</code> "
-"ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎ ÏÏÎÎ ÏÏÎÏÏÎÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ (<code>expand</"
-"code>)Â ÎÎ ÏÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÎ ÎÏÏÎÏÎ ÎÎ ÎÎÎÏÏÎÎ ÏÎÎ ÏÎÎ "
-"ÎÎÎÎÎÏÏÎÎÎÎÎÎ ÎÏÎÏÎÎÎÎ ÏÏÏÎ ÎÎ ÎÎÎÎÎÏÏÎÎ ÏÎ <code>Gtk.Box</code> "
-"(<code>fill</code>)Â ÎÎÎ ÏÏÏÎÏ ÏÏÏÎÏ ÏÏÎÏÎÎ ÎÎ ÏÏÎÏÏÎÎ, ÏÎ ÎÎÎÎÎÎÏÏÎÎÏÎÎÎ, "
-"ÎÎÎÎÎÏÎ ÏÏÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÎÎ ÏÏÎÏÏ ÎÎÎÏÎÎÎÏ ÏÎÏ ÎÎÏÎ ÏÏÎ <code>Gtk.Box</"
-"code>, (<code>padding</code>)."
+"<code>set_policy(hscrollbar_policy, vscrollbar_policy)</code> where each of "
+"the arguments is one of <code>Gtk.Policy.AUTOMATIC, Gtk.Policy.ALWAYS, Gtk."
+"Policy.NEVER</code> regulates whether the horizontal and vertical scrollbars "
+"should appear: with <code>AUTOMATIC</code> they appear only if needed, "
+"<code>ALWAYS</code> and <code>NEVER</code> are self-explanatory."
+msgstr ""
+"<code>set_policy(hscrollbar_policy, vscrollbar_policy)</code> ÏÏÎÏ ÏÎÎ ÏÎ "
+"ÎÏÎÏÎÎÏÎ ÎÎÎÎÎ ÎÎÎ ÎÏÏ ÏÎ <code>Gtk.Policy.AUTOMATIC, Gtk.Policy.ALWAYS, Gtk."
+"Policy.NEVER</code> ÏÏÎÎÎÎÎÎ ÎÎÎ ÎÎ ÎÏÎÎÏÎÏÎÎÏ ÎÎÎ ÎÎÎÎÏÎÏ ÎÏÎÎÎÎÏ ÎÏÎÎÏÎÏ "
+"ÏÏÎÏÎÎ ÎÎ ÎÎÏÎÎÎÎÎÎÏÎÎ: ÎÎ <code>AUTOMATIC</code> ÎÎ ÎÎÏÎÎÎÎÎÎÏÎÎ ÎÏÎÎ ÎÎÎ "
+"ÏÏÎÎÎÎÎÏÎÎ, <code>ALWAYS</code> ÎÎÎ <code>NEVER</code> ÎÎÎÎÎ ÎÏÏÎÎÏÎÏÎ."
 
-#: C/image-viewer.py.page:153(p) C/image-viewer.js.page:234(p)
+#: C/scrolledwindow.py.page:34(item/p)
 msgid ""
-"Gtk containers (and widgets) dynamically expand to fill the available space, "
-"if you let them. You don't position widgets by giving them a precise x,y-"
-"coordinate location in the window; rather, they are positioned relative to "
-"one another. This makes handling window resizing much easier, and widgets "
-"should automatically take a sensible size in most situations."
+"<code>add_with_viewport(widget)</code> is used to add the Gtk.Widget "
+"<code>widget</code> without native scrolling capabilities inside the window."
 msgstr ""
-"ÎÎ ÏÎÏÎÎÎÏÎÏ (ÎÎÎ ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ) ÏÎÏ Gtk ÎÏÎÎÏÎÎÎÎÎÏÎÎ ÎÏÎÎÎÎÎÎ ÎÎÎ "
-"ÎÎ ÎÎÎÏÏÎÏÎ ÏÎÎ ÎÎÎÎÎÏÎÎÎ ÏÏÏÎ, ÎÎ ÏÎ ÎÏÎÏÎÏÎ. ÎÎÎ ÏÎÏÎÎÎÏÎÎÏÎ ÏÎ ÎÏÎÏÎÎÎ "
-"ÏÏÏÏÎÏÎÎÎ ÎÎÎÎÎÏÎÏ ÏÎÏÏ ÎÎÏÎÎÎÎÏ ÎÎÏÎÎÏ x, y-ÏÏÎÏÎÏÎÎÎÎÎÏÎ ÏÏÎ ÏÎÏÎÎÏÏÎÂ "
-"ÎÎÎÎ, ÏÎÏÎÎÎÏÎÏÎÏÎÎ ÏÏÎÏÎÎÎ ÎÎÏÎÎÏ ÏÎÏÏ. ÎÏÏÏ ÎÎÎÎÎ ÏÎ ÏÎÎÏÎÏÎÏ ÏÎÏ ÎÎÎÎÎÎÏ "
-"ÏÎÏ ÎÎÎÎÎÎÏÏ ÏÎÏ ÏÎÏÎÎÏÏÎÏ ÏÎÎ ÎÏÎÎÎÎ ÎÎÎ ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÏÏÎÏÎÎ ÎÎ "
-"ÏÎÏÎÏÎ ÎÏÏÏÎÎÏÎ ÎÎÎ ÎÎÎÎÎÏ ÎÎÎÎÎÎÏ ÏÏÎÏ ÏÎÏÎÏÏÏÏÎÏÎÏ ÏÎÏÎÏÏÏÏÎÎÏ."
+"<code>add_with_viewport(widget)</code> ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÎÎÎ ÎÎ ÏÏÎÏÎÎÏÎÎ ÏÎ "
+"Gtk.Widget <code>widget</code> ÏÏÏÎÏ ÎÎÎÎÎÎÎÏ ÎÏÎÎÏÏÏÎÏÎÏ ÎÏÎÎÏÎÏ ÎÎÏÎ ÏÏÎ "
+"ÏÎÏÎÎÏÏÎ."
 
-#: C/image-viewer.py.page:154(p) C/image-viewer.js.page:235(p)
+#: C/scrolledwindow.py.page:35(item/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."
+"<code>set_placement(window_placement)</code> sets the placement of the "
+"contents with respect to the scrollbars for the scrolled window. The options "
+"for the argument are <code>Gtk.CornerType.TOP_LEFT</code> (default: the "
+"scrollbars are on the bottom and on the right of the window), <code>Gtk."
+"CornerType.TOP_RIGHT, Gtk.CornerType.BOTTOM_LEFT, Gtk.CornerType."
+"BOTTOM_RIGHT</code>."
 msgstr ""
-"ÎÏÎÏÎÏ ÏÎÎÎÎÏÏÏÎ ÏÏÏ ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÏÎÎÎÏÎÎÎÏÎÎ ÏÎ ÎÎÎ ÎÎÏÎÏÏÎÎ. "
-"ÎÏÎÎÏ ÏÎÎÎÏÎÏÎÏÏÎÏÎ ÎÎÏÎ ÏÏÎ <code>Gtk.Box</code>, ÏÎ <code>Gtk.Image</code> "
-"ÎÎÏÏÎÎÏÎÎ <em>ÎÏÎÎÏÏÎÎÏ</em> ÏÎÏ <code>Gtk.Box</code>. ÎÏÏÏ ÎÏÎÏÏÎÏÎÎ ÎÎ "
-"ÏÏÎÏÎÏÎÏÎÏÎÎÏÎÎ ÏÎ ÏÎÎ ÏÎ ÎÏÎÎÏÏÎÎÎ ÎÎÏÏ ÎÏÎÏÎÎÎÏ ÏÏÎÎÏÎÎÎÏ ÏÏ ÎÎÎ ÎÎÎÎÎÂ "
-"ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ, ÎÏÎÏÎÎÏÎ ÎÎ ÎÏÏÏÎÏÎ ÏÎ <code>Gtk.Box</code>, ÏÎÏ ÎÎ ÎÏÏÏÎÎ "
-"ÎÏÎÏÎÏ ÏÎÎ ÏÎ ÎÏÎÎÏÏÎÎÎ ÏÎÏ ÏÎÏÏÏÏÏÎÎÎ."
+"<code>set_placement(window_placement)</code> ÎÏÎÎÎÎ ÏÎÎ ÏÎÏÎÎÎÏÎÏÎ ÏÏÎ "
+"ÏÎÏÎÎÏÎÎÎÎÏÎ ÏÏÎÏÎÎÎ ÎÎ ÏÎÏ ÎÏÎÎÎÎÏ ÎÏÎÎÏÎÏ ÎÎÎ ÏÎ ÎÏÎÎÏÎÎÎÎ ÏÎÏÎÎÏÏÎ. ÎÎ "
+"ÎÏÎÎÎÎÎÏ ÎÎÎ ÏÎ ÏÏÎÏÎÎ ÎÎÎÎÎ <code>Gtk.CornerType.TOP_LEFT</code> "
+"(ÏÏÎÎÏÎÎÎÎÎ: ÎÎ ÎÏÎÎÎÎÏ ÎÏÎÎÏÎÏ ÎÎÎÎÎ ÏÏÎ ÏÎÎÎÏ ÎÎÎ ÏÏÎ ÎÎÎÎÎ ÏÎÏ "
+"ÏÎÏÎÎÏÏÎÏ), <code>Gtk.CornerType.TOP_RIGHT, Gtk.CornerType.BOTTOM_LEFT, Gtk."
+"CornerType.BOTTOM_RIGHT</code>."
 
-#: C/image-viewer.py.page:155(p) C/image-viewer.js.page:236(p)
-msgid "Now insert these two lines, below the two you just added:"
+#: C/scrolledwindow.py.page:36(item/p)
+msgid ""
+"<code>set_hadjustment(adjustment)</code> and <code>set_vadjustment"
+"(adjustment)</code> set the Gtk.Adjustment <code>adjustment</code>. This is "
+"the representation of a value with a lower and upper bound, together with "
+"step and page increments, and a page size, and it is constructed as "
+"<code>Gtk.Adjustment(value, lower, upper, step_increment, page_increment, "
+"page_size)</code> where the fields are of type <code>float</code>. (Note "
+"that <code>step_increment</code> is not used in this case, it can be set to "
+"<code>0</code>.)"
 msgstr ""
-"ÎÏÏÎ ÏÏÎÏÎÎÏÏÎ ÎÏÏÎÏ ÏÎÏ ÎÏÎ ÎÏÎÎÎÎÏ, ÎÎÏÏ ÎÏÏ ÎÏÏÎÏ ÏÎÏ ÎÏÎÎÏ ÏÏÎÏÎÎÏÎÏÎ:"
+"<code>set_hadjustment(adjustment)</code> and <code>set_vadjustment"
+"(adjustment)</code> ÎÏÎÎÎÎ ÏÎ Gtk.Adjustment <code>adjustment</code>. ÎÏÏÎ "
+"ÎÎÎÎÎ Î ÎÎÎÏÎÏÎÏÏÎÏÎ ÎÎÎÏ ÏÎÎÎÏ ÎÎ ÎÎÎ ÎÎÏÏ ÎÎÎ ÎÎÎ ÏÎÎÏ ÏÏÎÎ, ÎÎÎÎ ÎÎ "
+"ÎÏÎÎÏÎÎÏ ÎÎÎÎÏÎÏ ÎÎÎ ÏÎÎÎÎÎÏ ÎÎÎ ÎÎÎ ÎÎÎÎÎÎÏ ÏÎÎÎÎÎÏ ÎÎÎ ÎÎÎÎÎÏÎÎ ÏÏ "
+"<code>Gtk.Adjustment(value, lower, upper, step_increment, page_increment, "
+"page_size)</code> ÏÏÎÏ ÏÎ ÏÎÎÎÎ ÎÎÎÎÎ ÏÎÏ ÏÏÏÎÏ <code>float</code>. "
+"(ÎÎÎÎÎÏÏÏÎ ÏÏÎ <code>step_increment</code> ÎÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÏÎ ÎÏÏÎÎ ÏÎÎ "
+"ÏÎÏÎÏÏÏÏÎ, ÎÏÎÏÎÎ ÎÎ ÎÏÎÏÏÎÎ ÏÎ <code>0</code>.)"
 
-#: C/image-viewer.py.page:160(p)
+#: C/scrolledwindow.py.page:43(item/p) C/textview.py.page:98(item/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."
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkScrolledWindow.html";
+"\">GtkScrolledWindow</link>"
 msgstr ""
-"ÎÏÏÎÏ ÎÎ ÎÏÎÎÎÎÏ ÎÎÎÎÎ ÏÎÏÏÎÎÎÎÏ ÎÎ ÏÎÏ ÎÏÎ ÏÏÏÏÎÏ, ÎÎÎÎ ÎÏÏÎ ÏÎ ÏÎÏÎ "
-"ÎÎÎÎÎÏÏÎÎÏÎ ÎÎÎ <code>Gtk.Button</code> ÎÎÎ ÏÎ ÏÏÎÏÎÎÏÎÏÎ ÏÏÎ <code>box</"
-"code>. ÎÎÎÎÎÏÏÏÎ ÏÏÎ ÎÏÎÎÎÏÎÎ ÏÎÎ (ÎÎÏÏÎÏÎ) ÏÎÏÎÎÎÏÏÎ, ÏÎÎ <code>expand</"
-"code> ÏÎ <code>False</code>, ÎÎÏ ÎÎÏÎ ÎÏÎÏÏÎÎ <code>True</code> ÎÎÎ ÏÎ "
-"<code>Gtk.Image</code>. ÎÏÏÎ Î ÎÎÎÏÎÎ ÎÎ ÏÎÏÎÎ ÏÎÎ ÏÎ ÎÎÎÎÎÏÎÎÎ ÏÏÏÎ ÎÎÎ ÏÎ "
-"ÎÎÏÎÏÎÎ ÎÏÎÎ ÏÏÎ ÏÏÎÎÎÎÎÎÏÎÎ. ÎÏÎÎ ÎÎÎÎÏÏÎÏÎÎÎÏÎÎÏ ÏÎ ÏÎÏÎÎÏÏÎ, ÏÎ ÎÎÎÎÎÎÏ "
-"ÏÏÎ ÎÎÏÎÏÎÏÎ ÎÎ ÏÎÏÎÎÎÎÎÎÎ ÏÎ ÎÎÎÎ, ÎÎÏ ÏÎÏ ÎÎÎÏÎÎÏ ÎÎ ÎÏÎÎÎÎÎ, "
-"ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎÎ ÏÎ ÏÏÏÎÎÎÏÎ ÏÎÏÎÎÏÏÎ."
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkScrolledWindow.html";
+"\">GtkScrolledWindow</link>"
 
-#: C/image-viewer.py.page:164(title) C/image-viewer.js.page:247(title)
+#: C/scrolledwindow.vala.page:7(info/title)
+msgctxt "text"
+msgid "ScrolledWindow (Vala)"
+msgstr "ScrolledWindow (Vala)"
+
+#: C/scrolledwindow.vala.page:25(page/code)
+#, no-wrap
 msgid ""
-"Loading the image: Connecting to the button's <code>clicked</code> signal"
+"/* This is the application. */\n"
+"public class MyApplication : Gtk.Application {\n"
+"\t/* Override the 'activate' signal of GLib.Application. */\n"
+"\tprotected override void activate () {\n"
+"\t\t/* Create the window of this application. */\n"
+"\t\tvar window = new Gtk.ApplicationWindow (this);\n"
+"\t\twindow.title = \"ScrolledWindow Example\";\n"
+"\t\twindow.set_default_size (200, 200);\n"
+"\n"
+"\t\tvar scrolled_window = new Gtk.ScrolledWindow (null, null);\n"
+"\t\tscrolled_window.set_border_width (10);\n"
+"\t\tscrolled_window.add_with_viewport (new Gtk.Image.from_file (\"gnome-image.png\"));\n"
+"\t\tscrolled_window.set_policy (Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC);\n"
+"\n"
+"\t\twindow.add (scrolled_window);\n"
+"\t\twindow.show_all ();\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* main creates and runs the application. */\n"
+"public int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
 msgstr ""
-"ÎÏÏÏÏÏÎ ÏÎÏ ÎÎÎÏÎÎÏ: ÎÏÎÎÎÏÎ ÏÏÎ ÏÎÎÎ ÏÎÏ ÎÎÏÎÏÎÎÏ <code>clicked</code>"
+"/* This is the application. */\n"
+"public class MyApplication : Gtk.Application {\n"
+"\t/* Override the 'activate' signal of GLib.Application. */\n"
+"\tprotected override void activate () {\n"
+"\t\t/* Create the window of this application. */\n"
+"\t\tvar window = new Gtk.ApplicationWindow (this);\n"
+"\t\twindow.title = \"ScrolledWindow Example\";\n"
+"\t\twindow.set_default_size (200, 200);\n"
+"\n"
+"\t\tvar scrolled_window = new Gtk.ScrolledWindow (null, null);\n"
+"\t\tscrolled_window.set_border_width (10);\n"
+"\t\tscrolled_window.add_with_viewport (new Gtk.Image.from_file (\"gnome-image.png\"));\n"
+"\t\tscrolled_window.set_policy (Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC);\n"
+"\n"
+"\t\twindow.add (scrolled_window);\n"
+"\t\twindow.show_all ();\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* main creates and runs the application. */\n"
+"public int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
 
-#: C/image-viewer.py.page:165(p)
+#: C/scrolledwindow.vala.page:30(item/p) C/textview.vala.page:36(item/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."
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.ScrolledWindow.html\";>Gtk."
+"ScrolledWindow</link>"
 msgstr ""
-"ÎÏÎÎ Î ÏÏÎÏÏÎÏ ÏÎÏÎÏÎÎ ÏÎÎÏ ÏÏÎ ÎÎÏÎÏÎ <gui>ÎÎÎÎÎÎÎ ÎÎÎÏÎÎÏâ</gui>, ÎÎÎÏ "
-"ÎÎÎÎÎÎÎÏ ÎÎ ÎÎÏÎÎÎÏÏÎÎ ÏÏÏÎ Î ÏÏÎÏÏÎÏ ÎÎ ÎÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎÏÎÎ. ÎÏÎÎÏ "
-"ÎÎÎÎÎÎÎÎ, Î ÎÎÎÏÎÎ ÎÎ ÏÎÏÏÏÎÎÎ ÎÎÎ ÎÎ ÎÎÏÎÎÎÏÏÎÎ ÏÏÎ ÎÎÏÎÏÏÎÎÏÎ ÎÏÎÏÎÎÏ "
-"ÏÏÏÏÎÏÎÎÏ."
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.ScrolledWindow.html\";>Gtk."
+"ScrolledWindow</link>"
 
-#: C/image-viewer.py.page:166(p)
+#: C/scrolledwindow.vala.page:31(item/p) C/textview.vala.page:38(item/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:"
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.PolicyType.html\";>Gtk."
+"PolicyType</link>"
 msgstr ""
-"ÎÎ ÏÏÏÏÎ ÎÎÎÎ ÎÎÎÎÎ ÎÎ ÏÏÎÎÎÏÎÏÎÎ ÏÎ ÏÎÎÎ <code>clicked</code> ÏÎÏ ÎÎÏÎÏÎÎÏ "
-"ÎÎ ÎÎÎ ÏÏÎÎÏÏÎÏÎ ÏÎÎÏÎÏÏÎ ÏÎÎÎÏÏÎ, ÏÎÎ ÎÏÎÎÎ ÎÎÎÎÎÎÎÏÎÎ "
-"<code>on_open_clicked</code>. ÎÎÎÏÎ ÎÏÏÏÎ ÏÎÎ ÎÏÎÎÎÎ ÎÎÎÏÏÏ ÎÎÏÎ ÏÎÎ ÎÏÎÎÎÎ "
-"ÏÎÏ ÏÎ ÎÎÏÎÏÎ ÎÎÎÎÎÏÏÎÎÎÏÎÎ <code>button = Gtk.Button()</code>:"
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.PolicyType.html\";>Gtk."
+"PolicyType</link>"
 
-#: C/image-viewer.py.page:170(p)
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/separator.py.page:23(media)
+msgctxt "_"
 msgid ""
-"This will connect the <code>clicked</code> signal to <code>on_open_clicked</"
-"code> method that we will define below."
+"external ref='media/separator.png' md5='8769b27662ce5c77f99e9ce33751a21a'"
 msgstr ""
-"ÎÏÏÏ ÎÎ ÏÏÎÎÎÏÎÎ ÏÎ ÏÎÎÎ <code>clicked</code> ÏÏÎ ÎÎÎÎÎÎ "
-"<code>on_open_clicked</code> Î ÎÏÎÎÎ ÎÎ ÎÏÎÏÏÎÎ ÏÎÏÎÎÎÏÏ."
+"external ref='media/separator.png' md5='8769b27662ce5c77f99e9ce33751a21a'"
 
-#: C/image-viewer.py.page:175(title) C/image-viewer.js.page:257(title)
-msgid "Loading the image: Writing the signal's callback"
-msgstr "ÎÏÏÏÏÏÎ ÏÎÏ ÎÎÎÏÎÎÏ: ÎÏÎÏÎÎÏÎÏ ÏÎÎ ÎÏÎÎÎÎÎÎÏÎ ÏÎÏ ÏÎÎÎÏÎÏ"
+#: C/separator.py.page:7(info/title)
+msgctxt "text"
+msgid "Seperator (Python)"
+msgstr "ÎÎÎÏÏÏÎÏÏÎÏ (Python)"
 
-#: C/image-viewer.py.page:176(p)
-msgid ""
-"Now we can create the <code>on_open_clicked</code> method. Insert the "
-"following into the <code>GUI</code> class code block, after the "
-"<code>__init__</code> method:"
-msgstr ""
-"ÎÏÏÎ ÎÏÎÏÎÏÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ ÏÎ ÎÎÎÎÎÎ <code>on_open_clicked</code>. "
-"ÎÎÏÎÎÎÏÎ ÏÎ ÎÎÏÎÎÏÎÎ ÏÏÎ ÎÎÎÏÎ <code>GUI</code>, ÎÎÏÎ ÏÎ ÎÎÎÎÎÎ "
-"<code>__init__</code>:"
+#: C/separator.py.page:18(info/desc)
+msgid "A separator widget"
+msgstr "ÎÎÎÏ ÎÎÎÏÏÏÎÏÏÎÏ ÎÏÎÏÎÎÎÏ ÏÏÏÏÎÏÎÎÎÏ"
+
+#: C/separator.py.page:21(page/title)
+msgid "Separator"
+msgstr "ÎÎÎÏÏÏÎÏÏÎÏ"
 
-#: C/image-viewer.py.page:192(p) C/image-viewer.js.page:278(p)
-#: C/image-viewer.cpp.page:172(p) C/image-viewer.c.page:186(p)
+#: C/separator.py.page:24(page/p)
+msgid "A horizontal and a vertical separator divide some labels."
+msgstr "ÎÏÎÎÏÎÏÎÎÏ ÎÎÎ ÎÎÎÎÏÎÏ ÎÎÎÏÏÏÎÏÏÎÏ ÎÎÎÎÏÎÏÎ ÎÎÏÎÎÎÏ ÎÏÎÎÎÏÎÏ."
+
+#: C/separator.py.page:30(section/code)
+#, no-wrap
 msgid ""
-"This is a bit more complicated than anything we've attempted so far, so "
-"let's break it down:"
+"from gi.repository import Gtk\n"
+"import sys\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"Separator Example\", application=app)\n"
+"\n"
+"        # three labels\n"
+"        label1 = Gtk.Label()\n"
+"        label1.set_text(\"Below, a horizontal separator.\")\n"
+"\n"
+"        label2 = Gtk.Label()\n"
+"        label2.set_text(\"On the right, a vertical separator.\")\n"
+"\n"
+"        label3 = Gtk.Label()\n"
+"        label3.set_text(\"On the left, a vertical separator.\")\n"
+"\n"
+"        # a horizontal separator\n"
+"        hseparator = Gtk.Separator(orientation=Gtk.Orientation.HORIZONTAL)\n"
+"        # a vertical separator\n"
+"        vseparator = Gtk.Separator(orientation=Gtk.Orientation.VERTICAL)\n"
+"\n"
+"        # a grid to attach labels and separators\n"
+"        grid = Gtk.Grid()\n"
+"        grid.attach(label1, 0, 0, 3, 1)\n"
+"        grid.attach(hseparator, 0, 1, 3, 1)\n"
+"        grid.attach(label2, 0, 2, 1, 1)\n"
+"        grid.attach(vseparator, 1, 2, 1, 1)\n"
+"        grid.attach(label3, 2, 2, 1, 1)\n"
+"        grid.set_column_homogeneous(True)\n"
+"        # add the grid to the window\n"
+"        self.add(grid)\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"\twin = MyWindow(self)\n"
+"\twin.show_all()\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
 msgstr ""
-"ÎÏÏÏ ÎÎÎÎÎ ÎÎÎÎ ÏÎÎ ÏÎÏÎÏÎÎÎÎ ÎÏÏ ÏÏÎ ÎÏÎÏÎÎ ÎÎÎÎÎ ÎÎÏÏÎ ÏÏÏÎ, ÎÎÎ ÎÏÏÏ ÎÎ "
-"ÏÎ ÏÏÏÎÏÎÏÎÎ ÏÎ ÎÎÎÎÎÏÎÎ:"
+"from gi.repository import Gtk\n"
+"import sys\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"Separator Example\", application=app)\n"
+"\n"
+"        # three labels\n"
+"        label1 = Gtk.Label()\n"
+"        label1.set_text(\"Below, a horizontal separator.\")\n"
+"\n"
+"        label2 = Gtk.Label()\n"
+"        label2.set_text(\"On the right, a vertical separator.\")\n"
+"\n"
+"        label3 = Gtk.Label()\n"
+"        label3.set_text(\"On the left, a vertical separator.\")\n"
+"\n"
+"        # a horizontal separator\n"
+"        hseparator = Gtk.Separator(orientation=Gtk.Orientation.HORIZONTAL)\n"
+"        # a vertical separator\n"
+"        vseparator = Gtk.Separator(orientation=Gtk.Orientation.VERTICAL)\n"
+"\n"
+"        # a grid to attach labels and separators\n"
+"        grid = Gtk.Grid()\n"
+"        grid.attach(label1, 0, 0, 3, 1)\n"
+"        grid.attach(hseparator, 0, 1, 3, 1)\n"
+"        grid.attach(label2, 0, 2, 1, 1)\n"
+"        grid.attach(vseparator, 1, 2, 1, 1)\n"
+"        grid.attach(label3, 2, 2, 1, 1)\n"
+"        grid.set_column_homogeneous(True)\n"
+"        # add the grid to the window\n"
+"        self.add(grid)\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"\twin = MyWindow(self)\n"
+"\twin.show_all()\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
+
+#: C/separator.py.page:34(section/title)
+msgid "API Reference"
+msgstr "ÎÎÎÏÎÏÎ API"
 
-#: C/image-viewer.py.page:195(p)
+#: C/separator.py.page:38(item/p)
 msgid ""
-"The line beginning with <code>dialog</code> creates an <gui>Open</gui> "
-"dialog, which the user can use to choose files. We set three properties: the "
-"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."
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkSeparator.html";
+"\">GtkSeparator</link>"
 msgstr ""
-"Î ÎÏÎÎÎÎ ÏÎÏ ÎÎÎÎÎÎÎÎ ÎÎ <code>dialog</code> ÎÎÎÎÎÏÏÎÎÎ ÎÎÎÎ ÎÎÎÎÎÎÎ "
-"<gui>Open</gui>, ÏÎÎ ÎÏÎÎÎ Î ÏÏÎÏÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÎ ÎÎÎ ÎÎ ÎÎÎÎÎÎÎÎ ÎÏÏÎÎÎ. "
-"ÎÏÎÎÎÏÎÎ ÏÏÎÎÏ ÎÎÎÏÏÎÏÎÏ: ÏÎÎ ÏÎÏÎÎ ÏÎÏ ÎÎÎÎÏÎÎÏ, ÏÎÎ ÎÎÎÏÎÎÎÎ (type) ÏÎÏ "
-"ÎÎÎÎÏÎÎÏ (ÎÎÎÎÎ ÎÎÎÎÎÎÎÏ \"open\", ÎÎÎÎ ÎÎ ÎÏÎÏÎÏÏÎÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ "
-"<code>SAVE</code> ÎÎ ÎÎÎÎÎÎ ÎÎ ÎÏÎÎÎÎÎÏÏÎÏÎÎ ÎÎÎ ÎÏÏÎÎÎ)Â ÎÎÎ "
-"<code>transient_for</code>, ÏÏÎÏ ÎÏÎÎÎÎ ÏÎ ÎÎÎÎÎÏ ÏÎÏÎÎÏÏÎ ÏÎÏ ÎÎÎÎÏÎÎÏ."
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkSeparator.html";
+"\">GtkSeparator</link>"
 
-#: C/image-viewer.py.page:198(p) C/image-viewer.js.page:284(p)
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/set-up-gedit.js.page:24(media)
+msgctxt "_"
 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>."
+"external ref='media/geditview.png' md5='f1438295662d95f56fcd1d8200efaaf2'"
 msgstr ""
-"ÎÎ ÎÏÏÎÎÎÎÏ ÎÏÎ ÎÏÎÎÎÎÏ ÏÏÎÏÎÎÏÎÏÎ ÏÎ ÎÎÏÎÏÎÎ <gui>Cancel</gui> ÎÎÎ "
-"<gui>Open</gui> ÏÏÎ ÎÎÎÎÎÎÎ. ÎÎ ÎÎÏÏÎÏÎ ÏÏÎÏÎÎ ÏÎÏ ÎÎÎÏÎÎÏ ÏÎÏ "
-"<code>add_button</code> ÎÎÎÎÎ Î (ÎÎÎÏÎÎÎ) ÏÎÎÎ ÏÎÏ ÎÏÎÏÏÏÎÏÎÎ ÏÏÎÎ ÏÎÏÎÎÏÎÎ "
-"ÏÎ ÎÎÏÎÏÎ: 0 ÎÎÎ ÏÎ <gui>ÎÎÏÏÏÏÎ</gui> ÎÎÎ 1 ÎÎÎ ÏÎ <gui>ÎÎÎÎÎÎÎ</gui>."
+"external ref='media/geditview.png' md5='f1438295662d95f56fcd1d8200efaaf2'"
 
-#: C/image-viewer.py.page:199(p) C/image-viewer.js.page:285(p)
-#: C/image-viewer.cpp.page:180(p) C/image-viewer.c.page:198(p)
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/set-up-gedit.js.page:36(media)
+msgctxt "_"
 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."
+"external ref='media/gediteditor.png' md5='50db1ee8f2c545744879ee9fba5b4b24'"
 msgstr ""
-"ÎÎÎÎÎÏÏÏÎ ÏÏÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÏÎ <em>ÏÏÎÎÎÎÎÏÎÏÎÎÎÎ</em> ÎÎÏÎÎÏÎ ÎÎÏÎÏÎÏÎ "
-"ÏÎÏ ÏÏÎÏÏÎÏÎ ÏÏÎ Gtk, ÎÎÏÎ ÎÎ ÎÏÎÏÎÏÎÎ ÎÎ ÎÎÎÎÎ \"ÎÎÏÏÏÏÎ\" Î \"ÎÎÎÎÎÎÎ\". "
-"ÎÎ ÏÎÎÎÎÎÎÏÎÎÎ ÏÏÎ ÏÏÎÏÎ ÏÏÎ ÏÏÎÎÎÎÎÏÎÏÎÎÎÏÎ ÎÎÎÎÎÏÏÎ ÎÎÎÎÎ ÏÏÎ ÎÎ ÎÏÎÎÎÏÎÏ "
-"ÏÏÎ ÎÎÏÎÏÎÏÎ ÎÎ ÎÏÎÏÎ ÎÎÎ ÎÎÏÎÏÏÎÏÏÎÎ ÏÏÎ ÎÎÏÏÏÎ ÏÎÏ ÏÏÎÏÏÎ."
+"external ref='media/gediteditor.png' md5='50db1ee8f2c545744879ee9fba5b4b24'"
+
+#: C/set-up-gedit.js.page:18(page/title)
+msgid "Set up gedit for JavaScript development"
+msgstr "ÎÎÎÎÏÎÏÏÎÏÎ gedit ÎÎÎ ÎÎÎÏÏÏÎÎ JavaScript"
 
-#: C/image-viewer.py.page:202(p) C/image-viewer.js.page:288(p)
+#: C/set-up-gedit.js.page:19(page/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)."
+"This tutorial will show you how to set up <link href=\"http://projects.gnome.";
+"org/gedit/\">gedit</link>, GNOME's basic text editor, so that it has a "
+"handful of extra features which are useful for writing JavaScript code."
 msgstr ""
-"To <code>set_default_response</code> ÎÎÎÎÏÎÎÎÎ ÏÎÎÎ ÎÎÏÎÏÎ ÎÎ ÎÎÎÏÎÎÏÎÎÎÎÎÎ "
-"ÏÏÎÎ Î ÏÏÎÏÏÎÏ ÎÏÎÎÎÎÎÎ ÎÎÎ ÎÏÏÎÎÎ ÎÎ ÎÎÏÎÏ ÎÎÎÎ Î ÏÎÏÎÏÎÎ <key>Enter</key>. "
-"ÎÏÎÎ ÏÎÏÎÏÏÏÏÎ ÎÎÏ, ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÏÎ ÎÎÏÎÏÎ <gui>ÎÎÎÎÎÎÎ</gui> ÏÎÎ "
-"ÏÏÎÎÏÎÎÎÎÎÎÎÎ (ÏÎ ÎÏÎÎÎ ÎÏÎÎ ÏÎÎÎ 1)."
+"ÎÏÏÏ ÏÎ ÎÎÎÎÎÎ ÎÎÎÏÎÎÎ ÏÏÏ ÎÎ ÎÎÎÎÏÎÏÏÎÏÎÏÎ ÏÎ <link href=\"http://projects.";
+"gnome.org/gedit/\">gedit</link>, ÎÎÏÎÎÏ ÎÏÎÎÎÏÎÎÏÏÎ ÎÎÎÎÎÎÎÏ ÏÎÏ GNOME, ÎÏÏÎ "
+"ÏÏÏÎ ÎÎ ÎÏÎÎ ÎÎÏÎÎÎ ÏÏÏÏÎÎÏÎ ÎÎÏÏÎÏÎÎÏÎ ÏÎÏ ÎÎÎÎÎ ÏÏÎÏÎÎÎ ÎÎÎ ÏÏÎÎÏÎÏÎ "
+"ÎÏÎÎÎÎ JavaScript."
+
+#: C/set-up-gedit.js.page:22(section/title)
+msgid "Making code clearer"
+msgstr "ÎÎÎÎÎÏÎÏ ÏÎÎ ÎÏÎÎÎÎ ÏÎÏÎÏÏÎÏÎ"
 
-#: C/image-viewer.py.page:205(p) C/image-viewer.js.page:291(p)
+#: C/set-up-gedit.js.page:23(section/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."
+"Click on <gui>Edit</gui> in gedit's menu bar, then click on "
+"<gui>Preferences</gui>. You should see something like this:"
 msgstr ""
-"ÎÎ ÎÏÏÎÎÎÎÏ ÏÏÎÎÏ ÎÏÎÎÎÎÏ ÏÎÏÎÎÏÎÎÎÏÎ ÏÎ ÎÎÎÎÎÎÎ <gui>ÎÎÎÎÎÎÎ</gui> ÎÎ "
-"ÎÎÏÎÎÎÎÎÎ ÎÏÎÎ ÎÏÏÎÎÎ ÏÎÏ ÎÏÎÏÎÏÎ ÎÎ ÎÎÎÎÏÎÎÏÎ ÎÏÏ ÏÎ <code>Gtk.Image</"
-"code>. ÎÎÎÎÎÏÏÎÎÏÎÎ ÏÏÏÏÎ ÎÎÎ ÎÎÏÎÎÎÎÎÎÎÎ ÏÎÎÏÏÎÏÂ ÏÏÎÏÎÎÏÎÏÎÎ ÏÏÎ ÏÎÎÏÏÎ "
-"ÏÎÏÎ ÏÏÎ ÎÎÎÏÎ ÎÏÏÎÎÎ ÏÎÏ ÏÏÎÏÏÎÏÎÎÎÎÏÎÎ ÎÏÏ ÏÎ <code>Gdk.Pixbuf</code> (ÏÎ "
-"ÎÏÎÎÎ ÏÎÏÎÎÏÎÎ ÏÎ ÏÎÏÎÏÏÏÏÎÏÎ ÎÎÎÎ ÎÎÎÏÎÏÎ ÏÏÏÏ PNG ÎÎÎ JPEG). ÎÎÎÎÏ, "
-"ÎÎÎÎÏÎÎÎÏÎÎ ÏÎ ÏÎÎÏÏÎ ÎÎ ÎÎÎÎÎ ÏÎ ÏÎÎÏÏÎ ÏÎÏ ÎÎÎÎÏÎÎÏ <gui>ÎÎÎÎÎÎÎ</gui>."
+"ÎÎÏÎÏÏÎ ÏÏÎÎ <gui>ÎÏÎÎÎÏÎÎÏÎÎ</gui> ÏÏÎ ÎÏÎÎÎÎ ÎÎÎÎÏ ÏÎÏ gedit, ÎÏÎÎÏÎ "
+"ÏÎÏÎÏÏÎ <gui>ÎÏÎÏÎÎÎÏÎÎÏ</gui>. ÎÎ ÏÏÎÏÎÎ ÎÎ ÎÎÎÏÎ ÎÎÏÎ ÏÏÏÏ ÎÏÏÏ:"
+
+#: C/set-up-gedit.js.page:25(section/p)
+msgid "Here are the options you want to make sure are turned on."
+msgstr "ÎÎÏ ÎÎÎÎÎ ÎÎ ÎÏÎÎÎÎÎÏ ÏÎÏ ÎÎÎÎÏÎ ÎÎ ÎÎÎÎÎÏÎÎÎÏÎ ÏÏÎ ÎÎÎÎÎ ÎÎÎÏÎÎÏ."
 
-#: C/image-viewer.py.page:208(p)
+#: C/set-up-gedit.js.page:27(item/p)
 msgid ""
-"<code>dialog.run</code> displays the <gui>Open</gui> dialog. The dialog will "
-"wait for the user to choose an image; when they do, <code>dialog.run</code> "
-"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> ÎÎÏÎÎÎÎÎÎ ÏÎ ÎÎÎÎÎÎÎ <gui>ÎÎÎÎÎÎÎ</gui>. Î "
-"ÎÎÎÎÎÎÎÏ ÎÎ ÏÎÏÎÎÎÎÎÎ ÏÎÎ ÏÏÎÏÏÎ ÎÎ ÎÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎÏÎÎÂ ÏÏÎÎ ÎÎÎÎÎÎÎÎ, ÏÎ "
-"<code>dialog.run</code> ÎÎ ÎÏÎÏÏÏÎÏÎÎ ÏÎÎ ÏÎÎÎ <output>1</output> (ÎÎ "
-"ÎÏÎÏÏÏÎÏÎÎ <output>0</output> ÎÎ Î ÏÏÎÏÏÎÏ ÏÎÏÎÏÎÎ <gui>ÎÎÏÏÏÏÎ</gui>). Î "
-"ÎÎÎÎÏÎÏ ÏÎÎÏ <code>if</code> ÎÎÎÎÏÎÎ ÎÎÎ ÎÏÏÏ."
+"<gui>Display line numbers</gui> will help you compare the code you type in "
+"with the original, and make it easier to see which line is causing an error "
+"if there is a bug."
+msgstr ""
+"<gui>Î ÎÎÏÎÎÎÏÎ ÏÏÎ ÎÏÎÎÎÏÎ ÎÏÎÎÎÎÏ</gui> ÎÎ ÏÎÏ ÎÎÎÎÎÏÎÎ ÎÎ ÏÏÎÎÏÎÎÎÏÎ ÏÎÎ "
+"ÎÏÎÎÎÎ ÏÎÏ ÏÎÎÎÏÏÎÎÎÎÎÏÎÏÎ ÎÎ ÏÎÎ ÎÏÏÎÎÏ ÎÎÎ ÎÎÎÏÎÎÎÏÎÎÎ ÎÎ ÎÎÎÏÎ ÏÎÎÎ "
+"ÎÏÎÎÎÎ ÏÏÎÎÎÎÎÎ ÎÎÎÎÏ ÎÎÎ ÏÏÎÏÏÎÎ ÏÏÎÎÎÎ."
 
-#: C/image-viewer.py.page:210(p) C/image-viewer.js.page:296(p)
+#: C/set-up-gedit.js.page:28(item/p)
 msgid ""
-"Assuming that the user did click <gui>Open</gui>, the next line sets the "
-"<code>file</code> property of the <code>Gtk.Image</code> to the filename of "
-"the image selected by the user. The <code>Gtk.Image</code> will then load "
-"and display the chosen image."
+"<gui>Highlight current line</gui> makes it easier to see which line you're "
+"on, when you have to go back and forth a lot."
 msgstr ""
-"ÎÎ ÏÏÎÎÎÏÎÏÎÎ ÏÏÎ Î ÏÏÎÏÏÎÏ ÏÎÏÎÏÎ ÏÎ <gui>ÎÎÎÎÎÎÎ</gui>, Î ÎÏÏÎÎÎÎ ÎÏÎÎÎÎ "
-"ÎÏÎÎÎÎ ÏÎÎ ÎÎÎÏÏÎÏÎ <code>file</code> ÏÎÏ <code>Gtk.Image</code> ÏÏÎ ÏÎÎÎÎ "
-"ÏÎÏ ÎÏÏÎÎÎÏ ÎÎÎÏÎÎÏ ÏÎÏ ÎÏÎÎÎÎÎ Î ÏÏÎÏÏÎÏ. ÎÎ <code>Gtk.Image</code> ÎÎ "
-"ÏÎÏÏÏÏÎÎ ÎÎÎ ÎÎ ÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÏÎÎÎÎÎÎÎÎ ÎÎÎÏÎÎ."
+"<gui>Î ÏÎÎÎÏÎÏÏ ÏÎÏ ÏÏÎÏÎÏÏÎÏ ÎÏÎÎÎÎÏ</gui> ÎÎÎÏÎÎÎÏÎÎÎ ÎÎ ÎÎÎÏÎ ÏÎ ÏÎÎÎ "
+"ÎÏÎÎÎÎ ÎÎÏÎÏÏÎ, ÏÏÎÎ ÏÏÎÏÎÎ ÎÎ ÏÎÏÎ ÏÎÏÏ ÎÎÎ ÎÏÏÎÏ ÎÏÎÎÏÎ."
 
-#: C/image-viewer.py.page:221(p)
+#: C/set-up-gedit.js.page:29(item/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!"
+"<gui>Highlight matching brackets</gui> helps you make sure you didn't leave "
+"out a bracket by accident."
 msgstr ""
-"ÎÎ ÏÏÎÏÎÎ ÎÎ ÎÏÎÏÎ ÏÎÎÎ ÏÎÎ ÎÏÎÎÎÎ ÏÎÏ ÏÏÎÎÎÎÎÏÏÎ, ÎÏÏÏÎ ÎÎÎÎÎÎÏÏÎ ÎÎ ÏÎÎ "
-"ÎÎÏÎÎÎÏÎÏÎ. ÎÎÏ ÎÎÎÎÎ ÏÎ ÏÎÎÎÏÂ ÎÎÎ ÏÎÎÏÎÏ ÎÎÎ ÎÎÎÏÎÏÏÎÎÎÏ ÏÏÏÎÏÎÎÎÎ "
-"ÏÏÎÎÎÎÎÏ ÎÎÎÏÎÏÎ (ÎÎÎ ÎÎÎÏ ÎÎÎÏÏÏ ÎÎÎÎÏÏ ÏÎ Python ÎÎÎ Gtk) ÏÎ ÎÎÎÏÎÏÏÎ "
-"ÏÏÏÎÎ!"
+"<gui>Î ÏÎÎÎÏÎÏÏ ÏÎÏÎÎÎÎÏÎÏ ÏÎÏ ÏÎÎÏÎÎÎÎÎ</gui> ÎÎÎÎÎ ÎÎ ÎÎÎÎÎÏÎÎÎÏÎ ÏÏÎ ÎÎÎ "
+"ÎÏÎÎÎÏÎ ÎÎÎ ÏÎÏÎÎÎÎÏÎ ÏÏÏÎÎÎ."
+
+#: C/set-up-gedit.js.page:34(section/title)
+msgid "Making editing easier"
+msgstr "ÎÎÎÏÎÎÎÏÎÎÎÏÎÏ ÏÎÎ ÎÏÎÎÎÏÎÎÏÎÎ"
 
-#: C/image-viewer.py.page:226(p)
+#: C/set-up-gedit.js.page:35(section/p)
 msgid ""
-"If you run into problems with the tutorial, compare your code with this "
-"<link href=\"image-viewer/image-viewer.py\">reference code</link>."
+"In gedit's <gui>Preferences</gui> dialog, click on the <gui>Editor</gui> "
+"tab. You should see something like this:"
 msgstr ""
-"ÎÎ ÎÎÏÎÎÎÏÏÏÎÏÎÏÎ ÏÏÏÎÎÎÎÎ ÎÎ ÏÎÎ ÎÎÎÎÏ, ÏÏÎÎÏÎÎÎÏÎ ÏÎÎ ÎÏÎÎÎÎ ÏÎÏ ÎÎ ÎÏÏÏÎ "
-"<link href=\"image-viewer/image-viewer.py\">ÏÎÎ ÎÏÎÎÎÎ ÎÎÎÏÎÏÎÏ</link>."
+"ÎÏÎÎ ÎÎÎÎÎÎÎ ÏÎÏ gedit <gui>ÏÏÎÏÎÎÎÏÎÎÏ</gui>, ÏÎÏÎÏÏÎ ÏÏÎÎ ÎÎÏÏÎÎÎ "
+"<gui>ÎÏÎÎÎÏÎÎÏÏÎÏ</gui>. ÎÎ ÏÏÎÏÎÎ ÎÎ ÎÎÎÏÎ ÎÎÏÎ ÏÏÏÏ ÎÏÏÏ:"
 
-#: C/image-viewer.js.page:7(title)
-msgid "Image Viewer (JavaScript)"
-msgstr "ÎÏÎÎÎÎÎÎÏ ÎÎÎÏÎÏÎ (JavaScript)"
+#: C/set-up-gedit.js.page:37(section/p)
+msgid ""
+"Here, you want to have <gui>Enable automatic indentation</gui> turned on. "
+"This means that when you hit <key>Enter</key> the cursor stays indented as "
+"far as the last line was. This is extremely useful when writing JavaScript "
+"code, since it uses indentation to make it clearer which parts do what."
+msgstr ""
+"ÎÎÏ, ÎÎÎÎÏÎ ÎÎ ÎÏÎÏÎ ÎÎÎÏÎÏ ÏÎ <gui>ÎÎÎÏÎÎÏÎÎÎÏÎ ÎÏÏÏÎÎÏÎÏ ÎÏÎÏÎÏ</gui>. "
+"ÎÏÏÎ ÏÎÎÎÎÎÎÎ ÏÏÎ ÏÏÎÎ ÏÎÏÎÏÎ <key>ÎÎÏÎÎÏÎÎ</key> Î ÎÏÎÎÎÎÏ ÏÎÏÎÎÎÎÎÎ ÎÎ "
+"ÎÏÎÏÎ ÏÏÎ ÎÏÎÎ Î ÏÎÎÎÏÏÎÎÎ ÎÏÎÎÎÎ. ÎÏÏÏ ÎÎÎÎÎ ÎÎÎÎÎÏÎÏÎ ÏÏÎÏÎÎÎ ÏÏÎÎ ÎÏÎÏÎÏÎ "
+"ÎÏÎÎÎÎ JavaScript, ÎÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÎ ÎÏÎÏÎ ÎÎÎ ÎÎ ÎÎÎÎÏÎ ÏÎÏÎÏÏÎÏÎ ÏÎÎÎ ÎÎÏÎ "
+"ÎÎÎÎÏÎ ÏÎ."
 
-#: C/image-viewer.js.page:10(desc)
+#: C/set-up-gedit.js.page:38(note/p)
 msgid ""
-"A little bit more than a simple \"Hello world\" application - write an image "
-"viewer in GTK. Includes an introduction to the JavaScript language."
+"If you want to share code with other people who write GNOME JavaScript "
+"applications, you'll also want to set <gui>Tab width</gui> to 4 and turn on "
+"<gui>Insert spaces instead of tabs</gui>."
 msgstr ""
-"ÎÎÎ ÎÎÎÎ ÏÎÏÎÏÏÏÏÎÏÎ ÎÏÏ ÎÏÎÎ ÎÏÎÏÎÎÎÎ ÏÎÎ ÏÎ \"Hello world\"- ÏÏÎÎÏÎÏÎ ÎÎÏÏ "
-"ÏÏÎÎÎÎÎÎ ÎÎÎÏÎÏÎ ÏÎ GTK. ÎÎÏÎÎÎÎÎÎÎÎÎ ÎÎÎ ÎÎÏÎÎÏÎÎ ÏÏÎ ÎÎÏÏÏÎ JavaScript."
+"ÎÎÎ ÎÎÎÎÏÎ ÎÎ ÎÎÎÏÎÏÏÎÎÏÎ ÎÏÎÎÎÎ ÎÎ ÎÎÎÎ ÎÏÎÎÎ ÏÎÏ ÎÏÎÏÎÏÎ ÎÏÎÏÎÎÎÎÏ "
+"JavaScript ÎÎÎ ÏÎ GNOME, ÎÎ ÎÎÎÎÏÎ ÎÏÎÏÎÏ ÎÎ ÎÏÎÏÎÏÎ ÏÎ <gui>ÏÎÎÏÎÏ ÏÎÏ "
+"ÏÏÎÎÎÎÎÏÎ</gui> ÏÏÎ 4 ÎÎÎ ÎÎ ÎÎÎÏÎÎÏÎÎÎÏÎÏÎ ÏÎÎ <gui>ÎÎÏÎÎÏÎÎ ÎÎÎÏÎ ÎÎÏÎ ÎÎÎ "
+"ÏÏÎÎÎÎÎÏÎÏ</gui>."
 
-#: C/image-viewer.js.page:29(p)
-msgid "Write a basic GTK user interface in JavaScript"
-msgstr "ÎÏÎÏÎ ÎÎÎ ÎÎÏÎÎÎ ÎÎÎÏÎÏÎ ÏÏÎÏÏÎ GTK ÏÎ JavaScript"
+#: C/signals-callbacks.py.page:8(info/title)
+msgctxt "text"
+msgid "Signals and callbacks (Python)"
+msgstr "ÎÎÎÎÏÎ ÎÎÎ ÎÏÎÎÎÎÎÎÏÎÎÏ (Python)"
 
-#: C/image-viewer.js.page:37(p)
-msgid "An installed copy of the <em>gjs</em> interpreter"
-msgstr "ÎÎÎ ÎÎÎÎÏÎÏÏÎÎÎÎÎ ÎÎÏÎÎÏÎÏÎ ÏÎÏ ÎÎÎÏÎÎÎÎÏÏÎ <em>gjs</em>"
+#: C/signals-callbacks.py.page:12(info/desc)
+msgid "An explanation of signals and callbacks in GTK+."
+msgstr "ÎÎÎ ÎÎÎÎÎÏÎ ÏÏÎ ÏÎÎÎÏÏÎ ÎÎÎ ÏÏÎ ÎÏÎÎÎÎÎÎÏÎÏÎ ÏÏÎ GTK+."
 
-#: C/image-viewer.js.page:38(p)
-msgid "Basic knowledge of any object-orientated programming language"
-msgstr "ÎÎÏÎÎÎ ÎÎÏÏÎ ÎÏÎÎÎÏÎÎÏÎÏÎ ÎÎÏÎÎÎÎÎÎÎÎÏÏÏÎÏÎÏÏ ÎÎÏÏÏÎÏ ÏÏÎÎÏÎÎÎÎÏÎÏÎÎÏ"
+#: C/signals-callbacks.py.page:25(page/title)
+msgid "Signals and callbacks"
+msgstr "ÎÎÎÎÏÎ ÎÎÎ ÎÏÎÎÎÎÎÎÏÎÎÏ"
 
-#: C/image-viewer.js.page:52(p)
+#: C/signals-callbacks.py.page:32(section/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."
+"Like most GUI toolkits, GTK+ uses an event-driven programming model. When "
+"the user is doing nothing, GTK+ sits in the main loop and waits for input. "
+"If the user performs some action - say, a mouse click - then the main loop "
+"\"wakes up\" and delivers an event to GTK+."
 msgstr ""
-"ÎÏÎÎÎÎÏÎ <gui>ÎÎÎÎÎÎ Javascript</gui> ÎÏÏ ÏÎÎ ÎÎÏÏÎÎÎ <gui>JS</gui>, ÏÎÏÎÏÏÎ "
-"<gui>ÎÏÏÎÏÏÎ</gui>, ÎÎÎ ÏÏÎÏÎÎÏÏÏÏÎ ÏÎÏ ÎÎÏÏÎÎÎÏÎÎÎÏ ÏÎÏ ÏÏÎÏ ÎÏÏÎÎÎÎÏ ÎÎÎÎÏ "
-"ÏÎÎÎÎÎÏ. ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ ÏÎ <file>image-viewer</file> ÏÏ ÏÎÎÎÎ ÎÏÎÎÏ ÎÎÎ "
-"ÎÎÏÎÎÏÎÎÏ."
+"ÎÏÏÏ ÏÎ ÏÎÏÎÏÏÏÏÎÏÎ ÏÎÎÎÏÎ ÎÏÎÎÎÎÎÏÎ GUI, ÏÎ GTK+ ÏÏÎÏÎÎÎÏÎÎÎÎ ÎÎÎ ÏÏÏÏÏÏÎ "
+"ÏÏÎÎÏÎÎÎÎÏÎÏÎÎÏ ÎÎÎÎÎÏÎÎÎÎ ÎÏÏ ÏÏÎÎÎÎÏÎ. ÎÏÎÎ Î ÏÏÎÏÏÎÏ ÎÎÎ ÎÎÎÎÎ ÏÎÏÎÏÎ, ÏÎ "
+"GTK+ ÎÎÎÎÏÎÎ ÏÏÎÎ ÎÏÏÎÎ ÎÏÏÏÎ ÎÎÎ ÏÎÏÎÎÎÎÎÎ ÎÎÎ ÎÎÏÎÎÏÎÎ. ÎÎÎ Î ÏÏÎÏÏÎÏ "
+"ÎÎÏÎÎÎÏÎÎ ÎÎÏÎÎÎ ÎÎÎÏÎÎÎÎ - ÎÏ ÏÎÏÎÎ, ÏÎÏÎÎÎ ÏÎÎÏÎÎÎÎÏ - ÏÏÏÎ Î ÎÏÏÎÎÏ "
+"ÎÏÏÏÎÏ \"ÎÏÏÎÎ\" ÎÎÎ ÎÎÎÎÎÎÎÎÎÎ ÎÎÎ ÏÏÎÎÎÎ ÏÏÎ GTK+."
 
-#: C/image-viewer.js.page:55(p)
+#: C/signals-callbacks.py.page:34(section/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."
+"When widgets receive an event, they frequently emit one or more signals. "
+"Signals notify your program that \"something interesting happened\" by "
+"invoking functions you have connected to the signal. Such functions are "
+"commonly known as callbacks. When your callbacks are invoked, you would "
+"typically take some action. After a callback finishes, GTK+ will return to "
+"the main loop and await more user input."
 msgstr ""
-"ÎÎÏÎÏÏÎ <gui>ÎÏÎÏÎÎÎÎ</gui> ÎÎÎ ÏÎ ÎÏÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎÎÎÎ ÎÎÎ ÎÏÎÏ. ÎÎÎÎÎÏÎ ÏÎ "
-"<file>src/main.js</file> ÎÏÏ ÏÎÏ ÎÎÏÏÎÎÎÏ <gui>ÎÏÎÎ</gui> Î <gui>ÎÏÏÎÎÎ</"
-"gui>. ÎÎÏÎÎÎÎÎÎÎÎÎ ÏÎÎÏ ÎÎÏÎÎÏ ÏÎÏÎÎÎÎÎÎÎ ÎÏÎÎÎÎ."
-
-#: C/image-viewer.js.page:62(title)
-msgid "JavaScript basics: Hello World"
-msgstr "ÎÎÏÎÎÎ JavaScript: Hello World"
+"ÎÏÎÎ ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÏÎÎÏÎÎ ÎÎÎ ÏÏÎÎÎÎ, ÎÎÏÎÎÏÎÏÎ ÏÏÏÎÎ ÎÎÎ Î "
+"ÏÎÏÎÏÏÏÏÎÏÎ ÏÎÎÎÏÎ. ÎÎ ÏÎÎÎÏÎ ÎÎÎÎÏÎÎÎÏÎ ÏÎ ÏÏÏÎÏÎÎÎÎ ÏÎÏ ÏÏÎ \"ÎÎÏÎ "
+"ÏÎÎÎÎÏÎÎÏ ÏÏÎÎÎÎ\" ÎÎÎÏÎÏÎÏ ÏÎÏ ÏÏÎÎÏÏÎÏÎÎÏ ÏÎÏ ÎÏÎÏÎ ÏÏÎÎÎÏÎÎ ÏÏÎ ÏÎÎÎ. "
+"ÎÎÏÎÎÎÏ ÏÏÎÎÏÏÎÏÎÎÏ ÎÎÎÎÎ ÎÎÎÎÎÎ ÎÎÏÏÏÎÏ ÏÏ ÎÏÎÎÎÎÎÎÏÎÎÏ. ÎÏÎÎ ÎÎ "
+"ÎÏÎÎÎÎÎÎÏÎÎÏ ÏÎÏ ÎÎÎÎÏÎÏÎÎ, ÎÎ ÏÎÏÎÏÎ ÏÏÏÎÎÎ ÎÎÏÎÎÎ ÎÎÎÏÎÎÎÎ. ÎÏÎÏ ÏÎÎÎÎÏÏÎÎ "
+"Î ÎÏÎÎÎÎÎÎÏÎ, ÏÎ GTK+ ÎÎ ÎÏÎÏÏÏÎÏÎÎ ÏÏÎÎ ÎÏÏÎÎ ÎÏÏÏÎ ÎÎÎ ÎÎ ÏÎÏÎÎÎÎÎÎ "
+"ÏÎÏÎÏÏÏÏÎÏÎÏ ÎÎÏÎÎÏÎÎÏ ÏÎÏ ÏÏÎÏÏÎ."
 
-#: C/image-viewer.js.page:63(p)
+#: C/signals-callbacks.py.page:36(section/p)
 msgid ""
-"Before we start writing the image viewer, let's find out more about the way "
-"JavaScript is used in GNOME. Of course, your very first contact with any "
-"programming language should be the Hello World program which can already be "
-"found in <file>main.js</file>:"
+"A generic example is: <code>handler_id = widget.connect(\"event\", callback, "
+"data)</code>. <code>widget</code> is an instance of a widget we created "
+"earlier. Next, the <code>event</code> we are interested in. Each widget has "
+"its own particular events which can occur. For instance, if you have a Gtk."
+"Button you usually want to connect to the \"clicked\" event: this means that "
+"when the button is clicked, the signal is issued. Another example is the "
+"<code>notify::property</code> signal: whenever a <link xref=\"properties.py"
+"\">property</link> is modified on a GObject, instead of just emitting the "
+"<code>notify</code> signal, GObject associates as a detail to this signal "
+"emission the name of the property modified. This allows clients who wish to "
+"be notified of changes to only one property to filter most events before "
+"receiving them. Thirdly, the callback argument is the name of the callback "
+"function, which contains the code which runs when signals of the specified "
+"type are issued. Finally, the optional data argument includes any data which "
+"should be passed when the signal is issued."
 msgstr ""
-"ÎÏÎÎ ÎÎ ÎÎÎÎÎÎÏÎÏÎÎ ÏÎÎ ÏÏÎÏÎÎÎ ÏÎÏ ÏÏÎÎÎÎÎÎ ÎÎÎÏÎÎÏ, ÎÏ ÎÎÎÏÎÏÎÏÎÎ "
-"ÏÎÏÎÏÏÏÏÎÏÎ ÎÎÎ ÏÎÎ ÏÏÏÏÎ ÏÏÎÏÎÏ ÏÎÏ JavaScript ÏÏÎ GNOME. ÎÏÏÎÎÎ, Î ÏÏÏÏÎ "
-"ÏÎÏ ÎÎ ÎÏÎÎÎÎÎÏÎÏÎ ÎÎÏÏÏÎ ÏÏÎÎÏÎÎÎÎÏÎÏÎÎÏ ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎ ÏÎ ÏÏÏÎÏÎÎÎÎ Hello "
-"World ÏÎÏ ÎÏÎÏÎÎ ÎÎ ÎÏÎÎÎÎ ÎÎÎ ÏÏÎ <file>main.js</file>:"
+"ÎÎÎ ÎÎÎÎÎÏ ÏÎÏÎÎÎÎÎÎÎ ÎÎÎÎÎ: <code>handler_id = widget.connect(\"event\", "
+"callback, data)</code>. <code>widget</code> ÎÎÎÎÎ ÎÎÎ ÏÏÎÎÎÎÏÏÏÏÎ ÏÎÏ "
+"ÎÏÎÏÎÎÎÏ ÏÏÏÏÎÏÎÎÎÏ ÏÎÏ ÎÎÎÎÎÏÏÎÎÏÎÎÎ ÎÏÏÎÏÎÏÎ. ÎÎÏÏÏÎÎ ÎÎÎÎÎÏÎÏÏÎÎÏÏÎ ÎÎÎ "
+"ÏÎ <code>event</code>. ÎÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÏÎÎ ÏÎ ÎÎÎÎ ÏÎÏ ÏÏÎÎÎÎÏÎÎÎÎÎ "
+"ÏÏÎÎÎÎÏÎ ÏÎÏ ÎÏÎÏÎÏÎ ÎÎ ÏÏÎÎÎÏÎ. ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ, ÎÎÎ ÎÏÎÏÎ ÎÎÎ Gtk.Button "
+"ÏÏÎÎÎÏÏ ÎÎÎÎÏÎ ÎÎ ÏÏÎÎÎÎÎÎÏÎ ÎÎ ÏÎ \"ÏÎÏÎÎÎÎÎ\" ÏÏÎÎÎÎ: ÎÏÏÏ ÏÎÎÎÎÎÎÎ ÏÏÎ "
+"ÏÏÎÎ ÏÎ ÎÎÏÎÏÎ ÏÎÏÎÎÏÎÎ, ÏÎ ÏÎÎÎ ÎÎÎÎÎÎÏÎÎ. ÎÎÎ ÎÎÎÎ ÏÎÏÎÎÎÎÎÎÎ ÎÎÎÎÎ ÏÎ "
+"ÏÎÎÎ <code>notify::property</code>: ÏÏÎÏÎ ÎÎÎ <link xref=\"properties.py"
+"\">ÎÎÎÏÏÎÏÎ</link> ÏÏÎÏÎÏÎÎÎÎÏÎÎ ÏÎ ÎÎÎ GObject, ÎÎÏÎ ÎÎÎ ÎÏÎÎ ÎÎÏÎÎÏÎ ÏÎÏ "
+"ÏÎÎÎÏÎÏ <code>notify</code>, ÏÎ GObject ÏÏÏÏÎÏÎÎÎÎ ÏÏ ÎÎÎ ÎÎÏÏÎÎÎÏÎÎÎ ÏÎ "
+"ÎÏÏÎ ÏÎÎ ÎÎÏÎÎÏÎ ÏÎÎÎÏÎÏ ÏÎ ÏÎÎÎÎ ÏÎÏ ÏÏÎÏÎÏÎÎÎÎÎÎÎÏ ÎÎÎÏÏÎÏÎÏ. ÎÏÏÏ "
+"ÎÏÎÏÏÎÏÎÎ ÏÏÎÏÏ ÏÎÎÎÏÎÏ ÏÎÏ ÎÏÎÎÏÎÎÏÎ ÎÎ ÎÎÎÎÏÎÎÎÎÎÏÎ ÎÎÎ ÏÎÏ ÎÎÎÎÎÎÏ ÏÎ "
+"ÎÏÎÎ ÎÎÎ ÎÎÎÏÏÎÏÎ ÎÎ ÏÎÎÏÏÎÏÎÏÎ ÏÎ ÏÎÏÎÏÏÏÏÎÏÎ ÏÏÎÎÎÎÏÎ ÏÏÎÎ ÏÎ ÎÎÏÎÎÏÎ. "
+"ÎÏÎÏÎ, ÏÎ ÏÏÎÏÎÎ ÎÏÎÎÎÎÎÎÏÎÏ ÎÎÎÎÎ ÏÎ ÏÎÎÎÎ ÏÎÏ ÏÏÎÎÏÏÎÏÎÏ ÎÏÎÎÎÎÎÎÏÎÏ, ÏÎÏ "
+"ÏÎÏÎÎÏÎÎ ÏÎÎ ÎÏÎÎÎÎ ÏÎÏ ÎÎÏÎÎÎÎÏÎÎ ÏÏÎÎ ÏÎ ÏÎÎÎÏÎ ÏÎÏ ÏÏÎÎÎÎÏÎÎÎÎÎÏ ÏÏÏÎÏ "
+"ÎÎÎÎÎÎÎÏÎÎ. ÎÎÎÎÎÎ, ÏÎ ÏÏÎÎÎÏÎÏÎÎÏ ÏÏÎÏÎÎ ÎÎÎÎÎÎÎÏÎ ÏÎÏÎÎÎÎÎÎÎÎÎ ÎÏÎÎÎÎÎÏÎÏÎ "
+"ÎÎÎÎÎÎÎÎ ÏÎÏ ÎÎ ÎÏÏÎÏÎ ÎÎ ÏÎÏÎÏÏÎÏÎ ÏÏÎÎ ÏÎ ÏÎÎÎ ÎÎÎÎÎÎÏÎÎ."
+
+#: C/signals-callbacks.py.page:38(section/p)
+msgid ""
+"The function returns a number (the <code>handler_id</code>) that identifies "
+"this particular signal-callback pair. This number is required to disconnect "
+"from a signal such that the callback function will not be called during any "
+"future or currently ongoing emissions of the signal it has been connected "
+"to, as in <code>widget.disconnect(handler_id)</code>."
+msgstr ""
+"Î ÏÏÎÎÏÏÎÏÎ ÎÏÎÏÏÏÎÏÎÎ ÎÎÎÎ ÎÏÎÎÎÏ (the <code>handler_id</code>) ÏÎÏ "
+"ÎÎÎÎÎÏÏÎÎÎÎ ÎÏÏÏ ÏÎ ÏÏÎÎÎÎÏÎÎÎÎÎ ÎÎÏÎÎÏÎ ÏÎÎÎÏÎÏ-ÎÏÎÎÎÎÎÎÏÎÏ. ÎÏÏÏÏ Î "
+"ÎÏÎÎÎÏÏ ÎÏÎÎÏÎÎÏÎÎ ÎÎÎ ÎÏÎÏÏÎÎÎÏÎ ÎÏÏ ÎÎÎ ÏÎÏÎÎÎ ÏÎÎÎ ÏÎÏ Î ÏÏÎÎÏÏÎÏÎ "
+"ÎÏÎÎÎÎÎÎÏÎÏ ÎÎÎ ÎÎ ÎÎÎÎÎÎ ÎÎÏÎ ÏÎ ÎÎÎÏÎÎÎÎ ÎÏÎÎÏÎÎÎÏÎÏÎ ÎÎÎÎÎÎÏÎÎÏÎ Î "
+"ÏÏÎÏÏÎÏÏÎ ÏÏÎÎÏÎÎÏÎÎÎÏÎ ÎÎÏÎÎÏÏÎ ÏÎÏ ÏÎÎÎÏÎÏ ÏÏÎ ÎÏÎÎÎ ÏÏÎÎÎÎÎÎÎ, ÏÏÏÏ ÏÏÎ "
+"<code>widget.disconnect(handler_id)</code>."
 
-#: C/image-viewer.js.page:64(code)
-#, no-wrap
-msgid "print (\"Hello world!\");"
-msgstr "ÎÎÏÏÏÏÏÎ (\"Hello world!\")Â"
+#: C/signals-callbacks.py.page:45(section/p)
+msgid ""
+"<link href=\"http://developer.gnome.org/gobject/stable/signal.html";
+"\">Signals</link> in GObject documentation"
+msgstr ""
+"<link href=\"http://developer.gnome.org/gobject/stable/signal.html\";>ÎÎÎÎÏÎ</"
+"link> ÏÏÎÎ ÏÎÎÎÎÏÎÏÏÎ GObject"
 
-#: C/image-viewer.js.page:65(p)
+#: C/signals-callbacks.py.page:46(section/p)
 msgid ""
-"This should look quite natural if you're familiar with almost any other "
-"programming language. The function <code>print</code> is called with the "
-"argument <code>\"Hello world!\"</code>, which will be printed on the screen. "
-"Note that each line of code ends with a semicolon."
+"<link href=\"http://python-gtk-3-tutorial.readthedocs.org/en/latest/basics.";
+"html\">Basics - Main loop and Signals</link> in Python Gtk+ 3 Tutorial"
 msgstr ""
-"ÎÏÏÏ ÎÎ ÏÎÎÎÎÏÎÎ ÎÎÏÏÎÎÎ ÏÏÏÎÎÏ, ÎÎÎ ÎÎÏÏÎ ÎÎÎÎÎÎÎÏÎÎÎÎÏ ÎÎ ÏÏÎÎÏÎ "
-"ÎÏÎÎÎÎÎÏÎÏÎ ÎÎÎÎ ÎÎÏÏÏÎ ÏÏÎÎÏÎÎÎÎÏÎÏÎÎÏ. Î ÏÏÎÎÏÏÎÏÎ <code>print</code> "
-"ÎÎÎÎÎÏÎÎ ÎÎ ÏÎ ÏÏÎÏÎÎ <code>\"Hello world!\"</code>, ÏÎÏ ÎÎ ÎÎÏÏÏÏÎÎÎ ÏÏÎÎ "
-"ÎÎÏÎÎ. ÎÎÎÎÎÏÏÏÎ ÏÏÎ ÎÎÎÎ ÎÏÎÎÎÎ ÎÏÎÎÎÎ ÏÎÎÎÎÏÎÎÎ ÎÎ ;."
+"<link href=\"http://python-gtk-3-tutorial.readthedocs.org/en/latest/basics.";
+"html\">ÎÎÏÎÎÎ - ÎÏÏÎÎÏ ÎÏÏÏÎÏ ÎÎÎ ÏÎÎÎÏÎ</link> ÏÏÎ ÎÎÎÎÎÎ Python Gtk+ 3"
 
-#: C/image-viewer.js.page:69(title)
-msgid "Classes in JavaScript"
-msgstr "ÎÎÎÏÎÎÏ ÏÏÎ JavaScript"
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/spinbutton.c.page:25(media) C/spinbutton.py.page:22(media)
+#: C/spinbutton.vala.page:23(media)
+msgctxt "_"
+msgid ""
+"external ref='media/spinbutton.png' md5='993cbb7d9bd271a329727a926195712a'"
+msgstr ""
+"external ref='media/spinbutton.png' md5='993cbb7d9bd271a329727a926195712a'"
+
+#: C/spinbutton.c.page:7(info/title)
+msgctxt "text"
+msgid "SpinButton (C)"
+msgstr "SpinButton (C)"
 
-#: C/image-viewer.js.page:70(p)
-msgid "This is the standard way to define a class in JavaScript:"
-msgstr "ÎÏÏÏÏ ÎÎÎÎÎ Î ÏÏÏÎÎÏÏ ÏÏÏÏÎÏ ÎÏÎÏÎÎÏ ÎÎÎÏ ÎÎÎÏÎÏ ÏÏÎ JavaScript:"
+#: C/spinbutton.c.page:20(info/desc)
+msgid "Retrieve an integer or floating point number"
+msgstr "ÎÎÎÎÏÎÏÎ ÎÎÎÏÎÎÎÏ Î ÎÏÎÎÎÎÏ ÎÎÎÎÏÎÏ ÏÏÎÎÎÎÏÏÎÎÎÏ"
 
-#: C/image-viewer.js.page:93(p)
-msgid ""
-"This defines a class called <code>MyClass</code>. Let's go through each part "
-"of the class definition:"
-msgstr ""
-"ÎÏÏÏ ÎÏÎÎÎÎ ÎÎÎ ÎÎÎÏÎ ÏÎÏ ÎÎÎÎÏÎÎ <code>MyClass</code>. ÎÏ ÎÎÏÎÎ ÎÎÎÎ ÏÎÎÎÎ "
-"ÏÎÏ ÎÏÎÏÎÎÏ ÏÎÏ ÎÎÎÏÎÏ:"
+#: C/spinbutton.c.page:23(page/title) C/spinbutton.js.page:23(page/title)
+#: C/spinbutton.py.page:21(page/title) C/spinbutton.vala.page:22(page/title)
+msgid "SpinButton"
+msgstr "SpinButton"
+
+#: C/spinbutton.c.page:26(page/p) C/spinbutton.py.page:23(page/p)
+#: C/spinbutton.vala.page:24(page/p)
+msgid "Choose a number, by entering it or by clicking on the -/+ buttons!"
+msgstr "ÎÏÎÎÎÎÏÎ ÎÎÎÎ ÎÏÎÎÎÏ, ÏÎÎÎÏÏÎÎÎÎÏÎÏÎÏ ÏÎÎ Î ÎÎ ÎÎÎÎ ÏÏÎ ÎÎÏÎÏÎÎ -/+!"
 
-#: C/image-viewer.js.page:96(p)
+#: C/spinbutton.c.page:28(page/code)
+#, no-wrap
 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."
+"\n"
+"#include &lt;gtk/gtk.h&gt;\n"
+"\n"
+"\n"
+"\n"
+"/* This is the callback function. \n"
+" * It is a handler function which reacts to the signal. \n"
+" * In this case, it will notify the user the value of their spinbutton \n"
+" * as a label.\n"
+" */\n"
+"static void\n"
+"spin_clicked (GtkSpinButton *spinbutton,\n"
+"              gpointer       user_data)\n"
+"{\n"
+"   GtkWidget *label = user_data;\n"
+"   gint value = gtk_spin_button_get_value_as_int (spinbutton);\n"
+"\n"
+"   /* %d - Is used when printing integers.\n"
+"    * Note: Using g_strdup_printf returns a string that must be freed. \n"
+"    * (In which is done below)\n"
+"    */\n"
+"   gchar *str = g_strdup_printf (\"The number you selected is %d.\", value);\n"
+"   gtk_label_set_text (GTK_LABEL (label), str);\n"
+"\n"
+"   g_free(str);\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"static void\n"
+"activate (GtkApplication *app,\n"
+"          gpointer        user_data)\n"
+"{\n"
+"  /* Declare variables */\n"
+"  GtkWidget *window;\n"
+"  GtkWidget *label;\n"
+"  GtkWidget *grid;\n"
+"  GtkWidget *spin_button;\n"
+"  GtkAdjustment *adjustment;\n"
+"\n"
+"\n"
+"  /* Create a window with a title, a border width, and a default size */\n"
+"  window = gtk_application_window_new (app);\n"
+"  gtk_window_set_title (GTK_WINDOW (window), \"SpinButton Example\");\n"
+"  gtk_window_set_default_size (GTK_WINDOW (window), 210, 70);\n"
+"  gtk_container_set_border_width (GTK_CONTAINER (window), 5);\n"
+"\n"
+"  /* Create a label to be shown in the window */\n"
+"  label = gtk_label_new (\"Choose a number\");\n"
+"\n"
+"  /* Create an adjustment representing an adjustable bounded value */\n"
+"  adjustment = gtk_adjustment_new (0, 0, 100, 1, 0, 0);\n"
+"\n"
+"\n"
+"  /* Create a spin button that is to be as wide as possible */\n"
+"  spin_button = gtk_spin_button_new (adjustment, 1, 0);\n"
+"  gtk_widget_set_hexpand (spin_button, TRUE);\n"
+"  \n"
+"  /* Connecting the \"value-changed\" signal for the spinbutton \n"
+"   * to the appropriate callback function. \n"
+"   */\n"
+"  g_signal_connect (spin_button, \n"
+"                    \"value-changed\", \n"
+"                    G_CALLBACK (spin_clicked), \n"
+"                    label);\n"
+"\n"
+"\n"
+"  /* Create a grid and arrange everything accordingly */\n"
+"  grid = gtk_grid_new ();\n"
+"  gtk_grid_set_column_spacing (GTK_GRID (grid), 10);\n"
+"  gtk_grid_set_column_homogeneous (GTK_GRID (grid), TRUE);\n"
+"  gtk_grid_attach (GTK_GRID (grid), spin_button, 0, 0, 1, 1);\n"
+"  gtk_grid_attach (GTK_GRID (grid), label, 0, 1, 1, 1);\n"
+"  \n"
+"\n"
+"  gtk_container_add (GTK_CONTAINER (window), grid);\n"
+"\n"
+"  gtk_widget_show_all (window);\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"int\n"
+"main (int argc, char **argv)\n"
+"{\n"
+"  GtkApplication *app;\n"
+"  int status;\n"
+"\n"
+"  app = gtk_application_new (\"org.gtk.example\", G_APPLICATION_FLAGS_NONE);\n"
+"  g_signal_connect (app, \"activate\", G_CALLBACK (activate), NULL);\n"
+"  status = g_application_run (G_APPLICATION (app), argc, argv);\n"
+"  g_object_unref (app);\n"
+"\n"
+"  return status;\n"
+"}\n"
 msgstr ""
-"<code>function MyClass</code> ÎÎÎÎÎ Î ÎÎÏÎÏÎÎÏÎÏÏÎÏ ÏÎÏ ÎÎÎÏÎÏ â ÏÎ ÏÎÎÎÎ "
-"ÏÎÏ ÏÏÎÏÎÎ ÎÎ ÏÎÎÏÎÎÎÎÎ ÎÎ ÏÎ ÏÎÎÎÎ ÏÎÏ ÎÎÎÏÎÏ. ÎÏÎÏÎÎÏÎ ÎÎ ÏÏÎÏÏÎÎÎÏÎÏÎ "
-"ÎÏÎÎÎÎÎÏÎÏÎ ÎÎÎÎÏ ÏÎÏ ÎÎÎÏÎÏ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ ÎÎÏÎÎÎÎÎÎÎÎ <code>this</"
-"code>Â ÎÎÏ, Î ÎÎÏÎÏÎÎÏÎÏÏÎÏ ÎÎÎÎÎ ÏÎ ÎÎÎÎÎÎ ÏÎÏ ÎÎÎÏÎÏ <code>_init</code>."
+"\n"
+"#include &lt;gtk/gtk.h&gt;\n"
+"\n"
+"\n"
+"\n"
+"/* This is the callback function. \n"
+" * It is a handler function which reacts to the signal. \n"
+" * In this case, it will notify the user the value of their spinbutton \n"
+" * as a label.\n"
+" */\n"
+"static void\n"
+"spin_clicked (GtkSpinButton *spinbutton,\n"
+"              gpointer       user_data)\n"
+"{\n"
+"   GtkWidget *label = user_data;\n"
+"   gint value = gtk_spin_button_get_value_as_int (spinbutton);\n"
+"\n"
+"   /* %d - Is used when printing integers.\n"
+"    * Note: Using g_strdup_printf returns a string that must be freed. \n"
+"    * (In which is done below)\n"
+"    */\n"
+"   gchar *str = g_strdup_printf (\"The number you selected is %d.\", value);\n"
+"   gtk_label_set_text (GTK_LABEL (label), str);\n"
+"\n"
+"   g_free(str);\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"static void\n"
+"activate (GtkApplication *app,\n"
+"          gpointer        user_data)\n"
+"{\n"
+"  /* Declare variables */\n"
+"  GtkWidget *window;\n"
+"  GtkWidget *label;\n"
+"  GtkWidget *grid;\n"
+"  GtkWidget *spin_button;\n"
+"  GtkAdjustment *adjustment;\n"
+"\n"
+"\n"
+"  /* Create a window with a title, a border width, and a default size */\n"
+"  window = gtk_application_window_new (app);\n"
+"  gtk_window_set_title (GTK_WINDOW (window), \"SpinButton Example\");\n"
+"  gtk_window_set_default_size (GTK_WINDOW (window), 210, 70);\n"
+"  gtk_container_set_border_width (GTK_CONTAINER (window), 5);\n"
+"\n"
+"  /* Create a label to be shown in the window */\n"
+"  label = gtk_label_new (\"Choose a number\");\n"
+"\n"
+"  /* Create an adjustment representing an adjustable bounded value */\n"
+"  adjustment = gtk_adjustment_new (0, 0, 100, 1, 0, 0);\n"
+"\n"
+"\n"
+"  /* Create a spin button that is to be as wide as possible */\n"
+"  spin_button = gtk_spin_button_new (adjustment, 1, 0);\n"
+"  gtk_widget_set_hexpand (spin_button, TRUE);\n"
+"  \n"
+"  /* Connecting the \"value-changed\" signal for the spinbutton \n"
+"   * to the appropriate callback function. \n"
+"   */\n"
+"  g_signal_connect (spin_button, \n"
+"                    \"value-changed\", \n"
+"                    G_CALLBACK (spin_clicked), \n"
+"                    label);\n"
+"\n"
+"\n"
+"  /* Create a grid and arrange everything accordingly */\n"
+"  grid = gtk_grid_new ();\n"
+"  gtk_grid_set_column_spacing (GTK_GRID (grid), 10);\n"
+"  gtk_grid_set_column_homogeneous (GTK_GRID (grid), TRUE);\n"
+"  gtk_grid_attach (GTK_GRID (grid), spin_button, 0, 0, 1, 1);\n"
+"  gtk_grid_attach (GTK_GRID (grid), label, 0, 1, 1, 1);\n"
+"  \n"
+"\n"
+"  gtk_container_add (GTK_CONTAINER (window), grid);\n"
+"\n"
+"  gtk_widget_show_all (window);\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"int\n"
+"main (int argc, char **argv)\n"
+"{\n"
+"  GtkApplication *app;\n"
+"  int status;\n"
+"\n"
+"  app = gtk_application_new (\"org.gtk.example\", G_APPLICATION_FLAGS_NONE);\n"
+"  g_signal_connect (app, \"activate\", G_CALLBACK (activate), NULL);\n"
+"  status = g_application_run (G_APPLICATION (app), argc, argv);\n"
+"  g_object_unref (app);\n"
+"\n"
+"  return status;\n"
+"}\n"
 
-#: C/image-viewer.js.page:99(p)
+#: C/spinbutton.c.page:36(item/p)
 msgid ""
-"The <code>MyClass.prototype</code> block is where you define the "
-"<em>structure</em> of the class. Each class is made up of methods "
-"(functions) and fields (variables); there are three methods and two fields "
-"in this example."
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkSpinButton.html";
+"\">GtkSpinButton</link>"
 msgstr ""
-"Î ÎÎÎÎÎ <code>MyClass.prototype</code> ÎÎÎÎÎ ÎÎÎÎ ÏÎÏ ÎÏÎÎÎÏÎ ÏÎ <em>ÎÎÎÎ</"
-"em> ÏÎÏ ÎÎÎÏÎÏ. ÎÎÎÎ ÎÎÎÏÎ ÎÏÎÏÎÎÎÎÏÎÎ ÎÏÏ ÎÎÎÏÎÎÏÏ (ÏÏÎÎÏÏÎÏÎÎÏ) ÎÎÎ ÏÎÎÎÎ "
-"(ÎÎÏÎÎÎÎÏÎÏ)Â ÏÏÎÏÏÎÏÎ ÏÏÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÏÎ ÏÎÎÎÎ ÏÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ."
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkSpinButton.html";
+"\">GtkSpinButton</link>"
 
-#: C/image-viewer.js.page:102(p)
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/spinbutton.js.page:24(media)
+msgctxt "_"
 msgid ""
-"The first method defined here is called <code>_init</code>, and we specify "
-"that it is a function with no arguments:"
+"external ref='media/spinbuttonkittens.png' "
+"md5='577cce8a902140aacbab73fe8a76a010'"
 msgstr ""
-"Î ÏÏÏÏÎ ÎÎÎÎÎÎÏ ÏÎÏ ÎÎÎÎÏÎÏÏÎÎÎ ÎÎÏ ÎÎÎÎÏÎÎ <code>_init</code> ÎÎÎ "
-"ÎÎÎÎÏÎÎÎÏÎÎ ÏÏÎ ÎÎÎÎÎ ÎÎÎ ÏÏÎÎÏÏÎÏÎ ÏÏÏÎÏ ÎÏÎÏÎÎÏÎ:"
+"external ref='media/spinbuttonkittens.png' "
+"md5='577cce8a902140aacbab73fe8a76a010'"
 
-#: C/image-viewer.js.page:103(code)
-#, no-wrap
-msgid "_init: function ()"
-msgstr "_init: function ()"
+#: C/spinbutton.js.page:7(info/title)
+msgctxt "text"
+msgid "SpinButton (JavaScript)"
+msgstr "SpinButton (JavaScript)"
 
-#: C/image-viewer.js.page:104(p)
-msgid ""
-"We write the function inside some curly braces. Two fields are defined here, "
-"<code>propertyA</code> and <code>propertyB</code>. The first is set to a "
-"string and the second is set to an integer (10). The function doesn't return "
-"any value."
-msgstr ""
-"ÎÏÎÏÎÏÎÎ ÏÎ ÏÏÎÎÏÏÎÏÎ ÎÎÏÎ ÏÎ ÎÎÏÎÎÎÏ ÎÎÎÏÎÎÏ. ÎÏÎ ÏÎÎÎÎ ÎÏÎÎÎÎÏÎÎ ÎÎÏ, "
-"<code>propertyA</code> ÎÎÎ <code>propertyB</code>. ÎÎ ÏÏÏÏÎ ÎÏÎÎÎÏÎÎ ÏÎ ÎÎÎ "
-"ÏÏÎÎÎÎÎÏÎÎÏÎ ÎÎÎ ÏÎ ÎÎÏÏÎÏÎ ÎÏÎÎÎÏÎÎ ÏÎ ÎÎÎÎ ÎÎÎÏÎÎÎ (10). Î ÏÏÎÎÏÏÎÏÎ ÎÎÎ "
-"ÎÏÎÏÏÏÎÏÎÎ ÎÎÎÎÎ ÏÎÎÎ."
+#: C/spinbutton.js.page:20(info/desc)
+msgid "A number entry field that has + and - buttons"
+msgstr "ÎÎÎ ÏÎÎÎÎ ÎÎÏÎÏÏÏÎÏÎÏ ÎÏÎÎÎÎÏ ÏÎÏ ÎÏÎÎ ÏÎ ÎÎÏÎÏÎÎ + ÎÎÎ -"
 
-#: C/image-viewer.js.page:107(p)
+#: C/spinbutton.js.page:25(page/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>."
+"A SpinButton is not related to a <link xref=\"spinner.js\">Spinner</link>. "
+"It's a text entry field which only accepts numbers, and which has plus and "
+"minus buttons to let you change the value without having to type anything in."
 msgstr ""
-"Î ÎÏÏÎÎÎÎ ÎÎÎÎÎÎÏ ÎÎÎÎÏÎÎ <code>aMethod</code> ÎÎÎ ÎÏÎÎ ÎÏÎ ÎÏÎÏÎÎÏÎ, ÏÎÏ "
-"ÎÎÏÏÏÏÎÎÏÎÎ ÏÏÎÎ ÏÎÎ ÎÎÎÎÎÏÎ. Î ÏÎÎÎÎÎ ÎÎÎÎÎÎÏ ÎÎÎÎÎ <code>dumpProperties</"
-"code> ÎÎÎ ÏÏÏÏÎÎÎ ÏÎ ÏÎÎÎÎ <code>propertyA</code> ÎÎÎ <code>propertyB</code>."
+"ÎÎÎ SpinButton ÎÎÎ ÏÏÎÏÎÎÎÏÎÎ ÎÎ ÎÎÎÎ <link xref=\"spinner.js\">Spinner</"
+"link>. ÎÎÎÎÎ ÎÎÎ ÏÎÎÎÎ ÎÎÏÎÎÏÎÎÏ ÎÎÎÎÎÎÎÏ ÏÎÏ ÎÎÏÎÏÎÎ ÎÏÎÎ ÎÏÎÎÎÎÏÏ ÎÎÎ ÎÎ "
+"ÎÏÎÎÎÎ ÎÏÎÏÎ ÎÎÏÎÏÎÎ ÏÏÎ ÎÎÎ ÏÎÎÎ ÎÎÎ ÎÎ ÏÎÏ ÎÏÎÏÏÎÏÎÏÎ ÏÎÎ ÎÎÎÎÎÎ ÏÎÏ ÏÎÎÎÏ "
+"ÏÏÏÎÏ ÎÎ ÏÏÎÏÎÎ ÎÎ ÏÎÎÎÏÏÎÎÎÎÎÏÎÏÎ ÎÎÏÎ."
 
-#: C/image-viewer.js.page:110(p)
+#: C/spinbutton.js.page:26(page/p)
 msgid ""
-"Note how the class definition (prototype) is arranged; each function "
-"definition is separated by a comma."
+"It's best used when it's obvious that only a number can be entered into it. "
+"In this example, two SpinButtons are used for the number of kittens and "
+"number of cans of tuna to give them."
 msgstr ""
-"ÎÎÎÎÎÏÏÏÎ ÏÏÏ ÏÎÎÏÎÏÎÎÎÎÏÎÎ Î ÎÏÎÏÎÏÏ ÎÎÎÏÎÏ (ÏÏÏÏÏÏÏÏÎ)Â ÎÎÎÎ ÎÏÎÏÎÏÏ "
-"ÏÏÎÎÏÏÎÏÎÏ ÎÎÏÏÏÎÎÎÏÎÎ ÎÎ ÎÏÎÎÎ."
-
-#: C/image-viewer.js.page:114(p)
-msgid "Now that MyClass has been defined, we can play with it:"
-msgstr "ÎÏÏÎ ÏÎÏ Î MyClass ÎÏÎÏÏÎÎÎ, ÎÏÎÏÎÏÎÎ ÎÎ ÏÎÎÎÎÏÎÎ ÎÎÎÎ ÏÎÏ:"
+"ÎÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÎÏÎÏÏÎ ÏÏÎÎ ÎÎÎÎÎ ÏÎÎÎÏÏ ÏÏÎ ÎÏÎÎ ÎÎÎÏ ÎÏÎÎÎÏÏ ÎÏÎÏÎÎ ÎÎ "
+"ÎÏÎÎ ÏÎ ÎÏÏÏ. ÎÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ, ÎÏÎ SpinButtons ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÎÎ "
+"ÏÎÎ ÎÏÎÎÎÏ ÎÏÏ ÎÎÏÎÎÎÎ ÎÎÎ ÏÎÎ ÎÏÎÎÎÏ ÏÏÎ ÎÎÎÏÎÏÎÏÎ ÏÏÎÎÎÏ ÏÎÏ ÏÎÏÏ ÎÎÎÎÎÏÎÎ."
 
-#: C/image-viewer.js.page:120(p)
+#: C/spinbutton.js.page:43(section/code)
+#, no-wrap
 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)."
+"\n"
+"const SpinButtonExample = new Lang.Class({\n"
+"    Name: 'SpinButton Example',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application({\n"
+"            application_id: 'org.example.jsspinbutton'\n"
+"        });\n"
+"\n"
+"    // Connect 'activate' and 'startup' signals to the callback functions\n"
+"    this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"    this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents window when active\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function() {\n"
+"        this._buildUI ();\n"
+"    },\n"
 msgstr ""
-"ÎÏÏÏÏ Î ÎÏÎÎÎÎÏ ÎÎÎÎÎÏÏÎÎÎ ÎÎÎ ÎÎÎ ÏÏÎÎÎÎÏÏÏÏÎ ÏÎÏ ÎÎÎÏÎÏ ÏÎÏ ÎÎÎÎÏÎÎ "
-"<code>o</code>, ÏÏÎÏÎÎ ÏÎ <code>aMethod</code>, ÎÎÎÎÎÎÎ ÏÎÎ <code>propertyA</"
-"code> ÏÎ ÎÎÎÏÎÏÎÏÎÎÎ ÏÏÎÎÎÎÎÏÎÎÏÎ ÎÎÎ ÎÏÎÎÏÎ ÎÎÎÎÎ <code>dumpProperties</"
-"code> (ÏÎÏ ÎÎÎÎÎÎ ÏÎ ÏÎÎÎÎ)."
+"\n"
+"const SpinButtonExample = new Lang.Class({\n"
+"    Name: 'SpinButton Example',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application({\n"
+"            application_id: 'org.example.jsspinbutton'\n"
+"        });\n"
+"\n"
+"    // Connect 'activate' and 'startup' signals to the callback functions\n"
+"    this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"    this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents window when active\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function() {\n"
+"        this._buildUI ();\n"
+"    },\n"
 
-#: C/image-viewer.js.page:121(p)
+#: C/spinbutton.js.page:68(section/p)
 msgid ""
-"Save the code in the <file>main.js</file> and then run it by using "
-"<guiseq><gui>Run</gui><gui>Execute</gui></guiseq> from the menu or using the "
-"toolbar."
+"All the code for this sample goes in the SpinButtonExample class. The above "
+"code creates a <link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/";
+"Gtk.Application.html\">Gtk.Application</link> for our widgets and window to "
+"go in."
 msgstr ""
-"ÎÏÎÎÎÎÎÏÏÏÎ ÏÎÎ ÎÏÎÎÎÎ ÏÏÎ <file>main.js</file> ÎÎÎ ÎÏÎÎÏÎ ÏÏÎÎÏÎ ÏÎÎ "
-"ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ <guiseq><gui>ÏÏÎÎÎÎÎ</gui><gui>ÎÎÏÎÎÎÏÎ</gui></guiseq> ÎÏÏ "
-"ÏÎ ÎÎÎÎÏ Î ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎÎ ÎÏÎÎÎÎÎÎÎÎÎÎ."
-
-#: C/image-viewer.js.page:127(p)
-msgid "Let's see what a very basic Gtk application looks like in JavaScript:"
-msgstr "ÎÎÎ ÎÎ ÎÎÏÎÎ ÏÏÏ ÎÎÎ ÏÎÎÏ ÎÎÏÎÎÎ ÎÏÎÏÎÎÎÎ Gtk ÏÎÎÎÎÏÎÎ ÏÎ JavaScript:"
+"ÎÎÎÏ Î ÎÏÎÎÎÎÏ ÎÎÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÏÎÎÎÎÎÎÎ ÏÏÎÎ ÎÎÎÏÎ SpinButtonExample. "
+"Î ÏÎÏÎÏÎÎÏ ÎÏÎÎÎÎÏ ÎÎÎÎÎÏÏÎÎÎ ÎÎÎ <link href=\"http://www.roojs.com/seed/";
+"gir-1.2-gtk-3.0/gjs/Gtk.Application.html\">Gtk.Application</link> ÎÎÎ ÎÎ "
+"ÎÏÎÏÎ ÎÎÏÎ ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÏ ÎÎÎ ÏÎ ÏÎÏÎÎÏÏÎ."
 
-#: C/image-viewer.js.page:143(p)
+#: C/spinbutton.js.page:69(section/code)
+#, no-wrap
 msgid ""
-"<code>Gtk.init</code> initializes the Gtk library; this statement is "
-"mandatory for all Gtk programs."
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function() {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            border_width: 20,\n"
+"            title: \"Kitten Feeder\"});\n"
 msgstr ""
-"ÎÎ <code>Gtk.init</code> ÎÏÏÎÎÎÏÎÎÎÎ ÏÎ ÎÎÎÎÎÎÎÎÎÎ Gtk ÎÏÏÎ Î ÏÏÏÏÎÏÎ ÎÎÎÎÎ "
-"ÏÏÎÏÏÎÏÏÎÎÎ ÎÎÎ ÏÎÎ ÏÎ ÏÏÎÎÏÎÎÎÎÏÎ Gtk."
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function() {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            border_width: 20,\n"
+"            title: \"Kitten Feeder\"});\n"
+
+#: C/spinbutton.js.page:84(section/title)
+msgid "Creating the SpinButtons"
+msgstr "ÎÎÎÎÎÏÏÎÎÎ ÏÏÎ SpinButtons"
 
-#: C/image-viewer.js.page:146(p)
+#: C/spinbutton.js.page:85(section/code)
+#, no-wrap
 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."
+"\n"
+"        // Create the first spinbutton using a function\n"
+"        this._kittens = Gtk.SpinButton.new_with_range (1, 9001, 1);\n"
+"        this._kittens.connect (\"value-changed\", Lang.bind (this, this._newValue));\n"
 msgstr ""
-"Î ÎÏÏÎÎÎÎ ÎÏÎÎÎÎ ÎÎÎÎÎÏÏÎÎÎ ÏÎ ÎÏÏÎÎ ÏÎÏÎÎÏÏÎ ÎÎÎÎÎÏÏÎÏÎÏÎÏ ÎÎÎ ÎÎÎ "
-"ÎÎÏÎÎÎÎÎÎÎÎ <code>Gtk.Window</code>. ÎÏÎÏÎÎÏÎ ÎÎ ÏÎÏÎÏÎÏÎ ÎÏÎÎÏÎÏ ÎÎÎÏÏÎÏÎÏ "
-"ÏÏÎÎ ÎÎÏÎÏÎÎÏÎÏÏÎ ÏÎÏÎÎÏÏÎÏ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ ÏÏÎÏÎÎÎ <code>{property: "
-"value, property: value, ...}</code>. ÎÎ ÎÏÏÎÎ ÏÎÎ ÏÎÏÎÏÏÏÏÎ ÎÏÎÎÎÏÎÎ ÏÎÎ "
-"ÏÎÏÎÎ ÏÎÏ ÏÎÏÎÎÏÏÎÏ."
+"\n"
+"        // Create the first spinbutton using a function\n"
+"        this._kittens = Gtk.SpinButton.new_with_range (1, 9001, 1);\n"
+"        this._kittens.connect (\"value-changed\", Lang.bind (this, this._newValue));\n"
 
-#: C/image-viewer.js.page:147(p)
+#: C/spinbutton.js.page:91(section/p)
 msgid ""
-"The next line explicitly shows the window. In Gtk, every widget is hidden by "
-"default."
+"We can use the new_with_range function to create a new SpinButton quickly. "
+"Its first parameter is the SpinButton's starting value, its second is the "
+"maximum value, and its third is how much to increment it when the plus or "
+"minus buttons are pressed."
 msgstr ""
-"Î ÎÏÏÎÎÎÎ ÎÏÎÎÎÎ ÏÎÏÎ ÎÎÏÎÎÎÎÎÎ ÏÎ ÏÎÏÎÎÏÏÎ. ÎÏÎ Gtk, ÎÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ "
-"ÎÏÏÎÎÏÎÎ ÎÏÏ ÏÏÎÎÏÎÎÎÎÎ."
+"ÎÏÎÏÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÏÎ ÏÏÎÎÏÏÎÏÎ new_with_range ÎÎÎ ÏÎ ÎÎÎÎÎÏÏÎÎÎ "
+"ÎÎÏÏ ÎÎÎÏ SpinButton ÎÏÎÎÎÏÎ. Î ÏÏÏÏÎ ÏÎÏ ÏÎÏÎÎÎÏÏÎÏ ÎÎÎÎÎ Î ÎÏÏÎÎÎ ÏÎÎÎ ÏÎÏ "
+"SpinButton, Î ÎÎÏÏÎÏÎ ÏÎÏ ÎÎÎÎÎ Î ÎÎÎÎÏÏÎ ÏÎÎÎ ÎÎÎ Î ÏÏÎÏÎ ÏÎÏ ÎÎÎÎÎ ÏÏÏÎ ÎÎ "
+"ÎÏÎÎÎÎÎ ÏÏÎÎ ÏÎÏÎÎÏÎÏÎÎ ÏÎ ÎÎÏÎÏÎÎ ÏÏÎ ÎÎÎ ÏÎÎÎ."
 
-#: C/image-viewer.js.page:148(p)
+#: C/spinbutton.js.page:92(section/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."
+"After we create the first SpinButton, we connect its value-changed signal to "
+"a function which handles what happens when the number inside either "
+"SpinButton changes."
 msgstr ""
-"ÎÎÎÎÎÎ, ÏÎ <code>Gtk.main</code> ÏÏÎÏÎÎ ÏÎÎ ÎÏÏÎÎ ÎÏÏÏÎ â ÎÎ ÎÎÎÎ ÎÏÎÎÎ, "
-"ÎÎÏÎÎÎÎ ÏÎ ÏÏÏÎÏÎÎÎÎ. Î ÎÏÏÎÎÏ ÎÏÏÏÎÏ ÎÏÎÎÏÎ ÏÎ ÏÏÎÎÎÎÏÎ (ÏÎÎÎÏÎ) ÎÏÏ ÏÎ "
-"ÎÎÎÏÎÏÎ ÏÏÎÏÏÎ ÎÎÎ ÎÏÎÎÏÎ ÎÎÎÎÎ ÎÎÎÎ ÏÎÎÏÎÏÏÎ ÏÎÎÎÏÎÏ ÏÎÏ ÎÎ ÎÎÎÎÎ ÎÎÏÎ "
-"ÏÏÎÏÎÎÎ. ÎÎ ÎÎÎÎÏÎÎ ÏÎÏÎÏÏÏÏÎÏÎ ÎÎÎ ÏÎ ÏÎÎÎÏÎ ÏÏÎÏÎÎÎ."
+"ÎÏÎÏ ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ ÏÎ ÏÏÏÏÎ SpinButton, ÏÏÎÎÎÎÏÎÎ ÏÎ ÏÎÎÎ ÏÎÏ ÎÎÎÎÎÎÎÎÎÏ "
+"ÏÎÎÎÏ ÏÎ ÎÎÎ ÏÏÎÎÏÏÎÏÎ ÏÎÏ ÏÎÎÏÎÎÎÏÎÎ ÏÎ ÏÏÎÎÎÎÎÎÎ ÏÏÎÎ Î ÎÏÎÎÎÏÏ ÎÎÏÎ ÏÏÎ "
+"SpinButton ÎÎÎÎÎÎÎ."
 
-#: C/image-viewer.js.page:151(p)
+#: C/spinbutton.js.page:94(section/code)
+#, no-wrap
 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."
+"\n"
+"        // Create an adjustment to use for the second spinbutton\n"
+"        this._adjustment = new Gtk.Adjustment ({\n"
+"            value: 1,\n"
+"            lower: 0,\n"
+"            upper: 9001,\n"
+"            step_increment: 1,\n"
+"            page_increment: 10 });\n"
+"\n"
+"        // Create the second spinbutton\n"
+"        this._tuna = new Gtk.SpinButton ({ adjustment: this._adjustment });\n"
+"        this._tuna.connect (\"value-changed\", Lang.bind (this, this._newValue));\n"
+"\n"
+"        // this._tuna.set_digits (1);\n"
+"        // this._tuna.set_wrap (true);\n"
 msgstr ""
-"ÎÏÎÎÎÎÎÏÏÎ ÏÎÏ ÎÏÎÎÎÎ ÏÏÎ <file>main.js</file> ÎÎÎ ÎÎÏÎÎÎÏÎ ÏÎÏ. ÎÎ "
-"ÏÎÎÎÎÏÏÎÏÎ ÏÏÎ Î ÎÏÎÏÎÎÎÎ ÎÎÎ ÎÎÎÎÏÎÎÎÎÏÎÎ ÏÏÎÎ ÎÎÎÎÎÎÏÎ ÏÎ ÏÎÏÎÎÏÏÎ. ÎÏÏÏ "
-"ÏÏÎÎÎÎÎÎÎ ÎÏÎÎÎÎ ÎÎÎ ÎÎÎÎÏÎÏÏÎÏÎÎÎ ÎÎÎÎ ÏÎÎÏÎÏÏÎ ÏÎÎÎÏÎÏ ÎÎÎ ÎÏÏÎÎÎÎÎÎ ÎÎ ÏÎ "
-"ÏÎÎÎ ÏÎÏ ÏÎÏÎÎÏÏÎÏ <code>destroy</code> (ÎÎÎÎÏÎÎÎ) ÎÎÏÎÎ. ÎÎ ÏÎ ÎÎÎÎÏÎÎ "
-"ÏÏÎÏÎÎÎ, ÎÎÎÎ ÎÎÎ ÏÏÏÎ ÎÏÎÏÎÎÏÎ ÎÏÎÎ ÎÎ ÏÎÏÎÏÎÏÎ <keyseq><key>Ctrl</"
-"key><key>C</key></keyseq> ÏÏÎ ÏÎÏÎÎÏÏÎ ÏÎÏÎÎÏÎÎÎÏ ÎÎÎ ÎÎ ÎÏÎÏÎÏÎ ÏÎ "
-"ÏÏÏÎÏÎÎÎÎ."
-
-#: C/image-viewer.js.page:156(title)
-msgid "Adding classes"
-msgstr "ÎÏÎÏÎÎÎÎ ÎÎÎÏÎÏÎ"
+"\n"
+"        // Create an adjustment to use for the second spinbutton\n"
+"        this._adjustment = new Gtk.Adjustment ({\n"
+"            value: 1,\n"
+"            lower: 0,\n"
+"            upper: 9001,\n"
+"            step_increment: 1,\n"
+"            page_increment: 10 });\n"
+"\n"
+"        // Create the second spinbutton\n"
+"        this._tuna = new Gtk.SpinButton ({ adjustment: this._adjustment });\n"
+"        this._tuna.connect (\"value-changed\", Lang.bind (this, this._newValue));\n"
+"\n"
+"        // this._tuna.set_digits (1);\n"
+"        // this._tuna.set_wrap (true);\n"
 
-#: C/image-viewer.js.page:157(p)
+#: C/spinbutton.js.page:111(section/p)
 msgid ""
-"The proper way of doing Gtk programming is by using classes. Let's rewrite "
-"the simple code you just wrote using classes:"
+"If you want more fine-grained control over a SpinButton, or want to create a "
+"bunch of SpinButtons which all use the same parameters, you can create an "
+"object called an <link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/";
+"Gtk.Adjustment.html\">Adjustment</link>. Then you can use that object as a "
+"new SpinButton's adjustment property, and it sets all the values at once. "
+"Afterwards, you can change all the SpinButtons which use that adjustment by "
+"changing the Adjustment object's properties."
 msgstr ""
-"Î ÎÎÏÎÎÎÎÎÎÏ ÏÏÏÏÎÏ ÎÎÎ ÎÎ ÎÎÎÎÎ ÏÏÎÎÏÎÎÎÎÏÎÏÎÏÏ Gtk ÎÎÎÎÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ "
-"ÎÎÎÏÎÎÏ. ÎÏ ÎÎÎÎÎÏÎÏÎÏÎÎ ÏÎÎ ÎÏÎÏ ÎÏÎÎÎÎ ÏÎÏ ÎÏÎÎÏ ÎÏÎÏÎÏÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ "
-"ÎÎÎÏÎÎÏ:"
+"ÎÎÎ ÎÎÎÎÏÎ ÏÎÏÎÏÏÏÏÎÏÎ ÎÎÏÏÎÎÎÏÎ ÎÎÎÎÏÎ ÏÎ ÎÎÎ SpinButton, Î ÎÎÎÎÏÎ ÎÎ "
+"ÎÎÎÎÎÏÏÎÎÏÎÏÎ ÎÎÎ ÎÎÎÎÎ SpinButtons ÏÎÏ ÏÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎ ÏÎÏ ÎÎÎÎÏ "
+"ÏÎÏÎÎÎÏÏÎÏÏ, ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎ ÎÎÎ ÎÎÏÎÎÎÎÎÎÎÎ ÏÎÏ ÎÎÎÎÏÎÎ <link "
+"href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.Adjustment.html";
+"\">Adjustment</link>. ÎÏÎÎÏÎ ÎÏÎÏÎÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÎÏÏÏ ÏÎ ÎÎÏÎÎÎÎÎÎÎÎ "
+"ÏÏ ÎÎÎ ÎÎÎ ÎÎÎÏÏÎÏÎ ÏÏÎÎÎÏÎÏ ÏÎÏ SpinButton ÎÎÎ ÎÏÎÎÎÎ ÏÎÎÏ ÏÎÏ ÏÎÎÎÏ "
+"ÎÎÎÎÎÎÎÏ. ÎÎÏÏÏÎÎ, ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÎÎÎÏÎ ÏÎÎ ÏÎ SpinButtons ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÏÎ "
+"ÎÏÏÎÎ ÏÎ ÏÏÎÎÎÏÎ ÎÎÎÎÎÎÎÏÎÏ ÏÎÏ ÎÎÎÏÏÎÏÎÏ ÏÎÏ ÎÎÏÎÎÎÎÎÎÎÎÏ ÏÏÎÎÎÏÎÏ."
 
-#. FIXME: Throws an error, "JS ERROR: !!!   Unhandled type int32 releasing GArgument" on Ubuntu 10.10
-#: C/image-viewer.js.page:176(p)
+#: C/spinbutton.js.page:112(section/p)
 msgid ""
-"Notice that the program is the same; we just moved the window creation code "
-"to our own <code>ImageViewer</code> class. The class's constructor calls the "
-"<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>)."
+"The commented-out lines here show things you can do to customize your "
+"SpinButton. You can set the number of digits which go after the decimal "
+"point, for example, or tell it to wrap the number around if it goes past the "
+"upper or lower bounds that you set."
 msgstr ""
-"ÏÎÎÎÎÏÏÏÎ ÏÏÎ ÏÎ ÏÏÏÎÏÎÎÎÎ ÎÎÎÎÎ ÏÎ ÎÎÎÎÂ ÎÏÎÎÏ ÎÎÏÎÎÎÎÎÏÎÎÎ ÏÎÎ ÎÏÎÎÎÎ "
-"ÎÎÎÎÎÏÏÎÎÎÏ ÏÎÏÎÎÏÏÎÏ ÏÏÎ ÎÎÎÎ ÎÎÏ ÎÎÎÏÎ <code>ImageViewer</code>. Î "
-"ÎÎÏÎÏÎÎÏÎÏÏÎÏ ÎÎÎÏÎÏ ÎÎÎÎÎ ÏÎ ÎÎÎÎÎÎ <code>_init</code>, ÏÎÏ ÎÎÎÎÎÏÏÎÎÎ ÎÎÎ "
-"ÎÎÏÎÎÎÎÎÎ ÏÎ ÏÎÏÎÎÏÏÎ. ÎÏÎÎÏÎ ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ ÏÏÎÎÎÎÏÏÏÏÎ ÏÎÏ ÎÎÎÏÎÏ ÏÏÎÎ "
-"ÏÎ ÏÏÎÎÎÎÎ ÏÎÏ ÎÏÏÎÎÏ ÎÏÏÏÎÏ (<code>Gtk.main</code>)."
+"ÎÎ ÏÏÎÎÎÎÏÎÎÎÎÏ ÎÏÎÎÎÎÏ ÎÎÏ ÎÎÏÎÎÎÎÎÏÎ ÏÏÎÎÎÎÏÎ ÏÎÏ ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÎÏÎ ÎÎÎ "
+"ÏÏÎÏÎÏÎÎÎÎ ÏÎÏ SpinButton ÏÎÏ. ÎÏÎÏÎÎÏÎ ÎÎ ÎÏÎÏÎÏÎ ÏÎÎ ÎÏÎÎÎÏ ÏÏÎ ÏÎÏÎÏÎ "
+"ÎÎÏÎ ÏÎÎ ÎÎÎÎÎÎÎÎ ÏÏÎÎÎÎÏÏÎÎÎ, ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ, Î ÎÎ ÏÎÏ ÏÎÎÏÎ ÎÎ ÎÎÎÎÎÏÎÏÏÎÎ "
+"ÏÎÎ ÎÏÎÎÎÏ ÎÎÎ ÎÎÏÎÏÎÏÎÎ ÏÎ ÎÎÏ Î ÎÎÏÏ ÏÏÎÎ ÏÎÏ ÎÏÎÏÎÏÎ."
 
-#: C/image-viewer.js.page:177(p)
+#: C/spinbutton.js.page:113(note/p)
 msgid ""
-"This code is modular and can be split into multiple files easily. This makes "
-"it cleaner and easier to read."
+"For the kitties' sake, please don't use set_digits to allow a decimal number "
+"of kittens."
 msgstr ""
-"ÎÏÏÏÏ Î ÎÏÎÎÎÎÏ ÎÎÎÎÎ ÎÏÎÏÏÏÏÏ ÎÎÎ ÎÏÎÏÎÎ ÎÎ ÏÏÎÏÎÎ ÏÎ ÏÎÎÎÎÏÎÎ ÎÏÏÎÎÎ "
-"ÎÏÎÎÎÎ. ÎÏÏÏ ÏÎÎ ÎÎÎÎÎ ÎÎÎÎÏÏÏÎÏÎ ÎÎÎ ÏÎÎ ÎÏÎÎÎÎ ÎÎÎÎÎÏÏÎÎÎ."
+"ÎÎÎ ÏÎÏÎ ÏÏÎ ÎÎÏÎÏÎ, ÏÎÏÎÎÎÎÏ ÎÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ set_digits ÏÎÏ ÎÏÎÏÏÎÏÎÎ "
+"ÎÎÎÎÎÎÎÏ ÎÏÎÎÎÏ ÎÎÏÎÏÎ."
 
-#: C/image-viewer.js.page:190(p)
-msgid "The syntax for connecting any signal to a function is:"
-msgstr "Î ÏÏÎÏÎÎÎ ÎÎÎ ÏÏÎÎÎÏÎ ÎÏÎÎÎÏÎÎÏÎÏÎ ÏÎÎÎÏÎÏ ÏÎ ÎÎÎ ÏÏÎÎÏÏÎÏÎ ÎÎÎÎÎ:"
+#: C/spinbutton.js.page:117(section/title)
+msgid "Creating the rest of the UI"
+msgstr "ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ ÏÏÏÎÎÎÏÎÏ ÎÎÎÏÎÏÎÏ ÏÏÎÏÏÎ"
 
-#: C/image-viewer.js.page:193(p)
+#: C/spinbutton.js.page:119(section/code)
+#, no-wrap
 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>."
+"\n"
+"        // Create the text labels to go with the spinbuttons\n"
+"        this._startLabel = new Gtk.Label ({ label: \"There are \" });\n"
+"        this._kittenLabel = new Gtk.Label ({ label: \" kitten(s), and \"});\n"
+"        this._tunaLabel = new Gtk.Label ({ label: \" can(s) of tuna.\"});\n"
+"        this.perKitten = Math.floor((this._tuna.get_value() / this._kittens.get_value()));\n"
+"        this._lastLabel = new Gtk.Label ({\n"
+"            label: \"That's \" + this.perKitten + \" can(s) of tuna per kitten.\" });\n"
 msgstr ""
-"ÎÏÎÏÎÎÏÎ ÎÎ ÎÏÎÎÏÎ ÎÏÎÏÎÎÏÏ ÏÎÎÎÏÎÏ ÎÎÎ ÎÎÎÎ ÎÎÏÎÎÎÎÎÎÎÎ ÏÏÎ <link href="
-"\"http://library.gnome.org/devel/gtk/stable/ch01.html\";>ÎÎÎÏÎÏÎ ÎÎÎÏÎÏ GTK</"
-"link>."
+"\n"
+"        // Create the text labels to go with the spinbuttons\n"
+"        this._startLabel = new Gtk.Label ({ label: \"There are \" });\n"
+"        this._kittenLabel = new Gtk.Label ({ label: \" kitten(s), and \"});\n"
+"        this._tunaLabel = new Gtk.Label ({ label: \" can(s) of tuna.\"});\n"
+"        this.perKitten = Math.floor((this._tuna.get_value() / this._kittens.get_value()));\n"
+"        this._lastLabel = new Gtk.Label ({\n"
+"            label: \"That's \" + this.perKitten + \" can(s) of tuna per kitten.\" });\n"
 
-#: C/image-viewer.js.page:196(p)
+#: C/spinbutton.js.page:128(section/p)
 msgid ""
-"You can simplify the code by making use of an inline function definition:"
+"We create each <link xref=\"label.js\">Label</link> individually, and then "
+"string them together along with the SpinButtons. The last label needs to "
+"show the number of cans of tuna per kitten, so it has a variable in the "
+"middle, which corresponds to an equation that uses the SpinButtons' "
+"get_value functions to find out what they're set at. JavaScript's Math "
+"function's floor method is used to round the number of cans of tuna per "
+"kitten down to the nearest whole number."
 msgstr ""
-"ÎÏÎÏÎÎÏÎ ÎÎ ÎÏÎÎÏÎÎÎÏÎÏÎ ÏÎÎ ÎÏÎÎÎÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÎÎÎÎ ÎÎÏÏÎÎÏÏÎÎÎÎ ÎÏÎÏÎÏ "
-"ÏÏÎÎÏÏÎÏÎÏ:"
+"ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎÎ <link xref=\"label.js\">ÎÏÎÎÎÏÎ</link> ÎÎÏÏÏÎÏÏÎ ÎÎÎ "
+"ÎÏÎÎÏÎ ÏÎÏ ÏÏÎÎÎÎÏÎÎ ÎÎÎÎ ÎÎ ÏÎ SpinButtons. Î ÏÎÎÎÏÏÎÎÎ ÎÏÎÎÎÏÎ ÏÏÎÎÎÎÎÏÎÎ "
+"ÎÎ ÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÏÎÎÎÏ ÏÏÎ ÎÎÎÏÎÏÎÏÎ ÏÏÎÎÎÏ ÎÎÎ ÎÎÏÎ, ÎÏÏÎ ÎÏÎÎ ÎÎÎ "
+"ÎÎÏÎÎÎÎÏÎ ÏÏÎ ÎÎÏÎ, ÏÎÏ ÎÎÏÎÏÏÎÎÏÎÎ ÏÎ ÎÎÎ ÎÎÎÏÏÏÎ ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÎ ÏÎÏ "
+"ÏÏÎÎÏÏÎÏÎÎÏ get_value ÏÏÎ SpinButtons ÎÎÎ ÏÎÎ ÎÏÏÎÏÎ ÏÎÏ ÎÏÎÏÎÎÏ ÏÎÏÏ. Î "
+"ÎÎÎÎÎÎÏ ÏÏÏÎÎÎÏÎÎÏÏÎÏ ÏÎÏ ÎÎÎÎÎÎÏÎÎÎÏ ÏÏÎÎÏÏÎÏÎÏ ÏÎÏ JavaScript "
+"ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÎÎÎ ÏÏÏÎÎÎÏÎÎÏÏÎ ÏÎÏ ÎÏÎÎÎÎÏ ÏÏÎ ÎÎÎÏÎÏÎÏÎ ÎÎÎ ÎÎÏÎ ÏÏÎÎ "
+"ÏÎÎÏÎÎÏÏÎÏÎ ÎÎÏÏ ÎÎÎÏÎÎÎ ÎÏÎÎÎÏ."
 
-#: C/image-viewer.js.page:204(title)
-msgid "Closing the window"
-msgstr "ÎÎÎÎÏÎÎÎ ÏÎÏ ÏÎÏÎÎÏÏÎÏ"
+#: C/spinbutton.js.page:130(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"        // Create a grid to put the spinbuttons and their labels in\n"
+"        this._spinGrid = new Gtk.Grid ({\n"
+"            halign: Gtk.Align.CENTER,\n"
+"            valign: Gtk.Align.CENTER,\n"
+"            margin_bottom: 20 });\n"
+"\n"
+"        // Attach everything to the grid\n"
+"        this._spinGrid.attach (this._startLabel, 0, 0, 1, 1);\n"
+"        this._spinGrid.attach (this._kittens, 1, 0, 1, 1);\n"
+"        this._spinGrid.attach (this._kittenLabel, 2, 0, 1, 1);\n"
+"        this._spinGrid.attach (this._tuna, 3, 0, 1, 1);\n"
+"        this._spinGrid.attach (this._tunaLabel, 4, 0, 1, 1);\n"
+"\n"
+"        // Create a main grid to hold it and the last label\n"
+"        this._mainGrid = new Gtk.Grid ({\n"
+"            halign: Gtk.Align.CENTER,\n"
+"            valign: Gtk.Align.CENTER });\n"
+"\n"
+"        // Attach the smaller grid and the last label to the main grid\n"
+"        this._mainGrid.attach (this._spinGrid, 0, 0, 1, 1);\n"
+"        this._mainGrid.attach (this._lastLabel, 0, 1, 1, 1);\n"
+msgstr ""
+"\n"
+"        // Create a grid to put the spinbuttons and their labels in\n"
+"        this._spinGrid = new Gtk.Grid ({\n"
+"            halign: Gtk.Align.CENTER,\n"
+"            valign: Gtk.Align.CENTER,\n"
+"            margin_bottom: 20 });\n"
+"\n"
+"        // Attach everything to the grid\n"
+"        this._spinGrid.attach (this._startLabel, 0, 0, 1, 1);\n"
+"        this._spinGrid.attach (this._kittens, 1, 0, 1, 1);\n"
+"        this._spinGrid.attach (this._kittenLabel, 2, 0, 1, 1);\n"
+"        this._spinGrid.attach (this._tuna, 3, 0, 1, 1);\n"
+"        this._spinGrid.attach (this._tunaLabel, 4, 0, 1, 1);\n"
+"\n"
+"        // Create a main grid to hold it and the last label\n"
+"        this._mainGrid = new Gtk.Grid ({\n"
+"            halign: Gtk.Align.CENTER,\n"
+"            valign: Gtk.Align.CENTER });\n"
+"\n"
+"        // Attach the smaller grid and the last label to the main grid\n"
+"        this._mainGrid.attach (this._spinGrid, 0, 0, 1, 1);\n"
+"        this._mainGrid.attach (this._lastLabel, 0, 1, 1, 1);\n"
 
-#: C/image-viewer.js.page:205(p)
+#: C/spinbutton.js.page:154(section/p)
 msgid ""
-"When you close a Gtk window it's not really closed, it's hidden. This allows "
-"you to keep the window around (which is useful if you want to ask the user "
-"if they really want to close the window, for example)."
+"Here we use <link xref=\"grid.js\">Grid</link> widgets to keep everything "
+"organized. One Grid holds the labels and SpinButtons in order, while the "
+"next puts that Grid on top and the final Label on the bottom."
 msgstr ""
-"ÎÏÎÎ ÎÎÎÎÎÎÏÎÎ ÎÎÎ ÏÎÏÎÎÏÏÎ Gtk ÎÎÎ ÎÎÎÎÎÎÎ ÏÏÎÎÎÎÏÎÎÎ, ÎÏÏÎÎÏÎÎ. ÎÏÏÏ "
-"ÎÏÎÏÏÎÏÎÎ ÏÎ ÎÎÎÏÎÏÎÏÎ ÏÎÏ ÏÎÏÎÎÏÏÎÏ ÏÏÎÎÏÏÏ (ÏÎÏ ÎÎÎÎÎ ÏÏÎÏÎÎÎ ÎÎÎ ÎÎÎÎÏÎ "
-"ÎÎ ÎÎÏÎÏÎÏÎ ÎÏÏ ÏÎÎ ÏÏÎÏÏÎ ÎÎÎ ÎÎÎÎÎ ÏÏÎÎÎÎÏÎÎÎ ÎÎ ÎÎÎÎÏÎÎ ÏÎ ÏÎÏÎÎÏÏÎ, ÎÎÎ "
-"ÏÎÏÎÎÎÎÎÎÎ)."
+"ÎÎÏ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ <link xref=\"grid.js\">ÏÎÎÎÎÎ</link> ÎÏÎÏÎÎÏÎ ÏÏÏÏÎÏÎÎÏÎ "
+"ÎÎÎ ÎÎ ÎÏÎÏÎÎÎ ÏÎ ÎÎÎÎÏÎ ÎÏÎÎÎÏÎÎÎÎ. ÎÎÎ ÏÎÎÎÎÎ ÎÏÎÏÎ ÏÎÏ ÎÏÎÎÎÏÎÏ ÎÎÎ "
+"SpinButtons ÏÎ ÏÎÎÏÎ, ÎÎÏ ÏÎ ÎÏÏÎÎÎÎ ÎÎÎÎÎ ÎÏÏÏ ÏÎ ÏÎÎÎÎÎ ÏÏÎÎ ÎÎÏÏÏÎ ÎÎÎ "
+"ÏÎÎ ÏÎÎÎÎÎ ÎÏÎÎÎÏÎ ÏÏÎ ÏÎÎÎÏ."
 
-#: C/image-viewer.js.page:206(p)
+#: C/spinbutton.js.page:155(section/p)
 msgid ""
-"In our case, we really do just want to close the window. The simplest way of "
-"doing this is by connecting the <code>hide</code> signal of the GtkWindow "
-"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>:"
+"There isn't a wrong way to organize things in Grids, so long as you like how "
+"it turns out. In this case, the top Grid has a margin on the bottom to keep "
+"it evenly spaced from the bottom Label, and the bottom Label is inside a "
+"separate Grid so it will be centered relative to the Labels and SpinButtons "
+"on the top."
 msgstr ""
-"ÎÏÎÎ ÏÎÏÎÏÏÏÏÎ ÎÎÏ, ÎÎÎÎÏÎÎ ÏÏÎÎÎÎÏÎÎÎ ÎÎ ÎÎÎÎÏÎÏÎÎ ÏÎ ÏÎÏÎÎÏÏÎ. Î "
-"ÎÏÎÎÏÏÏÎÏÎÏ ÏÏÏÏÎÏ ÎÎÎÎÎ ÏÏÎÎÎÎÎÏÎÏ ÏÎ ÏÎÎÎ <code>hide</code> ÏÎÏ "
-"ÎÎÏÎÎÎÎÎÎÎÎÏ GtkWindow ÎÎ ÎÎÎ ÏÏÎÎÏÏÎÏÎ ÏÎÏ ÎÎÎÎÎÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ. ÎÏÎÏÏÏÎÏÏÎ "
-"ÏÏÎ ÎÏÏÎÎÎ <file>image-viewer.js</file> ÎÎÎ ÏÏÎÏÎÎÏÏÎ ÏÎÎ ÏÎÏÎÎÎÏÏ ÎÏÎÎÎÎ "
-"ÏÏÎ ÎÎÎÎÎÎ <code>_init</code>, ÏÏÎÎ ÏÎÏÎÏÎÎÏ ÎÏÎÎÎÎ <code>this.window.show</"
-"code>:"
+"ÎÎÎ ÏÏÎÏÏÎÎ ÎÏÏÎÎÎÎÎÎÏ ÏÏÏÏÎÏ ÎÏÎÎÎÏÏÎÏ ÏÏÎ ÏÏÎÎÎÎÏÏÎ ÏÏÎ ÏÎÎÎÎÎÏÎ, ÎÏÏÏÎÎ "
+"ÏÎÏ ÎÏÎÏÎÎ ÏÏÏÏ ÏÏÎÎÏÏÏÎÎ. ÎÎ ÎÏÏÎÎ ÏÎÎ ÏÎÏÎÏÏÏÏÎ, ÏÎ ÎÎÏÏÏÎÎÎ ÏÎÎÎÎÎ ÎÏÎÎ "
+"ÎÎÎ ÏÎÏÎÎÏÏÎÎ ÏÏÎ ÏÎÎÎÏ ÎÎÎ ÎÎ ÎÏÎÏÎÎÎÎ ÏÎ ÎÎÎÎÏÎÎÏÏÎ ÎÏÏÏÏÎÏÎ ÎÏÏ ÏÎÎ "
+"ÎÏÎÎÎÏÎ ÏÎÎÎÏÏ ÎÎÎ Î ÎÏÎÎÎÏÎ ÏÎÎÎÏÏ ÎÎÎÎÎ ÎÎÏÎ ÏÎ ÎÎÎ ÎÎÏÏÏÎÏÏÏ ÏÎÎÎÎÎ ÎÏÏÎ "
+"ÏÏÏÎ ÎÎ ÎÎÎÏÏÎÏÎÏÏÎÎ ÏÏÎÏÎÎÎ ÎÎ ÏÎÏ ÎÏÎÎÎÏÎÏ ÎÎÎ ÏÎ SpinButtons ÏÏÎÎ ÎÎÏÏÏÎ."
 
-#: C/image-viewer.js.page:207(code)
+#: C/spinbutton.js.page:157(section/code)
 #, no-wrap
-msgid "this.window.connect (\"hide\", Gtk.main_quit);"
-msgstr "this.window.connect (\"hide\", Gtk.main_quit)Â"
-
-#: C/image-viewer.js.page:208(p)
 msgid ""
-"This connects the <code>hide</code> signal of the window to Gtk's "
-"<code>main_quit</code> function, which ends the execution of the Gtk main "
-"loop. Once the main loop finishes, the function <code>Gtk.main</code> "
-"returns. Our program would continue to run any code written after the "
-"<code>Gtk.main ();</code> line, but since we don't have any code after that "
-"point, the program just ends."
+"\n"
+"        // Add the main grid to the window\n"
+"        this._window.add (this._mainGrid);\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    },\n"
 msgstr ""
-"ÎÏÏÏ ÏÏÎÎÎÎÎ ÏÎ ÏÎÎÎ <code>hide</code> ÏÎÏ ÏÎÏÎÎÏÏÎÏ ÏÏÎ ÏÏÎÎÏÏÎÏÎ ÏÎÏ Gtk "
-"<code>main_quit</code>, ÏÎÏ ÏÎÎÎÎÏÎÎÎ ÏÎÎ ÎÎÏÎÎÎÏÎ ÏÎÏ ÎÏÏÎÎÏ ÎÏÏÏÎÏ Gtk. "
-"ÎÏÎÎÏ Î ÎÏÏÎÎÏ ÎÏÏÏÎÏ ÏÎÎÎÎÏÏÎÎ, Î ÏÏÎÎÏÏÎÏÎ <code>Gtk.main</code> "
-"ÎÏÎÏÏÏÎÏÎÎ. ÎÎ ÏÏÏÎÏÎÎÎÎ ÎÎÏ ÏÏÎÎÏÎÎÎÎ ÎÎ ÏÏÎÏÎÎ ÎÏÎÎÎÎÎÏÎÏÎ ÎÏÎÎÎÎ ÎÏÎÎÎÎÎÎ "
-"ÎÎÏÎ ÏÎ ÎÏÎÎÎÎ <code>Gtk.main ();</code>, ÎÎÎÎ ÎÏÎÏ ÎÎÎ ÎÏÎÏÎÎ ÎÏÎÎÎÎÎÏÎÏÎ "
-"ÎÏÎÎÎÎ ÎÎÏÎ ÎÏÏ ÎÏÏÏ ÏÎ ÏÎÎÎÎÎ, ÏÎ ÏÏÏÎÏÎÎÎÎ ÎÏÎÎ ÏÎÎÎÎÏÎÎÎ."
+"\n"
+"        // Add the main grid to the window\n"
+"        this._window.add (this._mainGrid);\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    },\n"
 
-#: C/image-viewer.js.page:218(p)
+#: C/spinbutton.js.page:165(section/p) C/switch.js.page:153(section/p)
 msgid ""
-"Let's add the box and widgets to the window. Insert the following code into "
-"the <code>_init</code> method, immediately above the <code>this.window.show</"
-"code> line:"
+"Finally, we add the larger Grid to the window, then tell the window to show "
+"itself and all the widgets inside of it."
 msgstr ""
-"ÎÏ ÏÏÎÏÎÎÏÎÏÎÎ ÎÎÎ ÏÎÎÎÏÎÎ ÎÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÏÏÎ ÏÎÏÎÎÏÏÎ. ÎÏÎÏÎÎÏÏÎ ÏÎÎ "
-"ÏÎÏÎÎÎÏÏ ÎÏÎÎÎÎ ÏÏÎ ÎÎÎÎÎÎ <code>_init</code>, ÎÎÎÏÏÏ ÏÎÎÏ ÎÏÏ ÏÎ ÎÏÎÎÎÎ "
-"<code>this.window.show</code> line:"
+"ÎÎÎÎÎÎ, ÏÏÎÏÎÎÏÎÏÎÎ ÏÎ ÎÎÎÎÎÏÏÎÏÎ ÏÎÎÎÎÎ ÏÏÎ ÏÎÏÎÎÏÏÎ, ÎÏÎÎÏÎ ÎÎÎÎ ÏÏÎ "
+"ÏÎÏÎÎÏÏÎ ÎÎ ÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÎÏÏÏÎ ÏÎÏ ÎÎÎ ÏÎÎ ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÏÎ ÏÎÏ."
+
+#: C/spinbutton.js.page:169(section/title)
+msgid "Function which handles the SpinButtons' numerical values being adjusted"
+msgstr ""
+"Î ÏÏÎÎÏÏÎÏÎ ÏÎÏ ÏÎÎÏÎÎÎÏÎÎ ÏÎÏ ÎÏÎÎÎÎÏÎÎÎÏ ÏÎÎÎÏ ÏÏÎ SpinButtons ÏÏÎÎÎÏÏÎÎÎ"
 
-#: C/image-viewer.js.page:222(p)
+#: C/spinbutton.js.page:171(section/code)
+#, no-wrap
 msgid ""
-"The first line creates a <code>Gtk.Box</code> called <code>main_box</code> "
-"and sets two of its properties: the <code>orientation</code> is set to "
-"vertical (so widgets are arranged in a column), and the <code>spacing</code> "
-"between the widgets is set to 0 pixels. The next line then adds the newly-"
-"created <code>Gtk.Box</code> to the window."
+"\n"
+"    _newValue: function () {\n"
+"\n"
+"        // Update the label which shows how many cans there are per kitten\n"
+"        this.perKitten = Math.floor((this._tuna.get_value() / this._kittens.get_value()))\n"
+"        this._lastLabel.set_label (\"That's \" + this.perKitten + \" can(s) of tuna per kitten.\");\n"
+"\n"
+"    }\n"
+"\n"
+"});\n"
 msgstr ""
-"Î ÏÏÏÏÎ ÎÏÎÎÎÎ ÎÎÎÎÎÏÏÎÎÎ ÎÎÎ <code>Gtk.Box</code> ÏÎÏ ÎÎÎÎÎÎÎÏÎÎ "
-"<code>main_box</code> ÎÎÎ ÎÏÎÎÎÎ ÎÏÎ ÎÏÏ ÏÎÏ ÎÎÎÏÏÎÏÎÏ ÏÎÏ: ÏÎÎ "
-"<code>orientation</code> ÏÎÏ ÏÏÎÎÎÎÎÏÎÎ ÏÏÎ ÎÎÎÎÏÎ (ÎÏÏÏÎ ÏÎ ÎÏÎÏÎÎÎ "
-"ÏÏÏÏÎÏÎÎÎ ÏÎÎÏÎÏÎÎÎÏÎÏÎÎ ÏÎ ÏÏÎÎÎ), ÎÎÎ ÏÎ <code>spacing</code> ÎÎÎÎÎÏÎ ÏÏÎ "
-"ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÏÎÏ ÎÏÎÎ ÏÏÎÎÎÏÏÎÎ ÏÏÎ 0 ÎÎÎÎÎÎÏÏÎÎÏÎÎÎ. Î ÎÏÏÎÎÎÎ ÎÏÎÎÎÎ "
-"ÎÏÎÎÏÎ ÏÏÎÏÎÎÏÎÎ ÏÏÎ ÏÎÏÎÎÏÏÎ ÏÎ ÎÎÎÎÎÎÎÎÏÏÎÎÎÎÎÎ <code>Gtk.Box</code>."
+"\n"
+"    _newValue: function () {\n"
+"\n"
+"        // Update the label which shows how many cans there are per kitten\n"
+"        this.perKitten = Math.floor((this._tuna.get_value() / this._kittens.get_value()))\n"
+"        this._lastLabel.set_label (\"That's \" + this.perKitten + \" can(s) of tuna per kitten.\");\n"
+"\n"
+"    }\n"
+"\n"
+"});\n"
 
-#: C/image-viewer.js.page:228(p)
+#: C/spinbutton.js.page:182(section/p)
 msgid ""
-"To add some widgets to the <code>Gtk.Box</code>, insert the following code "
-"directly below the <code>this.window.add (main_box)</code> line:"
+"Here we update the perKitten variable based on the SpinButtons' new values, "
+"and use the set_label property to refresh what _lastLabel shows. Since both "
+"SpinButtons have their value-changed signal connected to this function, "
+"every time either of the numbers changes this function will update the Label."
 msgstr ""
-"ÎÎÎ ÎÎ ÏÏÎÏÎÎÏÎÏÎ ÎÎÏÎÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÏÏÎ <code>Gtk.Box</code>, "
-"ÎÎÏÎÎÎÏÎ ÏÎÎ ÎÎÏÎÎÏÎÎ ÎÏÎÎÎÎ ÎÎÏÎÎÏÏ ÎÎÏÏ ÎÏÏ ÏÎÎ ÎÏÎÎÎÎ <code>this.window."
-"add (main_box)</code>:"
+"ÎÎÏ ÎÎÎÎÎÏÏÎÎÏÎÎ ÏÎ ÎÎÏÎÎÎÎÏÎ perKitten ÎÎ ÎÎÏÎ ÏÎÏ ÎÎÎÏ ÏÎÎÎÏ ÏÏÎ "
+"SpinButtons ÎÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÎÎÏÏÎÏÎ set_label ÎÎÎ ÎÎÎÎÎÏÏÎ ÏÎÏ "
+"ÏÏÎÎÎÎÎÏ _lastLabel. ÎÏÎÏ ÎÎÎ ÏÎ ÎÏÎ SpinButtons ÎÏÎÏÎ ÏÎ ÏÎÎÎ ÏÎÏÏ "
+"ÎÎÎÎÎÎÎÎÎÏ ÏÎÎÎÏ ÏÏÎÎÎÎÎÎÎ ÏÎ ÎÏÏÎ ÏÎ ÏÏÎÎÏÏÎÏÎ, ÎÎÎÎ ÏÎÏÎ ÎÏÎÎÎÎÎÏÎÏÎ ÎÏÏ "
+"ÏÎÏÏ ÎÏÎÎÎÎÏÏ ÎÎÎÎÎÎÎ ÎÏÏÎ ÏÎ ÏÏÎÎÏÏÎÏÎ ÎÎ ÎÎÎÎÎÏÏÏÎÎ ÏÎÎ ÎÏÎÎÎÏÎ."
 
-#: C/image-viewer.js.page:232(p)
+#: C/spinbutton.js.page:184(section/code)
+#, no-wrap
 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."
+"\n"
+"// Run the application\n"
+"let app = new SpinButtonExample ();\n"
+"app.application.run (ARGV);\n"
 msgstr ""
-"Î ÏÏÏÏÎ ÎÏÎÎÎÎ ÎÎÎÎÎÏÏÎÎÎ ÎÎÎ ÎÎÎÎÎÏÏÎÎÎ <code>Gtk.Image</code> ÏÎÏ "
-"ÎÎÎÎÎÎÎÏÎÎ <code>image</code>, ÏÎ ÎÏÎÎÎ ÎÎ ÎÎÏÎÎÎÎÎÎ ÎÎÎ ÎÏÏÎÎÎ ÎÎÎÏÎÎÏ. "
-"ÎÏÎÎÏÎ, ÏÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÎÎÏÎÎÏ ÏÏÎÏÏÎÎÎÏÎÎ (<em>ÏÎÎÎÏÎÏÎÏÎÎÎÎ</em>) "
-"ÏÏÎÎ ÏÎÏÎÎÎÏÎ <code>main_box</code> ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ ÎÎÎÎÎÎ ÏÎÏ <code>Gtk."
-"Box</code> <link href=\"http://library.gnome.org/devel/gtk/stable/GtkBox.";
-"html#gtk-box-pack-start\"><code>pack_start</code></link>."
+"\n"
+"// Run the application\n"
+"let app = new SpinButtonExample ();\n"
+"app.application.run (ARGV);\n"
 
-#: C/image-viewer.js.page:233(p)
+#: C/spinbutton.js.page:189(section/p)
 msgid ""
-"<code>pack_start</code> takes 4 arguments: the widget that is to be added to "
-"the <code>Gtk.Box</code> (<code>child</code>); whether the <code>Gtk.Box</"
-"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>)."
+"Finally, we create a new instance of the finished SpinButtonExample class, "
+"and set the application running."
 msgstr ""
-"ÎÎ <code>pack_start</code> ÏÎÎÏÎÎÎ 4 ÎÏÎÏÎÎÏÎ: ÏÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÏÎÏ "
-"ÏÏÎÏÏÎÎÎÏÎÎ ÏÏÎ <code>Gtk.Box</code> (<code>child</code>)Â ÎÎ ÏÎ <code>Gtk."
-"Box</code> ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎ ÏÏÎÎ ÏÏÎÏÏÎÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ "
-"(<code>expand</code>)Â ÎÎ ÏÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÎ ÎÏÏÎÏÎ ÎÎ ÎÎÎÏÏÎÎ ÏÎÎ "
-"ÏÎÎ ÎÎÎÎÎÏÎÎÎ ÏÏÏÎ ÎÎ ÎÎÎÎÎÏÏÎÎ ÏÎ <code>Gtk.Box</code> (<code>fill</code>)Â "
-"ÎÎÎ ÏÏÏÎÏ ÏÏÏÎÏ ÏÏÎÏÎÎ ÎÎ ÏÏÎÏÏÎÎ, ÏÎ ÎÎÎÎÎÎÏÏÎÎÏÎÎÎ, ÎÎÎÎÎÏÎ ÏÏÎ ÎÏÎÏÎÎÏ "
-"ÏÏÏÏÎÏÎÎÏ ÎÎÎ ÏÏÎÏÏ ÎÎÎÏÎÎÎÏ ÏÎÏ ÎÎÏÎ ÏÏÎ <code>Gtk.Box</code>, "
-"(<code>padding</code>)."
+"ÎÎÎÎÎÎ, ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ ÏÎÏ ÎÎÎÎÎÎÏÏÎÎÎÎÏ ÎÎÎÏÎÏ "
+"SpinButtonExample ÎÎÎ ÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ."
 
-#: C/image-viewer.js.page:240(p)
+#: C/spinbutton.js.page:194(section/code)
+#, no-wrap
 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."
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gio = imports.gi.Gio;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"const SpinButtonExample = new Lang.Class({\n"
+"    Name: 'SpinButton Example',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application({\n"
+"            application_id: 'org.example.jsspinbutton'\n"
+"        });\n"
+"\n"
+"    // Connect 'activate' and 'startup' signals to the callback functions\n"
+"    this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"    this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents window when active\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function() {\n"
+"        this._buildUI ();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function() {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            border_width: 20,\n"
+"            title: \"Kitten Feeder\"});\n"
+"\n"
+"        // Create the first spinbutton using a function\n"
+"        this._kittens = Gtk.SpinButton.new_with_range (1, 9001, 1);\n"
+"        this._kittens.connect (\"value-changed\", Lang.bind (this, this._newValue));\n"
+"\n"
+"        // Create an adjustment to use for the second spinbutton\n"
+"        this._adjustment = new Gtk.Adjustment ({\n"
+"            value: 1,\n"
+"            lower: 0,\n"
+"            upper: 9001,\n"
+"            step_increment: 1,\n"
+"            page_increment: 10 });\n"
+"\n"
+"        // Create the second spinbutton\n"
+"        this._tuna = new Gtk.SpinButton ({ adjustment: this._adjustment });\n"
+"        this._tuna.connect (\"value-changed\", Lang.bind (this, this._newValue));\n"
+"\n"
+"        // this._tuna.set_digits (1);\n"
+"        // this._tuna.set_wrap (true);\n"
+"\n"
+"        // Create the text labels to go with the spinbuttons\n"
+"        this._startLabel = new Gtk.Label ({ label: \"There are \" });\n"
+"        this._kittenLabel = new Gtk.Label ({ label: \" kitten(s), and \"});\n"
+"        this._tunaLabel = new Gtk.Label ({ label: \" can(s) of tuna.\"});\n"
+"        this.perKitten = Math.floor((this._tuna.get_value() / this._kittens.get_value()));\n"
+"        this._lastLabel = new Gtk.Label ({\n"
+"            label: \"That's \" + this.perKitten + \" can(s) of tuna per kitten.\" });\n"
+"\n"
+"        // Create a grid to put the spinbuttons and their labels in\n"
+"        this._spinGrid = new Gtk.Grid ({\n"
+"            halign: Gtk.Align.CENTER,\n"
+"            valign: Gtk.Align.CENTER,\n"
+"            margin_bottom: 20 });\n"
+"\n"
+"        // Attach everything to the grid\n"
+"        this._spinGrid.attach (this._startLabel, 0, 0, 1, 1);\n"
+"        this._spinGrid.attach (this._kittens, 1, 0, 1, 1);\n"
+"        this._spinGrid.attach (this._kittenLabel, 2, 0, 1, 1);\n"
+"        this._spinGrid.attach (this._tuna, 3, 0, 1, 1);\n"
+"        this._spinGrid.attach (this._tunaLabel, 4, 0, 1, 1);\n"
+"\n"
+"        // Create a main grid to hold it and the last label\n"
+"        this._mainGrid = new Gtk.Grid ({\n"
+"            halign: Gtk.Align.CENTER,\n"
+"            valign: Gtk.Align.CENTER });\n"
+"\n"
+"        // Attach the smaller grid and the last label to the main grid\n"
+"        this._mainGrid.attach (this._spinGrid, 0, 0, 1, 1);\n"
+"        this._mainGrid.attach (this._lastLabel, 0, 1, 1, 1);\n"
+"\n"
+"        // Add the main grid to the window\n"
+"        this._window.add (this._mainGrid);\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    _newValue: function () {\n"
+"\n"
+"        // Update the label which shows how many cans there are per kitten\n"
+"        this.perKitten = Math.floor((this._tuna.get_value() / this._kittens.get_value()))\n"
+"        this._lastLabel.set_label (\"That's \" + this.perKitten + \" can(s) of tuna per kitten.\");\n"
+"\n"
+"    }\n"
+"\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new SpinButtonExample ();\n"
+"app.application.run (ARGV);\n"
 msgstr ""
-"ÎÏÏÎÏ ÎÎ ÎÏÎÎÎÎÏ ÎÎÎÎÎ ÏÎÏÏÎÎÎÎÏ ÎÎ ÏÎÏ ÎÏÎ ÏÏÏÏÎÏ, ÎÎÎÎ ÎÏÏÎ ÏÎ ÏÎÏÎ "
-"ÎÎÎÎÎÏÏÎÎÏÎ ÎÎÎ <code>Gtk.Button</code> ÎÎÎ ÏÎ ÏÏÎÏÎÎÏÎÏÎ ÏÏÎ "
-"<code>main_box</code>. ÎÎÎÎÎÏÏÏÎ ÏÏÎ ÎÏÎÎÎÏÎÎ ÏÎ ÏÏÎÏÎÎ <code>expand</code> "
-"(ÏÎ ÎÎÏÏÎÏÎ) ÏÏÎ <code>false</code> ÎÎÏ, ÎÎÏ ÎÎÏÎ ÎÏÎÏÏÎÎ ÏÎ <code>true</"
-"code> ÎÎÎ ÏÎ <code>Gtk.Image</code>. ÎÏÏÏ ÎÎ ÏÏÎÎÎÎÎÏÎÎ ÏÏÎÎ ÎÎÎÏÎÎ ÎÎ "
-"ÎÎÎÏÏÎÎ ÏÎÎ ÏÎ ÎÎÎÎÎÏÎÎÎ ÏÏÏÎ ÎÎÎ ÏÎ ÎÎÏÎÏÎ ÎÎ ÏÎÏÎÎ ÎÏÎÎ ÏÏÎ ÏÏÎÎÎÎÎÏÎÎ. "
-"ÎÏÎÎ ÎÎÎÎÏÏÎÏÎÎÎÏÎÏÎ ÏÎ ÏÎÏÎÎÏÏÎ, ÏÎ ÎÎÎÎÎÎÏ ÏÏÎ ÎÎÏÎÏÎÏÎ ÎÎ ÏÎÏÎÎÎÎÎÎÎ ÏÎ "
-"ÎÎÎÎ, ÎÎÏ ÏÎ ÎÎÎÎÎÎÏ ÏÎÏ ÎÎÎÏÎÎÏ ÎÎ ÎÏÎÎÎÎÎ, ÎÎÏÎÎÎÎÎÎÎÎÎÏÎÏ ÏÎÎ ÏÎ ÏÏÏÎÎÎÏÎ "
-"ÏÎÏÎÎÏÏÎ."
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gio = imports.gi.Gio;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"const SpinButtonExample = new Lang.Class({\n"
+"    Name: 'SpinButton Example',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application({\n"
+"            application_id: 'org.example.jsspinbutton'\n"
+"        });\n"
+"\n"
+"    // Connect 'activate' and 'startup' signals to the callback functions\n"
+"    this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"    this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents window when active\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function() {\n"
+"        this._buildUI ();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function() {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            border_width: 20,\n"
+"            title: \"Kitten Feeder\"});\n"
+"\n"
+"        // Create the first spinbutton using a function\n"
+"        this._kittens = Gtk.SpinButton.new_with_range (1, 9001, 1);\n"
+"        this._kittens.connect (\"value-changed\", Lang.bind (this, this._newValue));\n"
+"\n"
+"        // Create an adjustment to use for the second spinbutton\n"
+"        this._adjustment = new Gtk.Adjustment ({\n"
+"            value: 1,\n"
+"            lower: 0,\n"
+"            upper: 9001,\n"
+"            step_increment: 1,\n"
+"            page_increment: 10 });\n"
+"\n"
+"        // Create the second spinbutton\n"
+"        this._tuna = new Gtk.SpinButton ({ adjustment: this._adjustment });\n"
+"        this._tuna.connect (\"value-changed\", Lang.bind (this, this._newValue));\n"
+"\n"
+"        // this._tuna.set_digits (1);\n"
+"        // this._tuna.set_wrap (true);\n"
+"\n"
+"        // Create the text labels to go with the spinbuttons\n"
+"        this._startLabel = new Gtk.Label ({ label: \"There are \" });\n"
+"        this._kittenLabel = new Gtk.Label ({ label: \" kitten(s), and \"});\n"
+"        this._tunaLabel = new Gtk.Label ({ label: \" can(s) of tuna.\"});\n"
+"        this.perKitten = Math.floor((this._tuna.get_value() / this._kittens.get_value()));\n"
+"        this._lastLabel = new Gtk.Label ({\n"
+"            label: \"That's \" + this.perKitten + \" can(s) of tuna per kitten.\" });\n"
+"\n"
+"        // Create a grid to put the spinbuttons and their labels in\n"
+"        this._spinGrid = new Gtk.Grid ({\n"
+"            halign: Gtk.Align.CENTER,\n"
+"            valign: Gtk.Align.CENTER,\n"
+"            margin_bottom: 20 });\n"
+"\n"
+"        // Attach everything to the grid\n"
+"        this._spinGrid.attach (this._startLabel, 0, 0, 1, 1);\n"
+"        this._spinGrid.attach (this._kittens, 1, 0, 1, 1);\n"
+"        this._spinGrid.attach (this._kittenLabel, 2, 0, 1, 1);\n"
+"        this._spinGrid.attach (this._tuna, 3, 0, 1, 1);\n"
+"        this._spinGrid.attach (this._tunaLabel, 4, 0, 1, 1);\n"
+"\n"
+"        // Create a main grid to hold it and the last label\n"
+"        this._mainGrid = new Gtk.Grid ({\n"
+"            halign: Gtk.Align.CENTER,\n"
+"            valign: Gtk.Align.CENTER });\n"
+"\n"
+"        // Attach the smaller grid and the last label to the main grid\n"
+"        this._mainGrid.attach (this._spinGrid, 0, 0, 1, 1);\n"
+"        this._mainGrid.attach (this._lastLabel, 0, 1, 1, 1);\n"
+"\n"
+"        // Add the main grid to the window\n"
+"        this._window.add (this._mainGrid);\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    _newValue: function () {\n"
+"\n"
+"        // Update the label which shows how many cans there are per kitten\n"
+"        this.perKitten = Math.floor((this._tuna.get_value() / this._kittens.get_value()))\n"
+"        this._lastLabel.set_label (\"That's \" + this.perKitten + \" can(s) of tuna per kitten.\");\n"
+"\n"
+"    }\n"
+"\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new SpinButtonExample ();\n"
+"app.application.run (ARGV);\n"
 
-#: C/image-viewer.js.page:241(p)
+#: C/spinbutton.js.page:205(item/p)
 msgid ""
-"Finally, we must change the <code>this.window.show ();</code> line to read:"
+"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.SpinButton.";
+"html\">Gtk.SpinButton</link>"
 msgstr ""
-"ÎÎÎÎÎÎ, ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎÎÏÎÎ ÏÎ ÎÏÎÎÎÎ <code>this.window.show ();</code> ÎÎÎ "
-"ÎÎ ÎÎÎÎÎÏÎÎ:"
+"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.SpinButton.";
+"html\">Gtk.SpinButton</link>"
 
-#: C/image-viewer.js.page:242(code)
-#, no-wrap
-msgid "this.window.show_all ();"
-msgstr "this.window.show_all ()Â"
+#: C/spinbutton.py.page:7(info/title)
+msgctxt "text"
+msgid "SpinButton (Python)"
+msgstr "SpinButton (Python)"
+
+#: C/spinbutton.py.page:18(info/desc)
+msgid "Retrieve an integer or floating-point number from the user."
+msgstr "ÎÎÎÎÏÎÏÎ ÎÎÎÏÎÎÎÏ Î ÎÏÎÎÎÎÏ ÎÎÎÎÏÎÏ ÏÏÎÎÎÎÏÏÎÎÎÏ ÎÏÏ ÏÎÎ ÏÏÎÏÏÎ."
 
-#: C/image-viewer.js.page:243(p)
+#: C/spinbutton.py.page:29(section/code)
+#, no-wrap
 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.)"
+"from gi.repository import Gtk\n"
+"import sys\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"SpinButton Example\", application=app)\n"
+"        self.set_default_size(210, 70)\n"
+"        self.set_border_width(5)\n"
+"\n"
+"        # an adjustment (initial value, min value, max value,\n"
+"        # step increment - press cursor keys or +/- buttons to see!,\n"
+"        # page increment - not used here,\n"
+"        # page size - not used here)\n"
+"        ad = Gtk.Adjustment(0, 0, 100, 1, 0, 0)\n"
+"\n"
+"        # a spin button for integers (digits=0)\n"
+"        self.spin = Gtk.SpinButton(adjustment=ad, climb_rate=1, digits=0)\n"
+"        # as wide as possible\n"
+"        self.spin.set_hexpand(True)\n"
+"\n"
+"        # we connect the signal \"value-changed\" emitted by the spinbutton with the callback\n"
+"        # function spin_selected\n"
+"        self.spin.connect(\"value-changed\", self.spin_selected)\n"
+"\n"
+"        # a label\n"
+"        self.label = Gtk.Label()\n"
+"        self.label.set_text(\"Choose a number\")\n"
+"\n"
+"        # a grid to attach the widgets\n"
+"        grid = Gtk.Grid()\n"
+"        grid.attach(self.spin, 0, 0, 1, 1)\n"
+"        grid.attach(self.label, 0, 1, 2, 1)\n"
+"\n"
+"        self.add(grid)\n"
+"\n"
+"    # callback function: the signal of the spinbutton is used to change the text of the label\n"
+"    def spin_selected(self, event):\n"
+"        self.label.set_text(\"The number you selected is \" + str(self.spin.get_value_as_int()) + \".\")\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
 msgstr ""
-"ÎÏÏÏ ÎÎ ÎÎÏÎÎÎÏÎÎ ÏÎ ÎÏÎÎÏÏÎÎÏ ÏÎÏ ÏÎÏÎÎÏÏÎÏ Gtk ÎÎÎ ÏÎÎ ÏÎ ÎÏÎÎÏÏÎÎÎ ÏÎÏ "
-"ÎÎÎ ÏÎ ÎÏÎÎÏÏÎÎÎ ÏÏÎ ÎÏÎÎÏÏÎÎÏÎ ÏÎÏ Î.Î.Î. (ÎÎ ÎÏÎÎÏÏÎ ÏÏÎ ÏÎ ÎÏÎÏÎÎÎ "
-"ÏÏÏÏÎÏÎÎÎ Gtk ÎÏÏÎÎÎÏÎÎ ÏÎÎ ÎÏÏ ÏÏÎÎÏÎÎÎÎÎ)"
+"from gi.repository import Gtk\n"
+"import sys\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"SpinButton Example\", application=app)\n"
+"        self.set_default_size(210, 70)\n"
+"        self.set_border_width(5)\n"
+"\n"
+"        # an adjustment (initial value, min value, max value,\n"
+"        # step increment - press cursor keys or +/- buttons to see!,\n"
+"        # page increment - not used here,\n"
+"        # page size - not used here)\n"
+"        ad = Gtk.Adjustment(0, 0, 100, 1, 0, 0)\n"
+"\n"
+"        # a spin button for integers (digits=0)\n"
+"        self.spin = Gtk.SpinButton(adjustment=ad, climb_rate=1, digits=0)\n"
+"        # as wide as possible\n"
+"        self.spin.set_hexpand(True)\n"
+"\n"
+"        # we connect the signal \"value-changed\" emitted by the spinbutton with the callback\n"
+"        # function spin_selected\n"
+"        self.spin.connect(\"value-changed\", self.spin_selected)\n"
+"\n"
+"        # a label\n"
+"        self.label = Gtk.Label()\n"
+"        self.label.set_text(\"Choose a number\")\n"
+"\n"
+"        # a grid to attach the widgets\n"
+"        grid = Gtk.Grid()\n"
+"        grid.attach(self.spin, 0, 0, 1, 1)\n"
+"        grid.attach(self.label, 0, 1, 2, 1)\n"
+"\n"
+"        self.add(grid)\n"
+"\n"
+"    # callback function: the signal of the spinbutton is used to change the text of the label\n"
+"    def spin_selected(self, event):\n"
+"        self.label.set_text(\"The number you selected is \" + str(self.spin.get_value_as_int()) + \".\")\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
 
-#: C/image-viewer.js.page:248(p)
-msgid ""
-"When the user clicks on the <gui>Open</gui> button, a dialog should appear "
-"so that the user can choose a picture. Once chosen, the picture should be "
-"loaded and shown in the image widget."
-msgstr ""
-"ÎÏÎÎ Î ÏÏÎÏÏÎÏ ÏÎÏÎÏÎÎ ÏÏÎ ÎÎÏÎÏÎ <gui>ÎÎÎÎÎÎÎ</gui>, ÎÎÎÏ ÎÎÎÎÎÎÎÏ ÎÎ "
-"ÎÎÏÎÎÎÏÏÎÎ ÎÏÏÎ ÏÏÏÎ Î ÏÏÎÏÏÎÏ ÎÎ ÎÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎÏÎÎ. ÎÏÎÎÏ ÎÎÎÎÎÎÎÎ, Î "
-"ÎÎÎÏÎÎ ÎÎ ÏÎÏÏÏÎÎÎ ÎÎÎ ÎÎ ÎÎÏÎÎÎÏÏÎÎ ÏÏÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÏÎÏ ÎÎÎÏÎÎÏ."
+#: C/spinbutton.py.page:33(section/title)
+msgid "Useful methods for a SpinButton widget"
+msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ SpinButton"
 
-#: C/image-viewer.js.page:249(p)
+#: C/spinbutton.py.page:34(section/p)
 msgid ""
-"The first step is to connect the <code>clicked</code> signal of the button "
-"to a signal handler function, which we call <code>_openClicked</code>. Put "
-"this code immediately after the <code>var open_button = new Gtk.Button</"
-"code> line where the button was created:"
+"For an explanation of signals and callback functions, see <link xref="
+"\"signals-callbacks.py\">this page</link>. An example is the <code>\"value-"
+"changed\"</code> signal, emitted when the value of the spinbutton changes."
 msgstr ""
-"ÎÎ ÏÏÏÏÎ ÎÎÎÎ ÎÎÎÎÎ ÎÎ ÏÏÎÎÎÏÎÏÎÎ ÏÎ ÏÎÎÎ <code>clicked</code> ÏÎÏ ÎÎÏÎÏÎÎÏ "
-"ÎÎ ÎÎÎ ÏÏÎÎÏÏÎÏÎ ÏÎÎÏÎÏÏÎ ÏÎÎÎÏÏÎ, ÏÎÎ ÎÏÎÎÎ ÎÎÎÎÏÎÎ ÎÎ <code>_openClicked</"
-"code>. ÎÎÎÏÎ ÎÏÏÏÎ ÏÎÎ ÎÏÎÎÎÎ ÎÎÎÏÏÏ ÎÎÏÎ ÏÎÎ ÎÏÎÎÎÎ <code>var open_button = "
-"new Gtk.Button</code> ÏÏÎÏ ÏÎ ÎÎÏÎÏÎ ÎÎÎÎÎÏÏÎÎÎÎÎÎ:"
+"ÎÎÎ ÎÎÎ ÎÎÎÎÎÏÎ ÏÏÎ ÏÎÎÎÏÏÎ ÎÎÎ ÏÏÎÎÏÏÎÏÎÏÎ ÎÏÎÎÎÎÎÎÏÎÏ, ÎÎÎÏÎ <link xref="
+"\"signals-callbacks.py\">ÎÏÏÎÎ ÏÎ ÏÎÎÎÎÎ</link>. ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ ÎÎÎÎÎ ÏÎ "
+"ÏÎÎÎ <code>\"value-changed\"</code>, ÏÎÏ ÎÎÏÎÎÏÎÏÎÎ ÏÏÎÎ Î ÏÎÎÎ ÏÎÏ ÎÎÏÎÏÎÎÏ "
+"ÎÎÏÏÎÏÎ ÎÎÎÎÎÎÎ."
 
-#: C/image-viewer.js.page:252(p)
+#: C/spinbutton.py.page:35(section/p)
 msgid ""
-"We are using the <em>Lang</em> JavaScript helper here. It allows us to "
-"connect a <em>class method</em> to the signal, rather than a plain function "
-"(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:"
+"A Gtk.Adjustment is needed to construct the Gtk.SpinButton. This is the "
+"representation of a value with a lower and upper bound, together with step "
+"and page increments, and a page size, and it is constructed as <code>Gtk."
+"Adjustment(value, lower, upper, step_increment, page_increment, page_size)</"
+"code> where the fields are of type <code>float</code>; <code>step_increment</"
+"code> is the increment/decrement that is obtained by using the cursor keys "
+"or the buttons of the spinbutton. Note that <code>page_increment</code> and "
+"<code>page_size</code> are not used in this case, and they should be set to "
+"<code>0</code>."
 msgstr ""
-"ÎÏÎÏÎÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÎÎÎÏ <em>Lang</em> JavaScript ÎÎÏ. ÎÏÎÏÏÎÏÎÎ ÏÎ ÏÏÎÎÎÏÎ "
-"ÎÎÎÏ <em>ÎÎÎÏÎÎÏ ÎÎÎÏÎÏ</em> ÎÎ ÏÎ ÏÎÎÎ, ÎÎÏÎ ÎÎÎ ÎÏÎÎ ÏÏÎÎÏÏÎÏÎ (ÏÏÏÎÏ "
-"ÎÎÎÏÎ) ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎÎ ÏÏÎÎ ÎÎÎ ÏÎ ÏÎÎÎ ÏÎÏ ÏÎÏÎÎÏÏÎÏ <code>hide</code>. "
-"ÎÎÎ ÎÎÎÏÏÏÎÎÏÎ ÎÎÎ ÎÏÏÏ ÎÎÎ ÏÏÏÎ, ÎÎÎÎÎ ÎÏÎÎ ÎÎÎ ÏÎÏÎÎÎÎ ÎÎÏÏÎÎÎÏÎÎÎ. ÎÎÎ ÎÎ "
-"ÎÎÏÎÎÏÎÎ ÏÏÎÎÎÎÏÏÎÏÏÎ ÎÏÎÏÎÏ ÎÎ ÎÎÎÎÏÎ ÏÎÎ ÏÎÏÎÎÎÏÏ ÎÏÎÎÎÎ ÏÏÎÎ ÎÎÏÏÏÎ ÏÎÏ "
-"ÎÏÏÎÎÎÏ:"
-
-#: C/image-viewer.js.page:253(code)
-#, no-wrap
-msgid "const Lang = imports.lang;"
-msgstr "const Lang = imports.langÂ"
+"ÎÎÎ Gtk.Adjustment ÎÏÎÎÏÎÎÏÎÎ ÎÎÎ ÎÏÎÎÏÎ ÏÎÏ Gtk.SpinButton. ÎÏÏÎ Î "
+"ÎÎÎÏÎÏÎÏÏÎÏÎ ÎÎÎÏ ÏÎÎÎÏ ÎÎ ÎÎÏÏ ÎÎÎ ÎÎÏ ÏÏÎÎ, ÎÎÎÎ ÎÎ ÎÎÎÎ ÎÎÎ ÎÏÎÎÏÎÎÏ "
+"ÏÎÎÎÎÎÏ ÎÎÎ ÎÎÎÎÎÎÏ ÏÎÎÎÎÎÏ ÎÎÎ ÎÎÎÎÎÏÎÎ ÏÏ <code>Gtk.Adjustment(value, "
+"lower, upper, step_increment, page_increment, page_size)</code> ÏÏÎÏ ÏÎ "
+"ÏÎÎÎÎ ÎÎÎÎÎ ÏÏÏÎÏ <code>float</code>Â <code>step_increment</code> ÎÎÎÎÎ Î "
+"ÎÏÎÎÏÎ/ÎÎÎÏÏÎ ÏÎÏ ÏÎÎÏÎÎÏÎÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ ÏÎÎÎÏÏÎ ÎÏÎÎÎÎ Î ÏÎ ÎÎÏÎÏÎÎ "
+"ÏÎÏ ÎÎÏÎÏÎÎÏ ÎÎÏÏÎÏÎ. ÎÎÎÎÎÏÏÏÎ ÏÏÎ <code>page_increment</code> ÎÎÎ "
+"<code>page_size</code> ÎÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÏÎ ÎÏÏÎÎ ÏÎÎ ÏÎÏÎÏÏÏÏÎ ÎÎÎ ÎÎÎ "
+"ÏÏÎÏÎÎ ÎÎ ÎÏÎÎÎÎÏÎÎ ÏÎ <code>0</code>."
 
-#: C/image-viewer.js.page:258(p)
+#: C/spinbutton.py.page:37(item/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):"
+"If you want the value of the spinbutton to wrap around when they exceed the "
+"maximum or the minimum, set <code>set_wrap(True)</code>. The <code>\"wrapped"
+"\"</code> signal is emitted when this happens."
 msgstr ""
-"ÎÏÏÎ ÎÏÎÏÎÏÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ ÏÎ ÎÎÎÎÎÎ <code>_openClicked()</code>. "
-"ÎÎÏÎÎÎÏÎ ÏÎ ÎÎÏÎÎÏÎÎ ÏÏÎÎ ÎÎÎÎÎ ÎÏÎÎÎÎ <code>ImageViewer.prototype</code>, "
-"ÎÎÏÎ ÏÎ ÎÎÎÎÎÎ <code>_init</code> (ÎÎÎ ÎÎ ÎÎÏÎÏÎÏÎ ÏÎ ÎÏÎÎÎ):"
+"ÎÎÎ ÎÎÎÎÏÎ Î ÏÎÎÎ ÏÎÏ ÎÎÏÎÏÎÎÏ ÎÎÏÏÎÏÎ ÎÎ ÎÎÎÎÎÏÎÏÎÎÏÎÎ ÏÏÎÎ ÏÏÎÏÎÎÎÎÎÎ ÏÎ "
+"ÎÎÎÎÏÏÎ Î ÏÎ ÎÎÎÏÎÏÏÎ, ÎÏÎÏÏÎ <code>set_wrap(True)</code>. ÎÎ ÏÎÎÎ <code>"
+"\"wrapped\"</code> ÎÎÏÎÎÏÎÏÎÎ ÏÏÎÎ ÏÏÎÎÎÎÎÎÎ ÎÏÏÏ."
 
-#: C/image-viewer.js.page:281(p)
+#: C/spinbutton.py.page:38(item/p)
 msgid ""
-"The line beginning with <code>var chooser</code> creates an <gui>Open</gui> "
-"dialog, which the user can use to choose files. We set four properties: the "
-"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."
+"<code>set_digits(digits)</code> sets the precision to be displayed by the "
+"spinbutton, up to 20 digits."
 msgstr ""
-"Î ÎÏÎÎÎÎ ÏÎÏ ÎÎÎÎÎÎÎÎ ÎÎ <code>var chooser</code> ÎÎÎÎÎÏÏÎÎÎ ÎÎÎÎ ÎÎÎÎÎÎÎ "
-"<gui>ÎÎÎÎÎÎÎÏÎÏ</gui>, ÏÎÎ ÎÏÎÎÎ Î ÏÏÎÏÏÎÏ ÎÏÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÎÎÎ "
-"ÎÏÎÎÎÎÎ ÎÏÏÎÎÏÎ. ÎÏÎÎÎÏÎÎ ÏÎÏÏÎÏÎÏ ÎÎÎÏÏÎÏÎÏ: ÏÎÎ ÏÎÏÎÎ ÏÎÏ ÎÎÎÎÏÎÎÏÂ ÏÎÎ "
-"ÎÎÎÏÎÎÎÎ (ÏÏÏÎ) ÏÎÏ ÎÎÎÎÏÎÎÏ (ÎÎÎÎÎ ÎÎÎÎÎÎÎÏ \"open\", ÎÎÎÎ ÎÎ ÎÏÎÏÎÏÏÎÎÎ ÎÎ "
-"ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ <code>SAVE</code> ÎÎ Î ÏÏÏÎÎÏÎ ÎÏÎÎ ÎÎ ÎÏÎÎÎÎÎÏÏÎÏÎÎ ÎÎÎ "
-"ÎÏÏÎÎÎÂ <code>transient_for</code>, ÏÎÏ ÎÏÎÎÎÎ ÏÎ ÎÎÎÏÎ ÏÎÏÎÎÏÏÎ ÏÎÏ "
-"ÎÎÎÎÏÎÎÏÂ ÎÎÎ <code>modal</code> ÏÎÏ, ÎÎÎ ÎÏÎÏÏÎÎ <code>true</code>, "
-"ÎÏÎÏÏÎÏÎÎ ÏÎ ÏÏÎÏÏÎ ÎÏÏ ÎÎÎÎ ÏÎ ÎÎÎ ÎÎÎÎ ÏÎÏÎÎÏÎ ÏÎÏ ÎÏÎÏÎÎÎÎÏ ÎÎÏÏÎ ÏÎ "
-"ÎÎÎÎÏÎÎÎ ÏÎÏ ÎÎÎÎÏÎÎÏ."
+"<code>set_digits(digits)</code> ÎÏÎÎÎÎ ÏÎÎ ÎÎÏÎÎÎÎÏÎÎÎÎ ÎÎÏÎÎÎÎÎ ÎÏÏ ÏÎ "
+"ÎÎÏÎÏÎ ÎÎÏÏÎÏÎ, ÎÎÏÏÎ 20 ÏÎÏÎÎ."
 
-#: C/image-viewer.js.page:294(p)
+#: C/spinbutton.py.page:39(item/p)
 msgid ""
-"<code>chooser.run</code> displays the <gui>Open</gui> dialog. The dialog "
-"will wait for the user to choose an image; when they do, <code>chooser.run</"
-"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."
+"To get the value of the spinbutton as an integer, use <code>get_value_as_int"
+"()</code>."
 msgstr ""
-"ÎÎ <code>dialog.run</code> ÎÎÏÎÎÎÎÎÎ ÏÎ ÎÎÎÎÎÎÎ <gui>ÎÎÎÎÎÎÎ</gui>. Î "
-"ÎÎÎÎÎÎÎÏ ÎÎ ÏÎÏÎÎÎÎÎÎ ÏÎÎ ÏÏÎÏÏÎ ÎÎ ÎÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎÏÎÎÂ ÏÏÎÎ ÎÎÎÎÎÎÎÎ, ÏÎ "
-"<code>chooser.run</code> ÎÎ ÎÏÎÏÏÏÎÏÎÎ ÏÎÎ ÏÎÎÎ <output>1</output> (ÎÎ "
-"ÎÏÎÏÏÏÎÏÎÎ <output>0</output> ÎÎ Î ÏÏÎÏÏÎÏ ÏÎÏÎÏÎÎ <gui>ÎÎÏÏÏÏÎ</gui>). Î "
-"ÏÏÏÏÎÏÎ <code>if</code> ÏÎ ÎÎÎÎÏÎÎ."
+"ÎÎÎ ÏÎ ÎÎÏÎ ÏÎÏ ÏÎÎÎÏ ÏÎÏ ÎÎÏÎÏÎÎÏ ÎÎÏÏÎÏÎ ÏÏ ÎÎÎÏÎÎÎÏ, ÏÏÎÏÎÎÎÏÎÎÎÏÏÎ "
+"<code>get_value_as_int()</code>."
 
-#: C/image-viewer.js.page:307(p)
+#: C/spinbutton.py.page:47(item/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!"
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkSpinButton.html";
+"\">GtkSpinButton</link>"
 msgstr ""
-"ÎÎÎÏ Î ÎÏÎÎÎÎÏ ÏÎÏ ÏÏÎÎÎÎÎÏÏÎ ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎ ÏÏÏÎ ÏÏÎ ÎÎÏÎ ÏÎÏ, ÎÏÏÏÎ "
-"ÎÎÎÎÎÎÏÏÎ ÏÎÎ ÎÎÏÎÎÎÏÎ ÏÎÏ ÎÏÎÎÎÎ. ÎÏÏÏ ÎÏÎÎÎÂ ÎÎÎÏ ÏÎÎÏÏÏ ÎÎÎÏÎÏÏÎÎÎÏÏ "
-"ÏÏÎÎÎÎÎÎÏ ÎÎÎÏÎÏÎ (ÎÎÎ ÎÎÎ ÏÎÏÎÎÎÎÏÎ ÏÎÏ JavaScript ÎÎÎ Gtk) ÏÎ ÎÎÎÏÎÏÏÎ "
-"ÏÏÏÎÎ!"
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkSpinButton.html";
+"\">GtkSpinButton</link>"
+
+#: C/spinbutton.vala.page:7(info/title)
+msgctxt "text"
+msgid "SpinButton (Vala)"
+msgstr "SpinButton (Vala)"
+
+#: C/spinbutton.vala.page:19(info/desc)
+msgid "Retrieve an integer or floating point number."
+msgstr "ÎÎÎÎÏÎÏÎ ÎÎÎÏÎÎÎÏ Î ÎÏÎÎÎÎÏ ÎÎÎÎÏÎÏ ÏÏÎÎÎÎÏÏÎÎÎÏ."
 
-#: C/image-viewer.js.page:312(p)
+#: C/spinbutton.vala.page:26(page/code)
+#, no-wrap
 msgid ""
-"If you run into problems with the tutorial, compare your code with this "
-"<link href=\"image-viewer/image-viewer.js\">reference code</link>."
+"/* This is the application. */\n"
+"public class MyApplication : Gtk.Application {\n"
+"\tGtk.Label label;\n"
+"\n"
+"\t/* Override the 'activate' signal of GLib.Application. */\n"
+"\tprotected override void activate () {\n"
+"\t\tvar window = new Gtk.ApplicationWindow (this);\n"
+"\t\twindow.title = \"SpinButton Example\";\n"
+"\t\twindow.set_default_size (210, 70);\n"
+"\t\twindow.set_border_width (5);\n"
+"\n"
+"\t\tvar spinbutton = new Gtk.SpinButton.with_range (0, 100, 1);\n"
+"\t\tspinbutton.set_hexpand (true);\n"
+"\n"
+"\t\tlabel = new Gtk.Label (\"Choose a number\");\n"
+"\n"
+"\t\tvar grid = new Gtk.Grid ();\n"
+"\t\tgrid.attach (spinbutton, 0, 0, 1, 1);\n"
+"\t\tgrid.attach (label, 0, 1, 1, 1);\n"
+"\n"
+"\t\tspinbutton.value_changed.connect (this.value_changed_cb);\n"
+"\n"
+"\t\twindow.add (grid);\n"
+"\t\twindow.show_all ();\n"
+"\t}\n"
+"\n"
+"\tvoid value_changed_cb (Gtk.SpinButton spin) {\n"
+"\t\tlabel.set_text (\"The number you selected is %.0f.\".printf (spin.get_value()));\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* main creates and runs the application. */\n"
+"public int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
 msgstr ""
-"ÎÎ ÎÎÏÎÎÎÏÏÏÎÏÎÏÎ ÏÏÏÎÎÎÎÎ ÎÎ ÏÎ ÎÎÎÎÎÎ, ÏÏÎÎÏÎÎÎÏÎ ÏÎÎ ÎÏÎÎÎÎ ÏÎÏ ÎÎ ÎÏÏÏÎ "
-"ÏÎÎ <link href=\"image-viewer/image-viewer.js\">ÎÏÎÎÎÎ ÎÎÎÏÎÏÎÏ</link>."
+"/* This is the application. */\n"
+"public class MyApplication : Gtk.Application {\n"
+"\tGtk.Label label;\n"
+"\n"
+"\t/* Override the 'activate' signal of GLib.Application. */\n"
+"\tprotected override void activate () {\n"
+"\t\tvar window = new Gtk.ApplicationWindow (this);\n"
+"\t\twindow.title = \"SpinButton Example\";\n"
+"\t\twindow.set_default_size (210, 70);\n"
+"\t\twindow.set_border_width (5);\n"
+"\n"
+"\t\tvar spinbutton = new Gtk.SpinButton.with_range (0, 100, 1);\n"
+"\t\tspinbutton.set_hexpand (true);\n"
+"\n"
+"\t\tlabel = new Gtk.Label (\"Choose a number\");\n"
+"\n"
+"\t\tvar grid = new Gtk.Grid ();\n"
+"\t\tgrid.attach (spinbutton, 0, 0, 1, 1);\n"
+"\t\tgrid.attach (label, 0, 1, 1, 1);\n"
+"\n"
+"\t\tspinbutton.value_changed.connect (this.value_changed_cb);\n"
+"\n"
+"\t\twindow.add (grid);\n"
+"\t\twindow.show_all ();\n"
+"\t}\n"
+"\n"
+"\tvoid value_changed_cb (Gtk.SpinButton spin) {\n"
+"\t\tlabel.set_text (\"The number you selected is %.0f.\".printf (spin.get_value()));\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* main creates and runs the application. */\n"
+"public int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
 
-#: C/image-viewer.cpp.page:8(desc)
-msgid "A little bit more than a simple \"Hello world\" GTKmm application."
-msgstr "ÎÎÎ ÎÎÎÎ ÏÎÏÎÏÏÏÏÎÏÎ ÎÏÏ ÎÏÎÎ ÎÏÎÏÎÎÎÎ GTKmm ÏÎÎ ÏÎ \"Hello, world!\"."
+#: C/spinbutton.vala.page:31(item/p)
+msgid ""
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.SpinButton.html\";>Gtk."
+"SpinButton</link>"
+msgstr ""
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.SpinButton.html\";>Gtk."
+"SpinButton</link>"
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/spinner.c.page:23(media) C/spinner.js.page:21(media)
+#: C/spinner.py.page:21(media) C/spinner.vala.page:21(media)
+msgctxt "_"
+msgid "external ref='media/spinner.png' md5='d04f2d81f1d72c6c2f97e8729947dfed'"
+msgstr ""
+"external ref='media/spinner.png' md5='d04f2d81f1d72c6c2f97e8729947dfed'"
+
+#: C/spinner.c.page:7(info/title)
+#, fuzzy
+msgctxt "text"
+msgid "Spinner (C)"
+msgstr "ÎÎÏÏÎÏÎÏ (C)"
 
-#: C/image-viewer.cpp.page:21(title) C/image-viewer.c.page:23(title)
-msgid "Image Viewer"
-msgstr "ÎÏÎÎÎÎÎ ÎÎÎÏÎÏÎ"
+#: C/spinner.c.page:18(info/desc) C/spinner.js.page:17(info/desc)
+#: C/spinner.py.page:17(info/desc) C/spinner.vala.page:17(info/desc)
+msgid "A spinner animation"
+msgstr "ÎÎÎÎÏÎ ÎÎÏÏÎÏÎ"
 
-#: C/image-viewer.cpp.page:26(p)
-msgid "Some basic concepts of C++/GObject programming"
-msgstr "ÎÎÏÎÎÎÏ ÎÎÏÎÎÎÏ ÎÎÎÎÎÎÏ ÏÎÏ ÏÏÎÎÏÎÎÎÎÏÎÏÎÎÏ C++/GObject"
+#: C/spinner.c.page:21(page/title) C/spinner.js.page:20(page/title)
+#: C/spinner.py.page:20(page/title) C/spinner.vala.page:20(page/title)
+msgid "Spinner"
+msgstr "ÎÎÏÏÎÏÎÏ"
 
-#: C/image-viewer.cpp.page:27(p)
-msgid "How to write a Gtk application in C++"
-msgstr "ÎÏÏ ÎÎ ÎÏÎÏÎÏÎ ÎÎÎ ÎÏÎÏÎÎÎÎ Gtk ÏÎ C++"
+#: C/spinner.c.page:24(page/p) C/spinner.js.page:22(page/p)
+#: C/spinner.py.page:22(page/p) C/spinner.vala.page:22(page/p)
+msgid "This Spinner is stopped and started by pressing the spacebar."
+msgstr "ÎÏÏÏÏ Î ÎÎÏÏÎÏÎÏ ÏÏÎÎÎÏÎ ÎÎÎ ÎÎÎÎÎÎ ÏÎÏÏÎÏÎÏ ÏÎ ÏÎÎÎÏÏÎ ÎÎÎÏÏÎÎÎÏÎÏ."
 
-#: C/image-viewer.cpp.page:41(p)
+#: C/spinner.c.page:26(page/code)
+#, no-wrap
 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."
+"\n"
+"#include &lt;gtk/gtk.h&gt;\n"
+" \n"
+"\n"
+"\n"
+" /*Global variable used to indicate active state of the\n"
+"spinner. TRUE = active, FALSE = not-active. This is because \n"
+"there isn't a current function for C that does this for us*/\n"
+"gboolean active;  \n"
+" \n"
+"\n"
+"\n"
+"/*This is the callback function. It is a handler function \n"
+"which reacts to the signal. In this case, it will cause the \n"
+"spinner to start and stop according to how many times the user \n"
+"presses the spacebar.*/ \n"
+"static gboolean\n"
+"key_pressed_event (GtkWidget *widget,\n"
+"                   GdkEvent  *event,\n"
+"                   gpointer   user_data)\n"
+"{\n"
+"  GtkWidget *spinner = user_data;\n"
+"  guint keyval;\n"
+"  \n"
+"  /*Extracts the keyval from an event. And stores it in the  variable \n"
+"  \"keyval\" (we give the function the address). In this case, the \n"
+"  event is GdkEventKey, a key press event*/\n"
+"  gdk_event_get_keyval (event, &amp;keyval);  \n"
+"\n"
+"  /*Grabbing the boolean value from the spinner*/\n"
+"  g_object_get (GTK_SPINNER (spinner), \"active\", &amp;active, NULL);\n"
+"  \n"
+"  if (keyval == GDK_KEY_space) {\n"
+"     if (active) {\n"
+"         gtk_spinner_stop (GTK_SPINNER (spinner));\n"
+"     }\n"
+"     else {\n"
+"         gtk_spinner_start (GTK_SPINNER (spinner));\n"
+"     } \n"
+"  }\n"
+"  \n"
+"return TRUE;\n"
+"}\n"
+" \n"
+"\n"
+"\n"
+"static void\n"
+"activate (GtkApplication *app,\n"
+"          gpointer        user_data)\n"
+"{\n"
+"  GtkWidget *window;\n"
+"  GtkWidget *spinner;\n"
+" \n"
+"  /*Create a window with a title, border width and a default size*/\n"
+"  window = gtk_application_window_new (app);\n"
+" \n"
+"  gtk_window_set_title (GTK_WINDOW (window), \"Spinner Example\");\n"
+"  gtk_window_set_default_size (GTK_WINDOW (window), 200, 200);\n"
+"  gtk_container_set_border_width (GTK_CONTAINER(window), 30);\n"
+" \n"
+"  /*Create a spinner, with extra horizontal and vertical space*/\n"
+"  spinner = gtk_spinner_new ();\n"
+"  gtk_spinner_start (GTK_SPINNER (spinner));\n"
+"  \n"
+"  gtk_container_add (GTK_CONTAINER (window), spinner);\n"
+" \n"
+"  /*Connecting the key-press-event signal to the callback*/\n"
+"  g_signal_connect (GTK_WINDOW (window), \"key-press-event\", \n"
+"                    G_CALLBACK (key_pressed_event), spinner);\n"
+" \n"
+"  gtk_widget_show_all (window);\n"
+"}\n"
+" \n"
+"\n"
+"\n"
+"\n"
+"int\n"
+"main (int argc, char **argv)\n"
+"{\n"
+"  GtkApplication *app;\n"
+"  int status;\n"
+" \n"
+"  app = gtk_application_new (\"org.gtk.example\", G_APPLICATION_FLAGS_NONE);\n"
+"  g_signal_connect (app, \"activate\", G_CALLBACK (activate), NULL);\n"
+"  status = g_application_run (G_APPLICATION (app), argc, argv);\n"
+"  g_object_unref (app);\n"
+" \n"
+"  return status;\n"
+"}\n"
 msgstr ""
-"ÎÏÎÎÎÎÏÎ <gui>GTKmm (ÎÏÎÏ)</gui> ÎÏÏ ÏÎÎ ÎÎÏÏÎÎÎ <gui>C++</gui>, ÏÎÏÎÏÏÎ "
-"<gui>ÎÏÏÎÏÏÎ</gui> ÎÎÎ ÏÏÎÏÎÎÏÏÏÏÎ ÏÎÏ ÎÎÏÏÎÎÎÏÎÎÎÏ ÏÎÏ ÏÏÎÏ ÎÏÏÎÎÎÎÏ ÎÎÎÎÏ "
-"ÏÎÎÎÎÎÏ. ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ ÏÎ <file>image-viewer</file> ÏÏ ÏÎÎÎÎ ÏÎÏ ÎÏÎÎÏ ÎÎÎ "
-"ÏÎÏ ÎÎÏÎÎÏÎÎÏ."
+"\n"
+"#include &lt;gtk/gtk.h&gt;\n"
+" \n"
+"\n"
+"\n"
+" /*Global variable used to indicate active state of the\n"
+"spinner. TRUE = active, FALSE = not-active. This is because \n"
+"there isn't a current function for C that does this for us*/\n"
+"gboolean active;  \n"
+" \n"
+"\n"
+"\n"
+"/*This is the callback function. It is a handler function \n"
+"which reacts to the signal. In this case, it will cause the \n"
+"spinner to start and stop according to how many times the user \n"
+"presses the spacebar.*/ \n"
+"static gboolean\n"
+"key_pressed_event (GtkWidget *widget,\n"
+"                   GdkEvent  *event,\n"
+"                   gpointer   user_data)\n"
+"{\n"
+"  GtkWidget *spinner = user_data;\n"
+"  guint keyval;\n"
+"  \n"
+"  /*Extracts the keyval from an event. And stores it in the  variable \n"
+"  \"keyval\" (we give the function the address). In this case, the \n"
+"  event is GdkEventKey, a key press event*/\n"
+"  gdk_event_get_keyval (event, &amp;keyval);  \n"
+"\n"
+"  /*Grabbing the boolean value from the spinner*/\n"
+"  g_object_get (GTK_SPINNER (spinner), \"active\", &amp;active, NULL);\n"
+"  \n"
+"  if (keyval == GDK_KEY_space) {\n"
+"     if (active) {\n"
+"         gtk_spinner_stop (GTK_SPINNER (spinner));\n"
+"     }\n"
+"     else {\n"
+"         gtk_spinner_start (GTK_SPINNER (spinner));\n"
+"     } \n"
+"  }\n"
+"  \n"
+"return TRUE;\n"
+"}\n"
+" \n"
+"\n"
+"\n"
+"static void\n"
+"activate (GtkApplication *app,\n"
+"          gpointer        user_data)\n"
+"{\n"
+"  GtkWidget *window;\n"
+"  GtkWidget *spinner;\n"
+" \n"
+"  /*Create a window with a title, border width and a default size*/\n"
+"  window = gtk_application_window_new (app);\n"
+" \n"
+"  gtk_window_set_title (GTK_WINDOW (window), \"Spinner Example\");\n"
+"  gtk_window_set_default_size (GTK_WINDOW (window), 200, 200);\n"
+"  gtk_container_set_border_width (GTK_CONTAINER(window), 30);\n"
+" \n"
+"  /*Create a spinner, with extra horizontal and vertical space*/\n"
+"  spinner = gtk_spinner_new ();\n"
+"  gtk_spinner_start (GTK_SPINNER (spinner));\n"
+"  \n"
+"  gtk_container_add (GTK_CONTAINER (window), spinner);\n"
+" \n"
+"  /*Connecting the key-press-event signal to the callback*/\n"
+"  g_signal_connect (GTK_WINDOW (window), \"key-press-event\", \n"
+"                    G_CALLBACK (key_pressed_event), spinner);\n"
+" \n"
+"  gtk_widget_show_all (window);\n"
+"}\n"
+" \n"
+"\n"
+"\n"
+"\n"
+"int\n"
+"main (int argc, char **argv)\n"
+"{\n"
+"  GtkApplication *app;\n"
+"  int status;\n"
+" \n"
+"  app = gtk_application_new (\"org.gtk.example\", G_APPLICATION_FLAGS_NONE);\n"
+"  g_signal_connect (app, \"activate\", G_CALLBACK (activate), NULL);\n"
+"  status = g_application_run (G_APPLICATION (app), argc, argv);\n"
+"  g_object_unref (app);\n"
+" \n"
+"  return status;\n"
+"}\n"
 
-#: C/image-viewer.cpp.page:44(p)
+#: C/spinner.c.page:34(item/p)
 msgid ""
-"Make sure that <gui>Use GtkBuilder for user interface</gui> is disabled as "
-"we will create the UI manually in this tutorial. Check the <link xref="
-"\"guitar-tuner.cpp\">Guitar-Tuner</link> tutorial if you want to learn how "
-"to use the interface builder."
+"<link href=\"http://developer.gnome.org/gobject/stable/gobject-The-Base-";
+"Object-Type.html#g-object-get\">GObject</link>"
 msgstr ""
-"ÎÎÎÎÏÏÎÏÏÎÎÏÎ ÏÏÎ ÎÏÎÎÎÏÎÎÏÎÎÎÏÎÏÎ ÏÎ <gui>ÎÏÎÏÎ ÏÎÏ GtkBuilder ÎÎÎ ÎÎÎÏÎÏÎ "
-"ÏÏÎÏÎ</gui> ÎÏÎÎÎÎ ÎÎ ÏÏÎÎÎÎÏÎÎ ÏÎ ÎÎÎÏÎÏÎ ÏÏÎÏÏÎ ÏÎÎÏÎÎÎÎÎÏÎ ÏÎ ÎÏÏÏ ÏÎ "
-"ÎÎÎÎÎÎ. ÎÎÎÎÎÏÏÏÎ ÏÎ ÎÎÎÎÎÎ <link xref=\"guitar-tuner.cpp\">ÏÏÎÎÎÏÏÎÏ "
-"ÎÎÎÎÏÎÏ</link> ÎÎÎ ÎÎÎÎÏÎ ÎÎ ÎÎÎÎÏÎ ÏÎ ÏÏÎÏÎ ÏÎÏ ÎÎÏÎÏÎÎÏÎÏÏÎ ÎÎÎÏÎÏÎÏ."
+"<link href=\"http://developer.gnome.org/gobject/stable/gobject-The-Base-";
+"Object-Type.html#g-object-get\">GObject</link>"
 
-#: C/image-viewer.cpp.page:49(p)
+#: C/spinner.c.page:35(item/p) C/togglebutton.c.page:37(item/p)
 msgid ""
-"Click <gui>Apply</gui> and the project will be created for you. Open "
-"<file>src/main.cc</file> from the <gui>Project</gui> or <gui>File</gui> "
-"tabs. You should see some code which starts with the lines:"
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkSpinner.html";
+"\">GtkSpinner</link>"
 msgstr ""
-"ÎÎÏÎÏÏÎ <gui>ÎÏÎÏÎÎÎÎ</gui> ÎÎÎ ÏÎ ÎÏÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎÎÎÎ ÎÎÎ ÏÎÏ. ÎÎÎÎÎÏÎ "
-"<file>src/main.cc</file> ÎÏÏ ÏÎÏ ÎÎÏÏÎÎÎÏ <gui>ÎÏÎÎ</gui> Î <gui>ÎÏÏÎÎÎ</"
-"gui>. ÎÎ ÏÏÎÏÎÎ ÎÎ ÎÎÎÏÎ ÎÎÏÎÎÎ ÎÏÎÎÎÎ ÏÎÏ ÎÎÎÎÎÎ ÎÎ ÏÎÏ ÎÏÎÎÎÎÏ:"
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkSpinner.html";
+"\">GtkSpinner</link>"
+
+#: C/spinner.js.page:7(info/title)
+#, fuzzy
+msgctxt "text"
+msgid "Spinner (JavaScript)"
+msgstr "ÎÎÏÏÎÏÎÏ (JavaScript)"
+
+#: C/spinner.js.page:24(page/code)
+#, no-wrap
+msgid ""
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gio = imports.gi.Gio;\n"
+"const GLib = imports.gi.GLib;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Gdk = imports.gi.Gdk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"const SpinnerExample = new Lang.Class ({\n"
+"    Name: 'Spinner Example',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function () {\n"
+"        this.application = new Gtk.Application ({\n"
+"            application_id: 'org.example.jsspinner',\n"
+"            flags: Gio.ApplicationFlags.FLAGS_NONE\n"
+"        });\n"
+"\n"
+"        // Connect 'activate' and 'startup' signals to the callback functions\n"
+"        this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"        this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents windows when active\n"
+"    _onActivate: function () {\n"
+"        this._window.present ();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function () {\n"
+"        this._buildUI ();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function () {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow  ({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            title: \"Spinner Example\",\n"
+"            default_height: 200,\n"
+"            default_width: 200,\n"
+"            border_width: 30 });\n"
+"\n"
+"        // Create a spinner which starts spinning automatically\n"
+"        this._spinner = new Gtk.Spinner ({active: true});\n"
+"        this._window.add (this._spinner);\n"
+"\n"
+"        // Connect a keypress event to the function that makes it start or stop spinning\n"
+"        this._window.connect(\"key-press-event\", Lang.bind(this, this._onKeyPress));\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    _onKeyPress: function(widget, event) {\n"
+"\n"
+"        // Get the value of the key that was pressed\n"
+"        let keyval = event.get_keyval()[1];\n"
+"\n"
+"        // If it was the spacebar, toggle the spinner to start or stop\n"
+"        if (keyval == Gdk.KEY_space) {\n"
+"            if (this._spinner.active == true)\n"
+"                this._spinner.stop();\n"
+"            else\n"
+"                this._spinner.start();\n"
+"        }\n"
+"    }\n"
+"\n"
+"\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new SpinnerExample ();\n"
+"app.application.run (ARGV);\n"
+msgstr ""
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gio = imports.gi.Gio;\n"
+"const GLib = imports.gi.GLib;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Gdk = imports.gi.Gdk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"const SpinnerExample = new Lang.Class ({\n"
+"    Name: 'Spinner Example',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function () {\n"
+"        this.application = new Gtk.Application ({\n"
+"            application_id: 'org.example.jsspinner',\n"
+"            flags: Gio.ApplicationFlags.FLAGS_NONE\n"
+"        });\n"
+"\n"
+"        // Connect 'activate' and 'startup' signals to the callback functions\n"
+"        this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"        this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents windows when active\n"
+"    _onActivate: function () {\n"
+"        this._window.present ();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function () {\n"
+"        this._buildUI ();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function () {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow  ({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            title: \"Spinner Example\",\n"
+"            default_height: 200,\n"
+"            default_width: 200,\n"
+"            border_width: 30 });\n"
+"\n"
+"        // Create a spinner which starts spinning automatically\n"
+"        this._spinner = new Gtk.Spinner ({active: true});\n"
+"        this._window.add (this._spinner);\n"
+"\n"
+"        // Connect a keypress event to the function that makes it start or stop spinning\n"
+"        this._window.connect(\"key-press-event\", Lang.bind(this, this._onKeyPress));\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    _onKeyPress: function(widget, event) {\n"
+"\n"
+"        // Get the value of the key that was pressed\n"
+"        let keyval = event.get_keyval()[1];\n"
+"\n"
+"        // If it was the spacebar, toggle the spinner to start or stop\n"
+"        if (keyval == Gdk.KEY_space) {\n"
+"            if (this._spinner.active == true)\n"
+"                this._spinner.stop();\n"
+"            else\n"
+"                this._spinner.start();\n"
+"        }\n"
+"    }\n"
+"\n"
+"\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new SpinnerExample ();\n"
+"app.application.run (ARGV);\n"
 
-#: C/image-viewer.cpp.page:61(p) C/guitar-tuner.cpp.page:64(p)
+#: C/spinner.js.page:29(item/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:"
+"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gdk.html\";>Gdk - "
+"Key Values</link>"
 msgstr ""
-"ÎÏÏÏÏ ÎÎÎÎÎ ÎÎÎÏ ÏÎÎÏ ÎÎÏÎÎÏÏ ÎÏÎÎÎÎÏ C++ ÎÎÎÎÏÎÏÏÎÏÎÏ GTKmm. ÎÎÏÎÏÏÏÏÎÏÎÏ "
-"ÎÎÏÏÎÎÎÏÎÎÎÏ ÎÎÎÎÎÏÎÎ ÏÎÏÎÎÎÏÏÂ ÏÏÎÏÏÎÏÎÏÏÎ ÎÏÏÎ ÏÎ ÎÎÏÏÎ ÎÎ ÎÎÏÎÎÎÎÎÎÎÎÏÎ "
-"ÏÎ ÎÎÏÎÎÎ:"
+"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gdk.html\";>Gdk - "
+"Key Values</link>"
 
-#: C/image-viewer.cpp.page:64(p)
+#: C/spinner.js.page:32(item/p) C/togglebutton.js.page:157(item/p)
 msgid ""
-"The three <code>#include</code> lines at the top include the <code>config</"
-"code> (useful autoconf build defines), <code>gtkmm</code> (user interface) "
-"and <code>iostream</code> (C++-STL) libraries. Functions from these "
-"libraries are used in the rest of the code."
+"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.Spinner.html";
+"\">Gtk.Spinner</link>"
 msgstr ""
-"ÎÎ ÏÏÎÎÏ ÎÏÎÎÎÎÏ <code>#include</code> ÏÏÎÎ ÎÎÏÏÏÎ ÏÎÏÎÎÎÎÎÎÎÎÏÎ ÏÎÎ "
-"<code>config</code> (ÎÏÎÎÎÎ ÏÏÎÏÎÎÎ ÎÎÏÎÏÎÎÏÎ ÏÎÏ autoconf), <code>gtkmm</"
-"code> (ÎÎÎÏÎÏÎ ÏÏÎÏÏÎ) ÎÎÎ ÎÎÎÎÎÎÎÎÎÎÏ <code>iostream</code> (C++-STL). "
-"ÎÏÎÎÏÏÎÏÎÎÏ ÎÏÏ ÎÏÏÎÏ ÏÎÏ ÎÎÎÎÎÎÎÎÎÎÏ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÏÏÎÎ ÏÏÏÎÎÎÏÎ ÎÏÎÎÎÎ."
+"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.Spinner.html";
+"\">Gtk.Spinner</link>"
 
-#: C/image-viewer.cpp.page:67(p)
-msgid ""
-"The <code>main</code> function creates a new (empty) window and sets the "
-"window title."
-msgstr ""
-"Î ÏÏÎÎÏÏÎÏÎ <code>main</code> ÎÎÎÎÎÏÏÎÎÎ ÎÎÎ ÎÎÎ (ÎÎÎÎÎ) ÏÎÏÎÎÏÏÎ ÎÎÎ ÎÏÎÎÎÎ "
-"ÏÎÎ ÏÎÏÎÎ ÏÎÏ ÏÎÏÎÎÏÏÎÏ."
+#: C/spinner.py.page:7(info/title)
+#, fuzzy
+msgctxt "text"
+msgid "Spinner (Python)"
+msgstr "ÎÎÏÏÎÏÎÏ (Python)"
 
-#: C/image-viewer.cpp.page:70(p)
+#: C/spinner.py.page:29(section/code)
+#, no-wrap
 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."
+"from gi.repository import Gtk\n"
+"from gi.repository import Gdk\n"
+"import sys\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    # a window\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"Spinner Example\", application=app)\n"
+"        self.set_default_size(200, 200)\n"
+"        self.set_border_width(30)\n"
+"\n"
+"        # a spinner\n"
+"        self.spinner = Gtk.Spinner()\n"
+"        # that by default spins\n"
+"        self.spinner.start()\n"
+"        # add the spinner to the window\n"
+"        self.add(self.spinner)\n"
+"\n"
+"    # event handler\n"
+"    # a signal from the keyboard (space) controls if the spinner stops/starts\n"
+"    def do_key_press_event(self, event):\n"
+"        # keyname is the symbolic name of the key value given by the event\n"
+"        keyname = Gdk.keyval_name(event.keyval)\n"
+"        # if it is \"space\"\n"
+"        if keyname == \"space\":\n"
+"            # and the spinner is active\n"
+"            if self.spinner.get_property(\"active\"):\n"
+"                # stop the spinner\n"
+"                self.spinner.stop()\n"
+"            # if the spinner is not active\n"
+"            else:\n"
+"                # start it again\n"
+"                self.spinner.start()\n"
+"        # stop the signal emission\n"
+"        return True\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
 msgstr ""
-"Î ÎÎÎÏÎ <code>kit::run()</code> ÎÏÏÎÎÎÎ ÏÎÎ ÎÏÏÎÎ ÎÏÏÏÎ GTKmm, ÏÎÏ ÎÎÏÎÎÎÎ "
-"ÏÎ ÎÎÎÏÎÏÎ ÏÏÎÏÏÎ ÎÎÎ ÎÏÏÎÎÎÎ ÏÎÎ ÎÏÎÎÏÎÏÎ ÎÎÎ ÏÏÎÎÎÎÏÎ (ÏÏÏÏ ÎÎÎÎ ÎÎÎ "
-"ÏÎÏÎÎÎÏÎ ÏÎÎÎÏÏÎÏ). ÎÎÎÏÏ ÎÎÎÎÏÎÎ ÏÎ ÏÎÏÎÎÏÏÎ ÏÏ ÏÏÎÏÎÎ ÏÎ ÎÏÏÎÎ ÏÎ "
-"ÏÏÎÎÏÏÎÏÎ, Î ÎÏÎÏÎÎÎÎ ÎÎ ÎÎÎÎÏÎÎÎÎÏÎÎ ÎÏÏÏÎÎÏÎ ÏÏÎÎ ÏÎ ÏÎÏÎÎÏÏÎ ÎÎÎÎÏÎÎ."
+"from gi.repository import Gtk\n"
+"from gi.repository import Gdk\n"
+"import sys\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    # a window\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"Spinner Example\", application=app)\n"
+"        self.set_default_size(200, 200)\n"
+"        self.set_border_width(30)\n"
+"\n"
+"        # a spinner\n"
+"        self.spinner = Gtk.Spinner()\n"
+"        # that by default spins\n"
+"        self.spinner.start()\n"
+"        # add the spinner to the window\n"
+"        self.add(self.spinner)\n"
+"\n"
+"    # event handler\n"
+"    # a signal from the keyboard (space) controls if the spinner stops/starts\n"
+"    def do_key_press_event(self, event):\n"
+"        # keyname is the symbolic name of the key value given by the event\n"
+"        keyname = Gdk.keyval_name(event.keyval)\n"
+"        # if it is \"space\"\n"
+"        if keyname == \"space\":\n"
+"            # and the spinner is active\n"
+"            if self.spinner.get_property(\"active\"):\n"
+"                # stop the spinner\n"
+"                self.spinner.stop()\n"
+"            # if the spinner is not active\n"
+"            else:\n"
+"                # start it again\n"
+"                self.spinner.start()\n"
+"        # stop the signal emission\n"
+"        return True\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
 
-#: C/image-viewer.cpp.page:77(p) C/image-viewer.c.page:80(p)
-#: C/guitar-tuner.cpp.page:79(p) C/guitar-tuner.c.page:85(p)
+#: C/spinner.py.page:31(note/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."
+"<code>Gdk.keyval_name(event.keyval)</code> converts the key value "
+"<code>event.keyval</code> into a symbolic name. The names and corresponding "
+"key values can be found <link href=\"http://git.gnome.org/browse/gtk+/tree/";
+"gdk/gdkkeysyms.h\">here</link>,but for instance <code>GDK_KEY_BackSpace</"
+"code> becomes the string <code>\"BackSpace\"</code>."
 msgstr ""
-"ÎÎÏÎÏÏÎ <gui>Execute</gui> ÏÏÎ ÎÏÏÎÎÎÎ ÏÎÏÎÎÏÏÎ ÏÎÏ ÎÎÏÎÎÎÎÎÏÎÎ ÎÎÎ ÏÏÎÎÎÏÎ "
-"ÎÎÏÎÏÎÎÏÎÏ ÎÏÎÏÏÎÎÎÎÏÏÏÎÏ. ÎÏÎÎÎÎÎÏÎÎ ÎÎ ÏÎ ÎÎÎÎÏÎ ÎÏÏÏ ÎÏÎÎ ÎÎÎ ÏÎÏÎ, ÎÎÎ "
-"ÏÎÎ ÏÏÏÏÎ ÎÎÏÎÏÎÎÏÎ."
+"ÎÎ <code>Gdk.keyval_name(event.keyval)</code> ÎÎÏÎÏÏÎÏÎÎ ÏÎÎ ÏÎÎÎ ÎÎÎÎÎÎÎÏ "
+"<code>event.keyval</code> ÏÎ ÎÎÎ ÏÏÎÎÎÎÎÎÏ ÏÎÎÎÎ. ÎÎ ÎÎÏÎÎÏÎ ÎÎÎ ÎÎ "
+"ÎÎÏÎÏÏÎÎÏÎÏ ÏÎÎÎÏ ÎÎÎÎÎÎÎÏ ÎÏÎÏÎÏÎ ÎÎ ÎÏÎÎÎÏÎ <link href=\"http://git.gnome.";
+"org/browse/gtk+/tree/gdk/gdkkeysyms.h\">ÎÎÏ</link>, ÎÎÎÎ ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ ÏÎ "
+"<code>GDK_KEY_BackSpace</code> ÎÎÎÎÏÎÎ Î ÏÏÎÎÎÎÎÏÎÎÏÎ <code>\"BackSpace\"</"
+"code>."
 
-#: C/image-viewer.cpp.page:82(p)
+#: C/spinner.py.page:40(item/p) C/togglebutton.py.page:47(item/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>:"
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkSpinner.html";
+"\">GtkSpinner</link>"
 msgstr ""
-"ÎÏÏÎ ÎÎÎÎÏÎÎ ÎÏÎ ÏÏÎ ÎÎÎÎÎ ÏÎÏÎÎÏÏÎ. ÎÎ GTKmm ÎÏÎÎÎÏÎÎÎ ÏÎ ÎÎÎÏÎÏÎ ÏÏÎÏÏÎ ÎÎ "
-"ÏÎ <code>Gtk::Container</code> ÏÎÏ ÎÏÎÏÎÎ ÎÎ ÏÎÏÎÎÏÎÎ ÎÎÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ "
-"ÎÎÎ ÎÎÏÎÎ ÎÎÎÎÏÏ ÏÎÏÎÎÎÏÎÏ. ÎÎÏ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÏÎÎ ÎÏÎÎÏÏÏÎÏÎ ÎÎÎÎÎÏÎÎÎ "
-"ÏÎÏÎÎÎÏÎ, ÎÎÎÎ <code>Gtk::Box</code>:"
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkSpinner.html";
+"\">GtkSpinner</link>"
 
-#: C/image-viewer.cpp.page:115(p)
+#: C/spinner.py.page:41(item/p)
 msgid ""
-"The first lines create the widgets we want to use: a button for opening up "
-"an image, the image view widget itself and the box we will use as a "
-"container."
+"<link href=\"http://developer.gnome.org/gdk/stable/gdk-Keyboard-Handling.html";
+"\">Key Values</link>"
 msgstr ""
-"ÎÎ ÏÏÏÏÎÏ ÎÏÎÎÎÎÏ ÎÎÎÎÎÏÏÎÎÏÎ ÏÎ ÎÏÎÎÏÎÎÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÎ ÏÏÎÏÎ. ÎÎÎ "
-"ÎÎÏÎÏÎ ÎÎÎ ÎÎÎÎÎÎÎ ÎÎÎÏ ÎÎÎÏÎÎÏ, ÏÎ ÎÎÎÎ ÏÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÏÏÎÎÎÎÎÏ ÏÎÏ "
-"ÎÎÎÏÎÎÏ ÎÎÎ ÏÎ ÏÎÎÎÏÎÎ ÏÎÏ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÏÏ ÏÎÏÎÎÎÏÎ."
+"<link href=\"http://developer.gnome.org/gdk/stable/gdk-Keyboard-Handling.html";
+"\">Key Values</link>"
 
-#: 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 ""
-"ÎÎ ÎÎÎÏÎÎÏ ÏÏÎ <code>pack_start</code> ÏÏÎÏÎÎÏÎÏÎ ÏÎ ÎÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ "
-"ÏÏÎ ÏÎÎÎÏÎÎ ÎÎÎ ÎÏÎÎÎÏÎ ÏÎ ÏÏÎÏÎÏÎÏÎÏÎ ÏÎÏÏ. Î ÎÎÎÏÎÎ ÎÎ ÎÏÎÎÏÎÎÎÎ ÏÎ ÎÎÎÎ "
-"ÎÎÎÎÎÏÎÎÎ ÏÏÏÎ, ÎÎÏ ÏÎ ÎÎÏÎÏÎ ÎÎ ÎÎÎÎÎ ÎÏÎÎ ÏÏÏÎ ÎÎÎÎÎÎ ÏÏÎ ÏÏÎÎÎÎÎÏÎÎ. ÎÎ "
-"ÏÎÏÎÏÎÏÎÏÎÏÎ ÏÏÎ ÎÎÎ ÎÏÎÎÎÏÎÎ ÏÎÏÎ ÎÎÎÎÎÎ ÏÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ. ÎÏÎ GTKmm "
-"ÎÏÏÏ ÏÏÎÎÎÏÏ ÎÎÎ ÏÏÎÎÎÎÎÏÎÎ ÎÏÎÎÎÎ ÎÎÎÎÎ ÏÎÎ ÎÏÎÏ ÎÎ ÎÏÎÏÎ ÎÎÎ ÎÎÎÏÎÎÎ ÏÎÏ "
-"ÏÎÎÎÎÏÎÎ ÎÎÎÎ ÎÎ ÎÎÎÏÎÏÎÏÎÎÎ ÎÎÎÎÎÎ ÏÎÏÎÎÏÏÏÎ. ÎÏÎ ÏÏÎÎÏÎÎÎ, ÏÎ ÏÎÎÎÏÎÎ "
-"ÏÏÎÏÏÎÎÎÏÎÎ ÏÏÎ ÏÎÏÎÎÏÏÎ."
+#: C/spinner.vala.page:7(info/title)
+#, fuzzy
+msgctxt "text"
+msgid "Spinner (Vala)"
+msgstr "ÎÎÏÏÎÏÎÏ (Vala)"
 
-#: C/image-viewer.cpp.page:124(p)
+#: C/spinner.vala.page:24(page/code)
+#, no-wrap
 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."
+"public class MyWindow : Gtk.ApplicationWindow {\n"
+"\n"
+"\tGtk.Widget spinner;\n"
+"\n"
+"\tinternal MyWindow (MyApplication app) {\n"
+"\n"
+"\t\tObject (application: app, title: \"Spinner Example\");\n"
+"\n"
+"\t\tthis.set_default_size (200, 200);\n"
+"\t\tthis.border_width = 30;\n"
+"\n"
+"\t\tspinner = new Gtk.Spinner ();\n"
+"\n"
+"\t\tthis.add (spinner);\n"
+"\t\t(spinner as Gtk.Spinner).active = true;\n"
+"\t\tspinner.show ();\n"
+"\t}\n"
+"\n"
+"\tprotected override bool key_press_event (Gdk.EventKey event) {\n"
+"\n"
+"\t\t//print (Gdk.keyval_name(event.keyval) +\"\\n\");\n"
+"\t\tif (Gdk.keyval_name(event.keyval) == \"space\") {\n"
+"\n"
+"\t\t\tif ((spinner as Gtk.Spinner).active) {\n"
+"\t\t\t\t(spinner as Gtk.Spinner).stop ();\n"
+"\t\t\t\t//spinner.visible = false;\n"
+"\t\t\t}\n"
+"\t\t\telse {\n"
+"\t\t\t\t(spinner as Gtk.Spinner).start ();\n"
+"\t\t\t\t//spinner.visible = true;\n"
+"\t\t\t}\n"
+"\t\t}\n"
+"\t\treturn true;\n"
+"\t}\n"
+"}\n"
+"\n"
+"public class MyApplication : Gtk.Application {\n"
+"\n"
+"\tprotected override void activate () {\n"
+"\t\tMyWindow window = new MyWindow (this);\n"
+"\t\twindow.show ();\n"
+"\t}\n"
+"\n"
+"\tinternal MyApplication () {\n"
+"\t\tObject (application_id: \"org.example.spinner\");\n"
+"\t}\n"
+"}\n"
+"\n"
+"public int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
 msgstr ""
-"ÎÏÎÎÎÎÏÎÎÏÏÎ ÎÎ ÎÏÎÏÎÏÎÎ ÏÎ ÏÏÎÎÎÎÎÎÎ ÏÏÎÎ Î ÏÏÎÏÏÎÏ ÏÎÏÎ ÏÎ ÎÎÎ ÏÎÎÎÏÏÎ. ÎÎ "
-"GTKmm ÏÏÎÏÎÎÎÏÎÎÎÎ ÏÎÎ ÎÎÎÎÎÎ ÏÏÎ <em>ÏÎÎÎÏÏÎ</em>. ÎÏÎÎ ÏÎ ÎÎÏÎÏÎ ÏÎÏÎÎÏÎÎ, "
-"ÎÎÎÎÎÎ ÏÎ ÏÎÎÎ <em>ÏÎÏÎÎÎÎÎ</em>, ÏÎÏ ÎÏÎÏÎÏÎÎ ÎÎ ÏÏÎÎÎÏÎÏÎÎ ÎÎ ÎÎÏÎÎÎ "
-"ÎÎÎÏÎÎÎÎ. ÎÏÏÏ ÎÎÎÎÏÎÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ ÎÎÎÎÎÎ <code>signal_clicked()."
-"connect</code> ÏÎÏ ÎÎÎÎ ÏÏÎ GTKmm ÎÎ ÎÎÎÎÏÎÎ ÏÎ ÏÏÎÎÏÏÎÏÎ "
-"<code>on_open_image</code> ÏÏÎÎ ÏÎ ÎÎÏÎÏÎ ÏÎÏÎÎÏÎÎ. ÎÎ ÎÏÎÏÎÏÎÎ ÏÎÎ "
-"<em>ÎÏÎÎÎÎÎÎÏÎ</em> ÏÏÎÎ ÎÏÏÎÎÎÎ ÎÎÏÏÎÏÎ."
+"public class MyWindow : Gtk.ApplicationWindow {\n"
+"\n"
+"\tGtk.Widget spinner;\n"
+"\n"
+"\tinternal MyWindow (MyApplication app) {\n"
+"\n"
+"\t\tObject (application: app, title: \"Spinner Example\");\n"
+"\n"
+"\t\tthis.set_default_size (200, 200);\n"
+"\t\tthis.border_width = 30;\n"
+"\n"
+"\t\tspinner = new Gtk.Spinner ();\n"
+"\n"
+"\t\tthis.add (spinner);\n"
+"\t\t(spinner as Gtk.Spinner).active = true;\n"
+"\t\tspinner.show ();\n"
+"\t}\n"
+"\n"
+"\tprotected override bool key_press_event (Gdk.EventKey event) {\n"
+"\n"
+"\t\t//print (Gdk.keyval_name(event.keyval) +\"\\n\");\n"
+"\t\tif (Gdk.keyval_name(event.keyval) == \"space\") {\n"
+"\n"
+"\t\t\tif ((spinner as Gtk.Spinner).active) {\n"
+"\t\t\t\t(spinner as Gtk.Spinner).stop ();\n"
+"\t\t\t\t//spinner.visible = false;\n"
+"\t\t\t}\n"
+"\t\t\telse {\n"
+"\t\t\t\t(spinner as Gtk.Spinner).start ();\n"
+"\t\t\t\t//spinner.visible = true;\n"
+"\t\t\t}\n"
+"\t\t}\n"
+"\t\treturn true;\n"
+"\t}\n"
+"}\n"
+"\n"
+"public class MyApplication : Gtk.Application {\n"
+"\n"
+"\tprotected override void activate () {\n"
+"\t\tMyWindow window = new MyWindow (this);\n"
+"\t\twindow.show ();\n"
+"\t}\n"
+"\n"
+"\tinternal MyApplication () {\n"
+"\t\tObject (application_id: \"org.example.spinner\");\n"
+"\t}\n"
+"}\n"
+"\n"
+"public int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
 
-#: C/image-viewer.cpp.page:128(p)
+#: C/spinner.vala.page:29(item/p)
 msgid ""
-"The last step is to show all widgets in the window using "
-"<code>show_all_children()</code>. This is equivalent to using the <code>show"
-"()</code> method on all our child widgets."
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Widget.html\";>Gtk.Widget</"
+"link>"
 msgstr ""
-"ÎÎ ÏÎÎÎÏÏÎÎÎ ÎÎÎÎ ÎÎÎÎÎ Î ÎÎÏÎÎÎÏÎ ÏÎÏÎ ÏÏÎ ÎÏÎÏÎÎÏÎ ÏÏÏÏÎÏÎÎÏÎ ÏÏÎ ÏÎÏÎÎÏÏÎ "
-"ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ <code>show_all_children()</code>. ÎÏÏÏ ÎÎÎÎÎ ÎÏÎÎÏÎÎÎÎ ÎÏ ÏÎ "
-"ÏÏÎÏÎ ÏÎÏ ÎÎÎÏÎÎÏ <code>show()</code> ÏÎ ÏÎÎ ÏÎ ÎÏÎÎÏÏÎÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ."
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Widget.html\";>Gtk.Widget</"
+"link>"
 
-#: C/image-viewer.cpp.page:137(p)
+#: C/spinner.vala.page:30(item/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."
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Spinner.html\";>Gtk.Spinner</"
+"link>"
 msgstr ""
-"ÎÎ ÎÏÎÏÎÏÎÎ ÏÏÏÎ ÏÎÎ ÏÎÎÏÎÏÏÎ ÏÎÎÎÏÎÏ ÎÎÎ ÏÎ ÏÎÎÎ <em>ÏÎÏÎÎÎÎÎ</em> Î ÎÎÎ ÏÎ "
-"ÎÎÏÎÏÎ ÏÎÏ ÎÎÎÏÎÏÎÎÎ ÏÏÎÎ. ÎÏÎÏÎÎÏÏÎ ÎÏÏÏÎ ÏÎÎ ÎÏÎÎÎÎ ÏÏÎÎ ÏÎ ÎÎÎÎÎÎ "
-"<code>main</code>."
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Spinner.html\";>Gtk.Spinner</"
+"link>"
 
-#: C/image-viewer.cpp.page:175(p)
+#: C/spinner.vala.page:31(item/p)
 msgid ""
-"The dialog for choosing the file is created using the <code>Gtk::"
-"FileChooserDialog</code> constructor. This takes the title and type of the "
-"dialog. In our case, it is an <em>Open</em> dialog."
+"<link href=\"http://www.valadoc.org/gdk-3.0/Gdk.keyval_name.html\";>Gdk."
+"keyval_name</link>"
 msgstr ""
-"Î ÎÎÎÎÎÎÎÏ ÎÏÎÎÎÎÎÏ ÏÎÏ ÎÏÏÎÎÎÏ ÎÎÎÎÎÏÏÎÎÎÎÎÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎÎ "
-"ÎÎÏÎÏÎÎÏÎÏÏÎ <code>Gtk::FileChooserDialog</code>. ÎÏÏÏ ÏÎÎÏÎÎÎ ÏÎÎ ÏÎÏÎÎ ÎÎÎ "
-"ÏÏÏÎ ÏÎÏ ÎÎÎÎÏÎÎÏ. ÎÏÎÎ ÏÎÏÎÏÏÏÏÎ ÎÎÏ, ÎÎÎÎÎ ÎÎÎÏ ÎÎÎÎÎÎÎÏ <em>ÎÎÎÎÎÎÎÏÎÏ</"
-"em>."
+"<link href=\"http://www.valadoc.org/gdk-3.0/Gdk.keyval_name.html\";>Gdk."
+"keyval_name</link>"
 
-#: C/image-viewer.cpp.page:179(p)
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/statusbar.c.page:26(media)
+msgctxt "_"
 msgid ""
-"The next two lines add an <em>Open</em> and a <em>Close</em> button to the "
-"dialog."
+"external ref='media/statusbar3.png' md5='60c71604fb44656237ee66dfb39a8689'"
 msgstr ""
-"ÎÎ ÎÏÏÎÎÎÎÏ ÎÏÎ ÎÏÎÎÎÎÏ ÏÏÎÏÎÎÏÎÏÎ ÎÎÎ ÎÎÏÎÏÎ <em>ÎÎÎÎÎÎÎÏÎÏ</em> ÎÎÎ ÎÎÎ "
-"<em>ÎÎÎÎÏÎÎÎÏÎÏ</em> ÏÏÎ ÎÎÎÎÎÎÎ."
+"external ref='media/statusbar3.png' md5='60c71604fb44656237ee66dfb39a8689'"
+
+#: C/statusbar.c.page:7(info/title)
+msgctxt "text"
+msgid "Statusbar (C)"
+msgstr "ÎÏÎÎÎÎ ÎÎÏÎÏÏÎÏÎÏ (C)"
+
+#: C/statusbar.c.page:21(info/desc) C/statusbar.py.page:20(info/desc)
+#: C/statusbar.vala.page:20(info/desc)
+msgid "Report messages of minor importance to the user"
+msgstr "ÎÎÎÏÎÎÏÎ ÎÎÎÏÎÏÎÏ ÎÎÎÏÏÏÎÏÎÏ ÏÎÎÎÏÎÎÏ ÎÎÎ ÏÎÎ ÏÏÎÏÏÎ"
 
-#: C/image-viewer.cpp.page:181(p)
+#: C/statusbar.c.page:24(page/title) C/statusbar.js.page:20(page/title)
+#: C/statusbar.py.page:23(page/title) C/statusbar.vala.page:23(page/title)
+msgid "Statusbar"
+msgstr "ÎÏÎÎÎÎ ÎÎÏÎÏÏÎÏÎÏ"
+
+#: C/statusbar.c.page:27(page/p)
 msgid ""
-"The second argument to the <code>add_button()</code> method is a value to "
-"identify the clicked button. We use predefined values provided by GTKmm "
-"here, too."
+"This statusbar is used to demonstrate how messages are stacked in a last-in-"
+"first-out order. The message at the top of the stack is always the one "
+"displayed."
 msgstr ""
-"ÎÎ ÎÎÏÏÎÏÎ ÏÏÎÏÎÎ ÏÏÎ ÎÎÎÎÎÎ <code>add_button()</code> ÎÎÎÎÎ ÎÎÎ ÎÎÎ "
-"ÎÎÎÎÏÎÏÎÎÏ ÏÎÏ ÏÎÏÎÎÎÎÎÏ ÎÎÏÎÏÎÎÏ. ÎÏÎÏÎÎÎÏÎÎÎÏÎÎ ÏÏÎÎÎÎÎÏÎÏÎÎÎÎÏ ÏÎÎÎÏ ÏÎÏ "
-"ÏÎÏÎÏÎÎÏÎÎ ÎÏÏ ÏÎ GTKmm ÎÎÏ, ÎÏÎÏÎÏ."
+"ÎÏÏÎ Î ÎÏÎÎÎÎ ÎÎÏÎÏÏÎÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÎÎÎ ÎÎ ÎÎÏÎÎÎÏÎÎ ÏÏÏÎ ÎÎÎÏÎÎÏÎ "
+"ÏÏÎÎÎÎÎÎÎÏÎÎ ÏÎ ÎÎÎ ÏÎÎÏÎ ÏÎÎÎÏÏÎÎÎ ÏÏÎÏ ÏÏÏÏÎ. ÎÎ ÎÎÎÏÎÎ ÏÏÎÎ ÎÎÏÏÏÎ ÏÎÏ "
+"ÏÏÎÎÎÎÏ ÎÎÎÎÎ ÏÎÎÏÎ ÎÏÏÏ ÏÎÏ ÎÎÏÎÎÎÎÎÏÎÎ."
 
-#: C/image-viewer.cpp.page:186(p)
+#: C/statusbar.c.page:29(page/code)
+#, no-wrap
 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."
+"\n"
+"#include &lt;gtk/gtk.h&gt;\n"
+"\n"
+"\n"
+"\n"
+"/*Callback function in which pushes an item onto the statusbar*/\n"
+"static void \n"
+"push_item (GtkWidget *widget,\n"
+"           gpointer   data)\n"
+"{\n"
+"  GtkWidget *status_bar = data;\n"
+"\n"
+"  /*Create a context id, which is used to uniquely identify \n"
+"   *the source of a message*/\n"
+"  guint context_id = gtk_statusbar_get_context_id (GTK_STATUSBAR (status_bar), \n"
+"                                                   \"Statusbar example\");\n"
+"\n"
+"  /*Count is used to keep track of the amount of items \n"
+"  the user is pushing/popping*/\n"
+"  static int count = 1;\n"
+"  char hold_output[20];\n"
+"  \n"
+"  /*This is a safer form of the standard sprintf () function. The output is \n"
+"  gauranteed in this case to not exceed 20 characters, and the result is stored \n"
+"  into the 'hold_output' variable*/\n"
+"  g_snprintf (hold_output, 20, \"Item %d\", count++);\n"
+"  gtk_statusbar_push (GTK_STATUSBAR (status_bar), \n"
+"                     context_id, \n"
+"                     hold_output);\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"/*Callback function that is used to pop an item off the statusbar*/\n"
+"static void \n"
+"pop_item (GtkWidget *widget,\n"
+"          gpointer   data )\n"
+"{\n"
+"  GtkWidget *status_bar = data;\n"
+"  guint context_id = gtk_statusbar_get_context_id (GTK_STATUSBAR (status_bar), \n"
+"                                                   \"Statusbar example\");\n"
+"\n"
+"  gtk_statusbar_pop (GTK_STATUSBAR (status_bar), context_id);\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"static void\n"
+"activate (GtkApplication *app,\n"
+"          gpointer        user_data)\n"
+"{\n"
+"    GtkWidget *grid;\n"
+"    GtkWidget *window;\n"
+"    GtkWidget *status_bar;\n"
+"    GtkWidget *pop_button;\n"
+"    GtkWidget *push_button;\n"
+"\n"
+"    /*Create a window with a title, border width, and a default size**/\n"
+"    window = gtk_application_window_new (app);\n"
+"    gtk_window_set_default_size (GTK_WINDOW (window), 220, 100);\n"
+"    gtk_window_set_title (GTK_WINDOW (window), \"Statusbar Example\");\n"
+"    gtk_container_set_border_width (GTK_CONTAINER(window), 10);\n"
+"    \n"
+"    /*Create the status bar, which is held in the global variable*/\n"
+"    status_bar = gtk_statusbar_new ();      \n"
+"    \n"
+"    /*Create the buttons with labels*/\n"
+"    push_button = gtk_button_new_with_label (\"push item\");\n"
+"    pop_button = gtk_button_new_with_label (\"pop last item\");\n"
+"    \n"
+"    /*Create the grid, and attach the buttons/statusbar accordingly*/\n"
+"    grid = gtk_grid_new ();\n"
+"    gtk_grid_attach (GTK_GRID (grid), push_button, 0,1,1,1);\n"
+"    gtk_grid_attach (GTK_GRID (grid), pop_button, 0,2,1,1);\n"
+"    gtk_grid_attach (GTK_GRID (grid), status_bar, 0,3,1,1);\n"
+"    \n"
+"    /*Connecting the clicked signals to the corresponding callback functions*/\n"
+"    g_signal_connect (GTK_BUTTON (push_button), \"clicked\", \n"
+"                      G_CALLBACK (push_item), status_bar);\n"
+"    g_signal_connect (GTK_BUTTON (pop_button), \"clicked\", \n"
+"                      G_CALLBACK (pop_item), status_bar);\n"
+"    \n"
+"    /*Attach the grid holding the child widgets onto the window, and show all*/\n"
+"    gtk_container_add (GTK_CONTAINER (window), grid);\n"
+"    gtk_widget_show_all (window);\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"int\n"
+"main (int argc, char **argv)\n"
+"{\n"
+"  GtkApplication *app;\n"
+"  int status;\n"
+"\n"
+"  app = gtk_application_new (\"org.gtk.example\", G_APPLICATION_FLAGS_NONE);\n"
+"  g_signal_connect (app, \"activate\", G_CALLBACK (activate), NULL);\n"
+"  status = g_application_run (G_APPLICATION (app), argc, argv);\n"
+"  g_object_unref (app);\n"
+"\n"
+"  return status;\n"
+"}\n"
 msgstr ""
-"ÎÎ ÎÏÏÎÎÎÎÏ ÎÏÎ ÎÏÎÎÎÎÏ ÏÎÏÎÎÏÎÎÎÏÎ ÏÎ ÎÎÎÎÎÎÎ <gui>ÎÎÎÎÎÎÎ</gui> ÎÎ "
-"ÎÎÏÎÎÎÎÎÎ ÎÏÎÎ ÎÏÏÎÎÎ ÏÎÏ ÎÏÎÏÎÏÎ ÎÎ ÎÎÎÎÏÎÎÏÎ ÎÏÏ ÏÎ <code>Gtk::Image</"
-"code>. ÎÎÎ ÎÎÏÎÎÎÎÎÎÎÎ ÏÎÎÏÏÎÏ ÎÎÎÎÎÏÏÎÎÎÏÎÎ ÏÏÏÏÎÂ ÎÏÎÎÏÎ ÏÏÎÏÎÎÏÎÏÎÎ ÏÎÎ "
-"ÏÎ ÎÎÎÎ ÏÏÎ ÎÏÏÎÎÏÎ ÏÎÏ ÏÏÎÏÏÎÏÎÎÎÎÏÎÎ ÎÏÏ ÏÏÎ ÏÎÎÏÏÎ ÏÎÏÎ ÏÏÎ ÎÎÎÏÎ ÎÏÏÎÎÎ "
-"ÏÎÏ ÏÏÎÏÏÎÏÎÎÎÎÏÎÎ ÎÏÏ ÏÎ <code>Gdk::Pixbuf</code> (ÏÎÏ ÏÎÏÎÎÎÎÎÎÎÎÎ ÏÎÏ "
-"ÏÎÏÎÏÏÏÏÎÏÎÏ ÎÎÏÏÎÏ ÎÎÎÏÎÏÎ ÏÏÏÏ PNG ÎÎÎ JPEG) ÏÏÎ ÏÎÎÏÏÎ. ÎÎÎÎÏ, ÎÏÎÎÎÏÎÎ "
-"ÎÏÏÏ ÏÎ ÏÎÎÏÏÎ ÎÎ ÎÎÎÎÎ ÏÎ ÏÎÎÏÏÎ ÏÎÏ ÎÎÎÎÏÎÎÏ <gui>ÎÎÎÎÎÎÎ</gui>."
+"\n"
+"#include &lt;gtk/gtk.h&gt;\n"
+"\n"
+"\n"
+"\n"
+"/*Callback function in which pushes an item onto the statusbar*/\n"
+"static void \n"
+"push_item (GtkWidget *widget,\n"
+"           gpointer   data)\n"
+"{\n"
+"  GtkWidget *status_bar = data;\n"
+"\n"
+"  /*Create a context id, which is used to uniquely identify \n"
+"   *the source of a message*/\n"
+"  guint context_id = gtk_statusbar_get_context_id (GTK_STATUSBAR (status_bar), \n"
+"                                                   \"Statusbar example\");\n"
+"\n"
+"  /*Count is used to keep track of the amount of items \n"
+"  the user is pushing/popping*/\n"
+"  static int count = 1;\n"
+"  char hold_output[20];\n"
+"  \n"
+"  /*This is a safer form of the standard sprintf () function. The output is \n"
+"  gauranteed in this case to not exceed 20 characters, and the result is stored \n"
+"  into the 'hold_output' variable*/\n"
+"  g_snprintf (hold_output, 20, \"Item %d\", count++);\n"
+"  gtk_statusbar_push (GTK_STATUSBAR (status_bar), \n"
+"                     context_id, \n"
+"                     hold_output);\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"/*Callback function that is used to pop an item off the statusbar*/\n"
+"static void \n"
+"pop_item (GtkWidget *widget,\n"
+"          gpointer   data )\n"
+"{\n"
+"  GtkWidget *status_bar = data;\n"
+"  guint context_id = gtk_statusbar_get_context_id (GTK_STATUSBAR (status_bar), \n"
+"                                                   \"Statusbar example\");\n"
+"\n"
+"  gtk_statusbar_pop (GTK_STATUSBAR (status_bar), context_id);\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"static void\n"
+"activate (GtkApplication *app,\n"
+"          gpointer        user_data)\n"
+"{\n"
+"    GtkWidget *grid;\n"
+"    GtkWidget *window;\n"
+"    GtkWidget *status_bar;\n"
+"    GtkWidget *pop_button;\n"
+"    GtkWidget *push_button;\n"
+"\n"
+"    /*Create a window with a title, border width, and a default size**/\n"
+"    window = gtk_application_window_new (app);\n"
+"    gtk_window_set_default_size (GTK_WINDOW (window), 220, 100);\n"
+"    gtk_window_set_title (GTK_WINDOW (window), \"Statusbar Example\");\n"
+"    gtk_container_set_border_width (GTK_CONTAINER(window), 10);\n"
+"    \n"
+"    /*Create the status bar, which is held in the global variable*/\n"
+"    status_bar = gtk_statusbar_new ();      \n"
+"    \n"
+"    /*Create the buttons with labels*/\n"
+"    push_button = gtk_button_new_with_label (\"push item\");\n"
+"    pop_button = gtk_button_new_with_label (\"pop last item\");\n"
+"    \n"
+"    /*Create the grid, and attach the buttons/statusbar accordingly*/\n"
+"    grid = gtk_grid_new ();\n"
+"    gtk_grid_attach (GTK_GRID (grid), push_button, 0,1,1,1);\n"
+"    gtk_grid_attach (GTK_GRID (grid), pop_button, 0,2,1,1);\n"
+"    gtk_grid_attach (GTK_GRID (grid), status_bar, 0,3,1,1);\n"
+"    \n"
+"    /*Connecting the clicked signals to the corresponding callback functions*/\n"
+"    g_signal_connect (GTK_BUTTON (push_button), \"clicked\", \n"
+"                      G_CALLBACK (push_item), status_bar);\n"
+"    g_signal_connect (GTK_BUTTON (pop_button), \"clicked\", \n"
+"                      G_CALLBACK (pop_item), status_bar);\n"
+"    \n"
+"    /*Attach the grid holding the child widgets onto the window, and show all*/\n"
+"    gtk_container_add (GTK_CONTAINER (window), grid);\n"
+"    gtk_widget_show_all (window);\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"int\n"
+"main (int argc, char **argv)\n"
+"{\n"
+"  GtkApplication *app;\n"
+"  int status;\n"
+"\n"
+"  app = gtk_application_new (\"org.gtk.example\", G_APPLICATION_FLAGS_NONE);\n"
+"  g_signal_connect (app, \"activate\", G_CALLBACK (activate), NULL);\n"
+"  status = g_application_run (G_APPLICATION (app), argc, argv);\n"
+"  g_object_unref (app);\n"
+"\n"
+"  return status;\n"
+"}\n"
 
-#: C/image-viewer.cpp.page:187(p)
+#: C/statusbar.c.page:37(item/p)
 msgid ""
-"<code>Glib::RefPtr</code> is a smart pointer used here, that makes sure that "
-"the filter is destroyed when there is no reference to it anymore."
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkStatusbar.htmll";
+"\">GtkStatusBar</link>"
 msgstr ""
-"Î <code>Glib::RefPtr</code> ÎÎÎÎÎ ÎÎÎÏ ÎÎÏÏÎÎÏ ÎÎÎÎÏÎÏ ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ "
-"ÎÎÏ, ÎÏÏÏ ÎÏÎÎÎÎÎÎÏÎÎÎ ÏÏÎ ÏÎ ÏÎÎÏÏÎ ÎÎÏÎÏÏÏÎÏÎÏÎÎ ÏÏÎÎ ÎÎÎ ÏÏÎÏÏÎÎ ÎÎÎÏÎÏÎ "
-"ÎÎÎ ÎÏÏÏ ÏÎÎ."
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkStatusbar.htmll";
+"\">GtkStatusBar</link>"
 
-#: C/image-viewer.cpp.page:191(p)
+#: C/statusbar.c.page:38(item/p)
 msgid ""
-"<code>dialog.run</code> displays the <gui>Open</gui> dialog. The dialog will "
-"wait for the user to choose an image; when they do, <code>dialog.run</code> "
-"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."
+"<link href=\"http://developer.gnome.org/glib/stable/glib-String-Utility-";
+"Functions.html#g-snprintf\">String Utility Functions</link>"
 msgstr ""
-"Î <code>dialog.run</code> ÎÎÏÎÎÎÎÎÎ ÏÎ ÎÎÎÎÎÎÎ <gui>ÎÎÎÎÎÎÎ</gui>. Î "
-"ÎÎÎÎÎÎÎÏ ÎÎ ÏÎÏÎÎÎÎÎÎ ÏÎÎ ÏÏÎÏÏÎ ÎÎ ÎÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎÏÎÎÂ ÏÏÎÎ ÎÎÎÎÎÎÎÎ, Î "
-"<code>dialog.run</code> ÎÎ ÎÏÎÏÏÏÎÏÎÎ ÏÎÎ ÏÎÎÎ <code>Gtk::RESPONSE_ACCEPT</"
-"code> (ÎÎ ÎÏÎÏÏÏÎÏÎÎ <code>Gtk::RESPONSE_CANCEL</code> ÎÎ Î ÏÏÎÏÏÎÏ ÏÎÏÎÏÎÎ "
-"<gui>ÎÎÏÏÏÏÎ</gui>). Î ÏÏÏÏÎÏÎ <code>switch</code> ÎÎÎÎÏÎÎ ÎÎÎ ÎÏÏÏ."
+"<link href=\"http://developer.gnome.org/glib/stable/glib-String-Utility-";
+"Functions.html#g-snprintf\">String Utility Functions</link>"
 
-#: C/image-viewer.cpp.page:194(p)
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/statusbar.js.page:21(media)
+msgctxt "_"
 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."
+"external ref='media/statusbar2.png' md5='ff6f7e5b270827ca98b2d5f7087aa766'"
 msgstr ""
-"ÎÏÏÎÎÏÎÎ ÏÎ ÎÎÎÎÎÎÎ <gui>ÎÎÎÎÎÎÎ</gui> ÎÏÎÎÎÎ ÎÎÎ ÏÎÎ ÏÏÎÎÎÎÏÎÎÏÏÎ ÏÎÎ. Î "
-"ÎÎÎÎÎÎÎÏ ÎÎ ÎÏÏÏÏÎÎ ÎÏÎÏÏÎÏÎ ÏÎ ÎÎÎÎ ÏÎÏÎÏÏÏÏÎ, ÎÎÎÏÏ ÎÎÎÎÎ ÎÎÎ ÏÎÏÎÎÎ "
-"ÎÎÏÎÎÎÎÏÎ ÎÏÎÎ ÎÎÎ ÎÎÏÎÏÏÏÎÏÎÏÎÎ (ÎÎÎ ÏÏÎÎÏÏÏ ÎÏÏÎÎÏÎÎ) ÏÏÎÎ Î ÎÎÎÎÎÎÎÎ "
-"ÏÎÎÎÎÏÎÎÎ."
+"external ref='media/statusbar2.png' md5='ff6f7e5b270827ca98b2d5f7087aa766'"
 
-#: 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 ""
-"ÎÎ ÏÏÎÎÎÏÎÏÎÎ ÏÏÎ Î ÏÏÎÏÏÎÏ ÏÎÏÎÏÎ ÏÎ <gui>ÎÎÎÎÎÎÎ</gui>, Î ÎÏÏÎÎÎÎ ÎÏÎÎÎÎ "
-"ÏÎÏÏÏÎÎÎ ÏÎ ÎÏÏÎÎÎ ÏÏÎ <code>Gtk::Image</code>, ÎÏÏÎ ÏÏÏÎ ÎÎ ÎÎÏÎÎÎÎÎÏÎÎ."
+#: C/statusbar.js.page:7(info/title)
+msgctxt "text"
+msgid "Statusbar (JavaScript)"
+msgstr "ÎÏÎÎÎÎ ÎÎÏÎÏÏÎÏÎÏ (JavaScript)"
 
-#: C/image-viewer.cpp.page:206(p) C/image-viewer.c.page:218(p)
+#: C/statusbar.js.page:17(info/desc)
+msgid "Show notifications in a dedicated statusbar"
+msgstr "ÎÎÏÎÎÎÏÎ ÎÎÎÎÏÎÎÎÏÎÏÎ ÏÎ ÎÎÎ ÎÏÎÏÎÏÎÎÎÎ ÎÏÎÎÎÎ ÎÎÏÎÏÏÎÏÎÏ"
+
+#: C/statusbar.js.page:22(page/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!"
+"This statusbar keeps track of how many times you've clicked a button. "
+"Applications like <link href=\"http://projects.gnome.org/gedit/\";>gedit</"
+"link> use statusbars to display information at a glance, and show "
+"notifications without interrupting the user."
 msgstr ""
-"ÎÎÎ ÎÎÎ ÏÎ ÎÏÎÏÎ ÎÎÎ ÎÎÎÎÎ, ÎÏÎÎÎÎÏÎ ÏÎÎ ÎÏÎÏÎÎÎÎ <file>Debug/src/image-"
-"viewer</file> ÏÏÎÎ ÎÎÎÎÎÎÎ ÏÎÏ ÎÎÏÎÎÎÎÎÏÎÎ. ÎÎÎÎÎÎ, ÏÎÏÎÏÏÎ <gui>ÏÏÎÎÎÎÎ</"
-"gui> ÎÎÎ ÎÏÎÎÎÏÏÏÎ!"
+"ÎÏÏÎ Î ÎÏÎÎÎÎ ÎÎÏÎÏÏÎÏÎÏ ÎÏÎÏÎ ÎÏÎÎ ÏÎÏ ÎÏÎÎÎÎÏ ÏÏÎ ÏÎÏÏÎ ÏÎÏ ÏÎÏÎÏÎÏÎ ÎÎÎ "
+"ÎÎÏÎÏÎ. ÎÏÎÏÎÎÎÎÏ ÏÏÏÏ <link href=\"http://projects.gnome.org/gedit/";
+"\">gedit</link> ÏÏÎÏÎÎÎÏÎÎÎÏÎ ÏÎÏ ÎÏÎÎÎÎÏ ÎÎÏÎÏÏÎÏÎÏ ÎÎÎ ÎÎÏÎÎÎÏÎ "
+"ÏÎÎÏÎÏÎÏÎÏÎ ÎÎ ÎÎÎ ÎÎÏÎÎ, ÎÎÎ ÎÎÏÎÎÎÏÎ ÎÎÎÎÏÎÎÎÏÎÏÎ ÏÏÏÎÏ ÎÎÎÎÎÏÎ ÏÎÏ ÏÏÎÏÏÎ."
 
-#: C/image-viewer.cpp.page:211(p)
+#: C/statusbar.js.page:23(page/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>."
+"Messages pushed to a statusbar go on top of its stack, and can be popped off "
+"to show the next-most recent one. You can also clear away every message of a "
+"specific type all at once. This sample application demonstrates these "
+"functions."
 msgstr ""
-"ÎÎ ÎÎÏÎÎÎÏÏÏÎÏÎÏÎ ÏÏÏÎÎÎÎÎ ÎÎ ÏÎ ÎÎÎÎÎÎ, ÏÏÎÎÏÎÎÎÏÎ ÏÎÎ ÎÏÎÎÎÎ ÏÎÏ ÎÎ ÎÏÏÏÎ "
-"ÏÎÎ <link href=\"image-viewer/image-viewer.cc\">ÎÏÎÎÎÎ ÎÎÎÏÎÏÎÏ</link>."
-
-#: C/image-viewer.c.page:7(title)
-msgid "Image Viewer (C)"
-msgstr "ÎÏÎÎÎÎÎÎÏ ÎÎÎÏÎÏÎ (C)"
-
-#: C/image-viewer.c.page:28(p)
-msgid "Some basic concepts of C/GObject programming"
-msgstr "ÎÎÏÎÎÎÏ ÎÎÏÎÎÎÏ ÎÎÎÎÎÎÏ ÏÎÏ ÏÏÎÎÏÎÎÎÎÏÎÏÎÎÏ C/GObject"
-
-#: C/image-viewer.c.page:29(p)
-msgid "How to write a Gtk application in C"
-msgstr "ÎÏÏ ÎÎ ÎÏÎÏÎÏÎ ÎÎÎ ÎÏÎÏÎÎÎÎ Gtk ÏÎ C"
+"ÎÎÎÏÎÎÏÎ ÏÎÏ ÏÏÎÏÎÎÏÎÏÎÎ ÏÎ ÎÎÎ ÎÏÎÎÎÎ ÎÎÏÎÏÏÎÏÎÏ ÏÎÎÎÎÎÎÏÎ ÏÏÎÎ ÎÎÏÏÏÎ ÏÎÏ "
+"ÏÏÎÎÎÎ ÏÎÏ ÎÎÎ ÎÏÎÏÎÏÎ ÎÎ ÏÎÏÎÎÏÎ ÎÎÎ ÎÎ ÎÎÏÎÎÎÏÎÏÎ ÏÎÎ ÎÏÏÎÎÎÎ ÏÎÎ "
+"ÏÏÏÏÏÎÏÎ. ÎÏÎÏÎÎÏÎ ÎÏÎÏÎÏ ÎÎ ÎÎÎÎÏÎÏÎÏÎ ÎÎÎÎ ÎÎÎÏÎÎ ÏÏÎÎÎÎÏÎÎÎÎÎÏ ÏÏÏÎÏ "
+"ÎÎÎÎÎÎÎÏ. ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÎÏÎÏÎÎÎÎÏ ÎÎÎÏÎÎÎ ÎÏÏÎÏ ÏÎÏ ÏÏÎÎÏÏÎÏÎÎÏ."
 
-#: C/image-viewer.c.page:43(p)
+#: C/statusbar.js.page:40(section/code)
+#, no-wrap
 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."
+"\n"
+"const StatusbarExample = new Lang.Class({\n"
+"    Name: 'Statusbar Example',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application({\n"
+"            application_id: 'org.example.jsstatusbar',\n"
+"            flags: Gio.ApplicationFlags.FLAGS_NONE\n"
+"        });\n"
+"\n"
+"    // Connect 'activate' and 'startup' signals to the callback functions\n"
+"    this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"    this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents window when active\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function() {\n"
+"        this._buildUI ();\n"
+"    },\n"
 msgstr ""
-"ÎÏÎÎÎÎÏÎ <gui>Gtk+ (ÎÏÎÏ)</gui> ÎÏÏ ÏÎÎ ÎÎÏÏÎÎÎ <gui>C</gui>, ÏÎÏÎÏÏÎ "
-"<gui>ÏÏÎÎÏÎÎÎ</gui>, ÎÎÎ ÏÏÎÏÎÎÏÏÏÏÎ ÏÎÏ ÎÎÏÏÎÎÎÏÎÎÎÏ ÏÎÏ ÏÏÎÏ ÎÏÏÎÎÎÎÏ "
-"ÎÎÎÎÏ ÏÎÎÎÎÎÏ. ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ ÏÎ <file>image-viewer</file> ÏÏ ÏÎÎÎÎ ÏÎÏ "
-"ÎÏÎÎÏ ÎÎÎ ÏÎÏ ÎÎÏÎÎÏÎÎÏ."
+"\n"
+"const StatusbarExample = new Lang.Class({\n"
+"    Name: 'Statusbar Example',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application({\n"
+"            application_id: 'org.example.jsstatusbar',\n"
+"            flags: Gio.ApplicationFlags.FLAGS_NONE\n"
+"        });\n"
+"\n"
+"    // Connect 'activate' and 'startup' signals to the callback functions\n"
+"    this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"    this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents window when active\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function() {\n"
+"        this._buildUI ();\n"
+"    },\n"
 
-#: C/image-viewer.c.page:46(p)
+#: C/statusbar.js.page:66(section/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."
+"All the code for this sample goes in the StatusbarExample class. The above "
+"code creates a <link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/";
+"Gtk.Application.html\">Gtk.Application</link> for our widgets and window to "
+"go in."
 msgstr ""
-"ÎÎÎÎÎÏÎÎÎÏÎ ÏÏÎ ÎÏÎÎÎÏÎÎÏÎÎÎÏÎÏÎ ÏÎ <gui>ÏÏÎÏÎ ÏÎÏ GtkBuilder ÎÎÎ ÎÎÎÏÎÏÎ "
-"ÏÏÎÏÎ</gui> ÎÏÎÎÎÎ ÎÎ ÏÏÎÎÎÎÏÎÎ ÏÎ ÎÎÎÏÎÏÎ ÏÏÎÏÏÎ ÏÎÎÏÎÎÎÎÎÏÎ ÏÎ ÎÏÏÏ ÏÎ "
-"ÎÎÎÎÎÎ. ÎÎÎÎÎÏÏÏÎ ÏÎ ÎÎÎÎÎÎ <link xref=\"guitar-tuner.c\">ÏÏÎÎÎÏÏÎÏ ÎÎÎÎÏÎÏ</"
-"link> ÎÎÎ ÎÎÎÎÏÎ ÎÎ ÎÎÎÎÏÎ ÏÎ ÏÏÎÏÎ ÏÎÏ ÎÎÏÎÏÎÎÏÎÏÏÎ ÎÎÎÏÎÏÎÏ."
+"ÎÎÎÏ Î ÎÏÎÎÎÎÏ ÎÎÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÏÎÎÎÎÎÎÎ ÏÏÎÎ ÎÎÎÏÎ StatusbarExample. "
+"Î ÏÎÏÎÏÎÎÏ ÎÏÎÎÎÎÏ ÎÎÎÎÎÏÏÎÎÎ ÎÎÎ <link href=\"http://www.roojs.com/seed/";
+"gir-1.2-gtk-3.0/gjs/Gtk.Application.html\">Gtk.Application</link> ÎÎÎ ÎÎ "
+"ÎÏÎÏÎ ÎÎÏÎ ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÏ ÎÎÎ ÏÎ ÏÎÏÎÎÏÏÎ."
 
-#: C/image-viewer.c.page:61(p)
+#: C/statusbar.js.page:67(section/code)
+#, no-wrap
 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:"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function() {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            default_height: 120,\n"
+"            default_width: 300,\n"
+"            title: \"Button Clicker\"});\n"
+"\n"
+"        // Create a paned interface\n"
+"        this._panes = new Gtk.Paned ({\n"
+"            orientation: Gtk.Orientation.VERTICAL });\n"
 msgstr ""
-"Î C ÎÎÎÎÎ ÎÎÎ ÎÎÎÎÎÎ ÏÎÏÎÎÏÎÏÎÎÎ ÎÎÏÏÏÎ, ÎÏÏÎ ÎÎÎ ÎÎÏÎÎÎÎÎÏÎ ÏÎÏ ÏÎ ÎÏÏÎÎÎ "
-"ÏÎÏÎÎÏÎÎ ÏÎÎÏ ÎÏÎÎÎÎ. Î ÏÎÏÎÏÏÏÏÎÏÎÏ ÎÏÎÎÎÎÏ ÎÎÎÎÎ ÏÏÏÏÏÏÎ ÎÏÎÎÎÎ. ÎÎÏÏÏÎÎÎ "
-"ÎÎÎ (ÎÎÎÏ) ÏÎÏÎÎÏÏÎ ÎÎÎ ÏÎ ÎÎÏÎÎÎÎÎÎ. ÎÎÏÎÏÏÏÏÎÏÎÏ ÎÎÏÏÎÎÎÏÎÎÎÏ ÏÏÎÏÏÎÏÎ ÏÎÎ "
-"ÎÎÏÏÂ ÏÏÎÏÏÎÏÎÏÏÎ ÎÏÏÎ ÏÎ ÎÎÏÏÎ ÎÎ ÎÎÏÎÎÎÎÎÎÎÎÏÎ ÏÎ ÎÎÏÎÎÎ:"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function() {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            default_height: 120,\n"
+"            default_width: 300,\n"
+"            title: \"Button Clicker\"});\n"
+"\n"
+"        // Create a paned interface\n"
+"        this._panes = new Gtk.Paned ({\n"
+"            orientation: Gtk.Orientation.VERTICAL });\n"
 
-#: C/image-viewer.c.page:65(p) C/guitar-tuner.c.page:70(p)
+#: C/statusbar.js.page:83(section/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."
+"The _buildUI function is where we put all the code to create the "
+"application's user interface. The first step is creating a new <link href="
+"\"GtkApplicationWindow.js.page\">Gtk.ApplicationWindow</link> to put all our "
+"widgets into. The next step is to create a vertically-oriented <link href="
+"\"paned.js.page\">Gtk.Paned</link> interface, to divide the window up into "
+"two sections. This way the statusbar looks like those used in other "
+"applications, and it stays at the bottom of the window, even if the user "
+"resizes it."
 msgstr ""
-"ÎÎ ÏÏÎÎÏ ÎÏÎÎÎÎÏ <code>#include</code> ÏÏÎÎ ÎÎÏÏÏÎ ÏÎÏÎÎÎÎÎÎÎÎÏÎ ÏÎÎ "
-"<code>config</code> (ÎÏÎÎÎÎ ÏÏÎÏÎÎÎ ÎÎÏÎÏÎÎÏÎ ÏÎÏ autoconf), <code>gtk</"
-"code> (ÎÎÎÏÎÏÎ ÏÏÎÏÏÎ) ÎÎÎ ÎÎÎÎÎÎÎÎÎÎÏ <code>gi18n</code> (ÎÎÎÎÎÎÏÎÎÎÏÎ). "
-"ÎÏÎÎÏÏÎÏÎÎÏ ÎÏÏ ÎÏÏÎÏ ÏÎÏ ÎÎÎÎÎÎÎÎÎÎÏ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÏÏÎÎ ÏÏÏÎÎÎÏÎ ÎÏÎÎÎÎ."
+"Î ÏÏÎÎÏÏÎÏÎ _buildUI ÎÎÎÎÎ ÎÎÎÎ ÏÎÏ ÎÎÎÎÏÎÎ ÏÎÎ ÏÎÎ ÎÏÎÎÎÎ ÎÎÎ ÎÎÎÎÎÏÏÎÎÎ "
+"ÎÎÎÏÎÏÎÏ ÏÏÎÏÏÎ ÏÎÏ ÎÏÎÏÎÎÎÎÏ. ÎÎ ÏÏÏÏÎ ÎÎÎÎ ÎÎÎÎÎ Î ÎÎÎÎÎÏÏÎÎÎ ÎÎÏÏ ÎÎÎÏ "
+"<link href=\"GtkApplicationWindow.js.page\">Gtk.ApplicationWindow</link> ÎÎÎ "
+"ÎÎ ÎÏÎÏÎ ÎÎÏÎ ÏÎÎ ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ. ÎÎ ÎÏÏÎÎÎÎ ÎÎÎÎ ÎÎÎÎÎ Î ÎÎÎÎÎÏÏÎÎÎ "
+"ÎÎÎÏ ÎÎÎÎÏÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎÎÎÏ ÎÎÎÏÎÏÎÏ <link href=\"paned.js.page\">Gtk."
+"Paned</link>, ÎÎÎ ÎÎÎÎÏÎÏÎ ÏÎÏ ÏÎÏÎÎÏÏÎÏ ÏÎ ÎÏÎ ÎÎÏÏÎÏÎÏ. ÎÏÏÏÏ Î ÏÏÏÏÎÏ ÏÎÏ "
+"ÎÏÎÎÎÎÏ ÎÎÏÎÏÏÎÏÎÏ ÏÎÎÎÎÏÎÎ ÏÏÏÏ ÎÏÏÏÎ ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÏÎ ÎÎÎÎÏ "
+"ÎÏÎÏÎÎÎÎÏ ÎÎÎ ÏÎÏÎÎÎÎÎÎ ÏÏÎ ÎÎÏÎ ÏÎÏ ÏÎÏÎÎÏÏÎÏ, ÎÎÏÎÎ ÎÎ ÎÎ Î ÏÏÎÏÏÎÏ ÏÎ "
+"ÎÏÎÎÎÎÎÏÏÎÎ."
 
-#: C/image-viewer.c.page:68(p)
+#: C/statusbar.js.page:87(section/title)
+msgid "Creating the buttons"
+msgstr "ÎÎÎÎÎÏÏÎÎÎ ÎÎÏÎÏÎÏÎ"
+
+#: C/statusbar.js.page:88(section/code)
+#, no-wrap
 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."
+"\n"
+"        // Create the main button\n"
+"        this._clickMe = new Gtk.Button ({\n"
+"            label: \"Click Me!\" });\n"
+"        this._clickMe.connect (\"clicked\", Lang.bind (this, this._clicked));\n"
+"\n"
+"        // Create the back button\n"
+"        this._backButton = new Gtk.Button ({\n"
+"            label: \"gtk-go-back\",\n"
+"            use_stock: true });\n"
+"        this._backButton.connect (\"clicked\", Lang.bind (this, this._back));\n"
+"\n"
+"        // Create the clear button\n"
+"        this._clearButton = new Gtk.Button ({\n"
+"            label: \"gtk-clear\",\n"
+"            use_stock: true });\n"
+"        this._clearButton.connect (\"clicked\", Lang.bind (this, this._clear));\n"
 msgstr ""
-"Î ÏÏÎÎÏÏÎÏÎ <code>create_window</code> ÎÎÎÎÎÏÏÎÎÎ ÎÎÎ ÎÎÎ (ÎÎÎÎÎ) ÏÎÏÎÎÏÏÎ "
-"ÎÎÎ ÏÏÎÎÎÎÎ ÎÎÎ ÏÎÎÎ ÎÎÎ ÎÎÎÎÎ ÏÎÏ ÎÏÎÏÎÎÎÎÏ ÏÏÎÎ ÏÎ ÏÎÏÎÎÏÏÎ ÎÎÎÎÎÎÎ."
+"\n"
+"        // Create the main button\n"
+"        this._clickMe = new Gtk.Button ({\n"
+"            label: \"Click Me!\" });\n"
+"        this._clickMe.connect (\"clicked\", Lang.bind (this, this._clicked));\n"
+"\n"
+"        // Create the back button\n"
+"        this._backButton = new Gtk.Button ({\n"
+"            label: \"gtk-go-back\",\n"
+"            use_stock: true });\n"
+"        this._backButton.connect (\"clicked\", Lang.bind (this, this._back));\n"
+"\n"
+"        // Create the clear button\n"
+"        this._clearButton = new Gtk.Button ({\n"
+"            label: \"gtk-clear\",\n"
+"            use_stock: true });\n"
+"        this._clearButton.connect (\"clicked\", Lang.bind (this, this._clear));\n"
 
-#: C/image-viewer.c.page:72(p) C/guitar-tuner.c.page:77(p)
+#: C/statusbar.js.page:106(section/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)."
+"This code creates the three <link href=\"button.js.page\">Gtk.Buttons</link> "
+"we'll use to push a new message to the statusbar, pop the last one off, and "
+"clear all existing messages. The \"back\" and \"clear\" buttons are <link "
+"href=\"http://developer.gnome.org/gtk/2.24/gtk-Stock-Items.html\";>stock "
+"buttons</link>, which are automatically translated into any language GNOME "
+"supports."
 msgstr ""
-"Î ÏÏÎÎÏÏÎÏÎ <code>main</code> ÏÏÎÏÎÎ ÎÏÏ ÏÏÎÎÏÎÎÎÎÎ ÏÏÎÎ ÎÎÎÎÎÎÏÎ ÎÎÎ "
-"ÎÏÎÏÎÎÎÎ C. ÎÎÎÎÎ ÎÎÎÎÏ ÏÏÎÎÏÏÎÏÎÎÏ ÏÎÏ ÏÏÎÎÎÎÎÏÎ ÎÎÎ ÎÏÎÎÏÎ ÎÎÏÎÎÎÏÎ ÏÎÎ "
-"ÎÏÎÏÎÎÎÎ. Î ÏÏÎÎÏÏÎÏÎ <code>gtk_main</code> ÎÎÎÎÎÎ ÏÎÎ ÎÏÏÎÎ ÎÏÏÏÎ ÏÎÏ GTK, "
-"ÏÎÏ ÎÎÏÎÎÎÎ ÏÎ ÎÎÎÏÎÏÎ ÏÏÎÏÏÎ ÎÎÎ ÎÎÎÎÎÎ ÏÎÎ ÎÏÎÎÏÎÏÎ ÎÎÎ ÏÏÎÎÎÎÏÎ (ÏÏÏÏ "
-"ÎÎÎÎ ÎÎÎ ÏÎÏÎÎÎÏÎ ÎÎÏÎÏÎÏÎ)."
+"ÎÏÏÏÏ Î ÎÏÎÎÎÎÏ ÎÎÎÎÎÏÏÎÎÎ ÏÎ ÏÏÎÎ <link href=\"button.js.page\">Gtk."
+"Buttons</link> ÏÎÏ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÎÎ ÏÎÎ ÏÏÎÏÎÎÏÎ ÎÎÏÏ ÎÎÎÏ ÎÎÎÏÎÎÏÎÏ "
+"ÏÏÎ ÎÏÎÎÎÎ ÎÎÏÎÏÏÎÏÎÏ, ÎÎÎÎÎÎÎÏÎÏ ÏÎ ÏÎÎÎÏÏÎÎÎ ÎÎÎ ÎÎÎÎÏÎÎÎÎÏÎÏ ÏÎÎ ÏÎ "
+"ÏÏÎÏÏÎÎÏÎ ÎÎÎÏÎÎÏÎ. ÎÎ ÎÎÏÎÏÎÎ \"ÏÎÏÏ\" ÎÎÎ \"ÎÎÎÎÏÎÏÎÏÏ\" ÎÎÎÎÎ <link href="
+"\"http://developer.gnome.org/gtk/2.24/gtk-Stock-Items.html\";>ÎÎÏÎÏÎÎ "
+"ÏÎÏÎÎÎÏÎÎÎÎÎÏ</link>, ÏÎÏ ÎÎÏÎÏÏÎÎÎÎÏÎÎ ÎÏÏÏÎÎÏÎ ÏÎ ÎÏÎÎÎÎÎÏÎÏÎ ÎÎÏÏÏÎ GNOME "
+"ÏÏÎÏÏÎÏÎÎÎÎ."
 
-#: C/image-viewer.c.page:75(p) C/guitar-tuner.c.page:80(p)
+#: C/statusbar.js.page:108(section/code)
+#, no-wrap
 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."
+"\n"
+"        // Put the buttons in a grid\n"
+"        this._grid = new Gtk.Grid ({\n"
+"            halign: Gtk.Align.CENTER,\n"
+"            valign: Gtk.Align.CENTER });\n"
+"        this._grid.attach (this._backButton, 0, 0, 1, 1);\n"
+"        this._grid.attach_next_to (this._clickMe, this._backButton, Gtk.PositionType.RIGHT, 1, 1);\n"
+"        this._grid.attach_next_to (this._clearButton, this._clickMe, Gtk.PositionType.RIGHT, 1, 1);\n"
+"\n"
+"        // Put the grid in a large frame that fills most of the window\n"
+"        this._topFrame = new Gtk.Frame ({\n"
+"            border_width: 20,\n"
+"            height_request: 90,\n"
+"            width_request: 300});\n"
+"        this._topFrame.add (this._grid);\n"
 msgstr ""
-"Î ÏÏÏ ÏÏÎÏÏ ÎÏÎÏÎÏÏ <code>ENABLE_NLS</code> ÎÎÎÎÎÎÏÏÎ <code>gettext</code>, "
-"ÏÎÏ ÎÎÎÎÎ Î ÏÎÎÎÎÏÏÏ ÎÎÎ ÎÎÏÎÏÏÎÏÎ ÎÏÎÏÎÎÎÏÎ. ÎÏÏÎÏ ÎÎ ÏÏÎÎÏÏÎÏÎÎÏ ÎÏÎÎÎÏÎ "
-"ÏÏÏ ÏÎ ÎÏÎÎÎÎÎÎ ÎÎÏÎÏÏÎÏÎÏ ÎÎ ÏÎÎÏÎÏÏÎÏÎ ÏÎÎ ÎÏÎÏÎÎÎÎ ÏÎÏ ÏÏÎÎ ÏÎÏ ÎÎÏÎÎÎÎÏÎ."
+"\n"
+"        // Put the buttons in a grid\n"
+"        this._grid = new Gtk.Grid ({\n"
+"            halign: Gtk.Align.CENTER,\n"
+"            valign: Gtk.Align.CENTER });\n"
+"        this._grid.attach (this._backButton, 0, 0, 1, 1);\n"
+"        this._grid.attach_next_to (this._clickMe, this._backButton, Gtk.PositionType.RIGHT, 1, 1);\n"
+"        this._grid.attach_next_to (this._clearButton, this._clickMe, Gtk.PositionType.RIGHT, 1, 1);\n"
+"\n"
+"        // Put the grid in a large frame that fills most of the window\n"
+"        this._topFrame = new Gtk.Frame ({\n"
+"            border_width: 20,\n"
+"            height_request: 90,\n"
+"            width_request: 300});\n"
+"        this._topFrame.add (this._grid);\n"
 
-#: C/image-viewer.c.page:85(p)
+#: C/statusbar.js.page:124(section/p)
 msgid ""
-"Now we will bring life into the empty window. GTK organizes the user "
-"interface with <code>GtkContainer</code>s that can contain other widgets and "
-"even other containers. Here we will use the simplest available container, a "
-"<code>GtkBox</code>:"
+"This code creates the <link href=\"grid.js.page\">Gtk.Grid</link> that we'll "
+"use to organize the buttons, and attaches the buttons to it in order. It "
+"then creates a <link href=\"paned.js.page\">Gtk.Frame</link> which will take "
+"up most of the window and has a large amount of padding around the buttons, "
+"and adds the Grid to the Frame. Note that we still need to put the Frame "
+"into the Paned interface, and then add it to the ApplicationWindow."
 msgstr ""
-"ÎÏÏÎ ÎÎÎÎÏÎÎ ÎÏÎ ÏÏÎ ÎÎÎÎÎ ÏÎÏÎÎÏÏÎ. ÎÎ GTK ÎÏÎÎÎÏÎÎÎ ÏÎ ÎÎÎÏÎÏÎ ÏÏÎÏÏÎ ÎÎ "
-"ÏÎ <code>GtkContainer</code> ÏÎÏ ÎÏÎÏÎÎ ÎÎ ÏÎÏÎÎÏÎÎ ÎÎÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ "
-"ÎÎÎ ÎÎÏÎÎ ÎÎÎÎÏÏ ÏÎÏÎÎÎÏÎÏ. ÎÎÏ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÏÎÎ ÎÏÎÎÏÏÏÎÏÎ ÎÎÎÎÎÏÎÎÎ "
-"ÏÎÏÎÎÎÏÎ, ÎÎÎÎ <code>GtkBox</code>:"
+"ÎÏÏÏÏ Î ÎÏÎÎÎÎÏ ÎÎÎÎÎÏÏÎÎÎ ÏÎ <link href=\"grid.js.page\">Gtk.Grid</link> "
+"ÏÎÏ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÎÎ ÎÏÎÎÎÏÏÎ ÏÏÎ ÎÎÏÎÏÎÏÎ ÎÎÎ ÎÏÎÏÏÎÎÏÏÎÎ ÏÎ ÎÎÏÎÏÎÎ "
+"ÏÎ ÎÏÏÏ ÏÎ ÏÎÎÏÎ. ÎÎÎÎÎÏÏÎÎÎ ÎÏÎÎÏÎ ÎÎÎ <link href=\"paned.js.page\">Gtk."
+"Frame</link> ÏÎÏ ÎÎ ÎÎÏÎÎÎÎÎÎ ÏÎ ÏÎÏÎÏÏÏÏÎÏÎ ÏÎÏÎÎÏÏÎ ÎÎÎ ÎÏÎÎ ÎÎÎÎÎÎ "
+"ÏÎÏÏÏÎÏÎ ÏÏÎÏÎÎÏÏÏÎÏ ÎÏÏÏ ÎÏÏ ÏÎ ÎÎÏÎÏÎÎ ÎÎÎ ÏÏÎÏÎÎÏÎÎ ÏÎ ÏÎÎÎÎÎ ÏÏÎ "
+"ÏÎÎÎÏÎÎ. ÎÎÎÎÎÏÏÏÎ ÏÏÎ ÎÎ ÏÏÎÎÎÏÏÎÏÎÎ ÎÎÏÎÎ ÎÎ ÎÎÎÎÏÎÎ ÏÎ ÏÎÎÎÏÎÎ ÏÏÎ "
+"ÏÎÏÎÏÎÎ ÎÎÎÏÎÏÎ ÎÎÎ ÎÏÎÎÏÎ ÎÎ ÏÎ ÏÏÎÏÎÎÏÎÏÎÎ ÏÏÎ ApplicationWindow."
+
+#: C/statusbar.js.page:128(section/title)
+msgid "Creating the statusbar"
+msgstr "ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ ÎÏÎÎÎÎÏ ÎÎÏÎÏÏÎÏÎÏ"
 
-#: C/image-viewer.c.page:123(p)
+#: C/statusbar.js.page:129(section/code)
+#, no-wrap
 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."
+"\n"
+"        // Create the statusbar\n"
+"        this._statusbar = new Gtk.Statusbar();\n"
+"\n"
+"        // Keep track of the number of times the button has been clicked\n"
+"        this.Clicks = 0;\n"
+"        this.ContextID = this._statusbar.get_context_id (\"Number of Clicks\");\n"
+"\n"
+"        // Give the statusbar an initial message\n"
+"        this._statusbar.push (this.ContextID, \"Number of clicks: \" + this.Clicks);\n"
+"\n"
+"        // Put the statusbar in its own frame at the bottom\n"
+"        this._barFrame = new Gtk.Frame ({\n"
+"            height_request: 30 });\n"
+"        this._barFrame.add (this._statusbar);\n"
 msgstr ""
-"ÎÎ ÏÏÏÏÎÏ ÎÏÎÎÎÎÏ ÎÎÎÎÎÏÏÎÎÏÎ ÏÎ ÎÏÎÎÏÎÎÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÎ ÏÏÎÏÎ: ÎÎÎ "
-"ÎÎÏÎÏÎ ÎÎÎ ÎÎÎÎÎÎÎ ÎÎÎÏ ÎÎÎÏÎÎÏ, ÏÎ ÎÎÎÎ ÏÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÏÏÎÎÎÎÎÏ ÏÎÏ "
-"ÎÎÎÏÎÎÏ ÎÎÎ ÏÎ ÏÎÎÎÏÎÎ ÏÎÏ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÏÏ ÏÎÏÎÎÎÏÎ. ÎÎ ÎÎÎÏÎÎÎÏÎÎÎÏ "
-"ÏÏÏÏ <code>GTK_BOX</code> ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÎÎ ÎÎÎÎÏÎ ÎÏÎÎÎÎÎÎÏ ÏÏÏÎÏ ÎÎÎ "
-"ÎÎÎÎÎÎÏ ÏÎÏ ÎÏÎÎÏÎÏÎÏÎÎ ÎÎÎÏÏ Î C ÎÎÎ ÏÏÎÏÏÎÏÎÎÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏ "
-"ÎÎÏÎÎÎÎÎÎÎÎÏ ÎÎÏÏÏ ÏÎÎÎÏÎÎÏ."
+"\n"
+"        // Create the statusbar\n"
+"        this._statusbar = new Gtk.Statusbar();\n"
+"\n"
+"        // Keep track of the number of times the button has been clicked\n"
+"        this.Clicks = 0;\n"
+"        this.ContextID = this._statusbar.get_context_id (\"Number of Clicks\");\n"
+"\n"
+"        // Give the statusbar an initial message\n"
+"        this._statusbar.push (this.ContextID, \"Number of clicks: \" + this.Clicks);\n"
+"\n"
+"        // Put the statusbar in its own frame at the bottom\n"
+"        this._barFrame = new Gtk.Frame ({\n"
+"            height_request: 30 });\n"
+"        this._barFrame.add (this._statusbar);\n"
 
-#: C/image-viewer.c.page:128(p)
+#: C/statusbar.js.page:145(section/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."
+"Here we create the Gtk.Statusbar, and push a message to it to start off "
+"with. Then we give it its own narrow frame at the bottom of the window."
+msgstr ""
+"ÎÎÏ ÎÎÎÎÎÏÏÎÎÏÎÎ ÏÎ Gtk.Statusbar, ÎÎÎ ÏÏÎÏÎÎÏÎÎ ÎÎÎ ÎÎÎÏÎÎ ÏÎ ÎÏÏÏ ÎÎÎ "
+"ÎÎÎÎÎÎÎÎ. ÎÏÎÎÏÎ ÏÎÏ ÎÎÎÎÏÎÎ ÏÎ ÎÎÎÏ ÏÎÏ ÏÏÎÎÏ ÏÎÎÎÏÎÎ ÏÏÎÎ ÏÎÏÎ ÏÎÏ "
+"ÏÎÏÎÎÏÏÎÏ."
+
+#: C/statusbar.js.page:146(section/p)
+msgid ""
+"Every message needs to have a context id, which is an integer value you can "
+"get from the statusbar with the get_context_id() function. Its only "
+"parameter is the string value you use to describe that particular context "
+"id. Normally, you'll get a new context id for different kinds of messages, "
+"so that you can use the remove() function to remove a specific message and "
+"not just the most recent one on the stack. This is a simple example with "
+"only one kind of message, though, so we're just using one for everything."
 msgstr ""
-"ÎÎ ÎÎÎÏÎÎÏ ÏÏÎ <code>gtk_box_pack_start</code> ÏÏÎÏÎÎÏÎÏÎ ÏÎ ÎÏÎ ÎÏÎÏÎÎÎ "
-"ÏÏÏÏÎÏÎÎÎ ÏÏÎ ÏÎÎÎÏÎÎ ÎÎÎ ÎÏÎÎÎÏÎ ÏÎ ÏÏÎÏÎÏÎÏÎÏÎ ÏÎÏÏ. Î ÎÎÎÏÎÎ ÎÎ ÎÏÎÎÏÎÎÎÎ "
-"ÏÎ ÎÎÎÎ ÎÎÎÎÎÏÎÎÎ ÏÏÏÎ, ÎÎÏ ÏÎ ÎÎÏÎÏÎ ÎÎ ÎÎÎÎÎ ÎÏÎÎ ÏÏÏÎ ÎÎÎÎÎÎ ÏÏÎ "
-"ÏÏÎÎÎÎÎÏÎÎ. ÎÎ ÏÎÏÎÏÎÏÎÏÎÏÎ ÏÏÎ ÎÎÎ ÎÏÎÎÎÏÎÎ ÏÎÏÎ ÎÎÎÎÎÎ ÏÏÎ ÎÏÎÏÎÎÎ "
-"ÏÏÏÏÎÏÎÎÎ. ÎÏÎ GTK ÎÏÏÏ ÏÏÎÎÎÏÏ ÎÎÎ ÏÏÎÎÎÎÎÏÎÎ ÎÏÎÎÎÎ ÎÎÎÎÎ ÏÎÎ ÎÏÎÏ ÎÎ "
-"ÎÏÎÏÎ ÎÎÎ ÎÎÎÏÎÎÎ ÏÎÏ ÏÎÎÎÎÏÎÎ ÎÎÎÎ ÎÎ ÎÎÎÏÎÏÎÏÎÎÎ ÎÎÎÎÎÎ ÏÎÏÎÎÏÏÏÎ. ÎÏÎ "
-"ÏÏÎÎÏÎÎÎ, ÏÎ ÏÎÎÎÏÎÎ ÏÏÎÏÏÎÎÎÏÎÎ ÏÏÎ ÏÎÏÎÎÏÏÎ."
+"ÎÎÎÎ ÎÎÎÏÎÎ ÏÏÎÎÎÎÎÏÎÎ ÎÎ ÎÏÎÎ ÎÎÎ ÏÎÏÏÏÏÎÏÎ ÏÏÎÏÏÎÎÎÎÎÎÏÎ, ÏÎÏ ÎÎÎÎÎ ÎÎÎ "
+"ÎÎÎÏÎÎÎ ÏÎÎÎ ÏÎÏ ÎÏÎÏÎÎÏÎ ÎÎ ÏÎÏÎÏÎ ÎÏÏ ÏÎ ÎÏÎÎÎÎ ÎÎÏÎÏÏÎÏÎÏ ÎÎ ÏÎ ÏÏÎÎÏÏÎÏÎ "
+"get_context_id(). Î ÎÏÎÎ ÏÎÏÎÎÎÏÏÎÏ ÏÎÏ ÎÎÎÎÎ Î ÏÎÎÎ ÏÏÎÎÎÎÎÏÎÎÏÎÏ ÏÎÏ "
+"ÏÏÎÏÎÎÎÏÎÎÎÎÏÎ ÎÎÎ ÏÎÏÎÎÏÎÏÎ ÎÏÏÎÏ ÏÎÏ ÏÏÎÎÎÎÏÎÎÎÎÎÏ ÏÎÏÏÏÏÎÏÎÏ "
+"ÏÏÎÏÏÎÎÎÎÎÎÏÎ. ÎÎÎÎÎÎÎÎ, ÎÎ ÏÎÏÎÏÎ ÎÎÎ ÎÎÎ ÏÎÏÏÏÏÎÏÎ ÏÏÎÏÏÎÎÎÎÎÎÏÎ ÎÎÎ "
+"ÎÎÎÏÎÏÎÏÎÎÎ ÎÎÎÎ ÎÎÎÏÎÎÏÏÎ, ÎÏÏÎ ÏÎÏ ÎÎ ÎÏÎÏÎÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÏÎ "
+"ÏÏÎÎÏÏÎÏÎ remove() ÎÎÎ ÎÎ ÎÏÎÎÏÎÏÎÏÎ ÎÎÎ ÏÏÎÎÎÎÏÎÎÎÎÎ ÎÎÎÏÎÎ ÎÎÎ ÏÏÎ ÎÏÎÎ ÏÎ "
+"ÏÎÎ ÏÏÏÏÏÎÏÎ ÏÏÎ ÏÏÎÎÎÎ. ÎÏÏÏ ÎÎÎÎÎ ÎÎÎ ÎÏÎÏ ÏÎÏÎÎÎÎÎÎÎ ÎÎ ÎÏÎÎ ÎÎÎ ÎÎÎÎÏ "
+"ÎÎÎÏÎÎÏÎÏ, ÎÎ ÎÎÎ, ÎÏÏÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÎÏÎÎ ÎÎÎ ÎÎÎ ÎÎÎÎÎÎ."
 
-#: C/image-viewer.c.page:134(p)
+#: C/statusbar.js.page:147(section/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."
+"We use the push() function to push a new message onto the stack. Its first "
+"parameter is the context id, and its second is the message."
 msgstr ""
-"ÎÏÎÎÎÎÏÎÎÏÏÎ ÎÎ ÎÏÎÏÎÏÎÎ ÏÎ ÏÏÎÎÎÎÎÎÎ ÏÏÎÎ Î ÏÏÎÏÏÎÏ ÏÎÏÎ ÏÎ ÎÎÎ ÏÎÎÎÏÏÎ. ÎÎ "
-"GTK ÏÏÎÏÎÎÎÏÎÎÎÎ ÏÎÎ ÎÎÎÎÎÎ ÏÏÎ <em>ÏÎÎÎÏÏÎ</em>. ÎÏÎÎ ÏÎ ÎÎÏÎÏÎ ÏÎÏÎÎÏÎÎ, "
-"ÎÎÎÎÎÎ ÏÎ ÏÎÎÎ <em>ÏÎÏÎÎÎÎÎ</em>, ÏÎÏ ÎÏÎÏÎÏÎÎ ÎÎ ÏÏÎÎÎÏÎÏÎÎ ÎÎ ÎÎÏÎÎÎ "
-"ÎÎÎÏÎÎÎÎ. ÎÏÏÏ ÎÎÎÎÏÎÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ ÏÏÎÎÏÏÎÏÎ <code>g_signal_connect</"
-"code> ÏÎÏ ÎÎÎÎ ÏÏÎ GTK ÎÎ ÎÎÎÎÏÎÎ ÏÎ ÏÏÎÎÏÏÎÏÎ <code>on_open_image</code> "
-"ÏÏÎÎ ÏÎ ÎÎÏÎÏÎ ÏÎÏÎÎÏÎÎ ÎÎÎ ÎÎ ÏÎÏÎÏÎÎ ÏÎÎ ÎÎÎÏÎÎ ÏÏ ÏÏÏÏÎÎÏÎ ÏÏÎÏÎÎ ÏÎ ÎÏÏÎ "
-"ÏÎ ÏÏÎÎÏÏÎÏÎ. ÎÎ ÎÏÎÏÎÏÎÎ ÏÎÎ <em>ÎÏÎÎÎÎÎÎÏÎ</em> ÏÏÎÎ ÎÏÏÎÎÎÎ ÎÎÏÏÎÏÎ."
+"ÎÏÎÏÎÎÎÏÎÎÎÏÎÎ ÏÎ ÏÏÎÎÏÏÎÏÎ push() ÎÎÎ ÏÎÎ ÏÏÎÏÎÎÏÎ ÎÎÏÏ ÎÎÎÏ ÎÎÎÏÎÎÏÎÏ ÏÏÎ "
+"ÏÏÎÎÎÎ. Î ÏÏÏÏÎ ÏÎÏ ÏÎÏÎÎÎÏÏÎÏ ÎÎÎÎÎ Î ÏÎÏÏÏÏÎÏÎ ÏÏÎÏÏÎÎÏÎÎÎÏÎ ÎÎÎ Î ÎÎÏÏÎÏÎ "
+"ÏÎÏ ÎÎÎÎÎ ÏÎ ÎÎÎÏÎÎ."
 
-#: C/image-viewer.c.page:139(p)
+#: C/statusbar.js.page:148(section/code)
+#, no-wrap
 msgid ""
-"The last <code>g_signal_connect()</code> makes sure that the application "
-"exits when the window is closed."
+"\n"
+"        // Assemble the frames into the paned interface\n"
+"        this._panes.pack1 (this._topFrame, true, false);\n"
+"        this._panes.pack2 (this._barFrame, false, false);\n"
+"\n"
+"        // Put the panes into the window\n"
+"        this._window.add (this._panes);\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    },\n"
 msgstr ""
-"Î ÏÎÎÎÏÏÎÎÎÏ <code>g_signal_connect()</code> ÎÏÎÎÎÎÎÎÏÎÎÎ ÏÏÎ Î ÎÏÎÏÎÎÎÎ "
-"ÏÎÏÎÎÎ ÏÏÎÎ ÏÎ ÏÎÏÎÎÏÏÎ ÎÎÎÎÎÎÎ."
+"\n"
+"        // Assemble the frames into the paned interface\n"
+"        this._panes.pack1 (this._topFrame, true, false);\n"
+"        this._panes.pack2 (this._barFrame, false, false);\n"
+"\n"
+"        // Put the panes into the window\n"
+"        this._window.add (this._panes);\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    },\n"
 
-#: C/image-viewer.c.page:142(p)
+#: C/statusbar.js.page:160(section/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."
+"This code finishes up creating the window, by packing the frames into the "
+"pane, adding it to the window, and telling the window to show all child "
+"widgets."
 msgstr ""
-"ÎÏ ÏÎÎÎÏÏÎÎÎ ÎÎÎÎ, ÎÎÎÎÎÏÎÎÎÏÎ ÎÎ ÎÎÏÎÎÎÏÎÏÏÎÏÎÏÎ ÏÎÎ ÎÎÎÏÎ "
-"<code>gtk_widget_show</code> ÏÏÎ ÏÏÎÎÏÏÎÏÎ <code>main()</code> ÎÏÏ "
-"<code>gtk_widget_show_all()</code> ÎÎÎ ÎÎ ÎÎÏÎÎÎÏÏÎÎ ÏÎ ÏÎÏÎÎÏÏÎ ÎÎÎ ÏÎÎ ÏÎ "
-"ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÏÎÏ ÏÎÏÎÎÏÎÎ."
+"ÎÏÏÏÏ Î ÎÏÎÎÎÎÏ ÏÎÎÎÎÏÎÎÎ ÎÎÎÎÎÏÏÎÏÎÏÎÏ ÏÎ ÏÎÏÎÎÏÏÎ, ÏÎÎÎÏÎÏÎÎÏÎÏ ÏÎ ÏÎÎÎÏÎÎ "
+"ÎÎÏÎ ÏÏÎ ÏÎÏÎÏÎÎ, ÏÎ ÏÏÎÏÎÎÏÎÎ ÏÏÎ ÏÎÏÎÎÏÏÎ ÎÎÎ ÎÎÎÎ ÏÏÎ ÏÎÏÎÎÏÏÎ ÎÎ "
+"ÎÎÏÎÎÎÏÎÎ ÏÎÎ ÏÎ ÎÏÎÎÏÏÎÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ."
 
-#: C/image-viewer.c.page:150(p)
+#: C/statusbar.js.page:164(section/title)
+msgid "Functions for interacting with the statusbar"
+msgstr "ÎÏÎÎÏÏÎÏÎÎÏ ÎÎÎ ÎÎÎÎÎÎÏÎÎÏÎÏÎ ÎÎ ÏÎ ÎÏÎÎÎÎ ÎÎÏÎÏÏÎÏÎÏ"
+
+#: C/statusbar.js.page:165(section/code)
+#, no-wrap
 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."
+"\n"
+"    _clicked: function() {\n"
+"\n"
+"        // Increment the number of clicks by 1\n"
+"        this.Clicks++;\n"
+"\n"
+"        // Update the statusbar with the new number of clicks\n"
+"        this._statusbar.push (this.ContextID, \"Number of clicks: \" + this.Clicks);\n"
+"\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    _back: function () {\n"
+"\n"
+"        // If there have been any clicks, decrement by 1 and remove last statusbar update\n"
+"        if (this.Clicks &gt; 0 ) {\n"
+"            this.Clicks--;\n"
+"            this._statusbar.pop (this.ContextID);\n"
+"        };\n"
+"\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    _clear: function () {\n"
+"\n"
+"        // Reset the number of clicks\n"
+"        this.Clicks = 0;\n"
+"\n"
+"        // Wipe out all the messages pushed to the statusbar\n"
+"        this._statusbar.remove_all (this.ContextID);\n"
+"\n"
+"        // Reset the statusbar's message\n"
+"        this._statusbar.push (this.ContextID, \"Number of clicks: \" + this.Clicks);\n"
+"\n"
+"    }\n"
+"\n"
+"});\n"
 msgstr ""
-"ÎÎ ÎÏÎÏÎÏÎÎ ÏÏÏÎ ÏÎÎ ÏÎÎÏÎÏÏÎ ÏÎÎÎÏÎÏ ÎÎÎ ÏÎ ÏÎÎÎ <em>ÏÎÏÎÎÎÎÎ</em> Î ÎÎÎ ÏÎ "
-"ÎÎÏÎÏÎ ÏÎÏ ÎÎÎÏÎÏÎÎÎ ÏÏÎÎ. ÎÏÎÏÎÎÏÏÎ ÎÏÏÏÎ ÏÎÎ ÎÏÎÎÎÎ ÏÏÎÎ ÏÎ ÎÎÎÎÎÎ "
-"<code>create_window()</code>."
+"\n"
+"    _clicked: function() {\n"
+"\n"
+"        // Increment the number of clicks by 1\n"
+"        this.Clicks++;\n"
+"\n"
+"        // Update the statusbar with the new number of clicks\n"
+"        this._statusbar.push (this.ContextID, \"Number of clicks: \" + this.Clicks);\n"
+"\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    _back: function () {\n"
+"\n"
+"        // If there have been any clicks, decrement by 1 and remove last statusbar update\n"
+"        if (this.Clicks &gt; 0 ) {\n"
+"            this.Clicks--;\n"
+"            this._statusbar.pop (this.ContextID);\n"
+"        };\n"
+"\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    _clear: function () {\n"
+"\n"
+"        // Reset the number of clicks\n"
+"        this.Clicks = 0;\n"
+"\n"
+"        // Wipe out all the messages pushed to the statusbar\n"
+"        this._statusbar.remove_all (this.ContextID);\n"
+"\n"
+"        // Reset the statusbar's message\n"
+"        this._statusbar.push (this.ContextID, \"Number of clicks: \" + this.Clicks);\n"
+"\n"
+"    }\n"
+"\n"
+"});\n"
 
-#: C/image-viewer.c.page:188(p)
+#: C/statusbar.js.page:205(section/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."
+"Here we have functions which demonstrate pushing a message onto the stack, "
+"popping the top one off of it, and clearing all messages of a particular "
+"context id. The pop() function just takes one parameter, which is the "
+"context id for the type of message you want to pop off the most recent one "
+"of. The remove_all() function works the same way, except it removes all "
+"messages of that type from the stack."
 msgstr ""
-"ÎÎ ÏÏÏÏÎ ÏÏÎÏÎÎ ÏÎÏ ÏÎÎÎÏÎÏ ÎÎÎÎÎ ÏÎÎÏÎÏÎ ÏÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÏÎÏ ÎÏÏÎÎÎÎ "
-"ÏÎ ÏÎÎÎ. ÎÎÏÎÎÎÏ ÏÎÏÎÏ ÎÎÎÎ ÎÏÎÏÎÎÏÎ ÏÏÎÏÎÎÎ ÎÎ ÏÎ ÏÎÎÎ ÎÏÏÎÎÏÎÎ ÎÎÏÎ ÎÏÏ "
-"ÎÏÏÏ, ÎÎÎÎ ÏÎ <em>ÏÎÏÎÎÎÎÎ</em> ÎÎÎ ÎÏÎÎ. ÎÏÏÎÎÎÎ ÏÏÎÏÎÎ ÎÎÎÎÎ ÏÎ "
-"<code>user_data</code> ÏÎÏ ÎÎÎÎÎ ÎÎÎÏ ÎÎÎÎÏÎÏ ÏÏÎ ÎÎÎÎÎÎÎÎ ÏÎÏ ÏÎÏÎÏÎÎÎ ÏÏÎÎ "
-"ÏÏÎÎÎÏÎÎÎ ÏÎ ÏÎÎÎ. ÎÎ ÎÏÏÎÎ ÏÎÎ ÏÎÏÎÏÏÏÏÎ ÎÎÎÎÎ ÏÎ ÎÎÏÎÎÎÎÎÎÎÏ ÎÎÏ "
-"<code>GtkImage</code>."
+"ÎÎÏ ÎÏÎÏÎÎ ÏÏÎÎÏÏÎÏÎÎÏ ÏÎÏ ÎÎÎÏÎÎÏÎ ÏÏÎÏÎÎÏÎ ÎÎÎÏÎÎÏÎÏ ÏÏÎ ÏÏÎÎÎÎ, "
+"ÎÎÏÏÎÎÎÏÎÏ ÏÎÎ ÎÎÏÏÏÎ ÏÎÏ ÎÏÏ ÎÏÏÏ ÎÎÎ ÎÎÎÎÏÎÎÎÎÏÎÏ ÏÎÎ ÏÎ ÎÎÎÏÎÎÏÎ ÏÎÏ "
+"ÏÏÎÎÎÎÏÎÎÎÎÎÏ ÏÎÏÏÏÏÎÏÎÏ ÏÏÎÏÏÎÎÎÎÎÎÏÎ. Î ÏÏÎÎÏÏÎÏÎ pop() ÏÎÎÏÎÎÎ ÎÏÎÎ ÎÎÎ "
+"ÏÎÏÎÎÎÏÏÎ, ÏÎÏ ÎÎÎÎÎ Î ÏÎÏÏÏÏÎÏÎ ÏÏÎÏÏÎÎÎÎÎÎÏÎ ÎÎÎ ÏÎÎ ÏÏÏÎ ÏÎÏ ÎÎÎÏÎÎÏÎÏ "
+"ÏÎÏ ÎÎÎÎÏÎ ÎÎ ÎÎÏÎÎÏÎ ÎÏÏ ÏÎ ÏÎÎ ÏÏÏÏÏÎÏÎ. Î ÏÏÎÎÏÏÎÏÎ remove_all() ÎÎÏÎÎÏÎÎ "
+"ÎÎ ÏÎÎ ÎÎÎÎ ÏÏÏÏÎ, ÎÎÏÏÏ ÎÏÏ ÏÎÎ ÎÏÎÎÏÎÏÎ ÏÎÏÎ ÏÏÎ ÎÎÎÏÎÎÏÏÎ ÎÏÏÎÏ ÏÎÏ ÏÏÏÎÏ "
+"ÎÏÏ ÏÎ ÏÏÎÎÎÎ."
 
-#: C/image-viewer.c.page:194(p)
+#: C/statusbar.js.page:206(section/code)
+#, no-wrap
 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."
+"\n"
+"// Run the application\n"
+"let app = new StatusbarExample ();\n"
+"app.application.run (ARGV);\n"
 msgstr ""
-"Î ÎÏÏÎÎÎÎ ÎÎÎÎÎÏÎÏÎÏÏÎ ÎÏÎÎÎÎ ÎÎÎÎÎ ÏÏÎÎ Î ÎÎÎÎÎÎÎÏ ÎÏÎÎÎÎÎÏ ÏÎÏ ÎÏÏÎÎÎÏ "
-"ÎÎÎÎÎÏÏÎÎÎÏÎÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ <code>gtk_file_chooser_dialog_new</code>. Î "
-"ÏÏÎÎÏÏÎÏÎ ÏÎÎÏÎÎÎ ÏÎÎ ÏÎÏÎÎ ÏÎÏ ÎÎÎÎÏÎÎÏ, ÏÎ ÎÎÎÏÎ ÏÎÏÎÎÏÏÎ ÏÎÏ ÎÎÎÎÏÎÎÏ ÎÎÎ "
-"ÏÎÎÎÎÏ ÎÏÎÎÎÎÎÏ ÏÏÏÏ Î ÎÏÎÎÎÏÏ ÏÏÎ ÎÎÏÎÏÎÏÎ ÎÎÎ ÎÎ ÎÎÏÎÏÏÎÎÏÎÏ ÏÎÎÎÏ ÏÎÏÏ."
+"\n"
+"// Run the application\n"
+"let app = new StatusbarExample ();\n"
+"app.application.run (ARGV);\n"
 
-#: C/image-viewer.c.page:201(p)
+#: C/statusbar.js.page:211(section/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."
+"Finally, we create a new instance of the finished StatusbarExample class, "
+"and set the application running."
 msgstr ""
-"ÎÎ ÎÏÏÎÎÎÎÏ ÎÏÎ ÎÏÎÎÎÎÏ ÏÎÏÎÎÏÎÎÎÏÎ ÏÎ ÎÎÎÎÎÎÎ <gui>ÎÎÎÎÎÎÎ</gui> ÎÎ "
-"ÎÎÏÎÎÎÎÎÎ ÎÏÎÎ ÎÏÏÎÎÎ ÏÎÏ ÎÏÎÏÎÏÎ ÎÎ ÎÎÎÎÏÎÎÏÎ ÎÏÏ ÏÎ GtkImage. ÎÎÎ "
-"ÎÎÏÎÎÎÎÎÎÎÎ ÏÎÎÏÏÎÏ ÎÎÎÎÎÏÏÎÎÎÏÎÎ ÏÏÏÏÎÂ ÎÏÎÎÏÎ ÏÏÎÏÎÎÏÎÏÎÎ ÏÎÎ ÏÎ ÎÎÎÎ ÏÏÎ "
-"ÎÏÏÎÎÏÎ ÏÎÏ ÏÏÎÏÏÎÏÎÎÎÎÏÎÎ ÎÏÏ <code>GdkPixbuf</code> (ÏÎÏ ÏÎÏÎÎÎÎÎÎÎÎÎ ÏÎÏ "
-"ÏÎÏÎÏÏÏÏÎÏÎÏ ÎÎÏÏÎÏ ÏÏÏÏ PNG ÎÎÎ JPEG) ÏÏÎ ÏÎÎÏÏÎ. ÎÎÎÎÏ, ÎÏÎÎÎÏÎÎ ÎÏÏÏ ÏÎ "
-"ÏÎÎÏÏÎ ÎÎ ÎÎÎÎÎ ÏÎ ÏÎÎÏÏÎ ÏÎÏ ÎÎÎÎÏÎÎÏ <gui>ÎÎÎÎÎÎÎ</gui>."
+"ÎÎÎÎÎÎ, ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ ÏÎÏ ÏÎÎÎÎÏÎÎÎÎÏ ÎÎÎÏÎÏ "
+"StatusbarExample ÎÎÎ ÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ."
 
-#: C/image-viewer.c.page:204(p)
+#: C/statusbar.js.page:216(section/code)
+#, no-wrap
 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."
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gio = imports.gi.Gio;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"const StatusbarExample = new Lang.Class({\n"
+"    Name: 'Statusbar Example',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application({\n"
+"            application_id: 'org.example.jsstatusbar',\n"
+"            flags: Gio.ApplicationFlags.FLAGS_NONE\n"
+"        });\n"
+"\n"
+"    // Connect 'activate' and 'startup' signals to the callback functions\n"
+"    this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"    this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents window when active\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function() {\n"
+"        this._buildUI ();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function() {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            default_height: 120,\n"
+"            default_width: 300,\n"
+"            title: \"Button Clicker\"});\n"
+"\n"
+"        // Create a paned interface\n"
+"        this._panes = new Gtk.Paned ({\n"
+"            orientation: Gtk.Orientation.VERTICAL });\n"
+"\n"
+"        // Create the main button\n"
+"        this._clickMe = new Gtk.Button ({\n"
+"            label: \"Click Me!\" });\n"
+"        this._clickMe.connect (\"clicked\", Lang.bind (this, this._clicked));\n"
+"\n"
+"        // Create the back button\n"
+"        this._backButton = new Gtk.Button ({\n"
+"            label: \"gtk-go-back\",\n"
+"            use_stock: true });\n"
+"        this._backButton.connect (\"clicked\", Lang.bind (this, this._back));\n"
+"\n"
+"        // Create the clear button\n"
+"        this._clearButton = new Gtk.Button ({\n"
+"            label: \"gtk-clear\",\n"
+"            use_stock: true });\n"
+"        this._clearButton.connect (\"clicked\", Lang.bind (this, this._clear));\n"
+"\n"
+"        // Put the buttons in a grid\n"
+"        this._grid = new Gtk.Grid ({\n"
+"            halign: Gtk.Align.CENTER,\n"
+"            valign: Gtk.Align.CENTER });\n"
+"        this._grid.attach (this._backButton, 0, 0, 1, 1);\n"
+"        this._grid.attach_next_to (this._clickMe, this._backButton, Gtk.PositionType.RIGHT, 1, 1);\n"
+"        this._grid.attach_next_to (this._clearButton, this._clickMe, Gtk.PositionType.RIGHT, 1, 1);\n"
+"\n"
+"        // Put the grid in a large frame that fills most of the window\n"
+"        this._topFrame = new Gtk.Frame ({\n"
+"            border_width: 20,\n"
+"            height_request: 90,\n"
+"            width_request: 300});\n"
+"        this._topFrame.add (this._grid);\n"
+"\n"
+"        // Create the statusbar\n"
+"        this._statusbar = new Gtk.Statusbar();\n"
+"\n"
+"        // Keep track of the number of times the button has been clicked\n"
+"        this.Clicks = 0;\n"
+"        this.ContextID = this._statusbar.get_context_id (\"Number of Clicks\");\n"
+"\n"
+"        // Give the statusbar an initial message\n"
+"        this._statusbar.push (this.ContextID, \"Number of clicks: \" + this.Clicks);\n"
+"\n"
+"        // Put the statusbar in its own frame at the bottom\n"
+"        this._barFrame = new Gtk.Frame ({\n"
+"            height_request: 30 });\n"
+"        this._barFrame.add (this._statusbar);\n"
+"\n"
+"        // Assemble the frames into the paned interface\n"
+"        this._panes.pack1 (this._topFrame, true, false);\n"
+"        this._panes.pack2 (this._barFrame, false, false);\n"
+"\n"
+"        // Put the panes into the window\n"
+"        this._window.add (this._panes);\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    _clicked: function() {\n"
+"\n"
+"        // Increment the number of clicks by 1\n"
+"        this.Clicks++;\n"
+"\n"
+"        // Update the statusbar with the new number of clicks\n"
+"        this._statusbar.push (this.ContextID, \"Number of clicks: \" + this.Clicks);\n"
+"\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    _back: function () {\n"
+"\n"
+"        // If there have been any clicks, decrement by 1 and remove last statusbar update\n"
+"        if (this.Clicks &gt; 0 ) {\n"
+"            this.Clicks--;\n"
+"            this._statusbar.pop (this.ContextID);\n"
+"        };\n"
+"\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    _clear: function () {\n"
+"\n"
+"        // Reset the number of clicks\n"
+"        this.Clicks = 0;\n"
+"\n"
+"        // Wipe out all the messages pushed to the statusbar\n"
+"        this._statusbar.remove_all (this.ContextID);\n"
+"\n"
+"        // Reset the statusbar's message\n"
+"        this._statusbar.push (this.ContextID, \"Number of clicks: \" + this.Clicks);\n"
+"\n"
+"    }\n"
+"\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new StatusbarExample ();\n"
+"app.application.run (ARGV);\n"
 msgstr ""
-"Î <code>gtk_dialog_run</code> ÎÎÏÎÎÎÎÎÎ ÏÎ ÎÎÎÎÎÎÎ <gui>ÎÎÎÎÎÎÎ</gui>. Î "
-"ÎÎÎÎÎÎÎÏ ÎÎ ÏÎÏÎÎÎÎÎÎ ÏÎÎ ÏÏÎÏÏÎ ÎÎ ÎÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎÏÎÎÂ ÏÏÎÎ ÎÎÎÎÎÎÎÎ, Î "
-"<code>gtk_dialog_run</code> ÎÎ ÎÏÎÏÏÏÎÏÎÎ ÏÎÎ ÏÎÎÎ "
-"<code>GTK_RESPONSE_ACCEPT</code> (ÎÎ ÎÏÎÏÏÏÎÏÎÎ <code>GTK_RESPONSE_CANCEL</"
-"code> ÎÎ Î ÏÏÎÏÏÎÏ ÏÎÏÎÏÎÎ <gui>ÎÎÏÏÏÏÎ</gui>). Î ÏÏÏÏÎÏÎ <code>switch</"
-"code> ÎÎÎÎÏÎÎ ÎÎÎ ÎÏÏÏ."
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gio = imports.gi.Gio;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"const StatusbarExample = new Lang.Class({\n"
+"    Name: 'Statusbar Example',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application({\n"
+"            application_id: 'org.example.jsstatusbar',\n"
+"            flags: Gio.ApplicationFlags.FLAGS_NONE\n"
+"        });\n"
+"\n"
+"    // Connect 'activate' and 'startup' signals to the callback functions\n"
+"    this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"    this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents window when active\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function() {\n"
+"        this._buildUI ();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function() {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            default_height: 120,\n"
+"            default_width: 300,\n"
+"            title: \"Button Clicker\"});\n"
+"\n"
+"        // Create a paned interface\n"
+"        this._panes = new Gtk.Paned ({\n"
+"            orientation: Gtk.Orientation.VERTICAL });\n"
+"\n"
+"        // Create the main button\n"
+"        this._clickMe = new Gtk.Button ({\n"
+"            label: \"Click Me!\" });\n"
+"        this._clickMe.connect (\"clicked\", Lang.bind (this, this._clicked));\n"
+"\n"
+"        // Create the back button\n"
+"        this._backButton = new Gtk.Button ({\n"
+"            label: \"gtk-go-back\",\n"
+"            use_stock: true });\n"
+"        this._backButton.connect (\"clicked\", Lang.bind (this, this._back));\n"
+"\n"
+"        // Create the clear button\n"
+"        this._clearButton = new Gtk.Button ({\n"
+"            label: \"gtk-clear\",\n"
+"            use_stock: true });\n"
+"        this._clearButton.connect (\"clicked\", Lang.bind (this, this._clear));\n"
+"\n"
+"        // Put the buttons in a grid\n"
+"        this._grid = new Gtk.Grid ({\n"
+"            halign: Gtk.Align.CENTER,\n"
+"            valign: Gtk.Align.CENTER });\n"
+"        this._grid.attach (this._backButton, 0, 0, 1, 1);\n"
+"        this._grid.attach_next_to (this._clickMe, this._backButton, Gtk.PositionType.RIGHT, 1, 1);\n"
+"        this._grid.attach_next_to (this._clearButton, this._clickMe, Gtk.PositionType.RIGHT, 1, 1);\n"
+"\n"
+"        // Put the grid in a large frame that fills most of the window\n"
+"        this._topFrame = new Gtk.Frame ({\n"
+"            border_width: 20,\n"
+"            height_request: 90,\n"
+"            width_request: 300});\n"
+"        this._topFrame.add (this._grid);\n"
+"\n"
+"        // Create the statusbar\n"
+"        this._statusbar = new Gtk.Statusbar();\n"
+"\n"
+"        // Keep track of the number of times the button has been clicked\n"
+"        this.Clicks = 0;\n"
+"        this.ContextID = this._statusbar.get_context_id (\"Number of Clicks\");\n"
+"\n"
+"        // Give the statusbar an initial message\n"
+"        this._statusbar.push (this.ContextID, \"Number of clicks: \" + this.Clicks);\n"
+"\n"
+"        // Put the statusbar in its own frame at the bottom\n"
+"        this._barFrame = new Gtk.Frame ({\n"
+"            height_request: 30 });\n"
+"        this._barFrame.add (this._statusbar);\n"
+"\n"
+"        // Assemble the frames into the paned interface\n"
+"        this._panes.pack1 (this._topFrame, true, false);\n"
+"        this._panes.pack2 (this._barFrame, false, false);\n"
+"\n"
+"        // Put the panes into the window\n"
+"        this._window.add (this._panes);\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    _clicked: function() {\n"
+"\n"
+"        // Increment the number of clicks by 1\n"
+"        this.Clicks++;\n"
+"\n"
+"        // Update the statusbar with the new number of clicks\n"
+"        this._statusbar.push (this.ContextID, \"Number of clicks: \" + this.Clicks);\n"
+"\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    _back: function () {\n"
+"\n"
+"        // If there have been any clicks, decrement by 1 and remove last statusbar update\n"
+"        if (this.Clicks &gt; 0 ) {\n"
+"            this.Clicks--;\n"
+"            this._statusbar.pop (this.ContextID);\n"
+"        };\n"
+"\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    _clear: function () {\n"
+"\n"
+"        // Reset the number of clicks\n"
+"        this.Clicks = 0;\n"
+"\n"
+"        // Wipe out all the messages pushed to the statusbar\n"
+"        this._statusbar.remove_all (this.ContextID);\n"
+"\n"
+"        // Reset the statusbar's message\n"
+"        this._statusbar.push (this.ContextID, \"Number of clicks: \" + this.Clicks);\n"
+"\n"
+"    }\n"
+"\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new StatusbarExample ();\n"
+"app.application.run (ARGV);\n"
 
-#: C/image-viewer.c.page:206(p)
+#: C/statusbar.js.page:225(item/p)
 msgid ""
-"Assuming that the user did click <gui>Open</gui>, the next line sets the "
-"<code>file</code> property of the GtkImage to the filename of the image "
-"selected by the user. The GtkImage will then load and display the chosen "
-"image."
+"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.Frame.html";
+"\">Gtk.Frame</link>"
 msgstr ""
-"ÎÎ ÏÏÎÎÎÏÎÏÎÎ ÏÏÎ Î ÏÏÎÏÏÎÏ ÏÎÏÎÏÎ ÏÎ <gui>ÎÎÎÎÎÎÎ</gui>, Î ÎÏÏÎÎÎÎ ÎÏÎÎÎÎ "
-"ÎÏÎÎÎÎ ÏÎÎ ÎÎÎÏÏÎÏÎ <code>file</code> ÏÎÏ GtkImage ÏÏÎ ÏÎÎÎÎ ÏÎÏ ÎÏÏÎÎÎÏ "
-"ÎÎÎÏÎÎÏ ÏÎÏ ÎÏÎÎÎÎÎ Î ÏÏÎÏÏÎÏ. ÎÎ GtkImage ÎÎ ÏÎÏÏÏÏÎÎ ÏÏÏÎ ÎÎÎ ÎÎ ÎÎÏÎÎÎÏÎÎ "
-"ÏÎÎ ÎÏÎÎÎÎÎÎÎÎ ÎÎÎÏÎÎ."
+"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.Frame.html";
+"\">Gtk.Frame</link>"
 
-#: C/image-viewer.c.page:209(p)
+#: C/statusbar.js.page:226(item/p)
 msgid ""
-"In the final line of this method, we destroy the <gui>Open</gui> dialog "
-"because we don't need it any more. Destroying automatically hides the dialog."
+"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.Paned.html";
+"\">Gtk.Paned</link>"
 msgstr ""
-"ÎÏÎÎ ÏÎÎÎÏÏÎÎÎ ÎÏÎÎÎÎ ÎÏÏÎÏ ÏÎÏ ÎÎÎÏÎÎÏ, ÎÎÏÎÏÏÏÎÏÎÏÎÎ ÏÎÎ ÎÎÎÎÎÎÎ "
-"<gui>ÎÎÎÎÎÎÎ</gui> ÎÎÎÏÎ ÎÎÎ ÏÎÎ ÏÏÎÎÎÎÏÎÎÏÏÎ ÏÎÎ. ÎÎÏÎÏÏÏÎÏÎÎÏÎÏ ÏÎÎ "
-"ÎÏÏÏÎÎÏÎ ÎÏÏÎÎÏÎÎ Î ÎÎÎÎÎÎÎÏ."
+"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.Paned.html";
+"\">Gtk.Paned</link>"
 
-#: C/image-viewer.c.page:223(p)
+#: C/statusbar.js.page:227(item/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 ""
-"ÎÎ ÎÎÏÎÎÎÏÏÏÎÏÎÏÎ ÏÏÏÎÎÎÎÎ ÎÎ ÏÎ ÎÎÎÎÎÎ, ÏÏÎÎÏÎÎÎÏÎ ÏÎÎ ÎÏÎÎÎÎ ÏÎÏ ÎÎ ÎÏÏÏÎ "
-"ÏÎÎ <link href=\"image-viewer/image-viewer.c\">ÎÏÎÎÎÎ ÎÎÎÏÎÏÎÏ</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/image.vala.page:21(None) C/image.py.page:21(None)
-#: C/image.js.page:20(None) C/image.c.page:21(None)
-msgid "@@image: 'media/image.png'; md5=9416aa74d9d6a857783f7a36338e7a02"
-msgstr "@@image: 'media/image.png'Â md5=9416aa74d9d6a857783f7a36338e7a02"
-
-#: C/image.vala.page:7(title)
-msgid "Image (Vala)"
-msgstr "ÎÎÎÏÎÎ (Vala)"
-
-#: C/image.vala.page:17(desc) C/image.py.page:17(desc)
-#: C/image.js.page:16(desc) C/image.c.page:17(desc)
-msgid "A widget displaying an image"
-msgstr "ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÏÎÏ ÎÎÏÎÎÎÎÎÎ ÎÎÎ ÎÎÎÏÎÎ"
-
-#: C/image.vala.page:20(title) C/image.py.page:20(title)
-#: C/image.js.page:19(title) C/image.c.page:20(title)
-msgid "Image"
-msgstr "ÎÎÎÏÎÎ"
-
-#: C/image.vala.page:22(p) C/image.py.page:22(p) C/image.js.page:21(p)
-#: C/image.c.page:22(p)
-msgid "This GtkApplication displays an image file from the current directory."
+"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.Statusbar.html";
+"\">Gtk.Statusbar</link>"
 msgstr ""
-"ÎÏÏÎ Î GtkApplication ÎÎÏÎÎÎÎÎÎ ÎÎÎ ÎÏÏÎÎÎ ÎÎÎÏÎÎÏ ÎÏÏ ÏÎÎ ÏÏÎÏÎÎÏÎ ÎÎÏÎÎÎÎÎ."
+"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.Statusbar.html";
+"\">Gtk.Statusbar</link>"
 
-#: C/image.vala.page:23(p) C/image.js.page:22(p) C/image.c.page:23(p)
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/statusbar.py.page:24(media) C/statusbar.vala.page:24(media)
+msgctxt "_"
 msgid ""
-"If the image file isn't loaded successfully, the image will contain a "
-"\"broken image\" icon. The <file>filename.png</file> needs to be in the "
-"current directory for this code to work. Use your favorite picture!"
+"external ref='media/statusbar.png' md5='eb1aca55315d6cda57b12a5f36058ba8'"
 msgstr ""
-"ÎÎÎ ÏÎ ÎÏÏÎÎÎ ÎÎÎÏÎÎÏ ÎÎÎ ÏÎÏÏÏÎÎÎ ÎÏÎÏÏÏÏÏ, Î ÎÎÎÏÎÎ ÎÎ ÏÎÏÎÎÏÎÎ ÎÎÎ "
-"ÎÎÎÎÎÎÎÎÎ \"ÏÏÎÏÎÎÎÎÏ ÎÎÎÏÎÎÏ\". ÎÎ <file>filename.png</file> ÏÏÎÎÎÎÎÏÎÎ ÎÎ "
-"ÎÎÎÎÎ ÏÏÎÎ ÏÏÎÏÎÎÏÎ ÎÎÏÎÎÎÎÎ ÎÎÎ ÎÎ ÎÎÏÎÎÏÎÎ ÎÏÏÏÏ Î ÎÏÎÎÎÎÏ. ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ "
-"ÏÎÎ ÎÎÎÏÎÎÎÎÎ ÏÎÏ ÎÎÎÏÎÎ!"
-
-#: C/image.vala.page:32(link) C/GtkApplicationWindow.py.page:53(link)
-#: C/GtkApplicationWindow.c.page:30(link) C/grid.py.page:56(link)
-#: C/checkbutton.py.page:47(link) C/aboutdialog.py.page:46(link)
-msgid "GtkApplicationWindow"
-msgstr "GtkApplicationWindow"
-
-#: C/image.py.page:7(title)
-msgid "Image (Python)"
-msgstr "ÎÎÎÏÎÎ (Python)"
+"external ref='media/statusbar.png' md5='eb1aca55315d6cda57b12a5f36058ba8'"
 
-#: C/image.py.page:24(p)
-msgid ""
-"If the image file is not loaded successfully, the image will contain a "
-"\"broken image\" icon. The <file>filename.png</file> needs to be in the "
-"current directory for this code to work."
-msgstr ""
-"ÎÎÎ ÏÎ ÎÏÏÎÎÎ ÎÎÎÏÎÎÏ ÎÎÎ ÏÎÏÏÏÎÎÎ ÎÏÎÏÏÏÏÏ, Î ÎÎÎÏÎÎ ÎÎ ÏÎÏÎÎÏÎÎ ÎÎÎ "
-"ÎÎÎÎÎÎÎÎÎ \"ÏÏÎÏÎÎÎÎÏ ÎÎÎÏÎÎÏ\". ÎÎ <file>filename.png</file> ÏÏÎÎÎÎÎÏÎÎ ÎÎ "
-"ÎÎÎÎÎ ÏÏÎÎ ÏÏÎÏÎÎÏÎ ÎÎÏÎÎÎÎÎ ÎÎÎ ÎÎ ÎÎÏÎÎÏÎÎ ÎÏÏÏÏ Î ÎÏÎÎÎÎÏ."
+#: C/statusbar.py.page:7(info/title)
+msgctxt "text"
+msgid "Statusbar (Python)"
+msgstr "ÎÏÎÎÎÎ ÎÎÏÎÏÏÎÏÎÏ (Python)"
 
-#: C/image.py.page:35(p)
+#: C/statusbar.py.page:25(page/p)
 msgid ""
-"Another way to obtain what we have in the example is to create the image as "
-"an instance of another class and add it to the instance of <code>MyWindow</"
-"code> in the <code>do_activate(self)</code> method:"
+"This statusbar tells you if you click the button or if you press any key "
+"(and which key)."
 msgstr ""
-"ÎÎÎÏ ÎÎÎÎÏ ÏÏÏÏÎÏ ÎÎÎ ÎÎ ÏÎÏÎÏÎ ÏÏÎ ÎÏÎÏÎÎ ÏÏÎ ÏÎÏÎÎÎÎÎÎÎ ÎÎÎÎÎ Î ÎÎÎÎÎÏÏÎÎÎ "
-"ÏÎÏ ÎÎÎÏÎÎÏ ÏÏ ÎÎÎ ÏÏÎÎÎÎÏÏÏÏÎ ÎÎÎÏ ÎÎÎÎÏ ÎÎÎÏÎÏ ÎÎÎ ÏÏÎÏÎÎÎÎ ÏÎÏ ÏÏÎ "
-"ÏÏÎÎÎÎÏÏÏÏÎ ÏÎÏ <code>MyWindow</code> ÏÏÎ ÎÎÎÎÎÎ <code>do_activate(self)</"
-"code>:"
+"ÎÏÏÎ Î ÎÏÎÎÎÎ ÎÎÏÎÏÏÎÏÎÏ ÏÎÏ ÎÎÎÎ ÎÎÎ ÏÎÏÎÏÎÏÎ ÏÎ ÎÎÏÎÏÎ Î ÎÎÎ ÏÎÏÎÏÎÏÎ "
+"ÎÏÎÎÎÎÎÏÎÏÎ ÎÎÎÎÎÎ (ÎÎÎ ÏÎÎÎ ÎÎÎÎÎÎ)."
 
-#: C/image.py.page:36(code)
+#: C/statusbar.py.page:32(section/code)
 #, no-wrap
 msgid ""
+"from gi.repository import Gtk\n"
+"from gi.repository import Gdk\n"
+"import sys\n"
 "\n"
-"# a class to create a window\n"
 "class MyWindow(Gtk.ApplicationWindow):\n"
+"    # a window\n"
 "    def __init__(self, app):\n"
-"        Gtk.Window.__init__(self, title=\"Welcome to GNOME\", application=app)\n"
-"        self.set_default_size(300, 300)\n"
+"        Gtk.Window.__init__(self, title=\"StatusBar Example\", application=app)\n"
+"        self.set_default_size(200, 100)\n"
 "\n"
-"# a class to create an image\n"
-"class MyImage(Gtk.Image):\n"
-"    def __init__(self):\n"
-"        Gtk.Image.__init__(self)\n"
-"        self.set_from_file(\"gnome-image.png\")\n"
+"        # a label\n"
+"        label = Gtk.Label(label=\"Press any key or \")\n"
+"\n"
+"        # a button\n"
+"        button = Gtk.Button(label=\"click me.\")\n"
+"        # connected to a callback\n"
+"        button.connect(\"clicked\", self.button_clicked_cb)\n"
+"\n"
+"        # the statusbar\n"
+"        self.statusbar = Gtk.Statusbar()\n"
+"        # its context_id - not shown in the UI but needed to uniquely identify\n"
+"        # the source of a message\n"
+"        self.context_id = self.statusbar.get_context_id(\"example\")\n"
+"        # we push a message onto the statusbar's stack\n"
+"        self.statusbar.push(self.context_id, \"Waiting for you to do something...\")\n"
+"\n"
+"        # a grid to attach the widgets\n"
+"        grid = Gtk.Grid()\n"
+"        grid.set_column_spacing(5)\n"
+"        grid.set_column_homogeneous(True)\n"
+"        grid.set_row_homogeneous(True)\n"
+"        grid.attach(label, 0, 0, 1, 1)\n"
+"        grid.attach_next_to(button, label, Gtk.PositionType.RIGHT, 1, 1)\n"
+"        grid.attach(self.statusbar, 0, 1, 2, 1)\n"
+"\n"
+"        # add the grid to the window\n"
+"        self.add(grid)\n"
+"\n"
+"    # callback function for the button clicked\n"
+"    # if the button is clicked the event is signaled to the statusbar\n"
+"    # onto which we push a new status\n"
+"    def button_clicked_cb(self, button):\n"
+"        self.statusbar.push(self.context_id, \"You clicked the button.\")\n"
+"\n"
+"    # event handler\n"
+"    def do_key_press_event(self, event):\n"
+"    # any signal from the keyboard is signaled to the statusbar\n"
+"    # onto which we push a new status with the symbolic name\n"
+"    # of the key pressed\n"
+"        self.statusbar.push(self.context_id, Gdk.keyval_name(event.keyval) +\n"
+"                                            \" key was pressed.\")\n"
+"        # stop the signal emission\n"
+"        return True\n"
 "\n"
 "class MyApplication(Gtk.Application):\n"
 "    def __init__(self):\n"
 "        Gtk.Application.__init__(self)\n"
 "\n"
 "    def do_activate(self):\n"
-"        # create an instance of MyWindow\n"
 "        win = MyWindow(self)\n"
-"        # create an instance of MyImage and add it to the window\n"
-"        win.add(MyImage())\n"
-"        # show the window and everything on it\n"
-"        win.show_all()"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
 msgstr ""
+"from gi.repository import Gtk\n"
+"from gi.repository import Gdk\n"
+"import sys\n"
 "\n"
-"# a class to create a window\n"
 "class MyWindow(Gtk.ApplicationWindow):\n"
+"    # a window\n"
 "    def __init__(self, app):\n"
-"        Gtk.Window.__init__(self, title=\"Welcome to GNOME\", application=app)\n"
-"        self.set_default_size(300, 300)\n"
+"        Gtk.Window.__init__(self, title=\"StatusBar Example\", application=app)\n"
+"        self.set_default_size(200, 100)\n"
 "\n"
-"# a class to create an image\n"
-"class MyImage(Gtk.Image):\n"
-"    def __init__(self):\n"
-"        Gtk.Image.__init__(self)\n"
-"        self.set_from_file(\"gnome-image.png\")\n"
+"        # a label\n"
+"        label = Gtk.Label(label=\"Press any key or \")\n"
+"\n"
+"        # a button\n"
+"        button = Gtk.Button(label=\"click me.\")\n"
+"        # connected to a callback\n"
+"        button.connect(\"clicked\", self.button_clicked_cb)\n"
+"\n"
+"        # the statusbar\n"
+"        self.statusbar = Gtk.Statusbar()\n"
+"        # its context_id - not shown in the UI but needed to uniquely identify\n"
+"        # the source of a message\n"
+"        self.context_id = self.statusbar.get_context_id(\"example\")\n"
+"        # we push a message onto the statusbar's stack\n"
+"        self.statusbar.push(self.context_id, \"Waiting for you to do something...\")\n"
+"\n"
+"        # a grid to attach the widgets\n"
+"        grid = Gtk.Grid()\n"
+"        grid.set_column_spacing(5)\n"
+"        grid.set_column_homogeneous(True)\n"
+"        grid.set_row_homogeneous(True)\n"
+"        grid.attach(label, 0, 0, 1, 1)\n"
+"        grid.attach_next_to(button, label, Gtk.PositionType.RIGHT, 1, 1)\n"
+"        grid.attach(self.statusbar, 0, 1, 2, 1)\n"
+"\n"
+"        # add the grid to the window\n"
+"        self.add(grid)\n"
+"\n"
+"    # callback function for the button clicked\n"
+"    # if the button is clicked the event is signaled to the statusbar\n"
+"    # onto which we push a new status\n"
+"    def button_clicked_cb(self, button):\n"
+"        self.statusbar.push(self.context_id, \"You clicked the button.\")\n"
+"\n"
+"    # event handler\n"
+"    def do_key_press_event(self, event):\n"
+"    # any signal from the keyboard is signaled to the statusbar\n"
+"    # onto which we push a new status with the symbolic name\n"
+"    # of the key pressed\n"
+"        self.statusbar.push(self.context_id, Gdk.keyval_name(event.keyval) +\n"
+"                                            \" key was pressed.\")\n"
+"        # stop the signal emission\n"
+"        return True\n"
 "\n"
 "class MyApplication(Gtk.Application):\n"
 "    def __init__(self):\n"
 "        Gtk.Application.__init__(self)\n"
 "\n"
 "    def do_activate(self):\n"
-"        # create an instance of MyWindow\n"
 "        win = MyWindow(self)\n"
-"        # create an instance of MyImage and add it to the window\n"
-"        win.add(MyImage())\n"
-"        # show the window and everything on it\n"
-"        win.show_all()"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
+
+#: C/statusbar.py.page:34(note/p)
+msgid ""
+"<code>Gdk.keyval_name(event.keyval)</code> converts the key value "
+"<code>event.keyval</code> into a symbolic name. The names and corresponding "
+"key values can be found <link href=\"http://git.gnome.org/browse/gtk+/tree/";
+"gdk/gdkkeysyms.h\">here</link>, but for instance <code>GDK_KEY_BackSpace</"
+"code> becomes the string <code>\"BackSpace\"</code>."
+msgstr ""
+"ÎÎ <code>Gdk.keyval_name(event.keyval)</code> ÎÎÏÎÏÏÎÏÎÎ ÏÎÎ ÏÎÎÎ ÎÎÎÎÎÎÎÏ "
+"ÏÎ <code>event.keyval</code> ÎÎÎ ÏÏÎÎÎÎÎÎÏ ÏÎÎÎÎ. ÎÎ ÎÎÏÎÎÏÎ ÎÎÎ ÎÎ "
+"ÎÎÏÎÏÏÎÎÏÎÏ ÏÎÎÎÏ ÎÎÎÎÎÎÎÏ ÎÏÎÏÎÏÎ ÎÎ ÎÏÎÎÎÏÎ <link href=\"http://git.gnome.";
+"org/browse/gtk+/tree/gdk/gdkkeysyms.h\">ÎÎÏ</link>, ÎÎÎÎ ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ ÏÎ "
+"<code>GDK_KEY_BackSpace</code> ÎÎÎÎÏÎÎ Î ÏÏÎÎÎÎÎÏÎÎÏÎ <code>\"BackSpace\"</"
+"code>."
+
+#: C/statusbar.py.page:40(section/title)
+msgid "Useful methods for a Statusbar widget"
+msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÏÎÎÎÎÏ ÎÎÏÎÏÏÎÏÎÏ"
+
+#: C/statusbar.py.page:42(item/p)
+msgid ""
+"<code>pop(context_id)</code> removes the first message in the statusbar "
+"stack with the given <code>context_id</code>."
+msgstr ""
+"ÎÎ <code>pop(context_id)</code> ÎÏÎÎÏÎÎ ÏÎ ÏÏÏÏÎ ÎÎÎÏÎÎ ÏÏÎ ÏÏÎÎÎÎ ÏÎÏ "
+"ÎÏÎÎÎÎÏ ÎÎÏÎÏÏÎÏÎÏ ÎÎ ÏÎ ÎÎÏÎÎÎÎ <code>context_id</code>."
+
+#: C/statusbar.py.page:43(item/p)
+msgid ""
+"<code>remove_all(context_id)</code> removes all the messages in the "
+"statusbar stack with the given <code>context_id</code>."
+msgstr ""
+"ÎÎ <code>remove_all(context_id)</code> ÎÏÎÎÏÎÎ ÏÎÎ ÏÎ ÎÎÎÏÎÎÏÎ ÏÏÎ ÏÏÎÎÎÎ "
+"ÏÎÏ ÎÏÎÎÎÎÏ ÎÎÏÎÏÏÎÏÎÏ ÎÎ ÏÎ ÎÎÏÎÎÎÎ <code>context_id</code>."
+
+#: C/statusbar.py.page:44(item/p)
+msgid ""
+"<code>remove(context_id, message_id)</code> removes the message with the "
+"given <code>message_id</code> in the statusbar stack with the given "
+"<code>context_id</code>. The <code>message_id</code> is returned by "
+"<code>push(context_id, \"the message\")</code> when pushing the message on "
+"the statusbar."
+msgstr ""
+"ÎÎ <code>remove(context_id, message_id)</code> ÎÏÎÎÏÎÎ ÏÎ ÎÎÎÏÎÎ ÎÎ ÏÎ "
+"ÎÎÏÎÎÎÎ <code>message_id</code> ÏÏÎ ÏÏÎÎÎÎ ÎÏÎÎÎÎÏ ÎÎÏÎÏÏÎÏÎÏ ÎÎ ÏÎ ÎÎÏÎÎÎÎ "
+"<code>context_id</code>. ÎÎ <code>message_id</code> ÎÏÎÏÏÏÎÏÎÏÎÎ ÎÎ "
+"<code>push(context_id, \"the message\")</code> ÏÏÎÎ ÏÏÎÏÎÎÎÏÎ ÏÎ ÎÎÎÏÎÎ ÏÏÎ "
+"ÎÏÎÎÎÎ ÎÎÏÎÏÏÎÏÎÏ."
+
+#: C/statusbar.py.page:52(item/p)
+msgid ""
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkStatusbar.html";
+"\">GtkStatusbar</link>"
+msgstr ""
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkStatusbar.html";
+"\">GtkStatusbar</link>"
+
+#: C/statusbar.py.page:53(item/p)
+msgid ""
+"<link href=\"http://developer.gnome.org/gdk/stable/gdk-Keyboard-Handling.html";
+"\">Gdk - Key Values</link>"
+msgstr ""
+"<link href=\"http://developer.gnome.org/gdk/stable/gdk-Keyboard-Handling.html";
+"\">Gdk - Key Values</link>"
+
+#: C/statusbar.vala.page:7(info/title)
+msgctxt "text"
+msgid "Statusbar (Vala)"
+msgstr "ÎÏÎÎÎÎ ÎÎÏÎÏÏÎÏÎÏ (Vala)"
+
+#: C/statusbar.vala.page:25(page/p)
+msgid "This statusbar tells you what's going on."
+msgstr "ÎÏÏÎ Î ÎÏÎÎÎÎ ÎÎÏÎÏÏÎÏÎÏ ÏÎÏ ÎÎÎÎ ÏÎ ÏÏÎÎÎÎÎÎÎ."
+
+#: C/statusbar.vala.page:27(page/code)
+#, no-wrap
+msgid ""
+"public class MyWindow : Gtk.ApplicationWindow {\n"
+"\n"
+"\tGtk.Statusbar statusbar;\n"
+"\tuint context_id;\n"
+"\n"
+"\tinternal MyWindow (MyApplication app) {\n"
+"\t\tObject (application: app, title: \"Statusbar Example\");\n"
+"\n"
+"\t\tstatusbar = new Gtk.Statusbar ();\n"
+"\t\tcontext_id = statusbar.get_context_id (\"example\");\n"
+"\t\tstatusbar.push (context_id, \"Waiting for you to do something...\");\n"
+"\n"
+"\t\t//set the default size of the window\n"
+"\t\tthis.set_default_size (200, 100);\n"
+"\t\tvar grid = new Gtk.Grid ();\n"
+"\t\tvar label = new Gtk.Label (\"Press any key or \");\n"
+"\n"
+"\t\tgrid.attach (label, 0, 0, 1, 1);\n"
+"\t\tlabel.show ();\n"
+"\n"
+"\t\tvar button = new Gtk.Button.with_label (\"click me.\");\n"
+"\t\tgrid.attach_next_to (button, label, Gtk.PositionType.RIGHT, 1, 1);\n"
+"\t\tbutton.show ();\n"
+"\n"
+"\t\tgrid.attach (statusbar, 0, 1, 2, 1);\n"
+"\t\tstatusbar.show ();\n"
+"\n"
+"\t\tgrid.set_column_spacing (5);\n"
+"\t\tgrid.set_column_homogeneous (true);\n"
+"\t\tgrid.set_row_homogeneous (true);\n"
+"\n"
+"\t\tthis.add (grid);\n"
+"\t\tgrid.show ();\n"
+"\n"
+"\t\tbutton.clicked.connect(button_clicked_cb);\n"
+"\t}\n"
+"\n"
+"\t/* Since the key-press-event is a signal received by the window, we don't need to connect\n"
+"\tthe window to a callback function.  We can just override key_press_event. */\n"
+"\tprotected override bool key_press_event (Gdk.EventKey event) {\n"
+"\t\tstatusbar.push (context_id, Gdk.keyval_name(event.keyval) + \" key was pressed.\");\n"
+"\t\treturn true;\n"
+"\t}\n"
+"\n"
+"\tvoid button_clicked_cb (Gtk.Button button) {\n"
+"\t\tstatusbar.push (context_id, \"You clicked the button.\");\n"
+"\t}\n"
+"}\n"
+"\n"
+"public class MyApplication : Gtk.Application {\n"
+"\tprotected override void activate () {\n"
+"\t\tnew MyWindow (this).show ();\n"
+"\t}\n"
+"\n"
+"\tinternal MyApplication () {\n"
+"\t\tObject (application_id: \"org.example.status\");\n"
+"\t}\n"
+"}\n"
+"\n"
+"public int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
+msgstr ""
+"public class MyWindow : Gtk.ApplicationWindow {\n"
+"\n"
+"\tGtk.Statusbar statusbar;\n"
+"\tuint context_id;\n"
+"\n"
+"\tinternal MyWindow (MyApplication app) {\n"
+"\t\tObject (application: app, title: \"Statusbar Example\");\n"
+"\n"
+"\t\tstatusbar = new Gtk.Statusbar ();\n"
+"\t\tcontext_id = statusbar.get_context_id (\"example\");\n"
+"\t\tstatusbar.push (context_id, \"Waiting for you to do something...\");\n"
+"\n"
+"\t\t//set the default size of the window\n"
+"\t\tthis.set_default_size (200, 100);\n"
+"\t\tvar grid = new Gtk.Grid ();\n"
+"\t\tvar label = new Gtk.Label (\"Press any key or \");\n"
+"\n"
+"\t\tgrid.attach (label, 0, 0, 1, 1);\n"
+"\t\tlabel.show ();\n"
+"\n"
+"\t\tvar button = new Gtk.Button.with_label (\"click me.\");\n"
+"\t\tgrid.attach_next_to (button, label, Gtk.PositionType.RIGHT, 1, 1);\n"
+"\t\tbutton.show ();\n"
+"\n"
+"\t\tgrid.attach (statusbar, 0, 1, 2, 1);\n"
+"\t\tstatusbar.show ();\n"
+"\n"
+"\t\tgrid.set_column_spacing (5);\n"
+"\t\tgrid.set_column_homogeneous (true);\n"
+"\t\tgrid.set_row_homogeneous (true);\n"
+"\n"
+"\t\tthis.add (grid);\n"
+"\t\tgrid.show ();\n"
+"\n"
+"\t\tbutton.clicked.connect(button_clicked_cb);\n"
+"\t}\n"
+"\n"
+"\t/* Since the key-press-event is a signal received by the window, we don't need to connect\n"
+"\tthe window to a callback function.  We can just override key_press_event. */\n"
+"\tprotected override bool key_press_event (Gdk.EventKey event) {\n"
+"\t\tstatusbar.push (context_id, Gdk.keyval_name(event.keyval) + \" key was pressed.\");\n"
+"\t\treturn true;\n"
+"\t}\n"
+"\n"
+"\tvoid button_clicked_cb (Gtk.Button button) {\n"
+"\t\tstatusbar.push (context_id, \"You clicked the button.\");\n"
+"\t}\n"
+"}\n"
+"\n"
+"public class MyApplication : Gtk.Application {\n"
+"\tprotected override void activate () {\n"
+"\t\tnew MyWindow (this).show ();\n"
+"\t}\n"
+"\n"
+"\tinternal MyApplication () {\n"
+"\t\tObject (application_id: \"org.example.status\");\n"
+"\t}\n"
+"}\n"
+"\n"
+"public int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
+
+#: C/statusbar.vala.page:32(item/p)
+msgid ""
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Statusbar.html\";>Gtk."
+"Statusbar</link>"
+msgstr ""
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Statusbar.html\";>Gtk."
+"Statusbar</link>"
+
+#: C/strings.py.page:8(info/title)
+msgctxt "text"
+msgid "Strings (Python)"
+msgstr "ÎÏÎÎÎÎÎÏÎÎÏÎÏ (Python)"
+
+#: C/strings.py.page:12(info/desc)
+msgid "An explanation of how to deal with strings in Python and GTK+."
+msgstr ""
+"ÎÎÎ ÎÎÎÎÎÏÎ ÏÏÏ ÎÎ ÎÎÏÎÎÎÏÏÏÎÏÎÏÎ ÏÎÏ ÏÏÎÎÎÎÎÏÎÎÏÎÏ ÏÎ Python ÎÎÎ GTK+."
+
+#: C/strings.py.page:25(page/title)
+msgid "Strings"
+msgstr "ÎÏÎÎÎÎÎÏÎÎÏÎÏ"
+
+#: C/strings.py.page:30(section/title)
+msgid "Definitions"
+msgstr "ÎÏÎÏÎÎÎ"
+
+#: C/strings.py.page:32(section/p)
+msgid ""
+"Conceptionally, a <em>string</em> is a list of <em>characters</em> such as "
+"'A', 'B', 'C' or 'Ã'. Characters are abstract representations and their "
+"meaning depends on the language and context they are used in. The "
+"<em>Unicode standard</em> describes how characters are represented by "
+"<em>code points</em>. For example the characters above are represented with "
+"the code points U+0041, U+0042, U+0043, and U+00C9, respectively. Basically, "
+"code points are numbers in the range from 0 to 0x10FFFF."
+msgstr ""
+"ÎÎÎÎÎÎÎÎÎÎÎÎ ÎÎÎ <em>ÏÏÎÎÎÎÎÏÎÎÏÎ</em> ÎÎÎÎÎ ÎÎÎ ÎÎÏÏÎ <em>ÏÎÏÎÎÏÎÏÏÎ</em> "
+"ÏÏÏÏ 'A', 'B', 'C' or 'Ã'. ÎÎ ÏÎÏÎÎÏÎÏÎÏ ÎÎÎÎÎ ÎÏÎÏÎÎÎÎÎÏ ÎÎÎÏÎÏÎÏÏÎÏÎÎÏ ÎÎÎ "
+"ÏÎ ÎÏÎÎÎ ÏÎÏÏ ÎÎÎÏÏÎÏÎÎ ÎÏÏ ÏÎ ÎÎÏÏÏÎ ÎÎÎ ÏÎ ÏÎÏÎÎÏÏÎÎÎÎ ÏÏÎ ÎÏÎÎÎ "
+"ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ. ÎÎ <em>ÏÏÏÎÎÏ Unicode</em> ÏÎÏÎÎÏÎÏÎÎ ÏÏÏ ÎÎ ÏÎÏÎÎÏÎÏÎÏ "
+"ÎÎÎÏÎÏÎÏÏÏÎÏÎÎ ÎÏÏ <em>ÏÎÎÎÎÎ ÎÏÎÎÎÎ</em>. ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ ÎÎ ÏÎÏÎÏÎÎÏ "
+"ÏÎÏÎÎÏÎÏÎÏ ÎÎÎÏÎÏÎÏÏÏÎÏÎÎ ÎÎ ÏÎ ÏÎÎÎÎÎ ÎÏÎÎÎÎ U+0041, U+0042, U+0043 ÎÎÎ U"
+"+00C9, ÎÎÏÎÏÏÎÎÏÎ. ÎÎÏÎÎÎ, ÏÎ ÏÎÎÎÎÎ ÎÏÎÎÎÎ ÎÎÎÎÎ ÎÏÎÎÎÎÎ ÏÏÎÎ ÏÎÏÎÎÏÎ ÎÏÏ 0 "
+"ÎÏÏ 0x10FFFF."
+
+#: C/strings.py.page:34(section/p)
+msgid ""
+"The representation of a string as a list of code points is abstract. In "
+"order to convert this abstract representation into a sequence of bytes the "
+"Unicode string must be <em>encoded</em>. The simplest from of encoding is "
+"ASCII and is performed as follows:"
+msgstr ""
+"Î ÎÎÎÏÎÏÎÏÏÎÏÎ ÎÎÎÏ ÏÏÎÎÎÎÎÏÎÎÏÎÏ ÏÏ ÎÎÎÏ ÎÎÏÏÎÏ ÏÎÎÎÎÏÎ ÎÏÎÎÎÎ ÎÎÎÎÎ "
+"ÎÏÎÏÎÎÎÎÎ. ÎÎÎ ÎÎ ÎÎÏÎÏÏÎÏÎÏÎ ÎÏÏÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎÎ ÎÎÎÏÎÏÎÏÏÎÏÎ ÏÎ ÎÎÎ ÏÎÎÏÎ "
+"bytes Î ÏÏÎÎÎÎÎÏÎÎÏÎ Unicode ÏÏÎÏÎÎ ÎÎ <em>ÎÏÎÎÎÎÏÎÎÎÎÎÎ</em>. Î ÎÏÎÎÏÏÏÎÏÎ "
+"ÎÎÏÏÎ ÎÏÎÎÎÎÏÎÎÎÏÎÏ ÎÎÎÎÎ Î ASCII ÎÎÎ ÎÎÏÎÎÎÎÏÎÎ ÏÏ ÎÎÎÏ:"
 
-#: C/image.py.page:63(title)
-msgid "Useful methods for an Image widget"
-msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÎÎÏÎÎÏ"
+#: C/strings.py.page:37(item/p)
+msgid ""
+"If the code point is strictly less than 128, each byte is the same as the "
+"value of the code point."
+msgstr ""
+"ÎÎÎ ÏÎ ÏÎÎÎÎÎ ÎÏÎÎÎÎ ÎÎÎÎÎ ÎÏÏÏÎÏÎ ÎÎÎÏÏÏÎÏÎ ÎÏÏ 128, ÎÎÎÎ byte ÎÎÎÎÎ Î ÎÎÎÎ "
+"ÏÏÏÏ Î ÏÎÎÎ ÏÎÏ ÏÎÎÎÎÎÏ ÎÏÎÎÎÎ."
 
-#: C/image.py.page:66(p)
+#: C/strings.py.page:38(item/p)
 msgid ""
-"To set a stock icon as image, you can use <code>set_from_stock(stock_id, "
-"size)</code> where <code>stock_id</code> is a stock icon such as <code>Gtk."
-"STOCK_ABOUT</code> (more can be found at <link href=\"http://developer.gnome.";
-"org/gtk3/unstable/gtk3-Stock-Items\">Stock Items</link>, with the caveat "
-"that they should be modified as above) and <code>size</code> is a stock icon "
-"size to be chosen from <code>Gtk.IconSize.INVALID, Gtk.IconSize.MENU, Gtk."
-"IconSize.SMALL_TOOLBAR, Gtk.IconSize.LARGE_TOOLBAR, Gtk.IconSize.BUTTON, Gtk."
-"IconSize.DND, Gtk.IconSize.DIALOG</code>."
+"If the code point is 128 or greater, the Unicode string canât be represented "
+"in this encoding. (Python raises a <sys>UnicodeEncodeError</sys> exception "
+"in this case.)"
 msgstr ""
-"ÎÎÎ ÎÎ ÎÏÎÏÎÏÎ ÎÎÎ ÎÎÎÎÎÎÎÎÎ ÏÎÏÎÎÎÏÎÎÎÎÎÏ ÏÏ ÎÎÎÏÎÎ, ÎÏÎÏÎÎÏÎ ÎÎ "
-"ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÏÎ <code>set_from_stock(stock_id, size)</code> ÏÏÎÏ "
-"<code>stock_id</code> ÎÎÎÎÎ ÎÎÎ ÎÎÎÎÎÎÎÎÎ ÏÎÏÎÎÎÏÎÎÎÎÎÏ ÏÏÏÏ <code>Gtk."
-"STOCK_ABOUT</code> (ÏÎÏÎÏÏÏÏÎÏÎ ÎÏÎÏÎÎÏÎ ÎÎ ÎÏÎÎÏÎ ÏÏÎ <link href=\"http://";
-"developer.gnome.org/gtk3/unstable/gtk3-Stock-Items\">ÏÏÎÎÏÎÎÎ ÏÎÏÎÎÎÏÎÎÎÎÎÏ</"
-"link>, ÎÎ ÏÎÎ ÎÏÎÏÏÎÎÎÎ ÏÏÎ ÏÏÎÏÎÎ ÎÎ ÏÏÎÏÎÏÎÎÎÎÎÏÎ ÏÏÏÏ ÏÎÎ ÏÎÎÏ) ÎÎÎ "
-"<code>size</code> ÎÎÎÎÎ ÎÎÎÎÎÎÏ ÎÎÎÎÎÎÎÎÎÏ ÏÎÏÎÎÎÏÎÎÎÎÎÏ ÎÎÎ ÎÏÎÎÎÎÎ ÎÏÏ "
-"<code>Gtk.IconSize.INVALID, Gtk.IconSize.MENU, Gtk.IconSize.SMALL_TOOLBAR, "
-"Gtk.IconSize.LARGE_TOOLBAR, Gtk.IconSize.BUTTON, Gtk.IconSize.DND, Gtk."
-"IconSize.DIALOG</code>."
+"ÎÎÎ ÏÎ ÏÎÎÎÎÎ ÎÏÎÎÎÎ ÎÎÎÎÎ 128 Î ÎÎÎÎÎÏÏÎÏÎ, Î ÏÏÎÎÎÎÎÏÎÎÏÎ Unicode ÎÎÎ "
+"ÎÏÎÏÎÎ ÎÎ ÎÎÎÏÎÏÎÏÏÎÎÎÎ ÏÎ ÎÏÏÎÎ ÏÎÎ ÎÏÎÎÎÎÏÎÎÎÏÎ. (Î Python ÎÎÎÎÏÎÎ ÎÎÎ "
+"ÎÎÎÎÏÎÏÎ <sys>UnicodeEncodeError</sys> ÏÎ ÎÏÏÎÎ ÏÎÎ ÏÎÏÎÏÏÏÏÎ.)"
 
-#: C/image.py.page:67(p)
+#: C/strings.py.page:41(section/p)
 msgid ""
-"You can also use <code>set_from_icon_name(icon_name, size)</code>, where "
-"<code>icon_name</code> is a stock icon name such as <code>\"gtk-about\"</"
-"code> (more can be found as above) and <code>size</code> is as above."
+"Although ASCII encoding is simple to apply it can only encode for 128 "
+"different characters which is hardly enough. One of the most commonly used "
+"encodings that addresses this problem is UTF-8 (it can handle any Unicode "
+"code point). UTF stands for âUnicode Transformation Formatâ, and the â8â "
+"means that 8-bit numbers are used in the encoding."
 msgstr ""
-"ÎÏÎÏÎÎÏÎ ÎÏÎÏÎÏ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ <code>set_from_icon_name(icon_name, size)"
-"</code>, ÏÏÎÏ <code>icon_name</code> ÎÎÎÎÎ ÏÎÎÎÎ ÎÎÎÎÎÎÎÎÎÏ ÏÎÏÎÎÎÏÎÎÎÎÎÏ "
-"ÏÏÏÏ ÏÎ <code>\"gtk-about\"</code> (ÏÎÏÎÏÏÏÏÎÏÎ ÎÏÎÏÎÏÎ ÎÎ ÎÏÎÎÎÏÎ ÏÏÏÏ "
-"ÏÎÏÎÏÎÎÏ) ÎÎÎ ÏÎ <code>size</code> ÎÎÎÎÎ ÏÏÏÏ ÏÎÏÎÏÎÎÏ."
+"ÎÎ ÎÎÎ Î ÎÏÎÎÎÎÏÎÎÎÏÎ ASCII ÎÎÎÎÎ ÎÏÎÎ ÏÏÎÎ ÎÏÎÏÎÎÎÎ ÎÏÎÏÎÎ ÎÎ ÎÏÎÎÎÎÏÎÎÎÏÎÎ "
+"ÎÏÎÎ 128 ÎÎÎÏÎÏÎÏÎÎÎÏÏ ÏÎÏÎÎÏÎÏÎÏ ÏÎÏ ÎÎÎÎÎ ÎÎÎÏÎÏÎÎÎÏ. ÎÎÎ ÎÏÏ ÏÎÏ "
+"ÏÏÎÎÎÎÏÏÎÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎÎÎÏ ÎÏÎÎÎÎÏÎÎÎÏÎÎÏ ÏÎÏ ÎÎÏÎÎÎÏÏÏÎÎÎÎ ÎÏÏÏ ÏÎ "
+"ÏÏÏÎÎÎÎÎ ÎÎÎÎÎ Î UTF-8 (ÎÏÎÏÎÎ ÎÎ ÏÎÎÏÎÏÏÎÎ ÎÏÎÎÎÎÎÏÎÏÎ ÏÎÎÎÎÎ ÎÏÎÎÎÎ "
+"Unicode). UTF ÏÎÎÎÎÎÎÎ âÎÎÏÏÎ ÎÎÏÎÏÏÎÎÎÏÎÏÎÎÏ ÎÎÎÎÎÏ ÎÏÎÎÎÎâ, ÎÎÎ ÏÎ â8â "
+"ÏÎÎÎÎÎÎÎ ÏÏÎ ÎÏÎÎÎÎÎ 8 ÎÏÎÎÎÎÏÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÏÏÎÎ ÎÏÎÎÎÎÏÎÎÎÏÎ."
+
+#: C/strings.py.page:46(section/title)
+msgid "Strings in Python 2"
+msgstr "ÎÏÎÎÎÎÎÏÎÎÏÎÏ ÏÎ Python 2"
 
-#: C/image.py.page:68(p)
+#: C/strings.py.page:48(section/p)
 msgid ""
-"To load an image over a network use <code>set_from_pixbuf(pixbuf)</code>, "
-"where <code>pixbuf</code> is a <link href=\"http://developer.gnome.org/gdk-";
-"pixbuf/unstable//index.html\">GdkPixbuf</link>."
+"Python 2 comes with two different kinds of objects that can be used to "
+"represent strings, <code>str</code> and <code>unicode</code>. Instances of "
+"<code>unicode</code> are used to express Unicode strings, whereas instances "
+"of the <code>str</code> type are byte representations (the encoded string). "
+"Under the hood, Python represents Unicode strings as either 16- or 32-bit "
+"integers, depending on how the Python interpreter was compiled."
 msgstr ""
-"ÎÎÎ ÏÏÏÏÏÏÎ ÎÎÎÏÎÎÏ ÎÎÏÏ ÎÎÎÏÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÏÏÎ <code>set_from_pixbuf(pixbuf)"
-"</code>, ÏÏÎÏ <code>pixbuf</code> ÎÎÎÎÎ <link href=\"http://developer.gnome.";
-"org/gdk-pixbuf/unstable//index.html\">GdkPixbuf</link>."
+"Î Python 2 ÎÏÏÎÏÎÎ ÎÎ ÎÏÎ ÎÎÎÏÎÏÎÏÎÎÎ ÎÎÎÎ ÎÎÏÎÎÎÎÎÎÎÏÎ ÏÎÏ ÎÏÎÏÎÏÎ ÎÎ "
+"ÏÏÎÏÎÎÎÏÎÎÎÎÎÏÎ ÎÎÎ ÎÎÎÏÎÏÎÏÏÎÏÎ ÏÏÎÎÎÎÎÏÎÎÏÏÎ, <code>str</code> ÎÎÎ "
+"<code>unicode</code>. ÎÎÏÎÏÏÏÏÎÎÏ ÏÎÏ <code>unicode</code> ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ "
+"ÎÎÎ ÎÎ ÎÎÏÏÎÏÎÏÎ ÏÏÎÎÎÎÎÏÎÎÏÎÏ Unicode, ÎÎÏ ÏÎÏÎÏÏÏÏÎÎÏ ÏÎÏ ÏÏÏÎÏ <code>str</"
+"code> ÎÎÎÎÎ ÎÎÎÏÎÏÎÏÏÎÏÎÎÏ byte (Î ÎÏÎÎÎÎÏÎÎÎÎÎÎÎ ÏÏÎÎÎÎÎÏÎÎÏÎ). ÎÏÎ ÎÏÎÎÎ, "
+"Î Python ÎÎÏÎÏÏÎÏÏÏÎÏÎÎ ÏÏÎÎÎÎÎÏÎÎÏÎÏ Unicode ÏÏ ÎÎÏÎ 16- Î 32- ÎÏÎÎÎÎÏÎ "
+"ÎÎÎÏÎÎÎÏÏ, ÎÎÎÎÎÎÎ ÎÎ ÏÎ ÏÏÏ Î ÎÎÎÏÎÎÎÎÏÏÎÏ Python ÎÎÏÎÎÎÏÏÏÎÏÏÎÎÎ."
 
-#: C/image.py.page:69(code)
+#: C/strings.py.page:50(section/code)
 #, no-wrap
 msgid ""
 "\n"
-"from gi.repository import Gtk\n"
-"from gi.repository import GdkPixbuf\n"
-"import sys\n"
-"\n"
-"class MyWindow(Gtk.ApplicationWindow):\n"
-"    # create a window\n"
-"    def __init__(self, app):\n"
-"        Gtk.Window.__init__(self, title=\"Welcome to GNOME\", application=app)\n"
-"        self.set_default_size(300, 300)\n"
-"\n"
-"        # create a pixbuf from file filename=\"gnome-image.png\", with width=32\n"
-"        # and height=64 amd boolean preserve_aspect_ratio=False.\n"
-"        pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_scale(\"gnome-image.png\", 64, 128, False)\n"
-"\n"
-"        # create an image\n"
-"        image = Gtk.Image()\n"
-"        # set the content of the image as the pixbuf\n"
-"        image.set_from_pixbuf(pixbuf)\n"
-"        # add the image to the window\n"
-"        self.add(image)"
+"&gt;&gt;&gt; unicode_string = u\"Fu\\u00dfb\\u00e4lle\"\n"
+"&gt;&gt;&gt; print unicode_string\n"
+"FuÃbÃlle\n"
 msgstr ""
 "\n"
-"from gi.repository import Gtk\n"
-"from gi.repository import GdkPixbuf\n"
-"import sys\n"
-"\n"
-"class MyWindow(Gtk.ApplicationWindow):\n"
-"    # create a window\n"
-"    def __init__(self, app):\n"
-"        Gtk.Window.__init__(self, title=\"Welcome to GNOME\", application=app)\n"
-"        self.set_default_size(300, 300)\n"
-"\n"
-"        # create a pixbuf from file filename=\"gnome-image.png\", with width=32\n"
-"        # and height=64 amd boolean preserve_aspect_ratio=False.\n"
-"        pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_scale(\"gnome-image.png\", 64, 128, False)\n"
-"\n"
-"        # create an image\n"
-"        image = Gtk.Image()\n"
-"        # set the content of the image as the pixbuf\n"
-"        image.set_from_pixbuf(pixbuf)\n"
-"        # add the image to the window\n"
-"        self.add(image)"
+"&gt;&gt;&gt; unicode_string = u\"Fu\\u00dfb\\u00e4lle\"\n"
+"&gt;&gt;&gt; print unicode_string\n"
+"FuÃbÃlle\n"
 
-#: C/image.py.page:90(p)
+#: C/strings.py.page:56(section/p)
 msgid ""
-"If <code>preserve_aspect_ratio=True</code> we can use "
-"<code>new_from_file_at_size(filename, width, height)</code>. If <code>width</"
-"code> or <code>height</code> is <code>-1</code>, it is not constrained."
+"Unicode strings can be converted to 8-bit strings with <code>unicode.encode()"
+"</code>. Pythonâs 8-bit strings have a <code>str.decode()</code> method that "
+"interprets the string using the given encoding (that is, it is the inverse "
+"of the <code>unicode.encode()</code>):"
 msgstr ""
-"ÎÎÎ <code>preserve_aspect_ratio=True</code> ÎÏÎÏÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ "
-"<code>new_from_file_at_size(filename, width, height)</code>. ÎÎÎ "
-"<code>width</code> Î <code>height</code> ÎÎÎÎÎ <code>-1</code>, ÎÎÎ "
-"ÏÎÏÎÎÏÎÎÎÏÎÎ."
+"ÎÎ ÏÏÎÎÎÎÎÏÎÎÏÎÏ Unicode ÎÏÎÏÎÏÎ ÎÎ ÎÎÏÎÏÏÎÏÎÏÎ ÏÎ ÏÏÎÎÎÎÎÏÎÎÏÎÏ 8 ÎÏÎÎÎÎÏÎ "
+"ÎÎ <code>unicode.encode()</code>. ÎÎ ÏÏÎÎÎÎÎÏÎÎÏÎÏ 8 ÎÏÎÎÎÎÏÎ ÎÏÎÏÎ ÎÎÎ "
+"ÎÎÎÎÎÎ <code>str.decode()</code> ÏÎÏ ÎÏÎÎÎÎÏÎÎ ÏÎ ÏÏÎÎÎÎÎÏÎÎÏÎ "
+"ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ ÎÎÎÎÎÎÎÎ ÎÏÎÎÎÎÏÎÎÎÏÎ (ÎÎÎÎÎÎ, ÎÎÎÎÎ ÏÎ ÎÎÏÎÏÏÏÎÏÎ ÏÎÏ "
+"<code>unicode.encode()</code>):"
 
-#: C/image.py.page:91(p)
+#: C/strings.py.page:58(section/code)
+#, no-wrap
 msgid ""
-"For loading from an input stream, see <code>new_from_stream()</code> and "
-"<code>new_from_stream_at_scale()</code> in the documentation"
+"\n"
+"&gt;&gt;&gt; type(unicode_string)\n"
+"&lt;type 'unicode'&gt;\n"
+"&gt;&gt;&gt; unicode_string.encode(\"utf-8\")\n"
+"'Fu\\xc3\\x9fb\\xc3\\xa4lle'\n"
+"&gt;&gt;&gt; utf8_string = unicode_string.encode(\"utf-8\")\n"
+"&gt;&gt;&gt; type(utf8_string)\n"
+"&lt;type 'str'&gt;\n"
+"&gt;&gt;&gt; unicode_string == utf8_string.decode(\"utf-8\")\n"
+"True"
 msgstr ""
-"ÎÎÎ ÏÏÏÏÏÏÎ ÎÏÏ ÏÎÎ ÎÎÏÏÎÎÏ, ÎÎÎÏÎ <code>new_from_stream()</code> ÎÎÎ "
-"<code>new_from_stream_at_scale()</code> ÏÏÎÎ ÏÎÎÎÎÏÎÏÏÎ"
-
-#: C/image.js.page:6(title)
-msgid "Image (JavaScript)"
-msgstr "ÎÎÎÏÎÎ (JavaScript)"
-
-#: C/image.c.page:7(title)
-msgid "Image (C)"
-msgstr "ÎÎÎÏÎÎ (C)"
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/helloWorld.js.page:27(None)
-msgid "@@image: 'media/helloWorld.png'; md5=4c88a27211dfd1b33e504c9f78602f2d"
-msgstr "@@image: 'media/helloWorld.png'Â md5=4c88a27211dfd1b33e504c9f78602f2d"
-
-#: C/helloWorld.js.page:8(title)
-msgid "Hello World (JavaScript)"
-msgstr "Hello World (JavaScript)"
-
-#: C/helloWorld.js.page:23(desc)
-msgid "A basic \"hello, world\" application"
-msgstr "ÎÎÎ ÎÎÏÎÎÎ ÎÏÎÏÎÎÎÎ \"hello, world\""
-
-#: C/helloWorld.js.page:26(title)
-msgid "Hello World"
-msgstr "Hello World"
+"\n"
+"&gt;&gt;&gt; type(unicode_string)\n"
+"&lt;type 'unicode'&gt;\n"
+"&gt;&gt;&gt; unicode_string.encode(\"utf-8\")\n"
+"'Fu\\xc3\\x9fb\\xc3\\xa4lle'\n"
+"&gt;&gt;&gt; utf8_string = unicode_string.encode(\"utf-8\")\n"
+"&gt;&gt;&gt; type(utf8_string)\n"
+"&lt;type 'str'&gt;\n"
+"&gt;&gt;&gt; unicode_string == utf8_string.decode(\"utf-8\")\n"
+"True"
+
+#: C/strings.py.page:69(section/p)
+msgid ""
+"Unfortunately, Python 2.x allows you to mix <code>unicode</code> and "
+"<code>str</code> if the 8-bit string happened to contain only 7-bit (ASCII) "
+"bytes, but would get <sys>UnicodeDecodeError</sys> if it contained non-ASCII "
+"values."
+msgstr ""
+"ÎÏÏÏÏÏÏÏ, Î Python 2.x ÎÏÎÏÏÎÏÎÎ ÏÎÎ ÎÎÎÎÎÎÎÎ <code>unicode</code> ÎÎÎ "
+"<code>str</code> ÎÎÎ Î ÏÏÎÎÎÎÎÏÎÎÏÎ 8 ÎÏÎÎÎÎÏÎ ÏÏÎÎÎÎ ÎÎ ÏÎÏÎÎÏÎÎ ÎÏÎÎ bytes "
+"ÎÏÎÎ 7 ÎÏÎÎÎÎÏÎ (ASCII), ÎÎÎÎ ÎÎ ÎÏÎÏÎÏÏÎ ÎÎ ÏÎÏÎÎ <sys>UnicodeDecodeError</"
+"sys> ÎÎÎ ÏÎÏÎÎÏÎÎ ÎÎ ASCII ÏÎÎÎÏ."
 
-#: C/helloWorld.js.page:29(p)
-msgid "This tutorial will demonstrate how to:"
-msgstr "ÎÏÏÏ ÏÎ ÎÎÎÎÎÎ ÎÎ ÎÎÎÎÎÎ ÏÏÏ ÎÎ:"
+#: C/strings.py.page:74(section/title)
+msgid "Strings in Python 3"
+msgstr "ÎÏÎÎÎÎÎÏÎÎÏÎÏ ÏÎ Python 3"
 
-#: C/helloWorld.js.page:31(p)
-msgid "create a small \"Hello, World\" application using JavaScript and GTK+"
+#: C/strings.py.page:76(section/p)
+msgid ""
+"Since Python 3.0, all strings are stored as Unicode in an instance of the "
+"<code>str</code> type. Encoded strings on the other hand are represented as "
+"binary data in the form of instances of the bytes type. Conceptionally, "
+"<code>str</code> refers to text, whereas bytes refers to data. Use "
+"<code>encode()</code> to go from <code>str</code> to <code>bytes</code>, and "
+"<code>decode()</code> to go from <code>bytes</code> to <code>str</code>."
 msgstr ""
-"ÎÎÎÎÎÏÏÎÎÏÎÏÎ ÎÎÎ ÎÎÎÏÎ ÎÏÎÏÎÎÎÎ \"Hello, World\" ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ JavaScript "
-"ÎÎÎ GTK+"
-
-#: C/helloWorld.js.page:32(p)
-msgid "make the <file>.desktop</file> file"
-msgstr "ÎÎÎÎÏÎ ÏÎ ÎÏÏÎÎÎ <file>.desktop</file>"
+"ÎÏÏ ÏÎÎ Python 3.0, ÏÎÎÏ ÎÎ ÏÏÎÎÎÎÎÏÎÎÏÎÏ ÎÏÎÎÎÎÎÏÎÎÏÎÎ ÏÏ Unicode ÏÎ ÎÎÎ "
+"ÏÏÎÎÎÎÏÏÏÏÎ ÏÎÏ ÏÏÏÎÏ <code>str</code>. ÎÏÎÎÎÎÏÎÎÎÎÎÎÎÏ ÏÏÎÎÎÎÎÏÎÎÏÎÏ ÎÏÏ "
+"ÏÎÎ ÎÎÎÎ ÎÎÏÎÎ ÎÎÎÏÎÏÎÏÏÏÎÏÎÎ ÏÏ ÎÏÎÎÎÎÎ ÎÎÎÎÎÎÎÎ ÏÏÎ ÏÏÏÎÎ ÏÏÎÎÎÎÎÏÏÏÏÎ ÏÎÏ "
+"ÏÏÏÎÏ bytes. ÎÎÎÎÎÎÎÎÎÎÎÎ, Î <code>str</code> ÎÎÎÏÎÏÎÏÎÎ ÏÎ ÎÎÎÎÎÎÎ, ÎÎÏ ÏÎ "
+"bytes ÎÎÎÏÎÏÎÎÏÎÎ ÏÎ ÎÎÎÎÎÎÎÎ. ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ <code>encode()</code> ÎÎÎ "
+"ÎÎÏÎÎÎÏÎ ÎÏÏ <code>str</code> ÏÎ <code>bytes</code> ÎÎÎ <code>decode()</"
+"code> ÎÎÎ ÎÎÏÎÎÎÏÎ ÎÏÏ <code>bytes</code> ÏÎ <code>str</code>."
 
-#: C/helloWorld.js.page:33(p)
-msgid "how to set up the build system"
-msgstr "ÏÏÎÎÎÏÎÏÎ ÏÎ ÏÏÏÏÎÎÎ ÎÏÎÎÏÎÏ"
+#: C/strings.py.page:78(section/p)
+msgid ""
+"In addition, it is no longer possible to mix Unicode strings with encoded "
+"strings, because it will result in a <code>TypeError</code>:"
+msgstr ""
+"ÎÏÎÏÎÎÎÎ, ÎÎÎ ÎÎÎÎÎ ÏÎÎ ÎÏÎÎÏÏ ÎÎ ÎÎÎÎÎÎÎÎÏÎ ÏÏÎÎÎÎÎÏÎÎÏÎÏ Unicode ÎÎ "
+"ÎÏÎÎÎÎÏÎÎÎÎÎÎÎÏ ÏÏÎÎÎÎÎÏÎÎÏÎÏ, ÎÏÎÎÎÎ ÎÎ ÎÎÏÎÎÎÎÎÎ ÏÎ ÎÎÎ <code>TypeError</"
+"code>:"
 
-#: C/helloWorld.js.page:41(title)
-msgid "Create the HelloWorld program"
-msgstr "ÎÎÎÎÎÏÏÎÎÏÏÎ ÏÎ ÏÏÏÎÏÎÎÎÎ HelloWorld"
+#: C/strings.py.page:80(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"&gt;&gt;&gt; text = \"Fu\\u00dfb\\u00e4lle\"\n"
+"&gt;&gt;&gt; data = b\" sind rund\"\n"
+"&gt;&gt;&gt; text + data\n"
+"Traceback (most recent call last):\n"
+"  File \"&lt;stdin&gt;\", line 1, in &lt;module&gt;\n"
+"TypeError: Can't convert 'bytes' object to str implicitly\n"
+"&gt;&gt;&gt; text + data.decode(\"utf-8\")\n"
+"'FuÃbÃlle sind rund'\n"
+"&gt;&gt;&gt; text.encode(\"utf-8\") + data\n"
+"b'Fu\\xc3\\x9fb\\xc3\\xa4lle sind rund'"
+msgstr ""
+"\n"
+"&gt;&gt;&gt; text = \"Fu\\u00dfb\\u00e4lle\"\n"
+"&gt;&gt;&gt; data = b\" sind rund\"\n"
+"&gt;&gt;&gt; text + data\n"
+"Traceback (most recent call last):\n"
+"  File \"&lt;stdin&gt;\", line 1, in &lt;module&gt;\n"
+"TypeError: Can't convert 'bytes' object to str implicitly\n"
+"&gt;&gt;&gt; text + data.decode(\"utf-8\")\n"
+"'FuÃbÃlle sind rund'\n"
+"&gt;&gt;&gt; text.encode(\"utf-8\") + data\n"
+"b'Fu\\xc3\\x9fb\\xc3\\xa4lle sind rund'"
+
+#: C/strings.py.page:95(section/title)
+msgid "Unicode in GTK+"
+msgstr "Unicode ÏÎ GTK+"
 
-#: C/helloWorld.js.page:46(p)
-msgid "This needs to be the first line of your script:"
-msgstr "ÎÏÏÏ ÏÏÎÎÎÎÎÏÎÎ ÎÎ ÎÎÎÎÎ Î ÏÏÏÏÎ ÎÏÎÎÎÎ ÏÎÏ ÏÎÎÎÏÎÎÏ ÏÎÏ:"
+#: C/strings.py.page:97(section/p)
+msgid ""
+"GTK+ uses UTF-8 encoded strings for all text. This means that if you call a "
+"method that returns a string you will always obtain an instance of the "
+"<code>str</code> type. The same applies to methods that expect one or more "
+"strings as parameter, they must be UTF-8 encoded. However, for convenience "
+"PyGObject will automatically convert any unicode instance to str if supplied "
+"as argument:"
+msgstr ""
+"ÎÎ GTK+ ÏÏÎÏÎÎÎÏÎÎÎÎ ÎÏÎÎÎÎÏÎÎÎÎÎÎÎÏ ÏÏÎÎÎÎÎÏÎÎÏÎÏ UTF-8 ÎÎÎ ÏÎÎ ÏÎ ÎÎÎÎÎÎÎ. "
+"ÎÏÏÏ ÏÎÎÎÎÎÎÎ ÏÏÎ ÎÎÎ ÎÎÎÎÏÎÏÎ ÎÎÎ ÎÎÎÎÎÎ ÏÎÏ ÎÏÎÏÏÏÎÏÎÎ ÎÎÎ ÏÏÎÎÎÎÎÏÎÎÏÎ ÎÎ "
+"ÏÎÎÏÎÎÏÎ ÏÎÎÏÎ ÎÎÎ ÏÏÎÎÎÎÏÏÏÏÎ ÏÎÏ ÏÏÏÎÏ <code>str</code>. ÎÎ ÎÎÎÎ "
+"ÎÏÎÏÎÏÎÎÏÎÎ ÏÏÎÏ ÎÎÎÏÎÎÏÏ ÏÎÏ ÏÎÏÎÎÎÎÎÏÎ ÎÎÎ Î ÏÎÏÎÏÏÏÏÎÏÎÏ ÏÏÎÎÎÎÎÏÎÎÏÎÏ ÏÏ "
+"ÏÎÏÎÎÎÏÏÎ, ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎ ÎÏÎÎÎÎÏÎÎÎÎÎÎÎÏ UTF-8. ÎÎÏÏ, ÎÎÎ ÎÏÎÎÎÎÎ ÏÎ "
+"PyGObject ÎÎ ÎÎÏÎÏÏÎÏÎÎ ÎÏÏÏÎÎÏÎ ÎÏÎÎÎÎÎÏÎÏÎ ÏÏÎÎÎÎÏÏÏÏÎ unicode ÏÎ str ÎÎÎ "
+"ÏÎÏ ÎÎÎÎÎ ÏÏ ÏÏÎÏÎÎ:"
 
-#: C/helloWorld.js.page:48(p)
+#: C/strings.py.page:99(section/code)
+#, no-wrap
 msgid ""
-"It tells the script to use <link href=\"https://live.gnome.org/Gjs/\";>Gjs</"
-"link>. Gjs is a JavaScript binding for GNOME."
+"\n"
+"&gt;&gt;&gt; from gi.repository import Gtk\n"
+"&gt;&gt;&gt; label = Gtk.Label()\n"
+"&gt;&gt;&gt; unicode_string = u\"Fu\\u00dfb\\u00e4lle\"\n"
+"&gt;&gt;&gt; label.set_text(unicode_string)\n"
+"&gt;&gt;&gt; txt = label.get_text()\n"
+"&gt;&gt;&gt; type(txt)\n"
+"&lt;type 'str'&gt;"
 msgstr ""
-"ÎÎÎÎ ÏÏÎ ÏÎÎÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ <link href=\"https://live.gnome.org/Gjs/";
-"\">Gjs</link>. Gjs ÎÎÎÎÎ ÎÎÎÏ ÏÏÎÎÎÏÎÎÏ JavaScript ÎÎÎ GNOME."
+"\n"
+"&gt;&gt;&gt; from gi.repository import Gtk\n"
+"&gt;&gt;&gt; label = Gtk.Label()\n"
+"&gt;&gt;&gt; unicode_string = u\"Fu\\u00dfb\\u00e4lle\"\n"
+"&gt;&gt;&gt; label.set_text(unicode_string)\n"
+"&gt;&gt;&gt; txt = label.get_text()\n"
+"&gt;&gt;&gt; type(txt)\n"
+"&lt;type 'str'&gt;"
+
+#: C/strings.py.page:108(section/p)
+msgid "Furthermore:"
+msgstr "ÎÏÎÏÎÎÎÎ:"
 
-#: C/helloWorld.js.page:55(p)
+#: C/strings.py.page:110(section/code)
+#, no-wrap
 msgid ""
-"In order for our script to work with GNOME, we need to import GNOME "
-"libraries via GObject Introspection. Here we import the language bindings "
-"and GTK+, the library which contains the graphical widgets used to make "
-"GNOME applications."
+"\n"
+"&gt;&gt;&gt; txt == unicode_string"
 msgstr ""
-"ÎÎÎ ÎÎ ÎÎÏÎÎÏÎÎ ÏÎ ÏÎÎÎÏÎÏ ÎÎÏ ÎÎ GNOME, ÏÏÎÎÎÎÏÎÎÏÏÎ ÎÎ ÎÎÏÎÎÎÏÎÎ ÏÎÏ "
-"ÎÎÎÎÎÎÎÎÎÎÏ GNOME ÎÎÏÎ ÎÏÏ ÏÎÎ ÎÏÏÎÎÎÎÎÏÎ GObject. ÎÎÏ ÎÎÏÎÎÎÏÎÎ ÏÎÏÏ "
-"ÏÏÎÎÎÏÎÎÏÏ ÎÎÏÏÏÎÏ ÎÎÎ GTK+, ÏÎÎ ÎÎÎÎÎÎÎÎÎÎ ÏÎÏ ÏÎÏÎÎÏÎÎ ÏÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎÎÎ "
-"ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÎ ÏÎÎ ÎÏÎÎÏÎ ÎÏÎÏÎÎÎÏÎ GNOME."
+"\n"
+"&gt;&gt;&gt; txt == unicode_string"
 
-#: C/helloWorld.js.page:91(p)
+#: C/strings.py.page:113(section/p)
 msgid ""
-"GtkApplication initializes Gtk+. It also connects the <gui>x</gui> button "
-"that's automatically generated along with the window to the \"destroy\" "
-"signal."
+"would return <code>False</code>, with the warning <code>__main__:1: "
+"UnicodeWarning: Unicode equal comparison failed to convert both arguments to "
+"Unicode - interpreting them as being unequal</code> (<code>Gtk.Label.get_text"
+"()</code> will always return a <code>str</code> instance; therefore, "
+"<code>txt</code> and <code>unicode_string</code> are not equal)."
 msgstr ""
-"Î GtkApplication ÎÏÏÎÎÎÏÎÎÎÎ ÏÎ Gtk+. ÎÏÎÏÎÏ ÏÏÎÎÎÎÎ ÏÎ ÎÎÏÎÏÎ <gui>x</gui> "
-"ÏÎÏ ÎÎÎÎÎÏÏÎÎÎÏÎÎ ÎÏÏÏÎÎÏÎ ÎÎÎÎ ÎÎ ÏÎ ÏÎÏÎÎÏÏÎ ÏÏÎ ÏÎÎÎ \"destroy\"."
+"ÎÎ ÎÏÎÏÏÏÎÏÎ <code>False</code>, ÎÎ ÏÎÎ ÏÏÎÎÎÎÎÏÎÎÎÏÎ <code>__main__:1: "
+"UnicodeWarning: Î ÏÏÎÎÏÎÏÎ ÏÎÎÎÏÎ Unicode ÎÏÎÏÏÏÎ ÎÎ ÎÎÏÎÏÏÎÏÎÎ ÎÎÎ ÏÎ ÎÏÎ "
+"ÎÏÎÏÎÎÏÎ ÏÎ Unicode - ÎÏÎÎÎÎÏÎÎÏÎÏ ÏÎ ÏÏ ÎÎÏÎÎÎÎ</code> (<code>Gtk.Label."
+"get_text()</code> ÎÎ ÎÏÎÏÏÏÎÏÎÎ ÏÎÎÏÎ ÎÎÎ ÏÏÎÎÎÎÏÏÏÏÎ <code>str</code>Â "
+"ÏÏÎÎÏÏÏ, <code>txt</code> and <code>unicode_string</code> ÎÎÎ ÎÎÎÎÎ ÏÎÎÎÎ)."
 
-#: C/helloWorld.js.page:92(p)
+#: C/strings.py.page:115(section/p)
 msgid ""
-"We can start building our first window. We do this by creating a variable "
-"called <var>_window</var> and assigning it a new Gtk.ApplicationWindow."
+"This is especially important if you want to internationalize your program "
+"using <link href=\"http://docs.python.org/library/gettext.html";
+"\"><code>gettext</code></link>. You have to make sure that <code>gettext</"
+"code> will return UTF-8 encoded 8-bit strings for all languages."
 msgstr ""
-"ÎÏÎÏÎÏÎÎ ÎÎ ÎÏÏÎÏÎÏÎÎ ÎÎ ÎÎÏÎÏÎÎÏÎÎÎÏÎÎ ÏÎ ÏÏÏÏÎ ÎÎÏ ÏÎÏÎÎÏÏÎ. ÎÏÏÏ ÏÎ "
-"ÎÎÎÎÏÎÎ ÎÎÎÎÎÏÏÎÏÎÏÎÏ ÎÎÎ ÎÎÏÎÎÎÎÏÎ ÏÎÏ ÎÎÎÎÏÎÎ <var>_window</var> ÎÎÎ ÏÎÏ "
-"ÎÏÎÎÎÎÎÏÎÎ ÎÎÎ ÎÎÎ Gtk.ApplicationWindow."
+"ÎÏÏÏ ÎÎÎÎÎ ÎÎÎÎÎÏÎÏÎ ÏÎÎÎÎÏÎÎÏ ÎÎÎ ÎÎÎÎÏÎ ÎÎ ÎÎÎÎÎÎÏÎÎÎÏÎÏÎ ÏÎ ÏÏÏÎÏÎÎÎÎ ÏÎÏ "
+"ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ <link href=\"http://docs.python.org/library/gettext.html";
+"\"><code>gettext</code></link>. ÎÏÎÏÎÎ ÎÎ ÎÎÎÎÎÏÎÎÎÏÎ ÏÏÎ Î <code>gettext</"
+"code> ÎÎ ÎÏÎÏÏÏÎÏÎÎ ÎÏÎÎÎÎÏÎÎÎÎÎÎÎÏ ÏÏÎÎÎÎÎÏÎÎÏÎÏ 8 ÎÏÎÎÎÎÏÎ UTF-8 ÎÎÎ ÏÎÎÏ "
+"ÏÎÏ ÎÎÏÏÏÎÏ."
 
-#: C/helloWorld.js.page:93(p)
+#: C/strings.py.page:117(section/p)
 msgid ""
-"We give the window a property called <var>title</var>. The title can be any "
-"string you want it to be. To be on the safe side, it's best to stick to "
-"UTF-8 encoding."
+"In general it is recommended to not use <code>unicode</code> objects in GTK+ "
+"applications at all, and only use UTF-8 encoded <code>str</code> objects "
+"since GTK+ does not fully integrate with <code>unicode</code> objects."
 msgstr ""
-"ÎÎÎÎÏÎÎ ÏÏÎ ÏÎÏÎÎÏÏÎ ÎÎÎ ÎÎÎÏÏÎÏÎ ÏÎÏ ÎÎÎÎÏÎÎ <var>title</var>. Î ÏÎÏÎÎÏ "
-"ÎÏÎÏÎÎ ÎÎ ÎÎÎÎÎ ÎÏÎÎÎÎÎÏÎÏÎ ÎÏÎÎÏÎÎÏÎ ÏÏÎÎÎÎÎÏÎÎÏÎ. ÎÎÎ ÎÎ ÎÎÏÎÏÏÎ ÎÏÏÎÎÎÎÏ, "
-"ÎÎÎÎÎ ÎÎÎÏÏÎÏÎ ÎÎ ÎÏÎÎÎÎÎÏÎ ÏÎÎ ÎÏÎÎÎÎÏÎÎÎÏÎ UTF-8."
+"ÎÎÎÎÎÎ ÏÏÎÎÏÏÎÏÎÎ ÎÎ ÎÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÏÎ ÎÎÏÎÎÎÎÎÎÎÎ <code>unicode</code> ÏÎ "
+"ÎÏÎÏÎÎÎÎÏ GTK+ ÎÎÎÏÎÎÏ ÎÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÏÎ ÎÏÎÎÎÎÏÎÎÎÎÎÎÎ ÎÎÏÎÎÎÎÎÎÎÎ "
+"<code>str</code> UTF-8 ÎÏÎÏ ÏÎ GTK+ ÎÎÎ ÎÎÏÏÎÎÏÏÎÎÎ ÏÎÎÏÏÏ ÎÎÏÎÎÎÎÎÎÎÎ "
+"<code>unicode</code>."
 
-#: C/helloWorld.js.page:94(p)
+#: C/strings.py.page:119(section/p)
 msgid ""
-"Now we have a window which has a title and a working \"close\" button. Let's "
-"add the actual \"Hello World\" text."
+"With Python 3.x things are much more consistent, because PyGObject will "
+"automatically encode/decode to/from UTF-8 if you pass a string to a method "
+"or a method returns a string. Strings, or text, will always be represented "
+"as instances of <code>str</code> only:"
 msgstr ""
-"ÎÏÏÎ ÎÏÎÏÎÎ ÎÎÎ ÏÎÏÎÎÏÏÎ ÏÎÏ ÎÏÎÎ ÏÎÏÎÎ ÎÎÎ ÎÎÎ ÎÎÎÏÎÏÏÎÎÎÏ ÎÎÏÎÏÎ \"close"
-"\". ÎÏ ÏÏÎÏÎÎÏÎÏÎÎ ÏÎ ÎÎÎÏÎÏ ÎÎÎÎÎÎÎ \"Hello world\"."
+"ÎÎ ÏÎÎ Python 3.x ÏÎ ÏÏÎÎÎÎÏÎ ÎÎÎÎÎ ÏÎÎÏ ÏÎÎ ÎÎÎÎÏÎÎÏÏÎ, ÎÏÎÎÎÎ ÏÎ PyGObject "
+"ÎÎ ÎÏÎÎÎÎÏÎÎÎÏÎÎ/ÎÏÎÎÏÎÎÎÎÏÎÎÎÏÎÎ ÎÏÏÏÎÎÏÎ ÏÏÎÏ/ÎÏÏ UTF-8 ÎÎÎ ÏÎÏÎÏÎÏÎ ÎÎÎ "
+"ÏÏÎÎÎÎÎÏÎÎÏÎ ÏÎ ÎÎÎ ÎÎÎÎÎÎ Î ÎÎÎ ÎÎÎ ÎÎÎÎÎÎÏ ÎÏÎÏÏÏÎÏÎÎ ÎÎÎ ÏÏÎÎÎÎÎÏÎÎÏÎ. "
+"ÎÏÎÎÎÎÎÏÎÎÏÎÏ, Î ÎÎÎÎÎÎÎ, ÎÎ ÎÎÎÏÎÏÎÏÏÏÎÏÎÎ ÏÎÎÏÎ ÏÏ ÏÎÏÎÏÏÏÏÎÎÏ ÎÏÎÎ "
+"<code>str</code>:"
 
-#: C/helloWorld.js.page:97(title)
-msgid "Label for the window"
-msgstr "ÎÏÎÎÎÏÎ ÎÎÎ ÏÎ ÏÎÏÎÎÏÏÎ"
+#: C/strings.py.page:126(section/p)
+msgid ""
+"<link href=\"http://python-gtk-3-tutorial.readthedocs.org/en/latest/unicode.";
+"html\">How To Deal With Strings - The Python GTK+ 3 Tutorial</link>"
+msgstr ""
+"<link href=\"http://python-gtk-3-tutorial.readthedocs.org/en/latest/unicode.";
+"html\">How To Deal With Strings - The Python GTK+ 3 Tutorial</link>"
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/switch.c.page:22(media) C/switch.py.page:26(media)
+#: C/switch.vala.page:25(media)
+msgctxt "_"
+msgid ""
+"external ref='media/switch_off.png' md5='211a2962708800697ad5373dcc86ad6d'"
+msgstr ""
+"external ref='media/switch_off.png' md5='211a2962708800697ad5373dcc86ad6d'"
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/switch.c.page:23(media) C/switch.py.page:27(media)
+#: C/switch.vala.page:26(media)
+msgctxt "_"
+msgid ""
+"external ref='media/switch_on.png' md5='95e8769f758c2d95ace0fa8ecf30b29d'"
+msgstr ""
+"external ref='media/switch_on.png' md5='95e8769f758c2d95ace0fa8ecf30b29d'"
+
+#: C/switch.c.page:7(info/title)
+msgctxt "text"
+msgid "Switch (C)"
+msgstr "ÎÎÎÎÏÏÏÎÏ (C)"
+
+#: C/switch.c.page:17(info/desc) C/switch.py.page:22(info/desc)
+#: C/switch.vala.page:21(info/desc)
+msgid "A \"light switch\" style toggle"
+msgstr "ÎÎÎ ÎÎÎÎÎÎÎÎ ÏÎÏÎÎÏÏÎÏÎÎÏ \"ÎÎÎÏÏÎÎÏ ÎÎÎÎÏÏÏÎ\""
 
-#: C/helloWorld.js.page:103(p)
+#: C/switch.c.page:20(page/title) C/switch.js.page:20(page/title)
+#: C/switch.py.page:25(page/title) C/switch.vala.page:24(page/title)
+msgid "Switch"
+msgstr "ÎÎÎÎÏÏÏÎÏ"
+
+#: C/switch.c.page:24(page/p)
+msgid "This switch toggles the title of the window."
+msgstr "ÎÏÏÏÏ Î ÎÎÎÎÏÏÏÎÏ ÎÎÎÎÎÎÏÏÎÎ ÏÎÎ ÏÎÏÎÎ ÏÎÏ ÏÎÏÎÎÏÏÎÏ."
+
+#: C/switch.c.page:26(page/code)
+#, no-wrap
 msgid ""
-"A text label is one of the GTK+ widgets we can use, on account of having "
-"imported the GTK+ library. To use it, we create a new variable called label, "
-"and assign it a new Gtk.Label. Then we give it properties inside the curly "
-"braces {}. In this case, we're setting the text that the label will hold. "
-"Finally, we create and run the application:"
+"\n"
+"#include &lt;gtk/gtk.h&gt;\n"
+"\n"
+"\n"
+"\n"
+"/*Signal handler for the \"active\" signal of the Switch*/\n"
+"static void\n"
+"activate_cb (GObject    *switcher,\n"
+"             GParamSpec *pspec,\n"
+"             gpointer    user_data)\n"
+"{\n"
+"  GtkWindow *window = user_data;\n"
+"\n"
+"  if (gtk_switch_get_active (GTK_SWITCH (switcher)))\n"
+"    gtk_window_set_title (GTK_WINDOW (window), \"Switch Example\");\n"
+"  else\n"
+"    gtk_window_set_title (GTK_WINDOW (window), \"\");\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"static void\n"
+"activate (GtkApplication *app,\n"
+"          gpointer        user_data)\n"
+"{\n"
+"  GtkWidget *grid;\n"
+"  GtkWidget *window;\n"
+"  GtkWidget *label;\n"
+"  GtkWidget *switcher;\n"
+"\n"
+"  /*Create a window with a set title and default size.\n"
+"  Also, set a border width for the amount of space to leave\n"
+"  inside the window*/\n"
+"  window = gtk_application_window_new (app);\n"
+"  gtk_window_set_title (GTK_WINDOW (window), \"Switch Example\");\n"
+"  gtk_window_set_default_size (GTK_WINDOW (window), 300, 100);\n"
+"  gtk_container_set_border_width (GTK_CONTAINER (window), 10);\n"
+"\n"
+"  /*Create a label*/\n"
+"  label = gtk_label_new (\"Title\");\n"
+"\n"
+"  /*Create a switch with a default active state*/\n"
+"  switcher = gtk_switch_new ();\n"
+"  gtk_switch_set_active (GTK_SWITCH (switcher), TRUE);\n"
+"\n"
+"  /*Create a grid and set the column spacing, attach the label and\n"
+"  switch onto the grid and position them accordingly*/\n"
+"  grid = gtk_grid_new();\n"
+"  gtk_grid_set_column_spacing (GTK_GRID (grid), 10);\n"
+"  gtk_grid_attach (GTK_GRID (grid), label, 0, 0, 1, 1);\n"
+"  gtk_grid_attach (GTK_GRID (grid), switcher, 1, 0, 1, 1);\n"
+"\n"
+"  /*Connecting the clicked signal to the callback function*/\n"
+"  g_signal_connect (GTK_SWITCH (switcher), \n"
+"                    \"notify::active\", \n"
+"                    G_CALLBACK (activate_cb), \n"
+"                    window);\n"
+"\n"
+"  gtk_container_add (GTK_CONTAINER (window), GTK_WIDGET (grid));\n"
+"\n"
+"  gtk_widget_show_all (window);\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"int\n"
+"main (int argc, char **argv)\n"
+"{\n"
+"  GtkApplication *app;\n"
+"  int status;\n"
+"\n"
+"  app = gtk_application_new (\"org.gtk.example\", G_APPLICATION_FLAGS_NONE);\n"
+"  g_signal_connect (app, \"activate\", G_CALLBACK (activate), NULL);\n"
+"  status = g_application_run (G_APPLICATION (app), argc, argv);\n"
+"  g_object_unref (app);\n"
+"\n"
+"  return status;\n"
+"}\n"
 msgstr ""
-"ÎÎÎ ÎÏÎÎÎÏÎ ÎÎÎÎÎÎÎÏ ÎÎÎÎÎ ÎÎÎ ÎÏÏ ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÏÎÏ GTK+ ÏÎÏ "
-"ÎÏÎÏÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ, ÎÏÎÏ ÏÎÏ ÎÎÏÎÎÏÎÎÏ ÏÎÏ ÎÎÎÎÎÎÎÎÎÎÏ GTK+. ÎÎÎ "
-"ÏÎ ÏÏÎÏÎ ÏÎÏ, ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ ÎÎÎ ÎÎÏÎÎÎÎÏÎ ÏÎÏ ÎÎÎÎÎÎÎÏÎÎ ÎÏÎÎÎÏÎ ÎÎÎ ÏÎÏ "
-"ÎÏÎÎÎÎÎÏÎÎ ÎÎÎ ÎÎÎ Gtk.Label. ÎÏÎÎÏÎ ÏÎÏ ÎÎÎÎÏÎÎ ÎÎÎÏÏÎÏÎÏ ÎÎÏÎ ÏÎ ÎÎÎÏÎÎÏ "
-"{}. ÎÎ ÎÏÏÎÎ ÏÎÎ ÏÎÏÎÏÏÏÏÎ, ÎÏÎÎÎÏÎÎ ÏÎ ÎÎÎÎÎÎÎ ÏÎÏ ÎÎ ÎÏÎÏÎÏÎÎ Î ÎÏÎÎÎÏÎ. "
-"ÎÎÎÎÎÎ, ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ ÏÏÎÏÎÏÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ:"
+"\n"
+"#include &lt;gtk/gtk.h&gt;\n"
+"\n"
+"\n"
+"\n"
+"/*Signal handler for the \"active\" signal of the Switch*/\n"
+"static void\n"
+"activate_cb (GObject    *switcher,\n"
+"             GParamSpec *pspec,\n"
+"             gpointer    user_data)\n"
+"{\n"
+"  GtkWindow *window = user_data;\n"
+"\n"
+"  if (gtk_switch_get_active (GTK_SWITCH (switcher)))\n"
+"    gtk_window_set_title (GTK_WINDOW (window), \"Switch Example\");\n"
+"  else\n"
+"    gtk_window_set_title (GTK_WINDOW (window), \"\");\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"static void\n"
+"activate (GtkApplication *app,\n"
+"          gpointer        user_data)\n"
+"{\n"
+"  GtkWidget *grid;\n"
+"  GtkWidget *window;\n"
+"  GtkWidget *label;\n"
+"  GtkWidget *switcher;\n"
+"\n"
+"  /*Create a window with a set title and default size.\n"
+"  Also, set a border width for the amount of space to leave\n"
+"  inside the window*/\n"
+"  window = gtk_application_window_new (app);\n"
+"  gtk_window_set_title (GTK_WINDOW (window), \"Switch Example\");\n"
+"  gtk_window_set_default_size (GTK_WINDOW (window), 300, 100);\n"
+"  gtk_container_set_border_width (GTK_CONTAINER (window), 10);\n"
+"\n"
+"  /*Create a label*/\n"
+"  label = gtk_label_new (\"Title\");\n"
+"\n"
+"  /*Create a switch with a default active state*/\n"
+"  switcher = gtk_switch_new ();\n"
+"  gtk_switch_set_active (GTK_SWITCH (switcher), TRUE);\n"
+"\n"
+"  /*Create a grid and set the column spacing, attach the label and\n"
+"  switch onto the grid and position them accordingly*/\n"
+"  grid = gtk_grid_new();\n"
+"  gtk_grid_set_column_spacing (GTK_GRID (grid), 10);\n"
+"  gtk_grid_attach (GTK_GRID (grid), label, 0, 0, 1, 1);\n"
+"  gtk_grid_attach (GTK_GRID (grid), switcher, 1, 0, 1, 1);\n"
+"\n"
+"  /*Connecting the clicked signal to the callback function*/\n"
+"  g_signal_connect (GTK_SWITCH (switcher), \n"
+"                    \"notify::active\", \n"
+"                    G_CALLBACK (activate_cb), \n"
+"                    window);\n"
+"\n"
+"  gtk_container_add (GTK_CONTAINER (window), GTK_WIDGET (grid));\n"
+"\n"
+"  gtk_widget_show_all (window);\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"int\n"
+"main (int argc, char **argv)\n"
+"{\n"
+"  GtkApplication *app;\n"
+"  int status;\n"
+"\n"
+"  app = gtk_application_new (\"org.gtk.example\", G_APPLICATION_FLAGS_NONE);\n"
+"  g_signal_connect (app, \"activate\", G_CALLBACK (activate), NULL);\n"
+"  status = g_application_run (G_APPLICATION (app), argc, argv);\n"
+"  g_object_unref (app);\n"
+"\n"
+"  return status;\n"
+"}\n"
 
-#: C/helloWorld.js.page:109(p)
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/switch.js.page:21(media)
+msgctxt "_"
 msgid ""
-"Gtk.ApplicationWindow can only hold one widget at a time. To construct more "
-"elaborate programs you need to create a holder widget like Gtk.Grid inside "
-"the window, and then add all the other widgets to it."
+"external ref='media/switchanimals.png' md5='513ae15dcf68e15eef30b76420b8c714'"
 msgstr ""
-"ÎÎ Gtk.Window ÎÏÎÏÎÎ ÎÎ ÎÏÎÏÎÏÎÎ ÎÏÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÏÎ ÏÎÏÎ. ÎÎÎ "
-"ÎÎÏÎÏÎÎÏÎ ÏÎÎ ÏÎÏÎÏÎÎÎÏÎ ÏÏÎÎÏÎÎÎÎÏÏÎ ÏÏÎÎÎÎÏÏÎÏÏÎ ÏÎ ÎÎÎÎÎÏÏÎÎÎ ÎÎÏÏ "
-"ÏÎÎÏÎÏÏÎ ÎÏÎÏÎÎÎÏ ÏÏÏÏÎÏÎÎÎÏ ÏÏÏÏ Gtk.Grid ÎÎÏÎ ÏÏÎ ÏÎÏÎÎÏÏÎ ÎÎÎ ÎÏÎÎÏÎ ÎÎ "
-"ÏÏÎÏÎÎÏÎÏÎ ÏÎÎ ÏÎ ÎÎÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÏÎ ÎÏÏÏ."
-
-#: C/helloWorld.js.page:113(title)
-msgid "helloWorld.js"
-msgstr "helloWorld.js"
+"external ref='media/switchanimals.png' md5='513ae15dcf68e15eef30b76420b8c714'"
 
-#: C/helloWorld.js.page:114(p)
-msgid "The complete file:"
-msgstr "ÎÎ ÏÎÎÏÎÏ ÎÏÏÎÎÎ:"
+#: C/switch.js.page:7(info/title)
+msgctxt "text"
+msgid "Switch (JavaScript)"
+msgstr "ÎÎÎÎÏÏÏÎÏ (JavaScript)"
 
-#: C/helloWorld.js.page:118(title)
-msgid "Running the application from terminal"
-msgstr "ÎÎÏÎÎÎÏÏÎ ÏÎÎ ÎÏÎÏÎÎÎÎ ÎÏÏ ÏÎÏÎÎÏÎÎÏ"
+#: C/switch.js.page:17(info/desc)
+msgid "A sliding switch that can be flipped on and off"
+msgstr "ÎÎÎÏ ÎÎÎÎÏÏÏ ÎÎÎÎÏÏÏÎÏ ÏÎÏ ÎÏÎÏÎÎ ÎÎ ÎÎÏÎÏÏÏÎÏÎÏÎÎ ÏÎ ÂÎÎÎÂ ÎÎÎ ÂÎÎÎÂ"
 
-#: C/helloWorld.js.page:119(p)
+#: C/switch.js.page:22(page/p)
 msgid ""
-"To run this application, first save it as helloWorld.js. Then open Terminal, "
-"go to the folder where your application is stored and run:"
+"A Switch has two positions, on and off. This example shows how you can use "
+"multiple switches together to control which <link xref=\"image.js\">Image</"
+"link> is shown in the window. The pictures used in this example <link href="
+"\"https://live.gnome.org/TarynFox?action=AttachFile&amp;do=get&amp;";
+"target=Animal+Photos.zip\">can be downloaded here</link>."
 msgstr ""
-"ÎÎÎ ÎÎ ÏÏÎÎÎÏÎ ÎÏÏÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ, ÏÏÏÏÎ ÎÏÎÎÎÎÎÏÏÏÎ ÏÎÎ ÏÏ helloWorld.js. "
-"ÎÏÎÎÏÎ ÎÎÎÎÎÏÎ ÏÎÎ ÏÎÏÎÎÏÎÎÏ, ÏÎÎÎÎÎÎÏÎ ÏÏÎÎ ÏÎÎÎÎÎ ÏÏÎÏ Î ÎÏÎÏÎÎÎÎ ÏÎÏ "
-"ÎÏÎÎÎÎÎÏÎÏÎÎ ÎÎÎ ÏÏÎÎÏÎ:"
-
-#: C/helloWorld.js.page:120(input)
-msgid "gjs helloWorld.js"
-msgstr "gjs helloWorld.js"
-
-#: C/helloWorld.js.page:126(title)
-msgid "The <file>.desktop.in</file> file"
-msgstr "ÎÎ ÎÏÏÎÎÎ <file>.desktop.in</file>"
+"ÎÎÎÏ ÎÎÎÎÏÏÏÎÏ ÎÏÎÎ ÎÏÎ ÎÎÏÎÎÏ ÎÎÎÏÎÎ/ÎÎÎÎÎÏÎÎ. ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÎÎÏÎÎÎÎÎÎ "
+"ÏÏÏ ÎÏÎÏÎÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÏÎÎÎÎÏÎÎÏÏ ÎÎÎÎÏÏÏÎÏ ÎÎÎÎ ÎÎÎ ÎÎ ÎÎÎÎÎÎÏÎ "
+"ÏÎÎÎ <link xref=\"image.js\">ÎÎÎÏÎÎ</link> ÏÏÎÎÎÎÎÎÏÎÎ ÏÏÎ ÏÎÏÎÎÏÏÎ. ÎÎ "
+"ÎÎÎÏÎÎÏ ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÏÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ  <link href=\"https://";
+"live.gnome.org/TarynFox?action=AttachFile&amp;do=get&amp;target=Animal"
+"+Photos.zip\">ÎÏÎÏÎÏÎ ÎÎ ÏÎÏÏÏÎÎÏÎ ÎÎÏ</link>."
 
-#: C/helloWorld.js.page:127(p)
+#: C/switch.js.page:23(note/p)
 msgid ""
-"Running applications from the Terminal is useful at the beginning of the "
-"application making process. To have fully working <link href=\"http://";
-"library.gnome.org/admin/system-admin-guide/stable/mimetypes-9.html.en"
-"\">application integration</link> in GNOME 3 requires a desktop launcher. "
-"For this you need to create a <file>.desktop</file> file. The <file>."
-"desktop</file> file describes the application name, the used icon and "
-"various integration bits. A deeper insight into the <file>.desktop</file> "
-"file can be found <link href=\"http://developer.gnome.org/desktop-entry-spec/";
-"\">here</link>. The <file>.desktop.in</file> file will create the <file>."
-"desktop</file>."
+"The window will contain a \"broken image\" icon instead of a picture if "
+"picture files named <file>redfox.png</file>, <file>muteswan.png</file>, "
+"<file>fruitbat.png</file>, and <file>gentoopenguin.png</file> aren't in the "
+"same directory. You can change the code and the pictures around as you like, "
+"but the Creative Commons-licensed photos used in this example were taken "
+"from the following sources and cropped to 640x425:"
 msgstr ""
-"ÎÏÎÏÎÎÏÎÏ ÎÏÎÏÎÎÎÎÏ ÎÏÏ ÏÎÎ ÏÎÏÎÎÏÎÎÏ ÎÎÎÎÎ ÏÏÎÏÎÎÎ ÏÏÎÎ ÎÏÏÎ ÏÎÏ ÎÎÎÏÎÎÏÎÎÏ "
-"ÎÎÏÎÏÎÎÏÎÏ ÏÎÏ ÎÏÎÏÎÎÎÎÏ. ÎÎÎ ÎÎ ÎÏÎÏÎ ÎÎÎ ÏÎÎÏÏÏ ÎÎÎÏÎÏÏÎÎÎÎ <link href="
-"\"http://library.gnome.org/admin/system-admin-guide/stable/mimetypes-9.html.";
-"en\">ÎÎÎÎÎÎÏÏÎÎÎÎ ÎÏÎÏÎÎÎÎ</link> ÏÏÎ GNOME 3 ÎÏÎÎÏÎÎÏÎÎ ÎÎÎÏ ÎÎÎÎÎÎÏÎÏ "
-"ÎÏÎÏÎÎÎÎÎ ÎÏÎÎÏÎÎÏ. ÎÎÎ ÎÏÏÏ ÏÏÎÎÎÎÎÏÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎ ÎÎÎ ÎÏÏÎÎÎ <file>."
-"desktop</file>. ÎÎ ÎÏÏÎÎÎ <file>.desktop</file> ÏÎÏÎÎÏÎÏÎÎ ÏÎ ÏÎÎÎÎ ÏÎÏ "
-"ÎÏÎÏÎÎÎÎÏ, ÏÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎÎÎ ÎÎÎÎÎÎÎÎÎ ÎÎÎ ÏÎÎÎÎÎÎ ÎÏÎÎÎÎÎ ÎÎÎÎÎÎÏÏÏÎÏ. "
-"ÎÎÎ ÎÎÎÏÏÎÏÎ ÎÎÏÎÎ ÏÏÎ ÎÏÏÎÎÎ <file>.desktop</file> ÎÏÎÏÎÎ ÎÎ ÎÏÎÎÎÎ <link "
-"href=\"http://developer.gnome.org/desktop-entry-spec/\";>ÎÎÏ</link>. ÎÎ "
-"ÎÏÏÎÎÎ <file>.desktop.in</file> ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÎ ÏÎ <file>.desktop</file>."
+"ÎÎ ÏÎÏÎÎÏÏÎ ÎÎ ÏÎÏÎÎÏÎÎ ÎÎÎ ÎÎÎÎÎÎÎÎÎ \"ÏÏÎÏÎÎÎÎÏ ÎÎÎÏÎÎÏ\" ÎÎÏÎ ÎÎÎ ÎÎÎ "
+"ÎÎÎÏÎÎ ÎÎÎ ÏÎ ÎÏÏÎÎÎ ÎÎÎÏÎÎÏ ÎÎ ÏÎÎÎÎ <file>redfox.png</file>, "
+"<file>muteswan.png</file>, <file>fruitbat.png</file> ÎÎÎ <file>gentoopenguin."
+"png</file> ÎÎÎ ÎÎÎÎÎ ÏÏÎÎ ÎÎÎÎ ÎÎÏÎÎÎÎÎ. ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÎÎÎÏÎ ÏÎÎ ÎÏÎÎÎÎ ÎÎÎ "
+"ÏÎÏ ÎÎÎÏÎÎÏ ÎÎÏÎÏÏÎ ÏÏÏÏ ÎÎÎÎÏÎ, ÎÎÎÎ ÎÎ ÏÏÏÎÎÏÎÏÎÎÏ ÎÎ ÎÎÎÎÎ Creative "
+"Commons ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÏÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÏÎÏÎÎÎÎÎ ÎÏÏ ÏÎÏ "
+"ÎÎÏÎÎÏÎÎÏ ÏÎÎÎÏ ÎÎÎ ÏÎÏÎÎÏÏÎÎÎÎ ÏÎ 640x425:"
 
-#: C/helloWorld.js.page:130(p)
+#: C/switch.js.page:25(item/p)
 msgid ""
-"Before continuing, resave <file>helloWorld.js</file> as <file>helloWorld</"
-"file>. Then run this in the command line:"
+"<link href=\"http://en.wikipedia.org/wiki/File:Fuzzy_Freddy.jpg\";>Red fox "
+"photo</link> by Rob Lee, licensed <link href=\"http://creativecommons.org/";
+"licenses/by/2.0/deed.en\">CC-By</link>"
 msgstr ""
-"ÎÏÎÎ ÏÏÎÎÏÎÏÎÏÎ, ÎÎÎÎÎÏÎÎÎÎÎÏÏÏÎ ÏÎ <file>helloWorld.js</file> ÏÏ "
-"<file>helloWorld</file>. ÎÏÎÎÏÎ ÎÎÏÎÎÎÏÏÎ ÏÎ ÏÏÎ ÎÏÎÎÎÎ ÎÎÏÎÎÏÎ:"
-
-#: C/helloWorld.js.page:131(input)
-msgid "chmod +x helloWorld"
-msgstr "chmod +x helloWorld"
+"<link href=\"http://en.wikipedia.org/wiki/File:Fuzzy_Freddy.jpg\";>ÏÏÏÎÎÏÎÏÎÎ "
+"ÎÏÎÎÎÎÎÏ ÎÎÎÏÎÏÏ</link> ÎÏÏ ÏÎÎ Rob Lee, ÎÎ ÎÎÎÎÎ <link href=\"http://";
+"creativecommons.org/licenses/by/2.0/deed.en\">CC-By</link>"
 
-#: C/helloWorld.js.page:134(p)
+#: C/switch.js.page:26(item/p)
 msgid ""
-"The example shows you the minimum requirements for a <code>.desktop.in</"
-"code> file."
+"<link href=\"http://en.wikipedia.org/wiki/File:Pygoscelis_papua_-";
+"Nagasaki_Penguin_Aquarium_-swimming_underwater-8a.jpg\">Gentoo penguin "
+"photo</link> by Ken Funakoshi, licensed <link href=\"http://creativecommons.";
+"org/licenses/by-sa/2.0/deed.en\">CC-By-SA</link>"
 msgstr ""
-"ÎÎ ÏÎÏÎÎÎÎÎÎÎ ÎÎÏÎÎÎÎÎÎ ÏÎÏ ÎÎÎÏÎÏÏÎÏ ÎÏÎÎÏÎÏÎÎÏ ÎÎÎ ÎÎÎ ÎÏÏÎÎÎ<code>."
-"desktop.in</code>."
-
-#: C/helloWorld.js.page:137(p)
-msgid "Now let's go through some parts of the <code>.desktop.in</code> file."
-msgstr "ÎÏÏÎ, ÎÏ ÎÎÎÏÎÏÎÏÎÎ ÎÎÏÎÎÎ ÎÎÏÎ ÏÎÏ ÎÏÏÎÎÎÏ <code>.desktop.in</code>."
-
-#: C/helloWorld.js.page:139(p)
-msgid "The application name."
-msgstr "ÎÎ ÏÎÎÎÎ ÏÎÏ ÎÏÎÏÎÎÎÎÏ."
-
-#: C/helloWorld.js.page:140(title)
-msgid "Comment"
-msgstr "ÎÏÏÎÎÎ"
-
-#: C/helloWorld.js.page:140(p)
-msgid "A short description of the application."
-msgstr "ÎÎÎ ÏÏÎÏÎÎÎ ÏÎÏÎÎÏÎÏÎ ÏÎÏ ÎÏÎÏÎÎÎÎÏ."
-
-#: C/helloWorld.js.page:141(title)
-msgid "Exec"
-msgstr "Exec"
+"<link href=\"http://en.wikipedia.org/wiki/File:Pygoscelis_papua_-";
+"Nagasaki_Penguin_Aquarium_-swimming_underwater-8a.jpg\">ÏÏÏÎÎÏÎÏÎÎ "
+"ÏÎÎÎÎÏÎÎÎÏ Gentoo</link> ÎÏÏ ÏÎÎ Ken Funakoshi, ÎÎ ÎÎÎÎÎ <link href=\"http://";
+"creativecommons.org/licenses/by-sa/2.0/deed.en\">CC-By-SA</link>"
 
-#: C/helloWorld.js.page:141(p)
+#: C/switch.js.page:27(item/p)
 msgid ""
-"Specifies a command to execute when you choose the application from the "
-"menu. In this example exec just tells where to find the <file>helloWorld</"
-"file> file and the file takes care of the rest."
+"<link href=\"http://www.flickr.com/photos/shekgraham/127431519/in/";
+"photostream/\">Fruit bat photo</link> by Shek Graham, licensed <link href="
+"\"http://creativecommons.org/licenses/by/2.0/deed.en\";>CC-By</link>"
 msgstr ""
-"ÎÏÎÎÎÎ ÎÎÎ ÎÎÏÎÎÎ ÎÎÎ ÎÎÏÎÎÎÏÎ ÏÏÎÎ ÎÏÎÎÎÎÎÏÎ ÏÎÎ ÎÏÎÏÎÎÎÎ ÎÏÏ ÏÎ ÎÎÎÎÏ. ÎÎ "
-"ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÏÎ exec ÎÏÎÎ ÎÎÎÎ ÏÎÏ ÎÎ ÎÏÎÎÏÎ ÏÎ ÎÏÏÎÎÎ "
-"<file>helloWorld</file> ÎÎÎ ÏÎ ÎÏÏÎÎÎ ÏÏÎÎÏÎÎÎÎ ÎÎÎ ÏÎ ÏÏÏÎÎÎÏÎ."
+"<link href=\"http://www.flickr.com/photos/shekgraham/127431519/in/";
+"photostream/\">ÏÏÏÎÎÏÎÏÎÎ ÎÏÏÏÎÏÎÎÎÏ ÏÏÎÏÏÏÎ</link> ÎÏÏ ÏÎÎ Shek Graham, "
+"licensed <link href=\"http://creativecommons.org/licenses/by/2.0/deed.en";
+"\">CC-By</link>"
 
-#: C/helloWorld.js.page:142(title)
-msgid "Terminal"
-msgstr "ÎÎÏÎÎÏÎÎÏÏ"
+#: C/switch.js.page:28(item/p)
+msgid ""
+"<link href=\"http://commons.wikimedia.org/wiki/File:Mute_Swan-";
+"Mindaugas_Urbonas.jpg\">Mute swan photo</link> by Mindaugas Urbonas, "
+"licensed <link href=\"http://creativecommons.org/licenses/by-sa/2.5/deed.en";
+"\">CC-By-SA</link>"
+msgstr ""
+"<link href=\"http://commons.wikimedia.org/wiki/File:Mute_Swan-";
+"Mindaugas_Urbonas.jpg\">ÏÏÏÎÎÏÎÏÎÎ ÏÎÏÏÎÎÎÏ ÎÏÎÎÎÏ</link> ÎÏÏ Mindaugas "
+"Urbonas, ÎÎ ÎÎÎÎÎ <link href=\"http://creativecommons.org/licenses/by-sa/2.5/";
+"deed.en\">CC-By-SA</link>"
 
-#: C/helloWorld.js.page:142(p)
+#: C/switch.js.page:30(note/p)
 msgid ""
-"Specifies whether the command in the Exec key runs in a terminal window."
-msgstr "ÎÏÎÎÎÎ ÎÎÎ Î ÎÎÏÎÎÎ ÏÏÎ ÎÎÎÎÎÎ Exec ÏÏÎÏÎÎ ÏÎ ÎÎÎ ÏÎÏÎÎÏÏÎ ÏÎÏÎÎÏÎÎÎÏ."
+"Photo credits and licensing information are shown in the application's <link "
+"xref=\"aboutdialog.js\">AboutDialog</link>. Always remember to credit the "
+"original artist when using <link href=\"http://creativecommons.org";
+"\">Creative Commons-licensed works!</link>"
+msgstr ""
+"ÎÎÎÎÎÏ ÏÏÏÎÎÏÎÏÎÎÏ ÎÎÎ ÏÎÎÏÎÏÎÏÎÎÏ ÎÎÎÎÎÎÏÏÎÏÎÏ ÎÎÏÎÎÎÎÎÎÏÎÎ ÏÏÎ <link xref="
+"\"aboutdialog.js\">AboutDialog</link>. ÎÎ ÎÏÎÎÏÏÎ ÏÎÎÏÎ ÎÎ ÎÎÎÎÎÎÎÏÎÏÎ ÏÎÎ "
+"ÎÏÏÎÎÏ ÎÎÎÎÎÏÎÏÎÎ ÏÏÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÏÎ<link href=\"http://creativecommons.org";
+"\">ÎÏÎÎÏÎÎÏ ÎÎ ÎÎÎÎÎ Creative Commons!</link> ÏÎÏ ÎÏÎÏÎÎÎÎÏ"
 
-#: C/helloWorld.js.page:145(p)
+#: C/switch.js.page:47(section/code)
+#, no-wrap
 msgid ""
-"To put your application into the appropriate category, you need to add the "
-"necessary categories to the Categories line. More information on the "
-"different categories can be found in the <link href=\"http://standards.";
-"freedesktop.org/menu-spec/latest/apa.html\">menu specification</link>."
+"\n"
+"const SwitchExample = new Lang.Class({\n"
+"    Name: 'Switch Example',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application({\n"
+"            application_id: 'org.example.jsswitch',\n"
+"            flags: Gio.ApplicationFlags.FLAGS_NONE\n"
+"        });\n"
+"\n"
+"    // Connect 'activate' and 'startup' signals to the callback functions\n"
+"    this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"    this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents window when active\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal creates the menu and builds the UI\n"
+"    _onStartup: function() {\n"
+"        this._initMenus();\n"
+"        this._buildUI ();\n"
+"    },\n"
 msgstr ""
-"ÎÎÎ ÎÎ ÎÎÎÎÏÎ ÏÎÎ ÎÏÎÏÎÎÎÎ ÏÎÏ ÏÏÎ ÏÏÏÏÎ ÎÎÏÎÎÎÏÎÎ ÏÏÎÎÎÎÎÏÎÎ ÎÎ ÏÏÎÏÎÎÏÎÏÎ "
-"ÏÎÏ ÎÏÎÏÎÎÏÎÏÎÏ ÎÎÏÎÎÎÏÎÎÏ ÏÏÎ ÎÏÎÎÎÎ ÎÎÏÎÎÎÏÎÏÎ. ÎÎÏÎÏÏÏÏÎÏÎÏ ÏÎÎÏÎÏÎÏÎÎÏ "
-"ÎÎÎ ÏÎÏ ÎÎÎÏÎÏÎÏÎÎÎÏ ÎÎÏÎÎÎÏÎÎÏ ÎÏÎÏÎÏÎ ÎÎ ÎÏÎÎÎÏÎ ÏÏÎ <link href=\"http://";
-"standards.freedesktop.org/menu-spec/latest/apa.html\">ÏÏÎÎÎÎÎÏÎÏÎÏ ÎÎÎÎÏ</"
-"link>."
+"\n"
+"const SwitchExample = new Lang.Class({\n"
+"    Name: 'Switch Example',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application({\n"
+"            application_id: 'org.example.jsswitch',\n"
+"            flags: Gio.ApplicationFlags.FLAGS_NONE\n"
+"        });\n"
+"\n"
+"    // Connect 'activate' and 'startup' signals to the callback functions\n"
+"    this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"    this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents window when active\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal creates the menu and builds the UI\n"
+"    _onStartup: function() {\n"
+"        this._initMenus();\n"
+"        this._buildUI ();\n"
+"    },\n"
 
-#: C/helloWorld.js.page:146(p)
+#: C/switch.js.page:74(section/p)
 msgid ""
-"In this example we use an existing icon. For a custom icon you need to have "
-"a .svg file of your icon, stored in <file>/usr/share/icons/hicolor/scalable/"
-"apps</file>. Write the name of your icon file to the .desktop.in file, on "
-"line 7. More information on icons in: <link href=\"http://library.gnome.org/";
-"admin/system-admin-guide/stable/themes-11.html.en\"> Installing Icons for "
-"Themes </link>, <link href=\"https://live.gnome.org/GnomeGoals/AppIcon";
-"\">Installing Icons for Themes</link> and <link href=\"http://freedesktop.";
-"org/wiki/Specifications/icon-theme-spec\">on freedesktop.org: Specifications/"
-"icon-theme-spec</link>."
+"All the code for this sample goes in the SwitchExample class. The above code "
+"creates a <link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.";
+"Application.html\">Gtk.Application</link> for our widgets and window to go "
+"in."
 msgstr ""
-"ÎÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎÎ ÎÎÎ ÏÏÎÏÏÎÎ ÎÎÎÎÎÎÎÎÎ. ÎÎÎ ÎÎÎ "
-"ÏÏÎÏÎÏÎÎÏÎÎÎÎ ÎÎÎÎÎÎÎÎÎ ÏÏÎÎÎÎÎÏÎÎ ÎÎ ÎÏÎÏÎ ÎÎÎ ÎÏÏÎÎÎ .svg ÏÎÏ ÎÎÎÎÎÎÎÎÎÏ "
-"ÏÎÏ, ÎÏÎÎÎÎÎÏÎÎÎÎ ÏÏÎ <file>/usr/share/icons/hicolor/scalable/apps</file>. "
-"ÎÏÎÏÏÎ ÏÎ ÏÎÎÎÎ ÏÎÏ ÎÏÏÎÎÎÏ ÏÎÏ ÎÎÎÎÎÎÎÎÎÏ ÏÎÏ ÏÏÎ ÎÏÏÎÎÎ .desktop.in, ÏÏÎ "
-"ÎÏÎÎÎÎ 7. ÎÎÏÎÏÏÏÏÎÏÎÏ ÏÎÎÏÎÏÎÏÎÎÏ ÎÎÎ ÎÎÎÎÎÎÎÎÎ ÏÏÎ: <link href=\"http://";
-"library.gnome.org/admin/system-admin-guide/stable/themes-11.html.en"
-"\">ÎÎÎÎÏÎÏÏÎÏÎ ÎÎÎÎÎÎÎÎÏÎ ÎÎÎ ÎÎÎÎÏÎ</link>, <link href=\"https://live.gnome.";
-"org/GnomeGoals/AppIcon\">ÎÎÎÎÏÎÏÏÎÏÎ ÎÎÎÎÎÎÎÎÏÎ ÎÎÎ ÎÎÎÎÏÎ</link> ÎÎÎ <link "
-"href=\"http://freedesktop.org/wiki/Specifications/icon-theme-spec\";>on "
-"freedesktop.org: Specifications/icon-theme-spec</link>."
-
-#: C/helloWorld.js.page:149(title)
-msgid "The build system"
-msgstr "ÎÎ ÏÏÏÏÎÎÎ ÎÏÎÎÏÎÏ"
+"ÎÎÎÏ Î ÎÏÎÎÎÎÏ ÎÎÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÏÎÎÎÎÎÎÎ ÏÏÎÎ ÎÎÎÏÎ SwitchExample. Î "
+"ÏÎÏÎÏÎÎÏ ÎÏÎÎÎÎÏ ÎÎÎÎÎÏÏÎÎÎ ÎÎÎ <link href=\"http://www.roojs.com/seed/";
+"gir-1.2-gtk-3.0/gjs/Gtk.Application.html\">Gtk.Application</link> ÎÎÎ ÎÎ "
+"ÎÏÎÏÎ ÎÎÏÎ ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÏ ÎÎÎ ÏÎ ÏÎÏÎÎÏÏÎ."
 
-#: C/helloWorld.js.page:150(p)
+#: C/switch.js.page:76(section/code)
+#, no-wrap
 msgid ""
-"To make your application truly a part of the GNOME 3 system you need to "
-"install it with the help of autotools. The autotools build will install all "
-"the necessary files to all the right places."
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function() {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            border_width: 20,\n"
+"            title: \"Animal Creator\"});\n"
 msgstr ""
-"ÎÎÎ ÎÎ ÎÎÎÎÏÎ ÏÎÎ ÎÏÎÏÎÎÎÎ ÏÎÏ ÏÏÎÎÎÎÏÎÎÎ ÏÎÎÎÎ ÏÎÏ ÏÏÏÏÎÎÎÏÎÏ GNOME 3 "
-"ÏÏÎÎÎÎÏÏÎÏÏÎ ÏÎÎ ÎÎÎÎÏÎÏÏÎÏÎ ÏÎÏ ÎÎ ÏÎ ÎÎÎÎÎÎÎ ÏÏÎ autotools. Î ÎÎÏÎÏÎÎÏÎ "
-"ÏÏÎ autotools ÎÎ ÎÎÎÎÏÎÏÏÎÏÎÎ ÏÎÎ ÏÎ ÎÏÎÏÎÎÏÎÏÎ ÎÏÏÎÎÎ ÏÎ ÏÎÎÏ ÏÎÏ ÏÏÏÏÎÏ "
-"ÎÎÏÎÎÏ."
-
-#: C/helloWorld.js.page:151(p)
-msgid "For this you need to have the following files:"
-msgstr "ÎÎÎ ÎÏÏÏ ÏÏÎÎÎÎÏÏÎÏÏÎ ÎÎ ÎÏÎÏÎ ÏÎ ÏÎÏÎÎÎÏÏ ÎÏÏÎÎÎ:"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function() {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            border_width: 20,\n"
+"            title: \"Animal Creator\"});\n"
+
+#: C/switch.js.page:91(section/title)
+msgid "Creating the switches"
+msgstr "ÎÎÎÎÎÏÏÎÎÎ ÏÏÎ ÎÎÎÎÎÏÏÏÎ"
 
-#: C/helloWorld.js.page:157(p)
-msgid "After the <file>autogen.sh</file> file is ready and saved, run:"
+#: C/switch.js.page:92(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"        // Create the image widget and set its default picture\n"
+"        this._image = new Gtk.Image ({file: \"redfox.png\"});\n"
 msgstr ""
-"ÎÏÎÏ ÏÎ ÎÏÏÎÎÎ <file>autogen.sh</file> ÎÎÎÎÎ ÎÏÎÎÎÎ ÎÎÎ ÎÏÎÎÎÎÎÏÎÎÎÎ, "
-"ÎÎÏÎÎÎÏÏÎ:"
-
-#: C/helloWorld.js.page:158(input)
-msgid "chmod +x autogen.sh"
-msgstr "chmod +x autogen.sh"
-
-#: C/helloWorld.js.page:172(title)
-msgid "README"
-msgstr "README"
+"\n"
+"        // Create the image widget and set its default picture\n"
+"        this._image = new Gtk.Image ({file: \"redfox.png\"});\n"
 
-#: C/helloWorld.js.page:173(p)
-msgid "Information users should read first. This file can be blank."
+#: C/switch.js.page:97(section/p)
+msgid ""
+"We first create the <link xref=\"image.js\">Image</link> that the switches "
+"will control. Remember that a file named <file>redfox.png</file> needs to be "
+"in the same directory as this application."
 msgstr ""
-"ÎÎ ÏÎÎÏÎÏÎÏÎÎÏ ÏÏÎÏÏÏÎ ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎÏÏÎÏÎ ÏÏÏÏÎ. ÎÏÏÏ ÏÎ ÎÏÏÎÎÎ ÎÏÎÏÎÎ ÎÎ "
-"ÎÎÎÎÎ ÎÎÎÏ."
+"ÎÎÎÎÎÏÏÎÎÏÎÎ ÏÏÏÏÎ ÏÎÎ <link xref=\"image.js\">ÎÎÎÏÎÎ</link> ÏÎÏ ÎÎ "
+"ÎÎÎÎÏÏÏÎÏ ÎÎ ÎÎÎÎÏÎÏÎ. ÎÎ ÎÏÎÎÏÏÎ ÏÏÎ ÎÎÎ ÎÏÏÎÎÎ ÎÎ ÏÎÎÎÎ <file>redfox.png</"
+"file> ÏÏÎÎÎÎÎÏÎÎ ÎÎ ÎÎÎÎÎ ÏÏÎÎ ÎÎÎÎ ÎÎÏÎÎÎÎÎ ÏÏÏÏ ÎÏÏÎ Î ÎÏÎÏÎÎÎÎ."
 
-#: C/helloWorld.js.page:175(p)
+#: C/switch.js.page:99(section/code)
+#, no-wrap
 msgid ""
-"When you have the <file>helloWorld</file>, <file>helloWorld.desktop.in</"
-"file>, <file>Makefile.am</file>, <file>configure.ac</file> and <file>autogen."
-"sh</file> files with correct information and rights, the <file>README</file> "
-"file can include the following instructions:"
+"\n"
+"        // Create a label for the first switch\n"
+"        this._flyLabel = new Gtk.Label ({\n"
+"            label: \"Make it fly\",\n"
+"            margin_right: 30});\n"
+"\n"
+"        // Create the first switch and set its default position\n"
+"        this._flySwitch = new Gtk.Switch ({active: false});\n"
+"        this._flySwitch.connect ('notify::active', Lang.bind (this, this._switchFlip));\n"
+"\n"
+"        // Create a label for the second switch\n"
+"        this._birdLabel = new Gtk.Label ({\n"
+"            label: \"Make it a bird\",\n"
+"            margin_right: 30});\n"
+"\n"
+"        // Create the second switch\n"
+"        this._birdSwitch = new Gtk.Switch ({active: false});\n"
+"        this._birdSwitch.connect ('notify::active', Lang.bind (this, this._switchFlip));\n"
 msgstr ""
-"ÎÏÎÎ ÎÏÎÏÎ ÏÎ ÎÏÏÎÎÎ <file>helloWorld</file>, <file>helloWorld.desktop.in</"
-"file>, <file>Makefile.am</file>, <file>configure.ac</file> ÎÎÎ <file>autogen."
-"sh</file> ÎÎ ÏÏÏÏÎÏ ÏÎÎÏÎÏÎÏÎÎÏ ÎÎÎ ÎÎÎÎÎÏÎÎÏÎ, ÏÎ ÎÏÏÎÎÎ <file>README</"
-"file> ÎÏÎÏÎÎ ÎÎ ÏÏÎÏÎÏÎÎÎÎÎÎ ÏÎÏ ÎÎÏÎÎÏÎÎÏ ÎÎÎÎÎÎÏ:"
+"\n"
+"        // Create a label for the first switch\n"
+"        this._flyLabel = new Gtk.Label ({\n"
+"            label: \"Make it fly\",\n"
+"            margin_right: 30});\n"
+"\n"
+"        // Create the first switch and set its default position\n"
+"        this._flySwitch = new Gtk.Switch ({active: false});\n"
+"        this._flySwitch.connect ('notify::active', Lang.bind (this, this._switchFlip));\n"
+"\n"
+"        // Create a label for the second switch\n"
+"        this._birdLabel = new Gtk.Label ({\n"
+"            label: \"Make it a bird\",\n"
+"            margin_right: 30});\n"
+"\n"
+"        // Create the second switch\n"
+"        this._birdSwitch = new Gtk.Switch ({active: false});\n"
+"        this._birdSwitch.connect ('notify::active', Lang.bind (this, this._switchFlip));\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/hellognome.js.page:64(None)
+#: C/switch.js.page:119(section/p)
 msgid ""
-"@@image: 'media/hellognomewebapp.png'; md5=948efb6148ede3bc6b47b4b0bbe4a74f"
+"We use a <link xref=\"label.js\">Label</link> to mark each Switch, and give "
+"them a bit of a margin on the right so that they aren't crammed right next "
+"to the Switches. After that we create the Switches, and set them to be "
+"switched off by default."
 msgstr ""
-"@@image: 'media/hellognomewebapp.png'Â md5=948efb6148ede3bc6b47b4b0bbe4a74f"
-
-#: C/hellognome.js.page:16(desc)
-msgid "Your first GNOME application!"
-msgstr "Î ÏÏÏÏÎ ÏÎÏ ÎÏÎÏÎÎÎÎ ÏÎ GNOME!"
-
-#: C/hellognome.js.page:19(title)
-msgid "1. Hello, GNOME!"
-msgstr "1. Hello, GNOME!"
+"ÎÏÎÏÎÎÎÏÎÎÎÏÎÎ ÎÎÎ <link xref=\"label.js\">ÎÏÎÎÎÏÎ</link> ÎÎÎ ÎÎ ÏÎÎÎÎÏÏÎÏÎÎ "
+"ÎÎÎÎ ÎÎÎÎÏÏÏÎ ÎÎÎ ÎÎ ÏÎÏÏ ÎÏÏÎÏÎÎ ÎÎÎÎ ÏÎÏÎÎÏÏÎÎ ÏÏÎ ÎÎÎÎÎ ÎÏÏÎ ÏÏÏÎ ÎÎ ÎÎÎ "
+"ÏÏÏÎÎÏÏÎÎÎÏÎÎ ÎÎÏÎÎÏÏ ÎÎÏÎÎ ÏÏÎÏÏ ÎÎÎÎÏÏÏÎÏ. ÎÎÏÎ ÎÎÎÎÎÏÏÎÎÏÎÎ ÏÎÏÏ "
+"ÎÎÎÎÏÏÏÎÏ ÎÎÎ ÏÎÏÏ ÎÏÎÎÎÏÎÎ ÎÎÎÎÎÏÎÎÏÏ ÎÏÏ ÏÏÎÎÏÎÎÎÎÎ."
 
-#: C/hellognome.js.page:21(p)
+#: C/switch.js.page:120(section/p)
 msgid ""
-"This tutorial will show you how to write your first GNOME application in "
-"JavaScript. You will use JavaScript to write for GNOME the same way you "
-"would for the web. Afterwards, you will learn how to use \"native\" widgets, "
-"to write applications that look and feel like other GNOME apps."
+"The signal a switch sends out when it's flipped on or off is called notify::"
+"active. After we create each switch, we connect its notify::active signal to "
+"a function called _switchFlip. If you have multiple switches that each do "
+"something different, you might want to connect them to different functions, "
+"but here they're both used for the same thing: To control what picture's "
+"displayed by _image."
 msgstr ""
-"ÎÏÏÏ ÏÎ ÎÎÎÎÎÎ ÎÎ ÏÎÏ ÎÎÎÎÎÎ ÏÏÏ ÎÎ ÎÏÎÏÎÏÎ ÏÎÎ ÏÏÏÏÎ ÏÎÏ ÎÏÎÏÎÎÎÎ GNOME ÏÎ "
-"JavaScript. ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ JavaScript ÎÎÎ ÎÎ ÎÏÎÏÎÏÎ ÎÎÎ GNOME ÎÎ ÏÎÎ "
-"ÎÎÎÎ ÏÏÏÏÎ ÏÎÏ ÎÎ ÎÏÏÎÏÎ ÎÎÎ ÏÎÎ ÎÏÏÏ. ÎÎÏÏÏÎÎ, ÎÎ ÎÎÎÎÏÎ ÏÏÏ ÎÎ "
-"ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ \"native\" ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ, ÎÎÎ ÎÎ ÎÏÎÏÎÏÎ ÎÏÎÏÎÎÎÎÏ ÏÎÏ "
-"ÎÎÎÏÎÎÏÎ ÎÎÎ ÎÎÏÎÎÎÎÎÏÎÎ ÏÎÎ ÎÎÎÎÏ ÎÏÎÏÎÎÎÎÏ GNOME."
+"ÎÎ ÏÎÎÎ ÏÎÏ ÎÎÎÏ ÎÎÎÎÏÏÏÎÏ ÏÏÎÎÎÎÎ ÏÏÎÎ ÎÎÏÎÏÏÏÎÏÎÏÎÎ ÎÎÎÏÎÎ/ÎÎÎÎÎÏÎÎ "
+"ÎÎÎÎÏÎÎ notify::active. ÎÎÏÎ ÏÎ ÎÎÎÎÎÏÏÎÎÎ ÎÎÎÎ ÎÎÎÎÏÏÏÎ, ÏÏÎÎÎÎÏÎÎ ÏÎ ÏÎÎÎ "
+"ÏÎÏ notify::active ÏÎ ÎÎÎ ÏÏÎÎÏÏÎÏÎ ÏÎÏ ÎÎÎÎÏÎÎ _switchFlip. ÎÎÎ ÎÏÎÏÎ "
+"ÏÎÎÎÎÏÏ ÎÎÎÎÏÏÏÎÏ ÏÎÏ Î ÎÎÎÎÎÎÏ ÏÎÏÏ ÎÎÎÎÎ ÎÎÏÎ ÎÎÎÏÎÏÎÏÎÎÏ, ÎÏÏÏ ÎÎÎÎÏÎÏÎ "
+"ÎÎ ÏÎÏÏ ÏÏÎÎÎÏÎÏÎ ÏÎ ÎÎÎÏÎÏÎÏÎÎÎÏ ÏÏÎÎÏÏÎÏÎÎÏ, ÎÎÎÎ ÎÎÏ ÎÎÎ ÎÎ ÎÏÎ "
+"ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÎÎ ÏÎ ÎÎÎÎ ÏÏÎÎÎÎ: ÏÎÎ ÎÎÎÎÏÎ ÏÎÏ ÎÎÏÎÎÎÎÏÎÎÎÎÏ ÎÎÎÏÎÎÏ "
+"ÎÏÏ ÏÎ _image."
 
-#: C/hellognome.js.page:22(p)
+#: C/switch.js.page:122(section/code)
+#, no-wrap
 msgid ""
-"Have you gotten GNOME installed on your computer, and <link xref=\"set-up-"
-"gedit.js\">gedit</link> set up to write code with? You'll want to do these "
-"things first."
+"\n"
+"        // Create a grid for the labels and switches beneath the picture\n"
+"        this._UIGrid = new Gtk.Grid ({\n"
+"            halign: Gtk.Align.CENTER,\n"
+"            valign: Gtk.Align.CENTER,\n"
+"            margin_top: 20});\n"
+"\n"
+"        // Attach the labels and switches to that grid\n"
+"        this._UIGrid.attach (this._flyLabel, 0, 0, 1, 1);\n"
+"        this._UIGrid.attach (this._flySwitch, 1, 0, 1, 1);\n"
+"        this._UIGrid.attach (this._birdLabel, 0, 1, 1, 1);\n"
+"        this._UIGrid.attach (this._birdSwitch, 1, 1, 1, 1);\n"
+"\n"
+"        // Create a master grid to put both the UI and the picture into\n"
+"        this._mainGrid = new Gtk.Grid ({\n"
+"            halign: Gtk.Align.CENTER,\n"
+"            valign: Gtk.Align.CENTER });\n"
+"\n"
+"        // Attach the picture and the UI grid to the master grid\n"
+"        this._mainGrid.attach (this._image, 0, 0, 1, 1);\n"
+"        this._mainGrid.attach (this._UIGrid, 0, 1, 1, 1);\n"
 msgstr ""
-"ÎÏÎÏÎ ÏÎÏÎÎ ÏÎÎ ÏÏÎÎÎÎÎÏÏÎ ÏÎÏ ÎÎ ÎÎÎÎÏÎÏÏÎÎÎÎÎ ÏÎ GNOME ÎÎÎ <link xref="
-"\"set-up-gedit.js\">gedit</link> ÏÏÎÎÎÏÎÎÎÎ ÎÎ ÎÏÎÏÎÎ ÎÏÎÎÎÎ ÎÎ ?. ÎÎ ÎÎÎÎÏÎ "
-"ÎÎ ÎÎÎÎÏÎ ÎÏÏÎ ÏÎ ÏÏÎÎÎÎÏÎ ÏÏÏÏÎ."
-
-#: C/hellognome.js.page:28(title)
-msgid "Let's start with a web page"
-msgstr "ÎÏ ÎÏÏÎÏÎÏÎÎ ÎÎ ÎÎÎ ÎÏÏÎÏÎÎÎÎÎ"
+"\n"
+"        // Create a grid for the labels and switches beneath the picture\n"
+"        this._UIGrid = new Gtk.Grid ({\n"
+"            halign: Gtk.Align.CENTER,\n"
+"            valign: Gtk.Align.CENTER,\n"
+"            margin_top: 20});\n"
+"\n"
+"        // Attach the labels and switches to that grid\n"
+"        this._UIGrid.attach (this._flyLabel, 0, 0, 1, 1);\n"
+"        this._UIGrid.attach (this._flySwitch, 1, 0, 1, 1);\n"
+"        this._UIGrid.attach (this._birdLabel, 0, 1, 1, 1);\n"
+"        this._UIGrid.attach (this._birdSwitch, 1, 1, 1, 1);\n"
+"\n"
+"        // Create a master grid to put both the UI and the picture into\n"
+"        this._mainGrid = new Gtk.Grid ({\n"
+"            halign: Gtk.Align.CENTER,\n"
+"            valign: Gtk.Align.CENTER });\n"
+"\n"
+"        // Attach the picture and the UI grid to the master grid\n"
+"        this._mainGrid.attach (this._image, 0, 0, 1, 1);\n"
+"        this._mainGrid.attach (this._UIGrid, 0, 1, 1, 1);\n"
 
-#: C/hellognome.js.page:30(p)
+#: C/switch.js.page:144(section/p)
 msgid ""
-"Here's some basic HTML, CSS, and JavaScript code. Does this look familiar?"
+"We create a <link xref=\"grid.js\">Grid</link> for the Labels and Switches "
+"first, so that we can organize them in a 2x2 layout with a margin between it "
+"and the Image. Then we put that Grid into a larger 2x1 Grid that has the "
+"Image on top, and the Grid with the Labels and Switches on the bottom."
 msgstr ""
-"ÎÎÎÏ ÎÎÏÎÎÎÏ ÎÎÏÎÎÏÏ ÎÏÎÎÎÎÏ HTML, CSS ÎÎÎ JavaScript. ÎÎÏ ÏÎÎÎÎÏÎÎ ÎÏÏÏÏ "
-"ÎÎÎÎÎÎÏ;"
+"ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ <link xref=\"grid.js\">ÏÎÎÎÎÎ</link> ÎÎÎ ÏÎÏ ÎÏÎÎÎÏÎÏ ÎÎÎ "
+"ÏÎÏÏ ÎÎÎÎÏÏÏÎÏ ÏÏÏÏÎ, ÎÏÏÎ ÏÏÏÎ ÎÎ ÎÏÎÏÎÏÎÎ ÎÎ ÏÎÏ ÎÏÎÎÎÏÏÎÏÎÎ ÏÎ ÎÎÎ "
+"ÎÎÎÏÎÎÎ 2x2 ÎÎ ÎÎÎ ÏÎÏÎÎÏÏÎÎ ÎÎÏÎÎÏ ÏÎÏ ÎÎÎ ÏÎÏ ÎÎÎÏÎÎÏ. ÎÏÎÎÏÎ ÎÎÎÎÏÎÎ ÎÏÏÏ "
+"ÏÎ ÏÎÎÎÎÎ ÏÎ ÎÎÎ ÎÎÎÎÎÏÏÎÏÎ ÏÎÎÎÎÎ 2x1 ÏÎÏ ÎÏÎÎ ÏÎÎ ÎÎÎÏÎÎ ÏÏÎÎ ÎÎÏÏÏÎ ÎÎÎ "
+"ÏÎ ÏÎÎÎÎÎ ÎÎ ÏÎÏ ÎÏÎÎÎÏÎÏ ÎÎÎ ÏÎÏÏ ÎÎÎÎÏÏÏÎÏ ÏÏÎ ÏÎÎÎÏ."
 
-#: C/hellognome.js.page:62(p)
+#: C/switch.js.page:145(section/code)
+#, no-wrap
 msgid ""
-"Let's save this as <file>hellognome.html</file>, and see what it looks like "
-"when we run it!"
+"\n"
+"        // Add the master grid to the window\n"
+"        this._window.add (this._mainGrid);\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    },\n"
 msgstr ""
-"ÎÏ ÏÎ ÎÏÎÎÎÎÎÏÏÎÏÎÎ ÏÏ <file>hellognome.html</file> ÎÎÎ ÎÎ ÎÎÏÎÎ ÏÏÏ "
-"ÏÎÎÎÎÏÎÎ ÏÏÎÎ ÏÎÎ ÎÎÏÎÎÎÏÎÎ!"
+"\n"
+"        // Add the master grid to the window\n"
+"        this._window.add (this._mainGrid);\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    },\n"
 
-#: C/hellognome.js.page:66(p)
+#: C/switch.js.page:157(section/title)
+msgid "Function which handles the switches being flipped"
+msgstr "Î ÏÏÎÎÏÏÎÏÎ ÏÎÏ ÏÎÎÏÎÎÎÏÎÎ ÏÎÏÏ ÎÎÎÎÏÏÏÎÏ ÏÎÏ ÎÎÏÎÏÏÏÎÏÎÎÎÎ"
+
+#: C/switch.js.page:159(section/code)
+#, no-wrap
 msgid ""
-"You <em>can</em> run the above code by opening <file>hellognome.html</file> "
-"in a web browser. But here, we're going to create a GNOME application that "
-"runs our web app inside of it, just like you see in the screenshot. You'll "
-"be able to resize and maximize the window, and click the X in the corner to "
-"close it, just like you'd expect from any other GNOME app. The difference is "
-"that this one will run our web code inside of it."
+"\n"
+"    _switchFlip: function() {\n"
+"\n"
+"        // Change the picture depending on which switches are flipped\n"
+"        if (this._flySwitch.get_active()) {\n"
+"\n"
+"            if (this._birdSwitch.get_active()) this._image.set_from_file (\"muteswan.png\");\n"
+"\n"
+"            else this._image.set_from_file (\"fruitbat.png\");\n"
+"        }\n"
+"\n"
+"        else {\n"
+"\n"
+"            if (this._birdSwitch.get_active()) this._image.set_from_file (\"gentoopenguin.png\");\n"
+"\n"
+"            else this._image.set_from_file (\"redfox.png\");\n"
+"\n"
+"        }\n"
+"\n"
+"    },\n"
 msgstr ""
-"<em>ÎÏÎÏÎÎÏÎ</em> ÎÎ ÎÎÏÎÎÎÏÎÏÎ ÏÎÎ ÏÎÏÎÏÎÎÏ ÎÏÎÎÎÎ ÎÎÎÎÎÎÎÏÎÏ ÏÎ "
-"<file>hellognome.html</file> ÏÎ ÎÎÎÎ ÏÎÏÎÎÎÎÏÎ ÎÏÏÎÏ. ÎÎÎÎ ÎÎÏ, ÏÏÏÎÎÎÏÎÎ ÎÎ "
-"ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ ÎÎÎ ÎÏÎÏÎÎÎÎ GNOME ÏÎÏ ÏÏÎÏÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ ÎÏÏÎÏ ÎÎÏ ÎÎÏÎ "
-"ÏÎÏ, ÎÎÏÎÎÏÏ ÏÏÏÏ ÎÎÎÏÎÏÎ ÏÏÎ ÏÏÎÎÎÎÏÏÏÏÎ. ÎÎ ÎÏÎÏÎÏÎÏÎ ÎÎ ÎÏÎÎÎÎÎÏÏÎÏÎ ÎÎÎ "
-"ÎÎ ÎÎÎÎÏÏÎÏÎÎÎÏÎÏÎ ÏÎ ÏÎÏÎÎÏÏÎ ÎÎÎ ÏÎÏÏÎÏÎÏ ÏÎ Î ÏÏÎ ÎÏÎÎÎ ÎÎ ÏÎ ÎÎÎÎÏÎÏÎ, "
-"ÎÎÏÎÎÏÏ ÏÏÏÏ ÎÎ ÏÎÏÎÎÎÎÎÏÎ ÎÏÏ ÎÎÎÎ ÎÎÎÎ ÎÏÎÏÎÎÎÎ GNOME. Î ÎÎÎÏÎÏÎ ÎÎÎÎÎ ÏÏÎ "
-"ÎÏÏÏ ÎÎ ÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÏÎÎÎÎ ÏÎÏ ÎÏÏÎÏ ÎÎÏÎ ÏÎÏ."
+"\n"
+"    _switchFlip: function() {\n"
+"\n"
+"        // Change the picture depending on which switches are flipped\n"
+"        if (this._flySwitch.get_active()) {\n"
+"\n"
+"            if (this._birdSwitch.get_active()) this._image.set_from_file (\"muteswan.png\");\n"
+"\n"
+"            else this._image.set_from_file (\"fruitbat.png\");\n"
+"        }\n"
+"\n"
+"        else {\n"
+"\n"
+"            if (this._birdSwitch.get_active()) this._image.set_from_file (\"gentoopenguin.png\");\n"
+"\n"
+"            else this._image.set_from_file (\"redfox.png\");\n"
+"\n"
+"        }\n"
+"\n"
+"    },\n"
 
-#: C/hellognome.js.page:67(p)
+#: C/switch.js.page:180(section/p)
 msgid ""
-"The best part? We're going to continue to use JavaScript, to write all the "
-"parts that make our app work with GNOME. Let's look at the code, and see how "
-"it's done!"
+"Each time a Switch is flipped, this function checks to see which of the two "
+"Switches are active afterwards, using the Switches' built-in get_active() "
+"function. It then changes the Image accordingly. You can change the "
+"filenames around as you like, so long as you have pictures to go with them."
 msgstr ""
-"ÎÎ ÎÏÎÏÏÎ ÎÎÏÎÏ; ÎÏÏÎÎÎÏÎÎ ÎÎ ÏÏÎÎÏÎÏÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ JavaScript, ÎÎ "
-"ÎÏÎÏÎÏÎÎ ÏÎÎ ÏÎ ÎÎÏÎ ÏÎÏ ÎÎÎÎÏÎ ÏÎÎ ÎÏÎÏÎÎÎÎ ÎÎÏ ÎÎ ÎÎÏÎÎÏÎÎ ÎÎ GNOME. ÎÏ "
-"ÎÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÏÎÎÎÎ ÎÎÎ ÎÏ ÎÎÏÎÎ ÏÏÏ ÏÎÎÎÎÏÎÎÎ!"
+"ÎÎÎÎ ÏÎÏÎ ÏÎÏ ÎÎÎÏ ÎÎÎÎÏÏÏÎÏ ÎÎÎÏÏÏÎÏÎÏÎÎ, ÎÏÏÎ Î ÏÏÎÎÏÏÎÏÎ ÎÎÎÎÏÎÎ ÎÎ ÎÎÎ "
+"ÏÎÎÎÏ ÎÏÏ ÏÎÏÏ ÎÏÎ ÎÎÎÎÏÏÏÎÏ ÎÎÎÎÎ ÎÎÎÏÎÏÏ ÎÎÏÏÏÎÎ, ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎÎ "
+"ÎÎÏÏÎÎÏÏÎÎÎÎ ÏÏÎÎÏÏÎÏÎ get_active(). ÎÏÎÎÏÎ ÎÎÎÎÎÎÎ ÏÎÎ ÎÎÎÏÎÎ ÎÎÎÎÎÎÎ. "
+"ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÎÎÎÏÎ ÏÎ ÎÎÏÎÎÏÎ ÎÏÏÎÎÏÎ ÎÎÏÎÏÏÎ ÏÏÏÏ ÎÎÎÎÏÎ, ÎÏÏÏÎÎ ÎÏÎÏÎ "
+"ÎÎÎÏÎÎÏ ÏÎÏ ÎÎ ÏÎÎÎÎÎÎÏÎ ÎÎÎÎ ÏÎÏÏ."
 
-#: C/hellognome.js.page:71(title)
-msgid "Creating a GNOME window to frame our web app"
-msgstr "ÎÎÎÎÎÏÏÎÎÎ ÎÎÏÏ ÏÎÏÎÎÏÏÎÏ GNOME ÏÏ ÏÎÎÎÏÎÎÏ ÎÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ ÎÎÏ"
+#: C/switch.js.page:184(section/title)
+msgid "Creating the AboutDialog"
+msgstr "ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ AboutDialog"
 
-#: C/hellognome.js.page:73(p)
+#: C/switch.js.page:185(section/code)
+#, no-wrap
 msgid ""
-"First, we need to tell GNOME that this is a JavaScript application, which "
-"uses gjs. Gjs is GNOME's way of turning your JavaScript code into "
-"instructions it understands, so this line always has to go at the start of "
-"your applications."
-msgstr ""
-"ÎÏÏÏÎ, ÏÏÎÎÎÎÏÎÎÏÏÎ ÎÎ ÏÎÏÎÎ ÏÏÎ GNOME ÏÏÎ ÎÏÏÎ ÎÎÎÎÎ ÎÎÎ ÎÏÎÏÎÎÎÎ "
-"JavaScript, ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÎ gjs. Gjs ÎÎÎÎÎ ÎÎÎÏ ÏÏÏÏÎÏ ÏÎÏ GNOME ÎÎ "
-"ÎÎÏÎÏÏÎÏÎÎ ÏÎÎ ÎÏÎÎÎÎ ÏÎÏ JavaScript ÏÎ ÎÎÎÎÎÎÏ ÏÎÏ ÎÎÏÎÎÎÎÎÎÎÎÎ, ÎÏÏÎ ÎÏÏÎ "
-"Î ÎÏÎÎÎÎ ÏÏÎÏÎÎ ÏÎÎÏÎ ÎÎ ÏÎÎÎÎÎÎÎ ÏÏÎÎ ÎÏÏÎ ÏÏÎ ÎÏÎÏÎÎÎÏÎ ÏÎÏ."
-
-#: C/hellognome.js.page:77(p)
-msgid "After that, we need to tell GNOME which libraries we want to import."
+"\n"
+"    _initMenus: function() {\n"
+"\n"
+"        // Build the application's menu so we can have an \"About\" button\n"
+"        let menu = new Gio.Menu();\n"
+"        menu.append(\"About\", 'app.about');\n"
+"        menu.append(\"Quit\",'app.quit');\n"
+"        this.application.set_app_menu(menu);\n"
+"\n"
+"        // Bind the \"About\" button to the _showAbout() function\n"
+"        let aboutAction = new Gio.SimpleAction ({ name: 'about' });\n"
+"        aboutAction.connect('activate', Lang.bind(this,\n"
+"            function() {\n"
+"                this._showAbout();\n"
+"            }));\n"
+"        this.application.add_action(aboutAction);\n"
+"\n"
+"        // Bind the \"Quit\" button to the function that closes the window\n"
+"        let quitAction = new Gio.SimpleAction ({ name: 'quit' });\n"
+"        quitAction.connect('activate', Lang.bind(this,\n"
+"            function() {\n"
+"                this._window.destroy();\n"
+"            }));\n"
+"        this.application.add_action(quitAction);\n"
+"    },\n"
 msgstr ""
-"ÎÎÏÎ ÎÏÏ ÎÏÏÏ, ÏÏÎÎÎÎÏÎÎÏÏÎ ÎÎ ÏÎÏÎÎ ÏÏÎ GNOME ÏÎÎÎÏ ÎÎÎÎÎÎÎÎÎÎÏ ÎÎÎÎÏÎÎ ÎÎ "
-"ÎÎÏÎÎÎÏÎÎ."
+"\n"
+"    _initMenus: function() {\n"
+"\n"
+"        // Build the application's menu so we can have an \"About\" button\n"
+"        let menu = new Gio.Menu();\n"
+"        menu.append(\"About\", 'app.about');\n"
+"        menu.append(\"Quit\",'app.quit');\n"
+"        this.application.set_app_menu(menu);\n"
+"\n"
+"        // Bind the \"About\" button to the _showAbout() function\n"
+"        let aboutAction = new Gio.SimpleAction ({ name: 'about' });\n"
+"        aboutAction.connect('activate', Lang.bind(this,\n"
+"            function() {\n"
+"                this._showAbout();\n"
+"            }));\n"
+"        this.application.add_action(aboutAction);\n"
+"\n"
+"        // Bind the \"Quit\" button to the function that closes the window\n"
+"        let quitAction = new Gio.SimpleAction ({ name: 'quit' });\n"
+"        quitAction.connect('activate', Lang.bind(this,\n"
+"            function() {\n"
+"                this._window.destroy();\n"
+"            }));\n"
+"        this.application.add_action(quitAction);\n"
+"    },\n"
 
-#: C/hellognome.js.page:84(p)
+#: C/switch.js.page:211(section/p)
 msgid ""
-"Just like how add-on libraries like jQuery let us do extra things with "
-"JavaScript, each of these libraries gives us new capabilities for our GNOME "
-"apps:"
+"The first step is building the <link xref=\"gmenu.js\">GMenu</link> that the "
+"\"About\" button goes into. This is the menu that appears when you click the "
+"application's name in the upper-left corner of the screen, next to the "
+"Activities menu. Our menu only has two options in it: About, and Quit."
 msgstr ""
-"ÎÏÏ ÏÏÏÏÎÎÏÎÏ ÎÎÎÎÎÎÎÎÎÎÏ ÏÏÏÏ Î jQuery ÎÎÏ ÎÏÎÏÏÎÏÎÏÎ ÎÎ ÎÎÎÎÏÎÎ ÏÏÏÏÎÎÏÎ "
-"ÏÏÎÎÎÎÏÎ ÎÎ ÏÎÎ JavaScript, ÎÎÎÎÎÎÎ ÎÏÏ ÎÏÏÎÏ ÏÎÏ ÎÎÎÎÎÎÎÎÎÎÏ ÎÎÏ ÎÎÎÎÎ ÎÎÎÏ "
-"ÎÏÎÎÏÏÏÎÏÎÏ ÎÎÎ ÏÎÏ ÎÏÎÏÎÎÎÎÏ ÎÎÏ ÏÏÎ GNOME:"
+"ÎÎ ÏÏÏÏÎ ÎÎÎÎ ÎÎÎÎÎ Î ÎÏÎÎÏÎ ÏÎÏ <link xref=\"gmenu.js\">GMenu</link> ÏÏÎ "
+"ÎÏÎÎÎ ÏÎ ÎÎÏÎÏÎ \"About\" ÎÏÎÎÎÎÎ. ÎÏÏÏ ÎÎÎÎÎ ÏÎ ÎÎÎÎÏ ÏÎÏ ÎÎÏÎÎÎÎÎÏÎÎ ÏÏÎÎ "
+"ÏÎÏÎÏ ÏÎ ÏÎÎÎÎ ÏÎÏ ÎÏÎÏÎÎÎÎÏ ÏÏÎÎ ÏÎÎÏ ÎÏÎÏÏÎÏÎ ÎÏÎÎÎ ÏÎÏ ÎÎÏÎÎÏ, ÎÎÏÎÎ ÏÏÎ "
+"ÎÎÎÎÏ ÎÎÎÏÎÎÎÎÏ. ÎÎ ÎÎÎÎÏ ÎÎÏ ÎÏÎÎ ÎÏÎÎ ÎÏÎ ÎÏÎÎÎÎÎÏ: ÏÎÏÎ ÎÎÎ ÎÎÎÎÏÎÎÎ."
 
-#: C/hellognome.js.page:86(p)
+#: C/switch.js.page:213(section/code)
+#, no-wrap
 msgid ""
-"<file>Gtk</file> and <file>Lang</file> are basic parts of any GNOME "
-"application, which let you create windows and widgets and tie them together."
+"\n"
+"    _showAbout: function () {\n"
+"\n"
+"        // String arrays of the names of the people involved in the project\n"
+"        var artists = ['Rob Lee http://en.wikipedia.org/wiki/File:Fuzzy_Freddy.jpg', 'Ken Funakoshi http://en.wikipedia.org/wiki/File:Pygoscelis_papua_-Nagasaki_Penguin_Aquarium_-swimming_underwater-8a.jpg', 'Shek Graham http://www.flickr.com/photos/shekgraham/127431519/in/photostream/', 'Mindaugas Urbonas http://commons.wikimedia.org/wiki/File:Mute_Swan-Mindaugas_Urbonas.jpg'];\n"
+"        var authors = [\"GNOME Documentation Team\"];\n"
+"        var documenters = [\"GNOME Documentation Team\"];\n"
+"\n"
+"        // Create the About dialog\n"
+"        let aboutDialog = new Gtk.AboutDialog({\n"
+"            title: \"AboutDialog Example\",\n"
+"            program_name: \"Animal Creator\",\n"
+"            copyright: \"Copyright \\xa9 2012 GNOME Documentation Team\\n\\nRed fox photo licensed CC-By by Rob Lee\\nGentoo penguin photo licensed CC-By-SA by Ken Funakoshi\\nFruit bat photo licensed CC-By by Shek Graham\\nMute swan photo licensed CC-By-SA by Mindaugas Urbonas\\nLinks to the originals are available under Credits.\\n\\nHave you hugged a penguin today?\",\n"
+"            artists: artists,\n"
+"            authors: authors,\n"
+"            documenters: documenters,\n"
+"            website: \"http://developer.gnome.org\",\n";
+"            website_label: \"GNOME Developer Website\" });\n"
+"\n"
+"        // Attach the About dialog to the window\n"
+"        aboutDialog.modal = true;\n"
+"        aboutDialog.transient_for = this._window;\n"
+"\n"
+"        // Show the About dialog\n"
+"        aboutDialog.show();\n"
+"\n"
+"        // Connect the Close button to the destroy signal for the dialog\n"
+"        aboutDialog.connect('response', function() {\n"
+"            aboutDialog.destroy();\n"
+"        });\n"
+"    }\n"
+"\n"
+"});\n"
 msgstr ""
-"<file>Gtk</file> ÎÎÎ <file>Lang</file> ÎÎÎÎÎ ÎÎÏÎÎÎ ÎÎÏÎ ÎÎÎÎ ÎÏÎÏÎÎÎÎÏ "
-"GNOME, ÏÎÏ ÏÎÏ ÎÏÎÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎ ÏÎÏÎÎÏÏÎ ÎÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÎ "
-"ÎÎ ÏÎ ÏÏÎÎÎÏÎÏÎ ÎÎÎÎ."
+"\n"
+"    _showAbout: function () {\n"
+"\n"
+"        // String arrays of the names of the people involved in the project\n"
+"        var artists = ['Rob Lee http://en.wikipedia.org/wiki/File:Fuzzy_Freddy.jpg', 'Ken Funakoshi http://en.wikipedia.org/wiki/File:Pygoscelis_papua_-Nagasaki_Penguin_Aquarium_-swimming_underwater-8a.jpg', 'Shek Graham http://www.flickr.com/photos/shekgraham/127431519/in/photostream/', 'Mindaugas Urbonas http://commons.wikimedia.org/wiki/File:Mute_Swan-Mindaugas_Urbonas.jpg'];\n"
+"        var authors = [\"GNOME Documentation Team\"];\n"
+"        var documenters = [\"GNOME Documentation Team\"];\n"
+"\n"
+"        // Create the About dialog\n"
+"        let aboutDialog = new Gtk.AboutDialog({\n"
+"            title: \"AboutDialog Example\",\n"
+"            program_name: \"Animal Creator\",\n"
+"            copyright: \"Copyright \\xa9 2012 GNOME Documentation Team\\n\\nRed fox photo licensed CC-By by Rob Lee\\nGentoo penguin photo licensed CC-By-SA by Ken Funakoshi\\nFruit bat photo licensed CC-By by Shek Graham\\nMute swan photo licensed CC-By-SA by Mindaugas Urbonas\\nLinks to the originals are available under Credits.\\n\\nHave you hugged a penguin today?\",\n"
+"            artists: artists,\n"
+"            authors: authors,\n"
+"            documenters: documenters,\n"
+"            website: \"http://developer.gnome.org\",\n";
+"            website_label: \"GNOME Developer Website\" });\n"
+"\n"
+"        // Attach the About dialog to the window\n"
+"        aboutDialog.modal = true;\n"
+"        aboutDialog.transient_for = this._window;\n"
+"\n"
+"        // Show the About dialog\n"
+"        aboutDialog.show();\n"
+"\n"
+"        // Connect the Close button to the destroy signal for the dialog\n"
+"        aboutDialog.connect('response', function() {\n"
+"            aboutDialog.destroy();\n"
+"        });\n"
+"    }\n"
+"\n"
+"});\n"
 
-#: C/hellognome.js.page:87(p)
+#: C/switch.js.page:247(section/p)
+#, fuzzy
 msgid ""
-"<file>GLib</file> is a helper library, which lets us do things like tell "
-"GNOME where the <file>hellognome.html</file> file we created is."
+"An <link xref=\"aboutdialog.js\">AboutDialog</link> has a lot of different "
+"things you can set, to credit everyone who worked on the application and "
+"leave a note to whomever reads it. In this case, the copyright section "
+"contains our note and credits the original photographers, while the artists "
+"section shows you a list of the photographers with links to the original "
+"photos when you click the Credits button. The web URLs put after their names "
+"in the array turn their names into clickable links in the Credits section."
 msgstr ""
-"Î <file>GLib</file> ÎÎÎÎÎ ÎÎÎ ÎÎÎÎÎÏÎÎÎ ÎÎÎÎÎÎÎÎÎÎ, ÏÎÏ ÎÏÎÏÏÎÏÎÎ ÎÎ ÎÎÎÎÏÎ "
-"ÏÏÎÎÎÎÏÎ ÏÏÏÏ ÎÎ ÏÎÎÏÎ ÏÏÎ GNOME ÏÎÏ ÎÎÎÎÎ ÏÎ ÎÏÏÎÎÎ <file>hellognome.html</"
-"file>ÏÎÏ ÎÎÎÎÎÏÏÎÎÏÎÎÎ."
+"ÎÎÎÏ <link xref=\"aboutdialog.js\">AboutDialog</link> ÎÏÎÎ ÏÎÎÎÎ ÎÎÎÏÎÏÎÏÎÎÎ "
+"ÏÏÎÎÎÎÏÎ ÏÎÏ ÎÏÎÏÎÎÏÎ ÎÎ ÎÏÎÏÎÏÎ, ÎÎÎ ÎÎ ÎÎÎÎÎÎÎÏÏÎÏÎ ÎÏÎÎÎÎÎÎÏÎÏÎ ÎÎÏÎÎÏÎ "
+"ÏÏÎÎ ÎÏÎÏÎÎÎÎ ÎÎÎ ÎÎ ÎÏÎÏÎÏÎ ÎÎÎ ÏÎÎÎÎÏÏÎ ÏÎ ÎÏÎÎÎÎÎÎÏÎÏÎ ÏÎ ÎÎÎÎÎÎÎÎ. ÎÎ "
+"ÎÏÏÎÎ ÏÎÎ ÏÎÏÎÏÏÏÏÎ, Î ÎÎÏÏÎÏÎ ÏÎÎÏÎÎÏÎÎÏÎ ÎÎÎÎÎÏÎÎÏÏÎ ÏÎÏÎÎÏÎÎ ÏÎ ÏÎÎÎÎÏÏÎ "
+"ÎÎÏ ÎÎÎ ÎÎÎÎÎÏ ÏÏÎ ÎÏÏÎÎÏÎ ÏÏÏÎÎÏÎÏÏÎ, ÎÎÏ Î ÎÎÏÏÎÏÎ ÏÏÎ ÎÎÎÎÎÏÎÏÎÏÎ ÏÎÏ "
+"ÎÎÏÎÎÎÎÎÎ ÎÎÎ ÎÎÏÏÎ ÏÏÎ ÏÏÏÎÎÏÎÏÏÎ ÎÎ ÏÏÎÎÎÏÎÎÏÏ ÏÏÎÏ ÎÏÏÎÎÎÏ ÏÏÏÎÎÏÎÏÎÎÏ "
+"ÏÏÎÎ ÏÎÏÎÏÎ ÏÎ ÎÎÏÎÏÎ ÎÎ ÏÎÏ ÎÎÎÎÎÏ. ÎÎ URLs ÏÎÏ ÎÏÏÎÏ ÎÎÏÎ ÏÎ ÎÎÏÎÎÏÎ ÏÎÏÏ "
+"ÏÏÎÎ ÏÎÎÎÎÎ ÎÎÎÎÏÎ ÏÎ ÎÎÏÎÎÏÎ ÏÎÏÏ ÎÏÎÎÎÎÎÎÎÏÏ ÏÏÎÎÎÏÎÎÏÏ ÏÏÎÎ ÎÎÏÏÎÏÎ ÎÎ "
+"ÏÎÏ ÎÎÎÎÎÏ."
 
-#: C/hellognome.js.page:88(p)
+#: C/switch.js.page:249(section/code)
+#, no-wrap
 msgid ""
-"And <file>Webkit</file> is a web rendering engine, which we'll use to "
-"basically create a browser window to open our HTML file with."
+"\n"
+"// Run the application\n"
+"let app = new SwitchExample ();\n"
+"app.application.run (ARGV);\n"
 msgstr ""
-"ÎÎÎ ÏÎ <file>Webkit</file> ÎÎÎÎÎ ÎÎÎ ÎÎÏÎÎÎ ÎÏÏÎÎÏÎÏ ÎÏÏÎÏ, ÏÎÏ ÎÎ "
-"ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ ÎÎÏÎÎÎ ÎÎÎ ÏÎÏÎÎÏÏÎ ÏÎÏÎÎÎÎÏÎ ÎÎÎ ÎÎ "
-"ÎÎÎÎÎÎÏÎÎ ÏÎ ÎÏÏÎÎÎ ÎÎÏ HTML."
+"\n"
+"// Run the application\n"
+"let app = new SwitchExample ();\n"
+"app.application.run (ARGV);\n"
 
-#: C/hellognome.js.page:91(p)
-msgid "Now we create the application itself:"
-msgstr "ÎÏÏÎ ÎÎÎÎÎÏÏÎÎÏÎÎ ÏÎÎ ÎÎÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ:"
+#: C/switch.js.page:254(section/p)
+msgid ""
+"Finally, we create a new instance of the finished SwitchExample class, and "
+"set the application running."
+msgstr ""
+"ÎÎÎÎÎÎ, ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ ÏÎÏ ÎÎÎÎÎÎÏÏÎÎÎÎÏ ÎÎÎÏÎÏ "
+"SwitchExample ÎÎÎ ÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ."
 
-#: C/hellognome.js.page:96(p)
+#: C/switch.js.page:259(section/code)
+#, no-wrap
 msgid ""
-"This will look familiar to you if you've worked with object-oriented "
-"JavaScript before. That's right; our whole application is a class called "
-"HelloGNOME. And as you can see, we've given it a property that says what its "
-"name is."
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gio = imports.gi.Gio;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"const SwitchExample = new Lang.Class({\n"
+"    Name: 'Switch Example',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application({\n"
+"            application_id: 'org.example.jsswitch'\n"
+"        });\n"
+"\n"
+"    // Connect 'activate' and 'startup' signals to the callback functions\n"
+"    this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"    this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents window when active\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal creates the menu and builds the UI\n"
+"    _onStartup: function() {\n"
+"        this._initMenus();\n"
+"        this._buildUI ();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function() {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            border_width: 20,\n"
+"            title: \"Animal Creator\"});\n"
+"\n"
+"        // Create the image widget and set its default picture\n"
+"        this._image = new Gtk.Image ({file: \"redfox.png\"});\n"
+"\n"
+"        // Create a label for the first switch\n"
+"        this._flyLabel = new Gtk.Label ({\n"
+"            label: \"Make it fly\",\n"
+"            margin_right: 30});\n"
+"\n"
+"        // Create the first switch and set its default position\n"
+"        this._flySwitch = new Gtk.Switch ({active: false});\n"
+"        this._flySwitch.connect ('notify::active', Lang.bind (this, this._switchFlip));\n"
+"\n"
+"        // Create a label for the second switch\n"
+"        this._birdLabel = new Gtk.Label ({\n"
+"            label: \"Make it a bird\",\n"
+"            margin_right: 30});\n"
+"\n"
+"        // Create the second switch\n"
+"        this._birdSwitch = new Gtk.Switch ({active: false});\n"
+"        this._birdSwitch.connect ('notify::active', Lang.bind (this, this._switchFlip));\n"
+"\n"
+"        // Create a grid for the labels and switches beneath the picture\n"
+"        this._UIGrid = new Gtk.Grid ({\n"
+"            halign: Gtk.Align.CENTER,\n"
+"            valign: Gtk.Align.CENTER,\n"
+"            margin_top: 20});\n"
+"\n"
+"        // Attach the labels and switches to that grid\n"
+"        this._UIGrid.attach (this._flyLabel, 0, 0, 1, 1);\n"
+"        this._UIGrid.attach (this._flySwitch, 1, 0, 1, 1);\n"
+"        this._UIGrid.attach (this._birdLabel, 0, 1, 1, 1);\n"
+"        this._UIGrid.attach (this._birdSwitch, 1, 1, 1, 1);\n"
+"\n"
+"        // Create a master grid to put both the UI and the picture into\n"
+"        this._mainGrid = new Gtk.Grid ({\n"
+"            halign: Gtk.Align.CENTER,\n"
+"            valign: Gtk.Align.CENTER });\n"
+"\n"
+"        // Attach the picture and the UI grid to the master grid\n"
+"        this._mainGrid.attach (this._image, 0, 0, 1, 1);\n"
+"        this._mainGrid.attach (this._UIGrid, 0, 1, 1, 1);\n"
+"\n"
+"        // Add the master grid to the window\n"
+"        this._window.add (this._mainGrid);\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    _switchFlip: function() {\n"
+"\n"
+"        // Change the picture depending on which switches are flipped\n"
+"        if (this._flySwitch.get_active()) {\n"
+"\n"
+"            if (this._birdSwitch.get_active()) this._image.set_from_file (\"muteswan.png\");\n"
+"\n"
+"            else this._image.set_from_file (\"fruitbat.png\");\n"
+"        }\n"
+"\n"
+"        else {\n"
+"\n"
+"            if (this._birdSwitch.get_active()) this._image.set_from_file (\"gentoopenguin.png\");\n"
+"\n"
+"            else this._image.set_from_file (\"redfox.png\");\n"
+"\n"
+"        }\n"
+"\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    _initMenus: function() {\n"
+"\n"
+"        // Build the application's menu so we can have an \"About\" button\n"
+"        let menu = new Gio.Menu();\n"
+"        menu.append(\"About\", 'app.about');\n"
+"        menu.append(\"Quit\",'app.quit');\n"
+"        this.application.set_app_menu(menu);\n"
+"\n"
+"        // Bind the \"About\" button to the _showAbout() function\n"
+"        let aboutAction = new Gio.SimpleAction ({ name: 'about' });\n"
+"        aboutAction.connect('activate', Lang.bind(this,\n"
+"            function() {\n"
+"                this._showAbout();\n"
+"            }));\n"
+"        this.application.add_action(aboutAction);\n"
+"\n"
+"        // Bind the \"Quit\" button to the function that closes the window\n"
+"        let quitAction = new Gio.SimpleAction ({ name: 'quit' });\n"
+"        quitAction.connect('activate', Lang.bind(this,\n"
+"            function() {\n"
+"                this._window.destroy();\n"
+"            }));\n"
+"        this.application.add_action(quitAction);\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    _showAbout: function () {\n"
+"\n"
+"        // String arrays of the names of the people involved in the project\n"
+"        var artists = ['Rob Lee http://en.wikipedia.org/wiki/File:Fuzzy_Freddy.png', 'Ken Funakoshi http://en.wikipedia.org/wiki/File:Pygoscelis_papua_-Nagasaki_Penguin_Aquarium_-swimming_underwater-8a.png', 'Shek Graham http://www.flickr.com/photos/shekgraham/127431519/in/photostream/', 'Mindaugas Urbonas http://commons.wikimedia.org/wiki/File:Mute_Swan-Mindaugas_Urbonas.png'];\n"
+"        var authors = [\"GNOME Documentation Team\"];\n"
+"        var documenters = [\"GNOME Documentation Team\"];\n"
+"\n"
+"        // Create the About dialog\n"
+"        let aboutDialog = new Gtk.AboutDialog({\n"
+"            title: \"AboutDialog Example\",\n"
+"            program_name: \"Animal Creator\",\n"
+"            copyright: \"Copyright \\xa9 2012 GNOME Documentation Team\\n\\nRed fox photo licensed CC-By by Rob Lee\\nGentoo penguin photo licensed CC-By-SA by Ken Funakoshi\\nFruit bat photo licensed CC-By by Shek Graham\\nMute swan photo licensed CC-By-SA by Mindaugas Urbonas\\nLinks to the originals are available under Credits.\\n\\nHave you hugged a penguin today?\",\n"
+"            artists: artists,\n"
+"            authors: authors,\n"
+"            documenters: documenters,\n"
+"            website: \"http://developer.gnome.org\",\n";
+"            website_label: \"GNOME Developer Website\" });\n"
+"\n"
+"        // Attach the About dialog to the window\n"
+"        aboutDialog.modal = true;\n"
+"        aboutDialog.transient_for = this._window;\n"
+"\n"
+"        // Show the About dialog\n"
+"        aboutDialog.show();\n"
+"\n"
+"        // Connect the Close button to the destroy signal for the dialog\n"
+"        aboutDialog.connect('response', function() {\n"
+"            aboutDialog.destroy();\n"
+"        });\n"
+"    }\n"
+"\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new SwitchExample ();\n"
+"app.application.run (ARGV);\n"
 msgstr ""
-"ÎÏÏÏ ÎÎ ÎÎÎÏÎÎÎ ÎÎÎÎÎÎ ÏÎ ÏÎÏ ÎÎÎ ÎÏÎÏÎ ÎÎÏÎÎÏÎÎ ÎÎ ÎÎÏÎÎÎÎÎÎÎÎÏÏÏÎÏÎ "
-"JavaScript ÏÏÎÎ. ÎÏÏÏ ÎÎÎÎÎ ÏÏÏÏÏÂ ÏÎÎ ÎÎÏ Î ÎÏÎÏÎÎÎÎ ÎÎÎÎÎ ÎÎÎ ÎÎÎÏÎ ÏÎÏ "
-"ÎÎÎÎÏÎÎ HelloGNOME. ÎÎÎ ÏÏÏÏ ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÏÎ, ÏÎÏ ÎÏÏÎÎÎ ÎÎÎ ÎÎÎÏÏÎÏÎ ÏÎÏ "
-"ÎÎÎÎ ÏÎÎÎ ÎÎÎÎÎ ÏÎ ÏÎÎÎÎ ÏÎÏ."
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gio = imports.gi.Gio;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"const SwitchExample = new Lang.Class({\n"
+"    Name: 'Switch Example',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application({\n"
+"            application_id: 'org.example.jsswitch'\n"
+"        });\n"
+"\n"
+"    // Connect 'activate' and 'startup' signals to the callback functions\n"
+"    this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"    this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents window when active\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal creates the menu and builds the UI\n"
+"    _onStartup: function() {\n"
+"        this._initMenus();\n"
+"        this._buildUI ();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function() {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            border_width: 20,\n"
+"            title: \"Animal Creator\"});\n"
+"\n"
+"        // Create the image widget and set its default picture\n"
+"        this._image = new Gtk.Image ({file: \"redfox.png\"});\n"
+"\n"
+"        // Create a label for the first switch\n"
+"        this._flyLabel = new Gtk.Label ({\n"
+"            label: \"Make it fly\",\n"
+"            margin_right: 30});\n"
+"\n"
+"        // Create the first switch and set its default position\n"
+"        this._flySwitch = new Gtk.Switch ({active: false});\n"
+"        this._flySwitch.connect ('notify::active', Lang.bind (this, this._switchFlip));\n"
+"\n"
+"        // Create a label for the second switch\n"
+"        this._birdLabel = new Gtk.Label ({\n"
+"            label: \"Make it a bird\",\n"
+"            margin_right: 30});\n"
+"\n"
+"        // Create the second switch\n"
+"        this._birdSwitch = new Gtk.Switch ({active: false});\n"
+"        this._birdSwitch.connect ('notify::active', Lang.bind (this, this._switchFlip));\n"
+"\n"
+"        // Create a grid for the labels and switches beneath the picture\n"
+"        this._UIGrid = new Gtk.Grid ({\n"
+"            halign: Gtk.Align.CENTER,\n"
+"            valign: Gtk.Align.CENTER,\n"
+"            margin_top: 20});\n"
+"\n"
+"        // Attach the labels and switches to that grid\n"
+"        this._UIGrid.attach (this._flyLabel, 0, 0, 1, 1);\n"
+"        this._UIGrid.attach (this._flySwitch, 1, 0, 1, 1);\n"
+"        this._UIGrid.attach (this._birdLabel, 0, 1, 1, 1);\n"
+"        this._UIGrid.attach (this._birdSwitch, 1, 1, 1, 1);\n"
+"\n"
+"        // Create a master grid to put both the UI and the picture into\n"
+"        this._mainGrid = new Gtk.Grid ({\n"
+"            halign: Gtk.Align.CENTER,\n"
+"            valign: Gtk.Align.CENTER });\n"
+"\n"
+"        // Attach the picture and the UI grid to the master grid\n"
+"        this._mainGrid.attach (this._image, 0, 0, 1, 1);\n"
+"        this._mainGrid.attach (this._UIGrid, 0, 1, 1, 1);\n"
+"\n"
+"        // Add the master grid to the window\n"
+"        this._window.add (this._mainGrid);\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    _switchFlip: function() {\n"
+"\n"
+"        // Change the picture depending on which switches are flipped\n"
+"        if (this._flySwitch.get_active()) {\n"
+"\n"
+"            if (this._birdSwitch.get_active()) this._image.set_from_file (\"muteswan.png\");\n"
+"\n"
+"            else this._image.set_from_file (\"fruitbat.png\");\n"
+"        }\n"
+"\n"
+"        else {\n"
+"\n"
+"            if (this._birdSwitch.get_active()) this._image.set_from_file (\"gentoopenguin.png\");\n"
+"\n"
+"            else this._image.set_from_file (\"redfox.png\");\n"
+"\n"
+"        }\n"
+"\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    _initMenus: function() {\n"
+"\n"
+"        // Build the application's menu so we can have an \"About\" button\n"
+"        let menu = new Gio.Menu();\n"
+"        menu.append(\"About\", 'app.about');\n"
+"        menu.append(\"Quit\",'app.quit');\n"
+"        this.application.set_app_menu(menu);\n"
+"\n"
+"        // Bind the \"About\" button to the _showAbout() function\n"
+"        let aboutAction = new Gio.SimpleAction ({ name: 'about' });\n"
+"        aboutAction.connect('activate', Lang.bind(this,\n"
+"            function() {\n"
+"                this._showAbout();\n"
+"            }));\n"
+"        this.application.add_action(aboutAction);\n"
+"\n"
+"        // Bind the \"Quit\" button to the function that closes the window\n"
+"        let quitAction = new Gio.SimpleAction ({ name: 'quit' });\n"
+"        quitAction.connect('activate', Lang.bind(this,\n"
+"            function() {\n"
+"                this._window.destroy();\n"
+"            }));\n"
+"        this.application.add_action(quitAction);\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    _showAbout: function () {\n"
+"\n"
+"        // String arrays of the names of the people involved in the project\n"
+"        var artists = ['Rob Lee http://en.wikipedia.org/wiki/File:Fuzzy_Freddy.png', 'Ken Funakoshi http://en.wikipedia.org/wiki/File:Pygoscelis_papua_-Nagasaki_Penguin_Aquarium_-swimming_underwater-8a.png', 'Shek Graham http://www.flickr.com/photos/shekgraham/127431519/in/photostream/', 'Mindaugas Urbonas http://commons.wikimedia.org/wiki/File:Mute_Swan-Mindaugas_Urbonas.png'];\n"
+"        var authors = [\"GNOME Documentation Team\"];\n"
+"        var documenters = [\"GNOME Documentation Team\"];\n"
+"\n"
+"        // Create the About dialog\n"
+"        let aboutDialog = new Gtk.AboutDialog({\n"
+"            title: \"AboutDialog Example\",\n"
+"            program_name: \"Animal Creator\",\n"
+"            copyright: \"Copyright \\xa9 2012 GNOME Documentation Team\\n\\nRed fox photo licensed CC-By by Rob Lee\\nGentoo penguin photo licensed CC-By-SA by Ken Funakoshi\\nFruit bat photo licensed CC-By by Shek Graham\\nMute swan photo licensed CC-By-SA by Mindaugas Urbonas\\nLinks to the originals are available under Credits.\\n\\nHave you hugged a penguin today?\",\n"
+"            artists: artists,\n"
+"            authors: authors,\n"
+"            documenters: documenters,\n"
+"            website: \"http://developer.gnome.org\",\n";
+"            website_label: \"GNOME Developer Website\" });\n"
+"\n"
+"        // Attach the About dialog to the window\n"
+"        aboutDialog.modal = true;\n"
+"        aboutDialog.transient_for = this._window;\n"
+"\n"
+"        // Show the About dialog\n"
+"        aboutDialog.show();\n"
+"\n"
+"        // Connect the Close button to the destroy signal for the dialog\n"
+"        aboutDialog.connect('response', function() {\n"
+"            aboutDialog.destroy();\n"
+"        });\n"
+"    }\n"
+"\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new SwitchExample ();\n"
+"app.application.run (ARGV);\n"
 
-#: C/hellognome.js.page:118(p)
+#: C/switch.js.page:270(item/p)
 msgid ""
-"Here's some code you will more or less copy-and-paste for every JavaScript "
-"application you build. It creates a new Application, and then binds its "
-"activate and startup signals to functions that make the window show itself "
-"and build its user interface, respectively."
+"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.Image.html";
+"\">Gtk.Image</link>"
 msgstr ""
-"ÎÎÎÏ ÎÎÏÎÎÏÏ ÎÏÎÎÎÎÏ ÏÎÏ ÏÎÏÎÏÏÏÏÎÏÎ Î ÎÎÎÏÏÎÏÎ ÎÎ ÎÎÏÎÎÏÎÏÎÏÎ ÎÎÎ ÎÎ "
-"ÎÏÎÎÎÎÎÎÏÎÏÎ ÎÎÎ ÎÎÎÎ ÎÏÎÏÎÎÎÎ JavaScript ÏÎÏ ÎÎÏÎÏÎÎÏÎÎÎÏÎ. ÎÎÎÎÎÏÏÎÎÎ ÎÎÎ "
-"ÎÎÎ ÎÏÎÏÎÎÎÎ ÎÎÎ ÎÏÎÎÏÎ ÏÏÎÎÎÎÎ ÏÎ ÎÎÎÏÎÎÏÎÎÎÎÎÎÎ ÎÎÎ ÎÏÏÎÎÎ ÏÎÎÎÏÎ ÏÎÏ ÎÎ "
-"ÏÏÎÎÏÏÎÏÎÎÏ ÏÎÏ ÎÎÎÎÏÎ ÏÎ ÏÎÏÎÎÏÏÎ ÎÎ ÎÎÏÎÎÎÎÎÏÎÎ ÏÎ ÎÎÎÎ ÎÎÎ ÎÎ "
-"ÎÎÏÎÏÎÎÏÎÎÎÎ ÏÎ ÎÎÎÏÎÏÎ ÏÏÎÏÏÎ ÏÎÏ ÎÎÏÎÏÏÎÎÏÎ."
+"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.Image.html";
+"\">Gtk.Image</link>"
 
-#: C/hellognome.js.page:119(p)
+#: C/switch.js.page:272(item/p)
 msgid ""
-"What does that mean? Well, everything in a GNOME application sends out a "
-"signal when something important happens. A button might send out the clicked "
-"signal when you click on it, for instance. Our job is to connect the signals "
-"to functions which handle them, and make the things that we want to have "
-"happen occur. We do this using each object's connect method, which takes two "
-"arguments: The signal we want to handle, and the Lang.bind function, which "
-"we have to use to tell connect which function we want to have handle the "
-"signal."
+"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.Switch.html";
+"\">Gtk.Switch</link>"
 msgstr ""
-"ÎÎ ÏÎÎÎÎÎÎÎ ÎÏÏÏ; ÎÎÎÏÏÎ, ÏÎ ÎÎÎÎÏÎ ÏÎ ÎÎÎ ÎÏÎÏÎÎÎÎ GNOME ÏÏÎÎÎÎÎ ÎÎÎ ÏÎÎÎ "
-"ÏÏÎÎ ÎÎÏÎ ÏÎÎÎÎÏÎÎÏ ÏÏÎÎÎÎÎÎÎ. ÎÎÎ ÎÎÏÎÏÎ ÎÏÎÏÎÎ ÎÎ ÏÏÎÎÎÎÎ ÏÎ ÏÎÏÎÎÎÎÎ ÏÎÎÎ "
-"ÏÏÎÎ ÏÎ ÏÎÏÎÏÎ, ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ. Î ÎÎÏÎÎÎÎ ÎÎÏ ÎÎÎÎÎ ÎÎ ÏÏÎÎÎÏÎÏÎÎ ÏÎ ÏÎÎÎÏÎ "
-"ÎÎ ÏÎÏ ÏÏÎÎÏÏÎÏÎÎÏ ÏÎÏ ÏÎÏ ÏÎÎÏÎÎÎÎÏÎÎ ÎÎÎ ÎÎ ÎÎÎÎÏÎÎ ÏÎ ÏÏÎÎÎÎÏÎ ÏÎÏ "
-"ÎÎÎÎÏÎÎ ÎÎ ÎÏÎÏÎ ÏÏÎÎÎÎ ÎÎ ÎÎÎÎÏÎ. ÎÎ ÎÎÎÎÏÎÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ ÎÎÎÎÎÎ "
-"ÏÏÎÎÎÏÎÏ ÎÎÎÎ ÎÎÏÎÎÎÎÎÎÎÎÏ, ÏÎÏ ÏÎÎÏÎÎÎ ÎÏÎ ÎÏÎÏÎÎÏÎ: ÎÎ ÏÎÎÎ ÏÎÏ ÎÎÎÎÏÎÎ ÎÎ "
-"ÏÎÎÏÎÏÏÎÏÎÎ ÎÎÎ ÏÎ ÏÏÎÎÏÏÎÏÎ Lang.bind, ÏÎÏ ÏÏÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÎÎ "
-"ÎÎ ÏÎÏÎÎ ÏÏÎ ÏÏÎÎÎÏÎ ÏÎÎÎ ÏÏÎÎÏÏÎÏÎ ÎÎÎÎÏÎÎ ÎÎ ÏÎÎÏÎÏÏÎÎ ÏÎ ÏÎÎÎ."
+"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.Switch.html";
+"\">Gtk.Switch</link>"
+
+#: C/switch.py.page:7(info/title)
+msgctxt "text"
+msgid "Switch (Python)"
+msgstr "ÎÎÎÎÏÏÏÎÏ (Python)"
 
-#: C/hellognome.js.page:120(p)
+#: C/switch.py.page:29(page/p)
+msgid "This Switch makes the title appears and disappear."
+msgstr "ÎÏÏÏÏ Î ÎÎÎÎÏÏÏÎÏ ÎÎÎÎÎ ÏÎÎ ÏÎÏÎÎ ÎÎ ÎÎÏÎÎÎÎÎÏÎÎ ÎÎÎ ÎÎ ÎÎÎÏÎÎÎÎÎÏÎÎ."
+
+#: C/switch.py.page:36(section/code)
+#, no-wrap
 msgid ""
-"In this case, we want _onActivate to handle the activate signal, and "
-"_onStartup to handle the startup signal. _onActivate just tells the window "
-"to present itself; so basically, whenever you <keyseq><key>Alt</"
-"key><key>Tab</key></keyseq> to the application it appears, like you would "
-"expect it to. _onStartup calls _buildUI, which is the function that creates "
-"our user interface and is the next part that we will look at."
+"from gi.repository import Gtk\n"
+"import sys\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    # a window\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"Switch Example\", application=app)\n"
+"        self.set_default_size(300, 100)\n"
+"        self.set_border_width(10)\n"
+"\n"
+"        # a switch\n"
+"        switch = Gtk.Switch()\n"
+"        # turned on by default\n"
+"        switch.set_active(True)\n"
+"        # connect the signal notify::active emitted by the switch\n"
+"        # to the callback function activate_cb\n"
+"        switch.connect(\"notify::active\", self.activate_cb)\n"
+"\n"
+"        # a label\n"
+"        label = Gtk.Label()\n"
+"        label.set_text(\"Title\")\n"
+"\n"
+"        # a grid to allocate the widgets\n"
+"        grid = Gtk.Grid()\n"
+"        grid.set_column_spacing (10);\n"
+"        grid.attach (label, 0, 0, 1, 1);\n"
+"        grid.attach (switch, 1, 0, 1, 1);\n"
+"\n"
+"        # add the grid to the window\n"
+"        self.add(grid)\n"
+"\n"
+"    # Callback function. Since the signal is notify::active\n"
+"    # we need the argument 'active'\n"
+"    def activate_cb(self, button, active):\n"
+"        # if the button (i.e. the switch) is active, set the title\n"
+"        # of the window to \"Switch Example\"\n"
+"        if button.get_active():\n"
+"            self.set_title(\"Switch Example\")\n"
+"        # else, set it to \"\" (empty string)\n"
+"        else:\n"
+"            self.set_title(\"\")\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
 msgstr ""
-"ÎÎ ÎÏÏÎÎ ÏÎÎ ÏÎÏÎÏÏÏÏÎ, ÎÎÎÎÏÎÎ ÏÎÎ _onActivate ÎÎ ÏÎÎÏÎÏÏÎÎ ÏÎ "
-"ÎÎÎÏÎÎÏÎÎÎÎÎÎÎ ÏÎÎÎ ÎÎÎ ÏÎ _onStartup ÎÎ ÏÎÎÏÎÏÏÎÎ ÏÎ ÎÏÏÎÎÏ ÏÎÎÎ. Î "
-"_onActivate ÎÏÎÎ ÎÎÎÎ ÏÏÎ ÏÎÏÎÎÏÏÎ ÎÎ ÏÎÏÎÏÏÎÎÏÎÎ ÏÎÎ ÎÎÏÏÏÎ ÏÎÏÂ ÎÏÏÎ "
-"ÎÎÏÎÎÎ, ÏÏÎÏÎ ÏÎÏÎÏÎ <keyseq><key>Alt</key><key>Tab</key></keyseq> ÏÏÎÎ "
-"ÎÏÎÏÎÎÎÎ ÏÎÎÎÎÏÎÎ, ÏÏÏÏ ÎÎ ÏÎ ÏÎÏÎÎÎÎÎÏÎ. Î _onStartup ÎÎÎÎÎ _buildUI, ÏÎÏ "
-"ÎÎÎÎÎ Î ÏÏÎÎÏÏÎÏÎ ÏÎÏ ÎÎÎÎÎÏÏÎÎÎ ÏÎ ÎÎÎÏÎÏÎ ÏÏÎÏÏÎ ÎÎÏ ÎÎÎ ÎÎÎÎÎ ÏÎ ÎÏÏÎÎÎÎ "
-"ÎÎÏÎÏ ÏÎÏ ÎÎ ÎÎÎÏÎÎÎÏÎÎ."
+"from gi.repository import Gtk\n"
+"import sys\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    # a window\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"Switch Example\", application=app)\n"
+"        self.set_default_size(300, 100)\n"
+"        self.set_border_width(10)\n"
+"\n"
+"        # a switch\n"
+"        switch = Gtk.Switch()\n"
+"        # turned on by default\n"
+"        switch.set_active(True)\n"
+"        # connect the signal notify::active emitted by the switch\n"
+"        # to the callback function activate_cb\n"
+"        switch.connect(\"notify::active\", self.activate_cb)\n"
+"\n"
+"        # a label\n"
+"        label = Gtk.Label()\n"
+"        label.set_text(\"Title\")\n"
+"\n"
+"        # a grid to allocate the widgets\n"
+"        grid = Gtk.Grid()\n"
+"        grid.set_column_spacing (10);\n"
+"        grid.attach (label, 0, 0, 1, 1);\n"
+"        grid.attach (switch, 1, 0, 1, 1);\n"
+"\n"
+"        # add the grid to the window\n"
+"        self.add(grid)\n"
+"\n"
+"    # Callback function. Since the signal is notify::active\n"
+"    # we need the argument 'active'\n"
+"    def activate_cb(self, button, active):\n"
+"        # if the button (i.e. the switch) is active, set the title\n"
+"        # of the window to \"Switch Example\"\n"
+"        if button.get_active():\n"
+"            self.set_title(\"Switch Example\")\n"
+"        # else, set it to \"\" (empty string)\n"
+"        else:\n"
+"            self.set_title(\"\")\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
+
+#: C/switch.py.page:40(section/title)
+msgid "Useful methods for a Switch widget"
+msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÎÎÎÏÏÏÎ"
 
-#: C/hellognome.js.page:121(p)
+#: C/switch.py.page:48(item/p)
 msgid ""
-"When you copy and paste the above code for your own applications, be sure to "
-"change the name to a unique one each time."
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkSwitch.html";
+"\">GtkSwitch</link>"
 msgstr ""
-"ÎÏÎÎ ÎÎÏÎÎÏÎÏÎÏÎ ÎÎÎ ÎÏÎÎÎÎÎÎÏÎ ÏÎÎ ÏÎÏÎÏÎÎÏ ÎÏÎÎÎÎ ÎÎÎ ÏÎÏ ÎÎÎÎÏ ÏÎÏ "
-"ÎÏÎÏÎÎÎÎÏ, ÎÎÎÎÎÏÎÎÎÏÎ ÎÎ ÎÎÎÎÎÎÏÎ ÏÎ ÏÎÎÎÎ ÏÎ ÎÎÎ ÎÎÎÎÎÎÎÏ ÎÎÎÎ ÏÎÏÎ."
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkSwitch.html";
+"\">GtkSwitch</link>"
 
-#: C/hellognome.js.page:125(title)
-msgid "Designing our window's UI"
-msgstr "ÎÏÎÎÎÎÏÎ ÏÎÏ UI ÏÎÏ ÏÎÏÎÎÏÏÎÏ ÎÎÏ"
+#: C/switch.vala.page:7(info/title)
+msgctxt "text"
+msgid "Switch (Vala)"
+msgstr "ÎÎÎÎÏÏÏÎÏ (Vala)"
 
-#: C/hellognome.js.page:126(p)
-msgid ""
-"In the _buildUI function, we're going to tell GNOME about our window and the "
-"things inside it, one at a time. After that, we're going to connect "
-"everything together and put it all on display."
-msgstr ""
-"ÎÏÎ ÏÏÎÎÏÏÎÏÎ _buildUI, ÏÏÏÎÎÎÏÎÎ ÎÎ ÏÎÏÎÎ ÏÏÎ GNOME ÎÎÎ ÏÎ ÏÎÏÎÎÏÏÏ ÎÎÏ ÎÎÎ "
-"ÏÎ ÏÏÎÎÎÎÏÎ ÎÎÏÎ ÏÎÏ, ÎÎÎ ÏÎ ÏÎÏÎ. ÎÎÏÎ ÎÏÏ ÎÏÏÏ, ÏÏÏÎÎÎÏÎÎ ÎÎ ÏÏÎÎÎÏÎÏÎÎ ÏÎ "
-"ÎÎÎÎÏÎ ÎÎÎÎ ÎÎÎ ÎÎ ÏÎ ÎÎÎÎÏÎÎ ÏÎÎ ÏÎ ÏÏÎÎÎÎÎ."
+#: C/switch.vala.page:28(page/p)
+msgid "This Switch toggles the title."
+msgstr "ÎÏÏÏÏ Î ÎÎÎÎÏÏÏÎÏ ÎÎÎÎÎÎÏÏÎÎ ÏÎÎ ÏÎÏÎÎ."
 
-#: C/hellognome.js.page:141(p)
+#: C/switch.vala.page:30(page/code)
+#, no-wrap
 msgid ""
-"The first object we create is an ApplicationWindow. It needs a title to go "
-"in the title bar, and its application property needs to be the application "
-"that we created, above. Beyond that, there are various ways of customizing "
-"how it looks, which the <link xref=\"GtkApplicationWindow.js"
-"\">ApplicationWindow</link> reference page will go into more detail about. "
-"As you can see here, we gave it a default height and width (measured in "
-"pixels), and told GNOME we want our window to appear in the center of the "
-"screen."
+"class MyWindow : Gtk.ApplicationWindow {\n"
+"\n"
+"\tinternal MyWindow (MyApplication app) {\n"
+"\t\tObject (application: app, title: \"Switch Example\");\n"
+"\n"
+"\t\tthis.set_default_size (300, 100);\n"
+"\t\tthis.border_width = 10;\n"
+"\n"
+"\t\tvar label = new Gtk.Label (\"Title\");\n"
+"\t\tvar switcher = new Gtk.Switch ();\n"
+"\n"
+"\t\tswitcher.set_active (true);\n"
+"\n"
+"\t\tswitcher.notify[\"active\"].connect (switcher_cb);\n"
+"\n"
+"\t\tvar grid = new Gtk.Grid ();\n"
+"\t\tgrid.set_column_spacing (10);\n"
+"\t\tgrid.attach (label, 0, 0, 1, 1);\n"
+"\t\tgrid.attach (switcher, 1, 0, 1, 1);\n"
+"\n"
+"\t\tthis.add (grid);\n"
+"\t}\n"
+"\n"
+"\tvoid switcher_cb (Object switcher, ParamSpec pspec) {\n"
+"\t\tif ((switcher as Gtk.Switch).get_active())\n"
+"\t\t\tthis.set_title (\"Switch Example\");\n"
+"\t\telse\n"
+"\t\t\tthis.set_title (\"\");\n"
+"\t}\n"
+"}\n"
+"\n"
+"class MyApplication : Gtk.Application {\n"
+"\tprotected override void activate () {\n"
+"\n"
+"\t\tvar window = new MyWindow (this);\n"
+"\t\twindow.show_all (); //show all the things\n"
+"\t}\n"
+"\n"
+"\tinternal MyApplication () {\n"
+"\t\tObject (application_id: \"org.example.checkbutton\");\n"
+"\t}\n"
+"}\n"
+"\n"
+"int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
 msgstr ""
-"ÎÎ ÏÏÏÏÎ ÎÎÏÎÎÎÎÎÎÎÎ ÏÎÏ ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎÎÎ ÎÎÎ ApplicationWindow. "
-"ÎÏÎÎÎÎÎÏÎÎ ÎÎÎÎ ÏÎÏÎÎ ÎÎ ÎÏÎÎ ÏÏÎ ÎÏÎÎÎÎ ÏÎÏÎÎÏ ÎÎÎ Î ÎÎÎÏÏÎÏÎ ÎÏÎÏÎÎÎÎÏ ÏÎÏ "
-"ÏÏÎÎÎÎÎÏÎÎ ÎÎ ÎÎÎÎÎ Î ÎÏÎÏÎÎÎÎ ÏÎÏ ÎÎÎÎÎÏÏÎÎÏÎÎÎ, ÏÎÏÎÏÎÎÏ. ÎÎÏÎ ÎÏÏ ÎÏÏÏ, "
-"ÏÏÎÏÏÎÏÎ ÏÎÎÎÎÎÎÎ ÏÏÏÏÎÎ ÏÏÎÏÎÏÎÎÎÎÏ ÏÎÏ ÎÎÏÎÎÎÏÎÏ ÏÎÏ, ÏÎÏ Î ÏÎÎÎÎÎ "
-"ÎÎÎÏÎÏÎÏ <link xref=\"GtkApplicationWindow.js\">ApplicationWindow</link> ÎÎ "
-"ÎÏÎÎ ÏÎ ÏÎÏÎÏÏÏÏÎÏÎÏ ÎÎÏÏÎÎÎÏÎÎÎÏ. ÎÏÏÏ ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÏÎ ÎÎÏ, ÏÎÏ ÎÎÎÎÏÎÎ "
-"ÎÎÎ ÏÏÎÎÏÎÎÎÎÎÎÎÎ ÏÏÎÏ ÎÎÎ ÏÎÎÏÎÏ (ÎÎÏÏÎÎÎÎÎ ÏÎ ÎÎÎÎÎÎÏÏÎÎÏÎÎÎ) ÎÎÎ ÎÎÎÎ ÏÏÎ "
-"GNOME ÏÏÎ ÎÎÎÎÏÎÎ ÏÎ ÏÎÏÎÎÏÏÎ ÎÎÏ ÎÎ ÎÎÏÎÎÎÏÏÎÎ ÏÏÎ ÎÎÎÏÏÎ ÏÎÏ ÎÎÏÎÎÏ."
+"class MyWindow : Gtk.ApplicationWindow {\n"
+"\n"
+"\tinternal MyWindow (MyApplication app) {\n"
+"\t\tObject (application: app, title: \"Switch Example\");\n"
+"\n"
+"\t\tthis.set_default_size (300, 100);\n"
+"\t\tthis.border_width = 10;\n"
+"\n"
+"\t\tvar label = new Gtk.Label (\"Title\");\n"
+"\t\tvar switcher = new Gtk.Switch ();\n"
+"\n"
+"\t\tswitcher.set_active (true);\n"
+"\n"
+"\t\tswitcher.notify[\"active\"].connect (switcher_cb);\n"
+"\n"
+"\t\tvar grid = new Gtk.Grid ();\n"
+"\t\tgrid.set_column_spacing (10);\n"
+"\t\tgrid.attach (label, 0, 0, 1, 1);\n"
+"\t\tgrid.attach (switcher, 1, 0, 1, 1);\n"
+"\n"
+"\t\tthis.add (grid);\n"
+"\t}\n"
+"\n"
+"\tvoid switcher_cb (Object switcher, ParamSpec pspec) {\n"
+"\t\tif ((switcher as Gtk.Switch).get_active())\n"
+"\t\t\tthis.set_title (\"Switch Example\");\n"
+"\t\telse\n"
+"\t\t\tthis.set_title (\"\");\n"
+"\t}\n"
+"}\n"
+"\n"
+"class MyApplication : Gtk.Application {\n"
+"\tprotected override void activate () {\n"
+"\n"
+"\t\tvar window = new MyWindow (this);\n"
+"\t\twindow.show_all (); //show all the things\n"
+"\t}\n"
+"\n"
+"\tinternal MyApplication () {\n"
+"\t\tObject (application_id: \"org.example.checkbutton\");\n"
+"\t}\n"
+"}\n"
+"\n"
+"int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
 
-#: C/hellognome.js.page:150(p)
+#: C/switch.vala.page:35(item/p)
 msgid ""
-"Remember how we imported Webkit right at the start? Here we're creating a "
-"new instance of a Webkit class called a WebView, which is more or less a "
-"browser window you can put inside of your app. After that, we then give it "
-"the URI that we want it to load when the application starts up."
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Switch.html\";>Gtk.Switch</"
+"link>"
 msgstr ""
-"ÎÎ ÎÏÎÎÏÏÎ ÏÏÏ ÎÎÏÎÎÎÎÎ ÏÎ Webkit ÎÎÎÎÎ ÏÏÎÎ ÎÏÏÎ. ÎÎÏ ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ ÎÎÎ "
-"ÏÏÎÎÎÎÏÏÏÏÎ ÏÎÏ ÎÎÎÏÎÏ Webkit ÏÎÏ ÎÎÎÎÏÎÎ ÎÎÎ WebView, ÏÎÏ ÎÎÎÎÎ ÏÎÏÎÏÏÏÏÎÏÎ "
-"Î ÎÎÎÏÏÎÏÎ ÎÎÎ ÏÎÏÎÎÏÏÎ ÏÎÏÎÎÎÎÏÎ ÏÏÎÏ ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÎÏÎ ÎÎÏÎ ÏÎÎ ÎÏÎÏÎÎÎÎ "
-"ÏÎÏ. ÎÎÏÎ ÎÏÏ ÎÏÏÏ, ÏÎÏ ÎÎÎÎÏÎÎ ÎÏÎÎÏÎ ÏÎÎ URI ÏÎÏ ÎÎÎÎÏÎÎ ÎÎ ÏÎÏÏÏÏÎÎ ÏÏÎÎ "
-"Î ÎÏÎÏÎÎÎÎ ÎÎÎÎÎÎ."
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Switch.html\";>Gtk.Switch</"
+"link>"
 
-#: C/hellognome.js.page:151(p)
-msgid ""
-"We <em>could</em> just give it a web URI, like <link href=\"http://gnome.org";
-"\">http://gnome.org</link>. Instead, here we use a couple of GLib helper "
-"functions to tell the WebView where our <file>hellognome.html</file> file "
-"is. GLib.get_current_dir returns the directory that our app's running in, "
-"and GLib.filename_to_uri turns our file's path and filename into a URI that "
-"the WebView's load_uri function understands. (filename_to_uri's second "
-"parameter should be null unless you know what it's used for and have a "
-"reason for changing it.)"
-msgstr ""
-"ÎÎ <em>ÎÏÎÏÎÏÏÎÎÎ</em> ÎÎ ÏÎÏ ÎÏÏÎÏÎÎ ÎÏÎÎ ÎÎÎ URI ÎÏÏÎÏ, ÏÏÏÏ <link href="
-"\"http://gnome.org\";>http://gnome.org</link>. ÎÎÏÎÎÎÏÎ, ÎÎÏ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ "
-"ÎÎÎÎÏ ÎÎÎÎÎÏÎÎÎÏ ÏÏÎÎÏÏÎÏÎÎÏ ÏÎÏ GLib ÎÎÎ ÎÎ ÏÎÏÎÎ ÏÏÎ WebView ÏÎÏ ÎÎÎÎÎ ÏÎ "
-"ÎÏÏÎÎÎ ÎÎÏ <file>hellognome.html</file>. Î GLib.get_current_dir ÎÏÎÏÏÏÎÏÎÎ "
-"ÏÎÎ ÎÎÏÎÎÎÎÎ ÏÎÏ ÎÎÏÎÎÎÎÏÎÎ Î ÎÏÎÏÎÎÎÎ ÎÎÏ ÎÎÎ ÏÎ GLib.filename_to_uri "
-"ÎÏÎÏÏÏÎÏÎÎ ÏÎ ÎÎÎÎÏÎÎÎ ÏÎÏ ÎÏÏÎÎÎÏ ÎÎÏ ÎÎÎ ÏÎ ÏÎÎÎÎ ÎÏÏÎÎÎÏ ÏÎ ÎÎÎ URI ÏÎÏ Î "
-"ÏÏÎÎÏÏÎÏÎ load_uri ÏÎÏ WebView ÎÎÏÎÎÎÎÎÎÎÎÎ. (Î ÎÎÏÏÎÏÎ ÏÎÏÎÎÎÏÏÎÏ "
-"filename_to_uri's ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎ ÎÎÎÎÎ ÎÎÏÏÏ ÎÎÎ ÎÎÏÎÏÎ ÏÎ ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ "
-"ÎÎÎ ÎÏÎÏÎ ÎÎÎÎ ÎÏÎÎ ÎÎ ÏÎ ÎÎÎÎÎÎÏÎ.)"
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/textview.c.page:26(media) C/textview.py.page:37(media)
+#: C/textview.vala.page:26(media)
+msgctxt "_"
+msgid ""
+"external ref='media/textview.png' md5='049e859ed1af2d7c93d8cb5cfd9f7792'"
+msgstr ""
+"external ref='media/textview.png' md5='049e859ed1af2d7c93d8cb5cfd9f7792'"
+
+#: C/textview.c.page:7(info/title)
+msgctxt "text"
+msgid "TextView (C)"
+msgstr "TextView (C)"
 
-#: C/hellognome.js.page:162(p)
-msgid ""
-"Each window can hold one, and only one, widget. Normally, we'd use a "
-"container widget like a <link xref=\"grid.js\">Grid</link> to put multiple "
-"widgets into, then use the window's add function to add the Grid to it. "
-"Here, we just need the WebView, so that's all we add to the window. After "
-"that, as the last part of the _buildUI function that creates our window, we "
-"tell the window to show itself and its contents."
-msgstr ""
-"ÎÎÎÎ ÏÎÏÎÎÏÏÎ ÎÏÎÏÎÎ ÎÎ ÎÏÎÏÎÏÎÎ ÎÎÎ ÎÎÎ ÎÏÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ. "
-"ÎÎÎÎÎÎÎÎ, ÎÎ ÏÏÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÎÎÎ ÏÎÏÎÎÎÏÎ ÎÏÎÏÎÎÎÏ ÏÏÏÏÎÏÎÎÎÏ "
-"ÏÏÏÏ ÎÎÎ <link xref=\"grid.js\">ÏÎÎÎÎÎ</link> ÎÎÎ ÎÎ ÎÎÎÎÏÎÎ ÏÎÎÎÎÏÎÎ "
-"ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÏÎ ÎÏÏÏ, ÎÏÎÎÏÎ ÏÏÎÏÎÎÎÏÎÎÎÏÏÎ ÏÎ ÏÏÎÎÏÏÎÏÎ ÏÏÎÏÎÎÎÎÏ "
-"ÏÎÏÎÎÏÏÎÏ ÎÎÎ ÎÎ ÏÏÎÏÎÎÏÎÏÎ ÏÎ ÏÎÎÎÎÎ ÏÎ ÎÏÏÏ. ÎÎÏ, ÏÏÎÏÎÎÏÎÏÎÎ ÎÏÎÎ ÏÎÎ "
-"WebView, ÎÏÏÎ ÏÏÏÎ ÎÎ ÎÎÎÎÎ ÏÏÎ ÏÏÎÏÎÎÏÎÏÎÎ ÏÏÎ ÏÎÏÎÎÏÏÎ. ÎÎÏÎ ÎÏÏ ÎÏÏÏ, ÏÏ "
-"ÏÎ ÏÎÎÎÏÏÎÎÎ ÎÎÏÎÏ ÏÎÏ ÏÏÎÎÏÏÎÏÎÏ _buildUI ÏÎÏ ÎÎÎÎÎÏÏÎÎÎ ÏÎ ÏÎÏÎÎÏÏÎ ÎÎÏ, "
-"ÎÎÎÎ ÏÏÎ ÏÎÏÎÎÏÏÎ ÎÎ ÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÎÏÏÏÎ ÏÎÏ ÎÎÎ ÏÎ ÏÎÏÎÎÏÏÎÎÎÎ ÏÎÏ."
+#: C/textview.c.page:17(info/desc) C/textview.vala.page:17(info/desc)
+msgid "Widget which displays a GtkTextBuffer"
+msgstr "ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÏÎÏ ÎÎÏÎÎÎÎÎÎ ÎÎÎ GtkTextBuffer"
 
-#: C/hellognome.js.page:168(p)
-msgid ""
-"Finally, we create a new instance of our HelloGNOME class, and tell GNOME to "
-"run it."
-msgstr ""
-"ÎÎÎÎÎÎ, ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ ÎÎÎ ÏÏÎÎÎÎÏÏÏÏÎ ÏÎÏ ÎÎÎÏÎÏ HelloGNOME ÎÎÎ ÎÎÎÎ ÏÏÎ "
-"GNOME ÎÎ ÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ."
+#: C/textview.c.page:20(page/title) C/textview.vala.page:20(page/title)
+msgid "TextView widget"
+msgstr "ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ TreeView"
 
-#: C/hellognome.js.page:172(title)
-msgid "Running your GNOME application"
-msgstr "ÎÎÏÎÎÎÏÎ ÏÎÏ ÎÏÎÏÎÎÎÎÏ ÏÎÏ GNOME"
+#: C/textview.c.page:21(note/p) C/textview.py.page:31(note/p)
+#: C/textview.vala.page:21(note/p)
+msgid "If we press \"enter\", we have a new line."
+msgstr "ÎÎÎ ÏÎÏÎÏÎÏÎ \"enter\", ÎÏÎÏÎÎ ÎÎÎ ÎÏÎÎÎÎ."
 
-#: C/hellognome.js.page:174(p)
+#: C/textview.c.page:22(note/p) C/textview.vala.page:22(note/p)
 msgid ""
-"Now that we've created our first GNOME application, it's time to test it "
-"out! You don't need to compile your app or install any special software for "
-"this; GNOME has gjs built in, to let it run GNOME Shell. Just save "
-"<file>hellognome.html</file> and our actual application, <file>hellognome."
-"js</file>, to a directory you can get to with the terminal. (They usually "
-"open onto your home directory, the one that's called by your username.) "
-"After that, open a terminal, go there, and type:"
+"If we press \"enter\" more times then there are lines in the default sized "
+"window, then a vertical scrollbar appears."
 msgstr ""
-"ÎÏÏÎ ÏÎÏ ÎÏÎÏÎÎ ÎÎÎÎÎÏÏÎÎÏÎÎ ÏÎÎ ÏÏÏÏÎ ÎÎÏ ÎÏÎÏÎÎÎÎ GNOME, ÎÎÎÎÎ ÎÎÎÏÏÏ ÎÎ "
-"ÏÎ ÎÎÎÎÎÎÏÎÏÎÎ! ÎÎÎ ÏÏÎÎÎÎÎÏÎÎ ÎÎ ÎÎÏÎÎÎÏÏÏÎÏÎÏÎ ÏÎÎ ÎÏÎÏÎÎÎÎ ÏÎÏ Î ÎÎ "
-"ÎÎÎÎÏÎÏÏÎÏÎÏÎ ÎÏÎÎÎÎÎÏÎÏÎ ÎÎÎÎÎÏ ÎÎÎÎÏÎÎÎÏ ÎÎÎ ÎÏÏÏÂ ÏÎ GNOME ÎÏÎÎ "
-"ÎÎÏÏÎÎÏÏÎÎÎÎ ÏÎ gjs ÎÎÎ ÎÎ ÎÏÎÏÎÏÎÏÎ ÎÎ ÎÎÏÎÎÎÏÎÏÎ ÏÎ ÎÎÎÏÏÎÏ GNOME. ÎÏÎÎ "
-"ÎÏÎÎÎÎÎÏÏÏÎ ÏÎ <file>hellognome.html</file> ÎÎÎ ÏÎÎ ÎÎÎÏÎÎ ÎÎÏ ÎÏÎÏÎÎÎÎ, "
-"<file>hellognome.js</file>, ÏÎ ÎÎÎÎ ÎÎÏÎÎÎÎÎ ÏÎÏ ÎÏÎÏÎÎÏÎ ÎÎ ÏÎÏÎÏÎ ÎÎ ÏÎ "
-"ÏÎÏÎÎÏÎÎÏ. (ÎÏÎÎÎÏÏ ÎÎÎÎÎÎÏÎ ÏÏÎÎ ÏÏÎÏÏÏÎÎÏ ÏÎÏ ÎÎÏÎÎÎÎÎ, ÎÏÏÏÎ ÏÎÏ "
-"ÎÎÎÎÎÎÎÏÎÎ ÎÎ ÏÎ ÏÎÎÎÎ ÏÎÏ ÏÎÏ ÏÏÎÏÏÎ.) ÎÎÏÎ ÎÏÏ ÎÏÏÏ, ÎÎÎÎÎÏÎ ÎÎÎ "
-"ÏÎÏÎÎÏÎÎÏ, ÏÎÎÎÎÎÎÏÎ ÎÎÎÎ ÎÎÎ ÏÎÎÎÏÏÎÎÎÎÎÏÏÎ:"
+"ÎÎÎ ÏÎÏÎÏÎÏÎÎ \"enter\" ÏÎÏÎÏÏÏÏÎÏÎÏ ÏÎÏÎÏ ÏÏÏÎ ÏÏÎÏÏÎÏÎ ÎÏÎÎÎÎÏ ÏÏÎ "
+"ÏÏÎÎÏÎÎÎÎÎÎÎÎ ÎÎÎÎÎÎÏ ÏÎÏÎÎÏÏÎÏ, ÎÎÏÎ ÎÎÏÎÎÎÎÎÏÎÎ Î ÎÎÎÎÏÎ ÎÏÎÎÎÎ ÎÏÎÎÏÎÏ"
 
-#: C/hellognome.js.page:175(screen)
-#, no-wrap
-msgid " <output style=\"prompt\">$ </output>gjs hellognome.js "
-msgstr " <output style=\"prompt\">$ </output>gjs hellognome.js "
+#: C/textview.c.page:23(note/p) C/textview.vala.page:23(note/p)
+msgid ""
+"If we write a long sentence, the text will wrap breaking lines between words."
+msgstr ""
+"ÎÎÎ ÎÏÎÏÎÏÎÎ ÎÎÎ ÎÎÎÎÎÎ ÏÏÏÏÎÏÎ, ÏÎ ÎÎÎÎÎÎÎ ÎÎ ÎÎÎÎÎÏÎÏÎÎÎ ÎÎÎÎÏÏÏÎÎÏÎÏ ÏÎÏ "
+"ÎÏÎÎÎÎÏ ÎÎÏÎÎÏ ÏÏÎ ÎÎÎÎÏÎ."
 
-#: C/hellognome.js.page:176(p)
+#: C/textview.c.page:24(note/p)
 msgid ""
-"You should see more or less the same screenshot as before, with a button "
-"that you can click to make a short message appear."
+"If we have a loooooooooooooooooooooooooooooooooooong (that was long) word, "
+"a* horizontal scrollbar will appear."
 msgstr ""
-"ÎÎ ÏÏÎÏÎÎ ÎÎ ÎÎÎÏÎ ÏÎÎÏ ÎÎÏÏ ÏÎ ÎÎÎÎ ÏÏÎÎÎÎÏÏÏÏÎ ÏÏÏÏ ÏÏÎÎ, ÎÎ ÎÎÎ ÎÎÏÎÏÎ "
-"ÏÏÎÏ ÎÏÎÏÎÎÏÎ ÎÎ ÏÎÏÎÏÎÏÎ ÎÎÎ ÎÎ ÏÏÎÎÎÎÎÏÎÏÎ ÏÎÎ ÎÎÏÎÎÎÏÎ ÎÎÏÏ ÏÏÎÏÎÎÎÏ "
-"ÎÎÎÏÎÎÏÎÏ."
+"ÎÎÎ ÎÏÎÏÎÎ ÎÎÎ ÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎ ÎÎÎÎ (ÏÎÏ ÎÎÎÎÎ "
+"ÎÎÎÎÎÎ), ÎÎÎ* ÎÏÎÎÏÎÏÎÎ ÎÏÎÎÎÎ ÎÏÎÎÏÎÏ ÎÎ ÎÎÏÎÎÎÏÏÎÎ."
 
-#: C/hellognome.js.page:179(p)
-msgid "You can use the terminal command"
-msgstr "ÎÏÎÏÎÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÏÎÎ ÎÎÏÎÎÎ ÏÎÏÎÎÏÎÎÎÏ"
+#: C/textview.c.page:27(page/p) C/textview.vala.page:27(page/p)
+msgid "This is an example of Gtk.TextView"
+msgstr "ÎÏÏÏ ÎÎÎÎÎ ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ ÏÎÏ Gtk.TextView"
 
-#: C/hellognome.js.page:180(screen)
+#: C/textview.c.page:29(page/code)
 #, no-wrap
-msgid " <output style=\"prompt\">$ </output>cd <var>(directory name)</var> "
-msgstr " <output style=\"prompt\">$ </output>cd <var>(directory name)</var> "
-
-#: C/hellognome.js.page:181(p)
 msgid ""
-"to navigate between directories inside the Terminal, in order to get to "
-"where you saved the files. There is also an extension for Nautilus, GNOME's "
-"file manager, which lets you right-click anywhere inside it to open a "
-"terminal window right there. Check the app you use to install new software "
-"(like Add/Remove Programs or the Software Center) for it."
+"\n"
+"#include &lt;gtk/gtk.h&gt;\n"
+"\n"
+"\n"
+"\n"
+"static void\n"
+"activate (GtkApplication *app,\n"
+"          gpointer        user_data)\n"
+"{\n"
+"  /* Declare variables */\n"
+"  GtkWidget *window;\n"
+"  GtkWidget *text_view;\n"
+"  GtkWidget *scrolled_window;\n"
+"\n"
+"  GtkTextBuffer *buffer;\n"
+"\n"
+"\n"
+"  /* Create a window with a title, and a default size */\n"
+"  window = gtk_application_window_new (app);\n"
+"  gtk_window_set_title (GTK_WINDOW (window), \"TextView Example\");\n"
+"  gtk_window_set_default_size (GTK_WINDOW (window), 220, 200);\n"
+"\n"
+"\n"
+"  /* The text buffer represents the text being edited */\n"
+"  buffer = gtk_text_buffer_new (NULL);\n"
+"  \n"
+"\n"
+"  /* Text view is a widget in which can display the text buffer. \n"
+"   * The line wrapping is set to break lines in between words.\n"
+"   */\n"
+"  text_view = gtk_text_view_new_with_buffer (buffer);\n"
+"  gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (text_view), GTK_WRAP_WORD); \n"
+"\n"
+"\n"
+"  /* Create the scrolled window. Usually NULL is passed for both parameters so \n"
+"   * that it creates the horizontal/vertical adjustments automatically. Setting \n"
+"   * the scrollbar policy to automatic allows the scrollbars to only show up \n"
+"   * when needed. \n"
+"   */\n"
+"  scrolled_window = gtk_scrolled_window_new (NULL, NULL);\n"
+"  gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window), \n"
+"                                  GTK_POLICY_AUTOMATIC, \n"
+"                                  GTK_POLICY_AUTOMATIC); \n"
+"  /* The function directly below is used to add children to the scrolled window \n"
+"   * with scrolling capabilities (e.g text_view), otherwise, \n"
+"   * gtk_scrolled_window_add_with_viewport() would have been used\n"
+"   */\n"
+"  gtk_container_add (GTK_CONTAINER (scrolled_window), \n"
+"                                         text_view);\n"
+"  gtk_container_set_border_width (GTK_CONTAINER (scrolled_window), 5);\n"
+" \n"
+"  \n"
+"  gtk_container_add (GTK_CONTAINER (window), scrolled_window);\n"
+"\n"
+"  gtk_widget_show_all (window);\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"int\n"
+"main (int argc, char **argv)\n"
+"{\n"
+"  GtkApplication *app;\n"
+"  int status;\n"
+"\n"
+"  app = gtk_application_new (\"org.gtk.example\", G_APPLICATION_FLAGS_NONE);\n"
+"  g_signal_connect (app, \"activate\", G_CALLBACK (activate), NULL);\n"
+"  status = g_application_run (G_APPLICATION (app), argc, argv);\n"
+"  g_object_unref (app);\n"
+"\n"
+"  return status;\n"
+"}\n"
 msgstr ""
-"ÎÎÎ ÎÎ ÏÎÏÎÎÎÎÎÎÎÏÎ ÎÎÏÎÎÏ ÎÎÏÎÎÏÎÏÎ ÎÎÏ ÏÎÎ ÏÎÏÎÎÏÎÎÏ, ÎÎÎ ÎÎ ÎÎÎÏÎ ÏÎÏ "
-"ÎÏÎÎÎÎÎÏÏÎÏÎ ÏÎ ÎÏÏÎÎÎ. ÎÏÎÏÏÎÎ ÎÏÎÏÎÏ ÎÎÎ ÎÏÎÎÏÎÏÎ ÎÎÎ ÏÎÎ ÎÎÏÏÎÎÎ, ÏÎÎ "
-"ÎÎÎÏÎÎÏÎÏÏÎ ÎÏÏÎÎÏÎ ÏÎÏ GNOME, ÏÎÏ ÏÎÏ ÎÏÎÏÏÎÏÎÎ ÎÎ ÎÎÎÎ ÎÎÎÎ ÎÏÎÏÎÎÏÎÏÎ "
-"ÎÎÏÎ ÏÎÏ ÎÎ ÎÎÎÎÎÎÏÎ ÎÎÎ ÏÎÏÎÎÏÎÎÏ ÏÎÏÎÎÏÏÎ ÎÎÏÎÎÏÏ ÎÎÎÎ. ÎÎÎÎÎÏÎ ÏÎÎ "
-"ÎÏÎÏÎÎÎÎ ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÎÏÎ ÎÎÎ ÏÎÎ ÎÎÎÎÏÎÏÏÎÏÎ ÎÎÎÏ ÎÎÎÎÏÎÎÎÎÏ (ÏÏÏÏ "
-"ÏÏÎÏÎÎÎÎ/ÎÏÎÎÏÎÏÎ ÏÏÎÎÏÎÎÎÎÏÏÎ ÏÏÎ ÎÎÎÏÏÎ ÎÎÎÎÏÎÎÎÎÏ) ÎÎÎ ÎÏÏÏ."
-
-#: C/hellognome.js.page:186(title) C/03_getting_the_signal.js.page:339(title)
-#: C/02_welcome_to_the_grid.js.page:256(title)
-msgid "What's next?"
-msgstr "ÎÎÎÎ ÎÎÎÎÎ ÏÎ ÎÏÏÎÎÎÎ;"
+"\n"
+"#include &lt;gtk/gtk.h&gt;\n"
+"\n"
+"\n"
+"\n"
+"static void\n"
+"activate (GtkApplication *app,\n"
+"          gpointer        user_data)\n"
+"{\n"
+"  /* Declare variables */\n"
+"  GtkWidget *window;\n"
+"  GtkWidget *text_view;\n"
+"  GtkWidget *scrolled_window;\n"
+"\n"
+"  GtkTextBuffer *buffer;\n"
+"\n"
+"\n"
+"  /* Create a window with a title, and a default size */\n"
+"  window = gtk_application_window_new (app);\n"
+"  gtk_window_set_title (GTK_WINDOW (window), \"TextView Example\");\n"
+"  gtk_window_set_default_size (GTK_WINDOW (window), 220, 200);\n"
+"\n"
+"\n"
+"  /* The text buffer represents the text being edited */\n"
+"  buffer = gtk_text_buffer_new (NULL);\n"
+"  \n"
+"\n"
+"  /* Text view is a widget in which can display the text buffer. \n"
+"   * The line wrapping is set to break lines in between words.\n"
+"   */\n"
+"  text_view = gtk_text_view_new_with_buffer (buffer);\n"
+"  gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (text_view), GTK_WRAP_WORD); \n"
+"\n"
+"\n"
+"  /* Create the scrolled window. Usually NULL is passed for both parameters so \n"
+"   * that it creates the horizontal/vertical adjustments automatically. Setting \n"
+"   * the scrollbar policy to automatic allows the scrollbars to only show up \n"
+"   * when needed. \n"
+"   */\n"
+"  scrolled_window = gtk_scrolled_window_new (NULL, NULL);\n"
+"  gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window), \n"
+"                                  GTK_POLICY_AUTOMATIC, \n"
+"                                  GTK_POLICY_AUTOMATIC); \n"
+"  /* The function directly below is used to add children to the scrolled window \n"
+"   * with scrolling capabilities (e.g text_view), otherwise, \n"
+"   * gtk_scrolled_window_add_with_viewport() would have been used\n"
+"   */\n"
+"  gtk_container_add (GTK_CONTAINER (scrolled_window), \n"
+"                                         text_view);\n"
+"  gtk_container_set_border_width (GTK_CONTAINER (scrolled_window), 5);\n"
+" \n"
+"  \n"
+"  gtk_container_add (GTK_CONTAINER (window), scrolled_window);\n"
+"\n"
+"  gtk_widget_show_all (window);\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"int\n"
+"main (int argc, char **argv)\n"
+"{\n"
+"  GtkApplication *app;\n"
+"  int status;\n"
+"\n"
+"  app = gtk_application_new (\"org.gtk.example\", G_APPLICATION_FLAGS_NONE);\n"
+"  g_signal_connect (app, \"activate\", G_CALLBACK (activate), NULL);\n"
+"  status = g_application_run (G_APPLICATION (app), argc, argv);\n"
+"  g_object_unref (app);\n"
+"\n"
+"  return status;\n"
+"}\n"
 
-#: C/hellognome.js.page:188(p)
-#| msgid ""
-#| "<link xref=\"02_welcome_to_the_grid.js\">Continue on to the next "
-#| "tutorial</link> to learn how to build \"native\" GNOME applications that "
-#| "look and feel like the others, instead of a webview with HTML code "
-#| "inside. Or take a look at some <link xref=\"beginner.js#samples\">code "
-#| "samples,</link> if you'd like to see example code for each Gtk widget."
+#: C/textview.c.page:40(item/p)
 msgid ""
-"<link xref=\"02_welcome_to_the_grid.js\">Continue on to the next tutorial</"
-"link> to learn how to build \"native\" GNOME applications that look and feel "
-"like the others, instead of a webview with HTML code inside. Or take a look "
-"at some <link xref=\"beginner.js#samples\">code samples</link>, if you'd "
-"like to see example code for each Gtk widget."
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkContainer.html";
+"\">GtkContainer</link>"
 msgstr ""
-"<link xref=\"02_welcome_to_the_grid.js\">ÎÏÎÎÏÎÏÏÎ ÎÎ ÏÎ ÎÏÏÎÎÎÎ ÎÎÎÎÎÎ</"
-"link> ÎÎÎ ÎÎ ÎÎÎÎÏÎ ÏÏÏ ÎÎ ÎÎÎÎÏÎÏÎ \"native\" ÎÏÎÏÎÎÎÎÏ GNOME ÏÎÏ ÏÎÎÎÎÎÏÎÎ "
-"ÎÎÎ ÎÎÏÎÎÎÎÎÏÎÎ ÏÏÏÏ ÎÎ ÎÎÎÎÏ, ÎÎÏÎÎÎÏÎ ÎÏÏ ÎÎÎ ÏÏÎÎÎÎÎ ÎÏÏÎÏ ÎÎ ÎÏÎÎÎÎ HTML "
-"ÎÎÏÎ ÏÎÏ. Î ÏÎÎÏÎ ÎÎÎ ÎÎÏÎÎ ÏÎ ÎÎÏÎÎÎ <link xref=\"beginner.js#samples"
-"\">ÎÎÎÎÎÎÏÎ ÎÏÎÎÎÎ</link>, ÎÎÎ ÎÎ ÎÎÎÎÏÎ ÎÎ ÎÎÎÏÎ ÏÎÎ ÎÏÎÎÎÎ ÏÎÏ "
-"ÏÎÏÎÎÎÎÎÎÎÏÎÏ ÎÎÎ ÎÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ Gtk."
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkContainer.html";
+"\">GtkContainer</link>"
 
-#: C/hellognome.js.page:189(p)
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/textview.js.page:25(media)
+msgctxt "_"
 msgid ""
-"Finally, if you want to just build GNOME applications using JavaScript "
-"libraries designed for the web, you can basically stop here and go do that! "
-"Take a look at the <link xref=\"scrolledwindow.js\">ScrolledWindow</link> "
-"code sample if you'd like to see how to make a WebView widget that can "
-"scroll to show parts of a larger web page, and check out <link xref="
-"\"beginner.js#tutorials\">the later tutorials</link> if you'd like to see "
-"how to create a .desktop file for your application, which will let it appear "
-"in your desktop's Activities menu with all your other apps."
+"external ref='media/textviewpenguinchat.png' "
+"md5='0dd6f6aa44aaeab7901bd90162ed4c9a'"
 msgstr ""
-"ÎÎÎÎÎÎ, ÎÎÎ ÎÎÎÎÏÎ ÎÎ ÎÎÏÎÏÎÎÏÎÏÎÏÎ ÎÏÎÎ ÎÏÎÏÎÎÎÎÏ GNOME ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ "
-"ÎÎÎÎÎÎÎÎÎÎÏ JavaScript ÏÎÏ ÏÏÎÎÎÎÏÏÎÎÎÎ ÎÎÎ ÏÎÎ ÎÏÏÏ, ÎÏÎÏÎÎÏÎ ÎÎÏÎÎÎ ÎÎ "
-"ÏÏÎÎÎÏÎÏÎÏÎ ÎÎÏ ÎÎÎ ÎÎ ÏÎÏÎ ÎÎ ÏÎ ÎÎÎÎÏÎ! ÎÎÎÏÎ ÎÎÎ ÎÎÏÎÎ ÏÏÎ ÎÎÎÎÎÎ ÎÏÎÎÎÎ "
-"<link xref=\"scrolledwindow.js\">ScrolledWindow</link> ÎÎÎ ÎÎ ÎÎÎÎÏÎ ÎÎ "
-"ÎÎÎÏÎ ÏÏÏ ÎÎ ÎÎÎÎÏÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ WebView ÏÎÏ ÎÏÎÏÎÎ ÎÎ ÎÏÎÎÏÎÎ ÎÎÎ "
-"ÎÎÏÎÎÎÏÎÎ ÎÎÏÎ ÎÎÎÏ ÎÎÎÎÎÏÏÎÏÎÏ ÎÏÏÎÏÎÎÎÎÎÏ ÎÎÎ ÎÎ ÎÎÎÎÎÎÏÎ <link xref="
-"\"beginner.js#tutorials\">ÏÎ ÏÎÎÎÏÏÎÎÎ ÎÎÎÎÎÎÏÎ</link> ÎÎÎ ÎÎ ÎÎÎÎÏÎ ÎÎ "
-"ÎÎÎÏÎ ÏÎ ÎÎÎÎÎÏÏÎÎÎ ÎÎÏÏ ÎÏÏÎÎÎÏ .desktop ÎÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ ÏÎÏ, ÏÎÏ ÎÎ "
-"ÎÏÎÏÏÎÏÎÎ ÏÎÎ ÎÎÏÎÎÎÏÎ ÏÎÏ ÏÏÎ ÎÎÎÎÏ ÎÎÎÏÎÎÎÏÎ ÏÎÏ ÎÏÎÏÎÎÎÎÎÏ ÎÏÎÎÏÎÎÏ ÏÎÏ "
-"ÎÎ ÏÎÎÏ ÏÎÏ ÎÎÎÎÏ ÎÏÎÏÎÎÎÎÏ ÏÎÏ."
+"external ref='media/textviewpenguinchat.png' "
+"md5='0dd6f6aa44aaeab7901bd90162ed4c9a'"
+
+#: C/textview.js.page:7(info/title)
+msgctxt "text"
+msgid "TextView (JavaScript)"
+msgstr "TextView (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:42(None) C/guitar-tuner.py.page:39(None)
-#: C/guitar-tuner.js.page:36(None) C/guitar-tuner.cpp.page:37(None)
-#: C/guitar-tuner.c.page:39(None)
-msgid "@@image: 'media/guitar-tuner.png'; md5=35e615e0f5e293671d00c5c414ac2f6b"
-msgstr ""
-"@@image: 'media/guitar-tuner.png'Â md5=35e615e0f5e293671d00c5c414ac2f6b"
+#: C/textview.js.page:21(info/desc)
+msgid "A multiline text editor"
+msgstr "ÎÏÎÎÎÏÎÎÏÏÎÏ ÎÎÎÎÎÎÎÏ ÏÎÎÎÎÏÎÏÎ ÎÏÎÎÎÏÎ"
+
+#: C/textview.js.page:24(page/title) C/textview.py.page:28(page/title)
+msgid "TextView"
+msgstr "TextView"
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/guitar-tuner.vala.page:95(None) C/guitar-tuner.py.page:90(None)
-#: C/guitar-tuner.cpp.page:88(None) C/guitar-tuner.c.page:94(None)
+#: C/textview.js.page:26(page/p)
 msgid ""
-"@@image: 'media/guitar-tuner-glade.png'; md5=f6606525443ab2160f53a87a454364d0"
+"A TextView is really (or at least usually) a nested set of three objects."
 msgstr ""
-"@@image: 'media/guitar-tuner-glade.png'; md5=f6606525443ab2160f53a87a454364d0"
+"ÎÎÎ TextView ÎÎÎÎÎ ÏÏÎÎÎÎÏÎÎÎ (Î ÏÎÏÎÎÏÎÏÏÎÎ ÏÏÎÎÎÏÏ) ÎÎÎ ÎÎÎÎÏÎ ÏÏÎÎÎÎ "
+"ÏÏÎÏÎ ÎÎÏÎÎÎÎÎÎÎÏÎ."
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/guitar-tuner.vala.page:129(None) C/guitar-tuner.py.page:133(None)
-#: C/guitar-tuner.js.page:42(None) C/guitar-tuner.cpp.page:117(None)
-#: C/guitar-tuner.c.page:139(None)
+#: C/textview.js.page:28(item/p)
 msgid ""
-"@@image: 'media/guitar-tuner-pipeline.png'; "
-"md5=5adc952909d92af5dae6954781b4ad5f"
+"At the bottom there is a <link href=\"http://www.roojs.org/seed/gir-1.2-";
+"gtk-3.0/gjs/Gtk.TextBuffer.html\">TextBuffer</link>. This holds the text "
+"itself."
 msgstr ""
-"@@image: 'media/guitar-tuner-pipeline.png'; "
-"md5=5adc952909d92af5dae6954781b4ad5f"
+"ÎÏÎ ÏÎÎÎÏ ÎÎÎÎÎ ÎÎÎ <link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/";
+"gjs/Gtk.TextBuffer.html\">TextBuffer</link>. ÎÏÏÏ ÎÏÎÏÎ ÏÎ ÎÎÎÎ ÏÎ ÎÎÎÎÎÎÎ."
 
-#: C/guitar-tuner.vala.page:9(desc)
+#: C/textview.js.page:29(item/p)
 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."
+"In the middle there is the <link href=\"http://www.roojs.org/seed/gir-1.2-";
+"gtk-3.0/gjs/Gtk.TextView.html\">TextView</link>, which is a widget that lets "
+"you see and edit the text in the buffer. It automatically resizes itself "
+"depending on how much text there is."
 msgstr ""
-"ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ <link href=\"http://developer.gnome.org/platform-overview/";
-"stable/gtk\">Gtk+</link> ÎÎÎ <link href=\"http://developer.gnome.org/";
-"platform-overview/stable/gstreamer\">GStreamer</link> ÎÎÎ ÎÎ ÏÏÎÎÎÎÏÎ ÎÎÎ "
-"ÎÏÎÏ ÏÏÏÎÏÎÎÎÎ ÏÏÎÎÎÏÏÎ ÎÎÎÎÏÎÏ ÎÎÎ ÏÎ GNOME. ÎÎÎÎÎÎÎÎÏÎÎ ÏÏÏ ÎÎ "
-"ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÏÎ ÏÏÎÎÎÎÏÏÎ ÎÎÎÏÎÏÎÏ."
-
-#: C/guitar-tuner.vala.page:26(title) C/guitar-tuner.py.page:23(title)
-#: C/guitar-tuner.js.page:19(title)
-msgid "2 Guitar Tuner"
-msgstr "2 ÎÏÎÏÎÎÎÏÏÎÏ ÎÎÎÎÏÎÏ"
+"ÎÏÎ ÎÎÏÎ ÎÎÎÎÎ Î <link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/";
+"Gtk.TextView.html\">TextView</link>, ÏÎÏ ÎÎÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÏÎÏ ÏÎÏ "
+"ÎÏÎÏÏÎÏÎÎ ÎÎ ÎÎÎÏÎ ÎÎÎ ÎÎ ÎÏÎÎÎÏÎÎÏÏÎÎÏÎ ÏÎ ÎÎÎÎÎÎÎ ÏÏÎÎ ÎÎÎÎÎÎÎÏÎ ÎÎÎÎÎ. "
+"ÎÏÎÎÎÎÎÏÎÎÎ ÏÎÎ ÎÎÏÏÏÎ ÏÎÏ ÎÏÏÏÎÎÏÎ ÎÎÎÎÎÎÎ ÎÎ ÏÎ ÏÏÏÎ ÎÎÎÎÎÎÎ ÏÏÎÏÏÎÎ."
 
-#: C/guitar-tuner.vala.page:29(p)
+#: C/textview.js.page:30(item/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:"
+"Since the automatic resizing can make a TextView unwieldy, you normally "
+"place it inside of a <link xref=\"scrolledwindow.js\">ScrolledWindow</link>. "
+"Despite the name, it's not an actual window in terms of having a title bar "
+"and an X button; it's a widget you put on the application you're making, "
+"which acts like a window onto a more manageable chunk of a TextView. If the "
+"text in the buffer is too big to fit, scrollbars will appear."
 msgstr ""
-"ÎÎ ÎÏÏÏ ÏÎ ÎÎÎÎÎÎ, ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ ÎÎÎ ÎÏÎÏÎÎÎÎ ÏÎÏ ÏÎÎÎÎÎ ÏÏÎÎÏÏ ÎÎÎ "
-"ÎÏÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎ ÎÎÎ ÎÎÎÎÏÎ. ÎÎ ÎÎÎÎÏÎ ÏÏÏ ÎÎ:"
+"ÎÏÎÏ Î ÎÏÏÏÎÎÏÎ ÎÏÎÎÎÎÎÏÏÎ ÎÏÎÏÎÎ ÎÎ ÎÎÎÎÎ ÎÎÎ TextView ÎÎÎÎÎ, ÏÎÎ "
+"ÏÎÏÎÎÎÏÎÎÏÎ ÎÎÎÎÎÎÎÎ ÎÎÏÎ Ï' ÎÎÎ <link xref=\"scrolledwindow.js"
+"\">ScrolledWindow</link>. ÎÎÏÎ ÏÎ ÏÎÎÎÎ, ÎÎÎ ÎÎÎÎÎ ÎÎÎ ÎÎÎÏÎÏ ÏÎÏÎÎÏÏÎ "
+"ÎÏÎÎÏÎÏ ÎÏÎÎÎÎ ÏÎÏÎÎÏ ÎÎÎ ÎÎÎ ÎÎÏÎÏÎ ÎÂ ÎÎÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÏÎÏ "
+"ÎÎÎÎÏÎ ÏÏÎÎ ÎÏÎÏÎÎÎÎ ÏÎÏ ÎÎÎÎÏÎ, ÏÎÏ ÎÏÎ ÏÏÏÏ ÎÎÎ ÏÎÏÎÎÏÏÎ ÏÎ ÎÎÎ ÏÎÎ "
+"ÎÎÎÏÎÎÏÎÏÎÎÎ ÏÎÎÎÎ ÎÎÎÏ TextView. ÎÎÎ ÏÎ ÎÎÎÎÎÎÎ ÏÏÎÎ ÎÎÎÎÎÎÎÏÎ ÎÎÎÎÎ ÎÎÎÎÎ "
+"ÏÏÎÏÎÎÎÎÎÎ ÎÎÎÎÎÎ ÎÎÎ ÎÎ ÏÎÎÏÎÎÎÎÎ, ÎÎ ÎÎÏÎÎÎÏÏÎÏÎ ÎÏÎÎÎÎÏ ÎÏÎÎÏÎÏ."
 
-#: C/guitar-tuner.vala.page:31(p)
+#: C/textview.js.page:32(page/p)
 msgid ""
-"Set up a basic project using the <link xref=\"getting-ready\">Anjuta IDE</"
-"link>."
+"If you want to change what text is displayed in the TextView, you act on the "
+"TextBuffer, since it's what actually holds the text. The same goes for if "
+"you want to see what text someone typed in. This sample application lets you "
+"talk to a (make-believe) penguin, and checks the TextBuffer to see if you "
+"typed the word \"fish\" anywhere in it."
 msgstr ""
-"ÎÎÎÎÏÎÏÏÎÏÎÏÎ ÎÎÎ ÎÎÏÎÎÏ ÎÏÎÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ <link xref=\"getting-ready"
-"\">Anjuta IDE</link>."
-
-#: C/guitar-tuner.vala.page:32(p)
-msgid "Create a simple GUI with <app>Anjuta</app>'s UI designer."
-msgstr "ÎÎÎÎÎÏÏÎÎÏÎÏÎ ÎÎÎ ÎÏÎÏ GUI ÎÎ ÏÎÎ ÏÏÎÎÎÎÏÏÎ UI ÏÎÏ <app>Anjuta</app>."
+"ÎÎÎ ÎÎÎÎÏÎ ÎÎ ÎÎÎÎÎÎÏÎ ÏÎ ÎÎÏÎÎÎÎÏÎÎÎÎ ÎÎÎÎÎÎÎ ÏÏÎÎ TextView, ÎÏÎÎÏÎÏÎ ÏÏÎÎ "
+"TextBuffer, ÎÏÎÏ ÎÎÎÎÎ ÎÏÏÏ ÏÎÏ ÏÏÎÎ ÏÏÎÎÎÎÏÎÎÏÏÎÏÎ ÎÏÎÏÎ ÏÎ ÎÎÎÎÎÎÎ. ÎÎ "
+"ÎÎÎÎ ÎÎÎÎÏÎÎ ÎÎÎ ÎÎÎÎÏÎ ÎÎ ÎÎÎÏÎ ÏÎ ÎÎÎÎÎÎÎ ÎÏÎÎ ÏÏÏÏÏÎÎ ÎÎÏÎÎÎÏ. ÎÏÏÏ ÏÎ "
+"ÎÎÎÎÎÎ ÏÎÏ ÎÏÎÏÎÎÎÎÏ ÏÎÏ ÎÏÎÏÏÎÏÎÎ ÎÎ ÎÎÎÎÏÎÏÎ ÏÎ ÎÎÎÎ (ÏÎÏÏÎÏÏÎ ÏÎ) "
+"ÏÎÎÎÎÏÎÎÎ ÎÎÎ ÎÎÎÎÏÎÎ ÏÎ TextBuffer ÎÎÎ ÎÎ ÎÎÎÏÎ ÎÎÎ ÏÎÎÎÏÏÎÎÎÎÎÏÎÏÎ ÏÎ ÎÎÎÎ "
+"\"fish\" ÎÏÎÏÎÎÏÎÏÎ ÏÎ ÎÏÏÏ."
 
-#: C/guitar-tuner.vala.page:33(p)
+#: C/textview.js.page:33(note/p)
 msgid ""
-"Use the <link href=\"http://developer.gnome.org/platform-overview/stable/";
-"gstreamer\">GStreamer</link> library to play sounds."
+"Real-life penguin populations are declining fast, because climate change is "
+"melting the ice that they live on and killing the fish that they eat. If "
+"you'd like to play a (somewhat silly) GNOME game based on this premise, take "
+"a look at <link href=\"http://pingus.seul.org/\";>Pingus</link>."
 msgstr ""
-"ÎÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÏÎ ÎÎÎÎÎÎÎÎÎÎ <link href=\"http://developer.gnome.org/";
-"platform-overview/stable/gstreamer\">GStreamer</link> ÎÎÎ ÎÎ ÏÎÎÎÎÎ ÎÏÎÏÏ."
+"ÎÎ ÏÎÎÎÏÏÎÎÎ ÏÎÎÎÎÏÎÎÎÏ ÏÏÎÎ ÏÏÎÎÎÎÏÎÎÎ ÎÏÎ ÎÎÎÏÎÎÎÏÎÎ ÎÏÎÎÎÏÎ, ÎÏÎÎÎÎ Î "
+"ÎÎÎÎÎÏÎÎÎ ÎÎÎÎÎÎ ÎÎÏÎÎÎ ÏÎÎ ÏÎÎÎ ÏÎÏ ÎÎÏÎ ÎÎÎ ÏÎÎÏÏÎÎÎ ÏÎ ÏÎÏÎÎ ÏÎÏ ÏÏÏÎÎ. "
+"ÎÎÎ ÎÎ ÎÎÎÎÏÎ ÎÎ ÏÎÎÎÎÏÎ ÎÎÎ (ÎÎÏÏÏ ÎÎÏÎÏÎ) ÏÎÎÏÎÎÎÎ ÏÎÏ GNOME ÎÎ ÎÎÏÎ ÎÏÏÎÎ "
+"ÏÎÎ ÏÏÎÏÏÏÎÎÏÎ, ÎÎÎÏÎÎÏÎ ÏÎ <link href=\"http://pingus.seul.org/\";>Pingus</"
+"link>."
 
-#: C/guitar-tuner.vala.page:45(title)
-msgid "Create a project in <app>Anjuta</app>"
-msgstr "ÎÎÎÎÎÏÏÎÎÏÏÎ ÎÎÎ ÎÏÎÎ ÎÎ ÏÎ <app>Anjuta</app>"
+#: C/textview.js.page:49(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"const TextViewExample = new Lang.Class ({\n"
+"    Name: 'TextView Example',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function () {\n"
+"        this.application = new Gtk.Application ({\n"
+"            application_id: 'org.example.jstextview' });\n"
+"\n"
+"        // Connect 'activate' and 'startup' signals to the callback functions\n"
+"        this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"        this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents windows when active\n"
+"    _onActivate: function () {\n"
+"        this._window.present ();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function () {\n"
+"        this._buildUI ();\n"
+"    },\n"
+msgstr ""
+"\n"
+"const TextViewExample = new Lang.Class ({\n"
+"    Name: 'TextView Example',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function () {\n"
+"        this.application = new Gtk.Application ({\n"
+"            application_id: 'org.example.jstextview' });\n"
+"\n"
+"        // Connect 'activate' and 'startup' signals to the callback functions\n"
+"        this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"        this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents windows when active\n"
+"    _onActivate: function () {\n"
+"        this._window.present ();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function () {\n"
+"        this._buildUI ();\n"
+"    },\n"
 
-#: C/guitar-tuner.vala.page:52(p)
+#: C/textview.js.page:73(section/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."
+"All the code for this sample goes in the TextViewExample class. The above "
+"code creates a <link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/";
+"Gtk.Application.html\">Gtk.Application</link> for our widgets and window to "
+"go in."
 msgstr ""
-"ÎÎÎÏÎ ÎÎÎÎ ÏÏÎÎ ÎÎÏÏÎÎÎ <gui>Vala</gui> ÎÎÎ ÎÏÎÎÎÎÏÎ <gui>Gtk+ (ÎÏÎÏ)</gui>. "
-"ÎÎÎÎ <gui>ÏÏÎÎÏÎÎÎ</gui> ÎÎÎ ÏÏÎÏÎÎÏÏÏÏÎ ÏÎÏ ÎÎÏÏÎÎÎÏÎÎÎÏ ÏÎÏ ÏÏÎÏ ÎÏÏÎÎÎÎÏ "
-"ÎÎÎÎÏ ÏÎÎÎÎÎÏ. ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ ÏÏ ÏÎÎÎÎ ÏÎÏ ÎÏÎÎÏ ÎÎÎ ÏÎÏ ÎÎÏÎÎÏÎÎÏ ÏÎ "
-"<file>guitar-tuner</file>."
+"ÎÎÎÏ Î ÎÏÎÎÎÎÏ ÎÎÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÏÎÎÎÎÎÎÎ ÏÏÎÎ ÎÎÎÏÎ TextViewExample. Î "
+"ÏÎÏÎÏÎÎÏ ÎÏÎÎÎÎÏ ÎÎÎÎÎÏÏÎÎÎ ÎÎÎ <link href=\"http://www.roojs.com/seed/";
+"gir-1.2-gtk-3.0/gjs/Gtk.Application.html\">Gtk.Application</link> ÎÎÎ ÎÎ "
+"ÎÏÎÏÎ ÎÎÏÎ ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÏ ÎÎÎ ÏÎ ÏÎÏÎÎÏÏÎ."
 
-#: C/guitar-tuner.vala.page:55(p)
+#: C/textview.js.page:74(section/code)
+#, no-wrap
 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>"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function () {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow  ({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            title: \"Talk to a Penguin\",\n"
+"            default_height: 400,\n"
+"            default_width: 440,\n"
+"            border_width: 20 });\n"
 msgstr ""
-"ÎÎÎÎÎÏÎÎÎÏÎ ÏÏÎ Î <gui>ÏÏÎÎÎÏÎ ÎÎÏÏÎÏÎÎÏÎ ÏÎÎÎÏÏÎ</gui> ÎÎÎÎÎ <gui>ÎÎÎÏÎÎ</"
-"gui>. ÎÏÎÎ ÎÏÏÎÎÎÎ ÏÎÎÎÎÎ, ÎÏÎÎÎÎÏÎ <link href=\"http://valadoc.org/";
-"gstreamer-0.10/index.htm\"><em>gstreamer-0.10</em></link> ÎÏÏ ÏÎ ÎÎÏÏÎ ÎÎÎ "
-"ÏÏÎÏÎÏÎÎÎÏÎ ÏÎÏ ÎÎÎÎÎÎÎÎÎÎÏ GStreamer ÏÏÎ ÎÏÎÎ ÏÎÏ. ÎÎÎÏÎ ÎÎÎÎ ÏÏÎ "
-"<gui>ÏÏÎÎÏÎÎÎ</gui>"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function () {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow  ({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            title: \"Talk to a Penguin\",\n"
+"            default_height: 400,\n"
+"            default_width: 440,\n"
+"            border_width: 20 });\n"
+
+#: C/textview.js.page:91(section/title)
+msgid "Creating the TextView"
+msgstr "ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ TextView"
 
-#: C/guitar-tuner.vala.page:59(p)
+#: C/textview.js.page:92(section/code)
+#, no-wrap
 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:"
+"\n"
+"        // Create a label for the penguin to talk to you\n"
+"        this._penguin = new Gtk.Label ({\n"
+"            height_request: 180,\n"
+"            width_request: 400,\n"
+"            label: \"Squaaaak?\",\n"
+"            wrap: true });\n"
 msgstr ""
-"ÎÎÎÎ ÏÏÎÎ <gui>ÎÏÎÏÎÎÎÎ</gui> ÎÎÎ ÏÎ ÎÏÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎÎÎÎ ÎÎÎ ÏÎÏ. ÎÏÏ ÏÎÏ "
-"ÎÎÏÏÎÎÎÏ <gui>ÎÏÎÎ</gui> Î <gui>ÎÏÏÎÎÎ</gui>, ÎÎÎÎÎÏÎ ÏÎ <file>src/"
-"guitar_tuner.vala</file> ÎÎ ÎÎÏÎÏ ÎÎÎÎ ÏÎÎÏ ÏÎÏ. ÎÎ ÏÏÎÏÎÎ ÎÎ ÎÎÎÏÎ ÎÎÏÎÎÎ "
-"ÎÏÎÎÎÎ ÏÎÏ ÎÎÎÎÎÎÎÎ ÎÎ ÏÎÏ ÎÏÎÎÎÎÏ:"
+"\n"
+"        // Create a label for the penguin to talk to you\n"
+"        this._penguin = new Gtk.Label ({\n"
+"            height_request: 180,\n"
+"            width_request: 400,\n"
+"            label: \"Squaaaak?\",\n"
+"            wrap: true });\n"
 
-#: C/guitar-tuner.vala.page:69(p)
+#: C/textview.js.page:101(section/p)
 msgid ""
-"The code loads an (empty) window from the user interface description file "
-"and displays it. More details are given below; you may choose to skip this "
-"list if you understand the basics:"
+"Our first step in this example is to create the <link xref=\"label.js"
+"\">Label</link> that the penguin will use to talk to you. We set the text in "
+"it to wrap by setting its wrap property to true, but we'll use a different "
+"method on the TextView itself that allows for more fine-grained control."
 msgstr ""
-"Î ÎÏÎÎÎÎÏ ÏÎÏÏÏÎÎÎ ÎÎÎ (ÎÎÎÏ) ÏÎÏÎÎÏÏÎ ÎÏÏ ÏÎ ÎÏÏÎÎÎ ÏÎÏÎÎÏÎÏÎÏ ÎÎÎÏÎÏÎÏ "
-"ÏÏÎÏÏÎ ÎÎÎ ÏÎ ÎÎÏÎÎÎÎÎÎ. ÎÎÏÎÏÏÏÏÎÏÎÏ ÎÎÏÏÎÎÎÏÎÎÎÏ ÎÎÎÎÎÏÎÎ ÏÎÏÎÎÎÏÏÂ ÎÏÎÏÎÎ "
-"ÎÎ ÎÏÎÎÎÎÎÏÎ ÎÎ ÏÏÎÏÏÎÏÎÏÏÎ ÎÏÏÎ ÏÎ ÎÎÏÏÎ ÎÎ ÎÎÏÎÎÎÎÎÎÎÎÏÎ ÏÎ ÎÎÏÎÎÎ:"
+"ÎÎ ÏÏÏÏÎ ÎÎÏ ÎÎÎÎ ÏÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÎÎÎÎÎ Î ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ <link xref="
+"\"label.js\">ÎÏÎÎÎÏÎÏ</link> ÏÎÏ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ Î ÏÎÎÎÎÏÎÎÎÏ ÎÎÎ ÎÎ ÏÎÏ "
+"ÎÎÎÎÏÎÎ. ÎÏÎÎÎÏÎÎ ÏÎ ÎÎÎÎÎÎÎ ÏÎ ÎÏÏÏ ÏÎ ÎÎÎÎÎÏÎÏÏÎ ÏÏÎÎÎÎÎÎÏÎÏ ÏÎÎ ÎÎÎÏÏÎÏÎ "
+"ÏÎÏ ÎÎÎÎÎÏÎÏÏÎ ÏÎ ÎÎÎÎÎ, ÎÎÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÎÎ ÎÎÎÏÎÏÎÏÎÎÎ ÎÎÎÎÎÎ "
+"ÏÏÎÎ ÎÎÎÎ ÏÎÎ TextView ÏÎÏ ÎÏÎÏÏÎÏÎÎ ÎÎÎ ÏÎÎ ÎÎÏÎÎÎ ÎÎÎÎÏÎ."
 
-#: C/guitar-tuner.vala.page:76(p)
+#: C/textview.js.page:103(section/code)
+#, no-wrap
 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."
+"\n"
+"        // Create a textview for you to talk to the penguin\n"
+"        this.buffer = new Gtk.TextBuffer();\n"
+"        this._textView = new Gtk.TextView ({\n"
+"            buffer: this.buffer,\n"
+"            editable: true,\n"
+"            wrap_mode: Gtk.WrapMode.WORD });\n"
 msgstr ""
-"Î ÎÎÏÎÏÎÎÏÎÏÏÎÏ ÏÎÏ ÎÎÎÏÎÏ <code>Main</code> ÎÎÎÎÎÏÏÎÎÎ ÎÎÎ ÎÎÎ ÏÎÏÎÎÏÏÎ "
-"ÎÎÎÎÎÎÎÏÎÏ ÎÎÎ ÎÏÏÎÎÎ GtkBuilder (<file>src/guitar-tuner.ui</file>, ÏÎÏ "
-"ÎÏÎÎÎÏÎÎ ÎÎÎÎÏ ÎÏÎÎÎÎÏ ÏÎÏÎÏÎÎÏ), ÏÏÎÎÎÎÎÏÎÏ ÏÎ ÏÎÎÎÏÎ ÏÎÏ ÎÎÎ ÎÏÎÎÏÎ "
-"ÎÎÏÎÎÎÎÎÎÏÎÏ ÏÎ ÏÎ ÏÎÏÎÎÏÏÎ. ÎÏÏÏ ÏÎ ÎÏÏÎÎÎ GtkBuilder ÏÎÏÎÎÏÎÎ ÎÎÎ "
-"ÏÎÏÎÎÏÎÏÎ ÎÎÎÏ ÎÎÎÏÎÏÎÏ ÏÏÎÏÏÎ ÎÎÎ ÏÎÏÎ ÏÏÎ ÏÏÎÎÏÎÎÏÎ ÏÎÏ. ÎÏÎÏÎÎÏÎ ÎÎ "
-"ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÏÎÎ ÎÏÎÎÎÏÎÎÏÏÎ ÏÎÏ Anjuta ÎÎÎ ÏÏÎÎÎÎÏÎ ÎÎÎÏÎÏÏÎ ÏÏÎÏÏÎ "
-"GtkBuilder."
+"\n"
+"        // Create a textview for you to talk to the penguin\n"
+"        this.buffer = new Gtk.TextBuffer();\n"
+"        this._textView = new Gtk.TextView ({\n"
+"            buffer: this.buffer,\n"
+"            editable: true,\n"
+"            wrap_mode: Gtk.WrapMode.WORD });\n"
 
-#: C/guitar-tuner.vala.page:78(p)
+#: C/textview.js.page:112(section/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."
+"Our first step is to create a TextBuffer to put the words into. After that "
+"we create the TextView, and tell it to use the TextBuffer we created as its "
+"buffer. We also set it to be editable, since we want to be able to type new "
+"things in."
 msgstr ""
-"Î ÏÏÎÎÎÏÎ ÏÎÎÎÏÏÎ ÎÎÎÎÎ ÏÏÏ ÎÏÎÎÎÏÎ ÏÎ ÏÏÎÎÎÎÎÎÎ ÏÏÎÎ ÏÎÏÎÏÎ ÎÎÎ ÎÎÏÎÏÎ, Î "
-"ÏÏÎÎ ÏÏÎÎÎÎ ÎÎÏÎÎÎ ÎÎÎÎ ÏÏÎÎÎÎ. ÎÎÏ, ÎÎÎÎÎÏÎÎ Î ÏÏÎÎÏÏÎÏÎ <code>on_destroy</"
-"code> (ÎÎÎ ÏÎÏÎÎÏÎÎÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ) ÏÏÎÎ ÎÎÎÎÎÎÏÎ ÏÎ ÏÎÏÎÎÏÏÎ."
+"ÎÎ ÏÏÏÏÎ ÎÎÏ ÎÎÎÎ ÎÎÎÎÎ Î ÎÎÎÎÎÏÏÎÎÎ ÎÎÏÏ TextBuffer ÎÎÎ ÎÎ ÎÎÎÎÏÎÎ ÏÎÏ "
+"ÎÎÎÎÎÏ ÎÎÏÎ. ÎÏÎÏ ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ ÏÎÎ TextView ÎÎÎ ÏÎÏ ÏÎÏÎÎ ÎÎ "
+"ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÏÎÎ TextBuffer ÏÎÏ ÎÎÎÎÎÏÏÎÎÏÎÎÎ ÏÏ ÏÎÎ ÎÎÎÎÎÎÎÏÎ ÎÎÎÎÎ ÏÎÏ. "
+"ÎÎ ÏÏÎÎÎÎÎÏÎÎ ÎÏÎÏÎÏ ÎÎ ÎÎÎÎÎ ÎÏÎÎÎÏÎÎÏÎÎÎ, ÎÏÎÏ ÎÎÎÎÏÎÎ ÎÎ ÎÏÎÏÎÏÎÎ ÎÎ "
+"ÏÎÎÎÏÏÎÎÎÎÎÏÎÏÎÎ ÎÎÎ ÏÏÎÎÎÎÏÎ ÎÎÏÎ ÏÎÏ."
 
-#: C/guitar-tuner.vala.page:82(p)
+#: C/textview.js.page:113(section/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)."
+"The wrap_mode property lets you select from four different <link href="
+"\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.WrapMode.html";
+"\">WrapModes</link>. Gtk.WrapMode.CHAR, for instance, starts wrapping around "
+"in the middle of a word if you keep typing when it gets to the edge. Most "
+"people are probably used to Gtk.WrapMode.WORD, which will automatically put "
+"the word you're typing on the next line if it gets to be too long."
 msgstr ""
-"Î ÏÏÎÏÎÎÎ ÏÏÎÎÏÏÎÏÎ <code>main</code> ÏÏÎÏÎÎ ÎÏÏ ÏÏÎÎÏÎÎÎÎÎ ÏÏÎÎ ÎÎÎÎÎÎÏÎ "
-"ÎÎÎ ÎÏÎÏÎÎÎÎ Vala. ÎÎÎÎÎ ÎÎÎÎÏ ÏÏÎÎÏÏÎÏÎÎÏ ÏÎÏ ÎÎÎÎÎÏÏÎÎÏÎ ÏÎÎ ÎÏÏÎÎ ÎÎÎÏÎ, "
-"ÏÏÎÎÎÎÎÏÎ ÎÎÎ ÎÏÎÎÏÎ ÎÎÏÎÎÎÏÎ ÏÎÎ ÎÏÎÏÎÎÎÎ. Î ÏÏÎÎÏÏÎÏÎ <code>Gtk.main</"
-"code> ÎÎÎÎÎÎ ÏÎÎ ÎÏÏÎÎ ÎÏÏÏÎ ÏÎÏ GTK, ÏÎÏ ÎÎÏÎÎÎÎ ÏÎ ÎÎÎÏÎÏÎ ÏÏÎÏÏÎ ÎÎÎ "
-"ÎÎÎÎÎÎ ÏÎÎ ÎÏÎÎÏÎÏÎ ÎÎÎ ÏÏÎÎÎÎÏÎ (ÏÏÏÏ ÎÎÎÎ ÎÎÎ ÏÎÏÎÎÎÏÎ ÏÎÎÎÏÏÎÏ)."
+"Î ÎÎÎÏÏÎÏÎ wrap_mode ÏÎÏ ÎÏÎÏÏÎÏÎÎ ÎÎ ÎÏÎÎÎÎÎÏÎ ÎÏÏ ÏÎÏÏÎÏÎ ÎÎÎÏÎÏÎÏÎÎÎ "
+"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.WrapMode.html";
+"\">WrapModes</link>. ÎÎ Gtk.WrapMode.CHAR, ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ, ÎÎÎÎÎÎ ÏÎÎ "
+"ÎÎÎÎÎÏÎÏÏÎ ÎÏÏÏ ÎÏÏ ÏÎ ÎÎÏÎ ÎÎÎÏ ÎÎÎÎÏ ÎÎÎ ÏÏÎÎÏÎÎÎÏÎ ÏÎÎ ÏÎÎÎÏÏÎÎÏÎÎÏÎ ÏÏÎÎ "
+"ÏÏÎÎÎÎ ÏÏÎÎ ÎÎÏÎ. ÎÎ ÏÎÏÎÏÏÏÏÎÏÎÎ ÎÎÎÏÏÏÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎ ÏÏÎÏÎÎÏÏ ÏÎ Gtk."
+"WrapMode.WORD, ÏÎÏ ÎÎ ÎÎÎÎÎ ÎÏÏÏÎÎÏÎ ÏÎ ÎÎÎÎ ÏÎÏ ÏÎÎÎÏÏÎÎÎÎÎÎÏÎ ÏÏÎÎ ÎÏÏÎÎÎÎ "
+"ÎÏÎÎÎÎ ÎÎÎ ÏÏÏÎÎÎÏÎÎ ÎÎ ÎÎÎÎÎ ÏÏÎÏÎÎÎÎÎÎ ÎÎÎÎÎÎ."
 
-#: C/guitar-tuner.vala.page:86(p)
+#: C/textview.js.page:115(section/code)
+#, no-wrap
 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."
+"\n"
+"        // Create a \"scrolled window\" to put your textview in so it will scroll\n"
+"        this._scrolled = new Gtk.ScrolledWindow ({\n"
+"            hscrollbar_policy: Gtk.PolicyType.AUTOMATIC,\n"
+"            vscrollbar_policy: Gtk.PolicyType.AUTOMATIC,\n"
+"            shadow_type: Gtk.ShadowType.ETCHED_IN,\n"
+"            height_request: 180,\n"
+"            width_request: 400, });\n"
+"\n"
+"        // Put the textview into the scrolled window\n"
+"        this._scrolled.add_with_viewport (this._textView);\n"
 msgstr ""
-"ÎÏÏÏÏ Î ÎÏÎÎÎÎÏ ÎÎÎÎÎ ÎÏÎÎÎÎÏ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÎÎ. ÎÏÏÎ ÎÏÎÏÎÎÏÎ ÎÎ ÏÎÎ "
-"ÎÎÏÎÎÎÏÏÏÎÏÎÏÎ ÎÎ ÎÎÎÎ <guiseq><gui>ÎÎÏÎÏÎÎÏÎ</gui><gui>ÎÎÏÎÏÎÎÏÎ ÎÏÎÎÏ</"
-"gui></guiseq> (Î ÏÎÏÏÎÏÎÏ <keyseq><key>Shift</key><key>F7</key></keyseq>). "
-"ÎÏÎÎ ÏÎ ÎÎÎÎÏÎ ÎÏÏÏ, ÎÎ ÎÎÏÎÎÎÏÏÎÎ ÎÎÎÏ ÎÎÎÎÎÎÎÏ. ÎÎÎÎÎÏÎ ÏÎ <gui>ÏÏÎÎÎÏÎ</"
-"gui> ÏÎ <gui>ÏÏÎÎÏÎÎÎÎÎ</gui> ÎÎÎ ÎÏÎÎÏÎ ÎÎÎÎ <gui>ÎÎÏÎÎÎÏÎ</gui> ÎÎÎ "
-"ÏÏÎÎÎÏÎ ÏÎÏ ÎÎÏÎÎÏÎÎÏ ÎÎÏÎÏÎÎÏÎÏ. ÎÏÎÎÎÎÎÏÏÎ ÎÎ ÏÎ ÎÎÎÎÏÎ ÎÏÏÏ ÎÏÎÎ ÎÎÎ "
-"ÏÎÏÎ, ÎÎÎ ÏÎÎ ÏÏÏÏÎ ÎÎÏÎÏÎÎÏÎ."
+"\n"
+"        // Create a \"scrolled window\" to put your textview in so it will scroll\n"
+"        this._scrolled = new Gtk.ScrolledWindow ({\n"
+"            hscrollbar_policy: Gtk.PolicyType.AUTOMATIC,\n"
+"            vscrollbar_policy: Gtk.PolicyType.AUTOMATIC,\n"
+"            shadow_type: Gtk.ShadowType.ETCHED_IN,\n"
+"            height_request: 180,\n"
+"            width_request: 400, });\n"
+"\n"
+"        // Put the textview into the scrolled window\n"
+"        this._scrolled.add_with_viewport (this._textView);\n"
 
-#: C/guitar-tuner.vala.page:90(title) C/guitar-tuner.py.page:85(title)
-#: C/guitar-tuner.cpp.page:83(title) C/guitar-tuner.c.page:89(title)
-msgid "Create the user interface"
-msgstr "ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ ÎÎÎÏÎÏÎÏ ÏÏÎÏÏÎ"
+#: C/textview.js.page:127(section/p)
+msgid ""
+"Here we create a <link xref=\"scrolledwindow.js\">ScrolledWindow</link>, and "
+"set it to automatically scroll if it gets to be too big horizontally or "
+"vertically. We also give it a nice-looking ETCHED_IN border. After that, we "
+"put our TextView inside, and tell the ScrolledWindow to give us a viewport "
+"onto it."
+msgstr ""
+"ÎÎÏ ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ <link xref=\"scrolledwindow.js\">ScrolledWindow</link>, "
+"ÎÎÎ ÏÎ ÎÏÎÎÎÏÎÎ ÏÎ ÎÏÏÏÎÎÏÎ ÎÏÎÎÏÎ ÎÎÎ ÎÎÎÎÏÎÎ ÏÏÎÏÎÎÎÎÎÎ ÎÎÎÎÎÎ ÎÏÎÎÏÎÏÎÎ Î "
+"ÎÎÎÎÏÎ. ÎÎÏ ÎÎÎÎÏÎÎ ÎÏÎÏÎÏ ÎÎÎ ÏÏÎÎÎ ÏÎÏÎÎÏÎÎÎÎ ETCHED_IN. ÎÎÏÎ ÎÏÏ ÎÏÏÏ, "
+"ÎÎÎÎÏÎÎ ÏÎÎ TextView ÎÎÏ ÎÎÏÎ ÎÎÎ ÎÎÎÎ ÏÏÎ ScrolledWindow ÎÎ ÎÎÏ ÎÏÏÎÎ ÎÎÎ "
+"ÎÏÏÎ ÏÏÎÎÎÎÎÏ ÎÎÏÎ ÏÎÏ."
 
-#: C/guitar-tuner.vala.page:91(p)
+#: C/textview.js.page:133(section/code)
+#, no-wrap
 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."
+"\n"
+"        // Create a grid to organize them in\n"
+"        this._grid = new Gtk.Grid ({\n"
+"            halign: Gtk.Align.CENTER,\n"
+"            valign: Gtk.Align.CENTER });\n"
+"\n"
+"        // Put the label and textview in the grid one on top of the other\n"
+"        this._grid.attach (this._penguin, 0, 0, 1, 1);\n"
+"        this._grid.attach (this._scrolled, 0, 1, 1, 1);\n"
+msgstr ""
+"\n"
+"        // Create a grid to organize them in\n"
+"        this._grid = new Gtk.Grid ({\n"
+"            halign: Gtk.Align.CENTER,\n"
+"            valign: Gtk.Align.CENTER });\n"
+"\n"
+"        // Put the label and textview in the grid one on top of the other\n"
+"        this._grid.attach (this._penguin, 0, 0, 1, 1);\n"
+"        this._grid.attach (this._scrolled, 0, 1, 1, 1);\n"
+
+#: C/textview.js.page:143(section/p)
+msgid ""
+"The first <link xref=\"grid.js\">Grid</link> we create only has the Label "
+"and the ScrolledWindow inside it."
 msgstr ""
-"ÎÎÎ ÏÎÏÎÎÏÎÏÎ ÏÎÏ ÎÎÎÏÎÏÎÏ ÏÏÎÏÏÎ (UI) ÏÎÏÎÎÏÎÏÎÎ ÏÏÎ ÎÏÏÎÎÎ ÏÎÏ GtkBuilder "
-"<file>src/guitar_tuner.ui</file> ÏÎÏ ÎÏÎÏÏÎÎÎ ÏÏÎÎ ÎÎÏÏÏÎ ÏÎÏ ÎÎÎÏÎÏ. ÎÎÎ ÎÎ "
-"ÎÏÎÎÎÏÎÎÏÏÎÎÏÎ ÏÎ ÎÎÎÏÎÏÎ ÏÏÎÏÏÎ, ÎÎÎÎÎÏÎ ÏÎ <file>src/guitar_tuner.ui</"
-"file> ÎÎ ÎÎÏÎÏ ÎÎÎÎ ÏÎÎÏ ÏÎÏ ÏÏÎÎ ÎÎÏÏÎÏÎ <gui>ÎÏÎÎ</gui> Î <gui>ÎÏÏÎÎÎ</"
-"gui>. ÎÎ ÎÏÎÎÎÎÏÎ ÏÏÎ ÏÏÎÎÎÎÏÏÎ ÎÎÎÏÎÏÎÏ. ÎÎ ÏÎÏÎÎÏÏÎ ÏÏÎÎÎÎÏÎÏ ÎÎÎÎÎ ÏÏÎ "
-"ÎÎÎÏÏÎÂ ÏÎ <gui>ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ</gui> ÎÎÎ ÎÎ ÎÎÎÏÏÎÏÎÏ ÎÏÎÏÎÎÎÏ ÏÏÏÏÎÏÎÎÎÏ "
-"ÎÎÎÎÎ ÏÏÎ ÎÎÎÎÎ ÎÎÎ Î <gui>ÏÎÎÎÏÎ</gui> ÎÎ ÏÎ ÎÎÎÎÎÏÎÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ "
-"ÎÎÎÎÎ ÏÏÎ ÎÏÎÏÏÎÏÎ."
+"ÎÎ ÏÏÏÏÎ <link xref=\"grid.js\">ÏÎÎÎÎÎ</link> ÏÎÏ ÎÎÎÎÎÏÏÎÎÏÎÎÎ ÎÏÎÎ ÎÏÎÎ "
+"ÏÎÎ ÎÏÎÎÎÏÎ ÎÎÎ ÏÎ ScrolledWindow ÎÎÏÎ ÏÎÏ."
 
-#: C/guitar-tuner.vala.page:93(p)
+#: C/textview.js.page:145(section/code)
+#, no-wrap
 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."
+"\n"
+"        // Create a button to send your message to the penguin\n"
+"        this._send = new Gtk.Button ({\n"
+"            halign: Gtk.Align.END,\n"
+"            margin_top: 20,\n"
+"            label: \"Send\" });\n"
+"        this._send.connect ('clicked', Lang.bind (this, this._chat));\n"
+"\n"
+"        // Create a grid that will have the other grid on top and the button on bottom\n"
+"        this._mainGrid = new Gtk.Grid ({\n"
+"            halign: Gtk.Align.CENTER,\n"
+"            valign: Gtk.Align.CENTER });\n"
+"\n"
+"        // Add the other grid and the button to the main grid\n"
+"        this._mainGrid.attach (this._grid, 0, 0, 1, 1);\n"
+"        this._mainGrid.attach (this._send, 0, 1, 1, 1);\n"
 msgstr ""
-"Î ÎÎÎÏÎÎÎ ÎÎÎÎ ÎÎÎÏÎÏÎÏ ÏÏÎÏÏÎ ÏÏÎ Gtk+ ÎÏÎÎÎÏÎÎÏÎÎ ÏÎ ÏÎÎÎÏÎÎ ÎÎÎ ÏÎÎÎÎÎÏ. "
-"ÎÏ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÎÏ ÎÎÎ ÎÎÎÎÏÎ GtkButtonBox ÎÎÎ ÎÎ ÎÏÎÎÏÏÎÏÎÎ ÎÎÎ "
-"GtkButtons, ÎÎÎ ÎÎÎ ÎÎÎÎ ÎÎÎ ÎÏÏ ÏÎÏ ÎÎÎ ÏÎÏÎÎÏ ÏÎÏ ÎÎÎÎÏÎÏ."
+"\n"
+"        // Create a button to send your message to the penguin\n"
+"        this._send = new Gtk.Button ({\n"
+"            halign: Gtk.Align.END,\n"
+"            margin_top: 20,\n"
+"            label: \"Send\" });\n"
+"        this._send.connect ('clicked', Lang.bind (this, this._chat));\n"
+"\n"
+"        // Create a grid that will have the other grid on top and the button on bottom\n"
+"        this._mainGrid = new Gtk.Grid ({\n"
+"            halign: Gtk.Align.CENTER,\n"
+"            valign: Gtk.Align.CENTER });\n"
+"\n"
+"        // Add the other grid and the button to the main grid\n"
+"        this._mainGrid.attach (this._grid, 0, 0, 1, 1);\n"
+"        this._mainGrid.attach (this._send, 0, 1, 1, 1);\n"
 
-#: C/guitar-tuner.vala.page:99(p)
+#: C/textview.js.page:162(section/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>."
+"We create a <link xref=\"button.js\">Button</link> to send your message to "
+"the penguin, and a new Grid that has the other one on top and the Button on "
+"the bottom. The Button has a margin on top, so that it isn't squished up "
+"against the ScrolledWindow."
 msgstr ""
-"ÎÏÎÎ ÎÎÏÏÎÎÎ <gui>ÏÎÎÎÏÎ</gui>, ÎÏÏ ÏÎÎ ÎÎÏÏÎÏÎ <gui>ÏÎÏÎÎÎÏÎÏ</gui>, "
-"ÎÏÎÎÎÎÏÎ ÎÎÎ <gui>ÏÎÎÎÏÎÎ ÎÎÏÎÏÎÎÏ</gui> (GtkButtonBox) ÎÎ ÎÎÎÎ ÏÏÎ "
-"ÎÎÎÎÎÎÎÎÎ. ÎÏÎÎÏÎ ÎÎÎÎ ÏÏÎ ÏÎÏÎÎÏÏÎ ÏÏÎÎÎÎÏÎÏ ÏÏÎ ÎÎÎÏÏÎ ÎÎÎ ÏÎÏÎÎÎÏÎÏÎ ÏÎÏ "
-"ÏÏÎ ÏÎÏÎÎÏÏÎ. ÎÎÎÏ ÎÎÎÎÎÎÎÏ ÎÎ ÎÎÏÎÎÎÏÎÎ ÏÎÏ ÎÏÎÏÎÎÏÎ ÎÎ ÎÏÎÏÎÏÎ ÏÎÎ "
-"<gui>ÎÏÎÎÎÏ ÏÏÎ ÏÏÎÎÏÎÎÏÎ</gui> ÏÎ <input>6</input>. ÎÏÎÎÏÎ ÎÎÎÎ ÏÏÎ "
-"<gui>ÎÎÎÎÎÏÏÎÎÎ</gui>."
+"ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ <link xref=\"button.js\">ÎÎÏÎÏÎ</link> ÎÎÎ ÎÎ ÏÏÎÎÎÎÏÎÎ ÏÎ "
+"ÎÎÎÏÎÎ ÏÎÏ ÏÏÎÎ ÏÎÎÎÎÏÎÎÎ ÎÎÎ ÎÎÎ ÎÎÎ ÏÎÎÎÎÎ ÏÎÏ ÎÏÎÎ ÏÎ ÎÎÎÎ ÏÏÎÎ ÎÎÏÏÏÎ "
+"ÎÎÎ ÏÎ ÎÎÏÎÏÎ ÏÏÎ ÏÎÎÎÏ. ÎÎ ÎÎÏÎÏÎ ÎÏÎÎ ÎÎÎ ÏÎÏÎÎÏÏÎÎ ÏÏÎÎ ÎÎÏÏÏÎ, ÎÏÏÎ ÏÏÏÎ "
+"ÎÎÎ ÏÎÏÎÎÎÏÎÎ ÏÎÎÏ ÏÏÎ ScrolledWindow."
 
-#: C/guitar-tuner.vala.page:100(p)
+#: C/textview.js.page:164(section/code)
+#, no-wrap
 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."
+"\n"
+"        // Attach the main grid to the window\n"
+"        this._window.add (this._mainGrid);\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    },\n"
 msgstr ""
-"ÎÏÎÏÎÎÏÎ ÎÏÎÏÎÏ ÎÎ ÎÎÎÎÎÎÏÎ ÏÎÎ <gui>ÎÏÎÎÎÏ ÏÏÎ ÏÏÎÎÏÎÎÏÎ</gui> ÎÎÎ ÏÎÎ "
-"<gui>ÏÏÎÏÎÎÎÏÎÎÎÏÎÏ</gui> ÏÏÎÎ ÎÎÏÏÎÎÎ <gui>ÎÎÎÎÎÎ</gui> ÏÏÎ ÎÎÎÎÎ."
+"\n"
+"        // Attach the main grid to the window\n"
+"        this._window.add (this._mainGrid);\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    },\n"
 
-#: C/guitar-tuner.vala.page:104(p)
+#: C/textview.js.page:173(section/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."
+"Finally, we attach the main Grid to the window, then we tell the window and "
+"everything inside it to become visible when the application is run."
 msgstr ""
-"ÎÏÏÎ, ÎÏÏ ÏÎÎ ÎÎÏÏÎÏÎ <gui>ÎÎÎÎÏÎÏ ÎÎÎ ÎÎÏÎÎÎÏÎ</gui> ÏÎÏ <gui>ÏÎÎÎÏÎÏ</gui> "
-"ÎÏÎÎÎÎÏÎ ÎÎÎ <gui>ÎÎÏÎÏÎ</gui> (GtkButton) ÎÎ ÎÎÎÎ ÏÎÎÏ ÏÎÏ. ÎÎÏÎÎÎÏÎÏÏÎ ÏÎ "
-"ÏÏÎÎ ÏÏÏÏÎ ÎÎÏÏÎÏÎ ÏÎÏ GtkButtonBox ÎÎ ÎÎÎÎ ÏÏÎÎ ÏÏÏÏÎ ÎÎÏÏÎÏÎ."
+"ÎÎÎÎÎÎ, ÏÏÎÏÎÎÎÎÎÎÎ ÏÎ ÎÏÏÎÎ ÏÎÎÎÎÎ ÏÏÎ ÏÎÏÎÎÏÏÎ, ÎÏÎÎÏÎ ÎÎÎÎ ÏÏÎ ÏÎÏÎÎÏÏÎ "
+"ÎÎÎ ÏÎ ÎÎÎÎ ÏÎ ÏÎÏ ÎÎÎÎÎ ÎÎÏÎ ÏÎÏ ÎÎ ÎÎÎÎÎ ÎÏÎÏÏ ÏÏÎÎ ÏÏÎÏÎÎ Î ÎÏÎÏÎÎÎÎ."
 
-#: C/guitar-tuner.vala.page:107(p)
+#: C/textview.js.page:178(section/title)
+msgid "Function which handles the penguin's response"
+msgstr "Î ÏÏÎÎÏÏÎÏÎ ÏÎÏ ÏÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÏÏÎÏÎÏÎ ÏÎÏ ÏÎÎÎÎÏÎÎÎÏ"
+
+#: C/textview.js.page:179(section/code)
+#, no-wrap
 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."
+"\n"
+"    _chat: function () {\n"
+"\n"
+"        // Create a random number to determine what the penguin says\n"
+"        this.number = Math.floor ((Math.random() * 3) + 1);\n"
+"\n"
+"        // Did you actually say anything?\n"
+"        if (this.buffer.text) {\n"
+"\n"
+"            // Did you mention fish?\n"
+"            if (this.buffer.text.match (/fish/gi)) {\n"
+"\n"
+"                // Have the penguin squaak about fish\n"
+"                if (this.number == 1)\n"
+"                    this._penguin.set_label (\"FISH!\");\n"
+"\n"
+"                else if (this.number == 2)\n"
+"                    this._penguin.set_label (\"Fish fish fish fish. Fish!\");\n"
+"\n"
+"                else\n"
+"                    this._penguin.set_label (\"Fish? Fish fish fish. Fish fish. FISH!\");\n"
+"\n"
+"            }\n"
+"\n"
+"            // I guess you didn't mention fish\n"
+"            else {\n"
+"\n"
+"                // Have the penguin talk about penguinny stuff\n"
+"                if (this.number == 1)\n"
+"                    this._penguin.set_label (\"SQUAAK!\");\n"
+"\n"
+"                else if (this.number == 2)\n"
+"                    this._penguin.set_label (\"Ork ork ork ork squaak. Squaak squaak! *waves flippers*\");\n"
+"\n"
+"                else\n"
+"                    this._penguin.set_label (\"Ork ork ork ork ork?\");\n"
+"\n"
+"            }\n"
+"\n"
+"        }\n"
+"\n"
+"        // Clear the buffer\n"
+"        this.buffer.text = \"\";\n"
+"\n"
+"        // Give focus back to the textview so you don't have to click it again\n"
+"        this._textView.has_focus = true;\n"
+"\n"
+"    }\n"
+"\n"
+"});\n"
 msgstr ""
-"ÎÏÎÎÏÎÏ ÏÎ ÎÎÏÎÏÎ ÎÎÏÎÎ ÎÏÎÎÎÎÎÎÎÎ, ÎÏÎÎÏÏÎ ÎÎÏÏ ÏÏÎÎ ÎÎÏÏÎÎÎ <gui>ÎÎÎÎÎÎ</"
-"gui> ÏÏÎ ÎÎÎÎÎ ÏÎÏ ÎÎÎÏÏÎÏÎÏ <gui>ÎÏÎÎÎÏÎ</gui> ÎÎÎ ÎÎÎÎÎÏÎ ÏÎÎ ÏÎ <gui>E</"
-"gui>. ÎÏÏÎ ÎÎ ÎÎÎÎÎ Î ÏÎÎÎÎÎ ÏÎÏÎÎ ÏÎÏ ÎÎÎÎÏÎÏ Î."
+"\n"
+"    _chat: function () {\n"
+"\n"
+"        // Create a random number to determine what the penguin says\n"
+"        this.number = Math.floor ((Math.random() * 3) + 1);\n"
+"\n"
+"        // Did you actually say anything?\n"
+"        if (this.buffer.text) {\n"
+"\n"
+"            // Did you mention fish?\n"
+"            if (this.buffer.text.match (/fish/gi)) {\n"
+"\n"
+"                // Have the penguin squaak about fish\n"
+"                if (this.number == 1)\n"
+"                    this._penguin.set_label (\"FISH!\");\n"
+"\n"
+"                else if (this.number == 2)\n"
+"                    this._penguin.set_label (\"Fish fish fish fish. Fish!\");\n"
+"\n"
+"                else\n"
+"                    this._penguin.set_label (\"Fish? Fish fish fish. Fish fish. FISH!\");\n"
+"\n"
+"            }\n"
+"\n"
+"            // I guess you didn't mention fish\n"
+"            else {\n"
+"\n"
+"                // Have the penguin talk about penguinny stuff\n"
+"                if (this.number == 1)\n"
+"                    this._penguin.set_label (\"SQUAAK!\");\n"
+"\n"
+"                else if (this.number == 2)\n"
+"                    this._penguin.set_label (\"Ork ork ork ork squaak. Squaak squaak! *waves flippers*\");\n"
+"\n"
+"                else\n"
+"                    this._penguin.set_label (\"Ork ork ork ork ork?\");\n"
+"\n"
+"            }\n"
+"\n"
+"        }\n"
+"\n"
+"        // Clear the buffer\n"
+"        this.buffer.text = \"\";\n"
+"\n"
+"        // Give focus back to the textview so you don't have to click it again\n"
+"        this._textView.has_focus = true;\n"
+"\n"
+"    }\n"
+"\n"
+"});\n"
 
-#: C/guitar-tuner.vala.page:108(p)
+#: C/textview.js.page:230(section/p)
 msgid ""
-"The <gui>General</gui> tab is located in the <gui>Widgets</gui> section on "
-"the right."
+"Here we use some basic JavaScript functions to have the penguins say "
+"something random. Penguins like fish, though, so if you mention fish we want "
+"the penguin to respond to that. To do that, we use the JavaScript String "
+"object's match method on <file>this.buffer.text</file>, which returns the "
+"contents of our TextBuffer."
 msgstr ""
-"Î ÎÎÏÏÎÎÎ <gui>ÎÎÎÎÎÎ</gui> ÎÎÏÎÏÎÎÎÏÎÎ ÏÏÎÎ ÎÎÏÏÎÏÎ <gui>ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ</"
-"gui> ÏÏÎ ÎÎÎÎÎ."
+"ÎÎÏ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÎÎÏÎÎÎÏ ÎÎÏÎÎÎÏ ÏÏÎÎÏÏÎÏÎÎÏ JavaScript ÎÎÎ ÎÎ ÎÎÎÎÏÎÎ "
+"ÏÎÏÏ ÏÎÎÎÎÏÎÎÎÏÏ ÎÎ ÎÎÎÎ ÎÎÏÎ ÏÏÏÎÎÎ. ÎÎ ÏÎÎÎÎÏÎÎÎÎ ÎÎÎÎÎ ÏÏÏÏ ÏÎ ÏÎÏÎÎ, "
+"ÏÎÏÏ, ÎÏÏÎ ÎÎÎ ÎÎÎÏÎÏÎÏÎ ÏÎÏÎ ÎÎÎÎÏÎÎ Î ÏÎÎÎÎÏÎÎÎÏ ÎÎ ÎÏÎÎÏÎ ÏÎ ÎÏÏÏ. ÎÎÎ ÎÎ "
+"ÎÎÎÎÎ ÎÏÏÏ, ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÎÎÎÎÎ ÏÏÎÏÏÎÎÎÏ ÏÎÏ ÎÎÏÎÎÎÎÎÎÎÎÏ "
+"ÏÏÎÎÎÎÎÏÎÎÏÎÏ JavaScript ÏÏÎ <file>this.buffer.text</file>, ÏÎÏ ÎÏÎÏÏÏÎÏÎÎ "
+"ÏÎ ÏÎÏÎÎÏÏÎÎÎÎ ÏÎÏ TextBuffer ÎÎÏ."
 
-#: C/guitar-tuner.vala.page:113(p)
+#: C/textview.js.page:231(section/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>."
+"Since we want to clear out the TextBuffer after each time you click Send, we "
+"set <file>this.buffer.text</file> to contain an empty string afterwards. "
+"Then we return focus to our TextView, so that you can keep typing without "
+"having to click on it beforehand."
 msgstr ""
-"ÎÎÎÎÎÎÎÏÎ ÏÏÎÎ ÎÎÏÏÎÎÎ <gui>ÏÎÎÎÏÎ</gui> ÏÏÎÎ ÎÎÏÏÎÏÎ <gui>ÎÏÎÏÎÎÎ "
-"ÏÏÏÏÎÏÎÎÎ</gui> ÏÏÎ ÎÎÎÎÎ ÎÎÎ ÎÏÎÎÏÎ ÏÎ ÏÎÎÎ <code>clicked</code> ÏÎÏ "
-"ÎÎÏÎÏÎÎÏ. ÎÏÎÏÎÎÏÎ ÎÎ ÏÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÎÎÎ ÎÎ ÏÏÎÎÎÏÎÏÎ ÎÎÎÎ ÏÎÎÏÎÏÏÎ "
-"ÏÎÎÎÏÏÎ ÏÎÏ ÎÎ ÎÎÎÎÎÏÎÎ ÏÏÎÎ ÏÎÏÎÎÎÎ ÏÎ ÎÎÏÎÏÎ ÎÏÏ ÏÎÎ ÏÏÎÏÏÎ. ÎÎÎ ÎÎ ÏÎ "
-"ÎÎÎÎÏÎ ÎÏÏÏ, ÎÎÎÎ ÏÏÎ ÏÎÎÎ ÎÎÎ ÏÎÎÎÏÏÎÎÎÎÎÏÏÎ <code>main_on_button_clicked</"
-"code> ÏÏÎ ÏÏÎÎÎ <gui>ÏÎÎÏÎÏÏÎÏ</gui> ÎÎÎ ÏÎÏÎÏÏÎ <key>Enter</key>."
+"ÎÏÎÏ ÎÎÎÎÏÎÎ ÎÎ ÎÎÎÎÏÎÏÎÏÎÎ ÏÎÎ TextBuffer ÎÎÎÎ ÏÎÏÎ ÎÎÏÎ ÏÎ ÏÎÏÎÎÎ "
+"ÎÏÎÏÏÎÎÎ, ÎÏÎÎÎÏÎÎ ÏÎ <file>this.buffer.text</file> ÎÎ ÏÎÏÎÎÏÎÎ ÎÎÎ ÎÎÎÎ "
+"ÏÏÎÎÎÎÎÏÎÎÏÎ ÎÎÏÏÏÎÎ. ÎÏÎÎÏÎ ÎÏÎÏÏÏÎÏÎÏÎÎ ÏÎÎ ÎÏÏÎÎÏÎ ÏÏÎÎ TextView ÎÎÏ, "
+"ÎÏÏÎ ÏÏÏÎ ÎÎ ÎÏÎÏÎÎÏÎ ÎÎ ÏÏÎÎÏÎÏÎÏÎ ÏÎÎ ÏÎÎÎÏÏÎÎÏÎÎÏÎ ÏÏÏÎÏ ÎÎ ÏÏÎÏÎÎ ÎÎ "
+"ÏÎÏÎÏÎÏÎ ÏÎÎÏ ÏÎÏ ÏÏÎÎÎÏÎÎÎÎÎÎÎ."
 
-#: C/guitar-tuner.vala.page:116(p) C/guitar-tuner.py.page:107(p)
-#: C/guitar-tuner.c.page:111(p)
+#: C/textview.js.page:233(section/code)
+#, no-wrap
 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>."
+"\n"
+"// Run the application\n"
+"let app = new TextViewExample ();\n"
+"app.application.run (ARGV);\n"
 msgstr ""
-"ÎÏÎÎÎÎÎÎÎÏÎ ÏÎ ÏÎÏÎÏÎÎÏ ÎÎÎÎÏÎ ÎÎÎ ÏÎ ÏÏÏÎÎÎÏÎ ÎÎÏÎÏÎÎ, ÏÏÎÏÎÎÏÏÎ ÏÎÏ "
-"ÎÏÏÎÎÎÎÏ 5 ÏÎÏÎÎÏ ÎÎ ÏÎ ÎÎÏÎÎÏÎ <em>A</em>, <em>D</em>, <em>G</em>, <em>B</"
-"em>, ÎÎÎ <em>e</em>."
+"\n"
+"// Run the application\n"
+"let app = new TextViewExample ();\n"
+"app.application.run (ARGV);\n"
 
-#: C/guitar-tuner.vala.page:119(p) C/guitar-tuner.py.page:110(p)
-#: C/guitar-tuner.c.page:114(p)
+#: C/textview.js.page:238(section/p)
 msgid ""
-"Save the UI design (by clicking <guiseq><gui>File</gui><gui>Save</gui></"
-"guiseq>) and keep it open."
+"Finally, we create a new instance of the finished TextViewExample class, and "
+"set the application running."
 msgstr ""
-"ÎÏÎÎÎÎÎÏÏÏÎ ÏÎ ÏÏÎÎÎÎÏÎ UI (ÏÎÏÏÎÏÎÏ <guiseq><gui>ÎÏÏÎÎÎ</"
-"gui><gui>ÎÏÎÎÎÎÎÏÏÎ</gui></guiseq>) ÎÎÎ ÎÏÎÏÎÏÏÎ ÏÎ ÎÎÎÎÏÏÏ."
+"ÎÎÎÎÎÎ, ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ ÏÎÏ ÏÎÎÎÎÏÎÎÎÎÏ ÎÎÎÏÎÏ "
+"TextViewExample ÎÎÎ ÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ."
 
-#: C/guitar-tuner.vala.page:125(title) C/guitar-tuner.py.page:129(title)
-#: C/guitar-tuner.js.page:24(link) C/guitar-tuner.js.page:38(title)
-#: C/guitar-tuner.cpp.page:112(title) C/guitar-tuner.c.page:135(title)
-msgid "GStreamer pipelines"
-msgstr "ÎÎÎÏÎÏÎÏÏÎÎÏ GStreamer"
+#: C/textview.js.page:243(section/code)
+#, no-wrap
+msgid ""
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"const TextViewExample = new Lang.Class ({\n"
+"    Name: 'TextView Example',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function () {\n"
+"        this.application = new Gtk.Application ({\n"
+"            application_id: 'org.example.jstextview' });\n"
+"\n"
+"        // Connect 'activate' and 'startup' signals to the callback functions\n"
+"        this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"        this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents windows when active\n"
+"    _onActivate: function () {\n"
+"        this._window.present ();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function () {\n"
+"        this._buildUI ();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function () {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow  ({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            title: \"Talk to a Penguin\",\n"
+"            default_height: 400,\n"
+"            default_width: 440,\n"
+"            border_width: 20 });\n"
+"\n"
+"        // Create a label for the penguin to talk to you\n"
+"        this._penguin = new Gtk.Label ({\n"
+"            height_request: 180,\n"
+"            width_request: 400,\n"
+"            label: \"Squaaaak?\",\n"
+"            wrap: true });\n"
+"\n"
+"        // Create a textview for you to talk to the penguin\n"
+"        this.buffer = new Gtk.TextBuffer();\n"
+"        this._textView = new Gtk.TextView ({\n"
+"            buffer: this.buffer,\n"
+"            editable: true,\n"
+"            wrap_mode: Gtk.WrapMode.WORD });\n"
+"\n"
+"        // Create a \"scrolled window\" to put your textview in so it will scroll\n"
+"        this._scrolled = new Gtk.ScrolledWindow ({\n"
+"            hscrollbar_policy: Gtk.PolicyType.AUTOMATIC,\n"
+"            vscrollbar_policy: Gtk.PolicyType.AUTOMATIC,\n"
+"            shadow_type: Gtk.ShadowType.ETCHED_IN,\n"
+"            height_request: 180,\n"
+"            width_request: 400, });\n"
+"\n"
+"        // Put the textview into the scrolled window\n"
+"        this._scrolled.add_with_viewport (this._textView);\n"
+"\n"
+"        // Create a grid to organize them in\n"
+"        this._grid = new Gtk.Grid ({\n"
+"            halign: Gtk.Align.CENTER,\n"
+"            valign: Gtk.Align.CENTER });\n"
+"\n"
+"        // Put the label and textview in the grid one on top of the other\n"
+"        this._grid.attach (this._penguin, 0, 0, 1, 1);\n"
+"        this._grid.attach (this._scrolled, 0, 1, 1, 1);\n"
+"\n"
+"        // Create a button to send your message to the penguin\n"
+"        this._send = new Gtk.Button ({\n"
+"            halign: Gtk.Align.END,\n"
+"            margin_top: 20,\n"
+"            label: \"Send\" });\n"
+"        this._send.connect ('clicked', Lang.bind (this, this._chat));\n"
+"\n"
+"        // Create a grid that will have the other grid on top and the button on bottom\n"
+"        this._mainGrid = new Gtk.Grid ({\n"
+"            halign: Gtk.Align.CENTER,\n"
+"            valign: Gtk.Align.CENTER });\n"
+"\n"
+"        // Add the other grid and the button to the main grid\n"
+"        this._mainGrid.attach (this._grid, 0, 0, 1, 1);\n"
+"        this._mainGrid.attach (this._send, 0, 1, 1, 1);\n"
+"\n"
+"        // Attach the main grid to the window\n"
+"        this._window.add (this._mainGrid);\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    _chat: function () {\n"
+"\n"
+"        // Create a random number to determine what the penguin says\n"
+"        this.number = Math.floor ((Math.random() * 3) + 1);\n"
+"\n"
+"        // Did you actually say anything?\n"
+"        if (this.buffer.text) {\n"
+"\n"
+"            // Did you mention fish?\n"
+"            if (this.buffer.text.match (/fish/gi)) {\n"
+"\n"
+"                // Have the penguin squaak about fish\n"
+"                if (this.number == 1)\n"
+"                    this._penguin.set_label (\"FISH!\");\n"
+"\n"
+"                else if (this.number == 2)\n"
+"                    this._penguin.set_label (\"Fish fish fish fish. Fish!\");\n"
+"\n"
+"                else\n"
+"                    this._penguin.set_label (\"Fish? Fish fish fish. Fish fish. FISH!\");\n"
+"\n"
+"            }\n"
+"\n"
+"            // I guess you didn't mention fish\n"
+"            else {\n"
+"\n"
+"                // Have the penguin talk about penguinny stuff\n"
+"                if (this.number == 1)\n"
+"                    this._penguin.set_label (\"SQUAAK!\");\n"
+"\n"
+"                else if (this.number == 2)\n"
+"                    this._penguin.set_label (\"Ork ork ork ork squaak. Squaak squaak! *waves flippers*\");\n"
+"\n"
+"                else\n"
+"                    this._penguin.set_label (\"Ork ork ork ork ork?\");\n"
+"\n"
+"            }\n"
+"\n"
+"        }\n"
+"\n"
+"        // Clear the buffer\n"
+"        this.buffer.text = \"\";\n"
+"\n"
+"        // Give focus back to the textview so you don't have to click it again\n"
+"        this._textView.has_focus = true;\n"
+"\n"
+"    }\n"
+"\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new TextViewExample ();\n"
+"app.application.run (ARGV);\n"
+msgstr ""
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"const TextViewExample = new Lang.Class ({\n"
+"    Name: 'TextView Example',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function () {\n"
+"        this.application = new Gtk.Application ({\n"
+"            application_id: 'org.example.jstextview' });\n"
+"\n"
+"        // Connect 'activate' and 'startup' signals to the callback functions\n"
+"        this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"        this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents windows when active\n"
+"    _onActivate: function () {\n"
+"        this._window.present ();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function () {\n"
+"        this._buildUI ();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function () {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow  ({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            title: \"Talk to a Penguin\",\n"
+"            default_height: 400,\n"
+"            default_width: 440,\n"
+"            border_width: 20 });\n"
+"\n"
+"        // Create a label for the penguin to talk to you\n"
+"        this._penguin = new Gtk.Label ({\n"
+"            height_request: 180,\n"
+"            width_request: 400,\n"
+"            label: \"Squaaaak?\",\n"
+"            wrap: true });\n"
+"\n"
+"        // Create a textview for you to talk to the penguin\n"
+"        this.buffer = new Gtk.TextBuffer();\n"
+"        this._textView = new Gtk.TextView ({\n"
+"            buffer: this.buffer,\n"
+"            editable: true,\n"
+"            wrap_mode: Gtk.WrapMode.WORD });\n"
+"\n"
+"        // Create a \"scrolled window\" to put your textview in so it will scroll\n"
+"        this._scrolled = new Gtk.ScrolledWindow ({\n"
+"            hscrollbar_policy: Gtk.PolicyType.AUTOMATIC,\n"
+"            vscrollbar_policy: Gtk.PolicyType.AUTOMATIC,\n"
+"            shadow_type: Gtk.ShadowType.ETCHED_IN,\n"
+"            height_request: 180,\n"
+"            width_request: 400, });\n"
+"\n"
+"        // Put the textview into the scrolled window\n"
+"        this._scrolled.add_with_viewport (this._textView);\n"
+"\n"
+"        // Create a grid to organize them in\n"
+"        this._grid = new Gtk.Grid ({\n"
+"            halign: Gtk.Align.CENTER,\n"
+"            valign: Gtk.Align.CENTER });\n"
+"\n"
+"        // Put the label and textview in the grid one on top of the other\n"
+"        this._grid.attach (this._penguin, 0, 0, 1, 1);\n"
+"        this._grid.attach (this._scrolled, 0, 1, 1, 1);\n"
+"\n"
+"        // Create a button to send your message to the penguin\n"
+"        this._send = new Gtk.Button ({\n"
+"            halign: Gtk.Align.END,\n"
+"            margin_top: 20,\n"
+"            label: \"Send\" });\n"
+"        this._send.connect ('clicked', Lang.bind (this, this._chat));\n"
+"\n"
+"        // Create a grid that will have the other grid on top and the button on bottom\n"
+"        this._mainGrid = new Gtk.Grid ({\n"
+"            halign: Gtk.Align.CENTER,\n"
+"            valign: Gtk.Align.CENTER });\n"
+"\n"
+"        // Add the other grid and the button to the main grid\n"
+"        this._mainGrid.attach (this._grid, 0, 0, 1, 1);\n"
+"        this._mainGrid.attach (this._send, 0, 1, 1, 1);\n"
+"\n"
+"        // Attach the main grid to the window\n"
+"        this._window.add (this._mainGrid);\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    _chat: function () {\n"
+"\n"
+"        // Create a random number to determine what the penguin says\n"
+"        this.number = Math.floor ((Math.random() * 3) + 1);\n"
+"\n"
+"        // Did you actually say anything?\n"
+"        if (this.buffer.text) {\n"
+"\n"
+"            // Did you mention fish?\n"
+"            if (this.buffer.text.match (/fish/gi)) {\n"
+"\n"
+"                // Have the penguin squaak about fish\n"
+"                if (this.number == 1)\n"
+"                    this._penguin.set_label (\"FISH!\");\n"
+"\n"
+"                else if (this.number == 2)\n"
+"                    this._penguin.set_label (\"Fish fish fish fish. Fish!\");\n"
+"\n"
+"                else\n"
+"                    this._penguin.set_label (\"Fish? Fish fish fish. Fish fish. FISH!\");\n"
+"\n"
+"            }\n"
+"\n"
+"            // I guess you didn't mention fish\n"
+"            else {\n"
+"\n"
+"                // Have the penguin talk about penguinny stuff\n"
+"                if (this.number == 1)\n"
+"                    this._penguin.set_label (\"SQUAAK!\");\n"
+"\n"
+"                else if (this.number == 2)\n"
+"                    this._penguin.set_label (\"Ork ork ork ork squaak. Squaak squaak! *waves flippers*\");\n"
+"\n"
+"                else\n"
+"                    this._penguin.set_label (\"Ork ork ork ork ork?\");\n"
+"\n"
+"            }\n"
+"\n"
+"        }\n"
+"\n"
+"        // Clear the buffer\n"
+"        this.buffer.text = \"\";\n"
+"\n"
+"        // Give focus back to the textview so you don't have to click it again\n"
+"        this._textView.has_focus = true;\n"
+"\n"
+"    }\n"
+"\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new TextViewExample ();\n"
+"app.application.run (ARGV);\n"
 
-#: C/guitar-tuner.vala.page:126(p)
+#: C/textview.js.page:255(item/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."
+"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.";
+"ScrolledWindow.html\">Gtk.ScrolledWindow</link>"
 msgstr ""
-"ÎÏÏÎ Î ÎÎÏÏÎÏÎ ÎÎ ÎÎÎÎÎÎ ÏÏÏ ÎÎ ÏÎÏÎÎÎÎ Î ÎÏÎÎÎÎÏ ÎÏÎÏÏ. <link href=\"http://";
-"developer.gnome.org/platform-overview/stable/gstreamer\">GStreamer</link> "
-"ÎÎÎÎÎ Î ÏÎÎÎÎÏÏÏ ÏÎÎÏÎÎÏÏÎ ÏÎÏ GNOME - ÎÏÎÏÎÎÏÎ ÎÎ ÏÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÎÎÎ "
-"ÏÎÎÎÎÎÎ, ÎÎÎÏÎÏÎ ÎÎÎ ÎÏÎÎÎÏÎÎÏÎÎ ÎÎÎÏÎÎ, ÎÏÎÏ, ÏÎÏÎ ÎÏÏÎÎÎÎÎÏÎÏ ÎÎÎ ÏÎ "
-"ÏÎÏÏÎÎÎÎ. ÎÎÏ, ÎÎ ÏÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÎÎ ÎÎ ÏÎÏÎÎÎÏÎÎ ÏÏÎÎÏÏ ÎÎÎÏ "
-"ÏÏÏÎÏÏÎÏÎÏ."
+"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.";
+"ScrolledWindow.html\">Gtk.ScrolledWindow</link>"
 
-#: C/guitar-tuner.vala.page:127(p)
+#: C/textview.js.page:256(item/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."
+"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.TextBuffer.";
+"html\">Gtk.TextBuffer</link>"
 msgstr ""
-"ÎÎÎÎÎÎÎÎÎÎÎÎ, ÏÎ GStreamer ÎÎÎÏÎÏÏÎÎÎ ÏÏ ÎÎÎÏ: ÎÎÎÎÎÏÏÎÎÎÏÎ ÎÎÎ<link href="
-"\"http://gstreamer.freedesktop.org/data/doc/gstreamer/head/manual/html/";
-"section-intro-basics-bins.html\"> <em>ÎÎÎÏÎÏÎÏÏÎ</em></link> ÏÎÏ ÏÎÏÎÎÏÎÎ "
-"ÎÎÎÏÎÏÎ ÏÏÎÎÏÎÎÎ ÎÏÎÎÎÏÎÎÏÎÎÏ ÏÎÏ ÏÎÎÎÎÎÎÏÎ ÎÏÏ ÏÎÎ <em>ÏÎÎÎ</em> ÏÏÎ "
-"<em>ÏÎÎÎÎÏÏÎÏÎ</em> (ÎÎÎÎÎ). Î ÏÎÎÎ ÎÏÎÏÎÎ ÎÎ ÎÎÎÎÎ ÎÎÎ ÎÏÏÎÎÎ ÎÎÎÏÎÎÏ, "
-"ÎÎÎÏÎÎ, Î ÎÎÏÏÎÎÎÏ, ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ, ÎÎÎ Î ÎÎÎÎÎÏ ÎÏÎÏÎÎ ÎÎ ÎÎÎÎÎ ÎÏÎÏÎÎÏ "
-"ÏÏÏÏÎÏÎÎÏ Î ÎÎÏÏÎ ÎÏÎÏ."
+"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.TextBuffer.";
+"html\">Gtk.TextBuffer</link>"
 
-#: C/guitar-tuner.vala.page:128(p) C/guitar-tuner.py.page:132(p)
-#: C/guitar-tuner.js.page:41(p) C/guitar-tuner.cpp.page:116(p)
-#: C/guitar-tuner.c.page:138(p)
+#: C/textview.js.page:257(item/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."
+"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.TextView.html";
+"\">Gtk.TextView</link>"
 msgstr ""
-"ÎÎÎÎÎÏÎ ÏÏÎÎ ÏÎÎÎ ÎÎÎ ÏÏÎÎ ÎÎÎÎÎ, ÎÏÎÏÎÎÏÎ ÎÎ ÎÏÎÏÎÏÏÎÏÎ ÎÎÎÏÎÏÎ ÏÎÎÏÏÎ ÎÎÎ "
-"ÎÎ ÎÎÏÎÏÏÎÏÎÎÏ ÎÎ ÏÎÎÏÎÏÏÎÏÎ ÎÏÎ, ÎÎÏÎÏÏÎÏÎÏ ÎÎÏÏÏÎ ÎÎÎ ÎÎÎÏÎ. ÎÎÎÎ ÏÏÎÎÏÎÎÎ "
-"ÏÎÏ ÎÎÎÏÎÏÎÏÏÎÏ ÎÏÎÎ ÎÎÎÏÏÎÏÎÏ ÏÎÏ ÎÏÎÏÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÎÏÎ ÎÎÎ ÎÎ "
-"ÎÎÎÎÎÎÏÎ ÏÎ ÏÏÎÏÎÏÎÏÎÏÎ ÏÎÏÏ."
+"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.TextView.html";
+"\">Gtk.TextView</link>"
 
-#: C/guitar-tuner.vala.page:130(p) C/guitar-tuner.py.page:134(p)
-#: C/guitar-tuner.js.page:43(p) C/guitar-tuner.cpp.page:118(p)
-#: C/guitar-tuner.c.page:140(p)
-msgid "An example GStreamer pipeline."
-msgstr "ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ ÎÎÎÏÎÏÎÏÏÎÏ GStreamer."
+#: C/textview.py.page:7(info/title)
+msgctxt "text"
+msgid "TextView (Python)"
+msgstr "TextView (Python)"
 
-#: C/guitar-tuner.vala.page:135(title) C/guitar-tuner.py.page:139(title)
-#: C/guitar-tuner.c.page:145(title)
-msgid "Set up the pipeline"
-msgstr "ÎÏÎÎÎÏÎ ÏÎÏ ÎÎÎÏÎÏÎÏÏÎÏ"
+#: C/textview.py.page:25(info/desc)
+msgid "Widget that displays a GtkTextBuffer"
+msgstr "ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÏÎÏ ÎÎÏÎÎÎÎÎÎ ÎÎÎ GtkTextBuffer"
 
-#: C/guitar-tuner.vala.page:136(p)
-msgid ""
-"In this example we will use a tone generator source called "
-"<code>audiotestsrc</code> and send the output to the default system sound "
-"device, <code>autoaudiosink</code>. We only need to configure the frequency "
-"of the tone generator; this is accessible through the <code>freq</code> "
-"property of <code>audiotestsrc</code>."
-msgstr ""
-"ÎÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÎÎ ÏÎÎÎ ÏÎÏÎÎÏÎÎÏ ÏÏÎÏÎ ÏÎÏ "
-"ÎÎÎÎÏÎÎ <code>audiotestsrc</code> ÎÎÎ ÎÎ ÏÏÎÎÎÎÏÎÎ ÏÎÎ ÎÎÎÎÎ ÏÏÎÎ "
-"ÏÏÎÎÏÎÎÎÎÎÎÎÎ ÏÏÏÎÎÏÎ ÎÏÎÏ ÏÎÏ ÏÏÏÏÎÎÎÏÎÏ, <code>autoaudiosink</code>. "
-"ÎÏÎÏÎÎ ÎÏÎÎ ÎÎ ÏÏÎÎÎÏÎÏÎÎ ÏÎÎ ÏÏÏÎÏÏÎÏÎ ÏÎÏ ÏÎÏÎÎÏÎÎÏ ÏÏÎÎÏÂ ÎÏÏÏ ÎÎÎÎÎ "
-"ÎÎÎÎÎÏÎÎÎ ÎÎÏÎ ÎÏÏ ÏÎÎ ÎÎÎÏÏÎÏÎ <code>freq</code> ÏÎÏ <code>audiotestsrc</"
-"code>."
+#: C/textview.py.page:30(note/p)
+msgid "This is an example of Gtk.TextView."
+msgstr "ÎÏÏÏ ÎÎÎÎÎ ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ ÏÎÏ Gtk.TextView."
 
-#: C/guitar-tuner.vala.page:138(p)
+#: C/textview.py.page:32(note/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:"
+"But we can also have a new line if we write a long sentence (the text will "
+"wrap breaking lines between words)."
 msgstr ""
-"ÎÏÎÎÎÎÎÏÎÎ ÎÎ ÏÏÎÏÎÎÏÎÏÎÎ ÎÎÎ ÎÏÎÎÎÎ ÎÎÎ ÎÏÏÎÎÎÏÎÎÎÏÎ ÏÎÏ GStreamer ÎÎÎÏÎ "
-"ÏÎÎ ÏÎÏÎÎÎÏÏ ÎÏÎÎÎÎ ÏÏÎÎ ÎÏÎÎÎÎ ÏÎÎÏ ÎÏÏ ÏÎÎ ÎÎÎÏÎ <code>Gtk.init</code> ÏÏÎ "
-"ÏÏÎÎÏÏÎÏÎ <code>main</code>:"
+"ÎÎÎÎ ÎÏÎÏÎÏÎÎ ÎÏÎÏÎÏ ÎÎ ÎÏÎÏÎÎ ÎÎÎ ÎÎÎ ÎÏÎÎÎÎ ÎÎÎ ÎÏÎÏÎÏÎÎ ÎÎÎ ÎÎÎÎÎÎ "
+"ÏÏÏÏÎÏÎ (ÏÎ ÎÎÎÎÎÎÎ ÎÎ ÎÎÎÎÎÏÎÏÎÎÎ ÎÎÎÎÏÏÏÎÎÏÎÏ ÏÎÏ ÎÏÎÎÎÎÏ ÎÎÏÎÎÏ ÏÏÎ "
+"ÎÎÎÎÏÎ)."
 
-#: C/guitar-tuner.vala.page:140(p)
-msgid ""
-"Then, copy the following function into <file>guitar_tuner.vala</file> inside "
-"our <code>Main</code> class:"
-msgstr ""
-"ÎÎÏÎ, ÎÎÏÎÎÏÎÏÏÎ ÏÎÎ ÎÎÏÎÎÏÎÎ ÏÏÎÎÏÏÎÏÎ ÏÏÎ <file>guitar_tuner.vala</file> "
-"ÎÎÏÎ ÏÏÎÎ ÎÎÎÏÎ ÎÎÏ <code>Main</code>:"
+#: C/textview.py.page:33(note/p)
+msgid "If we have a loooooooooooooooooooooooooooooooooooong"
+msgstr "ÎÎÎ ÎÏÎÏÎÎ ÎÎÎ ÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎ"
 
-#: C/guitar-tuner.vala.page:175(p)
-msgid ""
-"The first three lines create source and sink GStreamer elements (<link href="
-"\"http://valadoc.org/gstreamer-0.10/Gst.Element.html\";><code>Gst.Element</"
-"code></link>), and a <link href=\"http://valadoc.org/gstreamer-0.10/Gst.";
-"Pipeline.html\">pipeline element</link> (which will be used as a container "
-"for the other two elements). Those are class variables so they are defined "
-"outside the method. The pipeline is given the name \"note\"; the source is "
-"named \"source\" and is set to the <code>audiotestsrc</code> source; and the "
-"sink is named \"output\" and set to the <code>autoaudiosink</code> sink "
-"(default sound card output)."
-msgstr ""
-"ÎÎ ÏÏÎÎÏ ÏÏÏÏÎÏ ÎÏÎÎÎÎÏ ÎÎÎÎÎÏÏÎÎÏÎ ÏÎ ÏÏÎÎÏÎÎÎ ÏÎÎÎ ÎÎÎ ÎÎÎÎÎ ÏÎÏ GStreamer "
-"(<link href=\"http://valadoc.org/gstreamer-0.10/Gst.Element.html\";><code>Gst."
-"Element</code></link>), ÎÎÎ ÎÎÎ <link href=\"http://valadoc.org/";
-"gstreamer-0.10/Gst.Pipeline.html\">ÏÏÎÎÏÎÎÎ ÎÎÎÏÎÏÎÏÏÎÏ</link> (ÏÎ ÎÏÎÎÎ ÎÎ "
-"ÏÏÎÏÎÎÎÏÎÎÎÎÎÎ ÏÎÎ ÏÎÏÎÎÎÏÎÏ ÎÎÎ ÏÎ ÎÏÎ ÎÎÎÎ ÏÏÎÎÏÎÎÎ). ÎÏÏÎ ÎÎÎÎÎ "
-"ÎÎÏÎÎÎÎÏÎÏ ÎÎÎÏÎÏÎ, ÎÏÏÎ ÎÏÎÎÎÎÏÎÎ ÎÎÏ ÎÏÏ ÏÎ ÎÎÎÎÎÎ. ÎÎÎÎÏÎÎ ÏÎ ÏÎÎÎÎ \"note"
-"\" ÏÏÎ ÎÎÎÏÎÏÎÏÏÎÂ ÎÎÎÎÎÎÎÏÎÎ ÏÎÎ ÏÎÎÎ \"source\" ÎÎÎ ÏÏÎÎÎÎÎÏÎÎ ÏÏÎÎ ÏÎÎÎ "
-"<code>audiotestsrc</code>Â ÎÎÎ ÎÎÎÎÎÎÎÏÎÎ ÏÎÎ ÎÎÎÎÎ \"output\" ÎÎÎ "
-"ÏÏÎÎÎÎÎÏÎÎ ÏÏÎÎ ÎÎÎÎÎ <code>autoaudiosink</code> (ÏÏÎÎÏÎÎÎÎÎÎÎÎ ÎÎÎÎÎÏ "
-"ÎÎÏÏÎÏ ÎÏÎÏ)."
+#: C/textview.py.page:34(note/p)
+msgid "(that was long)"
+msgstr "(ÏÎÏ ÎÏÎÎ ÎÎÎÎÎÎ)"
+
+#: C/textview.py.page:35(note/p)
+msgid "word, an horizontal scrollbar will appear."
+msgstr "ÎÎÎÎ, ÎÎÎ ÎÏÎÎÏÎÏÎÎ ÎÏÎÎÎÎ ÎÏÎÎÏÎÏ ÎÎ ÎÎÏÎÎÎÏÏÎÎ."
 
-#: C/guitar-tuner.vala.page:178(p)
+#: C/textview.py.page:44(section/code)
+#, no-wrap
 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."
+"from gi.repository import Gtk\n"
+"import sys\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"TextView Example\", application=app)\n"
+"        self.set_default_size(300, 450)\n"
+"\n"
+"        # a scrollbar for the child widget (that is going to be the textview)\n"
+"        scrolled_window = Gtk.ScrolledWindow()\n"
+"        scrolled_window.set_border_width(5)\n"
+"        # we scroll only if needed\n"
+"        scrolled_window.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC)\n"
+"\n"
+"        # a text buffer (stores text)\n"
+"        buffer1 = Gtk.TextBuffer()\n"
+"\n"
+"        # a textview (displays the buffer)\n"
+"        textview = Gtk.TextView(buffer=buffer1)\n"
+"        # wrap the text, if needed, breaking lines in between words\n"
+"        textview.set_wrap_mode(Gtk.WrapMode.WORD)\n"
+"\n"
+"        # textview is scrolled\n"
+"        scrolled_window.add(textview)\n"
+"\n"
+"        self.add(scrolled_window)\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
 msgstr ""
-"Î ÎÎÎÏÎ ÏÏÎ <link href=\"http://valadoc.org/gobject-2.0/GLib.Object.set.html";
-"\"><code>source.set</code></link> ÎÏÎÎÎÎ ÏÎÎ ÎÎÎÏÏÎÏÎ <code>freq</code> ÏÎÏ "
-"ÏÏÎÎÏÎÎÎÏ ÏÎÎÎÏ ÏÎ <code>frequency</code>, Î ÎÏÎÎÎ ÎÏÎÎ ÏÎÏÎÏÏÎÎ ÏÏ ÏÏÎÏÎÎ "
-"ÏÏÎ ÏÏÎÎÏÏÎÏÎ <code>play_sound</code>. ÎÏÏÎ ÎÎÎÎÎ Î ÏÏÏÎÏÏÎÏÎ ÏÎÏ ÎÏÏÎÏ ÏÎ "
-"Hertz ÏÎÎÎÎÏ ÏÏÎÏÎÎÎÏ ÏÏÏÎÏÏÎÏÎÏ ÎÎ ÎÏÎÏÏÎÏÎ ÎÏÎÏÏÎÏÎ."
+"from gi.repository import Gtk\n"
+"import sys\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"TextView Example\", application=app)\n"
+"        self.set_default_size(300, 450)\n"
+"\n"
+"        # a scrollbar for the child widget (that is going to be the textview)\n"
+"        scrolled_window = Gtk.ScrolledWindow()\n"
+"        scrolled_window.set_border_width(5)\n"
+"        # we scroll only if needed\n"
+"        scrolled_window.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC)\n"
+"\n"
+"        # a text buffer (stores text)\n"
+"        buffer1 = Gtk.TextBuffer()\n"
+"\n"
+"        # a textview (displays the buffer)\n"
+"        textview = Gtk.TextView(buffer=buffer1)\n"
+"        # wrap the text, if needed, breaking lines in between words\n"
+"        textview.set_wrap_mode(Gtk.WrapMode.WORD)\n"
+"\n"
+"        # textview is scrolled\n"
+"        scrolled_window.add(textview)\n"
+"\n"
+"        self.add(scrolled_window)\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
+
+#: C/textview.py.page:48(section/title)
+msgid "Useful methods for a TextView widget"
+msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ TextView"
 
-#: C/guitar-tuner.vala.page:181(p)
+#: C/textview.py.page:50(section/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>."
+"A <code>Gtk.TextView</code> displays the text stored in a <code>Gtk."
+"TextBuffer</code>. However, most text manipulation is accomplished with "
+"iterators, represented by a <code>Gtk.TextIter</code> - a position between "
+"two characters in the text buffer. Iterators are not valid indefinitely; "
+"whenever the buffer is modified in a way that affects the contents of the "
+"buffer, all outstanding iterators become invalid. Because of this, iterators "
+"canât be used to preserve positions across buffer modifications. To preserve "
+"a position, we use a <code>Gtk.TextMark</code>, that can be set visible with "
+"<code>visible(True)</code>. A text buffer contains two built-in marks; an "
+"\"insert\" mark (the position of the cursor) and the \"selection_bound\" "
+"mark."
 msgstr ""
-"ÎÎ <link href=\"http://valadoc.org/gstreamer-0.10/Gst.Bin.add.html";
-"\"><code>pipeline.add</code></link> ÎÎÎÎÎ ÏÎÎ ÏÎÎÎ ÎÎÎ ÏÎÎ ÎÎÎÎÎ ÏÏÎ "
-"ÎÎÎÏÎÏÎÏÏÎ. Î ÎÎÎÏÎÏÎÏÏÎ ÎÎÎÎÎ ÎÎÎ <link href=\"http://valadoc.org/";
-"gstreamer-0.10/Gst.Bin.html\"><code>Gst.Bin</code></link>,ÏÎÏ ÎÎÎÎÎ ÎÏÎÎ ÎÎÎ "
-"ÏÏÎÎÏÎÎÎ ÏÎÏ ÎÏÎÏÎÎ ÎÎ ÏÎÏÎÎÏÎÎ ÏÎÎÎÎÏÎÎ ÎÎÎÎ ÏÏÎÎÏÎÎÎ GStreamer. ÎÎÎÎÎÎ, "
-"ÎÏÎÏÎÎÏÎ ÎÎ ÏÏÎÏÎÎÏÎÏÎ ÏÏÎ ÏÏÎÎÏÎÎÎ ÎÎÎÎÏÎ ÏÏÎ ÎÎÎÏÎÏÎÏÏÎ ÏÏÎÏÎÎÏÎÎÏÎÏ "
-"ÏÎÏÎÏÏÏÏÎÏÎÏ ÎÎÎÏÎÎÏ ÏÏÎ <code>pipeline.add</code>."
+"ÎÎÎ <code>Gtk.TextView</code> ÎÎÏÎÎÎÎÎÎ ÏÎ ÎÏÎÎÎÎÎÏÎÎÎÎ ÎÎÎÎÎÎÎ ÏÎ ÎÎÎ "
+"<code>Gtk.TextBuffer</code>. ÎÎÏÏ, Î ÏÎÏÎÏÏÏÏÎÏÎ ÎÏÎÎÎÏÎÎÏÎÎ ÏÎÏ ÎÎÎÎÎÎÎÏ "
+"ÏÏÎÎÎÎÏÎÏÎÎÎÎÏÎÎ ÎÎ ÎÏÎÎÎÎÎÏÏÎÏ, ÎÎÏÎÏÏÎÏÏÏÎÏÏÎÎÎÎÎ ÎÏÏ ÎÎÎ <code>Gtk."
+"TextIter</code> - ÎÎÎ ÎÎÏÎ ÎÎÏÎÎÏ ÎÏÎ ÏÎÏÎÎÏÎÏÏÎ ÏÏÎÎ ÎÎÎÎÎÎÎÏÎ ÎÎÎÎÎ ÏÎÏ "
+"ÎÎÎÎÎÎÎÏ. ÎÎ ÎÏÎÎÎÎÎÏÏÎÏ ÎÎÎ ÎÎÎÎÎ ÎÎÎÏÏÎÎ ÎÏ' ÎÏÎÎÏÎÂ ÏÏÎÏÎ Î ÎÎÎÎÎÎÎÏÎ "
+"ÎÎÎÎÎ ÏÏÎÏÎÏÎÎÎÎÏÎÎ ÎÎ ÏÏÏÏÎ ÏÎÏ ÎÏÎÏÎÎÎÎÎ ÏÎ ÏÎÏÎÎÏÏÎÎÎÎ ÏÎÏ ÏÏÎÎÎÏÏÎÎÎÏ "
+"ÎÎÎÎÎÏ, ÏÎÎÎ ÎÎ ÎÎÎÏÎÎÎÎÏ ÎÏÎÎÎÎÎÏÏÎÏ ÎÎÎÎÎÏÎÎ ÎÎÏÏÎÎ. ÎÏÎÏ ÎÏÏÎÏ, ÎÎ "
+"ÎÏÎÎÎÎÎÏÏÎÏ ÎÎÎ ÎÏÎÏÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÎÏÎ ÎÎÎ ÎÎ ÎÎÎÏÎÏÎÏÎÏÎ ÏÎÏ ÎÎÏÎÎÏ ÎÎ "
+"ÏÎÏ ÏÏÎÏÎÏÎÎÎÏÎÎÏ ÏÎÏ ÎÎÎÎÎÎÎÏÎÏ ÎÎÎÎÎÏ. ÎÎÎ ÎÎ ÎÎÎÏÎÏÎÏÎÏÎ ÎÎÎ ÎÎÏÎ, "
+"ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÎÎÎ <code>Gtk.TextMark</code>, ÏÎÏ ÎÏÎÏÎÎ ÎÎ ÎÏÎÏÏÎÎ ÎÏÎÏÏ ÎÎ "
+"<code>visible(True)</code>. ÎÎÎ ÎÎÎÎÎÎÎÏÎ ÎÎÎÎÎ ÎÎÎÎÎÎÎÏ ÏÎÏÎÎÏÎÎ ÎÏÎ "
+"ÎÎÏÏÎÎÏÏÎÎÎÎ ÏÎÎÎÎÎÎÂ ÎÎÎ ÏÎÎÎÎÎ \"ÎÎÏÎÎÏÎÎÏ\" (Î ÎÎÏÎ ÏÎÏ ÎÏÎÎÎÎ) ÎÎÎ ÏÎ "
+"ÏÎÎÎÎÎ \"ÎÎÏÎÎÏÏÎ_ÎÏÎÎÎÎÎÏ\"."
+
+#: C/textview.py.page:51(section/p)
+msgid "Methods for a TextView widget:"
+msgstr "ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ TextView:"
 
-#: C/guitar-tuner.vala.page:184(p)
+#: C/textview.py.page:53(item/p)
 msgid ""
-"Next, <link href=\"http://valadoc.org/gstreamer-0.10/Gst.Element.link.html";
-"\"><code>sink.link</code></link> is used to connect the elements together, "
-"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>)."
+"The TextView widget is by default editable. If you prefer otherwise, use "
+"<code>set_editable(False)</code>. If the buffer has no editable text, it "
+"might be a good idea to use <code>set_cursor_visible(False)</code> as well."
 msgstr ""
-"ÎÎÏÏÏÎÎ, ÏÎ <link href=\"http://valadoc.org/gstreamer-0.10/Gst.Element.link.";
-"html\"><code>sink.link</code></link> ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÎÎÎ ÏÏÎÎÎÏÎ ÏÏÎ "
-"ÏÏÎÎÏÎÎÏÎ ÎÎÎÎ, ÎÏÏÎ ÏÏÏÎ Î ÎÎÎÎÎÏ ÏÎÏ ÏÎÎÎÏ (ÎÎÎÏ ÏÏÎÎÏ) ÎÎ ÏÎÎÎÎÎÎÎ ÏÏÎÎ "
-"ÎÎÏÎÎÎ ÏÎÏ ÎÎÏÎÎÏ (Î ÎÏÎÎÎ ÎÎÏÎ ÎÎÎÎÎ ÎÎÎÎÎÏ ÏÏÎÎ ÎÎÏÏÎ ÎÏÎÏ). ÎÎ <link href="
-"\"http://www.valadoc.org/gstreamer-0.10/Gst.Element.set_state.html";
-"\"><code>pipeline.set_state</code></link> ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÎÏÎÎÏÎ ÎÎÎ ÏÎÎ "
-"ÎÎÎÎÎÎÏÎ ÏÎÏ ÎÎÎÏÎÏÎÎÏÎÎÏ, ÏÏÎÎÎÎÎÎÏÎÏ ÏÎÎ <link href=\"http://www.valadoc.";
-"org/gstreamer-0.10/Gst.State.html\">ÎÎÏÎÏÏÎÏÎ ÏÎÏ ÏÏÎÎÎÏÏÎÏ</link> ÎÎ ÏÎÎÎÎÎ "
-"(<code>Gst.State.PLAYING</code>)."
+"ÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ TextView ÎÎÎÎÎ ÎÏÏ ÏÏÎÎÏÎÎÎÎÎ ÎÏÎÎÎÏÎÎÏÎÎÎ. ÎÎÎ "
+"ÏÏÎÏÎÎÎÏÎ ÎÎÎÎÏÏ, ÏÏÎÏÎÎÎÏÎÎÎÏÏÎ <code>set_editable(False)</code>. ÎÎÎ Î "
+"ÎÎÎÎÎÎÎÏÎ ÎÎÎÎÎ ÎÎÎ ÎÏÎÎ ÎÏÎÎÎÏÎÎÏÎÎÎ ÎÎÎÎÎÎÎ, ÎÏÏÏ ÎÎ ÎÎÎÎÎ ÎÎÎ ÎÎÎÎ ÎÎÎÎ "
+"ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ <code>set_cursor_visible(False)</code> ÎÏÎÏÎÏ."
 
-#: C/guitar-tuner.vala.page:187(p)
+#: C/textview.py.page:54(item/p)
 msgid ""
-"We don't want to play an annoying tone forever, so the last thing "
-"<code>play_sound</code> does is to add a <link href=\"http://www.valadoc.org/";
-"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."
+"The justification of the text is set with <code>set_justification(Gtk."
+"Justification.JUSTIFICATION)</code> where <code>JUSTIFICATION</code> is one "
+"of <code>LEFT, RIGHT, CENTER, FILL</code>."
 msgstr ""
-"ÎÎÎ ÎÎÎÎÏÎÎ ÎÎ ÏÎÎÎÎÏÎÎ ÎÎÎÎ ÎÎÎÏÎÎÏÎÎÏ ÎÏÎ ÎÎÎ ÏÎÎÏÎ, ÎÏÏÏÎ ÏÎ ÏÎÎÎÏÏÎÎÎ "
-"ÏÏÎÎÎÎ ÏÎÏ ÎÎÎÎÎ Î <code>play_sound</code> ÎÎÎÎÎ ÎÎ ÏÏÎÏÎÎÏÎÎ ÎÎÎÎ <link "
-"href=\"http://www.valadoc.org/glib-2.0/GLib.TimeoutSource.html";
-"\"><code>TimeoutSource</code></link>. ÎÏÏÏ ÎÏÎÎÎÎ ÎÎÎ ÏÏÎÎÎÎÏ ÏÏÎÎ ÏÎÏ ÎÎ "
-"ÏÏÎÎÎÏÎÏÎÎ ÏÎÎ ÎÏÎÂ ÏÎÏÎÎÎÎÎÎ ÎÎÎ 200 ms ÏÏÎÎ ÎÎÎÎÏÎÎ ÏÎÎ ÏÎÎÏÎÏÏÎ ÏÎÎÎÏÎÏ "
-"ÏÎÏ ÎÏÎÏÏÎÎÎ ÏÏÎ ÎÏÎÎÎÎ ÏÎÏ ÏÏÎÎÎÏÎ ÎÎÎ ÎÎÏÎÏÏÏÎÏÎÎ ÏÎ ÎÎÎÏÎÏÎÏÏÎ. "
-"ÎÏÎÏÏÏÎÏÎÎ <code>false</code> ÎÎÎ ÎÎ ÎÏÎÎÏÎÏÎÎ ÏÎÎ ÎÎÎÎ ÎÏÏ ÏÎ ÏÏÎÎÎÎÏ ÏÏÎÎ, "
-"ÎÎÎÎÏÏ ÎÎ ÏÏÎÎÏÎÎÎ ÎÎ ÎÎÎÎÎÏÎÎ ÎÎÎÎ 200 ms."
-
-#: C/guitar-tuner.vala.page:197(title) C/guitar-tuner.c.page:120(title)
-msgid "Creating the signal handler"
-msgstr "ÎÎÎÎÎÏÏÎÎÎ ÏÎÎÏÎÏÏÎ ÏÎÎÎÏÏÎ"
+"Î ÏÏÎÎÏÎÏÎ ÏÎÏ ÎÎÎÎÎÎÎÏ ÎÏÎÎÎÏÎÎ ÎÎ <code>set_justification(Gtk."
+"Justification.JUSTIFICATION)</code> ÏÏÎÏ <code>JUSTIFICATION</code> ÎÎÎÎÎ "
+"ÎÎÎ ÎÏÏ ÏÎ <code>LEFT, RIGHT, CENTER, FILL</code>."
 
-#: C/guitar-tuner.vala.page:198(p)
+#: C/textview.py.page:55(item/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."
+"The line wrapping of the text is set with <code>set_wrap_mode(Gtk.WrapMode."
+"WRAP)</code> where <code>WRAP</code> is one of <code>NONE</code> (the text "
+"area is made wider), <code>CHAR</code> (break lines anywhere the cursor can "
+"appear), <code>WORD</code> (break lines between words), <code>WORD_CHAR</"
+"code> (break lines between words, but if that is not enough between "
+"characters)."
 msgstr ""
-"ÎÏÎÎ ÏÏÎÎÎÎÏÏÎ ÎÎÎÏÎÏÏÎ ÏÏÎÏÏÎ, ÎÎÎÎÏÎ ÏÎÎ ÏÎ ÎÎÏÎÏÎÎ ÎÎ ÎÎÎÎÏÎ ÏÎÎ ÎÎÎÎ "
-"ÏÏÎÎÏÏÎÏÎ, <gui>on_button_clicked</gui>, ÏÏÎÎ ÏÎÏÎÎÎÏÎ. ÎÏÎÎ ÏÏÎÎÎÎÏÎÎÏÏÎÏÎ, "
-"ÏÎÎÎÏÏÎÎÎÎÎÏÎÎ <gui>main_on_button_clicked</gui> ÏÎÏ ÎÎÎÎ ÏÏÎÎ ÏÏÎÎÎÎÏÏÎ UI "
-"ÏÏÎ ÎÏÏÎ Î ÎÎÎÎÎÎÏ ÎÎÎÎÎ ÏÎÎÎÎ ÏÎÏ <code>Main</code> ÎÎÏ. ÎÏÎÏÎÎ ÎÎ "
-"ÏÏÎÏÎÎÏÎÏÎÎ ÎÏÏÎ ÏÎÎ ÏÏÎÎÏÏÎÏÎ ÏÏÎ ÏÎÎÎÎÎ ÎÏÏÎÎÎ."
+"Î ÎÎÎÎÎÏÎÏÏÎ ÎÏÎÎÎÎÏ ÏÎÏ ÎÎÎÎÎÎÎÏ ÎÏÎÎÎÏÎÎ ÎÎ <code>set_wrap_mode(Gtk."
+"WrapMode.WRAP)</code> ÏÏÎÏ <code>WRAP</code> ÎÎÎÎÎ ÎÎÎ ÎÏÏ <code>NONE</code> "
+"(Î ÏÎÏÎÎÏÎ ÏÎÏ ÎÎÎÎÎÎÎÏ ÎÎÎÎÏÎÎ ÏÎÎÏÏÏÎÏÎ), <code>CHAR</code> (Î ÎÎÎÎÎÎ "
+"ÎÏÎÎÎÏÎ ÎÏÎÏÎÎÏÎÏÎ Î ÎÏÎÎÎÎÏ ÎÏÎÏÎÎ ÎÎ ÎÎÏÎÎÎÏÏÎÎ), <code>WORD</code> "
+"(ÎÎÎÎÎÎ ÎÏÎÎÎÏÎ ÎÎÏÎÎÏ ÎÎÎÎÏÎ), <code>WORD_CHAR</code> (ÎÎÎÎÎÎ ÎÏÎÎÎÏÎ "
+"ÎÎÏÎÎÏ ÎÎÎÎÏÎ, ÎÎÎÎ ÎÎÎ ÎÏÏÏ ÎÎÎ ÎÎÎÎÎ ÎÏÎÎÏÏ ÎÎÏÎÎÏ ÏÎÏÎÎÏÎÏÏÎ)."
 
-#: C/guitar-tuner.vala.page:199(p)
+#: C/textview.py.page:57(section/p)
+msgid "Methods for a TextBuffer widget:"
+msgstr "ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ TextBuffer:"
+
+#: C/textview.py.page:59(item/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:"
+"<code>get_insert()</code> returns the <code>Gtk.TextMark</code> that "
+"represents the cursor, that is the insertion point."
 msgstr ""
-"ÎÎÎ ÎÎ ÏÎ ÎÎÎÎÏÎ ÎÏÏÏ, ÏÏÎ ÎÏÏÎÎÎ ÎÎÎÏÎÏÎÏ ÏÏÎÏÏÎ (guitar_tuner.ui), "
-"ÎÏÎÎÎÎÏÎ ÎÎÎ ÎÏÏ ÏÎ ÎÎÏÎÏÎÎ ÎÎ ÎÎÎÎ ÏÎÎÏ ÏÎÏ, ÎÏÎÎÏÎ ÎÎÎÎÎÏÎ "
-"<file>guitar_tuner.vala</file> (ÎÎ ÎÎÎÎ ÏÏÎÎ ÎÎÏÏÎÎÎ ÏÏÎ ÎÎÎÏÏÎ). ÎÎÎÎÎÎÎÎ "
-"ÏÏÎÎ ÎÎÏÏÎÎÎ <gui>ÏÎÎÎÏÎ</gui> ÏÏÎ ÎÎÎÎÎ, ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÎÎÎ ÏÎÎ ÎÏÎÏÎÏ "
-"ÏÎÏ ÎÎÏÎÎÏÎÏ ÎÏÏÎÎÎÏ. ÎÏÏÎ, ÏÎÏÏÎ ÏÎ ÎÏÎÎÎÎ ÏÏÎÏ ÎÏÎÏÎÏÎ ÏÎ ÏÎÎÎ "
-"<gui>ÏÎÏÎÎÎÎÎ</gui> ÎÎÎ ÏÏÏÏÎÎÎ ÎÎÎ ÎÏÏÎÎÏÎ ÏÎÏ ÏÏÎ ÏÎÎÎÎÎ ÎÏÏÎÎÎ ÏÏÎÎ ÎÏÏÎ "
-"ÏÎÏ ÎÎÎÏÎÏ. Î ÏÎÏÎÎÎÏÏ ÎÏÎÎÎÎÏ ÎÎ ÏÏÎÏÏÎÎÎÎ ÏÏÎ ÏÎÎÎÎÎ ÏÎÏ ÎÏÏÎÎÎ:"
+"Î <code>get_insert()</code> ÎÏÎÏÏÏÎÏÎÎ ÏÎ <code>Gtk.TextMark</code> ÏÎÏ "
+"ÎÎÎÏÎÏÎÏÏÎ ÏÎÎ ÎÏÎÎÎÎ, ÏÎÏ ÎÎÎÎÎ ÏÎ ÏÎÎÎÎÎ ÎÎÏÎÎÏÎÎÏ."
 
-#: C/guitar-tuner.vala.page:206(p)
+#: C/textview.py.page:60(item/p)
 msgid ""
-"You can also just type the code at the beginning of the class instead of "
-"using the drag and drop."
+"<code>get_selection_bound()</code> returns the <code>Gtk.TextMark</code> "
+"that represents the selection bound."
 msgstr ""
-"ÎÏÎÏÎÎÏÎ ÎÏÎÏÎÏ ÎÎ ÏÎÎÎÏÏÎÎÎÎÎÏÎÏÎ ÎÏÎÎ ÏÏÎ ÎÏÎÎÎÎ ÏÏÎÎ ÎÏÏÎ ÏÎÏ ÎÎÎÏÎÏ ÎÎÏÎ "
-"ÏÎÏ ÏÏÎÏÎÏ ÏÏÏÏÎÎÎÏÎÏ ÎÎÎ ÎÏÏÎÎÏÎÏ."
+"Î <code>get_selection_bound()</code> ÎÏÎÏÏÏÎÏÎÎ ÏÎ <code>Gtk.TextMark</code> "
+"ÏÎÏ ÎÎÎÏÎÏÎÏÏÎ ÏÎÎ ÎÎÏÎÎÏÎÎÎÎ ÎÏÎÎÎÎÎ."
 
-#: C/guitar-tuner.vala.page:207(p)
+#: C/textview.py.page:61(item/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>)."
+"<code>set_text(\"some text\", length)</code> where <code>length</code> is a "
+"positive integer or <code>-1</code>, sets the content of the buffer as the "
+"first <code>length</code> characters of the <code>\"some text\"</code> text. "
+"If <code>length</code> is omitted or <code>-1</code>, the text is inserted "
+"completely. The content of the buffer, if there is any, is destroyed."
 msgstr ""
-"ÎÏÏÏÏ Î ÏÎÎÏÎÏÏÎÏ ÏÎÎÎÏÎÏ ÎÏÎÎ ÎÏÎÎ ÎÎÎ ÏÏÎÏÎÎ: ÏÎ <link href=\"http://";
-"valadoc.org/gtk+-3.0/Gtk.Widget.html\"><code>Gtk.Widget</code></link> ÏÎÏ "
-"ÎÎÎÎÏÎ Î ÏÏÎÎÏÏÎÏÎ (ÏÏÎÎ ÏÎÏÎÏÏÏÏÎ ÎÎÏ, ÏÎÎÏÎÏÎ ÎÎÎ <link href=\"http://";
-"valadoc.org/gtk+-3.0/Gtk.Button.html\"><code>Gtk.Button</code></link>)."
-
-#: C/guitar-tuner.vala.page:213(title)
-msgid "Define the signal handler"
-msgstr "ÎÏÎÏÎÏÏ ÏÎÏ ÏÎÎÏÎÏÏÎ ÏÎÎÎÏÏÎ"
+"Î <code>set_text(\"some text\", length)</code> ÏÏÎÏ <code>length</code> "
+"ÎÎÎÎÎ ÎÎÎÏ ÎÎÏÎÎÏÏ ÎÎÎÏÎÎÎÏ Î <code>-1</code>, ÎÏÎÎÎÎ ÏÎ ÏÎÏÎÎÏÏÎÎÎÎ ÏÎÏ "
+"ÎÎÎÎÎÎÎÏÎÏ ÎÎÎÎÎÏ ÏÏ ÏÎÏÏ ÏÏÏÏÎÏÏ ÏÎÏÎÎÏÎÏÎÏ <code>length</code> ÏÎÏ "
+"ÎÎÎÎÎÎÎÏ <code>\"some text\"</code>. ÎÎÎ ÏÎ <code>length</code> ÏÎÏÎÎÎÎÏÎÏÎÎ "
+"Î <code>-1</code>, ÏÎ ÎÎÎÎÎÎÎ ÎÎÏÎÎÎÏÎÎ ÏÎÎÏÏÏ. ÎÎ ÏÎÏÎÎÏÏÎÎÎÎ ÏÎÏ "
+"ÎÎÎÎÎÎÎÏÎÏ ÎÎÎÎÎÏ, ÎÎÎ ÏÏÎÏÏÎÎ ÎÎÏÎÎÎ, ÎÎÏÎÏÏÏÎÏÎÏÎÎ."
 
-#: C/guitar-tuner.vala.page:214(p)
+#: C/textview.py.page:62(item/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:"
+"<code>insert(iter, \"some text\", length)</code> where <code>iter</code> is "
+"a text iterator and <code>length</code> is a positive integer or <code>-1</"
+"code>, inserts in the buffer at <code>iter</code> the first <code>length</"
+"code> characters of the <code>\"some text\"</code> text. If <code>length</"
+"code> is omitted or <code>-1</code>, the text is inserted completely."
 msgstr ""
-"ÎÎÎÎÏÎÎ ÎÎ ÏÎÎÎÎÏÎÎ ÏÎÎ ÏÏÏÏÏ ÎÏÎ ÏÏÎÎ Î ÏÏÎÏÏÎÏ ÏÎÏÎ ÎÎÎ ÎÎÏÎÏÎ. ÎÎÎ ÎÏÏÏ, "
-"ÎÏÎÏÎÎÎÏÎÏÎÎ ÏÎÎ ÏÎÎÏÎÏÏÎ ÏÎÎÎÏÎÏ ÏÎÏ ÎÏÎÏÎÎÎ ÏÎÏÎÏÎÎÏ, "
-"<code>on_button_clicked</code>. ÎÎ ÎÏÎÏÎÏÏÎÎÎ ÎÎ ÎÏÎÏÎÎ ÏÏÎÎÎÏÎÎ ÎÎÎÎ ÎÎÏÎÏÎ "
-"ÏÎ ÎÎÎÏÎÏÎÏÎÎÏ ÏÎÎÏÎÏÏÎ ÏÎÎÎÏÎÏ, ÎÎÎÎ ÎÏÏÏ ÎÎ ÎÏÎÏÎÏÏÎ ÎÎ ÎÎÎÎÎÏÎÎ ÏÎ "
-"ÎÎÏÎÏÎÎÎÎÎ ÎÎÏÎÎÏÎÎÏÎÏ ÏÎÏ ÎÏÎÎÎÎ. ÎÎÏÎÎÎÏÎ, ÎÏÎÏÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ "
-"ÏÎÎ ÎÏÎÎÎÏÎ ÏÎÏ ÎÎÏÎÏÎÎÏ ÎÎÎ ÎÎ ÎÎÏÎÎÎÎÎÏÎÎ ÏÎÎÎ ÎÎÏÎÏÎ ÏÎÏÎÎÎÎÎ:"
+"Î <code>insert(iter, \"some text\", length)</code> ÏÏÎÏ <code>iter</code> "
+"ÎÎÎÎÎ ÎÎÎÏ ÎÏÎÎÎÎÎÏÏÎÏ ÎÎÎÎÎÎÎÏ ÎÎÎ <code>length</code> ÎÎÎÎÎ ÎÎÎÏ ÎÎÏÎÎÏÏ "
+"ÎÎÎÏÎÎÎÏ Î <code>-1</code>, ÎÎÏÎÎÎÎ ÏÏÎÎ ÎÎÎÎÎÎÎÏÎ ÎÎÎÎÎ ÏÏÎ <code>iter</"
+"code> ÏÎÏÏ ÏÏÏÏÎÏÏ ÏÎÏÎÎÏÎÏÎÏ <code>length</code> ÏÎÏ ÎÎÎÎÎÎÎÏ <code>\"some "
+"text\"</code>. ÎÎÎ ÏÎ <code>length</code> ÏÎÏÎÎÎÏÎÎÎ Î <code>-1</code>, ÏÎ "
+"ÎÎÎÎÎÎÎ ÎÎÏÎÎÎÏÎÎ ÏÎÎÏÏÏ."
 
-#: C/guitar-tuner.vala.page:242(p)
+#: C/textview.py.page:63(item/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>."
+"<code>insert_at_cursor(\"some text\", length)</code> does the same as "
+"<code>insert(iter, \"some text\", length)</code>, with the current cursor "
+"taken as <code>iter</code>."
 msgstr ""
-"ÎÎ <code>Gtk.Button</code> ÏÎÏ ÏÎÏÎÎÎÎÎ ÏÎÏÎÎ ÏÏ ÏÏÎÏÎÎ (<code>sender</"
-"code>) ÏÏÎ <code>on_button_clicked</code>. ÎÏÎÏÎÏÎÎ ÎÎ ÏÎÏÎÏÎÎ ÏÎÎ ÎÏÎÎÎÏÎ "
-"ÎÏÏÎÏ ÏÎÏ ÎÎÏÎÏÎÎÏ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎÎ <code>get_child</code> ÎÎÎ ÎÏÎÎÏÎ ÎÎ "
-"ÏÎÏÎÏÎÎ ÏÎ ÎÎÎÎÎÎÎ ÎÏÏ ÎÏÏÎÎ ÏÎÎ ÎÏÎÎÎÏÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ <code>get_label</"
-"code>."
+"Î <code>insert_at_cursor(\"some text\", length)</code> ÎÎÎÎÎ ÏÎ ÎÎÎÎ ÎÎ ÏÎÎ "
+"<code>insert(iter, \"some text\", length)</code>, ÎÎ ÏÎÎ ÏÏÎÏÎÎÏÎ ÎÏÎÎÎÎ ÎÎ "
+"ÎÎÎÎÎÎÎÏÎÎ ÏÏ <code>iter</code>."
 
-#: C/guitar-tuner.vala.page:243(p)
+#: C/textview.py.page:64(item/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!"
+"<code>create_mark(\"mark_name\", iter, left_gravity)</code> where "
+"<code>iter</code> is a <code>Gtk.TextIter</code> and <code>left_gravity</"
+"code> is a boolean, creates a <code>Gtk.TextMark</code> at the position of "
+"<code>iter</code>. If <code>\"mark_name\"</code> is <code>None</code>, the "
+"mark is anonymous; otherwise, the mark can be retrieved by name using "
+"<code>get_mark()</code>. If a mark has left gravity, and text is inserted at "
+"the markâs current location, the mark will be moved to the left of the newly-"
+"inserted text. If <code>left_gravity</code> is omitted, it defaults to "
+"<code>False</code>."
 msgstr ""
-"Î ÏÏÏÏÎÏÎ ÎÎÎÎÏÏÏÎ ÏÏÎÎÏÎÎÎÎ ÏÎ ÎÎÎÎÎÎÎ ÎÏÎÎÎÏÎÏ ÎÎ ÏÎÏ ÎÏÏÎÏ ÏÎÏ ÎÏÎÏÎÏÎÎ "
-"ÎÎ ÏÎÎÎÎÏÎÎ ÎÎÎ ÎÎÎÎÎÏÎÎ Î <code>play_sound</code> ÎÎ ÏÎÎ ÎÎÏÎÎÎÎÎÎ "
-"ÏÏÏÎÏÏÎÏÎ ÎÎÎ ÎÏÏÎÎ ÏÎÎ ÎÏÏÎ. ÎÏÏÏ ÏÎÎÎÎÎ ÏÎÎ ÏÏÎÎÂ Î ÏÏÎÎÎÏÏÎÏ ÎÎÎÎÏÎÏ "
-"ÎÎÎÎÎ ÎÏÎÎÎÎÏ!"
+"Î <code>create_mark(\"mark_name\", iter, left_gravity)</code> ÏÏÎÏ "
+"<code>iter</code> ÎÎÎÎÎ ÎÎÎ <code>Gtk.TextIter</code> ÎÎÎ "
+"<code>left_gravity</code> ÎÎÎÎÎ ÏÎÎÎ ÎÏÎÏÎ, ÎÎÎÎÎÏÏÎÎÎ ÎÎÎ <code>Gtk."
+"TextMark</code> ÏÏÎ ÎÎÏÎ ÏÎÏ <code>iter</code>. ÎÎÎ <code>\"mark_name\"</"
+"code> ÎÎÎÎÎ <code>None</code>, ÏÎ ÏÎÎÎÎÎ ÎÎÎÎÎ ÎÎÏÎÏÎÎÂ ÎÎÎÎÏÏ, ÏÎ ÏÎÎÎÎÎ "
+"ÎÏÎÏÎÎ ÎÎ ÎÎÎÎÏÎÎÎÎ ÎÎÏÎ ÏÎÎÎÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ <code>get_mark()</code>. ÎÎÎ "
+"ÎÎÎ ÏÎÎÎÎÎ ÎÏÎÎ ÏÏÎÎÎÎÏÏÎÎÎÎ ÎÎÏÏÏÎÏÎ ÎÎÎ ÏÎ ÎÎÎÎÎÎÎ ÎÎÏÎÎÎÏÎÎ ÏÏÎÎ ÏÏÎÏÎÏÏÎ "
+"ÎÎÏÎ ÏÎÏ ÏÎÎÎÎÎÎÏ, ÏÎ ÏÎÎÎÎÎ ÎÎ ÎÎÏÎÎÎÎÎÎÎÎ ÏÏÎ ÎÏÎÏÏÎÏÎ ÏÎÏ ÎÎÎÎÎÏÎÎÎÎÎÎÏ "
+"ÎÎÎÎÎÎÎÏ. ÎÎÎ Î <code>left_gravity</code> ÏÎÏÎÎÎÏÎÎÎ, ÏÏÎÎÏÎÎÎÎÎÏÎÎ ÏÎ "
+"<code>False</code>."
 
-#: C/guitar-tuner.vala.page:249(p) C/guitar-tuner.cpp.page:251(p)
-#: C/guitar-tuner.c.page:253(p)
+#: C/textview.py.page:66(item/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!"
+"To specify that some text in the buffer should have specific formatting, you "
+"must define a tag to hold that formatting information, and then apply that "
+"tag to the region of text using <code>create_tag(\"tag name\", property)</"
+"code> and <code>apply_tag(tag, start_iter, end_iter)</code> as in, for "
+"instance:"
 msgstr ""
-"ÎÎÎ ÎÎÎ ÏÎ ÎÏÎÏÎ ÎÎÎ ÎÎÎÎÎ, ÎÏÎÎÎÎÏÎ ÏÎÎ ÎÏÎÏÎÎÎÎ <file>Debug/src/guitar-"
-"tuner</file> ÏÏÎÎ ÎÎÎÎÎÎÎ ÏÎÏ ÎÎÏÎÎÎÎÎÏÎÎ. ÎÎÎÎÎÎ, ÏÎÏÎÏÏÎ <gui>ÏÏÎÎÎÎÎ</"
-"gui> ÎÎÎ ÎÏÎÎÎÏÏÏÎ!"
+"ÎÎÎ ÎÎ ÎÏÎÏÎÏÎ ÏÏÎ ÎÎÏÎÎÎ ÎÎÎÎÎÎÎ ÏÏÎÎ ÎÎÎÎÎÎÎÏÎ ÎÎÎÎÎ ÏÏÎÏÎÎ ÎÎ ÎÏÎÎ ÎÎÎÎÎÎ "
+"ÎÎÏÏÎÏÎÎÎÏÎ, ÏÏÎÏÎÎ ÎÎ ÎÏÎÏÎÏÎ ÎÎÎ ÎÏÎÎÎÏÎ ÎÎ ÎÏÎÏÎÏÎÎ ÎÏÏÎÎ ÏÎÎ ÏÎÎÏÎÏÎÏÎÎ "
+"ÎÎÏÏÎÏÎÎÎÏÎÏ ÎÎÎ ÎÏÎÎÏÎ ÎÎ ÎÏÎÏÎÏÏÎÎ ÎÏÏÎÎ ÏÎÎ ÎÏÎÎÎÏÎ ÏÏÎÎ ÏÎÏÎÎÏÎ ÏÎÏ "
+"ÎÎÎÎÎÎÎÏ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ <code>create_tag(\"tag name\", property)</code> ÎÎÎ "
+"<code>apply_tag(tag, start_iter, end_iter)</code> ÏÏÏÏ ÏÏÎ, ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ:"
 
-#: C/guitar-tuner.vala.page:254(p)
+#: C/textview.py.page:67(item/code)
+#, no-wrap
 msgid ""
-"If you run into problems with the tutorial, compare your code with this "
-"<link href=\"guitar-tuner/guitar-tuner.vala\">reference code</link>."
+"\n"
+"tag = textbuffer.create_tag(\"orange_bg\", background=\"orange\")\n"
+"textbuffer.apply_tag(tag, start_iter, end_iter)"
 msgstr ""
-"ÎÎ ÎÎÏÎÎÎÏÏÏÎÏÎÏÎ ÏÏÎÎÎÎÎÎÏÎ ÎÎ ÏÎ ÎÎÎÎÎÎ, ÏÏÎÎÏÎÎÎÏÎ ÏÎÎ ÎÏÎÎÎÎ ÏÎÏ ÎÎ ÎÏÏÏ "
-"ÏÎÎ <link href=\"guitar-tuner/guitar-tuner.vala\"> ÎÏÎÎÎÎ ÎÎÎÏÎÏÎÏ</link>."
+"\n"
+"tag = textbuffer.create_tag(\"orange_bg\", background=\"orange\")\n"
+"textbuffer.apply_tag(tag, start_iter, end_iter)"
 
-#: C/guitar-tuner.vala.page:259(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>"
+#: C/textview.py.page:70(item/p)
+msgid "The following are some of the common styles applied to text:"
 msgstr ""
-"ÎÎÎ ÎÎ ÎÏÎÎÏÎ ÏÎÏÎÏÏÏÏÎÏÎ ÎÎÎ ÏÎ ÎÎÏÏÏÎ ÏÏÎÎÏÎÎÎÎÏÎÏÎÎÏ Vala ÎÏÏÏ ÎÎÎÎÏÎÏÎ "
-"ÎÎ ÎÎÎÏÎÎÎÏÎ ÏÎ <link href=\"http://live.gnome.org/Vala/Tutorial\";>ÎÎÎÎÎÎ "
-"Vala</link> ÎÎÎ ÏÎ <link href=\"http://valadoc.org/\";>ÏÎÎÎÎÏÎÏÏÎ API Vala</"
-"link>"
+"ÎÎ ÎÎÏÎÎÏÎÎ ÎÎÎÎÎ ÎÎÏÎÎÎÏ ÎÏÏ ÏÎÏ ÎÎÎÎÎÏ ÎÏÎÏÎÎÎÏÎÎÎÎÏ ÏÎÏÎÎÏÏÎÏÎÎÏ ÏÏÎ "
+"ÎÎÎÎÎÎÎ:"
 
-#: C/guitar-tuner.vala.page:268(p) C/guitar-tuner.py.page:238(p)
-#: C/guitar-tuner.cpp.page:272(p) C/guitar-tuner.c.page:266(p)
-msgid "Have the program automatically cycle through the notes."
-msgstr "ÎÎÎÏÎ ÏÎ ÏÏÏÎÏÎÎÎÎ ÎÎ ÏÎÏÎÎÎÎ ÎÏÏÏÎÎÏÎ ÎÎÏÎ ÎÏÏ ÏÎÏ ÎÏÏÎÏ."
+#: C/textview.py.page:72(item/p)
+msgid "Background colour (\"background\" property)"
+msgstr "ÎÏÏÎÎ ÏÎÏÎÏÎÎÎÎÎÏ (ÎÎÎÏÏÎÏÎ \"background\")"
 
-#: C/guitar-tuner.vala.page:271(p) C/guitar-tuner.py.page:241(p)
-#: C/guitar-tuner.cpp.page:275(p) C/guitar-tuner.c.page:269(p)
-msgid "Make the program play recordings of real guitar strings being plucked."
-msgstr ""
-"ÎÎÎÏÎ ÏÎ ÏÏÏÎÏÎÎÎÎ ÎÎ ÎÎÎÏÎÏÎÎÎÎ ÎÏÎÎÏÎÏÎÏÎÎÏ ÎÏÏ ÎÎÎÎÎÎÎÏ ÏÎÏÎÎÏ ÎÎÎÎÏÎÏ "
-"ÏÎÏ ÎÏÎÏÎ ÎÎÏÎÏÎÎÎ."
+#: C/textview.py.page:73(item/p)
+msgid "Foreground colour (\"foreground\" property)"
+msgstr "ÎÏÏÎÎ ÏÏÎÏÎÎÎÎÎÏ (ÎÎÎÏÏÎÏÎ \"foreground\")"
 
-#: C/guitar-tuner.vala.page:272(p) C/guitar-tuner.py.page:242(p)
-#: C/guitar-tuner.cpp.page:276(p) C/guitar-tuner.c.page:270(p)
-msgid ""
-"To do this, you would need to set up a more complicated GStreamer pipeline "
-"which allows you to load and play back music files. You'll have to choose "
-"<link href=\"http://gstreamer.freedesktop.org/documentation/plugins.html";
-"\">decoder and demuxer</link> GStreamer elements based on the file format of "
-"your recorded sounds â MP3s use different elements to Ogg Vorbis files, for "
-"example."
-msgstr ""
-"ÎÎÎ ÎÎ ÏÎ ÎÎÎÎÏÎ ÎÏÏÏ, ÏÏÎÏÎÎ ÎÎ ÏÏÎÎÎÏÎÏÎ ÎÎÎ ÏÎÎ ÏÎÏÎÏÎÎÎÎ ÎÎÎÏÎÏÎÏÏÎ "
-"GStreamer ÏÎÏ ÎÎ ÏÎÏ ÎÏÎÏÏÎÏÎÎ ÎÎ ÏÎÏÏÏÎÎÏÎ ÎÎÎ ÎÎ ÎÎÎÏÎÏÎÎÎÏÎ ÎÏÏÎÎÎ ÎÏÎÏ. "
-"ÎÎ ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎÎÎÏÎ ÏÎ ÏÏÎÎÏÎÎÎ GStreamer <link href=\"http://gstreamer.";
-"freedesktop.org/documentation/plugins.html\">decoder ÎÎÎ demuxer</link> ÎÎ "
-"ÎÎÏÎ ÏÎÎ ÏÏÏÎ ÏÎÏ ÎÏÏÎÎÎÏ ÏÏÎ ÎÏÎÎÏÎÏÎÎÎÎÏÎ ÎÏÏÎ â ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ ÏÎ MP3 "
-"ÏÏÎÏÎÎÎÏÎÎÎÎ ÎÎÎÏÎÏÎÏÎÎÎ ÏÏÎÎÏÎÎÎ ÎÏÏ ÏÎ Ogg Vorbis."
+#: C/textview.py.page:74(item/p)
+msgid "Underline (\"underline\" property)"
+msgstr "ÎÏÎÎÏÎÎÎÎÏÎ (ÎÎÎÏÏÎÏÎ \"underline\")"
+
+#: C/textview.py.page:75(item/p)
+msgid "Bold (\"weight\" property)"
+msgstr "ÎÎÏÎÎÎ (ÎÎÎÏÏÎÏÎ \"weight\")"
+
+#: C/textview.py.page:76(item/p)
+msgid "Italics (\"style\" property)"
+msgstr "ÎÎÎÎÎÎ (ÎÎÎÏÏÎÏÎ \"style\")"
+
+#: C/textview.py.page:77(item/p)
+msgid "Strikethrough (\"strikethrough\" property)"
+msgstr "ÎÎÎÎÏÎÎÎÎÏÎ (ÎÎÎÏÏÎÏÎ \"strikethrough\")"
+
+#: C/textview.py.page:78(item/p)
+msgid "Justification (\"justification\" property)"
+msgstr "ÎÏÎÎÏÎÏÎ (ÎÎÎÏÏÎÏÎ \"justification\")"
+
+#: C/textview.py.page:79(item/p)
+msgid "Size (\"size\" and \"size-points\" properties)"
+msgstr "ÎÎÎÎÎÎÏ (ÎÎÎÏÏÎÏÎÏ \"size\" ÎÎÎ \"size-points\")"
+
+#: C/textview.py.page:80(item/p)
+msgid "Text wrapping (\"wrap-mode\" property)"
+msgstr "ÎÎÎÎÎÏÎÏÏÎ ÎÎÎÎÎÎÎÏ (ÎÎÎÏÏÎÏÎ \"wrap-mode\")"
 
-#: C/guitar-tuner.vala.page:273(p) C/guitar-tuner.py.page:243(p)
-#: C/guitar-tuner.cpp.page:277(p) C/guitar-tuner.c.page:271(p)
+#: C/textview.py.page:82(item/p)
 msgid ""
-"You might need to connect the elements in more complicated ways too. This "
-"could involve using <link href=\"http://gstreamer.freedesktop.org/data/doc/";
-"gstreamer/head/manual/html/chapter-intro-basics.html\">GStreamer concepts</"
-"link> that we didn't cover in this tutorial, such as <link href=\"http://";
-"gstreamer.freedesktop.org/data/doc/gstreamer/head/manual/html/section-intro-"
-"basics-pads.html\">pads</link>. You may also find the <cmd>gst-inspect</cmd> "
-"command useful."
+"You can also delete particular tags later using <code>remove_tag()</code> or "
+"delete all tags in a given region by calling <code>remove_all_tags()</code>."
 msgstr ""
-"ÎÏÏÏ ÏÏÎÎÎÏÏÎÎ ÎÎ ÏÏÎÎÎÏÎÏÎ ÏÎ ÏÏÎÎÏÎÎÎ ÎÎ ÏÎÎ ÏÎÏÎÏÎÎÎÎÏÏ ÏÏÏÏÎÏÏ. ÎÏÏÏ "
-"ÎÏÎÏÎÎ ÎÎ ÏÏÎÏÎÏÎÎÎÎÎÎÎÎÎ ÏÎ ÏÏÎÏÎ <link href=\"http://gstreamer.freedesktop.";
-"org/data/doc/gstreamer/head/manual/html/chapter-intro-basics.html\">ÎÎÎÎÎÏÎ "
-"GStreamer</link> ÏÎÏ ÎÎÎ ÎÎÎÏÏÏÎÏÎÎ ÏÎ ÎÏÏÏÎ ÏÎÎ ÎÎÎÎÏ, ÏÏÏÏ ÎÎÎ <link href="
-"\"http://gstreamer.freedesktop.org/data/doc/gstreamer/head/manual/html/";
-"section-intro-basics-pads.html\">pad</link>. ÎÏÏÏ ÎÏÎÎÏÎ ÏÏÎÏÎÎÎ ÎÎÎ ÏÎÎ "
-"ÎÎÏÎÎÎ <cmd>gst-inspect</cmd>."
+"ÎÏÎÏÎÎÏÎ ÎÏÎÏÎÏ ÎÎ ÎÎÎÎÏÎÏÎÏÎ ÏÏÎÎÎÎÏÎÎÎÎÎÏ ÎÏÎÎÎÏÎÏ ÎÏÎÏÏÎÏÎ "
+"ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ <code>remove_tag()</code> Î ÎÎ ÎÎÎÎÏÎÏÎÏÎ ÏÎÎÏ ÏÎÏ ÎÏÎÎÎÏÎÏ "
+"ÏÎ ÎÎÎ ÎÎÎÎÎÎÎÎ ÏÎÏÎÎÏÎ ÎÎÎÏÎÏÎÏ <code>remove_all_tags()</code>."
 
-#: C/guitar-tuner.vala.page:276(p) C/guitar-tuner.py.page:246(p)
-#: C/guitar-tuner.cpp.page:280(p) C/guitar-tuner.c.page:274(p)
-msgid "Automatically analyze notes that the user plays."
-msgstr "ÎÏÏÏÎÎÏÎ ÎÎÎÎÏÏÎ ÎÏÏÏÎ ÏÎÏ ÏÎÎÎÎÎ Î ÏÏÎÏÏÎÏ."
+#: C/textview.py.page:84(section/p)
+msgid "Methods for a TextIter widget"
+msgstr "ÎÎÎÎÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ TextIter"
 
-#: C/guitar-tuner.vala.page:277(p) C/guitar-tuner.py.page:247(p)
-#: C/guitar-tuner.cpp.page:281(p) C/guitar-tuner.c.page:275(p)
+#: C/textview.py.page:86(item/p)
 msgid ""
-"You could connect a microphone and record sounds from it using an <link href="
-"\"http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-good-";
-"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?"
+"<code>forward_search(needle, flags, limit)</code> searches forward for "
+"<code>needle</code>. The search will not continue past the <code>Gtk."
+"TextIter</code> limit. The <code>flags</code> can be set to one of the "
+"following, or any combination of it by concatenating them with the bitwise-"
+"OR operator <code>|</code>: <code>0</code> (the match must be exact); "
+"<code>Gtk.TextSearchFlags.VISIBLE_ONLY</code> (the match may have invisible "
+"text interspersed in needle); <code>Gtk.TextSearchFlags.TEXT_ONLY</code> "
+"(the match may have pixbufs or child widgets mixed inside the matched "
+"range); <code>Gtk.TextSearchFlags.CASE_INSENSITIVE</code> (the text will be "
+"matched regardless of what case it is in). The method returns a tuple "
+"containing a <code>Gtk.TextIter</code> pointing to the start and to the "
+"first character after the match; if no match is found, <code>None</code> is "
+"returned."
 msgstr ""
-"ÎÏÎÏÎÎÏÎ ÎÎ ÏÏÎÎÎÏÎÏÎ ÎÎÎÏÏÏÏÎÎ ÎÎÎ ÎÎ ÎÏÎÎÏÎÏÎÏÎÏÎ ÎÏÏ ÎÏÏÏ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ "
-"ÏÎÎ <link href=\"http://gstreamer.freedesktop.org/data/doc/gstreamer/head/";
-"gst-plugins-good-plugins/html/gst-plugins-good-plugins-autoaudiosrc.html"
-"\">ÏÎÎÎ ÎÎÏÏÎÎÏ</link>. ÎÏÏÏ ÎÎÏÎÎÎ ÎÎÏÏÎ ÏÎÏ <link href=\"http://gstreamer.";
-"freedesktop.org/data/doc/gstreamer/head/gst-plugins-good-plugins/html/gst-"
-"plugins-good-plugins-plugin-spectrum.html\">ÎÎÎÎÏÏÎÏ ÏÎÏÎÎÏÎÏ</link> ÎÎ ÏÎÏ "
-"ÎÎÎÎÎÏÏÎ ÎÎ ÎÎÏÎÎÎÎÎÏÎ ÏÎÎÎ ÎÏÏÎ ÏÎÎÎÎÎ;"
-
-#: C/guitar-tuner.py.page:7(title)
-msgid "Guitar Tuner (Python)"
-msgstr "ÎÏÎÏÎÎÎÏÏÎÏ ÎÎÎÎÏÎÏ (Python)"
+"Î <code>forward_search(needle, flags, limit)</code> ÎÎÎÎÎÏÎ ÎÏÏÎÏÏÎ ÎÎÎ "
+"<code>needle</code>. Î ÎÎÎÎÎÏÎÏÎ ÎÎÎ ÎÎ ÏÏÎÎÏÎÏÎÎ ÏÎÏÎ ÎÏÏ ÏÎ ÏÏÎÎ <code>Gtk."
+"TextIter</code>. ÎÎ <code>flags</code> ÎÏÎÏÎÏÎ ÎÎ ÎÏÎÏÏÎÏÎ ÏÎ ÎÎÎ ÎÏÏ ÏÎ "
+"ÎÎÏÎÎÏÎÎ, Î ÎÏÎÎÎÎÎÎÏÎÏÎ ÏÏÎÎÏÎÏÎÏ ÏÎÏ ÏÏÎÎÎÏÎÎÎÏÎÏ ÏÎÏÏ ÎÎ ÏÎÎ ÏÎÎÎÏÏÎ OR "
+"<code>|</code>: <code>0</code> (Î ÏÏÎÏÏÎÎÎ ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎ ÎÎÏÎÎÎÏ)Â "
+"<code>Gtk.TextSearchFlags.VISIBLE_ONLY</code> (Î ÏÏÎÏÏÎÎÎ ÎÏÎÏÎÎ ÎÎ ÎÏÎÎ "
+"ÎÏÏÎÏÎ ÎÎÎÎÎÎÎ ÎÎÎÎÎÎÏÎÎÎÎ ÏÎ ÎÎÎÏÎÎ)Â <code>Gtk.TextSearchFlags.TEXT_ONLY</"
+"code> (Î ÏÏÎÏÏÎÎÎ ÎÏÎÏÎÎ ÎÎ ÎÏÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ pixbufs Î ÎÏÎÎÏÏÎÎÎ "
+"ÎÎÎÎÎÏÎÎÎÎÎ ÎÎÏÎ ÏÏÎÎ ÏÎÏÎÎÏÎ ÏÏÎÏÏÎÎÎÏ)Â ÏÎ <code>Gtk.TextSearchFlags."
+"CASE_INSENSITIVE</code> (ÏÎ ÎÎÎÎÎÎÎ ÎÎ ÏÎÎÏÎÎÎÎÎ ÎÎÎÎÎÏÏÎÏÎ ÎÏÏ ÎÎÏÎÎÎÎÎ/"
+"ÎÎÎÏÎ). Î ÎÎÎÎÎÎÏ ÎÏÎÏÏÏÎÏÎÎ ÎÎÎ ÏÎÎÎÎÎÎ ÏÎÏ ÏÎÏÎÎÏÎÎ ÎÎÎ <code>Gtk."
+"TextIter</code> ÏÎÏ ÎÎÎÏÎÎÎ ÏÏÎÎ ÎÏÏÎ ÎÎÎ ÏÏÎÎ ÏÏÏÏÎ ÏÎÏÎÎÏÎÏÎ ÎÎÏÎ ÏÎ "
+"ÏÏÎÏÏÎÎÎÂ ÎÎÎ ÎÎÎ ÎÏÎÎÎÎ ÏÏÎÏÏÎÎÎ, Î <code>None</code> ÎÏÎÏÏÏÎÏÎÏÎÎ."
 
-#: C/guitar-tuner.py.page:10(desc) C/guitar-tuner.c.page:10(desc)
+#: C/textview.py.page:87(item/p)
 msgid ""
-"Use Gtk+ and GStreamer to build a simple guitar tuner application for GNOME. "
-"Shows off how to use the interface designer."
+"<code>backward_search(needle, flags, limit)</code> does the same as "
+"<code>forward_search()</code>, but moving backwards."
 msgstr ""
-"ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ Gtk+ ÎÎÎ GStreamer ÎÎÎ ÎÎ ÏÏÎÎÎÎÏÎ ÎÎÎ ÎÏÎÏ ÏÏÏÎÏÎÎÎÎ "
-"ÏÏÎÏÎÎÎÏÏÎ ÎÎÎÎÏÎÏ ÎÎÎ ÏÎ GNOME. ÎÎÎÎÎÎÎÎÏÎÎÏÎÏ ÏÏÏ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÏÎ "
-"ÏÏÎÎÎÎÏÏÎ ÎÎÎÏÎÏÏÎ."
+"Î <code>backward_search(needle, flags, limit)</code> ÎÎÎÎÎ ÏÎ ÎÎÎÎ ÏÏÏÏ Î "
+"<code>forward_search()</code>, ÎÎÎÎ ÎÎÎÎÎÏÎÎ ÏÏÎÏ ÏÎ ÏÎÏÏ."
 
-#: C/guitar-tuner.py.page:26(p) C/guitar-tuner.cpp.page:24(p)
-#: C/guitar-tuner.c.page:26(p)
+#: C/textview.py.page:95(item/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:"
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkTextView.html";
+"\">GtkTextView</link>"
 msgstr ""
-"ÎÎ ÎÏÏÏÎ ÏÎÎ ÎÎÎÎÏ, ÎÎ ÏÏÎÎÎÎÏÎÎ ÎÎÎ ÏÏÏÎÏÎÎÎÎ ÏÎÏ ÏÎÎÎÎÎ ÎÎÏÏÎÎÎÏÏ ÏÏÎÎÏÏ "
-"ÎÎÎ ÎÏÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎ ÎÎÎ ÎÎÎÎÏÎ. ÎÎ ÎÎÎÎÏÎ ÎÎ:"
-
-#: C/guitar-tuner.py.page:28(p) C/guitar-tuner.cpp.page:26(p)
-#: C/guitar-tuner.c.page:28(p)
-msgid "Set up a basic project in Anjuta"
-msgstr "ÎÏÎÎÎÎÎÏÎ ÏÎ ÎÏÏÎÎ ÎÏÎÎ ÏÏÎ Anjuta"
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkTextView.html";
+"\">GtkTextView</link>"
 
-#: C/guitar-tuner.py.page:29(p) C/guitar-tuner.cpp.page:27(p)
-#: C/guitar-tuner.c.page:29(p)
-msgid "Create a simple GUI with Anjuta's UI designer"
-msgstr "ÎÎÎÎÎÏÏÎÎÎÏÎ ÎÏÎÏ GUI ÎÎ ÏÎÎ ÏÏÎÎÎÎÏÏÎ UI ÏÎÏ Anjuta"
+#: C/textview.py.page:96(item/p)
+msgid ""
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkTextBuffer.html";
+"\">GtkTextBuffer</link>"
+msgstr ""
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkTextBuffer.html";
+"\">GtkTextBuffer</link>"
 
-#: C/guitar-tuner.py.page:30(p) C/guitar-tuner.cpp.page:28(p)
-#: C/guitar-tuner.c.page:30(p)
-msgid "Use GStreamer to play sounds"
-msgstr "ÎÏÎÏÎÎÎÏÎÎÎÎÏÎ ÏÎ GStreamer ÎÎÎ ÎÎ ÏÎÎÎÎÏÎ ÎÏÎÏÏ"
+#: C/textview.py.page:97(item/p)
+msgid ""
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkTextTag.html";
+"\">GtkTextTag</link>"
+msgstr ""
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkTextTag.html";
+"\">GtkTextTag</link>"
 
-#: C/guitar-tuner.py.page:35(p)
-msgid "Basic knowledge of the Python programming language"
-msgstr "ÎÎÏÎÎÎ ÎÎÏÏÎ ÏÎÏ ÎÎÏÏÏÎÏ ÏÏÎÎÏÎÎÎÎÏÎÏÎÎÏ Python"
+#: C/textview.vala.page:7(info/title)
+msgctxt "text"
+msgid "TextView (Vala)"
+msgstr "TextView (Vala)"
 
-#: C/guitar-tuner.py.page:49(p)
+#: C/textview.vala.page:24(note/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."
+"If we have a loooooooooooooooooooooooooooooooooooong word, a horizontal "
+"scrollbar will appear."
 msgstr ""
-"ÎÏÎÎÎÎÏÎ <gui>PyGTK (automake)</gui> ÎÏÏ ÏÎÎ ÎÎÏÏÎÎÎ <gui>Python</gui>, "
-"ÏÎÏÎÏÏÎ <gui>ÏÏÎÎÏÎÎÎ</gui> ÎÎÎ ÏÏÎÏÎÎÏÏÏÏÎ ÏÎÏ ÎÎÏÏÎÎÎÏÎÎÎÏ ÏÎÏ ÏÏÎÏ "
-"ÎÏÏÎÎÎÎÏ ÎÎÎÎÏ ÏÎÎÎÎÎÏ. ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ ÏÏ ÏÎÎÎÎ ÏÎÏ ÎÏÎÎÏ ÎÎÎ ÏÎÏ ÎÎÏÎÎÏÎÎÏ "
-"ÏÎ <file>guitar-tuner</file>."
+"ÎÎÎ ÎÏÎÏÎÎ ÎÎÎ ÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎ ÎÎÎÎ, ÎÎÎ ÎÏÎÎÏÎÏÎÎ "
+"ÎÏÎÎÎÎ ÎÏÎÎÏÎÏ ÎÎ ÎÎÏÎÎÎÏÏÎÎ."
 
-#: C/guitar-tuner.py.page:52(p)
+#: C/textview.vala.page:29(page/code)
+#, no-wrap
 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:"
+"/* This is the application. */\n"
+"public class MyApplication : Gtk.Application {\n"
+"\t/* Override the 'activate' signal of GLib.Application. */\n"
+"\tprotected override void activate () {\n"
+"\t\t/* Create the window of this applicationt. */\n"
+"\t\tnew MyWindow (this).show_all ();\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* This is the window. */\n"
+"class MyWindow: Gtk.ApplicationWindow {\n"
+"\tinternal MyWindow (MyApplication app) {\n"
+"\t\tObject (application: app, title: \"TextView Example\");\n"
+"\t\tthis.set_default_size (220, 200);\n"
+"\n"
+"\t\tvar buffer = new Gtk.TextBuffer (null); //stores text to be displayed\n"
+"\t\tvar textview = new Gtk.TextView.with_buffer (buffer); //displays TextBuffer\n"
+"\t\ttextview.set_wrap_mode (Gtk.WrapMode.WORD); //sets line wrapping\n"
+"\n"
+"\t\tvar scrolled_window = new Gtk.ScrolledWindow (null, null);\n"
+"\t\tscrolled_window.set_policy (Gtk.PolicyType.AUTOMATIC,\n"
+"\t\t                            Gtk.PolicyType.AUTOMATIC);\n"
+"\n"
+"\t\tscrolled_window.add (textview);\n"
+"\t\tscrolled_window.set_border_width (5);\n"
+"\n"
+"\t\tthis.add (scrolled_window);\n"
+"\t}\n"
+"}\n"
+"/* main creates and runs the application. */\n"
+"public int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
 msgstr ""
-"ÎÎÏÎÏÏÎ <gui>ÎÏÎÏÎÎÎÎ</gui> ÎÎÎ ÏÎ ÎÏÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎÎÎÎ. ÎÎÎÎÎÏÎ <file>src/"
-"guitar_tuner.py</file> ÎÏÏ ÏÎÏ ÎÎÏÏÎÎÎÏ <gui>ÎÏÎÎ</gui> Î <gui>ÎÏÏÎÎÎ</gui>. "
-"ÎÎ ÏÏÎÏÎÎ ÎÎ ÎÎÎÏÎ ÎÎÏÎÎÎ ÎÏÎÎÎÎ ÏÎÏ ÎÎÎÎÎÎÎÎ ÎÎ ÏÎÏ ÎÏÎÎÎÎÏ:"
-
-#: C/guitar-tuner.py.page:61(title)
-msgid "Run the code for the first time"
-msgstr "ÎÎÏÎÎÎÏÎ ÏÎÏ ÎÏÎÎÎÎ ÎÎÎ ÏÏÏÏÎ ÏÎÏÎ"
+"/* This is the application. */\n"
+"public class MyApplication : Gtk.Application {\n"
+"\t/* Override the 'activate' signal of GLib.Application. */\n"
+"\tprotected override void activate () {\n"
+"\t\t/* Create the window of this applicationt. */\n"
+"\t\tnew MyWindow (this).show_all ();\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* This is the window. */\n"
+"class MyWindow: Gtk.ApplicationWindow {\n"
+"\tinternal MyWindow (MyApplication app) {\n"
+"\t\tObject (application: app, title: \"TextView Example\");\n"
+"\t\tthis.set_default_size (220, 200);\n"
+"\n"
+"\t\tvar buffer = new Gtk.TextBuffer (null); //stores text to be displayed\n"
+"\t\tvar textview = new Gtk.TextView.with_buffer (buffer); //displays TextBuffer\n"
+"\t\ttextview.set_wrap_mode (Gtk.WrapMode.WORD); //sets line wrapping\n"
+"\n"
+"\t\tvar scrolled_window = new Gtk.ScrolledWindow (null, null);\n"
+"\t\tscrolled_window.set_policy (Gtk.PolicyType.AUTOMATIC,\n"
+"\t\t                            Gtk.PolicyType.AUTOMATIC);\n"
+"\n"
+"\t\tscrolled_window.add (textview);\n"
+"\t\tscrolled_window.set_border_width (5);\n"
+"\n"
+"\t\tthis.add (scrolled_window);\n"
+"\t}\n"
+"}\n"
+"/* main creates and runs the application. */\n"
+"public int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
 
-#: C/guitar-tuner.py.page:62(p)
+#: C/textview.vala.page:34(item/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:"
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.TextBuffer.html\";>Gtk."
+"TextBuffer</link>"
 msgstr ""
-"Î ÏÎÏÎÏÏÏÏÎÏÎÏ ÎÏÎÎÎÎÏ ÏÏÎ ÎÏÏÎÎÎ ÎÎÎÎÎ ÏÏÏÏÏÏÎ ÎÏÎÎÎÎ. ÎÎÏÏÏÎÎÎ ÎÎÎ (ÎÎÎÏ) "
-"ÏÎÏÎÎÏÏÎ ÎÏÏ ÏÎ ÎÏÏÎÎÎ ÏÎÏÎÎÏÎÏÎÏ ÏÎÏ ÎÎÎÏÎÏÎÏ ÏÏÎÏÏÎ ÎÎÎ ÏÎ ÎÎÏÎÎÎÎÎÎ. "
-"ÎÎÏÎÏÏÏÏÎÏÎÏ ÏÎÎÏÎÏÎÏÎÎÏ ÏÏÎÏÏÎÏÎ ÏÎÎ ÎÎÏÏÂ ÏÏÎÏÏÎÏÎÏÏÎ ÎÏÏÎ ÏÎ ÎÎÏÏÎ ÎÎ "
-"ÎÎÏÎÎÎÎÎÎÎÎÏÎ ÏÎ ÎÎÏÎÎÎ:"
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.TextBuffer.html\";>Gtk."
+"TextBuffer</link>"
 
-#: C/guitar-tuner.py.page:66(p)
+#: C/textview.vala.page:35(item/p)
 msgid ""
-"The <code>import</code> lines at the top include the tell Python to load the "
-"user interface and system libraries needed."
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.TextView.html\";>Gtk."
+"TextView</link>"
 msgstr ""
-"ÎÎ ÎÏÎÎÎÎÏ <code>import</code> ÏÏÎÎ ÎÏÏÎ ÎÎÎÎ ÏÏÎÎ Python ÎÎ ÏÎÏÏÏÏÎÎ ÏÎÏ "
-"ÎÎÎÎÎÎÎÎÎÎÏ ÏÎÏ ÏÏÏÏÎÎÎÏÎÏ ÎÎÎ ÏÎÏ ÎÎÎÏÎÏÎÏ ÏÏÎÏÏÎ ÏÎÏ ÏÏÎÎÎÎÎÎÏÎÎ."
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.TextView.html\";>Gtk."
+"TextView</link>"
 
-#: C/guitar-tuner.py.page:70(p)
+#: C/textview.vala.page:37(item/p)
 msgid ""
-"A class is declared that will be the main class for our application. In the "
-"<code>__init__</code> method the main window is loaded from the GtkBuilder "
-"file (<file>src/guitar-tuner.ui</file>) and the signals are connected."
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.WrapMode.html\";>Gtk."
+"WrapMode</link>"
 msgstr ""
-"ÎÎÎ ÎÎÎÏÎ ÎÎÎÏÎÎÏÎÎ ÏÏÎ ÎÎ ÎÎÎÎÎ Î ÎÏÏÎÎ ÎÎÎÏÎ ÎÎÎ ÏÎ ÏÏÏÎÏÎÎÎÎ ÎÎÏ. ÎÏÎÎ "
-"ÎÎÎÎÎÎ <code>__init__</code> ÏÎ ÎÏÏÎÎ ÏÎÏÎÎÏÏÎ ÏÎÏÏÏÎÎÏÎÎ ÎÏÏ ÏÎ ÎÏÏÎÎÎ "
-"GtkBuilder (<file>src/guitar-tuner.ui</file>) ÎÎÎ ÏÎ ÏÎÎÎÏÎ ÏÏÎÎÎÎÎÏÎÎ."
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.WrapMode.html\";>Gtk."
+"WrapMode</link>"
 
-#: C/guitar-tuner.py.page:73(p)
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/togglebutton.c.page:26(media) C/togglebutton.js.page:21(media)
+#: C/togglebutton.py.page:24(media) C/togglebutton.vala.page:24(media)
+msgctxt "_"
 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."
+"external ref='media/togglebutton.png' md5='791e062613d4f9bd5936390b0aa18448'"
 msgstr ""
-"ÎÏÎÎÎÎÎÏÎÏ ÏÎÎÎÏÎ ÎÎÏÏÎ ÏÎ ÎÎÏÎ ÎÎ ÎÎÎÎÏÎÎÎÏÎ ÏÎ ÎÎ ÏÏÎÎÎÎ ÏÏÎÎ ÎÎÎ ÎÎÏÎÏÎ "
-"ÏÎÏÎÎÎÎ, Î ÏÏÎÎ ÏÏÎÎÎÎ ÎÎÏÎÎÎ ÎÎÎÎ ÏÎÎÎ. ÎÎÏ, ÎÎÎÎÎÏÎÎ Î ÎÎÎÎÎÎÏ "
-"<code>destroy</code> ÏÏÎÎ ÎÎÎÎÎÎÏÎ ÏÎ ÏÎÏÎÎÏÏÎ (ÎÎÎ ÏÎÏÎÎÏÎÎÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ)."
+"external ref='media/togglebutton.png' md5='791e062613d4f9bd5936390b0aa18448'"
+
+#: C/togglebutton.c.page:7(info/title)
+msgctxt "text"
+msgid "ToggleButton (C)"
+msgstr "ToggleButton (C)"
+
+#: C/togglebutton.c.page:21(info/desc) C/togglebutton.py.page:20(info/desc)
+#: C/togglebutton.vala.page:20(info/desc)
+msgid "A button which retains state"
+msgstr "ÎÎÎ ÎÎÏÎÏÎ ÏÎÏ ÎÏÎÏÎ ÎÎÏÎÏÏÎÏÎ"
+
+#: C/togglebutton.c.page:24(page/title) C/togglebutton.js.page:20(page/title)
+#: C/togglebutton.py.page:23(page/title)
+#: C/togglebutton.vala.page:23(page/title)
+msgid "ToggleButton"
+msgstr "ToggleButton"
+
+#: C/togglebutton.c.page:27(page/p) C/togglebutton.py.page:25(page/p)
+#: C/togglebutton.vala.page:25(page/p)
+msgid "When this ToggleButton is in an active state, the spinner spins."
+msgstr "ÎÏÎÎ ÎÏÏÏ ÏÎ ToggleButton ÎÎÎÎÎ ÎÎÎÏÎÏ, Î ÎÎÏÏÎÏÎÏ ÏÎÏÎÏÏÏÎÏÎÏÎÎ."
 
-#: C/guitar-tuner.py.page:76(p)
+#: C/togglebutton.c.page:29(page/code)
+#, no-wrap
 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."
+"\n"
+"#include &lt;gtk/gtk.h&gt;\n"
+"\n"
+"\n"
+"\n"
+"/*This is the callback function. It is a handler function \n"
+"which reacts to the signal. In this case, it will cause the \n"
+"spinner to start and stop according to how many times the user \n"
+"presses the button.*/\n"
+"static void\n"
+"button_toggled_cb (GtkWidget *button,\n"
+"                   gpointer   user_data)\n"
+"{\n"
+"  GtkWidget *spinner = user_data;\n"
+"\n"
+"  if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(button)))\n"
+"          gtk_spinner_start (GTK_SPINNER (spinner));\n"
+"  else {\n"
+"          gtk_spinner_stop (GTK_SPINNER (spinner));\n"
+"  }\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"static void\n"
+"activate (GtkApplication *app,\n"
+"          gpointer        user_data)\n"
+"{\n"
+"  GtkWidget *window;\n"
+"  GtkWidget *button;\n"
+"  GtkWidget *grid;\n"
+"  GtkWidget *spinner;\n"
+"\n"
+"  /*Create a window with a title, border width and a default size*/\n"
+"  window = gtk_application_window_new (app);\n"
+"  gtk_window_set_title (GTK_WINDOW (window), \"ToggleButton Example\");\n"
+"  gtk_window_set_default_size (GTK_WINDOW (window), 300, 300);\n"
+"  gtk_container_set_border_width(GTK_CONTAINER(window), 30);\n"
+"\n"
+"  /*Create a togglebutton with a label*/\n"
+"  button = gtk_toggle_button_new_with_label (\"Start/Stop\");\n"
+"\n"
+"  /*Create a spinner, with extra horizontal and vertical space*/\n"
+"  spinner = gtk_spinner_new ();\n"
+"  gtk_widget_set_hexpand (spinner, TRUE);\n"
+"  gtk_widget_set_vexpand (spinner, TRUE);\n"
+"\n"
+"  /*Create a grid and set the row spacing, attach the togglebutton \n"
+"  and spinner onto the grid and position them accordingly*/\n"
+"  grid = gtk_grid_new();\n"
+"  gtk_grid_set_row_homogeneous (GTK_GRID (grid), FALSE);\n"
+"  gtk_grid_set_row_spacing (GTK_GRID (grid), 15);\n"
+"  gtk_grid_attach (GTK_GRID (grid), spinner, 0, 0, 1, 1);\n"
+"  gtk_grid_attach (GTK_GRID (grid), button, 0, 1, 1, 1);\n"
+"  \n"
+"  gtk_container_add (GTK_CONTAINER (window), grid);\n"
+"\n"
+"  /*Connecting the toggled signal to the callback*/\n"
+"  g_signal_connect (GTK_TOGGLE_BUTTON (button), \"toggled\", \n"
+"                    G_CALLBACK (button_toggled_cb), spinner);\n"
+"\n"
+"  gtk_widget_show_all (window);\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"int\n"
+"main (int argc, char **argv)\n"
+"{\n"
+"  GtkApplication *app;\n"
+"  int status;\n"
+"\n"
+"  app = gtk_application_new (\"org.gtk.example\", G_APPLICATION_FLAGS_NONE);\n"
+"  g_signal_connect (app, \"activate\", G_CALLBACK (activate), NULL);\n"
+"  status = g_application_run (G_APPLICATION (app), argc, argv);\n"
+"  g_object_unref (app);\n"
+"\n"
+"  return status;\n"
+"}\n"
 msgstr ""
-"Î ÏÏÎÎÏÏÎÏÎ <code>main</code> ÎÎÏÎÎÎÎÏÎÎ ÏÏÎÎÎÎÎÏÎÏÎÎÎÎ ÎÏÎÎÏ ÏÏÎÎÎÏÎ ÎÎÎ "
-"ÏÏÏÎÏÎÎÎÎ ÏÎ Python. ÎÎÎÎÎÏÏÎÎÎ ÎÎÎ ÏÏÎÎÎÎÏÏÏÏÎ ÏÎÏ ÎÏÏÎÎÏ ÎÎÎÏÎÏ ÎÎÎ "
-"ÎÎÎÎÎÎÎÎ ÏÎÎ ÎÏÏÎÎ ÎÏÏÏÎ ÎÎÎ ÎÎ ÎÎÏÎÎÎÏÎÎ ÏÎ ÏÎÏÎÎÏÏÎ."
+"\n"
+"#include &lt;gtk/gtk.h&gt;\n"
+"\n"
+"\n"
+"\n"
+"/*This is the callback function. It is a handler function \n"
+"which reacts to the signal. In this case, it will cause the \n"
+"spinner to start and stop according to how many times the user \n"
+"presses the button.*/\n"
+"static void\n"
+"button_toggled_cb (GtkWidget *button,\n"
+"                   gpointer   user_data)\n"
+"{\n"
+"  GtkWidget *spinner = user_data;\n"
+"\n"
+"  if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(button)))\n"
+"          gtk_spinner_start (GTK_SPINNER (spinner));\n"
+"  else {\n"
+"          gtk_spinner_stop (GTK_SPINNER (spinner));\n"
+"  }\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"static void\n"
+"activate (GtkApplication *app,\n"
+"          gpointer        user_data)\n"
+"{\n"
+"  GtkWidget *window;\n"
+"  GtkWidget *button;\n"
+"  GtkWidget *grid;\n"
+"  GtkWidget *spinner;\n"
+"\n"
+"  /*Create a window with a title, border width and a default size*/\n"
+"  window = gtk_application_window_new (app);\n"
+"  gtk_window_set_title (GTK_WINDOW (window), \"ToggleButton Example\");\n"
+"  gtk_window_set_default_size (GTK_WINDOW (window), 300, 300);\n"
+"  gtk_container_set_border_width(GTK_CONTAINER(window), 30);\n"
+"\n"
+"  /*Create a togglebutton with a label*/\n"
+"  button = gtk_toggle_button_new_with_label (\"Start/Stop\");\n"
+"\n"
+"  /*Create a spinner, with extra horizontal and vertical space*/\n"
+"  spinner = gtk_spinner_new ();\n"
+"  gtk_widget_set_hexpand (spinner, TRUE);\n"
+"  gtk_widget_set_vexpand (spinner, TRUE);\n"
+"\n"
+"  /*Create a grid and set the row spacing, attach the togglebutton \n"
+"  and spinner onto the grid and position them accordingly*/\n"
+"  grid = gtk_grid_new();\n"
+"  gtk_grid_set_row_homogeneous (GTK_GRID (grid), FALSE);\n"
+"  gtk_grid_set_row_spacing (GTK_GRID (grid), 15);\n"
+"  gtk_grid_attach (GTK_GRID (grid), spinner, 0, 0, 1, 1);\n"
+"  gtk_grid_attach (GTK_GRID (grid), button, 0, 1, 1, 1);\n"
+"  \n"
+"  gtk_container_add (GTK_CONTAINER (window), grid);\n"
+"\n"
+"  /*Connecting the toggled signal to the callback*/\n"
+"  g_signal_connect (GTK_TOGGLE_BUTTON (button), \"toggled\", \n"
+"                    G_CALLBACK (button_toggled_cb), spinner);\n"
+"\n"
+"  gtk_widget_show_all (window);\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"int\n"
+"main (int argc, char **argv)\n"
+"{\n"
+"  GtkApplication *app;\n"
+"  int status;\n"
+"\n"
+"  app = gtk_application_new (\"org.gtk.example\", G_APPLICATION_FLAGS_NONE);\n"
+"  g_signal_connect (app, \"activate\", G_CALLBACK (activate), NULL);\n"
+"  status = g_application_run (G_APPLICATION (app), argc, argv);\n"
+"  g_object_unref (app);\n"
+"\n"
+"  return status;\n"
+"}\n"
 
-#: C/guitar-tuner.py.page:81(p)
+#: C/togglebutton.c.page:38(item/p)
 msgid ""
-"This code is ready to be used, so you can run it by clicking "
-"<guiseq><gui>Run</gui><gui>Execute</gui></guiseq>."
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkToggleButton.html";
+"\">GtkTogglebutton</link>"
 msgstr ""
-"Î ÎÏÎÎÎÎÏ ÎÎÎÎÎ ÎÏÎÎÎÎÏ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÎÎ, ÎÏÏÏÎ ÎÏÎÏÎÎÏÎ ÎÎ ÏÎÎ ÎÎÏÎÎÎÏÎÏÎ "
-"ÏÎÎÎÎÎÎÎÏÎÏ <guiseq><gui>ÎÎÏÎÎÎÏÎ</gui><gui>ÎÎÏÎÎÎÏÎ</gui></guiseq>."
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkToggleButton.html";
+"\">GtkTogglebutton</link>"
+
+#: C/togglebutton.js.page:7(info/title)
+msgctxt "text"
+msgid "ToggleButton (JavaScript)"
+msgstr "ToggleButton (JavaScript)"
 
-#: C/guitar-tuner.py.page:86(p)
+#: C/togglebutton.js.page:17(info/desc)
+msgid "Stays pressed until you click it again"
+msgstr "ÎÎÏÎÎÎÎÎÎ ÏÎÏÎÎÎÎÎ ÎÎÏÏÎ ÎÎ ÏÎ ÏÎÏÎÏÎÏÎ ÎÎÎÎ"
+
+#: C/togglebutton.js.page:22(page/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."
+"A ToggleButton is like a normal <link xref=\"button.js\">Button</link>, "
+"except that it stays pressed in when you click it. You can use it like an on/"
+"off switch, to control things like the <link xref=\"spinner.js\">Spinner</"
+"link> in this example."
 msgstr ""
-"ÎÎÎ ÏÎÏÎÎÏÎÏÎ ÏÎÏ ÎÎÎÏÎÏÎÏ ÏÏÎÏÏÎ (UI) ÏÎÏÎÎÏÎÏÎÎ ÏÏÎ ÎÏÏÎÎÎ GtkBuilder. ÎÎÎ "
-"ÎÎ ÎÏÎÎÎÏÎÎÏÏÎÎÏÎ ÏÎ ÎÎÎÏÎÏÎ ÏÏÎÏÏÎ, ÎÎÎÎÎÏÎ ÏÎ <file>src/guitar_tuner.ui</"
-"file>. ÎÎ ÎÏÎÎÎÎÏÎ ÏÏÎ ÏÏÎÎÎÎÏÏÎ ÎÎÎÏÎÏÎÏ. ÎÎ ÏÎÏÎÎÏÏÎ ÏÏÎÎÎÎÏÎÏ ÎÎÎÎÎ ÏÏÎ "
-"ÎÎÎÏÏÎÂ ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÎ ÎÎ ÎÎÎÏÏÎÏÎÏ ÏÎÏÏ ÎÎÎÎÎ ÏÏÎ ÎÎÎÎÎ ÎÎÎ Î "
-"ÏÎÎÎÏÎ ÏÏÎ ÎÎÎÎÎÏÎÎÏÎ ÎÏÎÏÎÎÏÎ ÏÏÏÏÎÏÎÎÏÎ ÏÏÎ ÎÏÎÏÏÎÏÎ."
+"ÎÎÎ ToggleButton ÎÎÎÎÎ ÏÎÎ ÎÎÎ ÎÎÎÎÎÎÎÏ <link xref=\"button.js\">ÎÎÏÎÏÎ</"
+"link>, ÎÎÏÏÏ ÎÏÏ ÏÎ ÏÏÎ ÏÎÏÎÎÎÎÎÎ ÏÎÏÎÎÎÎÎ ÏÏÎÎ ÏÎ ÏÎÏÎÏÎ. ÎÏÎÏÎÎÏÎ ÎÎ ÏÎ "
+"ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÏÎÎ ÎÎÎÎ ÎÎÎÎÏÏÏÎ ÎÎÎ/ÏÏÎ, ÎÎÎ ÎÎ ÎÎÎÎÎÎÏÎ ÏÏÎÎÎÎÏÎ ÏÏÏÏ ÏÎÎ "
+"<link xref=\"spinner.js\">ÎÎÏÏÎÏÎ</link> ÏÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ."
 
-#: C/guitar-tuner.py.page:88(p) C/guitar-tuner.cpp.page:86(p)
-#: C/guitar-tuner.c.page:92(p)
+#: C/togglebutton.js.page:23(page/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."
+"A ToggleButton's get_active method returns true if it's pressed in, and "
+"false if it's not. Its set_active method is used if you want to change its "
+"state without needing to click on it. When it changes state from pressed in "
+"to popped out and vice-versa, it sends out the \"toggled\" signal, which you "
+"can connect to a function to do something."
 msgstr ""
-"Î ÎÎÎÏÎÎÎ ÎÎÎÎ ÎÎÎÏÎÏÎÏ ÏÏÎÏÏÎ ÏÎ Gtk+ ÎÏÎÎÎÏÎÎÏÎÎ ÏÎ ÎÎÏÏÎÎ ÎÎÎ ÏÎÎÎÎÎÏ. ÎÏ "
-"ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÎÏ ÎÎÎ ÎÎÎÎÏÎ <gui>GtkButtonBox</gui> ÎÎÎ ÎÎ ÏÎÏÎÎÎÏÎÏÎÏÎÎ "
-"ÎÎÎ <gui>GtkButtons</gui>, ÎÎÎ ÎÎÎ ÎÎÎÎ ÎÎÎ ÎÏÏ ÏÎÏ ÏÎÏÎÎÏ ÏÎÏ ÎÎÎÎÏÎÏ."
+"ÎÎÎ ÎÎÎÎÎÎÏ get_active ÏÎÏ ToggleButton ÎÏÎÏÏÏÎÏÎÎ ÎÎÎÎÎÏ ÎÎÎ ÏÎÏÎÎÎÎ ÎÎÎ "
+"ÏÎÏÎÎÏ ÎÎÎ ÎÎÎ ÏÎÏÎÎÎÎ. Î ÎÎÎÎÎÎÏ ÏÎÏ set_active ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÎÎÎ ÎÎÎÎÏÎ "
+"ÎÎ ÎÎÎÎÎÎÏÎ ÏÎÎ ÎÎÏÎÏÏÎÏÎ ÏÎÏ ÏÏÏÎÏ ÎÎ ÏÏÎÎÎÎÎÏÎÎ ÎÎ ÏÎ ÏÎÏÎÏÎÏÎ. ÎÏÎÎ "
+"ÎÎÎÎÎÎÎ Î ÎÎÏÎÏÏÎÏÎ ÎÏÏ ÏÎÏÎÎÎÎÎ ÏÎ ÎÎÎÎÏÏÎÎÎÎ ÎÎÎ ÎÎÏÎÏÏÏÎÏÎ, ÏÏÎÎÎÎÎ ÏÎ "
+"ÏÎÎÎ \"ÎÎÎÎÎÎÎÎÎ\", ÏÎÏ ÎÏÎÏÎÎÏÎ ÎÎ ÏÏÎÎÎÏÎÏÎ ÎÎ ÎÎÎ ÏÏÎÎÏÏÎÏÎ ÎÎÎ ÎÎ ÎÎÎÎÎ "
+"ÎÎÏÎ."
 
-#: C/guitar-tuner.py.page:94(p) C/guitar-tuner.cpp.page:92(p)
-#: C/guitar-tuner.c.page:98(p)
+#: C/togglebutton.js.page:40(section/code)
+#, no-wrap
 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."
+"\n"
+"const ToggleButtonExample = new Lang.Class({\n"
+"    Name: 'ToggleButton Example',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application({\n"
+"            application_id: 'org.example.jstogglebutton',\n"
+"            flags: Gio.ApplicationFlags.FLAGS_NONE\n"
+"        });\n"
+"\n"
+"    // Connect 'activate' and 'startup' signals to the callback functions\n"
+"    this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"    this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents window when active\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function() {\n"
+"        this._buildUI ();\n"
+"    },\n"
 msgstr ""
-"ÎÎÎÎÎÎÏÎ ÎÎÎ <gui>GtkButtonBox</gui> ÎÏÏ ÏÎ ÏÎÎÎÎ <gui>Container</gui> ÏÏÎÎ "
-"<gui>ÎÎÎÎÏÎ</gui> ÏÏÎ ÎÎÎÎÎ ÎÎÎ ÏÏÎÏÎÎÏÏÎ ÏÎ ÏÏÎ ÏÎÏÎÎÏÏÎ. ÎÏÎÎ ÎÎÏÏÎÎÎ "
-"<gui>ÎÎÎÏÏÎÏÎÏ</gui> ÎÎÎÎÏÎÏÏÎ ÏÎÎ ÎÏÎÎÎÏ ÏÏÎ ÏÏÎÎÏÎÎÏÎ ÏÎ 6 (ÎÎÎ ÏÎÏ ÎÎÎ "
-"ÏÎÏÎÎÏ ÏÎÏ ÎÎÎÎÏÎÏ) ÎÎÎ ÏÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏ ÏÎ ÎÎÎÎÏÎ."
+"\n"
+"const ToggleButtonExample = new Lang.Class({\n"
+"    Name: 'ToggleButton Example',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application({\n"
+"            application_id: 'org.example.jstogglebutton',\n"
+"            flags: Gio.ApplicationFlags.FLAGS_NONE\n"
+"        });\n"
+"\n"
+"    // Connect 'activate' and 'startup' signals to the callback functions\n"
+"    this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"    this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents window when active\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function() {\n"
+"        this._buildUI ();\n"
+"    },\n"
 
-#: C/guitar-tuner.py.page:98(p) C/guitar-tuner.cpp.page:96(p)
-#: C/guitar-tuner.c.page:102(p)
+#: C/togglebutton.js.page:67(section/code)
+#, no-wrap
 msgid ""
-"Now, choose a <gui>GtkButton</gui> from the palette and put it into the "
-"first part of the box."
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function() {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            default_height: 300,\n"
+"            default_width: 300,\n"
+"            border_width: 30,\n"
+"            title: \"ToggleButton Example\"});\n"
 msgstr ""
-"ÎÏÏÎ, ÎÎÎÎÎÎÏÎ ÎÎÎ <gui>GtkButton</gui> ÎÏÏ ÏÎÎ ÏÎÎÎÏÎ ÎÎÎ ÎÎÎÏÎ ÏÎ ÏÏÎ "
-"ÏÏÏÏÎ ÎÎÏÎÏ ÏÎÏ ÎÎÏÏÎÎÏ."
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function() {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            default_height: 300,\n"
+"            default_width: 300,\n"
+"            border_width: 30,\n"
+"            title: \"ToggleButton Example\"});\n"
+
+#: C/togglebutton.js.page:84(section/title)
+msgid "Creating the ToggleButton and other widgets"
+msgstr "ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ ToggleButton ÎÎÎ ÎÎÎÏÎ ÎÏÎÏÎÎÏÎ ÏÏÏÏÎÏÎÎÏÎ"
 
-#: C/guitar-tuner.py.page:101(p) C/guitar-tuner.c.page:105(p)
+#: C/togglebutton.js.page:85(section/code)
+#, no-wrap
 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."
+"\n"
+"        // Create the spinner that the button stops and starts\n"
+"        this._spinner = new Gtk.Spinner ({hexpand: true, vexpand: true});\n"
 msgstr ""
-"ÎÏÎÎÏÎÏ ÏÎ ÎÎÏÎÏÎ ÎÎÏÎÎ ÎÏÎÎÎÎÎÎÎÎ, ÎÎÎÎÎÏÎ ÏÎÎ <gui>ÎÏÎÎÎÏÎ</gui> ÏÏÎÎ "
-"ÎÎÏÏÎÎÎ <gui>ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ</gui> ÏÎ <gui>E</gui>. ÎÏÏÎ ÎÎ ÎÎÎÎÎ Î ÏÎÎÎÎÎ "
-"ÏÎÏÎÎ Î."
+"\n"
+"        // Create the spinner that the button stops and starts\n"
+"        this._spinner = new Gtk.Spinner ({hexpand: true, vexpand: true});\n"
 
-#: C/guitar-tuner.py.page:104(p) C/guitar-tuner.c.page:108(p)
+#: C/togglebutton.js.page:90(section/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>."
+"We want this <link xref=\"spinner.js\">Spinner</link> to expand vertically "
+"and horizontally, to take up as much space as possible inside the window."
 msgstr ""
-"ÎÎÎÎÎÎÎÏÎ ÏÏÎÎ ÎÎÏÏÎÎÎ <gui>ÎÎÎÎÏÎ</gui> (ÎÎÏÎ ÏÏÎÎ ÎÎÏÏÎÎÎ <gui>ÎÏÎÏÎÎÎ "
-"ÏÏÏÏÎÏÎÎÎ</gui>) ÎÎÎ ÎÏÎÎÏÎ ÏÎ ÏÎÎÎ <code>clicked</code> ÏÎÏ ÎÎÏÎÏÎÎÏ. "
-"ÎÏÎÏÎÎÏÎ ÎÎ ÏÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÎÎÎ ÎÎ ÏÏÎÎÎÏÎÏÎ ÎÎÎÎ ÏÎÎÏÎÏÏÎ ÏÎÎÎÏÏÎ ÏÎÏ ÎÎ "
-"ÎÎÎÎÎÏÎÎ ÏÏÎÎ ÏÎÏÎÎÎÎ ÏÎ ÎÎÏÎÏÎ ÎÏÏ ÏÎÎ ÏÏÎÏÏÎ. ÎÎÎ ÎÎ ÏÎ ÎÎÎÎÏÎ ÎÏÏÏ, "
-"ÏÎÏÎÏÏÎ ÏÎÎÏ ÏÏÎ ÏÎÎÎ ÎÎÎ ÏÎÎÎÏÏÎÎÎÎÎÏÏÎ <code>on_button_clicked</code> ÏÏÎ "
-"ÏÏÎÎÎ <gui>ÏÎÎÏÎÏÏÎÏ</gui> ÎÎÎ ÏÎÏÎÏÏÎ <key>ÎÏÎÏÏÏÎÏÎ</key>."
+"ÎÎÎÎÏÎÎ ÎÏÏÏÏ Î <link xref=\"spinner.js\">ÎÎÏÏÎÏÎÏ</link> ÎÎ ÎÏÎÎÏÎÎÎÎ "
+"ÎÎÎÎÏÎ ÎÎÎ ÎÏÎÎÏÎÏÎÎ, ÎÎÎ ÎÎ ÎÎÏÎÎÎÎÎÎ ÏÏÎ ÏÎ ÎÏÎÎÏÏ ÏÎÏÎÏÏÏÏÎÏÎ ÏÏÏÎ ÎÎÏÎ "
+"ÏÏÎ ÏÎÏÎÎÏÏÎ."
 
-#: C/guitar-tuner.py.page:116(title)
-msgid "Write the signal handler"
-msgstr "ÎÎÎÏÎÏÎ ÏÎÏ ÏÎÎÏÎÏÏÎ ÏÎÎÎÏÏÎ"
+#: C/togglebutton.js.page:92(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"        // Create the togglebutton that starts and stops the spinner\n"
+"        this._toggleButton = new Gtk.ToggleButton ({label: \"Start/Stop\"});\n"
+"        this._toggleButton.connect ('toggled', Lang.bind (this, this._onToggle));\n"
+msgstr ""
+"\n"
+"        // Create the togglebutton that starts and stops the spinner\n"
+"        this._toggleButton = new Gtk.ToggleButton ({label: \"Start/Stop\"});\n"
+"        this._toggleButton.connect ('toggled', Lang.bind (this, this._onToggle));\n"
 
-#: C/guitar-tuner.py.page:117(p) C/guitar-tuner.c.page:121(p)
+#: C/togglebutton.js.page:98(section/p)
 msgid ""
-"In the UI designer, you made it so that all of the buttons will call the "
-"same function, <gui>on_button_clicked</gui>, when they are clicked. We need "
-"to add that function in the source file."
+"Creating a ToggleButton is a lot like creating a normal <link xref=\"button."
+"js\">Button</link>. The biggest difference is that you're handling a "
+"\"toggled\" signal instead of a \"clicked\" signal. This code binds the "
+"_onToggle function to that signal, so that it's called whenever our "
+"ToggleButton is toggled."
 msgstr ""
-"ÎÏÎÎ ÏÏÎÎÎÎÏÏÎ ÎÎÎÏÎÏÏÎ ÏÏÎÏÏÎ, ÎÎÎÎÏÎ ÏÎÎ ÏÎ ÎÎÏÎÏÎÎ ÎÎ ÎÎÎÎÏÎ ÏÎÎ ÎÎÎÎ "
-"ÏÏÎÎÏÏÎÏÎ, <gui>on_button_clicked</gui>, ÏÏÎÎ ÏÎÏÎÎÎÏÎ. ÎÏÎÏÎÎ ÎÎ "
-"ÏÏÎÏÎÎÏÎÏÎÎ ÎÏÏÎ ÏÎÎ ÏÏÎÎÏÏÎÏÎ ÏÏÎ ÏÎÎÎÎÎ ÎÏÎÎÎÎ."
+"Î ÎÎÎÎÎÏÏÎÎÎ ÎÎÏÏ ToggleButton ÎÎÎÎÎ ÏÎÏÎÎÏÎÏÎÏ ÎÎ ÏÎ ÎÎÎÎÎÏÏÎÎÎ ÎÎÏÏ "
+"ÎÎÎÎÎÎÎÎÏ <link xref=\"button.js\">ÎÎÏÎÏÎÎÏ</link>. Î ÎÎÎÎÎÏÏÎÏÎ ÎÎÎÏÎÏÎ "
+"ÎÎÎÎÎ ÏÏÎ ÏÎÎÏÎÎÎÏÏÎ ÎÎÎ \"ÎÎÎÎÎÎÎÎÎ\" ÏÎÎÎ ÎÎÏÎ ÎÎÎ ÎÎÎ \"ÏÎÏÎÎÎÎÎ\" ÏÎÎÎ. "
+"ÎÏÏÏÏ Î ÎÏÎÎÎÎÏ ÏÏÎÎÎÎÎ ÏÎ ÏÏÎÎÏÏÎÏÎ _onToggle ÎÎ ÎÏÏÏ ÏÎ ÏÎÎÎ, ÎÏÏÎ ÏÏÏÎ "
+"ÎÎÎÎÎÏÎÎ ÏÏÎÏÎ ÏÎ ToggleButton ÎÎÏ ÎÎÎÎÎÎÏÏÎÏÎÎ."
 
-#: C/guitar-tuner.py.page:118(p)
+#: C/togglebutton.js.page:100(section/code)
+#, no-wrap
 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:"
+"\n"
+"        // Create a grid and put everything in it\n"
+"        this._grid = new Gtk.Grid ({\n"
+"            row_homogeneous: false,\n"
+"            row_spacing: 15});\n"
+"        this._grid.attach (this._spinner, 0, 0, 1, 1);\n"
+"        this._grid.attach (this._toggleButton, 0, 1, 1, 1);\n"
 msgstr ""
-"ÎÎÎ ÎÎ ÏÎ ÎÎÎÎÏÎ ÎÏÏÏ, ÎÎÎÎÎÏÎ ÏÎ <file>guitar_tuner.py</file>, ÎÏÎÎÏÎÏ "
-"ÎÎÎÎÏÏÏ ÎÎÎ ÏÎ ÎÏÏÎÎÎ ÏÎÏ ÎÎÎÏÎÏÎÏ ÏÏÎÏÏÎ. ÎÎÎÎÎÎÎÏÎ ÏÏÎÎ ÎÎÏÏÎÎÎ "
-"<gui>ÏÎÎÎÏÎ</gui> ÏÎÏ ÎÎÏÎÏÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÎÎÎ ÎÎ ÎÏÎÏÎÏÎ ÏÎ ÏÎÎÎÎ ÏÎÏ "
-"ÏÎÎÎÏÎÏ. ÎÏÏÎ ÏÎÏÏÎ ÏÎÎ ÎÏÎÎÎÎ ÏÏÎÏ ÎÏÎÏÎÏÎ ÏÎ ÏÎÎÎ <gui>clicked</gui> ÎÎÎ "
-"ÏÏÏÎÏÎ ÏÎÎ ÏÏÎÎ ÏÎÎÎÎÎ ÎÏÎÎÎÎ ÎÎÏÎ ÏÏÎÎ ÎÎÎÏÎ. Î ÎÎÏÎÎÏÎÎÏ ÎÏÎÎÎÎÏ ÎÎ "
-"ÏÏÎÏÏÎÎÎÎ ÏÏÎÎ ÏÎÎÎÎÎ ÏÎÏ ÎÏÏÎÎÎ:"
+"\n"
+"        // Create a grid and put everything in it\n"
+"        this._grid = new Gtk.Grid ({\n"
+"            row_homogeneous: false,\n"
+"            row_spacing: 15});\n"
+"        this._grid.attach (this._spinner, 0, 0, 1, 1);\n"
+"        this._grid.attach (this._toggleButton, 0, 1, 1, 1);\n"
 
-#: C/guitar-tuner.py.page:124(p)
+#: C/togglebutton.js.page:108(section/p)
 msgid ""
-"This signal handler has two arguments: the usual Python class pointer, and "
-"the <code>Gtk.Button</code> that called the function."
+"Here we create a simple <link xref=\"grid.js\">Grid</link> to organize "
+"everything in, then attach the Spinner and ToggleButton to it."
 msgstr ""
-"Î ÏÎÎÏÎÏÏÎÏ ÏÎÎÎÏÏÎ ÎÏÎÎ ÎÏÎ ÏÎÏÎÎÎÏÏÎÏÏ: ÏÎÎ ÏÏÏÎÎÏ ÎÎÎÎÏÎ ÎÎÎÏÎÏ ÏÎÏ "
-"Python ÎÎÎ ÏÎ <code>Gtk.Button</code> ÏÎÏ ÎÎÎÎÎ ÏÎÎ ÏÏÎÎÏÏÎÏÎ."
+"ÎÎÏ ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ ÎÏÎÏ <link xref=\"grid.js\">ÏÎÎÎÎÎ</link> ÎÎÎ ÎÎ "
+"ÎÏÎÎÎÏÏÎÏÎÎ ÎÎÏÎ ÏÎÏ ÏÎÎ, ÎÏÎÎÏÎ ÎÏÎÏÏÎÎÏÏÎÏÎÎ ÏÎÎ ÎÎÏÏÎÏÎ ÎÎÎ ÏÎ "
+"ToggleButton ÏÎ ÎÏÏÏ."
 
-#: C/guitar-tuner.py.page:125(p) C/guitar-tuner.c.page:131(p)
+#: C/togglebutton.js.page:110(section/code)
+#, no-wrap
 msgid ""
-"For now, we'll leave the signal handler empty while we work on writing the "
-"code to produce sounds."
+"\n"
+"        // Add the grid to the window\n"
+"        this._window.add (this._grid);\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    },\n"
 msgstr ""
-"ÎÎÎ ÏÎÎ ÏÏÎ, ÎÎ ÎÏÎÏÎÏÎÎ ÏÎ ÏÎÎÏÎÏÏÎ ÏÎÎÎÏÏÎ ÎÎÎÎÎ ÎÎÎÏÏ ÎÎ ÎÏÏÎÎÎÎÎÏÎÎ ÎÎ "
-"ÏÎ ÎÏÎÏÎÎÎ ÏÎÏ ÎÏÎÎÎÎ ÏÎÏ ÎÎ ÏÎÏÎÎÎÎ ÏÎÏÏ ÎÏÎÏÏ."
+"\n"
+"        // Add the grid to the window\n"
+"        this._window.add (this._grid);\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    },\n"
 
-#: C/guitar-tuner.py.page:130(p) C/guitar-tuner.js.page:39(p)
-#: C/guitar-tuner.c.page:136(p)
+#: C/togglebutton.js.page:118(section/p)
 msgid ""
-"GStreamer is GNOME's multimedia framework â you can use it for playing, "
-"recording, and processing video, audio, webcam streams and the like. Here, "
-"we'll be using it to produce single-frequency tones."
+"Now we add the Grid to the Window, and tell the Window to show itself and "
+"its child widgets when the application is started."
 msgstr ""
-"ÎÎ Gtreamer ÎÎÎÎÎ Î ÏÎÎÎÎÏÏÏ ÏÎÎÏÎÎÏÏÎ ÏÎÏ GNOME â ÎÏÎÏÎÎÏÎ ÎÎ ÏÎ "
-"ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÎÎÎ ÎÎ ÎÎÎÏÎÏÎÎÎÏÎ, ÎÏÎÎÏÎÏÎÏÎÏÎ, ÎÎÎ ÎÎ ÎÏÎÎÎÏÎÎÏÏÎÎÏÎ "
-"ÎÎÎÏÎÎ, ÎÏÎ, ÏÎÎÏ ÎÎÎÏÎÎ ÎÎÎ ÏÎ ÎÎÎÏÎ. ÎÎÏ, ÎÎ ÏÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÎÎ ÎÎ "
-"ÏÎÏÎÎÎÏÎÎ ÎÎÎÎÏ-ÏÏÏÎÏÏÎÏÎÏ ÏÏÎÏÎ."
+"ÎÏÏÎ ÏÏÎÏÎÎÏÎÏÎÎ ÏÎ ÏÎÎÎÎÎ ÏÏÎ ÏÎÏÎÎÏÏÎ ÎÎÎ ÎÎÎÎ ÏÏÎ ÏÎÏÎÎÏÏÎ ÎÎ ÎÎÏÎÎÎÏÎÎ "
+"ÏÎÎ ÎÎÏÏÏÎ ÏÎÏ ÎÎÎ ÏÎ ÎÏÎÎÏÏÎÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÏÏÎÎ Î ÎÏÎÏÎÎÎÎ ÎÎÎÎÎÎ."
+
+#: C/togglebutton.js.page:122(section/title)
+msgid "Making something happen when the ToggleButton is toggled"
+msgstr "ÎÎÎÎÎÏÎÏ ÎÎ ÏÏÎÎÎÎ ÎÎÏÎ ÏÏÎÎ ÏÎ ToggleButton ÎÎÎÎÎÎÏÏÎÏÎÎ"
 
-#: C/guitar-tuner.py.page:131(p) C/guitar-tuner.js.page:40(p)
-#: C/guitar-tuner.cpp.page:115(p) C/guitar-tuner.c.page:137(p)
+#: C/togglebutton.js.page:124(section/code)
+#, no-wrap
 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."
+"\n"
+"    _onToggle: function() {\n"
+"\n"
+"        // Start or stop the spinner\n"
+"        if (this._toggleButton.get_active ())\n"
+"            this._spinner.start ();\n"
+"        else this._spinner.stop ();\n"
+"\n"
+"    }\n"
+"\n"
+"});\n"
 msgstr ""
-"ÎÎÎÎÎÎÎÎÎÎÎÎ, ÏÎ GStreamer ÎÎÎÏÎÏÏÎÎÎ ÏÏ ÎÎÎÏ: ÎÎÎÎÎÏÏÎÎÎÏ ÎÎÎ "
-"<em>ÎÎÎÏÎÏÎÏÏÎ</em> ÏÎÏ ÏÎÏÎÎÏÎÎ ÎÎÎÏÎÏÎ ÎÏÎÎÎÏÎÎÎÏÎÎÎÎ ÏÏÎÎÏÎÎÎ ÏÎÏ "
-"ÏÎÎÎÎÎÎÏÎ ÎÏÏ ÏÎÎ <em>ÏÎÎÎ</em> ÏÏÎÎ <em>ÎÎÎÎÎ</em>. Î ÏÎÎÎ ÎÏÎÏÎÎ ÎÎ ÎÎÎÎÎ "
-"ÎÎÎ ÎÏÏÎÎÎ ÎÎÎÏÎÎÏ, ÎÎÎÏÎÎ, Î ÎÎÎ ÎÎÏÏÎÎÎÏ, ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ, ÎÎÎ Î ÎÎÎÎÎÏ "
-"ÎÏÎÏÎÎ ÎÎ ÎÎÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ Î Î ÎÎÏÏÎ ÎÏÎÏ."
+"\n"
+"    _onToggle: function() {\n"
+"\n"
+"        // Start or stop the spinner\n"
+"        if (this._toggleButton.get_active ())\n"
+"            this._spinner.start ();\n"
+"        else this._spinner.stop ();\n"
+"\n"
+"    }\n"
+"\n"
+"});\n"
 
-#: C/guitar-tuner.py.page:140(p) C/guitar-tuner.cpp.page:129(p)
-#: C/guitar-tuner.c.page:146(p)
+#: C/togglebutton.js.page:136(section/p)
 msgid ""
-"In this simple example we will use a tone generator source called "
-"<code>audiotestsrc</code> and send the output to the default system sound "
-"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>."
+"Whenever someone toggles the button, this function checks what its state is "
+"afterwards using get_active and starts or stops the spinner accordingly. We "
+"want it to spin only while the button is pressed in, so if get_active "
+"returns true we start the spinner. Otherwise, we tell it to stop."
 msgstr ""
-"ÎÎ ÎÏÏÏ ÏÎ ÎÏÎÏ ÏÎÏÎÎÎÎÎÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÎÎ ÏÎÎÎ ÏÎÏÎÎÏÎÎÏ ÏÏÎÏÎ, ÏÎÎ "
-"<code>audiotestsrc</code> ÎÎÎ ÎÎ ÏÏÎÎÎÎÏÎÎ ÏÎÎ ÎÎÎÎÎ ÏÏÎÎ ÏÏÎÎÏÎÎÎÎÎÎÎÎ "
-"ÏÏÏÎÎÏÎ ÎÏÎÏ ÏÎÏ ÏÏÏÏÎÎÎÏÎÏ, <code>autoaudiosink</code>. ÎÏÎÏÎÎ ÎÏÎÎ ÎÎ "
-"ÏÏÎÎÎÏÎÏÎÎ ÏÎÎ ÏÏÏÎÏÏÎÏÎ ÏÎÏ ÏÎÏÎÎÏÎÎÏ ÏÏÎÎÏÂ ÎÏÏÏ ÎÎÎÎÎ ÎÏÎÎÏÏ ÎÎÏÎ ÎÏÏ ÏÎÎ "
-"ÏÏÎÎÎÏÎ <code>freq</code> ÏÎÏ <code>audiotestsrc</code>."
+"ÎÏÎÏÎ ÎÎÏÎÎÎÏ ÎÎÎÎÎÎÏÏÎÎ ÏÎ ÎÎÏÎÏÎ, ÎÏÏÎ Î ÏÏÎÎÏÏÎÏÎ ÎÎÎÎÏÎÎ ÏÎÎÎ ÎÎÎÎÎ Î "
+"ÎÎÏÎÏÏÎÏÎ ÏÎÏ ÎÎÏÏÏÎÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ get_active ÎÎÎ ÎÎÎÎÎÎ Î ÏÏÎÎÎÏÎ ÏÎÎ "
+"ÎÎÏÏÎÏÎ ÎÎÎÎÎÎÎ. ÎÎ ÎÎÎÎÏÎÎ ÎÏÎÎ ÎÎ ÏÎÏÎÏÏÏÎÏÎÎ ÎÎÏ ÏÎ ÎÎÏÎÏÎ ÎÎÎÎÎ "
+"ÏÎÏÎÎÎÎÎ, ÎÏÏÎ ÎÎÎ Î get_active ÎÏÎÏÏÏÎÏÎÎ ÎÎÎÎÎÏ ÎÏÏÎÎÎÏÎÎ ÏÎÎ ÎÎÏÏÎÏÎ. "
+"ÎÎÎÎÏÏ, ÏÎÏ ÎÎÎÎ ÎÎ ÏÏÎÎÎÏÎÏÎÎ."
 
-#: C/guitar-tuner.py.page:142(p)
+#: C/togglebutton.js.page:138(section/code)
+#, no-wrap
 msgid ""
-"Change the import line in <file>guitar_tuner.py</file>, just at the "
-"beginning to :"
+"\n"
+"// Run the application\n"
+"let app = new ToggleButtonExample ();\n"
+"app.application.run (ARGV);\n"
 msgstr ""
-"ÎÎÎÎÎÏÎ ÏÎ ÎÏÎÎÎÎ import ÏÏÎ ÎÏÏÎÎÎ <file>guitar_tuner.py</file>, ÎÏÎÎ ÏÏÎÎ "
-"ÎÏÏÎ ÏÎ :"
+"\n"
+"// Run the application\n"
+"let app = new ToggleButtonExample ();\n"
+"app.application.run (ARGV);\n"
 
-#: C/guitar-tuner.py.page:144(p)
+#: C/togglebutton.js.page:148(section/code)
+#, no-wrap
 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:"
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gio = imports.gi.Gio;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"const ToggleButtonExample = new Lang.Class({\n"
+"    Name: 'ToggleButton Example',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application({\n"
+"            application_id: 'org.example.jstogglebutton',\n"
+"            flags: Gio.ApplicationFlags.FLAGS_NONE\n"
+"        });\n"
+"\n"
+"    // Connect 'activate' and 'startup' signals to the callback functions\n"
+"    this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"    this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents window when active\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function() {\n"
+"        this._buildUI ();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function() {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            default_height: 300,\n"
+"            default_width: 300,\n"
+"            border_width: 30,\n"
+"            title: \"ToggleButton Example\"});\n"
+"\n"
+"        // Create the spinner that the button stops and starts\n"
+"        this._spinner = new Gtk.Spinner ({hexpand: true, vexpand: true});\n"
+"\n"
+"        // Create the togglebutton that starts and stops the spinner\n"
+"        this._toggleButton = new Gtk.ToggleButton ({label: \"Start/Stop\"});\n"
+"        this._toggleButton.connect ('toggled', Lang.bind (this, this._onToggle));\n"
+"\n"
+"        // Create a grid and put everything in it\n"
+"        this._grid = new Gtk.Grid ({\n"
+"            row_homogeneous: false,\n"
+"            row_spacing: 15});\n"
+"        this._grid.attach (this._spinner, 0, 0, 1, 1);\n"
+"        this._grid.attach (this._toggleButton, 0, 1, 1, 1);\n"
+"\n"
+"        // Add the grid to the window\n"
+"        this._window.add (this._grid);\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    _onToggle: function() {\n"
+"\n"
+"        // Start or stop the spinner\n"
+"        if (this._toggleButton.get_active ())\n"
+"            this._spinner.start ();\n"
+"        else this._spinner.stop ();\n"
+"\n"
+"    }\n"
+"\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new ToggleButtonExample ();\n"
+"app.application.run (ARGV);\n"
 msgstr ""
-"ÎÎ <code>Gst</code> ÏÎÏÎÎÏÎÎ ÏÎ ÎÎÎÎÎÎÎÎÎÎ GStreamer. ÎÏÎÏÎÏ ÏÏÎÏÎÎ ÎÎ "
-"ÎÏÏÎÎÎÏÎÎÎÏÎÏÎ ÏÏÏÏÎ ÏÎ GStreamer ÏÎ ÎÏÎÎÎ ÎÎÎÎÏÎÎ ÏÏÎ ÎÎÎÎÎÎ <code>main()</"
-"code> ÎÎ ÏÎÎ ÏÏÎÏÎÎÎÎ ÎÏÏÎÏ ÎÏÎÎÎÎÏ ÏÎÎÏ ÎÏÏ ÏÎÎ ÎÏÎÎÎÎ <code>app = GUI()</"
-"code>:"
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gio = imports.gi.Gio;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"const ToggleButtonExample = new Lang.Class({\n"
+"    Name: 'ToggleButton Example',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application({\n"
+"            application_id: 'org.example.jstogglebutton',\n"
+"            flags: Gio.ApplicationFlags.FLAGS_NONE\n"
+"        });\n"
+"\n"
+"    // Connect 'activate' and 'startup' signals to the callback functions\n"
+"    this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"    this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents window when active\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function() {\n"
+"        this._buildUI ();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function() {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            default_height: 300,\n"
+"            default_width: 300,\n"
+"            border_width: 30,\n"
+"            title: \"ToggleButton Example\"});\n"
+"\n"
+"        // Create the spinner that the button stops and starts\n"
+"        this._spinner = new Gtk.Spinner ({hexpand: true, vexpand: true});\n"
+"\n"
+"        // Create the togglebutton that starts and stops the spinner\n"
+"        this._toggleButton = new Gtk.ToggleButton ({label: \"Start/Stop\"});\n"
+"        this._toggleButton.connect ('toggled', Lang.bind (this, this._onToggle));\n"
+"\n"
+"        // Create a grid and put everything in it\n"
+"        this._grid = new Gtk.Grid ({\n"
+"            row_homogeneous: false,\n"
+"            row_spacing: 15});\n"
+"        this._grid.attach (this._spinner, 0, 0, 1, 1);\n"
+"        this._grid.attach (this._toggleButton, 0, 1, 1, 1);\n"
+"\n"
+"        // Add the grid to the window\n"
+"        this._window.add (this._grid);\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    _onToggle: function() {\n"
+"\n"
+"        // Start or stop the spinner\n"
+"        if (this._toggleButton.get_active ())\n"
+"            this._spinner.start ();\n"
+"        else this._spinner.stop ();\n"
+"\n"
+"    }\n"
+"\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new ToggleButtonExample ();\n"
+"app.application.run (ARGV);\n"
 
-#: C/guitar-tuner.py.page:148(p)
+#: C/togglebutton.js.page:158(item/p)
 msgid ""
-"Then, copy the following function into the class in <file>guitar_tuner.py</"
-"file> somewhere:"
+"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.ToggleButton.";
+"html\">Gtk.ToggleButton</link>"
 msgstr ""
-"ÎÎÏÎ, ÎÎÏÎÎÏÎÏÏÎ ÏÎÎ ÎÎÏÎÎÏÎÎ ÏÏÎÎÏÏÎÏÎ ÎÎÏÎÏ ÏÏÎÎ ÎÎÎÏÎ ÏÏÎ "
-"<file>guitar_tuner.py</file>:"
+"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.ToggleButton.";
+"html\">Gtk.ToggleButton</link>"
+
+#: C/togglebutton.py.page:7(info/title)
+msgctxt "text"
+msgid "ToggleButton (Python)"
+msgstr "ToggleButton (Python)"
 
-#: C/guitar-tuner.py.page:164(p)
+#: C/togglebutton.py.page:32(section/code)
+#, no-wrap
 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)."
+"from gi.repository import Gtk\n"
+"import sys\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    # a window\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"ToggleButton Example\", application=app)\n"
+"        self.set_default_size(300, 300)\n"
+"        self.set_border_width(30)\n"
+"\n"
+"        # a spinner animation\n"
+"        self.spinner = Gtk.Spinner()\n"
+"        # with extra horizontal space\n"
+"        self.spinner.set_hexpand(True)\n"
+"        # with extra vertical space\n"
+"        self.spinner.set_vexpand(True)\n"
+"\n"
+"        # a togglebutton\n"
+"        button = Gtk.ToggleButton.new_with_label(\"Start/Stop\")\n"
+"        # connect the signal \"toggled\" emitted by the togglebutton\n"
+"        # when its state is changed to the callback function toggled_cb\n"
+"        button.connect(\"toggled\", self.toggled_cb)\n"
+"\n"
+"        # a grid to allocate the widgets\n"
+"        grid = Gtk.Grid()\n"
+"        grid.set_row_homogeneous(False);\n"
+"        grid.set_row_spacing(15);\n"
+"        grid.attach(self.spinner, 0, 0, 1, 1);\n"
+"        grid.attach(button, 0, 1, 1, 1);\n"
+"\n"
+"        # add the grid to the window\n"
+"        self.add(grid)\n"
+"\n"
+"    # callback function for the signal \"toggled\"\n"
+"    def toggled_cb(self, button):\n"
+"        # if the togglebutton is active, start the spinner\n"
+"        if button.get_active():\n"
+"            self.spinner.start()\n"
+"        # else, stop it\n"
+"        else:\n"
+"            self.spinner.stop()\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
 msgstr ""
-"ÎÎ ÏÏÎÎÏ ÏÏÏÏÎÏ ÎÏÎÎÎÎÏ ÎÎÎÎÎÏÏÎÎÏÎ ÏÎ ÏÏÎÎÏÎÎÎ ÏÎÎÎ, ÎÎÎÎÎÏ ÎÎÎ ÎÎÎÏÎÏÎÏÏÎ "
-"(ÏÎ ÎÏÎÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÎÎ ÏÎÎ ÏÏÎÎÎÏÎÎÏ ÎÎÎ ÏÎ ÎÏÎ ÎÎÎÎ ÏÏÎÎÏÎÎÎ). ÎÎÎÎÏÎÎ "
-"ÏÎ ÏÎÎÎÎ \"note\" ÏÏÎ ÎÎÎÏÎÏÎÏÏÎÂ ÎÎÎÎÎÎÎÏÎÎ ÏÎÎ ÏÎÎÎ \"source\" ÎÎÎ ÏÎ "
-"ÏÏÎÎÎÎÎÏÎ ÏÏÎÎ ÏÎÎÎ <code>audiotestsrc</code>Â ÎÎÎ ÎÎÎÎÎÎÎÏÎÎ ÏÎÎ ÎÎÎÎÎ "
-"\"output\" ÎÎÎ ÏÎÎ ÏÏÎÎÎÎÎÏÎ ÏÏÎÎ ÎÎÎÎÎ <code>autoaudiosink</code> "
-"(ÏÏÎÎÏÎÎÎÎÎÎÎÎ ÎÎÏÏÎ ÎÏÎÏ)."
+"from gi.repository import Gtk\n"
+"import sys\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    # a window\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"ToggleButton Example\", application=app)\n"
+"        self.set_default_size(300, 300)\n"
+"        self.set_border_width(30)\n"
+"\n"
+"        # a spinner animation\n"
+"        self.spinner = Gtk.Spinner()\n"
+"        # with extra horizontal space\n"
+"        self.spinner.set_hexpand(True)\n"
+"        # with extra vertical space\n"
+"        self.spinner.set_vexpand(True)\n"
+"\n"
+"        # a togglebutton\n"
+"        button = Gtk.ToggleButton.new_with_label(\"Start/Stop\")\n"
+"        # connect the signal \"toggled\" emitted by the togglebutton\n"
+"        # when its state is changed to the callback function toggled_cb\n"
+"        button.connect(\"toggled\", self.toggled_cb)\n"
+"\n"
+"        # a grid to allocate the widgets\n"
+"        grid = Gtk.Grid()\n"
+"        grid.set_row_homogeneous(False);\n"
+"        grid.set_row_spacing(15);\n"
+"        grid.attach(self.spinner, 0, 0, 1, 1);\n"
+"        grid.attach(button, 0, 1, 1, 1);\n"
+"\n"
+"        # add the grid to the window\n"
+"        self.add(grid)\n"
+"\n"
+"    # callback function for the signal \"toggled\"\n"
+"    def toggled_cb(self, button):\n"
+"        # if the togglebutton is active, start the spinner\n"
+"        if button.get_active():\n"
+"            self.spinner.start()\n"
+"        # else, stop it\n"
+"        else:\n"
+"            self.spinner.stop()\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
+
+#: C/togglebutton.py.page:37(section/title)
+msgid "Useful methods for a ToggleButton widget"
+msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ToggleButton"
 
-#: C/guitar-tuner.py.page:167(p)
+#: C/togglebutton.py.page:46(item/p) C/toolbar.py.page:57(item/p)
+#: C/toolbar_builder.py.page:195(item/p)
 msgid ""
-"The call to <code>source.set_property</code> sets the <code>freq</code> "
-"property of the source element to <code>frequency</code>, which was passed "
-"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."
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkWidget.html";
+"\">GtkWidget</link>"
 msgstr ""
-"ÎÎ ÎÎÎÎÏÎÎ ÏÎÏ <code>source.set_property</code> ÎÏÎÎÎÎ ÏÎÎ ÎÎÎÏÏÎÏÎ "
-"<code>freq</code> ÏÎÏ ÏÏÎÎÏÎÎÎÏ ÏÎÎÎ ÏÎ <code>frequency</code>, Î ÎÏÎÎÎ ÎÏÎÎ "
-"ÏÎÏÎÏÏÎÎ ÏÎÎ ÏÎÏÎÎÎÏÏÎÏ ÏÏÎ ÏÏÎÎÏÏÎÏÎ <code>play_sound</code>. ÎÏÏÎ ÎÎÎÎÎ Î "
-"ÏÏÏÎÏÏÎÏÎ ÏÎÏ ÎÏÏÎÏ ÏÎ Hertz ÏÎÎÎÎÏ ÏÏÎÏÎÎÎÏ ÏÏÏÎÏÏÎÏÎÏ ÎÎ ÎÏÎÏÏÎÏÎ "
-"ÎÏÎÏÏÎÏÎ."
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkWidget.html";
+"\">GtkWidget</link>"
+
+#: C/togglebutton.vala.page:7(info/title)
+msgctxt "text"
+msgid "ToggleButton (Vala)"
+msgstr "ToggleButton (Vala)"
 
-#: C/guitar-tuner.py.page:170(p)
+#: C/togglebutton.vala.page:27(page/code)
+#, no-wrap
 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."
+"public class MyWindow : Gtk.ApplicationWindow {\n"
+"\n"
+"\tGtk.Spinner spinner;\n"
+"\n"
+"\tinternal MyWindow (MyApplication app) {\n"
+"\t\tObject (application: app, title: \"ToggleButton Example\");\n"
+"\n"
+"\t\tthis.set_default_size (300, 300);\n"
+"\t\tthis.border_width = 30;\n"
+"\n"
+"\t\t/*Spinner*/\n"
+"\t\tspinner = new Gtk.Spinner ();\n"
+"\t\tspinner.set_hexpand (true);\n"
+"\t\tspinner.set_vexpand (true);\n"
+"\n"
+"\t\t/*ToggleButton*/\n"
+"\t\tvar togglebutton = new Gtk.ToggleButton.with_label (\"Start/Stop\");\n"
+"\t\ttogglebutton.toggled.connect (toggled_cb);\n"
+"\n"
+"\t\t/*Grid*/\n"
+"\t\tvar grid = new Gtk.Grid ();\n"
+"\t\tgrid.set_row_homogeneous (false);\n"
+"\t\tgrid.set_row_spacing (15);\n"
+"\t\tgrid.attach (spinner, 0, 0, 1, 1);\n"
+"\t\tgrid.attach (togglebutton, 0, 1, 1, 1);\n"
+"\n"
+"\t\tthis.add (grid);\n"
+"\t}\n"
+"\n"
+"\tvoid toggled_cb (Gtk.ToggleButton button) {\n"
+"\t\tif (button.get_active()) {\n"
+"\t\t\tspinner.start ();\n"
+"\t\t}\n"
+"\t\telse {\n"
+"\t\t\tspinner.stop ();\n"
+"\t\t}\n"
+"\t}\n"
+"}\n"
+"\n"
+"public class MyApplication : Gtk.Application {\n"
+"\n"
+"\tprotected override void activate () {\n"
+"\n"
+"\t\t//Show all the things\n"
+"\t\tnew MyWindow (this).show_all ();\n"
+"\t}\n"
+"\n"
+"\tinternal MyApplication () {\n"
+"\t\tObject (application_id: \"org.example.spinner\");\n"
+"\t}\n"
+"}\n"
+"\n"
+"public int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
 msgstr ""
-"ÎÎ ÎÏÏÎÎÎÎÏ ÎÏÎ ÎÏÎÎÎÎÏ ÎÎÎÎÏÎ ÏÎ <code>pipeline.add</code>, ÎÎÎÎÎÏÎÏ ÏÎÎ "
-"ÏÎÎÎ ÎÎÎ ÏÎÎ ÎÎÎÎÎ ÏÏÎ ÎÎÎÏÎÏÎÏÏÎ. Î ÎÎÎÏÎÏÎÏÏÎ ÎÏÎÏÎÎ ÎÎ ÏÎÏÎÎÏÎÎ ÎÎÎÏÎÏÎ "
-"ÏÏÎÎÏÎÎÎ ÏÎÏ GStreamer. ÎÎÎÎÎÎ, ÎÏÎÏÎÎÏÎ ÎÎ ÏÏÎÏÎÎÏÎÏÎ ÏÏÎ ÏÏÎÎÏÎÎÎ ÎÎÎÎÏÎ "
-"ÏÏÎ ÎÎÎÏÎÏÎÏÏÎ ÎÎÎÏÎÏÎÏ ÏÏÎÎÏÏÎÎÎÎ ÏÎ ÎÎÎÎÎÎ <code>add</code>."
+"public class MyWindow : Gtk.ApplicationWindow {\n"
+"\n"
+"\tGtk.Spinner spinner;\n"
+"\n"
+"\tinternal MyWindow (MyApplication app) {\n"
+"\t\tObject (application: app, title: \"ToggleButton Example\");\n"
+"\n"
+"\t\tthis.set_default_size (300, 300);\n"
+"\t\tthis.border_width = 30;\n"
+"\n"
+"\t\t/*Spinner*/\n"
+"\t\tspinner = new Gtk.Spinner ();\n"
+"\t\tspinner.set_hexpand (true);\n"
+"\t\tspinner.set_vexpand (true);\n"
+"\n"
+"\t\t/*ToggleButton*/\n"
+"\t\tvar togglebutton = new Gtk.ToggleButton.with_label (\"Start/Stop\");\n"
+"\t\ttogglebutton.toggled.connect (toggled_cb);\n"
+"\n"
+"\t\t/*Grid*/\n"
+"\t\tvar grid = new Gtk.Grid ();\n"
+"\t\tgrid.set_row_homogeneous (false);\n"
+"\t\tgrid.set_row_spacing (15);\n"
+"\t\tgrid.attach (spinner, 0, 0, 1, 1);\n"
+"\t\tgrid.attach (togglebutton, 0, 1, 1, 1);\n"
+"\n"
+"\t\tthis.add (grid);\n"
+"\t}\n"
+"\n"
+"\tvoid toggled_cb (Gtk.ToggleButton button) {\n"
+"\t\tif (button.get_active()) {\n"
+"\t\t\tspinner.start ();\n"
+"\t\t}\n"
+"\t\telse {\n"
+"\t\t\tspinner.stop ();\n"
+"\t\t}\n"
+"\t}\n"
+"}\n"
+"\n"
+"public class MyApplication : Gtk.Application {\n"
+"\n"
+"\tprotected override void activate () {\n"
+"\n"
+"\t\t//Show all the things\n"
+"\t\tnew MyWindow (this).show_all ();\n"
+"\t}\n"
+"\n"
+"\tinternal MyApplication () {\n"
+"\t\tObject (application_id: \"org.example.spinner\");\n"
+"\t}\n"
+"}\n"
+"\n"
+"public int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
 
-#: C/guitar-tuner.py.page:173(p)
-msgid ""
-"Next <code>pipeline.set_state</code> is used to start playback, by setting "
-"the state of the pipeline to playing (<code>Gst.State.PLAYING</code>)."
-msgstr ""
-"ÎÎÏÎ Î <code>pipeline.set_state</code> ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÎÎÎ ÎÎ ÎÎÎÎÎÎÏÎÎ Î "
-"ÎÎÎÏÎÏÎÎÏÎÎ, ÎÎÎÎÎÎÎÏÎÏ ÏÎÎ ÎÎÏÎÏÏÎÏÎ ÏÎÏ ÎÎÎÏÎÏÎÏÏÎÏ ÏÎ ÎÎÎÏÎÏÎÎÏÎÎ "
-"(<code>Gst.State.PLAYING</code>)."
+#: C/togglebutton.vala.page:32(item/p)
+msgid ""
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.ToggleButton.html\";>Gtk."
+"ToggleButton</link>"
+msgstr ""
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.ToggleButton.html\";>Gtk."
+"ToggleButton</link>"
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/toolbar.js.page:21(media) C/toolbar.py.page:23(media)
+#: C/toolbar.vala.page:23(media) C/toolbar_builder.py.page:36(media)
+#: C/toolbar_builder.vala.page:24(media)
+msgctxt "_"
+msgid "external ref='media/toolbar.png' md5='f0350855eedf6343952b72d6d906f738'"
+msgstr ""
+"external ref='media/toolbar.png' md5='f0350855eedf6343952b72d6d906f738'"
+
+#: C/toolbar.js.page:7(info/title)
+msgctxt "text"
+msgid "Toolbar (JavaScript)"
+msgstr "ÎÏÎÎÎÎÎÎÎÎÎÎ (JavaScript)"
 
-#: C/guitar-tuner.py.page:180(title) C/guitar-tuner.c.page:195(title)
-msgid "Stopping playback"
-msgstr "ÎÎÎÎÎÏÎ ÎÎÎÏÎÏÎÎÏÎÎÏ"
+#: C/toolbar.js.page:17(info/desc)
+msgid "A bar of tools"
+msgstr "ÎÏÎÎÎÎ ÎÏÎÎÎÎÎÏÎ"
 
-#: C/guitar-tuner.py.page:181(p)
-msgid ""
-"We don't want to play an annoying tone forever, so the last thing "
-"<code>play_sound</code> does is to call <code>GObject.timeout_add</code>. "
-"This sets a timeout for stopping the sound; it waits for <code>LENGTH</code> "
-"milliseconds before calling the function <code>pipeline_stop</code>, and "
-"will keep calling it until <code>pipeline_stop</code> returns <code>False</"
-"code>."
-msgstr ""
-"ÎÎÎ ÎÎÎÎÏÎÎ ÎÎ ÏÎÎÎÎÏÎÎ ÎÎÎÎ ÎÎÎÏÎÎÏÎÎÏ ÎÏÎ ÎÎÎ ÏÎÎÏÎ, ÎÏÏÏÎ ÏÎ ÏÎÎÎÏÏÎÎÎ "
-"ÏÏÎÎÎÎ ÏÎÏ ÎÎÎÎÎ Î <code>play_sound</code> ÎÎÎÎÎ ÎÎ ÎÎÎÎÎ ÏÎ <code>GObject."
-"timeout_add</code>. ÎÏÏÏ ÎÏÎÎÎÎ ÎÎÎ ÏÏÎÎÎÎÏ ÏÎÏÎÎÏÏÎÎ ÏÎÏ ÎÎ ÏÏÎÎÎÏÎÏÎÎ ÏÎÎ "
-"ÎÏÎÂ ÏÎÏÎÎÎÎÎÎ ÎÎÎ <code>LENGTH</code> ÏÎÎÎÎÏÏÎ ÏÎÏ ÎÎÏÏÎÏÎÎÎÏÏÎÏ ÏÏÎÎ "
-"ÎÎÎÎÏÎÎ ÏÎ ÏÏÎÎÏÏÎÏÎ <code>pipeline_stop</code>, ÎÎÎ ÎÎ ÏÏÎÎÏÎÏÎÎ ÎÎ ÏÎÎ "
-"ÎÎÎÎÎ ÎÎÏÏÎ Î <code>pipeline_stop</code> ÎÎ ÎÏÎÏÏÏÎÏÎÎ <code>False</code>."
+#: C/toolbar.js.page:20(page/title) C/toolbar.py.page:21(page/title)
+#: C/toolbar.vala.page:21(page/title)
+msgid "Toolbar"
+msgstr "ÎÏÎÎÎÎÎÎÎÎÎÎ"
 
-#: C/guitar-tuner.py.page:182(p)
+#: C/toolbar.js.page:22(page/p) C/toolbar.vala.page:24(page/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:"
+"Toolbar can contain either text or stock icons. In this sample we use stock "
+"icons. This example has fullscreen functionality."
 msgstr ""
-"ÎÏÏÎ ÎÎ ÎÏÎÏÎÏÎÎ ÏÎ ÏÏÎÎÏÏÎÏÎ <code>pipeline_stop</code>, Î ÎÏÎÎÎ ÎÎÎÎÎÏÎÎ "
-"ÎÏÏ ÏÎ <code>GObject.timeout_add</code>. ÎÏÎÏÎÎÏÏÎ ÏÎÎ ÎÎÏÎÎÏÎÎ ÎÏÎÎÎÎ "
-"<em>ÏÎÎÏ</em> ÎÏÏ ÏÎ ÏÏÎÎÏÏÎÏÎ <code>play_sound</code>:"
+"Î ÎÏÎÎÎÎÎÎÎÎÎÎ ÎÏÎÏÎÎ ÎÎ ÏÎÏÎÎÏÎÎ ÎÎÏÎ ÎÎÎÎÎÎÎ Î ÎÎÎÎÎÎÎÎÎ ÏÎÏÎÎÎÏÎÎÎÎÎÏ. ÎÎ "
+"ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÎÎÎÎÎÎÎÎÎ ÏÎÏÎÎÎÏÎÎÎÎÎÏ. ÎÏÏÏ ÏÎ "
+"ÏÎÏÎÎÎÎÎÎÎ ÎÏÎÎ ÎÎÎÏÎÏÏÎÎÎÏÏÎÏÎ ÏÎÎÏÎÏÏ ÎÎÏÎÎÏ."
 
-#: C/guitar-tuner.py.page:188(p)
+#: C/toolbar.js.page:23(page/p) C/toolbar.vala.page:25(page/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:"
+"This example uses SimpleActions (window and app). App actions can easily be "
+"added the the app menu."
 msgstr ""
-"ÎÏÎÏÎÎ ÎÎ ÎÏÎÏÎÏÎ ÏÎ ÏÏÎÎÎÏÎ <code>LENGTH</code> ÎÎÏÎ ÏÏÎÎ ÎÎÎÏÎ, ÎÏÏÏÎ "
-"ÏÏÎÏÎÎÏÏÎ ÎÏÏÏÎ ÏÎÎ ÎÏÎÎÎÎ ÏÏÎÎ ÎÏÏÎ ÏÎÏ ÎÏÏÎÎÏ ÎÎÎÏÎÏ:"
+"ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎ SimpleActions (ÏÎÏÎÎÏÏÎ ÎÎÎ ÎÏÎÏÎÎÎÎ). ÎÎ "
+"ÎÎÎÏÎÎÎÎÏ ÏÎÏ ÎÏÎÏÎÎÎÎÏ ÎÏÎÏÎÏÎ ÎÏÎÎÎÎ ÎÎ ÏÏÎÏÏÎÎÎÏÎ ÏÏÎ ÎÎÎÎÏ ÏÎÏ ÎÏÎÏÎÎÎÎÏ."
 
-#: C/guitar-tuner.py.page:193(p)
+#: C/toolbar.js.page:25(page/code)
+#, no-wrap
 msgid ""
-"The call to <code>pipeline.set_state</code> pauses the playback of the "
-"pipeline."
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gdk = imports.gi.Gdk;\n"
+"const Gio = imports.gi.Gio;\n"
+"const GLib = imports.gi.GLib;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"const Application = new Lang.Class({\n"
+"    Name: 'Application',\n"
+"\n"
+"    //create the application\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application({\n"
+"            application_id: 'org.example.myapp',\n"
+"            flags: Gio.ApplicationFlags.FLAGS_NONE\n"
+"        });\n"
+"\n"
+"       //connect to 'activate' and 'startup' signals to the callback functions\n"
+"       this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"       this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    //create the UI (in this case it's just the ApplicationWindow\n"
+"    _buildUI: function() {\n"
+"        this._window = new Gtk.ApplicationWindow({ application: this.application,\n"
+"                                                   window_position: Gtk.WindowPosition.CENTER,\n"
+"                                                   title: \"Toolbar Example\",\n"
+"                                                   default_height: 200,\n"
+"                                                   default_width: 400 });\n"
+"\n"
+"        this._grid = new Gtk.Grid();\n"
+"        this._window.add(this._grid);\n"
+"        this._grid.show();\n"
+"\n"
+"        this._createToolbar();\n"
+"        this._toolbar.set_hexpand(true);\n"
+"        this._grid.attach(this._toolbar, 0, 0, 1, 1);\n"
+"\n"
+"        //show the  toolbar and window\n"
+"        this._toolbar.show();\n"
+"        this._window.show();\n"
+"    },\n"
+"\n"
+"    //callback function for 'activate' signal\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    //callback function for 'startup' signal\n"
+"    _onStartup: function() {\n"
+"        this._initMenus();\n"
+"        this._buildUI();\n"
+"    },\n"
+"\n"
+"    //create the toolbar, its toolbuttons and their actions\n"
+"    _createToolbar: function() {\n"
+"\n"
+"        this._toolbar = new Gtk.Toolbar();\n"
+"        this._toolbar.get_style_context().add_class(Gtk.STYLE_CLASS_PRIMARY_TOOLBAR);\n"
+"\n"
+"        //create the \"New\" ToolButton and its SimpleAction.\n"
+"        //Using actions allows you to add them to the app menu\n"
+"        //without duplicating code.\n"
+"        let newAction = new Gio.SimpleAction({ name: 'new'});\n"
+"        newAction.connect('activate', Lang.bind(this,\n"
+"            function() {\n"
+"                this._newCB();\n"
+"            }));\n"
+"        this.application.add_action(newAction);//note: this action is added to the app\n"
+"\n"
+"        this._newButton = new Gtk.ToolButton.new_from_stock(Gtk.STOCK_NEW);\n"
+"        this._newButton.is_important = true;\n"
+"        this._toolbar.add(this._newButton);\n"
+"        this._newButton.show();\n"
+"        this._newButton.action_name = \"app.new\";\n"
+"\n"
+"        //create the \"Open\" ToolButton and its SimpleAction\n"
+"        let openAction = new Gio.SimpleAction({ name: 'open'});\n"
+"        openAction.connect('activate', Lang.bind(this,\n"
+"            function() {\n"
+"                this._openCB();\n"
+"            }));\n"
+"        this.application.add_action(openAction);\n"
+"\n"
+"        this._openButton = new Gtk.ToolButton.new_from_stock(Gtk.STOCK_OPEN);\n"
+"        this._openButton.is_important = true;\n"
+"        this._toolbar.add(this._openButton);\n"
+"        this._openButton.show();\n"
+"        this._openButton.action_name = \"app.open\";\n"
+"\n"
+"        //create the \"Undo\" ToolButton and its SimpleAction\n"
+"        let undoAction = new Gio.SimpleAction({ name: 'undo'});\n"
+"        undoAction.connect('activate', Lang.bind (this,\n"
+"            function() {\n"
+"                this._undoCB();\n"
+"            }));\n"
+"        this._window.add_action(undoAction);//note this action is added to the window\n"
+"\n"
+"        this._undoButton = new Gtk.ToolButton.new_from_stock(Gtk.STOCK_UNDO);\n"
+"        this._undoButton.is_important = true;\n"
+"        this._toolbar.add(this._undoButton);\n"
+"        this._undoButton.show();\n"
+"        this._undoButton.action_name = \"win.undo\";\n"
+"\n"
+"        //create the \"Fullscreen\" ToolButton and its SimpleAction\n"
+"        let fullscreenToggleAction = new Gio.SimpleAction ({ name: 'fullscreenToggle' });\n"
+"        fullscreenToggleAction.connect ('activate', Lang.bind (this,\n"
+"            function () {\n"
+"                this._fullscreenToggleCB();\n"
+"            }));\n"
+"        this._window.add_action(fullscreenToggleAction);\n"
+"\n"
+"        this._fullscreenButton = new Gtk.ToolButton.new_from_stock(Gtk.STOCK_FULLSCREEN);\n"
+"        this._fullscreenButton.is_important = true;\n"
+"        this._toolbar.add(this._fullscreenButton);\n"
+"        this._fullscreenButton.show();\n"
+"        this._fullscreenButton.action_name = \"win.fullscreenToggle\";\n"
+"\n"
+"        //create the \"leaveFullscreen\" ToolButton, and set the action name to \"win.fullscreenToggle\"\n"
+"        this._leaveFullscreenButton = new Gtk.ToolButton.new_from_stock(Gtk.STOCK_LEAVE_FULLSCREEN);\n"
+"        this._leaveFullscreenButton.is_important = true;\n"
+"        this._toolbar.add(this._leaveFullscreenButton);\n"
+"        this._leaveFullscreenButton.action_name = \"win.fullscreenToggle\";\n"
+"    },\n"
+"\n"
+"    _initMenus: function () {\n"
+"        let menu = new Gio.Menu();\n"
+"        menu.append(\"New\", 'app.new');\n"
+"        menu.append(\"Open\", 'app.open');\n"
+"        menu.append(\"Quit\", 'app.quit');\n"
+"\n"
+"        this.application.set_app_menu(menu);\n"
+"\n"
+"        let quitAction = new Gio.SimpleAction({name: 'quit' });\n"
+"        quitAction.connect('activate', Lang.bind(this,\n"
+"            function() {\n"
+"                this._window.destroy();\n"
+"            }));\n"
+"        this.application.add_action(quitAction);\n"
+"    },\n"
+"\n"
+"    _newCB: function() {\n"
+"        print(\"You clicked 'New'.\");\n"
+"    },\n"
+"\n"
+"    _openCB: function() {\n"
+"        print(\"You clicked 'Open'.\");\n"
+"    },\n"
+"\n"
+"    _undoCB:function () {\n"
+"        print (\"You clicked 'Undo'.\");\n"
+"    },\n"
+"\n"
+"    _fullscreenToggleCB: function() {\n"
+"        if ((this._window.get_window().get_state() &amp; Gdk.WindowState.FULLSCREEN) != 0 ) {\n"
+"              this._window.unfullscreen();\n"
+"              this._leaveFullscreenButton.hide();\n"
+"              this._fullscreenButton.show();\n"
+"        }\n"
+"        else {\n"
+"             this._window.fullscreen();\n"
+"             this._fullscreenButton.hide();\n"
+"             this._leaveFullscreenButton.show();\n"
+"        }\n"
+"    }\n"
+"});\n"
+"\n"
+"//run the application\n"
+"let app = new Application();\n"
+"app.application.run(ARGV);\n"
 msgstr ""
-"ÎÏÎÎ ÎÎÎÎÎÏÎÎ Î <code>pipeline.set_state</code> Î ÎÎÎÏÎÏÎÎÏÎÎ ÏÎÏ "
-"ÎÎÎÏÎÏÎÏÏÎÏ ÏÏÎÎÎÏÎÎÎ."
-
-#: C/guitar-tuner.py.page:197(title) C/guitar-tuner.c.page:213(title)
-msgid "Define the tones"
-msgstr "ÎÏÎÏÎÏÏ ÏÏÎ ÏÏÎÏÎ"
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gdk = imports.gi.Gdk;\n"
+"const Gio = imports.gi.Gio;\n"
+"const GLib = imports.gi.GLib;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"const Application = new Lang.Class({\n"
+"    Name: 'Application',\n"
+"\n"
+"    //create the application\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application({\n"
+"            application_id: 'org.example.myapp',\n"
+"            flags: Gio.ApplicationFlags.FLAGS_NONE\n"
+"        });\n"
+"\n"
+"       //connect to 'activate' and 'startup' signals to the callback functions\n"
+"       this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"       this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    //create the UI (in this case it's just the ApplicationWindow\n"
+"    _buildUI: function() {\n"
+"        this._window = new Gtk.ApplicationWindow({ application: this.application,\n"
+"                                                   window_position: Gtk.WindowPosition.CENTER,\n"
+"                                                   title: \"Toolbar Example\",\n"
+"                                                   default_height: 200,\n"
+"                                                   default_width: 400 });\n"
+"\n"
+"        this._grid = new Gtk.Grid();\n"
+"        this._window.add(this._grid);\n"
+"        this._grid.show();\n"
+"\n"
+"        this._createToolbar();\n"
+"        this._toolbar.set_hexpand(true);\n"
+"        this._grid.attach(this._toolbar, 0, 0, 1, 1);\n"
+"\n"
+"        //show the  toolbar and window\n"
+"        this._toolbar.show();\n"
+"        this._window.show();\n"
+"    },\n"
+"\n"
+"    //callback function for 'activate' signal\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    //callback function for 'startup' signal\n"
+"    _onStartup: function() {\n"
+"        this._initMenus();\n"
+"        this._buildUI();\n"
+"    },\n"
+"\n"
+"    //create the toolbar, its toolbuttons and their actions\n"
+"    _createToolbar: function() {\n"
+"\n"
+"        this._toolbar = new Gtk.Toolbar();\n"
+"        this._toolbar.get_style_context().add_class(Gtk.STYLE_CLASS_PRIMARY_TOOLBAR);\n"
+"\n"
+"        //create the \"New\" ToolButton and its SimpleAction.\n"
+"        //Using actions allows you to add them to the app menu\n"
+"        //without duplicating code.\n"
+"        let newAction = new Gio.SimpleAction({ name: 'new'});\n"
+"        newAction.connect('activate', Lang.bind(this,\n"
+"            function() {\n"
+"                this._newCB();\n"
+"            }));\n"
+"        this.application.add_action(newAction);//note: this action is added to the app\n"
+"\n"
+"        this._newButton = new Gtk.ToolButton.new_from_stock(Gtk.STOCK_NEW);\n"
+"        this._newButton.is_important = true;\n"
+"        this._toolbar.add(this._newButton);\n"
+"        this._newButton.show();\n"
+"        this._newButton.action_name = \"app.new\";\n"
+"\n"
+"        //create the \"Open\" ToolButton and its SimpleAction\n"
+"        let openAction = new Gio.SimpleAction({ name: 'open'});\n"
+"        openAction.connect('activate', Lang.bind(this,\n"
+"            function() {\n"
+"                this._openCB();\n"
+"            }));\n"
+"        this.application.add_action(openAction);\n"
+"\n"
+"        this._openButton = new Gtk.ToolButton.new_from_stock(Gtk.STOCK_OPEN);\n"
+"        this._openButton.is_important = true;\n"
+"        this._toolbar.add(this._openButton);\n"
+"        this._openButton.show();\n"
+"        this._openButton.action_name = \"app.open\";\n"
+"\n"
+"        //create the \"Undo\" ToolButton and its SimpleAction\n"
+"        let undoAction = new Gio.SimpleAction({ name: 'undo'});\n"
+"        undoAction.connect('activate', Lang.bind (this,\n"
+"            function() {\n"
+"                this._undoCB();\n"
+"            }));\n"
+"        this._window.add_action(undoAction);//note this action is added to the window\n"
+"\n"
+"        this._undoButton = new Gtk.ToolButton.new_from_stock(Gtk.STOCK_UNDO);\n"
+"        this._undoButton.is_important = true;\n"
+"        this._toolbar.add(this._undoButton);\n"
+"        this._undoButton.show();\n"
+"        this._undoButton.action_name = \"win.undo\";\n"
+"\n"
+"        //create the \"Fullscreen\" ToolButton and its SimpleAction\n"
+"        let fullscreenToggleAction = new Gio.SimpleAction ({ name: 'fullscreenToggle' });\n"
+"        fullscreenToggleAction.connect ('activate', Lang.bind (this,\n"
+"            function () {\n"
+"                this._fullscreenToggleCB();\n"
+"            }));\n"
+"        this._window.add_action(fullscreenToggleAction);\n"
+"\n"
+"        this._fullscreenButton = new Gtk.ToolButton.new_from_stock(Gtk.STOCK_FULLSCREEN);\n"
+"        this._fullscreenButton.is_important = true;\n"
+"        this._toolbar.add(this._fullscreenButton);\n"
+"        this._fullscreenButton.show();\n"
+"        this._fullscreenButton.action_name = \"win.fullscreenToggle\";\n"
+"\n"
+"        //create the \"leaveFullscreen\" ToolButton, and set the action name to \"win.fullscreenToggle\"\n"
+"        this._leaveFullscreenButton = new Gtk.ToolButton.new_from_stock(Gtk.STOCK_LEAVE_FULLSCREEN);\n"
+"        this._leaveFullscreenButton.is_important = true;\n"
+"        this._toolbar.add(this._leaveFullscreenButton);\n"
+"        this._leaveFullscreenButton.action_name = \"win.fullscreenToggle\";\n"
+"    },\n"
+"\n"
+"    _initMenus: function () {\n"
+"        let menu = new Gio.Menu();\n"
+"        menu.append(\"New\", 'app.new');\n"
+"        menu.append(\"Open\", 'app.open');\n"
+"        menu.append(\"Quit\", 'app.quit');\n"
+"\n"
+"        this.application.set_app_menu(menu);\n"
+"\n"
+"        let quitAction = new Gio.SimpleAction({name: 'quit' });\n"
+"        quitAction.connect('activate', Lang.bind(this,\n"
+"            function() {\n"
+"                this._window.destroy();\n"
+"            }));\n"
+"        this.application.add_action(quitAction);\n"
+"    },\n"
+"\n"
+"    _newCB: function() {\n"
+"        print(\"You clicked 'New'.\");\n"
+"    },\n"
+"\n"
+"    _openCB: function() {\n"
+"        print(\"You clicked 'Open'.\");\n"
+"    },\n"
+"\n"
+"    _undoCB:function () {\n"
+"        print (\"You clicked 'Undo'.\");\n"
+"    },\n"
+"\n"
+"    _fullscreenToggleCB: function() {\n"
+"        if ((this._window.get_window().get_state() &amp; Gdk.WindowState.FULLSCREEN) != 0 ) {\n"
+"              this._window.unfullscreen();\n"
+"              this._leaveFullscreenButton.hide();\n"
+"              this._fullscreenButton.show();\n"
+"        }\n"
+"        else {\n"
+"             this._window.fullscreen();\n"
+"             this._fullscreenButton.hide();\n"
+"             this._leaveFullscreenButton.show();\n"
+"        }\n"
+"    }\n"
+"});\n"
+"\n"
+"//run the application\n"
+"let app = new Application();\n"
+"app.application.run(ARGV);\n"
 
-#: C/guitar-tuner.py.page:198(p)
+#: C/toolbar.js.page:30(item/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:"
+"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.Window.html";
+"\">Gtk.Window</link>"
 msgstr ""
-"ÎÎÎÎÏÎÎ ÎÎ ÏÎÎÎÎÏÎÎ ÏÎ ÏÏÏÏÏ ÎÏÎ ÏÏÎÎ Î ÏÏÎÏÏÎÏ ÏÎÏÎÎÎ ÎÎÎ ÎÎÏÎÏÎ. ÎÏÏÏÎ ÎÏÏ "
-"ÏÎÎ, ÏÏÎÎÎÎÏÎÎÏÏÎ ÎÎ ÎÎÏÎÏÎÎ ÏÎÏ ÏÏÏÎÏÏÎÏÎÏ ÎÎÎ ÏÎÏ ÎÎÎ ÏÎÏÎÎÏ ÏÎÏ ÎÎÎÎÏÎÏ, "
-"ÎÎ ÎÏÎÎÎÏ ÎÎÎÎÎ ÎÏÎÏÎÎÎÎÏ (ÏÏÎÎ ÎÏÏÎ ÏÎÏ ÎÏÏÎÎÏ ÎÎÎÏÎÏ) ÎÎÏÎ ÏÎ ÎÎÎ ÎÎÎÎÎÏ "
-"ÏÏÏÎ ÎÎ ÎÏÎÏÎÏÎÎ ÎÏÎÎÎÎ ÎÎ ÏÎÏ ÎÏÎÎÎÎÎÎÏÎÏÎÎ ÏÏÎ ÎÎÏÎÎÏÎ ÏÏÎ ÏÎÏÎÏÎ:"
+"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.Window.html";
+"\">Gtk.Window</link>"
 
-#: C/guitar-tuner.py.page:211(p) C/guitar-tuner.c.page:223(p)
+#: C/toolbar.js.page:31(item/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:"
+"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.Toolbar.html";
+"\">Gtk.Toolbar</link>"
 msgstr ""
-"ÎÎÎ ÎÎ ÎÎÏÎÎ ÏÎÎ ÏÎÎÏÎÏÏÎ ÏÎÎÎÏÏÎ ÏÎÏ ÎÏÎÏÎÎÎ ÏÏÎÎ, <code>on_button_clicked</"
-"code>. ÎÎ ÎÏÎÏÎÏÏÎÎÎ ÎÎ ÎÎÏÎÎÎ ÏÏÎÎÎÏÎÎ ÏÎÎ ÏÎ ÎÎÏÎÏÎÎ ÏÎ ÎÎÎÏÎÏÎÏÎÎÏ "
-"ÏÎÎÏÎÏÏÎ ÏÎÎÎÏÏÎ, ÎÎÎÎ ÎÏÏÏ ÎÎ ÎÎÎÎÎÏÏÎ ÏÎ ÏÎÎÎÎÏ ÎÏÎÎÎÎÎÏÎÎÏ ÏÎÏ ÎÏÎÎÎÎ. "
-"ÎÎÏÎ ÎÏÏÎÏ, ÎÏÎÏÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÏÎÏ ÎÏÎÎÎÏÎÏ ÏÏÎ ÎÎÏÎÏÎÎ ÎÎÎ ÎÎ "
-"ÎÎÏÎÎ ÏÎÎÎ ÏÎÏÎÎÎÎÎ:"
+"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.Toolbar.html";
+"\">Gtk.Toolbar</link>"
 
-#: C/guitar-tuner.py.page:219(p)
+#: C/toolbar.js.page:32(item/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>."
+"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.ToolButton.";
+"html\">Gtk.ToolButton</link>"
 msgstr ""
-"ÎÎ ÎÎÏÎÏÎ ÏÎÏ ÏÎÏÎÎÎÎÎ ÏÎÏÎÎÎÎ ÏÎÎ ÏÎÏÎÎÎÏÏÎÏ (<code>button</code>) ÏÏÎ "
-"<code>on_button_clicked</code>. ÎÏÎÏÎÏÎÎ ÎÎ ÏÎÏÎÏÎÎ ÏÎÎ ÎÏÎÎÎÏÎ ÏÎÏ ÎÎÏÎÏÎÎÏ "
-"ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ <code>button.get_child</code>, ÎÎÎ ÏÎ ÎÎÎÎÎÎÎ ÎÏÏ ÏÎÎ "
-"ÎÏÎÎÎÏÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ <code>label.get_label</code>."
+"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.ToolButton.";
+"html\">Gtk.ToolButton</link>"
 
-#: C/guitar-tuner.py.page:220(p)
+#: C/toolbar.js.page:33(item/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!"
+"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.html\";>Gtk "
+"Stock items</link>"
 msgstr ""
-"ÎÎ ÎÎÎÎÎÎÎ ÏÎÏ ÎÏÎÎÎÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÏÎÎ ÎÎÎÎÎÎ ÎÎÎ ÏÎ ÎÎÎÎÎÏ ÎÎÎ "
-"ÎÎÎÎÎÏÎÎ Î <code>play_sound</code> ÎÎ ÏÎÎ ÎÎÏÎÎÎÎÎÎ ÏÏÏÎÏÏÎÏÎ ÎÏÏ ÏÎÎ ÎÏÏÎ. "
-"ÎÏÏÏ ÏÎÎÎÎÎ ÏÎÎ ÏÏÎÎÂ Î ÏÏÎÏÎÎÎÏÏÎÏ ÎÎÎÎÏÎÏ ÎÎÎÎÎ ÎÏÎÎÎÎÏ!"
+"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.html\";>Gtk "
+"Stock items</link>"
 
-#: C/guitar-tuner.py.page:225(p)
+#: C/toolbar.js.page:34(item/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!"
+"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gdk.WindowState.";
+"html\">Gdk.WindowState</link>"
 msgstr ""
-"ÎÎ ÏÏÏÎÏÎÎÎÎ ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎ ÎÏÎÎÎÎ ÏÏÏÎ. ÎÎÎ ÎÎ ÎÎÎÎÎÎÏÎÏÎ ÏÎ ÏÏÏÎÏÎÎÎÎ "
-"ÏÎÏÎÏÏÎ <guiseq><gui>ÎÎÏÎÎÎÏÎ</gui><gui>ÎÎÏÎÎÎÏÎ</gui></guiseq>. ÎÏÎÎÎÏÏÏÎ "
-"ÏÎ!"
+"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gdk.WindowState.";
+"html\">Gdk.WindowState</link>"
+
+#: C/toolbar.py.page:7(info/title)
+msgctxt "text"
+msgid "Toolbar (Python)"
+msgstr "ÎÏÎÎÎÎÎÎÎÎÎÎ (Python)"
+
+#: C/toolbar.py.page:18(info/desc) C/toolbar_builder.py.page:31(info/desc)
+msgid "A bar of buttons and other widgets"
+msgstr "ÎÎÎ ÎÏÎÎÎÎ ÎÎÏÎÏÎÏÎ ÎÎÎ ÎÎÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ"
+
+#: C/toolbar.py.page:24(page/p)
+msgid "An example of toolbar with buttons (from stock icons)."
+msgstr "ÎÎÏÎÎÎÎÎÎÎ ÎÏÎÎÎÎÎÎÎÎÎÎÏ ÎÎ ÎÎÏÎÏÎÎ (ÎÏÏ ÎÎÎÎÎÎÎÎÎ ÏÎÏÎÎÎÏÎÎÎÎÎÏ)."
 
-#: C/guitar-tuner.py.page:230(p)
+#: C/toolbar.py.page:31(section/code)
+#, no-wrap
 msgid ""
-"If you run into problems with the tutorial, compare your code with this "
-"<link href=\"guitar-tuner/guitar-tuner.py\">reference code</link>."
+"from gi.repository import Gtk\n"
+"from gi.repository import Gdk\n"
+"from gi.repository import Gio\n"
+"import sys\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"Toolbar Example\", application=app)\n"
+"        self.set_default_size(400, 200)\n"
+"\n"
+"        # a grid to attach the toolbar\n"
+"        grid = Gtk.Grid()\n"
+"\n"
+"        # a toolbar created in the method create_toolbar (see below)\n"
+"        toolbar = self.create_toolbar()\n"
+"        # with extra horizontal space\n"
+"        toolbar.set_hexpand(True)\n"
+"        # show the toolbar\n"
+"        toolbar.show()\n"
+"\n"
+"        # attach the toolbar to the grid\n"
+"        grid.attach(toolbar, 0, 0, 1, 1)\n"
+"\n"
+"        # add the grid to the window\n"
+"        self.add(grid)\n"
+"\n"
+"        # create the actions that control the window and connect their signal to a\n"
+"        # callback method (see below):\n"
+"\n"
+"        # undo\n"
+"        undo_action = Gio.SimpleAction.new(\"undo\", None)\n"
+"        undo_action.connect(\"activate\", self.undo_callback)\n"
+"        self.add_action(undo_action)\n"
+"\n"
+"        # fullscreen\n"
+"        fullscreen_action = Gio.SimpleAction.new(\"fullscreen\", None)\n"
+"        fullscreen_action.connect(\"activate\", self.fullscreen_callback)\n"
+"        self.add_action(fullscreen_action)\n"
+"\n"
+"    # a method to create the toolbar\n"
+"    def create_toolbar(self):\n"
+"        # a toolbar\n"
+"        toolbar = Gtk.Toolbar()\n"
+"\n"
+"        # which is the primary toolbar of the application\n"
+"        toolbar.get_style_context().add_class(Gtk.STYLE_CLASS_PRIMARY_TOOLBAR);\n"
+"\n"
+"        # create a button for the \"new\" action, with a stock image\n"
+"        new_button = Gtk.ToolButton.new_from_stock(Gtk.STOCK_NEW)\n"
+"        # label is shown\n"
+"        new_button.set_is_important(True)\n"
+"        # insert the button at position in the toolbar\n"
+"        toolbar.insert(new_button, 0)\n"
+"        # show the button\n"
+"        new_button.show()\n"
+"        # set the name of the action associated with the button.\n"
+"        # The action controls the application (app)\n"
+"        new_button.set_action_name(\"app.new\")\n"
+"\n"
+"        # button for the \"open\" action\n"
+"        open_button = Gtk.ToolButton.new_from_stock(Gtk.STOCK_OPEN)\n"
+"        open_button.set_is_important(True)\n"
+"        toolbar.insert(open_button, 1)\n"
+"        open_button.show()\n"
+"        open_button.set_action_name(\"app.open\")\n"
+"\n"
+"        # button for the \"undo\" action\n"
+"        undo_button = Gtk.ToolButton.new_from_stock(Gtk.STOCK_UNDO)\n"
+"        undo_button.set_is_important(True)\n"
+"        toolbar.insert(undo_button, 2)\n"
+"        undo_button.show()\n"
+"        undo_button.set_action_name(\"win.undo\")\n"
+"\n"
+"        # button for the \"fullscreen/leave fullscreen\" action\n"
+"        self.fullscreen_button = Gtk.ToolButton.new_from_stock(Gtk.STOCK_FULLSCREEN)\n"
+"        self.fullscreen_button.set_is_important(True)\n"
+"        toolbar.insert(self.fullscreen_button, 3)\n"
+"        self.fullscreen_button.set_action_name(\"win.fullscreen\")\n"
+"\n"
+"        # return the complete toolbar\n"
+"        return toolbar\n"
+"\n"
+"    # callback method for undo\n"
+"    def undo_callback(self, action, parameter):\n"
+"        print \"You clicked \\\"Undo\\\".\"\n"
+"\n"
+"    # callback method for fullscreen / leave fullscreen\n"
+"    def fullscreen_callback(self, action, parameter):\n"
+"        # check if the state is the same as Gdk.WindowState.FULLSCREEN, which is a bit flag\n"
+"        is_fullscreen = self.get_window().get_state() &amp; Gdk.WindowState.FULLSCREEN != 0\n"
+"        if not is_fullscreen:\n"
+"            self.fullscreen_button.set_stock_id(Gtk.STOCK_LEAVE_FULLSCREEN)\n"
+"            self.fullscreen()\n"
+"        else:\n"
+"            self.fullscreen_button.set_stock_id(Gtk.STOCK_FULLSCREEN)\n"
+"            self.unfullscreen()\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"        # create the actions that control the window and connect their signal to a\n"
+"        # callback method (see below):\n"
+"\n"
+"        # new\n"
+"        new_action = Gio.SimpleAction.new(\"new\", None)\n"
+"        new_action.connect(\"activate\", self.new_callback)\n"
+"        app.add_action(new_action)\n"
+"\n"
+"        # open\n"
+"        open_action = Gio.SimpleAction.new(\"open\", None)\n"
+"        open_action.connect(\"activate\", self.open_callback)\n"
+"        app.add_action(open_action)\n"
+"\n"
+"    # callback method for new\n"
+"    def new_callback(self, action, parameter):\n"
+"        print \"You clicked \\\"New\\\".\"\n"
+"\n"
+"    # callback method for open\n"
+"    def open_callback(self, action, parameter):\n"
+"        print \"You clicked \\\"Open\\\".\"\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
 msgstr ""
-"ÎÎ ÎÎÏÎÎÎÏÏÏÎÏÎÏÎ ÎÎÎÎÎÎ ÏÏÏÎÎÎÎÎ ÎÎ ÏÎÎ ÎÎÎÎÏ, ÏÏÎÎÏÎÎÎÏÎ ÏÎÎ ÎÏÎÎÎÎ ÏÎÏ ÎÎ "
-"ÎÏÏÏ <link href=\"guitar-tuner/guitar-tuner.py\">ÏÎÎ ÎÏÎÎÎÎ ÎÎÎÏÎÏÎÏ</link>."
+"from gi.repository import Gtk\n"
+"from gi.repository import Gdk\n"
+"from gi.repository import Gio\n"
+"import sys\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"Toolbar Example\", application=app)\n"
+"        self.set_default_size(400, 200)\n"
+"\n"
+"        # a grid to attach the toolbar\n"
+"        grid = Gtk.Grid()\n"
+"\n"
+"        # a toolbar created in the method create_toolbar (see below)\n"
+"        toolbar = self.create_toolbar()\n"
+"        # with extra horizontal space\n"
+"        toolbar.set_hexpand(True)\n"
+"        # show the toolbar\n"
+"        toolbar.show()\n"
+"\n"
+"        # attach the toolbar to the grid\n"
+"        grid.attach(toolbar, 0, 0, 1, 1)\n"
+"\n"
+"        # add the grid to the window\n"
+"        self.add(grid)\n"
+"\n"
+"        # create the actions that control the window and connect their signal to a\n"
+"        # callback method (see below):\n"
+"\n"
+"        # undo\n"
+"        undo_action = Gio.SimpleAction.new(\"undo\", None)\n"
+"        undo_action.connect(\"activate\", self.undo_callback)\n"
+"        self.add_action(undo_action)\n"
+"\n"
+"        # fullscreen\n"
+"        fullscreen_action = Gio.SimpleAction.new(\"fullscreen\", None)\n"
+"        fullscreen_action.connect(\"activate\", self.fullscreen_callback)\n"
+"        self.add_action(fullscreen_action)\n"
+"\n"
+"    # a method to create the toolbar\n"
+"    def create_toolbar(self):\n"
+"        # a toolbar\n"
+"        toolbar = Gtk.Toolbar()\n"
+"\n"
+"        # which is the primary toolbar of the application\n"
+"        toolbar.get_style_context().add_class(Gtk.STYLE_CLASS_PRIMARY_TOOLBAR);\n"
+"\n"
+"        # create a button for the \"new\" action, with a stock image\n"
+"        new_button = Gtk.ToolButton.new_from_stock(Gtk.STOCK_NEW)\n"
+"        # label is shown\n"
+"        new_button.set_is_important(True)\n"
+"        # insert the button at position in the toolbar\n"
+"        toolbar.insert(new_button, 0)\n"
+"        # show the button\n"
+"        new_button.show()\n"
+"        # set the name of the action associated with the button.\n"
+"        # The action controls the application (app)\n"
+"        new_button.set_action_name(\"app.new\")\n"
+"\n"
+"        # button for the \"open\" action\n"
+"        open_button = Gtk.ToolButton.new_from_stock(Gtk.STOCK_OPEN)\n"
+"        open_button.set_is_important(True)\n"
+"        toolbar.insert(open_button, 1)\n"
+"        open_button.show()\n"
+"        open_button.set_action_name(\"app.open\")\n"
+"\n"
+"        # button for the \"undo\" action\n"
+"        undo_button = Gtk.ToolButton.new_from_stock(Gtk.STOCK_UNDO)\n"
+"        undo_button.set_is_important(True)\n"
+"        toolbar.insert(undo_button, 2)\n"
+"        undo_button.show()\n"
+"        undo_button.set_action_name(\"win.undo\")\n"
+"\n"
+"        # button for the \"fullscreen/leave fullscreen\" action\n"
+"        self.fullscreen_button = Gtk.ToolButton.new_from_stock(Gtk.STOCK_FULLSCREEN)\n"
+"        self.fullscreen_button.set_is_important(True)\n"
+"        toolbar.insert(self.fullscreen_button, 3)\n"
+"        self.fullscreen_button.set_action_name(\"win.fullscreen\")\n"
+"\n"
+"        # return the complete toolbar\n"
+"        return toolbar\n"
+"\n"
+"    # callback method for undo\n"
+"    def undo_callback(self, action, parameter):\n"
+"        print \"You clicked \\\"Undo\\\".\"\n"
+"\n"
+"    # callback method for fullscreen / leave fullscreen\n"
+"    def fullscreen_callback(self, action, parameter):\n"
+"        # check if the state is the same as Gdk.WindowState.FULLSCREEN, which is a bit flag\n"
+"        is_fullscreen = self.get_window().get_state() &amp; Gdk.WindowState.FULLSCREEN != 0\n"
+"        if not is_fullscreen:\n"
+"            self.fullscreen_button.set_stock_id(Gtk.STOCK_LEAVE_FULLSCREEN)\n"
+"            self.fullscreen()\n"
+"        else:\n"
+"            self.fullscreen_button.set_stock_id(Gtk.STOCK_FULLSCREEN)\n"
+"            self.unfullscreen()\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"        # create the actions that control the window and connect their signal to a\n"
+"        # callback method (see below):\n"
+"\n"
+"        # new\n"
+"        new_action = Gio.SimpleAction.new(\"new\", None)\n"
+"        new_action.connect(\"activate\", self.new_callback)\n"
+"        app.add_action(new_action)\n"
+"\n"
+"        # open\n"
+"        open_action = Gio.SimpleAction.new(\"open\", None)\n"
+"        open_action.connect(\"activate\", self.open_callback)\n"
+"        app.add_action(open_action)\n"
+"\n"
+"    # callback method for new\n"
+"    def new_callback(self, action, parameter):\n"
+"        print \"You clicked \\\"New\\\".\"\n"
+"\n"
+"    # callback method for open\n"
+"    def open_callback(self, action, parameter):\n"
+"        print \"You clicked \\\"Open\\\".\"\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
 
-#: C/guitar-tuner.js.page:6(title)
-msgid "Guitar Tuner (JavaScript)"
-msgstr "ÎÏÎÏÎÎÎÏÏÎÏ ÎÎÎÎÏÎÏ (JavaScript)"
+#: C/toolbar.py.page:35(section/title)
+msgid "Useful methods for a Toolbar widget"
+msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÏÎÎÎÎÎÎÎÎÎÎÏ"
 
-#: C/guitar-tuner.js.page:16(desc)
+#: C/toolbar.py.page:38(item/p)
 msgid ""
-"Use Gtk+ and GStreamer to build a simple guitar tuner application for GNOME."
+"Use <code>insert(tool_item, position)</code> to insert the <code>tool_item</"
+"code> at <code>position</code>. If <code>position</code> is negative, the "
+"item is appended at the end of the toolbar."
 msgstr ""
-"ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ Gtk+ ÎÎÎ GStreamer ÎÎÎ ÎÎ ÎÎÏÎÏÎÎÏÎÏÎÏÎ ÎÎÎ ÎÏÎÎ ÎÏÎÏÎÎÎÎ "
-"ÏÏÎÎÎÏÏÎ ÎÎÎÎÏÎÏ ÎÎÎ ÏÎ GNOME."
+"ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ <code>insert(tool_item, position)</code> ÎÎÎ ÏÎÎ ÎÎÏÎÎÏÎÎ ÏÎÏ "
+"<code>tool_item</code> ÏÏÎ <code>position</code>. ÎÎÎ Î <code>position</"
+"code> ÎÎÎÎÎ ÎÏÎÎÏÎÎÎ, ÏÎ ÏÏÎÎÏÎÎÎ ÏÏÎÏÎÏÏÎÏÎÎ ÏÏÎ ÏÎÎÎÏ ÏÎÏ ÎÏÎÎÎÎÎÎÎÎÎÎÏ."
 
-#: C/guitar-tuner.js.page:22(p)
+#: C/toolbar.py.page:39(item/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."
+"<code>get_item_index(tool_item)</code> retrieves the position of "
+"<code>tool_item</code> on the toolbar."
 msgstr ""
-"ÎÎ ÎÏÏÏ ÏÎ ÎÎÎÎÎÎ ÎÎ ÎÎÏÎÏÎÎÏÎÏÎÏÎÎ ÎÎÎ ÎÎÎÏÎ ÎÏÎÏÎÎÎÎ, Guitar Tuner, "
-"ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ JavaScript, GTK+ ÎÎÎ GStreamer. ÎÎÎ ÎÎ ÎÎÎÎÏÎ ÎÎÎ ÎÎ ÏÏÎÎÎÏÎ "
-"ÏÎÎ ÏÎ ÏÎÏÎÎÎÎÎÎÎÏÎ ÎÏÎÎÎÎ ÎÎ ÎÎÎÎÎ, ÏÏÎÎÎÎÏÏÎÏÏÎ ÎÎÎÎ ÎÏÎÎÎÏÎÎÏÏÎ ÎÎÎ ÏÎ "
-"ÎÏÎÏÎÎÎ ÏÎÏ ÎÏÎÎÎÎ, ÏÎÏÎÎÏÎÎÏ ÎÎÎ GNOME 3 Î ÎÎÏÎÎÎÎÎÏÏÎÏÎ ÎÎÎÎÏÎÏÏÎÎÎÎÎ ÏÏÎÎ "
-"ÏÏÎÎÎÎÎÏÏÎ ÏÎÏ."
-
-#: C/guitar-tuner.js.page:28(link) C/guitar-tuner.js.page:77(title)
-msgid "Buttons for the tunes"
-msgstr "ÎÎÏÎÏÎÎ ÎÎÎ ÏÎÏ ÎÎÎÏÎÎÎÏ"
-
-#: C/guitar-tuner.js.page:29(link) C/guitar-tuner.js.page:102(title)
-msgid "Making the sounds with GStreamer"
-msgstr "ÎÎÎÎÎÏÎÏ ÏÎÏÏ ÎÏÎÏÏ ÎÎ GStreamer"
-
-#: C/guitar-tuner.js.page:30(link) C/guitar-tuner.js.page:126(title)
-msgid "Connecting buttons to playSound"
-msgstr "ÎÏÎÎÎÎÎÏÎÏ ÎÎÏÎÏÎÎ ÏÏÎ playSound"
-
-#: C/guitar-tuner.js.page:31(link) C/guitar-tuner.js.page:149(title)
-msgid "The whole program"
-msgstr "ÎÎÎ ÏÎ ÏÏÏÎÏÎÎÎÎ"
-
-#: C/guitar-tuner.js.page:32(link) C/guitar-tuner.js.page:229(title)
-msgid "Running the application form Terminal"
-msgstr "ÎÎÏÎÎÎÏÎ ÏÎÏ ÎÏÎÏÎÎÎÎÏ ÎÏÏ ÏÎÏÎÎÏÎÎÏ"
+"Î <code>get_item_index(tool_item)</code> ÎÎÎÎÏÎ ÏÎ ÎÎÏÎ ÏÎÏ <code>tool_item</"
+"code> ÏÏÎÎ ÎÏÎÎÎÎÎÎÎÎÎÎ."
 
-#: C/guitar-tuner.js.page:50(p)
+#: C/toolbar.py.page:40(item/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"
+"<code>get_n_items()</code> returns the number of items on the toolbar; "
+"<code>get_nth_item(position)</code> returns the item in position "
+"<code>position</code>."
 msgstr ""
-"ÎÏÏÎ Î ÎÏÎÎÎÎ ÎÎÎÎ ÏÏÏ ÎÎ ÎÎÏÎÎÎÏÏÎÎ ÏÎ ÏÎÎÎÏÎÎ. ÎÏÎÏÎÎ ÎÎ ÎÎÎÎÎ Î ÏÏÏÏÎ "
-"ÎÏÎÎÎÎ ÏÎÏ ÎÏÎÎÎÎ ÎÎÎ ÎÎ ÎÎÎÎÎ ÎÎÏÎÎÎÏÎÎÎ. ÎÎÎ ÎÎÏÎ ÏÏÎ ÎÎÎÎÎÏÎÎÏÏÎ "
-"ÎÎÏÎÎÎÏÎÏ ÏÎÎÎÎÎÎÏÎ ÏÏÎÎ ÏÎÏÎÎÏÎÎÏ ÎÎÎ ÎÎÏÎÎÎÏÏÎ ÏÏÎÎ ÏÏÏÏÏ ÏÎÎÎÎÎ: chmod +x "
-"ÏÎÎÎÎ ÏÎÎÎÏÎÎÏ. Î ÎÏÎÏÎÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÏÎÎ ÎÎÎÏÎÎÏÎÏÏÎ ÎÏÏÎÎÎÏ "
-"ÎÏÎÏÎÎÏÎ. ÎÏÎÎ ÏÎÎÎÎÎÎÏÎ ÏÏÎÎ ÏÏÏÏÏ ÏÎÎÎÎÎ ÏÏÎÏ ÎÎÎÎÎ Î ÎÏÎÎÎÎÏ ÏÎÏ ÎÎÎÎ "
-"ÎÎÎÎ ÏÏÎ ÎÏÏÎÎÎ ÏÎÏ ÎÏÎÎÎÎ ÏÎÏ, ÎÏÎÎÎÎÏÎ ÎÎÎÏÏÎÏÎÏ, ÎÎÎÎ ÏÏÎÎ ÎÎÏÏÎÎÎ "
-"ÎÎÎÎÎÏÎÎÏÏÎ ÎÎÎ ÏÎÎÎÎÏÏÏÎ ÏÎ ÏÎÎÎÏÎÎ ÎÎÎ ÎÎ ÎÏÎÏÏÎÏÎÎ Î ÎÎÏÎÎÎÏÎ ÏÎÏ ÎÏÏÎÎÎÏ "
-"ÏÏ ÏÏÏÎÏÎÎÎÎ"
+"Î <code>get_n_items()</code> ÎÏÎÏÏÏÎÏÎÎ ÏÎÎ ÎÏÎÎÎÏ ÏÏÎ ÏÏÎÎÏÎÎÏÎ ÏÎÏ "
+"ÎÏÎÎÎÎÎÎÎÎÎÎÏÂ Î <code>get_nth_item(position)</code> ÎÏÎÏÏÏÎÏÎÎ ÏÎ ÏÏÎÎÏÎÎÎ "
+"ÏÏÎ ÎÎÏÎ <code>position</code>."
 
-#: C/guitar-tuner.js.page:60(p)
+#: C/toolbar.py.page:41(item/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."
+"If the toolbar does not have room for all the menu items, and "
+"<code>set_show_arrow(True)</code>, the items that do not have room are shown "
+"through an overflow menu."
 msgstr ""
-"ÎÎÎ ÎÎ ÏÏÎÏÏÎÎ ÎÎÎ ÎÎÎÏÎÏÏÎÎÎÏ ÏÏÏÎÏÎÎÎÎ ÏÏÎÎÎÎÎÏÎÎ ÎÎ ÎÎÏÎÏÎÎÏÎ ÎÎÎÎ "
-"GObject ÎÏÏÎÎÎÎÎÏÎÏ - ÎÎÎÎÎÎÎÎÎÎÏ ÎÎÎ ÏÎ ÏÏÎÏÎ ÎÎÏ. ÎÎÎ ÎÎÎÏÎÏÏÎÎÎÏ UI, "
-"ÏÏÎÎÎÎÎÏÎÎ Gtk ÎÎÎ ÎÎÎ Gstreamer ÏÏÎÎÎÎÎÏÎÎ Gst. ÎÏÏÎ ÎÎÏÎÎÎÎÏÎÎ ÏÏÎÎ ÎÏÏÎ "
-"ÎÎÎ ÎÎ ÏÎ ÎÏÎÏÎÎ ÎÎÎ ÏÏÎÏÎ ÏÎÎÏÎÏ. ÎÏÎÏÎÏ ÏÏÎÎ ÎÏÏÎ ÎÎÏÎÎÎÏÎÎ ÎÎÎÎ ÎÏÏÎÎ "
-"ÎÏÏÏÎ ÎÎÏÎÏÎÎÏÎÏ ÎÎÎ ÏÎÎÏÎÏÎÏ ÏÎÏ ÏÏÏÎÎÏ ÎÎÎÎÏ ÏÏÎ ÏÏÎÏÎ ÏÎÏ ÎÎ ÎÏÎÏÏ "
-"ÎÎÎÏÎÎÎÏ."
+"ÎÎÎ Î ÎÏÎÎÎÎÎÎÎÎÎÎ ÎÎÎ ÎÏÎÎ ÏÏÏÎ ÎÎÎ ÏÎÎ ÏÎ ÏÏÎÎÏÎÎÎ ÎÎÎÎÏ ÎÎÎ ÏÎÎ "
+"<code>set_show_arrow(True)</code>, ÏÎ ÏÏÎÎÏÎÎÎ ÏÎÏ ÎÎÎ ÎÏÎÏÎ ÏÏÏÎ "
+"ÎÎÏÎÎÎÎÎÎÏÎÎ ÎÎÏÎ ÎÏÏ ÎÎÎ ÎÎÎÎÏ ÏÏÎÏÏÎÎÎÎÏÎÏ."
 
-#: C/guitar-tuner.js.page:74(p)
+#: C/toolbar.py.page:42(item/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()"
+"<code>set_icon_size(icon_size)</code> sets the size of icons in the toolbar; "
+"<code>icon_size</code> can be one of <code>Gtk.IconSize.INVALID, Gtk."
+"IconSize.MENU, Gtk.IconSize.SMALL_TOOLBAR, Gtk.IconSize.LARGE_TOOLBAR, Gtk."
+"IconSize.BUTTON, Gtk.IconSize.DND, Gtk.IconSize.DIALOG</code>. This should "
+"be used only for special-purpose toolbars, normal application toolbars "
+"should respect user preferences for the size of icons. <code>unset_icon_size"
+"()</code> unsets the preferences set with <code>set_icon_size(icon_size)</"
+"code>, so that user preferences are used to determine the icon size."
 msgstr ""
-"Î ÎÎÏÎÎÏÎÎ ÏÏÎ Gtk ÎÎÎ Gst ÎÎÎ ÎÎÎÎÎ ÎÏÎÎÏÎ, ÏÏÎÎÎÎÎÏÎÎ Î ÎÏÏÎÎÎÏÎÎÎÏÎ ÏÎÏÏ "
-"ÎÎÎ ÎÎ ÎÎÏÎÎÏÎÏÎ. ÎÏÎÎ ÏÎ Gtk ÎÎÎ Gst ÎÎÏÎÎÎÏÎÏÎÎ ÏÏÎÎÎÎÎÏÎÎ ÎÎ "
-"ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ ÏÎ ÏÎÏÎÎÏÏÎ ÎÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ. ÎÏÎÏÏÎÏÎ ÏÏÏÎÎÎÏÎÎ ÎÎ ÎÎÎÎÏÎÎ "
-"ÏÎÎ ÏÎ ÎÎÏÎÏÎÎ ÎÎ ÏÎÏÎÎÎÏÎ ÎÏÎÏÏ ÎÎÏÎ ÏÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÏÏÎ. ÎÎÎ ÏÎÎ ÎÎÏÎÎÎÏÎ "
-"ÏÎÏ ÏÎÏÎÎÏÏÎÏ, ÏÏÎÎÎÎÏÎÎÏÏÎ ÎÎ ÏÎÏ ÏÎÏÎÎ ÎÎ ÎÎÏÎÎÎÏÏÎÎ ÎÎÎ ÏÏÎÎÎÎÏÎÎÏÏÎ "
-"ÎÏÎÏÎÏ ÎÎ ÏÏÎÎÎÎ Î ÎÏÎÎÎÎÏ ÎÎ ÏÎ Gtk.main()"
+"Î <code>set_icon_size(icon_size)</code> ÏÏÎÎÎÎÎÎ ÏÎ ÎÎÎÎÎÎÏ ÏÏÎ ÎÎÎÎÎÎÎÎÏÎ "
+"ÏÏÎÎ ÎÏÎÎÎÎÎÎÎÎÎÎÂ ÏÎ <code>icon_size</code> can be one of <code>Gtk."
+"IconSize.INVALID, Gtk.IconSize.MENU, Gtk.IconSize.SMALL_TOOLBAR, Gtk."
+"IconSize.LARGE_TOOLBAR, Gtk.IconSize.BUTTON, Gtk.IconSize.DND, Gtk.IconSize."
+"DIALOG</code>. ÎÏÏÏ ÏÏÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÎÎ ÎÏÎÎ ÎÎÎ ÎÏÎÎÎÎÎÎÎÎÎÎÏ ÎÎÎÎÎÎÏ "
+"ÏÎÎÏÎÏ, ÎÏÎÎÎÎÎÎÎÎÎÎÏ ÎÎÎÎÎÎÎÎÏ ÎÏÎÏÎÎÎÎÏ ÏÏÎÏÎÎ ÎÎ ÏÎÎÎÎÏÎÎ ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÏ "
+"ÏÎÏ ÏÏÎÏÏÎ ÎÎÎ ÏÎ ÎÎÎÎÎÎÏ ÏÏÎ ÎÎÎÎÎÎÎÎÏÎ. Î <code>unset_icon_size()</code> "
+"ÎÎÎÎÏÎÎ ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÏ ÏÎÏ ÏÏÎÎÎÏÏÎÎÎÎ ÎÎ <code>unset_icon_size()</code>, "
+"ÎÏÏÎ ÏÏÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÏ ÏÏÎÏÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÎÏÎ ÎÎÎ ÏÎÎ ÏÏÎÏÎÎÎÏÎÏÎÏ ÏÎÏ "
+"ÎÎÎÎÎÎÏÏ ÏÎÏ ÎÎÎÎÎÎÎÎÎÏ."
 
-#: C/guitar-tuner.js.page:98(p)
+#: C/toolbar.py.page:43(item/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."
+"<code>set_style(style)</code>, where <code>style</code> is one of <code>Gtk."
+"ToolbarStyle.ICONS, Gtk.ToolbarStyle.TEXT, Gtk.ToolbarStyle.BOTH, Gtk."
+"ToolbarStyle.BOTH_HORIZ</code>, sets if the toolbar shows only icons, only "
+"text, or both (vertically stacked or alongside each other). To let user "
+"preferences determine the toolbar style, and unset a toolbar style so set, "
+"use <code>unset_style()</code>."
 msgstr ""
-"ÎÏÎÎÎÎ ÏÎ Gtk.Window ÎÏÎÏÎÎ ÎÎ ÏÎÏÎÎÏÎÎ ÎÏÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ, "
-"ÏÏÎÎÎÎÎÏÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎÎÎÎ ÎÎÏÎ ÎÏÏ ÎÎÏÏ ÏÎÏ ÎÎÎ ÎÎ ÎÏÎÏÎÎ ÎÎ ÏÏÎÏÎÎÏÎÎ ÏÎÎ "
-"ÏÎ ÎÏÎÏÎÎÏÎÏÎ ÎÎÏÎÏÎÎ ÎÎÏÎ ÏÎÏ. ÎÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÏÎÎÎÏÎÎ "
-"ÎÎÏÎÏÎÎÏ. ÎÎÏÎ ÏÎ ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ ÏÎÎÎÏÎÎÏ ÎÎÏÎÏÎÎÏ ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÏÎÏÎÎ ÎÎ "
-"ÎÎÎÎÎÎÎÎÏ ÎÏÎÎÎÏÎÏ. ÎÏÎÏ ÎÏÎÏÎÎ ÏÎ ÎÎÏÎÏÎÎ ÏÏÎÏÎÎ ÎÎ ÏÎ ÏÏÎÏÎÎÏÎÏÎÎ ÏÏÎ "
-"ÏÎÎÎÏÎÎ ÎÎÏÎÏÎÎÏ ÎÎÎ ÏÎ ÏÎÎÎÏÎÎ ÎÎÏÎÏÎÎÏ ÏÏÎÏÎÎ ÎÎ ÏÏÎÏÏÎÎÎÎ ÏÏÎ Gtk.Window "
-"ÎÎÎ ÏÎÎ ÏÏÎ ÏÎÎÎÏÎÎ ÎÎÏÎÏÎÎÏ ÏÏÎÏÎÎ ÎÎ ÎÎÏÎÎÎÎÎÎÏÎÎ."
+"Î <code>set_style(style)</code>, ÏÏÎÏ <code>style</code> ÎÎÎÎÎ ÎÎÎ ÎÏÏ ÏÎ "
+"<code>Gtk.ToolbarStyle.ICONS, Gtk.ToolbarStyle.TEXT, Gtk.ToolbarStyle.BOTH, "
+"Gtk.ToolbarStyle.BOTH_HORIZ</code>, ÏÏÎÎÎÎÎÎ ÎÎÎ Î ÎÏÎÎÎÎÎÎÎÎÎÎ ÎÎÏÎÎÎÎÎÎ "
+"ÎÏÎÎ ÎÎÎÎÎÎÎÎÎ, ÎÏÎÎ ÎÎÎÎÎÎÎ Î ÎÎÎ ÏÎ ÎÏÎ (ÏÏÎÎÎÎÎÎÎÎÎ ÎÎÎÎÏÎ Î ÎÎÏÎÎ ÎÎÏÎÎÏ "
+"ÏÎÏÏ). ÎÎÎ ÎÎ ÎÏÎÏÏÎÏÎÏÎ ÏÏÎÏ ÏÏÎÏÎÎÎÏÎÎÏ ÏÎÏ ÏÏÎÏÏÎ ÎÎ ÎÎÎÎÏÎÏÎÏÎ ÏÎ ÏÏÎÏ "
+"ÏÎÏ ÎÏÎÎÎÎÎÎÎÎÎÎÏ ÎÎÎ ÎÎ ÎÎÎÎÏÎÏÎÏÎ ÎÎÎ ÏÏÎÏ ÎÏÎÎÎÎÎÎÎÎÎÎÏ ÏÎÏ ÏÏÎÎÎÏÏÎÎÎ "
+"ÎÏÏÎ, ÏÏÎÏÎÎÎÏÎÎÎÏÏÎ <code>unset_style()</code>."
 
-#: C/guitar-tuner.js.page:99(p)
+#: C/toolbar.py.page:52(item/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."
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkToolbar.html";
+"\">GtkToolbar</link>"
 msgstr ""
-"ÎÎÏÎ ÎÏÏ ÎÏÏÏ ÏÎ ÏÏÎÎÎÎ ÏÏÎÏÎÎ ÎÎ ÎÏÎÏÎ ÎÎÎ ÎÎÏÎÎÎÎÏÎÎÎÎ ÏÎÏÎÎÏÏÎ ÏÏÎÎ ÎÎÏÎÎ "
-"ÏÎÏ ÏÎÏ ÎÎ ÎÎÎÏÎÎÎ 6 ÎÎÏÎÏÎÎ. ÎÏÏÎ ÏÎ ÎÎÏÎÏÎÎ ÎÎÎ ÎÎÎÎÏÎ ÏÎÏÎÏÎ ÎÎÎ ÎÎ "
-"ÎÎÏÎÎÎÏÏÏÎÏÎÏÎÎ ÎÏÏÏ ÏÎ ÎÎÎÎ ÎÏÎÏÏÎÏÎ. ÎÏÎÎ ÎÎ ÎÏÎÏÎÏÎÏÎÎ ÎÎ ÏÏÎÎÎÏÎÏÎÎ ÏÎ "
-"ÏÎÎÎÏÎ ÏÎÏ ÎÎÏÎÏÎÎÏ ÎÎ ÎÎÏÎ ÏÏÎÎÎÎÎÏÎÎ ÎÎ ÎÏÎÎÎÎÏÎÎÎÏÎÏÎÎ ÎÏÏÏ ÏÎ ÎÎÏÎ ÏÏÏÏÎ."
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkToolbar.html";
+"\">GtkToolbar</link>"
 
-#: C/guitar-tuner.js.page:122(p)
+#: C/toolbar.py.page:53(item/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."
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkToolButton.html";
+"\">GtkToolButton</link>"
 msgstr ""
-"ÎÎ ÏÏÏÏÎ ÏÏÎÎÎÎ ÏÎÏ ÏÏÎÎÎÎÏÎÎÏÏÎ ÎÎÎÎÎ ÎÎ ÎÏÎÏÎÏÎÏÎÏÎÎ ÏÎ ÎÎÎÏÎÎÎÏ ÎÎÎÎÏÎÎ "
-"ÎÎ ÎÎÎÎÏÎÎ ÏÏÎÎ ÏÎÏÎÎÎ ÎÎÎ ÎÎÏÎÏÎ. Î ÎÎÏÏÎ ÏÏÏÎÎÏÎÏÏÎ ÏÎ ÏÏÎÎÏÎÎÎÎ. ÎÎÏÎ ÎÏÏ "
-"ÎÏÏÏ ÏÏÎÎÏÎÎÎÏÎÎ ÎÎ ÎÎÎÎÎ ÏÏÎÎ ÏÏÎÎÎÎÏÎÎÏÏÎÏÎ ÏÎÏÏ ÎÏÎÏÏ ÎÎ ÏÎ ÏÏÎÎÏÏÎÏÎ "
-"playSound. ÎÎÎ ÏÎ ÏÏÎÎÏÏÎÏÎ playSound ÎÎÎÎÏÎÎ ÏÏ ÎÎÏÎÎÎ ÎÎÎ ÏÏÏÎÏÏÎÏÎ (ÏÎÏ "
-"ÎÏÎÎÏ ÎÏÎÏÎÎÎ ÏÏÎ ÎÎÏÎÎÎÎÏÎ ÏÏÏÎÎÏÎÏÏÎ). ÎÎ ÏÏÏÏÎ ÏÏÎÎÎÎ ÏÎÏ ÏÏÎÎÎÎÏÎÎÏÏÎ ÎÎ "
-"ÎÎÏÎÏÎÎÏÎÏÎÏÎÎ ÎÎÎÎÎ ÎÎÎ ÎÎÎÏÎÏÎÏÏÎ, ÎÎÎ ÏÎÎÎ ÎÎÎ ÎÎÎ ÎÎÎÎÎ. ÎÎÎ ÏÎÎ ÏÎÎÎ "
-"ÎÏÎÎÎÏÎÎ ÏÎ ÏÏÏÎÏÏÎÏÎ. ÎÏÎ ÎÎÎÏÎÏÎÏÏÎ ÏÏÎÏÎÎÏÎÏÎÎ ÎÎÎ ÏÎÎ ÏÎÎÎ ÎÎÎ ÏÎÎ ÎÎÎÎÎ "
-"ÎÎÎ ÎÏÎÎÏÎ ÏÎÏ ÎÎÎÎ ÎÎ ÏÏÎÎÏÎÏÎÎ ÎÎ ÏÎÎÎÎÎ. ÎÏ ÏÎÎÎÏÏÎÎÎ ÏÏÎÎÎÎ "
-"ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÏÎ ÏÏÎÎÎÏÎ ÎÏÏÎÎÏ ÎÏÏÏÎÏ ÎÎÎ ÎÎ ÎÎÎÎÎ ÏÎÏÏÎ Î ÎÎÎÏÎÏÎÏÏÎ ÎÎÏÎ "
-"ÎÏÏ 500ms."
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkToolButton.html";
+"\">GtkToolButton</link>"
 
-#: C/guitar-tuner.js.page:123(p)
+#: C/toolbar.py.page:54(item/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."
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkToolItem.html";
+"\">GtkToolItem</link>"
 msgstr ""
-"ÎÏÏÎ ÎÏÎÏÎÎ ÏÎ ÎÎÎÎÎÎ ÎÎÎÏÎÏÎÎÏÎÎÏ ÎÎÎÏ ÎÎÎÏÎÎÎÏ ÏÎÏÏÎÏÎÏ ÎÎÎ ÎÎÏÎÏÎ. ÎÎÏÎ "
-"ÎÎÎÎÎÏÎÎ ÎÎ ÏÏÎÎÎÏÎÎÏ ÎÎÏÎÎÏ ÏÎÏÎÎÎÏÎÏ ÎÎÏÏ ÎÎÏÎÏÎÎÏ ÎÎÎ ÎÎÎÏÎÏÎÎÏÎÎÏ ÏÎÏ "
-"ÏÏÏÏÎÏ ÎÏÎÏ ÎÏÏ ÎÏÏÏ ÏÎ ÎÎÏÎÏÎ."
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkToolItem.html";
+"\">GtkToolItem</link>"
 
-#: C/guitar-tuner.js.page:146(p)
+#: C/toolbar.py.page:56(item/p)
 msgid ""
-"The method of connecting button clicks to playSound with the correct tune is "
-"by using the connect method of the button widget. So we choose a button to "
-"be connected and type E.connect(\"clicked\", function(){playSound"
-"(frequencies.E);}); The connect tells that when pushing E, something should "
-"happen. The \"clicked\" tells the type of something happening to E and then "
-"in the function(){}; we the playSound happen with the correct tune that "
-"should be associated to the button."
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkActionable.html";
+"\">GtkActionable</link>"
 msgstr ""
-"Î ÎÎÎÎÎÎÏ ÏÏÎÎÎÏÎÏ ÎÎÏÎÏÎÎÏ ÏÎÏÎ ÏÎ playSound ÎÎ ÏÎ ÏÏÏÏÎ ÎÎÎÏÎÎÎ ÎÎÎÎÏÎÎ "
-"ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ ÎÎÎÎÎÎ ÏÏÎÎÎÏÎÏ ÏÎÏ ÎÏÎÏÎÎÎÏ ÏÏÏÏÎÏÎÎÎÏ ÎÎÏÎÏÎÎÏ. ÎÏÏÎ "
-"ÎÏÎÎÎÎÎÏÎÎ ÎÎÎ ÎÎÏÎÏÎ ÎÎ ÏÏÎÎÎÎÎÎ ÎÎÎ ÏÎÎÎÏÏÎÎÎÎÎÏÎÎ E.connect(\"clicked\", "
-"function(){playSound(frequencies.E);}); Î ÏÏÎÎÎÏÎ ÎÎÎÎ ÏÏÎ ÏÏÎÎ ÏÎÏÎÎÎ Î, "
-"ÎÎÏÎ ÎÎ ÏÏÎÎÎÎ. ÎÎ \"ÏÎÏÎÎÎÎÎ\" ÎÎÎÎ ÏÎÎ ÏÏÏÎ ÏÎÏ ÎÎÏÎ ÏÏÎÎÎÎÎÎÎ ÏÏÎ Î ÎÎÎ "
-"ÎÏÎÎÏÎ ÏÏÎ function(){}; ÏÏÎÎÎÎÎÎÎ ÏÎ playSound ÎÎ ÏÎ ÏÏÏÏÎ ÎÎÎÏÎÎÎ ÏÎÏ "
-"ÎÏÎÏÎÎ ÎÎ ÏÏÏÏÎÏÎÏÏÎÎ ÎÎ ÏÎ ÎÎÏÎÏÎ."
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkActionable.html";
+"\">GtkActionable</link>"
 
-#: C/guitar-tuner.js.page:150(p)
+#: C/toolbar.py.page:58(item/p) C/toolbar_builder.py.page:196(item/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)."
+"<link href=\"http://developer.gnome.org/gdk3/unstable/gdk3-Event-Structures.";
+"html#GdkEventWindowState\">Event Structures</link>"
 msgstr ""
-"ÎÏÏÎ ÎÏÏÏ ÎÎÎÎÎ ÏÏÏ ÎÎÎÏÎÎÏÎ ÏÎÎ ÏÎ ÎÎÏÎÎÎÎ ÏÎÎÎÎÏÎ. ÎÏÎÎ ÏÏÎÏÎÎ ÎÏÏÏÏ Î "
-"ÎÏÎÎÎÎÏ, ÎÎ ÎÏÎÏÎÏÏÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÏÎ ÏÎÎ ÎÎÎÎÏÎ ÏÎÏ (ÎÎÎ ÎÏÎÏÎ ÏÏÏÏÎ "
-"ÎÎÎÎÎÎÎÎÎÎÎÎÎ ÎÏÎÎÎ)."
+"<link href=\"http://developer.gnome.org/gdk3/unstable/gdk3-Event-Structures.";
+"html#GdkEventWindowState\">ÎÎÎÎ ÎÎÎÎÎÏÏÏÎ</link>"
+
+#: C/toolbar.vala.page:7(info/title)
+msgctxt "text"
+msgid "Toolbar (Vala)"
+msgstr "ÎÏÎÎÎÎÎÎÎÎÎÎ (Vala)"
+
+#: C/toolbar.vala.page:18(info/desc) C/toolbar_builder.vala.page:19(info/desc)
+msgid "A bar of buttons"
+msgstr "ÎÏÎÎÎÎ ÎÎÏÎÏÎÏÎ"
 
-#: C/guitar-tuner.js.page:230(p)
+#: C/toolbar.vala.page:27(page/code)
+#, no-wrap
 msgid ""
-"To run this application open Terminal, go to the folder where your "
-"application is stored and then run"
+"/* This is the Window */\n"
+"class MyWindow : Gtk.ApplicationWindow {\n"
+"\n"
+"\t/* Instance variables belonging to the window */\n"
+"\tGtk.Toolbar toolbar;\n"
+"\tGtk.ToolButton new_button;\n"
+"\tGtk.ToolButton open_button;\n"
+"\tGtk.ToolButton undo_button;\n"
+"\tGtk.ToolButton fullscreen_button;\n"
+"\tGtk.ToolButton leave_fullscreen_button;\n"
+"\n"
+"\t/* Contstructor */\n"
+"\tinternal MyWindow (MyApplication app) {\n"
+"\t\tObject (application: app, title: \"Toolbar Example\");\n"
+"\n"
+"\t\tthis.set_default_size (400, 200);\n"
+"\t\tvar grid = new Gtk.Grid ();\n"
+"\t\tthis.add (grid);\n"
+"\t\tgrid.show ();\n"
+"\n"
+"\t\tcreate_toolbar ();\n"
+"\t\ttoolbar.set_hexpand (true);\n"
+"\t\tgrid.attach (toolbar, 0, 0, 1, 1);\n"
+"\t\ttoolbar.show ();\n"
+"\n"
+"\t\t/* create the \"undo\" window action action */\n"
+"\t\tvar undo_action = new SimpleAction (\"undo\", null);\n"
+"\t\tundo_action.activate.connect (undo_callback);\n"
+"\t\tthis.add_action (undo_action);\n"
+"\n"
+"\t\t/* create the \"fullscreen\" window action */\n"
+"\t\tvar fullscreen_action = new SimpleAction (\"fullscreen\", null);\n"
+"\t\tfullscreen_action.activate.connect (fullscreen_callback);\n"
+"\t\tthis.add_action (fullscreen_action);\n"
+"\t}\n"
+"\n"
+"\t/* This function creates the toolbar, its  ToolButtons,\n"
+"\t * and assigns the actions names to the ToolButtons.*/\n"
+"\tvoid create_toolbar () {\n"
+"\t\ttoolbar = new Gtk.Toolbar ();\n"
+"\t\ttoolbar.get_style_context ().add_class (Gtk.STYLE_CLASS_PRIMARY_TOOLBAR);\n"
+"\n"
+"\t\tnew_button = new Gtk.ToolButton.from_stock (Gtk.Stock.NEW);\n"
+"\t\tnew_button.is_important = true; //decides whether to show the label\n"
+"\t\ttoolbar.add (new_button);\n"
+"\t\tnew_button.show ();\n"
+"\t\tnew_button.action_name = \"app.new\";\n"
+"\n"
+"\t\topen_button = new Gtk.ToolButton.from_stock (Gtk.Stock.OPEN);\n"
+"\t\topen_button.is_important = true;\n"
+"\t\ttoolbar.add (open_button);\n"
+"\t\topen_button.show ();\n"
+"\t\topen_button.action_name = \"app.open\";\n"
+"\n"
+"\t\tundo_button = new Gtk.ToolButton.from_stock (Gtk.Stock.UNDO);\n"
+"\t\tundo_button.is_important = true;\n"
+"\t\ttoolbar.add (undo_button);\n"
+"\t\tundo_button.show ();\n"
+"\t\tundo_button.action_name = \"win.undo\";\n"
+"\n"
+"\t\tfullscreen_button = new Gtk.ToolButton.from_stock (Gtk.Stock.FULLSCREEN);\n"
+"\t\tfullscreen_button.is_important = true;\n"
+"\t\ttoolbar.add (fullscreen_button);\n"
+"\t\tfullscreen_button.show ();\n"
+"\t\tfullscreen_button.action_name = \"win.fullscreen\";\n"
+"\n"
+"\t\tleave_fullscreen_button = new Gtk.ToolButton.from_stock (Gtk.Stock.LEAVE_FULLSCREEN)\n"
+";\n"
+"\t\tleave_fullscreen_button.is_important = true;\n"
+"\t\ttoolbar.add (leave_fullscreen_button);\n"
+"\n"
+"\t\tleave_fullscreen_button.action_name = \"win.fullscreen\";\n"
+"\t}\n"
+"\n"
+"\tvoid undo_callback (SimpleAction simple, Variant? parameter) {\n"
+"\t\t\tprint (\"You clicked \\\"Undo\\\".\\n\");\n"
+"\t}\n"
+"\n"
+"\tvoid fullscreen_callback (SimpleAction simple, Variant? parameter) {\n"
+"\t\tif ((this.get_window ().get_state () &amp; Gdk.WindowState.FULLSCREEN) != 0) {\n"
+"\t\t\tthis.unfullscreen ();\n"
+"\t\t\tleave_fullscreen_button.hide ();\n"
+"\t\t\tfullscreen_button.show ();\n"
+"\t\t}\n"
+"\t\telse {\n"
+"\t\t\tthis.fullscreen ();\n"
+"\t\t\tfullscreen_button.hide ();\n"
+"\t\t\tleave_fullscreen_button.show ();\n"
+"\t\t}\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* This is the application */\n"
+"class MyApplication : Gtk.Application {\n"
+"\tprotected override void activate () {\n"
+"\t\tnew MyWindow (this).show ();\n"
+"\t}\n"
+"\n"
+"\tprotected override void startup () {\n"
+"\t\tbase.startup ();\n"
+"\n"
+"\t\t/* Create the \"new\" action and add it to the app*/\n"
+"\t\tvar new_action = new SimpleAction (\"new\", null);\n"
+"\t\tnew_action.activate.connect (new_callback);\n"
+"\t\tthis.add_action (new_action);\n"
+"\n"
+"\t\t/* Create the \"open\" action, and add it to the app */\n"
+"\t\tvar open_action = new SimpleAction (\"open\", null);\n"
+"\t\topen_action.activate.connect (open_callback);\n"
+"\t\tthis.add_action (open_action);\n"
+"\n"
+"\t\t/* You could also add the action to the app menu\n"
+"\t\t * if you wanted to.\n"
+"\t\t */\n"
+"\t\t//var menu = new Menu ();\n"
+"\t\t//menu.append (\"New\", \"app.new\");\n"
+"\t\t//this.app_menu = menu;\n"
+"\t}\n"
+"\n"
+"\tvoid new_callback (SimpleAction action, Variant? parameter) {\n"
+"\t\tprint (\"You clicked \\\"New\\\".\\n\");\n"
+"\t}\n"
+"\n"
+"\tvoid open_callback (SimpleAction action, Variant? parameter) {\n"
+"\t\t\tprint (\"You clicked \\\"Open\\\".\\n\");\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* The main function creates the application and runs it. */\n"
+"int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
 msgstr ""
-"ÎÎÎ ÎÎ ÏÏÎÎÎÏÎ ÎÏÏÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ ÎÎÎÎÎÏÎ ÏÎÎ ÏÎÏÎÎÏÎÎÏ, ÏÎÎÎÎÎÎÏÎ ÏÏÎÎ "
-"ÏÎÎÎÎÎ ÏÏÎÏ ÎÎÎÎÎ ÎÏÎÎÎÎÎÏÎÎÎÎ Î ÎÏÎÏÎÎÎÎ ÏÎÏ ÎÎÎ ÎÎÏÎ ÏÏÎÎÏÎ ÏÎÎ"
+"/* This is the Window */\n"
+"class MyWindow : Gtk.ApplicationWindow {\n"
+"\n"
+"\t/* Instance variables belonging to the window */\n"
+"\tGtk.Toolbar toolbar;\n"
+"\tGtk.ToolButton new_button;\n"
+"\tGtk.ToolButton open_button;\n"
+"\tGtk.ToolButton undo_button;\n"
+"\tGtk.ToolButton fullscreen_button;\n"
+"\tGtk.ToolButton leave_fullscreen_button;\n"
+"\n"
+"\t/* Contstructor */\n"
+"\tinternal MyWindow (MyApplication app) {\n"
+"\t\tObject (application: app, title: \"Toolbar Example\");\n"
+"\n"
+"\t\tthis.set_default_size (400, 200);\n"
+"\t\tvar grid = new Gtk.Grid ();\n"
+"\t\tthis.add (grid);\n"
+"\t\tgrid.show ();\n"
+"\n"
+"\t\tcreate_toolbar ();\n"
+"\t\ttoolbar.set_hexpand (true);\n"
+"\t\tgrid.attach (toolbar, 0, 0, 1, 1);\n"
+"\t\ttoolbar.show ();\n"
+"\n"
+"\t\t/* create the \"undo\" window action action */\n"
+"\t\tvar undo_action = new SimpleAction (\"undo\", null);\n"
+"\t\tundo_action.activate.connect (undo_callback);\n"
+"\t\tthis.add_action (undo_action);\n"
+"\n"
+"\t\t/* create the \"fullscreen\" window action */\n"
+"\t\tvar fullscreen_action = new SimpleAction (\"fullscreen\", null);\n"
+"\t\tfullscreen_action.activate.connect (fullscreen_callback);\n"
+"\t\tthis.add_action (fullscreen_action);\n"
+"\t}\n"
+"\n"
+"\t/* This function creates the toolbar, its  ToolButtons,\n"
+"\t * and assigns the actions names to the ToolButtons.*/\n"
+"\tvoid create_toolbar () {\n"
+"\t\ttoolbar = new Gtk.Toolbar ();\n"
+"\t\ttoolbar.get_style_context ().add_class (Gtk.STYLE_CLASS_PRIMARY_TOOLBAR);\n"
+"\n"
+"\t\tnew_button = new Gtk.ToolButton.from_stock (Gtk.Stock.NEW);\n"
+"\t\tnew_button.is_important = true; //decides whether to show the label\n"
+"\t\ttoolbar.add (new_button);\n"
+"\t\tnew_button.show ();\n"
+"\t\tnew_button.action_name = \"app.new\";\n"
+"\n"
+"\t\topen_button = new Gtk.ToolButton.from_stock (Gtk.Stock.OPEN);\n"
+"\t\topen_button.is_important = true;\n"
+"\t\ttoolbar.add (open_button);\n"
+"\t\topen_button.show ();\n"
+"\t\topen_button.action_name = \"app.open\";\n"
+"\n"
+"\t\tundo_button = new Gtk.ToolButton.from_stock (Gtk.Stock.UNDO);\n"
+"\t\tundo_button.is_important = true;\n"
+"\t\ttoolbar.add (undo_button);\n"
+"\t\tundo_button.show ();\n"
+"\t\tundo_button.action_name = \"win.undo\";\n"
+"\n"
+"\t\tfullscreen_button = new Gtk.ToolButton.from_stock (Gtk.Stock.FULLSCREEN);\n"
+"\t\tfullscreen_button.is_important = true;\n"
+"\t\ttoolbar.add (fullscreen_button);\n"
+"\t\tfullscreen_button.show ();\n"
+"\t\tfullscreen_button.action_name = \"win.fullscreen\";\n"
+"\n"
+"\t\tleave_fullscreen_button = new Gtk.ToolButton.from_stock (Gtk.Stock.LEAVE_FULLSCREEN)\n"
+";\n"
+"\t\tleave_fullscreen_button.is_important = true;\n"
+"\t\ttoolbar.add (leave_fullscreen_button);\n"
+"\n"
+"\t\tleave_fullscreen_button.action_name = \"win.fullscreen\";\n"
+"\t}\n"
+"\n"
+"\tvoid undo_callback (SimpleAction simple, Variant? parameter) {\n"
+"\t\t\tprint (\"You clicked \\\"Undo\\\".\\n\");\n"
+"\t}\n"
+"\n"
+"\tvoid fullscreen_callback (SimpleAction simple, Variant? parameter) {\n"
+"\t\tif ((this.get_window ().get_state () &amp; Gdk.WindowState.FULLSCREEN) != 0) {\n"
+"\t\t\tthis.unfullscreen ();\n"
+"\t\t\tleave_fullscreen_button.hide ();\n"
+"\t\t\tfullscreen_button.show ();\n"
+"\t\t}\n"
+"\t\telse {\n"
+"\t\t\tthis.fullscreen ();\n"
+"\t\t\tfullscreen_button.hide ();\n"
+"\t\t\tleave_fullscreen_button.show ();\n"
+"\t\t}\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* This is the application */\n"
+"class MyApplication : Gtk.Application {\n"
+"\tprotected override void activate () {\n"
+"\t\tnew MyWindow (this).show ();\n"
+"\t}\n"
+"\n"
+"\tprotected override void startup () {\n"
+"\t\tbase.startup ();\n"
+"\n"
+"\t\t/* Create the \"new\" action and add it to the app*/\n"
+"\t\tvar new_action = new SimpleAction (\"new\", null);\n"
+"\t\tnew_action.activate.connect (new_callback);\n"
+"\t\tthis.add_action (new_action);\n"
+"\n"
+"\t\t/* Create the \"open\" action, and add it to the app */\n"
+"\t\tvar open_action = new SimpleAction (\"open\", null);\n"
+"\t\topen_action.activate.connect (open_callback);\n"
+"\t\tthis.add_action (open_action);\n"
+"\n"
+"\t\t/* You could also add the action to the app menu\n"
+"\t\t * if you wanted to.\n"
+"\t\t */\n"
+"\t\t//var menu = new Menu ();\n"
+"\t\t//menu.append (\"New\", \"app.new\");\n"
+"\t\t//this.app_menu = menu;\n"
+"\t}\n"
+"\n"
+"\tvoid new_callback (SimpleAction action, Variant? parameter) {\n"
+"\t\tprint (\"You clicked \\\"New\\\".\\n\");\n"
+"\t}\n"
+"\n"
+"\tvoid open_callback (SimpleAction action, Variant? parameter) {\n"
+"\t\t\tprint (\"You clicked \\\"Open\\\".\\n\");\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* The main function creates the application and runs it. */\n"
+"int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
 
-#: C/guitar-tuner.js.page:230(input)
-msgid "GJS_PATH=`pwd` gjs guitarTuner.js"
-msgstr "GJS_PATH=`pwd` gjs guitarTuner.js"
+#: C/toolbar.vala.page:33(item/p) C/toolbar_builder.vala.page:150(item/p)
+msgid ""
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Toolbar.html\";>Gtk.Toolbar</"
+"link>"
+msgstr ""
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Toolbar.html\";>Gtk.Toolbar</"
+"link>"
 
-#: C/guitar-tuner.js.page:235(p)
+#: C/toolbar.vala.page:34(item/p) C/toolbar_builder.vala.page:151(item/p)
 msgid ""
-"If you run into problems with the tutorial, compare your code with this "
-"<link href=\"guitar-tuner/guitar-tuner.js\">reference code</link>."
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.ToolButton.html\";>Gtk."
+"Toolbutton</link>"
 msgstr ""
-"ÎÎ ÎÎÏÎÎÎÏÏÏÎÏÎÏÎ ÏÏÎÎÎÎÎÎÏÎ ÎÎ ÏÎ ÎÎÎÎÎÎ, ÏÏÎÎÏÎÎÎÏÎ ÏÎÎ ÎÏÎÎÎÎ ÏÎÏ ÎÎ ÎÏÏÏ "
-"ÏÎÎ <link href=\"guitar-tuner/guitar-tuner.js\">ÎÏÎÎÎÎ ÎÎÎÏÎÏÎÏ</link>."
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.ToolButton.html\";>Gtk."
+"Toolbutton</link>"
 
-#: C/guitar-tuner.cpp.page:8(desc)
+#: C/toolbar.vala.page:35(item/p) C/toolbar_builder.vala.page:152(item/p)
 msgid ""
-"Use GTKmm and GStreamermm to build a simple guitar tuner application for "
-"GNOME. Shows off how to use the interface designer."
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Stock.html\";>Gtk.Stock</"
+"link>"
 msgstr ""
-"ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ Gtk+ ÎÎÎ GStreamer ÎÎÎ ÎÎ ÎÎÏÎÏÎÎÏÎÏÎÏÎ ÎÎÎ ÎÏÎÎ ÎÏÎÏÎÎÎÎ "
-"ÏÏÎÏÎÎÎÏÏÎ ÎÎÎÎÏÎÏ ÎÎÎ ÏÎ GNOME. ÎÎÎÎÎÎÎÎÏÎÎÏÎÏ ÏÎ ÏÏÎÏÎ ÏÎÏ ÏÏÎÎÎÎÏÏÎ "
-"ÎÎÎÏÎÏÏÎ."
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Stock.html\";>Gtk.Stock</"
+"link>"
 
-#: C/guitar-tuner.cpp.page:21(title) C/guitar-tuner.c.page:23(title)
-msgid "Guitar Tuner"
-msgstr "ÎÏÎÏÎÎÎÏÏÎÏ ÎÎÎÎÏÎÏ"
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/toolbar_builder.py.page:48(media) C/toolbar_builder.vala.page:32(media)
+msgctxt "_"
+msgid ""
+"external ref='media/glade_ui.png' md5='baea74fe213bc12ea934f64f6977215a'"
+msgstr ""
+"external ref='media/glade_ui.png' md5='baea74fe213bc12ea934f64f6977215a'"
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/toolbar_builder.py.page:54(media) C/toolbar_builder.vala.page:38(media)
+msgctxt "_"
+msgid ""
+"external ref='media/glade_select_toolbar.png' "
+"md5='f7b5b224050b2e387eb04362fc99df00'"
+msgstr ""
+"external ref='media/glade_select_toolbar.png' "
+"md5='f7b5b224050b2e387eb04362fc99df00'"
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/toolbar_builder.py.page:60(media) C/toolbar_builder.vala.page:44(media)
+msgctxt "_"
+msgid ""
+"external ref='media/glade_toolbar_general.png' "
+"md5='e31daba6e8a3e526aca89d5f1622edaa'"
+msgstr ""
+"external ref='media/glade_toolbar_general.png' "
+"md5='e31daba6e8a3e526aca89d5f1622edaa'"
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/toolbar_builder.py.page:66(media) C/toolbar_builder.vala.page:50(media)
+msgctxt "_"
+msgid ""
+"external ref='media/glade_toolbar_common.png' "
+"md5='d5ec6cc0218ca98e195dbd033feb9ac5'"
+msgstr ""
+"external ref='media/glade_toolbar_common.png' "
+"md5='d5ec6cc0218ca98e195dbd033feb9ac5'"
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/toolbar_builder.py.page:72(media) C/toolbar_builder.vala.page:56(media)
+msgctxt "_"
+msgid ""
+"external ref='media/glade_toolbar_edit.png' "
+"md5='feb1e2b7040d24a4d030f94cf07c81fd'"
+msgstr ""
+"external ref='media/glade_toolbar_edit.png' "
+"md5='feb1e2b7040d24a4d030f94cf07c81fd'"
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/toolbar_builder.py.page:131(media) C/toolbar_builder.vala.page:115(media)
+msgctxt "_"
+msgid ""
+"external ref='media/glade_toolbar_editor.png' "
+"md5='8af65241e5ca47d5494a7b36640e6f1c'"
+msgstr ""
+"external ref='media/glade_toolbar_editor.png' "
+"md5='8af65241e5ca47d5494a7b36640e6f1c'"
+
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/toolbar_builder.py.page:140(media) C/toolbar_builder.vala.page:124(media)
+msgctxt "_"
+msgid ""
+"external ref='media/glade_visible_no.png' "
+"md5='dc6c025aa825f4d772fbd283d6330026'"
+msgstr ""
+"external ref='media/glade_visible_no.png' "
+"md5='dc6c025aa825f4d772fbd283d6330026'"
+
+#: C/toolbar_builder.py.page:7(info/title)
+msgctxt "text"
+msgid "Toolbar created using Glade (Python)"
+msgstr "Î ÎÏÎÎÎÎÎÎÎÎÎÎ ÎÎÎÎÎÏÏÎÎÎÎÎÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ Glade (Python)"
 
-#: C/guitar-tuner.cpp.page:33(p)
-msgid "Basic knowledge of the C++ programming language"
-msgstr "ÎÎÏÎÎÎ ÎÎÏÏÎ ÏÎÏ ÎÎÏÏÏÎÏ ÏÏÎÎÏÎÎÎÎÏÎÏÎÎÏ C++"
+#: C/toolbar_builder.py.page:34(page/title)
+#: C/toolbar_builder.vala.page:22(page/title)
+msgid "Toolbar created using Glade"
+msgstr "Î ÎÏÎÎÎÎ ÎÏÎÎÎÎÎÏÎ ÎÎÎÎÎÏÏÎÎÎÎÎÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ Glade"
 
-#: C/guitar-tuner.cpp.page:47(p)
+#: C/toolbar_builder.py.page:37(page/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."
+"This example is similar to <link xref=\"toolbar.py\"/>, except we use Glade "
+"to create the toolbar in an XML .ui file."
 msgstr ""
-"ÎÏÎÎÎÎÏÎ <gui>GTKmm (ÎÏÎÏ)</gui> ÎÏÏ ÏÎÎ ÎÎÏÏÎÎÎ <gui>C++</gui>, ÎÎÎÎ "
-"<gui>ÎÏÏÎÏÏÎ</gui> ÎÎÎ ÏÏÎÏÎÎÏÏÏÏÎ ÏÎÏ ÎÎÏÏÎÎÎÏÎÎÎÏ ÏÎÏ ÏÏÎÏ ÎÏÏÎÎÎÎÏ ÎÎÎÎÏ "
-"ÏÎÎÎÎÎÏ. ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ ÏÏ ÏÎÎÎÎ ÏÎÏ ÎÏÎÎÏ ÎÎÎ ÏÎÏ ÎÎÏÎÎÏÎÎÏ ÏÎ <file>guitar-"
-"tuner</file>."
+"ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÎÎÎÎÎ ÏÎÏÏÎÎÎÎ ÎÎ <link xref=\"toolbar.py\"/>, ÎÎÏÏÏ ÎÏÏ "
+"ÏÎ ÏÏÎÏÎ Glade ÎÎÎ ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ ÎÏÎÎÎÎÎÎÎÎÎÎÏ ÏÎ ÎÎÎ ÎÏÏÎÎÎ XML .ui."
+
+#: C/toolbar_builder.py.page:42(section/title)
+msgid "Creating the toolbar with Glade"
+msgstr "ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ ÎÏÎÎÎÎÎÎÎÎÎÎÏ ÎÎ Glade"
 
-#: C/guitar-tuner.cpp.page:50(p)
+#: C/toolbar_builder.py.page:43(section/p)
+#: C/toolbar_builder.vala.page:27(page/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."
+"To create the toolbar using the <link href=\"http://glade.gnome.org/\";>Glade "
+"Interface Designer</link>:"
 msgstr ""
-"ÎÎÎÎÎÏÎÎÎÏÎ ÏÏÎ ÏÎ <gui>ÏÏÎÎÎÏÎ ÎÎÏÏÎÏÎÎÏÎ ÏÎÎÎÏÏÎ</gui> ÎÏÎÎÎÏÏÎÎÎ. ÎÏÎÎ "
-"ÎÏÏÎÎÎÎ ÏÎÎÎÎÎ, ÎÏÎÎÎÎÏÎ <em>gstreamer-0.10</em> ÎÏÏ ÏÎ ÎÎÏÏÎ ÎÎÎ "
-"ÏÏÎÏÎÏÎÎÎÏÎ ÏÎÏ ÎÎÎÎÎÎÎÎÎÎÏ GStreamermm ÏÏÎ ÎÏÎÎ ÏÎÏ."
+"ÎÎÎ ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ ÎÏÎÎÎÎÏ ÎÏÎÎÎÎÎÏÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ <link href=\"http://";
+"glade.gnome.org/\">ÏÏÎÎÎÎÏÏÎ ÎÎÎÏÎÏÎÏ Glade</link>:"
 
-#: 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:"
+#: C/toolbar_builder.py.page:47(item/p) C/toolbar_builder.vala.page:31(item/p)
+msgid "Open Glade, and save the file as <file>toolbar_builder.ui</file>"
 msgstr ""
-"ÎÎÏÎÏÏÎ <gui>ÏÎÎÎÏ</gui> ÎÎÎ ÏÎ ÎÏÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎÎÎÎ ÎÎÎ ÏÎÏ. ÎÎÎÎÎÏÎ "
-"<file>src/main.cc</file> ÎÏÏ ÏÎÏ ÎÎÏÏÎÎÎÏ <gui>ÎÏÎÎ</gui> Î <gui>ÎÏÏÎÎÎ</"
-"gui>. ÎÎ ÏÏÎÏÎÎ ÎÎ ÎÎÎÏÎ ÎÎÏÎÎÎ ÎÏÎÎÎÎ ÏÎÏ ÎÎÎÎÎÎÎÎ ÎÎ ÏÎÏ ÎÏÎÎÎÎÏ:"
+"ÎÎÎÎÎÎÎ ÏÎÏ Glade ÎÎÎ ÎÏÎÎÎÎÎÏÏÎ ÏÎÏ ÎÏÏÎÎÎÏ ÏÏ <file>toolbar_builder.ui</"
+"file>"
 
-#: C/guitar-tuner.cpp.page:68(p)
+#: C/toolbar_builder.py.page:48(item/p) C/toolbar_builder.vala.page:32(item/p)
 msgid ""
-"The three <code>#include</code> lines at the top include the <code>config</"
-"code> (useful autoconf build defines), <code>gtkmm</code> (user interface) "
-"and <code>iostream</code> (STL). Functions from these libraries are used in "
-"the rest of the code."
+"<media type=\"image\" src=\"media/glade_ui.png\" width=\"900\"> Screenshot "
+"of Glade ui </media>"
 msgstr ""
-"ÎÎ ÏÏÎÎÏ ÎÏÎÎÎÎÏ <code>#include</code> ÏÏÎÎ ÎÎÏÏÏÎ ÏÎÏÎÎÎÎÎÎÎÎÏÎ ÏÎÎ "
-"<code>config</code> (ÎÏÎÎÎÎ ÏÏÎÏÎÎÎ ÎÎÏÎÏÎÎÏÎ ÏÎÏ autoconf), <code>gtkmm</"
-"code> (ÎÎÎÏÎÏÎ ÏÏÎÏÏÎ) ÎÎÎ <code>iostream</code> (STL). ÎÏÎÎÏÏÎÏÎÎÏ ÎÏÏ "
-"ÎÏÏÎÏ ÏÎÏ ÎÎÎÎÎÎÎÎÎÎÏ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÏÏÎÎ ÏÏÏÎÎÎÏÎ ÎÏÎÎÎÎ."
+"<media type=\"image\" src=\"media/glade_ui.png\" width=\"900\"> ÎÏÎÎÎÎÏÏÏÏÎ "
+"ÎÎÎÏÎÏÎÏ ÏÎÏ Glade </media>"
 
-#: C/guitar-tuner.cpp.page:71(p)
+#: C/toolbar_builder.py.page:53(item/p) C/toolbar_builder.vala.page:37(item/p)
 msgid ""
-"The <code>main</code> function creates a new window by opening a GtkBuilder "
-"file (<file>src/guitar-tuner.ui</file>, defined a few lines above) and then "
-"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."
+"Under <gui>Containers</gui> on the left hand side, right click on the "
+"toolbar icon and select <gui>Add widget as toplevel</gui>."
 msgstr ""
-"Î ÏÏÎÎÏÏÎÏÎ <code>Main</code> ÎÎÎÎÎÏÏÎÎÎ ÎÎÎ ÎÎÎ ÏÎÏÎÎÏÏÎ ÎÎÎÎÎÎÎÏÎÏ ÎÎÎ "
-"ÎÏÏÎÎÎ GtkBuilder (<file>src/guitar-tuner.ui</file>, ÏÎÏ ÎÏÎÎÎÏÎÎ ÎÎÎÎÏ "
-"ÎÏÎÎÎÎÏ ÏÎÏÎÏÎÎÏ), ÎÎÎ ÎÏÎÎÏÎ ÎÎÏÎÎÎÎÎÎÏÎÏ ÏÎ ÏÎ ÏÎÏÎÎÏÏÎ. ÎÎ ÎÏÏÎÎÎ "
-"GtkBuilder ÏÎÏÎÎÏÎÎ ÎÎÎ ÏÎÏÎÎÏÎÏÎ ÎÎÎÏ ÎÎÎÏÎÏÎÏ ÏÏÎÏÏÎ ÎÎÎ ÏÎÏÎ ÏÏÎ "
-"ÏÏÎÎÏÎÎÏÎ ÏÎÏ. ÎÏÎÏÎÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÏÎÎ ÎÏÎÎÎÏÎÎÏÏÎ ÏÎÏ Anjuta ÎÎÎ "
-"ÏÏÎÎÎÎÏÎ ÎÎÎÏÎÏÏÎ ÏÏÎÏÏÎ GtkBuilder."
+"ÎÏÎ <gui>ÏÎÏÎÎÎÏÎÏ</gui> ÏÏÎ ÎÏÎÏÏÎÏÎ, ÎÎÎÎ ÎÎÎÎ ÏÏÎÎ ÎÏÎÎÎÎ ÎÏÎÎÎÎÎÏÎ ÎÎÎ "
+"ÎÏÎÎÎÎÎ <gui>ÏÏÎÏÎÎÎÎ ÎÏÎÏÎÎÎÏ ÏÏÏÏÎÏÎÎÎÏ ÏÏ ÎÎÏÏÎÏÎÏ ÎÏÎÏÎÎÎÏ</gui>."
 
-#: C/guitar-tuner.cpp.page:74(p)
+#: C/toolbar_builder.py.page:54(item/p) C/toolbar_builder.vala.page:38(item/p)
 msgid ""
-"Afterwards it calls a few functions which set up and then run the "
-"application. The <code>kit.run</code> function starts the GTKmm main loop, "
-"which runs the user interface and starts listening for events (like clicks "
-"and key presses)."
+"<media type=\"image\" src=\"media/glade_select_toolbar.png\"> Screenshot of "
+"toolbar icon in Glade ui </media>"
 msgstr ""
-"ÎÎÏÏÏÎÎ ÎÎÎÎÎ ÎÎÎÎÏ ÏÏÎÎÏÏÎÏÎÎÏ ÏÎÏ ÏÏÎÎÎÎÎÏÎ ÎÎÎ ÎÏÎÎÏÎ ÎÎÏÎÎÎÏÎ ÏÎÎ "
-"ÎÏÎÏÎÎÎÎ. Î ÏÏÎÎÏÏÎÏÎ <code>kit.run</code> ÎÎÎÎÎÎ ÏÎÎ ÎÏÏÎÎ ÎÏÏÏÎ ÏÎÏ GTK, "
-"ÏÎÏ ÎÎÏÎÎÎÎ ÏÎ ÎÎÎÏÎÏÎ ÏÏÎÏÏÎ ÎÎÎ ÎÎÎÎÎÎ ÏÎÎ ÎÏÎÎÏÎÏÎ ÎÎÎ ÏÏÎÎÎÎÏÎ (ÏÏÏÏ "
-"ÎÎÎÎ ÎÎÎ ÏÎÏÎÎÎÏÎ ÎÎÏÎÏÎÏÎ)."
 
-#: C/guitar-tuner.cpp.page:84(p) C/guitar-tuner.c.page:90(p)
+#: C/toolbar_builder.py.page:59(item/p) C/toolbar_builder.vala.page:43(item/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."
+"Under the <gui>General</gui> tab on the bottom right, change the <gui>Name</"
+"gui> to <input>toolbar</input> and <gui>Show Arrow</gui> to <gui>No</gui>."
 msgstr ""
-"ÎÎÎ ÏÎÏÎÎÏÎÏÎ ÏÎÏ ÎÎÎÏÎÏÎÏ ÏÏÎÏÏÎ (UI) ÏÎÏÎÎÏÎÏÎÎ ÏÏÎ ÎÏÏÎÎÎ GtkBuilder. ÎÎÎ "
-"ÎÎ ÎÏÎÎÎÏÎÎÏÏÎÎÏÎ ÏÎ ÎÎÎÏÎÏÎ ÏÏÎÏÏÎ, ÎÎÎÎÎÏÎ ÏÎ <file>src/guitar_tuner.ui</"
-"file>. ÎÎ ÎÏÎÎÎÎÏÎ ÏÏÎ ÏÏÎÎÎÎÏÏÎ ÎÎÎÏÎÏÎÏ. ÎÎ ÏÎÏÎÎÏÏÎ ÏÏÎÎÎÎÏÎÏ ÎÎÎÎÎ ÏÏÎ "
-"ÎÎÎÏÏÎÂ ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÎ ÎÎ ÏÏÎÎÎÏÎÎÏ ÏÎÏÏ ÎÎÎÎÎ ÏÏÎ ÎÏÎÏÏÎÏÎ, Î "
-"ÏÎÎÎÏÎ ÎÎ ÏÎ ÎÎÎÎÎÏÎÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÏÏÎ ÎÎÎÎÎ."
+"ÎÏÎÎ ÎÎÏÏÎÎÎ <gui>ÎÎÎÎÎÎ</gui> ÏÏÎ ÎÎÏÏ ÎÎÎÎÎ, ÎÎÎÎÎÎ ÏÎÏ <gui>ÎÎÏÎÎÏÎÏ</"
+"gui> ÏÎ <input>ÎÏÎÎÎÎ ÎÏÎÎÎÎÎÏÎ</input> ÎÎÎ <gui>ÎÎÏÎÎÎÏÎ ÎÎÎÎÏÏ</gui> ÏÎ "
+"<gui>ÏÏÎ</gui>."
 
-#: C/guitar-tuner.cpp.page:99(p)
+#: C/toolbar_builder.py.page:60(item/p) C/toolbar_builder.vala.page:44(item/p)
 msgid ""
-"While the button is still selected, change the <gui>Label</gui> property in "
-"the <gui>Widgets</gui> tab to <gui>E</gui>. This will be the low E string. "
-"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."
+"<media type=\"image\" src=\"media/glade_toolbar_general.png\"> Screenshot of "
+"General tab </media>"
 msgstr ""
-"ÎÏÎÎÏÎÏ ÏÎ ÎÎÏÎÏÎ ÎÎÏÎÎ ÎÏÎÎÎÎÎÎÎÎ, ÎÎÎÎÎÏÎ ÏÎÎ ÎÎÎÏÏÎÏÎ <gui>ÎÏÎÎÎÏÎ</gui> "
-"ÏÏÎÎ ÎÎÏÏÎÎÎ <gui>ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ</gui> ÏÎ <gui>E</gui>. ÎÏÏÎ ÎÎ ÎÎÎÎÎ Î "
-"ÏÎÎÎÎÎ ÏÎÏÎÎ Î. ÎÏÎÏÎÏ ÎÎÎÎÎÏÎ ÏÎÎ ÎÎÎÏÏÎÏÎ <gui>ÏÎÎÎÎ</gui> ÏÎ "
-"<gui>button_E</gui>. ÎÎ ÎÏÏÏ ÏÎ ÏÎÎÎÎ ÎÎ ÎÎÎÏÎÏÎÎÏÎÎ ÏÏÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ "
-"ÎÏÎÏÏÎÏÎ ÏÏÎÎ ÎÏÎÎÎÎ."
 
-#: C/guitar-tuner.cpp.page:103(p)
+#: C/toolbar_builder.py.page:65(item/p) C/toolbar_builder.vala.page:49(item/p)
 msgid ""
-"Repeat the above steps for the other buttons, adding the next 5 strings with "
-"the labels <em>A</em>, <em>D</em>, <em>G</em>, <em>B</em>, and <em>e</em> "
-"and the names <em>button_A</em>, etc."
+"Under the <gui>Common</gui> tab, set <gui>Horizontal Expand</gui> to "
+"<gui>Yes</gui>."
 msgstr ""
-"ÎÏÎÎÎÎÎÎÎÏÎ ÏÎ ÏÎÏÎÏÎÎÏ ÎÎÎÎÏÎ ÎÎÎ ÏÎ ÏÏÏÎÎÎÏÎ ÎÎÏÎÏÎÎ, ÏÏÎÏÎÎÏÏÎ ÏÎÏ "
-"ÎÏÏÎÎÎÎÏ 5 ÏÎÏÎÎÏ ÎÎ ÏÎÏ ÎÏÎÎÎÏÎÏ <em>A</em>, <em>D</em>, <em>G</em>, <em>B</"
-"em>, ÎÎÎ <em>e</em> ÎÎÎ ÏÎ ÎÎÏÎÎÏÎ <em>button_A</em>, ÎÎÏ."
+"ÎÏÎÎ ÎÎÏÏÎÎÎ <gui>ÎÎÎÎÎ</gui>, ÎÏÎÏÏÎ <gui>ÎÏÎÎÏÎÏÎÎ ÎÏÎÎÏÎÏÎ</gui> ÏÎ "
+"<gui>ÎÎÎ</gui>."
 
-#: C/guitar-tuner.cpp.page:106(p)
+#: C/toolbar_builder.py.page:66(item/p) C/toolbar_builder.vala.page:50(item/p)
 msgid ""
-"Save the UI design (by clicking <guiseq><gui>File</gui><gui>Save</gui></"
-"guiseq>) and close the file."
+"<media type=\"image\" src=\"media/glade_toolbar_common.png\"> Screenshot of "
+"Common tab </media>"
 msgstr ""
-"ÎÏÎÎÎÎÎÏÏÏÎ ÏÎ ÏÏÎÎÎÎÏÎ UI (ÏÎÏÏÎÏÎÏ <guiseq><gui>ÎÏÏÎÎÎ</"
-"gui><gui>ÎÏÎÎÎÎÎÏÏÎ</gui></guiseq>) ÎÎÎ ÎÎÎÎÏÏÎ ÏÎ ÎÏÏÎÎÎ."
 
-#: C/guitar-tuner.cpp.page:113(p)
+#: C/toolbar_builder.py.page:71(item/p) C/toolbar_builder.vala.page:55(item/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."
+"Right click on the toolbar in the top right and select <gui>Edit</gui>. The "
+"<gui>Tool Bar Editor</gui> window will appear."
 msgstr ""
-"ÎÎ Gtreamer ÎÎÎÎÎ Î ÏÎÎÎÎÏÏÏ ÏÎÎÏÎÎÏÏÎ ÏÎÏ GNOME â ÎÏÎÏÎÎÏÎ ÎÎ ÏÎ "
-"ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÎÎÎ ÎÎ ÎÎÎÏÎÏÎÎÏÎÎ ÎÏÎÎÏÎÏÎÏÎ ÎÎÎ ÎÏÎÎÎÏÎÎÏÎÎ ÎÎÎÏÎÎ, ÎÏÎÏ, "
-"ÏÎÏÎ ÎÏÏÎÎÎÎÎÏÎÏ ÎÎÎ ÏÎ ÏÎÏÏÎÎÎÎ. ÎÎÏ, ÎÎ ÏÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÎÎ ÎÎ "
-"ÏÎÏÎÎÎÏÎÎ ÎÎÎÎÏ ÏÏÏÎÏÏÎÏÎÏ ÏÏÎÏÎ. ÎÎ GStreamermm ÎÎÎÎÎ ÎÎÎÏ ÏÏÎÎÎÏÎÎÏ C++ "
-"ÏÏÎ GStreamer ÏÎÏ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÎÏ."
+"ÎÎÎÎ ÎÎÎÎ ÏÏÎ ÎÏÎÎÎÎ ÎÏÎÎÎÎÎÏÎ ÏÏÎ ÏÎÎÏ ÎÎÎÎÎ ÎÎÎ ÎÏÎÎÎÎÏÎ <gui>ÎÏÎÎÎÏÎÎÏÎÎ</"
+"gui>. ÎÎ ÏÎÏÎÎÏÏÎ <gui>ÎÏÎÎÎÏÎÎÏÏÎÏ ÎÏÎÎÎÎÏ ÎÏÎÎÎÎÎÏÎ</gui> ÎÎ ÎÎÏÎÎÎÏÏÎÎ."
 
-#: C/guitar-tuner.cpp.page:123(title)
-msgid "Using GStreamermm"
-msgstr "ÎÏÎÏÎ GStreamermm"
+#: C/toolbar_builder.py.page:72(item/p) C/toolbar_builder.vala.page:56(item/p)
+msgid ""
+"<media type=\"image\" src=\"media/glade_toolbar_edit.png\"> Screenshot of "
+"where to right click to edit toolbar. </media>"
+msgstr ""
+"<media type=\"image\" src=\"media/glade_toolbar_edit.png\"> Screenshot of "
+"where to right click to edit toolbar. </media>"
 
-#: C/guitar-tuner.cpp.page:124(p)
+#: C/toolbar_builder.py.page:77(item/p) C/toolbar_builder.vala.page:61(item/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>:"
+"We want to add 5 ToolButtons: New, Open, Undo, Fullscreen and Leave "
+"Fullscreen. First, we will add the New ToolButton."
 msgstr ""
-"ÎÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÏÎ GStreamermm, ÏÏÎÏÎÎ ÎÎ ÎÏÏÎÎÎÏÎÎÎÎÎÎ. ÎÎ ÎÎÎÎÏÎÎ "
-"ÎÏÏÏ ÏÏÎÏÎÎÏÎÎÏÎÏ ÏÎÎ ÏÎÏÎÎÎÏÏ ÎÏÎÎÎÎ ÏÎÏ ÎÏÎÎÎÎ ÎÎÏÎÎ ÏÏÎ ÎÏÎÎÎÎ <code>Gtk::"
-"Main kit(argc, argv);</code> ÏÏÎ <file>main.cc</file>:"
+"ÎÎÎÎÏÎÎ ÎÎ ÏÏÎÏÎÎÏÎÏÎÎ 5 ToolButtons: ÎÎÎ, ÎÎÎÎÎÎÎ, ÎÎÎÎÏÎÏÎ, ÏÎÎÏÎÏ ÎÎÏÎÎ "
+"ÎÎÎ ÎÎÎÎÏÎÎÎÎÏÎ ÏÎÎÏÎÏÏ ÎÎÏÎÎÏ. ÎÏÏÏÎ, ÎÎ ÏÏÎÏÎÎÏÎÏÎÎ ÏÎ ÎÎÎ ToolButton."
 
-#: C/guitar-tuner.cpp.page:126(code)
-#, no-wrap
-msgid "\tGst::init (argc, argv);"
-msgstr "\tGst::init (argc, argv);"
+#: C/toolbar_builder.py.page:80(item/p) C/toolbar_builder.vala.page:64(item/p)
+msgid "Under <gui>Hierarchy</gui> tab, click <gui>Add</gui>."
+msgstr "ÎÏÎÎ ÎÎÏÏÎÎÎ <gui>ÎÎÏÎÏÏÎÎ</gui>, ÎÎÎÎ <gui>ÏÏÎÏÎÎÎÎ</gui>."
+
+#: C/toolbar_builder.py.page:81(item/p) C/toolbar_builder.vala.page:65(item/p)
+msgid "Change the name of the ToolItem to <input>new_button</input>."
+msgstr "ÎÎÎÎÎÎ ÏÎÏ ÎÎÏÎÎÏÎÏ ÏÎÏ ToolItem ÏÎ <input>new_button</input>."
 
-#: C/guitar-tuner.cpp.page:127(p)
+#: C/toolbar_builder.py.page:82(item/p) C/toolbar_builder.vala.page:66(item/p)
 msgid ""
-"While we are on it, also make sure that the <file>gstreamermm.h</file> is "
-"included in <file>main.cc</file> properly."
+"Scroll down and set <gui>Is important</gui> to <gui>Yes</gui>. This will "
+"cause the label of the ToolButton to be shown, when you view the toolbar."
 msgstr ""
-"ÎÎÏ ÎÎÎÎÏÏÎ ÏÎ ÎÏÏÏ, ÎÎÎÎÎÏÎÎÎÏÎ ÎÏÎÏÎÏ ÏÏÎ ÏÎ <file>gstreamermm.h</file> "
-"ÏÎÏÎÎÏÎÏÎÎ ÎÎÏÎÎÎÎÎÎ ÏÏÎ <file>main.cc</file>."
+"ÎÏÎÎÏÎ ÏÏÎÏ ÏÎ ÎÎÏÏ ÎÎÎ ÏÏÎÎÎÏÎ ÏÎÏ <gui>ÎÎÎÎÎ ÏÎÎÎÎÏÎÎÏ</gui> ÏÎ <gui>ÎÎÎ</"
+"gui>. ÎÏÏÏ ÎÎ ÏÏÎÎÎÎÎÏÎÎ ÏÎÎ ÎÏÎÎÎÏÎ ÏÎÏ ToolButton ÎÎ ÎÎÏÎÎÎÏÏÎÎ, ÏÏÎÎ "
+"ÏÏÎÎÎÎÎÏÎ ÏÎ ÎÏÎÎÎÎ ÎÏÎÎÎÎÎÏÎ."
+
+#: C/toolbar_builder.py.page:83(item/p) C/toolbar_builder.vala.page:67(item/p)
+msgid "Enter the <gui>action name</gui>: <input>app.new</input>."
+msgstr "ÎÎÏÎÎÎÏÎ ÏÎ <gui>ÏÎÎÎÎ ÎÎÎÏÎÎÎÎÏ</gui>: <input>app.new</input>."
+
+#: C/toolbar_builder.py.page:84(item/p) C/toolbar_builder.vala.page:68(item/p)
+msgid "Change the <gui>Label</gui> to <input>New</input>."
+msgstr "ÎÎÎÎÎÎ ÏÎÏ <gui>ÎÏÎÎÎÏÎ</gui> ÏÎ <input>New</input>."
 
-#: C/guitar-tuner.cpp.page:131(p)
+#: C/toolbar_builder.py.page:85(item/p) C/toolbar_builder.vala.page:69(item/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:"
+"Select the <gui>New</gui> Stock Id from the drop down menu, or type "
+"<input>gtk-new</input>."
 msgstr ""
-"ÎÎÎ ÎÏÎÎÏÎÎÎÏÎ ÏÎÏ ÏÎÎÏÎÏÎÎÏ ÏÎÏ ÎÎÎÏÎÏÎÏÏÎÏ ÎÎ ÎÏÎÏÎÏÎÎ ÎÎÎ ÎÎÎÎÎÏÎÎÎ ÎÎÎÏÎ "
-"<code>Sound</code>. ÎÎ ÎÎÎÎÏÎÎ ÏÏÎ <file>main.cc</file> ÎÎÎ ÎÎ ÎÏÎÏÎÏÎÏÎÎ "
-"ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÎÏÎÏ, ÎÎÏ ÎÏÏÏ ÏÏÎÎÎÏÏ ÎÎ ÎÎÎÎÏÎ ÎÎ ÏÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÏÎ "
-"ÎÎÏÏÏÎÏÏÏ ÎÏÏÎÎÎ:"
-
-#: C/guitar-tuner.cpp.page:178(p)
-msgid "The code has the following purpose:"
-msgstr "Î ÎÏÎÎÎÎÏ ÎÏÎÎ ÏÎÎ ÏÎÏÎÎÎÏÏ ÏÎÎÏÏ:"
+"ÎÏÎÎÎÎÎ ÏÎÏ <gui>ÎÎÎÏ</gui> Id ÏÎÏÎÎÎÏÎÎÎÎÎÏ ÎÏÏ ÏÎ ÏÏÏÏÏÏÎÎÎÎ ÎÎÎÎÏ, Î "
+"ÏÎÎÎÏÏÎÎÎÎÎÏÏÎ <input>gtk-new</input>."
 
-#: C/guitar-tuner.cpp.page:181(p)
+#: C/toolbar_builder.py.page:87(item/p) C/toolbar_builder.vala.page:71(item/p)
 msgid ""
-"In the constructor, source and sink GStreamer elements (<code>Gst::Element</"
-"code>) are created, and a pipeline element (which will be used as a "
-"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."
+"Repeat the above steps for the remaining ToolButtons, with the following "
+"properties:"
 msgstr ""
-"ÎÏÎÎ ÎÎÏÎÏÎÎÏÎÏÏÎ, ÏÎ ÏÏÎÎÏÎÎÎ ÏÎÎÎÏ ÎÎÎ ÎÎÏÎÎÏ ÏÎÏ GStreamer (<code>Gst::"
-"Element</code>)ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ ÎÎÎ ÎÎÎ ÏÏÎÎÏÎÎÎ ÎÎÎÏÎÏÎÏÏÎÏ (ÏÎ ÎÏÎÎÎ ÎÎ "
-"ÏÏÎÏÎÎÎÏÎÎÎÎÎÎ ÏÏ ÏÎÏÎÎÎÏÎÏ ÎÎÎ ÏÎ ÎÏÎ ÎÎÎÎ ÏÏÎÎÏÎÎÎ). ÎÎÎÎÏÎÎ ÏÎ ÏÎÎÎÎ "
-"\"note\" ÏÏÎ ÎÎÎÏÎÏÎÏÏÎÂ ÎÎÎÎÎÎÎÏÎÎ ÏÎÎ ÏÎÎÎ \"source\" ÎÎÎ ÏÏÎÎÎÎÎÏÎÎ ÏÏÎÎ "
-"ÏÎÎÎ <code>audiotestsrc</code>Â ÎÎÎ ÎÎÎÎÎÎÎÏÎÎ ÏÎÎ ÎÎÎÎÎ \"output\" ÎÎÎ ÏÎÎ "
-"ÏÏÎÎÎÎÎÏÎ ÏÏÎÎ ÎÎÎÎÎ <code>autoaudiosink</code> (ÏÏÎÎÏÎÎÎÎÎÎÎÎ ÎÎÎÎÎÏ ÎÎÏÏÎÏ "
-"ÎÏÎÏ). ÎÏÎÏ ÏÎ ÏÏÎÎÏÎÎÎ ÏÏÎÏÏÎÎÎÏÎ ÏÏÎ ÎÎÎÏÎÏÎÏÏÎ ÎÎÎ ÏÏÎÎÎÎÎÏÎ ÎÎÎÎ, Î "
-"ÏÏÎÎÎÏÏÎ ÎÎÎÎÎ ÎÏÎÎÎÎ ÎÎ ÏÏÎÎÎÎ."
+"ÎÏÎÎÎÎÎÏÎ ÏÏÎ ÏÎÏÎÏÎÎÏ ÎÎÎÎÏÏÎ ÎÎÎ ÏÎ ÏÏÎÎÎÎÏÏÎÎÎÎ ToolButtons, ÎÎ ÏÎÏ "
+"ÏÎÏÎÎÎÏÏ ÎÎÎÏÏÎÏÎÏ:"
+
+#: C/toolbar_builder.py.page:94(td/p) C/toolbar_builder.vala.page:78(td/p)
+msgid "Is important"
+msgstr "ÎÎÎÎÎ ÏÎÎÎÎÏÎÎÏ"
+
+#: C/toolbar_builder.py.page:95(td/p) C/toolbar_builder.vala.page:79(td/p)
+msgid "Action name"
+msgstr "ÎÎÎÎÎ ÎÎÎÏÎÎÎÎÏ"
+
+#: C/toolbar_builder.py.page:97(td/p) C/toolbar_builder.vala.page:81(td/p)
+msgid "Stock Id"
+msgstr "Id ÏÎÏÎÎÎÏÎÎÎÎÎÏ"
+
+#: C/toolbar_builder.py.page:102(td/p) C/toolbar_builder.vala.page:86(td/p)
+msgid "open_button"
+msgstr "open_button"
+
+#: C/toolbar_builder.py.page:103(td/p) C/toolbar_builder.py.page:110(td/p)
+#: C/toolbar_builder.py.page:117(td/p) C/toolbar_builder.py.page:124(td/p)
+#: C/toolbar_builder.vala.page:87(td/p) C/toolbar_builder.vala.page:94(td/p)
+#: C/toolbar_builder.vala.page:101(td/p) C/toolbar_builder.vala.page:108(td/p)
+msgid "Yes"
+msgstr "ÎÎÎ"
+
+#: C/toolbar_builder.py.page:104(td/p) C/toolbar_builder.vala.page:88(td/p)
+msgid "app.open"
+msgstr "app.open"
+
+#: C/toolbar_builder.py.page:105(td/p) C/toolbar_builder.vala.page:89(td/p)
+msgid "Open"
+msgstr "Open"
+
+#: C/toolbar_builder.py.page:106(td/p) C/toolbar_builder.vala.page:90(td/p)
+msgid "gtk-open"
+msgstr "gtk-open"
+
+#: C/toolbar_builder.py.page:109(td/p) C/toolbar_builder.vala.page:93(td/p)
+msgid "undo_button"
+msgstr "undo_button"
+
+#: C/toolbar_builder.py.page:111(td/p) C/toolbar_builder.vala.page:95(td/p)
+msgid "win.undo"
+msgstr "win.undo"
+
+#: C/toolbar_builder.py.page:112(td/p) C/toolbar_builder.vala.page:96(td/p)
+msgid "Undo"
+msgstr "ÎÎÎÎÏÎÏÎ"
+
+#: C/toolbar_builder.py.page:113(td/p) C/toolbar_builder.vala.page:97(td/p)
+msgid "gtk-undo"
+msgstr "gtk-undo"
+
+#: C/toolbar_builder.py.page:116(td/p) C/toolbar_builder.vala.page:100(td/p)
+msgid "fullscreen_button"
+msgstr "fullscreen_button"
+
+#: C/toolbar_builder.py.page:118(td/p) C/toolbar_builder.py.page:125(td/p)
+#: C/toolbar_builder.vala.page:102(td/p) C/toolbar_builder.vala.page:109(td/p)
+msgid "win.fullscreen"
+msgstr "win.fullscreen"
+
+#: C/toolbar_builder.py.page:119(td/p) C/toolbar_builder.vala.page:103(td/p)
+msgid "Fullscreen"
+msgstr "ÎÎÎÏÎÏ ÎÎÏÎÎ"
+
+#: C/toolbar_builder.py.page:120(td/p) C/toolbar_builder.vala.page:104(td/p)
+msgid "gtk-fullscreen"
+msgstr "gtk-fullscreen"
+
+#: C/toolbar_builder.py.page:123(td/p) C/toolbar_builder.vala.page:107(td/p)
+msgid "leave_fullscreen_button"
+msgstr "leave_fullscreen_button"
+
+#: C/toolbar_builder.py.page:126(td/p) C/toolbar_builder.vala.page:110(td/p)
+msgid "Leave Fullscreen"
+msgstr "ÎÎÎÎÎÏ ÎÏÏ ÏÎÎÏÎ ÎÎÏÎÎ"
+
+#: C/toolbar_builder.py.page:127(td/p) C/toolbar_builder.vala.page:111(td/p)
+msgid "gtk-leave-fullscreen"
+msgstr "gtk-leave-fullscreen"
+
+#: C/toolbar_builder.py.page:136(item/p)
+#: C/toolbar_builder.vala.page:120(item/p)
+msgid "Close the <gui>Tool Bar Editor</gui>."
+msgstr "ÎÎÎÎÏÎÎÎ ÏÎÏ <gui>ÎÏÎÎÎÏÎÎÏÏÎ ÎÏÎÎÎÎÏ ÎÏÎÎÎÎÎÏÎ</gui>."
 
-#: C/guitar-tuner.cpp.page:184(p)
+#: C/toolbar_builder.py.page:139(item/p)
 msgid ""
-"<code>start_playing</code> sets the source element to play a particular "
-"frequency and then starts the pipeline so the sound actually starts playing. "
-"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>."
+"When our program will first start, we do not want the <gui>Leave Fullscreen</"
+"gui> ToolButton to be visible, since the application will not be in "
+"fullscreen mode. You can set this in the <gui>Common</gui> tab, by clicking "
+"the <gui>Visible</gui> property to <gui>No</gui>. The ToolButton will still "
+"appear in the interface designer, but will behave correctly when the file is "
+"loaded into your program code. Note that the method <code>show_all()</code> "
+"would override this setting - so in the code we have to use <code>show()</"
+"code> separately on all the elements."
 msgstr ""
-"Î <code>start_playing</code> ÎÏÎÎÎÎ ÏÎ ÏÏÎÎÏÎÎÎ ÏÎÎÎÏ ÎÎ ÎÎÎÏÎÏÎÎÎÎ ÎÎÎ "
-"ÏÏÎÎÎÎÏÎÎÎÎÎ ÏÏÏÎÏÏÎÏÎ ÎÎÎ ÎÏÎÎÏÎ ÎÎÎÎÎÎ ÏÎ ÎÎÎÏÎÏÎÏÏÎ ÏÏÏÎ Î ÎÏÎÏ ÏÏÎÎ "
-"ÏÏÎÎÎÎÏÎÎÏÏÎÏÎ ÎÎ ÎÎÎÎÎÎÏÎÎ ÎÎÎÏÎÏÎÎÏÎÎ. ÎÎÎÏÏ ÎÎÎ ÎÎÎÎÏÎÎ ÎÎ ÎÏÎÏÎÎ ÏÎÎ "
-"ÎÎÎÏÎÎÏÎÎÏ ÎÏÎ ÎÎÎ ÏÎÎÏ, ÎÏÎÎÎÏÎÎ ÎÎÎ ÎÎÎÎ ÏÏÏÎÎÏ ÎÎÎ ÎÎ ÏÏÎÎÎÏÎÏÎÎ ÏÎ "
-"ÎÎÎÏÎÏÎÏÏÎ ÎÎÏÎ ÎÏÏ 200 ms ÎÎÎÏÎÏÎÏ <code>stop_playing</code>."
+"ÎÏÎÎ ÏÎ ÏÏÏÎÏÎÎÎÎ ÎÎÏ ÎÎ ÎÎÎÎÎÎÏÎÎ ÏÏÎÎ ÎÏÏÎ, ÎÎÎ ÎÎÎÎÏÎÎ ÏÎ ToolButton "
+"<gui>ÎÎÎÎÎÏ ÎÏÏ ÏÎÎÏÎ ÎÎÏÎÎ</gui> ÎÎ ÎÎÎÎÎ ÎÏÎÏÏ, ÎÏÎÏ Î ÎÏÎÏÎÎÎÎ ÎÎÎ ÎÎ "
+"ÎÎÎÎÎ ÏÎ ÎÎÎÏÎÏÏÎÎÎ ÏÎÎÏÎÏÏ ÎÎÏÎÎÏ. ÎÏÎÏÎÎÏÎ ÎÎ ÏÎ ÏÏÎÎÎÏÎÏÎ ÏÏÎÎ ÎÎÏÏÎÎÎ "
+"<gui>ÎÎÎÎÎ</gui>, ÎÎ ÎÎÎÎ ÏÏÎÎ ÎÎÎÏÏÎÏÎ <gui>ÎÏÎÏÏ</gui> ÏÎ <gui>ÏÏÎ</gui>. "
+"ÎÎ ToolButton ÎÎ ÎÎÎÎÎÎÎÏÎÎÎ ÎÎ ÎÎÏÎÎÎÎÎÏÎÎ ÏÏÎÎ ÏÏÎÎÎÎÏÏÎ ÎÎÎÏÎÏÎÏ, ÎÎÎÎ ÎÎ "
+"ÏÏÎÏÎÏÎÏÎÏÎÏÎÎ ÏÏÏÏÎ, ÏÏÎÎ ÏÎ ÎÏÏÎÎÎ ÏÎÏÏÏÎÎÏÎÎ ÏÏÎÎ ÎÏÎÎÎÎ ÏÏÎÎÏÎÎÎÎÏÏÏ "
+"ÏÎÏ. ÎÎÎÎÎÏÏÏÎ ÏÏÎ Î ÎÎÎÎÎÎÏ <code>show_all()</code> ÎÎ ÎÎÏÎÎÎÏÎÏÏÎÏÎÎ ÎÏÏÎ "
+"ÏÎ ÏÏÎÎÎÏÎ - ÎÏÏÎ ÏÏÎÎ ÎÏÎÎÎÎ ÏÏÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ <code>show()</code> "
+"ÎÎÏÏÏÎÏÏÎ ÏÎ ÏÎÎ ÏÎ ÏÏÎÎÏÎÎÎ."
 
-#: C/guitar-tuner.cpp.page:189(p)
+#: C/toolbar_builder.py.page:140(item/p)
+#: C/toolbar_builder.vala.page:124(item/p)
 msgid ""
-"In <code>stop_playing</code> which is called when the timeout has elapsed, "
-"the pipeline is stopped and as such there isn't any sound output anymore. As "
-"GStreamermm uses reference counting through the <code>Glib::RefPtr</code> "
-"object, the memory is automatically freed once the <code>Sound</code> class "
-"is destroyed."
+"<media type=\"image\" src=\"media/glade_visible_no.png\"> Setting the "
+"visible property to No </media>"
 msgstr ""
-"ÎÏÎÎ <code>stop_playing</code> ÏÎÏ ÎÎÎÎÎÏÎÎ ÏÏÎÎ Î ÎÎÎÎ ÏÏÏÎÎÏ ÏÎÏÎÏÎÎ, Î "
-"ÎÎÎÏÎÏÎÏÏÎ ÏÏÎÎÎÏÎ ÎÎÎ ÎÏÏÎ ÎÎÎ ÏÏÎÏÏÎÎ ÎÎÎÎÎÎÏ ÎÏÎÏ ÎÎÏÎÎÏ ÏÎÎ. ÎÎÎÏÏ ÏÎ "
-"GStreamermm ÏÏÎÏÎÎÎÏÎÎÎÎ ÎÎÏÏÎÏÎ ÎÎÎÏÎÏÎÏ ÎÎÏÎ ÎÏÏ ÏÎ ÎÎÏÎÎÎÎÎÎÎÎ "
-"<code>Glib::RefPtr</code>, Î ÎÎÎÎÎ ÎÏÏÏÎÎÏÎ ÎÎÎÏÎÎÏÏÎÎÏÎÎ ÎÏÎÎÏ Î ÎÎÎÏÎ "
-"<code>Sound</code> ÎÎÏÎÏÏÏÎÏÎÎ."
 
-#: C/guitar-tuner.cpp.page:197(title)
-msgid "Connecting the signals"
-msgstr "ÎÏÎÎÎÏÎ ÏÎÎÎÏÏÎ"
+#: C/toolbar_builder.py.page:145(item/p)
+#: C/toolbar_builder.vala.page:129(item/p)
+msgid "Save your work, and close Glade."
+msgstr "ÎÏÎÎÎÎÎÏÏÎ ÏÎÏ ÎÏÎÎÏÎÎÏ ÏÎÏ ÎÎÎ ÎÎÎÎÏÎÎÎ ÏÎÏ Glade."
 
-#: C/guitar-tuner.cpp.page:198(p)
+#: C/toolbar_builder.py.page:148(item/p)
+#: C/toolbar_builder.vala.page:132(item/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."
+"The XML file created by Glade is shown below. This is the description of the "
+"toolbar. At the time of this writing, the option to add the class Gtk."
+"STYLE_CLASS_PRIMARY_TOOLBAR in the Glade Interface did not exist. We can "
+"manually add this to the XML file. To do this, add the following XML code at "
+"line 9 of <file>toolbar_builder.ui</file>:"
 msgstr ""
-"ÎÎÎÎÏÎÎ ÎÎ ÏÎÎÎÎÏÎÎ ÏÎÎ ÏÏÏÏÏ ÎÏÎ, ÏÏÎÎ Î ÏÏÎÏÏÎÏ ÏÎÏÎ ÎÎÎ ÎÎÏÎÏÎ. ÎÏÏÏ "
-"ÏÎÎÎÎÎÎÎ ÏÏÎ ÏÏÎÏÎÎ ÎÎ ÏÏÎÎÎÎÎÏÎÎ ÏÏÎ ÏÎÎÎ ÏÎÏ ÎÎÎÎÎÎ ÏÏÎÎ Î ÏÏÎÏÏÎÏ ÏÎÏÎ ÏÎ "
-"ÎÎÏÎÏÎ. ÎÎÎÎÏÎÎ ÎÏÎÏÎÏ ÎÎ ÎÏÏÎÏÎÎ ÏÎÎÏÎÏÎÏÎÎÏ ÏÏÎÎ ÎÎÎÎÏÎÎÎÎ ÏÏÎÎÏÏÎÏÎ ÏÎÎÎ "
-"ÏÏÎÎ ÎÎ ÏÎÎÎÎÎ. ÎÎ GTKmm ÏÎ ÎÎÎÎÎ ÎÏÎÎÏÎ ÎÏÎÏ ÎÎÎÏÏ ÎÏÎÏÎÏÎÎ ÎÏÎÎÎÎ ÎÎ "
-"ÏÏÎÎÎÏÎÏÎÎ ÏÎÎÏÎÏÎÏÎÎÏ ÎÎ ÏÎ ÎÎÎÎÎÎÎÎÎÎ <em>sigc</em>."
+"ÎÎ ÎÎÎÎÎÏÏÎÎÎÎÎÎ ÎÏÏÎÎÎ XML ÎÏÏ ÏÎ Glade ÎÎÏÎÎÎÎÎÏÎÎ ÏÎÏÎÎÎÏÏ. ÎÏÏÎ ÎÎÎÎÎ Î "
+"ÏÎÏÎÎÏÎÏÎ ÏÎÏ ÎÏÎÎÎÎÎÎÎÎÎÎÏ. ÎÎ ÏÏÎÎÎÎ ÏÎÏ ÎÎÎÏÎÏÎÏ, Î ÎÏÎÎÎÎÎ ÏÏÎÏÎÎÎÎÏ "
+"ÏÏÎÎ ÎÎÎÏÎ Gtk.STYLE_CLASS_PRIMARY_TOOLBAR ÏÏÎÎ ÎÎÎÏÎÏÎ Glade ÎÎÎ ÏÏÎÏÏÎÎ. "
+"ÎÏÎÏÎÏÎÎ ÏÎÎÏÎÎÎÎÎÏÎ ÎÎ ÏÎ ÏÏÎÏÎÎÏÎÏÎÎ ÏÏÎ ÎÏÏÎÎÎ XML. ÎÎÎ ÎÎ ÏÎ ÎÎÎÎÏÎÎ, "
+"ÏÏÎÏÎÎÏÏÎ ÏÎÎ ÏÎÏÎÎÎÏÏ ÎÏÎÎÎÎ XML ÏÏÎ ÎÏÎÎÎÎ 9 ÏÎÏ <file>toolbar_builder.ui</"
+"file>:"
 
-#: C/guitar-tuner.cpp.page:203(p)
+#: C/toolbar_builder.py.page:149(item/code)
+#: C/toolbar_builder.vala.page:133(item/code)
+#, no-wrap
 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:"
+"\n"
+"  &lt;style&gt;\n"
+"     &lt;class name=\"primary-toolbar\"/&gt;\n"
+"  &lt;/style&gt;\n"
+"  "
 msgstr ""
-"Î ÏÏÎÎÏÏÎÏÎ ÏÎÏ ÎÎÎÎÎÏÎÎ ÏÏÎÎ Î ÏÏÎÏÏÎÏ ÏÎÏÎ ÎÎÎ ÎÎÏÎÏÎ ÎÏÎÏÎÎ ÎÎ ÎÎÎÎÎ "
-"ÎÏÎÎÏÎ ÎÏÎÎ, ÎÎÎÏÏ ÏÎÎ ÏÎ ÎÎÎÎÎÏÎÏÎÎ ÏÎÎÎÏ ÎÎÎÎÏÎÎ ÏÏÏÎ ÏÏÎ ÎÎÎÎÎÏÎÎÎ ÎÎÎÏÎ:"
+"\n"
+"  &lt;style&gt;\n"
+"     &lt;class name=\"primary-toolbar\"/&gt;\n"
+"  &lt;/style&gt;\n"
+"  "
 
-#: C/guitar-tuner.cpp.page:212(p)
+#: C/toolbar_builder.py.page:154(item/p)
+#: C/toolbar_builder.vala.page:138(item/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."
+"If you do not add this, the program will still work fine. The resulting "
+"toolbar will however look slightly different then the screenshot at the top "
+"of this page."
 msgstr ""
-"ÎÎÎÎÎ ÎÏÎÎ ÏÎ ÎÎÎÎÎÏÎÎÎ ÎÎÎÏÎ ÏÎÏ ÎÏÎÏÎÎÎ ÏÏÎÎ ÎÎ ÏÎÎÎÎÎ ÏÎÏ ÏÏÏÏÎÏ "
-"ÏÏÏÎÏÏÎÏÎÏ. ÎÎ ÎÎÏÎÎÎ ÎÏÎÏÎÎÎÎ ÎÏÎÎÎÎ ÎÎ ÎÏÎÏÎÏÏÎÎÎ ÎÏÎÏÎÏ ÎÎ ÎÏÎÏÎÏÎÏÎÎ ÏÎÎ "
-"ÎÎÎÏÎ ÏÏÎÎÎÏÎ ÏÏÎÎ ÎÎÎÏÎ ÏÏÏÎÏ ÏÏÎÏÎ ÏÎÏ ÏÏÎÎÏÏÎÏÎÏ, ÎÎÎÎ ÎÎ ÏÎ ÎÏÎÏÎÏÎÎ ÎÎ "
-"ÏÏÎÏÎÎÎÏÎÎÎÎÎÎ ÏÏ ÎÏÎÎÏÎ."
+"ÎÎÎ ÎÎÎ ÏÎ ÏÏÎÏÎÎÏÎÏÎ, ÏÎ ÏÏÏÎÏÎÎÎÎ ÎÎ ÎÎÎÎÎÎÎÏÎÎÏÎÎ ÎÎ ÎÎÏÎÎÏÎÎ ÏÏÎÏÎÏÎ. Î "
+"ÏÎÎÎÎÎ ÎÏÎÎÎÎÎÎÎÎÎÎ ÏÎÏÏ ÎÎ ÏÎÎÎÎÏÎÎ ÎÎÎÏÏÎ ÎÎÎÏÎÏÎÏÎÎÎ ÏÏÏÎ ÎÏÏ ÏÎ "
+"ÏÏÎÎÎÎÏÏÏÏÎ ÏÏÎÎ ÎÎÏÏÏÎ ÎÏÏÎÏ ÏÎÏ ÏÎÎÎÎÎÏ."
 
-#: C/guitar-tuner.cpp.page:216(p)
+#: C/toolbar_builder.py.page:157(section/code)
+#: C/toolbar_builder.vala.page:141(page/code)
+#, no-wrap
 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:"
+"&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n"
+"&lt;interface&gt;\n"
+"  &lt;!-- interface-requires gtk+ 3.0 --&gt;\n"
+"  &lt;object class=\"GtkToolbar\" id=\"toolbar\"&gt;\n"
+"    &lt;property name=\"visible\"&gt;True&lt;/property&gt;\n"
+"    &lt;property name=\"can_focus\"&gt;False&lt;/property&gt;\n"
+"    &lt;property name=\"hexpand\"&gt;True&lt;/property&gt;\n"
+"    &lt;property name=\"show_arrow\"&gt;False&lt;/property&gt;\n"
+"    &lt;child&gt;\n"
+"      &lt;object class=\"GtkToolButton\" id=\"new_button\"&gt;\n"
+"        &lt;property name=\"use_action_appearance\"&gt;False&lt;/property&gt;\n"
+"        &lt;property name=\"visible\"&gt;True&lt;/property&gt;\n"
+"        &lt;property name=\"can_focus\"&gt;False&lt;/property&gt;\n"
+"        &lt;property name=\"use_action_appearance\"&gt;False&lt;/property&gt;\n"
+"        &lt;property name=\"is_important\"&gt;True&lt;/property&gt;\n"
+"        &lt;property name=\"action_name\"&gt;app.new&lt;/property&gt;\n"
+"        &lt;property name=\"label\" translatable=\"yes\"&gt;New&lt;/property&gt;\n"
+"        &lt;property name=\"use_underline\"&gt;True&lt;/property&gt;\n"
+"        &lt;property name=\"stock_id\"&gt;gtk-new&lt;/property&gt;\n"
+"      &lt;/object&gt;\n"
+"      &lt;packing&gt;\n"
+"        &lt;property name=\"expand\"&gt;False&lt;/property&gt;\n"
+"        &lt;property name=\"homogeneous\"&gt;True&lt;/property&gt;\n"
+"      &lt;/packing&gt;\n"
+"    &lt;/child&gt;\n"
+"    &lt;child&gt;\n"
+"      &lt;object class=\"GtkToolButton\" id=\"open_button\"&gt;\n"
+"        &lt;property name=\"use_action_appearance\"&gt;False&lt;/property&gt;\n"
+"        &lt;property name=\"visible\"&gt;True&lt;/property&gt;\n"
+"        &lt;property name=\"can_focus\"&gt;False&lt;/property&gt;\n"
+"        &lt;property name=\"use_action_appearance\"&gt;False&lt;/property&gt;\n"
+"        &lt;property name=\"is_important\"&gt;True&lt;/property&gt;\n"
+"        &lt;property name=\"action_name\"&gt;app.open&lt;/property&gt;\n"
+"        &lt;property name=\"label\" translatable=\"yes\"&gt;Open&lt;/property&gt;\n"
+"        &lt;property name=\"use_underline\"&gt;True&lt;/property&gt;\n"
+"        &lt;property name=\"stock_id\"&gt;gtk-open&lt;/property&gt;\n"
+"      &lt;/object&gt;\n"
+"      &lt;packing&gt;\n"
+"        &lt;property name=\"expand\"&gt;False&lt;/property&gt;\n"
+"        &lt;property name=\"homogeneous\"&gt;True&lt;/property&gt;\n"
+"      &lt;/packing&gt;\n"
+"    &lt;/child&gt;\n"
+"    &lt;child&gt;\n"
+"      &lt;object class=\"GtkToolButton\" id=\"undo_button\"&gt;\n"
+"        &lt;property name=\"use_action_appearance\"&gt;False&lt;/property&gt;\n"
+"        &lt;property name=\"visible\"&gt;True&lt;/property&gt;\n"
+"        &lt;property name=\"can_focus\"&gt;False&lt;/property&gt;\n"
+"        &lt;property name=\"use_action_appearance\"&gt;False&lt;/property&gt;\n"
+"        &lt;property name=\"is_important\"&gt;True&lt;/property&gt;\n"
+"        &lt;property name=\"action_name\"&gt;win.undo&lt;/property&gt;\n"
+"        &lt;property name=\"label\" translatable=\"yes\"&gt;Undo&lt;/property&gt;\n"
+"        &lt;property name=\"use_underline\"&gt;True&lt;/property&gt;\n"
+"        &lt;property name=\"stock_id\"&gt;gtk-undo&lt;/property&gt;\n"
+"      &lt;/object&gt;\n"
+"      &lt;packing&gt;\n"
+"        &lt;property name=\"expand\"&gt;False&lt;/property&gt;\n"
+"        &lt;property name=\"homogeneous\"&gt;True&lt;/property&gt;\n"
+"      &lt;/packing&gt;\n"
+"    &lt;/child&gt;\n"
+"    &lt;child&gt;\n"
+"      &lt;object class=\"GtkToolButton\" id=\"fullscreen_button\"&gt;\n"
+"        &lt;property name=\"use_action_appearance\"&gt;False&lt;/property&gt;\n"
+"        &lt;property name=\"visible\"&gt;True&lt;/property&gt;\n"
+"        &lt;property name=\"can_focus\"&gt;False&lt;/property&gt;\n"
+"        &lt;property name=\"use_action_appearance\"&gt;False&lt;/property&gt;\n"
+"        &lt;property name=\"is_important\"&gt;True&lt;/property&gt;\n"
+"        &lt;property name=\"action_name\"&gt;win.fullscreen&lt;/property&gt;\n"
+"        &lt;property name=\"label\" translatable=\"yes\"&gt;Fullscreen&lt;/property&gt;\n"
+"        &lt;property name=\"use_underline\"&gt;True&lt;/property&gt;\n"
+"        &lt;property name=\"stock_id\"&gt;gtk-fullscreen&lt;/property&gt;\n"
+"      &lt;/object&gt;\n"
+"      &lt;packing&gt;\n"
+"        &lt;property name=\"expand\"&gt;False&lt;/property&gt;\n"
+"        &lt;property name=\"homogeneous\"&gt;True&lt;/property&gt;\n"
+"      &lt;/packing&gt;\n"
+"    &lt;/child&gt;\n"
+"    &lt;child&gt;\n"
+"      &lt;object class=\"GtkToolButton\" id=\"leave_fullscreen_button\"&gt;\n"
+"        &lt;property name=\"use_action_appearance\"&gt;False&lt;/property&gt;\n"
+"        &lt;property name=\"can_focus\"&gt;False&lt;/property&gt;\n"
+"        &lt;property name=\"use_action_appearance\"&gt;False&lt;/property&gt;\n"
+"        &lt;property name=\"is_important\"&gt;True&lt;/property&gt;\n"
+"        &lt;property name=\"action_name\"&gt;win.fullscreen&lt;/property&gt;\n"
+"        &lt;property name=\"label\" translatable=\"yes\"&gt;Leave Fullscreen&lt;/property&gt;\n"
+"        &lt;property name=\"use_underline\"&gt;True&lt;/property&gt;\n"
+"        &lt;property name=\"stock_id\"&gt;gtk-leave-fullscreen&lt;/property&gt;\n"
+"      &lt;/object&gt;\n"
+"      &lt;packing&gt;\n"
+"        &lt;property name=\"expand\"&gt;False&lt;/property&gt;\n"
+"        &lt;property name=\"homogeneous\"&gt;True&lt;/property&gt;\n"
+"      &lt;/packing&gt;\n"
+"    &lt;/child&gt;\n"
+"  &lt;/object&gt;\n"
+"&lt;/interface&gt;\n"
+msgstr ""
+"&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n"
+"&lt;interface&gt;\n"
+"  &lt;!-- interface-requires gtk+ 3.0 --&gt;\n"
+"  &lt;object class=\"GtkToolbar\" id=\"toolbar\"&gt;\n"
+"    &lt;property name=\"visible\"&gt;True&lt;/property&gt;\n"
+"    &lt;property name=\"can_focus\"&gt;False&lt;/property&gt;\n"
+"    &lt;property name=\"hexpand\"&gt;True&lt;/property&gt;\n"
+"    &lt;property name=\"show_arrow\"&gt;False&lt;/property&gt;\n"
+"    &lt;child&gt;\n"
+"      &lt;object class=\"GtkToolButton\" id=\"new_button\"&gt;\n"
+"        &lt;property name=\"use_action_appearance\"&gt;False&lt;/property&gt;\n"
+"        &lt;property name=\"visible\"&gt;True&lt;/property&gt;\n"
+"        &lt;property name=\"can_focus\"&gt;False&lt;/property&gt;\n"
+"        &lt;property name=\"use_action_appearance\"&gt;False&lt;/property&gt;\n"
+"        &lt;property name=\"is_important\"&gt;True&lt;/property&gt;\n"
+"        &lt;property name=\"action_name\"&gt;app.new&lt;/property&gt;\n"
+"        &lt;property name=\"label\" translatable=\"yes\"&gt;New&lt;/property&gt;\n"
+"        &lt;property name=\"use_underline\"&gt;True&lt;/property&gt;\n"
+"        &lt;property name=\"stock_id\"&gt;gtk-new&lt;/property&gt;\n"
+"      &lt;/object&gt;\n"
+"      &lt;packing&gt;\n"
+"        &lt;property name=\"expand\"&gt;False&lt;/property&gt;\n"
+"        &lt;property name=\"homogeneous\"&gt;True&lt;/property&gt;\n"
+"      &lt;/packing&gt;\n"
+"    &lt;/child&gt;\n"
+"    &lt;child&gt;\n"
+"      &lt;object class=\"GtkToolButton\" id=\"open_button\"&gt;\n"
+"        &lt;property name=\"use_action_appearance\"&gt;False&lt;/property&gt;\n"
+"        &lt;property name=\"visible\"&gt;True&lt;/property&gt;\n"
+"        &lt;property name=\"can_focus\"&gt;False&lt;/property&gt;\n"
+"        &lt;property name=\"use_action_appearance\"&gt;False&lt;/property&gt;\n"
+"        &lt;property name=\"is_important\"&gt;True&lt;/property&gt;\n"
+"        &lt;property name=\"action_name\"&gt;app.open&lt;/property&gt;\n"
+"        &lt;property name=\"label\" translatable=\"yes\"&gt;Open&lt;/property&gt;\n"
+"        &lt;property name=\"use_underline\"&gt;True&lt;/property&gt;\n"
+"        &lt;property name=\"stock_id\"&gt;gtk-open&lt;/property&gt;\n"
+"      &lt;/object&gt;\n"
+"      &lt;packing&gt;\n"
+"        &lt;property name=\"expand\"&gt;False&lt;/property&gt;\n"
+"        &lt;property name=\"homogeneous\"&gt;True&lt;/property&gt;\n"
+"      &lt;/packing&gt;\n"
+"    &lt;/child&gt;\n"
+"    &lt;child&gt;\n"
+"      &lt;object class=\"GtkToolButton\" id=\"undo_button\"&gt;\n"
+"        &lt;property name=\"use_action_appearance\"&gt;False&lt;/property&gt;\n"
+"        &lt;property name=\"visible\"&gt;True&lt;/property&gt;\n"
+"        &lt;property name=\"can_focus\"&gt;False&lt;/property&gt;\n"
+"        &lt;property name=\"use_action_appearance\"&gt;False&lt;/property&gt;\n"
+"        &lt;property name=\"is_important\"&gt;True&lt;/property&gt;\n"
+"        &lt;property name=\"action_name\"&gt;win.undo&lt;/property&gt;\n"
+"        &lt;property name=\"label\" translatable=\"yes\"&gt;Undo&lt;/property&gt;\n"
+"        &lt;property name=\"use_underline\"&gt;True&lt;/property&gt;\n"
+"        &lt;property name=\"stock_id\"&gt;gtk-undo&lt;/property&gt;\n"
+"      &lt;/object&gt;\n"
+"      &lt;packing&gt;\n"
+"        &lt;property name=\"expand\"&gt;False&lt;/property&gt;\n"
+"        &lt;property name=\"homogeneous\"&gt;True&lt;/property&gt;\n"
+"      &lt;/packing&gt;\n"
+"    &lt;/child&gt;\n"
+"    &lt;child&gt;\n"
+"      &lt;object class=\"GtkToolButton\" id=\"fullscreen_button\"&gt;\n"
+"        &lt;property name=\"use_action_appearance\"&gt;False&lt;/property&gt;\n"
+"        &lt;property name=\"visible\"&gt;True&lt;/property&gt;\n"
+"        &lt;property name=\"can_focus\"&gt;False&lt;/property&gt;\n"
+"        &lt;property name=\"use_action_appearance\"&gt;False&lt;/property&gt;\n"
+"        &lt;property name=\"is_important\"&gt;True&lt;/property&gt;\n"
+"        &lt;property name=\"action_name\"&gt;win.fullscreen&lt;/property&gt;\n"
+"        &lt;property name=\"label\" translatable=\"yes\"&gt;Fullscreen&lt;/property&gt;\n"
+"        &lt;property name=\"use_underline\"&gt;True&lt;/property&gt;\n"
+"        &lt;property name=\"stock_id\"&gt;gtk-fullscreen&lt;/property&gt;\n"
+"      &lt;/object&gt;\n"
+"      &lt;packing&gt;\n"
+"        &lt;property name=\"expand\"&gt;False&lt;/property&gt;\n"
+"        &lt;property name=\"homogeneous\"&gt;True&lt;/property&gt;\n"
+"      &lt;/packing&gt;\n"
+"    &lt;/child&gt;\n"
+"    &lt;child&gt;\n"
+"      &lt;object class=\"GtkToolButton\" id=\"leave_fullscreen_button\"&gt;\n"
+"        &lt;property name=\"use_action_appearance\"&gt;False&lt;/property&gt;\n"
+"        &lt;property name=\"can_focus\"&gt;False&lt;/property&gt;\n"
+"        &lt;property name=\"use_action_appearance\"&gt;False&lt;/property&gt;\n"
+"        &lt;property name=\"is_important\"&gt;True&lt;/property&gt;\n"
+"        &lt;property name=\"action_name\"&gt;win.fullscreen&lt;/property&gt;\n"
+"        &lt;property name=\"label\" translatable=\"yes\"&gt;Leave Fullscreen&lt;/property&gt;\n"
+"        &lt;property name=\"use_underline\"&gt;True&lt;/property&gt;\n"
+"        &lt;property name=\"stock_id\"&gt;gtk-leave-fullscreen&lt;/property&gt;\n"
+"      &lt;/object&gt;\n"
+"      &lt;packing&gt;\n"
+"        &lt;property name=\"expand\"&gt;False&lt;/property&gt;\n"
+"        &lt;property name=\"homogeneous\"&gt;True&lt;/property&gt;\n"
+"      &lt;/packing&gt;\n"
+"    &lt;/child&gt;\n"
+"  &lt;/object&gt;\n"
+"&lt;/interface&gt;\n"
+
+#: C/toolbar_builder.py.page:164(section/p)
+#: C/toolbar_builder.vala.page:143(page/p)
+msgid ""
+"We now create the code below, which adds the toolbar from the file we just "
+"created."
 msgstr ""
-"Î ÎÏÎÎÎÎÏ ÎÎÎ ÏÏÎÎÎÏÎ ÏÏÎ ÏÎÎÎÏÏÎ ÏÏÎÏÎÎ ÎÎ ÏÏÎÏÏÎÎÎÎ ÏÏÎ ÏÏÎÎÏÏÎÏÎ "
-"<code>main()</code> ÎÎÎÏÏÏ ÎÎÏÎ ÏÎ ÎÏÎÎÎÎ <code>builder-&gt;get_widget"
-"(\"main_window\", main_win);</code>:"
+"ÎÏÏÎ ÎÎÎÎÎÏÏÎÎÏÎÎ ÏÎÎ ÏÎÏÎÎÎÏÏ ÎÏÎÎÎÎ, ÏÎÏ ÏÏÎÏÎÎÏÎÎ ÏÎÎ ÎÏÎÎÎÎÎÎÎÎÎÎ ÎÏÏ ÏÎ "
+"ÎÏÏÎÎÎ ÏÎÏ ÎÏÎÎÏ ÎÎÎÎÎÏÏÎÎÏÎÎÎ."
 
-#: C/guitar-tuner.cpp.page:228(p)
+#: C/toolbar_builder.py.page:165(section/code)
+#, no-wrap
 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."
+"from gi.repository import Gtk\n"
+"from gi.repository import Gdk\n"
+"from gi.repository import Gio\n"
+"import sys\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"Toolbar Example\", application=app)\n"
+"        self.set_default_size(400, 200)\n"
+"\n"
+"        # a grid to attach the toolbar (see below)\n"
+"        grid = Gtk.Grid()\n"
+"        self.add(grid)\n"
+"        # we have to show the grid (and therefore the toolbar) with show(),\n"
+"        # as show_all() would show also the buttons in the toolbar that we want to\n"
+"        # be hidden (such as the leave_fullscreen button)\n"
+"        grid.show()\n"
+"\n"
+"        # a builder to add the UI designed with Glade to the grid:\n"
+"        builder = Gtk.Builder()\n"
+"        # get the file (if it is there)\n"
+"        try:\n"
+"            builder.add_from_file(\"toolbar_builder.ui\")\n"
+"        except:\n"
+"            print \"file not found\"\n"
+"            sys.exit()\n"
+"        # and attach it to the grid\n"
+"        grid.attach(builder.get_object(\"toolbar\"), 0, 0, 1, 1)\n"
+"\n"
+"        # two buttons that will be used later in a method\n"
+"        self.fullscreen_button = builder.get_object(\"fullscreen_button\")\n"
+"        self.leave_fullscreen_button = builder.get_object(\"leave_fullscreen_button\")\n"
+"\n"
+"        # create the actions that control the window, connect their signal to a\n"
+"        # callback method (see below), add the action to the window:\n"
+"\n"
+"        # undo\n"
+"        undo_action = Gio.SimpleAction.new(\"undo\", None)\n"
+"        undo_action.connect(\"activate\", self.undo_callback)\n"
+"        self.add_action(undo_action)\n"
+"\n"
+"        # and fullscreen\n"
+"        fullscreen_action = Gio.SimpleAction.new(\"fullscreen\", None)\n"
+"        fullscreen_action.connect(\"activate\", self.fullscreen_callback)\n"
+"        self.add_action(fullscreen_action)\n"
+"\n"
+"    # callback for undo\n"
+"    def undo_callback(self, action, parameter):\n"
+"        print \"You clicked \\\"Undo\\\".\"\n"
+"\n"
+"    # callback for fullscreen\n"
+"    def fullscreen_callback(self, action, parameter):\n"
+"        # check if the state is the same as Gdk.WindowState.FULLSCREEN, which is a bit flag\n"
+"        is_fullscreen = self.get_window().get_state() &amp; Gdk.WindowState.FULLSCREEN != 0\n"
+"        if is_fullscreen:\n"
+"            self.unfullscreen()\n"
+"            self.leave_fullscreen_button.hide()\n"
+"            self.fullscreen_button.show()\n"
+"        else:\n"
+"            self.fullscreen()\n"
+"            self.fullscreen_button.hide()\n"
+"            self.leave_fullscreen_button.show()\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        # show the window - with show() not show_all() because that would show also\n"
+"        # the leave_fullscreen button\n"
+"        win.show()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"        # actions that control the application: create, connect their signal to a\n"
+"        # callback method (see below), add the action to the application\n"
+"\n"
+"        # new\n"
+"        new_action = Gio.SimpleAction.new(\"new\", None)\n"
+"        new_action.connect(\"activate\", self.new_callback)\n"
+"        app.add_action(new_action)\n"
+"\n"
+"        # open\n"
+"        open_action = Gio.SimpleAction.new(\"open\", None)\n"
+"        open_action.connect(\"activate\", self.open_callback)\n"
+"        app.add_action(open_action)\n"
+"\n"
+"    # callback for new\n"
+"    def new_callback(self, action, parameter):\n"
+"        print \"You clicked \\\"New\\\".\"\n"
+"\n"
+"    # callback for open\n"
+"    def open_callback(self, action, parameter):\n"
+"        print \"You clicked \\\"Open\\\".\"\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
 msgstr ""
-"ÎÏÏÏÎ ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ ÏÏÎÎÎÎÏÏÏÏÎ ÏÎÏ ÎÎÎÎÎÏÎÎÎÏ ÎÎÏ ÎÎÎÏÎÏ ÏÎÏ ÎÎÎÎÏÎÎ ÎÎ "
-"ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÏÏÏÎ ÎÎÎ ÎÎÎÏÎÎÏÎÎ ÎÎÎ ÎÎÏÎÎÎÎÏÎ ÎÎÎ ÏÎ ÎÎÏÎÏÎ ÏÏÎ ÎÏÎÎÎ "
-"ÎÎÎÎÏÎÎ ÎÎ ÏÏÎÎÎÎÎÏÎÎ."
+"from gi.repository import Gtk\n"
+"from gi.repository import Gdk\n"
+"from gi.repository import Gio\n"
+"import sys\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"Toolbar Example\", application=app)\n"
+"        self.set_default_size(400, 200)\n"
+"\n"
+"        # a grid to attach the toolbar (see below)\n"
+"        grid = Gtk.Grid()\n"
+"        self.add(grid)\n"
+"        # we have to show the grid (and therefore the toolbar) with show(),\n"
+"        # as show_all() would show also the buttons in the toolbar that we want to\n"
+"        # be hidden (such as the leave_fullscreen button)\n"
+"        grid.show()\n"
+"\n"
+"        # a builder to add the UI designed with Glade to the grid:\n"
+"        builder = Gtk.Builder()\n"
+"        # get the file (if it is there)\n"
+"        try:\n"
+"            builder.add_from_file(\"toolbar_builder.ui\")\n"
+"        except:\n"
+"            print \"file not found\"\n"
+"            sys.exit()\n"
+"        # and attach it to the grid\n"
+"        grid.attach(builder.get_object(\"toolbar\"), 0, 0, 1, 1)\n"
+"\n"
+"        # two buttons that will be used later in a method\n"
+"        self.fullscreen_button = builder.get_object(\"fullscreen_button\")\n"
+"        self.leave_fullscreen_button = builder.get_object(\"leave_fullscreen_button\")\n"
+"\n"
+"        # create the actions that control the window, connect their signal to a\n"
+"        # callback method (see below), add the action to the window:\n"
+"\n"
+"        # undo\n"
+"        undo_action = Gio.SimpleAction.new(\"undo\", None)\n"
+"        undo_action.connect(\"activate\", self.undo_callback)\n"
+"        self.add_action(undo_action)\n"
+"\n"
+"        # and fullscreen\n"
+"        fullscreen_action = Gio.SimpleAction.new(\"fullscreen\", None)\n"
+"        fullscreen_action.connect(\"activate\", self.fullscreen_callback)\n"
+"        self.add_action(fullscreen_action)\n"
+"\n"
+"    # callback for undo\n"
+"    def undo_callback(self, action, parameter):\n"
+"        print \"You clicked \\\"Undo\\\".\"\n"
+"\n"
+"    # callback for fullscreen\n"
+"    def fullscreen_callback(self, action, parameter):\n"
+"        # check if the state is the same as Gdk.WindowState.FULLSCREEN, which is a bit flag\n"
+"        is_fullscreen = self.get_window().get_state() &amp; Gdk.WindowState.FULLSCREEN != 0\n"
+"        if is_fullscreen:\n"
+"            self.unfullscreen()\n"
+"            self.leave_fullscreen_button.hide()\n"
+"            self.fullscreen_button.show()\n"
+"        else:\n"
+"            self.fullscreen()\n"
+"            self.fullscreen_button.hide()\n"
+"            self.leave_fullscreen_button.show()\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        # show the window - with show() not show_all() because that would show also\n"
+"        # the leave_fullscreen button\n"
+"        win.show()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"        # actions that control the application: create, connect their signal to a\n"
+"        # callback method (see below), add the action to the application\n"
+"\n"
+"        # new\n"
+"        new_action = Gio.SimpleAction.new(\"new\", None)\n"
+"        new_action.connect(\"activate\", self.new_callback)\n"
+"        app.add_action(new_action)\n"
+"\n"
+"        # open\n"
+"        open_action = Gio.SimpleAction.new(\"open\", None)\n"
+"        open_action.connect(\"activate\", self.open_callback)\n"
+"        app.add_action(open_action)\n"
+"\n"
+"    # callback for new\n"
+"    def new_callback(self, action, parameter):\n"
+"        print \"You clicked \\\"New\\\".\"\n"
+"\n"
+"    # callback for open\n"
+"    def open_callback(self, action, parameter):\n"
+"        print \"You clicked \\\"Open\\\".\"\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
 
-#: C/guitar-tuner.cpp.page:232(p)
+#: C/toolbar_builder.py.page:170(section/title)
+msgid "Useful methods for Gtk.Builder"
+msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ Gtk.Builder"
+
+#: C/toolbar_builder.py.page:171(section/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."
+"For the useful methods for a Toolbar widget, see <link xref=\"toolbar.py\"/>"
 msgstr ""
-"ÎÎÏÏÏÎÎ, ÎÎÏÏÎÎÏÏÎ ÏÎ ÎÎÏÎÎÎÎÎÎÎÎ ÎÎÏÎÏÎÎÏ ÎÏÏ ÏÎ ÎÎÎÏÎÏÎ ÏÏÎÏÏÎ ÏÎÏ "
-"ÎÎÎÎÎÏÏÎÎÎÎÎÎ ÎÏÏ ÏÎ ÎÏÏÎÎÎ ÎÎÎÏÎÏÎÏ ÏÏÎÏÏÎ. ÎÎ ÎÏÎÎÏÏÎ ÏÏÎ <em>button_E</"
-"em> ÎÎÎÎÎ ÏÎ ÏÎÎÎÎ ÏÎÏ ÎÏÏÎÎÎ ÏÏÎ ÏÏÏÏÎ ÎÎÏÎÏÎ."
+"ÎÎÎ ÏÎÏ ÏÏÎÏÎÎÎÏ ÎÎÎÏÎÎÏÏ ÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÏÎÎÎÎÎÎÎÎÎÎÏ, ÎÎÎÏÎ "
+"<link xref=\"toolbar.py\"/>"
 
-#: C/guitar-tuner.cpp.page:236(p)
+#: C/toolbar_builder.py.page:173(section/p)
+msgid "Gtk.Builder builds an interface from an XML UI definition."
+msgstr "ÎÎ Gtk.Builder ÎÎÏÎÏÎÎÏÎÎÎÎ ÎÎÎ ÎÎÎÏÎÏÎ ÎÏÏ ÎÎÎÎ ÎÏÎÏÎÏ UI XML."
+
+#: C/toolbar_builder.py.page:176(item/p)
 msgid ""
-"Finally we connect the <em>clicked</em> signal. This isn't fully "
-"straightforward because this is done in a fully type-safe way and we "
-"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."
+"<code>add_from_file(filename)</code> loads and parses the given file and "
+"merges it with the current contents of the Gtk.Builder."
 msgstr ""
-"ÎÎÎÎÎÎ ÏÏÎÎÎÎÏÎÎ ÏÎ ÏÎÎÎ <em>ÏÎÏÎÎÎÎÎ</em>. ÎÏÏÏ ÎÎÎ ÎÎÎÎÎ ÏÎÎÏÏÏ ÎÎÏÎÎÎÎÏÏ "
-"ÎÏÎÎÎÎ ÎÏÏÏ ÎÎÎÎÏÎÎ ÎÎ ÎÎÎÎ ÏÎÎÏÎ ÏÏÏÏÎ ÎÏÏÎÎÎÏÏ ÏÏÏÎÏ ÎÎÎ ÏÏÎÎ "
-"ÏÏÎÎÎÎÏÎÎÏÏÎÏÎ ÎÎÎÎÏÎÎ ÎÎ ÏÎÏÎÏÎÏÎÎ ÏÎ ÏÏÏÎÏÏÎÏÎ ÎÎÎ ÏÎ ÎÎÎÎÎÏÎÎÎ ÎÎÏ ÎÎÎÏÎ "
-"ÏÏÎ ÏÎÎÏÎÏÏÎ ÏÎÎÎÏÎÏ. Î <code>sigc::ptr_fun(&amp;on_button_clicked)</code> "
-"ÎÎÎÎÎÏÏÎÎÎ ÎÎÎ <em>ÏÏÎÎÎÏÎ</em> ÎÎÎ ÏÎ ÎÎÎÎÎÎ <code>on_button_clicked</code> "
-"ÏÎÏ ÎÏÎÏÎÎÎ ÏÎÏÎÏÎÎÏ. ÎÎ ÏÎÎ <code>sigc::bind</code> ÎÏÎÏÎÏÎÎ ÎÎ ÏÎÏÎÏÎÏÎÎ "
-"ÏÏÏÏÎÎÏÎ ÎÏÎÏÎÎÏÎ ÏÏÎÎ ÏÏÎÎÎÏÎ ÎÎÎ ÏÎ ÎÏÏÎÎ ÏÎÎ ÏÎÏÎÏÏÏÏÎ ÏÎÏÎÎÎÎ ÏÎ "
-"ÏÏÏÎÏÏÎÏÎ (ÏÏ ÎÎÏÎÎ) ÎÎÎ ÏÎ ÎÎÎÎÎÏÎÎÎ ÎÎÏ ÎÎÎÏÎ."
+"Î <code>add_from_file(filename)</code> ÏÎÏÏÏÎÎÎ ÎÎÎ ÎÎÎÎÏÎÎ ÏÎ ÎÎÎÎÎÎÎÎ "
+"ÎÏÏÎÎÎ ÎÎÎ ÏÎ ÏÏÎÏÏÎÎÏÎÎ ÎÎ ÏÎ ÏÏÎÏÎÎÏÎ ÏÎÏÎÎÏÏÎÎÎÎ ÏÎÏ Gtk.Builder."
 
-#: C/guitar-tuner.cpp.page:243(p)
+#: C/toolbar_builder.py.page:177(item/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."
+"<code>add_from_string(string)</code> parses the given string and merges it "
+"with the current contents of the Gtk.Builder."
 msgstr ""
-"ÎÏÏÎ ÏÎÏ ÏÏÎÎÎÏÎÎÎ ÏÎ ÎÎÏÎÏÎ <em>E</em> ÎÎ ÏÏÎÎÎÏÏÎÏÎÎ ÎÏÎÏÎÏ ÎÎ ÏÏÎÎÎÏÎÏÎÎ "
-"ÏÎ ÎÎÎÎ ÎÎÏÎÏÎÎ ÏÏÎÏÏÎÎ ÎÎ ÏÎÏ ÏÏÏÎÏÏÎÏÎÏ ÏÎÏÏ: 440 ÎÎÎ A, 587.33 ÎÎÎ D, "
-"783.99 ÎÎÎ G, 987.77 ÎÎÎ B ÎÎÎ 1318.5 ÎÎÎ ÏÎÎ ÏÏÎÎÎ Î. ÎÏÏÏ ÎÎÎÎÏÎÎ ÎÎ ÏÎÎ "
-"ÎÎÎÎ ÏÏÏÏÎ, ÎÏÎÎ ÏÎÏÎÏÎÏÎÏ ÎÎÎ ÎÎÎÏÎÏÎÏÎÎÎ ÏÏÏÎÏÏÎÏÎ ÏÏÎÎ ÏÎÎÏÎÏÏÎ."
+"Î <code>add_from_file(string)</code> ÏÎÏÏÏÎÎÎ ÏÎÎ ÎÎÎÎÎÎÎÎ ÏÏÎÎÎÎÎÏÎÎÏÎ ÎÎÎ "
+"ÏÎ ÏÏÎÏÏÎÎÏÎÎ ÎÎ ÏÎ ÏÏÎÏÎÎÏÎ ÏÎÏÎÎÏÏÎÎÎÎ ÏÎÏ Gtk.Builder."
 
-#: C/guitar-tuner.cpp.page:250(p)
+#: C/toolbar_builder.py.page:178(item/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."
+"<code>add_objects_from_file(filename, object_ids)</code> is the same as "
+"<code>add_from_file()</code>, but it loads only the objects with the ids "
+"given in the <code>object_id</code>s list."
 msgstr ""
-"ÎÎÎÏ Î ÎÏÎÎÎÎÏ ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎ ÎÏÎÎÎÎÏ ÏÏÏÎ. ÎÎÎÎ <guiseq><gui>ÎÎÏÎÏÎÎÏÎ</"
-"gui><gui>ÎÎÏÎÏÎÎÏÎ ÎÏÎÎÏ</gui></guiseq> ÎÎÎ ÎÎÎÎÎÏÎÏÎÎÏÎ ÏÏÎ ÏÎÎÏÏÎ ÎÎÎ "
-"ÎÏÎÎÏÎ <guiseq><gui>ÏÏÎÎÎÎÎ</gui><gui>ÏÏÎÎÎÎÎ</gui></guiseq> ÎÎÎ ÎÎÎÏÎÎ ÏÎÏ "
-"ÎÏÎÏÎÎÎÎÏ."
+"Î <code>add_objects_from_file(filename, object_ids)</code> ÎÎÎÎÎ Î ÎÎÎÎ ÎÎ "
+"<code>add_from_file()</code>, ÎÎÎÎ ÏÎÏÏÏÎÎÎ ÎÏÎÎ ÏÎ ÎÎÏÎÎÎÎÎÎÎÎ ÎÎ ÏÎÏ "
+"ÏÎÏÏÏÏÎÏÎÏ ÏÎÏ ÎÎÎÎÎÏÎÎ ÏÏÎ ÎÎÏÏÎ <code>object_id</code>."
 
-#: C/guitar-tuner.cpp.page:256(p)
+#: C/toolbar_builder.py.page:179(item/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>."
+"<code>add_objects_from_string(filename, object_ids)</code> is the same as "
+"<code>add_from_string()</code>, but it loads only the objects with the ids "
+"given in the <code>object_id</code>s list."
 msgstr ""
-"ÎÎ ÎÎÏÎÎÎÏÏÏÎÏÎÏÎ ÏÏÎÎÎÎÎÎÏÎ ÎÎ ÏÎ ÎÎÎÎÎÎ, ÏÏÎÎÏÎÎÎÏÎ ÏÎÎ ÎÏÎÎÎÎ ÏÎÏ ÎÎ ÎÏÏÏ "
-"ÏÎÎ <link href=\"guitar-tuner/guitar-tuner.cc\">ÎÏÎÎÎÎ ÎÎÎÏÎÏÎÏ</link>."
-
-#: C/guitar-tuner.cpp.page:260(title)
-msgid "Further Reading"
-msgstr "ÎÎÏÎÎÏÎÏÏ ÎÎÎÎÎÏÏÎ"
+"Î <code>add_objects_from_string(filename, object_ids)</code> ÎÎÎÎÎ Î ÎÎÎÎ ÎÎ "
+"<code>add_from_string()</code>, ÎÎÎÎ ÏÎÏÏÏÎÎÎ ÎÏÎÎ ÏÎ ÎÎÏÎÎÎÎÎÎÎÎ ÎÎ ÏÎÏ "
+"ÏÎÏÏÏÏÎÏÎÏ ÏÎÏ ÎÎÎÎÎÏÎÎ ÏÏÎ ÎÎÏÏÎ <code>object_id</code>."
 
-#: C/guitar-tuner.cpp.page:261(p)
+#: C/toolbar_builder.py.page:180(item/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>."
+"<code>get_object(object_id)</code> retrieves the widget with the id "
+"<code>object_id</code> from the loaded objects in the builder."
 msgstr ""
-"ÎÎÎÎÎ ÎÏÏ ÏÎ ÏÏÎÎÎÎÏÎ ÏÎÏ ÎÎÏÎÎÎÏÏÎÎÎÎ ÏÎÏÎÏÎÎÏ ÎÎÎÎÎÏÎÏÎÎ ÎÎ ÎÎÏÏÎÎÎÏÎÎÎ "
-"ÏÏÎ <link href=\"http://library.gnome.org/devel/gtkmm-tutorial/stable/";
-"\">ÎÎÎÎÎÎ GTKmm</link> ÏÎÏ ÎÏÎÏÎÏ ÎÎÎÏÏÏÎÎ ÏÎÎÏ ÏÎÏÎÏÏÏÏÎÏÎÏ ÎÎÏÎÎÎÏ ÎÎÎÎÎÎÏ "
-"ÏÏÎÏÎÏ ÏÎÎÏ ÏÎÏ ÎÏÎÎÎÎÏ ÏÎÏ GTKmm. ÎÏÏÏ ÎÏÎÏÎÏ ÎÎÎÎÎÏÎÏÎÏÏÎ ÎÎÎ ÏÎÎ <link "
-"href=\"http://library.gnome.org/devel/gstreamermm/\";>ÏÎÎÎÎÏÎÏÏÎ ÎÎÎÏÎÏÎÏ "
-"GStreamermm</link>."
-
-#: C/guitar-tuner.c.page:7(title)
-msgid "Guitar Tuner (C)"
-msgstr "ÎÏÎÏÎÎÎÏÏÎÏ ÎÎÎÎÏÎÏ (C)"
-
-#: C/guitar-tuner.c.page:35(p)
-msgid "Basic knowledge of the C programming language"
-msgstr "ÎÎÏÎÎÎ ÎÎÏÏÎ ÏÎÏ ÎÎÏÏÏÎÏ ÏÏÎÎÏÎÎÎÎÏÎÏÎÎÏ C"
+"Î <code>get_object(object_id)</code> ÎÎÎÎÏÎ ÏÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÎ ÏÎÎ "
+"ÏÎÏÏÏÏÎÏÎ <code>object_id</code> ÎÏÏ ÏÎ ÏÎÏÏÏÎÎÎÎ ÎÎÏÎÎÎÎÎÎÎÎ ÏÎÏ ÎÎÎÎÏÎ."
 
-#: C/guitar-tuner.c.page:49(p)
+#: C/toolbar_builder.py.page:181(item/p)
+msgid "<code>get_objects()</code> returns all loaded objects."
+msgstr "Î <code>get_objects()</code> ÎÏÎÏÏÏÎÏÎÎ ÏÎÎ ÏÎ ÏÎÏÏÏÎÎÎÎ ÎÎÏÎÎÎÎÎÎÎÎ."
+
+#: C/toolbar_builder.py.page:182(item/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."
+"<code>connect_signals(handler_object)</code> connects the signals to the "
+"methods given in the <code>handler_object</code>. This can be any object "
+"which contains keys or attributes that are called like the signal handler "
+"names given in the interface description, e.g. a class or a dict."
 msgstr ""
-"ÎÏÎÎÎÎÏÎ <gui>Gtk+ (ÎÏÎÏ)</gui> ÎÏÏ ÏÎÎ ÎÎÏÏÎÎÎ <gui>C</gui>, ÏÎÏÎÏÏÎ "
-"<gui>ÏÏÎÎÏÎÎÎ</gui>, ÎÎÎ ÏÏÎÏÎÎÏÏÏÏÎ ÏÎÏ ÎÎÏÏÎÎÎÏÎÎÎÏ ÏÎÏ ÏÏÎÏ ÎÏÏÎÎÎÎÏ "
-"ÎÎÎÎÏ ÏÎÎÎÎÎÏ. ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ ÏÎ <file>guitar-tuner</file> ÏÏ ÏÎÎÎÎ ÏÎÏ "
-"ÎÏÎÎÏ ÎÎÎ ÏÎÏ ÎÎÏÎÎÏÎÎÏ."
+"Î <code>connect_signals(handler_object)</code> ÏÏÎÎÎÎÎ ÏÎ ÏÎÎÎÏÎ ÏÏÎÏ "
+"ÎÎÎÏÎÎÏÏ ÏÎÏ ÎÎÎÎÎÏÎÎ ÏÏÎÎ <code>handler_object</code>. ÎÏÏÏ ÎÏÎÏÎÎ ÎÎ ÎÎÎÎÎ "
+"ÎÏÎÎÎÎÎÏÎÏÎ ÎÎÏÎÎÎÎÎÎÎÎ ÏÎÏÎÎÏÎÎ ÎÎÎÎÎÎÎ Î ÎÎÏÏÎÏÎÎÏÎ ÏÎÏ ÎÎÎÎÏÎÏÎÎ ÏÏÏÏ ÏÎ "
+"ÎÎÏÎÎÏÎ ÏÎÎÏÎÏÏÎ ÏÎÎÎÏÎÏ ÏÎÏ ÎÎÎÎÎÏÎÎ ÏÏÎÎ ÏÎÏÎÎÏÎÏÎ ÎÎÎÏÎÏÎÏ, Ï.Ï. ÎÎÎ "
+"ÎÎÎÏÎ Î ÎÎÎ ÎÎÎÎÎÏ."
 
-#: C/guitar-tuner.c.page:52(p)
+#: C/toolbar_builder.py.page:197(item/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."
+"<link href=\"http://python-gtk-3-tutorial.readthedocs.org/en/latest/builder.";
+"html\">The Python Gtk+ 3 Tutorial - Glade and Gtk.Builder</link>"
 msgstr ""
-"ÎÎÎÎÎÏÎÎÎÏÎ ÏÏÎ ÏÎ <gui>ÏÏÎÎÎÏÎ ÎÎÏÏÎÏÎÎÏÎ ÏÎÎÎÏÏÎ</gui> ÎÎÎÎÎ <gui>ÎÎÎÏÎÏ</"
-"gui>. ÎÏÎÎ ÎÏÏÎÎÎÎ ÏÎÎÎÎÎ, ÎÏÎÎÎÎÏÎ <em>gstreamer-0.10</em> ÎÏÏ ÏÎ ÎÎÏÏÎ ÎÎÎ "
-"ÏÏÎÏÎÏÎÎÎÏÎ ÏÎÏ ÎÎÎÎÎÎÎÎÎÎÏ GStreamer ÏÏÎ ÎÏÎÎ ÏÎÏ."
+"<link href=\"http://python-gtk-3-tutorial.readthedocs.org/en/latest/builder.";
+"html\">ÎÎÎÎÎÎ ÏÎÏ Python Gtk+ 3 - Glade ÎÎÎ Gtk.Builder</link>"
+
+#: C/toolbar_builder.vala.page:7(info/title)
+msgctxt "text"
+msgid "Toolbar created using Glade (Vala)"
+msgstr "Î ÎÏÎÎÎÎÎÎÎÎÎÎ ÎÎÎÎÎÏÏÎÎÎÎÎÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ Glade (Vala)"
 
-#: C/guitar-tuner.c.page:66(p)
+#: C/toolbar_builder.vala.page:25(page/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:"
+"This example is similar to <link xref=\"toolbar.vala\"/>, except we use "
+"Glade to create the toolbar in an XML ui file."
 msgstr ""
-"Î C ÎÎÎÎÎ ÎÎÎ ÎÎÎÎÎÎ ÎÎÎÎÏÏÎÎÎ ÎÎÏÏÏÎ, ÎÏÏÎ ÎÎÎ ÎÎÏÎÎÎÎÎÏÎ ÏÎÏ ÏÎ ÎÏÏÎÎÎ "
-"ÏÎÏÎÎÏÎÎ ÏÎÎÏ ÎÏÎÎÎÎ. Î ÏÎÏÎÏÏÏÏÎÏÎÏ ÎÏÎÎÎÎÏ ÎÎÎÎÎ ÏÏÏÏÏÏÎ ÎÏÎÎÎÎ. ÎÎÏÏÏÎÎÎ "
-"ÎÎÎ (ÎÎÎÏ) ÏÎÏÎÎÏÏÎ ÎÏÏ ÏÎÎ ÏÎÏÎÎÏÎÏÎ ÎÎÎÏÎÏÎÏ ÏÏÎÏÏÎ ÎÎÎ ÏÎ ÎÎÏÎÎÎÎÎÎ. "
-"ÎÎÏÎÏÏÏÏÎÏÎÏ ÎÎÏÏÎÎÎÏÎÎÎÏ ÎÎÎÎÎÏÎÎ ÏÎÎ ÎÎÏÏÂ ÏÏÎÏÏÎÏÎÏÏÎ ÎÏÏÎ ÏÎ ÎÎÏÏÎ ÎÎ "
-"ÎÎÏÎÎÎÎÎÎÎÎÏÎ ÏÎ ÎÎÏÎÎÎ:"
+"ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÎÎÎÎÎ ÏÎÏÏÎÎÎÎ ÎÎ <link xref=\"toolbar.vala\"/>, ÎÎÏÏÏ "
+"ÎÏÏ ÏÎ ÏÏÎÏÎ Glade ÎÎÎ ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ ÎÏÎÎÎÎÏ ÎÏÎÎÎÎÎÏÎ ÏÎ ÎÎÎ ÎÏÏÎÎÎ XML ui."
 
-#: C/guitar-tuner.c.page:73(p)
+#: C/toolbar_builder.vala.page:123(item/p)
 msgid ""
-"The <code>create_window</code> function creates a new window by opening a "
-"GtkBuilder file (<file>src/guitar-tuner.ui</file>, defined a few lines "
-"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."
+"When our program will first start, we don't want the <gui>Leave Fullscreen</"
+"gui> ToolButton to be visible, since the application will not be in "
+"fullscreen mode. You can set this in the <gui>Common</gui> tab, by clicking "
+"the <gui>Visible</gui> property to <gui>No</gui>. The ToolButton will still "
+"appear in the interface designer, but will behave correctly when the file is "
+"loaded into your program code."
 msgstr ""
-"Î ÏÏÎÎÏÏÎÏÎ <code>create_window</code> ÎÎÎÎÎÏÏÎÎÎ ÎÎÎ ÎÎÎ ÏÎÏÎÎÏÏÎ "
-"ÎÎÎÎÎÎÎÏÎÏ ÎÎÎ ÎÏÏÎÎÎ GtkBuilder (<file>src/guitar-tuner.ui</file>, ÏÎÏ "
-"ÎÏÎÎÎÏÎÎ ÎÎÎÎÏ ÎÏÎÎÎÎÏ ÏÎÏÎÏÎÎÏ), ÏÏÎÎÎÎÎÏÎÏ ÏÎ ÏÎÎÎÏÎ ÏÎÏ ÎÎÎ ÎÏÎÎÏÎ "
-"ÎÎÏÎÎÎÎÎÎÏÎÏ ÏÎ ÏÎ ÏÎÏÎÎÏÏÎ. ÎÏÏÏ ÏÎ ÎÏÏÎÎÎ GtkBuilder ÏÎÏÎÎÏÎÎ ÎÎÎ "
-"ÏÎÏÎÎÏÎÏÎ ÎÎÎÏ ÎÎÎÏÎÏÎÏ ÏÏÎÏÏÎ ÎÎÎ ÏÎÏÎ ÏÏÎ ÏÏÎÎÏÎÎÏÎ ÏÎÏ. ÎÏÎÏÎÎÏÎ ÎÎ "
-"ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÏÎÎ ÎÏÎÎÎÏÎÎÏÏÎ ÏÎÏ Anjuta ÎÎÎ ÏÏÎÎÎÎÏÎ ÎÎÎÏÎÏÏÎ ÏÏÎÏÏÎ "
-"GtkBuilder."
+"ÎÏÎÎ ÏÎ ÏÏÏÎÏÎÎÎÎ ÎÎÏ ÎÎ ÎÎÎÎÎÎÏÎÎ ÏÏÎÎ ÎÏÏÎ, ÎÎÎ ÎÎÎÎÏÎÎ ÏÎ ToolButton "
+"<gui>ÎÎÎÎÎÏ ÎÏÏ ÏÎÎÏÎ ÎÎÏÎÎ</gui> ÎÎ ÎÎÎÎÎ ÎÏÎÏÏ, ÎÏÎÏ Î ÎÏÎÏÎÎÎÎ ÎÎÎ ÎÎ "
+"ÎÎÎÎÎ ÏÎ ÎÎÎÏÎÏÏÎÎÎ ÏÎÎÏÎÏÏ ÎÎÏÎÎÏ. ÎÏÎÏÎÎÏÎ ÎÎ ÏÎ ÏÏÎÎÎÏÎÏÎ ÏÏÎÎ ÎÎÏÏÎÎÎ "
+"<gui>ÎÎÎÎÎ</gui>, ÎÎ ÎÎÎÎ ÏÏÎÎ ÎÎÎÏÏÎÏÎ <gui>ÎÏÎÏÏ</gui> ÏÎ <gui>ÏÏÎ</gui>. "
+"ÎÎ ToolButton ÎÎ ÎÎÎÎÎÎÎÏÎÎÎ ÎÎ ÎÎÏÎÎÎÎÎÏÎÎ ÏÏÎÎ ÏÏÎÎÎÎÏÏÎ ÎÎÎÏÎÏÎÏ, ÎÎÎÎ ÎÎ "
+"ÏÏÎÏÎÏÎÏÎÏÎÏÎÎ ÏÏÏÏÎ, ÏÏÎÎ ÏÎ ÎÏÏÎÎÎ ÏÎÏÏÏÎÎÏÎÎ ÏÏÎÎ ÎÏÎÎÎÎ ÏÏÎÎÏÎÎÎÎÏÏÏ ÏÎÏ."
 
-#: C/guitar-tuner.c.page:122(p)
+#: C/toolbar_builder.vala.page:144(page/code)
+#, no-wrap
 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:"
+"/* This is the Window */\n"
+"class MyWindow : Gtk.ApplicationWindow {\n"
+"\n"
+"\t/* Declare these two ToolButtons, as we will get them\n"
+"\t * from the ui file (see lines 32 and 33), so we can\n"
+"\t * hide() and show() them as needed.*/\n"
+"\tGtk.ToolButton fullscreen_button;\n"
+"\tGtk.ToolButton leave_fullscreen_button;\n"
+"\n"
+"\t/* Contstructor */\n"
+"\tinternal MyWindow (MyApplication app) {\n"
+"\t\tObject (application: app, title: \"Toolbar Example\");\n"
+"\n"
+"\t\tthis.set_default_size (400, 200);\n"
+"\t\tvar grid = new Gtk.Grid ();\n"
+"\t\tthis.add (grid);\n"
+"\t\tgrid.show ();\n"
+"\n"
+"\t\t/* add the toolbar from the ui file */\n"
+"\t\tvar builder = new Gtk.Builder ();\n"
+"\t\ttry {\n"
+"\t\t\tbuilder.add_from_file (\"toolbar_builder.ui\");\n"
+"\t\t}\n"
+"\t\t/* Handle the exception */\n"
+"\t\tcatch (Error e) {\n"
+"\t\t\terror (\"Unable to load file: %s\", e.message);\n"
+"\t\t}\n"
+"\n"
+"\t\tgrid.attach (builder.get_object (\"toolbar\") as Gtk.Toolbar, 0, 0, 1, 1);\n"
+"\n"
+"\t\t/* get these objects from the ui file so we can toggle between them */\n"
+"\t\tfullscreen_button = builder.get_object (\"fullscreen_button\") as Gtk.ToolButton;\n"
+"\t\tleave_fullscreen_button = builder.get_object (\"leave_fullscreen_button\") as Gtk.ToolButton;\n"
+"\n"
+"\t\t/* create the \"undo\" window action action */\n"
+"\t\tvar undo_action = new SimpleAction (\"undo\", null);\n"
+"\t\tundo_action.activate.connect (undo_callback);\n"
+"\t\tthis.add_action (undo_action);\n"
+"\n"
+"\t\t/* create the \"fullscreen\" window action */\n"
+"\t\tvar fullscreen_action = new SimpleAction (\"fullscreen\", null);\n"
+"\t\tfullscreen_action.activate.connect (fullscreen_callback);\n"
+"\t\tthis.add_action (fullscreen_action);\n"
+"\t}\n"
+"\n"
+"\tvoid undo_callback (SimpleAction simple, Variant? parameter) {\n"
+"\t\t\tprint (\"You clicked \\\"Undo\\\".\\n\");\n"
+"\t}\n"
+"\n"
+"\tvoid fullscreen_callback (SimpleAction simple, Variant? parameter) {\n"
+"\t\tif ((this.get_window ().get_state () &amp; Gdk.WindowState.FULLSCREEN) != 0) {\n"
+"\t\t\tthis.unfullscreen ();\n"
+"\t\t\tleave_fullscreen_button.hide ();\n"
+"\t\t\tfullscreen_button.show ();\n"
+"\t\t}\n"
+"\t\telse {\n"
+"\t\t\tthis.fullscreen ();\n"
+"\t\t\tfullscreen_button.hide ();\n"
+"\t\t\tleave_fullscreen_button.show ();\n"
+"\t\t}\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* This is the application */\n"
+"class MyApplication : Gtk.Application {\n"
+"\tprotected override void activate () {\n"
+"\t\tnew MyWindow (this).show ();\n"
+"\t}\n"
+"\n"
+"\tprotected override void startup () {\n"
+"\t\tbase.startup ();\n"
+"\n"
+"\t\t/* Create the \"new\" action and add it to the app*/\n"
+"\t\tvar new_action = new SimpleAction (\"new\", null);\n"
+"\t\tnew_action.activate.connect (new_callback);\n"
+"\t\tthis.add_action (new_action);\n"
+"\n"
+"\t\t/* Create the \"open\" action, and add it to the app */\n"
+"\t\tvar open_action = new SimpleAction (\"open\", null);\n"
+"\t\topen_action.activate.connect (open_callback);\n"
+"\t\tthis.add_action (open_action);\n"
+"\n"
+"\t\t/* You could also add the action to the app menu\n"
+"\t\t * if you wanted to.\n"
+"\t\t */\n"
+"\t\t//var menu = new Menu ();\n"
+"\t\t//menu.append (\"New\", \"app.new\");\n"
+"\t\t//this.app_menu = menu;\n"
+"\t}\n"
+"\n"
+"\tvoid new_callback (SimpleAction action, Variant? parameter) {\n"
+"\t\tprint (\"You clicked \\\"New\\\".\\n\");\n"
+"\t}\n"
+"\n"
+"\tvoid open_callback (SimpleAction action, Variant? parameter) {\n"
+"\t\t\tprint (\"You clicked \\\"Open\\\".\\n\");\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* The main function creates the application and runs it. */\n"
+"int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
 msgstr ""
-"ÎÎÎ ÎÎ ÏÎ ÎÎÎÎÏÎ ÎÏÏÏ, ÎÎÎÎÎÏÎ ÏÎ <file>main.c</file>, ÎÏÎÎÏÎÏ ÎÎÎÎÏÏÏ ÎÎÎ "
-"ÏÎ ÎÏÏÎÎÎ ÏÎÏ ÎÎÎÏÎÏÎÏ ÏÏÎÏÏÎ. ÎÎÎÎÎÎÎÏÎ ÏÏÎÎ ÎÎÏÏÎÎÎ <gui>ÏÎÎÎÏÎ</gui> ÏÎÏ "
-"ÎÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÎÎÎ ÎÎ ÎÏÎÏÎÏÎ ÏÎ ÏÎÎÎÎ ÏÎÏ ÏÎÎÎÏÎÏ. ÎÏÏÎ ÏÎÏÏÎ ÏÎ "
-"ÎÏÎÎÎÎ ÏÏÎÏ ÎÎÏÎÏÎ ÎÏÎÏÎÎ ÏÎ ÏÎÎÎ <gui>ÏÎÏÎÎÎÎÎ</gui> ÎÎÎ ÏÏÏÎÏÎ ÏÎÎ ÏÏÎ "
-"ÏÎÎÎÎÎ ÎÏÏÎÎÎ ÏÎ ÎÎÎ ÎÎÏÎ ÏÎÏ ÎÎÎÎÎ ÎÎÏ ÎÏÏ ÎÎÎÎ ÏÏÎÎÏÏÎÏÎ. Î ÎÎÏÎÎÏÎÎÏ "
-"ÎÏÎÎÎÎÏ ÎÎ ÏÏÎÏÏÎÎÎÎ ÏÏÎ ÏÎÎÎÎÎ ÎÏÏÎÎÎ:"
+"/* This is the Window */\n"
+"class MyWindow : Gtk.ApplicationWindow {\n"
+"\n"
+"\t/* Declare these two ToolButtons, as we will get them\n"
+"\t * from the ui file (see lines 32 and 33), so we can\n"
+"\t * hide() and show() them as needed.*/\n"
+"\tGtk.ToolButton fullscreen_button;\n"
+"\tGtk.ToolButton leave_fullscreen_button;\n"
+"\n"
+"\t/* Contstructor */\n"
+"\tinternal MyWindow (MyApplication app) {\n"
+"\t\tObject (application: app, title: \"Toolbar Example\");\n"
+"\n"
+"\t\tthis.set_default_size (400, 200);\n"
+"\t\tvar grid = new Gtk.Grid ();\n"
+"\t\tthis.add (grid);\n"
+"\t\tgrid.show ();\n"
+"\n"
+"\t\t/* add the toolbar from the ui file */\n"
+"\t\tvar builder = new Gtk.Builder ();\n"
+"\t\ttry {\n"
+"\t\t\tbuilder.add_from_file (\"toolbar_builder.ui\");\n"
+"\t\t}\n"
+"\t\t/* Handle the exception */\n"
+"\t\tcatch (Error e) {\n"
+"\t\t\terror (\"Unable to load file: %s\", e.message);\n"
+"\t\t}\n"
+"\n"
+"\t\tgrid.attach (builder.get_object (\"toolbar\") as Gtk.Toolbar, 0, 0, 1, 1);\n"
+"\n"
+"\t\t/* get these objects from the ui file so we can toggle between them */\n"
+"\t\tfullscreen_button = builder.get_object (\"fullscreen_button\") as Gtk.ToolButton;\n"
+"\t\tleave_fullscreen_button = builder.get_object (\"leave_fullscreen_button\") as Gtk.ToolButton;\n"
+"\n"
+"\t\t/* create the \"undo\" window action action */\n"
+"\t\tvar undo_action = new SimpleAction (\"undo\", null);\n"
+"\t\tundo_action.activate.connect (undo_callback);\n"
+"\t\tthis.add_action (undo_action);\n"
+"\n"
+"\t\t/* create the \"fullscreen\" window action */\n"
+"\t\tvar fullscreen_action = new SimpleAction (\"fullscreen\", null);\n"
+"\t\tfullscreen_action.activate.connect (fullscreen_callback);\n"
+"\t\tthis.add_action (fullscreen_action);\n"
+"\t}\n"
+"\n"
+"\tvoid undo_callback (SimpleAction simple, Variant? parameter) {\n"
+"\t\t\tprint (\"You clicked \\\"Undo\\\".\\n\");\n"
+"\t}\n"
+"\n"
+"\tvoid fullscreen_callback (SimpleAction simple, Variant? parameter) {\n"
+"\t\tif ((this.get_window ().get_state () &amp; Gdk.WindowState.FULLSCREEN) != 0) {\n"
+"\t\t\tthis.unfullscreen ();\n"
+"\t\t\tleave_fullscreen_button.hide ();\n"
+"\t\t\tfullscreen_button.show ();\n"
+"\t\t}\n"
+"\t\telse {\n"
+"\t\t\tthis.fullscreen ();\n"
+"\t\t\tfullscreen_button.hide ();\n"
+"\t\t\tleave_fullscreen_button.show ();\n"
+"\t\t}\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* This is the application */\n"
+"class MyApplication : Gtk.Application {\n"
+"\tprotected override void activate () {\n"
+"\t\tnew MyWindow (this).show ();\n"
+"\t}\n"
+"\n"
+"\tprotected override void startup () {\n"
+"\t\tbase.startup ();\n"
+"\n"
+"\t\t/* Create the \"new\" action and add it to the app*/\n"
+"\t\tvar new_action = new SimpleAction (\"new\", null);\n"
+"\t\tnew_action.activate.connect (new_callback);\n"
+"\t\tthis.add_action (new_action);\n"
+"\n"
+"\t\t/* Create the \"open\" action, and add it to the app */\n"
+"\t\tvar open_action = new SimpleAction (\"open\", null);\n"
+"\t\topen_action.activate.connect (open_callback);\n"
+"\t\tthis.add_action (open_action);\n"
+"\n"
+"\t\t/* You could also add the action to the app menu\n"
+"\t\t * if you wanted to.\n"
+"\t\t */\n"
+"\t\t//var menu = new Menu ();\n"
+"\t\t//menu.append (\"New\", \"app.new\");\n"
+"\t\t//this.app_menu = menu;\n"
+"\t}\n"
+"\n"
+"\tvoid new_callback (SimpleAction action, Variant? parameter) {\n"
+"\t\tprint (\"You clicked \\\"New\\\".\\n\");\n"
+"\t}\n"
+"\n"
+"\tvoid open_callback (SimpleAction action, Variant? parameter) {\n"
+"\t\t\tprint (\"You clicked \\\"Open\\\".\\n\");\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* The main function creates the application and runs it. */\n"
+"int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
 
-#: C/guitar-tuner.c.page:130(p)
-msgid ""
-"This signal handler has two arguments: a pointer to the <code>GtkWidget</"
-"code> that called the function (in our case, always a <code>GtkButton</"
-"code>), and a pointer to some \"user data\" that you can define, but which "
-"we won't be using here. (You can set the user data by calling "
-"<code>gtk_builder_connect_signals</code>; it is normally used to pass a "
-"pointer to a data structure that you might need to access inside the signal "
-"handler.)"
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/tooltip.py.page:22(media)
+msgctxt "_"
+msgid "external ref='media/tooltip.png' md5='6950da5f4444aa941ecc2f0fc5951d52'"
 msgstr ""
-"ÎÏÏÏÏ Î ÏÎÎÏÎÏÏÎÏ ÏÎÎÎÏÎÏ ÎÏÎÎ ÎÏÎ ÎÏÎÏÎÎÏÎ: ÎÎÎ ÎÎÎÎÏÎ ÏÏÎ <code>GtkWidget</"
-"code> ÏÎÏ ÎÎÎÎÏÎ ÏÎ ÏÏÎÎÏÏÎÏÎ (ÏÏÎÎ ÏÎÏÎÏÏÏÏÎ ÎÎÏ, ÏÎÎÏÎÏÎ ÎÎÎ "
-"<code>GtkButton</code>) ÎÎÎ ÎÎÎ ÎÎÎÎÏÎ ÏÏÎ ÎÎÏÎÎÎ \"ÎÎÎÎÎÎÎÎ ÏÏÎÏÏÎ\" ÏÎÏ "
-"ÎÏÎÏÎÎÏÎ ÎÎ ÎÏÎÏÎÏÎ, ÎÎÎÎ ÏÎ ÎÏÎÎÎ ÎÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÎÏ. (ÎÏÎÏÎÎÏÎ ÎÎ "
-"ÎÏÎÏÎÏÎ ÏÎ ÎÎÎÎÎÎÎÎ ÏÏÎÏÏÎ ÎÎÎÏÎÏÎÏ <code>gtk_builder_connect_signals</"
-"code>; ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÎÎÎÎÎÎÎÎ ÎÎÎ ÏÎ ÏÎÏÎÏÎÎ ÎÎÏÏ ÎÎÎÎÏÎ ÏÎ ÎÎÎ ÎÎÎÎ "
-"ÎÎÎÎÎÎÎÏÎ ÏÎÏ ÎÏÏÏ ÏÏÎÎÎÏÏÎÎÏÎ ÎÎ ÏÏÎÏÏÎÎÎÏÎÏÎ ÏÏÎ ÏÎÎÏÎÏÏÎ ÏÎÎÎÏÎÏ.)"
+"external ref='media/tooltip.png' md5='6950da5f4444aa941ecc2f0fc5951d52'"
 
-#: C/guitar-tuner.c.page:148(p)
-msgid ""
-"Insert the following line into <file>main.c</file>, just below the <code><!"
-"[CDATA[#include <gtk/gtk.h>]]></code> line:"
+#: C/tooltip.py.page:18(info/desc)
+msgid "Add tips to your widgets"
+msgstr "ÎÏÎÏÎÎÏÏÎ ÏÏÎÎÎÏÎÎÏ ÏÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÏÎÏ"
+
+#: C/tooltip.py.page:21(page/title) C/tutorial.py.page:126(steps/title)
+msgid "Tooltip"
+msgstr "ÎÏÎÎÎÏÎÎ ÎÎÏÎÎÏ"
+
+#: C/tooltip.py.page:23(page/p)
+msgid "A toolbar with a tooltip (with an image) for a button."
 msgstr ""
-"ÎÎÏÎÎÎÏÎ ÏÎÎ ÏÎÏÎÎÎÏÏ ÎÏÎÎÎÎ ÏÏÎ <file>main.c</file>, ÎÎÏÎÎÏÏ ÎÎÏÏ ÎÏÏ ÏÎ "
-"ÎÏÎÎÎÎ <code><![CDATA[#include <gtk/gtk.h>]]></code>:"
+"ÎÎÎ ÎÏÎÎÎÎÎÎÎÎÎÎ ÎÎ ÎÎÎ ÏÏÎÎÎÏÎÎ ÎÎÏÎÎÏ (ÎÎ ÎÎÎ ÎÎÎÏÎÎ) ÎÎÎ ÎÎÎ ÎÎÏÎÏÎ."
 
-#: C/guitar-tuner.c.page:150(p)
+#: C/tooltip.py.page:29(section/code)
+#, no-wrap
 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:"
+"from gi.repository import Gtk\n"
+"from gi.repository import Gdk\n"
+"from gi.repository import Gio\n"
+"import sys\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"Toolbar with Tooltips Example\", application=app)\n"
+"        self.set_default_size(400, 200)\n"
+"\n"
+"        grid = Gtk.Grid()\n"
+"\n"
+"        toolbar = self.create_toolbar()\n"
+"        toolbar.set_hexpand(True)\n"
+"        toolbar.show()\n"
+"\n"
+"        grid.attach(toolbar, 0, 0, 1, 1)\n"
+"\n"
+"        self.add(grid)\n"
+"\n"
+"        undo_action = Gio.SimpleAction.new(\"undo\", None)\n"
+"        undo_action.connect(\"activate\", self.undo_callback)\n"
+"        self.add_action(undo_action)\n"
+"\n"
+"        fullscreen_action = Gio.SimpleAction.new(\"fullscreen\", None)\n"
+"        fullscreen_action.connect(\"activate\", self.fullscreen_callback)\n"
+"        self.add_action(fullscreen_action)\n"
+"\n"
+"    def create_toolbar(self):\n"
+"        toolbar = Gtk.Toolbar()\n"
+"        toolbar.get_style_context().add_class(Gtk.STYLE_CLASS_PRIMARY_TOOLBAR);\n"
+"\n"
+"        # button for the \"new\" action\n"
+"        new_button = Gtk.ToolButton.new_from_stock(Gtk.STOCK_NEW)\n"
+"        # with a tooltip with a given text        \n"
+"        new_button.set_tooltip_text(\"Create a new file\")\n"
+"        new_button.set_is_important(True)\n"
+"        toolbar.insert(new_button, 0)\n"
+"        new_button.show()\n"
+"        new_button.set_action_name(\"app.new\")\n"
+"\n"
+"        # button for the \"open\" action\n"
+"        open_button = Gtk.ToolButton.new_from_stock(Gtk.STOCK_OPEN)\n"
+"        # with a tooltip with a given text in the Pango markup language        \n"
+"        open_button.set_tooltip_markup(\"Open an &lt;i&gt;existing&lt;/i&gt; file\")\n"
+"        open_button.set_is_important(True)\n"
+"        toolbar.insert(open_button, 1)\n"
+"        open_button.show()\n"
+"        open_button.set_action_name(\"app.open\")\n"
+"\n"
+"        # button for the \"undo\" action\n"
+"        undo_button = Gtk.ToolButton.new_from_stock(Gtk.STOCK_UNDO)\n"
+"        # with a tooltip with an image\n"
+"        # set True the property \"has-tooltip\"        \n"
+"        undo_button.set_property(\"has-tooltip\", True)\n"
+"        # connect to the callback function that for the tooltip\n"
+"        # with the signal \"query-tooltip\"\n"
+"        undo_button.connect(\"query-tooltip\", self.undo_tooltip_callback)\n"
+"        undo_button.set_is_important(True)\n"
+"        toolbar.insert(undo_button, 2)\n"
+"        undo_button.show()\n"
+"        undo_button.set_action_name(\"win.undo\")\n"
+"\n"
+"        # button for the \"fullscreen/leave fullscreen\" action\n"
+"        self.fullscreen_button = Gtk.ToolButton.new_from_stock(Gtk.STOCK_FULLSCREEN)\n"
+"        self.fullscreen_button.set_is_important(True)\n"
+"        toolbar.insert(self.fullscreen_button, 3)\n"
+"        self.fullscreen_button.set_action_name(\"win.fullscreen\")\n"
+"\n"
+"        return toolbar\n"
+"\n"
+"    # the callback function for the tooltip of the \"undo\" button\n"
+"    def undo_tooltip_callback(self, widget, x, y, keyboard_mode, tooltip):\n"
+"        # set the text for the tooltip\n"
+"        tooltip.set_text(\"Undo your last action\")\n"
+"        # set an icon fot the tooltip\n"
+"        tooltip.set_icon_from_stock(\"gtk-undo\", Gtk.IconSize.MENU)\n"
+"        # show the tooltip\n"
+"        return True\n"
+"\n"
+"    def undo_callback(self, action, parameter):\n"
+"        print \"You clicked \\\"Undo\\\".\"\n"
+"\n"
+"    def fullscreen_callback(self, action, parameter):\n"
+"        is_fullscreen = self.get_window().get_state() &amp; Gdk.WindowState.FULLSCREEN != 0\n"
+"        if not is_fullscreen:\n"
+"            self.fullscreen_button.set_stock_id(Gtk.STOCK_LEAVE_FULLSCREEN)\n"
+"            self.fullscreen()\n"
+"        else:\n"
+"            self.fullscreen_button.set_stock_id(Gtk.STOCK_FULLSCREEN)\n"
+"            self.unfullscreen()\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"        new_action = Gio.SimpleAction.new(\"new\", None)\n"
+"        new_action.connect(\"activate\", self.new_callback)\n"
+"        app.add_action(new_action)\n"
+"\n"
+"        open_action = Gio.SimpleAction.new(\"open\", None)\n"
+"        open_action.connect(\"activate\", self.open_callback)\n"
+"        app.add_action(open_action)\n"
+"\n"
+"    def new_callback(self, action, parameter):\n"
+"        print \"You clicked \\\"New\\\".\"\n"
+"\n"
+"    def open_callback(self, action, parameter):\n"
+"        print \"You clicked \\\"Open\\\".\"\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
 msgstr ""
-"ÎÏÏÏ ÏÎÏÎÎÎÎÎÎÎÎÎ ÏÎ ÎÎÎÎÎÎÎÎÎÎ ÏÎÏ GStreamer. ÎÏÎÎÎÎÎÏÎÎ ÎÏÎÏÎÏ ÎÎ "
-"ÏÏÎÏÎÎÏÎÏÎÎ ÎÎÎ ÎÏÎÎÎÎ ÎÎÎ ÎÏÏÎÎÎÏÎÎÎÏÎ ÏÎÏ GStreamer ÎÎÎÏÎ ÏÎÎ ÏÎÏÎÎÎÏÏ "
-"ÎÏÎÎÎÎ ÏÏÎÎ ÎÏÎÎÎÎ ÏÎÎÏ ÎÏÏ ÏÎÎ ÎÎÎÏÎ <code>gtk_init</code> ÏÏÎ ÏÏÎÎÏÏÎÏÎ "
-"<code>main</code>:"
+"from gi.repository import Gtk\n"
+"from gi.repository import Gdk\n"
+"from gi.repository import Gio\n"
+"import sys\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"Toolbar with Tooltips Example\", application=app)\n"
+"        self.set_default_size(400, 200)\n"
+"\n"
+"        grid = Gtk.Grid()\n"
+"\n"
+"        toolbar = self.create_toolbar()\n"
+"        toolbar.set_hexpand(True)\n"
+"        toolbar.show()\n"
+"\n"
+"        grid.attach(toolbar, 0, 0, 1, 1)\n"
+"\n"
+"        self.add(grid)\n"
+"\n"
+"        undo_action = Gio.SimpleAction.new(\"undo\", None)\n"
+"        undo_action.connect(\"activate\", self.undo_callback)\n"
+"        self.add_action(undo_action)\n"
+"\n"
+"        fullscreen_action = Gio.SimpleAction.new(\"fullscreen\", None)\n"
+"        fullscreen_action.connect(\"activate\", self.fullscreen_callback)\n"
+"        self.add_action(fullscreen_action)\n"
+"\n"
+"    def create_toolbar(self):\n"
+"        toolbar = Gtk.Toolbar()\n"
+"        toolbar.get_style_context().add_class(Gtk.STYLE_CLASS_PRIMARY_TOOLBAR);\n"
+"\n"
+"        # button for the \"new\" action\n"
+"        new_button = Gtk.ToolButton.new_from_stock(Gtk.STOCK_NEW)\n"
+"        # with a tooltip with a given text        \n"
+"        new_button.set_tooltip_text(\"Create a new file\")\n"
+"        new_button.set_is_important(True)\n"
+"        toolbar.insert(new_button, 0)\n"
+"        new_button.show()\n"
+"        new_button.set_action_name(\"app.new\")\n"
+"\n"
+"        # button for the \"open\" action\n"
+"        open_button = Gtk.ToolButton.new_from_stock(Gtk.STOCK_OPEN)\n"
+"        # with a tooltip with a given text in the Pango markup language        \n"
+"        open_button.set_tooltip_markup(\"Open an &lt;i&gt;existing&lt;/i&gt; file\")\n"
+"        open_button.set_is_important(True)\n"
+"        toolbar.insert(open_button, 1)\n"
+"        open_button.show()\n"
+"        open_button.set_action_name(\"app.open\")\n"
+"\n"
+"        # button for the \"undo\" action\n"
+"        undo_button = Gtk.ToolButton.new_from_stock(Gtk.STOCK_UNDO)\n"
+"        # with a tooltip with an image\n"
+"        # set True the property \"has-tooltip\"        \n"
+"        undo_button.set_property(\"has-tooltip\", True)\n"
+"        # connect to the callback function that for the tooltip\n"
+"        # with the signal \"query-tooltip\"\n"
+"        undo_button.connect(\"query-tooltip\", self.undo_tooltip_callback)\n"
+"        undo_button.set_is_important(True)\n"
+"        toolbar.insert(undo_button, 2)\n"
+"        undo_button.show()\n"
+"        undo_button.set_action_name(\"win.undo\")\n"
+"\n"
+"        # button for the \"fullscreen/leave fullscreen\" action\n"
+"        self.fullscreen_button = Gtk.ToolButton.new_from_stock(Gtk.STOCK_FULLSCREEN)\n"
+"        self.fullscreen_button.set_is_important(True)\n"
+"        toolbar.insert(self.fullscreen_button, 3)\n"
+"        self.fullscreen_button.set_action_name(\"win.fullscreen\")\n"
+"\n"
+"        return toolbar\n"
+"\n"
+"    # the callback function for the tooltip of the \"undo\" button\n"
+"    def undo_tooltip_callback(self, widget, x, y, keyboard_mode, tooltip):\n"
+"        # set the text for the tooltip\n"
+"        tooltip.set_text(\"Undo your last action\")\n"
+"        # set an icon fot the tooltip\n"
+"        tooltip.set_icon_from_stock(\"gtk-undo\", Gtk.IconSize.MENU)\n"
+"        # show the tooltip\n"
+"        return True\n"
+"\n"
+"    def undo_callback(self, action, parameter):\n"
+"        print \"You clicked \\\"Undo\\\".\"\n"
+"\n"
+"    def fullscreen_callback(self, action, parameter):\n"
+"        is_fullscreen = self.get_window().get_state() &amp; Gdk.WindowState.FULLSCREEN != 0\n"
+"        if not is_fullscreen:\n"
+"            self.fullscreen_button.set_stock_id(Gtk.STOCK_LEAVE_FULLSCREEN)\n"
+"            self.fullscreen()\n"
+"        else:\n"
+"            self.fullscreen_button.set_stock_id(Gtk.STOCK_FULLSCREEN)\n"
+"            self.unfullscreen()\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"        new_action = Gio.SimpleAction.new(\"new\", None)\n"
+"        new_action.connect(\"activate\", self.new_callback)\n"
+"        app.add_action(new_action)\n"
+"\n"
+"        open_action = Gio.SimpleAction.new(\"open\", None)\n"
+"        open_action.connect(\"activate\", self.open_callback)\n"
+"        app.add_action(open_action)\n"
+"\n"
+"    def new_callback(self, action, parameter):\n"
+"        print \"You clicked \\\"New\\\".\"\n"
+"\n"
+"    def open_callback(self, action, parameter):\n"
+"        print \"You clicked \\\"Open\\\".\"\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
+
+#: C/tooltip.py.page:33(section/title)
+msgid "Useful methods for a Tooltip widget"
+msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÏÏÎÎÎÏÎÎÏ ÎÎÏÎÎÏ"
 
-#: C/guitar-tuner.c.page:152(p)
+#: C/tooltip.py.page:34(section/p)
 msgid ""
-"Then, copy the following function into <file>main.c</file> above the empty "
-"<code>on_button_clicked</code> function:"
+"<code>set_tooltip_text(text)</code> and <code>set_tooltip_markup(text)</"
+"code> can be used to add a tooltip of plain text (or text in the Pango "
+"Markup Language) to a widget."
 msgstr ""
-"ÎÎÏÎ, ÎÎÏÎÎÏÎÏÏÎ ÏÎÎ ÎÎÏÎÎÏÎÎ ÏÏÎÎÏÏÎÏÎ ÏÏÎÎ <file>main.c</file> ÏÎÎÏ ÎÏÏ "
-"ÏÎÎ ÎÎÎÎ ÏÏÎÎÏÏÎÏÎ <code>on_button_clicked</code>:"
+"<code>set_tooltip_text(text)</code> ÎÎÎ <code>set_tooltip_markup(text)</"
+"code> ÎÏÎÏÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÎÏÎ ÎÎÎ ÎÎ ÏÏÎÏÎÎÏÎÏÎ ÎÎÎ ÏÏÎÎÎÏÎÎ ÎÎÏÎÎÏ ÎÏÎÎÏ "
+"ÎÎÎÎÎÎÎÏ (Î ÎÎÎÎÎÎÎÏ ÏÏÎÎ ÎÎÏÏÏÎ ÎÏÎÏÎÎÎÎÏÎÏ Pango) ÏÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ."
+
+#: C/tooltip.py.page:35(section/p)
+msgid "For more complex tooltips, for instance for a tooltip with an image:"
+msgstr ""
+"ÎÎÎ ÏÎÎ ÏÏÎÎÎÏÎÏ ÏÏÎÎÎÏÎÎÏ ÎÎÏÎÎÏ, ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ ÏÏÎÎÎÏÎÎ ÎÎÏÎÎÏ ÎÎ "
+"ÎÎÎ ÎÎÎÏÎÎ:"
 
-#: C/guitar-tuner.c.page:179(p)
+#: C/tooltip.py.page:37(item/p)
 msgid ""
-"The first five lines create source and sink GStreamer elements "
-"(<code>GstElement</code>), and a pipeline element (which will be used as a "
-"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)."
+"Set the <code>\"has-tooltip\"</code> property of the widget to <code>True</"
+"code>; this will make GTK+ monitor the widget for motion and related events "
+"which are needed to determine when and where to show a tooltip."
 msgstr ""
-"ÎÎ ÏÏÎÎÏ ÏÎÎÏÎ ÎÏÎÎÎÎÏ ÎÎÎÎÎÏÏÎÎÏÎ ÏÎ ÏÏÎÎÏÎÎÎ ÏÎÎÎ ÎÎÎ ÎÎÎÎÎÏ ÏÎÏ GStreamer "
-"(<code>GstElement</code>) ÎÎÎ ÎÎÎ ÏÏÎÎÏÎÎÎ ÎÎÎÏÎÏÎÏÏÎÏ (ÏÎ ÎÏÎÎÎ ÎÎ "
-"ÏÏÎÏÎÎÎÏÎÎÎÎÎÎ ÏÏ ÏÎÏÎÎÎÏÎÏ ÎÎÎ ÏÎ ÎÏÎ ÎÎÎÎ ÏÏÎÎÏÎÎÎ). ÎÎÎÎÏÎÎ ÏÎ ÏÎÎÎÎ "
-"\"note\" ÏÏÎ ÎÎÎÏÎÏÎÏÏÎÂ ÎÎÎÎÎÎÎÏÎÎ ÏÎÎ ÏÎÎÎ \"source\" ÎÎÎ ÏÎ ÏÏÎÎÎÎÎÏÎ "
-"ÏÏÎÎ ÏÎÎÎ <code>audiotestsrc</code>Â ÎÎÎ ÎÎÎÎÎÎÎÏÎÎ ÏÎÎ ÎÎÎÎÎ \"output\" ÎÎÎ "
-"ÏÎÎ ÏÏÎÎÎÎÎÏÎ ÏÏÎÎ ÎÎÎÎÎ <code>autoaudiosink</code> (ÏÏÎÎÏÎÎÎÎÎÎÎÎ ÎÎÎÎÎÏ "
-"ÎÎÏÏÎÏ ÎÏÎÏ)."
+"ÎÏÎÏÏÎ ÏÎÎ ÎÎÎÏÏÎÏÎ <code>\"has-tooltip\"</code> ÏÎÏ ÎÏÎÏÎÎÎÏ ÏÏÏÏÎÏÎÎÎÏ ÏÎ "
+"<code>True</code>Â ÎÏÏÏ ÎÎ ÎÎÎÎÎ ÏÎ GTK+ ÎÎ ÏÎÏÎÎÎÎÎÏÎÎÏÎÎ ÏÎ ÎÏÎÏÎÎÏ "
+"ÏÏÏÏÎÏÎÎÏ ÎÎÎ ÎÎÎÎÏÎ ÎÎÎ ÏÏÎÏÎÎÎ ÏÏÎÎÎÎÏÎ ÏÎÏ ÎÏÎÎÏÎÏÎÏÎÎ ÎÎÎ ÏÏÎÏÎÎÎÏÎÏÎÏ "
+"ÏÏÏÎ ÎÎÎ ÏÎÏ ÎÎ ÎÎÏÎÎÎÏÏÎÎ ÎÎÎ ÏÏÎÎÎÏÎÎ ÎÎÏÎÎÏ."
 
-#: C/guitar-tuner.c.page:182(p)
+#: C/tooltip.py.page:38(item/p)
 msgid ""
-"The call to <code>g_object_set</code> sets the <code>freq</code> property of "
-"the source element to <code>frequency</code>, which is passed as an argument "
-"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."
+"Connect to the <code>\"query-tooltip\"</code> signal. This signal will be "
+"emitted when a tooltip is supposed to be shown. One of the arguments passed "
+"to the signal handler is a GtkTooltip object. This is the object that we are "
+"about to display as a tooltip, and can be manipulated in your callback using "
+"functions like <code>set_icon()</code>. There are functions for setting the "
+"tooltip's markup (<code>set_markup(text)</code>), setting an image from a "
+"stock icon (<code>set_icon_from_stock(stock_id, size)</code>), or even "
+"putting in a custom widget (<code>set_custom(widget)</code>)."
 msgstr ""
-"ÎÎ ÎÎÎÎÏÎÎ ÏÎÏ <code>g_object_set</code> ÎÏÎÎÎÎ ÏÎÎ ÎÎÎÏÏÎÏÎ <code>freq</"
-"code> ÏÎÏ ÏÏÎÎÏÎÎÎÏ ÏÎÎÎ ÏÎ <code>frequency</code>, Î ÎÏÎÎÎ ÎÏÎÎ ÏÎÏÎÏÏÎÎ ÏÏ "
-"ÏÏÎÏÎÎ ÏÏÎ ÏÏÎÎÏÏÎÏÎ <code>play_sound</code>. ÎÏÏÎ ÎÎÎÎÎ ÎÏÎÎ Î ÏÏÏÎÏÏÎÏÎ "
-"ÏÎÏ ÎÏÏÎÏ ÏÎ Hertz ÎÎÏÎÎÎÏ ÏÏÎÏÎÎÎÏ ÏÏÏÎÏÏÎÏÎÏ ÎÎ ÎÏÎÏÏÎÏÎ ÎÏÎÏÏÎÏÎ."
+"ÎÏÎÎÎÎÎÎÏÎ ÎÎ ÏÎ ÏÎÎÎ <code>\"query-tooltip\"</code>. ÎÏÏÏ ÏÎ ÏÎÎÎ "
+"ÎÎÏÎÎÏÎÏÎÎ ÏÏÎÎ Î ÏÏÎÎÎÏÎÎ ÎÎÏÎÎÏ ÏÏÎÏÎÎÎÏÎÎ ÏÏÎ ÎÎÏÎÎÎÎÎÏÎÎ. ÎÎÎ ÎÏÏ ÏÎ "
+"ÎÏÎÏÎÎÏÎ ÏÎÏ ÏÎÏÎÏÎÎ ÏÏÎÎ ÏÎÎÏÎÏÏÎ ÏÎÎÎÏÎÏ ÎÎÎÎÎ ÎÎÎ ÎÎÏÎÎÎÎÎÎÎÎ GtkTooltip. "
+"ÎÏÏÏ ÎÎÎÎÎ ÏÎ ÎÎÏÎÎÎÎÎÎÎÎ ÏÎÏ ÏÏÏÎÎÎÏÎÎ ÎÎ ÎÎÏÎÎÎÏÎÏÎÎ ÏÏ ÏÏÎÎÎÏÎÎ ÎÎÏÎÎÏ "
+"ÎÎÎ ÎÏÎÏÎÎ ÎÎ ÎÏÎÎÎÏÎÎÏÏÎÎ ÏÏÎÎ ÎÏÎÎÎÎÎÎÏÎ ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÏÎÎÏÏÎÏÎÎÏ "
+"ÏÏÏÏ <code>set_icon()</code>. ÎÏÎÏÏÎÏÎ ÏÏÎÎÏÏÎÏÎÎÏ ÎÎÎ ÏÏÎÎÎÏÎ ÏÎÏ "
+"ÎÏÎÏÎÎÎÎÏÎÏ ÏÎÏ ÏÏÎÎÎÏÎÎÏ ÎÎÏÎÎÏ (<code>set_markup(text)</code>), ÏÏÎÎÎÏÎ "
+"ÎÎÎÏ ÎÎÎÏÎÎÏ ÎÏÏ ÎÎÎ ÎÎÎÎÎÎÎÎÎ ÏÎÏÎÎÎÏÎÎÎÎÎÏ (<code>set_icon_from_stock"
+"(stock_id, size)</code>), Î ÎÎÏÎÎ ÏÎÏÎÎÎÏÎÏÎ ÏÎ ÎÎÎ ÏÏÎÏÎÏÎÎÏÎÎÎÎ ÎÏÎÏÎÎÏ "
+"ÏÏÏÏÎÏÎÎÏ (<code>set_custom(widget)</code>)."
 
-#: C/guitar-tuner.c.page:185(p)
+#: C/tooltip.py.page:39(item/p)
 msgid ""
-"<code>gst_bin_add_many</code> puts the source and sink into the pipeline. "
-"The pipeline is a <code>GstBin</code>, which is just an element that can "
-"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>."
+"Return <code>True</code> from your query-tooltip handler. This causes the "
+"tooltip to be show. If you return <code>False</code>, it will not be shown."
 msgstr ""
-"Î <code>gst_bin_add_many</code> ÎÎÎÎÎ ÏÎÎ ÏÎÎÎ ÎÎÎ ÏÎÎ ÎÎÎÎÎ ÏÏÎ ÎÎÎÏÎÏÎÏÏÎ. "
-"Î ÎÎÎÏÎÏÎÏÏÎ ÎÎÎÎÎ ÎÎÎÏ <code>GstBin</code>, ÏÎÏ ÎÎÎÎÎ ÎÏÎÎÏ ÎÎÎ ÏÏÎÎÏÎÎÎ "
-"ÏÎÏ ÎÏÎÏÎÎ ÎÎ ÏÎÏÎÎÏÎÎ ÏÎÎÎÎÏÎÎ ÎÎÎÎ ÏÏÎÎÏÎÎÎ GStreamer. ÎÎÎÎÎÎ, ÎÏÎÏÎÎÏÎ ÎÎ "
-"ÏÏÎÏÎÎÏÎÏÎ ÏÏÎ ÏÏÎÎÏÎÎÎ ÎÎÎÎÏÎ ÏÏÎ ÎÎÎÏÎÏÎÏÏÎ ÏÏÎÏÎÎÏÎÎÏÎÏ ÏÎÏÎÏÏÏÏÎÏÎ "
-"ÎÏÎÏÎÎÏÎ ÏÏÎÎ <code>gst_bin_add_many</code>."
+"ÎÏÎÏÏÏÎÏÎ <code>True</code> ÎÏÏ ÏÎÎ ÏÎÎÏÎÏÏÎ ÏÎÏ ÎÏÏÏÎÎÎÏÎÏ ÏÏÎÎÎÏÎÎÏ "
+"ÎÎÏÎÎÏ. ÎÏÏÏ ÏÏÎÎÎÎÎÎ ÏÎÎ ÎÎÏÎÎÎÏÎ ÏÎÏ ÏÏÎÎÎÏÎÎÏ ÎÎÏÎÎÏ. ÎÎÎ ÎÏÎÏÏÏÎÏÎÏÎ "
+"<code>False</code>, ÎÎÎ ÎÎ ÎÎÏÎÎÎÏÏÎÎ."
 
-#: C/guitar-tuner.c.page:188(p)
+#: C/tooltip.py.page:42(section/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>)."
+"In the probably rare case where you want to have even more control over the "
+"tooltip that is about to be shown, you can set your own GtkWindow which will "
+"be used as tooltip window. This works as follows:"
 msgstr ""
-"ÎÎÏÏÏÎÎ, Î <code>gst_element_link</code> ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÎÎÎ ÏÏÎÎÎÏÎ ÏÏÎ "
-"ÏÏÎÎÏÎÎÏÎ ÎÎÎÎ, ÎÏÏÎ Î ÎÎÎÎÎÏ ÏÎÏ <code>source</code> (ÎÎÎÏ ÏÏÎÎÏ) ÏÎÎÎÎÎÎÎ "
-"ÏÏÎÎ ÎÎÏÎÎÎ ÏÎÏ <code>sink</code> (ÏÎÏ ÎÎÎÎÎ ÎÏÎÎÏÎ ÎÎÎÎÎÏ ÏÏÎÎ ÎÎÏÏÎ ÎÏÎÏ). "
-"ÎÎ <code>gst_element_set_state</code> ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÎÏÎÎÏÎ ÎÎÎ ÎÎÎÏÎÎ "
-"ÎÎÎÏÎÏÎÎÏÎÎÏ, ÎÏÎÎÎÎÏÎÏ ÏÎÎ ÎÎÏÎÏÏÎÏÎ ÏÎÏ ÎÎÎÏÎÏÎÏÏÎÏ ÎÎ ÏÎÎÎÎÎ "
-"(<code>GST_STATE_PLAYING</code>)."
+"ÎÏÎÎ ÏÏÎÏÎÎÏÏ ÏÏÎÎÎÎ ÏÎÏÎÏÏÏÏÎ ÏÏÎÏ ÎÎÎÎÏÎ ÎÎ ÎÏÎÏÎ ÎÎÏÎÎ ÏÎÏÎÏÏÏÏÎÏÎ ÎÎÎÎÏÎ "
+"ÏÏÎÎ ÏÏÎÎÎÏÎÎ ÎÎÏÎÎÏ ÏÎÏ ÏÏÏÎÎÎÏÎÎ ÎÎ ÎÎÏÎÎÎÏÏÎÎ, ÎÏÎÏÎÎÏÎ ÎÎ ÎÏÎÏÎÏÎ ÏÎ "
+"ÎÎÎÏ ÏÎÏ GtkWindow ÏÎÏ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÎÎ ÏÏ ÏÎÏÎÎÏÏÎ ÏÏÎÎÎÏÎÎÏ ÎÎÏÎÎÏ. ÎÏÏÏ "
+"ÎÎÏÎÎÏÎÎ ÏÏ ÎÎÎÏ:"
 
-#: C/guitar-tuner.c.page:196(p)
+#: C/tooltip.py.page:44(item/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>."
+"Set <code>\"has-tooltip\"</code> and connect to <code>\"query-tooltip\"</"
+"code> as before."
 msgstr ""
-"ÎÎÎ ÎÎÎÎÏÎÎ ÎÎ ÏÎÎÎÎÏÎÎ ÎÎÎÎ ÎÎÎÏÎÎÏÎÎÏ ÎÏÎ ÎÎÎ ÏÎÎÏÎ, ÎÏÏÏÎ ÏÎ ÏÎÎÎÏÏÎÎÎ "
-"ÏÏÎÎÎÎ ÏÎÏ ÎÎÎÎÎ Î <code>play_sound</code> ÎÎÎÎÎ ÎÎ ÎÎÎÎÎ ÏÎ "
-"<code>g_timeout_add</code>. ÎÏÏÏ ÎÏÎÎÎÎ ÎÎÎ ÏÏÎÎÎÎÏ ÏÎÏÎÎÏÏÎÎ ÏÎÏ ÎÎ "
-"ÏÏÎÎÎÏÎÏÎÎ ÏÎÎ ÎÏÎÂ ÏÎÏÎÎÎÎÎÎ ÎÎÎ <code>LENGTH</code> ms ÏÏÎÎ ÎÎÎÎÏÎÎ ÏÎ "
-"ÏÏÎÎÏÏÎÏÎ <code>pipeline_stop</code>, ÎÎÎ ÎÎ ÏÏÎÎÏÎÏÎÎ ÎÎ ÏÎÎ ÎÎÎÎÎ ÎÎÏÏÎ Î "
-"<code>pipeline_stop</code> ÎÎ ÎÏÎÏÏÏÎÏÎÎ <code>False</code>."
+"ÎÏÎÏÏÎ <code>\"has-tooltip\"</code> ÎÎÎ ÏÏÎÎÎÎÎÎÏÎ ÏÏÎ <code>\"query-tooltip"
+"\"</code> ÏÏÏÏ ÏÏÎÎ."
 
-#: C/guitar-tuner.c.page:197(p)
+#: C/tooltip.py.page:45(item/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:"
+"Use <code>set_tooltip_window()</code> on the widget to set a GtkWindow "
+"created by you as tooltip window."
 msgstr ""
-"ÎÏÏÎ ÎÎ ÎÏÎÏÎÏÎÎ ÏÎ ÏÏÎÎÏÏÎÏÎ <code>pipeline_stop</code>, Î ÎÏÎÎÎ ÎÎÎÎÎÏÎÎ "
-"ÎÏÏ ÏÎ <code>g_timeout_add</code>. ÎÏÎÏÎÎÏÏÎ ÏÎÎ ÎÎÏÎÎÏÎÎ ÎÏÎÎÎÎ <em>ÏÎÎÏ</"
-"em> ÎÏÏ ÏÎ ÏÏÎÎÏÏÎÏÎ <code>play_sound</code>:"
+"ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ <code>set_tooltip_window()</code> ÏÏÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÎÎ "
+"ÎÎ ÎÏÎÏÎÏÎ ÎÎÎ GtkWindow ÏÎÏ ÎÎÎÎÎÏÏÎÎÎÎÎÎ ÎÏÏ ÎÏÎÏ ÏÏ ÏÎÏÎÎÏÏÎ ÏÏÎÎÎÏÎÎÏ "
+"ÎÎÏÎÎÏ."
 
-#: C/guitar-tuner.c.page:209(p)
+#: C/tooltip.py.page:46(item/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."
+"In the <code>\"query-tooltip\"</code> callback you can access your window "
+"using <code>get_tooltip_window()</code> and manipulate as you wish. The "
+"semantics of the return value are exactly as before, return <code>True</"
+"code> to show the window, <code>False</code> to not show it."
 msgstr ""
-"Î ÎÎÎÏÎ ÏÎ <code>gst_element_set_state</code> ÏÏÎÎÎÏÎ ÏÎÎ ÎÎÎÏÎÏÎÎÏÎÎ ÏÎÏ "
-"ÎÎÎÏÎÏÎÏÏÎÏ ÎÎÎ Î <code>g_object_unref</code> ÏÏÎÎÎÏÎ ÏÎÎ ÎÎÎÏÎÏÎ ÏÏÎ "
-"ÎÎÎÏÎÏÎÏÏÎ, ÎÎÏÎÏÏÏÎÏÎÎÏÎÏ ÏÎÎ ÎÎÎ ÎÎÎÏÎÎÏÏÎÎÎÏÎÏ ÏÎ ÎÎÎÎÎ ÏÎÏ."
+"ÎÏÎÎ ÎÏÎÎÎÎÎÎÏÎ <code>\"query-tooltip\"</code> ÎÏÎÏÎÎÏÎ ÎÎ ÏÏÎÏÏÎÎÎÏÎÏÎ ÏÎ "
+"ÏÎÏÎÎÏÏÎ ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ <code>get_tooltip_window()</code> ÎÎÎ ÎÎ ÏÎ "
+"ÏÎÎÏÎÏÏÎÎÏÎ ÏÏÏÏ ÎÏÎÎÏÎÎÎÏÎ. Î ÏÎÎÎÏÎÎÎÎÎÎÎ ÏÎÏ ÏÎÎÎÏ ÎÏÎÏÏÏÎÏÎÏ ÎÎÎÎÎ "
+"ÎÎÏÎÎÏÏ ÏÏÏÏ ÏÏÎÎ, ÎÏÎÏÏÏÎÏÎ <code>True</code> ÎÎÎ ÎÎ ÎÎÏÎÎÎÏÎÏÎ ÏÎ "
+"ÏÎÏÎÎÏÏÎ, <code>False</code> ÎÎÎ ÎÎ ÎÎÎ ÏÎ ÎÎÏÎÎÎÏÎÏÎ."
 
-#: C/guitar-tuner.c.page:214(p)
+#: C/tooltip.py.page:55(item/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:"
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkTooltip.html";
+"\">GtkTooltip</link>"
 msgstr ""
-"ÎÎÎÎÏÎÎ ÎÎ ÏÎÎÎÎÏÎÎ ÏÎ ÏÏÏÏÏ ÎÏÎ ÏÏÎÎ Î ÏÏÎÏÏÎÏ ÏÎÏÎ ÎÎÎ ÎÎÏÎÏÎ. ÎÏÏÏÎ ÎÏÏ "
-"ÏÎÎ, ÎÎÎÎÏÎÎ ÎÎ ÎÎÏÎÏÎÎ ÏÎÏ ÏÏÏÎÏÏÎÏÎÏ ÎÎÎ ÏÎÏ ÎÎÎ ÏÎÏÎÎÏ ÏÎÏ ÎÎÎÎÏÎÏ, ÎÎ "
-"ÎÏÎÎÎÏ ÎÏÎÎÎÎÏÎÎ (ÏÏÎÎ ÎÏÏÎ ÏÎÏ <file>main.c</file>) ÏÏ ÎÎÎÎÎÏÎÏÏ:"
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkTooltip.html";
+"\">GtkTooltip</link>"
 
-#: C/guitar-tuner.c.page:246(p)
+#: C/tooltip.py.page:56(item/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>."
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkToolbar.html";
+"\">GtkToolbar</link>"
 msgstr ""
-"Î ÎÎÎÎÏÎÏ ÏÏÎ <code>Gtk.Button</code> ÏÎÏ ÏÎÏÎÎÎÎÎ ÏÎÏÎÎ ÏÏ ÏÏÎÏÎÎ "
-"(<code>button</code>) ÏÏÎ <code>on_button_clicked</code>. ÎÏÎÏÎÏÎÎ ÎÎ "
-"ÏÎÏÎÏÎÎ ÏÎÎ ÎÏÎÎÎÏÎ ÎÏÏÎÏ ÏÎÏ ÎÎÏÎÏÎÎÏ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ "
-"<code>gtk_bin_get_child</code> ÎÎÎ ÎÏÎÎÏÎ ÎÎ ÏÎÏÎÏÎÎ ÏÎ ÎÎÎÎÎÎÎ ÎÏÏ ÎÏÏÎÎ "
-"ÏÎÎ ÎÏÎÎÎÏÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ <code>gtk_label_get_label</code>."
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkToolbar.html";
+"\">GtkToolbar</link>"
 
-#: C/guitar-tuner.c.page:247(p)
+#: C/tooltip.py.page:57(item/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!"
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkWidget.html";
+"\">GtkWidget</link>"
 msgstr ""
-"ÎÎ ÎÎÎÎÎÎÎ ÏÎÏ ÎÏÎÎÎÏÎÏ ÏÏÎÎÏÎÎÎÏÎÎ ÏÏÏÎ ÎÎ ÏÎÏ ÎÏÏÎÏ ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ "
-"<code>g_str_equal</code> ÎÎÎ <code>play_sound</code> ÎÎÎÎÎÏÎÎ ÎÎ ÏÎÎ "
-"ÎÎÏÎÎÎÎÎÎ ÏÏÏÎÏÏÎÏÎ ÎÎÎ ÎÏÏÎÎ ÏÎÎ ÎÏÏÎ. ÎÏÏÏ ÏÎÎÎÎÎ ÏÎÎ ÏÏÎÎÂ Î ÏÏÎÏÎÎÎÏÏÎÏ "
-"ÎÎÎÎÏÎÏ ÎÎÎÎÎ ÎÏÎÎÎÎÏ!"
+"<link href=\"http://developer.gnome.org/gtk3/stable/GtkWidget.html";
+"\">GtkWidget</link>"
 
-#: C/guitar-tuner.c.page:258(p)
+#: C/tooltip.py.page:58(item/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>."
+"<link href=\"http://developer.gnome.org/gtk3/stable/gtk3-Stock-Items.html";
+"\">Stock Items</link>"
 msgstr ""
-"ÎÎ ÎÎÏÎÎÎÏÏÏÎÏÎÏÎ ÏÏÎÎÎÎÎÎÏÎ ÎÎ ÏÎ ÎÎÎÎÎÎ, ÏÏÎÎÏÎÎÎÏÎ ÏÎÎ ÎÏÎÎÎÎ ÏÎÏ ÎÎ ÎÏÏÏ "
-"ÏÎÎ <link href=\"guitar-tuner/guitar-tuner.c\">ÎÏÎÎÎÎ ÎÎÎÏÎÏÎÏ</link>."
-
-#: C/GtkApplicationWindow.vala.page:7(title)
-msgid "ApplicationWindow (Vala)"
-msgstr "ApplicationWindow (Vala)"
-
-#: C/GtkApplicationWindow.vala.page:17(desc)
-#: C/GtkApplicationWindow.py.page:22(desc)
-#: C/GtkApplicationWindow.js.page:17(desc)
-msgid "GtkWindow subclass with GtkApplication support"
-msgstr "Î ÏÏÎÎÎÎÏÎ GtkWindow ÎÎ ÏÏÎÏÏÎÏÎÎÎ GtkApplication"
-
-#: C/GtkApplicationWindow.vala.page:20(title)
-#: C/GtkApplicationWindow.py.page:25(title)
-#: C/GtkApplicationWindow.js.page:20(title)
-#: C/GtkApplicationWindow.c.page:20(title)
-msgid "ApplicationWindow"
-msgstr "ApplicationWindow"
-
-#: C/GtkApplicationWindow.vala.page:22(p) C/GtkApplicationWindow.py.page:27(p)
-msgid "The simplest GtkApplication Window which can support Menus."
-msgstr "ÎÎ ÎÏÎÎÏÏÏÎÏÎ ÏÎÏÎÎÏÏÎ GtkApplication ÏÎÏ ÎÏÎÏÎÎ ÎÎ ÏÏÎÏÏÎÏÎÎÎÎ ÎÎÎÎÏ."
-
-#: C/GtkApplicationWindow.py.page:7(title)
-msgid "ApplicationWindow (Python)"
-msgstr "ApplicationWindow (Python)"
-
-#: C/GtkApplicationWindow.py.page:38(title)
-msgid "Useful methods for a Gtk.ApplicationWindow widget"
-msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ Gtk.ApplicationWindow"
-
-#: C/GtkApplicationWindow.js.page:7(title)
-msgid "ApplicationWindow (JavaScript)"
-msgstr "ApplicationWindow (JavaScript)"
-
-#: C/GtkApplicationWindow.js.page:22(p)
-msgid "A simple GtkApplicationWindow which can support Menus."
-msgstr "ÎÎÎ ÎÏÎÏ GtkApplicationWindow ÏÎÏ ÎÏÎÏÎÎ ÎÎ ÏÏÎÏÏÎÏÎÎÎÎ ÎÎÎÎÏ."
-
-#: C/GtkApplicationWindow.c.page:7(title)
-msgid "ApplicationWindow (C)"
-msgstr "ApplicationWindow (C)"
+"<link href=\"http://developer.gnome.org/gtk3/stable/gtk3-Stock-Items.html";
+"\">Stock Items</link>"
 
-#: C/GtkApplicationWindow.c.page:17(desc)
-msgid "A toplevel window which can contain other widgets, and support GMenu"
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/treeview_advanced_liststore.py.page:24(media)
+msgctxt "_"
+msgid ""
+"external ref='media/treeview_advanced_liststore.png' "
+"md5='102b512197fb9aa4ed9a16462f6af911'"
 msgstr ""
-"ÎÎÎ ÏÎÏÎÎÏÏÎ ÎÎÏÏÎÏÎÏ ÎÏÎÏÎÎÎÏ ÏÎÏ ÎÏÎÏÎÎ ÎÎ ÏÎÏÎÎÏÎÎ ÎÎÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ "
-"ÎÎÎ ÏÏÎÏÏÎÏÎÎÎÎ GMenu"
-
-#: C/GtkApplicationWindow.c.page:22(p)
-msgid "A minimal GtkApplication with a GtkApplicationWindow"
-msgstr "ÎÎÎ ÎÎÎÏÎÏÏÎ GtkApplication ÎÎ ÎÎÎ GtkApplicationWindow"
+"external ref='media/treeview_advanced_liststore.png' "
+"md5='102b512197fb9aa4ed9a16462f6af911'"
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/grid.vala.page:23(None) C/grid.js.page:25(None) C/grid.c.page:22(None)
-msgid "@@image: 'media/grid.png'; md5=27d45da115401127456a3b854dcfc5be"
-msgstr "@@image: 'media/grid.png'Â md5=27d45da115401127456a3b854dcfc5be"
-
-#: C/grid.vala.page:7(title)
-msgid "Grid (Vala)"
-msgstr "ÎÎÎÎÎÎ (Vala)"
-
-#: C/grid.vala.page:19(desc) C/grid.py.page:24(desc) C/grid.js.page:21(desc)
-#: C/grid.c.page:17(desc)
-msgid "Pack widgets in rows and columns"
-msgstr "ÎÎÎÎÏÎÏÎÏÎÎ ÎÏÎÏÎÎÏÎ ÏÏÏÏÎÏÎÎÏÎ ÏÎ ÎÏÎÎÎÎÏ ÎÎÎ ÏÏÎÎÎÏ"
-
-#: C/grid.vala.page:22(title)
-msgid "Grid widget"
-msgstr "ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÏÎÎÎÎÎÏÎÏ"
-
-#: C/grid.vala.page:24(p) C/grid.c.page:23(p)
-msgid "A button widget connected to a progress bar."
-msgstr "ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÎÏÎÏÎÎÏ ÏÏÎÎÎÎÎÎÎ ÎÎ ÎÎÎ ÎÏÎÎÎÎ ÏÏÎÏÎÎÏ."
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/grid.py.page:29(None)
-msgid "@@image: 'media/grid_simple.png'; md5=c806f2e69b30373d4d2e08b41d6cc1f6"
-msgstr "@@image: 'media/grid_simple.png'Â md5=c806f2e69b30373d4d2e08b41d6cc1f6"
-
-#: C/grid.py.page:7(title)
-msgid "Grid (Python)"
-msgstr "ÎÎÎÎÎÎ (Python)"
+#: C/treeview_advanced_liststore.py.page:7(info/title)
+msgctxt "text"
+msgid "Simple Treeview with ListStore (Python)"
+msgstr "ÎÏÎÎ Treeview ÎÎ ListStore (Python)"
 
-#: C/grid.py.page:30(p)
-msgid "Some labels in a grid."
-msgstr "ÎÎÏÎÎÎÏ ÎÏÎÎÎÏÎÏ ÏÎ ÎÎÎ ÏÎÎÎÎÎ."
+#: C/treeview_advanced_liststore.py.page:20(info/desc)
+msgid "A TreeView displaying a ListStore (more complex example)"
+msgstr "ÎÎÎ TreeView ÏÎÏ ÎÎÏÎÎÎÎÎÎ ÎÎÎ TreeStore (ÏÎÎ ÏÏÎÎÎÏÎ ÏÎÏÎÎÎÎÎÎÎ)"
 
-#: C/grid.py.page:40(title)
-msgid "Useful methods for a Grid widget"
-msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÏÎÎÎÎÎÏÎÏ"
+#: C/treeview_advanced_liststore.py.page:23(page/title)
+#: C/treeview_simple_liststore.vala.page:22(page/title)
+msgid "Simple Treeview with ListStore"
+msgstr "ÎÏÎÎ Treeview ÎÎ ListStore"
 
-#: C/grid.py.page:43(p)
+#: C/treeview_advanced_liststore.py.page:25(page/p)
+#: C/treeview_simple_liststore.py.page:24(page/p)
 msgid ""
-"To attach a widget <code>child</code> in position <code>left, top</code> in "
-"a slot of given <code>width, height</code> use <code>attach(child, top, "
-"left, width, height)</code>. If a widget <code>sibling</code> is already in "
-"place, we can also use <code>attach_next_to(child, sibling, side, width, "
-"height)</code>, where <code>side</code> is one of <code>Gtk.PositionType."
-"LEFT, Gtk.PositionType.RIGHT, Gtk.PositionType.TOP, Gtk.PositionType.BOTTOM</"
-"code>."
+"This TreeView displays a simple ListStore with the selection \"changed\" "
+"signal connected."
 msgstr ""
-"ÎÎÎ ÎÎ ÏÏÎÏÎÏÏÎÏÎÏÎ ÎÎÎ <code>child</code> ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÏÎ ÎÎÏÎ "
-"<code>left, top</code> ÏÎ ÎÎÎ ÏÏÎÎÎÏÎ ÏÎÏ ÎÎÏÎÎÎÎÏ <code>width, height</"
-"code> ÏÏÎÏÎÎÎÏÎÎÎÏÏÎ <code>attach(child, top, left, width, height)</code>. "
-"ÎÎÎ ÎÎÎ <code>sibling</code> ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÎÎÎÎ ÎÎÎ ÏÏÎ ÎÎÏÎ, ÎÏÎÏÎÏÎÎ "
-"ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÏÎÏÎÏ <code>attach_next_to(child, sibling, side, width, "
-"height)</code>, ÏÏÎÏ <code>side</code> ÎÎÎÎÎ ÎÎÎ ÎÏÏ ÏÎ <code>Gtk."
-"PositionType.LEFT, Gtk.PositionType.RIGHT, Gtk.PositionType.TOP, Gtk."
-"PositionType.BOTTOM</code>."
+"ÎÏÏÎ Î TreeView ÎÎÏÎÎÎÎÎÎ ÎÎÎ ÎÏÎÎ ListStore ÎÎ ÏÎ ÏÏÎÎÎÎÎÎÎ ÏÎÎÎ ÎÏÎÎÎÎÎÏ "
+"\"ÎÎÎÎÎÎÎÎÎ\"."
 
-#: C/grid.py.page:44(p)
+#: C/treeview_advanced_liststore.py.page:32(section/code)
+#, no-wrap
 msgid ""
-"<code>insert_row(position)</code> and <code>insert_column(position)</code> "
-"do exactly what they say; children which are attached at or below this "
-"position are moved one row down, and children which span across this "
-"position are grown to span the new row. <code>insert_next_to(sibling, side)</"
-"code> inserts a row or column at the specified position. The new row or "
-"column is placed next to <code>sibling</code>, on the side determined by "
-"<code>side</code>; if side is <code>Gtk.PositionType.TOP</code> or <code>Gtk."
-"PositionType.BOTTOM</code>, a row is inserted, if side is <code>Gtk."
-"PositionType.LEFT</code> of <code>Gtk.PositionType.RIGHT</code>, a column is "
-"inserted."
-msgstr ""
-"<code>insert_row(position)</code> ÎÎÎ <code>insert_column(position)</code> "
-"ÎÎÎÎÏÎ ÎÎÏÎÎÏÏ ÏÏÎ ÎÎÎÎÂ ÏÎ ÎÏÎÎÏÏÎÎÎ ÏÎÏ ÏÏÎÏÎÏÏÏÎÏÎÎ ÏÎ ÎÏÏÎ ÏÎ ÎÎÏÎ Î ÎÏÏ "
-"ÎÎÏÏ ÏÎÏ ÎÎÏÎÎÎÎÎÏÎÏÎÎ ÎÎÎ ÎÏÎÎÎÎ ÎÎÏÏ ÎÎÎ ÏÎ ÎÏÎÎÏÏÎÎÎ ÏÎÏ ÎÎÎÏÏÏÎÏÎ ÎÎÏÎ "
-"ÎÎÎÎÏ ÎÏÏÎ ÏÎ ÎÎÏÎ ÎÏÎÎÏÎÎÎÎÎÏÎÎ ÎÎÎ ÎÎ ÎÎÎÏÏÎÏÎ ÏÎ ÎÎÎ ÎÏÎÎÎÎ. "
-"<code>insert_next_to(sibling, side)</code> ÎÎÏÎÎÎÎ ÎÎÎ ÎÏÎÎÎÎ Î ÏÏÎÎÎ ÏÏÎ "
-"ÏÏÎÎÎÎÏÎÎÎÎÎ ÎÎÏÎ. Î ÎÎÎ ÎÏÎÎÎÎ Î ÏÏÎÎÎ ÏÎÏÎÎÎÏÎÎÏÎÎ ÎÎÏÎÎ ÏÏÎ "
-"<code>sibling</code>, ÏÏÎÎ ÏÎÎÏÏÎ ÏÎÏ ÎÏÎÏÏÎÎÎ ÎÏÏ <code>side</code>; ÎÎÎ Î "
-"ÏÎÎÏÏÎ ÎÎÎÎÎ <code>Gtk.PositionType.TOP</code> Î <code>Gtk.PositionType."
-"BOTTOM</code>, ÎÎÏÎÎÎÏÎÎ ÎÎÎ ÎÏÎÎÎÎ, ÎÎÎ Î ÏÎÎÏÏÎ ÎÎÎÎÎ <code>Gtk."
-"PositionType.LEFT</code> ÏÎÏ <code>Gtk.PositionType.RIGHT</code>, ÎÎÏÎÎÎÏÎÎ "
-"ÎÎÎ ÏÏÎÎÎ."
+"from gi.repository import Gtk\n"
+"from gi.repository import Pango\n"
+"import sys\n"
+"\n"
+"list_of_dvd = [[\"The Usual Suspects\"],\n"
+"               [\"Gilda\"],\n"
+"               [\"The Godfather\"],\n"
+"               [\"Pulp Fiction\"],\n"
+"               [\"Once Upon a Time in the West\"],\n"
+"               [\"Rear Window\"]]\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"My DVDs\", application=app)\n"
+"        self.set_default_size(250, 100)\n"
+"        self.set_border_width(10)\n"
+"\n"
+"        # the data are stored in the model\n"
+"        # create a liststore with one column\n"
+"        self.listmodel = Gtk.ListStore(str)\n"
+"        for i in range(len(list_of_dvd)):\n"
+"            self.listmodel.append(list_of_dvd[i])\n"
+"\n"
+"        # a treeview to see the data stored in the model\n"
+"        view = Gtk.TreeView(model=self.listmodel)\n"
+"\n"
+"        # cellrenderer for the first column\n"
+"        cell = Gtk.CellRendererText()\n"
+"        # the first column is created\n"
+"        col = Gtk.TreeViewColumn(\"Title\", cell, text=0)\n"
+"        # and it is appended to the treeview\n"
+"        view.append_column(col)\n"
+"\n"
+"        # when a row of the treeview is selected, it emits a signal\n"
+"        self.selection = view.get_selection()\n"
+"        self.selection.connect(\"changed\", self.on_changed)\n"
+"\n"
+"        # the label we use to show the selection\n"
+"        self.label = Gtk.Label()\n"
+"        self.label.set_text(\"\")\n"
+"\n"
+"        # a button to add new titles, connected to a callback function\n"
+"        self.button_add = Gtk.Button(label=\"Add\")\n"
+"        self.button_add.connect(\"clicked\", self.add_cb)\n"
+"\n"
+"        # an entry to enter titles\n"
+"        self.entry = Gtk.Entry()\n"
+"\n"
+"        # a button to remove titles, connected to a callback function\n"
+"        self.button_remove = Gtk.Button(label=\"Remove\")\n"
+"        self.button_remove.connect(\"clicked\", self.remove_cb)\n"
+"\n"
+"        # a button to remove all titles, connected to a callback function\n"
+"        self.button_remove_all = Gtk.Button(label=\"Remove All\")\n"
+"        self.button_remove_all.connect(\"clicked\", self.remove_all_cb)\n"
+"\n"
+"        # a grid to attach the widgets\n"
+"        grid = Gtk.Grid()\n"
+"        grid.attach(view, 0, 0, 4, 1)\n"
+"        grid.attach(self.label, 0, 1, 4, 1)\n"
+"        grid.attach(self.button_add, 0, 2, 1, 1)\n"
+"        grid.attach_next_to(self.entry, self.button_add, Gtk.PositionType.RIGHT, 1, 1)\n"
+"        grid.attach_next_to(self.button_remove, self.entry, Gtk.PositionType.RIGHT, 1, 1)\n"
+"        grid.attach_next_to(self.button_remove_all, self.button_remove, Gtk.PositionType.RIGHT, 1, 1)\n"
+"\n"
+"        # add the grid to the window\n"
+"        self.add(grid)\n"
+"\n"
+"    def on_changed(self, selection):\n"
+"        # get the model and the iterator that points at the data in the model\n"
+"        (model, iter) = selection.get_selected()\n"
+"        # set the label to a new value depending on the selection, if there is one\n"
+"        if iter is not None:\n"
+"            self.label.set_text(\"\\n %s\" %(model[iter][0]))\n"
+"        else:\n"
+"            self.label.set_text(\"\")\n"
+"        return True\n"
+"\n"
+"    # callback function for the \"Add\" button\n"
+"    def add_cb(self, button):\n"
+"        # append to the model the title that is in the entry\n"
+"        title = self.entry.get_text()\n"
+"        self.listmodel.append([title])\n"
+"        # and print a message in the terminal\n"
+"        print \"%s has been added\" %(title)\n"
+"\n"
+"    def remove_cb(self, button):\n"
+"        # if there is still an entry in the model\n"
+"        if len(self.listmodel) != 0:\n"
+"            # get the selection\n"
+"            (model, iter) = self.selection.get_selected()\n"
+"            # if there is a selection, print a message in the terminal\n"
+"            # and remove it from the model\n"
+"            if iter is not None:\n"
+"                print \"%s has been removed\" %(model[iter][0])\n"
+"                self.listmodel.remove(iter)\n"
+"            # otherwise, ask the user to select something to remove\n"
+"            else:\n"
+"                print \"Select a title to remove\"\n"
+"        # else, if there are no entries in the model, print \"Empty list\"\n"
+"        # in the terminal\n"
+"        else:\n"
+"            print \"Empty list\"\n"
+"\n"
+"    def remove_all_cb(self, button):\n"
+"        # if there is still an entry in the model\n"
+"        if len(self.listmodel) != 0:\n"
+"            # remove all the entries in the model\n"
+"            for i in range(len(self.listmodel)):\n"
+"                iter = self.listmodel.get_iter(0)\n"
+"                self.listmodel.remove(iter)\n"
+"        # print a message in the terminal alerting that the model is empty\n"
+"        print \"Empty list\"\n"
+"\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
+msgstr ""
+"from gi.repository import Gtk\n"
+"from gi.repository import Pango\n"
+"import sys\n"
+"\n"
+"list_of_dvd = [[\"The Usual Suspects\"],\n"
+"               [\"Gilda\"],\n"
+"               [\"The Godfather\"],\n"
+"               [\"Pulp Fiction\"],\n"
+"               [\"Once Upon a Time in the West\"],\n"
+"               [\"Rear Window\"]]\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"My DVDs\", application=app)\n"
+"        self.set_default_size(250, 100)\n"
+"        self.set_border_width(10)\n"
+"\n"
+"        # the data are stored in the model\n"
+"        # create a liststore with one column\n"
+"        self.listmodel = Gtk.ListStore(str)\n"
+"        for i in range(len(list_of_dvd)):\n"
+"            self.listmodel.append(list_of_dvd[i])\n"
+"\n"
+"        # a treeview to see the data stored in the model\n"
+"        view = Gtk.TreeView(model=self.listmodel)\n"
+"\n"
+"        # cellrenderer for the first column\n"
+"        cell = Gtk.CellRendererText()\n"
+"        # the first column is created\n"
+"        col = Gtk.TreeViewColumn(\"Title\", cell, text=0)\n"
+"        # and it is appended to the treeview\n"
+"        view.append_column(col)\n"
+"\n"
+"        # when a row of the treeview is selected, it emits a signal\n"
+"        self.selection = view.get_selection()\n"
+"        self.selection.connect(\"changed\", self.on_changed)\n"
+"\n"
+"        # the label we use to show the selection\n"
+"        self.label = Gtk.Label()\n"
+"        self.label.set_text(\"\")\n"
+"\n"
+"        # a button to add new titles, connected to a callback function\n"
+"        self.button_add = Gtk.Button(label=\"Add\")\n"
+"        self.button_add.connect(\"clicked\", self.add_cb)\n"
+"\n"
+"        # an entry to enter titles\n"
+"        self.entry = Gtk.Entry()\n"
+"\n"
+"        # a button to remove titles, connected to a callback function\n"
+"        self.button_remove = Gtk.Button(label=\"Remove\")\n"
+"        self.button_remove.connect(\"clicked\", self.remove_cb)\n"
+"\n"
+"        # a button to remove all titles, connected to a callback function\n"
+"        self.button_remove_all = Gtk.Button(label=\"Remove All\")\n"
+"        self.button_remove_all.connect(\"clicked\", self.remove_all_cb)\n"
+"\n"
+"        # a grid to attach the widgets\n"
+"        grid = Gtk.Grid()\n"
+"        grid.attach(view, 0, 0, 4, 1)\n"
+"        grid.attach(self.label, 0, 1, 4, 1)\n"
+"        grid.attach(self.button_add, 0, 2, 1, 1)\n"
+"        grid.attach_next_to(self.entry, self.button_add, Gtk.PositionType.RIGHT, 1, 1)\n"
+"        grid.attach_next_to(self.button_remove, self.entry, Gtk.PositionType.RIGHT, 1, 1)\n"
+"        grid.attach_next_to(self.button_remove_all, self.button_remove, Gtk.PositionType.RIGHT, 1, 1)\n"
+"\n"
+"        # add the grid to the window\n"
+"        self.add(grid)\n"
+"\n"
+"    def on_changed(self, selection):\n"
+"        # get the model and the iterator that points at the data in the model\n"
+"        (model, iter) = selection.get_selected()\n"
+"        # set the label to a new value depending on the selection, if there is one\n"
+"        if iter is not None:\n"
+"            self.label.set_text(\"\\n %s\" %(model[iter][0]))\n"
+"        else:\n"
+"            self.label.set_text(\"\")\n"
+"        return True\n"
+"\n"
+"    # callback function for the \"Add\" button\n"
+"    def add_cb(self, button):\n"
+"        # append to the model the title that is in the entry\n"
+"        title = self.entry.get_text()\n"
+"        self.listmodel.append([title])\n"
+"        # and print a message in the terminal\n"
+"        print \"%s has been added\" %(title)\n"
+"\n"
+"    def remove_cb(self, button):\n"
+"        # if there is still an entry in the model\n"
+"        if len(self.listmodel) != 0:\n"
+"            # get the selection\n"
+"            (model, iter) = self.selection.get_selected()\n"
+"            # if there is a selection, print a message in the terminal\n"
+"            # and remove it from the model\n"
+"            if iter is not None:\n"
+"                print \"%s has been removed\" %(model[iter][0])\n"
+"                self.listmodel.remove(iter)\n"
+"            # otherwise, ask the user to select something to remove\n"
+"            else:\n"
+"                print \"Select a title to remove\"\n"
+"        # else, if there are no entries in the model, print \"Empty list\"\n"
+"        # in the terminal\n"
+"        else:\n"
+"            print \"Empty list\"\n"
+"\n"
+"    def remove_all_cb(self, button):\n"
+"        # if there is still an entry in the model\n"
+"        if len(self.listmodel) != 0:\n"
+"            # remove all the entries in the model\n"
+"            for i in range(len(self.listmodel)):\n"
+"                iter = self.listmodel.get_iter(0)\n"
+"                self.listmodel.remove(iter)\n"
+"        # print a message in the terminal alerting that the model is empty\n"
+"        print \"Empty list\"\n"
+"\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
+
+#: C/treeview_advanced_liststore.py.page:36(section/title)
+#: C/treeview_cellrenderertoggle.py.page:33(section/title)
+#: C/treeview_simple_liststore.py.page:35(section/title)
+#: C/treeview_treestore.py.page:33(section/title)
+msgid "Useful methods for a TreeView widget"
+msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ TreeView"
 
-#: C/grid.py.page:45(p)
+#: C/treeview_advanced_liststore.py.page:37(section/p)
+#: C/treeview_cellrenderertoggle.py.page:34(section/p)
+#: C/treeview_simple_liststore.py.page:36(section/p)
+#: C/treeview_treestore.py.page:34(section/p)
 msgid ""
-"<code>set_row_homogeneous(True)</code> and <code>set_column_homogeneous(True)"
-"</code> ensure that (respectively) every row or every column has the same "
-"width or height."
+"The TreeView widget is designed around a <em>Model/View/Controller</em> "
+"design. For more information, and for a list of useful methods for TreeView "
+"and the interface TreeModel, see <link xref=\"model-view-controller.py"
+"\">here</link>."
 msgstr ""
-"<code>set_row_homogeneous(True)</code> ÎÎÎ <code>set_column_homogeneous(True)"
-"</code> ÎÎÎÎÎÏÎÎÏÎ ÏÏÎ (ÎÎÏÎÏÏÎÎÏÎ) ÎÎÎÎ ÎÏÎÎÎÎ Î ÏÏÎÎÎ ÎÏÎÎ ÏÎ ÎÎÎÎ ÏÎÎÏÎÏ "
-"Î ÏÏÎÏ."
+"ÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ TreeView ÏÏÎÎÎÎÏÏÎÎÎ ÎÏÏÏ ÎÏÏ ÎÎÎ ÏÏÎÎÎÎ <em>ÏÏÏÏÏÏÎÏ/"
+"ÏÏÎÎÎÎÎÏ/ÎÎÎÎÎÏÎ</em>. ÎÎÎ ÏÎÏÎÏÏÏÏÎÏÎÏ ÏÎÎÏÎÏÎÏÎÎÏ ÎÎÎ ÎÎÎ ÎÎÎ ÎÎÏÏÎ "
+"ÏÏÎÏÎÎÏÎ ÎÎÎÏÎÏÎ ÎÎÎ TreeView ÎÎÎ ÏÎÎ ÎÎÎÏÎÏÎ TreeModel, ÎÎÎÏÎ <link xref="
+"\"model-view-controller.py\">ÎÎÏ</link>."
 
-#: C/grid.py.page:46(p)
+#: C/treeview_advanced_liststore.py.page:38(section/p)
 msgid ""
-"<code>set_row_spacing(spacing)</code> and <code>set_column_spacing(spacing)</"
-"code> force a spacing between (respectively) rows or columns. The value of "
-"<code>spacing</code> can be between <code>0</code>, which is the default "
-"value, and <code>32767</code>"
+"For buttons and callbacks functions, see <link xref=\"signals-callbacks.py"
+"\">here</link>"
 msgstr ""
-"<code>set_row_spacing(spacing)</code> ÎÎÎ <code>set_column_spacing(spacing)</"
-"code> ÎÎÎÎÎÎÎÎÎÎÏÎ ÎÎÎ ÎÎÎÎÎÎÎ ÎÎÏÎÎÏ (ÎÎÏÎÏÏÎÎÏÎ) ÎÏÎÎÎÏÎ Î ÏÏÎÎÏÎ. Î ÏÎÎÎ "
-"ÏÎÏ <code>spacing</code> ÎÏÎÏÎÎ ÎÎ ÎÎÎÎÎ ÎÎÏÎÎÏ <code>0</code>, ÏÎÏ ÎÎÎÎÎ Î "
-"ÏÏÎÎÏÎÎÎÎÎÎÎÎ ÏÎÎÎ ÎÎÎ <code>32767</code>"
-
-#: C/grid.js.page:7(title)
-msgid "Grid (JavaScript)"
-msgstr "ÎÎÎÎÎÎ (JavaScript)"
+"ÎÎÎ ÎÎÏÎÏÎÎ ÎÎÎ ÎÏÎÎÎÎÎÎÏÎÎÏ ÏÏÎÎÏÏÎÏÎÏÎ, ÎÎÎÏÎ <link xref=\"signals-"
+"callbacks.py\">ÎÎÏ</link>"
 
-#: C/grid.js.page:26(p)
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/treeview_cellrenderertoggle.py.page:21(media)
+msgctxt "_"
 msgid ""
-"A button widget connected to a progress bar, inside of a grid which handles "
-"the layout."
+"external ref='media/treeview_cellrenderertoggle.png' "
+"md5='ade9b9437f8f83150acf37610dab834d'"
 msgstr ""
-"ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÎÏÎÏÎÎÏ ÏÏÎÎÎÎÎÎÎ ÎÎ ÎÎÎ ÎÏÎÎÎÎ ÏÏÎÏÎÎÏ, ÎÎÏÎ ÏÎ ÎÎÎ "
-"ÏÎÎÎÎÎ ÏÎÏ ÏÎÎÏÎÎÎÏÎÎ ÏÎ ÎÎÎÏÎÎÎ."
-
-#: C/grid.c.page:7(title)
-msgid "Grid (C)"
-msgstr "ÎÎÎÎÎÎ (C)"
-
-#: C/grid.c.page:34(link) C/buttonbox.py.page:49(link)
-#: C/button.py.page:52(link) C/button.c.page:35(link)
-msgid "GtkButton"
-msgstr "GtkButton"
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/gmenu.vala.page:27(None)
-msgid "@@image: 'media/gmenu.vala.png'; md5=7a9f381fc3ed5bf8d1c50d2acb095400"
-msgstr "@@image: 'media/gmenu.vala.png'Â md5=7a9f381fc3ed5bf8d1c50d2acb095400"
-
-#: C/gmenu.vala.page:7(title)
-msgid "GMenu (Vala)"
-msgstr "GMenu (Vala)"
-
-#: C/gmenu.vala.page:13(name) C/aboutdialog.vala.page:14(name)
-msgid "Ryan Lortie"
-msgstr "Ryan Lortie"
+"external ref='media/treeview_cellrenderertoggle.png' "
+"md5='ade9b9437f8f83150acf37610dab834d'"
 
-#: C/gmenu.vala.page:14(email) C/aboutdialog.vala.page:15(email)
-msgid "desrt desrt ca"
-msgstr "desrt desrt ca"
-
-#: C/gmenu.vala.page:23(desc) C/gmenu.js.page:17(desc) C/gmenu.c.page:17(desc)
-msgid "A simple implementation of GMenuModel"
-msgstr "ÎÎÎ ÎÏÎÎ ÏÎÎÏÎÎÎÏÎ ÏÎÏ GMenuModel"
-
-#: C/gmenu.vala.page:29(em)
-msgid "You need to be running Gtk+-3.4 or later for this to work"
-msgstr "ÎÏÎÎÎÎÎÏÎÎ ÎÎ ÏÏÎÎÎÏÎ ÏÎ Gtk+-3.4 Î ÎÎÏÎÎÎÎÎÏÏÎÏÎ ÎÎÎ ÎÏÏÎ ÏÎ ÎÎÏÎÎÎÎ"
+#: C/treeview_cellrenderertoggle.py.page:7(info/title)
+#: C/treeview_treestore.py.page:7(info/title)
+msgctxt "text"
+msgid "TreeView with TreeStore (Python)"
+msgstr "TreeView ÎÎ TreeStore (Python)"
 
-#: C/gmenu.vala.page:32(p)
+#: C/treeview_cellrenderertoggle.py.page:17(info/desc)
 msgid ""
-"This program will not compile with the quit action connected until <link "
-"href=\"https://bugzilla.gnome.org/show_bug.cgi?id=674090\";>Bug #674090</"
-"link> is fixed. Therefore, the problematic line has been commented out."
+"A TreeView displaying a TreeStore (more complex example, with "
+"CellRendererToggle)"
 msgstr ""
-"ÎÏÏÏ ÏÎ ÏÏÏÎÏÎÎÎÎ ÎÎÎ ÎÎ ÎÎÏÎÎÎÏÏÏÎÏÎÎ ÎÎ ÏÎÎ ÎÎÎÏÎÎÎÎ ÎÎÎÎÏÎÎÎÎÏÎÏ "
-"ÏÏÎÎÎÎÎÎÎ ÎÎÏÏÎ ÏÎ ÏÏÎÎÎÏÎ ÏÎÏ <link href=\"https://bugzilla.gnome.org/";
-"show_bug.cgi?id=674090\">Bug #674090</link>. ÎÏÎÎÏÏÏ, Î ÏÏÎÎÎÎÎÎÏÎÎÎ ÎÏÎÎÎÎ "
-"ÎÏÎÎ ÎÏÎÏÏÎÎÎÎÏÎÎÎ."
-
-#: C/gmenu.vala.page:34(p) C/gmenu.py.page:28(p) C/gmenu.js.page:22(p)
-#: C/gmenu.c.page:22(p)
-msgid "A GtkApplication with a simple GMenu and SimpleActions"
-msgstr "ÎÎÎ GtkApplication ÎÎ ÎÎÎ ÎÏÎÏ GMenu ÎÎÎ SimpleActions"
-
-#: C/gmenu.vala.page:43(link)
-msgid "Menu"
-msgstr "ÎÎÎÎÏ"
-
-#: C/gmenu.vala.page:44(link)
-msgid "append"
-msgstr "ÏÏÎÏÎÏÏÎÏÎ"
-
-#: C/gmenu.vala.page:45(link)
-msgid "SimpleAction"
-msgstr "SimpleAction"
-
-#: C/gmenu.vala.page:46(link)
-msgid "add_action"
-msgstr "add_action"
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/gmenu.py.page:27(None)
-msgid "@@image: 'media/gmenu.py.png'; md5=52c68b34d5d566f37e9f803dedb6353a"
-msgstr "@@image: 'media/gmenu.py.png'Â md5=52c68b34d5d566f37e9f803dedb6353a"
-
-#: C/gmenu.py.page:7(title)
-msgid "GMenu (Python)"
-msgstr "GMenu (Python)"
-
-#: C/gmenu.py.page:23(desc)
-msgid "A simple implementation of GMenu"
-msgstr "ÎÎÎ ÎÏÎÎ ÎÏÎÏÎÎÎÎ ÏÎÏ GMenuModel"
-
-#: C/gmenu.py.page:29(em) C/gmenu.c.page:23(em) C/aboutdialog.vala.page:31(em)
-#: C/aboutdialog.c.page:26(em)
-msgid "You need to be running Gtk3.4 or later for this to work"
-msgstr "ÎÏÎÎÎÎÎÏÎÎ ÎÎ ÏÏÎÎÎÏÎ ÏÎ Gtk3.4 Î ÎÎÏÎÎÎÎÎÏÏÎÏÎ ÎÎÎ ÎÏÏÎ ÏÎ ÎÎÏÎÎÎÎ"
-
-#: C/gmenu.py.page:40(title)
-msgid "Useful methods for a GSimpleAction and a GMenu"
-msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ GSimpleAction ÎÎÎ ÎÎÎ GMenu"
+"ÎÎÎ TreeView ÎÎÏÎÎÎÎÎÎ ÎÎÎ TreeStore (ÏÎÎ ÏÏÎÎÎÏÎ ÏÎÏÎÎÎÎÎÎÎ, ÎÎ "
+"CellRendererToggle)"
 
-#: C/gmenu.py.page:42(p)
-msgid "Useful methods for a GSimpleAction:"
-msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ GSimpleAction:"
+#: C/treeview_cellrenderertoggle.py.page:20(page/title)
+#: C/treeview_treestore.py.page:20(page/title)
+msgid "TreeView with TreeStore"
+msgstr "TreeView ÎÎ TreeStore"
 
-#: C/gmenu.py.page:44(p)
+#: C/treeview_cellrenderertoggle.py.page:22(page/p)
 msgid ""
-"To create a new action that is <em>stateless</em>, that is, an action that "
-"do not retain or depend on a state given by the action itself, use"
+"This TreeView displays a TreeStore with two columns, one of which is "
+"rendered as a toggle."
 msgstr ""
-"ÎÎÎ ÏÎ ÎÎÎÎÎÏÏÎÎÎ ÎÎÎÏ ÎÎÎÏ ÎÎÎÏÎÎÎÎÏ ÏÎÏ ÎÎÎÎÎ <em>ÏÏÏÎÏ ÎÎÏÎÏÏÎÏÎ</em>, "
-"ÎÎÎÎÎÎ, ÎÎÎ ÎÎÎÏÎÎÎÎ ÏÎÏ ÎÎÎ ÎÏÎÏÎ Î ÎÎÎÏÏÎÏÎÎ ÎÏÏ ÏÎ ÎÎÎÎÎÎÎÎ ÎÎÏÎÏÏÎÏÎ ÎÏÏ "
-"ÏÎÎ ÎÎÎÎ ÏÎÎ ÎÎÎÏÎÎÎÎ, ÏÏÎÏÎÎÎÏÎÎÎÏÏÎ"
+"ÎÏÏÎ Î TreeView ÎÎÏÎÎÎÎÎÎ ÎÎÎ TreeStore ÎÎ ÎÏÎ ÏÏÎÎÎÏ, Î ÎÎÎ ÏÎÏÏ ÎÏÎÎÎÎÎÏÎÎ "
+"ÏÏ ÎÎÎ ÎÎÎÎÎÎÎÎ."
 
-#: C/gmenu.py.page:45(code)
+#: C/treeview_cellrenderertoggle.py.page:29(section/code)
 #, no-wrap
 msgid ""
+"from gi.repository import Gtk\n"
+"from gi.repository import Pango\n"
+"import sys\n"
 "\n"
-"action = Gio.SimpleAction.new(\"name\", parameter_type)"
+"books = [[\"Tolstoy, Leo\", [\"War and Peace\", True], [\"Anna Karenina\", False]],\n"
+"         [\"Shakespeare, William\", [\"Hamlet\", False], [\"Macbeth\", True], [\"Othello\", False]],\n"
+"         [\"Tolkien, J.R.R.\", [\"The Lord of the Rings\", False]]]\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"Library\", application=app)\n"
+"        self.set_default_size(250, 100)\n"
+"        self.set_border_width(10)\n"
+"\n"
+"        # the data are stored in the model\n"
+"        # create a treestore with two columns\n"
+"        self.store = Gtk.TreeStore(str, bool)\n"
+"        # fill in the model\n"
+"        for i in range(len(books)):\n"
+"            # the iter piter is returned when appending the author in the first column\n"
+"            # and False in the second\n"
+"            piter = self.store.append(None, [books[i][0], False])\n"
+"            # append the books and the associated boolean value as children of the author\n"
+"            j = 1\n"
+"            while j &lt; len(books[i]):\n"
+"                self.store.append(piter, books[i][j])\n"
+"                j += 1\n"
+"\n"
+"        # the treeview shows the model\n"
+"        # create a treeview on the model self.store\n"
+"        view = Gtk.TreeView()\n"
+"        view.set_model(self.store)\n"
+"\n"
+"        # the cellrenderer for the first column - text\n"
+"        renderer_books = Gtk.CellRendererText()\n"
+"        # the first column is created\n"
+"        column_books = Gtk.TreeViewColumn(\"Books\", renderer_books, text=0)\n"
+"        # and it is appended to the treeview\n"
+"        view.append_column(column_books)\n"
+"\n"
+"        # the cellrenderer for the second column - boolean rendered as a toggle\n"
+"        renderer_in_out = Gtk.CellRendererToggle()\n"
+"        # the second column is created\n"
+"        column_in_out = Gtk.TreeViewColumn(\"Out?\", renderer_in_out, active=1)\n"
+"        # and it is appended to the treeview\n"
+"        view.append_column(column_in_out)\n"
+"        # connect the cellrenderertoggle with a callback function\n"
+"        renderer_in_out.connect(\"toggled\", self.on_toggled)\n"
+"\n"
+"        # add the treeview to the window\n"
+"        self.add(view)\n"
+"\n"
+"    # callback function for the signal emitted by the cellrenderertoggle\n"
+"    def on_toggled(self, widget, path):\n"
+"        # the boolean value of the selected row\n"
+"        current_value = self.store[path][1]\n"
+"        # change the boolean value of the selected row in the model\n"
+"        self.store[path][1] = not current_value\n"
+"        # new current value!\n"
+"        current_value = not current_value\n"
+"        # if length of the path is 1 (that is, if we are selecting an author)\n"
+"        if len(path) == 1:\n"
+"            # get the iter associated with the path\n"
+"            piter = self.store.get_iter(path)\n"
+"            # get the iter associated with its first child\n"
+"            citer = self.store.iter_children(piter)\n"
+"            # while there are children, change the state of their boolean value\n"
+"            # to the value of the author\n"
+"            while citer is not None:\n"
+"                self.store[citer][1] = current_value\n"
+"                citer = self.store.iter_next(citer)\n"
+"        # if the length of the path is not 1 (that is, if we are selecting a book)\n"
+"        elif len(path) != 1:\n"
+"            # get the first child of the parent of the book (the first book of the author)\n"
+"            citer = self.store.get_iter(path)\n"
+"            piter = self.store.iter_parent(citer)\n"
+"            citer = self.store.iter_children(piter)\n"
+"            # check if all the children are selected\n"
+"            all_selected = True\n"
+"            while citer is not None:\n"
+"                if self.store[citer][1] == False:\n"
+"                    all_selected = False\n"
+"                    break\n"
+"                citer = self.store.iter_next(citer)\n"
+"            # if they do, the author as well is selected; otherwise it is not\n"
+"            self.store[piter][1] = all_selected\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
 msgstr ""
+"from gi.repository import Gtk\n"
+"from gi.repository import Pango\n"
+"import sys\n"
 "\n"
-"action = Gio.SimpleAction.new(\"name\", parameter_type)"
+"books = [[\"Tolstoy, Leo\", [\"War and Peace\", True], [\"Anna Karenina\", False]],\n"
+"         [\"Shakespeare, William\", [\"Hamlet\", False], [\"Macbeth\", True], [\"Othello\", False]],\n"
+"         [\"Tolkien, J.R.R.\", [\"The Lord of the Rings\", False]]]\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"Library\", application=app)\n"
+"        self.set_default_size(250, 100)\n"
+"        self.set_border_width(10)\n"
+"\n"
+"        # the data are stored in the model\n"
+"        # create a treestore with two columns\n"
+"        self.store = Gtk.TreeStore(str, bool)\n"
+"        # fill in the model\n"
+"        for i in range(len(books)):\n"
+"            # the iter piter is returned when appending the author in the first column\n"
+"            # and False in the second\n"
+"            piter = self.store.append(None, [books[i][0], False])\n"
+"            # append the books and the associated boolean value as children of the author\n"
+"            j = 1\n"
+"            while j &lt; len(books[i]):\n"
+"                self.store.append(piter, books[i][j])\n"
+"                j += 1\n"
+"\n"
+"        # the treeview shows the model\n"
+"        # create a treeview on the model self.store\n"
+"        view = Gtk.TreeView()\n"
+"        view.set_model(self.store)\n"
+"\n"
+"        # the cellrenderer for the first column - text\n"
+"        renderer_books = Gtk.CellRendererText()\n"
+"        # the first column is created\n"
+"        column_books = Gtk.TreeViewColumn(\"Books\", renderer_books, text=0)\n"
+"        # and it is appended to the treeview\n"
+"        view.append_column(column_books)\n"
+"\n"
+"        # the cellrenderer for the second column - boolean rendered as a toggle\n"
+"        renderer_in_out = Gtk.CellRendererToggle()\n"
+"        # the second column is created\n"
+"        column_in_out = Gtk.TreeViewColumn(\"Out?\", renderer_in_out, active=1)\n"
+"        # and it is appended to the treeview\n"
+"        view.append_column(column_in_out)\n"
+"        # connect the cellrenderertoggle with a callback function\n"
+"        renderer_in_out.connect(\"toggled\", self.on_toggled)\n"
+"\n"
+"        # add the treeview to the window\n"
+"        self.add(view)\n"
+"\n"
+"    # callback function for the signal emitted by the cellrenderertoggle\n"
+"    def on_toggled(self, widget, path):\n"
+"        # the boolean value of the selected row\n"
+"        current_value = self.store[path][1]\n"
+"        # change the boolean value of the selected row in the model\n"
+"        self.store[path][1] = not current_value\n"
+"        # new current value!\n"
+"        current_value = not current_value\n"
+"        # if length of the path is 1 (that is, if we are selecting an author)\n"
+"        if len(path) == 1:\n"
+"            # get the iter associated with the path\n"
+"            piter = self.store.get_iter(path)\n"
+"            # get the iter associated with its first child\n"
+"            citer = self.store.iter_children(piter)\n"
+"            # while there are children, change the state of their boolean value\n"
+"            # to the value of the author\n"
+"            while citer is not None:\n"
+"                self.store[citer][1] = current_value\n"
+"                citer = self.store.iter_next(citer)\n"
+"        # if the length of the path is not 1 (that is, if we are selecting a book)\n"
+"        elif len(path) != 1:\n"
+"            # get the first child of the parent of the book (the first book of the author)\n"
+"            citer = self.store.get_iter(path)\n"
+"            piter = self.store.iter_parent(citer)\n"
+"            citer = self.store.iter_children(piter)\n"
+"            # check if all the children are selected\n"
+"            all_selected = True\n"
+"            while citer is not None:\n"
+"                if self.store[citer][1] == False:\n"
+"                    all_selected = False\n"
+"                    break\n"
+"                citer = self.store.iter_next(citer)\n"
+"            # if they do, the author as well is selected; otherwise it is not\n"
+"            self.store[piter][1] = all_selected\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
 
-#: C/gmenu.py.page:47(p)
+#: C/treeview_cellrenderertoggle.py.page:43(item/p)
+#: C/treeview_treestore.py.page:43(item/p)
 msgid ""
-"where <code>\"name\"</code> is the name of the action and "
-"<code>parameter_type</code> is the type of the parameters that the action "
-"receives when being activated. This can be <code>None</code>, or <code>GLib."
-"VariantType.new('s')</code> if the parameter is of type <code>str</code>, or "
-"instead of <code>'s'</code> a character as described <link href=\"http://";
-"developer.gnome.org/glib/unstable/glib-GVariantType.html\">here</link>. To "
-"create a new <em>stateful</em> (i.e. not stateless) action, use"
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkTreeStore.html";
+"\">GtkTreeStore</link>"
 msgstr ""
-"ÏÏÎÏ <code>\"name\"</code> ÎÎÎÎÎ ÏÎ ÏÎÎÎÎ ÏÎÏ ÎÎÎÏÎÎÎÎÏ ÎÎÎ "
-"<code>parameter_type</code> ÎÎÎÎÎ Î ÏÏÏÎÏ ÏÏÎ ÏÎÏÎÎÎÏÏÏÎ ÏÎÏ ÎÎÏÎÏÎÎ Î "
-"ÎÎÎÏÎÎÎÎ ÏÏÎÎ ÎÎÎÏÎÎÏÎÎÎÎÏÎÎ. ÎÏÏÏ ÎÏÎÏÎÎ ÎÎ ÎÎÎÎÎ <code>None</code>, Î "
-"<code>GLib.VariantType.new('s')</code> ÎÎÎ Î ÏÎÏÎÎÎÏÏÎÏ ÎÎÎÎÎ Î ÏÏÏÎÏ "
-"<code>str</code>, Î ÏÏÎ ÎÎÏÎ ÏÎÏ <code>'s'</code> ÎÎÎÏ ÏÎÏÎÎÏÎÏÎÏ ÏÏÏÏ "
-"ÏÎÏÎÎÏÎÏÎÏÎÎ <link href=\"http://developer.gnome.org/glib/unstable/glib-";
-"GVariantType.html\">ÎÎÏ</link>. ÎÎÎ ÏÎ ÎÎÎÎÎÏÏÎÎÎ ÎÎÎÏ ÎÎÎÏ ÎÎÎÏÎÎÎÎÏ <em>ÎÎ "
-"ÎÎÏÎÏÏÎÏÎ</em> (ÎÎÎÎÎÎ ÏÏÎ ÏÏÏÎÏ ÎÎÏÎÏÏÎÏÎ), ÏÏÎÏÎÎÎÏÎÎÎÏÏÎ"
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkTreeStore.html";
+"\">GtkTreeStore</link>"
 
-#: C/gmenu.py.page:48(code)
-#, no-wrap
+#: C/treeview_cellrenderertoggle.py.page:45(item/p)
 msgid ""
-"\n"
-"action = Gio.SimpleAction.new_stateful(\"name\", parameter_type, initial_state)"
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkCellRendererToggle.";
+"html\">GtkCellRendererToggle</link>"
 msgstr ""
-"\n"
-"action = Gio.SimpleAction.new_stateful(\"name\", parameter_type, initial_state)"
+"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkCellRendererToggle.";
+"html\">GtkCellRendererToggle</link>"
 
-#: C/gmenu.py.page:50(p)
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/treeview_simple_liststore.js.page:24(media)
+msgctxt "_"
 msgid ""
-"where <code>initial_state</code> is defined as a GVariant - for instance "
-"<code>Glib.Variant.new_string('start')</code>; for a list of possiblities "
-"see <link href=\"http://developer.gnome.org/glib/unstable/glib-GVariant.html";
-"\">here</link>."
+"external ref='media/treeview_simple_liststore_penguins.png' "
+"md5='d750a0b9fddf8e508753cc639839871d'"
 msgstr ""
-"ÏÏÎÏ <code>initial_state</code> ÎÏÎÎÎÏÎÎ ÏÏ ÎÎÎ GVariant - ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ "
-"<code>Glib.Variant.new_string('start')</code>; ÎÎÎ ÎÎÎ ÎÎÏÏÎ ÎÏÎÎÏÎÏÎÏÏÎ "
-"ÎÎÎÏÎ <link href=\"http://developer.gnome.org/glib/unstable/glib-GVariant.";
-"html\">ÎÎÏ</link>."
+"external ref='media/treeview_simple_liststore_penguins.png' "
+"md5='d750a0b9fddf8e508753cc639839871d'"
+
+#: C/treeview_simple_liststore.js.page:7(info/title)
+msgctxt "text"
+msgid "TreeView with ListStore (JavaScript)"
+msgstr "Treeview ÎÎ ListStore (JavaScript)"
+
+#: C/treeview_simple_liststore.js.page:20(info/desc)
+msgid "A widget that shows a separate list of items"
+msgstr "ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÏÎÏ ÎÎÏÎÎÎÎÎÎ ÎÎÎ ÎÎÏÏÏÎÏÏÎ ÎÎÏÏÎ ÏÏÎÎÏÎÎÏÎ"
 
-#: C/gmenu.py.page:51(p)
+#: C/treeview_simple_liststore.js.page:23(page/title)
+msgid "TreeView with ListStore"
+msgstr "Treeview ÎÎ ListStore"
+
+#: C/treeview_simple_liststore.js.page:25(page/p)
 msgid ""
-"<code>set_enabled(True)</code> sets the action as enabled; an action must be "
-"enabled in order to be activated or in order to have its state changed from "
-"outside callers. This should only be called by the implementor of the "
-"action. Users of the action should not attempt to modify its enabled flag."
+"A TreeView is like a window onto the contents of either a ListStore or a "
+"TreeStore. A ListStore is like a spreadsheet: a \"flat\", two-dimensional "
+"list of things broken up into rows and columns. A TreeStore, meanwhile, can "
+"branch out in different directions like a tree can. In this example, we "
+"create a TreeView that shows the contents of a ListStore with (fictitious) "
+"names and phone numbers in it, and set it so that the <link xref=\"label.js"
+"\">Label</link> at the bottom of the window shows more information about "
+"whichever name you click on."
 msgstr ""
-"<code>set_enabled(True)</code> ÎÏÎÎÎÎ ÏÎÎ ÎÎÎÏÎÎÎÎ ÏÏ ÎÎÎÏÎÎÂ ÎÎÎ ÎÎÎÏÎÎÎÎ "
-"ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎ ÎÎÎÏÎÎ ÎÎÎ ÎÎ ÎÎÎÏÎÎÏÎÎÎÎÎÎ Î ÎÎÎ ÎÎ ÎÏÎÎ ÏÎÎ ÎÎÏÎÏÏÎÏÎ ÏÎÏ "
-"ÎÎÎÎÎÎÎÎÎ ÎÏÏ ÎÎÏÏÎÏÎÎÎÏ ÎÎÎÏÎÎÏ . ÎÏÏÏ ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎÏÎÎ ÎÏÎÎ ÎÏÏ ÏÎÎ "
-"ÎÏÎÏÎÎÎÎ ÏÎÏ ÎÎÎÏÎÎÎÎÏ. ÎÎ ÏÏÎÏÏÎÏ ÏÎÏ ÎÎÎÏÎÎÎÎÏ ÎÎÎ ÏÏÎÏÎÎ ÎÎ ÏÏÎÏÏÎÎÎÏÎ ÎÎ "
-"ÏÏÎÏÎÏÎÎÎÏÎÏÎ ÏÎÎ ÎÎÎÏÎÎ ÏÎÎÎÎÎ ÏÎÏ."
+"ÎÎÎ TreeView ÎÎÎÎÎÎÎ ÎÎ ÎÎÎ ÏÎÏÎÎÏÏÎ ÏÏÎ ÏÎÏÎÎÏÏÎÎÎÎ ÎÎÏÎ ÎÎÎÏ ListStore "
+"ÎÎÏÎ ÎÎÎÏ TreeStore. ÎÎÎ ListStore ÎÎÎÎÎÎÎ ÎÎ ÎÎÎ ÏÏÎÎÎÎÎÏÏÎÎÏ ÏÏÎÎÎ: ÎÎÎ "
+"\"ÎÏÎÏÎÎÎ\", ÎÎÎÎÎÏÏÎÏÎ ÎÎÏÏÎ ÏÏÎÎÎÎÏÏÎ ÎÎÎÎÏÎÎÎÎÎ ÏÎ ÎÏÎÎÎÎÏ ÎÎÎ ÏÏÎÎÎÏ. "
+"ÎÎÎ TreeStore, ÏÏÎ ÎÎÏÎÎÏ, ÎÏÎÏÎÎ ÎÎ ÎÎÎÎÎÎÎÏÎÎÎ ÏÎ ÎÎÎÏÎÏÎÏÎÎÎÏ "
+"ÎÎÏÎÏÎÏÎÏÎÎÏ ÏÏÏÏ ÎÎÎÎÎ ÎÎÎ ÎÎÎÎÏÎ. ÎÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ, ÎÎÎÎÎÏÏÎÎÏÎÎÎ ÎÎÎ "
+"TreeView ÏÎÏ ÎÎÏÎÎÎÎÎÎ ÏÎ ÏÎÏÎÎÏÏÎÎÎÎ ÎÎÎÏ ListStore ÎÎ (ÎÎÎÎÎÎÎÎ) ÎÎÏÎÎÏÎ "
+"ÎÎÎ ÎÏÎÎÎÎÏÏ ÏÎÎÎÏÏÎÎÏ ÏÎ ÎÏÏÏ, ÎÎÎ ÏÏÎÎÎÏÏÎÎÎ ÎÏÏÎ ÏÏÏÎ Î <link xref="
+"\"label.js\">ÎÏÎÎÎÏÎ</link> ÏÏÎ ÏÎÎÎÏ ÏÎÏ ÏÎÏÎÎÏÏÎÏ ÎÎ ÎÎÏÎÎÎÎÎÎ "
+"ÏÎÏÎÏÏÏÏÎÏÎÏ ÏÎÎÏÎÏÎÏÎÎÏ ÏÏÎÏÎÎÎ ÎÎ ÎÏÎÎÎÎÎÏÎÏÎ ÏÎÎÎÎ ÏÎÏÎÏÎ."
 
-#: C/gmenu.py.page:52(p)
+#: C/treeview_simple_liststore.js.page:26(page/p)
 msgid ""
-"<code>set_state(state)</code>, where <code>state</code> is a GVariant, sets "
-"the state of the action, updating the 'state' property to the given value. "
-"This should only be called by the implementor of the action; users of the "
-"action should instead call <code>change_state(state)</code> (where "
-"<code>state</code> is as above) to request the change."
+"The TreeView is not just a single widget, but contains a number of smaller "
+"ones:"
 msgstr ""
-"<code>set_state(state)</code>, ÏÏÎÏ <code>state</code> ÎÎÎÎÎ ÎÎÎ GVariant, "
-"ÏÎÏ ÎÏÎÎÎÎ ÏÎÎ ÎÎÏÎÏÏÎÏÎ ÏÎÏ ÎÎÎÏÎÎÎÎÏ, ÎÎÎÎÎÏÏÎÎÎÏÎÏ ÏÎÎ ÎÎÎÏÏÎÏÎ 'state' "
-"ÏÏÎ ÎÎÎÎÎÎÎÎ ÏÎÎÎ. ÎÏÏÎ ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎÏÎÎ ÎÏÎÎ ÎÏÏ ÏÎÎ ÎÎÏÎÎÎÏÏÎ ÏÎÏ "
-"ÎÎÎÏÎÎÎÎÏÂ ÎÎ ÏÏÎÏÏÎÏ ÏÎÏ ÎÎÎÏÎÎÎÎÏ ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÏÎ <code>change_state"
-"(state)</code> (ÏÏÎÏ <code>state</code> ÎÎÎÎÎ ÏÏÏÏ ÏÎÎ ÏÎÎÏ) ÎÎÎ ÎÎ ÎÎÏÎÏÎ "
-"ÏÎÎ ÎÎÎÎÎÎ."
+"Î TreeView ÎÎÎ ÎÎÎÎÎ ÎÏÎÎ ÎÎÎ ÎÎÎÏ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ, ÎÎÎÎ ÏÎÏÎÎÏÎÎ ÎÎÎÎ "
+"ÎÏÎÎÎÏ ÎÎÎÏÏÏÎÏÏÎ ÎÏÎÏÎÎÏÎ ÏÏÏÏÎÏÎÎÏÎ:"
 
-#: C/gmenu.py.page:55(p)
-msgid "Useful methods for a GMenu:"
-msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ GMenu:"
+#: C/treeview_simple_liststore.js.page:28(item/p)
+msgid ""
+"TreeViewColumn widgets show each (vertical) column of information from the "
+"ListStore. Each one has a title which can be shown at the top of the column, "
+"like in the screenshot."
+msgstr ""
+"ÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ TreeViewColumn ÎÎÏÎÎÎÎÎÏÎ ÎÎÎÎ (ÎÎÎÎÏÎ) ÏÏÎÎÎ "
+"ÏÎÎÏÎÏÎÏÎÎÏ ÎÏÏ ÏÎ ListStore. ÎÎÎÎÎÎ ÎÏÎÎ ÎÎÎÎ ÏÎÏÎÎ ÏÎÏ ÎÏÎÏÎÎ ÎÎ ÏÏÎÎÎÎÎÎÎ "
+"ÏÏÎÎ ÎÎÏÏÏÎ ÏÎÏ ÏÏÎÎÎÏ, ÏÏÏÏ ÏÏÎ ÏÏÎÎÎÎÏÏÏÏÎ."
 
-#: C/gmenu.py.page:57(p)
+#: C/treeview_simple_liststore.js.page:29(item/p)
 msgid ""
-"To insert an item in the menu in position <code>position</code>, use "
-"<code>insert(position, label, detailed_action)</code>, where <code>label</"
-"code> is the label that will appear in the menu and <code>detailed_action</"
-"code> is a string composed of the name of the action to which we prepend the "
-"prefix <code>app.</code>. A more detailed discussion of this can be found in "
-"<link xref=\"menubar.py#win-app\"/>."
+"CellRenderer widgets are \"packed\" into each TreeViewColumn, and contain "
+"the instructions for how to display each individual \"cell\", or item from "
+"the ListStore. There are multiple different types, including the "
+"CellRendererText used here and the CellRendererPixbuf, which displays a "
+"picture (\"pixel buffer\")."
 msgstr ""
-"ÎÎÎ ÎÎÏÎÎÏÎÎ ÎÎÏÏ ÏÏÎÎÏÎÎÎÏ ÏÏÎ ÎÎÎÎÏ ÏÏÎ ÎÎÏÎ <code>position</code>, "
-"ÏÏÎÏÎÎÎÏÎÎÎÏÏÎ <code>insert(position, label, detailed_action)</code>, ÏÏÎÏ "
-"<code>label</code> ÎÎÎÎÎ Î ÎÏÎÎÎÏÎ ÏÎÏ ÎÎ ÎÎÏÎÎÎÏÏÎÎ ÏÏÎ ÎÎÎÎÏ ÎÎÎ "
-"<code>detailed_action</code> ÎÎÎÎÎ ÎÎÎ ÏÏÎÎÎÎÎÏÎÎÏÎ ÎÏÎÏÎÎÎÏÎÎÎÎ ÎÏÏ ÏÎ "
-"ÏÎÎÎÎ ÏÎÏ ÎÎÎÏÎÎÎÎÏ ÏÏÎÎ ÎÏÎÎÎ ÏÏÎÏÎÏÏÎÏÎÎ ÏÎ ÏÏÏÎÎÎÎ <code>app.</code>. ÎÎÎ "
-"ÏÎÎ ÎÎÏÏÎÎÎÏÎÏ ÏÏÎÎÏÎÏÎ ÎÏÏÎÏ ÎÏÎÏÎÎ ÎÎ ÎÏÎÎÎÎ ÏÏÎ <link xref=\"menubar."
-"py#win-app\"/>."
+"ÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ CellRenderer \"ÏÎÎÎÏÎÏÎÎÏÎÎ\" ÏÎ ÎÎÎÎ TreeViewColumn "
+"ÎÎÎ ÏÎÏÎÎÏÎÏÎ ÏÎÏ ÎÎÎÎÎÎÏ ÏÏÏ ÎÎ ÎÎÏÎÎÎÏÎÏÎ ÎÎÎÎ ÎÎÏÏÏÎÏÏÏ \"ÎÎÎÎ\" Î "
+"ÏÏÎÎÏÎÎÎ ÎÏÏ ÏÎ ListStore. ÎÏÎÏÏÎÏÎ ÏÎÎÎÎÎ ÎÎÎÏÎÏÎÏÎÎÎÎ ÏÏÏÎÎ, "
+"ÏÏÎÏÎÏÎÎÎÎÎÎÎÏÎÎÎÎÏ ÏÎÏ CellRendererText ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÎÎÏ ÎÎÎ ÏÎÏ "
+"CellRendererPixbuf, ÏÎÏ ÎÎÏÎÎÎÎÎÎ ÎÎÎ ÎÎÎÏÎÎ \"ÎÎÎÎÎÎÎÏÎ ÎÎÎÎÎ "
+"ÎÎÎÎÎÎÏÏÎÎÏÎÎÎÏ\")."
 
-#: C/gmenu.py.page:58(p)
+#: C/treeview_simple_liststore.js.page:31(page/p)
 msgid ""
-"To append or prepend an item in the menu use respectively <code>append"
-"(label, detailed_action)</code> and <code>prepend(label, detailed_action)</"
-"code>."
+"Finally, we're going to use an object called a TreeIter, which isn't a "
+"widget so much as an invisible cursor which points to a (horizontal) row in "
+"the ListStore. Whenever you click on a name in the phonebook, for instance, "
+"we create a TreeIter pointing to the row that's selected, and then use that "
+"to tell the ListStore which entry we want the Label to show more information "
+"about."
 msgstr ""
-"ÎÎÎ ÏÏÎÏÎÏÏÎÏÎ Î ÏÏÏÏÎÎÎ ÎÎÏÏ ÏÏÎÎÏÎÎÎÏ ÏÏÎ ÎÎÎÎÏ ÏÏÎÏÎÎÎÏÎÎÎÏÏÎ ÎÎÏÎÏÏÎÎÏÎ "
-"<code>append(label, detailed_action)</code> ÎÎÎ <code>prepend(label, "
-"detailed_action)</code>."
+"ÎÎÎÎÎÎ, ÏÏÏÎÎÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÎÎ ÎÎÏÎÎÎÎÎÎÎÎ ÏÎÏ ÎÎÎÎÏÎÎ TreeIter, "
+"ÏÎÏ ÎÎÎ ÎÎÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÏÏÏÎ ÏÎÎÏ ÏÏÎ ÎÎÎÏ ÎÏÏÎÏÎÏ ÎÏÎÎÎÎÏ ÏÎÏ "
+"ÎÎÎÏÎÎÎ ÏÎ ÎÎÎ (ÎÏÎÎÏÎÏÎÎ) ÎÏÎÎÎÎ ÏÏÎ ListStore. ÎÏÎÏÎÎÎÏÎÏÎ ÏÎÏÎÏÎ ÏÎ ÎÎÎ "
+"ÏÎÎÎÎ ÏÏÎÎ ÏÎÎÎÏÏÎÎÎÏ ÎÎÏÎÎÎÎÎ, ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ, ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ TreeIter "
+"ÏÎÏ ÎÎÎÏÎÎÎ ÏÎ ÎÏÎÎÎÎ ÏÎÏ ÎÏÎÎÎÏÏÎÎÎ ÎÎÎ ÎÏÎÎÏÎ ÏÏÎÏÎÎÎÏÎÎÎÏÏÎ ÏÎ ÎÎÎ ÎÎ "
+"ÏÎÎÏÎ ÏÏÎ ListStore ÏÎÎÎÏ ÎÎÎÏÎÏÎÏ ÎÎÎÎÏÎÎ Î ÎÏÎÎÎÏÎ ÎÎ ÎÎÏÎÎÎÏÎÎ "
+"ÏÎÏÎÏÏÏÏÎÏÎÏ ÏÎÎÏÎÏÎÏÎÎÏ ÏÏÎÏÎÎÎ."
 
-#: C/gmenu.py.page:59(p)
+#: C/treeview_simple_liststore.js.page:32(note/p)
 msgid ""
-"Another way of adding items to the menu is to create them as "
-"<code>GMenuItem</code>s and use <code>insert_item(position, item)</code>, "
-"<code>append_item(item)</code>, or <code>prepend_item(item)</code>; so for "
-"instance we might have:"
+"The TreeView is probably the most complicated Gtk widget, because of how "
+"many parts it has and how they all have to work together. Give yourself time "
+"to learn how it works and experiment with it, or try something easier first "
+"if you're having trouble."
 msgstr ""
-"ÎÎÎÏ ÎÎÎÎÏ ÏÏÏÏÎÏ ÏÏÎÏÎÎÎÎÏ ÏÏÎÎÏÎÎÏÎ ÏÏÎ ÎÎÎÎÏ ÎÎÎÎÎ Î ÎÎÎÎÎÏÏÎÎÎ ÏÎÏÏ ÏÏ "
-"<code>GMenuItem</code> ÎÎÎ Î ÏÏÎÏÎ <code>insert_item(position, item)</code>, "
-"<code>append_item(item)</code>, Î <code>prepend_item(item)</code>; ÎÏÏÎ ÎÎÎ "
-"ÏÎÏÎÎÎÎÎÎÎ ÏÏÎÏÎÎ ÎÎ ÎÏÎÏÎÎ:"
+"Î TreeView ÎÎÎÎÎ ÏÏÎÏÎÎÏÏ ÏÎ ÏÎÎ ÏÎÏÎÏÎÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ Gtk, ÎÏÎÏ ÏÏÎ "
+"ÏÎÎÎÏÎ ÎÎÏÏÎ ÏÎÏ ÎÏÎÎ ÎÎÎ ÏÎÏ ÏÏÏÏÎÏ ÏÏÎÎÏÎÎÏÎÎÏ ÏÎÏÏ. ÎÏÏÏÎ ÏÏÎÎ ÎÎÏÏÏ ÏÎÏ "
+"ÏÎÎ ÏÏÏÎÎ ÎÎ ÎÎÎÎÏÎ ÏÏÏ ÎÎÏÎÎÏÎÎ ÎÎÎ ÏÎÎÏÎÎÎÏÎÏÏÎÎÏÎ ÎÎÎÎ ÏÎÏ, Î ÎÎÎÎÎÎÏÏÎ "
+"ÏÏÏÏÎ ÎÎÏÎ ÎÏÎÎÎÏÏÎÏÎ ÎÎÎ ÎÏÎÏÎ ÏÏÏÎÎÎÎÎ."
 
-#: C/gmenu.py.page:60(code)
+#: C/treeview_simple_liststore.js.page:37(section/code)
 #, no-wrap
 msgid ""
 "\n"
-"about = Gio.MenuItem.new(\"About\", \"app.about\")\n"
-"menu.append_item(about)"
+"#!/usr/bin/gjs\n"
+"\n"
+"const GObject = imports.gi.GObject;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"const Pango = imports.gi.Pango;\n"
 msgstr ""
 "\n"
-"about = Gio.MenuItem.new(\"About\", \"app.about\")\n"
-"menu.append_item(about)"
+"#!/usr/bin/gjs\n"
+"\n"
+"const GObject = imports.gi.GObject;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"const Pango = imports.gi.Pango;\n"
 
-#: C/gmenu.py.page:64(p)
+#: C/treeview_simple_liststore.js.page:50(section/code)
+#, no-wrap
 msgid ""
-"We can also add a whole subsection in a menu using <code>insert_section"
-"(position, label, section)</code>, <code>append_section(label, section)</"
-"code>, or <code>prepend_section(label, section)</code>, where <code>label</"
-"code> is the title of the subsection."
+"\n"
+"const TreeViewExample = new Lang.Class({\n"
+"    Name: 'TreeView Example with Simple ListStore',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application({\n"
+"            application_id: 'org.example.jstreeviewsimpleliststore'\n"
+"        });\n"
+"\n"
+"    // Connect 'activate' and 'startup' signals to the callback functions\n"
+"    this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"    this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents window when active\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function() {\n"
+"        this._buildUI ();\n"
+"    },\n"
 msgstr ""
-"ÎÏÎÏÎÏÎÎ ÎÏÎÏÎÏ ÎÎ ÏÏÎÏÎÎÏÎÏÎÎ ÎÎÎ ÎÎÏÎÎÎÏÎ ÏÏÎÎÎÏÏÎÏÎ ÏÎ ÎÎÎ ÎÎÎÎÏ "
-"ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ <code>insert_section(position, label, section)</code>, "
-"<code>append_section(label, section)</code>, Î <code>prepend_section(label, "
-"section)</code>, ÏÏÎÏ <code>label</code> ÎÎÎÎÎ Î ÏÎÏÎÎÏ ÏÎÏ ÏÏÎÎÎÏÏÎÏÎÏ."
+"\n"
+"const TreeViewExample = new Lang.Class({\n"
+"    Name: 'TreeView Example with Simple ListStore',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application({\n"
+"            application_id: 'org.example.jstreeviewsimpleliststore'\n"
+"        });\n"
+"\n"
+"    // Connect 'activate' and 'startup' signals to the callback functions\n"
+"    this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"    this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents window when active\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function() {\n"
+"        this._buildUI ();\n"
+"    },\n"
 
-#: C/gmenu.py.page:65(p)
+#: C/treeview_simple_liststore.js.page:75(section/p)
 msgid ""
-"To add a submenu that will expand and collapse, use <code>insert_submenu"
-"(position, label, section)</code>, <code>append_submenu(label, section)</"
-"code>, or <code>prepend_submenu(label, section)</code>, where <code>label</"
-"code> is the title of the subsection."
+"All the code for this sample goes in the TreeViewExample class. The above "
+"code creates a <link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/";
+"Gtk.Application.html\">Gtk.Application</link> for our widgets and window to "
+"go in."
 msgstr ""
-"ÎÎÎ ÎÎ ÏÏÎÏÎÎÏÎÏÎÎ ÎÎÎ ÏÏÎÎÎÎÎÏ ÏÎÏ ÎÎ ÎÏÎÎÏÎÎÎÎ ÎÎÎ ÎÎ ÏÏÎÏÏÏÏÎÎÎ, "
-"ÏÏÎÏÎÎÎÏÎÎÎÏÏÎ <code>insert_submenu(position, label, section)</code>, "
-"<code>append_submenu(label, section)</code>, Î <code>prepend_submenu(label, "
-"section)</code>, ÏÏÎÏ <code>label</code> ÎÎÎÎÎ Î ÏÎÏÎÎÏ ÏÎÏ ÏÏÎÎÎÏÏÎÏÎÏ."
+"ÎÎÎÏ Î ÎÏÎÎÎÎÏ ÎÎÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÏÎÎÎÎÎÎÎ ÏÏÎÎ ÎÎÎÏÎ TreeViewExample. Î "
+"ÏÎÏÎÏÎÎÏ ÎÏÎÎÎÎÏ ÎÎÎÎÎÏÏÎÎÎ ÎÎÎ <link href=\"http://www.roojs.com/seed/";
+"gir-1.2-gtk-3.0/gjs/Gtk.Application.html\">Gtk.Application</link> ÎÎÎ ÎÎ "
+"ÎÏÎÏÎ ÎÎÏÎ ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÏ ÎÎÎ ÏÎ ÏÎÏÎÎÏÏÎ."
 
-#: C/gmenu.py.page:66(p)
-msgid "To remove an item from the menu, use <code>remove(postion)</code>."
+#: C/treeview_simple_liststore.js.page:76(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function() {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            default_height: 250,\n"
+"            default_width: 100,\n"
+"            border_width: 20,\n"
+"            title: \"My Phone Book\"});\n"
 msgstr ""
-"ÎÎÎ ÏÎÎ ÎÏÎÎÏÎÏÎ ÎÎÏÏ ÏÏÎÎÏÎÎÎÏ ÎÏÏ ÏÎ ÎÎÎÎÏ, ÏÏÎÏÎÎÎÏÎÎÎÏÏÎ <code>remove"
-"(postion)</code>."
-
-#: C/gmenu.py.page:67(p)
-msgid "To set a label for the menu, use <code>set_label(label)</code>."
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function() {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            default_height: 250,\n"
+"            default_width: 100,\n"
+"            border_width: 20,\n"
+"            title: \"My Phone Book\"});\n"
+
+#: C/treeview_simple_liststore.js.page:94(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"        // Create the underlying liststore for the phonebook\n"
+"        this._listStore = new Gtk.ListStore ();\n"
+"        this._listStore.set_column_types ([\n"
+"            GObject.TYPE_STRING,\n"
+"            GObject.TYPE_STRING,\n"
+"            GObject.TYPE_STRING,\n"
+"            GObject.TYPE_STRING]);\n"
 msgstr ""
-"ÎÎÎ ÎÏÎÏÎÏ ÎÎÎÏ ÎÏÎÎÎÏÎÏ ÎÎÎ ÏÎ ÎÎÎÎÏ, ÏÏÎÏÎÎÎÏÎÎÎÏÏÎ <code>set_label(label)"
-"</code>."
-
-#: C/gmenu.py.page:78(link)
-msgid "GVariantType"
-msgstr "GVariantType"
-
-#: C/gmenu.py.page:79(link)
-msgid "GVariant"
-msgstr "GVariant"
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/gmenu.js.page:21(None)
-msgid "@@image: 'media/gmenu.js.png'; md5=16b8bee122197771ec8498dac42f196b"
-msgstr "@@image: 'media/gmenu.js.png'Â md5=16b8bee122197771ec8498dac42f196b"
-
-#: C/gmenu.js.page:7(title)
-msgid "GMenu (JavaScript)"
-msgstr "GMenu (JavaScript)"
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/gmenu.c.page:21(None)
-msgid "@@image: 'media/gmenu.c.png'; md5=f305fc3cae8d16d72b734ee53b559e33"
-msgstr "@@image: 'media/gmenu.c.png'Â md5=f305fc3cae8d16d72b734ee53b559e33"
-
-#: C/gmenu.c.page:7(title)
-msgid "GMenu (C)"
-msgstr "GMenu (C)"
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/getting-ready.page:39(None)
-msgid "@@image: 'media/ubuntu.png'; md5=40845e4a40b335b1958da1403f01c13f"
-msgstr "@@image: 'media/ubuntu.png'Â md5=40845e4a40b335b1958da1403f01c13f"
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/getting-ready.page:44(None)
-msgid "@@image: 'media/fedora.png'; md5=19add55f4349fd9e90f3a50b344ba626"
-msgstr "@@image: 'media/fedora.png'Â md5=19add55f4349fd9e90f3a50b344ba626"
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/getting-ready.page:49(None)
-msgid "@@image: 'media/opensuse.png'; md5=a852a94199328e2f978c7f6a55bf8b54"
-msgstr "@@image: 'media/opensuse.png'Â md5=a852a94199328e2f978c7f6a55bf8b54"
-
-#: C/getting-ready.page:6(title)
-msgid "Install GNOME development tools"
-msgstr "ÎÎÎÎÏÎÏÏÎÏÎ ÎÏÎÎÎÎÎÏÎ ÎÎÎÏÏÏÎÎÏ GNOME"
-
-#: C/getting-ready.page:16(title)
-msgid "Getting ready for GNOME development"
-msgstr "ÎÏÎÎÎÎÏÎÎ ÎÎÎ ÎÎÎÏÏÏÎÎ GNOME"
-
-#: C/getting-ready.page:19(title)
-msgid "Install the required tools"
-msgstr "ÎÎÎÎÏÎÏÏÎÏÎ ÏÏÎ ÎÏÎÎÏÎÏÎÎÎÏÎ ÎÏÎÎÎÎÎÏÎ"
+"\n"
+"        // Create the underlying liststore for the phonebook\n"
+"        this._listStore = new Gtk.ListStore ();\n"
+"        this._listStore.set_column_types ([\n"
+"            GObject.TYPE_STRING,\n"
+"            GObject.TYPE_STRING,\n"
+"            GObject.TYPE_STRING,\n"
+"            GObject.TYPE_STRING]);\n"
 
-#: C/getting-ready.page:20(p)
+#: C/treeview_simple_liststore.js.page:103(section/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."
+"We first create the ListStore like we would any widget. Then we call its "
+"set_column_types method, and pass it an array of GObject data types. (We "
+"could have put the types all on one line, but here we are breaking them up "
+"to make it easier to read.)"
 msgstr ""
-"ÎÏÎÎ ÎÎ ÎÏÎÏÎÏÎÏÎ ÎÎ ÎÎÎÎÎÎÏÎÏÎ ÏÎÎ ÎÏÎÎÎÎÏÎÎÎÏÎ ÎÎ ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÏÎÏÏÎÏÎÏÎ "
-"ÏÎ ÎÏÎÎÏÎÏÎÎÎÎ ÎÏÎÎÎÎÎÎ ÎÎÎ ÏÎÎ ÎÎÎÏÏÏÎÎ ÏÎÏ GNOME ÏÏÎÎ ÏÏÎÎÎÎÎÏÏÎ ÏÎÏ. ÎÏÏÏ "
-"ÎÎÎ ÏÏÎÏÎÎ ÎÎ ÏÎÏÎÎ ÏÎÎÏ ÎÏÏ ÎÎÎÎ ÎÎÏÏÎ."
-
-#: C/getting-ready.page:25(title)
-msgid "Automatic installation"
-msgstr "ÎÏÏÏÎÎÏÎ ÎÎÎÎÏÎÏÏÎÏÎ"
+"ÎÎÎÎÎÏÏÎÎÏÎÎ ÏÏÏÏÎ ÏÎ ListStore ÏÏÏÏ ÎÎ ÎÎÎÎÎÎ ÎÎ ÎÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ. "
+"ÎÏÎÎÏÎ ÎÎÎÎÏÎÎ ÏÎ ÎÎÎÎÎÎ ÏÎÏ set_column_types ÎÎÎ ÏÎÎ ÏÎÏÎÎÎÎ ÏÎ ÎÎÎÎ ÏÎÎÎÎÎ "
+"ÏÏÏÎÏ ÎÎÎÎÎÎÎÏÎ GObject. (ÎÎ ÎÏÎÏÎÏÏÎÎÎ ÎÎ ÎÎÎÎÏÎÎ ÏÎÎÏÏ ÏÎÏÏ ÏÏÏÎÏÏ ÏÎ ÎÎÎ "
+"ÎÏÎÎÎÎ, ÎÎÎÎ ÎÎÏ ÏÎ ÎÎÎÎÏÎÏÎÎ ÎÎÎ ÎÎÎÏÎÏÎÏÎÏÎ ÏÎÏ ÎÎÎÎÎÏÏÎÏ.)"
 
-#: C/getting-ready.page:26(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>."
+#: C/treeview_simple_liststore.js.page:104(section/p)
+msgid "The GObject data types you can use include:"
 msgstr ""
-"ÎÎ ÎÎÎ ÎÎÎÎÎÏÏÎÎÎÎ ÎÎÎÎÎÎÎ ÎÎ ÏÏÎÏÎÎ ÎÎ ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÎÏÎÏÏÎÏÎÏÎ ÎÏÎÎ ÏÎ "
-"ÎÏÎÎÏÎÏÎÎÎÎ ÏÎÎÎÏÎ ÎÎ ÎÎÎÎ ÏÏÎ <link href=\"media/gnome-devtools.catalog"
-"\">ÎÎÎÎÏÎÏÏÎÏÎ ÏÏÏÎ</link>."
+"ÎÎ ÏÏÏÎÎ ÎÎÎÎÎÎÎÏÎ GObject ÏÎÏ ÎÏÎÏÎÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÏÎÏÎÎÎÎÎÎÎÎÏÎ:"
 
-#: C/getting-ready.page:31(title)
-msgid "Manual installation"
-msgstr "ÎÎÎÏÎÎÎÎÎÏÎ ÎÎÎÎÏÎÏÏÎÏÎ"
+#: C/treeview_simple_liststore.js.page:109(item/p)
+msgid "<file>gtk.gdk.Pixbuf</file> -- A picture"
+msgstr "<file>gtk.gdk.Pixbuf</file> -- ÎÎÎ ÎÎÎÏÎÎ"
 
-#: C/getting-ready.page:32(p)
+#: C/treeview_simple_liststore.js.page:111(section/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:"
+"In this case, we're making a ListStore of four columns, each one containing "
+"string values."
 msgstr ""
-"ÎÎ ÏÏÎÏÎÎÎÏÎ ÏÎÎÏÎÎÎÎÎÏÎ ÎÎÎÎÏÎÏÏÎÏÎ ÎÏÎÏÎÎÏÎ ÎÎ ÎÏÎÎÏÎ ÎÎÎÎÎÎÏ ÎÎÎ ÏÎÏ "
-"ÏÎÎÎÎÎÎÏ ÎÎÎÎÎÎÎÏ ÏÏÎ <link href=\"http://live.gnome.org/DeveloperTools/";
-"Installation\">ÎÎÎÎ GNOME</link>. ÎÎÏÎÏÏÎ ÏÏÎÎ ÎÎÎÏÎÎ ÎÎÎ ÎÎ ÏÎÏÎ ÎÎÎÏÎ ÏÏÎ "
-"ÏÎÎÎÎÎ ÎÎÎÎÏÎÏÏÎÏÎÏ ÎÎÎ ÏÎ ÎÎÎÎÎÎÎ ÏÎÏ:"
-
-#: C/getting-ready.page:39(media)
-msgid "Ubuntu"
-msgstr "Ubuntu"
-
-#: C/getting-ready.page:44(media)
-msgid "Fedora"
-msgstr "Fedora"
-
-#: C/getting-ready.page:49(media)
-msgid "OpenSuSE"
-msgstr "OpenSuSE"
-
-#: C/getting-ready.page:52(link)
-msgid "Others"
-msgstr "ÎÎÎÎ"
-
-#: C/getting-ready.page:59(title)
-msgid "Required versions"
-msgstr "ÎÏÎÎÏÎÏÎÎÎÎÏ ÎÎÎÏÏÎÎÏ"
+"ÎÎ ÎÏÏÎÎ ÏÎÎ ÏÎÏÎÏÏÏÏÎ, ÎÎÎÎÏÎÎ ÎÎÎ ListStore ÏÏÎ ÏÎÏÏÎÏÏÎ ÏÏÎÎÏÎ, ÎÎÎÎÎÎÎ "
+"ÏÎÏÎÎÏÎÎ ÏÎÎÎÏ ÏÏÎÎÎÎÎÏÎÎÏÎÏ."
 
-#: C/getting-ready.page:60(p)
+#: C/treeview_simple_liststore.js.page:114(section/code)
+#, no-wrap
 msgid ""
-"The guides assume that you have at least the following versions of the tools "
-"installed:"
+"\n"
+"        // Data to go in the phonebook\n"
+"        this.phonebook =\n"
+"        let phonebook =\n"
+"            [{ name: \"Jurg\", surname: \"Billeter\", phone: \"555-0123\",\n"
+"                description: \"A friendly person.\"},\n"
+"             { name: \"Johannes\", surname: \"Schmid\", phone: \"555-1234\",\n"
+"                description: \"Easy phone number to remember.\"},\n"
+"             { name: \"Julita\", surname: \"Inca\", phone: \"555-2345\",\n"
+"                description: \"Another friendly person.\"},\n"
+"             { name: \"Javier\", surname: \"Jardon\", phone: \"555-3456\",\n"
+"                description: \"Bring fish for his penguins.\"},\n"
+"             { name: \"Jason\", surname: \"Clinton\", phone: \"555-4567\",\n"
+"                description: \"His cake's not a lie.\"},\n"
+"             { name: \"Random J.\", surname: \"Hacker\", phone: \"555-5678\",\n"
+"                description: \"Very random!\"}];\n"
 msgstr ""
-"ÎÎ ÎÎÎÎÎÎ ÏÏÎÎÎÏÎÏÎ ÏÏÎ ÎÏÎÏÎ ÏÎÏÎÎÏÎÏÏÎÎ ÏÎÏ ÏÎÏÎÎÎÏÏ ÎÎÎÏÏÎÎÏ ÏÏÎ "
-"ÎÏÎÎÎÎÎÏÎ ÎÎÎÎÏÎÏÏÎÎÎÎÎÏ:"
-
-#: C/getting-ready.page:63(p)
-msgid "Anjuta - 3.0"
-msgstr "Anjuta - 3.0"
-
-#: C/getting-ready.page:64(p)
-msgid "Devhelp - 3.0"
-msgstr "Devhelp - 3.0"
-
-#: C/getting-ready.page:65(p)
-msgid "Glade - 3.10"
-msgstr "Glade - 3.10"
-
-#: C/getting-ready.page:67(p)
+"\n"
+"        // Data to go in the phonebook\n"
+"        this.phonebook =\n"
+"        let phonebook =\n"
+"            [{ name: \"Jurg\", surname: \"Billeter\", phone: \"555-0123\",\n"
+"                description: \"A friendly person.\"},\n"
+"             { name: \"Johannes\", surname: \"Schmid\", phone: \"555-1234\",\n"
+"                description: \"Easy phone number to remember.\"},\n"
+"             { name: \"Julita\", surname: \"Inca\", phone: \"555-2345\",\n"
+"                description: \"Another friendly person.\"},\n"
+"             { name: \"Javier\", surname: \"Jardon\", phone: \"555-3456\",\n"
+"                description: \"Bring fish for his penguins.\"},\n"
+"             { name: \"Jason\", surname: \"Clinton\", phone: \"555-4567\",\n"
+"                description: \"His cake's not a lie.\"},\n"
+"             { name: \"Random J.\", surname: \"Hacker\", phone: \"555-5678\",\n"
+"                description: \"Very random!\"}];\n"
+
+#: C/treeview_simple_liststore.js.page:131(section/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>."
+"Here we have the information to go in the ListStore. It's an array of "
+"objects, each one corresponding to a single entry in our phone book."
 msgstr ""
-"ÎÏÏÎÎÎ, ÎÏÎÎÎÎÎÏÎÏÎ ÎÎÏÏÎÏÎ ÎÎÎÎÏÎ ÎÎ ÎÎÏÎÎÏÎÎ ÎÏÎÏÎÏ. ÎÎÏ ÎÏÏÏÎÎÏÏÎ ÎÎÎÎ "
-"ÎÎÎÏÎÎÎÎÏÎ ÎÎ ÏÎ <link xref=\"index\">ÏÎÏÎÎÎÎÎÎÎÏÎ</link>."
+"ÎÎÏ ÎÏÎÏÎÎ ÏÎÎ ÏÎÎÏÎÏÎÏÎÎ ÎÎÏÎÎÎÏÎÏ ÏÏÎ ListStore. ÎÎÎÎÎ ÎÎÎÏ ÏÎÎÎÎÎÏ "
+"ÎÎÏÎÎÎÎÎÎÎÏÎ, ÏÎÏ ÎÎÎÎÎÎ ÎÎÏÎÏÏÎÎÏÎÎ ÏÎ ÎÎÎ ÎÎÎÎÎÎÎÎ ÎÎÎÏÎÏÎ ÏÏÎÎ ÏÎÎÎÏÏÎÎÎÏ "
+"ÎÎÏÎÎÎÎÎ."
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/fontchooserwidget.py.page:23(None)
+#: C/treeview_simple_liststore.js.page:132(section/p)
 msgid ""
-"@@image: 'media/fontchooserwidget.png'; md5=9161245e307b432ae1313e9a9941edae"
+"Note that the TreeView in the screenshot doesn't actually show the data from "
+"the \"description\" properties. Instead, that information's shown in the "
+"Label beneath it, for whichever row that you click on. That's because the "
+"TreeView and ListStore are two separate things, and a TreeView can show all "
+"or part of a ListStore, and display what's in it in different ways. You can "
+"even have multiple widgets show things from the same ListStore, like the "
+"Label in our example or even a second TreeView."
 msgstr ""
-"@@image: 'media/fontchooserwidget.png'Â md5=9161245e307b432ae1313e9a9941edae"
-
-#: C/fontchooserwidget.py.page:7(title)
-msgid "FontChooserWidget (Python)"
-msgstr "FontChooserWidget (Python)"
-
-#: C/fontchooserwidget.py.page:18(desc)
-msgid "A widget to choose a font"
-msgstr "ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÎÎ ÎÏÎÎÎÎÎ ÎÎÎÏ ÎÏÎÎÎÎÏÎÏÎÎÏÎÏ"
-
-#: C/fontchooserwidget.py.page:21(title)
-msgid "FontChooserWidget"
-msgstr "FontChooserWidget"
-
-#: C/fontchooserwidget.py.page:24(p)
-msgid "A FontChooserWidget with a callback function."
-msgstr "ÎÎÎ FontChooserWidget ÎÎ ÎÎÎ ÏÏÎÎÏÏÎÏÎ ÎÏÎÎÎÎÎÎÏÎÏ."
-
-#: C/fontchooserwidget.py.page:33(title)
-msgid "Useful methods for a FontChooserWidget"
-msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ FontChooserWidget"
+"ÎÎÎÎÎÏÏÏÎ ÏÏÎ Î TreeView ÏÏÎ ÏÏÎÎÎÎÏÏÏÏÎ ÎÎÎ ÎÎÏÎÎÎÎÎÎ ÏÏÎÎÎÎÏÎ ÏÎ ÎÎÎÎÎÎÎÎ "
+"ÎÏÏ ÏÎÏ ÎÎÎÏÏÎÏÎÏ \"description\". ÎÏÎ ÎÎÏÎ ÏÎÏ, ÎÏÏÎ Î ÏÎÎÏÎÏÎÏÎÎ "
+"ÎÎÏÎÎÎÎÎÏÎÎ ÏÏÎÎ ÎÏÎÎÎÏÎ ÎÏÏ ÎÎÏÏ ÏÎÏ, ÎÎÎ ÎÎÎÎ ÎÏÎÎÎÎ ÏÎÏ ÏÎÏÎÏÎ. ÎÏÏÏ "
+"ÏÏÎÎÎÎÎÎÎ ÎÏÎÎÎÎ Î TreeView ÎÎÎ Î ListStore ÎÎÎÎÎ ÎÏÎ ÎÎÏÏÏÎÏÏÎ ÏÏÎÎÎÎÏÎ ÎÎÎ "
+"ÎÎÎ TreeView ÎÏÎÏÎÎ ÎÎ ÎÎÏÎÎÎÏÎÎ ÏÎÎ Î ÎÎÏÎÏ ÏÎÏ ListStore ÎÎÎ ÏÏÎÎÎÎÎÎÎ ÏÎ "
+"ÎÎÎÎÎ ÏÎ ÎÏÏÎ ÎÎ ÎÎÎÏÎÏÎÏÎÎÎÏÏ ÏÏÏÏÎÏÏ. ÎÏÎÏÎÎÏÎ ÎÎÏÎÎ ÎÎ ÎÏÎÏÎ ÏÎÎÎÎÏÎÎ "
+"ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÏÎÏ ÎÎÏÎÎÎÎÎÏÎ ÏÏÎÎÎÎÏÎ ÎÏÏ ÏÎÎ ÎÎÎÎ ListStore, ÏÏÏÏ ÏÎÎ "
+"ÎÏÎÎÎÏÎ ÏÏÎ ÏÎÏÎÎÎÎÎÎÎ ÎÎÏ Î ÎÎÏÎÎ ÎÎÎ ÎÎÏÏÎÏÎ TreeView."
 
-#: C/fontchooserwidget.py.page:36(p)
+#: C/treeview_simple_liststore.js.page:134(section/code)
+#, no-wrap
 msgid ""
-"To set the font which is initially selected, use <code>set_font(font)</code> "
-"(where <code>font</code> is the font name) or <code>set_font_desc(font)</"
-"code> (where <code>font</code> is the PangoFontDescription)."
+"\n"
+"        for (i = 0; i &lt; phonebook.length; i++ ) {\n"
+"            let contact = phonebook [i];\n"
+"            this._listStore.set (this._listStore.append(), [0, 1, 2, 3],\n"
+"                [contact.name, contact.surname, contact.phone, contact.description]);\n"
+"        }\n"
 msgstr ""
-"ÎÎÎ ÎÏÎÏÎÏ ÏÎÏ ÎÏÎÎÎÎÏÎÏÎÎÏÎÏ ÏÎÏ ÎÏÏÎÎÎ ÎÏÎÎÎÏÏÎÎÎ, ÏÏÎÏÎÎÎÏÎÎÎÏÏÎ "
-"<code>set_font(font)</code> (ÏÏÎÏ <code>font</code> ÎÎÎÎÎ ÏÎ ÏÎÎÎÎ ÏÎÏ "
-"ÎÏÎÎÎÎÏÎÏÎÎÏÎÏ) Î <code>set_font_desc(font)</code> (ÏÏÎÏ <code>font</code> "
-"ÎÎÎÎÎ Î PangoFontDescription)."
+"\n"
+"        for (i = 0; i &lt; phonebook.length; i++ ) {\n"
+"            let contact = phonebook [i];\n"
+"            this._listStore.set (this._listStore.append(), [0, 1, 2, 3],\n"
+"                [contact.name, contact.surname, contact.phone, contact.description]);\n"
+"        }\n"
 
-#: C/fontchooserwidget.py.page:37(p)
+#: C/treeview_simple_liststore.js.page:141(section/p)
 msgid ""
-"To get the selected font use <code>get_font()</code> or <code>get_font_desc()"
-"</code>."
+"This <file>for</file> loop puts the strings from our phonebook into our "
+"ListStore in order. In order, we pass the ListStore's set method the iter "
+"that points to the correct row, an array which says which columns we want to "
+"set, and an array which contains the data we want to put into those columns."
 msgstr ""
-"ÎÎÎ ÏÎ ÎÎÏÎ ÏÎÏ ÎÏÎÎÎÎÎÎÎÎÏ ÎÏÎÎÎÎÏÎÏÎÎÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÏÏÎ <code>get_font()</"
-"code> Î <code>get_font_desc()</code>."
+"ÎÏÏÏÏ Î ÎÏÏÏÎÏ <file>for</file> ÎÎÎÎÎ ÏÎÏ ÏÏÎÎÎÎÎÏÎÎÏÎÏ ÎÏÏ ÏÎÎ ÏÎÎÎÏÏÎÎÎÏ "
+"ÎÎÏÎÎÎÎÏ ÎÎÏ ÏÏÎ ListStore ÎÎÏ ÏÎ ÏÎÎÏÎ. ÎÎÎ ÎÎ ÏÎÏÎÏÎÏÎÎ ÏÎÎ ÎÎÎÎÎÎ ÎÏÎÏÎÎÏ "
+"ÏÎÏ ListStore ÏÏÎÎ ÎÏÎÎÎÎÎÏÎ ÏÎÏ ÎÎÎÏÎÎÎ ÏÏÎ ÏÏÏÏÎ ÎÏÎÎÎÎ, ÏÏÎÎÎÎÎÏÎÎ ÎÎÎÏ "
+"ÏÎÎÎÎÎÏ ÏÎÏ ÎÎÎÎ ÏÎÎÎÏ ÏÏÎÎÎÏ ÎÎÎÎÏÎÎ ÎÎ ÎÏÎÏÎÏÎÎ ÎÎÎ ÎÎÎÏ ÏÎÎÎÎÎÏ ÏÎÏ "
+"ÏÎÏÎÎÏÎÎ ÏÎ ÎÎÎÎÎÎÎÎ ÏÎÏ ÎÎÎÎÏÎÎ ÎÎ ÎÎÎÎÏÎÎ ÏÎ ÎÏÏÎÏ ÏÎÏ ÏÏÎÎÎÏ."
 
-#: C/fontchooserwidget.py.page:38(p)
+#: C/treeview_simple_liststore.js.page:142(section/p)
 msgid ""
-"To change the text which is shown in the preview area, use "
-"<code>set_preview_text()</code>."
+"A ListStore's <file>append</file> method adds a horizontal row onto it (it "
+"starts out with none), and returns a TreeIter pointing to that row like a "
+"cursor. So by passing <file>this._listStore.append()</file> to the ListStore "
+"as a property, we're creating a new row and telling the <file>set</file> "
+"method which row to set data for at the same time."
 msgstr ""
-"ÎÎÎ ÎÎÎÎÎÎ ÏÎÏ ÎÎÎÎÎÎÎÏ ÏÎÏ ÏÏÎÎÎÎÎÎÏÎÎ ÏÏÎÎ ÏÎÏÎÎÏÎ ÏÏÎÎÏÎÏÎÏÏÎÏÎÏ, "
-"ÏÏÎÏÎÎÎÏÎÎÎÏÏÎ <code>set_preview_text()</code>."
-
-#: C/fontchooserwidget.py.page:45(link)
-msgid "GtkFontChooserWidget"
-msgstr "GtkFontChooserWidget"
-
-#: C/filechooserdialog.vala.page:7(title)
-msgid "FileChooserDialog (Vala)"
-msgstr "FileChooserDialog (Vala)"
-
-#: C/filechooserdialog.vala.page:20(desc)
-msgid "A dialog suitable for \"Open\" and \"Save\" commands."
-msgstr "ÎÎÎÏ ÎÎÎÎÎÎÎÏ ÎÎÏÎÎÎÎÎÎÏ ÎÎÎ ÏÎÏ ÎÎÏÎÎÎÏ \"Open\" ÎÎÎ \"Save\"."
-
-#: C/filechooserdialog.vala.page:23(title)
-#: C/filechooserdialog.vala.page:40(link)
-#: C/filechooserdialog.py.page:23(title)
-msgid "FileChooserDialog"
-msgstr "FileChooserDialog"
+"ÎÎÎ ÎÎÎÎÎÎÏ <file>append</file> ÏÎÏ ListStore ÏÏÎÏÎÎÏÎÎ ÎÎÎ ÎÏÎÎÏÎÏÎÎ ÎÏÎÎÎÎ "
+"ÏÎ ÎÏÏÎ (ÎÎÎÎÎÎ ÏÏÏÎÏ ÎÎÎÎÎ) ÎÎÎ ÎÏÎÏÏÏÎÏÎÎ ÎÎÎ TreeIter ÏÎÏ ÎÎÎÏÎÎÎ ÏÎ "
+"ÎÏÏÎÎ ÏÎ ÎÏÎÎÎÎ ÏÏÏÏ ÎÎÎÏ ÎÏÎÎÎÎÏ. ÎÏÏÎ ÏÎÏÎÏÎÏÎÏ ÏÎ <file>this._listStore."
+"append()</file> ÏÏÎ ListStore ÏÏ ÎÎÎ ÎÎÎÏÏÎÏÎ, ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ ÎÎÎ ÎÏÎÎÎÎ "
+"ÎÎÎ ÎÎÎÎ ÏÏÎ ÎÎÎÎÎÎ <file>set</file> ÏÎÎÎ ÎÏÎÎÎÎ ÎÎ ÎÏÎÏÎÎ ÏÎ ÎÎÎÎÎÎÎÎ "
+"ÏÎÏÏÏÏÏÎÎÎ."
 
-#: C/filechooserdialog.vala.page:25(title)
-msgid "Overview of the example"
-msgstr "ÎÏÎÏÎÏÏÎÏÎ ÏÎÏ ÏÎÏÎÎÎÎÎÎÎÏÎÏ"
+#: C/treeview_simple_liststore.js.page:147(section/title)
+msgid "Creating the TreeView"
+msgstr "ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ TreeView"
 
-#: C/filechooserdialog.vala.page:26(p)
+#: C/treeview_simple_liststore.js.page:148(section/code)
+#, no-wrap
 msgid ""
-"This example demonstrates how the FileChooserDialog can be used. It is "
-"incorporated into a very simple text editor application. All the <link xref="
-"\"menubar.vala#win-app\">actions</link>, including the \"open\", \"save\" "
-"and \"save-as\" commands can be found in the <link xref=\"gmenu.vala\">app-"
-"menu</link>. Here, the app-menu is created using an XML UI file, which is "
-"then imported into the application using Gtk.Builder."
+"\n"
+"        // Create the treeview\n"
+"        this._treeView = new Gtk.TreeView ({\n"
+"            expand: true,\n"
+"            model: this._listStore });\n"
 msgstr ""
-"ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÎÎÎÏÎÎÎ ÏÏÏ ÎÏÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÎÎ Î FileChooserDialog. "
-"ÎÎÎÎÎ ÎÎÏÏÎÎÏÏÎÎÎÎÏ ÏÎ ÎÎÎ ÏÎÎÎÎ ÎÏÎÎ ÎÏÎÏÎÎÎÎ ÎÏÎÎÎÏÎÎÏÏÎ ÎÎÎÎÎÎÎÏ. ÎÎÎÏ ÎÎ "
-"<link xref=\"menubar.vala#win-app\">ÎÎÎÏÎÎÎÎÏ</link>, ÏÏÎÏÎÏÎÎÎÎÎÎÎÎÎÏÎÏ ÏÎÏ "
-"ÎÎÏÎÎÎÏ \"open\", \"save\" ÎÎÎ \"save-as\" ÎÏÎÏÎÏÎ ÎÎ ÎÏÎÎÎÏÎ ÏÏÎ <link xref="
-"\"gmenu.vala\">app-menu</link>. ÎÎÏ, ÏÎ ÎÎÎÎÏ ÎÏÎÏÎÎÎÏÎ ÎÎÎÎÎÏÏÎÎÎÎÎÎ "
-"ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÎÎÎ ÎÏÏÎÎÎ UI XML, ÏÎÏ ÎÏÎÎÏÎ ÎÎÏÎÏÎÎ ÏÏÎÎ ÎÏÎÏÎÎÎÎ "
-"ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ Gtk.Builder."
-
-#: C/filechooserdialog.vala.page:28(title)
-msgid "XML UI file which creates the app-menu"
-msgstr "ÎÎ ÎÏÏÎÎÎ UI XML ÏÎÏ ÎÎÎÎÎÏÏÎÎÎ ÏÎ ÎÎÎÎÏ ÎÏÎÏÎÎÎÏÎ"
-
-#: C/filechooserdialog.vala.page:31(title)
-msgid "Vala Code"
-msgstr "ÎÏÎÎÎÎÏ Vala"
-
-#: C/filechooserdialog.vala.page:39(link)
-msgid "FileChooser"
-msgstr "FileChooser"
-
-#: C/filechooserdialog.vala.page:42(link)
-msgid "GLib.ActionEntry"
-msgstr "GLib.ActionEntry"
+"\n"
+"        // Create the treeview\n"
+"        this._treeView = new Gtk.TreeView ({\n"
+"            expand: true,\n"
+"            model: this._listStore });\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/filechooserdialog.py.page:24(None)
+#: C/treeview_simple_liststore.js.page:154(section/p)
 msgid ""
-"@@image: 'media/filechooserdialog_save.png'; "
-"md5=3a7a3b71b9d3a36066857843b68ff27f"
+"Here we create a basic TreeView widget, that expands both horizontally and "
+"vertically to use as much space as needed. We set it to use the ListStore we "
+"created as its \"model\", or the thing it'll show us stuff from."
 msgstr ""
-"@@image: 'media/filechooserdialog_save.png'Â "
-"md5=3a7a3b71b9d3a36066857843b68ff27f"
+"ÎÎÏ ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ ÎÎÏÎÎÏ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ TreeView, ÏÎÏ ÎÏÎÎÏÎÎÎÎÏÎÎ "
+"ÎÏÎÎÏÎÏÎÎ ÎÎÎ ÎÎÎÎÏÎ ÎÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÏÏÎ ÏÏÏÎ ÏÏÎÎÎÎÎÏÎÎ. ÎÎ ÎÏÎÎÎÏÎÎ "
+"ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÏÎ ListStore ÏÎÏ ÎÎÎÎÎÏÏÎÎÏÎÎÎ ÏÏ ÏÎ \"model\" ÏÎÏ, Î ÏÎ "
+"ÏÏÎÎÎÎ ÏÎÏ ÎÎ ÎÎÏ ÎÎÎÎÎÎ ÏÎ ÏÎÎÎÏ."
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/filechooserdialog.py.page:26(None)
+#: C/treeview_simple_liststore.js.page:156(section/code)
+#, no-wrap
 msgid ""
-"@@image: 'media/filechooserdialog_menu.png'; "
-"md5=8a75f04127a70eba0ed68a9eb1d3bbca"
+"\n"
+"        // Create the columns for the address book\n"
+"        let firstName = new Gtk.TreeViewColumn ({ title: \"First Name\" });\n"
+"        let lastName = new Gtk.TreeViewColumn ({ title: \"Last Name\" });\n"
+"        let phone = new Gtk.TreeViewColumn ({ title: \"Phone Number\" });\n"
 msgstr ""
-"@@image: 'media/filechooserdialog_menu.png'Â "
-"md5=8a75f04127a70eba0ed68a9eb1d3bbca"
-
-#: C/filechooserdialog.py.page:7(title)
-msgid "FileChooserDialog (Python)"
-msgstr "FileChooserDialog (Python)"
-
-#: C/filechooserdialog.py.page:20(desc)
-msgid "A dialog suitable for \"Open\" and \"Save\" commands"
-msgstr "ÎÎÎÏ ÎÎÎÎÎÎÎÏ ÎÎÏÎÎÎÎÎÎÏ ÎÎÎ ÏÎÏ ÎÎÏÎÎÎÏ \"Open\" ÎÎÎ \"Save\""
+"\n"
+"        // Create the columns for the address book\n"
+"        let firstName = new Gtk.TreeViewColumn ({ title: \"First Name\" });\n"
+"        let lastName = new Gtk.TreeViewColumn ({ title: \"Last Name\" });\n"
+"        let phone = new Gtk.TreeViewColumn ({ title: \"Phone Number\" });\n"
 
-#: C/filechooserdialog.py.page:25(p)
+#: C/treeview_simple_liststore.js.page:162(section/p)
 msgid ""
-"This FileChooserDialog saves a text document, which can be opened or written "
-"from scratch in a TextView (see below)."
+"Now we create each of the vertical TreeViewColumns we'll see in the "
+"TreeView. The title for each one goes at the top, as you can see in the "
+"screenshot."
 msgstr ""
-"ÎÏÏÏÏ Î FileChooserDialog ÎÏÎÎÎÎÎÏÎÎ ÎÎÎ ÎÎÎÏÎÏÎ ÎÎÎÎÎÎÎÏ, ÏÎÏ ÎÏÎÏÎÎ ÎÎ "
-"ÎÎÎÎÏÏÎÎ Î ÎÎ ÎÏÎÏÏÎÎ ÎÏÏ ÏÎÎ ÎÏÏÎ ÏÎ ÎÎÎ TextView (ÎÎÎÏÎ ÏÎÏÎÎÎÏÏ)."
+"ÎÏÏÎ ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎÎÎÎÎ ÎÏÏ ÏÎÏ ÎÎÎÎÏÎÏ TreeViewColumns ÏÎÏ ÎÎÎÏÎÏÎÎ ÏÏÎÎ "
+"TreeView. Î ÏÎÏÎÎÏ ÎÎÎ ÎÎÎÎÎÎÎ ÏÎÎÎÎÎÎÎ ÏÏÎÎ ÎÎÏÏÏÎ, ÏÏÏÏ ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÏÎ "
+"ÏÏÎ ÏÏÎÎÎÎÏÏÏÏÎ."
 
-#: C/filechooserdialog.py.page:27(p)
-msgid "It is also possible to call a FileChooserDialog to open a new document."
+#: C/treeview_simple_liststore.js.page:164(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"        // Create a cell renderer for when bold text is needed\n"
+"        let bold = new Gtk.CellRendererText ({\n"
+"            weight: Pango.Weight.BOLD });\n"
+"\n"
+"        // Create a cell renderer for normal text\n"
+"        let normal = new Gtk.CellRendererText ();\n"
+"\n"
+"        // Pack the cell renderers into the columns\n"
+"        firstName.pack_start (bold, true);\n"
+"        lastName.pack_start (normal, true);\n"
+"        phone.pack_start (normal, true);\n"
 msgstr ""
-"ÎÎÎÎÎ ÎÏÎÏÎÏ ÏÎÎÎÎÏ ÎÎ ÎÎÎÎÎÏÎ ÎÎÎÎ FileChooserDialog ÎÎÎ ÎÎ ÎÎÎÎÎÎÏÎ ÎÎÎ "
-"ÎÎÎ ÎÎÎÏÎÏÎ."
+"\n"
+"        // Create a cell renderer for when bold text is needed\n"
+"        let bold = new Gtk.CellRendererText ({\n"
+"            weight: Pango.Weight.BOLD });\n"
+"\n"
+"        // Create a cell renderer for normal text\n"
+"        let normal = new Gtk.CellRendererText ();\n"
+"\n"
+"        // Pack the cell renderers into the columns\n"
+"        firstName.pack_start (bold, true);\n"
+"        lastName.pack_start (normal, true);\n"
+"        phone.pack_start (normal, true);\n"
 
-#: C/filechooserdialog.py.page:32(title)
-msgid "Steps to recreate the example"
-msgstr "ÎÎÎÎÏÎ ÎÎÎ ÎÎÎÎÎÎÎÎÏÏÎÎÎ ÏÎÏ ÏÎÏÎÎÎÎÎÎÎÏÎÏ"
+#: C/treeview_simple_liststore.js.page:177(section/p)
+msgid ""
+"Here we create the CellRenderers that we'll use to display the text from our "
+"ListStore, and pack them into the TreeViewColumns. Each CellRendererText is "
+"used for all the entries in that column. Our normal CellRendererText just "
+"creates plain text, while our bold one uses heavier-weight text. We put it "
+"into the first name column, and tell the other two to use copies of the "
+"normal one. The \"true\" used as the second parameter for the "
+"<file>pack_start</file> method tells it to expand the cells when possible, "
+"instead of keeping them compact."
+msgstr ""
+"ÎÎÏ ÎÎÎÎÎÏÏÎÎÏÎÎ ÏÎÏÏ CellRenderers ÏÎÏ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÎÎ ÏÎÎ ÎÎÏÎÎÎÏÎ "
+"ÏÎÏ ÎÎÎÎÎÎÎÏ ÎÏÏ ÏÎ ListStore ÎÎÏ ÎÎÎ ÏÎÏÏ ÏÎÎÎÏÎÏÎÏÎÎ ÏÏÎÏ TreeViewColumns. "
+"ÎÎÎÎ CellRendererText ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÎÎÎ ÏÎÎÏ ÏÎÏ ÎÎÏÎÏÏÏÎÏÎÎÏ ÏÎ ÎÏÏÎÎ ÏÎ "
+"ÏÏÎÎÎ. ÎÎ ÎÎÎÎÎÎÎÏ ÎÎÏ CellRendererText ÎÏÎÎ ÎÎÎÎÎÏÏÎÎÎ ÎÏÎÏ ÎÎÎÎÎÎÎ, ÎÎÏ ÏÎ "
+"ÎÎÏÎÎÎ ÎÎÎÎÎÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎ ÎÎÎÎÎÎÎ ÎÎÏÏÏÎÏÎÏ ÏÎÏÎÏÏ. ÎÎ ÎÎÎÎÏÎÎ ÏÏÎ ÏÏÎÎÎ "
+"ÏÏÏÏÎÏ ÎÎÏÎÎÏÎÏ ÎÎÎ ÎÎÎÎ ÏÏÎ ÎÎÎÎ ÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÎÏÎÎÏÎÏÎ ÏÎÏ "
+"ÎÎÎÎÎÎÎÎÏ. ÎÎ \"ÎÎÎÎÎÏ\" ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÏÏ Î ÎÎÏÏÎÏÎ ÏÎÏÎÎÎÏÏÎÏ ÎÎÎ ÏÎ "
+"ÎÎÎÎÎÎ <file>pack_start</file> ÏÎÏ ÏÎÏ ÎÎÎÎ ÎÎ ÎÏÎÎÏÎÎÎÎÎ ÏÎ ÎÎÎÎÎ ÏÏÎÎ "
+"ÎÎÎÎÎ ÎÏÎÎÏÏ, ÎÎÏÎ ÎÎ ÏÎ ÎÏÎÏÎÏÎÎ ÏÏÎÏÎÎÎ."
 
-#: C/filechooserdialog.py.page:34(p)
+#: C/treeview_simple_liststore.js.page:178(note/p)
 msgid ""
-"Create a file .ui to describe an app-menu with items \"New\", \"Open\", "
-"\"Save\", \"Save as\", and \"Quit\". This can be done with Glade or in a "
-"text editor. See <link xref=\"#xml\"/>"
+"<link href=\"http://www.pygtk.org/docs/pygtk/pango-constants.html\";>Here is "
+"a list</link> of other text properties you can use. In order to use these "
+"Pango constants, make sure to put the line <file>const Pango = imports.gi."
+"Pango;</file> at the beginning of your code like we did."
 msgstr ""
-"ÎÎÎÎÎÏÏÎÎÏÏÎ ÎÎÎ ÎÏÏÎÎÎ .ui ÎÎÎ ÎÎ ÏÎÏÎÎÏÎÏÎÏÎ ÎÎÎ ÎÎÎÎÏ ÎÏÎÏÎÎÎÏÎ ÎÎ "
-"ÏÏÎÎÏÎÎÎ \"New\", \"Open\", \"Save\", \"Save as\" ÎÎÎ \"Quit\". ÎÏÏÏ ÎÏÎÏÎÎ "
-"ÎÎ ÎÎÎÎÎ ÎÎ Glade Î ÎÎÎÎ ÎÏÎÎÎÏÎÎÏÏÎ ÎÎÎÎÎÎÎÏ. ÎÎÎÏÎ <link xref=\"#xml\"/>"
+"<link href=\"http://www.pygtk.org/docs/pygtk/pango-constants.html\";>ÎÎÏ "
+"ÎÎÎÎÎ ÎÎÎ ÎÎÏÏÎ</link> ÏÏÎ ÎÎÎÏÎ ÎÎÎÎÏÎÏÏÎ ÏÎÏ ÎÎÎÎÎÎÎÏ ÏÎÏ ÎÏÎÏÎÎÏÎ ÎÎ "
+"ÎÎÎÏÎ. ÎÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÎÏÏÎÏ ÏÎÏ ÏÏÎÎÎÏÎÏ Pango, ÎÎÎÎÎÏÎÎÎÏÎ ÏÏÎ "
+"ÎÎÎÎÏÎ ÏÎ ÎÏÎÎÎÎ <file>const Pango = imports.gi.Pango;</file> ÏÏÎÎ ÎÏÏÎ ÏÎÏ "
+"ÎÏÎÎÎÎ ÏÎÏ ÏÏÏÏ ÎÎÎÎÎÎ."
 
-#: C/filechooserdialog.py.page:35(p)
+#: C/treeview_simple_liststore.js.page:180(section/code)
+#, no-wrap
 msgid ""
-"Create a Python program for a Gtk.TextView with a Gtk.Buffer <code>self."
-"buffer</code>, and a <code>self.file</code> which will be a Gio.File and we "
-"set initially as <code>None</code>."
+"\n"
+"        firstName.add_attribute (bold, \"text\", 0);\n"
+"        lastName.add_attribute (normal, \"text\", 1);\n"
+"        phone.add_attribute (normal, \"text\", 2);\n"
+"\n"
+"        // Insert the columns into the treeview\n"
+"        this._treeView.insert_column (firstName, 0);\n"
+"        this._treeView.insert_column (lastName, 1);\n"
+"        this._treeView.insert_column (phone, 2);\n"
 msgstr ""
-"ÎÎÎÎÎÏÏÎÎÏÏÎ ÎÎÎ ÏÏÏÎÏÎÎÎÎ Python ÎÎÎ ÎÎÎ Gtk.TextView ÎÎ ÎÎÎ Gtk.Buffer "
-"<code>self.buffer</code> ÎÎÎ ÎÎÎ <code>self.file</code> ÏÎÏ ÎÎ ÎÎÎÎÎ ÎÎÎ Gio."
-"File ÎÎÎ ÏÎ ÎÏÎÎÎÏÎÎ ÎÏÏÎÎÎ ÏÏ <code>None</code>."
+"\n"
+"        firstName.add_attribute (bold, \"text\", 0);\n"
+"        lastName.add_attribute (normal, \"text\", 1);\n"
+"        phone.add_attribute (normal, \"text\", 2);\n"
+"\n"
+"        // Insert the columns into the treeview\n"
+"        this._treeView.insert_column (firstName, 0);\n"
+"        this._treeView.insert_column (lastName, 1);\n"
+"        this._treeView.insert_column (phone, 2);\n"
 
-#: C/filechooserdialog.py.page:36(p)
+#: C/treeview_simple_liststore.js.page:190(section/p)
 msgid ""
-"In this program, create also the actions corresponding to the items in the "
-"app-menu, connect them to callback functions, and import the menu in the "
-"<code>do_startup()</code> method with a Gtk.Builder."
+"Now that we've put the CellRenderers into the TreeViewColumns, we use the "
+"<file>add_attribute</file> method to tell each column to pull in text from "
+"the model our TreeView is set to use; in this case, the ListStore with the "
+"phonebook."
 msgstr ""
-"ÎÎ ÎÏÏÏ ÏÎ ÏÏÏÎÏÎÎÎÎ, ÎÎÎÎÎÏÏÎÎÏÏÎ ÎÏÎÏÎÏ ÏÎÏ ÎÎÎÏÎÎÎÎÏ ÏÎÏ ÎÎÏÎÏÏÎÎÏÎÏÎ ÏÏÎ "
-"ÏÏÎÎÏÎÎÎ ÏÏÎ ÎÎÎÎÏ ÎÏÎÏÎÎÎÏÎ, ÏÏÎÎÎÏÏÎ ÏÎ ÏÏÎÏ ÏÏÎÎÏÏÎÏÎÎÏ ÎÏÎÎÎÎÎÎÏÎÏ ÎÎÎ "
-"ÎÎÏÎÎÎÏÎ ÏÎ ÎÎÎÎÏ ÏÏÎ ÎÎÎÎÎÎ <code>do_startup()</code> ÎÎ ÎÎÎ Gtk.Builder."
+"ÎÏÏÎ ÏÎÏ ÎÏÎÏÎÎ ÎÎÎÎÎ ÏÎÏÏ CellRenderers ÏÏÎÏ TreeViewColumns, "
+"ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÏÎ ÎÎÎÎÎÎ <file>add_attribute</file> ÎÎÎ ÎÎ ÏÎÎ ÏÎ ÎÎÎÎ ÏÏÎÎÎ "
+"ÎÎ ÏÏÏÎÎ ÏÎ ÎÎÎÎÎÎÎ ÎÏÏ ÏÎ ÏÏÏÏÏÏÏ ÎÎÏ TreeView ÏÎÏ ÎÏÎÏÏÎÎÎ ÎÎÎ ÏÏÎÏÎÂ ÏÎ "
+"ÎÏÏÎÎ ÏÎÎ ÏÎÏÎÏÏÏÏÎ, ÏÎ ListStore ÎÎ ÏÎÎ ÏÎÎÎÏÏÎÎÎÏ ÎÎÏÎÎÎÎÎ."
 
-#: C/filechooserdialog.py.page:37(p)
+#: C/treeview_simple_liststore.js.page:192(item/p)
 msgid ""
-"\"New\" and \"Quit\" actions and callback functions are quite "
-"straightforward, see <link xref=\"#code\"/>."
+"The first parameter is which CellRenderer we're going to use to render what "
+"we're pulling in."
 msgstr ""
-"ÎÎ ÎÎÎÏÎÎÎÎÏ \"New\" ÎÎÎ \"Quit\" ÎÎÎ ÎÎ ÏÏÎÎÏÏÎÏÎÎÏ ÎÏÎÎÎÎÎÎÏÎÏ ÎÎÎÎÎ "
-"ÎÏÎÎÏÎ ÎÏÎÎÏ, ÎÎÎÏÎ <link xref=\"#code\"/>."
+"Î ÏÏÏÏÎ ÏÎÏÎÎÎÏÏÎÏ ÎÎÎÎÎ ÏÏÎÎÎ CellRenderer ÏÏÏÎÎÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ "
+"ÎÎÎ ÎÏÏÎÎÏÎ ÏÎÏ ÏÎ ÏÏÏÎÏÎÎ."
 
-#: C/filechooserdialog.py.page:38(p)
+#: C/treeview_simple_liststore.js.page:193(item/p)
 msgid ""
-"\"Open\" callback should create and open a Gtk.FileChooserDialog for \"Open"
-"\", connected with another callback function for each of the two \"Open\" "
-"and \"Cancel\" buttons of the FileChooserDialog."
+"The second parameter is what kind of information we're going to pull in. In "
+"this case, we're letting it know that we're rendering text."
 msgstr ""
-"Î ÎÏÎÎÎÎÎÎÏÎ \"Open\" ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎÎ ÎÎÎ ÎÎ ÎÎÎÎÎÎÎ ÎÎÎÎ Gtk."
-"FileChooserDialog ÎÎÎ \"Open\", ÏÏÎÎÎÎÎÎÎ ÎÎ ÎÎÎ ÎÎÎÎ ÏÏÎÎÏÏÎÏÎ ÎÏÎÎÎÎÎÎÏÎÏ "
-"ÎÎÎ ÎÎÎÎ ÎÎÏÎÏÎ ÎÏÏ ÏÎ ÎÏÎ \"Open\" ÎÎÎ \"Cancel\" ÏÎÏ FileChooserDialog."
+"Î ÎÎÏÏÎÏÎ ÏÎÏÎÎÎÏÏÎÏ ÎÎÎÎÎ ÏÎ ÎÎÎÎÏ ÏÎÎÏÎÏÎÏÎÎÏ ÏÏÏÎÎÎÏÎÎ ÎÎ ÏÏÏÎÏÎÎ. ÎÎ "
+"ÎÏÏÎÎ ÏÎÎ ÏÎÏÎÏÏÏÏÎ, ÏÎÎ ÎÏÎÎÎÏÎÎ ÎÎ ÎÎÎÎÎ ÏÏÎ ÎÏÎÎÎÎÎÏÎÎ ÎÎÎÎÎÎÎ."
 
-#: C/filechooserdialog.py.page:39(p)
+#: C/treeview_simple_liststore.js.page:194(item/p)
 msgid ""
-"\"Save as\" works basically as \"Open\", but the callback function of the "
-"\"Save\" button depends on a more complex method <code>save_to_file()</code>."
+"The third parameter is which of the ListStore's columns we're pulling that "
+"information in from."
 msgstr ""
-"Î \"Save as\" ÎÎÏÎÎÏÎÎ ÎÎÏÎÎÎ ÏÏ \"Open\", ÎÎÎÎ Î ÏÏÎÎÏÏÎÏÎ ÎÏÎÎÎÎÎÎÏÎÏ ÏÎÏ "
-"ÎÎÏÎÏÎÎÏ \"Save\" ÎÎÎÏÏÎÏÎÎ ÎÏÏ ÎÎÎ ÏÎÎ ÏÏÎÎÎÏÎ ÎÎÎÎÎÎ <code>save_to_file()</"
-"code>."
+"Î ÏÏÎÏÎ ÏÎÏÎÎÎÏÏÎÏ ÎÎÎÎÎ ÏÎ ÏÎÎÎ ÏÏÎÎÎ ÏÎÏ ListStore ÏÏÏÎÏÎÎ ÎÏÏÎÎ ÏÎÎ "
+"ÏÎÎÏÎÏÎÏÎÎ."
 
-#: C/filechooserdialog.py.page:40(p)
+#: C/treeview_simple_liststore.js.page:196(section/p)
 msgid ""
-"\"Save\" can be reduced to the case where the file is <code>None</code>, "
-"that is the case where <code>self.file</code> is a new file, which in turn "
-"is the case \"Save as\"; and to the case where the file is not <code>None</"
-"code>, which in turn is reduced to <code>save_to_file()</code>."
+"After we've set that up, we use the TreeView's <file>insert_column</file> "
+"method to put our TreeViewColumns inside it in order. Our TreeView is now "
+"complete."
 msgstr ""
-"Î \"Save\" ÎÏÎÏÎÎ ÎÎ ÎÎÎÏÎÎÎ ÏÎ ÏÎÏÎÏÏÏÏÎ ÏÏÎÏ ÏÎ ÎÏÏÎÎÎ ÎÎÎÎÎ <code>None</"
-"code>, ÎÎÎÎÎÎ Î ÏÎÏÎÏÏÏÏÎ ÏÏÎÏ <code>self.file</code> ÎÎÎÎÎ ÎÎÎ ÎÎÎ ÎÏÏÎÎÎ, "
-"ÏÎÏ ÎÎ ÏÎ ÏÎÎÏÎ ÏÎÏ ÎÎÎÎÎ Î ÏÎÏÎÏÏÏÏÎ \"Save as\"Â ÎÎÎ ÏÏÎÎ ÏÎÏÎÏÏÏÏÎ ÏÏÎÏ "
-"ÏÎ ÎÏÏÎÎÎ ÎÎÎ ÎÎÎÎÎ <code>None</code>, ÏÎÏ ÎÎ ÏÎ ÏÎÎÏÎ ÏÎÏ ÎÎÎÎÎÏÎÎ ÏÎ to "
-"<code>save_to_file()</code>."
+"ÎÏÎÏ ÏÎ ÏÏÎÎÎÏÎÏÎÎ, ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÏÎ ÎÎÎÎÎÎ <file>insert_column</file> ÏÎÏ "
+"TreeView ÎÎÎ ÎÎ ÎÎÎÎÏÎÎ ÏÎÏ TreeViewColumns ÎÎÏ ÎÎÏÎ ÏÎÏ ÏÎ ÏÎÎÏÎ. Î "
+"TreeView ÎÎÏ ÎÎÎÎÎ ÏÏÏÎ ÏÎÎÏÎÏ."
 
-#: C/filechooserdialog.py.page:41(p)
+#: C/treeview_simple_liststore.js.page:197(note/p)
 msgid ""
-"Finally, the method <code>save_to_file()</code>: see <link xref=\"#code\"/>, "
-"lines 146 - 175."
+"Normally, you might want to use a loop to initialize your TreeView, but in "
+"this example we're spelling things out step by step for the sake of making "
+"it easier to understand."
 msgstr ""
-"ÎÎÎÎÎÎ, Î ÎÎÎÎÎÎÏ <code>save_to_file()</code>: ÎÎÎÏÎ <link xref=\"#code\"/>, "
-"ÎÏÎÎÎÎÏ 146 - 175."
+"ÎÎÎÎÎÎÎÎ, ÎÎ ÎÏÎÏÎÏÏÎÏÎ ÎÎ ÎÎÎÎÏÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÎÎÎÎ ÎÏÏÏÎ ÎÎÎ "
+"ÎÏÏÎÎÎÏÎÎÎÏÎ ÏÎÎ TreeView ÏÎÏ, ÎÎÎÎ ÏÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÎÎÎÎÎÏÎÎ "
+"ÎÎÏÏÎÎÎÏÏÏ ÏÎ ÏÏÎÎÎÎÏÎ ÎÎÎÎ-ÎÎÎÎ ÎÎÎ ÎÎÎÏÎÏÎÏÎÏÎ ÏÎÏ ÎÎÏÎÎÏÎÏÎÏ."
 
-#: C/filechooserdialog.py.page:46(title)
-msgid "XML file which creates the app-menu"
-msgstr "ÎÎ ÎÏÏÎÎÎ XML ÏÎÏ ÎÎÎÎÎÏÏÎÎÎ ÏÎ ÎÎÎÎÏ ÎÏÎÏÎÎÎÏÎ"
+#: C/treeview_simple_liststore.js.page:201(section/title)
+msgid "Building the rest of the UI"
+msgstr "ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ ÏÏÏÎÎÎÏÎÏ ÎÎÎÏÎÏÎÏ ÏÏÎÏÏÎ"
 
-#: C/filechooserdialog.py.page:56(title)
-msgid "Useful methods for a FileChooserDialog"
-msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ FileChooserDialog"
+#: C/treeview_simple_liststore.js.page:202(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"        // Create the label that shows details for the name you select\n"
+"        this._label = new Gtk.Label ({ label: \"\" });\n"
+"\n"
+"        // Get which item is selected\n"
+"        this.selection = this._treeView.get_selection();\n"
+"\n"
+"        // When something new is selected, call _on_changed\n"
+"        this.selection.connect ('changed', Lang.bind (this, this._onSelectionChanged));\n"
+msgstr ""
+"\n"
+"        // Create the label that shows details for the name you select\n"
+"        this._label = new Gtk.Label ({ label: \"\" });\n"
+"\n"
+"        // Get which item is selected\n"
+"        this.selection = this._treeView.get_selection();\n"
+"\n"
+"        // When something new is selected, call _on_changed\n"
+"        this.selection.connect ('changed', Lang.bind (this, this._onSelectionChanged));\n"
 
-#: C/filechooserdialog.py.page:57(p)
+#: C/treeview_simple_liststore.js.page:212(section/p)
 msgid ""
-"Note that the action of the FileChooserDialog can be one of the following: "
-"<code>Gtk.FileChooserAction.OPEN</code> (the file chooser will only let the "
-"user pick an existing file) <code>Gtk.FileChooserAction.SAVE</code> (the "
-"file chooser will let the user pick an existing file, or type in a new "
-"filename), <code>Gtk.FileChooserAction.SELECT_FOLDER</code> (the file "
-"chooser will let the user pick an existing folder), <code>Gtk."
-"FileChooserAction.CREATE_FOLDER</code> (the file chooser will let the user "
-"name an existing or new folder)."
+"The TreeView's <file>get_selection</file> method returns an object called a "
+"TreeSelection. A TreeSelection is like a TreeIter in that it's basically a "
+"cursor that points at a particular row, except that the one it points to is "
+"the one that's visibly highlighted as selected."
 msgstr ""
-"ÎÎÎÎÎÏÏÏÎ ÏÏÎ Î ÎÎÎÏÎÎÎÎ ÏÎÏ FileChooserDialog ÎÏÎÏÎÎ ÎÎ ÎÎÎÎÎ ÎÎÎ ÎÏÏ ÏÎÏ "
-"ÎÎÏÎÎÏÎÎÏ: <code>Gtk.FileChooserAction.OPEN</code> (Î ÎÏÎÎÎÎÎÎÏ ÎÏÏÎÎÎÏ ÎÎ "
-"ÎÏÎÏÏÎÏÎÎ ÎÏÎÎ Î ÏÏÎÏÏÎÏ ÎÎ ÎÏÎÎÎÎÎÎ ÎÎÎ ÏÏÎÏÏÎÎ ÎÏÏÎÎÎ) <code>Gtk."
-"FileChooserAction.SAVE</code> (Î ÎÏÎÎÎÎÎÎÏ ÎÏÏÎÎÎÏ ÎÎ ÎÏÎÏÏÎÏÎÎ ÏÏÎÎ ÏÏÎÏÏÎ "
-"ÎÎ ÎÏÎÎÎÎÎÎ ÎÎÎ ÏÏÎÏÏÎÎ ÎÏÏÎÎÎ, Î ÏÏÏÎ ÏÎ ÎÎÎ ÎÎÎ ÏÎÎÎÎ ÎÏÏÎÎÎÏ), <code>Gtk."
-"FileChooserAction.SELECT_FOLDER</code> (Î ÎÏÎÎÎÎÎÎÏ ÎÏÏÎÎÎÏ ÎÎ ÎÏÎÏÏÎÏÎÎ "
-"ÏÏÎÎ ÏÏÎÏÏÎ ÎÎ ÎÏÎÎÎÎÎÎ ÎÎÎÎ ÏÏÎÏÏÎÎÏÎ ÏÎÎÎÎÎ), <code>Gtk.FileChooserAction."
-"CREATE_FOLDER</code> (Î ÎÏÎÎÎÎÎÎÏ ÎÏÏÎÎÎÏ ÎÎ ÎÏÎÏÏÎÏÎÎ ÏÏÎÎ ÏÏÎÏÏÎ ÎÎ "
-"ÎÎÎÎÎÏÎÎ ÎÎÎÎ ÏÏÎÏÏÎÎÏÎ Î ÎÎÎ ÏÎÎÎÎÎ)."
+"Î ÎÎÎÎÎÎÏ <file>get_selection</file> ÏÎÏ TreeView ÎÏÎÏÏÏÎÏÎÎ ÎÎÎ ÎÎÏÎÎÎÎÎÎÎÎ "
+"ÏÎÏ ÎÎÎÎÏÎÎ TreeSelection. ÎÎÎ TreeSelection ÎÎÎÎÎ ÏÏÏÏ ÎÎÎ TreeIter ÏÏÎ ÏÏÎ "
+"ÎÎÎÎÎ ÎÎÏÎÎÎ ÎÎÎÏ ÎÏÎÎÎÎÏ ÏÎÏ ÎÎÎÏÎÎÎ ÏÎ ÎÎÎ ÏÏÎÎÎÎÏÎÎÎÎÎ ÎÏÎÎÎÎ, ÎÎÏÏÏ ÎÏÏ "
+"ÏÎ ÏÏÎ ÎÏÏÏ ÏÎÏ ÎÎÎÏÎÎÎ ÎÎÎÎÎ ÎÏÏÏ ÏÎÏ ÎÎÎÎÎ ÎÏÎÏÎ ÎÏÎÏÎÎÎÏÎÎÎÎ ÎÎÎÏÏ "
+"ÎÏÎÎÎÏÏÎÎÎ."
 
-#: C/filechooserdialog.py.page:58(p)
-msgid "Besides the methods used in the <link xref=\"#code\"/>, we have:"
+#: C/treeview_simple_liststore.js.page:213(section/p)
+msgid ""
+"After we get the TreeSelection that goes with our TreeView, we ask it to "
+"tell us when it changes which row it's pointing to. We do this by connecting "
+"its <file>changed</file> signal to the _onSelectionChanged function we "
+"wrote. This function changes the text displayed by the Label we just made."
 msgstr ""
-"ÎÎÏÏÏ ÎÏÏ ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎÎÎÏ ÎÎÎÏÎÎÏÏ ÏÏÎ <link xref=\"#code\"/>, ÎÏÎÏÎÎ:"
+"ÎÏÎÏ ÏÎÏÎÏÎÎ ÏÎÎ TreeSelection ÏÎÏ ÏÎÎÎÎÎÎÎ ÎÎ ÏÎÎ TreeView ÎÎÏ, ÏÎÏ ÎÎÏÎÎÎ "
+"ÎÎ ÎÎÏ ÏÎÎ ÏÏÎÎ ÎÎÎÎÎÎÎ ÏÎ ÏÎÎÎ ÎÏÎÎÎÎ ÎÎÎÏÎÎÎ. ÎÎ ÎÎÎÎÏÎÎ ÏÏÎÎÎÎÎÏÎÏ ÏÎ "
+"ÏÎÎÎ ÏÎÏ <file>changed</file> ÏÏÎ ÏÏÎÎÏÏÎÏÎ _onSelectionChanged ÏÎÏ ÎÏÎÏÎÎÎ. "
+"ÎÏÏÎ Î ÏÏÎÎÏÏÎÏÎ ÎÎÎÎÎÎÎ ÏÎ ÎÎÏÎÎÎÎÏÎÎÎÎ ÎÎÎÎÎÎÎ ÎÎ ÏÎÎ ÎÏÎÎÎÏÎ ÏÎÏ ÎÏÎÎÏ "
+"ÎÎÎÎÎÎ."
 
-#: C/filechooserdialog.py.page:60(p)
+#: C/treeview_simple_liststore.js.page:215(section/code)
+#, no-wrap
 msgid ""
-"<code>set_show_hidden(True)</code> is used to display hidden files and "
-"folders."
+"\n"
+"        // Create a grid to organize everything in\n"
+"        this._grid = new Gtk.Grid;\n"
+"\n"
+"        // Attach the treeview and label to the grid\n"
+"        this._grid.attach (this._treeView, 0, 0, 1, 1);\n"
+"        this._grid.attach (this._label, 0, 1, 1, 1);\n"
+"\n"
+"        // Add the grid to the window\n"
+"        this._window.add (this._grid);\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    },\n"
 msgstr ""
-"<code>set_show_hidden(True)</code> ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÎÎÎ ÏÏÎÎÎÎÎ ÎÏÏÏÏÎ "
-"ÎÏÏÎÎÏÎ ÎÎÎ ÏÎÎÎÎÏÎ."
+"\n"
+"        // Create a grid to organize everything in\n"
+"        this._grid = new Gtk.Grid;\n"
+"\n"
+"        // Attach the treeview and label to the grid\n"
+"        this._grid.attach (this._treeView, 0, 0, 1, 1);\n"
+"        this._grid.attach (this._label, 0, 1, 1, 1);\n"
+"\n"
+"        // Add the grid to the window\n"
+"        this._window.add (this._grid);\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    },\n"
 
-#: C/filechooserdialog.py.page:61(p)
+#: C/treeview_simple_liststore.js.page:230(section/p)
 msgid ""
-"<code>set_select_multiple(True)</code> sets that multiple files can be "
-"selected. This is only relevant if the mode is <code>Gtk.FileChooserAction."
-"OPEN</code> or <code>Gtk.FileChooserAction.SELECT_FOLDER</code>."
+"After we've gotten that out of the way, we create a <link xref=\"grid.js"
+"\">Grid</link> to put everything in, then add it to our window and tell the "
+"window to show itself and its contents."
 msgstr ""
-"Î <code>set_select_multiple(True)</code> ÎÏÎÎÎÎ ÏÏÎ ÏÎÎÎÎ ÎÏÏÎÎÎ ÎÏÎÏÎÏÎ ÎÎ "
-"ÎÏÎÎÎÎÎÏÎ. ÎÏÏÏ ÎÎÎÎÎ ÎÎÏÎÎÎÎÎÎ ÎÏÎÎ ÎÎÎ Î ÎÎÏÎÏÏÎÏÎ ÎÎÎÎÎ <code>Gtk."
-"FileChooserAction.OPEN</code> Î <code>Gtk.FileChooserAction.SELECT_FOLDER</"
-"code>."
+"ÎÏÎÏ ÏÎ ÎÏÎÏÎÎ ÎÎÎÎÎÎ ÎÎÏÏÏ, ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ <link xref=\"grid.js\">ÏÎÎÎÎÎ</"
+"link> ÎÎÎ ÎÎ ÏÎ ÎÎÎÎÏÎÎ ÏÎÎ ÎÎÏÎ, ÎÏÎÎÏÎ ÏÎ ÏÏÎÏÎÎÏÎÏÎÎ ÏÏÎ ÏÎÏÎÎÏÏÏ ÎÎÏ ÎÎÎ "
+"ÎÎÎÎ ÏÏÎ ÏÎÏÎÎÏÏÎ ÎÎ ÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÎÏÏÏÎ ÏÎÏ ÎÎÎ ÏÎ ÏÎÏÎÎÏÏÎÎÎÎ ÏÎÏ."
+
+#: C/treeview_simple_liststore.js.page:234(section/title)
+msgid "Function which handles a changed selection"
+msgstr "Î ÏÏÎÎÏÏÎÏÎ ÏÎÏ ÏÎÎÏÎÎÎÏÎÎ ÎÎÎ ÎÎÎÎÎÎÎÎÎ ÎÏÎÎÎÎÎ"
 
-#: C/filechooserdialog.py.page:62(p)
+#: C/treeview_simple_liststore.js.page:236(section/code)
+#, no-wrap
 msgid ""
-"In a \"Save as\" dialog, <code>set_current_name(current_name)</code> sets "
-"<code>current_name</code> in the file selector, as if entered by the user; "
-"<code>current_name</code> can be something like <em>Untitled.txt</em>. This "
-"method should not be used except in a \"Save as\" dialog."
+"\n"
+"    _onSelectionChanged: function () {\n"
+"\n"
+"        // Grab a treeiter pointing to the current selection\n"
+"        let [ isSelected, model, iter ] = this.selection.get_selected();\n"
+"\n"
+"        // Set the label to read off the values stored in the current selection\n"
+"        this._label.set_label (\"\\n\" +\n"
+"            this._listStore.get_value (iter, 0) + \" \" +\n"
+"            this._listStore.get_value (iter, 1) + \" \" +\n"
+"            this._listStore.get_value (iter, 2) + \"\\n\" +\n"
+"            this._listStore.get_value (iter, 3));\n"
+"\n"
+"    }\n"
+"\n"
+"});\n"
 msgstr ""
-"ÎÎ ÎÎÎÎ ÎÎÎÎÎÎÎ \"Save as\", Î <code>set_current_name(current_name)</code> "
-"ÎÏÎÎÎÎ ÏÎ <code>current_name</code> ÏÏÎÎ ÎÏÎÎÎÎÎÎ ÎÏÏÎÎÎÏ, ÏÎÎ ÎÎ ÎÎÏÎÎÏÏÎÎ "
-"ÎÏÏ ÏÎÎ ÏÏÎÏÏÎÂ ÏÎ <code>current_name</code> ÎÏÎÏÎÎ ÎÎ ÎÎÎÎÎ ÎÎÏÎ ÏÎÎ "
-"<em>ÎÏÎÏÎÎ.txt</em>. ÎÏÏÎ Î ÎÎÎÎÎÎÏ ÎÎÎ ÏÏÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÎÎ ÎÎÏÏÏ ÎÏÏ "
-"ÎÎÎÎ ÎÎÎÎÎÎÎ \"Save as\"."
+"\n"
+"    _onSelectionChanged: function () {\n"
+"\n"
+"        // Grab a treeiter pointing to the current selection\n"
+"        let [ isSelected, model, iter ] = this.selection.get_selected();\n"
+"\n"
+"        // Set the label to read off the values stored in the current selection\n"
+"        this._label.set_label (\"\\n\" +\n"
+"            this._listStore.get_value (iter, 0) + \" \" +\n"
+"            this._listStore.get_value (iter, 1) + \" \" +\n"
+"            this._listStore.get_value (iter, 2) + \"\\n\" +\n"
+"            this._listStore.get_value (iter, 3));\n"
+"\n"
+"    }\n"
+"\n"
+"});\n"
 
-#: C/filechooserdialog.py.page:63(p)
+#: C/treeview_simple_liststore.js.page:253(section/p)
 msgid ""
-"The default current folder is \"recent items\". To set another folder use "
-"<code>set_current_folder_uri(uri)</code>; but note you should use this "
-"method and cause the file chooser to show a specific folder only when you "
-"are doing a \"Save as\" command and you already have a file saved somewhere."
+"The line of code with the let statement is a little convoluted, but it's "
+"nonetheless the best way to get a TreeIter pointing to the same row as our "
+"TreeSelection. It has to create a couple of other object references, but "
+"<file>iter</file> is the only one we need."
 msgstr ""
-"Î ÏÏÎÎÏÎÎÎÎÎÎÎÎÏ ÏÏÎÏÎÎ ÏÎÎÎÎÎÏ ÎÎÎÎÎ \"recent items\". ÎÎÎ ÏÎÎ ÎÏÎÏÎÏ ÎÎÎÎÏ "
-"ÏÎÎÎÎÎÏ ÏÏÎÏÎÎÎÏÎÎÎÏÏÎ <code>set_current_folder_uri(uri)</code>Â ÎÎÎÎ "
-"ÏÎÎÎÎÏÏÏÎ ÏÏÎ ÎÎ ÏÏÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÎÏÏÎÎ ÏÎ ÎÎÎÎÎÎ ÎÎÎ ÎÎ "
-"ÏÏÎÎÎÎÎÏÎÏÎ ÏÎÎ ÎÏÎÎÎÎÎÎ ÎÏÏÎÎÎÏ ÎÎ ÎÎÏÎÎÎÏÎÎ ÎÎÎÎ ÏÏÎÎÎÎÏÎÎÎÎÎ ÏÎÎÎÎÎ ÎÏÎÎ "
-"ÏÏÎÎ ÎÎÏÎÎÎÎÏÎ ÎÎÎ ÎÎÏÎÎÎ \"Save as\" ÎÎÎ ÎÏÎÏÎ ÎÎÎ ÎÎÎ ÎÏÏÎÎÎ ÎÏÎÎÎÎÎÏÎÎÎÎ "
-"ÎÎÏÎÏ."
-
-#: C/filechooserdialog.py.page:71(link)
-msgid "GtkFileChooserDialog"
-msgstr "GtkFileChooserDialog"
-
-#: C/filechooserdialog.py.page:72(link)
-msgid "GtkFileChooser"
-msgstr "GtkFileChooser"
-
-#: C/filechooserdialog.py.page:77(link)
-msgid "GFile"
-msgstr "GFile"
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/entry.vala.page:21(None) C/entry.py.page:26(None)
-#: C/entry.js.page:21(None) C/entry.c.page:22(None)
-msgid "@@image: 'media/entry.png'; md5=8a828cffdcbaa4bad83342e109f28cc8"
-msgstr "@@image: 'media/entry.png'Â md5=8a828cffdcbaa4bad83342e109f28cc8"
-
-#: C/entry.vala.page:7(title)
-msgid "Entry (Vala)"
-msgstr "ÎÎÏÎÎÏÎÎ (Vala)"
-
-#: C/entry.vala.page:17(desc) C/entry.py.page:22(desc) C/entry.c.page:17(desc)
-msgid "A single line text entry field"
-msgstr "ÎÎÎ ÏÎÎÎÎ ÎÎÏÎÏÏÏÎÏÎÏ ÎÎÎÎÎÎÎÏ ÎÎÎÎÎÎÎÎÏ ÎÏÎÎÎÎÏ"
-
-#: C/entry.vala.page:20(title) C/entry.py.page:25(title)
-#: C/entry.js.page:20(title) C/entry.c.page:20(title)
-msgid "Entry"
-msgstr "ÎÎÏÎÏÏÏÎÏÎ"
-
-#: C/entry.vala.page:22(p) C/entry.c.page:23(p)
-msgid "This application greets you in the terminal."
-msgstr "ÎÏÏÎ Î ÎÏÎÏÎÎÎÎ ÏÎÏ ÏÏÎÎÎÏÎÏÎÎ ÏÏÎ ÏÎÏÎÎÏÎÎÏ."
-
-#: C/entry.vala.page:29(link) C/entry.js.page:31(link)
-msgid "Gtk.Entry"
-msgstr "Gtk.Entry"
-
-#: C/entry.py.page:7(title)
-msgid "Entry (Python)"
-msgstr "ÎÎÏÎÎÏÎÎ (Python)"
-
-#: C/entry.py.page:27(p)
-msgid "This application greets you in the terminal with the name you provide."
-msgstr "ÎÏÏÎ Î ÎÏÎÏÎÎÎÎ ÏÎÏ ÏÎÎÏÎÏÎ ÏÏÎÎ ÏÎÏÎÎÏÎÎÏ ÎÎ ÏÎ ÏÎÎÎÎ ÏÎÏ ÎÏÏÎÏÎ."
-
-#: C/entry.py.page:37(title)
-msgid "Useful methods for an Entry widget"
-msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÎÏÎÎÏÎÎÏ"
+"Î ÎÏÎÎÎÎ ÏÎÏ ÎÏÎÎÎÎ ÎÎ ÏÎÎ ÎÎÎÏÏÎ let ÎÎÎÎÎ ÎÎÎÎ ÎÏÎÏÎÎÎÎÎÎ, ÎÎÎÎ ÏÎÏÏÎÎ "
+"ÎÏÏÎ ÎÎÎÎÎ Î ÎÏÎÏÏÎÏ ÏÏÏÏÎÏ ÎÎ ÎÎÎÎÏÎ ÏÎÎ TreeIter ÎÎ ÎÎÎÏÎÎÎ ÏÏÎÎ ÎÎÎÎ "
+"ÎÏÎÎÎÎ ÏÏÏÏ Î TreeSelection ÎÎÏ. ÎÏÎÏÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ ÎÎÎÎÏ ÎÎÎÎÏ "
+"ÎÎÎÏÎÏÎÏ ÎÎÏÎÎÎÎÎÎÎÎÏ, ÎÎÎÎ Î <file>iter</file> ÎÎÎÎÎ ÏÎ ÎÏÎÎ ÏÎÏ "
+"ÏÏÎÎÎÎÏÎÎÏÏÎ."
 
-#: C/entry.py.page:38(p)
+#: C/treeview_simple_liststore.js.page:254(section/p)
 msgid ""
-"For an explanation of signals and callback functions, see <link xref="
-"\"signals-callbacks.py\">this page</link>. Some of the signals that a Gtk."
-"Entry widget can emit are: <code>\"activate\"</code> (emitted when the user "
-"activates the Entry key); <code>\"backspace\"</code> (emitted when the user "
-"activates the Backspace or Shift-Backspace keys); <code>\"copy-clipboard\"</"
-"code> (Ctrl-c and Ctrl-Insert); <code>\"paste-clipboard\"</code> (Ctrl-v and "
-"Shift-Insert); <code>\"delete-from-cursor\"</code> (Delete, for deleting a "
-"character; Ctrl-Delete, for deleting a word); <code>\"icon-press\"</code> "
-"(emitted when the user clicks an activable icon); <code>\"icon-release\"</"
-"code> (emitted on the button release from a mouse click over an activable "
-"icon); <code>\"insert-at-cursor\"</code> (emitted when the user initiates "
-"the insertion of a fixed string at the cursor); <code>\"move-cursor\"</code> "
-"(emitted when the user initiates a cursor movement); <code>\"populate-popup"
-"\"</code> (emitted before showing the context menu of the entry; it can be "
-"used to add items to it)."
+"After we've done that, we call the Label's <file>set_label</file> function, "
+"and use the ListStore's <file>get_value</file> function a handful of times "
+"to fill in the data we want to put in it. Its parameters are a TreeIter "
+"pointing to the row we want to get data from, and the column."
 msgstr ""
-"ÎÎÎ ÎÎÎ ÎÎÎÎÎÏÎ ÏÏÎ ÏÎÎÎÏÏÎ ÎÎÎ ÏÏÎ ÏÏÎÎÏÏÎÏÎÏÎ ÎÏÎÎÎÎÎÎÏÎÏ, ÎÎÎÏÎ <link "
-"xref=\"signals-callbacks.py\">ÎÏÏÎÎ ÏÎ ÏÎÎÎÎÎ</link>. ÎÎÏÎÎÎ ÎÏÏ ÏÎ ÏÎÎÎÏÎ "
-"ÏÎÏ ÏÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ Gtk.Entry ÎÏÎÏÎÎ ÎÎ ÎÎÏÎÎÏÎÎ ÎÎÎÎÎ: <code>\"activate"
-"\"</code> (ÎÎÏÎÎÏÏÎÎÎÎ ÏÏÎÎ Î ÏÏÎÏÏÎÏ ÎÎÎÏÎÎÏÎÎÎÎ ÏÎ ÏÎÎÎÏÏÎ ÎÎÏÎÎÏÎÎÏ)Â "
-"<code>\"backspace\"</code> (ÎÎÏÎÎÏÏÎÎÎÎ ÏÏÎÎ Î ÏÏÎÏÏÎÏ ÎÎÎÏÎÎÏÎÎÎÎ ÏÎÎ "
-"ÎÏÎÏÎÎÎÎÎÎÏÎÏÎ Î ÏÎ ÏÎÎÎÏÏÎ Shift-ÎÏÎÏÎÎÎÎÎÎÏÎÏÎ)Â <code>\"copy-clipboard\"</"
-"code> (Ctrl-c ÎÎÎ Ctrl-Insert); <code>\"paste-clipboard\"</code> (Ctrl-v ÎÎÎ "
-"Shift-Insert); <code>\"delete-from-cursor\"</code> (ÎÎÎÎÏÎÏÎ, ÎÎÎ ÎÎ "
-"ÎÎÎÎÏÏÏÎÎ ÎÎÎÏ ÏÎÏÎÎÏÎÏÎÏÂ Ctrl-ÎÎÎÎÏÎÏÎ, ÎÎÎ ÎÎ ÎÎÎÎÏÎÏÏÎÎ ÎÎÎ ÎÎÎÎ)Â <code>"
-"\"icon-press\"</code> (ÎÎÏÎÎÏÏÎÎÎÎ ÏÏÎÎ Î ÏÏÎÏÏÎÏ ÏÎÏÎ ÎÎÎ ÎÎÎÏÎÎÏÎÎÎÏÎÎÎ "
-"ÎÎÎÎÎÎÎÎÎ)Â <code>\"icon-release\"</code> (ÎÎÏÎÎÏÏÎÎÎÎ ÎÎ ÏÎÎ ÎÏÎÎÎÏÎÎÏÏÏÎ "
-"ÏÎÏ ÎÎÏÎÏÎÎÏ ÎÏÏ ÎÎÎ ÏÎÏÎÎÎ ÏÎÏ ÏÎÎÏÎÎÎÎÏ ÏÎÎÏ ÎÏÏ ÎÎÎ ÎÎÎÏÎÎÏÎÎÎÏÎÎÎ "
-"ÎÎÎÎÎÎÎÎÎ)Â <code>\"insert-at-cursor\"</code> (ÎÎÏÎÎÏÏÎÎÎÎ ÏÏÎÎ Î ÏÏÎÏÏÎÏ "
-"ÎÏÏÎÎÎÏÎÎÎÎ ÏÎÎ ÎÎÏÎÎÏÎÎ ÎÎÎÏ ÏÏÎÎÎÏÎÏ ÏÏÎÎÎÎÎÏÎÎÏÎÏ ÏÏÎÎ ÎÏÎÎÎÎ)Â <code>"
-"\"move-cursor\"</code> (ÎÎÏÎÎÏÏÎÎÎÎ ÏÏÎÎ Î ÏÏÎÏÏÎÏ ÎÏÏÎÎÎÏÎÎÎÎ ÎÎÎ "
-"ÎÎÏÎÎÎÎÎÏÎ ÎÏÎÎÎÎ)Â <code>\"populate-popup\"</code> (ÎÎÏÎÎÏÏÎÎÎÎ ÏÏÎÎ ÏÎÎ "
-"ÏÏÎÎÎÎÎ ÏÎÏ ÎÎÎÎÏ ÏÎÏÎÎÏÎÎÎÎÎÏ ÏÎÏ ÎÎÏÎÎÏÎÎÏÂ ÎÏÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÎÎ ÎÎÎ "
-"ÏÏÎÏÎÎÎÎ ÏÏÎÎÏÎÎÏÎ ÏÎ ÎÏÏÎ)."
+"ÎÏÎÏ ÏÎ ÏÎÎÎÎÏÏÎÏÎÎ, ÎÎÎÎÏÎÎ ÏÎ ÏÏÎÎÏÏÎÏÎ ÏÎÏ ÎÏÎÎÎÏÎÏ <file>set_label</"
+"file> ÎÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÏÎ ÏÏÎÎÏÏÎÏÎ ÏÎÏ ListStore <file>get_value</file> "
+"ÎÎÎÎÏ ÏÎÏÎÏ ÎÎÎ ÎÎ ÏÏÎÏÎÎÏÏÏÎÏÎÎ ÏÎ ÎÎÎÎÎÎÎÎ ÏÎÏ ÎÎÎÎÏÎÎ ÎÎ ÏÎ ÎÎÏÎÎÎÏÎÎ. ÎÎ "
+"ÏÎÏÎÎÎÏÏÎÎ ÏÎÏ ÎÎÎÎÎ ÎÎÎ TreeIter ÏÎÏ ÎÎÎÏÎÎÎ ÏÏÎ ÎÏÎÎÎÎ ÎÏÏ ÏÏÎÏ ÎÎÎÎÏÎÎ ÎÎ "
+"ÏÎÏÎÏÎÎ ÎÎÎÎÎÎÎÎ ÎÎÎ ÏÎ ÏÏÎÎÎ."
 
-#: C/entry.py.page:40(p)
+#: C/treeview_simple_liststore.js.page:255(section/p)
 msgid ""
-"<code>get_buffer()</code> and <code>set_buffer(buffer)</code>, where "
-"<code>buffer</code> is a Gtk.EntryBuffer object, can be used to get and set "
-"the buffer for the entry."
+"Here, we want to get data from all four columns, including the \"hidden\" "
+"one that's not part of the TreeView. This way, we can use our Label to show "
+"strings that are too large to fit in the TreeView, and that we don't need to "
+"see at a glance."
 msgstr ""
-"<code>get_buffer()</code> ÎÎÎ <code>set_buffer(buffer)</code>, ÏÏÎÏ "
-"<code>buffer</code> ÎÎÎÎÎ ÎÎÎ ÎÎÏÎÎÎÎÎÎÎÎ Gtk.EntryBuffer, ÎÏÎÏÎÏÎ ÎÎ "
-"ÏÏÎÏÎÎÎÏÎÎÎÎÎÏÎ ÎÎÎ ÎÎÏÎ ÎÎÎ ÎÏÎÏÎÏ ÏÎÏ ÎÎÎÎÎÎÎÏÎÏ ÎÎÎÎÎÏ ÎÎÎ ÏÎÎ ÎÎÏÎÎÏÎÎ."
+"ÎÎÏ, ÎÎÎÎÏÎÎ ÎÎ ÏÎÏÎÏÎÎ ÎÎÎÎÎÎÎÎ ÎÎÎ ÎÏÏ ÏÎÏ ÏÎÏÏÎÏÎÏ ÏÏÎÎÎÏ, "
+"ÏÏÎÏÎÏÎÎÎÎÎÎÎÎÎÏÎÏ ÏÎÎ \"ÎÏÏÏÎ\" ÏÎÏ ÎÎÎ ÎÎÎÎÎ ÎÎÏÎÏ ÏÎÏ TreeView. ÎÏÏÎ, "
+"ÎÏÎÏÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÏÎÎ ÎÏÎÎÎÏÎ ÎÎÏ ÎÎÎ ÎÎ ÎÎÏÎÎÎÏÎÏÎÎ "
+"ÏÏÎÎÎÎÎÏÎÎÏÎÏ ÏÎÏ ÎÎÎÎÎ ÏÏÎÏÎÎÎÎÎÎ ÎÎÎÎÎÎÏ ÎÎÎ ÏÏÎÏÎÏÎÎÎÎ ÏÏÎ TreeView ÎÎÎ "
+"ÏÎÏ ÎÎÎ ÏÏÎÎÎÎÏÎÎÏÏÎ ÎÎ ÎÎÏÎÎ ÎÎ ÎÎÎ ÎÎÏÎÎ."
 
-#: C/entry.py.page:41(p)
+#: C/treeview_simple_liststore.js.page:257(section/code)
+#, no-wrap
 msgid ""
-"<code>get_text()</code> and <code>set_text(\"some text\")</code> can be used "
-"to get and set the content for the entry."
+"\n"
+"// Run the application\n"
+"let app = new TreeViewExample ();\n"
+"app.application.run (ARGV);\n"
 msgstr ""
-"<code>get_text()</code> ÎÎÎ <code>set_text(\"some text\")</code> ÎÏÎÏÎÏÎ ÎÎ "
-"ÏÏÎÏÎÎÎÏÎÎÎÎÎÏÎ ÎÎÎ ÎÎÏÎ ÎÎÎ ÎÏÎÏÎÏ ÏÎÏ ÏÎÏÎÎÏÎÎÎÎÎÏ ÎÎÎ ÏÎÎ ÎÎÏÎÎÏÎÎ."
-
-#: C/entry.py.page:42(p)
-msgid "<code>get_text_length()</code> is self-explanatory."
-msgstr "<code>get_text_length()</code> ÎÎÎÎÎ ÎÏÏÎÎÏÎÏÎ."
+"\n"
+"// Run the application\n"
+"let app = new TreeViewExample ();\n"
+"app.application.run (ARGV);\n"
 
-#: C/entry.py.page:43(p)
+#: C/treeview_simple_liststore.js.page:262(section/p)
 msgid ""
-"<code>get_text_area()</code> gets the area where the entry's text is drawn."
+"Finally, we create a new instance of the finished TreeViewExample class, and "
+"set the application running."
 msgstr ""
-"<code>get_text_area()</code> ÎÎÏÎÏÎÎ ÏÎÎ ÏÎÏÎÎÏÎ ÏÏÎÏ ÏÎ ÎÎÎÎÎÎÎ ÎÎÏÎÎÏÎÎÏ "
-"ÏÏÏÎÏÎÎ."
+"ÎÎÎÎÎÎ, ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ ÏÎÏ ÏÎÎÎÎÏÎÎÎÎÏ ÎÎÎÏÎÏ "
+"TreeViewExample ÎÎÎ ÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ."
 
-#: C/entry.py.page:44(p)
+#: C/treeview_simple_liststore.js.page:267(section/code)
+#, no-wrap
 msgid ""
-"If we set <code>set_visibility(False)</code> the characters in the entry are "
-"displayed as the invisible char. This is the best available in the current "
-"font, but it can be changed with <code>set_invisible_char(ch)</code>, where "
-"<code>ch</code> is a Unicode charcater. The latter method is reversed by "
-"<code>unset_invisbile_char()</code>."
+"#!/usr/bin/gjs\n"
+"\n"
+"const GObject = imports.gi.GObject;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"const Pango = imports.gi.Pango;\n"
+"\n"
+"const TreeViewExample = new Lang.Class({\n"
+"    Name: 'TreeView Example with Simple ListStore',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application({\n"
+"            application_id: 'org.example.jstreeviewsimpleliststore'\n"
+"        });\n"
+"\n"
+"    // Connect 'activate' and 'startup' signals to the callback functions\n"
+"    this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"    this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents window when active\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function() {\n"
+"        this._buildUI ();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function() {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            default_height: 250,\n"
+"            default_width: 100,\n"
+"            border_width: 20,\n"
+"            title: \"My Phone Book\"});\n"
+"\n"
+"        // Create the underlying liststore for the phonebook\n"
+"        this._listStore = new Gtk.ListStore ();\n"
+"        this._listStore.set_column_types ([\n"
+"            GObject.TYPE_STRING,\n"
+"            GObject.TYPE_STRING,\n"
+"            GObject.TYPE_STRING,\n"
+"            GObject.TYPE_STRING]);\n"
+"\n"
+"        // Data to go in the phonebook\n"
+"        let phonebook =\n"
+"            [{ name: \"Jurg\", surname: \"Billeter\", phone: \"555-0123\",\n"
+"                description: \"A friendly person.\"},\n"
+"             { name: \"Johannes\", surname: \"Schmid\", phone: \"555-1234\",\n"
+"                description: \"Easy phone number to remember.\"},\n"
+"             { name: \"Julita\", surname: \"Inca\", phone: \"555-2345\",\n"
+"                description: \"Another friendly person.\"},\n"
+"             { name: \"Javier\", surname: \"Jardon\", phone: \"555-3456\",\n"
+"                description: \"Bring fish for his penguins.\"},\n"
+"             { name: \"Jason\", surname: \"Clinton\", phone: \"555-4567\",\n"
+"                description: \"His cake's not a lie.\"},\n"
+"             { name: \"Random J.\", surname: \"Hacker\", phone: \"555-5678\",\n"
+"                description: \"Very random!\"}];\n"
+"\n"
+"        // Put the data in the phonebook\n"
+"        for (let i = 0; i &lt; phonebook.length; i++ ) {\n"
+"            let contact = phonebook [i];\n"
+"            this._listStore.set (this._listStore.append(), [0, 1, 2, 3],\n"
+"                [contact.name, contact.surname, contact.phone, contact.description]);\n"
+"        }\n"
+"\n"
+"        // Create the treeview\n"
+"        this._treeView = new Gtk.TreeView ({\n"
+"            expand: true,\n"
+"            model: this._listStore });\n"
+"\n"
+"        // Create the columns for the address book\n"
+"        let firstName = new Gtk.TreeViewColumn ({ title: \"First Name\" });\n"
+"        let lastName = new Gtk.TreeViewColumn ({ title: \"Last Name\" });\n"
+"        let phone = new Gtk.TreeViewColumn ({ title: \"Phone Number\" });\n"
+"\n"
+"        // Create a cell renderer for when bold text is needed\n"
+"        let bold = new Gtk.CellRendererText ({\n"
+"            weight: Pango.Weight.BOLD });\n"
+"\n"
+"        // Create a cell renderer for normal text\n"
+"        let normal = new Gtk.CellRendererText ();\n"
+"\n"
+"        // Pack the cell renderers into the columns\n"
+"        firstName.pack_start (bold, true);\n"
+"        lastName.pack_start (normal, true);\n"
+"        phone.pack_start (normal, true);\n"
+"\n"
+"        // Set each column to pull text from the TreeView's model\n"
+"        firstName.add_attribute (bold, \"text\", 0);\n"
+"        lastName.add_attribute (normal, \"text\", 1);\n"
+"        phone.add_attribute (normal, \"text\", 2);\n"
+"\n"
+"        // Insert the columns into the treeview\n"
+"        this._treeView.insert_column (firstName, 0);\n"
+"        this._treeView.insert_column (lastName, 1);\n"
+"        this._treeView.insert_column (phone, 2);\n"
+"\n"
+"        // Create the label that shows details for the name you select\n"
+"        this._label = new Gtk.Label ({ label: \"\" });\n"
+"\n"
+"        // Get which item is selected\n"
+"        this.selection = this._treeView.get_selection();\n"
+"\n"
+"        // When something new is selected, call _on_changed\n"
+"        this.selection.connect ('changed', Lang.bind (this, this._onSelectionChanged));\n"
+"\n"
+"        // Create a grid to organize everything in\n"
+"        this._grid = new Gtk.Grid;\n"
+"\n"
+"        // Attach the treeview and label to the grid\n"
+"        this._grid.attach (this._treeView, 0, 0, 1, 1);\n"
+"        this._grid.attach (this._label, 0, 1, 1, 1);\n"
+"\n"
+"        // Add the grid to the window\n"
+"        this._window.add (this._grid);\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    _onSelectionChanged: function () {\n"
+"\n"
+"        // Grab a treeiter pointing to the current selection\n"
+"        let [ isSelected, model, iter ] = this.selection.get_selected();\n"
+"\n"
+"        // Set the label to read off the values stored in the current selection\n"
+"        this._label.set_label (\"\\n\" +\n"
+"            this._listStore.get_value (iter, 0) + \" \" +\n"
+"            this._listStore.get_value (iter, 1) + \" \" +\n"
+"            this._listStore.get_value (iter, 2) + \"\\n\" +\n"
+"            this._listStore.get_value (iter, 3));\n"
+"\n"
+"    }\n"
+"\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new TreeViewExample ();\n"
+"app.application.run (ARGV);\n"
 msgstr ""
-"ÎÎÎ ÎÏÎÎÎÏÎÎ <code>set_visibility(False)</code> ÎÎ ÏÎÏÎÎÏÎÏÎÏ ÏÏÎÎ "
-"ÎÎÏÎÏÏÏÎÏÎ ÎÎÏÎÎÎÎÎÎÏÎÎ ÏÏ Î ÎÏÏÎÏÎÏ ÏÎÏÎÎÏÎÏÎÏ. ÎÏÏÏ ÎÎÎÎÎ ÎÎÎÏÏÎÏÎ "
-"ÎÎÎÎÎÏÎÎÎ ÏÏÎÎ ÏÏÎÏÎÏÏÎ ÎÏÎÎÎÎÏÎÏÎÎÏÎ, ÎÎÎÎ ÎÏÎÏÎÎ ÎÎ ÎÎÎÎÏÎÎÎ ÎÎ "
-"<code>set_invisible_char(ch)</code>, ÏÏÎÏ <code>ch</code> ÎÎÎÎÎ ÎÎÎÏ "
-"ÏÎÏÎÎÏÎÏÎÏ Unicode. Î ÏÎÎÎÏÏÎÎÎ ÎÎÎÎÎÎÏ ÎÎÏÎÏÏÏÎÏÎÏÎÎ ÎÎ ÏÎÎ "
-"<code>unset_invisbile_char()</code>."
+"#!/usr/bin/gjs\n"
+"\n"
+"const GObject = imports.gi.GObject;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"const Pango = imports.gi.Pango;\n"
+"\n"
+"const TreeViewExample = new Lang.Class({\n"
+"    Name: 'TreeView Example with Simple ListStore',\n"
+"\n"
+"    // Create the application itself\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application({\n"
+"            application_id: 'org.example.jstreeviewsimpleliststore'\n"
+"        });\n"
+"\n"
+"    // Connect 'activate' and 'startup' signals to the callback functions\n"
+"    this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"    this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Callback function for 'activate' signal presents window when active\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    // Callback function for 'startup' signal builds the UI\n"
+"    _onStartup: function() {\n"
+"        this._buildUI ();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    // Build the application's UI\n"
+"    _buildUI: function() {\n"
+"\n"
+"        // Create the application window\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            default_height: 250,\n"
+"            default_width: 100,\n"
+"            border_width: 20,\n"
+"            title: \"My Phone Book\"});\n"
+"\n"
+"        // Create the underlying liststore for the phonebook\n"
+"        this._listStore = new Gtk.ListStore ();\n"
+"        this._listStore.set_column_types ([\n"
+"            GObject.TYPE_STRING,\n"
+"            GObject.TYPE_STRING,\n"
+"            GObject.TYPE_STRING,\n"
+"            GObject.TYPE_STRING]);\n"
+"\n"
+"        // Data to go in the phonebook\n"
+"        let phonebook =\n"
+"            [{ name: \"Jurg\", surname: \"Billeter\", phone: \"555-0123\",\n"
+"                description: \"A friendly person.\"},\n"
+"             { name: \"Johannes\", surname: \"Schmid\", phone: \"555-1234\",\n"
+"                description: \"Easy phone number to remember.\"},\n"
+"             { name: \"Julita\", surname: \"Inca\", phone: \"555-2345\",\n"
+"                description: \"Another friendly person.\"},\n"
+"             { name: \"Javier\", surname: \"Jardon\", phone: \"555-3456\",\n"
+"                description: \"Bring fish for his penguins.\"},\n"
+"             { name: \"Jason\", surname: \"Clinton\", phone: \"555-4567\",\n"
+"                description: \"His cake's not a lie.\"},\n"
+"             { name: \"Random J.\", surname: \"Hacker\", phone: \"555-5678\",\n"
+"                description: \"Very random!\"}];\n"
+"\n"
+"        // Put the data in the phonebook\n"
+"        for (let i = 0; i &lt; phonebook.length; i++ ) {\n"
+"            let contact = phonebook [i];\n"
+"            this._listStore.set (this._listStore.append(), [0, 1, 2, 3],\n"
+"                [contact.name, contact.surname, contact.phone, contact.description]);\n"
+"        }\n"
+"\n"
+"        // Create the treeview\n"
+"        this._treeView = new Gtk.TreeView ({\n"
+"            expand: true,\n"
+"            model: this._listStore });\n"
+"\n"
+"        // Create the columns for the address book\n"
+"        let firstName = new Gtk.TreeViewColumn ({ title: \"First Name\" });\n"
+"        let lastName = new Gtk.TreeViewColumn ({ title: \"Last Name\" });\n"
+"        let phone = new Gtk.TreeViewColumn ({ title: \"Phone Number\" });\n"
+"\n"
+"        // Create a cell renderer for when bold text is needed\n"
+"        let bold = new Gtk.CellRendererText ({\n"
+"            weight: Pango.Weight.BOLD });\n"
+"\n"
+"        // Create a cell renderer for normal text\n"
+"        let normal = new Gtk.CellRendererText ();\n"
+"\n"
+"        // Pack the cell renderers into the columns\n"
+"        firstName.pack_start (bold, true);\n"
+"        lastName.pack_start (normal, true);\n"
+"        phone.pack_start (normal, true);\n"
+"\n"
+"        // Set each column to pull text from the TreeView's model\n"
+"        firstName.add_attribute (bold, \"text\", 0);\n"
+"        lastName.add_attribute (normal, \"text\", 1);\n"
+"        phone.add_attribute (normal, \"text\", 2);\n"
+"\n"
+"        // Insert the columns into the treeview\n"
+"        this._treeView.insert_column (firstName, 0);\n"
+"        this._treeView.insert_column (lastName, 1);\n"
+"        this._treeView.insert_column (phone, 2);\n"
+"\n"
+"        // Create the label that shows details for the name you select\n"
+"        this._label = new Gtk.Label ({ label: \"\" });\n"
+"\n"
+"        // Get which item is selected\n"
+"        this.selection = this._treeView.get_selection();\n"
+"\n"
+"        // When something new is selected, call _on_changed\n"
+"        this.selection.connect ('changed', Lang.bind (this, this._onSelectionChanged));\n"
+"\n"
+"        // Create a grid to organize everything in\n"
+"        this._grid = new Gtk.Grid;\n"
+"\n"
+"        // Attach the treeview and label to the grid\n"
+"        this._grid.attach (this._treeView, 0, 0, 1, 1);\n"
+"        this._grid.attach (this._label, 0, 1, 1, 1);\n"
+"\n"
+"        // Add the grid to the window\n"
+"        this._window.add (this._grid);\n"
+"\n"
+"        // Show the window and all child widgets\n"
+"        this._window.show_all();\n"
+"    },\n"
+"\n"
+"\n"
+"\n"
+"    _onSelectionChanged: function () {\n"
+"\n"
+"        // Grab a treeiter pointing to the current selection\n"
+"        let [ isSelected, model, iter ] = this.selection.get_selected();\n"
+"\n"
+"        // Set the label to read off the values stored in the current selection\n"
+"        this._label.set_label (\"\\n\" +\n"
+"            this._listStore.get_value (iter, 0) + \" \" +\n"
+"            this._listStore.get_value (iter, 1) + \" \" +\n"
+"            this._listStore.get_value (iter, 2) + \"\\n\" +\n"
+"            this._listStore.get_value (iter, 3));\n"
+"\n"
+"    }\n"
+"\n"
+"});\n"
+"\n"
+"// Run the application\n"
+"let app = new TreeViewExample ();\n"
+"app.application.run (ARGV);\n"
 
-#: C/entry.py.page:45(p)
+#: C/treeview_simple_liststore.js.page:281(item/p)
 msgid ""
-"<code>set_max_length(int)</code>, where <code>int</code> is an integer, "
-"truncates every entry longer than <code>int</code> to have the desired "
-"maximum length."
+"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.TreeSelection.";
+"html\">Gtk.TreeSelection</link>"
 msgstr ""
-"<code>set_max_length(int)</code>, ÏÏÎÏ <code>int</code> ÎÎÎÎÎ ÎÎÎÏ ÎÎÎÏÎÎÎÏ, "
-"ÏÎÏ ÏÎÏÎÎÏÏÏÎÎ ÎÎÎÎ ÎÎÏÎÏÏÏÎÏÎ ÎÎÎÎÎÏÏÎÏÎ ÎÏÏ <code>int</code> ÎÎÎ ÎÎ ÎÏÎÎ "
-"ÏÎ ÎÏÎÎÏÎÎÏÏ ÎÎÎÎÏÏÎ ÎÎÎÎÏ."
+"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.TreeSelection.";
+"html\">Gtk.TreeSelection</link>"
 
-#: C/entry.py.page:46(p)
+#: C/treeview_simple_liststore.js.page:282(item/p)
 msgid ""
-"By default, if you press the Entry key the Gtk.Entry emits the signal <code>"
-"\"activate\"</code>. If you would like to activate the default widget for "
-"the window (set using <code>set_default(widget)</code> on the window), then "
-"use <code>set_activates_default(True)</code>."
-msgstr ""
-"ÎÏÏ ÏÏÎÎÏÎÎÎÎÎ, ÎÎÎ ÏÎÏÎÏÎÏÎ ÏÎ ÏÎÎÎÏÏÎ ÎÎÏÎÏÏÏÎÏÎÏ Î Gtk.Entry ÎÎÏÎÎÏÎÎ ÏÎ "
-"ÏÎÎÎ <code>\"activate\"</code>. ÎÎÎ ÎÎ ÎÎÎÎÏÎ ÎÎ ÎÎÎÏÎÎÏÎÎÎÏÎÏÎ ÏÎ "
-"ÏÏÎÎÏÎÎÎÎÎÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÎÎ ÏÎ ÏÎÏÎÎÏÏÎ (ÎÏÎÏÏÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎÎ "
-"<code>set_default(widget)</code> ÏÏÎ ÏÎÏÎÎÏÏÎ), ÎÏÎÎÏÎ ÏÏÎÏÎÎÎÏÎÎÎÏÏÎ "
-"<code>set_activates_default(True)</code>."
-
-#: C/entry.py.page:47(p)
-msgid "To set a frame around the entry: <code>set_has_frame(True)</code>."
+"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.TreeView.html";
+"\">Gtk.TreeView</link>"
 msgstr ""
-"ÎÎÎ ÏÎÎ ÎÏÎÏÎÏ ÎÎÏÏ ÏÎÎÎÏÎÎÏ ÎÏÏÏ ÎÏÏ ÏÎÎ ÎÎÏÎÏÏÏÎÏÎ: <code>set_has_frame"
-"(True)</code>."
+"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.TreeView.html";
+"\">Gtk.TreeView</link>"
 
-#: C/entry.py.page:48(p)
+#: C/treeview_simple_liststore.js.page:283(item/p)
 msgid ""
-"<code>set_placeholder_text(\"some text\")</code> sets the text to be "
-"displayed in the entry when it is empty and unfocused."
+"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.";
+"TreeViewColumn.html\">Gtk.TreeViewColumn</link>"
 msgstr ""
-"Î <code>set_placeholder_text(\"some text\")</code> ÎÏÎÎÎÎ ÏÎ ÎÎÏÎÎÎÎÏÎÎÎÎ "
-"ÎÎÎÎÎÎÎ ÏÏÎÎ ÎÎÏÎÏÏÏÎÏÎ ÏÏÎÎ ÎÎÎÎÎ ÎÎÎÏ ÎÎÎ ÏÏÏÎÏ ÎÏÏÎÎÏÎ."
+"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.";
+"TreeViewColumn.html\">Gtk.TreeViewColumn</link>"
 
-#: C/entry.py.page:49(p)
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#.
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/treeview_simple_liststore.py.page:23(media)
+#: C/treeview_simple_liststore.vala.page:23(media)
+msgctxt "_"
 msgid ""
-"<code>set_overwrite_mode(True)</code> and <code>set_overwrite_mode(False)</"
-"code> are self-explanatory."
+"external ref='media/treeview_simple_liststore.png' "
+"md5='2dc501a2b95b094da985d37b66aee90c'"
 msgstr ""
-"<code>set_overwrite_mode(True)</code> ÎÎÎ <code>set_overwrite_mode(False)</"
-"code> ÎÎÎÎÎ ÎÏÏÎÎÏÎÏÎ."
+"external ref='media/treeview_simple_liststore.png' "
+"md5='2dc501a2b95b094da985d37b66aee90c'"
 
-#: C/entry.py.page:50(p)
-msgid ""
-"If we have <code>set_editable(False)</code> the user cannot edit the text in "
-"the widget."
-msgstr ""
-"ÎÎÎ ÎÏÎÏÎÎ <code>set_editable(False)</code> Î ÏÏÎÏÏÎÏ ÎÎÎ ÎÏÎÏÎÎ ÎÎ "
-"ÎÏÎÎÎÏÎÎÏÏÎÎ ÏÎ ÎÎÎÎÎÎÎ ÏÏÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ."
+#: C/treeview_simple_liststore.py.page:7(info/title)
+msgctxt "text"
+msgid "Simple TreeView with ListStore (Python)"
+msgstr "ÎÏÎÎ Treeview ÎÎ ListStore (Python)"
 
-#: C/entry.py.page:51(p)
-msgid ""
-"<code>set_completion(completion)</code>, where <code>completion</code> is a "
-"<link href=\"http://developer.gnome.org/gtk3/unstable/GtkEntryCompletion.html";
-"\"><code>Gtk.EntryCompletion</code></link>, sets completion - or disables it "
-"if <code>completion</code> is <code>None</code>."
-msgstr ""
-"<code>set_completion(completion)</code>, ÏÏÎÏ <code>completion</code> ÎÎÎÎÎ "
-"ÎÎÎÏ <link href=\"http://developer.gnome.org/gtk3/unstable/";
-"GtkEntryCompletion.html\"><code>Gtk.EntryCompletion</code></link>, ÎÏÎÎÎÎ "
-"ÏÎÎ ÎÎÎÎÎÎÏÏÏÎ - Î ÏÎ ÎÏÎÎÎÏÎÎÏÎÎÎÎ ÎÎÎ Î <code>completion</code> ÎÎÎÎÎ "
-"<code>None</code>."
+#: C/treeview_simple_liststore.py.page:19(info/desc)
+msgid "A TreeView displaying a ListStore (simpler example)"
+msgstr "ÎÎÎ TreeView ÏÎÏ ÎÎÏÎÎÎÎÎÎ ÎÎÎ TreeStore (ÎÏÎÏ ÏÎÏÎÎÎÎÎÎÎ)"
+
+#: C/treeview_simple_liststore.py.page:22(page/title)
+msgid "Simple TreeView with ListStore"
+msgstr "ÎÏÎÎ Treeview ÎÎ ListStore"
 
-#: C/entry.py.page:52(p)
+#: C/treeview_simple_liststore.py.page:31(section/code)
+#, no-wrap
 msgid ""
-"An Entry widget can display progress or activity information behind the "
-"text. We use <code>set_progress_fraction(fraction)</code>, where "
-"<code>fraction</code> is a <code>float</code> between <code>0.0</code> and "
-"<code>1.0</code> inclusive, to fill in the given fraction of the bar. We use "
-"<code>set_progress_pulse_step()</code> to set the fraction of total entry "
-"width to move the progress bouncing block for each call to "
-"<code>progress_pulse()</code>. The latter method indicates that some "
-"progress is made, and causes the progress indicator of the entry to enter "
-"\"activity mode\", where a block bounces back and forth. Each call to "
-"<code>progress_pulse()</code> causes the block to move by a little bit (the "
-"amount of movement per pulse is determined, as said before, by "
-"<code>set_progress_pulse_step()</code>)."
+"from gi.repository import Gtk\n"
+"from gi.repository import Pango\n"
+"import sys\n"
+"\n"
+"columns = [\"First Name\",\n"
+"           \"Last Name\",\n"
+"           \"Phone Number\"]\n"
+"\n"
+"phonebook = [[\"Jurg\", \"Billeter\", \"555-0123\"],\n"
+"             [\"Johannes\", \"Schmid\", \"555-1234\"],\n"
+"             [\"Julita\", \"Inca\", \"555-2345\"],\n"
+"             [\"Javier\", \"Jardon\", \"555-3456\"],\n"
+"             [\"Jason\", \"Clinton\", \"555-4567\"],\n"
+"             [\"Random J.\", \"Hacker\", \"555-5678\"]]\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"My Phone Book\", application=app)\n"
+"        self.set_default_size(250, 100)\n"
+"        self.set_border_width(10)\n"
+"\n"
+"        # the data in the model (three strings for each row, one for each column)\n"
+"        listmodel = Gtk.ListStore(str, str, str)\n"
+"        # append the values in the model\n"
+"        for i in range(len(phonebook)):\n"
+"            listmodel.append(phonebook[i])\n"
+"\n"
+"        # a treeview to see the data stored in the model\n"
+"        view = Gtk.TreeView(model=listmodel)\n"
+"        # for each column\n"
+"        for i in range(len(columns)):\n"
+"            # cellrenderer to render the text\n"
+"            cell = Gtk.CellRendererText()\n"
+"            # the text in the first column should be in boldface\n"
+"            if i == 0:\n"
+"                cell.props.weight_set=True\n"
+"                cell.props.weight=Pango.Weight.BOLD\n"
+"            # the column is created\n"
+"            col = Gtk.TreeViewColumn(columns[i], cell, text=i)\n"
+"            # and it is appended to the treeview\n"
+"            view.append_column(col)\n"
+"\n"
+"        # when a row is selected, it emits a signal\n"
+"        view.get_selection().connect(\"changed\", self.on_changed)\n"
+"\n"
+"        # the label we use to show the selection\n"
+"        self.label = Gtk.Label()\n"
+"        self.label.set_text(\"\")\n"
+"\n"
+"        # a grid to attach the widgets\n"
+"        grid = Gtk.Grid()\n"
+"        grid.attach(view, 0, 0, 1, 1)\n"
+"        grid.attach(self.label, 0, 1, 1, 1)\n"
+"\n"
+"        # attach the grid to the window\n"
+"        self.add(grid)\n"
+"\n"
+"    def on_changed(self, selection):\n"
+"        # get the model and the iterator that points at the data in the model\n"
+"        (model, iter) = selection.get_selected()\n"
+"        # set the label to a new value depending on the selection\n"
+"        self.label.set_text(\"\\n %s %s %s\" %(model[iter][0],  model[iter][1], model[iter][2]))\n"
+"        return True\n"
+"\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
 msgstr ""
-"ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÎÏÎÏÏÏÎÏÎÏ ÎÏÎÏÎÎ ÎÎ ÎÎÏÎÎÎÏÎÎ ÏÏÏÎÎÎ Î ÏÎÎÏÎÏÎÏÎÎÏ "
-"ÎÏÎÏÏÎÏÎÏÏÎÏÎÏ ÏÎÏÏ ÎÏÏ ÏÎ ÎÎÎÎÎÎÎ. ÎÏÎÏÎÎÎÏÎÎÎÏÎÎ "
-"<code>set_progress_fraction(fraction)</code>, ÏÏÎÏ <code>fraction</code> "
-"ÎÎÎÎÎ ÎÎÎÏ <code>float</code> between <code>0.0</code> ÎÎÎ <code>1.0</code> "
-"ÏÏÎÏÎÏÎÎÎÎÎÎÎÏÎÎÎÎÏ, ÎÎÎ ÎÎ ÏÏÎÏÎÎÏÏÏÎÎ ÏÎ ÎÎÎÎÎÎÎÎ ÎÎÎÏÎÎ ÏÎÏ ÎÏÎÎÎÎÏ. "
-"ÎÏÎÏÎÎÎÏÎÎÎÏÎÎ <code>set_progress_pulse_step()</code> ÎÎÎ ÏÎÎ ÎÏÎÏÎÏ ÏÎÏ "
-"ÎÎÎÏÎÎÏÎÏ ÏÎÏ ÏÏÎÎÎÎÎÎÏ ÏÎÎÏÎÏÏ ÎÎÏÎÏÏÏÎÏÎÏ ÎÎÎ ÎÎ ÎÎÏÎÎÎÎÎÏÎÏÎÎ ÏÎÎ ÎÎÎÎÎ "
-"ÎÎÎÏÎÎÎÏÎÏ ÏÏÎÏÎÎÏ ÎÎÎ ÎÎÎÎ ÎÎÎÏÎ ÏÏÎÎ <code>progress_pulse()</code>. Î "
-"ÏÎÎÎÏÏÎÎÎ ÎÎÎÎÎÎÏ ÎÎÎÏÎÎÎ ÏÏÎ ÎÎÏÎÎÎ ÏÏÏÎÎÎÏ ÎÏÎÎ ÎÎÎÎÎ ÎÎÎ ÏÏÎÎÎÎÎÎ ÏÎÎ "
-"ÎÎÎÎÏÎ ÏÏÎÏÎÎÏ ÏÎÏ ÎÎÏÎÏÏÏÎÏÎÏ ÎÎ ÎÏÎÎ ÏÏÎÎ \"activity mode\", ÏÏÎÏ ÎÎÎ "
-"ÎÎÎÎÎ ÎÎÎÏÎÎÎ ÏÎÏÏ ÎÎÎ ÎÏÏÎÏ. ÎÎÎÎ ÎÎÎÏÎ ÏÏÎÎ <code>progress_pulse()</code> "
-"ÏÏÎÎÎÎÎÎ ÏÎÎ ÎÎÏÎÎÎÎÎÏÎ ÏÎÏ ÎÎÎÎÎÏ ÎÎÎÎ (Î ÏÎÏÏÏÎÏÎ ÏÎÏ ÎÎÏÎÎÎÎÎÏÎÏ ÎÎÎ "
-"ÏÎÎÎÏ ÎÎÎÎÏÎÎÎÏÎÎ, ÏÏÏÏ ÎÎÏÏÎÎÎÎ ÏÏÎÎ, ÎÎÏÎ <code>set_progress_pulse_step()</"
-"code>)."
+"from gi.repository import Gtk\n"
+"from gi.repository import Pango\n"
+"import sys\n"
+"\n"
+"columns = [\"First Name\",\n"
+"           \"Last Name\",\n"
+"           \"Phone Number\"]\n"
+"\n"
+"phonebook = [[\"Jurg\", \"Billeter\", \"555-0123\"],\n"
+"             [\"Johannes\", \"Schmid\", \"555-1234\"],\n"
+"             [\"Julita\", \"Inca\", \"555-2345\"],\n"
+"             [\"Javier\", \"Jardon\", \"555-3456\"],\n"
+"             [\"Jason\", \"Clinton\", \"555-4567\"],\n"
+"             [\"Random J.\", \"Hacker\", \"555-5678\"]]\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"My Phone Book\", application=app)\n"
+"        self.set_default_size(250, 100)\n"
+"        self.set_border_width(10)\n"
+"\n"
+"        # the data in the model (three strings for each row, one for each column)\n"
+"        listmodel = Gtk.ListStore(str, str, str)\n"
+"        # append the values in the model\n"
+"        for i in range(len(phonebook)):\n"
+"            listmodel.append(phonebook[i])\n"
+"\n"
+"        # a treeview to see the data stored in the model\n"
+"        view = Gtk.TreeView(model=listmodel)\n"
+"        # for each column\n"
+"        for i in range(len(columns)):\n"
+"            # cellrenderer to render the text\n"
+"            cell = Gtk.CellRendererText()\n"
+"            # the text in the first column should be in boldface\n"
+"            if i == 0:\n"
+"                cell.props.weight_set=True\n"
+"                cell.props.weight=Pango.Weight.BOLD\n"
+"            # the column is created\n"
+"            col = Gtk.TreeViewColumn(columns[i], cell, text=i)\n"
+"            # and it is appended to the treeview\n"
+"            view.append_column(col)\n"
+"\n"
+"        # when a row is selected, it emits a signal\n"
+"        view.get_selection().connect(\"changed\", self.on_changed)\n"
+"\n"
+"        # the label we use to show the selection\n"
+"        self.label = Gtk.Label()\n"
+"        self.label.set_text(\"\")\n"
+"\n"
+"        # a grid to attach the widgets\n"
+"        grid = Gtk.Grid()\n"
+"        grid.attach(view, 0, 0, 1, 1)\n"
+"        grid.attach(self.label, 0, 1, 1, 1)\n"
+"\n"
+"        # attach the grid to the window\n"
+"        self.add(grid)\n"
+"\n"
+"    def on_changed(self, selection):\n"
+"        # get the model and the iterator that points at the data in the model\n"
+"        (model, iter) = selection.get_selected()\n"
+"        # set the label to a new value depending on the selection\n"
+"        self.label.set_text(\"\\n %s %s %s\" %(model[iter][0],  model[iter][1], model[iter][2]))\n"
+"        return True\n"
+"\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
 
-#: C/entry.py.page:53(p)
+#: C/treeview_simple_liststore.py.page:49(item/p)
 msgid ""
-"An Entry widget can also show icons. These icons can be activatable by "
-"clicking, can be set up as drag source and can have tooltips. To add an "
-"icon, use <code>set_icon_from_stock(icon_position, stock_id)</code>, or one "
-"of <code>set_icon_from_pixbuf(icon_position, pixbuf)</code>, "
-"<code>set_icon_from_icon_name(icon_position, icon_name)</code>, where "
-"<code>icon_position</code> is one of <code>Gtk.EntryIconPosition.PRIMARY</"
-"code> (to set the icon at the beginning of the entry) <code>Gtk."
-"EntryIconPosition.SECONDARY</code> (to set the icon at the end of the "
-"entry). To set a tooltip on an icon, use <code>set_icon_tooltip_text"
-"(\"tooltip text\")</code> or <code>set_icon_tooltip_markup(\"tooltip text in "
-"Pango markup language\")</code>."
+"<link href=\"http://developer.gnome.org/pango/stable/pango-Fonts.html";
+"\">Fonts</link>"
 msgstr ""
-"ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÎÏÎÏÏÏÎÏÎÏ ÎÏÎÏÎÎ ÎÏÎÏÎÏ ÎÎ ÎÎÏÎÎÎÏÎÎ ÎÎÎÎÎÎÎÎÎ. ÎÏÏÎ "
-"ÏÎ ÎÎÎÎÎÎÎÎÎ ÏÎÏ ÎÏÎÏÎÏÎ ÎÎ ÎÎÎÏÎÎÏÎÎÎÎÎÏÎ ÎÎ ÎÎÎÎ, ÎÏÎÏÎÏÎ ÎÎ ÎÏÎÏÏÎÏÎ ÏÏ "
-"ÏÎÎÎ ÎÎÏÎÏÎÏÎÏ ÎÎÎ ÎÏÎÏÎÏÎ ÎÎ ÎÏÎÏÎ ÏÏÎÎÎÏÎÎÏ ÎÎÏÎÎÏ. ÎÎÎ ÏÎÎ ÏÏÎÏÎÎÎÎ ÎÎÏÏ "
-"ÎÎÎÎÎÎÎÎÎÏ, ÏÏÎÏÎÎÎÏÎÎÎÏÏÎ <code>set_icon_from_stock(icon_position, stock_id)"
-"</code>, Î ÎÎÎ ÎÏÏ ÏÎ <code>set_icon_from_pixbuf(icon_position, pixbuf)</"
-"code>, <code>set_icon_from_icon_name(icon_position, icon_name)</code>, ÏÏÎÏ "
-"<code>icon_position</code> ÎÎÎÎÎ ÎÎÎ ÎÏÏ <code>Gtk.EntryIconPosition."
-"PRIMARY</code> (ÎÎÎ ÏÎÎ ÎÏÎÏÎÏ ÏÎÏ ÎÎÎÎÎÎÎÎÎÏ ÏÏÎÎ ÎÏÏÎ ÏÎÏ ÎÎÏÎÏÏÏÎÏÎÏ) "
-"<code>Gtk.EntryIconPosition.SECONDARY</code> (ÎÎÎ ÏÎÎ ÎÏÎÏÎÏ ÏÎÏ ÎÎÎÎÎÎÎÎÎÏ "
-"ÏÏÎ ÏÎÎÎÏ ÏÎÏ ÎÎÏÎÏÏÏÎÏÎÏ). ÎÎÎ ÏÎÎ ÎÏÎÏÎÏ ÎÎÎÏ ÏÏÎÎÎÏÎÎÏ ÎÎÏÎÎÏ ÏÎ ÎÎÎ "
-"ÎÎÎÎÎÎÎÎÎ, ÏÏÎÏÎÎÎÏÎÎÎÏÏÎ <code>set_icon_tooltip_text(\"tooltip text\")</"
-"code> Î <code>set_icon_tooltip_markup(\"tooltip text in Pango markup language"
-"\")</code>."
-
-#: C/entry.py.page:61(link) C/entry.c.page:33(link)
-#: C/buttonbox.py.page:50(link)
-msgid "GtkEntry"
-msgstr "GtkEntry"
-
-#: C/entry.js.page:7(title)
-msgid "Entry (JavaScript)"
-msgstr "ÎÎÏÎÏÏÏÎÏÎ (JavaScript)"
+"<link href=\"http://developer.gnome.org/pango/stable/pango-Fonts.html";
+"\">Fonts</link>"
 
-#: C/entry.js.page:17(desc)
-msgid "A single-line text entry field"
-msgstr "ÎÎÎ ÏÎÎÎÎ ÎÎÏÎÏÏÏÎÏÎÏ ÎÎÎÎÎÎÎÏ ÎÎÎÎÏ ÎÏÎÎÎÎÏ"
-
-#: C/entry.js.page:22(p)
-msgid "This application greets you by name through a pop-up window."
-msgstr "ÎÏÏÎ Î ÎÏÎÏÎÎÎÎ ÏÎÏ ÏÎÎÏÎÏÎ ÎÎ ÏÎ ÏÎÎÎÎ ÎÎÏÎ ÎÏÏ ÎÎÎÎÏÏÎÎÎÎ ÏÎÏÎÎÏÏÎ."
-
-#: C/entry.c.page:7(title)
-msgid "Entry (C)"
-msgstr "ÎÎÏÎÏÏÏÎÏÎ (C)"
+#: C/treeview_simple_liststore.vala.page:7(info/title)
+msgctxt "text"
+msgid "Simple Treeview with ListStore (Vala)"
+msgstr "ÎÏÎÎ Treeview ÎÎ ListStore (Vala)"
 
-#: C/documentation.page:19(title)
-msgid "Help develop"
-msgstr "ÎÎÎÎÎÎÎ ÏÏÎÎ ÎÎÎÏÏÏÎÎ"
+#: C/treeview_simple_liststore.vala.page:19(info/desc)
+msgid "A widget can display any TreeModel implementation (lists and trees)"
+msgstr ""
+"ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÏÎÏÎÎ ÎÎ ÎÎÏÎÎÎÏÎÎ ÎÏÎÎÎÎÎÏÎÏÎ ÏÎÎÏÎÎÎÏÎ TreeModel "
+"(ÎÎÏÏÎÏ ÎÎÎ ÎÎÎÎÏÎ)"
 
-#: C/documentation.page:20(p)
+#: C/treeview_simple_liststore.vala.page:24(page/p)
 msgid ""
-"The <app>GNOME Developer Tutorials</app> are developed and maintained by a "
-"volunteer community. You are welcome to participate."
+"This TreeView displays a simple ListStore with the Selection \"changed\" "
+"signal connected."
 msgstr ""
-"ÎÎ <app>ÎÎÎÎÎÎÏÎ ÎÎÎÏÏÏÎÎÏ ÏÎÏ GNOME</app> ÎÎÎÏÏÏÏÏÎÎÏÎÎ ÎÎÎ ÏÏÎÏÎÏÎÏÎÏÎÎ "
-"ÎÏÏ ÎÎÎ ÎÎÎÎÎÎÏÎÎÎ ÎÎÎÎÏÏÎÏÎ. ÎÎÏÎÏÏÎ ÎÎÎÎÎÎÏÎÏÎÎÎÎÎ ÎÎ ÏÏÎÎÎÏÎÏÏÎÏÎ."
+"ÎÏÏÎ Î TreeView ÎÎÏÎÎÎÎÎÎ ÎÎÎ ÎÏÎÎ ListStore ÎÎ ÏÎ ÏÏÎÎÎÎÎÎÎ ÏÎÎÎ ÎÏÎÎÎÎÎÏ "
+"\"ÎÎÎÎÎÎÎÎÎ\"."
 
-#: C/documentation.page:23(p)
+#: C/treeview_simple_liststore.vala.page:26(page/code)
+#, no-wrap
 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>."
+"public class PhoneBookEntry {\n"
+"\tpublic string firstname;\n"
+"\tpublic string lastname;\n"
+"\tpublic string phone;\n"
+"\n"
+"\tpublic PhoneBookEntry (string f, string l, string p) {\n"
+"\t\tthis.firstname = f;\n"
+"\t\tthis.lastname = l;\n"
+"\t\tthis.phone = p;\n"
+"\t}\n"
+"}\n"
+"\n"
+"class TreeViewSimpleListStore : Gtk.ApplicationWindow {\n"
+"\n"
+"\tGtk.Label label;\n"
+"\n"
+"\tPhoneBookEntry[] phonebook = {\n"
+"\t\tnew PhoneBookEntry (\"Jurg\", \"Billeter\", \"555-0123\"),\n"
+"\t\tnew PhoneBookEntry (\"Johannes\", \"Schmid\", \"555-1234\"),\n"
+"\t\tnew PhoneBookEntry (\"Julita\", \"Inca\", \"555-2345\"),\n"
+"\t\tnew PhoneBookEntry (\"Javier\", \"Jardon\", \"555-3456\"),\n"
+"\t\tnew PhoneBookEntry (\"Jason\", \"Clinton\", \"555-4567\"),\n"
+"\t\tnew PhoneBookEntry (\"Random J.\", \"Hacker\", \"555-5678\")\n"
+"\t};\n"
+"\n"
+"\tenum Column {\n"
+"\t\tFIRSTNAME,\n"
+"\t\tLASTNAME,\n"
+"\t\tPHONE\n"
+"\t}\n"
+"\n"
+"\tinternal TreeViewSimpleListStore (MyApplication app) {\n"
+"\t\tObject (application: app, title: \"My Phone Book\");\n"
+"\n"
+"\t\tthis.set_default_size (250, 100);\n"
+"\t\tthis.border_width = 10;\n"
+"\n"
+"\t\tvar view = new Gtk.TreeView ();\n"
+"\t\tthis.setup_treeview (view);\n"
+"\t\tview.expand = true;\n"
+"\n"
+"\t\tlabel = new Gtk.Label (\"\");\n"
+"\n"
+"\t\tvar grid = new Gtk.Grid ();\n"
+"\n"
+"\t\tgrid.attach (view, 0, 0, 1, 1);\n"
+"\t\tgrid.attach (label, 0, 1, 1, 1);\n"
+"\t\tthis.add (grid);\n"
+"\n"
+"\t\tvar selection = view.get_selection ();\n"
+"\t\tselection.changed.connect (this.on_changed);\n"
+"\t}\n"
+"\n"
+"\tvoid setup_treeview (Gtk.TreeView view) {\n"
+"\t\tvar listmodel = new Gtk.ListStore (3, typeof (string),\n"
+"                                              typeof (string),\n"
+"                                              typeof (string));\n"
+"\t\tview.set_model (listmodel);\n"
+"\n"
+"\t\tvar cell = new Gtk.CellRendererText ();\n"
+"\n"
+"\t\t/* 'weight' refers to font boldness.\n"
+"\t\t *  400 is normal.\n"
+"\t\t *  700 is bold.\n"
+"\t\t */\n"
+"\t\tcell.set (\"weight_set\", true);\n"
+"\t\tcell.set (\"weight\", 700);\n"
+"\n"
+"\t\t/*columns*/\n"
+"\t\tview.insert_column_with_attributes (-1, \"First Name\",\n"
+"                                                cell, \"text\",\n"
+"                                                Column.FIRSTNAME);\n"
+"\n"
+"\t\tview.insert_column_with_attributes (-1, \"Last Name\",\n"
+"                                                new Gtk.CellRendererText (),\n"
+"                                                \"text\", Column.LASTNAME);\n"
+"\n"
+"\t\tview.insert_column_with_attributes (-1, \"Phone Number\",\n"
+"                                                new Gtk.CellRendererText (),\n"
+"                                                \"text\", Column.PHONE);\n"
+"\n"
+"\t\t/* Insert the phonebook into the ListStore */\n"
+"\t\tGtk.TreeIter iter;\n"
+"\t\tfor (int i = 0; i &lt; phonebook.length; i++) {\n"
+"\t\t\tlistmodel.append (out iter);\n"
+"\t\t\tlistmodel.set (iter, Column.FIRSTNAME,\n"
+"                                 phonebook[i].firstname,\n"
+"                                 Column.LASTNAME, phonebook[i].lastname,\n"
+"                                 Column.PHONE, phonebook[i].phone);\n"
+"\t\t}\n"
+"\t}\n"
+"\n"
+"\tvoid on_changed (Gtk.TreeSelection selection) {\n"
+"\t\tGtk.TreeModel model;\n"
+"\t\tGtk.TreeIter iter;\n"
+"\t\tstring name;\n"
+"\t\tstring lastname;\n"
+"\t\tstring phone;\n"
+"\n"
+"\t\tif (selection.get_selected (out model, out iter)) {\n"
+"\t\t\tmodel.get (iter,\n"
+"                                   Column.FIRSTNAME, out name,\n"
+"                                   Column.LASTNAME, out lastname,\n"
+"                                   Column.PHONE, out phone);\n"
+"\n"
+"\t\t\tlabel.set_text (\"\\n\" + name + \" \" + lastname + \" \" + phone);\n"
+"\t\t}\n"
+"\t}\n"
+"}\n"
+"\n"
+"class MyApplication : Gtk.Application {\n"
+"\tprotected override void activate () {\n"
+"\n"
+"\t\t/* Create new Window and show all the things. */\n"
+"\t\tnew TreeViewSimpleListStore (this).show_all ();\n"
+"\t}\n"
+"\n"
+"\tinternal MyApplication () {\n"
+"\t\tObject (application_id: \"example.liststore.simple.treeview\");\n"
+"\t}\n"
+"}\n"
+"\n"
+"int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
 msgstr ""
-"ÎÎÎ ÎÎÎÎÏÎ ÎÎ <link href=\"https://live.gnome.org/DocumentationProject/Tasks/";
-"DeveloperDocs\">ÎÎÎÎÎÏÎÏÎ ÏÏÎÎ ÎÎÎÏÏÏÎÎ ÏÏÎ <app>ÎÎÎÎÎÎÏÏÎ ÎÎÎÏÏÏÎÎÏ ÏÎÏ "
-"GNOME </app></link>, ÎÏÎÏÎÎÏÎ ÎÎ ÎÏÎÎÏÎ ÏÎ ÎÏÎÏÎ ÎÎ ÏÎÏÏ ÏÏÎÎÏÎÎÎÎÏÎÏÏÎÏ "
-"ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ <link href=\"https://cbe005.chat.mibbit.com/?url=irc%3A%2F";
-"%2Firc.gnome.org%2Fdocs\">irc</link>, Î ÏÎ <link href=\"http://mail.gnome.";
-"org/mailman/listinfo/gnome-doc-devel-list\">ÎÎÏÏÎ ÏÎÏÏÎÏÎÎÎÎÎÏ</link> ÎÎÏ."
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/dialog.vala.page:21(None) C/dialog.py.page:22(None)
-#: C/dialog.js.page:21(None) C/dialog.c.page:24(None)
-msgid "@@image: 'media/dialog.png'; md5=c90a33386a600e892fe623d4072c8c38"
-msgstr "@@image: 'media/dialog.png'Â md5=c90a33386a600e892fe623d4072c8c38"
-
-#: C/dialog.vala.page:7(title)
-msgid "Dialog (Vala)"
-msgstr "ÎÎÎÎÎÎÎÏ (Vala)"
-
-#: C/dialog.vala.page:17(desc) C/dialog.py.page:18(desc)
-#: C/dialog.js.page:17(desc) C/dialog.c.page:19(desc)
-msgid "A popup window"
-msgstr "ÎÎÎ ÎÎÎÎÏÏÎÎÎÎ ÏÎÏÎÎÏÏÎ"
-
-#: C/dialog.vala.page:20(title) C/dialog.py.page:21(title)
-#: C/dialog.js.page:20(title) C/dialog.c.page:22(title)
-msgid "Dialog"
-msgstr "ÎÎÎÎÎÎÎÏ"
+"public class PhoneBookEntry {\n"
+"\tpublic string firstname;\n"
+"\tpublic string lastname;\n"
+"\tpublic string phone;\n"
+"\n"
+"\tpublic PhoneBookEntry (string f, string l, string p) {\n"
+"\t\tthis.firstname = f;\n"
+"\t\tthis.lastname = l;\n"
+"\t\tthis.phone = p;\n"
+"\t}\n"
+"}\n"
+"\n"
+"class TreeViewSimpleListStore : Gtk.ApplicationWindow {\n"
+"\n"
+"\tGtk.Label label;\n"
+"\n"
+"\tPhoneBookEntry[] phonebook = {\n"
+"\t\tnew PhoneBookEntry (\"Jurg\", \"Billeter\", \"555-0123\"),\n"
+"\t\tnew PhoneBookEntry (\"Johannes\", \"Schmid\", \"555-1234\"),\n"
+"\t\tnew PhoneBookEntry (\"Julita\", \"Inca\", \"555-2345\"),\n"
+"\t\tnew PhoneBookEntry (\"Javier\", \"Jardon\", \"555-3456\"),\n"
+"\t\tnew PhoneBookEntry (\"Jason\", \"Clinton\", \"555-4567\"),\n"
+"\t\tnew PhoneBookEntry (\"Random J.\", \"Hacker\", \"555-5678\")\n"
+"\t};\n"
+"\n"
+"\tenum Column {\n"
+"\t\tFIRSTNAME,\n"
+"\t\tLASTNAME,\n"
+"\t\tPHONE\n"
+"\t}\n"
+"\n"
+"\tinternal TreeViewSimpleListStore (MyApplication app) {\n"
+"\t\tObject (application: app, title: \"My Phone Book\");\n"
+"\n"
+"\t\tthis.set_default_size (250, 100);\n"
+"\t\tthis.border_width = 10;\n"
+"\n"
+"\t\tvar view = new Gtk.TreeView ();\n"
+"\t\tthis.setup_treeview (view);\n"
+"\t\tview.expand = true;\n"
+"\n"
+"\t\tlabel = new Gtk.Label (\"\");\n"
+"\n"
+"\t\tvar grid = new Gtk.Grid ();\n"
+"\n"
+"\t\tgrid.attach (view, 0, 0, 1, 1);\n"
+"\t\tgrid.attach (label, 0, 1, 1, 1);\n"
+"\t\tthis.add (grid);\n"
+"\n"
+"\t\tvar selection = view.get_selection ();\n"
+"\t\tselection.changed.connect (this.on_changed);\n"
+"\t}\n"
+"\n"
+"\tvoid setup_treeview (Gtk.TreeView view) {\n"
+"\t\tvar listmodel = new Gtk.ListStore (3, typeof (string),\n"
+"                                              typeof (string),\n"
+"                                              typeof (string));\n"
+"\t\tview.set_model (listmodel);\n"
+"\n"
+"\t\tvar cell = new Gtk.CellRendererText ();\n"
+"\n"
+"\t\t/* 'weight' refers to font boldness.\n"
+"\t\t *  400 is normal.\n"
+"\t\t *  700 is bold.\n"
+"\t\t */\n"
+"\t\tcell.set (\"weight_set\", true);\n"
+"\t\tcell.set (\"weight\", 700);\n"
+"\n"
+"\t\t/*columns*/\n"
+"\t\tview.insert_column_with_attributes (-1, \"First Name\",\n"
+"                                                cell, \"text\",\n"
+"                                                Column.FIRSTNAME);\n"
+"\n"
+"\t\tview.insert_column_with_attributes (-1, \"Last Name\",\n"
+"                                                new Gtk.CellRendererText (),\n"
+"                                                \"text\", Column.LASTNAME);\n"
+"\n"
+"\t\tview.insert_column_with_attributes (-1, \"Phone Number\",\n"
+"                                                new Gtk.CellRendererText (),\n"
+"                                                \"text\", Column.PHONE);\n"
+"\n"
+"\t\t/* Insert the phonebook into the ListStore */\n"
+"\t\tGtk.TreeIter iter;\n"
+"\t\tfor (int i = 0; i &lt; phonebook.length; i++) {\n"
+"\t\t\tlistmodel.append (out iter);\n"
+"\t\t\tlistmodel.set (iter, Column.FIRSTNAME,\n"
+"                                 phonebook[i].firstname,\n"
+"                                 Column.LASTNAME, phonebook[i].lastname,\n"
+"                                 Column.PHONE, phonebook[i].phone);\n"
+"\t\t}\n"
+"\t}\n"
+"\n"
+"\tvoid on_changed (Gtk.TreeSelection selection) {\n"
+"\t\tGtk.TreeModel model;\n"
+"\t\tGtk.TreeIter iter;\n"
+"\t\tstring name;\n"
+"\t\tstring lastname;\n"
+"\t\tstring phone;\n"
+"\n"
+"\t\tif (selection.get_selected (out model, out iter)) {\n"
+"\t\t\tmodel.get (iter,\n"
+"                                   Column.FIRSTNAME, out name,\n"
+"                                   Column.LASTNAME, out lastname,\n"
+"                                   Column.PHONE, out phone);\n"
+"\n"
+"\t\t\tlabel.set_text (\"\\n\" + name + \" \" + lastname + \" \" + phone);\n"
+"\t\t}\n"
+"\t}\n"
+"}\n"
+"\n"
+"class MyApplication : Gtk.Application {\n"
+"\tprotected override void activate () {\n"
+"\n"
+"\t\t/* Create new Window and show all the things. */\n"
+"\t\tnew TreeViewSimpleListStore (this).show_all ();\n"
+"\t}\n"
+"\n"
+"\tinternal MyApplication () {\n"
+"\t\tObject (application_id: \"example.liststore.simple.treeview\");\n"
+"\t}\n"
+"}\n"
+"\n"
+"int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
 
-#: C/dialog.vala.page:22(p)
-msgid "A dialog with the response signal hooked up to a callback function."
+#: C/treeview_simple_liststore.vala.page:31(item/p)
+msgid ""
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.TreeView.html\";>Gtk."
+"TreeView</link>"
 msgstr ""
-"ÎÎÎÏ ÎÎÎÎÎÎÎÏ ÎÎ ÏÎ ÏÎÎÎ ÎÏÎÎÏÎÏÎÏ ÏÏÎÎÎÎÎÎÎ ÏÎ ÎÎÎ ÏÏÎÎÏÏÎÏÎ ÎÏÎÎÎÎÎÎÏÎÏ."
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.TreeView.html\";>Gtk."
+"TreeView</link>"
 
-#: C/dialog.vala.page:31(link) C/dialog.js.page:31(link)
-msgid "Gtk.Dialog"
-msgstr "Gtk.Dialog"
+#: C/treeview_simple_liststore.vala.page:33(item/p)
+msgid ""
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.TreeSelection.html\";>Gtk."
+"TreeSelection</link>"
+msgstr ""
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.TreeSelection.html\";>Gtk."
+"TreeSelection</link>"
 
-#: C/dialog.vala.page:32(link)
-msgid "Gtk.Dialog.with_buttons"
-msgstr "Gtk.Dialog.with_buttons"
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/treeview_treestore.py.page:21(media)
+msgctxt "_"
+msgid ""
+"external ref='media/treeview_treestore.png' "
+"md5='5ca87bc4acd55c527b3fb5fd46779d85'"
+msgstr ""
+"external ref='media/treeview_treestore.png' "
+"md5='5ca87bc4acd55c527b3fb5fd46779d85'"
 
-#: C/dialog.vala.page:34(link)
-msgid "get_content_area"
-msgstr "get_content_area"
+#: C/treeview_treestore.py.page:17(info/desc)
+msgid "A TreeView displaying a TreeStore (simpler example)"
+msgstr "ÎÎÎ TreeView ÏÎÏ ÎÎÏÎÎÎÎÎÎ ÎÎÎ TreeStore (ÎÏÎÏ ÏÎÏÎÎÎÎÎÎÎ)"
 
-#: C/dialog.py.page:7(title)
-msgid "Dialog (Python)"
-msgstr "ÎÎÎÎÎÎÎÏ (Python)"
+#: C/treeview_treestore.py.page:22(page/p)
+msgid "This TreeView displays a TreeStore."
+msgstr "ÎÏÏÏ ÏÎ TreeView ÎÎÏÎÎÎÎÎÎ ÎÎÎ TreeStore."
 
-#: C/dialog.py.page:23(p)
-msgid "A dialog with the response signal connected to a callback function."
+#: C/treeview_treestore.py.page:29(section/code)
+#, no-wrap
+msgid ""
+"from gi.repository import Gtk\n"
+"from gi.repository import Pango\n"
+"import sys\n"
+"\n"
+"books = [[\"Tolstoy, Leo\", \"War and Peace\", \"Anna Karenina\"],\n"
+"         [\"Shakespeare, William\", \"Hamlet\", \"Macbeth\", \"Othello\"],\n"
+"         [\"Tolkien, J.R.R.\", \"The Lord of the Rings\"]]\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"Library\", application=app)\n"
+"        self.set_default_size(250, 100)\n"
+"        self.set_border_width(10)\n"
+"\n"
+"        # the data are stored in the model\n"
+"        # create a treestore with one column\n"
+"        store = Gtk.TreeStore(str)\n"
+"        for i in range(len(books)):\n"
+"            # the iter piter is returned when appending the author\n"
+"            piter = store.append(None, [books[i][0]])\n"
+"            # append the books as children of the author\n"
+"            j = 1\n"
+"            while j &lt; len(books[i]):\n"
+"                store.append(piter, [books[i][j]])\n"
+"                j += 1\n"
+"\n"
+"        # the treeview shows the model\n"
+"        # create a treeview on the model store\n"
+"        view = Gtk.TreeView()\n"
+"        view.set_model(store)\n"
+"\n"
+"        # the cellrenderer for the column - text\n"
+"        renderer_books = Gtk.CellRendererText()\n"
+"        # the column is created\n"
+"        column_books = Gtk.TreeViewColumn(\"Books by Author\", renderer_books, text=0)\n"
+"        # and it is appended to the treeview\n"
+"        view.append_column(column_books)\n"
+"\n"
+"        # the books are sortable by author\n"
+"        column_books.set_sort_column_id(0)\n"
+"\n"
+"        # add the treeview to the window\n"
+"        self.add(view)\n"
+"\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
 msgstr ""
-"ÎÎÎÏ ÎÎÎÎÎÎÎÏ ÎÎ ÏÎ ÏÎÎÎ ÎÏÎÎÏÎÏÎÏ ÏÏÎÎÎÎÎÎÎ ÏÎ ÎÎÎ ÏÏÎÎÏÏÎÏÎ ÎÏÎÎÎÎÎÎÏÎÏ."
+"from gi.repository import Gtk\n"
+"from gi.repository import Pango\n"
+"import sys\n"
+"\n"
+"books = [[\"Tolstoy, Leo\", \"War and Peace\", \"Anna Karenina\"],\n"
+"         [\"Shakespeare, William\", \"Hamlet\", \"Macbeth\", \"Othello\"],\n"
+"         [\"Tolkien, J.R.R.\", \"The Lord of the Rings\"]]\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"Library\", application=app)\n"
+"        self.set_default_size(250, 100)\n"
+"        self.set_border_width(10)\n"
+"\n"
+"        # the data are stored in the model\n"
+"        # create a treestore with one column\n"
+"        store = Gtk.TreeStore(str)\n"
+"        for i in range(len(books)):\n"
+"            # the iter piter is returned when appending the author\n"
+"            piter = store.append(None, [books[i][0]])\n"
+"            # append the books as children of the author\n"
+"            j = 1\n"
+"            while j &lt; len(books[i]):\n"
+"                store.append(piter, [books[i][j]])\n"
+"                j += 1\n"
+"\n"
+"        # the treeview shows the model\n"
+"        # create a treeview on the model store\n"
+"        view = Gtk.TreeView()\n"
+"        view.set_model(store)\n"
+"\n"
+"        # the cellrenderer for the column - text\n"
+"        renderer_books = Gtk.CellRendererText()\n"
+"        # the column is created\n"
+"        column_books = Gtk.TreeViewColumn(\"Books by Author\", renderer_books, text=0)\n"
+"        # and it is appended to the treeview\n"
+"        view.append_column(column_books)\n"
+"\n"
+"        # the books are sortable by author\n"
+"        column_books.set_sort_column_id(0)\n"
+"\n"
+"        # add the treeview to the window\n"
+"        self.add(view)\n"
+"\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
 
-#: C/dialog.py.page:35(title)
-msgid "Useful methods for a Dialog widget"
-msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÎÎÎÏÎÎÏ"
+#: C/translate.page:15(credit/name)
+msgid "Michael Hill"
+msgstr "Michael Hill"
+
+#: C/translate.page:23(page/title)
+msgid "Help translate"
+msgstr "ÎÎÎÎÎÎÎ ÏÏÎ ÎÎÏÎÏÏÎÏÎ"
 
-#: C/dialog.py.page:38(p)
+#: C/translate.page:24(page/p)
 msgid ""
-"Instead of <code>set_modal(True)</code> we could have <code>set_modal(False)"
-"</code> followed by <code>set_destroy_with_parent(True)</code> that would "
-"destroy the dialog window if the main window is closed."
+"The <app>Tutorial Demos</app> are being translated by a world-wide volunteer "
+"community. You are welcome to participate."
 msgstr ""
-"ÎÎÏÎ ÎÎÎ <code>set_modal(True)</code> ÎÏÎÏÎÏÎÎ <code>set_modal(False)</code> "
-"ÎÎÎÎÎÏÎÎÏÎÎÎÎ ÎÏÏ <code>set_destroy_with_parent(True)</code> ÏÎÏ ÎÏÎÏÎÎ ÎÎ "
-"ÎÎÏÎÏÏÏÎÏÎÎ ÏÎ ÏÎÏÎÎÏÏÎ ÎÎÎÎÏÎÎÏ ÎÎÎ ÏÎ ÎÏÏÎÎ ÏÎÏÎÎÏÏÎ ÎÎÎÎÏÎÎ."
+"ÎÎ <app>ÏÎÏÎÏÏÎÎÏÎÎÏ ÎÎÎÎÎÎÏÏÎ</app> ÎÎÏÎÏÏÎÎÎÎÏÎÎ ÎÏÏ ÎÎÎ ÏÎÎÎÏÏÎÎÎ "
+"ÎÎÎÎÏÏÎÏÎ ÎÎÎÎÎÎÏÏÎ. ÎÎÏÏÎ ÎÎÎÎÎÎÏÎÏÎÎÎÎÎ ÎÎ ÏÏÎÎÎÏÎÏÏÎÏÎ."
 
-#: C/dialog.py.page:39(p)
+#: C/translate.page:27(page/p)
 msgid ""
-"<code>add_button(button_text=\"The Answer\", response_id=42)</code>, where "
-"<code>42</code> is any integer, is an alternative to <code>add_button"
-"(button_text=\"text\", response_id=Gtk.ResponseType.RESPONSE)</code>, where "
-"<code>RESPONSE</code> could be one of <code>OK, CANCEL, CLOSE, YES, NO, "
-"APPLY, HELP</code>, which in turn correspond to the integers <code>-5, "
-"-6,..., -11</code>."
+"There are <link href=\"http://l10n.gnome.org/module/gnome-devel-docs/\";>many "
+"languages</link> for which translations are still needed."
 msgstr ""
-"<code>add_button(button_text=\"The Answer\", response_id=42)</code>, ÏÏÎÏ "
-"<code>42</code> ÎÎÎÎÎ ÎÏÎÎÎÏÎÎÏÎÏÎ ÎÎÎÏÎÎÎÏ, ÎÎÎÎÎ ÎÎÎ ÎÎÎÎÎÎÎÏÎÎÎ ÏÏÎ "
-"<code>add_button(button_text=\"text\", response_id=Gtk.ResponseType.RESPONSE)"
-"</code>, ÏÏÎÏ <code>RESPONSE</code> ÎÏÎÏÎÎ ÎÎ ÎÎÎÎÎ ÎÎÎ ÎÏÏ ÏÎ <code>OK, "
-"CANCEL, CLOSE, YES, NO, APPLY, HELP</code>, ÏÎÏ ÎÎ ÏÎ ÏÎÎÏÎ ÏÎÏ ÎÎÏÎÏÏÎÎÏÎÎ "
-"ÏÎ ÎÎÎÏÎÎÎÏÏ <code>-5, -6,..., -11</code>."
-
-#: C/dialog.js.page:7(title)
-msgid "Dialog (JavaScript)"
-msgstr "ÎÎÎÎÎÎÎÏ (JavaScript)"
+"ÎÏÎÏÏÎÏÎ <link href=\"http://l10n.gnome.org/module/gnome-devel-docs/";
+"\">ÏÎÎÎÎÏ ÎÎÏÏÏÎÏ</link> ÎÎÎ ÏÎÏ ÎÏÎÎÎÏ ÎÏÎÎÏÎÏÎÏÎÎ ÎÎÏÎÏÏÎÏÎÎÏ."
 
-#: C/dialog.js.page:22(p)
+#: C/translate.page:30(page/p)
 msgid ""
-"A customizable popup window, which has a content area and an action area. "
-"This example dialog's content area contains a short message, and its action "
-"area contains a button which dismisses the dialog."
+"To start translating you will need to <link href=\"http://l10n.gnome.org";
+"\">create an account</link> and join the <link href=\"http://l10n.gnome.org/";
+"teams/\">translation team</link> for your language. This will give you the "
+"ability to upload new translations."
 msgstr ""
-"ÎÎÎ ÏÏÎÏÎÏÎÏÏÎÎÎ ÎÎÎÎÏÏÎÎÎÎ ÏÎÏÎÎÏÏÎ, ÏÎÏ ÎÏÎÎ ÎÎÎ ÏÎÏÎÎÏÎ ÏÎÏÎÎÏÎÎÎÎÎÏ ÎÎÎ "
-"ÎÎÎ ÏÎÏÎÎÏÎ ÎÎÎÏÎÎÎÎÏ. ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÏÎÏÎÎÏÎÏ ÏÎÏÎÎÏÎÎÎÎÎÏ ÎÎÎÎÏÎÎÏ "
-"ÏÎÏÎÎÏÎÎ ÎÎÎ ÏÏÎÏÎÎÎ ÎÎÎÏÎÎ ÎÎÎ Î ÏÎÏÎÎÏÎ ÎÎÎÏÎÎÎÎÏ ÏÎÏÎÎÏÎÎ ÎÎÎ ÎÎÏÎÏÎ ÏÎÏ "
-"ÎÏÎÏÏÎÏÏÎÎ ÏÎ ÎÎÎÎÎÎÎ."
-
-#: C/dialog.c.page:7(title)
-msgid "Dialog (C)"
-msgstr "ÎÎÎÎÎÎÎÏ (C)"
+"ÎÎÎ ÎÎ ÎÎÎÎÎÎÏÎÏÎ ÎÎ ÎÎÏÎÏÏÎÎÎÏÎ ÏÏÎÏÎÎ ÎÎ <link href=\"http://l10n.gnome.org";
+"\">ÎÎÎÎÎÏÏÎÎÏÎÏÎ ÎÎÎ ÎÎÎÎÏÎÎÏÎÏ</link> ÎÎÎ ÎÎ ÏÏÎÎÎÏÎÏÏÎÏÎ ÏÏÎÎ <link href="
+"\"http://l10n.gnome.org/teams/\";>ÎÎÎÎÎ ÎÎÏÎÏÏÎÏÎÏ</link> ÏÎÏ ÎÎÏÏÏÎÏ ÏÎÏ. "
+"ÎÏÏÏ ÎÎ ÏÎÏ ÎÏÏÎÎ ÏÎÎ ÎÏÎÎÏÏÏÎÏÎ ÎÎ ÎÎÎÎÎÏÎÏÎ ÎÎÎÏ ÎÎÏÎÏÏÎÏÎÎÏ."
 
-#: C/dialog.c.page:25(p)
-msgid "A dialog window that pops up when a button is pressed."
-msgstr "ÎÎÎ ÏÎÏÎÎÏÏÎ ÎÎÎÎÏÎÎÏ ÏÎÏ ÎÎÎÎÏÎÏÎÎ ÏÏÎÎ ÎÎÎ ÎÎÏÎÏÎ ÏÎÏÎÎÏÎÎ."
+#: C/translate.page:34(page/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 ""
+"ÎÏÎÏÎÎÏÎ ÎÎ ÏÏÎÎÏÎÏÎÏÎ ÎÎ ÎÎÏÎÏÏÎÏÏÎÏ ÏÎÏ GNOME ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ <link "
+"href=\"https://cbe003.chat.mibbit.com/?url=irc%3A%2F%2Firc.gnome.org%2Fi18n";
+"\">irc</link>. ÎÎÎÏÏÏÎÎ ÏÏÎ ÎÎÎÎÎÎ ÎÏÎÏÎÎÎÏÎÎ ÏÎÎÏÎÏ, ÎÏÏÎ ÎÏÎÏÎÎÏÎ ÎÎ "
+"ÏÎÏÎÏÎ ÎÎÎ ÎÎÎÏÎ ÎÏÎÎÏÎÏÎ ÏÏ ÎÏÎÏÎÎÎÏÎÎ ÏÏÎ ÎÎÎÏÎÏÏÎ ÏÏÎÏ."
 
-#: C/cpp.page:6(title)
-msgid "C++"
-msgstr "C++"
+#: C/translate.page:37(page/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 ""
+"ÎÎÎÎÎÎÎÏÎÎÎ, ÎÏÎÏÎÎÏÎ ÎÎ ÎÏÎÎÎÎÎÏÎÎÏÎÏÎ ÎÎ ÏÎÎ ÎÎÎÎÎ ÎÎÎÎÎÎÏÎÎÎÏÎÏ "
+"ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ <link href=\"http://mail.gnome.org/mailman/listinfo/gnome-";
+"i18n\">ÎÎÏÏÎ ÎÎÎÎÎÎÎÏÎÏÎÎÏ</link> ÏÎÏÏ."
 
-#: C/cpp.page:15(title)
-msgid "Platform demos in C++"
-msgstr "ÎÎÏÎÎÎÎÎÎÎÏÎ ÏÎÎÏÏÏÏÎÎÏ ÏÎ C++"
+#: C/tutorial.py.page:8(info/title)
+msgctxt "text"
+msgid "Beginner's Tutorial (Python)"
+msgstr "ÎÎÎÎÎÎÏÎ ÎÏÏÎÏÎÏÎ (Python)"
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/combobox_multicolumn.py.page:22(None) C/combobox.js.page:25(None)
+#: C/tutorial.py.page:12(info/desc)
 msgid ""
-"@@image: 'media/combobox_multicolumn.png'; "
-"md5=43f16648fb11ebc7d2f70825ed0f63b3"
+"A tutorial for beginners who want to learn how to program GUIs using GTK+ in "
+"Python."
 msgstr ""
-"@@image: 'media/combobox_multicolumn.png'Â "
-"md5=43f16648fb11ebc7d2f70825ed0f63b3"
+"ÎÎÎ ÎÎÎÎÎÎ ÎÎÎ ÎÏÏÎÏÎÎÏÏ ÏÎÏ ÎÎÎÎÏÎ ÎÎ ÎÎÎÎÏÎ ÏÏÏ ÎÎ ÏÏÎÎÏÎÎÎÎÏÎÏÎÏÎ "
+"ÎÎÎÏÎÏÎÏ ÏÏÎÏÏÎ (GUI) ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ GTK+ ÏÎ Python."
 
-#: C/combobox_multicolumn.py.page:7(title) C/combobox.py.page:7(title)
-msgid "ComboBox (Python)"
-msgstr "ComboBox (Python)"
+#: C/tutorial.py.page:25(page/title)
+msgid "0 Beginner's Tutorial"
+msgstr "0 ÎÎÎÎÎÎ ÎÏÏÎÏÎÏÎ"
 
-#: C/combobox_multicolumn.py.page:18(desc) C/combobox.vala.page:17(desc)
-#: C/combobox.py.page:17(desc)
-msgid "A widget used to choose from a list of items"
+#: C/tutorial.py.page:30(synopsis/p)
+msgid ""
+"If you have never programmed before, or are not familiar with the concepts "
+"of object oriented programming, you may need to learn a few basics first. "
+"The book <link href=\"http://learnpythonthehardway.org/book/\";>Learn Python "
+"the Hard Way</link> or <link href=\"http://docs.python.org/tutorial/index.";
+"html\">The Python Tutorial</link> may be a better place for you to start. "
+"You may also be interested in <link href=\"http://python-gtk-3-tutorial.";
+"readthedocs.org/en/latest/index.html\">The Python GTK+ 3 Tutorial</link>. "
+"Once you master the basics, be sure to come back and check out these "
+"tutorials."
 msgstr ""
-"ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÎÎÎ ÎÏÎÎÎÎÎ ÎÏÏ ÎÎÎ ÎÎÏÏÎ ÏÏÎÎÏÎÎÏÎ"
+"ÎÎÎ ÎÎÎ ÎÏÎÏÎ ÏÏÎÎÏÎÎÎÎÏÎÏÎÎ ÏÎÏÎ ÏÏÎÎ, Î ÎÎÎ ÎÎÏÏÎ ÎÎÎÎÎÎÎÏÎÎÎÎÏ ÎÎ ÏÎÏ "
+"ÎÎÎÎÎÎÏ ÏÎÏ ÎÎÏÎÎÎÎÎÎÎÎÏÏÏÎÏÎÏÏ ÏÏÎÎÏÎÎÎÎÏÎÏÎÎÏ, ÎÏÏÏ ÏÏÎÎÎÏÏÎÎÏÎ ÎÎ ÎÎÎÎÏÎ "
+"ÎÎÎÎ ÎÎÏÎÎÎ ÏÏÏÏÎ. ÎÎ ÎÎÎÎÎÎ <link href=\"http://learnpythonthehardway.org/";
+"book/\">ÎÎÎÎÏÎ Python ÎÎ ÏÎ ÎÏÏÎÎÎÎ ÏÏÏÏÎ</link> Î ÏÎ <link href=\"http://";
+"docs.python.org/tutorial/index.html\">ÎÎÎÎÎÎ Python</link> ÎÏÏÏ ÎÎÎÎÎ ÎÎÎÏ "
+"ÎÎÎÏÏÎÏÎÏ ÏÏÏÏÎÏ ÎÎÎ ÎÎ ÎÎÎÎÎÎÏÎÏÎ. ÎÏÎÏÎÎ ÎÏÎÏÎÏ ÎÎ ÎÎÎÎÎÏÎÏÏÏÎÏÏÎ ÎÎÎ ÏÎ "
+"<link href=\"http://python-gtk-3-tutorial.readthedocs.org/en/latest/index.";
+"html\">ÎÎÎÎÎÎ Python GTK+ 3</link>. ÎÏÎÎÏ ÎÎÏÎÎÎÎÏÎÏÎ ÏÎ ÎÎÏÎÎÎ, ÎÏÎÏÎÎÏÎ ÎÎ "
+"ÎÏÎÏÏÏÎÏÎÏÎ ÎÎÎ ÎÎ ÎÎÎÏÎÏÎÏÎ ÎÏÏÎ ÏÎ ÎÎÎÎÎÎÏÎ."
 
-#: C/combobox_multicolumn.py.page:21(title) C/combobox.vala.page:20(title)
-#: C/combobox.py.page:20(title) C/combobox.js.page:24(title)
-msgid "ComboBox"
-msgstr "ComboBox"
+#: C/tutorial.py.page:36(section/title)
+msgid "To run the code samples"
+msgstr "ÎÎÏÎÎÎÏÎ ÏÏÎ ÎÎÎÎÎÎÏÏÎ ÎÏÎÎÎÎ"
 
-#: C/combobox_multicolumn.py.page:23(p) C/combobox.py.page:22(p)
-msgid "This ComboBox prints to the terminal your selection when you change it."
-msgstr ""
-"ÎÏÏÏ ÏÎ ComboBox ÏÏÏÏÎÎÎ ÏÏÎÎ ÏÎÏÎÎÏÎÎÏ ÏÎÎ ÎÏÎÎÎÎÎ ÏÎÏ ÏÏÎÎ ÏÎÎ ÎÎÎÎÎÎÏÎ."
+#: C/tutorial.py.page:40(item/p)
+msgid "Copy and paste the code into <var>filename</var>.py"
+msgstr "ÎÎÎÏÎ ÎÎÏÎÎÏÎÏÎ ÎÎÎ ÎÏÎÎÏÎÎÎÏÎ ÏÎÏ ÎÏÎÎÎÎ ÏÏÎ <var>filename</var>.py"
 
-#: C/combobox_multicolumn.py.page:34(title) C/combobox.py.page:32(title)
-msgid "Useful methods for a ComboBox widget"
-msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ComboBox"
+#: C/tutorial.py.page:42(item/screen)
+#, no-wrap
+msgid "python <var>filename</var>.py"
+msgstr "python <var>filename</var>.py"
 
-#: C/combobox_multicolumn.py.page:35(p) C/combobox.py.page:33(p)
-msgid ""
-"The ComboBox widget is designed around a <em>Model/View/Controller</em> "
-"design. For more information, and for a list of useful methods for ComboBox "
-"and TreeModel, see <link xref=\"model-view-controller.py\">here</link>."
-msgstr ""
-"ÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ComboBox ÏÏÎÎÎÎÏÏÎÎÎ ÎÏÏÏ ÎÏÏ ÎÎÎ ÏÏÎÎÎÎ <em>ÏÏÎÏÏÏÎÏ/"
-"ÏÏÎÎÎÎÎÏ/ÎÎÎÎÎÏÎ</em>. ÎÎÎ ÏÎÏÎÏÏÏÏÎÏÎÏ ÏÎÎÏÎÏÎÏÎÎÏ ÎÎÎ ÎÎÎ ÎÎÎ ÎÎÏÏÎ "
-"ÏÏÎÏÎÎÏÎ ÎÎÎÏÎÏÎ ÎÎÎ ComboBox ÎÎÎ TreeModel, ÎÎÎÏÎ <link xref=\"model-view-"
-"controller.py\">ÎÎÏ</link>."
+#: C/tutorial.py.page:48(section/title)
+msgid "A path through the widgets (with some theory)"
+msgstr "ÎÎÎ ÎÎÎÎÏÎÎÎ ÎÎÏÎ ÎÏÏ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ (ÎÎ ÎÎÎÎ ÎÎÏÏÎÎ)"
 
-#: C/combobox_multicolumn.py.page:46(link)
-msgid "GtkCellRendererPixbuf"
-msgstr "GtkCellRendererPixbuf"
+#: C/tutorial.py.page:50(steps/title)
+msgid "Tutorial"
+msgstr "ÎÎÎÎÎÎ"
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/combobox.vala.page:21(None) C/combobox.py.page:21(None)
-#: C/comboboxtext.js.page:23(None)
-msgid "@@image: 'media/combobox.png'; md5=ab9e91bc1a58fe866cb00dd52159251d"
-msgstr "@@image: 'media/combobox.png'Â md5=ab9e91bc1a58fe866cb00dd52159251d"
+#: C/tutorial.py.page:52(steps/title)
+msgid "Basic windows"
+msgstr "ÎÎÏÎÎÎ ÏÎÏÎÎÏÏÎ"
 
-#: C/combobox.vala.page:7(title)
-msgid "ComboBox (Vala)"
-msgstr "ComboBox (Vala)"
+#: C/tutorial.py.page:57(steps/title)
+msgid "Images and labels"
+msgstr "ÎÎÎÏÎÎÏ ÎÎÎ ÎÏÎÎÎÏÎÏ"
 
-#: C/combobox.vala.page:22(p)
-msgid "This ComboBox prints to the terminal when you change your selection."
-msgstr "ÎÏÏÏ ÏÎ ComboBox ÏÏÏÏÎÎÎ ÏÏÎÎ ÏÎÏÎÎÏÎÎÏ ÏÏÎÎ ÎÎÎÎÎÎÏÎ ÏÎÎ ÎÏÎÎÎÎÎ ÏÎÏ."
+#: C/tutorial.py.page:72(steps/title)
+msgid "Basic buttons"
+msgstr "ÎÎÏÎÎÎ ÎÎÏÎÏÎÎ"
 
-#: C/combobox.vala.page:30(link) C/combobox.js.page:241(link)
-msgid "Gtk.ComboBox"
-msgstr "Gtk.ComboBox"
+#: C/tutorial.py.page:82(steps/title)
+msgid "Other display widgets"
+msgstr "ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÎÎÏ ÎÎÏÎÎÎÏÎÏ"
 
-#: C/combobox.vala.page:32(link)
-msgid "set_attributes"
-msgstr "set_attributes"
+#: C/tutorial.py.page:88(steps/title)
+msgid "Entry widgets (with a detour on basic scrolling)"
+msgstr "ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÏÏÎÎÏ (ÎÎ ÎÎÎ ÏÎÏÎÎÎÎÏÎ ÏÏÎ ÎÎÏÎÎÎ ÎÏÎÎÏÎ)"
 
-#: C/combobox.py.page:43(link)
-msgid "GtkCellLayout"
-msgstr "GtkCellLayout"
+#: C/tutorial.py.page:96(steps/title)
+msgid "Dialogs"
+msgstr "ÎÎÎÎÎÎÎÎ"
 
-#: C/combobox.js.page:7(title)
-msgid "ComboBox (JavaScript)"
-msgstr "ComboBox (JavaScript)"
+#: C/tutorial.py.page:102(steps/title)
+msgid "TreeViews and ComboBoxes (using the M/V/C design)"
+msgstr "TreeViews ÎÎÎ ComboBoxes (ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ ÏÏÎÎÎÎÏÎ M/V/C)"
 
-#: C/combobox.js.page:21(desc)
-msgid "A customizable drop-down menu"
-msgstr "ÎÎÎ ÏÏÎÏÎÏÎÏÏÎÎÎ ÏÏÏÏÏÏÎÎÎÎ ÎÎÎÎÏ"
+#: C/tutorial.py.page:112(steps/title)
+msgid "Menus and toolbars (also: using Glade)"
+msgstr "ÎÎÎÎÏ ÎÎÎ ÎÏÎÎÎÎÎÎÎÎÎÎÏ (ÎÏÎÏÎÏ: ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ Glade)"
 
-#: C/combobox.js.page:26(p)
-msgid ""
-"A ComboBox is an extremely customizable drop-down menu. It holds the "
-"equivalent of a <link xref=\"treeview_simple_liststore.js\">TreeView</link> "
-"widget that appears when you click on it, complete with a ListStore "
-"(basically a spreadsheet) that says what's in the rows and columns. In this "
-"example, our ListStore has the name of each option in one column, and the "
-"name of a stock icon in the other, which the ComboBox then turns into an "
-"icon for each option."
-msgstr ""
-"ÎÎÎ ComboBox ÎÎÎÎÎ ÎÎÎ ÎÎÏÏÏ ÏÏÎÏÎÏÎÏÏÎÎÎ ÏÏÏÏÏÏÎÎÎÎ ÎÎÎÎÏ. ÎÏÎÏÎ ÏÎ "
-"ÎÏÎÎÏÎÎÎÎ ÎÎÏÏ ÎÏÎÏÎÎÎÏ ÏÏÏÏÎÏÎÎÎÏ <link xref=\"treeview_simple_liststore.js"
-"\">TreeView</link> ÏÎÏ ÎÎÏÎÎÎÎÎÏÎÎ ÏÏÎÎ ÏÎ ÏÎÏÎÏÎ ÏÎÎÏ ÏÎÏ, ÏÎÎÏÎÏ ÎÎ ÎÎÎ "
-"ListStore (ÎÎÏÎÎÎ ÎÎÎ ÏÏÎÎÎÎÎÏÏÎÎÏ ÏÏÎÎÎ) ÏÎÏ ÎÎÎÎ ÏÎ ÎÎÎÎÎ ÏÏÎÏ ÎÏÎÎÎÎÏ ÎÎÎ "
-"ÏÏÎÏ ÏÏÎÎÎÏ. ÎÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ, Î ListStore ÎÎÏ ÎÏÎÎ ÏÎ ÏÎÎÎÎ ÎÎÎÎ "
-"ÎÏÎÎÎÎÎÏ ÏÎ ÎÎÎ ÏÏÎÎÎ ÎÎÎ ÏÎ ÏÎÎÎÎ ÎÎÏÏ ÎÎÎÎÎÎÎÎÎÏ ÏÎÏÎÎÎÏÎÎÎÎÎÏ ÏÏÎÎ ÎÎÎÎ, "
-"ÏÎÏ ÏÎ ComboBox ÎÏÎÎÏÎ ÎÎÏÎÏÏÎÏÎÎ ÏÎ ÎÎÎ ÎÎÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎÎ ÎÏÎÎÎÎÎ."
+#: C/tutorial.py.page:120(steps/title)
+msgid "Selectors (a recap)"
+msgstr "ÎÏÎÎÎÎÎÎÏ (ÎÎÎ ÎÎÎÎÎÏÎÎÎÎÏÏÎ)"
 
-#: C/combobox.js.page:27(p)
-msgid ""
-"You select a whole horizontal row at a time, so the icons aren't treated as "
-"separate options. They and the text beside them make up each option you can "
-"click on."
-msgstr ""
-"ÎÏÎÎÎÎÎÏÎ ÎÎÎ ÏÎÎÏÏÏ ÎÏÎÎÏÎÏÎÎ ÎÏÎÎÎÎ ÏÎ ÏÎÏÎ, ÎÏÏÎ ÏÎ ÎÎÎÎÎÎÎÎÎ ÎÎÎ "
-"ÏÏÎÏÎÏÎÏÎÏÎÎÏÎÎ ÏÏ ÎÎÏÏÏÎÏÏÎÏ ÎÏÎÎÎÎÎÏ. ÎÏÏÎÏ ÎÎÎ ÏÎ ÎÎÎÎÎÎÎ ÎÎÏÎÎ ÏÎÏÏ "
-"ÎÎÏÎÏÎÎÏÎÎÎÏÎ ÎÎÎÎ ÎÏÎÎÎÎÎ ÏÎÏ ÎÏÎÏÎÎÏÎ ÎÎ ÏÎÏÎÏÎÏÎ."
+#: C/tutorial.py.page:130(steps/title)
+msgid "More containers"
+msgstr "ÎÎÏÎÏÏÏÏÎÏÎÎ ÏÎÏÎÎÎÏÎÏ"
+
+#: C/vala.page:6(info/title)
+msgctxt "link"
+msgid "Vala"
+msgstr "Vala"
 
-#: C/combobox.js.page:28(p)
-#| msgid ""
-#| "Working with a ListStore can be time-consuming. If you just want a simple "
-#| "text-only drop-down menu, take a look at the <link xref=\"comboboxtext.js"
-#| "\">ComboBoxText.</link> It doesn't take as much time to set up, and is "
-#| "easier to work with."
-msgid ""
-"Working with a ListStore can be time-consuming. If you just want a simple "
-"text-only drop-down menu, take a look at the <link xref=\"comboboxtext.js"
-"\">ComboBoxText</link>. It doesn't take as much time to set up, and is "
-"easier to work with."
-msgstr ""
-"Î ÎÏÎÎÏÎÎ ÎÎ ÎÎÎ ListStore ÎÏÎÏÎÎ ÎÎ ÎÎÎÎÎ ÏÏÎÎÎÎÏÏÎ. ÎÎÎ ÎÎÎÎÏÎ ÎÏÎÎ ÎÎÎ "
-"ÎÏÎÏ ÏÏÏÏÏÏÎÎÎÎ ÎÎÎÎÏ ÎÏÎÎ ÎÎÎ ÎÎÎÎÎÎÎ, ÏÎÎÏÎ ÎÎÎ ÎÎÏÎÎ ÏÏÎ <link xref="
-"\"comboboxtext.js\">ComboBoxText</link>. ÎÎÎ ÏÎÎÏÎÎÎ ÏÎÎÏ ÏÏÏÎÎ ÎÎÎ "
-"ÎÎÎÎÏÎÏÏÎÏÎ ÎÎÎ ÎÎÏÎÎÏÎÏÎ ÏÎÎ ÎÏÎÎÎÎ."
+#: C/vala.page:15(page/title)
+msgid "Tutorials, code samples and platform demos in Vala"
+msgstr "ÎÎÎÎÎÎÏÎ, ÎÎÎÎÎÎÏÎ ÎÏÎÎÎÎ ÎÎÎ ÏÎÏÎÎÎÎÎÎÎÏÎ ÏÎÎÏÏÏÏÎÎÏ ÏÎ Vala"
 
-#: C/combobox.js.page:69(p)
+#. This is a reference to an external file such as an image or video. When
+#. the file changes, the md5 hash will change to let you know you need to
+#. update your localized copy. The msgstr is not used at all. Set it to
+#. whatever you like once you have updated your copy of the file.
+#: C/weatherApp.js.page:35(media)
+msgctxt "_"
 msgid ""
-"All the code for this sample goes in the ComboBoxExample class. The above "
-"code creates a <link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/";
-"Gtk.Application.html\">Gtk.Application</link> for our widgets and window to "
-"go in."
+"external ref='media/weatherAppJs.png' md5='1fe859ac4854273d72ea8fc9203639b2'"
 msgstr ""
-"ÎÎÎÏ Î ÎÏÎÎÎÎÏ ÎÎÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÏÎÎÎÎÎÎÎ ÏÏÎÎ ÎÎÎÏÎ ComboBoxExample. Î "
-"ÏÎÏÎÏÎÎÏ ÎÏÎÎÎÎÏ ÎÎÎÎÎÏÏÎÎÎ ÎÎÎ <link href=\"http://www.roojs.com/seed/";
-"gir-1.2-gtk-3.0/gjs/Gtk.Application.html\">Gtk.Application</link> ÎÎÎ ÎÎ "
-"ÎÏÎÏÎ ÎÎÏÎ ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÏ ÎÎÎ ÏÎ ÏÎÏÎÎÏÏÎ."
+"external ref='media/weatherAppJs.png' md5='1fe859ac4854273d72ea8fc9203639b2'"
 
-#: C/combobox.js.page:94(p)
-#| msgid ""
-#| "This ListStore works like the one used in the <link xref="
-#| "\"treeview_simple_liststore.js\">TreeView</link> example. We're giving it "
-#| "two columns, both strings, because one of them will contain the names of "
-#| "<link href=\"http://developer.gnome.org/gtk/2.24/gtk-Stock-Items.html#GTK-";
-#| "STOCK-ABOUT:CAPS\">stock Gtk icons.</link>"
-msgid ""
-"This ListStore works like the one used in the <link xref="
-"\"treeview_simple_liststore.js\">TreeView</link> example. We're giving it "
-"two columns, both strings, because one of them will contain the names of "
-"<link href=\"http://developer.gnome.org/gtk/2.24/gtk-Stock-Items.html#GTK-";
-"STOCK-ABOUT:CAPS\">stock Gtk icons</link>."
-msgstr ""
-"ÎÏÏÎ Î ListStore ÎÎÏÎÎÏÎÎ ÏÏÏÏ ÎÏÏÎ ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÎÎÎÎ ÏÏÎ ÏÎÏÎÎÎÎÎÎÎ <link "
-"xref=\"treeview_simple_liststore.js\">TreeView</link>. ÎÎÏ ÎÎÎÎÏÎÎ ÎÏÎ "
-"ÏÏÎÎÎÏ, ÎÎÏÏÏÎÏÎÏ ÏÏÎÎÎÎÎÏÎÎÏÎÏ, ÎÏÎÎÎÎ Î ÎÎÎ ÏÎÏÏ ÎÎ ÏÎÏÎÎÏÎÎ ÏÎ ÎÎÏÎÎÏÎ "
-"ÏÏÎ <link href=\"http://developer.gnome.org/gtk/2.24/gtk-Stock-Items.";
-"html#GTK-STOCK-ABOUT:CAPS\">ÎÎÎÎÎÎÎÎÏÎ ÏÎÏÎÎÎÏÎÎÎÎÎÏ Gtk</link>."
+#: C/weatherApp.js.page:6(info/title)
+msgctxt "text"
+msgid "Weather Application (JavaScript)"
+msgstr "ÎÏÎÏÎÎÎÎ ÎÎÎÏÎÏ (JavaScript)"
 
-#: C/combobox.js.page:95(p)
+#: C/weatherApp.js.page:16(info/desc)
 msgid ""
-"If we'd wanted to use our own icons that weren't already built in to GNOME, "
-"we'd have needed to use the <file>gtk.gdk.Pixbuf</file> type instead. Here "
-"are a few other types you can use:"
+"How to plan an application that uses asynchronous calls. Asynchronous calls "
+"will be presented through a weather application."
 msgstr ""
-"ÎÎÎ ÎÎ ÎÎÎÎÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÏÎ ÎÎÎÎ ÎÎÏ ÎÎÎÎÎÎÎÎÎ ÏÎÏ ÎÎÎ ÎÏÎÎ ÎÎÎ "
-"ÎÎÏÏÎÎÏÏÎÎÎÎ ÏÏÎ GNOME, ÎÎ ÏÏÎÎÎÎÏÎÎÏÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÏÎÎ ÏÏÏÎ "
-"<file>gtk.gdk.Pixbuf</file>. ÎÎ ÎÎÏÎÎÎÎ ÎÎÎÎÎ ÏÏÏÎÎ ÏÎÏ ÎÏÎÏÎÎÏÎ ÎÎ "
-"ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ:"
+"ÎÏÏ ÎÎ ÏÏÎÎÎÎÏÏÎÎ ÎÎÎ ÎÏÎÏÎÎÎÎ ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÎ ÎÏÏÎÏÏÎÎÎÏ ÎÎÎÏÎÎÏ. ÎÎ "
+"ÎÏÏÎÏÏÎÎÎÏ ÎÎÎÏÎÎÏ ÎÎ ÎÎÎÏÎÏÎÏÏÏÎÏÎÎ ÎÎÏÎ ÎÏÏ ÎÎÎ ÎÏÎÏÎÎÎÎ ÎÎÎÏÎÏ."
+
+#: C/weatherApp.js.page:21(page/title)
+msgid "4 Weather Application"
+msgstr "4 ÎÏÎÏÎÎÎÎ ÎÎÎÏÎÏ"
 
-#: C/combobox.js.page:119(p)
+#: C/weatherApp.js.page:23(synopsis/p)
 msgid ""
-"Here we create an array of the text options and their corresponding icons, "
-"then put them into the ListStore in much the same way we would for a <link "
-"xref=\"treeview_simple_liststore.js\">TreeView's</link> ListStore. We only "
-"want to put an icon in if there's actually an icon in the options array, so "
-"we make sure to check for that first."
+"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 ""
-"ÎÎÏ ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎÎ ÏÎÎÎÎÎ ÏÏÎ ÎÏÎÎÎÎÏÎ ÎÎÎÎÎÎÎÏ ÎÎÎ ÏÎ ÎÎÏÎÏÏÎÎÏÎ ÏÎÏÏ "
-"ÎÎÎÎÎÎÎÎÎ, ÎÏÎÎÏÎ ÏÎ ÎÎÎÎÏÎÎ ÏÏÎ ListStore ÎÎ ÏÎÎ ÎÎÎÎ ÏÎÎÏÏÎÎÎ ÏÏÏÏÎ ÏÎÏ ÎÎ "
-"ÎÎÎÎÎÎ ÎÎÎ ÎÎÎ ListStore <link xref=\"treeview_simple_liststore.js\">ÏÎÏ "
-"TreeView</link>. ÎÎÎÎÏÎÎ ÎÏÎÎ ÎÎ ÎÎÎÎÏÎÎ ÎÎÎ ÎÎÎÎÎÎÎÎÎ ÎÎÎ ÏÏÎÏÏÎÎ ÏÏÎÎÎÎÏÎ "
-"ÎÎÎ ÎÎÎÎÎÎÎÎÎ ÏÏÎÎ ÏÎÎÎÎÎ ÎÏÎÎÎÎÏÎ, ÎÏÏÎ ÎÎÎÎÎÏÎÏÎÎÏÏÎ ÎÎÎ ÎÎ ÎÎÎÎÏÎÎÎ ÎÏÏÏ "
-"ÏÏÏÏÎ."
+"ÎÎ ÎÏÏÏÎ ÏÎÎ ÎÎÎÎÏ ÏÏÏÎÎÎÏÎÎ ÎÎ ÎÎÏÎÏÎÎÏÎÏÎÏÎÎ ÎÎÎ ÎÏÎÏÎÎÎÎ ÎÎÎÏÎÏ "
+"ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÎÏÏÎÏÏÎÎÎÏ ÎÎÎÏÎÎÏ. ÎÎ ÏÎÎÏÎÏÎÏÎÎÏ ÏÎÏ ÎÎÎÏÎÏ ÏÎ ÎÏÏÏ ÏÎ "
+"ÏÎÏÎÎÎÎÎÎÎ ÏÎÏÎÏÎÎÏÎÎ ÎÏÏ ÏÎÎ geonames.org ÎÎÎ Î ÎÏÎÏÎÎÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎ ÏÎ "
+"<link href=\"http://en.wikipedia.org/wiki/List_of_airports_by_ICAO_code:_E";
+"\">ÎÏÎÎÎÎÏ ICAO</link> ÎÎÎ ÎÎ ÏÎÏÎÎÎÏÎÏÎÎ ÏÎÎ ÎÎÏÎÏÎ ÏÎÏ ÎÎÎ ÏÎÎ ÎÎÎÏÏ. ÎÎÎ "
+"ÎÎ ÎÏÎÏÎÏÎ ÎÎÎ ÎÎ ÎÎÏÎÎÎÏÎÏÎ ÎÎ ÎÎÎÎÎ ÏÎ ÏÎÏÎÎÎÎÎÎÎÏÎ ÏÎÏ ÎÏÎÎÎÎ, ÏÏÎÎÎÎÎÏÏÎ "
+"ÎÎÎÎ ÎÏÎÎÎÏÎÎÏÏÎ ÎÎÎ ÎÎ ÎÏÎÏÎÏÎ ÏÎÎ ÎÏÎÎÎÎ, ÏÎÏÎÎÏÎÎÏ ÎÎÎ GNOME 3 Î "
+"ÎÎÏÎÎÎÎÎÏÏÎÏÎ ÎÎÎÎÏÎÏÏÎÎÎÎÎ ÏÏÎÎ ÏÏÎÎÎÎÎÏÏÎ ÏÎÏ. ÎÎ ÎÏÏÏÎ ÏÎÎ ÎÎÎÎÏ ÎÎ "
+"ÎÎÎÏÎÏÎÏÎÎ ÏÎ ÏÎÏÎÎÎÏÏ ÎÎÏÎ:"
 
-#: C/combobox.js.page:120(p)
-msgid ""
-"\"Select\" isn't really an option so much as an invitation to click on our "
-"ComboBox, so it doesn't need an icon."
+#: C/weatherApp.js.page:26(item/p)
+msgid "<link xref=\"#planningUi\">Planning the graphical user interface</link>"
 msgstr ""
-"Î \"Select\" ÎÎÎ ÎÎÎÎÎ ÏÏÎÎÎÎÏÎÎÎ ÎÎÎ ÎÏÎÎÎÎÎ ÏÏÎ ÎÎÎ ÏÏÏÏÎÎÎÏÎ ÎÎ ÏÎÏÎÏÎÏÎÎ "
-"ÏÏÎ ComboBox ÎÎÏ, ÎÏÏÎ ÎÎÎ ÏÏÎÎÎÎÎÏÎÎ ÎÎÎ ÎÎÎÎÎÎÎÎÎ."
+"<link xref=\"#planningUi\">ÎÏÎÎÎÎÏÎÏÏ ÏÎÏ ÎÏÎÏÎÎÎÏ ÎÎÎÏÎÏÎÏ ÏÏÎÏÏÎ</link>"
 
-#: C/combobox.js.page:124(title)
-msgid "Creating the ComboBox"
-msgstr "ÎÎÎÎÎÏÏÎÎÎ ÏÏÎ ComboBox"
+#: C/weatherApp.js.page:27(item/p)
+msgid "<link xref=\"#asynchronous\">Asynchronous calls</link>"
+msgstr "<link xref=\"#asynchronous\">ÎÏÏÎÏÏÎÎÎÏ ÎÎÎÏÎÎÏ</link>"
 
-#: C/combobox.js.page:130(p)
-msgid ""
-"Each ComboBox has an underlying \"model\" it takes all its options from. You "
-"can use a TreeStore if you want to have a ComboBox with branching options. "
-"In this case, we're just using the ListStore we already created."
-msgstr ""
-"ÎÎÎÎ ComboBox ÎÏÎÎ ÎÎÎ ÏÏÎÎÎÎÎÎÎÎ \"model\" ÎÏÏ ÏÏÎÏ ÏÎÎÏÎÎÎ ÏÎÎÏ ÏÎÏ "
-"ÎÏÎÎÎÎÎÏ ÏÎÏ. ÎÏÎÏÎÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÎÎÎ TreeStore ÎÎÎ ÎÎÎÎÏÎ ÎÎ ÎÏÎÏÎ "
-"ÎÎÎ ComboBox ÎÎ ÎÏÎÎÎÎÎÏ ÎÎÎÎÎÎÎÏÏÎÏ. ÎÎ ÎÏÏÎÎ ÏÎÎ ÏÎÏÎÏÏÏÏÎ, ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ "
-"ÎÏÎÎ ÏÎ ListStore ÏÎÏ ÎÎÎ ÎÎÎÎÎÏÏÎÎÏÎÎÎ."
+#: C/weatherApp.js.page:28(item/p)
+msgid "<link xref=\"#main\">The main program file</link>"
+msgstr "<link xref=\"#main\">ÎÎ ÎÏÏÎÎ ÎÏÏÎÎÎ ÏÎÏ ÏÏÎÎÏÎÎÎÎÏÎÏ</link>"
 
-#: C/combobox.js.page:144(p)
-#| msgid ""
-#| "This part, again, works much like creating CellRenderers and packing them "
-#| "into the columns of a <link xref=\"treeview_simple_liststore.js"
-#| "\">TreeView.</link> The biggest difference is that we don't need to "
-#| "create the ComboBox's columns as separate objects. We just pack the "
-#| "CellRenderers into it in the order we want them to show up, then tell "
-#| "them to pull information from the ListStore (and what type of information "
-#| "we want them to expect)."
-msgid ""
-"This part, again, works much like creating CellRenderers and packing them "
-"into the columns of a <link xref=\"treeview_simple_liststore.js\">TreeView</"
-"link>. The biggest difference is that we don't need to create the ComboBox's "
-"columns as separate objects. We just pack the CellRenderers into it in the "
-"order we want them to show up, then tell them to pull information from the "
-"ListStore (and what type of information we want them to expect)."
-msgstr ""
-"ÎÏÏÏ ÏÎ ÎÎÏÎÏ, ÏÎÎÎ, ÎÎÏÎÎÏÎÎ ÏÎÏÏÎÎÎÎ ÎÎ ÏÎ ÎÎÎÎÎÏÏÎÎÎ CellRenderers ÎÎÎ "
-"ÏÎÎÎÏÎÏÎÏÎÎ ÏÎÏÏ ÏÏÎÏ ÏÏÎÎÎÏ ÎÎÎÏ <link xref=\"treeview_simple_liststore.js"
-"\">TreeView</link>. Î ÎÎÎÎÎÏÏÎÏÎ ÎÎÎÏÎÏÎ ÎÎÎÎÎ ÏÏÎ ÎÎÎ ÏÏÎÎÎÎÏÎÎÏÏÎ ÎÎ "
-"ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ ÏÎÏ ÏÏÎÎÎÏ ÏÎÏ ComboBox ÏÏ ÎÎÏÏÏÎÏÏÎ ÎÎÏÎÎÎÎÎÎÎÎ. ÎÏÎÎ "
-"ÏÎÎÎÏÎÏÎÏÎÎ ÏÎÏÏ CellRenderers ÏÎ ÎÏÏÏ ÎÎ ÏÎ ÏÎÎÏÎ ÏÎÏ ÏÎ ÎÎÎÎÏÎÎ ÎÎ "
-"ÎÎÏÎÎÎÏÏÎÏÎ, ÎÏÎÎÏÎ ÏÎÏÏ ÎÎÎÎ ÎÎ ÏÎÏÎÏÎ ÏÎÎÏÎÏÎÏÎÎÏ ÎÏÏ ÏÎ ListStore (ÎÎÎ ÏÎ "
-"ÏÏÏÎ ÏÎÎÏÎÏÎÏÎÎÏ ÎÎÎÎÏÎÎ ÎÎ ÏÎÏÏ ÏÎÏÎÎÎÎÎÎ)."
+#: C/weatherApp.js.page:29(item/p)
+msgid "<link xref=\"#main\">Local library GeoNames</link>"
+msgstr "<link xref=\"#main\">ÎÎÏÎÎÎ ÎÎÎÎÎÎÎÎÎÎ GeoNames</link>"
 
-#: C/combobox.js.page:145(p)
-msgid ""
-"We use a CellRendererText to show the text, and a CellRendererPixbuf to show "
-"the icons. We can store the names of the icons' stock types as strings, but "
-"when we display them we need a CellRenderer that's designed for pictures."
-msgstr ""
-"ÎÏÎÏÎÎÎÏÎÎÎÏÎÎ ÎÎÎ CellRendererText ÎÎÎ ÎÎ ÎÎÏÎÎÎÏÎÏÎÎ ÏÎ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ "
-"CellRendererPixbuf ÎÎÎ ÎÎ ÏÏÎÎÎÎÎÏÎÎ ÏÎ ÎÎÎÎÎÎÎÎÎ. ÎÏÎÏÎÏÎÎ ÎÎ ÎÏÎÎÎÎÎÏÏÎÏÎÎ "
-"ÏÎ ÎÎÏÎÎÏÎ ÏÏÏÏÎ ÏÎÏÎÎÎÏÎÎÎÎÎÏ ÏÏÎ ÎÎÎÎÎÎÎÎÏÎ ÏÏ ÏÏÎÎÎÎÎÏÎÎÏÎÏ, ÎÎÎÎ ÏÏÎÎ ÏÎ "
-"ÎÎÏÎÎÎÎÎÏÎÎ ÏÏÎÎÎÎÏÎÎÏÏÎ ÎÎÎÎ CellRenderer ÏÎÏ ÏÏÎÎÎÎÏÏÎÎÎ ÎÎÎ ÎÎÎÏÎÎÏ."
+#: C/weatherApp.js.page:30(item/p)
+msgid "<link xref=\"#main\">Autotools and Icons</link>"
+msgstr "<link xref=\"#main\">Autotools ÎÎÎ ÎÎÎÎÎÎÎÎÎ</link>"
 
-#: C/combobox.js.page:146(p)
-msgid ""
-"Just like with a TreeView, the \"model\" (in this case a ListStore) and the "
-"\"view\" (in this case our ComboBox) are separate. Because of that, we can "
-"do things like have the columns in one order in the ListStore, and then pack "
-"the CellRenderers that correspond to those columns into the ComboBox in a "
-"different order. We can even create a TreeView or other widget that shows "
-"the information in the ListStore in a different way, without it affecting "
-"our ComboBox."
-msgstr ""
-"ÎÎÏÎÎÏÏ ÏÏÏÏ ÎÎ ÎÎÎ TreeView, ÏÎ \"model\" (ÏÎ ÎÏÏÎÎ ÏÎÎ ÏÎÏÎÏÏÏÏÎ ÎÎÎ "
-"ListStore) ÎÎÎ Î \"view\" (ÏÎ ÎÏÏÎÎ ÏÎÎ ÏÎÏÎÏÏÏÏÎ ÏÎ ComboBox ÎÎÏ) ÎÎÎÎÎ "
-"ÎÎÏÏÏÎÏÏÎ. ÎÏÎÏ ÎÏÏÎÏ, ÎÏÎÏÎÏÎÎ ÎÎ ÎÎÎÎÏÎÎ ÏÏÎÎÎÎÏÎ ÏÏÏÏ ÎÎ ÎÏÎÏÎÎ ÏÎÏ "
-"ÏÏÎÎÎÏ ÏÎ ÎÎÎ ÏÎÎÏÎ ÏÏÎ ListStore ÎÎÎ ÎÏÎÎÏÎ ÏÎÎÎÏÎÏÎÏÎÎ ÏÎÏÏ CellRenderers "
-"ÏÎÏ ÎÎÏÎÏÏÎÎÏÎÏÎ ÏÎ ÎÏÏÎÏ ÏÎÏ ÏÏÎÎÎÏ ÏÏÎ ComboBox ÎÎ ÎÎÎÏÎÏÎÏÎÎÎ ÏÎÎÏÎ. "
-"ÎÏÎÏÎÏÎÎ ÎÎÏÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ ÎÎÎ TreeView Î ÎÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÏÎÏ "
-"ÎÎÏÎÎÎÎÎÎ ÏÎÎ ÏÎÎÏÎÏÎÏÎÎ ÏÏÎ ListStore ÎÎ ÎÎÎÏÎÏÎÏÎÎÏ ÏÏÏÏÎ, ÏÏÏÎÏ ÎÏÏÏ ÎÎ "
-"ÎÏÎÏÎÎÎÎÎ ÏÎ ComboBox."
+#: C/weatherApp.js.page:38(section/title)
+msgid "Planning the graphical user interface"
+msgstr "ÎÏÎÎÎÎÏÎÏÏ ÏÎÏ ÎÏÎÏÎÎÎÏ ÎÎÎÏÎÏÎÏ ÏÏÎÏÏÎ"
 
-#: C/combobox.js.page:155(p)
+#: C/weatherApp.js.page:39(section/p)
 msgid ""
-"We want the \"Select\" text to be the part people see at first, that gets "
-"them to click on the ComboBox. So we set it to be the active entry. We also "
-"connect the ComboBox's <file>changed</file> signal to a callback function, "
-"so that any time someone clicks on a new option something happens. In this "
-"case, we're just going to show a popup with a little haiku."
+"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 ""
-"ÎÎÎÎÏÎÎ ÏÎ ÎÎÎÎÎÎÎ \"Select\" ÎÎ ÎÎÎÎÎ ÏÎ ÏÎÎÎÎ ÏÎÏ ÎÎÎÏÎÏÎÎ ÏÏÏÏÎ, ÎÏÏÏ ÏÎÏ "
-"ÏÎ ÎÎÏÎÏÎÎ ÏÏÎ ÏÎÏÎÎÎ ÏÎÏ ComboBox. ÎÏÏÎ ÏÎ ÎÏÎÎÎÏÎÎ ÎÎ ÎÎÎÎÎ Î ÎÎÎÏÎÎ "
-"ÎÎÏÎÏÏÏÎÏÎ. ÎÏÎÏÎÏ ÏÏÎÎÎÎÏÎÎ ÏÎ ÏÎÎÎ <file>changed</file> ÏÎÏ ComboBox ÏÎ "
-"ÎÎÎ ÏÏÎÎÏÏÎÏÎ ÎÏÎÎÎÎÎÎÏÎÏ, ÎÏÏÎ ÏÏÏÎ ÎÏÎÏÎÎÎÏÎÏÎ ÎÎÏÎÎÎÏ ÏÎÏÎ ÏÎ ÎÎÎ ÎÎÎ "
-"ÎÏÎÎÎÎÎ ÎÎÏÎ ÎÎ ÏÏÎÎÎÎÎÎÎ. ÎÎ ÎÏÏÎÎ ÏÎÎ ÏÎÏÎÏÏÏÏÎ, ÏÏÏÎÎÎÏÎÎ ÎÏÎÎ ÎÎ "
-"ÎÎÏÎÎÎÏÎÏÎÎ ÎÎÎ ÎÎÎÎÏÏÎÎÎÎ ÎÎ ÎÎÎ ÎÎÎÏÏ ÏÎÎÎÎÎ."
+"ÎÎÎÏÎÏÎÏ ÎÎÎ ÎÏÎÏÎÎÎÎ ÎÎÎ ÏÎ GNOME 3 ÏÎÎÎÎÎÎÎ ÏÎ ÏÏÎÏÎ ÏÎÏ <link href="
+"\"http://developer.gnome.org/platform-overview/stable/gtk\";>GTK+</link>. ÎÎ "
+"ÏÎÎ ÏÎÎÎÎÏÎÎÏ ÏÏÎÎÎÎ ÎÎÎÎÎ ÎÎ ÎÏÎÏÏÎÏÏÎ ÏÏÎ ÏÎ ÎÏÏÎÎ ÏÎÏÎÎÏÏÎ ÎÎ ÎÏÎÎÎÏÎÎÎ "
+"ÎÏÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ. ÎÏÎÏÎÎ ÎÎ ÏÏÎÎÎÎÏÎÏÎ ÏÎ ÎÎÎÎ ÏÎÏ ÎÎÎÎÎÎÎ (ÎÏÏÏ "
+"ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎ Gtk.Grid). ÎÎÎ ÏÏÎÏÎÎÎ ÎÎÎÎÎÎÏ ÎÎÎÎÎ Î ÏÏÎÎÎÎÏÎ "
+"ÏÎÏ ÎÏÏÎÎÏ ÏÎÏÎÎÏÏÎÏ ÎÎÎ Î ÏÎÏÎÎÎÏÎÏÎ ÎÎÎÎ ÎÏÎÎÏÎÏÎÎÎÎÏ ÎÏÎÏÎÎÎÏ ÏÏÏÏÎÏÎÎÎÏ "
+"ÎÎÏÎ ÏÎ ÎÏÏÏ ÏÎ ÏÎÎÎÏÎÎ. ÎÎÎÏÏÎÏÎÏ ÎÎÎ ÎÎÎÏÎÎ ÏÎÏ ÎÎÎÎÎÎÏÎÎÎÏ ÏÎÏ ÎÏÎÏÎÎÎÎÏ "
+"ÎÎÎÎÎ ÎÏÎÎÎÏÏÎÏÎ ÎÎ ÏÎÎÏÎ ÏÎÎÎÏ ÎÎÎÎÎ ÎÎ ÏÏÎÏÎÎÏ ÎÎÏÎÎÏ ÎÏÎÏÎÎÏÎ ÏÏÏÏÎÏÎÎÏÎ. "
+"ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ Gtk.Grid ÏÎÏÎÎÎÏÎÎ ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÏÎÏ ÏÎ ÏÏÎÏÎ ÎÎ ÏÎ "
+"ÎÎÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ, ÎÏÏÎ ÎÎÏÎ ÏÎ ÏÎÏÎÎÎÏÎÏÎ ÏÎÏ ÏÏÏÏÎÏ ÎÏÎÏÎÎÎÏ "
+"ÏÏÏÏÎÏÎÎÎÏ ÏÏÎ ÎÎÏÎ ÏÎÏ, Î ÏÎÏÎÎÎÏÎÏÎ ÏÏÎ ÎÏÎÏÎÎÏÎ ÏÏÏÏÎÏÎÎÏÎ ÎÏÎÏÎÎ ÎÎ "
+"ÎÎÎÎÎ ÏÎ ÏÏÎÏÎ ÎÎ ÎÏÎÎÎÎÎÏÎÏÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÏÏÎ ÏÎÎÎÎÎ."
 
-#: C/combobox.js.page:165(p)
-msgid ""
-"Finally, we add the ComboBox to the window, and tell the window to show "
-"itself and everything inside it."
-msgstr ""
-"ÎÎÎÎÎÎ, ÏÏÎÏÎÎÏÎÏÎÎ ÏÎ ComboBox ÏÏÎ ÏÎÏÎÎÏÏÎ, ÎÏÎÎÏÎ ÎÎÎÎ ÏÏÎ ÏÎÏÎÎÏÏÎ ÎÎ "
-"ÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÎÏÏÏÎ ÏÎÏ ÎÎÎ ÏÎÎ ÎÎÏÎ ÏÎÏ."
+#: C/weatherApp.js.page:42(section/title)
+msgid "Asynchronous calls"
+msgstr "ÎÏÏÎÏÏÎÎÎÏ ÎÎÎÏÎÎÏ"
 
-#: C/combobox.js.page:179(p)
-#| msgid ""
-#| "We're going to create a pop-up <link xref=\"messagedialog.js"
-#| "\">MessageDialog,</link> which shows you a silly haiku based on which "
-#| "distro you select. First, we create the array of haiku to use. Since the "
-#| "first string in our ComboBox is just the \"Select\" message, we make the "
-#| "first string in our array blank."
+#: C/weatherApp.js.page:43(section/p)
 msgid ""
-"We're going to create a pop-up <link xref=\"messagedialog.js"
-"\">MessageDialog</link>, which shows you a silly haiku based on which distro "
-"you select. First, we create the array of haiku to use. Since the first "
-"string in our ComboBox is just the \"Select\" message, we make the first "
-"string in our array blank."
+"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 ""
-"ÎÏÏÎÎÎÏÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ ÎÎÎ ÎÎÎÎÏÏÎÎÎÎ <link xref=\"messagedialog.js"
-"\">MessageDialog</link>, ÏÎÏ ÏÎÏ ÎÎÏÎÎÎÎÎÎ ÎÎÎ ÎÎÏÎÏÎ ÏÎÎÎÎÎ ÎÎ ÎÎÏÎ ÏÎÎÎ "
-"ÎÎÎÎÎÎÎ ÎÏÎÎÎÎÎÏÎ. ÎÏÏÏÎ, ÎÎÎÎÎÏÏÎÎÏÎÎ ÏÎÎ ÏÎÎÎÎÎ ÏÎÏ ÏÎÎÎÎÎÏÎÏ ÎÎÎ ÏÏÎÏÎ. "
-"ÎÏÎÏ Î ÏÏÏÏÎ ÏÏÎÎÎÎÎÏÎÎÏÎ ÏÏÎ ComboBox ÎÎÏ ÎÎÎÎÎ ÎÏÎÎ ÏÎ ÎÎÎÏÎÎ \"Select\", "
-"ÎÎÎÎÏÎÎ ÏÎÎ ÏÏÏÏÎ ÏÏÎÎÎÎÎÏÎÎÏÎ ÏÏÎÎ ÏÎÎÎÎÎ ÎÎÏ ÎÎÎÎ."
+"ÎÎ ÏÎÎÎÎÏ ÏÏÎÎÏÎÎÎÎÏÎÏÏÎÎÎÏ ÎÎÏÏÏÎÏ, ÏÎÎÏ ÎÎ ÎÎÎÏÎÏÏÎÎÎÏ ÎÎÏÎÎÎÏÎÏÎÎ "
+"ÏÏÎÏÏÎÎÎ - ÎÎÏÎ ÏÏÎ ÏÏÏÎÏÎÎÎÎ ÎÎ ÎÎÎÎÎ ÎÎÏÎ ÎÎÎ ÎÎ ÏÎÏÎÎÎÎÎÏÎ ÎÎÏÏÎ ÎÏÏÎ Î "
+"ÏÏÎÎÎ ÎÎ ÎÎÎÎÎÎÏÏÎÎÎ ÏÏÎÎ ÎÎ ÏÏÎÎÏÎÏÎÏÎ. ÎÏÏÏ ÏÎÏÏ ÎÎÎÎÎ ÎÎÎÏ ÎÎÎ ÏÎ ÎÏÎÏÎÎÎ "
+"ÎÎÎÏÎÏÎ ÏÏÎÏÏÎ, ÎÎÎÏÏ ÏÎÎ Î ÎÏÎÏÎÎÎÎ ÏÎÎÏÎÎÎ, ÎÎÏ ÏÎ ÏÏÏÎÏÎÎÎÎ ÏÎÏÎÎÎÎÎÎ ÏÎ "
+"ÎÎÎÏÎÏÏÎÎÎ. ÎÎÎÎÎÎÎÎÏÎÏ ÎÏÏÎÏÏÎÎÎ (async) ÎÎÎÎÎ ÎÎÏ. ÎÎ ÎÏÏÎÏÏÎÎÎÏ ÎÎÎÏÎÎÏ, "
+"ÏÎ UI ÏÎÏ ÎÎÎ ÎÎ ÏÏÎÏÏÎÎ ÎÎ ÎÎÏÎÏÎÎÏ. ÎÎ ÎÏÏÎÏÏÎÎÎÏ ÎÎÎÏÎÎÏ ÎÎÎÎÏÎ ÏÎÎ "
+"ÎÏÎÏÎÎÎÎ ÏÎÏ ÏÎÎ ÎÏÏÏÎÏÏÎ ÎÎÎ ÎÎÎÏÏÎÏÎ ÎÎÎÏÎÎÏÎÎÎÎ ÎÎÎ ÏÎÎÏÎÏÎÏ ÎÎÏÎÏÏÎÏÎÏÎ "
+"ÏÏÎÎ ÎÎ ÎÎÎÏÎÎÏ ÏÎÎÏÎÎÏÎ ÏÎÏÎÏÏÏÏÎÏÎ ÏÏÏÎÎ ÎÏÏ ÏÎ ÎÎÎÎÎÎÏÎÎÎÎ Î ÎÎÎ ÎÎÏÎÎÎ "
+"ÎÏÎÎ ÎÎÎÎÎÎÎ. ÎÎ ÎÏÏÎÏÏÎÎÎÏ ÎÎÎÏÎÎÏ ÎÏÎÏÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÎÏÎ ÎÎÎ "
+"ÏÎÏÎÎÎÎÎÎÎ ÎÎ ÎÏÏÎÎÎ ÏÏÏÏÎÎÎÏÎÏ I/O ÎÎÎ ÎÎÎ ÏÎÎ ÎÏÎÎÏÏ ÏÏÎÎÎÎÎÏÎÎÏÏ ÏÏÎ "
+"ÏÎÏÎÏÎÎÎÎÎ."
 
-#: C/combobox.js.page:203(p)
+#: C/weatherApp.js.page:46(section/p)
 msgid ""
-"Before showing a MessageDialog, we first test to make sure you didn't choose "
-"the \"Select\" message. After that, we set its text to be the haiku in the "
-"array that corresponds to the active entry in our ComboBoxText. We do that "
-"using the <file>get_active</file> method, which returns the number ID of "
-"your selection."
+"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 ""
-"ÎÏÎÎ ÏÎÎ ÏÏÎÎÎÎÎ ÎÎÏÏ MessageDialog, ÎÎÎÎÎÎÎÎÏÎÎ ÏÏÏÏÎ ÎÎÎ ÎÎ ÎÎÎÎÎÏÎÎÏÎÎ "
-"ÏÏÎ ÎÎÎ ÎÏÎÎÎÎÎÏÎ ÏÎ ÎÎÎÏÎÎ \"Select\". ÎÎÏÎ ÎÏÏ ÎÏÏÏ, ÎÏÎÎÎÏÎÎ ÏÎ ÎÎÎÎÎÎÎ "
-"ÏÎÏ ÎÎ ÎÎÎÎÎ ÏÏÎ ÏÎÎÎÎÎ ÏÏÎÎ ÏÎÎÎÎÎ ÏÎÏ ÎÎÏÎÏÏÎÎÏÎÎ ÏÏÎÎ ÎÎÎÏÎÎ ÎÎÏÎÏÏÏÎÏÎ "
-"ÏÏÎ ComboBoxText ÎÎÏ. ÎÎ ÎÎÎÎÏÎÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ ÎÎÎÎÎÎ <file>get_active</"
-"file>, ÏÎÏ ÎÏÎÏÏÏÎÏÎÎ ÏÎÎ ÎÏÎÎÎÏ ÏÎÏÏÏÏÎÏÎÏ ÏÎÏ ÎÏÎÎÎÎÎÏ ÏÎÏ."
+"ÎÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÏÏÎÏÎÎ ÎÎ ÏÎÏÎÏÎÎ ÎÎÎÎÎÎÎÎ ÎÏÏ ÏÎ geonames.org. ÎÎÏ "
+"ÎÎÎÎÏÎÎ ÎÏÏÏ ÎÎÎÎÏÎÎ ÏÎ ÏÏÏÎÎÎÏÎ ÏÏÏÎÏÎÎÎÎ ÎÎ ÏÏÎÎÏÎÏÎÎ. ÎÎÎ ÎÎÎ ÏÎÎÏÎÎÎÎ "
+"ÎÎÎÎÎ ÏÎÎÏÎÏÎÏÎÎ ÎÏÏ ÏÎ geonames.org ÎÏÎÏ ÎÎÎÎÎÏÎÏ ÏÏÎÎÎÏÎÏ ÎÎ ÏÎ ÎÎÎÎÎÎÏÏÎ "
+"ÎÎÎ ÎÏÏÏ ÎÏÎÎ ÎÎÎ ÏÏÎÏÏÎÎÎ ÎÏÎÏÎÎÎÎ ÎÎÎ ÎÎ ÎÏÎÏÎÏÏÎÎÎ ÏÎÏÎ ÎÎ ÏÎÎÎ ÏÏÎ "
+"ÏÎÎÎÎÎ ÏÏÎÏ ÏÎ main_quit() ÏÏÎÎÏÎÎÎÎ ÏÏÏÏÎ ÎÎÎ Î ÎÏÎÏÎÎÎÎ ÎÎ ÎÏÏÎÏÎ ÎÎ "
+"ÎÎÎÎÏÏÎÎÎ ÎÏÏ ÏÎ ÏÎÏÎÎÏÎÎÏ."
+
+#: C/weatherApp.js.page:49(section/title)
+msgid "The different parts of the program"
+msgstr "ÎÎ ÎÎÎÏÎÏÎÏÎÎÎ ÎÎÏÎ ÏÎÏ ÏÏÎÎÏÎÎÎÎÏÎÏ"
 
-#: C/combobox.js.page:204(p) C/comboboxtext.js.page:147(p)
+#: C/weatherAppMain.js.page:18(page/title)
+msgid "The main program file"
+msgstr "ÎÎ ÎÏÏÎÎ ÎÏÏÎÎÎ ÏÎÏ ÏÏÎÎÏÎÎÎÎÏÎÏ"
+
+#: C/weatherAppMain.js.page:20(synopsis/p)
 msgid ""
-"Other methods you can use include <file>get_active_id,</file> which returns "
-"the text ID assigned by <file>append,</file> and <file>get_active_text,</"
-"file> which returns the full text of the string you selected."
+"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 ""
-"ÎÎÎÎÏ ÎÎÎÎÎÎÎ ÏÎÏ ÎÏÎÏÎÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÏÎÏÎÎÎÎÎÎÎÎÏÎ "
-"<file>get_active_id,</file> ÏÎÏ ÎÏÎÏÏÏÎÏÎÎ ÏÎÎ ÏÎÏÏÏÏÎÏÎ ÎÎÎÎÎÎÎÏ ÏÎÏ "
-"ÎÏÎÎÏÎÎÎÎ ÎÏÏ <file>append,</file> ÎÎÎ <file>get_active_text,</file> ÏÎÏ "
-"ÎÏÎÏÏÏÎÏÎÎ ÏÎ ÏÎÎÏÎÏ ÎÎÎÎÎÎÎ ÏÎÏ ÎÏÎÎÎÎÎÎÎÎÏ ÏÏÎÎÎÎÎÏÎÎÏÎÏ."
+"ÎÎ ÎÏÏÏ ÏÎ ÏÎÎÎÎ ÏÎÏ ÎÎÎÎÎÏ ÎÎ ÎÎÏÎÏÎÎÏÎÏÎÏÎÎ ÏÎ ÎÏÏÎÎ ÎÏÏÎÎÎ ÏÎÏ "
+"ÏÏÎÎÏÎÎÎÎÏÎÏ ÏÎÏ ÎÏÎÏÎÎÎÎÏ ÎÎÎÏÎÏ. ÎÎÎ ÎÎ ÎÏÎÏÎÏÎ ÎÎÎ ÎÎ ÏÏÎÎÎÏÎ ÏÎÎ ÏÎ "
+"ÏÎÏÎÎÎÎÎÎÎÏÎ ÎÏÎÎÎÎ ÎÎ ÎÎÎÎÎ, ÏÏÎÎÎÎÏÏÎÏÏÎ ÎÎÎÎ ÎÏÎÎÎÏÎÎÏÏÎ ÎÎÎ ÏÎ ÎÏÎÏÎÎÎ "
+"ÏÎÏ ÎÏÎÎÎÎ, ÏÎÏÎÎÏÎÎÏ ÎÎÎ GNOME 3 Î ÎÎÏÎÎÎÎÎÏÏÎÏÎ ÎÎÎÎÏÎÏÏÎÎÎÎÎ ÏÏÎÎ "
+"ÏÏÎÎÎÎÎÏÏÎ ÏÎÏ. ÎÎ ÎÏÏÏ ÏÎ ÏÎÎÎÎ ÎÎ ÎÎÎÏÎÏÎÏÎÎ ÏÎ ÏÎÏÎÎÎÏÏ ÎÎÏÎ:"
 
-#: C/combobox.js.page:205(p) C/comboboxtext.js.page:148(p)
+#: C/weatherAppMain.js.page:25(item/p)
 msgid ""
-"After we create the MessageDialog, we connect its response signal to the "
-"_onDialogResponse function, then tell it to show itself."
+"<link xref=\"#widgets\">Adding a grid and all the necessary widgets to it</"
+"link>"
 msgstr ""
-"ÎÎÏÎ ÏÎ ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ MessageDialog, ÏÏÎÎÎÎÏÎÎ ÏÎ ÏÎÎÎ ÏÎÏ ÎÏÎÎÏÎÏÎÏ ÏÎÏ "
-"ÏÏÎ ÏÏÎÎÏÏÎÏÎ _onDialogResponse, ÎÏÎÎÏÎ ÏÎÏ ÎÎÎÎ ÎÎ ÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÎÏÏÏÎ ÏÎÏ."
+"<link xref=\"#widgets\">ÎÏÎÏÎÎÎÎ ÏÎÎÎÎÎÏÎÏ ÎÎÎ ÏÎÏÎ ÏÏÎ ÎÏÎÏÎÎÏÎÏÏÎ ÎÏÎÏÎÎÏÎ "
+"ÏÏÏÏÎÏÎÎÏÎ ÏÎ ÎÏÏÏ</link>"
 
-#: C/combobox.js.page:216(p) C/comboboxtext.js.page:159(p)
+#: C/weatherAppMain.js.page:26(item/p)
 msgid ""
-"Since the only button the MessageDialog has is an OK button, we don't need "
-"to test its response_id to see which button was clicked. All we do here is "
-"destroy the popup."
+"<link xref=\"#asynccall\">Requesting the weather information asynchronously</"
+"link>"
 msgstr ""
-"ÎÏÎÏ ÏÎ ÎÏÎÎ ÎÎÏÎÏÎ ÏÎÏ Î MessageDialog ÎÏÎÎ ÎÎÎÎÎ ÎÎÎ ÎÎÏÎÏÎ ÎÎÏÎÎÎÎ, ÎÎÎ "
-"ÏÏÎÎÎÎÏÎÎÏÏÎ ÎÎ ÎÎÎÎÎÎÏÎÎ ÏÎ response_id ÏÎÏ ÎÎÎ ÎÎ ÎÎÏÎÎ ÏÎÎÎ ÎÎÏÎÏÎ "
-"ÏÎÏÎÎÎÎÎ. ÎÏÏÏ ÏÎÏ ÎÎÎÎÏÎÎ ÎÎÏ ÎÎÎÎÎ Î ÎÎÏÎÏÏÏÎÏÎ ÏÎÏ ÎÎÎÎÏÏÎÎÎÎÏ."
+"<link xref=\"#asynccall\">ÎÎÏÎÏÎ ÏÏÎ ÏÎÎÏÎÏÎÏÎÏÎ ÎÎÎÏÎÏ ÎÏÏÎÏÏÎÎÎ</link>"
 
-#: C/combobox.js.page:223(p)
+#: C/weatherAppMain.js.page:27(item/p)
 msgid ""
-"Finally, we create a new instance of the finished ComboBoxExample class, and "
-"set the application running."
+"<link xref=\"#connectingbuttons\">Connecting signals to button and entry</"
+"link>."
 msgstr ""
-"ÎÎÎÎÎÎ, ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ ÎÎÎ ÏÏÎÎÎÎÏÏÏÏÎ ÏÎÏ ÎÎÎÎÎÎÏÏÎÎÎÎÏ ÎÎÎÏÎÏ "
-"ComboBoxExample ÎÎÎ ÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ."
-
-#: C/combobox.js.page:239(link)
-msgid "Gtk.CellRendererPixbuf"
-msgstr "Gtk.CellRendererPixbuf"
+"<link xref=\"#connectingbuttons\">ÎÏÎÎÎÏÎ ÏÎÎÎÏÏÎ ÏÎ ÎÎÏÎÏÎ ÎÎÎ ÎÎÏÎÏÏÏÎÏÎ</"
+"link>."
 
-#: C/comboboxtext.js.page:7(title)
-msgid "ComboBoxText (JavaScript)"
-msgstr "ComboBoxText (JavaScript)"
+#: C/weatherAppMain.js.page:28(item/p)
+msgid "<link xref=\"#weatherapp.js\">weatherapp.js</link>"
+msgstr "<link xref=\"#weatherapp.js\">weatherapp.js</link>"
 
-#: C/comboboxtext.js.page:19(desc)
-msgid "A text-only drop-down menu"
-msgstr "ÎÎÎ ÏÏÏÏÏÏÎÎÎÎ ÎÎÎÎÏ ÎÏÎÎ ÎÎÎ ÎÎÎÎÎÎÎ"
+#: C/weatherAppMain.js.page:35(section/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 ""
+"ÎÏÏÎ Î ÎÏÎÎÎÎ ÎÎÎÎ ÏÏÏ ÎÎ ÎÎÏÎÎÎÏÏÎÎ ÏÎ ÏÎÎÎÏÎÎ. ÎÏÎÏÎÎ ÎÎ ÎÎÎÎÎ Î ÏÏÏÏÎ "
+"ÎÏÎÎÎÎ ÏÎÏ ÎÏÎÎÎÎ ÎÎÎ ÎÎ ÎÎÎÎÎ ÎÎÏÎÎÎÏÎÎÎ. ÎÎÎ ÎÎÏÎ ÏÏÎ ÎÎÎÎÎÏÎÎÏÏÎ "
+"ÎÎÏÎÎÎÏÎÏ ÏÎÎÎÎÎÎÏÎ ÏÏÎÎ ÏÎÏÎÎÏÎÎÏ ÎÎÎ ÎÎÏÎÎÎÏÏÎ ÏÏÎÎ ÏÏÏÏÏ ÏÎÎÎÎÎ: chmod +x "
+"ÏÎÎÎÎ ÏÎÎÎÏÎÎÏ. Î ÎÏÎÏÎÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÏÎÎ ÎÎÎÏÎÎÏÎÏÏÎ ÎÏÏÎÎÎÏ "
+"ÎÏÎÏÎÎÏÎ. ÎÏÎÎ ÏÎÎÎÎÎÎÏÎ ÏÏÎÎ ÏÏÏÏÏ ÏÎÎÎÎÎ ÏÏÎÏ ÎÎÎÎÎ Î ÎÏÎÎÎÎÏ ÏÎÏ ÎÎÎÎ "
+"ÎÎÎÎ ÏÏÎ ÎÏÏÎÎÎ ÏÎÏ ÎÏÎÎÎÎ ÏÎÏ, ÎÏÎÎÎÎÏÎ ÎÎÎÏÏÎÏÎÏ, ÎÎÎÎ ÏÏÎÎ ÎÎÏÏÎÎÎ "
+"ÎÎÎÎÎÏÎÎÏÏÎ ÎÎÎ ÏÎÎÎÎÏÏÏÎ ÏÎ ÏÎÎÎÏÎÎ ÎÎÎ ÎÎ ÎÏÎÏÏÎÏÎÎ Î ÎÎÏÎÎÎÏÎ ÏÎÏ ÎÏÏÎÎÎÏ "
+"ÏÏ ÏÏÏÎÏÎÎÎÎ"
 
-#: C/comboboxtext.js.page:22(title)
-msgid "ComboBoxText"
-msgstr "ComboBoxText"
+#: C/weatherAppMain.js.page:41(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"var Gtk = imports.gi.Gtk;\n"
+"const WeatherService = imports.geonames;"
+msgstr ""
+"\n"
+"var Gtk = imports.gi.Gtk;\n"
+"const WeatherService = imports.geonames;"
 
-#: C/comboboxtext.js.page:24(p)
+#: C/weatherAppMain.js.page:44(section/p)
 msgid ""
-"A ComboBox is a drop-down menu. The difference between a <link xref="
-"\"combobox.js\">ComboBox</link> and a ComboBoxText is that a ComboBoxText "
-"just has basic text options, while a full ComboBox uses a ListStore or "
-"TreeStore (which are basically spreadsheets) to show things like branching "
-"options, or pictures to go alongside each choice."
+"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 ""
-"ÎÎÎ ComboBox ÎÎÎÎÎ ÎÎÎ ÏÏÏÏÏÏÎÎÎÎ ÎÎÎÎÏ. Î ÎÎÎÏÎÏÎ ÎÎÏÎÎÏ ÎÎÏÏ <link xref="
-"\"combobox.js\">ComboBox</link> ÎÎÎ ÎÎÏÏ ComboBoxText ÎÎÎÎÎ ÏÏÎ ÎÎÎ "
-"ComboBoxText ÎÏÎÎ ÎÏÎÎ ÎÏÎÎÎÎÎÏ ÎÎÏÎÎÎÏ ÎÎÎÎÎÎÎÏ, ÎÎÏ ÎÎÎ ÏÎÎÏÎÏ ComboBox "
-"ÏÏÎÏÎÎÎÏÎÎÎÎ ÎÎÎ ListStore Î TreeStore (ÏÎÏ ÎÎÎÎÎ ÎÎÏÎÎÎ ÏÏÎÎÎÎÎÏÏÎÎÎ ÏÏÎÎÎ) "
-"ÎÎÎ ÏÎÎ ÎÎÏÎÎÎÏÎ ÏÏÎÎÎÎÏÏÎ ÏÏÏÏ ÎÏÎÎÎÎÎÏ ÎÎÎÎÎÎÎÏÏÎÏ Î ÎÎÎÏÎÎÏ ÏÎÏ ÏÎÎÎÎÎÎÏÎ "
-"ÎÎÏÎÎ ÏÎ ÎÎÎÎ ÎÏÎÎÎÎÎ."
+"ÎÎÎ ÎÎ ÎÏÎÏÎÎ ÎÎÎ ÎÏÎÏÎÎÎÏÎÎÏÎÎÏ ÏÏÏÎÏÎÎÎÎ ÏÏÎÎÎÎÏÎÎÏÏÎ ÎÎ ÎÎÏÎÎÎÏÎÎ ÎÎÎ "
+"ÎÎÎÎÎÎÎÎÎÎ GObject ÎÏÏÎÎÎÎÏÏÎÏ ÎÎÎ ÏÏÎÏÎ. ÎÎÎ ÏÏÎÏÎ UI, ÏÏÎÎÎÎÏÎÎÏÏÎ Gtk. ÎÎ "
+"Gtk ÎÎÏÎÎÎÏÎÎ ÏÏÎÎ ÎÏÏÎ, ÎÏÏÎ ÏÎ ÎÏÎÏÎÎ ÎÎÎ ÏÏÎÏÎ ÏÎÎÏÎÏ. ÎÎÏÎÎÎÏÎÎ ÎÏÎÏÎÏ "
+"ÏÎ ÎÎÎÎÎ ÎÎÏ ÏÎÏÎÎÎ ÎÎÎÎÎÎÎÎÎÎ JavaScript geonames ÎÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÎÎ ÎÎÏ."
 
-#: C/comboboxtext.js.page:25(p)
+#: C/weatherAppMain.js.page:49(section/code)
+#, no-wrap
 msgid ""
-"Unless you need the added features of a full ComboBox, or are comfortable "
-"working with ListStores and TreeStores, you may find it a lot simpler to use "
-"a ComboBoxText whenever possible."
+"\n"
+"// Initialize the gtk\n"
+"Gtk.init(null, 0);\n"
+"//create your window, name it and connect the x to quit function. Remember that window is a taken word\n"
+"var weatherwindow = new Gtk.Window({type: Gtk.WindowType.TOPLEVEL});\n"
+"weatherwindow.title = \"Todays weather\";\n"
+"//Window only accepts one widget and a title. Further structure with Gtk.boxes of similar\n"
+"weatherwindow.connect(\"destroy\", function(){Gtk.main_quit()});\n"
+"\n"
+"weatherwindow.show_all();\n"
+"//and run it\n"
+"Gtk.main();"
 msgstr ""
-"ÎÎÏÏÏ ÎÎÎ ÏÏÎÎÎÎÎÏÏÎ ÏÎ ÏÏÏÏÎÎÏÎ ÎÎÏÏÎÏÎÎÏÎ ÎÎÏÏ ÏÎÎÏÎÏÏ ComboBox, Î ÎÎÎÎÎ "
-"ÎÎÎÏÎ Î ÎÏÎÎÏÎÎ ÎÎ ListStores ÎÎÎ TreeStores, ÎÏÎÏÎÎ ÎÎ ÏÎ ÎÏÎÎÏÎ ÏÎÎÏ "
-"ÎÏÎÎÏÏÏÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÎÎÎ ComboBoxText ÏÏÎÏÎ ÎÎÎÎÎ ÎÏÎÎÏÏ."
+"\n"
+"// Initialize the gtk\n"
+"Gtk.init(null, 0);\n"
+"//create your window, name it and connect the x to quit function. Remember that window is a taken word\n"
+"var weatherwindow = new Gtk.Window({type: Gtk.WindowType.TOPLEVEL});\n"
+"weatherwindow.title = \"Todays weather\";\n"
+"//Window only accepts one widget and a title. Further structure with Gtk.boxes of similar\n"
+"weatherwindow.connect(\"destroy\", function(){Gtk.main_quit()});\n"
+"\n"
+"weatherwindow.show_all();\n"
+"//and run it\n"
+"Gtk.main();"
 
-#: C/comboboxtext.js.page:82(title)
-msgid "Creating the ComboBoxText"
-msgstr "ÎÎÎÎÎÏÏÎÎÎ ÏÏÎ ComboBoxText"
+#: C/weatherAppMain.js.page:63(section/title)
+msgid "Adding a grid and all the necessary widgets to it"
+msgstr ""
+"ÎÏÎÏÎÎÎÎ ÏÎÎÎÎÎÏÎÏ ÎÎÎ ÏÎÏÎ ÏÏÎ ÎÏÎÏÎÎÏÎÏÏÎ ÎÏÎÏÎÎÏÎ ÏÏÏÏÎÏÎÎÏÎ ÏÎ ÎÏÏÏ"
 
-#: C/comboboxtext.js.page:96(p)
+#: C/weatherAppMain.js.page:64(section/code)
+#, no-wrap
 msgid ""
-"After we create the ComboBoxText, we use its <file>append_text</file> method "
-"to add text strings to it. Like the entries in an array, they each have a "
-"number for an ID, starting with 0. To make things simpler, you can actually "
-"create an array for your ComboBoxText entries, then use a for loop to append "
-"them in order, like we did here."
+"\n"
+"var grid = new Gtk.Grid();\n"
+"weatherwindow.add(grid);\n"
+"\n"
+"//We initialize the icon here, but deside the file later in geonames.js.\n"
+"var weatherIcon = new Gtk.Image();\n"
+"\n"
+"//Set some labels to your window\n"
+"var label1 = new Gtk.Label({label: \"\"});\n"
+"var label2 = new Gtk.Label({label: \"Looking in the sky...\"});\n"
+"var label3 = new Gtk.Label({label: \"\"});\n"
+"\n"
+"var entry = new Gtk.Entry();\n"
+"entry.set_width_chars(4);\n"
+"entry.set_max_length(4);\n"
+"var label4 = new Gtk.Label({label: \"Enter ICAO station for weather: \"});\n"
+"var button1 = new Gtk.Button({label: \"search!\"});\n"
+"\n"
+"grid.attach(label4, 2, 1, 1, 1);\n"
+"grid.attach_next_to(label1,label4,3,1,1);\n"
+"grid.attach_next_to(label2,label1,3,1,1);\n"
+"grid.attach_next_to(label3,label2,3,1,1);\n"
+"grid.attach_next_to(entry,label4,1,1,1);\n"
+"grid.attach_next_to(button1,entry,1,1,1);\n"
+"grid.attach_next_to(weatherIcon,label2,1,1,1)\n"
 msgstr ""
-"ÎÎÏÎ ÏÎ ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ ComboBoxText, ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÏÎ ÎÎÎÎÎÏ ÏÎÏ "
-"<file>append_text</file> ÎÎÎ ÎÎ ÏÏÎÏÎÎÏÎÏÎÎ ÏÏÎÎÎÎÎÏÎÎÏÎÏ ÎÎÎÎÎÎÎÏ ÏÎ ÎÏÏÏ. "
-"ÎÏÏÏ ÎÎ ÎÎÏÎÏÏÏÎÏÎÎÏ ÏÎ ÎÎÎÎ ÏÎÎÎÎÎ, ÎÏÎÎ ÎÎÎÎÎÎÎ ÎÎÎÎ ÎÏÎÎÎÏ ÎÎÎ ÏÎÏÏÏÏÎÏÎ, "
-"ÎÏÏÎÎÎÎÏÎÏ ÎÎ 0. ÎÎÎ ÎÏÎÎÏÎÎÎÏÎ, ÎÏÎÏÎÎÏÎ ÏÏÎÎÎÎÏÎ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎ ÎÎÎÎ "
-"ÏÎÎÎÎÎ ÎÎÎ ÏÎÏ ÎÎÏÎÏÏÏÎÏÎÎÏ ComboBoxText, ÎÏÎÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÎÎÎÎ "
-"ÎÏÏÏÎ for ÎÎÎ ÎÎ ÏÎ ÏÏÎÏÎÏÏÎÏÎÏÎ ÏÎ ÏÎÎÏÎ, ÏÏÏÏ ÎÎÎÎÎÎ ÎÎÏ."
+"\n"
+"var grid = new Gtk.Grid();\n"
+"weatherwindow.add(grid);\n"
+"\n"
+"//We initialize the icon here, but deside the file later in geonames.js.\n"
+"var weatherIcon = new Gtk.Image();\n"
+"\n"
+"//Set some labels to your window\n"
+"var label1 = new Gtk.Label({label: \"\"});\n"
+"var label2 = new Gtk.Label({label: \"Looking in the sky...\"});\n"
+"var label3 = new Gtk.Label({label: \"\"});\n"
+"\n"
+"var entry = new Gtk.Entry();\n"
+"entry.set_width_chars(4);\n"
+"entry.set_max_length(4);\n"
+"var label4 = new Gtk.Label({label: \"Enter ICAO station for weather: \"});\n"
+"var button1 = new Gtk.Button({label: \"search!\"});\n"
+"\n"
+"grid.attach(label4, 2, 1, 1, 1);\n"
+"grid.attach_next_to(label1,label4,3,1,1);\n"
+"grid.attach_next_to(label2,label1,3,1,1);\n"
+"grid.attach_next_to(label3,label2,3,1,1);\n"
+"grid.attach_next_to(entry,label4,1,1,1);\n"
+"grid.attach_next_to(button1,entry,1,1,1);\n"
+"grid.attach_next_to(weatherIcon,label2,1,1,1)\n"
 
-#: C/comboboxtext.js.page:97(p)
+#: C/weatherAppMain.js.page:90(section/p)
 msgid ""
-"After we populate the ComboBoxText, we set its first entry to be active, so "
-"that we'll see the \"Select distribution\" line before we click on it. Then "
-"we connect its <file>changed</file> signal to the _onComboChanged function, "
-"so that it's called whenever you make a new selection from the drop-down "
-"menu."
+"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 ""
-"ÎÎÏÎ ÏÎ ÎÎÎÎÏÎÎ ÏÎÏ ComboBoxText, ÎÏÎÎÎÏÎÎ ÏÎÎ ÏÏÏÏÎ ÏÎÏ ÎÎÏÎÏÏÏÎÏÎ ÎÎ ÎÎÎÎÎ "
-"ÎÎÎÏÎÎ, ÎÏÏÎ ÏÏÏÎ ÎÎ ÎÎÏÎÎ ÏÎ ÎÏÎÎÎÎ \"Select distribution\" ÏÏÎÎ ÏÎÎ "
-"ÏÎÏÎÏÎÏÎÎ. ÎÏÎÎÏÎ ÏÏÎÎÎÎÏÎÎ ÏÎ ÏÎÎÎ ÏÎÏ <file>changed</file> ÏÏÎ ÏÏÎÎÏÏÎÏÎ "
-"_onComboChanged, ÎÏÏÎ ÏÏÏÎ ÎÎ ÎÎÎÎÎÏÎÎ ÏÏÎÏÎ ÎÎÎÎÏÎ ÎÎÎ ÎÎÎ ÎÏÎÎÎÎÎ ÎÏÏ ÏÎ "
-"ÏÏÏÏÏÏÎÎÎÎ ÎÎÎÎÏ."
+"ÎÎ ÎÎÏÏÎÏÎ ÎÏÏÎÎ ÏÎÎ ÎÎÏÏÎÏÎ ÎÎÎÎÎÏÏÎÎÏÎÎ ÏÎ ÏÎÎÎÎÎ ÏÎÏ ÏÏÏÎÎÎÏÎÎ ÎÎ "
+"ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÎÎ ÏÎÏÎÎÎÏÎÏÎ ÏÏÎ ÎÏÎÏÎÎÏÎ ÏÏÏÏÎÏÎÎÏÎ. ÎÎÎ ÏÎ ÎÎÏÎÏÎÎ, "
+"ÎÏÎÎÎÏÎÏ ÎÎÎ ÎÎÏÎÏÏÏÎÏÎÎÏ ÎÏÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÎÎ ÏÎÏÎÎÎÏÎÏÎÏÎÎ ÏÏÎ ÏÎÎÎÎÎ. ÎÏÏÏ "
+"ÏÎÎÎÎÏÎÎ ÎÏÏ ÏÎÎ ÏÎÏÎÎÎÏÎÏÎ ÏÏÎ ÎÎÎÏÎÏÎÏÎÎÏÎ ÎÏÎÏÎÎÏÎ ÏÏÏÏÎÏÎÎÏÎ, ÎÎÎ "
+"ÏÏÎÎÎÎÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÎÏÎÎ ÎÏÎÎ ÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ. ÎÎ ÎÏÏÏ ÏÎ ÏÎÎÎÎÎ "
+"ÎÎÏÎÎÎÏ ÎÏÏ ÏÎÏ ÎÏÎÎÎÏÎÏ ÎÎÎ ÎÏÎÏÎ ÏÎÏÎÎÏÏÎÎÎÎ. ÎÎ ÏÎÏÎÎÏÏÎÎÎÎ ÎÎÎ ÎÏÏÎ ÏÎ "
+"ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÏÎÏÎÏÎÎÏÎÎ ÎÏÎÏÏÎÏÎ. ÎÎÎ ÏÏÎÎÎÏÎ ÏÎÎ ÎÏÎÏÎÎÎÎ ÏÎ ÎÏÏÏ ÏÎ "
+"ÏÏÎÎÎÎ, ÎÎ ÎÏÎÏÎ ÎÏÎÎÎÎ ÏÎ UI, ÎÎÎÎ ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÎ ÏÏÎÎÎÎÎÏÎÎ ÎÎ "
+"ÏÎÏÎÏÎ. ÎÎÎ ÎÏÏÏ ÏÏÎÎÎÎÏÎÎÏÏÎ ÏÏÏÏÎ ÎÎ ÎÎÏÎÏÎÎÏÎÏÎÏÎÎ ÏÎÎ ÏÎÏÎÎÎ ÎÎÎÎÎÎÎÎÎÎ "
+"ÎÎÎÎÎÏÎÏÎÏ ÎÎÎÏÎÏ ÎÎÎ ÎÏÎÎÏÎ ÎÎ ÏÎÏÎÏÎÎ ÏÎÎ ÏÎÎÏÎÏÎÏÎÎ ÏÎÏ ÏÏÎÎÎÎÏÎÎÏÏÎ "
+"ÎÏÏÎÏÏÎÎÎ. ÎÏÎÎ ÎÏÎÏÎÎ ÏÎÎ ÏÎÏÎÎÎ ÎÎÏ ÎÎÎÎÎÎÎÎÎÎ ÎÏÎÎÎÎ, ÎÏÎÏÎÏÎÎ ÎÎ ÏÎ "
+"ÏÏÎÎÎÏÎÏÎÎ ÎÎ ÏÎ ÎÏÎÏÎÎÏÎÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ."
+
+#: C/weatherAppMain.js.page:94(section/title)
+msgid "Requesting the weather information asynchronously"
+msgstr "ÎÎÏÎÏÎ ÏÏÎ ÏÎÎÏÎÏÎÏÎÏÎ ÎÎÎÏÎÏ ÎÏÏÎÏÏÎÎÎ"
 
-#: C/comboboxtext.js.page:98(p)
+#: C/weatherAppMain.js.page:95(section/code)
+#, no-wrap
 msgid ""
-"If you'd like to add an entry to a ComboBoxText, you can use the "
-"<file>insert_text</file> method. And if you'd rather use a text string as an "
-"ID for each entry than rely on numbers alone, you can use the <file>append</"
-"file> and <file>insert</file> methods. See the links at the bottom of this "
-"tutorial for the details of how to use them."
+"\n"
+"function getWeatherForStation() {\n"
+"  var station = entry.get_text();\n"
+"\n"
+"  var GeoNames = new WeatherService.GeoNames(station); //\"EFHF\";\n"
+"\n"
+"  GeoNames.getWeather(function(error, weather) {\n"
+"    //this here works bit like signals. This code will be run when we have weather.\n"
+"    if (error) {\n"
+"      label2.set_text(\"Suggested ICAO station does not exist Try EFHF\");\n"
+"    return; }\n"
+"    weatherIcon.file = GeoNames.getIcon(weather);\n"
+"\n"
+"    label1.set_text(\"Temperature is \" + weather.weatherObservation.temperature + \" degrees.\");\n"
+"    if (weather.weatherObservation.weatherCondition !== \"n/a\"){\n"
+"      label2.set_text(\"Looks like there is \" + weather.weatherObservation.weatherCondition + \" in the sky.\");\n"
+"      }\n"
+"    else {\n"
+"      label2.set_text(\"Looks like there is \" + weather.weatherObservation.clouds + \" in the sky.\");\n"
+"    }\n"
+"    label3.set_text(\"Windspeed is \" + weather.weatherObservation.windSpeed + \" m/s\")\n"
+"    // ...\n"
+"  });\n"
+"}\n"
 msgstr ""
-"ÎÎÎ ÎÎ ÎÎÎÎÏÎ ÎÎ ÏÏÎÏÎÎÏÎÏÎ ÎÎÎ ÎÎÏÎÏÏÏÎÏÎ ÏÎ ÎÎÎ ComboBoxText, ÎÏÎÏÎÎÏÎ ÎÎ "
-"ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÏÎ ÎÎÎÎÎÎ <file>insert_text</file>. ÎÎÎ ÏÏÎÏÎÎÎÏÎ ÎÎ "
-"ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÎÎÎ ÏÏÎÎÎÎÎÏÎÎÏÎ ÎÎÎÎÎÎÎÏ ÏÏ ÎÎÎ ÏÎÏÏÏÏÎÏÎ ÎÎÎ ÎÎÎÎ "
-"ÎÎÏÎÏÏÏÎÏÎ ÎÎÏÎ ÎÎ ÎÎÏÎÎÎÏÏÎ ÏÎ ÎÏÎÎÎÎÏÏ ÎÏÎÎ, ÎÏÎÏÎÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ "
-"ÏÎÏ ÎÎÎÏÎÎÏÏ <file>append</file> ÎÎÎ <file>insert</file>. ÎÎÎÏÎ ÏÎÏÏ "
-"ÏÏÎÎÎÏÎÎÏÏ ÏÏÎ ÏÎÎÎÏ ÎÏÏÎÏ ÏÎÏ ÎÎÎÎÎÎÏÎÏ ÎÎÎ ÏÎÏ ÎÎÏÏÎÎÎÏÎÎÎÏ ÏÏÎÏÎÏ ÏÎÏÏ."
+"\n"
+"function getWeatherForStation() {\n"
+"  var station = entry.get_text();\n"
+"\n"
+"  var GeoNames = new WeatherService.GeoNames(station); //\"EFHF\";\n"
+"\n"
+"  GeoNames.getWeather(function(error, weather) {\n"
+"    //this here works bit like signals. This code will be run when we have weather.\n"
+"    if (error) {\n"
+"      label2.set_text(\"Suggested ICAO station does not exist Try EFHF\");\n"
+"    return; }\n"
+"    weatherIcon.file = GeoNames.getIcon(weather);\n"
+"\n"
+"    label1.set_text(\"Temperature is \" + weather.weatherObservation.temperature + \" degrees.\");\n"
+"    if (weather.weatherObservation.weatherCondition !== \"n/a\"){\n"
+"      label2.set_text(\"Looks like there is \" + weather.weatherObservation.weatherCondition + \" in the sky.\");\n"
+"      }\n"
+"    else {\n"
+"      label2.set_text(\"Looks like there is \" + weather.weatherObservation.clouds + \" in the sky.\");\n"
+"    }\n"
+"    label3.set_text(\"Windspeed is \" + weather.weatherObservation.windSpeed + \" m/s\")\n"
+"    // ...\n"
+"  });\n"
+"}\n"
 
-#: C/comboboxtext.js.page:108(p)
+#: C/weatherAppMain.js.page:120(section/p)
 msgid ""
-"Finally, we add the ComboBoxText to the window, and tell the window to show "
-"itself and the widget inside it."
+"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 ""
-"ÎÎÎÎÎÎ, ÏÏÎÏÎÎÏÎÏÎÎ ÏÎ ComboBoxText ÏÏÎ ÏÎÏÎÎÏÏÎ, ÎÏÎÎÏÎ ÎÎÎÎ ÏÏÎ ÏÎÏÎÎÏÏÎ "
-"ÎÎ ÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÎÏÏÏÎ ÏÎÏ ÎÎÎ ÏÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÎÏÎ ÏÎÏ."
+"ÎÏÏÎ Î ÎÎÎÏÎÏÏÎÎÎ ÎÏÎÎÏÏÎÎÏÎÎ ÏÏÎÎ ÎÎÎÏÎ ÎÎÎ ÏÎÏ ÏÎÎÏÎÏÎÏÎÎÏ ÎÎÎÏÎÏ ÎÎÎ "
+"ÎÎÎÎÎÏÏÏÎ ÎÏÎÎÎÏÏÎ ÎÎÎ ÎÎÎÎÎÎÎÎÏÎ ÎÎÎÎÎÎÎ. ÎÏÎÎ ÎÏÏÎ ÏÎÏ ÎÎÎÏÎÏÏÎÎÎÏ "
+"ÏÎÎÏÎÎÏÎÎ ÏÎÎ ÎÎÏÎÎÎ ÏÏÎÏÏÎ ÎÎÎ ÎÎÎÎÎÏÎÏÎ. ÎÏÏÎ ÎÎÏ ÎÎÎ ÏÎÎ ÏÏÏÏÎ ÏÎÏÎ "
+"ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÏÎ ÎÎÎÎ ÎÎÏ ÎÎÎÎÎÎÎÎÎÎ ÎÎÎ ÏÎÏ ÎÏÎÎÎÎÎÏÎÎ ÏÎ ÎÎÏÎÎÎÎÏÎ "
+"GeoNames. ÎÎÏ ÎÎÏÏÏÎÏÎÎ ÏÎÎ WeatherService ÏÎÏ ÎÎÎÎÏÎÎ ÏÎÎ ÏÏÎÎÎÏ. ÎÎ ÏÏÏÏÎ "
+"ÏÏÎÎÎÎ ÏÎÏ ÎÎÎÎÏÎÎ ÎÎ ÏÎ GeoNames ÎÎÎÎÎ Î ÎÎÏÎÏÎ ÎÎÎÏÎÏ. ÎÏÎÎÎÏÎÏÎ ÎÎÏÎ ÏÎ "
+"GeoNamesgetWeather.getWeather (ÏÏÎÎÏÏÎÏÎ (ÏÏÎÎÎÎ, ÎÎÎÏÏÏ) ÏÏÎÎÎÎÎÎÎ ÎÏÎÎ ÎÎÎ "
+"ÎÎÏÎ ÏÎÏÎÏÎÎ ÎÎÎ ÎÎÎÏÎÎ ÏÏÎÎÎÎÏÎÏ Î ÏÎÎÏÎÏÎÏÎÎÏ ÎÎÎÏÎÏ. ÎÎÎ ÎÎÎ ÎÏÎÎÎ "
+"ÎÎÎÎÎÎ, ÏÎ ÏÏÏÎÎÎÏÎ ÏÎÏ ÏÏÎÎÏÎÎÎÎÏÎÏ ÎÎÏÎÎÏÎÎ ÏÏÏÎ ÎÎÎÎÎÎÎÎ, ÏÏÎ ÏÎ "
+"main_Quit ÎÎÏÎÎÏÎÎ."
+
+#: C/weatherAppMain.js.page:124(section/title)
+msgid "Connecting signals to button and entry."
+msgstr "ÎÏÎÎÎÏÎ ÏÎÎÎÏÏÎ ÏÎ ÎÎÏÎÏÎ ÎÎÎ ÎÎÏÎÏÏÏÎÏÎ."
 
-#: C/comboboxtext.js.page:122(p)
-#| msgid ""
-#| "We're going to create a pop-up <link xref=\"messagedialog.js"
-#| "\">MessageDialog,</link> which shows you a message based on which distro "
-#| "you select. First, we create the array of responses to use. Since the "
-#| "first string in our ComboBoxText is just the \"Select distribution\" "
-#| "message, we make the first string in our array blank."
+#: C/weatherAppMain.js.page:125(section/code)
+#, no-wrap
 msgid ""
-"We're going to create a pop-up <link xref=\"messagedialog.js"
-"\">MessageDialog</link>, which shows you a message based on which distro you "
-"select. First, we create the array of responses to use. Since the first "
-"string in our ComboBoxText is just the \"Select distribution\" message, we "
-"make the first string in our array blank."
+"\n"
+"entry.connect(\"key_press_event\", function(widget, event) {\n"
+"  if (entry.get_text().length === 4) {\n"
+"    // Enough is enough\n"
+"    getWeatherForStation();\n"
+"  }\n"
+"  return false;\n"
+"});\n"
+"\n"
+"button1.connect(\"clicked\", function(){\n"
+"  getWeatherForStation();\n"
+"});"
 msgstr ""
-"ÎÏÏÎÎÎÏÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ ÎÎÎ ÎÎÎÎÏÏÎÎÎÎ <link xref=\"messagedialog.js"
-"\">MessageDialog</link>, ÏÎÏ ÏÎÏ ÎÎÏÎÎÎÎÎÎ ÎÎÎ ÎÎÎÏÎÎ ÎÎ ÎÎÏÎ ÏÎÎÎ ÎÎÎÎÎÎÎ "
-"ÎÏÎÎÎÎÎÏÎ. ÎÏÏÏÎ, ÎÎÎÎÎÏÏÎÎÏÎÎ ÏÎÎ ÏÎÎÎÎÎ ÏÏÎ ÎÏÎÎÏÎÏÎÏÎ ÎÎÎ ÏÏÎÏÎ. ÎÏÎÏ Î "
-"ÏÏÏÏÎ ÏÏÎÎÎÎÎÏÎÎÏÎ ÏÏÎ ComboBoxText ÎÎÏ ÎÎÎÎÎ ÎÏÎÎ ÏÎ ÎÎÎÏÎÎ \"Select "
-"distribution\", ÎÎÎÎÏÎÎ ÏÎÎ ÏÏÏÏÎ ÏÏÎÎÎÎÎÏÎÎÏÎ ÏÏÎÎ ÏÎÎÎÎÎ ÎÎÏ ÎÎÎÎ."
+"\n"
+"entry.connect(\"key_press_event\", function(widget, event) {\n"
+"  if (entry.get_text().length === 4) {\n"
+"    // Enough is enough\n"
+"    getWeatherForStation();\n"
+"  }\n"
+"  return false;\n"
+"});\n"
+"\n"
+"button1.connect(\"clicked\", function(){\n"
+"  getWeatherForStation();\n"
+"});"
 
-#: C/comboboxtext.js.page:146(p)
+#: C/weatherAppMain.js.page:137(section/p)
 msgid ""
-"Before showing a MessageDialog, we first test to make sure you didn't choose "
-"the \"Select distribution\" message. After that, we set its text to be the "
-"entry in the array that corresponds to the active entry in our ComboBoxText. "
-"We do that using the <file>get_active</file> method, which returns the "
-"number ID of your selection."
+"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 ""
-"ÎÏÎÎ ÏÎÎ ÏÏÎÎÎÎÎ ÎÎÏÏ MessageDialog, ÎÎÎÎÎÎÎÎÏÎÎ ÏÏÏÏÎ ÎÎÎ ÎÎ ÎÎÎÎÎÏÎÎÏÎÎ "
-"ÏÏÎ ÎÎÎ ÎÏÎÎÎÎÎÏÎ ÏÎ ÎÎÎÏÎÎ \"Select distribution\". ÎÎÏÎ ÎÏÏ ÎÏÏÏ, ÎÏÎÎÎÏÎÎ "
-"ÏÎ ÎÎÎÎÎÎÎ ÏÎÏ ÎÎ ÎÎÎÎÎ ÏÏÎÎ ÎÎÏÎÏÏÏÎÏÎ ÏÏÎÎ ÏÎÎÎÎÎ ÏÎÏ ÎÎÏÎÏÏÎÎÏÎÎ ÏÏÎÎ "
-"ÎÎÎÏÎÎ ÎÎÏÎÏÏÏÎÏÎ ÏÏÎ ComboBoxText ÎÎÏ. ÎÎ ÎÎÎÎÏÎÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ ÎÎÎÎÎÎ "
-"<file>get_active</file>, ÏÎÏ ÎÏÎÏÏÏÎÏÎÎ ÏÎÎ ÎÏÎÎÎÏ ÏÎÏÏÏÏÎÏÎÏ ÏÎÏ ÎÏÎÎÎÎÎÏ "
-"ÏÎÏ."
+"ÎÎÎ ÏÎÎÎÎÎ ÎÏÎÏÎÎ ÏÎÏ ÏÏÎÎÎÏÎÎÏ ÏÎÏ ÎÎÎÎÏÎ ÏÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ ÎÎ ÏÏÎÏÎÎ ÏÏÏÏ "
+"ÎÎ ÎÏÏÎÏÎ. ÎÏÎÎÎÎÏÎÎ ÎÎÎ ÏÎÎ ÎÎÏÎÏÏÏÎÏÎ ÎÎÎ ÏÎ ÎÎÏÎÏÎ ÎÎÎ ÎÎ ÎÎÎÎÏÎ ÏÎ ÎÎÎÎ "
+"ÏÏÎÎÎÎ, ÏÎÎÏÎÎÎÏÎÏ ÏÎÎ ÎÎÎÏÏ. ÎÏÏÎ ÎÎÎ ÏÎÎÏÎÎÎÎ, ÎÎÎ ÏÎÏÎÏÎÏÎ ÎÎÎ ÏÎÏÎÏÎÏÎ "
+"ÎÎÏÎÎÏÎÎ Î ÎÎÎÎ ÏÏÎ ÎÎÏÎÏÎ ÎÎÎÎÎÏÎÏÎÏ."
+
+#: C/weatherAppMain.js.page:141(section/title)
+msgid "Weatherapp.js"
+msgstr "Weatherapp.js"
+
+#: C/weatherAppMain.js.page:142(section/p)
+msgid "Weatherapp.js file looks like this:"
+msgstr "ÎÎ ÎÏÏÎÎÎ Weatherapp.js ÎÎÎÎÎÎÎ ÎÎ ÎÏÏÏ:"
+
+#: C/weatherAppMain.js.page:143(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"#!/usr/bin/gjs\n"
+"//The previous line is a hash bang tells how to run the script.\n"
+"// Note that the script has to be executable (run in terminal in the right folder: chmod +x scriptname)\n"
+"\n"
+"var Gtk = imports.gi.Gtk;\n"
+"\n"
+"const WeatherService = imports.geonames;\n"
+"//Bring your own library from same folder (as set in GJS_PATH). If using autotools .desktop will take care of this\n"
+"\n"
+"// Initialize the gtk\n"
+"Gtk.init(null, 0);\n"
+"//create your window, name it and connect the x to quit function. Remember that window is a taken word\n"
+"var weatherwindow = new Gtk.Window({type: Gtk.WindowType.TOPLEVEL});\n"
+"weatherwindow.title = \"Todays weather\";\n"
+"//Window only accepts one widget and a title. Further structure with Gtk.boxes of similar\n"
+"weatherwindow.connect(\"destroy\", function(){Gtk.main_quit()});\n"
+"//We initialize the icon here, but deside the file later in geonames.js.\n"
+"\n"
+"var weatherIcon = new Gtk.Image();\n"
+"\n"
+"//Set some labels to your window\n"
+"var label1 = new Gtk.Label({label: \"\"});\n"
+"var label2 = new Gtk.Label({label: \"Looking in the sky...\"});\n"
+"var label3 = new Gtk.Label({label: \"\"});\n"
+"\n"
+"var grid = new Gtk.Grid();\n"
+"weatherwindow.add(grid);\n"
+"\n"
+"var entry = new Gtk.Entry();\n"
+"entry.set_width_chars(4);\n"
+"entry.set_max_length(4);\n"
+"var label4 = new Gtk.Label({label: \"Enter ICAO station for weather: \"});\n"
+"var button1 = new Gtk.Button({label: \"search!\"});\n"
+"\n"
+"//some weather\n"
+"\n"
+"entry.connect(\"key_press_event\", function(widget, event) {\n"
+"  // FIXME: Get weather on enter (key 13)\n"
+"  if (entry.get_text().length === 4) {\n"
+"    // Enough is enough\n"
+"    getWeatherForStation();\n"
+"  }\n"
+"  return false;\n"
+"});\n"
+"\n"
+"button1.connect(\"clicked\", function(){\n"
+"  getWeatherForStation();\n"
+"});\n"
+"\n"
+"function getWeatherForStation() {\n"
+"  var station = entry.get_text();\n"
+"\n"
+"  var GeoNames = new WeatherService.GeoNames(station); //\"EFHF\";\n"
+"\n"
+"  GeoNames.getWeather(function(error, weather) {\n"
+"    //this here works bit like signals. This code will be run when we have weather.\n"
+"    if (error) {\n"
+"      label2.set_text(\"Suggested ICAO station does not exist Try EFHF\");\n"
+"    return; }\n"
+"    weatherIcon.file = GeoNames.getIcon(weather);\n"
+"\n"
+"    label1.set_text(\"Temperature is \" + weather.weatherObservation.temperature + \" degrees.\");\n"
+"    if (weather.weatherObservation.weatherCondition !== \"n/a\"){\n"
+"      label2.set_text(\"Looks like there is \" + weather.weatherObservation.weatherCondition + \" in the sky.\");\n"
+"      }\n"
+"    else {\n"
+"      label2.set_text(\"Looks like there is \" + weather.weatherObservation.clouds + \" in the sky.\");\n"
+"    }\n"
+"    label3.set_text(\"Windspeed is \" + weather.weatherObservation.windSpeed + \" m/s\")\n"
+"    // ...\n"
+"  });\n"
+"}\n"
+"\n"
+"grid.attach(label4, 2, 1, 1, 1);\n"
+"grid.attach_next_to(label1,label4,3,1,1);\n"
+"grid.attach_next_to(label2,label1,3,1,1);\n"
+"grid.attach_next_to(label3,label2,3,1,1);\n"
+"grid.attach_next_to(entry,label4,1,1,1);\n"
+"grid.attach_next_to(button1,entry,1,1,1);\n"
+"grid.attach_next_to(weatherIcon,label2,1,1,1)\n"
+"weatherwindow.show_all();\n"
+"//and run it\n"
+"Gtk.main();\n"
+msgstr ""
+"\n"
+"#!/usr/bin/gjs\n"
+"//The previous line is a hash bang tells how to run the script.\n"
+"// Note that the script has to be executable (run in terminal in the right folder: chmod +x scriptname)\n"
+"\n"
+"var Gtk = imports.gi.Gtk;\n"
+"\n"
+"const WeatherService = imports.geonames;\n"
+"//Bring your own library from same folder (as set in GJS_PATH). If using autotools .desktop will take care of this\n"
+"\n"
+"// Initialize the gtk\n"
+"Gtk.init(null, 0);\n"
+"//create your window, name it and connect the x to quit function. Remember that window is a taken word\n"
+"var weatherwindow = new Gtk.Window({type: Gtk.WindowType.TOPLEVEL});\n"
+"weatherwindow.title = \"Todays weather\";\n"
+"//Window only accepts one widget and a title. Further structure with Gtk.boxes of similar\n"
+"weatherwindow.connect(\"destroy\", function(){Gtk.main_quit()});\n"
+"//We initialize the icon here, but deside the file later in geonames.js.\n"
+"\n"
+"var weatherIcon = new Gtk.Image();\n"
+"\n"
+"//Set some labels to your window\n"
+"var label1 = new Gtk.Label({label: \"\"});\n"
+"var label2 = new Gtk.Label({label: \"Looking in the sky...\"});\n"
+"var label3 = new Gtk.Label({label: \"\"});\n"
+"\n"
+"var grid = new Gtk.Grid();\n"
+"weatherwindow.add(grid);\n"
+"\n"
+"var entry = new Gtk.Entry();\n"
+"entry.set_width_chars(4);\n"
+"entry.set_max_length(4);\n"
+"var label4 = new Gtk.Label({label: \"Enter ICAO station for weather: \"});\n"
+"var button1 = new Gtk.Button({label: \"search!\"});\n"
+"\n"
+"//some weather\n"
+"\n"
+"entry.connect(\"key_press_event\", function(widget, event) {\n"
+"  // FIXME: Get weather on enter (key 13)\n"
+"  if (entry.get_text().length === 4) {\n"
+"    // Enough is enough\n"
+"    getWeatherForStation();\n"
+"  }\n"
+"  return false;\n"
+"});\n"
+"\n"
+"button1.connect(\"clicked\", function(){\n"
+"  getWeatherForStation();\n"
+"});\n"
+"\n"
+"function getWeatherForStation() {\n"
+"  var station = entry.get_text();\n"
+"\n"
+"  var GeoNames = new WeatherService.GeoNames(station); //\"EFHF\";\n"
+"\n"
+"  GeoNames.getWeather(function(error, weather) {\n"
+"    //this here works bit like signals. This code will be run when we have weather.\n"
+"    if (error) {\n"
+"      label2.set_text(\"Suggested ICAO station does not exist Try EFHF\");\n"
+"    return; }\n"
+"    weatherIcon.file = GeoNames.getIcon(weather);\n"
+"\n"
+"    label1.set_text(\"Temperature is \" + weather.weatherObservation.temperature + \" degrees.\");\n"
+"    if (weather.weatherObservation.weatherCondition !== \"n/a\"){\n"
+"      label2.set_text(\"Looks like there is \" + weather.weatherObservation.weatherCondition + \" in the sky.\");\n"
+"      }\n"
+"    else {\n"
+"      label2.set_text(\"Looks like there is \" + weather.weatherObservation.clouds + \" in the sky.\");\n"
+"    }\n"
+"    label3.set_text(\"Windspeed is \" + weather.weatherObservation.windSpeed + \" m/s\")\n"
+"    // ...\n"
+"  });\n"
+"}\n"
+"\n"
+"grid.attach(label4, 2, 1, 1, 1);\n"
+"grid.attach_next_to(label1,label4,3,1,1);\n"
+"grid.attach_next_to(label2,label1,3,1,1);\n"
+"grid.attach_next_to(label3,label2,3,1,1);\n"
+"grid.attach_next_to(entry,label4,1,1,1);\n"
+"grid.attach_next_to(button1,entry,1,1,1);\n"
+"grid.attach_next_to(weatherIcon,label2,1,1,1)\n"
+"weatherwindow.show_all();\n"
+"//and run it\n"
+"Gtk.main();\n"
+
+#: C/weatherAppMain.js.page:228(section/p)
+msgid "Running until you have all the autotools files ready. :"
+msgstr "ÎÎÏÎÎÎÏÎ ÎÎÏÏÎ ÎÎ ÎÏÎÏÎ ÏÎÎ ÏÎ ÎÏÏÎÎÎ autotools ÎÏÎÎÎÎ. :"
+
+#: C/weatherAppMain.js.page:230(section/screen)
+#, no-wrap
+msgid " <output style=\"prompt\">$ </output><input> GJS_PATH=`pwd` gjs weatherapp.js</input>"
+msgstr " <output style=\"prompt\">$ </output><input> GJS_PATH=`pwd` gjs weatherapp.js</input>"
 
-#: C/comboboxtext.js.page:166(p)
+#: C/weatherAppMain.js.page:231(section/p)
 msgid ""
-"Finally, we create a new instance of the finished ComboBoxTextExample class, "
-"and set the application running."
+"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 ""
-"ÎÎÎÎÎÎ, ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ ÎÎÎ ÏÏÎÎÎÎÏÏÏÏÎ ÏÎÏ ÎÎÎÎÎÎÏÏÎÎÎÎÏ ÎÎÎÏÎÏ "
-"ComboBoxTextExample ÎÎÎ ÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ."
-
-#: C/comboboxtext.js.page:182(link)
-msgid "Gtk.ComboBoxText"
-msgstr "Gtk.ComboBoxText"
+"ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ ÎÏÏÎÎ ÏÎÎ ÎÎÏÎÎÎ ÏÏÎ ÏÎÏÎÎÏÎÎÏ ÎÎÏ ÎÎÎÏÏÏÏÏÎÏÎ ÏÎ ÎÏÎÏÏÎÎÏÎ "
+"ÏÎÏ. ÎÏÎÎ ÎÎÎÎÎÏÎ ÏÎ ÏÏÏÎÏÎÎÎÎ ÏÎÏ ÎÎ ÎÏÏÏÎ ÏÎÎ ÏÏÏÏÎ, ÎÎÏÎÎ ÏÎÏ ÎÎ ÎÏÎÎ ÏÎÏ "
+"ÏÏÎÏÎÏÎÎÏÎÎÎÎÏ JSlibraries, ÏÎ ÎÏÏÎÎ ÏÎÎ ÏÎÏÎÏÏÏÏÎ ÏÎ geonames.js."
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/colorbutton.vala.page:23(None) C/colorbutton.py.page:21(None)
-msgid "@@image: 'media/colorbutton.png'; md5=904539d26fe367bf99f9a0961cfc9a03"
-msgstr "@@image: 'media/colorbutton.png'Â md5=904539d26fe367bf99f9a0961cfc9a03"
+#: C/weatherAutotools.js.page:18(page/title)
+msgid "Autotools and Icons"
+msgstr "Autotools ÎÎÎ ÎÎÎÎÎÎÎÎÎ"
 
-#: C/colorbutton.vala.page:7(title)
-msgid "ColorButton (Vala)"
-msgstr "ColorButton (Vala)"
+#: C/weatherAutotools.js.page:20(synopsis/p)
+msgid ""
+"In this part of the guide well construct the autotools and custom icons "
+"needed for weather application to be a seamless part of your desktop. To "
+"write and run all the code examples yourself, you need an editor to write "
+"code in, Terminal and GNOME 3 or higher installed into your computer. In "
+"this guide we we'll go through the following parts:"
+msgstr ""
+"ÎÎ ÎÏÏÏ ÏÎ ÏÎÎÎÎ ÏÎÏ ÎÎÎÎÎÏ ÎÎ ÎÎÏÎÏÎÎÏÎÏÎÏÎÎ ÏÎ ÎÏÏÏÎÎÏÎ ÎÏÎÎÎÎÎÎ ÎÎÎ ÎÎ "
+"ÏÏÎÏÎÏÎÏÏÎÏÎÎ ÏÎ ÎÏÎÎÏÎÏÎÎÎÎ ÎÎÎÎÎÎÎÎÎ ÎÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ ÎÎÎÏÎÏ ÎÎÎ ÎÎ ÎÎÎÎÎ "
+"ÎÏÏÎÏÎ ÎÎÏÎÏ ÏÎÏ ÎÏÎÏÎÎÎÎÎÏ ÎÏÎÎÏÎÎÏ ÏÎÏ. ÎÎÎ ÎÎ ÎÏÎÏÎÏÎ ÎÎÎ ÎÎ ÏÏÎÎÎÏÎ ÏÎÎ "
+"ÏÎ ÏÎÏÎÎÎÎÎÎÎÏÎ ÎÏÎÎÎÎ ÎÎ ÎÎÎÎÎ, ÏÏÎÎÎÎÏÏÎÏÏÎ ÎÎÎÎ ÎÏÎÎÎÏÎÎÏÏÎ ÎÎÎ ÎÎ "
+"ÎÏÎÏÎÎÎ ÏÎÏ ÎÏÎÎÎÎ, ÏÎÏÎÎÏÎÎÏ ÎÎÎ GNOME 3 Î ÎÎÏÎÎÎÎÎÏÏÎÏÎ ÎÎÎÎÏÎÏÏÎÎÎÎÎ ÏÏÎÎ "
+"ÏÏÎÎÎÎÎÏÏÎ ÏÎÏ. ÎÎ ÎÏÏÏÎ ÏÎÎ ÎÎÎÎÏ ÎÎ ÎÎÎÏÎÏÎÏÎÎ ÏÎ ÏÎÏÎÎÎÏÏ ÎÎÏÎ:"
 
-#: C/colorbutton.vala.page:19(desc) C/colorbutton.py.page:17(desc)
-msgid "A button to launch a color selection dialog"
-msgstr "ÎÎÎ ÎÎÏÎÏÎ ÎÎÎ ÎÎÎÎÎÎÏÎ ÏÎÏ ÎÎÎÎÏÎÎÏ ÎÏÎÎÎÎÎÏ ÏÏÏÎÎÏÎÏ"
+#: C/weatherAutotools.js.page:23(item/p)
+msgid "<link xref=\"#autotools\"> Autotools</link>"
+msgstr "<link xref=\"#autotools\"> Autotools</link>"
 
-#: C/colorbutton.vala.page:22(title) C/colorbutton.py.page:20(title)
-msgid "ColorButton"
-msgstr "ColorButton"
+#: C/weatherAutotools.js.page:24(item/p)
+msgid "<link xref=\"#icons\">Custom icons for your application</link>"
+msgstr ""
+"<link xref=\"#icons\">ÎÏÎÏÎÏÎÎÏÎÎÎÎ ÎÎÎÎÎÎÎÎÎ ÎÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ ÏÎÏ</link>"
 
-#: C/colorbutton.vala.page:24(p)
-msgid "RGB values of the selected color are shown in the label."
-msgstr "ÎÎÎÎÏ RGB ÏÎÏ ÎÏÎÎÎÎÎÎÎÎÏ ÏÏÏÎÎÏÎÏ ÎÎÏÎÎÎÎÎÎÏÎÎ ÏÏÎÎ ÎÏÎÎÎÏÎ."
+#: C/weatherAutotools.js.page:31(section/title)
+msgid "Autotools and necessary files"
+msgstr "Autotools ÎÎÎ ÎÏÎÏÎÎÏÎÏÎ ÎÏÏÎÎÎ"
 
-#: C/colorbutton.vala.page:31(link)
-msgid "Gtk.ColorButton"
-msgstr "Gtk.ColorButton"
+#: C/weatherAutotools.js.page:32(section/p)
+msgid ""
+"Having more than one file in your folder makes using autotools a bit tricky. "
+"You need the .desktop file, autogen.sh, Makefile.am, configure.ac and as a "
+"new file: myapp.sh.in file. Hacking the autotools file is a complicated "
+"field. More information can be found in many different sources, <link href="
+"\"http://en.wikipedia.org/wiki/GNU_build_system\";>the wikipedia article</"
+"link> provides a good overwiev on the subject."
+msgstr ""
+"ÎÏÎÎÏÎÏ ÏÎÏÎÏÏÏÏÎÏÎ ÎÏÏ ÎÎÎ ÎÏÏÎÎÎ ÏÏÎÎ ÏÎÎÎÎÏ ÏÎÏ ÎÎÎÎÎ ÏÎ ÏÏÎÏÎ ÏÎÏ "
+"autotools ÎÎÎÎ ÏÎÏÎÏÎÎÎÎ. ÎÏÎÎÎÎÏÏÎÏÏÎ ÏÎ ÎÏÏÎÎÎ .desktop, autogen.sh, "
+"Makefile.am, configure.ac ÎÎÎ ÏÏ ÎÎÎ ÎÏÏÎÎÎ: ÏÎ ÎÏÏÎÎÎ myapp.sh.in. Î "
+"ÎÏÎÎÎÏÎÎÏÎÎ ÏÎÏ ÎÏÏÎÎÎÏ autotools ÎÎÎÎÎ ÎÎÎ ÏÎÏÎÏÎÎÎÎ ÏÎÎÎÎ. ÎÎÏÎÏÏÏÏÎÏÎÏ "
+"ÏÎÎÏÎÏÎÏÎÎÏ ÎÏÎÏÎÎÏÎ ÎÎ ÎÏÎÎÏÎ ÏÎ ÏÎÎÎÎÏ ÎÎÎÏÎÏÎÏÎÎÎÏ ÏÎÎÎÏ, <link href="
+"\"http://en.wikipedia.org/wiki/GNU_build_system\";>ÏÎ ÎÏÎÏÎ ÏÎÏ ÎÎÎÎ</link> "
+"ÏÎÏÎÏÎÎ ÎÎÎ ÎÎÎÎ ÎÏÎÏÎÏÏÎÏÎ ÏÎÏ ÎÎÎÎÏÎÏ."
 
-#: C/colorbutton.vala.page:32(link)
-msgid "Gdk.RGBA"
-msgstr "Gdk.RGBA"
+#: C/weatherAutotools.js.page:35(item/p)
+#: C/weatherAutotools.js.page:41(section/p)
+msgid "weatherapp.desktop"
+msgstr "weatherapp.desktop"
 
-#: C/colorbutton.py.page:7(title)
-msgid "ColorButton (Python)"
-msgstr "ColorButton (Python)"
+#: C/weatherAutotools.js.page:36(item/p)
+#: C/weatherAutotools.js.page:56(section/p)
+msgid "weatherapp.sh.in"
+msgstr "weatherapp.sh.in"
 
-#: C/colorbutton.py.page:22(p)
+#: C/weatherAutotools.js.page:42(section/code)
+#, no-wrap
 msgid ""
-"This ColorButton launches a color selection dialog and prints in the "
-"terminal the RGB values of the color selected."
+"\n"
+"[Desktop Entry]\n"
+"Version=1.0\n"
+"Encoding=UTF-8\n"
+"Name=Weather app\n"
+"Comment=Weather showing application\n"
+"Exec=weatherapp.sh\n"
+"Icon=application-default-icon\n"
+"Terminal=false\n"
+"Type=Application\n"
+"StartupNotify=true\n"
+"Categories=GNOME;GTK;Utility;"
 msgstr ""
-"ÎÏÏÏ ÏÎ ColorButton ÎÎÎÎÎÎ ÏÎÎ ÎÎÎÎÎÎÎ ÎÏÎÎÎÎÎÏ ÏÏÏÎÎÏÏÎ ÎÎÎ ÏÏÏÏÎÎÎ ÏÏÎÎ "
-"ÏÎÏÎÎÏÎÎÏ ÏÎÏ ÏÎÎÎÏ RGB ÏÎÏ ÎÏÎÎÎÎÎÎÎÎÏ ÏÏÏÎÎÏÎÏ."
-
-#: C/colorbutton.py.page:32(title)
-msgid "Useful methods for a ColorButton widget"
-msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ColorButton"
-
-#: C/colorbutton.py.page:33(p)
+"\n"
+"[Desktop Entry]\n"
+"Version=1.0\n"
+"Encoding=UTF-8\n"
+"Name=Weather app\n"
+"Comment=Weather showing application\n"
+"Exec=weatherapp.sh\n"
+"Icon=application-default-icon\n"
+"Terminal=false\n"
+"Type=Application\n"
+"StartupNotify=true\n"
+"Categories=GNOME;GTK;Utility;"
+
+#: C/weatherAutotools.js.page:54(section/p)
 msgid ""
-"<code>set_color(color)</code>, where the <code>color</code> is defined as in "
-"the example, sets the color of the ColorButton, which by default is black. "
-"<code>get_color()</code> returns the color."
+"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 ""
-"<code>set_color(color)</code>, ÏÏÎÏ ÏÎ <code>color</code> ÎÏÎÎÎÏÎÎ ÏÏÏÏ ÏÏÎ "
-"ÏÎÏÎÎÎÎÎÎÎ, ÎÏÎÎÎÎ ÏÎ ÏÏÏÎÎ ÏÎÏ ColorButton, ÏÎÏ ÎÏÏ ÏÏÎÎÏÎÎÎÎÎ ÎÎÎÎÎ ÎÎÏÏÎ. "
-"<code>get_color()</code> ÎÏÎÏÏÏÎÏÎÎ ÏÎ ÏÏÏÎÎ."
-
-#: C/colorbutton.py.page:40(link)
-msgid "GtkColorButton"
-msgstr "GtkColorButton"
-
-#: C/colorbutton.py.page:41(link)
-msgid "GtkColorChooser"
-msgstr "GtkColorChooser"
-
-#: C/colorbutton.py.page:42(link)
-msgid "RGBA Colors"
-msgstr "ÎÏÏÎÎÏÎ RGBA"
-
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/checkbutton.vala.page:21(None) C/checkbutton.py.page:22(None)
-#: C/checkbutton.js.page:21(None) C/checkbutton.c.page:21(None)
-msgid "@@image: 'media/checkbutton.png'; md5=7921a6812c87dd2b3781f4fad241e858"
-msgstr "@@image: 'media/checkbutton.png'Â md5=7921a6812c87dd2b3781f4fad241e858"
-
-#: C/checkbutton.vala.page:7(title)
-msgid "CheckButton (Vala)"
-msgstr "CheckButton (Vala)"
-
-#: C/checkbutton.vala.page:17(desc)
-msgid "Create widgets with a disrete toggle button"
-msgstr "ÎÎÎÎÎÏÏÎÎÎ ÎÏÎÏÎÎÏÎ ÏÏÏÏÎÏÎÎÏÎ ÎÎ ÎÎÎ ÎÎÎÎÏÎÏÏ ÎÎÏÎÏÎ ÎÎÎÎÎÎÎÎÏ"
-
-#: C/checkbutton.vala.page:20(title) C/checkbutton.py.page:21(title)
-#: C/checkbutton.js.page:20(title) C/checkbutton.c.page:20(title)
-msgid "CheckButton"
-msgstr "CheckButton"
-
-#: C/checkbutton.vala.page:22(p) C/checkbutton.py.page:23(p)
-#: C/checkbutton.c.page:22(p)
-msgid "This CheckButton toggles the title."
-msgstr "ÎÏÏÏ ÏÎ CheckButton ÎÎÎÎÎÎÏÏÎÎ ÏÎÎ ÏÎÏÎÎ."
-
-#: C/checkbutton.vala.page:29(link) C/checkbutton.js.page:139(link)
-msgid "Gtk.CheckButton"
-msgstr "Gtk.CheckButton"
-
-#: C/checkbutton.py.page:7(title)
-msgid "CheckButton (Python)"
-msgstr "CheckButton (Python)"
-
-#: C/checkbutton.py.page:18(desc)
-msgid "A toggle button in a window"
-msgstr "ÎÎÎ ÎÎÏÎÏÎ ÎÎÎÎÎÎÎÎÏ ÏÎ ÏÎÏÎÎÏÏÎ"
+"ÎÏÏÏ ÏÎÏ ÏÏÎÏÎÎ ÎÎ ÏÎÎÎÎÏÏÎÏÎ ÏÎ ÎÏÏÏ ÏÎ ÎÏÏÎÎÎ ÎÎÎÎÎ ÏÏÎ Î ÎÏÎÎÎÎ Exec ÎÎ "
+"ÎÎÎÎÎ ÎÏÏÏ ÏÎ ÎÏÏÎÎÎ .desktop ÎÎ ÎÎÏÎÎÏÎÎ ÎÏÎÎ ÎÎÏÎ ÏÎÎ ÎÎÏÎÎÎÏÎ ÏÎÏÎ ÏÏÎ "
+"ÎÎÎÏÎ makefiles. ÎÎ Weatherapp.sh ÎÎÎÎÎ ÎÎÎ ÎÎÎÏÏ ÏÎÎÎÏÎÎ ÎÎÎÏÏÎÏÏ ÏÎÏ "
+"ÎÎÎÎÎÏÏÎÎÎÎÎÎ ÎÎ ÏÎ weatherapp.sh.in."
 
-#: C/checkbutton.py.page:32(p)
+#: C/weatherAutotools.js.page:57(section/code)
+#, no-wrap
 msgid ""
-"We could also create the CheckButton with <code>button = Gtk.CheckButton."
-"new_with_label(\"Show Title\")</code>."
+"\n"
+"#!/bin/sh\n"
+"export GJS_PATH= bindir@\n"
+"gjs @bindir@/weatherapp.js"
 msgstr ""
-"ÎÎ ÎÏÎÏÎÏÏÎÎÎ ÎÏÎÏÎÏ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ ÏÎ CheckButton ÎÎ <code>button = Gtk."
-"CheckButton.new_with_label(\"Show Title\")</code>."
-
-#: C/checkbutton.py.page:37(title)
-msgid "Useful methods for a CheckButton widget"
-msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ CheckButton"
-
-#: C/checkbutton.py.page:49(link) C/checkbutton.c.page:29(link)
-msgid "GtkCheckButton"
-msgstr "GtkCheckButton"
-
-#: C/checkbutton.js.page:7(title)
-msgid "CheckButton (JavaScript)"
-msgstr "CheckButton (JavaScript)"
-
-#: C/checkbutton.js.page:17(desc)
-msgid "A box which can be checked or unchecked"
-msgstr "ÎÎÎ ÎÎÏÎÏÎ ÏÎÏ ÎÏÎÏÎÎ ÎÎ ÏÎÎÎÎÏÎÎÎ Î ÎÎ ÎÏÎÏÎÎÎÎÏÎÎÎ"
+"\n"
+"#!/bin/sh\n"
+"export GJS_PATH= bindir@\n"
+"gjs @bindir@/weatherapp.js"
 
-#: C/checkbutton.js.page:22(p)
+#: C/weatherAutotools.js.page:61(section/p)
 msgid ""
-"This application has a CheckButton. Whether the box is checked dictates "
-"whether the window's title bar shows anything."
+"This file is a template to the file Makefile will do to be run from .desktop."
 msgstr ""
-"ÎÏÏÎ Î ÎÏÎÏÎÎÎÎ ÎÏÎÎ ÎÎÎ CheckButton. ÎÎÎ ÏÎ ÏÎÎÎÏÎÎ ÎÎÎÎÎ ÏÎÎÎÎÏÎÎÎÎ "
-"ÏÏÎÎÎÏÎÏÎÎ ÎÎÎ Î ÎÏÎÎÎÎ ÏÎÏÎÎÏ ÏÎÏ ÏÎÏÎÎÏÏÎÏ ÎÎÏÎÎÎÎÎÎ ÎÏÎÎÎÏÎÏÎ."
+"ÎÏÏÏ ÏÎ ÎÏÏÎÎÎ ÎÎÎÎÎ ÎÎÎ ÏÏÏÏÏÏÎ ÏÏÎ ÎÏÏÎÎÎ Makefile ÎÎÎ ÎÎ ÎÎÏÎÎÎÏÏÎÎ ÎÏÏ ."
+"desktop."
 
-#: C/checkbutton.js.page:23(p)
+#: C/weatherAutotools.js.page:64(section/code)
+#, no-wrap
 msgid ""
-"A CheckButton sends the \"toggled\" signal when it's checked or unchecked. "
-"While it's checked, the \"active\" property is true. While it's not, \"active"
-"\" tests as false."
+"\n"
+"# The actual runnable program is set to the SCRIPTS primitive. Prefix bin_ tells where to copy this\n"
+"bin_SCRIPTS = weatherapp.js geonames.js weatherapp.sh\n"
+"# List of files to be distributed\n"
+"EXTRA_DIST=  \\\n"
+"    $(bin_SCRIPTS) \\\n"
+"    $(private_icons)\t\\\n"
+"\t  $(NULL)\n"
+"\n"
+"CLEANFILES =\n"
+"\n"
+"# The desktop files\n"
+"desktopdir = $(datadir)/applications\n"
+"desktop_DATA =weatherapp.desktop\n"
+"\n"
+"# convenience command for doing Makefile variable substitutions in non-Makefile\n"
+"# files (scripts, service files, etc.)\n"
+"do_subst = sed -e 's|@abs_top_srcdir[ ]|$(abs_top_srcdir)|g' \\\n"
+"               -e 's|@abs_top_builddir[ ]|$(abs_top_builddir)|g' \\\n"
+"               -e 's|@localedir[ ]|$(localedir)|g' \\\n"
+"               -e 's|@bindir[ ]|$(bindir)|g' \\\n"
+"               -e 's|@libexecdir[ ]|$(libexecdir)|g' \\\n"
+"\t       -e 's|@pkglibdir[ ]|$(pkglibdir)|g' \\\n"
+"\t       -e 's|@pkgdatadir[ ]|$(pkgdatadir)|g' \\\n"
+"\t       -e 's|@have_libnotify[ ]|$(HAVE_LIBNOTIFY)|g' \\\n"
+"\t       -e 's|@have_libsoup[ ]|$(HAVE_LIBSOUP)|g' \\\n"
+"\t       -e 's|@have_cheese[ ]|$(HAVE_CHEESE)|g'\n"
+"\n"
+"weatherapp.sh: weatherapp.sh.in\n"
+"\t$(AM_V_GEN) $(do_subst) $&lt; &gt; $ \n"
+"\tchmod +x $ \n"
+"\n"
+"CLEANFILES += weatherapp.sh\n"
+"EXTRA_DIST += weatherapp.sh.in\n"
+"\n"
+"#the application icon\n"
+"appicondir=$(datadir)/icons/hicolor/scalable/apps\n"
+"appicon_DATA=weather-icon.svg\n"
+"\n"
+"#icons in the application\n"
+"NULL =\n"
+"\n"
+"private_icons = \\\n"
+"\tweather-clear.svg \\\n"
+"  weather-few-clouds.svg \\\n"
+"  weather-fog.svg \\\n"
+"  weather-icon.svg \\\n"
+"  weather-overcast.svg \\\n"
+"  weather-showers.svg \\\n"
+"  weather-showers-scattered.svg \\\n"
+"  weather-snow.svg \\\n"
+"  $(NULL)\n"
+"\n"
+"install-icons:\n"
+"\tfor icon in $(private_icons); do \\\n"
+"\t\tmkdir -p $(DESTDIR)$(pkgdatadir)/icons/; \\\n"
+"\t\t$(INSTALL_DATA) $(srcdir)/$$icon $(DESTDIR)$(pkgdatadir)/icons/; \\\n"
+"\tdone\n"
+"\n"
+"install-data-local: install-icons"
 msgstr ""
-"ÎÎÎ CheckButton ÏÏÎÎÎÎÎ ÏÎ ÏÎÎÎ \"ÎÎÎÎÎÎÎÎÏ\" ÏÏÎÎ ÏÎÎÎÎÏÎÎÏÎÎ Î "
-"ÎÏÎÏÎÎÎÎÏÎÎÏÎÎ. ÎÎÏ ÎÎÎÎÎ ÏÎÎÎÎÏÎÎÎÎ, Î ÎÎÎÏÏÎÏÎ \"ÎÎÎÏÎÎ\" ÎÎÎÎÎ ÎÎÎÎÎÏ. "
-"ÎÎÏ ÎÎÎ ÎÎÎ ÎÎÎÎÎ, ÏÎ \"ÎÎÎÏÎÎ\" ÎÎÎÎÏÎÏÎÎ ÏÏ ÏÎÏÎÎÏ."
+"\n"
+"# The actual runnable program is set to the SCRIPTS primitive. Prefix bin_ tells where to copy this\n"
+"bin_SCRIPTS = weatherapp.js geonames.js weatherapp.sh\n"
+"# List of files to be distributed\n"
+"EXTRA_DIST=  \\\n"
+"    $(bin_SCRIPTS) \\\n"
+"    $(private_icons)\t\\\n"
+"\t  $(NULL)\n"
+"\n"
+"CLEANFILES =\n"
+"\n"
+"# The desktop files\n"
+"desktopdir = $(datadir)/applications\n"
+"desktop_DATA =weatherapp.desktop\n"
+"\n"
+"# convenience command for doing Makefile variable substitutions in non-Makefile\n"
+"# files (scripts, service files, etc.)\n"
+"do_subst = sed -e 's|@abs_top_srcdir[ ]|$(abs_top_srcdir)|g' \\\n"
+"               -e 's|@abs_top_builddir[ ]|$(abs_top_builddir)|g' \\\n"
+"               -e 's|@localedir[ ]|$(localedir)|g' \\\n"
+"               -e 's|@bindir[ ]|$(bindir)|g' \\\n"
+"               -e 's|@libexecdir[ ]|$(libexecdir)|g' \\\n"
+"\t       -e 's|@pkglibdir[ ]|$(pkglibdir)|g' \\\n"
+"\t       -e 's|@pkgdatadir[ ]|$(pkgdatadir)|g' \\\n"
+"\t       -e 's|@have_libnotify[ ]|$(HAVE_LIBNOTIFY)|g' \\\n"
+"\t       -e 's|@have_libsoup[ ]|$(HAVE_LIBSOUP)|g' \\\n"
+"\t       -e 's|@have_cheese[ ]|$(HAVE_CHEESE)|g'\n"
+"\n"
+"weatherapp.sh: weatherapp.sh.in\n"
+"\t$(AM_V_GEN) $(do_subst) $&lt; &gt; $ \n"
+"\tchmod +x $ \n"
+"\n"
+"CLEANFILES += weatherapp.sh\n"
+"EXTRA_DIST += weatherapp.sh.in\n"
+"\n"
+"#the application icon\n"
+"appicondir=$(datadir)/icons/hicolor/scalable/apps\n"
+"appicon_DATA=weather-icon.svg\n"
+"\n"
+"#icons in the application\n"
+"NULL =\n"
+"\n"
+"private_icons = \\\n"
+"\tweather-clear.svg \\\n"
+"  weather-few-clouds.svg \\\n"
+"  weather-fog.svg \\\n"
+"  weather-icon.svg \\\n"
+"  weather-overcast.svg \\\n"
+"  weather-showers.svg \\\n"
+"  weather-showers-scattered.svg \\\n"
+"  weather-snow.svg \\\n"
+"  $(NULL)\n"
+"\n"
+"install-icons:\n"
+"\tfor icon in $(private_icons); do \\\n"
+"\t\tmkdir -p $(DESTDIR)$(pkgdatadir)/icons/; \\\n"
+"\t\t$(INSTALL_DATA) $(srcdir)/$$icon $(DESTDIR)$(pkgdatadir)/icons/; \\\n"
+"\tdone\n"
+"\n"
+"install-data-local: install-icons"
 
-#: C/checkbutton.js.page:66(p)
+#: C/weatherAutotools.js.page:124(section/p)
 msgid ""
-"All the code for this sample goes in the CheckButtonExample class. The above "
-"code creates a <link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/";
-"Gtk.Application.html\">Gtk.Application</link> for our widgets and window to "
-"go in."
+"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 ""
-"ÎÎÎÏ Î ÎÏÎÎÎÎÏ ÎÎÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÏÎÎÎÎÎÎÎ ÏÏÎÎ ÎÎÎÏÎ "
-"CheckButtonExample. Î ÏÎÏÎÏÎÎÏ ÎÏÎÎÎÎÏ ÎÎÎÎÎÏÏÎÎÎ ÎÎÎ <link href=\"http://";
-"www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Application.html\">Gtk."
-"Application</link> ÎÎÎ ÎÎ ÎÏÎÏÎ ÎÎÏÎ ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÏ ÎÎÎ ÏÎ "
-"ÏÎÏÎÎÏÏÎ."
+"ÎÏÏÏ ÏÏÎÎÎÎÎÏÎÎ ÎÎÎÎ ÏÎÏÎÏÏÏÏÎÏÎ ÎÎÎÎÎÏÎ. ÎÏÎÎÏÎÎÏÎÎÎÎ ÎÎ ÏÎ HelloWorld "
+"Makefile.am ÎÏÏÏ ÎÏÎÎ ÎÎÎÎÎÎÎ ÎÏÎÎÏÎ. ÎÏ ÎÎÎÏÎÏÎÏÎÎ ÏÎÎÏ ÏÎÏ ÎÎÎÏ ÎÎÎÎÎÏ:"
 
-#: C/checkbutton.js.page:80(p)
+#: C/weatherAutotools.js.page:125(section/p)
 msgid ""
-"The _buildUI function is where we put all the code to create the "
-"application's user interface. The first step is creating a new <link href="
-"\"GtkApplicationWindow.js.page\">Gtk.ApplicationWindow</link> to put all our "
-"widgets into."
+"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 ""
-"Î ÏÏÎÎÏÏÎÏÎ _buildUI ÎÎÎÎÎ ÎÎÎÎ ÏÎÏ ÎÎÎÎÏÎÎ ÏÎÎÎ ÏÎÎ ÎÏÎÎÎÎ ÎÎÎ ÎÎ "
-"ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ ÏÎ ÎÎÎÏÎÏÎ ÏÏÎÏÏÎ ÏÎÏ ÎÏÎÏÎÎÎÎÏ. ÎÎ ÏÏÏÏÎ ÎÎÎÎ ÎÎÎÎÎÏÏÎÎÎ ÎÎÎ "
-"ÎÎÎ <link href=\"GtkApplicationWindow.js.page\">Gtk.ApplicationWindow</link> "
-"ÎÎÎ ÎÎ ÎÎÎÎÏÎÎ ÎÎÏÎ ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÏ."
+"ÎÎ bin_scripts ÎÎÎÎÎ ÎÏÏÎÎÎ ÏÎÏ ÎÏÎÎÏÎÏÎÏÎÎ ÎÎÎ ÏÎÎ ÎÎÏÎÎÎÏÎ ÏÎÏ ÎÏÎÏÎÎÎÎÏ "
+"ÏÎÏ. ÎÎ ÎÏÏÎÎ ÏÎÎ ÏÎÏÎÏÏÏÏÎ ÏÎ ÎÏÎ ÏÏÏÏÎ ÎÎÎÎÎ ÏÎ ÎÎÎÎ ÏÎ ÏÏÏÎÏÎÎÎÎ ÎÎÎ ÏÎ "
+"ÏÏÎÏÎ ÎÎÎÎÎ ÏÎ ÏÎÎÎÏÎÎ ÏÎÏ ÎÎÎÎÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ."
 
-#: C/checkbutton.js.page:84(title)
-msgid "Creating the checkbutton"
-msgstr "ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ ÏÎÎÎÏÏÎÏ ÎÎÎÎÏÎÏ"
+#: C/weatherAutotools.js.page:126(section/p)
+msgid "EXTRA_DIST are the files that are to be distributed"
+msgstr "EXTRA_DIST ÎÎÎÎÎ ÏÎ ÎÏÏÎÎÎ ÏÎÏ ÏÏÏÎÎÎÏÎÎ ÎÎ ÎÎÎÎÎÎÎÎÎÏÎ"
+
+#: C/weatherAutotools.js.page:127(section/p)
+msgid "do_subst block is bits and pieces that need to be where they are"
+msgstr ""
+"ÎÎÎÎÎ do_subst ÎÎÎÎÎ ÎÏÎÎÎÎÎ ÎÎÎ ÎÎÎÎÎÏÎÎ ÏÎÏ ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎ ÎÎÎÎ ÏÎÏ "
+"ÎÏÎÏÎÎÎÏÎÎ"
 
-#: C/checkbutton.js.page:96(p)
+#: C/weatherAutotools.js.page:128(section/p)
 msgid ""
-"This code creates the checkbutton itself. The label next to the checkbutton "
-"is created by giving the checkbutton the \"label\" property and assigning a "
-"string value to it. Since this checkbutton toggles whether the window title "
-"is on or off, and the window title will be on to start with, we want the box "
-"to be checked by default. Whenever the user checks or unchecks the box, we "
-"call the ._toggledCB function."
+"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 ""
-"ÎÏÏÏÏ Î ÎÏÎÎÎÎÏ ÎÎÎÎÎÏÏÎÎÎ ÏÎ ÎÎÎÎ ÏÎ ÏÎÎÎÏÏÎ ÎÎÎÎÏÎÏ. Î ÎÏÎÎÎÏÎ ÎÎÏÎÎ ÏÏÎ "
-"ÏÎÎÎÏÏÎ ÎÎÎÎÏÎÏ ÎÎÎÎÎÏÏÎÎÎÏÎÎ ÎÎÎÎÎÏÎÏ ÏÏÎ ÏÎÎÎÏÏÎ ÎÎÎÎÏÎÏ ÏÎÎ ÎÎÎÏÏÎÏÎ "
-"\"ÎÏÎÎÎÏÎ\" ÎÎÎ ÎÏÎÎÎÎÎÎÏÎÏ ÏÎÎ ÏÎÎÎ ÎÎÎÏ ÏÏÎÎÎÎÎÏÎÎÏÎÏ ÏÎ ÎÏÏÎ. ÎÏÎÎÎÎ ÎÏÏÏ "
-"ÏÎ ÏÎÎÎÏÏÎ ÎÎÎÎÏÎÏ ÎÎÎÎÎÎÏÏÎÏÎÎ ÎÎÎ Î ÏÎÏÎÎÏ ÏÎÏÎÎÏÏÎÏ ÎÎÎÎÎ ÎÎÎÏÎÏÏ Î ÏÏÎ "
-"ÎÎÎ Î ÏÎÏÎÎÏ ÏÎÏÎÎÏÏÎÏ ÎÎ ÎÎÎÎÎ ÎÎÎÏÎÏÏ ÏÏÎÎ ÎÎÎÎÎÎÏÎ, ÎÎÎÎÏÎÎ ÏÎ ÏÎÎÎÏÎÎ ÎÎ "
-"ÏÎÎÎÎÏÎÎÎ ÎÏÏ ÏÏÎÎÏÎÎÎÎÎ. ÎÏÎÎ Î ÏÏÎÏÏÎÏ ÏÎÎÎÎÏÎÎÎ Î ÎÎÏÎÎÎÎÏÎÎÎ ÏÎ ÏÎÎÎÏÎÎ, "
-"ÎÎÎÎÏÎÎ ÏÎ ÏÏÎÎÏÏÎÏÎ ._toggledCB."
+"ÎÎÏÎ ÏÎ ÏÏÏÎÎÎ #icons in the application ÏÏÎÏÏÎÏÎ ÏÎÎ ÏÎ ÎÎÎÎÎÎÎÎÎ ÏÎÏ "
+"ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÏÏ ÏÎ ÏÏÏÎÏÎÎÎÎ. ÎÎÎ ÎÎ ÎÎÎÎÎ ÏÏÎÏÎÎÎ ÎÏÏÎ ÏÏÎÏÎÎ ÎÎ "
+"ÎÎÎÎÏÎÏÏÎÏÎÏÎ ÏÎ ÎÎÎÎÎÎÎÎÎ ÏÎ ÏÏÏÏÎÏ ÎÎÏÎÎÏ ÎÎÎ ÎÏÏÏ ÎÎÎÎÏÎÎ ÎÏÏ ÏÎ install-"
+"icons: bit"
 
-#: C/checkbutton.js.page:102(p)
+#: C/weatherAutotools.js.page:131(section/code)
+#, no-wrap
 msgid ""
-"This code finishes up creating the UI, by telling the window to show itself "
-"and all child widgets (which is just the checkbutton in this case)."
+"\n"
+"dnl This file is processed by autoconf to create a configure script\n"
+"AC_INIT([Weather App], 1.0)\n"
+"AM_INIT_AUTOMAKE([1.10 no-define foreign])\n"
+"AC_CONFIG_FILES(Makefile)\n"
+"AC_OUTPUT"
 msgstr ""
-"ÎÏÏÏÏ Î ÎÏÎÎÎÎÏ ÏÎÎÎÎÏÎÎÎ ÎÎÎÎÎÏÏÎÏÎÏÎÏ ÏÎ ÎÏÎÏÎÎÎ ÎÎÎÏÎÏÎ, ÎÎÎÎÎÏÎÏ ÏÏÎ "
-"ÏÎÏÎÎÏÏÎ ÎÎ ÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÎÏÏÏ ÏÎÏ ÎÎÎ ÏÎÎ ÏÎ ÎÏÎÎÏÏÎÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ "
-"(ÏÎÏ ÎÎÎÎÎ ÎÏÎÎ ÏÎ ÏÎÎÎÏÏÎ ÎÎÎÎÏÎÏ ÏÎ ÎÏÏÎÎ ÏÎÎ ÏÎÏÎÏÏÏÏÎ)."
+"\n"
+"dnl This file is processed by autoconf to create a configure script\n"
+"AC_INIT([Weather App], 1.0)\n"
+"AM_INIT_AUTOMAKE([1.10 no-define foreign])\n"
+"AC_CONFIG_FILES(Makefile)\n"
+"AC_OUTPUT"
 
-#: C/checkbutton.js.page:106(title)
-msgid "Function which handles the checkbutton's toggling"
-msgstr "Î ÏÏÎÎÏÏÎÏÎ ÏÎÏ ÏÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÎÎÎÎÎÎÎ ÏÎÏ ÏÎÎÎÏÎÎÏ ÎÎÎÎÏÎÏ"
+#: C/weatherAutotools.js.page:137(section/p)
+msgid "autohen.sh"
+msgstr "autohen.sh"
 
-#: C/checkbutton.js.page:120(p)
+#: C/weatherAutotools.js.page:138(section/code)
+#, no-wrap
 msgid ""
-"If the checkbutton is toggled from on to off, we want the window title to "
-"disappear. If it's toggled from off to on, we want it to reappear. We can "
-"tell which way it was toggled by testing to see whether it's active "
-"(checked) or not afterwards. A simple if / else statement which calls the "
-"checkbutton's get_active() method will work for this."
+"\n"
+"#!/bin/sh\n"
+"# This will run autoconf, automake, etc. for us\n"
+"autoreconf --force --install"
 msgstr ""
-"ÎÎÎ ÏÎ ÏÎÎÎÏÏÎ ÎÎÎÎÏÎÏ ÎÎÎÎÎÎÏÏÎÏÎÎ ÎÏÏ ÎÎÎÏÎÏ ÏÎ ÎÎÎÎÎÏÎÏ, ÎÎÎÎÏÎÎ Î ÏÎÏÎÎÏ "
-"ÏÎÏ ÏÎÏÎÎÏÏÎÏ ÎÎ ÎÎÎÏÎÎÎÏÏÎÎ. ÎÎÎ ÎÎÎÎÎÎÏÏÎÏÎÎ ÎÏÏ ÎÎÎÎÎÏÎÏ ÏÎ ÎÎÎÏÎÏ, ÏÎ "
-"ÎÎÎÎÏÎÎ ÎÎ ÎÏÎÎÎÎÏÎÎÎÎÎÏÎÎ. ÎÏÎÏÎÏÎÎ ÎÎ ÏÎÏÎÎ ÎÎ ÏÎÎÎ ÏÏÏÏÎ ÎÎÎÎÎÎÏÏÎÎÎ "
-"ÎÎÎÎÎÎÎÎÎÏÎÏ ÎÎ ÎÎÏÎÎ ÎÎÎ ÎÎÎÎÎ ÎÎÎÏÎÏ (ÏÎÎÎÎÏÎÎÎÎ) Î ÏÏÎ ÎÎÏÏÏÎÎ. ÎÎÎ ÎÏÎÎ "
-"ÏÏÏÏÎÏÎ if / else ÏÎÏ ÎÎÎÎÎ ÏÎ ÎÎÎÎÎÎ get_active() ÏÎÏ ÏÎÎÎÏÏÎÏ ÎÎÎÎÏÎÏ ÎÎ "
-"ÎÎÏÎÎÏÎÎ ÎÎÎ ÎÏÏÏ."
+"\n"
+"#!/bin/sh\n"
+"# This will run autoconf, automake, etc. for us\n"
+"autoreconf --force --install"
+
+#: C/weatherAutotools.js.page:144(section/title)
+msgid "Custom icons for your application"
+msgstr "ÎÏÎÏÎÏÎÎÎÎ ÎÎÎÎÎÎÎÎÏÎ ÎÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ ÏÎÏ"
+
+#: C/weatherAutotools.js.page:145(section/p)
+msgid ""
+"When thinking about custom icons a good rule of thumb is: do you expect to "
+"see that icon used elsewhere or is it private to your app? If the first (e."
+"g. the icons in the desktop file that are shown by the shell) then you need /"
+"usr/share/hicolor, otherwise (e.g. the weather icons of your app) /usr/share/"
+"$application/bla/bla"
+msgstr ""
+"ÎÎÎ ÏÎÎÏÏÎÏÏÎ ÏÎ ÏÏÎÏÎÏÎÎÏÎÎÎÎ ÎÎÎÎÎÎÎÎÎ ÎÎÎÏ ÎÎÎÏÏ ÏÏÏÏÎÎÏÎÏ ÎÎÎÏÎÎÏ ÎÎÎÎÎ "
+"Î ÎÎÎÏ: ÏÎÏÎÎÎÎÎÏÎ ÎÎ ÎÎÎÏÎ ÎÏÏÏ ÏÎ ÎÎÎÎÎÎÎÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÎÎÏÎÏ ÎÎÎÎÏ "
+"Î ÎÎÎÎÎ ÎÏÎÎ ÎÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ ÏÎÏ; ÎÎÎ ÏÏÎÎÎÎÎÎÎ ÏÎ ÏÏÏÏÎ (Ï.Ï. ÏÎ ÎÎÎÎÎÎÎÎÎ "
+"ÏÏÎ ÎÏÏÎÎÎ ÏÎÏ ÎÏÎÏÎÎÎÎÎÏ ÎÏÎÎÏÎÎÏ ÏÎÏ ÎÎÏÎÎÎÎÎÎÏÎÎ ÎÏÏ ÏÎ ÎÎÎÏÏÎÏ) ÏÏÏÎ "
+"ÏÏÎÎÎÎÏÏÎÏÏÎ /usr/share/hicolor, ÎÎÎÎÏÏ (Ï.Ï. ÏÎ ÎÎÎÎÎÎÎÎÎ ÎÎÎÏÎÏ ÏÎÏ "
+"ÎÏÎÏÎÎÎÎÏ ÏÎÏ) /usr/share/$application/bla/bla"
 
-#: C/checkbutton.js.page:126(p)
+#: C/weatherAutotools.js.page:146(section/p)
 msgid ""
-"Finally, we create a new instance of the finished CheckButtonExample class, "
-"and set the application running."
+"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 ""
-"ÎÎÎÎÎÎ, ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ ÏÎÏ ÏÎÎÎÎÏÎÎÎÎÏ ÎÎÎÏÎÏ "
-"CheckButtonExample ÎÎÎ ÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ."
-
-#: C/checkbutton.c.page:7(title)
-msgid "CheckButton (C)"
-msgstr "CheckButton (C)"
+"ÎÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ autotools ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÏÎ ÎÎÏÎÎÎÏ ÎÎÎÎÎÎÏ ÏÏÎ ÎÏÏÎÎÎ "
+"ÏÎÏ .desktop and Makefile.am. ÎÏÎ ÎÏÏÎÎÎ ÎÏÎÏÎÎÎÎÎÏ ÎÏÎÎÏÎÎÏ ÎÎÎÎÎÏÎ ÏÎ "
+"ÏÎÎÎÎ ÏÎÏ ÎÎÎÎÎÎÎÎÎÏ Icon=weather-icon. ÎÏÎ ÎÏÏÎÎÎ Makefile.am ÏÏÎÏÎÎÏÏÎ "
+"ÎÏÏÎÏ ÏÎÏ ÎÏÎ ÎÏÎÎÎÎÏ ÏÏÎ ÏÎÎÎÏ ÏÎÏ ÎÏÎÏÎÎÎÎ ÏÎÏ #the application icon"
 
-#: C/checkbutton.c.page:13(email)
-msgid "tiffany antpoolski gmail com"
-msgstr "tiffany antpoolski gmail com"
+#: C/weatherAutotools.js.page:147(section/p)
+msgid "appicondir=$(datadir)/icons/hicolor/scalable/apps"
+msgstr "appicondir=$(datadir)/icons/hicolor/scalable/apps"
 
-#: C/checkbutton.c.page:17(desc)
-msgid "Create widgets with a discrete ToggleButton"
-msgstr "ÎÎÎÎÎÏÏÎÎÎ ÎÏÎÏÎÎÏÎ ÏÏÏÏÎÏÎÎÏÎ ÎÎ ÎÎÎ ÎÎÎÎÏÎÏÏ ToggleButton"
+#: C/weatherAutotools.js.page:148(section/p)
+msgid "appicon_DATA=weather-icon.svg"
+msgstr "appicon_DATA=weather-icon.svg"
 
-#: C/c.page:6(title)
-msgid "C"
-msgstr "C"
+#: C/weatherGeonames.js.page:18(page/title)
+msgid "Local library geoNames"
+msgstr "ÎÎÏÎÎÎ ÎÎÎÎÎÎÎÎÎÎ geoNames"
 
-#: C/c.page:15(title)
-msgid "Tutorials, code samples, and plaform demos in C"
-msgstr "ÎÎÎÎÎÎÏÎ, ÎÎÎÎÎÎÏÎ ÎÏÎÎÎÎ ÎÎÎ ÏÎÏÎÎÎÎÎÎÎÏÎ ÏÎÎÏÏÏÏÎÎÏ ÏÎ C"
+#: C/weatherGeonames.js.page:20(synopsis/p)
+msgid ""
+"In this part of the guide we'll construct the local library geoNames using "
+"asynchronous calls. Weather information in this example is fetched from "
+"geonames.org and the application is using the <link href=\"http://en.";
+"wikipedia.org/wiki/List_of_airports_by_ICAO_code:_E\">ICAO codes </link> to "
+"place your weather request. To write and run all the code examples yourself, "
+"you need an editor to write code in, Terminal and GNOME 3 or higher "
+"installed into your computer. In this guide we'll go through the following "
+"parts:"
+msgstr ""
+"ÎÎ ÎÏÏÏ ÏÎ ÏÎÎÎÎ ÏÎÏ ÎÎÎÎÎÏ ÏÏÏÎÎÎÏÎÎ ÎÎ ÎÎÏÎÏÎÎÏÎÏÎÏÎÎ ÎÎÎ ÏÎÏÎÎÎ "
+"ÎÎÎÎÎÎÎÎÎÎ geoNames ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÎÏÏÎÏÏÎÎÎÏ ÎÎÎÏÎÎÏ. ÎÎ ÏÎÎÏÎÏÎÏÎÎÏ ÏÎÏ "
+"ÎÎÎÏÎÏ ÏÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÏÎÏÎÏÎÎÏÎÎ ÎÏÏ ÏÎÎ geonames.org ÎÎÎ Î ÎÏÎÏÎÎÎÎ "
+"ÏÏÎÏÎÎÎÏÎÎÎÎ ÏÎ <link href=\"http://en.wikipedia.org/wiki/";
+"List_of_airports_by_ICAO_code:_E\">ÎÏÎÎÎÎÏÏ ICAO</link> ÎÎÎ ÎÎ ÏÎÏÎÎÎÏÎÏÎÎ "
+"ÏÎÎ ÎÎÏÎÏÎ ÏÎÏ ÎÎÎ ÏÎÎ ÎÎÎÏÏ. ÎÎÎ ÎÎ ÎÏÎÏÎÏÎ ÎÎÎ ÎÎ ÎÎÏÎÎÎÏÎÏÎ ÎÎ ÎÎÎÎÎ ÏÎ "
+"ÏÎÏÎÎÎÎÎÎÎÏÎ ÏÎÏ ÎÏÎÎÎÎ, ÏÏÎÎÎÎÎÏÏÎ ÎÎÎÎ ÎÏÎÎÎÏÎÎÏÏÎ ÎÎÎ ÎÎ ÎÏÎÏÎÏÎ ÏÎÎ "
+"ÎÏÎÎÎÎ, ÏÎÏÎÎÏÎÎÏ ÎÎÎ GNOME 3 Î ÎÎÎÎÎÏÏÎÏÎ ÎÎÎÎÏÎÏÏÎÎÎÎÎ ÏÏÎÎ ÏÏÎÎÎÎÎÏÏÎ "
+"ÏÎÏ. ÎÎ ÎÏÏÏÎ ÏÎÎ ÎÎÎÎÏ ÎÎ ÎÎÎÏÎÏÎÏÎÎ ÏÎ ÏÎÏÎÎÎÏÏ ÎÎÏÎ:"
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/buttonbox.py.page:23(None)
+#: C/weatherGeonames.js.page:23(item/p)
 msgid ""
-"@@image: 'media/buttonbox_calculator.png'; "
-"md5=ce0de08b7ac66f517290e33e6d33d508"
+"<link xref=\"#geonamesimports\">Local library for getting the weather</link>"
 msgstr ""
-"@@image: 'media/buttonbox_calculator.png'Â "
-"md5=ce0de08b7ac66f517290e33e6d33d508"
+"<link xref=\"#geonamesimports\">ÎÎÏÎÎÎ ÎÎÎÎÎÎÎÎÎÎ ÎÎÎ ÎÎÏÎ ÏÎÏ ÎÎÎÏÎÏ</link>"
 
-#: C/buttonbox.py.page:7(title)
-msgid "ButtonBox (Python)"
-msgstr "ButtonBox (Python)"
+#: C/weatherGeonames.js.page:24(item/p)
+msgid "<link xref=\"#geonamesfunction\">Creating function geoNames</link>"
+msgstr ""
+"<link xref=\"#geonamesfunction\">ÎÎÎÎÎÏÏÎÏÎÏÎÏ ÏÏÎÎÏÏÎÏÎÎÏ geoNames</link>"
 
-#: C/buttonbox.py.page:18(desc)
-msgid "A container for arranging buttons"
-msgstr "ÎÎÎÏ ÏÎÏÎÎÎÏÎÏ ÎÎÎ ÎÎÎÏÎÎÏÎÏÎ ÎÎÏÎÏÎÏÎ"
+#: C/weatherGeonames.js.page:25(item/p)
+msgid "<link xref=\"#geonamesmethods\">Methods for geoNames</link>"
+msgstr "<link xref=\"#geonamesmethods\">ÎÎÎÎÎÎÎ ÎÎÎ ÏÎ geoNames</link>"
 
-#: C/buttonbox.py.page:21(title)
-msgid "ButtonBox"
-msgstr "ButtonBox"
+#: C/weatherGeonames.js.page:26(item/p)
+msgid "<link xref=\"#geonames.js\">geonames.js </link>"
+msgstr "<link xref=\"#geonames.js\">geonames.js </link>"
 
-#: C/buttonbox.py.page:24(p)
-msgid "A calculator - the buttons are enclosed in horizontal ButtonBoxes."
-msgstr "ÎÎÎ ÎÏÎÎÎÎÎÎÏÎÎÎ - ÏÎ ÎÎÏÎÏÎÎ ÏÎÏÎÎÎÎÎÎÎÏÎÎ ÏÎ ÎÏÎÎÏÎÏÎÎ ButtonBoxes."
+#: C/weatherGeonames.js.page:31(section/title)
+msgid "Local library for getting the weather"
+msgstr "ÎÎÏÎÎÎ ÎÎÎÎÎÎÎÎÎÎ ÎÎÎ ÎÎÏÎ ÏÎÏ ÎÎÎÏÎÏ"
 
-#: C/buttonbox.py.page:34(title)
-msgid "Uselful methods for a ButtonBox widget"
-msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ButtonBox"
+#: C/weatherGeonames.js.page:32(section/p)
+msgid "For this we need a new file that will be our local library."
+msgstr ""
+"ÎÎÎ ÎÏÏÏ ÎÎ ÏÏÎÎÎÏÏÎÏÎÎ ÎÎÎ ÎÎÎ ÎÏÏÎÎÎ ÏÎÏ ÎÎ ÎÎÎÎÎ Î ÏÎÏÎÎÎ ÎÎÏ ÎÎÎÎÎÎÎÎÎÎ."
 
-#: C/buttonbox.py.page:36(p)
+#: C/weatherGeonames.js.page:33(section/code)
+#, no-wrap
 msgid ""
-"The layout of the ButtonBox are set with <code>set_layout(layout)</code>, "
-"where <code>layout</code> can be <code>Gtk.ButtonBoxStyle.SPREAD</code> "
-"(buttons are evenly spread across the box), <code>Gtk.ButtonBoxStyle.EDGE</"
-"code> (buttons are placed at the edges of the box), <code>Gtk.ButtonBoxStyle."
-"START</code> (buttons are grouped towards the start of the box), <code>Gtk."
-"ButtonBoxStyle.END</code> (buttons are grouped towards the end of the box), "
-"<code>Gtk.ButtonBoxStyle.CENTER</code> (buttons are centered in the box)."
+"\n"
+"const Soup = imports.gi.Soup;\n"
+"const _httpSession = new Soup.SessionAsync();\n"
+"Soup.Session.prototype.add_feature.call(_httpSession, new Soup.ProxyResolverDefault());\n"
 msgstr ""
-"Î ÎÎÎÏÎÎÎ ÏÎÏ ButtonBox ÎÏÎÎÎÏÎÎ ÎÎ <code>set_layout(layout)</code>, ÏÏÎÏ "
-"<code>layout</code> ÎÏÎÏÎÎ ÎÎ ÎÎÎÎÎ <code>Gtk.ButtonBoxStyle.SPREAD</code> "
-"(ÏÎ ÎÎÏÎÏÎÎ ÎÎÎÏÏÎÎÏÎÎÏÎÎ ÎÎÎÏÎÏ ÎÎÏÎ ÎÎÎÎÏ ÏÎÏ ÏÎÎÎÏÎÎÏ), <code>Gtk."
-"ButtonBoxStyle.EDGE</code> (ÏÎ ÎÎÏÎÏÎÎ ÏÎÏÎÎÎÏÎÏÎÏÎÎ ÏÏÎÏ ÎÎÏÎÏ ÏÎÏ "
-"ÏÎÎÎÏÎÎÏ), <code>Gtk.ButtonBoxStyle.START</code> (ÏÎ ÎÎÏÎÏÎÎ ÎÎÎÎÎÏÎÎÎÏÎÏÎÎ "
-"ÏÏÎÏ ÏÎÎ ÎÏÏÎ ÏÎÏ ÏÎÎÎÏÎÎÏ), <code>Gtk.ButtonBoxStyle.END</code> (ÏÎ ÎÎÏÎÏÎÎ "
-"ÎÎÎÎÎÏÎÎÎÏÎÏÎÎ ÏÏÎÏ ÏÎ ÏÎÎÎÏ ÏÎÏ ÏÎÎÎÏÎÎÏ), <code>Gtk.ButtonBoxStyle.CENTER</"
-"code> (ÏÎ ÎÎÏÎÏÎÎ ÎÎÎÏÏÎÏÎÎÏÎÎ ÏÏÎ ÏÎÎÎÏÎÎ)."
+"\n"
+"const Soup = imports.gi.Soup;\n"
+"const _httpSession = new Soup.SessionAsync();\n"
+"Soup.Session.prototype.add_feature.call(_httpSession, new Soup.ProxyResolverDefault());\n"
 
-#: C/buttonbox.py.page:37(p)
+#: C/weatherGeonames.js.page:38(section/p)
 msgid ""
-"<code>set_child_secondary(button, is_secondary)</code> sets whether "
-"<code>button</code> should appear in a secondary group of children. A "
-"typical use of a secondary child is the help button in a dialog. This group "
-"appears after the other children if the style is <code>START</code>, "
-"<code>SPREAD</code> or <code>EDGE</code>, and before the other children if "
-"the style is <code>END</code>. If the style is <code>START</code> or "
-"<code>END</code>, then the secondary children are aligned at the other end "
-"of the button box from the main children. For the other styles, they appear "
-"immediately next to the main children."
+"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 ""
-"Î <code>set_child_secondary(button, is_secondary)</code> ÎÏÎÎÎÎ ÎÎÎ ÏÎ "
-"<code>button</code> ÏÏÎÏÎÎ ÎÎ ÎÎÏÎÎÎÏÏÎÎ ÏÎ ÎÎÎ ÎÎÏÏÎÏÎÏÎÏÏÎ ÎÎÎÎÎ "
-"ÎÏÎÎÏÏÎÎÏÎ. ÎÎÎ ÏÏÏÎÎÎ ÏÏÎÏÎ ÎÎÏÏ ÎÎÏÏÎÏÎÏÎÎÏÎÏ ÎÏÎÎÏÏÎÎÎÏ ÎÎÎÎÎ ÏÎ "
-"ÎÎÎÎÎÏÎÎÏ ÎÎÏÎÏÎ ÏÎ ÎÎÎ ÎÎÎÎÎÎÎ. ÎÏÏÎ Î ÎÎÎÎÎ ÎÎÏÎÎÎÎÎÏÎÎ ÎÎÏÎ ÏÎ ÎÎÎÎ "
-"ÎÏÎÎÏÏÎÎÎ ÎÎÎ Î ÏÏÏÎÏ ÎÎÎÎÎ <code>START</code>, <code>SPREAD</code> Î "
-"<code>EDGE</code> ÎÎÎ ÏÏÎÎ ÏÎ ÎÎÎÎ ÎÏÎÎÏÏÎÎÎ ÎÎÎ Î ÏÏÏÎÏ ÎÎÎÎÎ <code>END</"
-"code>. ÎÎÎ Î ÏÏÏÎÏ ÎÎÎÎÎ <code>START</code> Î <code>END</code>, ÏÏÏÎ ÏÎ "
-"ÎÎÏÏÎÏÎÏÎÎÏÎ ÎÏÎÎÏÏÎÎÎ ÏÏÎÎÏÎÎÎÎÏÎÎ ÏÏÎÎ ÎÎÎÎ ÎÎÏÎ ÏÎÏ ÏÎÎÎÏÎÎÏ ÎÎÏÎÏÎÎÏ ÎÏÏ "
-"ÏÎ ÎÏÏÎÎ ÎÏÎÎÏÏÎÎÎ. ÎÎÎ ÏÎÏÏ ÎÎÎÎÏÏ ÏÏÏÎÏÏ, ÎÎÏÎÎÎÎÎÎÏÎÎ ÎÎÎÏÏÏ ÎÎÏÎÎ ÏÏÎ "
-"ÎÏÏÎÎ ÎÏÎÎÏÏÎÎÎ."
+"ÎÏÎÏ ÏÏÏÏÎÏ ÎÏÎÎÎÎÏ ÎÎ ÎÎÏÎÎÎÏÎÎ ÎÎÎ ÎÎ ÎÏÏÎÎÎÏÎÎÎÏÎÏÎÎ ÏÎÏ ÎÏÎÎÏÎÏÎÎÎÎÏ "
+"ÎÎÎÎÎÎÎÎÎÎÏ ÎÎÎ ÏÏÎÏÎ ÏÎ ÎÏÏÎ ÏÎÎ ÏÎÏÎÎÎ ÎÎÎÎÎÎÎÎÎÎ. ÎÎ Soup ÎÏÎÎÎÏÎÎÎÎÏÎÎ "
+"ÏÎÎÏ ÏÎÏ ÎÎÏÎÏÎÎÏ ÏÎÏ ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÏÎÎ ÎÎ http."
+
+#: C/weatherGeonames.js.page:42(section/title)
+msgid "Creating function GeoNames"
+msgstr "ÎÎÎÎÎÏÏÎÎÎ ÏÏÎÎÏÏÎÏÎÏ geoNames"
 
-#: C/buttonbox.py.page:38(p)
+#: C/weatherGeonames.js.page:43(section/code)
+#, no-wrap
 msgid ""
-"<code>set_child_non_homogeneous(button, is_non_homogeneous)</code> sets "
-"whether the child is exempted from homogeous sizing. Default value is "
-"<code>False</code>."
+"\n"
+"function GeoNames(station) {\n"
+"  this.station = station;\n"
+"}\n"
+"\n"
+"GeoNames.prototype = {\n"
+"\n"
+"}\n"
 msgstr ""
-"Î <code>set_child_non_homogeneous(button, is_non_homogeneous)</code> ÎÏÎÎÎÎ "
-"ÎÎÎ ÏÎ ÎÏÎÎÏÏÎÎÏ ÎÎÎÎÏÎÎÏÎÎ ÎÏÏ ÏÎ ÎÎÎÎÎÎÎÏ ÎÎÎÎÎÎÏ. ÎÏÎÎÏÎÎÎÎÎÎÎÎ ÏÎÎÎ "
-"ÎÎÎÎÎ <code>False</code>."
+"\n"
+"function GeoNames(station) {\n"
+"  this.station = station;\n"
+"}\n"
+"\n"
+"GeoNames.prototype = {\n"
+"\n"
+"}\n"
 
-#: C/buttonbox.py.page:39(p)
+#: C/weatherGeonames.js.page:52(section/p)
 msgid ""
-"<code>set_spacing(spacing)</code> sets the spacing, in pixels, between the "
-"buttons of the box."
+"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 ""
-"<code>set_spacing(spacing)</code> ÎÏÎÎÎÎ ÏÎ ÎÎÎÎÎÎÎ, ÏÎ ÎÎÎÎÎÎÏÏÎÎÏÎÎÎ, "
-"ÎÎÏÎÎÏ ÏÏÎ ÎÎÏÎÏÎÏÎ ÏÎÏ ÏÎÎÎÏÎÎÏ."
-
-#: C/buttonbox.py.page:47(link)
-msgid "GtkButtonBox"
-msgstr "GtkButtonBox"
-
-#: C/buttonbox.py.page:48(link)
-msgid "GtkBox"
-msgstr "GtkBox"
+"ÎÎÏ ÎÎÎÎÎÏÏÎÎÏÎÎ ÏÎ ÏÏÎÎÏÏÎÏÎ GeoNames ÏÎÏ ÎÎ ÏÎÎÏÎÏÏÎÎ ÏÎ ÎÎÏÎ ÎÎÎÏÎÏ ÎÎÎ "
+"ÎÎÏ. ÎÎ JavaScript ÎÏÎÏÏÎÏÎÎ ÏÎ ÎÎÎÎÎÏÏÎÎÎ ÏÏÎÎÏÏÎÏÎÏÎ ÏÎÏ ÎÏÎÏÎ ÎÎÎÎ ÎÎÏÎ "
+"ÏÏÎÎ ÎÏÏÎ ÎÎÎ ÎÏÎÏÏÎÏÎ ÏÎÏ ÎÏÎÎÏÎÎÎÎÎ. ÎÏÏÏ ÎÎ ÎÎÎÎÎ ÎÎÏÎ ÏÏÎ ÎÎÎÎÏÏÏÎ {} "
+"ÏÎÏ GeoNames.prototype"
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/button.vala.page:23(None) C/button.py.page:23(None)
-#: C/button.js.page:21(None) C/button.c.page:24(None)
-msgid "@@image: 'media/button.png'; md5=8d69efbb3a0d3e043af6139b6492171c"
-msgstr "@@image: 'media/button.png'Â md5=8d69efbb3a0d3e043af6139b6492171c"
+#: C/weatherGeonames.js.page:56(section/title)
+msgid "Methods for GeoNames"
+msgstr "ÎÎÎÎÎÎÎ ÎÎÎ GeoNames"
 
-#: C/button.vala.page:7(title)
-msgid "Button (Vala)"
-msgstr "ÎÎÏÎÏÎ (Vala)"
+#: C/weatherGeonames.js.page:57(section/code)
+#, no-wrap
+msgid ""
+"\n"
+"getWeather: function(callback) {\n"
+"    var request = Soup.Message.new('GET', 'http://api.geonames.org/weatherIcaoJSON?ICAO=' + this.station + '&amp;username=demo');\n"
+"    _httpSession.queue_message(request, function(_httpSession, message) {\n"
+"      if (message.status_code !== 200) {\n"
+"        callback(message.status_code, null);\n"
+"        return;\n"
+"      }\n"
+"      var weatherJSON = request.response_body.data;\n"
+"      var weather = JSON.parse(weatherJSON);\n"
+"      callback(null, weather);\n"
+"      });\n"
+"},\n"
+"\n"
+"getIcon: function(weather){\n"
+"    switch (weather.weatherObservation.weatherCondition){\n"
+"    case \"drizzle\":\n"
+"    case \"light showers rain\":\n"
+"    case \"light rain\":\n"
+"      return \"weather-showers-scattered.svg\";\n"
+"    case \"rain\":\n"
+"      return \"weather-showers.svg\";\n"
+"    case \"light snow\":\n"
+"    case \"snow grains\":\n"
+"      return \"weather-snow.svg\";\n"
+"    }\n"
+"    switch (weather.weatherObservation.clouds){\n"
+"      case \"few clouds\":\n"
+"      case \"scattered clouds\":\n"
+"        return \"weather-few-clouds.svg\";\n"
+"      case \"clear sky\":\n"
+"        return \"weather-clear.svg\"\n"
+"      case \"broken clouds\":\n"
+"      case \"overcast\":\n"
+"        return \"weather-overcast.svg\";\n"
+"    }\n"
+"    return \"weather-fog.svg\";\n"
+"}\n"
+msgstr ""
+"\n"
+"getWeather: function(callback) {\n"
+"    var request = Soup.Message.new('GET', 'http://api.geonames.org/weatherIcaoJSON?ICAO=' + this.station + '&amp;username=demo');\n"
+"    _httpSession.queue_message(request, function(_httpSession, message) {\n"
+"      if (message.status_code !== 200) {\n"
+"        callback(message.status_code, null);\n"
+"        return;\n"
+"      }\n"
+"      var weatherJSON = request.response_body.data;\n"
+"      var weather = JSON.parse(weatherJSON);\n"
+"      callback(null, weather);\n"
+"      });\n"
+"},\n"
+"\n"
+"getIcon: function(weather){\n"
+"    switch (weather.weatherObservation.weatherCondition){\n"
+"    case \"drizzle\":\n"
+"    case \"light showers rain\":\n"
+"    case \"light rain\":\n"
+"      return \"weather-showers-scattered.svg\";\n"
+"    case \"rain\":\n"
+"      return \"weather-showers.svg\";\n"
+"    case \"light snow\":\n"
+"    case \"snow grains\":\n"
+"      return \"weather-snow.svg\";\n"
+"    }\n"
+"    switch (weather.weatherObservation.clouds){\n"
+"      case \"few clouds\":\n"
+"      case \"scattered clouds\":\n"
+"        return \"weather-few-clouds.svg\";\n"
+"      case \"clear sky\":\n"
+"        return \"weather-clear.svg\"\n"
+"      case \"broken clouds\":\n"
+"      case \"overcast\":\n"
+"        return \"weather-overcast.svg\";\n"
+"    }\n"
+"    return \"weather-fog.svg\";\n"
+"}\n"
 
-#: C/button.vala.page:18(desc) C/button.py.page:18(desc)
-#: C/button.c.page:19(desc)
-msgid "A button widget which emits a signal when clicked"
-msgstr "ÎÎÎ ÎÎÏÎÏÎ ÎÏÎÏÎÎÎÏ ÏÏÏÏÎÏÎÎÎÏ ÏÎÏ ÎÎÏÎÎÏÎÎ ÏÎÎÎ ÏÏÎÎ ÏÎÏÎÎÎÎ"
+#: C/weatherGeonames.js.page:96(section/p)
+msgid ""
+"The first method for GeoNames is getWeather and the second getIcon. In "
+"getWeather we make a http request with soup, handle errors and then parse "
+"the information from the request to form we can use it. In getIcon we simply "
+"compare the results we got from getWeather to the switch we have in order to "
+"get the icon matching current weather. Now that we have our local library "
+"ready, it's time to make use of it."
+msgstr ""
+"Î ÏÏÏÏÎ ÎÎÎÎÎÎÏ ÎÎÎ ÏÎ GeoNames ÎÎÎÎÎ Î getWeather ÎÎÎ Î ÎÎÏÏÎÏÎ Î getIcon. "
+"ÎÏÎÎ getWeather ÎÎÎÎÏÎÎ ÎÎÎ ÎÎÏÎÏÎ http ÎÎ soup, ÎÏÎÎÎÏÎÎÏÎÎ ÏÏÎÎÎÎÏÏÎ ÎÎÎ "
+"ÎÏÎÎÏÎ ÎÎÎÎÏÏÎ ÏÎÏ ÏÎÎÏÎÏÎÏÎÎÏ ÎÏÏ ÏÎÎ ÎÎÏÎÏÎ ÎÎÎ ÎÎÏÏÎ ÏÎÏ ÎÏÎÏÎÏÎÎ ÎÎ "
+"ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ. ÎÏÎ getIcon ÏÏÎÎÏÎÎÎÏÎÎ ÎÏÎÎ ÏÎ ÎÏÎÏÎÎÎÏÎÎÏÎ ÏÎÏ ÏÎÎÏÎÎÏÎÎ "
+"ÎÏÏ getWeather ÏÏÎÎ ÎÎÎÎÏÏÏÎ ÏÎÏ ÎÏÎÏÎÎ ÎÎÎ ÏÎ ÎÎÏÎ ÎÎÎÎÎÎÎÎÎÏ ÏÎÏ ÏÎÎÏÎÎÎÎÎ "
+"ÏÏÎÎ ÏÏÎÏÎÎÏÎ ÎÎÎÏÏ. ÎÏÏÎ ÏÎÏ ÎÏÎÏÎÎ ÏÎÎ ÏÎÏÎÎÎ ÎÎÏ ÎÎÎÎÎÎÎÎÎÎ ÎÏÎÎÎÎ, ÎÎÎÎÎ "
+"ÎÎÎÏÏÏ ÎÎ ÏÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ."
 
-#: C/button.vala.page:21(title)
-msgid "Button widget"
-msgstr "ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÎÏÎÏÎÎÏ"
+#: C/weatherGeonames.js.page:101(section/title)
+msgid "geonames.js"
+msgstr "geonames.js"
 
-#: C/button.vala.page:24(p) C/button.py.page:24(p)
-msgid "A button widget connected to a simple callback function."
+#: C/weatherGeonames.js.page:102(section/p)
+msgid ""
+"Here is the entire code for our local library. The main program file calls "
+"this asynchronously."
 msgstr ""
-"ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÎÏÎÏÎÎÏ ÏÏÎÎÎÎÎÎÎ ÎÎ ÎÎÎ ÎÏÎÎ ÏÏÎÎÏÏÎÏÎ ÎÏÎÎÎÎÎÎÏÎÏ."
+"ÎÎÏ ÎÎÎÎÎ ÏÎÎÏ Î ÎÏÎÎÎÎÏ ÎÎÎ ÏÎÎ ÏÎÏÎÎÎ ÎÎÏ ÎÎÎÎÎÎÎÎÎÎ. ÎÎ ÎÏÏÎÎÎ ÏÎÏ ÎÏÏÎÏÏ "
+"ÏÏÎÎÏÎÎÎÎÏÎÏ ÏÎ ÎÎÎÎÎ ÎÏÏÎÏÏÎÎÎ."
 
-#: C/button.vala.page:28(p)
+#: C/weatherGeonames.js.page:103(section/code)
+#, no-wrap
 msgid ""
-"In this sample we used the following: <link href=\"http://www.valadoc.org/gtk";
-"+-3.0/Gtk.Button.html\">Gtk.Button</link>"
+"\n"
+"const Soup = imports.gi.Soup;\n"
+"const _httpSession = new Soup.SessionAsync();\n"
+"Soup.Session.prototype.add_feature.call(_httpSession, new Soup.ProxyResolverDefault());\n"
+"\n"
+"function GeoNames(station) {\n"
+"  this.station = station;\n"
+"}\n"
+"\n"
+"GeoNames.prototype = {\n"
+"  getWeather: function(callback) {\n"
+"    var request = Soup.Message.new('GET', 'http://api.geonames.org/weatherIcaoJSON?ICAO=' + this.station + '&amp;username=demo');\n"
+"    _httpSession.queue_message(request, function(_httpSession, message) {\n"
+"      if (message.status_code !== 200) {\n"
+"        callback(message.status_code, null);\n"
+"        return;\n"
+"      }\n"
+"      var weatherJSON = request.response_body.data;\n"
+"      var weather = JSON.parse(weatherJSON);\n"
+"      callback(null, weather);\n"
+"      });\n"
+"    },\n"
+"\n"
+"  getIcon: function(weather){\n"
+"    switch (weather.weatherObservation.weatherCondition){\n"
+"    case \"drizzle\":\n"
+"    case \"light showers rain\":\n"
+"    case \"light rain\":\n"
+"      return \"weather-showers-scattered.svg\";\n"
+"    case \"rain\":\n"
+"      return \"weather-showers.svg\";\n"
+"    case \"light snow\":\n"
+"    case \"snow grains\":\n"
+"      return \"weather-snow.svg\";\n"
+"    }\n"
+"    switch (weather.weatherObservation.clouds){\n"
+"      case \"few clouds\":\n"
+"      case \"scattered clouds\":\n"
+"        return \"weather-few-clouds.svg\";\n"
+"      case \"clear sky\":\n"
+"        return \"weather-clear.svg\"\n"
+"      case \"broken clouds\":\n"
+"      case \"overcast\":\n"
+"        return \"weather-overcast.svg\";\n"
+"    }\n"
+"    return \"weather-fog.svg\";\n"
+"    }\n"
+"}\n"
+"}  "
 msgstr ""
-"ÎÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÏÎ ÏÎÏÎÎÎÏÏ: <link href=\"http://www.";
-"valadoc.org/gtk+-3.0/Gtk.Button.html\">Gtk.Button</link>"
+"\n"
+"const Soup = imports.gi.Soup;\n"
+"const _httpSession = new Soup.SessionAsync();\n"
+"Soup.Session.prototype.add_feature.call(_httpSession, new Soup.ProxyResolverDefault());\n"
+"\n"
+"function GeoNames(station) {\n"
+"  this.station = station;\n"
+"}\n"
+"\n"
+"GeoNames.prototype = {\n"
+"  getWeather: function(callback) {\n"
+"    var request = Soup.Message.new('GET', 'http://api.geonames.org/weatherIcaoJSON?ICAO=' + this.station + '&amp;username=demo');\n"
+"    _httpSession.queue_message(request, function(_httpSession, message) {\n"
+"      if (message.status_code !== 200) {\n"
+"        callback(message.status_code, null);\n"
+"        return;\n"
+"      }\n"
+"      var weatherJSON = request.response_body.data;\n"
+"      var weather = JSON.parse(weatherJSON);\n"
+"      callback(null, weather);\n"
+"      });\n"
+"    },\n"
+"\n"
+"  getIcon: function(weather){\n"
+"    switch (weather.weatherObservation.weatherCondition){\n"
+"    case \"drizzle\":\n"
+"    case \"light showers rain\":\n"
+"    case \"light rain\":\n"
+"      return \"weather-showers-scattered.svg\";\n"
+"    case \"rain\":\n"
+"      return \"weather-showers.svg\";\n"
+"    case \"light snow\":\n"
+"    case \"snow grains\":\n"
+"      return \"weather-snow.svg\";\n"
+"    }\n"
+"    switch (weather.weatherObservation.clouds){\n"
+"      case \"few clouds\":\n"
+"      case \"scattered clouds\":\n"
+"        return \"weather-few-clouds.svg\";\n"
+"      case \"clear sky\":\n"
+"        return \"weather-clear.svg\"\n"
+"      case \"broken clouds\":\n"
+"      case \"overcast\":\n"
+"        return \"weather-overcast.svg\";\n"
+"    }\n"
+"    return \"weather-fog.svg\";\n"
+"    }\n"
+"}\n"
+"}  "
 
-#: C/button.py.page:7(title)
-msgid "Button (Python)"
-msgstr "ÎÎÏÎÏÎ (Python)"
+#: C/window.c.page:7(info/title)
+msgctxt "text"
+msgid "Window (C)"
+msgstr "ÎÎÏÎÎÏÏÎ (C)"
 
-#: C/button.py.page:21(title) C/button.js.page:20(title)
-#: C/button.c.page:22(title)
-msgid "Button"
-msgstr "ÎÎÏÎÏÎ"
+#: C/window.c.page:17(info/desc) C/window.py.page:22(info/desc)
+#: C/window.vala.page:17(info/desc)
+msgid "A toplevel window which can contain other widgets"
+msgstr ""
+"ÎÎÎ ÏÎÏÎÎÏÏÎ ÎÎÏÏÎÏÎÏ ÎÏÎÏÎÎÎÏ ÏÎÏ ÎÏÎÏÎÎ ÎÎ ÏÎÏÎÎÏÎÎ ÎÎÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ"
 
-#: C/button.py.page:33(title)
-msgid "Useful methods for a Button widget"
-msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÎÏÎÏÎÎÏ"
+#: C/window.c.page:20(page/title) C/window.js.page:20(page/title)
+#: C/window.py.page:25(page/title) C/window.vala.page:20(page/title)
+msgid "Window"
+msgstr "ÎÎÏÎÎÏÏÎ"
 
-#: C/button.py.page:35(p)
+#: C/window.c.page:23(page/p)
 msgid ""
-"<code>button = Gtk.Button(label=\"Click me\")</code> could also be used "
-"create a button and set the text directly. For a general discussion of this, "
-"see <link xref=\"properties.py\">here</link>."
+"A minimal GtkApplication. Use <link xref=\"GtkApplicationWindow.c"
+"\">Application Window</link> if you need GMenu support."
 msgstr ""
-"ÎÎ <code>button = Gtk.Button(label=\"Click me\")</code> ÎÏÎÏÎÎ ÎÏÎÏÎÏ ÎÎ "
-"ÏÏÎÏÎÎÎÏÎÎÎÎÎÎ ÏÏÎ ÎÎÎÎÎÏÏÎÎÎ ÎÎÏÏ ÎÎÏÎÏÎÎÏ ÏÎÎ ÎÏÎÏÎÏ ÏÎÏ ÎÎÎÎÎÎÎÏ ÎÎÎÏÎ. "
-"ÎÎÎ ÎÎÎ ÎÎÎÎÎÎ ÏÏÎÎÏÎÏÎ ÏÎÏ, ÎÎÎÏÎ <link xref=\"properties.py\">ÎÎÏ</link>."
+"ÎÎÎ ÎÏÎÎ GtkApplication. ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ ÏÎ <link xref=\"GtkApplicationWindow."
+"c\">ÏÎÏÎÎÏÏÎ ÎÏÎÏÎÎÎÎÏ</link> ÎÎÎ ÏÏÎÎÎÎÏÏÎÏÏÎ ÏÏÎÏÏÎÏÎÎÎ GMenu."
 
-#: C/button.py.page:37(p)
+#: C/window.c.page:27(page/code)
+#, no-wrap
 msgid ""
-"<code>set_relief(Gtk.ReliefStyle.NONE)</code> sets to none the relief style "
-"of the edges of the Gtk.Button - as opposed to <code>Gtk.ReliefStyle.NORMAL</"
-"code>."
+"\n"
+"#include &lt;gtk/gtk.h&gt;\n"
+"\n"
+"static void\n"
+"activate (GtkApplication *app,\n"
+"          gpointer        user_data)\n"
+"{\n"
+"  GtkWidget *window;\n"
+"\n"
+"  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);\n"
+"\n"
+"  gtk_window_set_application (GTK_WINDOW (window), GTK_APPLICATION (app));\n"
+"  gtk_window_set_title (GTK_WINDOW (window), \"Hello GNOME\");\n"
+"\n"
+"  gtk_widget_show_all (GTK_WIDGET (window));\n"
+"}\n"
+"\n"
+"int\n"
+"main (int argc, char **argv)\n"
+"{\n"
+"  GtkApplication *app;\n"
+"  int status;\n"
+"\n"
+"  app = gtk_application_new (\"org.gtk.example\",G_APPLICATION_FLAGS_NONE);\n"
+"  g_signal_connect (app, \"activate\", G_CALLBACK (activate), NULL);\n"
+"  status = g_application_run (G_APPLICATION (app), argc, argv);\n"
+"  g_object_unref (app);\n"
+"  return status;\n"
+"}\n"
 msgstr ""
-"Î <code>set_relief(Gtk.ReliefStyle.NONE)</code> ÎÏÎÎÎÎ ÏÎ ÎÎÎÎÎÎ ÏÎÎ ÏÏÏÎ "
-"ÎÎÎÎÎÏÏÎÏ ÏÏÎ ÎÎÏÏÎ ÏÎÏ Gtk.Button - ÎÎÎÏÏ ÎÎÏÎÏÎÎÎÏÎÎ ÏÏÎ <code>Gtk."
-"ReliefStyle.NORMAL</code>."
+"\n"
+"#include &lt;gtk/gtk.h&gt;\n"
+"\n"
+"static void\n"
+"activate (GtkApplication *app,\n"
+"          gpointer        user_data)\n"
+"{\n"
+"  GtkWidget *window;\n"
+"\n"
+"  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);\n"
+"\n"
+"  gtk_window_set_application (GTK_WINDOW (window), GTK_APPLICATION (app));\n"
+"  gtk_window_set_title (GTK_WINDOW (window), \"Hello GNOME\");\n"
+"\n"
+"  gtk_widget_show_all (GTK_WIDGET (window));\n"
+"}\n"
+"\n"
+"int\n"
+"main (int argc, char **argv)\n"
+"{\n"
+"  GtkApplication *app;\n"
+"  int status;\n"
+"\n"
+"  app = gtk_application_new (\"org.gtk.example\",G_APPLICATION_FLAGS_NONE);\n"
+"  g_signal_connect (app, \"activate\", G_CALLBACK (activate), NULL);\n"
+"  status = g_application_run (G_APPLICATION (app), argc, argv);\n"
+"  g_object_unref (app);\n"
+"  return status;\n"
+"}\n"
 
-#: C/button.py.page:38(p)
-msgid ""
-"If the label of the button is a <link href=\"http://developer.gnome.org/gtk3/";
-"unstable/gtk3-Stock-Items.html\">stock icon</link>, <code>set_use_stock(True)"
-"</code> sets the label as the name of the corresponding stock icon."
-msgstr ""
-"ÎÎÎ Î ÎÏÎÎÎÏÎ ÏÎÏ ÎÎÏÎÏÎÎÏ ÎÎÎÎÎ ÎÎÎ <link href=\"http://developer.gnome.org/";
-"gtk3/unstable/gtk3-Stock-Items.html\">ÎÎÎÎÎÎÎÎÎ ÏÎÏÎÎÎÏÎÎÎÎÎÏ</link>, Î "
-"<code>set_use_stock(True)</code> ÎÏÎÎÎÎ ÏÎÎ ÎÏÎÎÎÏÎ ÏÏ ÏÎ ÏÎÎÎÎ ÏÎÏ "
-"ÎÎÏÎÏÏÎÎÏÎÏ ÎÎÎÎÎÎÎÎÎÏ ÏÎÏÎÎÎÏÎÎÎÎÎÏ."
+#: C/window.js.page:7(info/title)
+msgctxt "text"
+msgid "Window (JavaScript)"
+msgstr "ÎÎÏÎÎÏÏÎ (JavaScript)"
+
+#: C/window.js.page:17(info/desc)
+msgid "A basic window which can contain other widgets"
+msgstr "ÎÎÎ ÎÎÏÎÎÏ ÏÎÏÎÎÏÏÎ ÏÎÏ ÎÏÎÏÎÎ ÎÎ ÏÎÏÎÎÏÎÎ ÎÎÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ"
+
+#: C/window.js.page:25(td/p)
+msgid "A minimal GtkApplication"
+msgstr "ÎÎÎ ÏÏÏÏÎ GtkApplication"
 
-#: C/button.py.page:39(p)
+#: C/window.js.page:28(td/p)
 msgid ""
-"To set an image (e.g. a stock image) for the button <code>button</code>:"
+"Use <link xref=\"GtkApplicationWindow.js\">ApplicationWindow</link> if you "
+"need GMenu support."
 msgstr ""
-"ÎÎÎ ÎÏÎÏÎÏ ÎÎÎÏ ÎÎÎÏÎÎÏ (Ï.Ï. ÎÎÎ ÎÎÎÏÎÎ ÏÎÏÎÎÎÏÎÎÎÎÎÏ) ÎÎÎ ÏÎ ÎÎÏÎÏÎ "
-"<code>button</code>:"
+"ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ <link xref=\"GtkApplicationWindow.js\">ApplicationWindow</"
+"link> ÎÎÎ ÏÏÎÎÎÎÏÏÎÏÏÎ ÏÏÎÏÏÎÏÎÎÎ GMenu."
 
-#: C/button.py.page:40(code)
+#: C/window.js.page:32(page/code)
 #, no-wrap
 msgid ""
 "\n"
-"image = Gtk.Image()\n"
-"image.set_from_stock(Gtk.STOCK_ABOUT, Gtk.IconSize.BUTTON)\n"
-"button.set_image(image)"
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gio = imports.gi.Gio;\n"
+"const GLib = imports.gi.GLib;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"const Application = new Lang.Class ({\n"
+"    Name: 'Application',\n"
+"\n"
+"    //create the application\n"
+"    _init: function () {\n"
+"        this.application = new Gtk.Application ({\n"
+"            application_id: 'org.example.myapp',\n"
+"            flags: Gio.ApplicationFlags.FLAGS_NONE\n"
+"        });\n"
+"\n"
+"       this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"    },\n"
+"\n"
+"    //callback function for 'activate' signal\n"
+"    _onActivate: function () {\n"
+"\n"
+"        MyWindow = new Gtk.Window({type: Gtk.WindowType.TOPLEVEL});\n"
+"        MyWindow.title = \"Welcome to GNOME\";\n"
+"\n"
+"       /* Here are a few ways we can customize our window.\n"
+"       Try uncommenting them or changing their values! */\n"
+"        //MyWindow.set_default_size (400,200);\n"
+"        //MyWindow.set_has_resize_grip (false);\n"
+"        //MyWindow.set_opacity (0.5);\n"
+"        //MyWindow.maximize ();\n"
+"\n"
+"        //show the window and all child widgets (none in this case)\n"
+"        MyWindow.show_all();\n"
+"        this.application.add_window(MyWindow);\n"
+"    }\n"
+"});\n"
+"\n"
+"//run the application\n"
+"let app = new Application ();\n"
+"app.application.run (ARGV);\n"
 msgstr ""
 "\n"
-"image = Gtk.Image()\n"
-"image.set_from_stock(Gtk.STOCK_ABOUT, Gtk.IconSize.BUTTON)\n"
-"button.set_image(image)"
+"#!/usr/bin/gjs\n"
+"\n"
+"const Gio = imports.gi.Gio;\n"
+"const GLib = imports.gi.GLib;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"const Lang = imports.lang;\n"
+"\n"
+"const Application = new Lang.Class ({\n"
+"    Name: 'Application',\n"
+"\n"
+"    //create the application\n"
+"    _init: function () {\n"
+"        this.application = new Gtk.Application ({\n"
+"            application_id: 'org.example.myapp',\n"
+"            flags: Gio.ApplicationFlags.FLAGS_NONE\n"
+"        });\n"
+"\n"
+"       this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"    },\n"
+"\n"
+"    //callback function for 'activate' signal\n"
+"    _onActivate: function () {\n"
+"\n"
+"        MyWindow = new Gtk.Window({type: Gtk.WindowType.TOPLEVEL});\n"
+"        MyWindow.title = \"Welcome to GNOME\";\n"
+"\n"
+"       /* Here are a few ways we can customize our window.\n"
+"       Try uncommenting them or changing their values! */\n"
+"        //MyWindow.set_default_size (400,200);\n"
+"        //MyWindow.set_has_resize_grip (false);\n"
+"        //MyWindow.set_opacity (0.5);\n"
+"        //MyWindow.maximize ();\n"
+"\n"
+"        //show the window and all child widgets (none in this case)\n"
+"        MyWindow.show_all();\n"
+"        this.application.add_window(MyWindow);\n"
+"    }\n"
+"});\n"
+"\n"
+"//run the application\n"
+"let app = new Application ();\n"
+"app.application.run (ARGV);\n"
 
-#: C/button.py.page:44(p)
-msgid ""
-"You should not set a label for the button after this, otherwise it will show "
-"the label and not the image."
-msgstr ""
-"ÎÎ ÏÏÎÏÎÎ ÎÎ ÎÎÎ ÎÏÎÏÎÏÎ ÎÎÎ ÎÏÎÎÎÏÎ ÎÎÎ ÏÎ ÎÎÏÎÏÎ ÎÎÏÎ ÎÏÏ ÎÏÏÏ, ÎÎÎÎÏÏ ÎÎ "
-"ÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÏÎÎÎÏÎ ÎÎÎ ÏÏÎ ÏÎÎ ÎÎÎÏÎÎ."
+#: C/window.js.page:34(page/p)
+msgid "In this example we used the following:"
+msgstr "ÎÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎÎ ÏÎ ÏÎÏÎÎÎÏÏ:"
 
-#: C/button.py.page:45(p)
+#: C/window.js.page:39(item/p)
 msgid ""
-"If we use <code>set_focus_on_click(False)</code> the button will not grab "
-"focus when it is clicked by the mouse. This could be useful in places like "
-"toolbars, so that the keyboard focus is not removed from the main area of "
-"the application."
+"<link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Window.html";
+"\">Gtk.Window</link>"
 msgstr ""
-"ÎÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ <code>set_focus_on_click(False)</code> ÏÎ ÎÎÏÎÏÎ ÎÎÎ ÎÎ "
-"ÎÏÏÎÎÏÎÎ ÏÏÎÎ ÏÎÏÎÎÎÎ ÎÏÏ ÏÎ ÏÎÎÏÎÎÎ. ÎÏÏÏ ÎÏÎÏÎÎ ÎÎ ÎÎÎÎÎ ÏÏÎÏÎÎÎ ÏÎ ÎÎÏÎÎÏ "
-"ÏÏÏÏ ÎÏÎÎÎÎÎÎÎÎÎÎÏ, ÎÏÏÎ ÏÏÏÎ Î ÎÏÏÎÎÏÎ ÏÎÏ ÏÎÎÎÏÏÎÎÎÎÎÎÏ ÎÎ ÎÎÎ ÎÏÎÎÏÎÎÎÎ "
-"ÎÏÏ ÏÎÎ ÎÏÏÎÎ ÏÎÏÎÎÏÎ ÏÎÏ ÎÏÎÏÎÎÎÎÏ."
+"<link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Window.html";
+"\">Gtk.Window</link>"
 
-#: C/button.js.page:7(title)
-msgid "Button (JavaScript)"
-msgstr "ÎÎÏÎÏÎ (JavaScript)"
+#: C/window.py.page:7(info/title)
+msgctxt "text"
+msgid "Window (Python)"
+msgstr "ÎÎÏÎÎÏÏÎ (Python)"
 
-#: C/button.js.page:17(desc)
-msgid "A button which can be connected to other widgets"
-msgstr "ÎÎÎ ÎÎÏÎÏÎ ÏÎÏ ÎÏÎÏÎÎ ÎÎ ÏÏÎÎÎÎÎÎ ÎÎ ÎÎÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ"
+#: C/window.py.page:31(td/p)
+msgid "A minimal Gtk+ Application: a window with a title."
+msgstr "ÎÎÎ ÎÎÎÏÎÏÏÎ ÎÏÎÏÎÎÎÎ GTK+: ÎÎÎ ÏÎÏÎÎÏÏÎ ÎÎ ÏÎÏÎÎ."
 
-#: C/button.js.page:22(p)
-msgid "A button widget that changes its label when you click it."
+#: C/window.py.page:34(td/p)
+msgid ""
+"Use <link xref=\"GtkApplicationWindow.py\">Application Window</link> if you "
+"need GMenu support."
 msgstr ""
-"ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÎÏÎÏÎÎÏ ÏÎÏ ÎÎÎÎÎÎÎ ÏÎÎ ÎÏÎÎÎÏÎ ÏÎÏ ÏÏÎÎ ÏÎ ÏÎÏÎÏÎ."
-
-#: C/button.c.page:7(title)
-msgid "Button (C)"
-msgstr "ÎÎÏÎÏÎ (C)"
+"ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ <link xref=\"GtkApplicationWindow.py\">ÏÎÏÎÎÏÏÎ ÎÏÎÏÎÎÎÎÏ</"
+"link> ÎÎÎ ÏÏÎÎÎÎÏÏÎÏÏÎ ÏÏÎÏÏÎÏÎÎÎ GMenu."
 
-#: C/button.c.page:25(p)
+#: C/window.py.page:44(section/code)
+#, no-wrap
 msgid ""
-"A button widget connected to a callback function that reverses its label "
-"when clicked."
+"from gi.repository import Gtk\n"
+"import sys\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def do_activate(self):\n"
+"        # create a Gtk Window belonging to the application itself\n"
+"        window = Gtk.Window(application=self)\n"
+"        # set the title\n"
+"        window.set_title(\"Welcome to GNOME\")\n"
+"        # show the window\n"
+"        window.show_all()\n"
+"\n"
+"# create and run the application, exit with the value returned by\n"
+"# running the program\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
 msgstr ""
-"ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÎÏÎÏÎÎÏ ÏÏÎÎÎÎÎÎÎ ÎÎ ÎÎÎ ÎÏÎÎ ÏÏÎÎÏÏÎÏÎ ÎÏÎÎÎÎÎÎÏÎÏ "
-"ÏÎÏ ÎÎÏÎÏÏÏÎÏÎÎ ÏÎÎ ÎÏÎÎÎÏÎ ÏÎÏ ÏÏÎÎ ÏÎÏÎÎÎÎ."
-
-#: C/button.c.page:36(link)
-msgid "Unicode Manipulation"
-msgstr "ÎÎÎÏÎÏÎÏÏ Unicode"
-
-#: C/bug-filing.page:10(email)
-msgid "tiffany antopolski com"
-msgstr "tiffany antopolski com"
-
-#: C/bug-filing.page:18(title)
-msgid "Help make <app>GNOME Developer Tutorials</app> better"
-msgstr "ÎÎÎÎÎÏÏÎ ÎÎ ÎÎÎÎÏÎ ÎÎÎÏÏÎÏÎ ÏÎ <app>ÎÎÎÎÎÎÏÎ ÎÎÎÏÏÏÎÎÏ ÏÎÏ GNOME</app>"
+"from gi.repository import Gtk\n"
+"import sys\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def do_activate(self):\n"
+"        # create a Gtk Window belonging to the application itself\n"
+"        window = Gtk.Window(application=self)\n"
+"        # set the title\n"
+"        window.set_title(\"Welcome to GNOME\")\n"
+"        # show the window\n"
+"        window.show_all()\n"
+"\n"
+"# create and run the application, exit with the value returned by\n"
+"# running the program\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
 
-#: C/bug-filing.page:21(title)
-msgid "Report a bug or suggest an improvement"
-msgstr "ÎÎÎÏÎÏÎ ÏÏÎÎÎÎÏÎÏ Î ÏÏÏÏÎÏÎ ÎÎÎÏÎÏÏÎÏ"
+#: C/window.py.page:49(section/title)
+msgid "Useful methods for a Window widget"
+msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÏÎÏÎÎÏÏÎÏ"
 
-#: C/bug-filing.page:22(p)
+#: C/window.py.page:50(section/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/\"/>."
+"<code>window = Gtk.Window(application=self, title=\"Welcome to GNOME\")</"
+"code> sets the title as well, without the need for the line <code>window."
+"set_title(\"Welcome to GNOME\")</code>. For a general discussion of this, "
+"see <link xref=\"properties.py\">here</link>."
 msgstr ""
-"ÎÎ <app>ÎÎÎÎÎÎÏÎ ÎÎÎÏÏÏÎÎÏ ÏÎÏ GNOME</app> ÏÏÎÏÎÏÎÏÎÏÎÎ ÎÏÏ ÎÎÎ ÎÎÎÎÎÎÏÎÎÎ "
-"ÎÎÎÎÏÏÎÏÎ. ÎÎÏÎÏÏÎ ÎÎÎÎÎÎÏÎÏÎÎÎÎÎ ÎÎ ÏÏÎÎÎÏÎÏÏÎÏÎ. ÎÎÎ ÏÎÏÎÏÎÏÎÏÎÏÎ ÎÎÎ "
-"ÏÏÏÎÎÎÎÎ ÎÏÎÏÎÎÏÎ ÎÎ ÏÏÎÎÎÎÏÎ ÎÎÎ <em>ÎÎÎÏÎÏÎ ÏÏÎÎÎÎÏÎÏ</em>. ÎÎÎ ÏÏÎÎÎÎÎ "
-"ÏÏÎÎÎÎÏÎÏ ÏÎÎÎÎÎÎÏÎ ÏÏÎ <link href=\"https://bugzilla.gnome.org/\"/>."
+"<code>window = Gtk.Window(application=self, title=\"Welcome to GNOME\")</"
+"code> ÎÏÎÎÎÎ ÏÎÎ ÏÎÏÎÎ ÎÏÎÏÎÏ, ÏÏÏÎÏ ÏÎÎ ÎÎÎÎÎÎ ÎÎÎ ÏÎ ÎÏÎÎÎÎ <code>window."
+"set_title(\"Welcome to GNOME\")</code>. ÎÎÎ ÎÎÎ ÎÎÎÎÎÎ ÏÏÎÎÏÎÏÎ ÏÎÏ, ÎÎÎÏÎ "
+"<link xref=\"properties.py\">ÎÎÏ</link>."
+
+#: C/window.vala.page:7(info/title)
+msgctxt "text"
+msgid "Window (Vala)"
+msgstr "ÎÎÏÎÎÏÏÎ (Vala)"
 
-#: C/bug-filing.page:25(p)
+#: C/window.vala.page:25(td/p)
+msgid "The simplest Gtk.Application"
+msgstr "ÎÎÎ ÎÏÎÎÏÏÏÎÏÎ ÎÏÎÏÎÎÎÎ ÏÎ Gtk"
+
+#: C/window.vala.page:28(td/p)
 msgid ""
-"This is a bug tracking system where users and developers can file details "
-"about bugs, crashes and request enhancements."
+"Use <link xref=\"GtkApplicationWindow.vala\">Application Window</link> if "
+"you need GMenu support."
 msgstr ""
-"ÎÏÏÏ ÎÎÎÎÎ ÎÎÎ ÏÏÏÏÎÎÎ ÎÎÎÏÎÎÏÏÎÏ ÏÏÎÎÎÎÏÏÎ ÏÏÎÏ ÏÏÎÏÏÎÏ ÎÎÎ ÏÏÎÎÏÎÎÎÎÏÎÏÏÎÏ "
-"ÎÏÎÏÎÏÎ ÎÎ ÎÏÏÎÎÎÎÎÏÎÏÎ ÎÎÏÏÎÎÎÏÎÎÎÏ ÎÎÎ ÏÏÎÎÎÎÏÎ, ÎÎÏÎÏÏÎÏÏÎÎÏ ÎÎÎ ÎÎÏÎÎÎÏÎ "
-"ÎÎÎÏÎÏÏÎÏÎ."
+"ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ <link xref=\"GtkApplicationWindow.vala\">ÏÎÏÎÎÏÏÎ ÎÏÎÏÎÎÎÎÏ</"
+"link> ÎÎÎ ÏÏÎÎÎÎÏÏÎÏÏÎ ÏÏÎÏÏÎÏÎÎÎ GMenu."
 
-#: C/bug-filing.page:28(p)
+#: C/window.vala.page:32(page/code)
+#, no-wrap
 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."
+"/* This is the application. */\n"
+"public class Application : Gtk.Application {\n"
+"\n"
+"\t/* Constructor */\n"
+"\tpublic Application () {\n"
+"\t\tObject (application_id: \"org.example.window\");\n"
+"\t}\n"
+"\n"
+"\t/* Override the 'activate' signal of GLib.Application,\n"
+"\t * which is inherited by Gtk.Application. */\n"
+"\tpublic override void activate () {\n"
+"\n"
+"\t\tvar window = new Gtk.Window ();\n"
+"\t\twindow.title = \"Welcome to GNOME\";\n"
+"\n"
+"\t\t/* The following 3 lines are included here to introduce\n"
+"\t\t * you to ways you can adjust the toplevel window to suit\n"
+"\t\t * your needs.  Uncomment them to see what they do.\n"
+"\t\t */\n"
+"\n"
+"\t\t//window.border_width = 10;\n"
+"\t\t//window.set_default_size (350, 70);\n"
+"\t\t//window.window_position = Gtk.WindowPosition.CENTER;\n"
+"\n"
+"\t\t/* Add the window to this application. */\n"
+"\t\tthis.add_window (window);\n"
+"\n"
+"\t\t/* Show the window. */\n"
+"\t\twindow.show ();\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* The main function creates the application and runs it.*/\n"
+"int main (string[] args) {\n"
+"\tvar app = new Application ();\n"
+"\treturn app.run (args);\n"
+"}\n"
 msgstr ""
-"ÎÎÎ ÎÎ ÏÏÎÎÎÏÎÏÏÎÏÎ ÏÏÎÎÎÎÏÏÎÏÏÎ ÎÎÎÎ ÎÎÎÎÏÎÎÏÎÏ ÏÎÏ ÎÎ ÏÎÏ ÎÏÏÎÎ ÏÎ "
-"ÎÏÎÎÏÏÏÎÏÎ ÎÎ ÎÏÎÎÏÎÏÎÏÎ ÏÏÏÏÎÎÏÎ ÏÎ ÎÏÏÎÎÎ ÏÏÎÎÎÎÏÏÎ ÎÎÎ ÎÎ ÏÏÎÎÎÎÏÎÏÎ. "
-"ÎÏÎÏÎÏ, ÏÏÎÎÎÎÎÏÎÎ ÎÎ ÎÎÏÎÏÏÏÎÎÎÎÏÎ ÎÏÏÎ ÏÏÏÎ ÎÎ ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÏÏÏÎÏÏÎ "
-"ÎÎÎÎÎÏÏÏÎÎÏ ÎÎÎÎÏÏÎÎÎÎÎ ÎÎÎ ÏÎÎ ÎÎÏÎÏÏÎÏÎ ÏÎÏ ÏÏÎÎÎÎÏÏÏ ÏÎÏ. ÎÎÎ ÎÎÎ ÎÏÎÏÎ "
-"ÎÎÎ ÎÎÎ ÎÎÎÎÏÎÎÏÎÏ, ÏÎÏÎÏÏÎ ÎÏÎÎ ÏÏÎ ÏÏÎÎÎÏÎÎ <gui>ÎÎÎÏ ÎÎÎÎÏÎÎÏÎÏÏ</gui> "
-"ÎÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎ ÎÎÎÎ."
+"/* This is the application. */\n"
+"public class Application : Gtk.Application {\n"
+"\n"
+"\t/* Constructor */\n"
+"\tpublic Application () {\n"
+"\t\tObject (application_id: \"org.example.window\");\n"
+"\t}\n"
+"\n"
+"\t/* Override the 'activate' signal of GLib.Application,\n"
+"\t * which is inherited by Gtk.Application. */\n"
+"\tpublic override void activate () {\n"
+"\n"
+"\t\tvar window = new Gtk.Window ();\n"
+"\t\twindow.title = \"Welcome to GNOME\";\n"
+"\n"
+"\t\t/* The following 3 lines are included here to introduce\n"
+"\t\t * you to ways you can adjust the toplevel window to suit\n"
+"\t\t * your needs.  Uncomment them to see what they do.\n"
+"\t\t */\n"
+"\n"
+"\t\t//window.border_width = 10;\n"
+"\t\t//window.set_default_size (350, 70);\n"
+"\t\t//window.window_position = Gtk.WindowPosition.CENTER;\n"
+"\n"
+"\t\t/* Add the window to this application. */\n"
+"\t\tthis.add_window (window);\n"
+"\n"
+"\t\t/* Show the window. */\n"
+"\t\twindow.show ();\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* The main function creates the application and runs it.*/\n"
+"int main (string[] args) {\n"
+"\tvar app = new Application ();\n"
+"\treturn app.run (args);\n"
+"}\n"
 
-#: C/bug-filing.page:31(p)
+#: C/window.vala.page:38(item/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."
+"The widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html";
+"\">Gtk.Window</link>"
 msgstr ""
-"ÎÏÎÎÏ ÎÏÎÎÏÎÏÎÏÎ ÎÎÎÎ ÎÎÎÎÏÎÎÏÎÏ, ÎÎÎÎ ÏÏÎ <guiseq><gui>ÎÏÎÏÏÎÎÎ ÏÏÎÎÎÎÏÎÏ</"
-"gui><gui>ÏÎÎ</gui><gui>gnome-devel-docs</gui></guiseq>. ÎÏÎÎ ÏÎÎ ÎÎÎÏÎÏÎ "
-"ÏÏÎÎÎÎÏÎÏ, ÏÎÏÎÎÎÎÏ ÎÎÎÎÎÏÏÎ ÏÎ <link href=\"https://bugzilla.gnome.org/page.";
-"cgi?id=bug-writing.html\">ÎÏÎÎÎÎÏ ÎÎÎÎÎÏÎ ÎÎÎ ÏÏÎÎÏÎÏÎ ÏÏÎÎÎÎÏÎÏ</link> ÎÎÎ "
-"ÏÎÏÎÎÎÎÏ <link href=\"https://bugzilla.gnome.org/browse.cgi?product=gnome-";
-"games\">ÏÎÏÎÎÎÎÎÎÎÏÎ</link> ÎÎÎ ÎÎ ÎÎÎÏÎ ÎÎ ÎÎÎ ÏÏÎÏÏÎÎ."
+"ÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.";
+"html\">Gtk.Window</link>"
 
-#: C/bug-filing.page:35(p)
+#: C/window.vala.page:40(item/p)
 msgid ""
-"To file your bug, choose the component <gui>platform-demos</gui> in the "
-"<gui>Component</gui> menu."
+"The enum <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.WindowPosition.html";
+"\">Gtk.WindowPosition</link>"
 msgstr ""
-"ÎÎÎ ÎÏÎÏÏÎÎÎ ÏÎÏ ÏÏÎÎÎÎÏÏÏ ÏÎÏ, ÎÏÎÎÎÎÏÎ ÏÎ ÏÏÎÎÏÎÎÎ <gui>platform-demos</"
-"gui> ÏÏÎ ÎÎÎÎÏ <gui>ÏÏÎÎÏÎÎÎ</gui>."
+"Î ÎÏÎÎÎÎÏÎ <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.WindowPosition.";
+"html\">Gtk.WindowPosition</link>"
 
-#: C/bug-filing.page:38(p)
+#: C/window.vala.page:42(item/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>."
+"The method <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.";
+"set_default_size.html\">set_default_size</link>"
 msgstr ""
-"ÎÎÎ ÎÎÏÎÏÎ ÎÎÎ ÎÎÎ ÏÎÏÎÎÏÎÏÎÏÏÎÎÏ, ÎÏÎÎÎÎÏÎ <gui>ÎÎÎÏÎÏÏÎ</gui> ÏÏÎ ÎÎÎÎÏ "
-"<gui>ÏÎÎÎÏÏÏÎÏÎ</gui>. ÎÏÎÏÎÎÏÏÏÏÎ ÏÎÏ ÎÎÏÏÎÏÎÏ ÏÎÏÎÎÎÏÎ ÎÎÎ ÏÎÏÎÎÏÎÏÎ ÎÎÎ "
-"ÎÎÎÎ <gui>ÏÏÎÎÎÎÎ</gui>."
+"Î ÎÎÎÎÎÎÏ <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.";
+"set_default_size.html\">set_default_size</link>"
 
-#: C/bug-filing.page:42(p)
+#: C/window.vala.page:44(item/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!"
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Container.border_width.html";
+"\">border_width</link>"
 msgstr ""
-"ÎÏÎÎ ÎÎÎÏÎÏÎ ÏÎÏ ÎÎ ÎÎÎÎÎ ÎÎÎÏ ÎÏÎÎÎÏÏ ID ÎÎÎ Î ÎÎÏÎÏÏÎÏÎ ÏÎÏ ÎÎ ÎÎÎÎÎÏÏÎÎÎ "
-"ÏÏÎÎ ÎÎ ÎÏÎÎÎÏÎÎÏÏÎÎ. ÎÏÏÎÏÎÏÏÎÏÎÎ ÎÎÎ ÏÎ ÎÎÎÎÎÎÎ ÏÎÏ ÎÎ ÎÎÎÎÏÎÎ ÏÎ "
-"<app>ÎÎÎÎÎÎÏÎ ÎÎÎÏÏÏÎÎÏ ÏÎÏ GNOME</app> ÎÎÎÏÏÎÏÎ!"
-
-#: C/beginner.vala.page:8(title)
-msgid "Beginner Tutorials (Vala)"
-msgstr "ÎÎÎÎÎÎÏÎ ÎÏÏÎÏÎÏÎ (Vala)"
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Container.border_width.html";
+"\">border_width</link>"
 
-#: C/beginner.vala.page:12(desc) C/beginner.c.page:12(desc)
+#: C/window.vala.page:46(item/p)
 msgid ""
-"A beginner's guide to GUI programming using GTK+, including code samples and "
-"practice exercises."
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.window_position.html";
+"\">window_position</link>"
 msgstr ""
-"ÎÎÎÏ ÎÎÎÎÏÏ ÎÏÏÎÏÎÏÎ ÏÏÎÎ ÏÏÎÎÏÎÎÎÎÏÎÏÎÏ GUI ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ GTK+, "
-"ÏÏÎÏÎÏÎÎÎÎÎÎÎÎÎ ÎÎÎÎÎÎÏÎ ÎÏÎÎÎÎ ÎÎÎ ÏÏÎÎÏÎÎÎÏ ÎÏÎÎÏÎÎÏ."
+"<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.window_position.html";
+"\">window_position</link>"
 
-#: C/beginner.vala.page:19(title) C/beginner.c.page:20(title)
-msgid "0 Beginner's Tutorials"
-msgstr "0 ÎÎÎÎÎÎÏÎ ÎÏÏÎÏÎÏÎ"
+#~ msgid "More scrolling"
+#~ msgstr "ÎÎÏÎÏÏÏÏÎÏÎ ÎÏÎÎÏÎ"
 
-#: C/beginner.vala.page:21(p) C/beginner.c.page:22(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 ""
-"ÎÎ ÎÎÎ ÎÏÏÎ ÏÎ ÎÎÎÎÎÎÏÎ ÏÏÎÎÎÎÏÏÎÎÎÎ ÎÎÎ ÎÏÏÎÏÎÎÏÏ, ÎÎÎ ÎÏÎÏÎÏÎÎ ÎÎ "
-"ÎÎÎÏÏÎÏÎÎ ÏÎÎ ÏÎ ÎÎÏÎÎÎ. ÎÏÎÎ ÎÎ ÏÏÎÏÏÎÎÎÏÎÏÎ ÎÎ ÏÎÏÎÎÎÎÎÏÎÎÏÎÏÎ ÎÏÏÎ ÏÎ "
-"ÎÎÎÎÎÎÏÎ, ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎÎÎÏÎÎÎÏÎ ÎÎ ÏÎÏ ÏÎÏÎÎÎÏÏ ÎÎÎÎÎÎÏ:"
+#~ msgid "\"scrollbar.py\""
+#~ msgstr "\"scrollbar.py\""
 
-#: C/beginner.vala.page:23(p) C/beginner.c.page:24(p)
-msgid "Object oriented programming"
-msgstr "ÎÎÏÎÎÎÎÎÎÎÎÏÏÏÎÏÎÏ ÏÏÎÎÏÎÎÎÎÏÎÏÎÏÏ"
+#~ msgid "Custom widget"
+#~ msgstr "ÎÏÎÏÎÏÎÎÏÎÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ"
 
-#: C/beginner.vala.page:24(p)
-msgid "The Vala programming language:"
-msgstr "Î ÎÎÏÏÏÎ ÏÏÎÎÏÎÎÎÎÏÎÏÎÎÏ Vala:"
+#~ msgid "\"widget.py\""
+#~ msgstr "\"widget.py\""
 
-#: C/beginner.vala.page:26(link)
-msgid "The Vala Tutorial"
-msgstr "ÎÎ ÎÎÎÎÎÎ Vala"
+#~ msgid "Some theory to help you"
+#~ msgstr "ÎÎÏÎÎÎ ÎÎÏÏÎÎ ÎÎÎ ÎÎÎÎÎÎÎ"
 
-#: C/beginner.vala.page:27(link)
-msgid "Sample Vala code"
-msgstr "ÎÎÎÎÎÎ ÎÏÎÎÎÎ Vala"
+#~ msgid "tiffany antopolski gmail com"
+#~ msgstr "tiffany antopolski gmail com"
 
-#: C/beginner.vala.page:36(title) C/beginner.js.page:36(title)
-#: C/beginner.c.page:33(title)
-msgid "Tutorials"
-msgstr "ÎÎÎÎÎÎÏÎ"
+#~ msgid "Gtk.Application"
+#~ msgstr "ÎÏÎÏÎÎÎÎ Gtk"
 
-#: C/beginner.vala.page:40(title) C/beginner.py.page:27(title)
-#: C/beginner.js.page:40(title) C/beginner.c.page:37(title)
-msgid "Code samples"
-msgstr "ÎÎÎÎÎÎÏÎ ÎÏÎÎÎÎ"
+#~ msgid "border_width"
+#~ msgstr "border_width"
 
-#: C/beginner.vala.page:45(p)
-msgid "Copy and paste the code into <var>filename</var>.vala"
-msgstr "ÎÎÏÎÎÏÎÏÎ ÎÎÎ ÎÏÎÎÏÎÎÎÏÎ ÏÎÏ ÎÏÎÎÎÎ ÏÏÎ <var>filename</var>.vala"
+#~ msgid "window_position"
+#~ msgstr "window_position"
 
-#: 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>filename</var>.vala"
+#~ msgid "mmcasetti gmail com"
+#~ msgstr "mmcasetti gmail com"
 
-#: C/beginner.vala.page:48(screen) C/beginner.c.page:46(screen)
-#: C/beginner.c.page:60(screen)
-#, no-wrap
-msgid "./<var>filename</var>"
-msgstr "./<var>filename</var>"
+#~ msgid "GtkApplication"
+#~ msgstr "GtkApplication"
 
-#: C/beginner.vala.page:52(title) C/beginner.py.page:29(title)
-#: C/beginner.js.page:49(title) C/beginner.c.page:63(title)
-msgid "Windows"
-msgstr "ÎÎÏÎÎÏÏÎ"
+#~ msgid "GtkWindow"
+#~ msgstr "GtkWindow"
 
-#: C/beginner.vala.page:55(title) C/beginner.py.page:32(title)
-#: C/beginner.js.page:51(title) C/beginner.c.page:66(title)
-msgid "Display widgets"
-msgstr "ÎÎÏÎÎÎÏÎ ÎÏÎÏÎÎÏÎ ÏÏÏÏÎÏÎÎÏÎ"
+#~ msgid "jewelfox fursona net"
+#~ msgstr "jewelfox fursona net"
 
-#: C/beginner.vala.page:57(title) C/beginner.py.page:34(title)
-#: C/beginner.js.page:53(title) C/beginner.c.page:68(title)
-msgid "Buttons and toggles"
-msgstr "ÎÎÏÎÏÎÎ ÎÎÎ ÎÎÎÎÎÎÎÎÏ"
+#~ msgid "Gtk.Window"
+#~ msgstr "ÎÎÏÎÎÏÏÎ Gtk"
 
-#: C/beginner.vala.page:59(title) C/beginner.py.page:36(title)
-#: C/beginner.js.page:55(title) C/beginner.c.page:70(title)
-msgid "Numeric and text data entry"
-msgstr "ÎÎÏÎÏÏÏÎÏÎ ÎÎÎÎÎÎÎÏÎ ÎÏÎÎÎÎÏÎÎÏÎ ÎÎÎ ÎÎÎÎÎÎÎÏ"
+#~ msgid "ihmis suski gmail com"
+#~ msgstr "ihmis suski gmail com"
 
-#: C/beginner.vala.page:61(title) C/beginner.py.page:38(title)
-#: C/beginner.js.page:57(title) C/beginner.c.page:72(title)
-msgid "Multiline text editor"
-msgstr "ÎÏÎÎÎÏÎÎÏÏÎÏ ÎÎÎÎÎÎÎÏ ÏÎÎÎÎÏÎÏÎ ÎÏÎÎÎÏÎ"
+#~ msgid "Creating function geoNames"
+#~ msgstr "ÎÎÎÎÎÏÏÎÎÎ ÏÏÎÎÏÏÎÏÎÏ geoNames"
 
-#: C/beginner.vala.page:63(title) C/beginner.py.page:40(title)
-#: C/beginner.js.page:59(title) C/beginner.c.page:74(title)
-msgid "Menu, combo box and toolbar widgets"
-msgstr "ÎÎÎÎÏ, ÏÏÎÎÎÏÎ ÏÎÎÎÏÎÎ ÎÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÏÎÎÎÎÎÎÎÎÎÎÏ"
+#~ msgid "Methods for geoNames"
+#~ msgstr "ÎÎÎÎÎÎÎ ÎÎÎ geoNames"
 
-#: C/beginner.vala.page:65(title) C/beginner.py.page:42(title)
-#: C/beginner.js.page:61(title) C/beginner.c.page:76(title)
-msgid "TreeView widget"
-msgstr "ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ TreeView"
+#~ msgid "Autotools"
+#~ msgstr "Autotools"
 
-#: C/beginner.vala.page:67(title) C/beginner.py.page:44(title)
-#: C/beginner.js.page:63(title) C/beginner.c.page:78(title)
-msgid "Selectors"
-msgstr "ÎÏÎÎÎÎÎÎÏ"
+#~ msgid "weatherapp.js"
+#~ msgstr "weatherapp.js"
 
-#: C/beginner.vala.page:68(title) C/beginner.py.page:45(title)
-#: C/beginner.js.page:64(title) C/beginner.c.page:79(title)
-msgid "File selectors"
-msgstr "ÎÏÎÎÎÎÎÎÏ ÎÏÏÎÎÏÎ"
+#~ msgid "$"
+#~ msgstr "$"
 
-#: C/beginner.vala.page:70(title) C/beginner.py.page:47(title)
-#: C/beginner.js.page:66(title) C/beginner.c.page:81(title)
-msgid "Font selectors"
-msgstr "ÎÏÎÎÎÎÎÎÏ ÎÏÎÎÎÎÏÎÏÎÎÏÏÎ"
+#~ msgid "GJS_PATH=`pwd` gjs weatherapp.js"
+#~ msgstr "GJS_PATH=`pwd` gjs weatherapp.js"
 
-#: C/beginner.vala.page:72(title) C/beginner.py.page:49(title)
-#: C/beginner.js.page:68(title) C/beginner.c.page:83(title)
-msgid "Color Selectors"
-msgstr "ÎÏÎÎÎÎÎÎÏ ÏÏÏÎÎÏÎÏ"
+#~ msgid "mdhillca gmail com"
+#~ msgstr "mdhillca gmail com"
 
-#: C/beginner.vala.page:75(title) C/beginner.py.page:52(title)
-#: C/beginner.js.page:71(title) C/beginner.c.page:86(title)
-msgid "Layout containers"
-msgstr "ÎÎÏÎÎÎÏÎÏ ÎÎÎÏÎÎÎÏ"
+#~ msgid "GtkTreeView"
+#~ msgstr "GtkTreeView"
 
-#: C/beginner.vala.page:79(title) C/beginner.py.page:56(title)
-#: C/beginner.js.page:75(title) C/beginner.c.page:90(title)
-msgid "Scrolling"
-msgstr "ÎÏÎÎÏÎ"
+#~ msgid "GtkTreeModel"
+#~ msgstr "GtkTreeModel"
 
-#: C/beginner.vala.page:81(title) C/beginner.py.page:58(title)
-#: C/beginner.js.page:77(title) C/beginner.c.page:92(title)
-msgid "Miscellaneous"
-msgstr "ÎÎÎÏÎÏÎ"
+#~ msgid "GtkTreeStore"
+#~ msgstr "GtkTreeStore"
 
-#: C/beginner.py.page:8(title)
-msgid "Gtk Widget Sample Code and Tutorials (Python)"
-msgstr "ÎÎÎÎÎÎ ÎÏÎÎÎÎ ÎÏÎÏÎÎÎÏ ÏÏÏÏÎÏÎÎÎÏ Gtk ÎÎÎ ÎÎÎÎÎÎÏÏÎ (Python)"
+#~ msgid "GtkCellRendererText"
+#~ msgstr "GtkCellRendererText"
 
-#: C/beginner.py.page:12(desc)
-msgid ""
-"A guide to GUI programming using GTK+, including code samples and practice "
-"exercises."
-msgstr ""
-"ÎÎÎÏ ÎÎÎÎÏÏ ÏÏÎÎ ÏÏÎÎÏÎÎÎÎÏÎÏÎÏ GUI ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ GTK+, ÏÏÎÏÎÏÎÎÎÎÎÎÎÎÎÏÎÏ "
-"ÎÎÎÎÎÎÏÎ ÎÏÎÎÎÎ ÎÎÎ ÏÏÎÎÏÎÎÎÏ ÎÏÎÎÏÎÎÏ."
+#~ msgid "GtkTreeViewColumn"
+#~ msgstr "GtkTreeViewColumn"
 
-#: C/beginner.py.page:19(title)
-msgid "Gtk Widget Sample Code and Tutorials"
-msgstr "ÎÎÎÎÎÎ ÎÏÎÎÎÎ ÎÏÎÏÎÎÎÏ ÏÏÏÏÎÏÎÎÎÏ Gtk ÎÎÎ ÎÎÎÎÎÎÏÏÎ"
+#~ msgid "Gtk.TreeView"
+#~ msgstr "Gtk.TreeView"
 
-#: C/beginner.py.page:21(p)
-msgid ""
-"If you are a beginner and you would like a tutorial to guide you step by "
-"step in an exploration of what you can do with GTK+ 3, you should go to the "
-"<link xref=\"tutorial.py\"/> page. If you are looking for a specific widget, "
-"you can find it in the sections below."
-msgstr ""
-"ÎÎÎ ÎÎÏÎÏÏÎ ÎÏÏÎÏÎÎÏ ÎÎÎ ÎÎ ÎÎÎÎÏÎ ÎÎÎ ÎÎÎÎÎÎ ÎÎ ÏÎÏ ÎÎÎÎÎÎÎÎÏÎÎ ÎÎÎÎ-ÎÎÎÎ "
-"ÏÎ ÎÎÎ ÎÎÎÏÎÏÎÎÏÎ ÏÎÏ ÏÎ ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÎÏÎ ÎÎ ÏÎ GTK+ 3, ÎÎ ÏÏÎÏÎÎ ÎÎ ÏÎÏÎ "
-"ÏÏÎ ÏÎÎÎÎÎ <link xref=\"tutorial.py\"/>. ÎÎÎ ÏÎÏÎÎÏÎ ÎÎÎ ÎÎÎ ÏÏÎÎÎÎÏÎÎÎÎÎ "
-"ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ, ÎÏÎÏÎÎÏÎ ÎÎ ÏÎ ÎÏÎÎÏÎ ÏÏÎÏ ÏÎÏÎÎÎÏÏ ÎÎÏÏÎÏÎÏ."
+#~ msgid "Gtk.ListStore"
+#~ msgstr "Gtk.ListStore"
 
-#: C/beginner.js.page:15(desc)
-msgid ""
-"A beginner's guide to writing GNOME applications in JavaScript, including "
-"code samples and practice exercises."
-msgstr ""
-"ÎÎÎÏ ÎÎÎÎÏÏ ÎÏÏÎÏÎÏÎ ÏÏÎ ÏÏÎÎÏÎÏÎ ÎÏÎÏÎÎÎÏÎ GNOME ÏÎ JavaScript, "
-"ÏÏÎÏÎÏÎÎÎÎÎÎÎÎÎÏÎÏ ÎÎÎÎÎÎÏÎ ÎÏÎÎÎÎ ÎÎÎ ÏÏÎÎÏÎÎÎÏ ÎÏÎÎÏÎÎÏ."
+#~ msgid "Gtk.TreeSelection"
+#~ msgstr "Gtk.TreeSelection"
 
-#: C/beginner.js.page:18(title)
-msgid "0 Beginner's tutorials and samples"
-msgstr "0 ÎÎÎÎÎÎÏÎ ÎÎÎ ÏÎÏÎÎÎÎÎÎÎÏÎ ÎÏÏÎÏÎÏÎ"
+#~ msgid "GtkListStore"
+#~ msgstr "GtkListStore"
 
-#: C/beginner.js.page:20(p)
-#| msgid ""
-#| "JavaScript is one of the most popular programming languages on the web. "
-#| "It's not just for the web, though. If you have even a basic understanding "
-#| "of JavaScript, you can write full-fledged applications for GNOME. <link "
-#| "href=\"https://live.gnome.org/GnomeDocuments\";>GNOME Documents</link> is "
-#| "written in JavaScript, and so is <link href=\"https://live.gnome.org/";
-#| "GnomeShell/Tour\">GNOME Shell,</link> the most basic part of GNOME."
-msgid ""
-"JavaScript is one of the most popular programming languages on the web. It's "
-"not just for the web, though. If you have even a basic understanding of "
-"JavaScript, you can write full-fledged applications for GNOME. <link href="
-"\"https://live.gnome.org/GnomeDocuments\";>GNOME Documents</link> is written "
-"in JavaScript, and so is <link href=\"https://live.gnome.org/GnomeShell/Tour";
-"\">GNOME Shell</link>, the most basic part of GNOME."
-msgstr ""
-"Î JavaScript ÎÎÎÎÎ ÎÎÎ ÎÏÏ ÏÎÏ ÏÎÎ ÎÎÎÎÏÎÎÎÎÏ ÎÎÏÏÏÎÏ ÏÏÎÎÏÎÎÎÎÏÎÏÎÎÏ ÏÏÎÎ "
-"ÎÏÏÏ. ÎÎÎ ÎÎÎÎÎ ÎÏÎÎ ÎÎÎ ÏÎÎ ÎÏÏÏ, ÏÎÏÏ. ÎÎÎ ÎÏÎÏÎ ÎÎÏÎÎ ÎÎÎ ÎÎÏÎÎÎ "
-"ÎÎÏÎÎÏÎÏÎ ÏÎÏ JavaScript, ÎÏÎÏÎÎÏÎ ÎÎ ÎÏÎÏÎÏÎ ÏÎÎÏÎÎÏ ÎÏÎÏÎÎÎÎÏ ÎÎÎ ÏÎ "
-"GNOME. <link href=\"https://live.gnome.org/GnomeDocuments\";>ÎÎÎÏÎÏÎ GNOME</"
-"link> ÎÎÎÎÎ ÎÏÎÎÎÎÎÎ ÏÎ JavaScript ÎÎÎ ÎÏÏÎ ÎÎÎÎÎ ÏÎ <link href=\"https://";
-"live.gnome.org/GnomeShell/Tour\">ÎÎÎÏÏÎÏ GNOME</link>, ÏÎ ÏÎÎ ÎÎÏÎÎÏ ÎÎÏÎÏ "
-"ÏÎÏ GNOME."
+#~ msgid "pygobject - Python bindings for GObject Introspection"
+#~ msgstr "pygobject - ÏÏÎÎÎÏÎÎÏ Python ÎÎÎ ÎÏÏÎÎÎÎÎÏÎ GObject"
 
-#: C/beginner.js.page:21(p)
-msgid ""
-"GNOME Shell is what you see when you click on \"Activities\" in the top-left "
-"corner of your screen. It also controls the clock and the rest of the top "
-"panel. Besides showing how you to write GNOME applications, these tutorials "
-"will also show you how to use JavaScript to write GNOME Shell extensions, "
-"which give it new features or change the way it does things."
-msgstr ""
-"ÎÎ ÎÎÎÏÏÎÏ GNOME ÎÎÎÎÎ ÎÏÏÏ ÏÎÏ ÎÎÎÏÎÏÎ ÏÏÎÎ ÏÎÏÎÏÎ ÏÏÎÏ \"Activities\" ÏÏÎÎ "
-"ÎÏÎÎÏ ÎÏÎÏÏÎÏÎ ÎÏÎÎÎ ÏÎÏ ÎÎÏÎÎÏ ÏÎÏ. ÎÎÎÎÏÎÎ ÎÏÎÏÎÏ ÏÎ ÏÎÎÏÎ ÎÎÎ ÏÎ ÏÏÏÎÎÎÏÎ "
-"ÏÎÏ ÏÎÎÏ ÏÎÎÎÏÎÎÏ. ÎÏÎÏÎÎÎÎ ÎÎÎÏÎÎÎÏÎÏ ÏÎÏ ÏÏÏ ÎÎ ÎÏÎÏÎÏÎ ÎÏÎÏÎÎÎÎÏ GNOME, "
-"ÎÏÏÎ ÏÎ ÎÎÎÎÎÎÏÎ ÎÎ ÏÎÏ ÎÎÎÎÎÏÎ ÎÏÎÏÎÏ ÏÏÏ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ JavaScript ÎÎÎ "
-"ÎÎ ÎÏÎÏÎÏÎ ÎÏÎÎÏÎÏÎÎÏ ÎÎÎÏÏÎÏÏ GNOME, ÏÎÏ ÏÎÏ ÎÎÎÎÏÎ ÎÎÎ ÎÎÏÏÎÏÎÎÏÎ Î "
-"ÎÎÎÎÎÎÏÎ ÏÎÎ ÏÏÏÏÎ ÏÎÏ ÎÎÎÎÎ ÏÏÎÎÎÎÏÎ."
+#~ msgid "Fonts"
+#~ msgstr "ÎÏÎÎÎÎÏÎÏÎÎÏÎÏ"
 
-#: C/beginner.js.page:25(title)
-msgid "Getting Started"
-msgstr "ÎÎÎÎÎÎÎÎ"
+#~ msgid "Gtk.ApplicationWindow"
+#~ msgstr "Gtk.ApplicationWindow"
 
-#: C/beginner.js.page:26(p)
-msgid ""
-"These tutorials are designed for people who already know how to write in "
-"JavaScript, and who have GNOME installed on their computers already, but who "
-"are new to developing GNOME applications. If you don't already know "
-"JavaScript, or if you need help getting GNOME set up, take a look at these "
-"resources first:"
-msgstr ""
-"ÎÏÏÎ ÏÎ ÎÎÎÎÎÎÏÎ ÏÏÎÎÎÎÏÏÎÎÎÎ ÎÎÎ ÎÏÎÎÎ ÏÎÏ ÎÎÎ ÎÎÏÎÏÎ ÏÏÏ ÎÎ ÎÏÎÏÎÏÎ ÏÎ "
-"JavaScript, ÎÎÎ ÎÏÎÏÎ ÎÎÎ ÎÎÎÎÏÎÏÏÎÎÎÎÎ ÏÎ GNOME ÏÏÎÏÏ ÏÏÎÎÎÎÎÏÏÎÏ ÏÎÏÏ, "
-"ÎÎÎÎ ÎÎÎÎÎ ÎÎÎÎ ÏÏÎÎ ÎÎÎÏÏÏÎÎ ÎÏÎÏÎÎÎÏÎ GNOME. ÎÎÎ ÎÎÎ ÎÎÏÎÏÎ ÎÎÎ "
-"JavaScript, Î ÎÎÎ ÏÏÎÎÎÎÏÏÎÏÏÎ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎÎÏÎÏÏÎÏÎ ÏÎÏ GNOME, ÏÎÎÏÎ ÎÎÎ "
-"ÎÎÏÎÎ ÏÏÏÏÎ ÏÎ ÎÏÏÎÏ ÏÎÏ ÏÎÎÎÏ ÏÏÏÏÎ:"
+#~ msgid "Gtk.CellRendererText"
+#~ msgstr "Gtk.CellRendererText"
 
-#: C/beginner.js.page:28(p)
-msgid ""
-"<link href=\"http://eloquentjavascript.net/contents.html\";>Eloquent "
-"JavaScript</link> is a free, Creative Commons-licensed book, which explains "
-"the basics of JavaScript programming. Since you won't be writing JavaScript "
-"for the web, you only need to read up to chapter 10 or so."
-msgstr ""
-"<link href=\"http://eloquentjavascript.net/contents.html\";>ÎÏÎÎÏÏÏÎ "
-"JavaScript</link> ÎÎÎÎÎ ÎÎÎ ÎÎÎÏÎÎÏÎ, ÎÎÎÎÎÎ ÎÎ ÏÎÎ ÎÎÎÎÎ Creative Commons, "
-"ÏÎÏ ÎÎÎÎÎÎ ÏÎ ÎÎÏÎÎÎ ÏÎÏ ÏÏÎÎÏÎÎÎÎÏÎÏÎÎÏ JavaScript. ÎÏÎÏ ÎÎÎ ÎÎ ÎÏÎÏÎÏÎ "
-"JavaScript ÎÎÎ ÏÎÎ ÎÏÏÏ, ÏÏÎÎÎÎÎÏÎÎ ÎÎ ÎÎÎÎÎÏÎÏÎ ÎÎÏÏÎ ÏÎ ÎÎÏÎÎÎÎÎ 10 "
-"ÏÎÏÎÏÎÏ."
+#~ msgid "Gtk.TreeIter"
+#~ msgstr "Gtk.TreeIter"
 
-#: C/beginner.js.page:29(p)
-msgid ""
-"<link href=\"http://www.gnome.org/getting-gnome/\";>Download GNOME</link> as "
-"part of a distribution, like Fedora, openSUSE, or Ubuntu. Each distribution "
-"has its own instructions for how to get GNOME."
-msgstr ""
-"Î <link href=\"http://www.gnome.org/getting-gnome/\";>ÎÎÏÎ ÏÎÏ GNOME</link> "
-"ÎÎÎÎÎ ÎÎÏÎÏ ÎÎÎÏ ÎÎÎÎÎÎÎÏ, ÏÏÏÏ Fedora, openSUSE, Î Ubuntu. ÎÎÎÎ ÎÎÎÎÎÎÎ "
-"ÎÏÎÎ ÏÎÏ ÎÎÎÎÏ ÏÎÏ ÎÎÎÎÎÎÏ ÎÎÎ ÏÎ ÏÏÏ ÎÎ ÏÎÏÎÏÎ ÏÎ GNOME."
+#~ msgid "Gtk.TreeViewColumn"
+#~ msgstr "Gtk.TreeViewColumn"
 
-#: C/beginner.js.page:30(p)
-msgid ""
-"<link xref=\"set-up-gedit.js\">Set up gedit</link> for writing applications. "
-"GNOME's text editor, gedit, is sometimes just called \"text editor.\""
-msgstr ""
-"<link xref=\"set-up-gedit.js\">ÎÎÎÎÏÎÏÏÎÏÎ gedit</link> ÎÎÎ ÏÏÎÎÏÎÏÎ "
-"ÎÏÎÏÎÎÎÏÎ. Î ÎÏÎÎÎÏÎÎÏÏÎÏ ÎÎÎÎÎÎÎÏ ÏÎÏ GNOME, gedit, ÎÏÎÎÎÎÎÎÏÎÎ ÎÎÏÎÎÎÏ "
-"ÏÎÏÎÏ ÎÏÎÎ \"ÎÏÎÎÎÏÎÎÏÏÎÏ ÎÎÎÎÎÎÎÏ\"."
+#~ msgid "GtkCellRendererToggle"
+#~ msgstr "GtkCellRendererToggle"
 
-#: C/beginner.js.page:41(p)
-msgid ""
-"These samples show how to use widgets in your GNOME applications. Each one "
-"demonstrates a complete application which showcases the featured widget. At "
-"the end of each sample, you will find links to more detailed reference "
-"material."
-msgstr ""
-"ÎÏÏÎ ÏÎ ÎÎÎÎÎÎÏÎ ÎÎÏÎÎÎÎÎÏÎ ÏÎ ÏÏÎÏÎ ÎÏÎÏÎÎÏÎ ÏÏÏÏÎÏÎÎÏÎ ÏÏÎÏ ÎÏÎÏÎÎÎÎÏ ÏÎÏ "
-"ÏÎÏ GNOME. ÎÎÎÎ ÎÎÎ ÎÎÎÏÎÎÎ ÎÎÎ ÏÎÎÏÎ ÎÏÎÏÎÎÎÎ ÏÎÏ ÎÎÎÏÎÎÎ ÏÎÏÎÏÏÏÏÎÎÏ ÎÎ "
-"ÏÎÏÎÎÏÎÏÎÏÏÎÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ. ÎÏÎ ÏÎÎÎÏ ÎÎÎÎ ÎÎÎÎÎÎÏÎÏ, ÎÎ ÎÏÎÎÏÎ "
-"ÏÏÎÎÎÏÎÎÏÏ ÏÎ ÏÎÎ ÎÎÏÏÎÎÎÏÎ ÏÎÎÎÎ ÎÎÎÏÎÏÎÏ."
+#~ msgid "GtkTooltip"
+#~ msgstr "GtkTooltip"
 
-#: C/beginner.js.page:44(p)
-msgid "Copy and paste the code into <var>filename</var>.js"
-msgstr "ÎÎÏÎÎÏÎÏÎ ÎÎÎ ÎÏÎÎÏÎÎÎÏÎ ÏÎÏ ÎÏÎÎÎÎ ÏÏÎ <var>filename</var>.js"
+#~ msgid "GtkToolbar"
+#~ msgstr "GtkToolbar"
 
-#: C/beginner.js.page:45(p)
-msgid "In the terminal, type:"
-msgstr "ÎÏÎÎ ÏÎÏÎÎÏÎÎÏ, ÏÎÎÎÏÏÎÎÎÎÎÏÏÎ:"
+#~ msgid "GtkWidget"
+#~ msgstr "GtkWidget"
 
-#: C/beginner.js.page:46(screen)
-#, no-wrap
-msgid "gjs <var>filename</var>.js"
-msgstr "gjs <var>filename</var>.js"
+#~ msgid "Stock Items"
+#~ msgstr "ÎÏÎÎÏÎÎÎ ÏÎÏÎÎÎÏÎÎÎÎÎÏ"
 
-#: C/beginner.c.page:8(title)
-msgid "Beginner's Tutorials (C)"
-msgstr "ÎÎÎÎÎÎÏÎ ÎÏÏÎÏÎÏÎ (C)"
+#~ msgid "Screenshot of Glade ui"
+#~ msgstr "ÎÏÎÎÎÎÏÏÏÏÎ ÏÎÏ ui ÏÎÏ Glade"
 
-#: C/beginner.c.page:25(p)
-msgid "The C programming language"
-msgstr "Î ÎÎÏÏÏÎ ÏÏÎÎÏÎÎÎÎÏÎÏÎÎÏ C"
+#~ msgid "Screenshot of toolbar icon in Glade ui"
+#~ msgstr "ÎÏÎÎÎÎÏÏÏÏÎ ÏÎÏ ÎÎÎÎÎÎÎÎÎÏ ÏÎÏ ÎÏÎÎÎÎÏ ÎÏÎÎÎÎÎÏÎ ÏÏÎ ui ÏÎÏ Glade"
 
-#: C/beginner.c.page:42(p)
-msgid "Copy and paste the code into <var>filename</var>.c"
-msgstr "ÎÎÏÎÎÏÎÏÎ ÎÎÎ ÎÏÎÎÏÎÎÎÏÎ ÏÎÏ ÎÏÎÎÎÎ ÏÏÎ <var>filename</var>.c"
+#~ msgid "Screenshot of General tab"
+#~ msgstr "ÎÏÎÎÎÎÏÏÏÏÎ ÏÎÏ ÎÎÎÎÎÎÏ ÎÎÏÏÎÎÎÏ"
 
-#: C/beginner.c.page:44(screen)
-#, no-wrap
-msgid "gcc <var>filename</var>.c `pkg-config --cflags --libs gtk+-3.0` -o <var>filename</var>\n"
-msgstr "gcc <var>filename</var>.c `pkg-config --cflags --libs gtk+-3.0` -o <var>filename</var>\n"
+#~ msgid "Screenshot of Common tab"
+#~ msgstr "ÎÏÎÎÎÎÏÏÏÏÎ ÏÎÏ ÎÎÎÎÎÏ ÎÎÏÏÎÎÎÏ"
 
-#: C/beginner.c.page:50(p)
-msgid ""
-"For more information about compiling Gtk+ programs see <link href=\"http://";
-"developer.gnome.org/gtk3/3.4/gtk-compiling.html\">Compiling Gtk+ "
-"Applications on UNIX</link>."
-msgstr ""
-"ÎÎÎ ÏÎÏÎÏÏÏÏÎÏÎÏ ÏÎÎÏÎÏÎÏÎÎÏ ÏÏÎÏÎÎÎ ÎÎ ÏÎ ÎÎÏÎÎÎÏÏÏÎÏÎ ÏÏÎÎÏÎÎÎÎÏÏÎ GTK+ "
-"ÎÎÎÏÎ <link href=\"http://developer.gnome.org/gtk3/3.4/gtk-compiling.html";
-"\">ÎÎÏÎÎÎÏÏÏÎÎÎÎÏÎÏ ÎÏÎÏÎÎÎÎÏ GTK+ ÏÏÎ UNIX</link>."
+#~ msgid "Setting the visible property to No"
+#~ msgstr "ÎÏÎÏÎÏÏ ÏÎÏ ÎÎÎÏÏÎÏÎÏ ÎÏÎÏÏ ÏÎ ÏÏÎ"
 
-#: C/beginner.c.page:54(p)
-msgid "You can also use the Vala compiler to compile these samples:"
-msgstr ""
-"ÎÏÎÏÎÎÏÎ ÎÏÎÏÎÏ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÏÎÎ ÎÎÏÎÎÎÏÏÏÎÏÏÎ Vala ÎÎÎ ÎÎ "
-"ÎÎÏÎÎÎÏÏÏÎÏÎÏÎ ÎÏÏÎ ÏÎ ÏÎÏÎÎÎÎÎÎÎÏÎ:"
+#~ msgid "Gtk.Toolbar"
+#~ msgstr "ÎÏÎÎÎÎÎÎÎÎÎÎ Gtk"
 
-#: C/beginner.c.page:57(screen)
-#, no-wrap
-msgid "valac --pkg gtk+-3.0 <var>filename</var>.c"
-msgstr "valac --pkg gtk+-3.0 <var>filename</var>.c"
+#~ msgid "Gtk.Toolbutton"
+#~ msgstr "ÎÎÏÎÏÎ ÎÏÎÎÎÎÎÎÏ Gtk"
 
-#: C/beginner.c.page:59(p)
-msgid "To run:"
-msgstr "ÎÎÎ ÎÎÏÎÎÎÏÎ:"
+#~ msgid "Gtk.Stock"
+#~ msgstr "ÎÏÏÎÎÎÎ Gtk"
 
-#: C/audio-player.vala.page:9(desc)
-msgid "Coming soon..."
-msgstr "ÎÏÏÎÏÎÎ ÏÏÎÏÎÎÎ..."
+#~ msgid "sebp k-d-w org"
+#~ msgstr "sebp k-d-w org"
 
-#: C/audio-player.vala.page:18(title)
-msgid "3 Audio Player"
-msgstr "3 ÎÎÎÏÎÏÎÎÏÎÏÏ ÎÏÎÏ"
+#~ msgid "GtkGrid"
+#~ msgstr "GtkGrid"
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/aboutdialog.vala.page:29(None) C/aboutdialog.py.page:22(None)
-#: C/aboutdialog.js.page:20(None) C/aboutdialog.c.page:24(None)
-msgid ""
-"@@image: 'media/aboutdialog_GMenu.png'; md5=a36117a559fa98e25e2f6b3db593639f"
-msgstr ""
-"@@image: 'media/aboutdialog_GMenu.png'Â md5=a36117a559fa98e25e2f6b3db593639f"
+#~ msgid "GtkBuilder"
+#~ msgstr "GtkBuilder"
 
-#: C/aboutdialog.vala.page:7(title)
-msgid "AboutDialog (Vala)"
-msgstr "AboutDialog (Vala)"
+#~ msgid "Event Structures"
+#~ msgstr "ÎÎÎÎÏ ÏÏÎÎÎÎÏÏÎ"
 
-#: C/aboutdialog.vala.page:25(desc) C/aboutdialog.js.page:16(desc)
-#: C/aboutdialog.c.page:19(desc)
-msgid "Display information about an application"
-msgstr "ÎÎÏÎÎÎÏÎ ÏÎÎÏÎÏÎÏÎÏÎ ÎÎÎ ÎÎÎ ÎÏÎÏÎÎÎÎ"
+#~ msgid "The Python Gtk+ 3 Tutorial - Glade and Gtk.Builder"
+#~ msgstr "ÎÎ ÎÎÎÎÎÎ Python Gtk+ 3 - Glade ÎÎÎ Gtk.Builder"
 
-#: C/aboutdialog.vala.page:28(title) C/aboutdialog.py.page:21(title)
-#: C/aboutdialog.js.page:19(title) C/aboutdialog.c.page:22(title)
-msgid "AboutDialog"
-msgstr "AboutDialog"
+#~ msgid "GtkToolButton"
+#~ msgstr "GtkToolButton"
 
-#: C/aboutdialog.vala.page:30(p) C/aboutdialog.c.page:25(p)
-msgid "An AboutDialog example using Gtk.ApplicationWindow and Menu"
-msgstr ""
-"ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ AboutDialog ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ Gtk.ApplicationWindow ÎÎÎ ÎÎÎÎÏ"
+#~ msgid "GtkToolItem"
+#~ msgstr "GtkToolItem"
 
-#: C/aboutdialog.vala.page:40(link)
-msgid "set_default_size"
-msgstr "set_default_size"
+#~ msgid "GtkActionable"
+#~ msgstr "GtkActionable"
 
-#: C/aboutdialog.py.page:7(title)
-msgid "AboutDialog (Python)"
-msgstr "AboutDialog (Python)"
+#~ msgid "Gtk.ToolButton"
+#~ msgstr "ToolButton Gtk"
 
-#: C/aboutdialog.py.page:18(desc)
-msgid "A window that displays information about an application"
-msgstr "ÎÎÎ ÏÎÏÎÎÏÏÎ ÏÎÏ ÎÎÏÎÎÎÎÎÎ ÏÎÎÏÎÏÎÏÎÎÏ ÎÎÎ ÎÎÎ ÎÏÎÏÎÎÎÎ"
+#~ msgid "Gtk Stock items"
+#~ msgstr "ÎÏÎÎÏÎÎÎ ÎÏÎÎÎÎÎÏÎÏ Gtk"
 
-#: C/aboutdialog.py.page:23(p)
-msgid ""
-"An AboutDialog example using Gtk.ApplicationWindow and Menu (the \"about\" "
-"is displayed if \"About\" in the menu is selected)."
-msgstr ""
-"ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ AboutDialog ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ Gtk.ApplicationWindow ÎÎÎ ÎÎÎÎÏ "
-"(ÏÎ \"ÏÏÎÏÎÎÎ\" ÎÎÏÎÎÎÎÎÏÎÎ ÎÎÎ ÏÎ \"ÏÏÎÏÎÎÎ\" ÏÏÎ ÎÎÎÎÏ ÎÏÎÎÎÎÎÎ)."
+#~ msgid "Gdk.WindowState"
+#~ msgstr "Gdk.WindowState"
 
-#: C/aboutdialog.py.page:35(title)
-msgid "Useful methods for an AboutDialog widget"
-msgstr "ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ AboutDialog"
+#~ msgid "Gtk.ToggleButton"
+#~ msgstr "Gtk.ToggleButton"
 
-#: C/aboutdialog.py.page:45(link) C/aboutdialog.c.page:36(link)
-msgid "GtkAboutDialog"
-msgstr "GtkAboutDialog"
+#~ msgid "GtkToggleButton"
+#~ msgstr "GtkToggleButton"
 
-#: C/aboutdialog.js.page:6(title)
-msgid "AboutDialog (JavaScript)"
-msgstr "AboutDialog (JavaScript)"
+#~ msgid "GtkSpinner"
+#~ msgstr "GtkSpinner"
 
-#: C/aboutdialog.js.page:21(p)
-msgid ""
-"A modal dialog window which shows information about an application and its "
-"creators. This one is triggered by clicking \"About\" in the application's "
-"menu, which is normally a good place to put it."
-msgstr ""
-"ÎÎÎ ÏÎÏÎÎÏÏÎ ÎÎÎÎÎÎÏÏÎÎÎÏ ÎÎÎÎÏÎÎÏ ÏÎÏ ÎÎÏÎÎÎÎÎÎ ÏÎÎÏÎÏÎÏÎÎÏ ÎÎÎ ÎÎÎ "
-"ÎÏÎÏÎÎÎÎ ÎÎÎ ÏÎÏÏ ÎÎÎÎÎÏÏÎÎÏÏ ÏÎÏ. ÎÏÏÏ ÏÏÎÎÎÎÎÎÏÎÎ ÎÎ ÎÎÎÎ ÏÏÎ \"ÏÏÎÏÎÎÎ\" "
-"ÏÏÎ ÎÎÎÎÏ ÏÎÏ ÎÏÎÏÎÎÎÎÏ, ÏÎÏ ÎÎÎÎÎ ÎÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎÎ ÎÎÏÎ ÎÎ ÏÎ ÎÎÎÎÏÎ."
+#~ msgid "Gtk.Grid"
+#~ msgstr "Gtk.Grid"
 
-#: C/aboutdialog.js.page:30(link)
-msgid "Gtk.AboutDialog"
-msgstr "Gtk.AboutDialog"
+#~ msgid "Gtk.Spinner"
+#~ msgstr "Gtk.Spinner"
 
-#: C/aboutdialog.c.page:7(title)
-msgid "AboutDialog (C)"
-msgstr "AboutDialog (C)"
+#~ msgid "monicakochofar gmail com"
+#~ msgstr "monicakochofar gmail com"
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/03_getting_the_signal.js.page:36(None)
-#: C/03_getting_the_signal.js.page:352(None)
-msgid ""
-"@@image: 'media/03_jssignal_01.png'; md5=8d6ecab185f4af4534cc255d62b58b8e"
-msgstr ""
-"@@image: 'media/03_jssignal_01.png'Â md5=8d6ecab185f4af4534cc255d62b58b8e"
+#~ msgid "GtkTogglebutton"
+#~ msgstr "GtkToggleButton"
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/03_getting_the_signal.js.page:156(None)
-#: C/03_getting_the_signal.js.page:358(None)
-msgid ""
-"@@image: 'media/03_jssignal_02.png'; md5=ba941390fbafc4a0f653c8f70bca92c0"
-msgstr ""
-"@@image: 'media/03_jssignal_02.png'Â md5=ba941390fbafc4a0f653c8f70bca92c0"
+#~ msgid "Gtk.TextBuffer"
+#~ msgstr "Gtk.TextBuffer"
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/03_getting_the_signal.js.page:160(None)
-msgid "@@image: 'media/03_jssignal_02b.png'; md5=THIS FILE DOESN'T EXIST"
-msgstr "@@image: 'media/03_jssignal_02b.png'Â md5=THIS FILE DOESN'T EXIST"
+#~ msgid "Gtk.TextView"
+#~ msgstr "Gtk.TextView"
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/03_getting_the_signal.js.page:232(None)
-#: C/03_getting_the_signal.js.page:364(None)
-msgid ""
-"@@image: 'media/03_jssignal_03.png'; md5=49ecf251b0bf57543c8d79a77b6f306d"
-msgstr ""
-"@@image: 'media/03_jssignal_03.png'Â md5=49ecf251b0bf57543c8d79a77b6f306d"
+#~ msgid "Gtk.ScrolledWindow"
+#~ msgstr "Gtk.ScrolledWindow"
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/03_getting_the_signal.js.page:303(None)
-#: C/03_getting_the_signal.js.page:370(None)
-msgid ""
-"@@image: 'media/03_jssignal_04.png'; md5=dfc5221ca15ca9fba7d3c76a73804e2d"
-msgstr ""
-"@@image: 'media/03_jssignal_04.png'Â md5=dfc5221ca15ca9fba7d3c76a73804e2d"
+#~ msgid "Gtk.WrapMode"
+#~ msgstr "Gtk.WrapMode"
 
-#: C/03_getting_the_signal.js.page:20(desc)
-msgid "Create Buttons and other widgets that do things when you click on them."
-msgstr ""
-"ÎÎÎÎÎÏÏÎÎÎ ÎÎÏÎÏÎÏÎ ÎÎÎ ÎÎÎÏÎ ÎÏÎÏÎÎÏÎ ÏÏÏÏÎÏÎÎÏÎ ÏÎÏ ÎÎÎÎÏÎ ÏÏÎÎÎÎÏÎ ÏÏÎÎ "
-"ÏÎÏÎÏÎ ÏÎÎÏ ÏÎÏÏ."
+#~ msgid "Gtk.PolicyType"
+#~ msgstr "Gtk.PolicyType"
 
-#: C/03_getting_the_signal.js.page:23(title)
-msgid "3. Getting the Signal"
-msgstr "3. ÎÎÏÎ ÏÎÏ ÏÎÎÎÏÎÏ"
+#~ msgid "GtkTextView"
+#~ msgstr "GtkTextView"
 
-#: C/03_getting_the_signal.js.page:25(p)
-msgid ""
-"In the last tutorial, we learned how to create widgets like Labels, Images, "
-"and Buttons. Here, we'll learn how to make Buttons and other input widgets "
-"actually do things, by writing functions which handle the signals they send "
-"when they are clicked on or interacted with."
-msgstr ""
-"ÎÏÎ ÏÎÎÎÏÏÎÎÎ ÎÎÎÎÎÎ, ÎÎÎÎÎÎ ÏÏÏ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÏÏÏÏ "
-"ÎÏÎÎÎÏÎÏ, ÎÎÎÏÎÎÏ ÎÎÎ ÎÎÏÎÏÎÎ. ÎÎÏ, ÎÎ ÎÎÎÎÏÎÎ ÏÏÏ ÎÎ ÎÎÎÎÏÎÎ ÎÎÏÎÏÎÎ ÎÎÎ "
-"ÎÎÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÏÏÎÎÏ ÎÎ ÎÎÎÎÏÎ ÏÏÎÎÎÎÏÎ ÏÏÎÎÎÎÏÎ, ÎÏÎÏÎÎÏÎÏ "
-"ÏÏÎÎÏÏÎÏÎÎÏ ÏÎÏ ÏÎÎÏÎÎÎÎÏÎÎ ÏÎ ÏÎÎÎÏÎ ÏÎÏ ÏÏÎÎÎÎÏÎ ÏÏÎÎ ÏÎÏÎÎÏÎÏÎÎ Î "
-"ÎÎÎÎÎÎÏÎÎÏÎÏÎ."
+#~ msgid "GtkTextBuffer"
+#~ msgstr "GtkTextBuffer"
 
-#: C/03_getting_the_signal.js.page:31(title)
-msgid "A basic application"
-msgstr "ÎÎÎ ÎÎÏÎÎÎ ÎÏÎÏÎÎÎÎ"
+#~ msgid "GtkTextTag"
+#~ msgstr "GtkTextTag"
 
-#: C/03_getting_the_signal.js.page:32(p)
-msgid ""
-"In GNOME, widgets that you can interact with, like Buttons and Switches, "
-"send out signals when they are clicked on or activated. A Button, for "
-"instance, sends out the \"clicked\" signal when somebody clicks on it. When "
-"this happens, GNOME looks for the part in your code that says what to do."
-msgstr ""
-"ÎÏÎ GNOME, ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎ ÏÎ ÎÏÎÎÎ ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÎÎÎÏÎÎÏÎÏÎ, ÏÏÏÏ "
-"ÎÎÏÎÏÎÎ ÎÎÎ ÎÎÎÎÏÏÏÎÏ, ÏÏÎÎÎÎÏÎ ÏÎÎÎÏÎ ÏÏÎÎ ÏÎÏÎÎÏÎÏÎÎ Î ÎÎÎÏÎÎÏÎÎÎÏÎÏÎÎ. "
-"ÎÎÎ ÎÎÏÎÏÎ, ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ, ÏÏÎÎÎÎÎ ÏÎ ÏÎÎÎ \"clicked\" ÏÏÎÎ ÎÎÏÎÎÎÏ ÏÎ "
-"ÏÎÏÎ. ÎÏÎÎ ÎÏÏÏ ÏÏÎÎÎÎÎÎÎ, ÏÎ GNOME ÏÎÏÎÎÎ ÎÎÎ ÏÎ ÎÎÏÎÏ ÏÏÎÎ ÎÏÎÎÎÎ ÏÎÏ ÏÎÏ "
-"ÎÎÎÎ ÏÎ ÎÎ ÎÎÎÎÎ."
+#~ msgid "GtkScrolledWindow"
+#~ msgstr "GtkScrolledWindow"
 
-#: C/03_getting_the_signal.js.page:33(p)
-msgid ""
-"How do we write that code? By connecting that Button's \"clicked\" signal to "
-"a callback function, which is a function you write just to handle that "
-"signal. So whenever it gives off that signal, the function connected to that "
-"signal is run."
-msgstr ""
-"ÎÏÏ ÎÏÎÏÎÏÎÎ ÎÏÏÏÎ ÏÎÎ ÎÏÎÎÎÎ; ÎÏÎÎÎÎÎÏÎÏ ÏÎ \"clicked\" ÏÎÎÎ ÎÏÏÎÏ ÏÎÏ "
-"ÎÎÏÎÏÎÎÏ ÏÎ ÎÎÎ ÏÏÎÎÏÏÎÏÎ ÎÏÎÎÎÎÎÎÏÎÏ, ÏÎÏ ÎÎÎÎÎ ÎÎÎ ÏÏÎÎÏÏÎÏÎ ÏÎÏ ÎÏÎÏÎÏÎ "
-"ÎÏÎÎ ÎÎÎ ÎÎ ÏÎÎÏÎÏÏÎÎÏÎ ÎÏÏÏ ÏÎ ÏÎÎÎ. ÎÏÏÎ ÏÏÎÏÎ ÎÎÏÎÎÏÎÎ ÎÏÏÏ ÏÎ ÏÎÎÎ, Î "
-"ÏÏÎÎÎÎÎÎÎ ÏÏÎÎÏÏÎÏÎ ÎÎ ÎÏÏÏ ÏÎ ÏÎÎÎ ÎÎÏÎÎÎÎÏÎÎ."
+#~ msgid "Standard Enumerations"
+#~ msgstr "ÎÏÏÎÎÎÏ ÎÏÎÏÎÎÎÎÏÎÎÏ"
 
-#: C/03_getting_the_signal.js.page:34(p)
-msgid "Here is an extremely basic example:"
-msgstr "ÎÎ ÎÎÎ ÏÎÎÏ ÎÎÏÎÎÏ ÏÎÏÎÎÎÎÎÎÎ:"
+#~ msgid "Gtk.Button"
+#~ msgstr "Gtk.Button"
 
-#: C/03_getting_the_signal.js.page:38(p)
-msgid ""
-"This ApplicationWindow has a Button and a Label inside it, arranged in a "
-"Grid. Whenever the Button is clicked, a variable that holds the number of "
-"cookies is increased by 1, and the Label that shows how many cookies there "
-"are is updated."
-msgstr ""
-"ÎÏÏÏ ÏÎ ApplicationWindow ÎÏÎÎ ÎÎÎ ÎÎÏÎÏÎ ÎÎÎ ÎÎÎ ÎÏÎÎÎÏÎ ÎÎÏÎ ÏÎÏ, "
-"ÏÎÎÏÎÏÎÎÎÎÎÎÎ ÏÎ ÎÎÎ ÏÎÎÎÎÎ. ÎÏÎÏÎ ÏÎÏÎÎÏÎÎ ÏÎ ÎÎÏÎÏÎ, ÎÎÎ ÎÎÏÎÎÎÎÏÎ ÏÎÏ "
-"ÎÏÎÏÎ ÏÎÎ ÎÏÎÎÎÏ ÏÏÎ ÎÏÎÏÎÏÏÏÎ ÎÏÎÎÎÎÏÎÎ ÎÎÏÎ 1 ÎÎÎ Î ÎÏÎÎÎÏÎ ÎÎÎÏÎÎÎ ÏÏÏÎ "
-"ÎÏÎÏÎÏÏÎ ÎÎÎÎÎÏÏÎÎÎÎÎ."
+#~ msgid "Gtk.Label"
+#~ msgstr "Gtk.Label"
 
-#: C/03_getting_the_signal.js.page:39(p)
-msgid ""
-"The cookies in this example are not the same as the cookies that you get "
-"from websites, which store your login information and may keep track of "
-"which sites you've visited. They're just imaginary treats. You may bake some "
-"real ones if you like."
-msgstr ""
-"ÎÎ ÎÏÎÏÎÏÏÎ ÏÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎÎÎ ÏÎ ÎÎÎÎ ÏÏÏÏ ÏÎ ÎÏÎÏÎÏÏÎ ÏÎÏ "
-"ÏÎÎÏÎÎÏÎ ÎÏÏ ÏÎÏÏ ÎÏÏÏÏÎÏÎÏÏ ÏÎÏ ÎÏÎÎÎÎÎÏÎÏÎ ÏÎÏ ÏÎÎÏÎÏÎÏÎÎÏ ÏÏÎÎÎÏÎ ÏÎÏ ÎÎÎ "
-"ÎÏÎÏÎÏÎ ÎÎ ÏÎÏÎÎÎÎÎÏÎÎÏÎ ÏÎÏÏ ÏÏÏÎÏÏ ÏÎÏ ÎÏÎÏÎ ÎÏÎÏÎÎÏÏÎÎ. ÎÎÎÎÎ ÎÏÎÎ "
-"ÏÎÎÏÎÏÏÎÎÎÏ ÏÏÎÏÎÏÎÏÎÏÎÏ. ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÎÏÎ ÎÎÏÎÎÎÏ ÏÏÎÎÎÎÏÎÎÎÏ ÎÎÎ ÎÎÎÎÏÎ."
+#~ msgid "Gtk.RadioButton"
+#~ msgstr "Gtk.RadioButton"
 
-#: C/03_getting_the_signal.js.page:40(p)
-msgid ""
-"Here is the basic, boilerplate code that goes at the start of the "
-"application, before we start creating the window and widgets. Besides the "
-"application having a unique name, the biggest change from the usual "
-"boilerplate is that we create a global variable right near the beginning, to "
-"hold the number of cookies."
-msgstr ""
-"ÎÎ Î ÎÎÏÎÎÏÏ ÏÏÎÏÎÏÏÏÏÎÏ ÎÏÎÎÎÎÏ ÏÎÏ ÏÎÎÎÎÎÎÎ ÏÏÎÎ ÎÏÏÎ ÏÎÏ ÎÏÎÏÎÎÎÎÏ, ÏÏÎÎ "
-"ÎÏÏÎÏÎÏÎÎ ÏÎ ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ ÏÎÏÎÎÏÏÎÏ ÎÎÎ ÏÏÎ ÎÏÎÏÎÎÏÎ ÏÏÏÏÎÏÎÎÏÎ. ÎÎÏÏÏ ÎÏÏ "
-"ÏÎ ÎÎ ÎÏÎÎ Î ÎÏÎÏÎÎÎÎ ÎÎÎ ÎÎÎÎÎÎÎÏ ÏÎÎÎÎ, Î ÎÎÎÎÎÏÏÎÏÎ ÎÎÎÎÎÎ ÎÏÏ ÏÎ ÏÏÎÎÎÎÏ "
-"ÏÏÎÏÎÏÏÏÏÎ ÎÎÎÎÎ ÏÏÎ ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ ÎÎÎÎÎÎÎÎ ÎÎÏÎÎÎÎÏÎ ÏÎÎÏ ÎÎÎÏÎ ÏÏÎÎ "
-"ÎÏÏÎ, ÎÎÎ ÎÎ ÎÏÎÏÎÏÎÏÎÎ ÏÎÎ ÎÏÎÎÎÏ ÏÏÎ ÎÏÎÏÎÏÏÏÎ."
+#~ msgid "GtkContainer"
+#~ msgstr "GtkContainer"
 
-#: C/03_getting_the_signal.js.page:72(p)
-msgid ""
-"Take a look at the part that uses our application's connect method and Lang."
-"bind, to connect its activate and startup signals to the functions that "
-"present the window and build the UI. We're going to do the same thing with "
-"our Button when we get to it, except that we're going to connect its "
-"\"clicked\" signal instead."
-msgstr ""
-"ÎÎÎÏÎ ÎÎÎ ÎÎÏÎÎ ÏÏÎ ÎÎÏÎÏ ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÎ ÏÎ ÎÎÎÎÎÎ ÏÏÎÎÎÏÎÏ ÏÎÏ ÎÏÎÏÎÎÎÎÏ "
-"ÎÎÏ ÎÎÎ Lang.bind, ÎÎÎ ÏÏÎÎÎÏÎ ÏÏÎ ÎÎÎÏÎÏÎ ÎÎÎ ÎÏÏÎÎÏÎ ÏÎÎÎÏÏÎ ÏÏÎÏ "
-"ÏÏÎÎÏÏÎÏÎÎÏ ÏÎÏ ÎÎÏÎÎÎÎÎÏÎ ÏÎ ÏÎÏÎÎÏÏÎ ÎÎÎ ÎÎÎÎÏÎ ÏÎ UI. ÎÏÏÎÎÎÏÎÎ ÎÎ "
-"ÎÎÎÎÏÎÎ ÏÎ ÎÎÎÎ ÏÏÎÎÎÎ ÎÎ ÏÎ ÎÎÏÎÏÎ ÎÎÏ ÏÏÎÎ ÏÎ ÏÎÏÎÏÎÎ, ÎÎÏÏÏ ÎÏÏ ÏÎ ÏÏÎ "
-"ÏÏÏÎÎÎÏÎÎ ÎÎ ÏÏÎÎÎÏÎÏÎÎ ÏÏÎ ÎÎÏÎ ÏÎÏ ÏÎ \"clicked\" ÏÎÎÎ."
+#~ msgid "Gtk.Switch"
+#~ msgstr "Gtk.Switch"
 
-#: C/03_getting_the_signal.js.page:76(title)
-msgid "Click the button"
-msgstr "ÎÎÏÎÎÎ ÏÎÏ ÎÎÏÎÏÎÎÏ"
+#~ msgid "GtkSwitch"
+#~ msgstr "GtkSwitch"
 
-#: C/03_getting_the_signal.js.page:78(p)
-msgid ""
-"As usual, we'll put all the code to create our Button and other widgets "
-"inside the _buildUI function, which is called when the application starts up."
-msgstr ""
-"ÎÏ ÏÏÎÎÎÏÏ, ÎÎ ÎÎÎÎÏÎÎ ÏÎÎÎ ÏÎÎ ÎÏÎÎÎÎ ÎÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ ÏÎ ÎÎÏÎÏÎ ÎÎÏ "
-"ÎÎÎ ÎÎÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÏÎ ÏÏÎ ÏÏÎÎÏÏÎÏÎ _buildUI, ÏÎÏ ÎÎÎÎÎÏÎÎ ÏÏÎÎ "
-"ÎÎÎÎÎÎ Î ÎÏÎÏÎÎÎÎ."
+#~ msgid "GtkLabel"
+#~ msgstr "GtkLabel"
 
-#: C/03_getting_the_signal.js.page:84(p)
-msgid "First, we create the window itself:"
-msgstr "ÎÏÏÏÎ, ÎÎÎÎÎÏÏÎÎÏÎÎ ÏÎ ÎÎÎÎ ÏÎ ÏÎÏÎÎÏÏÎ:"
+#~ msgid "GSimpleAction"
+#~ msgstr "GSimpleAction"
 
-#: C/03_getting_the_signal.js.page:94(p)
-msgid ""
-"Note that we've set its default_height and default_width properties. These "
-"let us control how tall and wide the ApplicationWindow will be, in pixels."
-msgstr ""
-"ÎÎÎÎÎÏÏÏÎ ÏÏÎ ÎÏÎÏÎÎ ÎÏÎÏÎÎ ÏÎÏ ÎÎÎÏÏÎÏÎÏ ÏÎÏ default_height ÎÎÎ "
-"default_width. ÎÏÏÎ ÎÎÏ ÎÏÎÏÏÎÏÎÏÎ ÎÎ ÎÎÎÎÎÎÏÎÎ ÏÏÏÎ ÏÏÎÎÏ ÎÎÎ ÏÎÎÏÏ ÎÎ "
-"ÎÎÎÎÎ ÏÎ ApplicationWindow, ÏÎ ÎÎÎÎÎÎÏÏÎÎÏÎÎÎ."
+#~ msgid "Gtk.Image"
+#~ msgstr "Gtk.Image"
 
-#: C/03_getting_the_signal.js.page:95(p)
-msgid ""
-"Next, we'll create the Label that shows us the number of cookies. We can use "
-"the cookies variable as part of the Label's label property."
-msgstr ""
-"ÎÏÏÎÏÎ, ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ ÏÎÎ ÎÏÎÎÎÏÎ ÏÎÏ ÎÎÏ ÎÎÏÎÎÎÎÎÎ ÏÎÎ ÎÏÎÎÎÏ ÏÏÎ "
-"ÎÏÎÏÎÏÏÏÎ. ÎÏÎÏÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÏÎ ÎÎÏÎÎÎÎÏÎ ÏÏÎ ÎÏÎÏÎÏÏÏÎ ÏÏ ÎÎÏÎÏ "
-"ÏÎÏ ÎÎÎÏÏÎÏÎÏ ÎÏÎÎÎÏÎÏ ÏÎÏ ÎÏÎÎÎÏÎÏ."
+#~ msgid "How To Deal With Strings - The Python GTK+ 3 Tutorial"
+#~ msgstr "ÎÏÏ ÎÎ ÎÎÏÎÎÎÏÏÏÎÏÎÏÎ ÏÎÏ ÏÏÎÎÎÎÎÏÎÎÏÎÏ - ÎÎ ÎÎÎÎÎÎ Python GTK+ 3"
 
-#: C/03_getting_the_signal.js.page:102(p)
-msgid ""
-"Now we'll create the Button. We set its label property to show the text that "
-"we want on the Button, and we connect its \"clicked\" signal to a function "
-"called _getACookie, which we'll write after we're done building our "
-"application's UI."
-msgstr ""
-"ÎÏÏÎ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ to ÎÎÏÎÏÎ. ÎÏÎÎÎÏÎÎ ÏÎÎ ÎÎÎÏÏÎÏÎ ÏÎÏ ÎÏÎÎÎÏÎ ÎÎÎ ÎÎ "
-"ÎÎÏÎÎÎÏÎÏÎÎ ÏÎ ÎÎÎÎÎÎÎ ÏÎÏ ÎÎÎÎÏÎÎ ÏÏÎ ÎÎÏÎÏÎ ÎÎÎ ÏÏÎÎÎÎÏÎÎ ÏÎ ÏÎÎÎ ÏÎÏ "
-"\"clicked\" ÏÎ ÎÎÎ ÏÏÎÎÏÏÎÏÎ ÏÎÏ ÎÎÎÎÏÎÎ _getACookie, ÏÎÏ ÎÎ ÎÏÎÏÎÏÎÎ ÎÏÎÏ "
-"ÎÏÎÏÎÎ ÎÎÎÎÏÎÎ ÏÎÎ UI ÏÎÏ ÎÏÎÎÏÎ ÎÎÏ."
+#~ msgid "Gtk.Statusbar"
+#~ msgstr "Gtk.Statusbar"
 
-#: C/03_getting_the_signal.js.page:110(p)
-msgid ""
-"Finally, we create a Grid, attach the Label and Button to it, add it to the "
-"window and tell the window to show itself and its contents. That's all we "
-"need inside the _buildUI function, so we close it with a bracket, as well as "
-"a comma that tells GNOME to go on to the next function. Note that even "
-"though we wrote the code for the Label first, we can still attach it to the "
-"Grid in a way that will put it on the bottom."
-msgstr ""
-"ÎÎÎÎÎÎ, ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ ÏÎÎÎÎÎ, ÏÏÎÏÎÏÏÎÏÏÎ ÏÎÎ ÎÏÎÎÎÏÎ ÎÎÎ ÏÎ ÎÎÏÎÏÎ ÏÎ "
-"ÎÏÏÏ, ÏÏÎÏÎÎÏÏÎ ÏÎ ÏÏÎ ÏÎÏÎÎÏÏÎ ÎÎÎ ÏÎÎÏÎ ÏÏÎ ÏÎÏÎÎÏÏÎ ÎÎ ÎÎÏÎÎÎÏÎÎ ÏÎÎ "
-"ÎÎÏÏÏ ÏÎÏ ÎÎÎ ÏÎ ÏÎÏÎÎÏÏÎÎÎÎ ÏÎÏ. ÎÏÏÏ ÏÏÎÎÎÎÏÎÎÏÏÎ ÎÎÏÎ ÏÏÎ ÏÏÎÎÏÏÎÏÎ "
-"_buildUI, ÎÏÏÎ ÏÎ ÎÎÎÎÎÎÏÎÎ ÎÎ ÎÎÎ ÏÎÏÎÎÎÎÏÎ, ÎÎÎÏÏ ÎÎÎ ÎÎÎ ÎÏÎÎÎ ÏÎÏ ÎÎÎÎ "
-"ÏÏÎ GNOME ÎÎ ÏÏÎÎÏÎÏÎÎ ÏÏÎÎ ÎÏÏÎÎÎÎ ÏÏÎÎÏÏÎÏÎ. ÎÎÎÎÎÏÏÏÎ ÏÏÎ ÎÎÏÎÎ ÎÎ ÎÎ "
-"ÎÏÎÏÎÎÎ ÏÎÎ ÎÏÎÎÎÎ ÎÎÎ ÏÎÎ ÎÏÎÎÎÏÎ ÏÏÏÏÎ, ÎÏÎÏÎÏÎÎ ÎÎÏÎÎ ÎÎ ÏÎÎ "
-"ÏÏÎÏÎÏÏÎÏÎÏÎÎ ÏÏÎ ÏÎÎÎÎÎ ÎÎ ÏÏÏÏÎ ÏÎÏ ÎÎ ÏÎÎ ÎÎÎÎÎ ÏÏÎ ÏÎÎÎÏ."
+#~ msgid "GtkStatusbar"
+#~ msgstr "GtkStatusbar"
 
-#: C/03_getting_the_signal.js.page:130(p)
-msgid ""
-"Now, we write the _getACookie function. Whenever our Button sends out its "
-"\"clicked\" signal, the code in this function will run. In this case, all it "
-"does is increase the number of cookies by 1, and update the Label to show "
-"the new number of cookies. We do this using the Label's set_label method."
-msgstr ""
-"ÎÏÏÎ, ÎÏÎÏÎÏÎÎ ÏÎ ÏÏÎÎÏÏÎÏÎ _getACookie. ÎÏÎÏÎ ÏÎ ÎÎÏÎÏÎ ÎÎÏ ÏÏÎÎÎÎÎ ÏÎ ÏÎÎÎ "
-"ÏÎÏ \"clicked\", Î ÎÏÎÎÎÎÏ ÏÎ ÎÏÏÎ ÏÎ ÏÏÎÎÏÏÎÏÎ ÎÎ ÎÎÏÎÎÎÏÏÎÎ. ÎÎ ÎÏÏÎÎ ÏÎÎ "
-"ÏÎÏÎÏÏÏÏÎ, ÎÏÏÏ ÏÎÏ ÎÎÎÎÎ ÎÎÎÎÎ ÎÎ ÎÏÎÎÏÎÎ ÏÎÎ ÎÏÎÎÎÏ ÏÏÎ ÎÏÎÏÎÏÏÏÎ ÎÎÏÎ 1 "
-"ÎÎÎ ÎÎ ÎÎÎÎÎÏÏÏÎÎ ÏÎÎ ÎÏÎÎÎÏÎ ÎÎ ÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÎÎ ÎÏÎÎÎÏ ÏÏÎ ÎÏÎÏÎÏÏÏÎ. ÎÎ "
-"ÎÎÎÎÏÎÎ ÎÏÏÏ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ ÎÎÎÎÎÎ set_label ÏÎÏ ÎÏÎÎÎÏÎÏ."
+#~ msgid "Gdk - Key Values"
+#~ msgstr "ÎÎÎÎÏ ÎÎÎÎÎÎÎÏ Gdk"
 
-#: C/03_getting_the_signal.js.page:131(p)
-msgid ""
-"Many widgets have the same properties and methods. Both Labels and Buttons, "
-"for instance, have a label property that says what text is inside them, and "
-"get_label and set_label methods that let you check what that text is and "
-"change it, respectively. So if you learn how one widget works, you'll also "
-"know how others like it work."
-msgstr ""
-"ÎÎÎÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÏÎÏÎ ÏÎÏ ÎÎÎÎÏ ÎÎÎÏÏÎÏÎÏ ÎÎÎ ÎÎÎÏÎÎÏÏ. ÎÎÎ ÎÎ "
-"ÎÏÎÎÎÏÎÏ ÎÎÎ ÏÎ ÎÎÏÎÏÎÎ, ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ, ÎÏÎÏÎ ÎÎÎ ÎÎÎÏÏÎÏÎ ÎÏÎÎÎÏÎÏ ÏÎÏ "
-"ÎÎÎÎ ÏÎÎÎ ÎÎÎÎÎÎÎ ÎÎÎÎÎ ÎÎÏÎ ÏÎÏÏ ÎÎÎ ÏÎÏ ÎÎÎÏÎÎÏÏ et_label ÎÎÎ set_label "
-"ÏÎÏ ÏÎÏ ÎÏÎÏÏÎÏÎÏÎ ÎÎ ÎÎÎÎÎÎÏÎ ÏÎÎÎ ÎÎÎÎÎ ÎÏÏÏ ÏÎ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎ ÏÎ "
-"ÎÎÎÎÎÎÏÎ, ÎÎÏÎÏÏÎÎÏÎ. ÎÏÏÎ ÎÎÎ ÎÎÎÎÎÎÎÏÎ ÏÏÏ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÎÏÎÎÏÎÎ, "
-"ÎÎ ÎÎÏÎÏÎ ÎÏÎÏÎÏ ÏÏÏ ÎÎÎÎ ÏÎÎ ÎÎ ÎÏÏÏ ÎÎÏÎÎÏÎÏÎ."
+#~ msgid "Gtk.Frame"
+#~ msgstr "Gtk.Frame"
 
-#: C/03_getting_the_signal.js.page:144(p)
-msgid ""
-"Finally, we run the application, using the same kind of code as in our last "
-"tutorial."
-msgstr ""
-"ÎÎÎÎÎÎ, ÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ, ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ ÎÎÎÎ ÎÎÎÎÏ ÎÏÎÎÎÎ ÏÏÏÏ "
-"ÏÏÎ ÏÎÎÎÏÏÎÎÎ ÎÎÏ ÎÎÎÎÎÎ."
+#~ msgid "Gtk.Paned"
+#~ msgstr "Gtk.Paned"
 
-#: C/03_getting_the_signal.js.page:153(title)
-msgid "Flip the switch"
-msgstr "ÎÎÎÏÏÏÎÏÎ ÏÎÏ ÎÎÎÎÏÏÏÎ"
+#~ msgid "GtkStatusBar"
+#~ msgstr "GtkStatusBar"
 
-#: C/03_getting_the_signal.js.page:154(p)
-msgid ""
-"Buttons aren't the only input widgets in our Gtk+ toolbox. We can also use "
-"switches, like the one in this example. Switches don't have a label "
-"property, so we have to create a separate Label that says what it does to go "
-"next to it."
-msgstr ""
-"ÎÎ ÎÎÏÎÏÎÎ ÎÎÎ ÎÎÎÎÎ ÏÎ ÎÏÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÏÏÎÎÏ ÏÏÎÎ ÎÏÎÎÎÎÎÎÎÎÎÎ ÎÎÏ "
-"Gtk+. ÎÏÎÏÎÏÎÎ ÎÏÎÏÎÏ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÎÎÎÏÏÏÎÏ, ÏÏÏÏ ÎÏÏÏÎ ÏÎ ÏÎ "
-"ÏÏÎÎÎÎÏÎÎÎÎÎ ÏÎÏÎÎÎÎÎÎÎ. ÎÎ ÎÎÎÎÏÏÏÎÏ ÎÎÎ ÎÏÎÏÎ ÎÎÎ ÎÎÎÏÏÎÏÎ ÎÏÎÎÎÏÎÏ, ÎÏÏÎ "
-"ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ ÎÎÎ ÎÎÏÏÏÎÏÏÎ ÎÏÎÎÎÏÎ ÏÎÏ ÎÎÎÎ ÏÎ ÎÎÎÎÎ ÎÎÎ ÎÎ ÏÎÎÎ "
-"ÎÎÏÎÎ ÏÎÏ."
+#~ msgid "String Utility Functions"
+#~ msgstr "ÎÏÎÎÏÏÎÏÎÎÏ ÎÎÎÎÎÏÎÎÎÏ ÏÏÎÎÎÎÎÏÎÎÏÎÏ"
 
-#: C/03_getting_the_signal.js.page:158(p)
-msgid ""
-"A Switch has two positions, Off and On. When a Switch is turned on, its text "
-"and background color change, so you can tell which position it's in."
-msgstr ""
-"ÎÎÎÏ ÎÎÎÎÏÏÏÎÏ ÎÏÎÎ ÎÏÎ ÎÎÏÎÎÏ, ÎÎÎÎÎÏÎÏ ÎÎÎ ÎÎÎÏÎÏ. ÎÏÎÎ ÎÎÎÏ ÎÎÎÎÏÏÏÎÏ "
-"ÎÎÎÏÎÎÏÎÎÎÎÏÎÎ ÏÎ ÎÎÎÎÎÎÎ ÏÎÏ ÎÎÎ ÏÎ ÏÏÏÎÎ ÏÎÏÎÏÎÎÎÎÎÏ ÎÎÎÎÎÎÏÎ ÎÎÎ ÎÏÎÏÎÎÏÎ "
-"ÎÎ ÏÎÎÏÎ ÏÎ ÏÎÎÎ ÎÎÏÎ ÎÎÎÎÎ."
+#~ msgid "Gtk.Widget"
+#~ msgstr "Gtk.Widget"
 
-#: C/03_getting_the_signal.js.page:162(p)
-msgid ""
-"You may have seen Switches like these in GNOME's accessibility menu, which "
-"let you turn features like large text and the on-screen keyboard on and off. "
-"In this case, the Switch controls our imaginary cookie dispenser. If the "
-"Switch is turned on, you can get cookies by clicking the \"Get a cookie\" "
-"Button. If it's turned off, clicking the Button won't do anything."
-msgstr ""
-"ÎÏÎÏÎÎÏÎ ÎÎ ÎÏÎÏÎ ÎÎÎ ÎÎÎÎÏÏÏÎÏ ÏÏÏÏ ÎÏÏÎÏÏ ÏÏÎ ÎÎÎÎÏ ÏÏÏÏÎÎÏÎÏ ÏÎÏ GNOME, "
-"ÏÎÏ ÏÎÏ ÎÏÎÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎÎÏÎ ÎÎÏÏÎÏÎÎÏÎ ÏÏÏÏ ÎÎÎÎÎÎ ÎÎÎÎÎÎÎ ÎÎÎ ÏÎ "
-"ÏÎÎÎÏÏÎÎÏÎÎÎ ÎÎÏÎÎÏ ÎÎÎÏÎÏ ÎÎÎ ÎÎÎÎÎÏÎÏ. ÎÎ ÎÏÏÎÎ ÏÎÎ ÏÎÏÎÏÏÏÏÎ, Î ÎÎÎÎÏÏÏÎÏ "
-"ÎÎÎÎÏÎÎ ÏÎ ÏÎÎÏÎÏÏÎÎÏ ÎÎÏ ÎÎÏÎÎÎ ÎÏÎÏÎÏÏÏÎ. ÎÎÎ Î ÎÎÎÎÏÏÏÎÏ ÎÎÎÎÎ ÎÎÎÏÎÏÏ, "
-"ÎÏÎÏÎÎÏÎ ÎÎ ÏÎÏÎÏÎ ÎÏÎÏÎÏÏÎ ÏÎÏÏÎÏÎÏ ÏÏÎ ÎÎÏÎÏÎ \"Get a cookie\". ÎÎÎ ÎÎÎÎÎ "
-"ÎÎÎÎÎÏÎÏÏ, ÏÎÏÏÎÏÎÏ ÏÎ ÎÎÏÎÏÎ ÎÎÎ ÎÎ ÎÎÎÎÎ ÏÎÏÎÏÎ."
+#~ msgid "Gdk.keyval_name"
+#~ msgstr "Gdk.keyval_name"
 
-#: C/03_getting_the_signal.js.page:163(p)
-msgid ""
-"You can get to the accessibility menu by clicking on the outline of a human, "
-"near your name in the upper-right corner of the screen."
-msgstr ""
-"ÎÏÎÏÎÎÏÎ ÎÎ ÏÎÏÎÏÎ ÏÎ ÎÎÎÎÏ ÏÏÏÏÎÎÏÎÏ ÏÎÏÏÎÏÎÏ ÏÏÎ ÏÎÏÎÎÏÎÎÎÎ ÎÎÏÏ ÎÎÎÏÏÏÎÏ, "
-"ÎÎÎÏÎ ÏÏÎ ÏÎÎÎÎ ÏÎÏ ÏÏÎÎ ÏÎÎÏ ÎÎÎÎÎ ÎÏÎÎÎ ÏÎÏ ÎÎÏÎÎÏ."
+#~ msgid "Key Values"
+#~ msgstr "ÎÎÎÎÏ ÎÎÎÎÎÎÎÏ"
 
-#: C/03_getting_the_signal.js.page:164(p)
-msgid "Here's how we create the Switch:"
-msgstr "ÎÎ ÏÏÏ ÎÎÎÎÎÏÏÎÎÏÎÎ ÏÎÎ ÎÎÎÎÏÏÏÎ:"
+#~ msgid "GObject"
+#~ msgstr "GObject"
 
-#: C/03_getting_the_signal.js.page:170(p)
-msgid ""
-"We don't actually need to connect the Switch to anything. All we need to do "
-"is write an if statement in our _getACookie function, to check to see if the "
-"Switch is turned on. If we wanted to make something happen as soon as you "
-"flip the Switch, though, we would connect its notify::active signal, like so:"
-msgstr ""
-"ÎÎÎ ÏÏÎÎÎÎÏÎÎÏÏÎ ÏÏÎÎÎÎÏÎ ÎÎ ÏÏÎÎÎÏÎÏÎÎ ÏÎÎ ÎÎÎÎÏÏÏÎ ÎÎ ÎÎÏÎ. ÎÏÏÏ ÏÎÏ "
-"ÏÏÎÎÎÎÏÎÎÏÏÎ ÎÎ ÎÎÎÎÏÎÎ ÎÎÎÎÎ ÎÎ ÎÏÎÏÎÏÎÎ ÎÎÎ ÏÏÏÏÎÏÎ if ÏÏÎ ÏÏÎÎÏÏÎÏÎ ÎÎÏ "
-"_getACookie, ÎÎÎ ÎÎ ÎÎÎÎÎÎÏÎÎ ÎÎ ÎÎÏÎÎ ÎÎÎ Î ÎÎÎÎÏÏÏÎÏ ÎÎÎÎÎ ÎÎÎÏÎÏÏ. ÎÎÎ ÎÎ "
-"ÎÎÎÎÎÎ ÎÎ ÎÎÎÎÏÎÎ ÎÎÏÎ ÎÎ ÏÏÎÎÎÎ ÎÏÎÎÏ ÎÎÏÎÏÏÏÎÏÎÏÎ ÏÎÎ ÎÎÎÎÏÏÏÎ, ÏÎÏÏ, ÎÎ "
-"ÏÏÎÎÎÎÎÎ ÏÎ ÏÎÎÎ ÏÎÏ notify::active, ÏÏ ÎÎÎÏ:"
+#~ msgid "Gtk.SpinButton"
+#~ msgstr "Gtk.SpinButton"
 
-#: C/03_getting_the_signal.js.page:176(p)
-msgid ""
-"A Switch is set to the off position by default. If we wanted the Switch to "
-"start out turned on, we would set the value of its active property to true "
-"when we create it."
-msgstr ""
-"ÎÎÎÏ ÎÎÎÎÏÏÏÎÏ ÎÏÎÎÎÏÎÎ ÏÏÎÎ ÎÎÎÎÎÏÎÎ ÎÎÏÎ ÎÏÏ ÏÏÎÎÏÎÎÎÎÎ. ÎÎÎ ÎÎÎÎÏÎÎ Î "
-"ÎÎÎÎÏÏÏÎÏ ÎÎ ÎÎÎÎÎÎ ÎÎÎÏÎÏÏ, ÎÎ ÎÏÎÎÎÎÎ ÏÎÎ ÏÎÎÎ ÏÎÏ ÎÎÎÏÎÎÏ ÎÎÎÏÏÎÏÎÏ ÏÎ "
-"ÎÎÎÎÎ ÏÏÎÎ ÏÎ ÎÎÎÎÎÏÏÎÎÏÎÎ."
+#~ msgid "GtkSpinButton"
+#~ msgstr "GtkSpinButton"
 
-#: C/03_getting_the_signal.js.page:181(p)
-msgid ""
-"Let's just create it normally, though, and then create the Label that goes "
-"with it. We want the Switch and the Label to be kept right next to each "
-"other, so we'll create a Grid just for them, then put that Grid in our "
-"larger Grid that holds all the widgets inside it. Here's what the code looks "
-"like to create all that:"
-msgstr ""
-"ÎÏ ÏÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ ÎÎÎÎÎÎÎÎ, ÏÎÏÏ, ÎÎÎ ÎÏÎÎÏÎ ÎÏ ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ ÏÎÎ "
-"ÎÏÎÎÎÏÎ ÏÎÏ ÏÎÎÎÎÎÎÎ ÎÎÎÎ ÏÎÏ. ÎÎÎÎÏÎÎ Î ÎÎÎÎÏÏÏÎÏ ÎÎÎ Î ÎÏÎÎÎÏÎ ÎÎ "
-"ÎÏÎÏÎÎÏÎÏÎÎ ÎÎÏÎÎÏÏ ÎÎÏÎÎ ÎÎÏÎÎÏ ÏÎÏÏ, ÎÏÏÎ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ ÎÎÎ ÏÎÎÎÎÎ "
-"ÎÏÎÎ ÎÎÎ ÎÏÏÎÏÏ, ÎÏÎÎÏÎ ÎÎ ÎÎÎÎÏÎÎ ÎÏÏÏ ÏÎ ÏÎÎÎÎÎ ÏÏÎ ÎÎÎÎÎÏÏÎÏÏ ÎÎÏ ÏÎÎÎÎÎ "
-"ÏÎÏ ÎÏÎÏÎ ÏÎÎ ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÏÎ ÏÎÏ. ÎÎ ÏÏÏ ÎÎ ÏÎÎÎÎÏÎÎ Î ÎÏÎÎÎÎÏ "
-"ÎÎÎ ÏÎ ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ:"
+#~ msgid "GtkAdjustment"
+#~ msgstr "GtkAdjustment"
 
-#: C/03_getting_the_signal.js.page:200(p)
-msgid "And now we arrange everything in the larger Grid like so."
-msgstr "ÎÎÎ ÏÏÏÎ ÏÎÎÏÎÏÎÎÎÏÎÎ ÏÎ ÎÎÎÎÏÎ ÏÏÎ ÎÎÎÎÎÏÏÎÏÎ ÏÎÎÎÎÎ ÎÏÏÎ."
+#~ msgid "Gtk.Adjustment"
+#~ msgstr "Gtk.Adjustment"
 
-#: C/03_getting_the_signal.js.page:208(p)
-msgid ""
-"Now we change the _getACookie function so that it checks to see if the "
-"cookie dispenser is turned on. We do that by using the Switch's get_active "
-"method. It returns true if the Switch is turned on, and false if the Switch "
-"is turned off."
-msgstr ""
-"ÎÏÏÎ ÎÎÎÎÎÎÏÎÎ ÏÎ ÏÏÎÎÏÏÎÏÎ _getACookie ÎÏÏÎ ÏÏÏÎ ÎÎ ÎÎÎÎÏÎÎ ÎÎÎ Î ÏÎÏÎÎÎÏÎÏ "
-"ÏÎÏ ÎÏÎÏÎÏÏÎÏ ÎÎÎÎÎ ÎÎÎÏÎÏÏ. ÎÎ ÎÎÎÎÏÎÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ ÎÎÎÎÎÎ ÏÎÏ "
-"ÎÎÎÎÏÏÏÎ get_active. ÎÏÎÏÏÏÎÏÎÎ ÎÎÎÎÎÏ ÎÎÎ Î ÎÎÎÎÏÏÏÎÏ ÎÎÎÎÎ ÎÎÎÏÎÏÏ ÎÎÎ "
-"ÏÎÏÎÎÏ ÎÎÎ Î ÎÎÎÎÏÏÏÎÏ ÎÎÎÎÎ ÎÎÎÎÎÏÎÏÏ."
+#~ msgid "GtkSeparator"
+#~ msgstr "GtkSeparator"
 
-#: C/03_getting_the_signal.js.page:209(p)
-msgid ""
-"When a method is used in an if statement like this, the code inside the if "
-"statement is executed if the method returns true."
-msgstr ""
-"ÎÏÎÎ ÎÎÎ ÎÎÎÎÎÎÏ ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÏÎ ÎÎÎ ÎÎÎÏÏÎ if ÏÏÏÏ ÎÏÏÎ, Î ÎÏÎÎÎÎÏ ÎÎÏÎ "
-"ÏÏÎÎ ÏÏÏÏÎÏÎ if ÎÎÏÎÎÎÎÏÎÎ ÎÎÎ Î ÎÎÎÎÎÎÏ ÎÏÎÏÏÏÎÏÎÎ ÎÎÎÎÎÏ."
+#~ msgid "GtkImage"
+#~ msgstr "GtkImage"
 
-#: C/03_getting_the_signal.js.page:228(title)
-msgid "Tuning the radio"
-msgstr "ÎÏÎÎÎÏÎ ÏÎÏ ÏÎÎÎÎÎÎÏÎÏÎÎÏ"
+#~ msgid "Gtk.Scale"
+#~ msgstr "Gtk.Scale"
 
-#: C/03_getting_the_signal.js.page:230(p)
-msgid ""
-"Another type of input widget we can use is called the RadioButton. You "
-"create them in groups, and then only one RadioButton in a group can be "
-"selected at a time. They're called RadioButtons because they work like the "
-"channel preset button in old-style car radios. The radio could only be tuned "
-"to one station at a time, so whenever you pressed one button in, another "
-"would pop back out."
-msgstr ""
-"ÎÎÎÏ ÎÎÎÎÏ ÏÏÏÎÏ ÎÏÎÏÎÎÎÏ ÏÏÏÏÎÏÎÎÎÏ ÎÎÏÏÎÎÏ ÏÎÏ ÎÏÎÏÎÏÎÎ ÎÎ "
-"ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÎÎÎÏÎÎ ÏÎ RadioButton. ÎÎ ÎÎÎÎÎÏÏÎÎÎÏÎ ÏÎ ÎÎÎÎÎÏ ÎÎÎ "
-"ÎÏÎÎÏÎ ÎÏÎÎ ÎÎÎ RadioButton ÏÎ ÎÎÎ ÎÎÎÎÎ ÎÏÎÏÎÎ ÎÎ ÎÏÎÎÎÎÎÎ ÏÎ ÏÎÏÎ. "
-"ÎÎÎÎÎÏÎÎ RadioButtons ÎÏÎÎÎÎ ÎÎÏÎÎÏÎÏÎ ÏÏÏÏ ÏÎ ÎÎÏÎÏÎ ÏÏÎÎÏÎÎÎÎÎÏ ÎÎÎÎÎÎÎÏ "
-"ÏÎ ÏÎÎÎÎ ÏÎÎÎÏÏÏÎÎ ÎÏÏÎÎÎÎÎÏÎÏ. ÎÎ ÏÎÎÎÎÏÎÎÎÏÏÎ ÎÏÎÏÎÎ ÎÎ ÏÏÎÎÎÏÏÎÎ ÎÏÎÎ ÏÎ "
-"ÎÎÎ ÏÏÎÎÎÏ ÏÎ ÏÎÏÎ, ÎÏÏÎ ÏÏÎÏÎ ÏÎÏÎÏÎ ÎÎÎ ÎÎÏÎÏÎ, ÎÎÎ ÎÎÎÎ ÏÎÏÎÎÎÏÎÎ ÎÎÏ."
+#~ msgid "Gtk.PositionType"
+#~ msgstr "Gtk.PositionType"
 
-#: C/03_getting_the_signal.js.page:234(p)
-msgid ""
-"First off, let's change our ApplicationWindow's name and increase its "
-"border_width property, so that our widgets aren't packed in too tightly. The "
-"border_width is the number of pixels between any widget and the edge of the "
-"window."
-msgstr ""
-"ÎÏÏÏÎ, ÎÏ ÎÎÎÎÎÎÏÎÎ ÏÎ ÏÎÎÎÎ ÏÎÏ ApplicationWindow ÎÎÏ ÎÎÎ ÎÏ ÎÏÎÎÏÎÏÎÎ ÏÎÎ "
-"ÎÎÎÏÏÎÏÎ ÏÎÏ border_width, ÎÏÏÎ ÏÏÏÎ ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÏ ÎÎ ÎÎÎ "
-"ÏÎÎÎÏÎÏÎÎÏÎÎ ÏÏÎÏÎÎÎÎÎÎ ÏÏÎÎÏÎ. ÎÎ border_width ÎÎÎÎÎ Î ÎÏÎÎÎÏÏ ÏÏÎ "
-"ÎÎÎÎÎÎÏÏÎÎÏÎÎÏÎ ÎÎÏÎÎÏ ÎÎÎÎ ÎÏÎÏÎÎÎÏ ÏÏÏÏÎÏÎÎÎÏ ÎÎÎ ÏÎÏ ÎÎÏÎÏ ÏÎÏ ÏÎÏÎÎÏÏÎÏ."
+#~ msgid "Gtk.Orientation"
+#~ msgstr "Gtk.Orientation"
 
-#: C/03_getting_the_signal.js.page:246(p)
-msgid ""
-"After that, we create the RadioButtons. Remember how they're created in "
-"groups? The way we do that, is we set each new RadioButton's group property "
-"to the name of another RadioButton."
-msgstr ""
-"ÎÎÏÎ ÎÏÏ ÎÏÏÏ, ÎÎÎÎÎÏÏÎÎÏÎÎ ÏÎ RadioButtons. ÎÏÎÎÏÏÎ ÏÏÏ ÎÎÎÎÎÏÏÎÎÎÎÎÎÎ ÏÎ "
-"ÎÎÎÎÎÏ; Î ÏÏÏÏÎÏ ÏÎÏ ÏÎ ÎÎÎÎÏÎÎ, ÎÎÎÎÎ ÎÏÎÎÎÎÏÎÏ ÎÎÎÎ ÎÎÎ ÎÎÎÏÏÎÏÎ ÎÎÎÎÎÏ "
-"RadioButton ÏÏÎ ÏÎÎÎÎ ÎÎÏÏ ÎÎÎÎÏ RadioButton."
+#~ msgid "GtkScale"
+#~ msgstr "GtkScale"
 
-#: C/03_getting_the_signal.js.page:256(p)
-msgid ""
-"Next, we create a Grid for the RadioButtons. Remember, we don't have to "
-"arrange things in Grids in the same order that we create them in."
-msgstr ""
-"ÎÏÏÎÏÎ, ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ ÏÎÎÎÎÎ ÎÎÎ ÏÎ RadioButtons. ÎÎ ÎÏÎÎÏÏÎ, ÎÎÎ ÎÎÎÎÏÏÎ "
-"ÏÏÎÏÏÎÏÎÎÎÎÎ ÎÎ ÏÎÎÏÎÏÎÎÎÏÎÏÎÎ ÏÎ ÏÏÎÎÎÎÏÎ ÏÎ ÏÎÎÎÎÎÏÎ ÎÎ ÏÎÎ ÎÎÎÎ ÏÎÎÏÎ ÏÎÏ "
-"ÏÎ ÎÎÎÎÎÏÏÎÎÏÎÎ."
+#~ msgid "GtkRange"
+#~ msgstr "GtkRange"
 
-#: C/03_getting_the_signal.js.page:265(p)
-msgid ""
-"Normally, the RadioButton that's selected by default is the one that's the "
-"name of the group. We want the first \"Not cookie\" button to be selected by "
-"default, though, so we use its set_active method."
-msgstr ""
-"ÎÎÎÎÎÎÎÎ, ÏÎ RadioButton ÏÎÏ ÎÏÎÎÎÏÏÎÎÎ ÎÏÏ ÏÏÎÎÏÎÎÎÎÎ ÎÎÎÎÎ ÎÏÏÏ ÏÎÏ "
-"ÎÎÏÎÎÏÎÏ ÏÎÏ ÎÎÎÎÎÏ. ÎÎÎÎÏÎÎ ÏÎ ÏÏÏÏÎ ÎÎÏÎÏÎ \"Not cookie\" ÎÎ ÎÏÎÎÎÎÎÏÎÎ "
-"ÎÏÏ ÏÏÎÎÏÎÎÎÎÎ, ÏÎÏÏ, ÎÏÏÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÏÎ ÎÎÎÎÎÏ ÏÎÏ set_active."
+#~ msgid "gnome-doc-list gnome org"
+#~ msgstr "gnome-doc-list gnome org"
 
-#: C/03_getting_the_signal.js.page:266(p)
-msgid "We could also set its active property to true when we create it."
-msgstr ""
-"ÎÎ ÎÏÎÏÎÏÏÎÎÎ ÎÏÎÏÎÏ ÎÎ ÎÏÎÏÎÏÎÎ ÏÎÎ ÎÎÎÏÎÎ ÏÎÏ ÎÎÎÏÏÎÏÎ ÏÎ ÎÎÎÎÎÏ ÏÏÎÎ ÏÎ "
-"ÎÎÎÎÎÏÏÎÎÏÎÎ."
+#~ msgid "jhs gnome org"
+#~ msgstr "jhs gnome org"
 
-#: C/03_getting_the_signal.js.page:272(p)
-msgid "Now we arrange everything in our main Grid like usual ..."
-msgstr "ÎÏÏÎ ÏÎÎÏÎÏÎÎÎÏÎÎ ÎÎÎÎÏÎ ÏÏÎ ÎÎÎÏ ÎÎÏ ÎÏÏÎÎ ÏÎÎÎÎÎ ÏÏÏÏ ÏÏÎÎÎÏÏ ..."
+#~ msgid "GtkRadioButton"
+#~ msgstr "GtkRadioButton"
 
-#: C/03_getting_the_signal.js.page:280(p)
-msgid ""
-"And then we change our _getACookie function to test to see if the cookie "
-"button is the one that's selected."
-msgstr ""
-"ÎÎÎ ÎÏÎÎÏÎ ÎÎÎÎÎÎÏÎÎ ÏÎ ÏÏÎÎÏÏÎÏÎ ÎÎÏ _getACookie ÎÎÎ ÎÎ ÎÎÎÎÎÎÏÎÎ ÎÎÎ ÏÎ "
-"ÎÎÏÎÏÎ ÎÏÎÏÎÏÏÎ ÎÎÎÎÎ ÎÏÏÏ ÏÎÏ ÎÏÎÎÎÏÏÎÎÎ."
+#~ msgid "Gtk.ProgressBar"
+#~ msgstr "Gtk.ProgressBar"
 
-#: C/03_getting_the_signal.js.page:299(title)
-msgid "Can you spell \"cookie\"?"
-msgstr "ÎÏÎÏÎÎÏÎ ÎÎ ÏÏÎÎÎÎÎÏÎÏÎ \"ÎÏÎÏÎÏÏÎ\";"
+#~ msgid "GLib.Timeout"
+#~ msgstr "GLib.Timeout"
 
-#: C/03_getting_the_signal.js.page:301(p)
-msgid ""
-"The last input widget we're going to cover is the Entry widget, which is "
-"used for single-line text entry."
-msgstr ""
-"ÎÏÎ ÏÎÎÎÏÏÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÎÏÏÎÎÏ ÏÎÏ ÏÏÏÎÎÎÏÎÎ ÎÎ ÎÎÎÏÏÎÏÎÎ ÎÎÎÎÎ ÏÎ "
-"ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÎÏÎÏÏÏÎÏÎÏ, ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÎÎÎ ÎÎÏÎÎÏÎÎ ÎÎÎÎÎÎÎÏ "
-"ÎÎÎÎÏ ÎÏÎÎÎÎÏ."
+#~ msgid "GtkProgressBar"
+#~ msgstr "GtkProgressBar"
+
+#~ msgid "GLib - The Main Event Loop"
+#~ msgstr "GLib - Î ÎÏÏÎÎÏ ÎÏÏÏÎÏ ÏÏÎÎÎÎÏÎÏ"
+
+#~ msgid "GLib"
+#~ msgstr "GLib"
+
+#~ msgid "G_Timeout"
+#~ msgstr "G_Timeout"
 
-#: C/03_getting_the_signal.js.page:302(p)
-msgid ""
-"If you need to be able to enter in a whole paragraph or more, like if you "
-"are building a text editor, you'll want to look at the much more "
-"customizable <link xref=\"textview.js\">TextView</link> widget."
-msgstr ""
-"ÎÎÎ ÏÏÎÎÎÎÎÏÏÎ ÎÎ ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÏÎÎÎÏÎ ÏÎ ÎÎÎ ÏÎÎÏÎ ÏÎÏÎÎÏÎÏÎ Î ÏÎÏÎÏÏÏÏÎÏÎ, "
-"ÏÏÏÏ ÎÎÎ ÎÎÎÎÎÏÎ ÎÎÎÎ ÎÏÎÎÎÏÎÎÏÏÎ ÎÎÎÎÎÎÎÏ, ÎÎ ÎÎÎÎÏÎ ÎÎ ÏÎÎÎÎÏÎÎ ÏÏÎ ÏÎÎÏ "
-"ÏÎÏÎÏÏÏÏÎÏÎ ÏÏÎÏÎÏÎÏÏÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ <link xref=\"textview.js"
-"\">TextView</link>."
+#~ msgid "chrisk openismus com"
+#~ msgstr "chrisk openismus com"
 
-#: C/03_getting_the_signal.js.page:305(p)
-msgid "After we change the window's name, we create the Entry widget."
-msgstr ""
-"ÎÏÎÏ ÎÎÎÎÎÎÏÎÎ ÏÎ ÏÎÎÎÎ ÏÎÏ ÏÎÏÎÎÏÏÎÏ, ÎÎÎÎÎÏÏÎÎÏÎÎ ÏÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ "
-"ÎÎÏÎÏÏÏÎÏÎÏ."
+#~ msgid "GtkPaned"
+#~ msgstr "GtkPaned"
 
-#: C/03_getting_the_signal.js.page:311(p)
-msgid "Next, we arrange everything in the Grid ..."
-msgstr "ÎÏÏÎÏÎ, ÏÎÎÏÎÏÎÎÎÏÎÎ ÎÎÎÎÏÎ ÏÏÎ ÏÎÎÎÎÎ ..."
+#~ msgid "GtkComboBox"
+#~ msgstr "GtkComboBox"
 
-#: C/03_getting_the_signal.js.page:319(p)
-msgid ""
-"And now we modify _getACookie's if statement again, using the Entry's "
-"get_text method to retrieve the text that you entered into it and see if you "
-"spelled \"cookie\" right. We don't care whether you capitalize \"cookie\" or "
-"not, so we use JavaScript's built-in toLowerCase method to change the "
-"Entry's text to all lower case inside the if statement."
-msgstr ""
-"ÎÎÎ ÏÏÏÎ ÏÏÎÏÎÏÎÎÎÏÎÎ ÏÎÎ ÎÎÎÏÏÎ if ÎÎÎÎ ÏÎÏ _getACookie, ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ "
-"ÎÎÎÎÎÎ get_text ÏÎÏ ÎÎÏÎÏÏÏÎÏÎÏ ÎÎÎ ÎÎÎÎÏÎÏÎ ÏÎÏ ÎÎÎÎÎÎÎÏ ÏÎÏ ÎÎÎÎÏÎ ÎÎÏÎ "
-"ÏÎÏ ÎÎÎ ÎÎÎÏÎ ÎÎÎ ÏÏÎÎÎÎÎÏÏÎÎÎ ÏÏÏÏÎ ÏÎ \"cookie\". ÎÎÎ ÎÎÏ ÎÎÎÎÎÏÎÏÎÎ ÎÎÎ "
-"ÎÎÎÎÏÎ ÎÎÏÎÎÎÎÎ ÏÎ \"cookie\" Î ÏÏÎ, ÎÏÏÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÎÏÏÎÎÏÏÎÎÎÎ "
-"ÎÎÎÎÎÎ toLowerCase ÏÎÏ JavaScript ÎÎÎ ÎÎÎÎÎÎ ÏÎÏ ÎÎÎÎÎÎÎÏ ÎÎÏÎÏÏÏÎÏÎÏ ÏÎ ÏÎÎ "
-"ÏÎ ÏÎÎÎ ÎÏÎÎÎÎÏÎ ÏÏÎ ÎÎÎÏÏÎ if."
+#~ msgid "GtkCellRenderer"
+#~ msgstr "GtkCellRenderer"
 
-#: C/03_getting_the_signal.js.page:320(p)
-msgid ""
-"An Entry widget doesn't have a label property, which is a set text string "
-"that the user can't change. (You can't normally change the label on a "
-"Button, for instance.) Instead, it has a text property, which changes to "
-"match what the user types in."
-msgstr ""
-"ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÎÏÎÏÏÏÎÏÎÏ ÎÎÎ ÎÏÎÎ ÎÎÎ ÎÎÎÏÏÎÏÎ ÎÏÎÎÎÏÎ, ÏÎÏ ÎÎÎÎÎ "
-"ÎÎÎ ÏÏÎÎÎÎ ÏÏÎÎÎÎÎÏÎÎÏÎÏ ÎÎÎÎÎÎÎÏ ÏÎÏ Î ÏÏÎÏÏÎÏ ÎÎÎ ÎÏÎÏÎÎ ÎÎ ÎÎÎÎÎÎÎ. (ÎÎÎ "
-"ÎÏÎÏÎÎÏÎ ÎÎÎÎÎÎÎÎ ÎÎ ÎÎÎÎÎÎÏÎ ÏÎÎ ÎÏÎÎÎÏÎ ÏÎ ÎÎÎ ÎÎÏÎÏÎ, ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ.) "
-"ÎÏÎ ÎÎÏÎ ÏÎÏ ÎÏÎÎ ÎÎÎ ÎÎÎÏÏÎÏÎ ÎÎÎÎÎÎÎÏ, ÏÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎ ÏÏÎÏÏÎÎÎ ÎÎ ÏÏÎ "
-"Î ÏÏÎÏÏÎÏ ÏÎÎÎÏÏÎÎÎÎÎÎ."
+#~ msgid "The Python Gtk+ 3 Tutorial - Tree and List Widgets"
+#~ msgstr "ÎÎ ÎÎÎÎÎÎ Python Gtk+ 3 - ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÎÎÏÎÏ ÎÎÎ ÎÎÏÏÎÏ"
 
-#: C/03_getting_the_signal.js.page:340(p)
-msgid ""
-"<link xref=\"04_popup_dialog_boxes.js\">Click here</link> to go on to the "
-"next tutorial. Or keep reading, if you'd like to see the complete code for "
-"each version of our cookie maker application."
-msgstr ""
-"<link xref=\"04_popup_dialog_boxes.js\">ÏÎÏÎÏÏÎ ÎÎÏ</link> ÎÎÎ ÎÎ ÏÏÎÎÏÎÏÎÏÎ "
-"ÎÎ ÏÎ ÎÏÏÎÎÎÎ ÎÎÎÎÎÎ. Î ÏÏÎÎÏÎÏÏÎ ÏÎÎ ÎÎÎÎÎÏÏÎ, ÎÎÎ ÎÎ ÎÎÎÎÏÎ ÎÎ ÎÎÎÏÎ ÏÎÎ "
-"ÏÎÎÏÎ ÎÏÎÎÎÎ ÎÎÎ ÎÎÎÎ ÎÎÎÎÏÎ ÏÎÏ ÎÏÎÏÎÎÎÎÏ ÎÎÎÎÎÏÏÎÎÎÏ ÎÏÎÏÎÏÏÎÏ."
+#~ msgid "The Python Gtk+ 3 Tutorial - CellRenderers"
+#~ msgstr "ÎÎ ÎÎÎÎÎÎ Python Gtk+ 3 - CellRenderers"
 
-#: C/03_getting_the_signal.js.page:341(p)
-msgid ""
-"The main JavaScript tutorials page has <link xref=\"beginner.js#buttons"
-"\">more detailed code samples</link> for each input widget, including "
-"several not covered here."
-msgstr ""
-"Î ÎÏÏÎÎ ÏÎÎÎÎÎ ÎÎÎÎÎÎÏÏÎ JavaScript ÎÏÎÎ <link xref=\"beginner.js#buttons"
-"\">ÏÎÎ ÎÎÏÏÎÎÎÏÎ ÎÎÎÎÎÎÏÎ ÎÏÎÎÎÎ</link> ÎÎÎ ÎÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÎÏÏÎÎÏ, "
-"ÏÏÎÏÎÏÎÎÎÎÎÎÎÎÎÎÎÏÎ ÎÏÎÎÏÏÎ ÏÎÏ ÎÎÎ ÎÎÎÏÏÏÎÎÏÎÎ ÎÎÏ."
+#~ msgid "The Python Gtk+ 3 Tutorial - ComboBox"
+#~ msgstr "ÎÎ ÎÎÎÎÎÎ Python Gtk+ 3 - ComboBox"
 
-#: C/03_getting_the_signal.js.page:346(title)
-msgid "Complete code samples"
-msgstr "ÎÎÎÎÎÎÏÎ ÏÎÎÏÎÏÏ ÎÏÎÎÎÎ"
+#~ msgid "Gtk.ResponseType"
+#~ msgstr "Gtk.ResponseType"
 
-#: C/03_getting_the_signal.js.page:351(title)
-msgid "Code sample with Button"
-msgstr "ÎÎÎÎÎÎ ÎÏÎÎÎÎ ÎÎ ÎÎÏÎÏÎ"
+#~ msgid "Gtk.MessageDialog"
+#~ msgstr "Gtk.MessageDialog"
 
-#: C/03_getting_the_signal.js.page:357(title)
-msgid "Code sample with Switch"
-msgstr "ÎÎÎÎÎÎ ÎÏÎÎÎÎ ÎÎ ÎÎÎÎÏÏÏÎ"
+#~ msgid "Gtk.DialogFlags"
+#~ msgstr "Gtk.DialogFlags"
 
-#: C/03_getting_the_signal.js.page:363(title)
-msgid "Code sample with RadioButton"
-msgstr "ÎÎÎÎÎÎ ÎÏÎÎÎÎ ÎÎ RadioButton"
+#~ msgid "Gtk.MessageType"
+#~ msgstr "Gtk.MessageType"
 
-#: C/03_getting_the_signal.js.page:369(title)
-msgid "Code sample with Entry"
-msgstr "ÎÎÎÎÎÎ ÎÏÎÎÎÎ ÎÎ ÎÎÏÎÏÏÏÎÏÎ"
+#~ msgid "Gtk.ButtonsType"
+#~ msgstr "Gtk.ButtonsType"
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/02_welcome_to_the_grid.js.page:94(None)
-msgid "@@image: 'media/02_jsgrid_01.png'; md5=3fdc22d361cf801f71557fdc76ae5b49"
-msgstr ""
-"@@image: 'media/02_jsgrid_01.png'Â md5=3fdc22d361cf801f71557fdc76ae5b49"
+#~ msgid "GtkMessageDialog"
+#~ msgstr "GtkMessageDialog"
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/02_welcome_to_the_grid.js.page:149(None)
-msgid "@@image: 'media/02_jsgrid_02.png'; md5=07db86b0043ba5c3c24a90d7322bd81e"
-msgstr ""
-"@@image: 'media/02_jsgrid_02.png'Â md5=07db86b0043ba5c3c24a90d7322bd81e"
+#~ msgid "GtkDialog"
+#~ msgstr "GtkDialog"
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/02_welcome_to_the_grid.js.page:166(None)
-msgid "@@image: 'media/02_jsgrid_03.png'; md5=817351e73c687d47253c56ed06b6629f"
-msgstr ""
-"@@image: 'media/02_jsgrid_03.png'Â md5=817351e73c687d47253c56ed06b6629f"
+#~ msgid "GActionMap"
+#~ msgstr "GActionMap"
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/02_welcome_to_the_grid.js.page:196(None)
-msgid "@@image: 'media/02_jsgrid_04.png'; md5=eeaead27cee2851877fc3cfe66177f07"
-msgstr ""
-"@@image: 'media/02_jsgrid_04.png'Â md5=eeaead27cee2851877fc3cfe66177f07"
+#~ msgid "List of button types"
+#~ msgstr "ÎÎÏÏÎ ÏÏÎ ÏÏÏÏÎ ÎÎÏÎÏÎÎÏ"
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/02_welcome_to_the_grid.js.page:205(None)
-msgid "@@image: 'media/02_jsgrid_05.png'; md5=a3ad12f432d5977fc1f66302ad5b7498"
-msgstr ""
-"@@image: 'media/02_jsgrid_05.png'Â md5=a3ad12f432d5977fc1f66302ad5b7498"
+#~ msgid "List of message types"
+#~ msgstr "ÎÎÏÏÎ ÏÏÎ ÏÏÏÏÎ ÎÎÎÏÎÎÏÎÏ"
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/02_welcome_to_the_grid.js.page:216(None)
-msgid "@@image: 'media/02_jsgrid_06.png'; md5=450e48dbf6b8f5ce1c208e4812e1714b"
-msgstr ""
-"@@image: 'media/02_jsgrid_06.png'Â md5=450e48dbf6b8f5ce1c208e4812e1714b"
+#~ msgid "GApplication"
+#~ msgstr "GApplication"
 
-#. When image changes, this message will be marked fuzzy or untranslated for you.
-#. It doesn't matter what you translate it to: it's not used at all.
-#: C/02_welcome_to_the_grid.js.page:226(None)
-msgid "@@image: 'media/02_jsgrid_07.png'; md5=0b304d70728903fbb2601d55bf00fdb9"
-msgstr ""
-"@@image: 'media/02_jsgrid_07.png'Â md5=0b304d70728903fbb2601d55bf00fdb9"
+#~ 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/02_welcome_to_the_grid.js.page:248(None)
-msgid "@@image: 'media/02_jsgrid_08.png'; md5=78890beb47bd11360154b8ca4d50d1ff"
-msgstr ""
-"@@image: 'media/02_jsgrid_08.png'Â md5=78890beb47bd11360154b8ca4d50d1ff"
+#~ msgid "\"UTF-8\""
+#~ msgstr "\"UTF-8\""
 
-#: C/02_welcome_to_the_grid.js.page:19(desc)
-msgid "Learn how to lay out UI components, like Images and Labels."
-msgstr "ÎÎÎÎÏÎ ÏÏÏ ÎÎ ÏÎÎÏÎÏÎÎÎÏÎÏÎ ÏÏÏÏÎÏÎÎÎ UI, ÏÏÏÏ ÎÎÎÏÎÎÏ ÎÎÎ ÎÏÎÎÎÏÎÏ."
+#~ msgid "NULL"
+#~ msgstr "NULL"
 
-#: C/02_welcome_to_the_grid.js.page:22(title)
-msgid "2. Welcome to the Grid"
-msgstr "2. ÎÎÎÏÏ ÎÎÎÎÏÎ ÏÏÎ ÏÎÎÎÎÎ"
+#~ msgid "shaunm"
+#~ msgstr "shaunm"
 
-#: C/02_welcome_to_the_grid.js.page:24(p)
-msgid ""
-"This tutorial will show you how to create basic widgets, or parts of the "
-"GNOME user interface, like Images and Labels. You'll then learn how to "
-"arrange them all in a Grid, which lets you put widgets exactly where you "
-"want them."
-msgstr ""
-"ÎÏÏÏ ÏÎ ÎÎÎÎÎÎ ÎÎ ÏÎÏ ÎÎÎÎÎÎ ÏÏÏ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎ ÎÎÏÎÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ, "
-"Î ÎÎÏÎ ÏÎÏ ÎÎÎÏÎÏÎÏ ÏÏÎÏÏÎ ÏÎÏ GNOME, ÏÏÏÏ ÎÎÎÏÎÎÏ ÎÎÎ ÎÏÎÎÎÏÎÏ. ÎÎ ÎÎÎÎÏÎ "
-"ÎÏÎÎÏÎ ÏÏÏ ÎÎ ÏÎ ÏÎÎÏÎÏÎÎÎÏÎÏÎ ÏÎÎ ÏÎ ÎÎÎ ÏÎÎÎÎÎ, ÏÎÏ ÏÎÏ ÎÏÎÏÏÎÏÎÎ ÎÎ "
-"ÎÎÎÎÏÎ ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÏÎÎÏÏ ÏÏÎÏ ÏÎ ÎÎÎÎÏÎ."
+#~ msgid "FIXME: Is this true? Does query_selector take CSS, CSSish, or what?"
+#~ msgstr ""
+#~ "ÎÎÎÎÎÎÎÎ: ÎÎÎÎÎ ÎÎÎÎÎÎÎ; ÎÎ query_selector ÏÎÎÏÎÎÎ CSS, CSSish Î ÏÎ;"
 
-#: C/02_welcome_to_the_grid.js.page:25(p)
-msgid ""
-"Have you taken <link xref=\"hellognome.js\">the first tutorial in this "
-"series</link> already? You'll want to do so before continuing."
-msgstr ""
-"ÎÏÎÏÎ ÎÎÎ <link xref=\"hellognome.js\">ÏÎ ÏÏÏÏÎ ÎÎÎÎÎÎ ÏÎ ÎÏÏÎ ÏÎ ÏÎÎÏÎ</"
-"link> ÎÎÎ; ÎÎ ÎÎÎÎÏÎ ÎÎ ÏÎ ÎÎÎÎÏÎ ÏÏÎÎ ÎÎ ÏÏÎÎÏÎÏÎÏÎ."
+#~ msgid ""
+#~ "Not passing the GError**, but we should give it a quick mention and link "
+#~ "to somewhere that explains how GError-handling works."
+#~ msgstr ""
+#~ "ÎÎ ÎÎÎ ÏÎÏÎÎÏÎ ÏÎ GError**, ÎÎÎÎ ÎÎ ÎÏÎÏÎÏÏÎÎÎ ÎÎ ÏÎÏ ÎÏÏÎÏÎÎ ÎÎÎ ÎÏÎÎÎÏÎ "
+#~ "ÎÎÎÏÎÏÎ ÎÎÎ ÏÏÎÎÎÏÎ ÎÎÏÎÏ, ÏÏÎÏ ÎÎÎÎÎÎÏÎÎ ÏÏÏ ÎÎÎÏÎÏÏÎÎÎ Î ÏÎÎÏÎÏÎÏÏ "
+#~ "GError."
 
-#: C/02_welcome_to_the_grid.js.page:31(title)
-msgid "Going native"
-msgstr "ÎÎÎÎÎÎÎÎÏÎÏ ÎÎÎÎÎÏÏ"
+#~ msgid "g_base64_encode has bad args"
+#~ msgstr "ÎÎ g_base64_encode ÎÏÎÎ ÎÏÏÎÎÎ ÎÏÎÏÎÎÏÎ"
 
-#: C/02_welcome_to_the_grid.js.page:33(p)
-msgid ""
-"In the last tutorial, we created what was basically a GNOME window frame for "
-"a web app. All the GNOME-specific code we needed to learn revolved around "
-"putting the WebView -- the widget containing our application -- into an "
-"ApplicationWindow, and telling it to display. The application itself was "
-"written in HTML and JavaScript, just like most pages on the web."
-msgstr ""
-"ÎÏÎ ÏÎÎÎÏÏÎÎÎ ÎÎÎÎÎÎ, ÎÎÎÎÎÏÏÎÎÏÎÎÎ ÎÎÏÎÎÎ ÎÎÎ ÏÎÎÎÏÎÎ ÏÎÏÎÎÏÏÎÏ GNOME ÎÎÎ "
-"ÎÎÎ ÎÏÎÏÎÎÎÎ ÎÏÏÎÏ. Î ÏÏÎÎÎÎÏÎÎÎÎÎÏ ÎÏÎÎÎÎÏ GNOME ÏÎÏ ÏÏÎÎÎÎÏÎÎÏÏÎ ÎÎ "
-"ÎÎÎÎÏÎÎ ÏÎÏÎÏÏÏÎÏÎÏÎÎ ÎÏÏÏ ÎÏÏ ÏÎÎ ÏÎÏÎÎÎÏÎÏÎ ÏÎÏ WebView -- ÏÎ ÎÏÎÏÎÎÏ "
-"ÏÏÏÏÎÏÎÎÏ ÏÎÏ ÏÎÏÎÎÏÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ ÎÎÏ -- ÏÎ ÎÎÎ ApplicationWindow ÎÎÎ ÏÎÎ "
-"ÎÎÏÎÎÎÏÎ ÏÎÏ. Î ÎÎÎÎ Î ÎÏÎÏÎÎÎÎ ÎÏÎÏÏÎÎÎ ÏÎ HTML ÎÎÎ JavaScript, ÎÎÏÎÎÏÏ "
-"ÏÏÏÏ ÎÎ ÏÎÏÎÏÏÏÏÎÏÎÏ ÏÎÎÎÎÎÏ ÏÏÎÎ ÎÏÏÏ."
+#~ msgid "Link to method to get HTML from DOM and to GIO APIs."
+#~ msgstr "ÎÏÎÎÎÎÎÎÏÎ ÎÎ ÏÎ ÎÎÎÎÎÎ ÎÎÏÎÏ HTML ÎÏÏ DOM ÎÎÎ ÏÎ GIO APIs."
 
-#: C/02_welcome_to_the_grid.js.page:34(p)
-msgid ""
-"This time, we're going to use only native GNOME widgets. A widget is just a "
-"thing, like a checkbox or picture, and GNOME has a wide variety of them to "
-"choose from. We call them \"native\" widgets to distinguish them from things "
-"like the button and header in the web app we wrote. Because instead of using "
-"web code, these are going to be 100 percent GNOME, using Gtk+."
-msgstr ""
-"ÎÏÏÎÎ ÏÎ ÏÎÏÎ, ÏÏÏÎÎÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÏÎÎ ÏÎ ÎÎÎÎÎÎ ÎÏÎÏÎÎÎ "
-"ÏÏÏÏÎÏÎÎÎ ÏÎÏ GNOME. ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÎÎÎÎ ÎÏÎÎ ÎÎÎ ÏÏÎÎÎÎ, ÏÏÏÏ ÎÎÎ "
-"ÏÎÎÎÏÎÎ ÎÎÎÎÏÎÏ Î ÎÎÎÏÎÎ ÎÎÎ ÏÎ GNOME ÎÏÎÎ ÎÎÎ ÏÎÎÏÎÎ ÏÎÎÎÎÎÎÎ ÎÎÎ ÎÏÎÎÎÎÎ. "
-"ÎÎ ÎÎÎÎ \"native\" ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÎ ÎÎ ÏÎ ÎÎÎÎÏÎÎÎÏÎÎ ÎÏÏ ÏÏÎÎÎÎÏÎ ÏÏÏÏ "
-"ÏÎ ÎÎÏÎÏÎ ÎÎÎ Î ÎÎÏÎÎÎÎÎ ÏÏÎÎ ÎÏÎÏÎÎÎÎ ÎÏÏÎÏ ÏÎÏ ÎÏÎÏÎÎÎ. ÎÎÏÎ ÎÎ "
-"ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÏÎÎÎÎ ÎÏÏÎÏ, ÎÏÏÎ ÏÏÏÎÎÎÏÎÎ ÎÎ ÎÎÎÎÎ 100% GNOME, "
-"ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ Gtk+."
+#~ msgid "Link to strftime or something"
+#~ msgstr "ÎÏÎÎÎÏÎ ÎÎ strftime Î ÎÎÏÎ ÎÎÎÎ"
 
-#: C/02_welcome_to_the_grid.js.page:35(p)
-#| msgid ""
-#| "Gtk+ stands for \"GIMP Toolkit.\" It's like a toolbox of widgets that you "
-#| "can reach into, while building your applications. It was originally "
-#| "written for <link href=\"http://www.gimp.org/\";>the GIMP,</link> which is "
-#| "a free software image editor."
-msgid ""
-"Gtk+ stands for \"GIMP Toolkit.\" It's like a toolbox of widgets that you "
-"can reach into, while building your applications. It was originally written "
-"for <link href=\"http://www.gimp.org/\";>the GIMP</link>, which is a free "
-"software image editor."
-msgstr ""
-"ÎÎ Gtk+ ÏÎÎÎÎÎÎÎ \"GIMP Toolkit\". ÎÎÎÎÎ ÏÎÎ ÎÎÎ ÎÏÎÎÎÎÎÎÎÎÎÎ ÎÏÎÏÎÎÏÎ "
-"ÏÏÏÏÎÏÎÎÏÎ ÏÎÏ ÎÏÎÏÎÎÏÎ ÎÎ ÏÏÎÏÏÎÎÎÏÎÏÎ, ÎÎÏ ÎÎÎÎÎÏÎ ÏÎÏ ÎÏÎÏÎÎÎÎÏ ÏÎÏ. "
-"ÎÏÎÏÏÎÎÎ ÎÏÏÎÎÎ ÎÎÎ ÏÎ <link href=\"http://www.gimp.org/\";>the GIMP</link>, "
-"ÏÎÏ ÎÎÎÎÎ ÎÎÎÏ ÎÏÎÎÎÏÎÎÏÏÎÏ ÎÎÎÏÎÎÏ ÎÎÎÏÎÎÏÎÏ ÎÎÎÎÏÎÎÎÎÏ."
+#~ msgid "azzurroverde gmail com"
+#~ msgstr "azzurroverde gmail com"
 
-#: C/02_welcome_to_the_grid.js.page:39(title)
-msgid "Setting up our application"
-msgstr "ÎÎÎÎÏÎÏÏÎÏÎ ÏÎÏ ÎÏÎÏÎÎÎÎÏ ÎÎÏ"
+#~ msgid "Glib.ActionEntry"
+#~ msgstr "Glib.ActionEntry"
 
-#: C/02_welcome_to_the_grid.js.page:41(p)
-msgid ""
-"Before we dig out any widgets from the Gtk+ toolbox, we first need to write "
-"the basic boilerplate code that our application requires."
-msgstr ""
-"ÎÏÎÎ ÎÎ ÏÎÎÎÏÎÎ ÎÏÎÎÎÎÎÏÎÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÏÏ ÏÎÎ ÎÏÎÎÎÎÎÎÎÎÎÎ Gtk+, "
-"ÏÏÎÎÎÎÏÎÎÏÏÎ ÏÏÏÏÎ ÎÎ ÎÏÎÏÎÏÎÎ ÏÎ ÎÎÏÎÎÏ ÎÏÎÎÎÎ ÏÏÎÏÎÏÏÏÏÎÏ ÏÎÏ Î ÎÏÎÏÎÎÎÎ "
-"ÎÎÏ ÎÏÎÎÏÎÎ."
+#~ msgid "Gtk.Builder"
+#~ msgstr "Gtk.Builder"
 
-#: C/02_welcome_to_the_grid.js.page:48(p)
-msgid ""
-"This part always goes at the start of your code. Depending on what you'll be "
-"doing with it, you may want to declare more imports here. What we're writing "
-"today is pretty basic, so these are all we need; Gtk for the widgets, and "
-"Lang so we can use Lang.bind to connect our application's activate and "
-"startup signals to the requisite functions."
-msgstr ""
-"ÎÏÏÏ ÏÎ ÎÎÏÎÏ ÏÎÎÎÎÎÎÎ ÏÎÎÏÎ ÏÏÎÎ ÎÏÏÎ ÏÎÏ ÎÏÎÎÎÎ ÏÎÏ. ÎÎÎÎÎÎÎ ÎÎ ÏÎ ÏÎ ÎÎ "
-"ÎÎÎÎÏÎ ÎÎ ÎÏÏÏ, ÎÏÎÏÎÎ ÎÎ ÎÎÎÎÏÎ ÎÎ ÎÎÎÏÏÎÏÎ ÏÎÏÎÏÏÏÏÎÏÎÏ ÎÎÏÎÎÏÎÎÏ ÎÎÏ. "
-"ÎÏÏÏ ÏÎÏ ÎÏÎÏÎÏÎÎ ÏÎÎÎÏÎ ÎÎÎÎÎ ÎÏÎÎÏÎ ÎÎÏÎÎÏ, ÎÏÏÎ ÎÏÏÎ ÎÎÎÎÎ ÏÎÏ "
-"ÏÏÎÎÎÎÏÎÎÏÏÎÂ Gtk ÎÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÎ Lang ÏÏÏÎ ÎÎ ÎÏÎÏÎÏÎÎ ÎÎ "
-"ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ Lang.bind ÎÎÎ ÎÎ ÏÏÎÎÎÏÎÏÎÎ ÏÎ ÏÎÎÎÏÎ ÎÎÎÏÎÎÏÎÎÎÏÎÏ ÎÎÎ "
-"ÎÎÎÎÎÎÏÎÏ ÏÎÏ ÎÏÎÏÎÎÎÎÏ ÏÏÎÏ ÎÎÎÎÎÎÎÎÏ ÏÏÎÎÏÏÎÏÎÎÏ."
+#~ msgid "dgsiegel gnome org"
+#~ msgstr "dgsiegel gnome org"
 
-#: C/02_welcome_to_the_grid.js.page:49(p)
-msgid "Speaking of which:"
-msgstr "ÎÎÎÏÎÏÎÏ ÎÎÎ:"
+#~ msgid "Gtk.LinkButton"
+#~ msgstr "Gtk.LinkButton"
 
-#: C/02_welcome_to_the_grid.js.page:73(p)
-msgid ""
-"This is the start of the application itself, and the _init function which "
-"creates it. It tells _buildUI to create an ApplicationWindow, which we're "
-"going to call _window, and it tells our window to present itself whenever "
-"needed."
-msgstr ""
-"ÎÏÏÎ ÎÎÎÎÎ Î ÎÏÏÎ ÏÎÏ ÎÎÎÎÏ ÏÎÏ ÎÏÎÏÎÎÎÎÏ ÎÎÎ Î ÏÏÎÎÏÏÎÏÎ _init ÏÎÏ ÏÎ "
-"ÎÎÎÎÎÏÏÎÎÎ. ÎÎÎÎ ÏÏÎ _buildUI ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ ApplicationWindow, ÏÎÏ "
-"ÏÏÏÎÎÎÏÎÎ ÎÎ ÎÎÎÎÏÎÎ ÏÎ _window ÎÎÎ ÎÎÎÎ ÏÏÎ ÏÎÏÎÎÏÏÏ ÎÎÏ ÎÎ ÎÎÏÎÎÎÎÎÎ ÏÎÎ "
-"ÎÎÏÏÏ ÏÎÏ ÏÏÎÏÎ ÎÏÎÎÏÎÎÏÎÎ."
+#~ msgid "GtkLinkButton"
+#~ msgstr "GtkLinkButton"
 
-#: C/02_welcome_to_the_grid.js.page:74(p)
-msgid ""
-"This part, again, is pretty much copy-and-paste, but you always want to give "
-"your application a unique name."
-msgstr ""
-"ÎÏÏÏ ÏÎ ÎÎÏÎÏ, ÏÎÎÎ, ÎÎÎÎÎ ÎÏÎÎÏÎ ÎÎÏÎÎÏÎÏÎ ÎÎÎ ÎÏÎÎÏÎÎÎÏÎ, ÎÎÎÎ ÎÎÎÎÏÎ "
-"ÏÎÎÏÎ ÎÎ ÎÏÏÎÏÎ ÏÏÎÎ ÎÏÎÏÎÎÎÎ ÏÎÏ ÎÎÎ ÎÎÎÎÎÎÎÏ ÏÎÎÎÎ."
+#~ msgid "philip chimento gmail com"
+#~ msgstr "philip chimento gmail com"
 
-#: C/02_welcome_to_the_grid.js.page:87(p)
-msgid ""
-"Finally, we start off the _buildUI function by creating a new "
-"ApplicationWindow. We specify that it goes with this application, that it "
-"should appear in the center of the screen, and that there should be at least "
-"10 pixels between the outside edge and any widgets inside of it. We also "
-"give it a title, which will appear at the top of the window."
-msgstr ""
-"ÎÎÎÎÎÎ, ÎÎÎÎÎÎÎÎ ÏÎ ÏÏÎÎÏÏÎÏÎ _buildUI ÎÎÎÎÎÏÏÎÏÎÏÎÏ ÎÎÎ ÎÎÎ "
-"ApplicationWindow. ÎÏÎÎÎÏÎÎ ÏÏÎ ÏÎÎÎÎÎÎÎ ÎÎ ÎÏÏÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ, ÏÎÏ ÎÎ "
-"ÏÏÎÏÎÎ ÎÎ ÎÎÏÎÎÎÏÏÎÎ ÏÏÎ ÎÎÎÏÏÎ ÏÎÏ ÎÎÏÎÎÏ ÎÎÎ ÎÎÎÎ ÎÎ ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎ "
-"ÏÎÏÎÎÏÎÏÏÎÎ 10 ÎÎÎÎÎÎÏÏÎÎÏÎÎÎ ÎÎÏÎÎÏ ÏÎÏ ÎÎÏÏÎÏÎÎÎÏ ÎÎÏÎÏ ÎÎÎ ÏÎÏÎ ÏÏÎ "
-"ÎÏÎÏÎÎÏÎ ÏÏÏÏÎÏÎÎÏÎ ÏÎÏ. ÎÏÎÏÎÏ ÏÎÏ ÎÎÎÎÏÎÎ ÎÎÎÎ ÏÎÏÎÎ, ÏÎÏ ÎÎ ÎÎÏÎÎÎÏÏÎÎ "
-"ÏÏÎÎ ÎÎÏÏÏÎ ÏÎÏ ÏÎÏÎÎÏÏÎÏ."
+#~ msgid "jwendell gnome org"
+#~ msgstr "jwendell gnome org"
 
-#: C/02_welcome_to_the_grid.js.page:91(title)
-msgid "Reaching into the Gtk+ toolbox"
-msgstr "ÎÏÎÎÎÎÏÎÏ ÏÏÎÎ ÎÏÎÎÎÎÎÎÎÎÎÎ Gtk+"
+#~ msgid "GtkApplicationWindow"
+#~ msgstr "GtkApplicationWindow"
 
-#: C/02_welcome_to_the_grid.js.page:92(p)
-msgid ""
-"What widgets should we use? Well, let's say we want to write an application "
-"that looks like this:"
-msgstr ""
-"ÎÎÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÏÏÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ; ÎÎÎÏÏÎ, ÎÏ ÏÎÏÎÎ ÏÏÎ "
-"ÎÎÎÎÏÎÎ ÎÎ ÎÏÎÏÎÏÎÎ ÎÎÎ ÎÏÎÏÎÎÎÎ ÏÎÏ ÏÎÎÎÎÏÎÎ ÏÎÎ ÎÏÏÎ:"
+#~ msgid "gjs helloWorld.js"
+#~ msgstr "gjs helloWorld.js"
 
-#: C/02_welcome_to_the_grid.js.page:96(p)
-msgid ""
-"We're going to need, at the very least, a picture and a text label to go "
-"with it. Let's start with the picture:"
-msgstr ""
-"ÎÏÏÎÎÎÏÎÎ ÎÎ ÏÏÎÎÎÏÏÎÏÎÎ, ÏÎÏÎÎÏÎÏÏÎÎ, ÎÎÎ ÎÎÎÏÎÎ ÎÎÎ ÎÎÎ ÎÏÎÎÎÏÎ ÎÎÎÎÎÎÎÏ "
-"ÎÎ ÏÎÎÎ ÎÎÎÎ ÏÎÏ. ÎÏ ÎÏÏÎÏÎÏÎÎ ÎÎ ÏÎÎ ÎÎÎÏÎÎ:"
+#~ msgid "chmod +x helloWorld"
+#~ msgstr "chmod +x helloWorld"
 
-#: C/02_welcome_to_the_grid.js.page:102(p)
-#| msgid ""
-#| "You can download the image file used in this example <link href=\"https://";
-#| "live.gnome.org/TarynFox?action=AttachFile&amp;do=get&amp;target=gnome-"
-#| "image.png\">here.</link> Be sure to put it in the same directory as the "
-#| "code you're writing."
-msgid ""
-"You can download the image file used in this example <link href=\"https://";
-"live.gnome.org/TarynFox?action=AttachFile&amp;do=get&amp;target=gnome-image."
-"png\">here</link>. Be sure to put it in the same directory as the code "
-"you're writing."
-msgstr ""
-"ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÏÎÎÎÏÎÏÎ ÏÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎÎÎ ÎÏÏÎÎÎ ÎÎÎÏÎÎÏ ÏÎ ÎÏÏÏ ÏÎ "
-"ÏÎÏÎÎÎÎÎÎÎ <link href=\"https://live.gnome.org/TarynFox?";
-"action=AttachFile&amp;do=get&amp;target=gnome-image.png\">ÎÎÏ</link>. "
-"ÎÎÎÎÎÏÎÎÎÏÎ ÎÎ ÏÎ ÎÎÎÎÏÎ ÏÏÎÎ ÎÎÎÎ ÎÎÏÎÎÎÎÎ ÎÎ ÏÎÎ ÎÏÎÎÎÎ ÏÎÏ ÎÏÎÏÎÏÎ."
+#~ msgid "chmod +x autogen.sh"
+#~ msgstr "chmod +x autogen.sh"
 
-#: C/02_welcome_to_the_grid.js.page:108(p)
-msgid ""
-"That code adds in the label beneath. You can see how we create widgets, "
-"here; each one is a part of Gtk, and we can give it properties that "
-"customize how it behaves. In this case, we set the Image's file property to "
-"be the filename of the picture we want, and the Label's label property to be "
-"the sentence that we want beneath the picture."
-msgstr ""
-"ÎÏÏÏÏ Î ÎÏÎÎÎÎÏ ÏÏÎÏÎÎÏÎÎ ÎÎÏÏ ÎÏÏ ÏÎÎ ÎÏÎÎÎÏÎ. ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÏÎ ÏÏÏ "
-"ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ, ÎÎÏÂ ÎÎÎÎÎÎ ÎÎÎÎÎ ÎÎÏÎÏ ÏÎÏ Gtk ÎÎÎ ÎÏÎÏÎÏÎÎ "
-"ÎÎ ÏÎÏ ÎÏÏÎÏÎÎ ÎÎÎÏÏÎÏÎÏ ÏÎÏ ÏÏÎÏÎÏÎÏÎÎÏÎ ÏÎ ÏÏÎÏÎÏÎÏÎÏÎ ÏÎÏ. ÎÎ ÎÏÏÎÎ ÏÎÎ "
-"ÏÎÏÎÏÏÏÏÎ, ÎÏÎÎÎÏÎÎ ÏÎÎ ÎÎÎÏÏÎÏÎ ÎÏÏÎÎÎ ÏÎÏ ÎÎÎÏÎÎÏ ÎÎ ÎÎÎÎÎ ÏÎ ÏÎÎÎÎ "
-"ÎÏÏÎÎÎÏ ÏÎÏ ÎÎÎÏÎÎÏ ÏÎÏ ÎÎÎÎÏÎÎ ÎÎÎ Î ÎÎÎÏÏÎÏÎ ÎÏÎÎÎÏÎ ÏÎÏ ÎÏÎÎÎÏÎÏ ÎÎ ÎÎÎÎÎ "
-"Î ÏÏÏÏÎÏÎ ÏÎÏ ÎÎÎÎÏÎÎ ÎÎÏÏ ÎÏÏ ÏÎÎ ÎÎÎÏÎÎ."
+#~ msgid "GJS_PATH=`pwd` gjs guitarTuner.js"
+#~ msgstr "GJS_PATH=`pwd` gjs guitarTuner.js"
 
-#: C/02_welcome_to_the_grid.js.page:109(p)
-msgid ""
-"Yes, it sounds redundant for a Label to have a label property, but it's not. "
-"Other widgets that contain text have a label property, so it's "
-"<em>consistent</em> for the Label widget to have one too."
-msgstr ""
-"ÎÎÎ, ÎÎÎÏÎÎÏÎÎ ÏÎÏÎÏÏÏ ÎÎÎ ÎÎÎ ÎÏÎÎÎÏÎ ÎÎ ÎÏÎÎ ÎÎÎ ÎÎÎÏÏÎÏÎ ÎÏÎÎÎÏÎÏ, ÎÎÎÎ "
-"ÎÎÎ ÎÏÏÏÎÎ. ÎÎÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÏÎÏ ÏÎÏÎÎÏÎÏÎ ÎÎÎÎÎÎÎ ÎÏÎÏÎ ÎÎÎ ÎÎÎÏÏÎÏÎ "
-"ÎÏÎÎÎÏÎÏ, ÎÏÏÎ ÎÎÎÎÎ <em>ÏÏÎÎÏÎÏ</em> ÎÎÎ ÏÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÏÎÎÎÏÎÏ ÎÎ "
-"ÎÏÎÎ ÎÏÎÏÎÏ ÎÎÎ."
+#~ msgid "GtkButton"
+#~ msgstr "GtkButton"
 
-#: C/02_welcome_to_the_grid.js.page:110(p)
-msgid ""
-"We can't just add these widgets to our window in order, though, the same way "
-"HTML elements appear in the order you write them. That's because an "
-"ApplicationWindow can only contain one widget."
-msgstr ""
-"ÎÎÎ ÎÏÎÏÎÏÎÎ ÎÏÎÎ ÎÎ ÏÏÎÏÎÎÏÎÏÎÎ ÎÏÏÎ ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÏÏÎ ÏÎÏÎÎÏÏÏ ÎÎÏ "
-"ÏÏÎ ÏÎÎÏÎ, ÏÎÏÏ, ÎÎ ÏÎÎ ÎÎÎÎ ÏÏÏÏÎ ÏÎÏ ÏÎ ÏÏÎÎÏÎÎÎ HTML ÎÎÏÎÎÎÎÎÎÏÎÎ ÏÏÎ "
-"ÏÎÎÏÎ ÏÎÏ ÏÎ ÎÏÎÏÎÏÎ. ÎÏÏÏ ÏÏÎÎÎÎÎÎÎ ÎÏÎÎÎÎ ÎÎÎ ApplicationWindow ÎÏÎÏÎÎ ÎÎ "
-"ÏÎÏÎÎÏÎÎ ÎÏÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ."
+#~ msgid "desrt desrt ca"
+#~ msgstr "desrt desrt ca"
 
-#: C/02_welcome_to_the_grid.js.page:111(p)
-msgid ""
-"How do we get around that? By making that one widget a container widget, "
-"which can hold more than one widget and organize them inside it. Behold: The "
-"Grid."
-msgstr ""
-"ÎÏÏ ÏÎ ÏÎÏÎÎÎÎÏÏÎÏÎÎ; ÎÎÎÎÎÏÎÏ ÎÏÏÏ ÏÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÎÎÎÎ ÎÏÎÎÎÎÏÎ "
-"ÎÏÎÏÎÎÎÏ ÏÏÏÏÎÏÎÎÎÏ, ÏÎÏ ÎÏÎÏÎÎ ÎÎ ÎÏÎÏÎ ÏÎÏÎÏÏÏÏÎÏÎ ÎÏÏ ÎÎÎ ÎÏÎÏÎÎÎ "
-"ÏÏÏÏÎÏÎÎÎ ÎÎÎ ÎÎ ÏÎ ÎÏÎÎÎÏÏÎÏÎÎ ÎÎÏÎ ÏÎÏ. ÎÎÎÏ: ÏÎ ÏÎÎÎÎÎ."
+#~ msgid "Menu"
+#~ msgstr "ÎÎÎÎÏ"
 
-#: C/02_welcome_to_the_grid.js.page:117(p)
-msgid ""
-"We're not giving it any properties yet. Those will come later, as we learn "
-"how to use the Grid's powers. First, let's attach the Image and Label we "
-"made to our Grid."
-msgstr ""
-"ÎÎÎ ÏÎÏ ÎÎÎÎÏÎÎ ÎÎÏÎÎ ÎÎÎÏÏÎÏÎÏ. ÎÏÏÎÏ ÎÎ ÎÏÎÎÏÎ ÎÏÎÏÏÎÏÎ, ÎÎÎÏÏ ÎÎÎÎÎÎÎÏÎÎ "
-"ÏÏÏ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÏÎÏ ÎÏÎÎÎÎÎÏ ÏÎÏ ÏÎÎÎÎÎÏÎÏ. ÎÏÏÏÎ, ÎÏ ÏÏÎÏÎÏÏÎÏÎÏÎÎ "
-"ÏÎÎ ÎÎÎÏÎÎ ÎÎÎ ÏÎÎ ÎÏÎÎÎÏÎ ÏÎÏ ÎÎÎÎÎÎ ÏÏÎ ÏÎÎÎÎÎ ÎÎÏ."
+#~ msgid "append"
+#~ msgstr "ÏÏÎÏÎÏÏÎÏÎ"
+
+#~ msgid "SimpleAction"
+#~ msgstr "SimpleAction"
+
+#~ msgid "add_action"
+#~ msgstr "add_action"
 
-#: C/02_welcome_to_the_grid.js.page:124(p)
-msgid ""
-"This code looks awfully complicated, but it's not. Here's what those numbers "
-"mean:"
-msgstr ""
-"ÎÏÏÏÏ Î ÎÏÎÎÎÎÏ ÏÎÎÎÎÏÎÎ ÏÎÎÏ ÏÎÏÎÏÎÎÎÎÏ, ÎÎÎÎ ÎÎÎ ÎÎÎÎÎ. ÎÎ ÏÎ ÏÎÎÎÎÎÎÏÎ "
-"ÎÏÏÎÎ ÎÎ ÎÏÎÎÎÎÎ:"
+#~ msgid "GVariantType"
+#~ msgstr "GVariantType"
 
-#: C/02_welcome_to_the_grid.js.page:126(p)
-msgid ""
-"The <em>first</em> number is what left-to-right position to put things in, "
-"starting from 0. Any widget that uses a 0 here goes all the way to the left."
-msgstr ""
-"Î <em>ÏÏÏÏÎÏ</em> ÎÏÎÎÎÏÏ ÎÎÎÎÎ ÏÎ ÏÎÎÎ ÎÎÏÎ ÎÏÏ ÎÏÎÏÏÎÏÎ ÏÏÎÏ ÏÎ ÎÎÎÎÎ ÎÎ "
-"ÏÎÏÎÎÎÏÎÎÎÏÎ ÏÏÎÎÎÎÏÎ, ÎÏÏÎÎÎÎÏÎÏ ÎÏÏ 0. ÎÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ ÏÎÏ "
-"ÏÏÎÏÎÎÎÏÎÎÎÎ ÎÎÎ 0 ÎÎÏ ÏÎÎÎÎÎÎÎ ÏÎÎ ÎÏÎÏÏÎÏÎ."
+#~ msgid "GVariant"
+#~ msgstr "GVariant"
 
-#: C/02_welcome_to_the_grid.js.page:127(p)
-msgid ""
-"The <em>second</em> number is what top-to-botton position to put a given "
-"widget in, starting from 0. The Label goes beneath the Image, so we give the "
-"Image a 0 and the Label a 1 here."
-msgstr ""
-"Î <em>ÎÎÏÏÎÏÎÏ</em> ÎÏÎÎÎÏÏ ÎÎÎÎÎ ÏÎ ÏÎÎÎ ÎÎÏÎ ÎÏÏ ÏÎÎÏ ÏÏÎÏ ÏÎ ÎÎÏÏ ÎÎ ÎÏÎÎ "
-"ÏÎ ÎÎÎÎÎÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ, ÎÎÎÎÎÏÎÏÎÏ ÎÏÏ 0. Î ÎÏÎÎÎÏÎ ÏÎÎÎÎÎÎÎ ÎÎÏÏ ÎÏÏ "
-"ÏÎÎ ÎÎÎÏÎÎ, ÎÏÏÎ ÎÎÎÎÏÎÎ ÏÏÎÎ ÎÎÎÏÎÎ ÎÎÎ 0 ÎÎÎ ÏÏÎÎ ÎÏÎÎÎÏÎ ÎÎÎ 1 ÎÎÏ."
+#~ msgid "Ubuntu"
+#~ msgstr "Ubuntu"
 
-#: C/02_welcome_to_the_grid.js.page:128(p)
-msgid ""
-"The <em>third</em> and <em>fourth</em> numbers are how many columns and rows "
-"a widget should take up. We'll see how these work in a minute."
-msgstr ""
-"Î <em>ÏÏÎÏÎÏ</em> ÎÎÎ Î <em>ÏÎÏÎÏÏÎÏ</em> ÎÏÎÎÎÏÏ ÎÎÎÎÎ ÏÏÏÎÏ ÏÏÎÎÎÏ ÎÎÎ "
-"ÎÏÎÎÎÎÏ ÏÏÎÏÎÎ ÎÎ ÎÎÏÎÎÎÎÎÎ ÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ. ÎÎ ÎÎÏÎÎ ÏÏÏ ÎÏÏÎ "
-"ÎÎÏÎÎÏÎÏÎ ÏÎ ÎÎÎ ÎÎÏÏÏ."
+#~ msgid "Fedora"
+#~ msgstr "Fedora"
 
-#: C/02_welcome_to_the_grid.js.page:145(p)
-msgid ""
-"Now that we've created the Grid and attached all our widgets to it, we add "
-"it to the window and tell the window to show itself, as the last part of the "
-"_buildUI function. As always, to finish up we create a new instance of the "
-"application's class and tell it to run."
-msgstr ""
-"ÎÏÏÎ ÏÎÏ ÎÏÎÏÎÎ ÎÎÎÎÎÏÏÎÎÏÎÎ ÏÎ ÏÎÎÎÎÎ ÎÎÎ ÏÏÎÏÎÏÏÎÏÎÎÎ ÏÎ ÎÏÏÏ ÏÎÎ ÏÎ "
-"ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÏ, ÏÎ ÏÏÎÏÎÎÏÎÏÎÎ ÏÏÎ ÏÎÏÎÎÏÏÎ ÎÎÎ ÎÎÎÎ ÏÏÎ ÏÎÏÎÎÏÏÎ ÎÎ "
-"ÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÎÏÏÏÎ ÏÎÏ, ÏÏÏÏ ÏÎ ÏÎÎÎÏÏÎÎÎ ÎÎÏÎÏ ÏÎÏ ÏÏÎÎÏÏÎÏÎÏ _buildUI. "
-"ÎÏÏÏ ÏÎÎÏÎ, ÎÎÎ ÎÎ ÏÎÎÎÎÏÏÎÏÎÎ ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ ÎÎÎ ÏÏÎÎÎÎÏÏÏÏÎ ÏÎÏ ÎÎÎÏÎÏ "
-"ÏÎÏ ÎÏÎÏÎÎÎÎÏ ÎÎÎ ÏÎÏ ÎÎÎÎ ÎÎ ÎÎÏÎÎÎÏÏÎÎ."
+#~ msgid "OpenSuSE"
+#~ msgstr "OpenSuSE"
 
-#: C/02_welcome_to_the_grid.js.page:146(p)
-msgid ""
-"Save your application as welcome_to_the_grid.js. Then, to run your "
-"application just open a terminal, go to the directory where your application "
-"is at, and type"
-msgstr ""
-"ÎÏÎÎÎÎÎÏÏÏÎ ÏÎÎ ÎÏÎÏÎÎÎÎ ÏÎÏ ÏÏ welcome_to_the_grid.js. ÎÏÎÎÏÎ, ÎÎÎ ÎÎ "
-"ÎÎÏÎÎÎÏÎÏÎ ÏÎÎ ÎÏÎÏÎÎÎÎ ÏÎÏ ÎÎÎÎÎÏÎ ÎÏÎÎ ÎÎÎÎ ÏÎÏÎÎÏÎÎÏ, ÏÎÎÎÎÎÎÏÎ ÏÏÎÎ "
-"ÎÎÏÎÎÎÎÎ ÏÏÎÏ Î ÎÏÎÏÎÎÎÎ ÏÎÏ ÎÎÎÎÎ ÎÎÎ ÏÎÎÎÏÏÎÎÎÎÎÏÏÎ"
+#~ msgid "Others"
+#~ msgstr "ÎÎÎÎ"
 
-#: C/02_welcome_to_the_grid.js.page:147(screen)
-#, no-wrap
-msgid " <output style=\"prompt\">$ </output>gjs welcome_to_the_grid.js "
-msgstr " <output style=\"prompt\">$ </output>gjs welcome_to_the_grid.js "
+#~ msgid "GtkFontChooserWidget"
+#~ msgstr "GtkFontChooserWidget"
 
-#: C/02_welcome_to_the_grid.js.page:151(p)
-msgid ""
-"There we go! But wait. That doesn't look right. Why is the Label crammed up "
-"next to the Image like that? That doesn't look as nice, and it makes it "
-"harder to read. What can we do about this?"
-msgstr ""
-"ÎÎ! ÎÎÎÎ ÏÎÏÎÎÎÎÎÏÎ. ÎÏÏÏ ÎÎÎ ÏÎÎÎÎÏÎÎ ÏÏÏÏÏ. ÎÎÎÏÎ ÏÏÏÎÎÏÏÎÎÏÎÎ Î ÎÏÎÎÎÏÎ "
-"ÎÎÏÎÎ ÏÏÎÎ ÎÎÎÏÎÎ ÎÏÏÎ; ÎÏÏÏ ÎÎÎ ÏÎÎÎÎÏÎÎ ÏÏÎÎÎ ÎÎÎ ÎÏÏÎÎÎÎÏÎÎ ÏÎÎ ÎÎÎÎÎÏÏÎ. "
-"ÎÎ ÎÏÎÏÎÏÎÎ ÎÎ ÎÎÎÎÏÎÎ ÎÎÎ ÎÏÏÏ;"
+#~ msgid "FileChooser"
+#~ msgstr "FileChooser"
 
-#: C/02_welcome_to_the_grid.js.page:155(title)
-msgid "Tweaking the Grid"
-msgstr "ÎÎÎÏÎÏÏÎÎÎÏÎ ÏÎÏ ÏÎÎÎÎÎÏÎÏ"
+#~ msgid "GLib.ActionEntry"
+#~ msgstr "GLib.ActionEntry"
 
-#: C/02_welcome_to_the_grid.js.page:157(p)
-msgid ""
-"One thing we can do, is we can give the Label a margin_top property when we "
-"create it. This works sort of like setting a margin for an HTML element "
-"using inline CSS styling."
-msgstr ""
-"ÎÎÎ ÏÏÎÎÎÎ ÏÎÏ ÎÏÎÏÎÏÎÎ ÎÎ ÎÎÎÎÏÎÎ, ÎÎÎÎÎ ÎÎ ÎÏÏÎÏÎÎ ÏÏÎÎ ÎÏÎÎÎÏÎ ÎÎÎ "
-"ÎÎÎÏÏÎÏÎ margin_top ÏÏÎÎ ÏÎ ÎÎÎÎÎÏÏÎÎÏÎÎ. ÎÏÏÏ ÎÎÏÎÎÏÎÎ ÏÏÏÏ Î ÏÏÎÎÎÏÎ ÎÎÏÏ "
-"ÏÎÏÎÎÏÏÎÎÏ ÎÎÎ ÎÎÎ ÏÏÎÎÏÎÎÎ HTML ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÎÎÏÏÎÎÏÏÎÎÎÎ ÎÎÏÏÎ CSS."
+#~ msgid "GtkFileChooserDialog"
+#~ msgstr "GtkFileChooserDialog"
 
-#: C/02_welcome_to_the_grid.js.page:165(p)
-msgid ""
-"Of course, if we do that then if we replace the Label with something else -- "
-"or add in another widget -- then we have to repeat the margin_top on it too. "
-"Otherwise we end up with something like this:"
-msgstr ""
-"ÎÏÏÎÎÎ, ÎÎÎ ÎÎÎÎÏÎÎ ÎÏÏÏ ÏÏÏÎ ÎÎÎ ÎÎÏÎÎÎÏÎÏÏÎÏÎÏÎÎ ÏÎÎ ÎÏÎÎÎÏÎ ÎÎ ÎÎÏÎ ÎÎÎÎ "
-"-- Î ÏÏÎÏÎÎÏÎÎÏÎÏ ÏÎ ÎÎÎ ÎÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ -- ÏÏÏÎ ÏÏÎÏÎÎ ÎÎ "
-"ÎÏÎÎÎÎÎÎÎÏÎÎ ÏÎ margin_top ÏÎ ÎÏÏÏ ÎÎÎÎ. ÎÎÎÎÏÏ ÏÎÎÎÎÏÎÎÏÎÎ ÎÎ ÎÎÏÎ ÏÎÎ ÎÏÏÏ:"
+#~ msgid "GtkFileChooser"
+#~ msgstr "GtkFileChooser"
 
-#: C/02_welcome_to_the_grid.js.page:168(p)
-msgid ""
-"We could give the Image a margin_bottom property, but that won't work when "
-"the new Label is in a separate column. So how about we try this instead:"
-msgstr ""
-"ÎÏÎÏÎÏÎÎ ÎÎ ÎÏÏÎÏÎÎ ÏÏÎÎ ÎÎÎÏÎÎ ÎÎÎ ÎÎÎÏÏÎÏÎ margin_bottom, ÎÎÎÎ ÎÎÎ ÎÎ "
-"ÎÎÏÎÎÏÎÎ ÏÏÎÎ Î ÎÎÎ ÎÏÎÎÎÏÎ ÎÎÎÎÎ ÏÎ ÎÎÎ ÎÎÏÏÏÎÏÏÎ ÏÏÎÎÎ. ÎÏÏÎ ÎÏ "
-"ÎÎÎÎÎÎÏÎÏÎÎ ÎÏÏÏ:"
+#~ msgid "GFile"
+#~ msgstr "GFile"
 
-#: C/02_welcome_to_the_grid.js.page:175(p)
-msgid ""
-"That makes it so that there are always 20 pixels of space in between each "
-"horizontal row."
-msgstr ""
-"ÎÏÏÏ ÏÎ ÎÎÎÎÎ ÎÏÏÎ ÏÏÏÎ ÎÎ ÏÏÎÏÏÎÏÎ ÏÎÎÏÎ 20 ÎÎÎÎÎÎÏÏÎÎÏÎÎÎ ÏÏÏÎÏ ÎÎÏÎÎÏ "
-"ÎÎÎÎ ÎÏÎÎÏÎÏÎÎÏ ÎÏÎÎÎÎÏ."
+#~ msgid "Gtk.Entry"
+#~ msgstr "Gtk.Entry"
 
-#: C/02_welcome_to_the_grid.js.page:176(p)
-msgid ""
-"Yes, you can also set the column_spacing property on a Grid, or the "
-"margin_left and margin_right properties on any widget. Try them out, if you "
-"like!"
-msgstr ""
-"ÎÎÎ, ÎÏÎÏÎÎÏÎ ÎÏÎÏÎÏ ÎÎ ÎÏÎÏÎÏÎ ÏÎÎ ÎÎÎÏÏÎÏÎ column_spacing ÏÎ ÎÎÎ ÏÎÎÎÎÎ, Î "
-"ÏÎÏ ÎÎÎÏÏÎÏÎÏ margin_left ÎÎÎ margin_right ÏÎ ÎÎÎÎ ÎÏÎÏÎÎÏ ÏÏÏÏÎÏÎÎÏ. "
-"ÎÎÎÎÎÎÏÏÎ ÏÎÏ ÎÎÎ ÎÎÎÎÏÎ!"
+#~ msgid "GtkEntry"
+#~ msgstr "GtkEntry"
 
-#: C/02_welcome_to_the_grid.js.page:180(title)
-msgid "Adding more widgets"
-msgstr "ÎÏÎÏÎÎÎÎ ÏÎÏÎÏÏÏÏÎÏÏÎ ÎÏÎÏÎÎÏÎ ÏÏÏÏÎÏÎÎÏÎ"
+#~ msgid "Gtk.Dialog"
+#~ msgstr "Gtk.Dialog"
 
-#: C/02_welcome_to_the_grid.js.page:182(p)
-msgid ""
-"If we did want to add a second Label, how would we do it so that it actually "
-"looked like it belonged there? One way is to center the Image on top, so "
-"that it's above both Labels instead of just the one on the left. That's "
-"where those other numbers in the Grid's attach method come in:"
-msgstr ""
-"ÎÎÎ ÎÎÎÎÏÎÎ ÎÎ ÏÏÎÏÎÎÏÎÏÎÎ ÎÎÎ ÎÎÏÏÎÏÎ ÎÏÎÎÎÏÎ, ÏÏÏ ÎÎ ÎÏÎÏÎÏÏÎÎÎ ÎÎ ÎÎÎÎÏÎÎ "
-"ÎÏÏÎ ÏÏÏÎ ÎÎ ÏÎÎÎÎÏÎÎ ÏÏÎÎÎÎÏÎ ÏÏÎ ÎÎÎÎÎ ÎÎÎÎ; ÎÎÎÏ ÏÏÏÏÎÏ ÎÎÎÎÎ ÎÎ "
-"ÎÎÎÏÏÎÏÎÏÎ ÏÎÎ ÎÎÎÏÎÎ ÏÏÎÎ ÎÎÏÏÏÎ, ÎÏÏÎ ÏÏÏÎ ÎÎ ÎÎÎÎÎ ÏÎÎÏ ÎÎÎ ÎÏÏ ÏÎÏ ÎÏÎ "
-"ÎÏÎÎÎÏÎÏ ÎÎÏÎ ÎÎÎ ÏÎ ÎÎÎ ÎÏÎÎ ÏÏÎ ÎÏÎÏÏÎÏÎ. ÎÎÏ ÎÎÎÎÎ ÏÎÏ ÎÏÏÎÎ ÎÎ ÎÎÎÎÎ "
-"ÎÏÎÎÎÎÎ ÏÏÎ ÎÎÎÎÎÎ ÏÏÎÏÎÏÏÎÏÎÏ ÏÎÏ ÏÎÎÎÎÎÏÎÏ ÎÏÏÎÎÏÎÎ:"
+#~ msgid "Gtk.Dialog.with_buttons"
+#~ msgstr "Gtk.Dialog.with_buttons"
 
-#: C/02_welcome_to_the_grid.js.page:194(p)
-msgid ""
-"After we create the second Label, we attach it to the Grid to the right of "
-"the first Label. Remember, the first two numbers count columns and rows from "
-"left to right and top to bottom, starting with 0. So if the first Label is "
-"in column 0 and row 1, we can put the second in column 1 and row 1 to put it "
-"to the right of the first Label."
-msgstr ""
-"ÎÎÏÎ ÏÎ ÎÎÎÎÎÏÏÎÎÎ ÏÎÏ ÎÎÏÏÎÏÎÏ ÎÏÎÎÎÏÎÏ, ÏÎÎ ÏÏÎÏÎÎÎÎÎÎÎ ÏÏÎ ÏÎÎÎÎÎ ÏÏÎ "
-"ÎÎÎÎÎ ÏÎÏ ÏÏÏÏÎÏ ÎÏÎÎÎÏÎÏ. ÎÎ ÎÏÎÎÏÏÎ, ÎÎ ÏÏÏÏÎÎ ÎÏÎ ÎÏÎÎÎÎÎ ÏÏÎÎÎÎÎÎÎÏÎ "
-"ÏÏÎÎÎÏ ÎÎÎ ÎÏÎÎÎÎÏ ÎÏÏ ÎÏÎÏÏÎÏÎ ÏÏÎÏ ÏÎ ÎÎÎÎÎ ÎÎÎ ÎÏÏ ÏÎÎÏ ÏÏÎÏ ÏÎ ÎÎÏÏ, "
-"ÎÎÎÎÎÏÎÏÎÏ ÎÏÏ 0. ÎÏÏÎ ÎÎÎ Î ÏÏÏÏÎ ÎÏÎÎÎÏÎ ÎÎÎÎÎ ÏÏÎ ÏÏÎÎÎ 0 ÎÎÎ ÏÏÎ ÎÏÎÎÎÎ "
-"1, ÎÏÎÏÎÏÎÎ ÎÎ ÎÎÎÎÏÎÎ ÏÎ ÎÎÏÏÎÏÎ ÏÏÎ ÏÏÎÎÎ 1 ÎÎÎ ÏÏÎ ÎÏÎÎÎÎ 1 ÎÎÎ ÎÎ ÏÎ "
-"ÎÎÎÎÏÎÎ ÏÏÎ ÎÎÎÎÎ ÏÎÏ ÏÏÏÏÎÏ ÎÏÎÎÎÏÎÏ."
+#~ msgid "get_content_area"
+#~ msgstr "get_content_area"
 
-#: C/02_welcome_to_the_grid.js.page:195(p)
-msgid ""
-"Note the number 2 in the attach statement for the Image. That's what does "
-"the trick here. That number is how many columns the Image spans, remember? "
-"So when we put it together, we get something like this:"
-msgstr ""
-"ÎÎÎÎÎÏÏÏÎ ÏÎÎ ÎÏÎÎÎÏ 2 ÏÏÎ ÎÎÎÏÏÎ ÏÏÎÏÎÏÏÎÏÎÏ ÎÎÎ ÏÎÎ ÎÎÎÏÎÎ. ÎÏÏÏ ÎÎÎÎÎ "
-"ÎÎÏ. ÎÏÏÏÏ Î ÎÏÎÎÎÏÏ ÎÎÎÎÎ ÏÏÏÎÏ ÏÏÎÎÎÏ ÎÎÎÏÏÏÎÎ Î ÎÎÎÏÎÎ, ÎÏÎÎÏÏÎ; ÎÏÏÎ "
-"ÏÏÎÎ ÏÎ ÎÎÎÎÏÎÎ ÎÎÎÎ, ÏÎÏÎÏÎÎ ÎÎÏÎ ÏÎÎ ÎÏÏÏ:"
+#~ msgid "GtkCellRendererPixbuf"
+#~ msgstr "GtkCellRendererPixbuf"
 
-#: C/02_welcome_to_the_grid.js.page:198(p)
-msgid "There are two things you should take note of, here."
-msgstr "ÎÏÎÏÏÎÏÎ ÎÏÎ ÏÏÎÎÎÎÏÎ ÏÎÏ ÎÎ ÏÏÎÏÎÎ ÎÎ ÏÎÎÎÎÏÏÎÏÎ, ÎÎÏ."
+#~ msgid "Gtk.ComboBox"
+#~ msgstr "Gtk.ComboBox"
 
-#: C/02_welcome_to_the_grid.js.page:200(p)
-msgid ""
-"Setting the Image to span two columns doesn't stretch the picture itself "
-"horizontally. Instead, it stretches the invisible box taken up by the Image "
-"widget to fill both columns, then places the Image in the center of that box."
-msgstr ""
-"Î ÎÏÎÏÎÏÏ ÏÎÏ ÎÎÎÏÎÎÏ ÎÎ ÎÎÎÏÏÎÎ ÎÏÎ ÏÏÎÎÎÏ ÎÎÎ ÏÎÎÏÏÎÎÎ ÏÎÎ ÎÎÎÎ ÏÎÎ ÎÎÎÏÎÎ "
-"ÎÏÎÎÏÎÏÎÎ. ÎÎÏÎÎÎÏÎ, ÏÎÎÏÏÎÎÎ ÏÎ ÎÏÏÎÏÎ ÏÎÎÎÏÎÎ ÏÎÏ ÏÎÏÎÎÎÎ ÎÏÏ ÏÎ ÎÏÎÏÎÎÏ "
-"ÏÏÏÏÎÏÎÎÏ ÏÎÏ ÎÎÎÏÎÎÏ ÎÎÎ ÎÎ ÎÎÎÎÏÎÎ ÎÎÎ ÏÎÏ ÎÏÎ ÏÏÎÎÎÏ, ÎÏÎÎÏÎ ÎÎÎÎÎ ÏÎÎ "
-"ÎÎÎÏÎÎ ÏÏÎ ÎÎÎÏÏÎ ÎÏÏÎÏ ÏÎÏ ÏÎÎÎÏÎÎÏ."
+#~ msgid "set_attributes"
+#~ msgstr "set_attributes"
 
-#: C/02_welcome_to_the_grid.js.page:201(p)
-msgid ""
-"Even though we've set the Grid's row_spacing and the ApplicationWindow's "
-"border_width properties, we haven't yet set anything that puts a border in "
-"between the two Labels. They were separate earlier when the Image was in "
-"only one column, but now that it spans both GNOME doesn't see a reason to "
-"keep them apart."
-msgstr ""
-"ÎÎ ÎÎÎ ÎÏÎÏÎÎ ÎÏÎÏÎÎ ÏÎ row_spacing ÏÎÏ ÏÎÎÎÎÎÏÎÏ ÎÎÎ ÏÎÏ ÎÎÎÏÏÎÏÎÏ "
-"border_width ÏÎÏ ApplicationWindow, ÎÎÎ ÎÏÎÏÎÎ ÎÏÎÏÎÎ ÎÎÏÎÎ ÎÏÎÎÎÏÎÏÎ ÎÎÎÎÎ "
-"ÎÎÎ ÏÎÏÎÎÏÎÎÎÎ ÎÎÏÎÎÏ ÏÏÎ ÎÏÎ ÎÏÎÎÎÏÏÎ. ÎÏÎÎ ÎÎÏÏÏÎÏÏÎÏ ÎÏÏÎÏÎÏÎ ÏÏÎÎ Î "
-"ÎÎÎÏÎÎ ÎÏÎÎ ÎÏÎÎ ÎÎÎ ÏÏÎÎÎ, ÎÎÎÎ ÏÏÏÎ ÏÎÏ ÎÎÎÏÏÏÎÎ ÎÎÎ ÏÎÏ ÎÏÎ ÏÎ GNOME ÎÎÎ "
-"ÎÎÎÏÎÎ ÎÏÎÎ ÎÎ ÏÎÏ ÎÏÎÏÎÏÎÎ ÎÎÏÏÏÎ."
+#~ msgid "GtkCellLayout"
+#~ msgstr "GtkCellLayout"
 
-#: C/02_welcome_to_the_grid.js.page:204(p)
-msgid ""
-"There are at least three ways we can get around that last one. First, we can "
-"set a margin_left or margin_right on one of the Labels:"
-msgstr ""
-"ÎÏÎÏÏÎÏÎ ÏÎÏÎÎÏÎÏÏÎÎ ÏÏÎÎÏ ÏÏÏÏÎÎ ÏÎÏ ÎÏÎÏÎÏÎÎ ÎÎ ÏÎÏÎÎÎÎÏÎÏÎÎ ÏÎÎ "
-"ÏÎÎÎÏÏÎÎÎ. ÎÏÏÏÎ, ÎÏÎÏÎÏÎÎ ÎÎ ÎÏÎÏÎÏÎÎ ÎÎÎ margin_left Î margin_right ÏÎ ÎÎÎ "
-"ÎÏÏ ÏÎÏ ÎÏÎÎÎÏÎÏ:"
+#~ msgid "Gtk.CellRendererPixbuf"
+#~ msgstr "Gtk.CellRendererPixbuf"
 
-#: C/02_welcome_to_the_grid.js.page:207(p)
-msgid "Second, we can set the Grid's column_homogenous property to true."
-msgstr "ÎÎÏÏÎÏÎ, ÎÏÎÏÎÏÎÎ ÎÎ ÎÏÎÏÎÏÎÎ ÏÎÎ ÎÎÎÏÏÎÏÎ column_homogenous ÏÎ ÎÎÎÎÎ."
+#~ msgid "Gtk.ComboBoxText"
+#~ msgstr "Gtk.ComboBoxText"
 
-#: C/02_welcome_to_the_grid.js.page:215(p)
-msgid "That makes it look something like this:"
-msgstr "ÎÏÏÏ ÏÎ ÎÎÎÎÎ ÎÎ ÎÎÎÎÎÎÎ ÏÎÎ ÎÏÏÏ:"
+#~ msgid "Gtk.ColorButton"
+#~ msgstr "Gtk.ColorButton"
 
-#: C/02_welcome_to_the_grid.js.page:218(p)
-msgid ""
-"And third, we can set the Grid's column_spacing property, the same way we "
-"set its row_spacing."
-msgstr ""
-"ÎÎÎ ÏÏÎÏÎ, ÎÏÎÏÎÏÎÎ ÎÎ ÎÏÎÏÎÏÎÎ ÏÎÎ ÎÎÎÏÏÎÏÎ column_spacing ÏÎÏ ÏÎÎÎÎÎÏÎÏ, "
-"ÎÎ ÏÎÎ ÎÎÎÎ ÏÏÏÏÎ ÏÎÏ ÎÏÎÎÎÏÎÎ ÏÎ row_spacing ÏÎÏ."
+#~ msgid "Gdk.RGBA"
+#~ msgstr "Gdk.RGBA"
 
-#: C/02_welcome_to_the_grid.js.page:225(p)
-msgid "That makes it look like this:"
-msgstr "ÎÏÏÏ ÏÎ ÎÎÎÎÎ ÎÎ ÎÎÎÎÎÎÎ ÏÎÎ ÎÏÏÏ:"
+#~ msgid "GtkColorButton"
+#~ msgstr "GtkColorButton"
 
-#: C/02_welcome_to_the_grid.js.page:230(title)
-msgid "Using stock images"
-msgstr "ÎÏÎÏÎ ÎÎÎÏÎÏÎ ÏÎÏÎÎÎÏÎÎÎÎÎÏ"
+#~ msgid "GtkColorChooser"
+#~ msgstr "GtkColorChooser"
 
-#: C/02_welcome_to_the_grid.js.page:232(p)
-msgid ""
-"GNOME has a lot of stock images on hand already, that we can use if we don't "
-"feel like creating our own or if we want a universally-recognized icon. "
-"Here's how we create a stock image, compared to how we create a normal one:"
-msgstr ""
-"ÎÎ GNOME ÎÏÎÎ ÏÎÎÎÎÏ ÎÎÎÏÎÎÏ ÏÎÏÎÎÎÏÎÎÎÎÎÏ ÎÎÎ, ÏÎÏ ÎÏÎÏÎÏÎÎ ÎÎ "
-"ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÎÎ ÎÎÎ ÎÎÎÎÏÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎÎ ÏÎÏ ÎÎÎÎÏ ÎÎÏ Î ÎÎÎ "
-"ÎÎÎÎÏÎÎ ÎÎÎ ÎÎÎÎÎÎ ÎÎÎÎÎÏÏÎÏÎÎÎÎ ÎÎÎÎÎÎÎÎÎ. ÎÎ ÏÏÏ ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ ÎÎÎÏÎÎ "
-"ÏÎÏÎÎÎÏÎÎÎÎÎÏ, ÏÏÎÎÏÎÎÏÎÎÎÎ ÎÎ ÏÎ ÏÏÏ ÎÎÎÎÎÏÏÎÎÏÎÎ ÎÎÎ ÎÎÎÎÎÎÎÎ:"
+#~ msgid "RGBA Colors"
+#~ msgstr "ÎÏÏÎÎÏÎ RGBA"
 
-#: C/02_welcome_to_the_grid.js.page:240(p)
-msgid ""
-"After that, we attach it to the Grid to the left of the first Label. (We "
-"aren't using the second one for this example.)"
-msgstr ""
-"ÎÎÏÎ ÎÏÏ ÎÏÏÏ, ÏÎ ÏÏÎÏÎÎÎÎÎÎÎ ÏÏÎ ÏÎÎÎÎÎ ÏÏÎ ÎÏÎÏÏÎÏÎ ÏÎÏ ÏÏÏÏÎÏ ÎÏÎÎÎÏÎÏ. "
-"(ÎÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÏÎ ÎÎÏÏÎÏÎ ÎÎÎ ÎÏÏÏ ÏÎ ÏÎÏÎÎÎÎÎÎÎ.)"
+#~ msgid "Gtk.CheckButton"
+#~ msgstr "Gtk.CheckButton"
 
-#: C/02_welcome_to_the_grid.js.page:247(p)
-msgid "That gives us this, when we run it:"
-msgstr "ÎÏÏÎ ÎÎÏ ÎÎÎÎÎ ÎÏÏÏ, ÏÏÎÎ ÏÎ ÎÎÏÎÎÎÏÎÎ:"
+#~ msgid "GtkCheckButton"
+#~ msgstr "GtkCheckButton"
 
-#: C/02_welcome_to_the_grid.js.page:250(p)
-#| msgid ""
-#| "That's what the stock \"About\" icon looks like. You can see a list of "
-#| "all the stock items starting with gtk-about in <link href=\"http://";
-#| "developer.gnome.org/gtk/2.24/gtk-Stock-Items.html#GTK-STOCK-ABOUT:CAPS"
-#| "\">GNOME's developer documentation.</link> It was written for C "
-#| "programmers, but you don't need to know C to use it; just look at the "
-#| "part in quotation marks, like \"gtk-about\", and copy that part to use "
-#| "the icon next to it."
-msgid ""
-"That's what the stock \"About\" icon looks like. You can see a list of all "
-"the stock items starting with gtk-about in <link href=\"http://developer.";
-"gnome.org/gtk/2.24/gtk-Stock-Items.html#GTK-STOCK-ABOUT:CAPS\">GNOME's "
-"developer documentation</link>. It was written for C programmers, but you "
-"don't need to know C to use it; just look at the part in quotation marks, "
-"like \"gtk-about\", and copy that part to use the icon next to it."
-msgstr ""
-"ÎÏÏÏ ÎÎÎÎÎ ÏÏÏ ÏÎ ÎÎÎÎÎÎÎÎÎ ÏÎÏÎÎÎÏÎÎÎÎÎÏ \"About\" ÎÎÎÎÎÎÎ. ÎÏÎÏÎÎÏÎ ÎÎ "
-"ÎÎÎÏÎ ÎÎÎ ÎÎÏÏÎ ÏÎÏÎ ÏÏÎ ÏÏÎÎÏÎÎÏÎ ÏÎÏÎÎÎÏÎÎÎÎÎÏ ÎÎÎÎÎÏÎÏÎÏ ÎÎ ÏÎ gtk-about "
-"ÏÏÎ <link href=\"http://developer.gnome.org/gtk/2.24/gtk-Stock-Items.";
-"html#GTK-STOCK-ABOUT:CAPS\"> ÏÎÎÎÎÏÎÏÏÎ ÎÎÎÏÏÏÎÎÏ ÏÎÏ GNOME</link>. ÎÏÎÏÏÎÎÎ "
-"ÎÎÎ ÏÏÎÎÏÎÎÎÎÏÎÏÏÎÏ C, ÎÎÎÎ ÎÎÎ ÏÏÎÎÎÎÎÏÏÎ ÎÎ ÎÎÏÎÏÎ C ÎÎÎ ÎÎ ÏÎ "
-"ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÂ ÎÏÎÎ ÎÎÎÏÎÎÏÎ ÏÎ ÎÎÏÎÏ ÏÎ ÎÎÏÎÎÏÎÎÎÎ, ÏÏÏÏ \"gtk-about\" "
-"ÎÎÎ ÎÎÏÎÎÏÎÏÏÎ ÎÏÏÏ ÏÎ ÎÎÏÎÏ ÎÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÏÎ ÎÎÎÎÎÎÎÎÎ ÎÎÏÎÎ ÏÎÏ."
+#~ msgid "tiffany antpoolski gmail com"
+#~ msgstr "tiffany antpoolski gmail com"
 
-#: C/02_welcome_to_the_grid.js.page:251(p)
-msgid ""
-"We put single quotes around 'gtk-about' here because, unlike text strings "
-"that have double quotes around them, that part will never need to be "
-"translated into another language. In fact, if it <em>were</em> translated "
-"it'd break the icon, because its name is still \"gtk-about\" no matter which "
-"language you speak."
-msgstr ""
-"ÎÎÎÎÏÎÎ ÎÎÎÎ ÎÎÏÎÎÏÎÎÎÎ ÎÏÏÏ ÎÏÏ ÏÎ 'gtk-about' ÎÎÏ ÎÏÎÎÎÎ, ÎÎÏÎÎÎÏÎ ÎÎ ÏÎÏ "
-"ÏÏÎÎÎÎÎÏÎÎÏÎÏ ÎÎÎÎÎÎÎÏ ÏÎÏ ÎÏÎÏÎ ÎÎÏÎÎ ÎÎÏÎÎÏÎÎÎÎ ÎÏÏÏ ÏÎÏÏ, ÎÏÏÏ ÏÎ ÎÎÏÎÏ "
-"ÎÎÎ ÎÎ ÏÏÎÎÎÏÏÎÎ ÎÎ ÎÎÏÎÏÏÎÏÏÎÎ ÏÎÏÎ ÏÎ ÎÎÎÎ ÎÎÏÏÏÎ. ÎÏÎÎÎÎÏÎ, ÎÎÎ "
-"<em>ÎÎÏÎÏÏÎÎÏÏÎÎÎ</em> ÎÎ ÎÏÏÎÎÎ ÏÎ ÎÎÎÎÎÎÎÎÎ, ÎÏÎÎÎÎ ÏÎ ÏÎÎÎÎ ÏÎÏ ÎÎÎÎÎ "
-"ÎÎÏÎÎ \"gtk-about\" ÎÎÎÎÎÏÏÎÏÎ ÎÏÏ ÏÎÎ ÎÎÎÎÎÏÎÎÎÎ ÎÎÏÏÏÎ."
+#~ msgid "GtkButtonBox"
+#~ msgstr "GtkButtonBox"
 
-#: C/02_welcome_to_the_grid.js.page:257(p)
-msgid ""
-"Before we go on to the next tutorial, let's try something a little different:"
-msgstr "ÎÏÎÎ ÏÎÎÎ ÏÏÎ ÎÏÏÎÎÎÎ ÎÎÎÎÎÎ, ÎÏ ÎÎÎÎÎÎÏÎÏÎÎ ÎÎÏÎ ÎÎÎÎ ÎÎÎÏÎÏÎÏÎÎÏ:"
+#~ msgid "GtkBox"
+#~ msgstr "GtkBox"
 
-#: C/02_welcome_to_the_grid.js.page:269(p)
-#| msgid ""
-#| "That's right, we turned the Label into a Button just by changing the "
-#| "name! If you run the application and click on it, though, you'll find "
-#| "that it doesn't do anything. How do we make our Button do something? "
-#| "That's what we'll find out, in <link xref=\"getting_the_signal.js\">our "
-#| "next tutorial.</link>"
-msgid ""
-"That's right, we turned the Label into a Button just by changing the name! "
-"If you run the application and click on it, though, you'll find that it "
-"doesn't do anything. How do we make our Button do something? That's what "
-"we'll find out, in <link xref=\"getting_the_signal.js\">our next tutorial</"
-"link>."
-msgstr ""
-"ÎÎÏÎÎÏÏ, ÎÎÏÎÏÏÎÏÎÏÎÎ ÏÎÎ ÎÏÎÎÎÏÎ ÏÎ ÎÎÎ ÎÎÏÎÏÎ ÎÎÎÎÎÎÎÏÎÏ ÎÏÎÎ ÏÎ ÏÎÎÎÎ! "
-"ÎÎÎ ÎÎÏÎÎÎÎÏÎ ÏÎÎ ÎÏÎÏÎÎÎÎ ÎÎÎ ÏÎÏÎÏÏÎ ÏÎÎÏ ÏÎÏ, ÏÎÏÏ, ÎÎ ÎÎÎÏÎ ÏÏÎ ÎÎÎ "
-"ÎÎÎÎÎ ÏÎÏÎÏÎ. ÎÏÏ ÎÎÎÎÏÎÎ ÏÎ ÎÎÏÎÏÎ ÎÎÏ ÎÎ ÎÎÎÎÎ ÎÎÏÎ; ÎÏÏÏ ÎÎ ÎÎÎÎÏÎÎ ÏÏÎ "
-"<link xref=\"getting_the_signal.js\">ÎÏÏÎÎÎÎ ÎÎÎÎÎÎ ÎÎÏ</link>."
+#~ msgid "Unicode Manipulation"
+#~ msgstr "ÎÎÎÏÎÏÎÏÏ Unicode"
 
-#: C/02_welcome_to_the_grid.js.page:270(p)
-msgid ""
-"If you like, feel free to spend some time experimenting with Grids, Labels, "
-"and Images, including stock images."
-msgstr ""
-"ÎÎÎ ÎÎÎÎÏÎ, ÎÏÎÏÎÎÏÎ ÎÎÎÏÎÎÏÎ ÎÎ ÎÎÎÎÏÎÏÎ ÎÎÏÎÎÎ ÏÏÏÎÎ ÏÎÎÏÎÎÎÏÎÎÏÎÎÎÎÎ ÎÎ "
-"ÏÎÎÎÎÎÏÎ, ÎÏÎÎÎÏÎÏ ÎÎÎ ÎÎÎÏÎÎÏ ÏÏÎÏÎÏÎÎÎÎÎÎÎÎÎÎÎÏÎ ÏÏÎ ÎÎÎÏÎÏÎ ÏÎÏÎÎÎÏÎÎÎÎÎÏ."
+#~ msgid "tiffany antopolski com"
+#~ msgstr "tiffany antopolski com"
 
-#: C/02_welcome_to_the_grid.js.page:271(p)
-msgid ""
-"One trick you can use to make more complex layouts is to nest Grids inside "
-"of each other. This lets you group together related widgets, and rearrange "
-"them easily. Take a look at the <link xref=\"radiobutton.js\">RadioButton</"
-"link> code sample if you'd like to see how this is done."
-msgstr ""
-"ÎÎÎ ÎÏÎÏÎ ÏÎÏ ÎÏÎÏÎÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÎÎÎ ÎÎ ÎÎÎÎÏÎ ÏÎÎ ÏÏÎÎÎÏÎÏ "
-"ÎÎÎÏÎÎÎÎÏ ÎÎÎÎÎ Î ÎÎÎÎÏÎ ÏÎÎÎÎÎÏÏÎ ÏÎ ÎÎÎ ÎÎÏÎ ÏÏÎ ÎÎÎÎ. ÎÏÏÏ ÏÎÏ ÎÏÎÏÏÎÏÎÎ "
-"ÎÎ ÎÎÎÎÎÏÎÎÎÏÎÏÎ ÎÎÎÎ ÏÏÎÏÎÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÎ ÎÎ ÏÎ ÎÎÎÎÎÎÏÎÎÎÏÎ "
-"ÎÏÎÎÎÎ. ÎÎÎÏÎ ÎÎÎ ÎÎÏÎÎ ÏÏÎ ÎÎÎÎÎÎ ÎÏÎÎÎÎ <link xref=\"radiobutton.js"
-"\">RadioButton</link> ÎÎÎ ÎÎ ÎÎÎÎÏÎ ÎÎ ÎÎÎÏÎ ÏÏÏ ÎÎÎÎÏÎÎ ÎÏÏÏ."
+#~ msgid "The Vala Tutorial"
+#~ msgstr "ÎÎ ÎÎÎÎÎÎ Vala"
 
-#. Put one translator per line, in the form of NAME <EMAIL>, YEAR1, YEAR2
-#: C/index.page:0(None)
-msgid "translator-credits"
-msgstr "ÎÎÎÎÏÏÎÏ ÎÏÎÎÎÎÏ <dmtrs32 gmail com>, 2012"
+#~ msgid "Sample Vala code"
+#~ msgstr "ÎÎÎÎÎÎ ÎÏÎÎÎÎ Vala"
+
+#~ msgid "set_default_size"
+#~ msgstr "set_default_size"
+
+#~ msgid "GtkAboutDialog"
+#~ msgstr "GtkAboutDialog"
+
+#~ msgid "Gtk.AboutDialog"
+#~ msgstr "Gtk.AboutDialog"
+
+#~ msgid "@@image: 'media/03_jssignal_02b.png'; md5=THIS FILE DOESN'T EXIST"
+#~ msgstr "@@image: 'media/03_jssignal_02b.png'Â md5=THIS FILE DOESN'T EXIST"
 
 #~ msgid ""
 #~ "<code>set_position(Gtk.WindowPosition.CENTER)</code> centers the window. "
diff --git a/platform-overview/el/el.po b/platform-overview/el/el.po
index b0ff3de..c30526f 100644
--- a/platform-overview/el/el.po
+++ b/platform-overview/el/el.po
@@ -5,9 +5,9 @@ msgid ""
 msgstr ""
 "Project-Id-Version: packagename\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-08-18 22:26+0000\n"
-"PO-Revision-Date: 2012-09-03 09:58+0300\n"
-"Last-Translator: Dimitris Spingos (ÎÎÎÎÏÏÎÏ ÎÏÎÎÎÎÏ) <dmtrs32 gmail com>\n"
+"POT-Creation-Date: 2013-01-21 11:38+0000\n"
+"PO-Revision-Date: 2012-11-29 15:47+0200\n"
+"Last-Translator: Tom Tryfonidis <tomtryf gmail com>\n"
 "Language-Team: team gnome gr\n"
 "Language: el\n"
 "MIME-Version: 1.0\n"
@@ -16,671 +16,897 @@ msgstr ""
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 "X-Generator: Virtaal 0.7.0\n"
 
-#: C/webkit.page:6(desc)
-msgid "The power of HTML5 and the web in your application"
-msgstr "Î ÎÏÎÎÎÎ ÏÎÏ HTML5 ÎÎÎ ÏÎÏ ÎÏÏÎÏ ÏÏÎÏ ÎÏÎÏÎÎÎÎÏ ÏÎÏ"
-
-#: C/webkit.page:10(title)
-msgid "WebKit"
-msgstr "WebKit"
-
-#: C/webkit.page:12(p)
-msgid ""
-"WebKit is a powerful, multi-platform HTML engine used in open source and "
-"commercial products. WebKitGTK+ is the port of WebKit built on <link xref="
-"\"gtk\">GTK+</link> and integrated into the GNOME developer platform. "
-"WebKitGTK+ is developed upstream as part of the main WebKit project, so it's "
-"always up to date with the latest HTML5 features."
+#. Put one translator per line, in the form NAME <EMAIL>, YEAR1, YEAR2
+msgctxt "_"
+msgid "translator-credits"
 msgstr ""
-"WebKit ÎÎÎÎÎ ÎÎÎ ÎÏÏÏÏÎ ÎÎÎÏÏÏÏÎÎÎÎÎ ÎÎÏÎÎÎ ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÏÎ ÎÎÎÎÎÏÏ "
-"ÎÎÎÎÏÎÎÎÏ ÎÎÎ ÎÎÏÎÏÎÎÎ ÏÏÎÏÏÎÏÎ. ÎÎ WebKitGTK ÎÎÎÎÎ Î ÎÏÏÎ ÏÎÏ WebKit "
-"ÎÎÎÏÏÏÎÎÎÎÎ ÏÏÎ <link xref=\"gtk\">GTK+</link> ÎÎÎ ÎÎÏÏÎÎÏÏÎÎÎÎ ÏÏÎ ÎÎÎÎÏÎÎÎÏ "
-"ÎÎÎÏÏÏÎÎÏ ÏÎÏ GNOME. ÎÎ WebKitGTK ÎÎÎÏÏÏÏÏÎÏÎÎ ÎÎÎÎÎÎÎ ÏÏ ÎÎÏÎÏ ÏÎÏ ÎÏÏÎÎÏ "
-"ÎÏÎÎÏ WebKit, ÎÏÏÎ ÎÎÎÎÎ ÏÎÎÏÎ ÎÎÎÎÎÏÏÎÎÎÎ ÎÎ ÏÎ ÏÎÎÎÏÏÎÎÎ ÎÎÏÏÎÏÎÎÏÎ ÏÎÏ "
-"HTML5."
+"ÎÎÎÎÏÏÎÏ ÎÏÎÎÎÎÏ <dmtrs32 gmail com>, 2012\n"
+"ÎÎÎÎÎ ÎÎÏÎÏÎÎÎÎÏ <epetoumenou gmail com>, 2010\n"
+"ÎÎÏÎÎÏ ÎÎÎÏÎÎÎÏ <m zindilis dmajor org>"
 
-#: C/webkit.page:19(p)
-msgid ""
-"WebKitGTK+ makes it easy to add web functionality to your application, or to "
-"use HTML5 and associated technologies to create dynamic user interfaces "
-"quickly."
-msgstr ""
-"ÎÎ WebKitGTK+ ÎÎÎÏÎÎÎÏÎÎÎ ÏÎÎ ÏÏÎÏÎÎÎÎ ÎÎÎÏÎÏÏÎÎÎÏÏÎÏÎÏ ÎÏÏÎÏ ÏÏÎÎ ÎÏÎÏÎÎÎÎ "
-"ÏÎÏ, Î ÏÎ ÏÏÎÏÎ HTML5 ÎÎÎ ÏÏÏÏÎÏÎÏÎÎÎÏÎ ÏÎÏÎÎÎÎÎÎÏÎ ÎÎÎ ÎÏÎÎÎÏÎ ÎÎÎÎÎÏÏÎÎÎ "
-"ÎÏÎÎÎÎÎÏÎ ÎÎÎÏÎÏÏÎ ÏÏÎÏÏÎ."
+#: C/index.page:6(info/desc)
+msgid "Overview of the powerful technologies inside the GNOME platform."
+msgstr "ÎÎÏÎÎÏÎÏÎ ÏÏÎ ÎÏÏÏÏÏÎ ÏÎÏÎÎÎÎÎÎÏÎ ÏÎÏ ÏÎÎÏÏÏÏÎÎÏ GNOME."
 
-#: C/webkit.page:24(link)
-msgid "WebKitGTK+ demo tutorial"
-msgstr "ÎÎÏÎÏÏÎÎÏÎ ÎÎÎÎÎÎÏÎÏ WebKitGTK+"
+#: C/index.page:10(credit/name)
+msgid "Shaun McCance"
+msgstr "Shaun McCance"
 
-#: C/webkit.page:25(link)
-msgid "WebKitGTK+ Reference Manual"
-msgstr "ÎÎÏÎÎÏÎÎÎÎ ÎÎÎÏÎÏÎÏ ÏÎÏ WebKitGTK+"
+#: C/index.page:15(credit/name)
+msgid "GermÃn PÃo-CaamaÃo"
+msgstr "GermÃn PÃo-CaamaÃo"
 
-#: C/webkit.page:26(link)
-msgid "The WebKitGTK+ web site"
-msgstr "ÎÏÏÎÏÎÎÎÎÎ ÏÎÏ WebKitGTK+"
+#: C/index.page:20(credit/name)
+msgid "GNOME Foundation"
+msgstr "ÎÎÏÏÎÎ GNOME"
 
-#: C/telepathy.page:6(desc)
-msgid "Unified and integrated real-time communication service"
-msgstr "ÎÎÎÎÎÎ ÎÎÎ ÎÎÏÏÎÎÏÏÎÎÎÎ ÏÏÎÏÎÏÎÎ ÎÏÎÎÎÎÎÏÎÎÎÏ ÏÏÎÎÎÎÏÎÎÎÏ ÏÏÏÎÎÏ"
+#: C/index.page:21(credit/page)
+msgid "http://foundation.gnome.org/";
+msgstr "http://foundation.gnome.org/";
 
-#: C/telepathy.page:10(title)
-msgid "Telepathy"
-msgstr "Telepathy"
+#: C/index.page:23(info/title)
+msgctxt "link:trail"
+msgid "GNOME"
+msgstr "GNOME"
+
+#: C/index.page:27(page/title)
+msgid "Overview of the GNOME Platform"
+msgstr "ÎÎÏÎÎÏÎÏÎ ÏÎÏ ÏÎÎÏÏÏÏÎÎÏ GNOME"
 
-#: C/telepathy.page:12(p)
+#: C/index.page:29(page/p)
 msgid ""
-"Telepathy provides a powerful framework for interacting with the user's "
-"instant messaging contacts. With Telepathy, all accounts and connections are "
-"handled by a D-Bus session service that's deeply integrated into the GNOME "
-"desktop. Applications can tie into this service to communicate with contacts."
+"GNOME is a powerful but simple desktop environment with a strong focus on "
+"usability, accessibility, and internationalization. GNOME is designed to be "
+"usable by everybody, regardless of technical expertise, disabilitites, or "
+"native language. GNOME makes it easy for people to use their computers."
 msgstr ""
-"ÎÎ Telepathy ÏÎÏÎÏÎÎ ÎÎÎ ÎÏÏÏÏÏ ÏÎÎÎÎÏÏ ÎÎÎ ÎÎÎÎÎÎÏÎÎÏÎÏÎ ÎÎ ÏÎÏ ÎÏÎÏÎÏ "
-"ÎÎÎÏÏÎ ÎÎÎÏÎÎÏÏÎ ÏÎÏ ÏÏÎÏÏÎ. ÎÎ ÏÎ Telepathy, ÏÎÎÎ ÎÎ ÎÎÎÎÏÎÎÏÎÎÎ ÎÎÎ ÎÎ "
-"ÏÏÎÎÎÏÎÎÏ ÏÎÎÏÎÎÎÎÏÎÎ ÎÏÏ ÎÎÎ ÏÏÎÏÎÏÎÎ ÏÏÎÎÎÏÎÎÏ ÎÎÎÏÎÎÏ D ÏÎÏ ÎÎÎÎÎ ÎÎÎÎÎ "
-"ÎÎÏÏÎÎÏÏÎÎÎÎ ÏÏÎÎ ÎÏÎÏÎÎÎÎÎ ÎÏÎÎÏÎÎÏ ÏÎÏ GNOME. ÎÎ ÎÏÎÏÎÎÎÎÏ ÎÏÎÏÎÏÎ ÎÎ "
-"ÏÏÎÏÎÏÏÎÏÎ ÎÎ ÎÏÏÎÎ ÏÎÎ ÏÏÎÏÎÏÎÎ ÎÎÎ ÎÏÎÎÎÎÎÏÎÎÎ ÎÎ ÎÏÎÏÎÏ."
+"ÎÎ GNOME ÎÎÎÎÎ ÎÎÎ ÎÏÏÏÏÏ ÎÎÎÎ ÎÏÎÏ ÏÎÏÎÎÎÎÎÎÎ ÎÏÎÏÎÎÎÎÎÏ ÎÏÎÎÏÎÎÏ ÏÎÏ "
+"ÎÏÎÎÎÎÏÏÏÎÎÏÎÎ ÎÎÎÎÎÏÎÏÎ ÏÏÎ ÏÏÎÏÏÎÎÏÏÎÏÎ, ÏÎÎ ÏÏÎÏÎÏÏÏÎÏÎ ÎÎÎ ÏÎ "
+"ÎÎÎÎÎÎÏÎÎÎÏÎ. ÎÎ GNOME ÎÏÎÎ ÏÏÎÎÎÎÏÏÎÎ ÎÏÏÎ ÏÏÏÎ ÎÎ ÎÏÎÏÎÎ ÎÎ ÏÎ "
+"ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ Î ÎÎÎÎÎÎÏ, ÎÎÎÎÎÏÏÎÏÎ ÎÏÏ ÏÎÏ ÏÎÏÎÎÎÎÏ ÏÎÏ ÎÎÏÏÎÎÏ, ÎÎÎÏÎÏÎÎÏ "
+"Î ÎÎÏÏÎÎÎ ÎÎÏÏÏÎ. ÎÎ GNOME ÎÏÎÎÏÎÎÎÎ ÏÎ ÏÏÎÏÎ ÏÏÎ ÏÏÎÎÎÎÎÏÏÏÎ ÎÎÎ ÏÎÎÏÏ ÎÎÏ."
 
-#: C/telepathy.page:18(p)
+#: C/index.page:34(page/p)
 msgid ""
-"With the Telepathy Tubes API, you can even tunnel an arbitrary protocol over "
-"modern instant messaging protocols like Jabber to create interactive "
-"applications. Create multi-player games or collaborative editors that "
-"integrate with the desktop-wide instant messaging services."
+"The GNOME platform provides a comprehensive development environment for "
+"graphical applications and other software. GNOME provides a comprehensive "
+"developer platform that allow developers to create professional software "
+"that is easy to use and aesthetically pleasing. Using the technologies in "
+"GNOME, you can create high-quality software to meet and exceed your users' "
+"expectations. This document provides a high-level overview of the GNOME "
+"platform along with links to detailed documentation on each part of the "
+"platform."
 msgstr ""
-"ÎÎ ÏÎ Telepathy Tubes API, ÎÏÎÏÎÎÏÎ ÎÎÏÎÎ ÎÎ ÎÏÎÎÎÎÎÎÎÏÎÏÎ ÎÎÎ ÎÎÎÏÎÎÏÎ "
-"ÏÏÏÏÏÎÎÎÎÎ ÏÎÎÏ ÏÎ ÏÏÎÏÏÎÎÎ ÏÏÏÏÏÎÎÎÎÎ ÎÎÎÏÏÎ ÎÎÎÏÎÎÏÏÎ ÏÏÏÏ ÏÎ Jabber ÎÎÎ "
-"ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎ ÎÎÎÎÏÎÏÏÎÎÎÏ ÎÏÎÏÎÎÎÎÏ. ÎÎÎÎÎÏÏÎÎÏÏÎ ÏÎÎÏÎÎÎÎÎ ÏÎÎÎÎÏÎÏÎ "
-"ÏÎÎÎÏÏÎ Î ÏÏÎÎÏÎÎÎÏÎÎÎÎÏÏ ÎÏÎÎÎÏÎÎÏÏÎÏ ÏÎÏ ÎÎÏÏÎÎÏÏÎÎÎÏÎÎ ÎÎ ÏÎÏ ÏÏÎÏÎÏÎÎÏ "
-"ÎÎÎÏÏÎ ÎÎÎÏÎÎÏÏÎ ÏÎ ÏÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎÎ ÎÏÎÎÏÎÎÏ."
+"ÎÎ ÎÎÎÎÏÎÎÎÏ GNOME ÏÎÏÎÏÎÎ ÎÎÎ ÎÎÏÎÏÎÎÎÎÎ ÏÎÏÎÎÎÎÎÎÎ ÎÎÎÏÏÏÎÎÏ ÎÎÎ ÎÏÎÏÎÎÎÏ "
+"ÎÏÎÏÎÎÎÎÏ ÎÎÎ ÎÎÎÎ ÎÎÎÎÏÎÎÎÏ. ÎÎ GNOME ÏÎÏÎÏÎÎ ÎÎÎ ÎÎÏÎÏÎÎÎÎÎ ÎÎÎÎÏÎÎÎÏ "
+"ÎÎÎÏÏÏÎÎÏ ÏÎÏ ÎÏÎÏÏÎÏÎÎ ÏÏÎÏÏ ÏÏÎÎÏÎÎÎÎÏÎÏÏÎÏ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎ ÎÏÎÎÎÎÎÎÎÏÎÎÏ "
+"ÎÎÎÎÏÎÎÎÏ, ÎÏÏÏÎÏÏÎ ÎÎÎ ÎÎÎÎÎÏÎÎÏÎ. ÎÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎÏ ÏÎÏÎÎÎÎÎÎÎÏ ÏÏÎ "
+"GNOME, ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎ ÎÎÎÎÏÎÎÎÏ ÏÏÎÎÎÏ ÏÎÎÏÏÎÏÎÏ ÎÎÎ ÎÎ "
+"ÏÏÎÏÎÎÎÏÏÎÎ ÏÎÏ ÏÏÎÏÎÎÎÎÎÏ ÏÏÎ ÏÏÎÏÏÏÎ ÏÎÏ. ÎÏÏÏ ÏÎ ÎÎÎÏÎÏÎ ÏÎÏÎÏÎÎ ÎÎÎ "
+"ÎÏÎÏÎÏÏÎÏÎ ÏÏÎÎÎÏ ÎÏÎÏÎÎÎÏ ÏÎÏ ÎÎÎÎÏÎÎÎÎÏ GNOME, ÎÎÎÎ ÎÎ ÏÏÎÎÎÏÎÎÏÏ ÎÎÎ "
+"ÎÎÏÏÎÎÎÏÎ ÏÎÎÎÎÏÎÏÏÎ ÎÎÎ ÎÎÎÎ ÏÎÎÎÎ ÏÎÏ ÎÎÎÎÏÎÎÎÎÏ."
 
-#: C/telepathy.page:25(link)
-msgid "Telepathy Developer's Manual"
-msgstr "ÎÎÏÎÎÏÎÎÎÎ ÏÏÎÎÏÎÎÎÎÏÎÏÏÏÎ ÏÎÏ Telepathy"
+#: C/index.page:45(links/title)
+msgid "Graphics and Multimedia"
+msgstr "ÎÏÎÏÎÎÎ ÎÎÎ ÏÎÎÏÎÎÏÎ"
 
-#: C/telepathy.page:26(link)
-msgid "The Telepathy web site"
-msgstr "ÎÏÏÎÏÎÎÎÎÎ ÏÎÏ Telepathy"
+#: C/index.page:50(links/title)
+msgid "Core Application Support"
+msgstr "ÎÏÎÏÏÎÏÎÎÎ ÎÏÎÏÎÎÎÎÏ ÏÏÏÎÎÎ"
 
-#: C/pango.page:6(desc)
-msgid "Fully internationalized text layout and rendering"
-msgstr "ÎÎÎÏÏÏ ÎÎÎÎÎÎÏÎÎÎÎÎÎÎ ÎÎÎÏÎÎÎ ÎÎÎÎÎÎÎÏ ÎÎÎ ÎÏÏÎÎÏÎ"
+#: C/index.page:55(links/title)
+msgid "Application Technologies"
+msgstr "ÎÎÏÎÎÎÎÎÎÎÏ ÎÏÎÏÎÎÎÎÏ"
 
-#: C/pango.page:10(title)
-msgid "Pango"
-msgstr "Pango"
+#: C/index.page:60(links/title)
+msgid "Under the Hood"
+msgstr "ÎÎ ÎÏÎÎÎ"
 
-#: C/pango.page:12(p)
+#: C/atk.page:6(info/desc)
+msgid "Support for screen readers and other accessibility tools"
+msgstr "ÎÏÎÏÏÎÏÎÎÎ ÎÎÎ ÎÎÎÎÎÏÏÏÎÏ ÎÎÏÎÎÏ ÎÎÎ ÎÎÎÎ ÎÏÎÎÎÎÎÎ ÏÏÎÏÎÏÏÏÎÏÎÏ"
+
+#: C/atk.page:11(page/title)
+msgid "ATK"
+msgstr "ATK"
+
+#: C/atk.page:13(page/p)
 msgid ""
-"Pango is the core text and font handling library in the GNOME platform. It "
-"is responsible for laying out and rendering text, and is used throughout GTK"
-"+."
+"Accessibility is the process of ensuring your application can be used by "
+"people with various disabilities. Disabilities come in many forms: visual "
+"impairments, movement impairments, hearing impairments, cognitive and "
+"language impairments, and seizure disorders. Many people have some sort of "
+"disability, and making your application accessibility will allow more people "
+"to use your application effectively."
 msgstr ""
-"Î Pango ÎÎÎÎÎ Î ÎÎÏÎÎÎ ÎÎÎÎÎÎÎÎÎÎ ÏÎÎÏÎÏÎÎÏ ÎÎÎÎÎÎÎÏ ÎÎÎ ÎÏÎÎÎÎÏÎÏÎÎÏÏÎ ÏÎÏ "
-"ÏÎÎÏÏÏÏÎÎÏ GNOME. ÎÎÎÎÎ ÏÏÎÏÎÏÎÎ ÎÎÎ ÏÎÎ ÎÎÏÎÎÎÏÎ ÎÎÎ ÏÎ ÎÎÎÏÎÎÎ ÏÎÏ "
-"ÎÎÎÎÎÎÎÏ ÎÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÏÎÎÏÎÏ ÏÏÎ GTK+."
+"Î ÏÏÎÏÎÏÏÏÎÏÎ ÎÎÎÎÎ Î ÎÎÎÎÎÎÎÏÎÎ ÎÎÏÏ ÏÎÏ ÎÏÎÎÎÏ ÎÎÎÏÏÎÎÎÎÎÏÎ ÏÏÎ Î ÎÏÎÏÎÎÎÎ "
+"ÏÎÏ ÎÎ ÎÏÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÎÎ ÎÏÏ ÎÏÎÎÎ ÎÎ ÎÎÎÏÎÏÎÏ ÎÎÎÏÎÏÎÎÏ. ÎÏÎÏÏÎÏÎ "
+"ÏÎÎÎÎÏ ÎÎÏÏÎÏ ÎÎÎÏÎÏÎÏÎ: ÏÏÎÎÎÎÎÎÏÎ ÏÏÎÏÎÏ, ÎÎÎÎÏÎÏ ÎÎÎ ÎÎÎÎÏ, ÎÎÏÏÎÎÎÎÏ ÎÎÎ "
+"ÎÎÏÏÏÎÎÎÏ ÎÏÏÎÎÎÎÎÏ, ÏÎÏÎÎÏÏÎÎÎÎÏ ÎÎÎÏÎÏÎÏÎÏ. ÎÎÎÎÎÎ ÎÎÎÏÏÏÎÎ ÎÎÏÎÎÎÎÎÏÎ "
+"ÎÎÏÎÎÎ ÎÎÎÏÎÏÎÎ, ÎÏÎ, ÎÎÎÎÏÏÏÎÏÎÏ ÏÎÎ ÎÏÎÏÎÎÎÎ ÏÎÏ ÏÏÎÏÎÏÎ, ÎÎÎÏÏÏÎÎÏÎ ÏÎÎ "
+"ÎÏÎÎÎ ÏÏÎ ÏÏÎÏÏÏÎ ÏÎÏ."
 
-#: C/pango.page:15(p)
+#: C/atk.page:20(page/p)
 msgid ""
-"The Pango layout engine can be used with different font backends and drawing "
-"backends. On most GNOME systems, Pango will use FreeType, fontconfig, and "
-"Cairo to access fonts and render text. On other systems, Pango will use the "
-"native font systems, such as Uniscribe on Microsoft Windows and ATSUI on "
-"MacOS"
+"GNOME provides support for accessibility devices using the ATK framework. "
+"This framework defines a set of interfaces to which graphical interface "
+"components adhere. This allows, for instance, screen readers to read the "
+"text of an interface and interact with its controls. ATK support is built "
+"into GTK+ and the rest of the GNOME platform, so any application using GTK+ "
+"will have reasonable accessibility support for free."
 msgstr ""
-"Î ÎÎÏÎÎÎ ÎÎÎÏÎÎÎÏ Pango ÎÏÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÎÎ ÎÎ ÎÎÎÏÎÏÎÏÎÎÎ ÏÏÎÏÏÎÏÎÎÎ "
-"ÎÏÎÎÎÎÏÎÏÎÎÏÏÎ ÎÎÎ ÎÏÎÏÎÎÏÎ. ÎÏÎ ÏÎÏÎÏÏÏÏÎÏÎ ÏÏÏÏÎÎÎÏÎ GNOME, Î Pango "
-"ÏÏÎÏÎÎÎÏÎÎÎÎ ÏÎ FreeType, fontconfig ÎÎÎ Cairo ÎÎÎ ÎÎ ÏÏÎÏÏÎÎÎÏÎÎ ÏÏÎÏ "
-"ÎÏÎÎÎÎÏÎÏÎÎÏÎÏ ÎÎÎ ÎÎ ÎÏÎÎÏÏÎÎ ÎÎÎÎÎÎÎ. ÎÎ ÎÎÎÎ ÏÏÏÏÎÎÎÏÎ, Î Pango "
-"ÏÏÎÏÎÎÎÏÎÎÎÎ ÏÎ ÎÎÎÎÎÎ ÏÏÏÏÎÎÎÏÎ ÎÏÎÎÎÎÏÎÏÎÎÏÏÎ, ÏÏÏÏ ÏÎ Uniscribe ÏÏÎ "
-"Microsoft Windows ÎÎÎ ÏÎ ATSUI ÏÏÎ MacOS."
+"ÎÎ GNOME ÏÏÎÏÏÎÏÎÎÎÎ ÏÏÏÎÎÏÎÏ ÏÏÎÏÎÏÏÏÎÏÎÏ ÎÎÏÏ ÏÎÏ ÏÎÎÎÎÏÎÏ ATK. ÎÏÏÏÏ Î "
+"ÏÎÎÎÎÏÏÏ ÎÏÎÎÎÎ ÎÎÎ ÏÏÎÎÎÎ ÎÎÎÏÎÏÏÎ, ÏÏÎÏ ÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÏÎ ÏÏÏÏÎÏÎÎÎ ÏÏÎ "
+"ÎÏÎÏÎÎÏÎ ÎÎÎÏÎÏÏÎ. ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ, ÎÏÏÎ ÎÏÎÏÏÎÏÎÏÎÎ ÏÏÎÏÏ ÎÎÎÎÎÏÏÏÎÏ ÎÎÏÎÎÏ "
+"ÎÎ ÎÎÎÎÎÎÎÏÎ ÏÎ ÎÎÎÎÎÎÎ ÎÎÎÏ ÎÎÎÏÎÏÎÏ ÎÎÎ ÎÎ ÎÎÎÎÎÎÏÎÎÏÎÏÎ ÎÎ ÏÎÏÏ ÎÎÎÎÏÎÏÏ "
+"ÏÎÏ. Î ÏÏÎÏÏÎÏÎÎÎ ÎÎÎ ÏÎÎ ATK ÎÎÏÏÎÎÏÏÎÎÏÎÎ ÏÏÎ GTK+ ÎÎÎ ÏÎÎ ÏÏÏÎÎÎÏÎ "
+"ÏÎÎÏÏÏÏÎÎ GNOME, ÎÏÏÎ ÏÏÏÎ ÏÎÎÏ ÎÎ ÎÏÎÏÎÎÎÎÏ ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÏÎ ÏÎ GTK+ ÎÎ "
+"ÎÏÎÏÎ ÎÎÎÎÎÎ ÏÏÎÏÏÎÏÎÎÎ ÏÏÏÏÎÎÏÎÏ ÎÎÎÏÎÎÏÎ."
 
-#: C/pango.page:22(p)
+#: C/atk.page:28(page/p)
 msgid ""
-"Pango has extensive support for the various writing systems used throughout "
-"the world. Many of the writing systems used for languages have complex rules "
-"for laying out glyphs and composing characters. With Pango, nearly all "
-"languages can be written and displayed correctly, allowing users everywhere "
-"to view text in their native languages. Pango support for multiple writing "
-"systems is automatic; application developers do not have to write any "
-"special code to support other languages."
+"Nonetheless, you should be aware of accessibility issues when when "
+"developing your applications. Although GTK+ interfaces provide reasonable "
+"accessibility by default, you can often improve how well your program "
+"behaves with accessibility tools by providing additional information to ATK. "
+"If you develop custom widgets, you should ensure that they expose their "
+"properties to ATK. You should also avoid using sound, graphics, or color as "
+"the sole means of conveying information to the user."
 msgstr ""
-"Î Pango ÏÏÎÏÏÎÏÎÎ ÎÎÏÎÏÎÎÎÎÎ ÎÎÎÏÏÎ ÎÎÎ ÏÎ ÏÏÏÏÎÎÎÏÎ ÎÏÎÏÎÏ ÏÎÏ "
-"ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÏÎ ÎÎÎÏÎÏÎ ÎÎÏÎ ÏÎ ÏÎÎ ÏÎÎ ÎÏÏÎÎ. ÎÎÎÎÎÏ ÎÏÎÏÎÏ ÎÎÏÏÏÏÎ "
-"ÏÏÎÏÎÎÎÏÎÎÎÏÎ ÏÎÏÎÏÎÎÎÎÏÏ ÎÎÎÏÎÎÏ ÎÎÎ ÏÎ ÎÎÎÏÎÎÎ ÏÏÎ ÏÏÎÎÏÎÏÎ ÏÎÏÏ ÎÎÎ ÏÎ "
-"ÏÏÎÎÎÏÎ ÏÏÎ ÏÎÏÎÎÏÎÏÏÎ ÏÎÏÏ. ÎÎÏÏ ÏÎÏ Pango, ÏÏÎÎÏÎ ÏÎÎÏ ÎÎ ÎÎÏÏÏÎÏ ÎÏÎÏÎÏÎ "
-"ÎÎ ÎÏÎÏÎÎÏÎÎ ÎÎÎ ÎÎ ÎÎÏÎÎÎÎÎÎÏÎÎ ÏÏÏÏÎ, ÎÏÎÏÏÎÏÎÎÏÎÏ ÏÏÎÏÏ ÏÏÎÏÏÎÏ ÏÎ ÏÎÎ "
-"ÏÎÎ ÎÏÏÎÎ ÎÎ ÎÎÎÎÎÎÎÏÎ ÎÎÎÎÎÎÎ ÏÏÎ ÎÎÏÏÎÎÎ ÏÎÏÏ ÎÎÏÏÏÎ. Î Pango ÏÏÎÏÏÎÏÎÎÎÎ "
-"ÎÏÏÏÎÎÏÎ ÏÎ ÎÎÎÏÎÏÎ ÏÏÏÏÎÎÎÏÎ ÎÏÎÏÎÏÂ ÎÎ ÏÏÎÎÏÎÎÎÎÏÎÏÏÎÏ ÎÎÎ ÏÏÎÎÎÎÎÏÎÎ ÎÎ "
-"ÎÏÎÏÎÏÎ ÎÎÎÎÎÏ ÎÏÎÎÎÎ ÎÎÎ ÎÎ ÏÏÎÏÎÎÏÎÏÎ ÏÏÎÏÏÎÏÎÎÎ ÎÎÎ ÎÎÎÎÏ ÎÎÏÏÏÎÏ."
+"ÎÎÏÏÎÎ ÎÏÏÎ, ÎÎ ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎÎÎÏÎ ÏÏÏÏÎ ÏÎÏ ÏÎÎ ÏÏÎÏÎÏÏÏÎÏÎ ÎÎÏÎ ÏÎÎ "
+"ÎÎÎÏÏÏÎÎ ÏÏÎ ÎÏÎÏÎÎÎÏÎ ÏÎÏ. ÎÎ ÎÎÎ ÎÎ ÎÎÎÏÎÏÎÏ GTK+ ÏÎÏÎÏÎÏÎ ÎÏÏÏÎÎÏÎ ÎÎÎ "
+"ÎÎÎÎÎÏ ÎÏÎÏÎÎÎ ÏÏÎÏÎÏÏÏÎÏÎÏ, ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÏÎÏÏÎÏÎ ÏÎ ÏÏÎÎÏÎÎÏÎÎ ÏÎÏ "
+"ÏÏÎÎÏÎÎÎÎÏÏÏ ÏÎÏ ÎÎ ÏÎ ÎÏÎÎÎÎÎÎ ÏÏÎÏÎÏÏÏÎÏÎÏ, ÏÎÏÎÏÎÎÏÎÏ ÎÏÎÏÎÎÎÎÏ "
+"ÎÏÎÏÏÏÏÎÎÏÎÏ ÏÎÎÏÎÏÎÏÎÎÏ ÏÏÎ GTK+. ÎÎ ÎÏÎÏÎ ÎÎÎÎÎÏÏÎÎÏÎÎ ÏÏÎÏÎÏÎÎÏÎÎÎÎ "
+"ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ, ÎÎÎÏÏÎÎÎÏÏÎ ÏÏÎ ÏÎ ATK ÎÏÎÎ ÏÏÏÏÎÎÏÎ ÏÏÎÏ ÎÎÎÏÏÎÏÎÏ ÏÎÏÏ. "
+"ÎÏÎÏÎÏ, ÎÏÎÏÏÎÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÏÎ ÎÏÎ, ÎÏÎÏÎÎÎ Î ÏÏÏÎÎÏÎ ÏÏ ÏÎ ÎÎÎÎÎÎÎÏ "
+"ÎÎÏÎ ÏÎÏÎÏÎÏ ÏÎÎÏÎÏÎÏÎÏÎ ÏÏÎ ÏÏÎÏÏÎ."
 
-#: C/pango.page:31(p)
+#: C/atk.page:37(page/p)
 msgid ""
-"Pango supports the text styling used in typical documents and interfaces, "
-"including italics, font weights, and underlines. Pango uses a simple XML-"
-"like vocabulary called PangoMarkup which enables you to set font size, "
-"color, styles, and other text attributes. Using PangoMarkup, you can specify "
-"inline styles without manually iterating over text blocks. PangoMarkup can "
-"be used directly from GTK+, enabling you to style text in your graphical "
-"interfaces easily."
+"The GNOME desktop ships with a number of accessibility tools which enable "
+"users with disabilities to take full advantage of their desktop and "
+"applications. Applications that fully implement ATK will be able to work "
+"with the accessibility tools. GNOME's accessibility tools include a screen "
+"reader, a screen magnifier, an on-screen keyboard, and <app>Dasher</app>, an "
+"innovative predictive text entry tool."
 msgstr ""
-"Î Pango ÏÏÎÏÏÎÏÎÎÎÎ ÏÎ ÏÏÎÎÎÎ ÏÏÏÎ ÎÎÎÎÎÎÎÏ, ÏÏÏÏ ÎÎÎÎÎ ÎÎ ÏÎÎÎÎÎÎ "
-"ÏÎÏÎÎÏÎÏÎÏ, ÎÎ ÎÎÏÎÎÎÎ ÏÎÏÎÎÏÎÏÎÏ ÎÎÎ ÎÎ ÏÏÎÎÏÎÎÎÎÏÎÎÏ. Î Pango ÏÏÎÏÎÎÎÏÎÎÎÎ "
-"ÎÎÎ ÎÏÎÎ ÏÏÎÏÎÎÎ ÏÎÏ ÎÏÎÎÎÎÎ XML ÎÎÎ ÎÎÎÎÎÎÎÏÎÎ PangoMarkup, Î ÎÏÎÎÎ ÏÎÏ "
-"ÎÏÎÏÏÎÏÎÎ ÎÎ ÏÏÎÎÎÎÎÏÎ ÏÎ ÎÎÎÎÎÎÏ, ÏÎ ÏÏÏÎÎ ÎÎÎ ÏÎ ÏÏÏÎ ÏÎÏ ÎÏÎÎÎÎÏÎÏÎÎÏÎÏ, "
-"ÎÎÎÏÏ ÎÎÎ ÎÎÎÎ ÎÎÏÏÎÏÎÎÏÎ ÏÎÏ ÎÎÎÎÎÎÎÏ. ÎÏÎÏÎÎÎÏÎÎÏÎÏÎÏ PangoMarkup, "
-"ÎÏÎÏÎÎÏÎ ÎÎ ÎÏÎÎÎÏÎ ÏÎ ÎÎÏÏÏ ÏÎÏ ÎÏÎÎÎÎÏ ÏÏÏÎ ÏÏÏÎÏ ÎÎ ÏÏÎÎÎÎÎÏÎÎ ÎÎ ÏÎ "
-"ÏÏÎÏÎÎÏÎÏÎ ÎÎÎÎ ÏÎ ÎÎÎÎ ÎÏÎÎÎ ÎÎÎÎÎÎÎÏ. Î PangoMarkup ÎÏÎÏÎÎ ÎÎ "
-"ÏÏÎÏÎÎÎÏÎÎÎÎÎÎ ÎÏÎÏÎÎÎÎÏ ÎÏÏ ÏÎ GTK+, ÎÏÎÏÏÎÏÎÎÏÎÏ ÏÎÏ ÎÎ ÎÎÎÎÎÏÏÏÎÎÏÎ ÎÎ "
-"ÎÏÎÎÎÎÎ ÏÎ ÏÏÏÎ ÏÎÏ ÎÎÎÎÎÎÎÏ ÏÏÎ ÎÏÎÏÎÎÏÎ ÎÎÎÏÎÏÏÎ ÏÎÏ."
+"Î ÎÏÎÏÎÎÎÎÎ ÎÏÎÎÏÎÎÏ GNOME ÏÎÏÎÎÎÎÎÎÎÎÎ ÎÎÎ ÏÎÎÏÎ ÎÏÏ ÎÏÎÎÎÎÎÎ ÏÏÎÏÎÏÏÏÎÏÎÏ "
+"ÏÎÏ ÎÏÎÏÏÎÏÎÏÎ ÏÏÎÏÏ ÏÏÎÏÏÎÏ ÎÎ ÎÎÎÏÎÏÎÎÏ ÎÎ ÎÎÎÎÏÎÎÎÏÎ ÏÎÎÏÏÏ ÏÎÎ ÎÏÎÏÎÎÎÎÎ "
+"ÎÏÎÎÏÎÎÏ ÎÎÎ ÏÎÏ ÎÏÎÏÎÎÎÎÏ ÏÎÏ. ÎÎ ÎÏÎÏÎÎÎÎÏ ÏÎÏ ÏÎÎÏÎÎÎÏÎ ÏÎÎÏÏÏ ÏÎÎ ATK "
+"ÎÏÎÏÎÏÎ ÎÎ ÏÏÎÎÏÎÎÏÏÎÏÎ ÎÎÎÎ ÎÎ ÏÎ ÎÏÎÎÎÎÎÎ ÏÏÎÏÎÏÏÏÎÏÎÏ. ÎÎ ÎÏÎÎÎÎÎÎ "
+"ÏÏÎÏÎÏÏÏÎÏÎÏ ÏÎÏ GNOME ÏÎÏÎÎÎÎÎÎÎÎÏÎ ÎÎÎÎ ÎÎÎÎÎÏÏÏÎ ÎÎÏÎÎÏ, ÎÎÎ ÎÎÎÎÎÏÎÏÎ "
+"ÎÎÏÎÎÏ, ÎÎÎ ÏÎÎÎÏÏÎÎÏÎÎÎ ÎÎÏÎÎÏ ÎÎÎ ÏÎ <app>Dasher</app>, ÎÎÎ ÎÎÎÎÎÏÏÎÎ "
+"ÎÏÎÎÎÎÎÎ ÎÎÏÎÎÏÎÎÏ ÎÎÎÎÎÎÎÏ ÎÎ ÏÏÏÎÎÎÏÎ."
 
-#: C/pango.page:40(p)
+#: C/atk.page:46(item/p)
 msgid ""
-"You should use Pango directly whenever you need to lay text out on the "
-"screen or on a different medium. Using Pango will allow your text layout to "
-"work seamlessly with GTK+ and the rest of the GNOME platform. It will help "
-"you create portable code, and most importantly, it will ensure that your "
-"application can render text correctly in hundreds of different languages."
+"<link href=\"http://developer.gnome.org/accessibility-devel-guide/\";>GNOME "
+"Accessibility for Developers</link>"
 msgstr ""
-"ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ ÎÏÎÏÎÎÎÎÏ ÏÎÎ Pango ÎÎÎÎ ÏÎÏÎ ÏÎÏ ÎÏÎÎÏÎÎÎÏÎ ÎÎ ÎÎÏÎÎÎÏÎÏÎ "
-"ÎÎÎÎÎÎÎ ÏÏÎÎ ÎÎÏÎÎ Î ÏÎ ÎÎÎÎ ÎÎÏÎ. Î ÏÏÎÏÎ ÏÎÏ Pango ÎÏÎÏÏÎÏÎÎ ÏÏÎ ÎÎÎÏÎÎÎ "
-"ÏÎÏ ÎÎÎÎÎÎÎÏ ÏÎÏ ÎÎ ÎÎÎÎÎÏÏÎÎÎÏÎÎ ÏÏÏÎÏ ÎÎÎÎÎÎ ÏÏÏÎÎÎÎÎ ÎÏÏ ÏÎ GTK+ ÎÎÎ ÏÎÎ "
-"ÏÏÏÎÎÎÏÎ ÏÎÎÏÏÏÏÎÎ ÏÎÏ GNOME. ÎÏÎÎÎÎÏÏ, ÏÎÏ ÎÎÎÎÎÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎ ÏÎÏÎÏÏ "
-"ÎÏÎÎÎÎ ÎÎÎ, ÎÏÏÎÏÏ, ÎÎÎÏÏÎÎÎÎÎÎ ÏÏÎ Î ÎÏÎÏÎÎÎÎ ÏÎÏ ÎÎ ÎÎÏÎÎÎÎÎÎ ÎÏÎÎÎ "
-"ÎÎÎÎÎÎÎ ÏÎ ÎÎÎÏÎÎÏÎÎÎÏ ÎÎÎÏÎÏÎÏÎÎÎÏ ÎÎÏÏÏÎÏ."
-
-#: C/pango.page:49(link)
-msgid "Pango Reference Manual"
-msgstr "ÎÎÏÎÎÏÎÎÎÎ ÎÎÎÏÎÏÎÏ ÏÎÏ Pango"
-
-#: C/pango.page:50(link)
-msgid "The Pango web site"
-msgstr "ÎÏÏÎÏÎÎÎÎÎ ÏÎÏ Pango"
+"<link href=\"http://developer.gnome.org/accessibility-devel-guide/";
+"\">ÎÏÎÏÎÏÏÏÎÏÎ GNOME ÎÎÎ ÏÎÏÏ ÎÎÎÏÎÎÏÎÏÏÎÏ</link>"
 
-#: C/notify.page:6(desc)
-msgid "Interactive notifications in the messaging tray"
-msgstr "ÎÎÎÎÏÎÏÏÎÎÎÏ ÎÎÎÎÏÎÎÎÏÎÎÏ ÏÏÎÎ ÎÎÏÎÎ ÎÎÎÏÎÎÏÏÎ"
-
-#: C/notify.page:10(title)
-msgid "Notify"
-msgstr "ÎÎÎÎÏÎÎÎÏÎ"
-
-#: C/notify.page:12(p)
+#: C/atk.page:47(item/p)
 msgid ""
-"The libnotify library provides a convenient API for presenting notifications "
-"to the user. Notifications can be simple message or they can allow the user "
-"to respond. Notifications made with libnotify will use the appropriate "
-"interface in the environment the application is running in. In GNOME 3, "
-"notifications are displayed at the bottom of the screen and then put into "
-"the messaging tray."
+"<link href=\"http://library.gnome.org/devel/atk/stable/\";>ATK Reference</"
+"link>"
 msgstr ""
-"Î ÎÎÎÎÎÎÎÎÎÎ libnotify ÏÎÏÎÏÎÎ ÎÎÎ ÎÎÎÎÎÏ API ÎÎÎ ÏÎÏÎÏÏÎÎÏÎ ÎÎÎÎÏÎÎÎÏÎÏÎ "
-"ÏÏÎÎ ÏÏÎÏÏÎ. ÎÎ ÎÎÎÎÏÎÎÎÏÎÎÏ ÎÏÎÏÎÎ ÎÎ ÎÎÎÎÎ ÎÏÎÏ ÎÎÎÏÎÎ Î ÎÏÎÏÎÏÎ ÎÎ "
-"ÎÏÎÏÏÎÏÎÏÎ ÏÏÎÎ ÏÏÎÏÏÎ ÎÎ ÎÏÎÎÏÎÏÎÎ. ÎÎ ÎÎÎÎÏÎÎÎÏÎÎÏ ÏÎÏ ÎÎÎÎÎÎ ÎÎ libnotify "
-"ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÏÎÎ ÎÎÏÎÎÎÎÎÎ ÎÎÎÏÎÏÎ ÏÏÎ ÏÎÏÎÎÎÎÎÎÎ ÏÎÏ Î ÎÏÎÏÎÎÎÎ "
-"ÏÏÎÏÎÎ. ÎÏÎ GNOME 3, ÎÎ ÎÎÎÎÏÎÎÎÏÎÎÏ ÎÎÏÎÎÎÎÎÎÏÎÎ ÏÏÎ ÏÎÎÎÏ ÏÎÏ ÎÎÏÎÎÏ ÎÎÎ "
-"ÎÏÎÎÏÎ ÎÏÎÎÎÎÏÎ ÏÏÎÎ ÎÎÏÎÎ ÎÎÎÏÎÎÏÏÎ."
+"<link href=\"http://library.gnome.org/devel/atk/stable/\";>ÎÎÎÏÎÏÎ ATK</link>"
 
-#: C/notify.page:20(link)
-msgid "Libnotify Reference Manual"
-msgstr "ÎÎÏÎÎÏÎÎÎÎ ÎÎÎÏÎÏÎÏ ÏÎÏ Libnotify"
-
-#: C/keyring.page:6(desc)
-msgid "Secure storage for passwords and other data"
-msgstr "ÎÏÏÎÎÎÏ ÎÏÎÎÎÎÎÏÏÎ ÎÎÎ ÎÏÎÎÎÎÏÏ ÎÎÎ ÎÎÎÎ ÎÎÎÎÎÎÎÎ"
+#: C/cairo.page:6(info/desc)
+msgid "Modern 2D vector drawing canvas"
+msgstr "ÎÏÎÏÏÎÎÎÏ ÎÎÎÎÎÏ ÏÏÎÎÎÎÏÎÏ 2Î ÎÎÎÎÏÏÎÎÏÎÏ"
 
-#: C/keyring.page:10(title)
-msgid "Keyring"
-msgstr "ÎÎÎÎÎÎÎÎÎÎ"
+#: C/cairo.page:10(page/title)
+msgid "Cairo"
+msgstr "Cairo"
 
-#: C/keyring.page:12(p)
+#: C/cairo.page:12(page/p)
 msgid ""
-"GNOME provides a modern and secure keyring manager to store users' passwords "
-"and other sensitive data. Applications can use the keyring manager library "
-"to store and access passwords, and users can manage their passwords using "
-"GNOME's <app>Seahorse</app> application."
+"Cairo is a 2D graphics library featuring a sophisticated API for drawing "
+"vector graphics, compositing images, and rendering anti-aliased text. Cairo "
+"provides support for multiple output devices, including the X Window System, "
+"Microsoft Windows, and image buffers, allowing you to write platform-"
+"independent code to draw graphics on different media."
 msgstr ""
-"ÎÎ GNOME ÏÎÏÎÏÎÎ ÎÎÎ ÏÏÎÏÏÎÎÎ ÎÎÎ ÎÏÏÎÎÎ ÎÎÎÏÎÎÏÎÏÏÎ ÎÎÎÎÎÎÎÎÎÏÎ ÎÎÎ ÏÎÎ "
-"ÎÏÎÎÎÎÎÏÏÎ ÏÏÎ ÏÏÎÎÎÎÎÏÎÎÏÎ ÏÏÎ ÏÏÎÏÏÏÎ, ÎÎÎÏÏ ÎÎÎ ÎÎÎÏÎ ÎÏÎÎÏÎÎÏÏÎ "
-"ÎÎÎÎÎÎÎÏÎ. ÎÎ ÎÏÎÏÎÎÎÎÏ ÎÏÎÏÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎ ÏÎ ÎÎÎÎÎÎÎÎÎÎ ÏÎÏ "
-"ÎÎÎÏÎÎÏÎÏÏÎ ÎÎÎÎÎÎÎÎÎÏÎ ÎÎÎ ÏÎÎ ÎÏÎÎÎÎÎÏÏÎ ÎÎÎ ÎÎÎÎÏÎÏÎ ÏÏÎÎÎÎÎÏÎÎÏÎ, ÎÎÏ ÎÎ "
-"ÏÏÎÏÏÎÏ ÎÏÎÏÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎ ÏÎÎ ÎÏÎÏÎÎÎÎ <app>Seahorse</app> ÏÎÏ GNOME "
-"ÎÎÎ ÎÎ ÎÎÎÏÎÎÏÎÎÎÎÏÎÎ ÏÎ ÏÏÎÎÎÎÎÏÎÎÎ ÏÎÏÏ."
+"Î Cairo ÎÎÎÎÎ ÎÎÎ ÎÎÎÎÎÎÎÎÎÎ 2Î ÎÏÎÏÎÎÏÎ ÏÎÏ ÏÎÏÎÎÎÎÎÎÎÎÎ ÎÎÎ ÏÏÎÎÎÎÎÎÎ API "
+"ÎÎÎ ÏÎ ÏÏÎÎÎÎÏÎ ÎÎÎÎÏÏÎÎÏÎÎÏÎ ÎÏÎÏÎÎÏÎ, ÏÏÎÎÎÏÎÏ ÎÎÎÏÎÏÎ ÎÎÎ ÎÎÏÎÎÎÏÎÏ "
+"ÎÎÎÎÎÎÏÎÎÎÎÏ ÎÎÎÎÎÎÎÏ. Î Cairo ÏÏÎÏÏÎÏÎÎÎÎ ÏÎÎÎÎÏÎÎÏ ÏÏÏÎÎÏÎÏ ÎÎÏÎÎÏ, ÏÏÏÏ "
+"ÏÎ ÏÏÏÏÎÎÎ ÏÎÏÎÎÏÏÏÎ X , ÏÎ Microsoft Windows ÎÎÎ ÎÏÏÏÎÏ ÎÎÎÎÎÏ ÎÎÎÏÎÏÎ, "
+"ÎÏÎÏÏÎÏÎÎÏÎÏ ÏÎÏ ÎÎ ÎÏÎÏÎÏÎ ÎÎÎÏÏÏÏÎÎÎÎÏ ÎÏÎÎÎÎ ÎÎÎ ÏÎ ÏÏÎÎÎÎÏÎ ÎÏÎÏÎÎÏÎ ÏÎ "
+"ÎÎÎÏÎÏÎÏÎÎÎ ÎÎÏÎ."
 
-#: C/keyring.page:18(p)
+#: C/cairo.page:18(page/p)
 msgid ""
-"The keyring manager provides any number of keyrings, where each keyring can "
-"contain any number of keyring items. Items in a keyring store some piece of "
-"data, often a password. Each keyring is locked individually, and users must "
-"provide a password to unlock the keyring. Once a keyring has been unlocked, "
-"the user has access to all of the items in that keyring."
+"The Cairo drawing model is similar to those provided by PostScript and PDF. "
+"The Cairo API provides such drawing operations as stroking and filling cubic "
+"BÃzier splines, compositing images, and performing affine transformations. "
+"These vector operations allow for rich, anti-aliased graphics without using "
+"expensive pixel-based drawing in your application code."
 msgstr ""
-"Î ÎÎÎÏÎÎÏÎÏÏÎÏ ÎÎÎÎÎÎÎÎÎÏÎ ÏÎÏ ÎÏÎÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎÎÏÎ ÏÏÎÏ ÎÎÎÎÎÎÎÎÎÎÏ "
-"ÎÏÎÎÏÎÎÎÏÎ, ÎÎÎÎÎÎÎ ÎÏÏ ÏÎÏ ÎÏÎÎÎÏ ÎÏÎÏÎÎ ÎÎ ÏÎÏÎÎÏÎÎ ÏÏÎ ÏÏÎÎÏÎÎÎ "
-"ÎÏÎÎÏÎÎÎÏÎ. ÎÎ ÏÏÎÎÏÎÎÎ ÏÏÎ ÎÎÎÎÎÎÎÎÎÏÎ ÏÎÏÎÎÏÎÏÎ ÎÎÎÎÎÎÎÎ, ÏÏÎÎÎÏÏ "
-"ÏÏÎÎÎÎÎÏÎÎÎ. ÎÎÎÎ ÎÎÎÎÎÎÎÎÎÎ ÎÎÎÎÎÏÎÎÏÎÎ ÎÎÏÏÏÎÏÏÎ, ÎÎÎ ÎÎÎÎÎÎÎÏÎÎÏÎÎ ÎÎ ÏÎÎ "
-"ÎÎÏÎÎÏÎÎ ÏÏÎÎÎÎÎÏÎÎÎÏ ÎÏÏ ÏÎ ÏÏÎÏÏÎ. ÎÏÎÎ ÎÎÎÎÎÎÎÏÎÎÎ ÎÎÎ ÎÎÎÎÎÎÎÎÎÎ, Î "
-"ÏÏÎÏÏÎÏ ÎÏÎÎÏÎ ÏÏÏÏÎÎÏÎ ÏÎ ÏÎÎ ÏÎ ÏÏÎÎÏÎÎÎ ÏÎÏ."
+"ÎÎ ÎÎÎÏÎÎÎ ÏÏÎÎÎÎÏÎÏ ÏÎÏ Cairo ÎÏÎÎÎÎÎ ÏÎ ÎÎÏÎÏÏÎÎÏÎ ÎÎÎÏÎÎÎ ÏÏÎ PostScript "
+"ÎÎÎ PDF. ÎÎ API ÏÎÏ Cairo ÏÎÏÎÏÎÎ ÏÎÏÎÎÎÏ ÎÎÎÏÎÏÏÎÎÎÏ ÏÏÎÎÎÎÏÎÏ ÏÏÏÏ ÏÎ "
+"ÎÎÏÎÎÎ ÎÎÎ ÏÎ ÎÎÎÎÏÎÎ ÎÏÎÎÎÏÎ ÎÏÎÏÎÎÏÏÏÎ ÎÎÎÏÏÎÏÎ BÃzier, Î ÏÏÎÎÎÏÎ ÎÎÎÏÎÏÎ "
+"ÎÎÎ Î ÎÎÏÎÎÎÏÎ ÏÏÎÎÎÎÎÎÏÎ ÎÎÏÎÏÏÎÏÏÎ. ÎÏÏÎÏ ÎÎ ÎÎÎÎÏÏÎÎÏÎÎÎÏ ÎÎÎÏÎÏÏÎÎÎÏ "
+"ÎÏÎÏÏÎÏÎÏÎ ÎÎ ÎÏÎÏÎ ÏÎÎÏÏÎÎ, ÎÎÎÎÎÎÏÎÎÎÎ ÎÏÎÏÎÎÎ ÏÏÏÎÏ ÏÎ ÏÏÎÏÎ ÎÎÏÎÎÎÏÏÎ "
+"ÏÏÎÎÎÏÎ ÎÎÏÎÏÎÎÎÏÎ ÏÎ ÎÎÎÎÎÎÏÏÎÎÏÎÎÎ ÏÏÎÎ ÎÏÎÎÎÎ ÏÎÏ ÎÏÎÏÎÎÎÎÏ ÏÎÏ."
 
-#: C/keyring.page:25(p)
+#: C/cairo.page:25(page/p)
 msgid ""
-"The keyring manager provides access control lists for each keyring item, "
-"controlling which applications are allowed access to that item. If an "
-"unknown application attempts to access a keyring item, the keyring manager "
-"will prompt the user to allow or deny that application access. This helps "
-"prevent malicious or poorly-written programs from accessing the user's "
-"sensitive data."
+"Cairo's rich drawing model allows for high-quality rendering to multiple "
+"media. The same API can be used to create stunning on-screen graphics and "
+"text, to render images, or create crisp output suitable for printing."
 msgstr ""
-"Î ÎÎÎÏÎÎÏÎÏÏÎÏ ÎÎÎÎÎÎÎÎÎÏÎ ÏÎÏÎÎÎÎ ÎÎÏÏÎÏ ÎÎÎÎÏÎÏ ÏÏÏÏÎÎÏÎÏ ÎÎÎ ÎÎÎÎ "
-"ÏÏÎÎÏÎÎÎ ÎÎÎÏ ÎÎÎÎÎÎÎÎÎÎÏ, ÎÏÎÏÏÎÏÎÎÏÎÏ ÏÎÏ ÎÎ ÎÎÎÎÏÎÏÎ ÏÎÎÎÏ ÎÏÎÏÎÎÎÎÏ ÎÎ "
-"ÎÏÎÏÎ ÏÏÏÏÎÎÏÎ ÏÎ ÎÏÏÏ ÏÎ ÏÏÎÎÏÎÎÎ. ÎÎ ÎÎÎ ÎÎÎÏÏÏÎ ÎÏÎÏÎÎÎÎ ÏÏÎÏÏÎÎÎÏÎÎ ÎÎ "
-"ÎÏÎÎÏÎÏÎÎ ÏÏÏÏÎÎÏÎ ÏÎ ÎÎÎ ÏÏÎÎÏÎÎÎ ÎÎÎÎÎÎÎÎÎÎÏ, Î ÎÎÎÏÎÎÏÎÏÏÎÏ ÎÎÎÎÎÎÎÎÎÏÎ "
-"ÎÎ ÎÎÏÎÏÎÎ ÎÏÏ ÏÎ ÏÏÎÏÏÎ ÎÎ ÎÏÎÏÏÎÏÎÎ Î ÎÎ ÎÏÎÎÎÎÎ ÏÎÎ ÏÏÏÏÎÎÏÎ. ÎÎÏ' ÎÏÏÏÎ "
-"ÏÎÎ ÏÏÏÏÎ, ÏÏÏÏÎ ÎÎÎÏÎÎÏÎÎÏ Î ÎÎÎÎÎÏÎÎÎÎÎÎÏ ÎÏÎÏÎÎÎÎÏ ÎÎÎ ÎÏÎÏÎÏÎ ÎÎ "
-"ÎÏÎÎÏÎÏÎÏÎ ÏÏÏÏÎÎÏÎ ÏÏÎ ÎÏÎÎÏÎÎÏÎ ÎÎÎÎÎÎÎÎ ÏÎÏ ÏÏÎÏÏÎ."
+"ÎÎ ÏÏÎÎÎÎÎÎÎ ÎÎÎÏÎÎÎ ÏÏÎÎÎÎÏÎÏ ÏÎÏ Cairo ÏÏÎÏÏÎÏÎÎ ÎÎÏÎÎÎÏÎ ÏÏÎÎÎÏ ÏÎÎÏÏÎÏÎÏ "
+"ÏÎ ÎÎÎÏÎÏÎ ÎÎÏÎ. ÎÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ ÎÎÎÎ API ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎ "
+"ÎÎÎÎÎÎÏÏÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÏÎÏÎÎÎ ÎÎÎ ÎÎÏÎÎÎÏÎ ÏÏÎÎ ÎÎÏÎÎ, ÎÎ ÎÏÎÎÏÏÎÏÎ "
+"ÎÎÎÏÎÎÏ, Î ÎÎ ÏÎÏÎÎÎÏÎ ÏÎÎÏÎÎÎÎÎÏÎ ÎÏÎÏÎÎÎÏÎÎÏÎ ÎÎÎ ÎÎÏÏÏÏÏÎ."
 
-#: C/keyring.page:32(p)
+#: C/cairo.page:30(page/p)
 msgid ""
-"Keyring data stored on the file system is encrypted with the AES block "
-"cipher, and SHA1 is used for hashes of the item's attributes. Using the "
-"attributes hash, the keyring manager is able to look up items requested by "
-"applications without ever unlocking the keyring. The keyring has to be "
-"unlocked when a matching item is found and accessed."
+"You should use Cairo whenever you need to draw graphics in your application "
+"beyond the widgets provided by GTK+. Much of the drawing inside GTK+ is done "
+"using Cairo. Using Cairo for your custom drawing will allow your application "
+"to have high-quality, anti-aliased, and resolution-independent graphics."
 msgstr ""
-"ÎÎ ÎÎÎÎÎÎÎÎ ÏÏÎ ÎÎÎÎÎÎÎÎÎÏÎ ÎÏÎÎÎÎÎÏÎÎÏÎÎ ÏÏÎ ÏÏÏÏÎÎÎ ÎÏÏÎÎÏÎ "
-"ÎÏÏÏÏÎÎÏÎÏÎÎÎÎÎ ÎÎ ÏÎÎ ÎÎÎÏÏÎÎÎÎ ÎÏÏÏÏÎÎÏÎÏÎÏÎÏ ÎÏÎÎÎ AES, ÎÎÏ Î SHA1 "
-"ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÎÎÎ ÏÎ hash ÏÏÎ ÎÎÏÏÎÏÎÎÏÏÎ ÏÏÎ ÏÏÎÎÏÎÎÏÎ. ÎÏÎÏÎÎÎÏÎÎÏÎÏÎÏ "
-"ÏÎ hash ÏÏÎ ÎÎÏÏÎÏÎÎÏÏÎ, Î ÎÎÎÏÎÎÏÎÏÏÎÏ ÎÎÎÎÎÎÎÎÎÏÎ ÎÏÎÏÎÎ ÎÎ ÎÏÎÎ ÏÎ "
-"ÏÏÎÎÏÎÎÎ ÏÎÏ ÎÎÏÎ ÎÎÎ ÎÏÎÏÎÎÎÎ ÏÏÏÎÏ ÎÎ ÏÏÎÎÎÏÏÎÎ ÎÎ ÎÎÎÎÎÎÎÏÏÎÎ ÏÎÎ "
-"ÎÎÎÎÎÎÎÎÎÎ. Î ÎÎÎÎÎÎÎÎÎÎ ÎÎÎÎÎÎÎÏÎÎÏÎÎ ÎÏÎÎ ÎÏÎÏ ÎÏÎÎÎÎ ÏÎ ÎÎÏÎÎÎÎÎÎ "
-"ÏÏÎÎÏÎÎÎ ÎÎÎ ÎÎÎÎÎ ÏÏÏÏÎÎÏÎ ÏÎ ÎÏÏÏ."
+"ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ ÏÎÎ Cairo ÏÏÎÏÎ ÏÏÎÎÎÎÎÏÏÎ ÎÎ ÏÏÎÎÎÎÏÎÏÎ ÎÏÎÏÎÎÎÎ ÎÏÎÏÎÎÎ, "
+"ÏÎÏÎ ÎÏÏ ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÏÎÏ ÏÎÏ ÏÎÏÎÏÎÎ Î GTK+. ÎÎÎÎÎÎ ÎÎÏÎÏ ÏÎÏ "
+"ÏÏÎÎÎÎÏÎÏ ÎÎÏÏÏ ÏÎÏ GTK+. ÎÎÎÎÏÎÎ ÎÎ ÏÏÎÏÎ ÏÎÏ Cairo. ÎÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎÎ "
+"Cairo ÎÎÎ ÏÎ ÎÏÎÏÎÎÎ ÏÎÏ, ÎÏÎÎÎÎÎÎÏÎ ÏÎÎ ÎÏÎÏÎÎÎÎ ÏÎÏ ÎÎ ÎÏÎÏÎÎÎ ÏÏÎÎÎÏ "
+"ÏÎÎÏÏÎÏÎÏ, anti-aliased ÎÎÎ ÏÏÎÏÎÏÎÏÏÎÎÎ ÏÎ ÎÏÎÎÎÎÎÏÎÏÎ ÎÎÎÎÏÏÎ."
+
+#: C/cairo.page:37(item/p)
+msgid "<link href=\"http://www.cairographics.org/manual/\";>Cairo Manual</link>"
+msgstr ""
+"<link href=\"http://www.cairographics.org/manual/\";>ÎÎÏÎÎÏÎÎÎÎ ÏÎÏ Cairo</"
+"link>"
+
+#: C/cairo.page:38(item/p)
+msgid "<link href=\"http://www.cairographics.org\";>The Cairo web site</link>"
+msgstr ""
+"<link href=\"http://www.cairographics.org\";>Î ÎÏÏÎÏÎÎÎÎÎ ÏÎÏ Cairo</link>"
 
-#: C/keyring.page:39(p)
+#: C/canberra.page:6(info/desc)
+msgid "Simple audio API for notifications and events"
+msgstr "ÎÏÎÏ ÎÏÎÏÎÎÏ API ÎÎÎ ÎÎÎÎÏÎÎÎÏÎÎÏ ÎÎÎ ÏÏÎÎÎÎÏÎ"
+
+#: C/canberra.page:10(page/title)
+msgid "Canberra"
+msgstr "Canberra"
+
+#: C/canberra.page:12(page/p)
 msgid ""
-"The keyring manager also provides a session keyring. Items in the session "
-"keyring are never stored on disk, and are lost as soon as the user's session "
-"ends. The session keyring can be used to store passwords to be used in the "
-"current session only."
+"Canberra is a simple library for playing audio events and notifications, "
+"such as when the user has received a message or an error has occurred. As "
+"well as providing a convenient API, Canberra can also work with the "
+"accessibility features of the desktop to provide alternate notification for "
+"hearing-impaired users."
 msgstr ""
-"Î ÎÎÎÏÎÎÏÎÏÏÎÏ ÎÎÎÎÎÎÎÎÎÏÎ ÏÎÏÎÏÎÎ ÎÏÎÏÎÏ ÎÎÎ ÎÎÎÎÎÎÎÎÎÎ ÏÏÎÎÎÏÎÎÏ. ÎÎ "
-"ÏÏÎÎÏÎÎÎ ÏÎÏ ÎÎÎÎÎÎÎÎÎÎÏ ÏÏÎÎÎÏÎÎÏ ÎÎÎ ÎÏÎÎÎÎÎÏÎÎÏÎÎ ÏÎÏÎ ÏÏÎ ÎÎÏÎÎ ÎÎÎ "
-"ÏÎÎÎÎÏÎÎ ÎÏÎÎÏ ÏÎÎÎÎÏÏÎÎ Î ÏÏÎÎÎÏÎÎ ÏÎÏ ÏÏÎÏÏÎ. Î ÎÎÎÎÎÎÎÎÎÎ ÏÏÎÎÎÏÎÎÏ "
-"ÎÏÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÎÎ ÎÎÎ ÏÎÎ ÎÏÎÎÎÎÎÏÏÎ ÏÏÎÎÎÎÎÏÎÎÏÎ ÏÎÏ ÎÏÎÏÎÏÎ ÎÏÎÎ "
-"ÏÎÎ ÏÏÎÏÎÏÏÎ ÏÏÎÎÎÏÎÎ."
+"Î Canberra ÎÎÎÎÎ ÎÎÎ ÎÏÎÎ ÎÎÎÎÎÎÎÎÎÎ ÎÎÎ ÏÎÎ ÎÎÎÏÎÏÎÎÏÎÎ ÎÏÎÏÎÎÏÎ ÏÏÎÎÎÎÏÏÎ "
+"ÎÎÎ ÎÎÎÎÏÎÎÎÏÎÏÎ, ÏÏÏÏ ÏÏÎÎ ÎÎÎÏ ÏÏÎÏÏÎÏ ÎÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎÏÎÎ Î ÏÏÎÎ "
+"ÏÏÎÎÎÎÎÎÎ ÎÎÎ ÏÏÎÎÎÎ. ÎÏÎÏÎÏ ÏÎÏÎÏÎÎ ÎÎÎ ÎÎÎÎÎÏ API, ÏÎ Canberra ÎÏÎÏÎÎ "
+"ÎÏÎÏÎÏ ÎÎ ÎÎÎÏÎÏÏÎÎÏÎÎ ÎÎ ÏÎÏ ÎÏÎÎÏÏÏÎÏÎÏ ÏÏÏÏÎÎÏÎÏ ÏÎÏ ÎÏÎÏÎÎÎÎÎÏ ÎÏÎÎÏÎÎÏ "
+"ÎÎÎ ÎÎ ÎÏÏÎÏÎ ÎÎÎÎÎÎÎÏÎÎÎÏ ÎÎÎÎÏÎÎÎÏÎÎÏ ÎÎÎ ÏÏÎÏÏÎÏ ÎÎ ÏÏÎÎÎÎÎÎÏÎ ÎÎÎÎÏ."
 
-#: C/keyring.page:44(p)
+#: C/canberra.page:19(item/p)
 msgid ""
-"If you use GIO to access remote servers, you automatically get the benefits "
-"of the keyring manager. Whenever GVFS needs to authenticate the user, it "
-"provides the option to store the password, either in the default keyring or "
-"in the session keyring."
+"<link href=\"http://library.gnome.org/devel/libcanberra/unstable/libcanberra-";
+"canberra.html\">Canberra Reference</link>"
 msgstr ""
-"ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÏÎ ÏÎ GIO ÎÎÎ ÏÏÏÏÎÎÏÎ ÏÎ ÎÏÎÎÎÎÏÏÏÎÎÎÎÏÏ ÎÎÏÏÎÏÎÏÎÏÎÏ, "
-"ÎÎÎÏÎÏÏÏÎÎÏÎ ÎÎÎÏÏÏ ÏÎ ÏÎÎÎÎÎÎÏÎÎÎÏÎ ÏÎÏ ÎÎÎÏÎÎÏÎÏÏÎ ÎÎÎÎÎÎÎÎÎÏÎ. ÎÏÎÏÎ ÏÎ "
-"GVFS ÎÏÎÎÏÎÎ ÏÎÏÏÎÏÎÎÎÏÎ ÏÎÏ ÏÏÎÏÏÎ, ÏÎÏ ÎÎÎÎÏÎ Î ÎÏÎÎÏÏÏÎÏÎ ÎÎ ÎÏÎÎÎÎÎÏÏÎÏÎ "
-"ÏÎ ÏÏÎÎÎÎÎÏÎÎÏ ÏÎÏ, ÎÎÏÎ ÏÏÎÎ ÏÏÎÎÏÎÎÎÎÎÎÎÎ ÎÎÎÎÎÎÎÎÎÎ, ÎÎÏÎ ÏÏÎÎ ÎÎÎÎÎÎÎÎÎÎ "
-"ÏÎÏ ÏÏÎÎÎÏÎÎÏ."
+"<link href=\"http://library.gnome.org/devel/libcanberra/unstable/libcanberra-";
+"canberra.html\">ÎÎÎÏÎÏÎ Canberra</link>"
 
-#: C/keyring.page:49(p)
+#: C/clutter.page:6(info/desc)
+msgid "Stunning graphics and animations with a scene-graph API"
+msgstr "ÎÎÎÎÏÎÎ ÎÏÎÏÎÎÎ ÎÎÎ ÎÎÎÎÏÎÎÏ ÎÎ ÎÎÎ API ÏÎÎÎÎÎÎÏ ÎÏÎÏÎÎÎÏ"
+
+#: C/clutter.page:10(page/title)
+msgid "Clutter"
+msgstr "Clutter"
+
+#: C/clutter.page:12(page/p)
 msgid ""
-"You should use the keyring manager whenever your application needs to store "
-"passwords or other sensitive data for users. Using the keyring manager "
-"provides a better user experience while still keeping user data safe and "
-"secure."
+"Clutter is a library that allows creating fast, portable, dynamic, "
+"compelling user interfaces."
 msgstr ""
-"ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ ÏÎÎ ÎÎÎÏÎÎÏÎÏÏÎ ÎÎÎÎÎÎÎÎÎÏÎ ÎÎ Î ÎÏÎÏÎÎÎÎ ÏÎÏ ÏÏÎÎÎÎÎÏÎÎ ÎÎ "
-"ÎÏÎÎÎÎÎÏÎÎ ÏÏÎÎÎÎÎÏÎÎÎ Î ÎÎÎÎ ÎÏÎÎÏÎÎÏÎ ÎÎÎÎÎÎÎÎ ÏÏÎ ÏÏÎÏÏÏÎ. Î ÏÏÎÏÎ ÏÎÏ "
-"ÎÎÎÏÎÎÏÎÏÏÎ ÎÎÎÎÎÎÎÎÎÏÎ ÎÎÎÏÎÏÎÎÎ ÏÎÎ ÎÎÏÎÎÏÎÎ ÏÎÏ ÏÏÎÏÏÎ, ÎÎÎÏÏÎÎÎÎÎÎÏÎÏ "
-"ÏÎÎ ÎÏÏÎÎÎÎÎ ÏÏÎ ÎÎÎÎÎÎÎÏÎ ÏÎÏ."
+"Clutter ÎÎÎÎÎ ÎÎÎ ÎÎÎÎÎÎÎÎÎÎ ÏÎÏ ÎÏÎÏÏÎÏÎÎ ÏÎ ÎÎÎÎÎÏÏÎÎÎ ÎÏÎÎÎÏÏÎ, ÏÎÏÎÏÏÎ, "
+"ÎÏÎÎÎÎÎÏÎ, ÎÎÎÏÎÎÎÏÎÏÏÎ ÎÎÎÏÎÏÏÎ ÏÏÎÏÏÎ."
+
+#: C/clutter.page:15(page/p)
+msgid ""
+"Clutter uses the <link href=\"http://www.khronos.org/opengl/\";>OpenGL</link> "
+"and <link href=\"http://www.khronos.org/opengles/\";>OpenGL|ES</link> "
+"industry standard API to access the accelerated graphical hardware on both "
+"desktop and mobile environments alike, without exposing the complexities of "
+"GPU pipeline programming."
+msgstr ""
+"ÎÎ Clutter ÏÏÎÏÎÎÎÏÎÎÎÎ ÏÎ ÎÎÎÎÎÏÎÎÎÎÏ ÏÏÏÏÏÏÎ API <link href=\"http://www.";
+"khronos.org/opengl/\">OpenGL</link> ÎÎÎ <link href=\"http://www.khronos.org/";
+"opengles/\">OpenGL|ES</link> ÎÎÎ ÏÏÏÏÎÎÏÎ ÏÏÎ ÎÏÎÏÎÏÏÎÏÎÎÎÎ ÎÏÎÏÎÎÏ ÏÎÎÎÏ "
+"ÎÎÎ ÏÏÎÎ ÎÏÎÏÎÎÎÎÎ ÎÏÎÎÏÎÎÏ ÎÎÎ ÏÎ ÎÎÎÎÏÎ ÏÎÏÎÎÎÎÎÎÎÏÎ ÏÎÎÎÎ, ÏÏÏÎÏ ÎÎÎÎÏÎ "
+"ÏÏÎÏ ÏÎÏÎÏÎÎÎÎÏ ÏÎÏ ÏÏÎÎÏÎÎÎÎÏÎÏÏÎÎÎÏ ÎÎÎÏÎÏÎÏÏÎÏ GPU."
+
+#: C/clutter.page:21(page/p)
+msgid ""
+"Clutter does not specify any visual style, and does not provide any pre-"
+"defined complex user interface control; it lets the developer define what is "
+"needed, using a flexible scene graph API, with free-form placement of the "
+"scene elements (or \"actors\") on the main viewport (or \"stage\")."
+msgstr ""
+"ÎÎ Clutter ÎÎÎ ÎÎÎÎÏÎÎÎÎ ÎÎÎÎÎÎ ÎÏÏÎÎÏ ÏÏÎÏ ÎÎÎ ÎÎÎ ÏÎÏÎÏÎÎ ÎÎÎÎÎÎ "
+"ÏÏÎÎÎÎÎÏÎÏÎÎÎÎ ÏÏÎÎÎÏÎ ÎÎÎÎÏÎ ÎÎÎÏÎÏÎÏ ÏÏÎÏÏÎÂ ÎÏÎÏÏÎÏÎÎ ÏÏÎÎ ÏÏÎÎÏÎÎÎÎÏÎÏÏÎ "
+"ÎÎ ÎÎÎÎÏÎÏÎÎ ÏÎ ÎÏÎÎÏÎÎÏÎÎ, ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÎÎÎ ÎÏÎÎÎÎÏÎ ÏÎÎÎÎÎÏ ÎÏÎÏÎÎÎ "
+"API, ÎÎ ÎÎÎÏÎÎÏÎÏ ÎÎÏÏÎÏ ÏÎÏÎÎÎÏÎÏÎ ÏÏÎ ÏÎÎÎÎÎÏÎ ÏÏÎÎÏÎÎÏÎ (Î \"ÎÏÎÏÏÏÎ\") "
+"ÏÏÎÎ ÎÏÏÎÎ ÎÏÏÎ ÏÏÎÎÎÎÎÏ (Î \"ÏÏÎÎÎÎ\")."
 
-#: C/keyring.page:55(link)
-msgid "gnome-keyring Reference Manual"
-msgstr "ÎÎÏÎÎÏÎÎÎÎ ÎÎÎÏÎÏÎÏ ÏÎÏ gnome-keyring"
+#: C/clutter.page:26(page/p)
+msgid ""
+"Clutter comes with pre-defined actors for displaying solid colors, image "
+"data, text and custom high-precision 2D drawing using the <link xref=\"cairo"
+"\">Cairo</link> API. Clutter also provides generic classes for structuring a "
+"user interface using both a box-packing model like <link xref=\"gtk\">GTK+</"
+"link>, and a series of free-form \"constraints\"."
+msgstr ""
+"ÎÎ Clutter ÎÏÏÎÏÎÎ ÎÎ ÏÏÎÎÎÎÎÏÎÏÎÎÎÎÏÏ ÎÏÎÏÏÎÏ ÎÎÎ ÏÏÎÎÎÎÎ ÏÏÎÏÎÎÏÎ "
+"ÏÏÏÎÎÏÏÎ, ÎÎÎÎÎÎÎÏÎ ÎÎÎÏÎÎÏ, ÎÎÎÎÎÎÎÏ ÎÎÎ ÏÏÎÏÎÏÎÎÏÎÎÎÎÏ ÏÏÎÎÎÏ ÎÎÏÎÎÎÎÎÏ 2Î "
+"ÏÏÎÎÎÎÏÎÏ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ API <link xref=\"cairo\">Cairo</link>. ÎÎ "
+"Clutter ÎÏÎÏÎÏ ÏÎÏÎÏÎÎ ÎÎÎÎÎÎÏ ÎÎÎÏÎÎÏ ÎÎÎ ÎÏÎÎÏÎ ÎÎÎÏÎÏÎÏ ÏÏÎÏÏÎ "
+"ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÎÎÎ ÏÏÏÏÏÏÎ ÏÎÎÎÏÎ ÏÎÎÎÏÎÎÏ ÏÏÏÏ <link xref=\"gtk\">GTK+</"
+"link> ÎÎÎ ÎÎÎ ÏÎÎÏÎ ÎÎÎÏÎÎÏÎÏ ÎÎÏÏÎÏ \"ÏÎÏÎÎÏÎÏÎÏÎ\"."
 
-#: C/keyring.page:56(link)
-msgid "libseahorse Reference Manual"
-msgstr "ÎÎÏÎÎÏÎÎÎÎ ÎÎÎÏÎÏÎÏ ÏÎÏ libseahorse"
+#: C/clutter.page:33(page/p)
+msgid ""
+"Clutter provides an extensible animation framework and graphical effects. An "
+"animation is associated with a timeline and changes one or more properties "
+"of one or more actors over time, for example their rotation in a particular "
+"dimension, scale, size, opacity, etc."
+msgstr ""
+"ÎÎ Clutter ÏÎÏÎÏÎÎ ÎÎÎ ÎÏÎÎÏÎÏÎÎÎ ÎÎÎÎÏÎ ÏÎÎÎÎÏÎÏ ÎÎÎ ÎÏÎÏÎÎÎ ÎÏÎ. ÎÎÎ "
+"ÎÎÎÎÏÎ ÏÏÏÏÎÏÎÎÎÏÎÎ ÎÎ ÏÎ ÎÏÎÎÎÎ ÏÏÏÎÎÏ ÎÎÎ ÎÎÎÎÎÎÎ ÎÎÎ Î ÏÎÏÎÏÏÏÏÎÏÎÏ "
+"ÎÎÎÏÏÎÏÎÏ ÎÎÏÏ Î ÏÎÏÎÏÏÏÏÎÏÏÎ ÎÏÎÏÏÏÎ ÎÎ ÏÎÎ ÏÏÏÎÎ, ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ ÏÎÎ "
+"ÏÎÏÎÏÏÏÎÏÎ ÏÎÏÏ ÏÎ ÎÎÎ ÏÏÎÎÎÎÏÎÎÎÎÎ ÎÎÎÏÏÎÏÎ, ÎÎÎÎÎÎÎ, ÎÎÎÎÎÎÏ, ÎÎÎÎÏÎÎÎÎÎ, "
+"ÎÎÏ."
 
-#: C/index.page:6(desc)
-msgid "Overview of the powerful technologies inside the GNOME platform."
-msgstr "ÎÎÏÎÎÏÎÏÎ ÏÏÎ ÏÎÎÎÏÏÏÏÏÎ ÏÎÏÎÎÎÎÎÎÏÎ ÏÎÏ ÏÎÎÏÏÏÏÎÎÏ GNOME."
+#: C/clutter.page:38(page/p)
+msgid ""
+"A number of third-party libraries allow integration with other technologies, "
+"such as: Clutter-GTK, for embedding a Clutter stage inside a GTK+ "
+"application; Clutter-GStreamer, for embedding GStreamer video and audio "
+"pipelines; Clutter-Box2D and Clutter-Bullet, for adding physics interaction "
+"in both 2D and 3D environments."
+msgstr ""
+"ÎÎÎÏ ÎÏÎÎÎÏÏ ÎÎÎÎÎÎÎÎÎÏÎ ÏÏÎÏÏÎ ÎÏÎÏÏÎÏÎÎ ÏÎÎ ÎÎÏÏÎÎÏÏÏÎ ÎÎ ÎÎÎÎÏ "
+"ÏÎÏÎÎÎÎÎÎÎÏ, ÏÏÏÏ: Clutter-GTK, ÎÎÎ ÎÎÏÏÎÎÏÏÏÎ ÎÎÏÏ ÏÏÎÎÎÎÏ Clutter ÎÎÏÎ ÏÎ "
+"ÎÎÎ ÎÏÎÏÎÎÎÎ GTK+Â Clutter-GStreamer, ÎÎÎ ÎÎÏÏÎÎÏÏÏÎ ÎÎÎÏÎÎ GStreamer ÎÎÎ "
+"ÎÏÎÏÎÎÏÎ ÎÎÎÏÎÏÎÏÏÎÏÎÂ Clutter-Box2D ÎÎÎ Clutter-Bullet, ÎÎÎ ÏÏÎÏÎÎÎÎ "
+"ÏÏÏÎÎÎÏ ÎÎÎÎÎÎÏÎÎÏÎÏÎÏ ÏÎ 2Î ÎÎÎ 3Î ÏÎÏÎÎÎÎÎÎÎÏÎ."
 
-#: C/index.page:10(name)
-msgid "Shaun McCance"
-msgstr "Shaun McCance"
+#: C/clutter.page:45(item/p)
+msgid ""
+"<link href=\"http://docs.clutter-project.org/docs/clutter-cookbook/1.0/";
+"\">The Clutter Cookbook</link>"
+msgstr ""
+"<link href=\"http://docs.clutter-project.org/docs/clutter-cookbook/1.0/";
+"\">ÎÎÏÎÎÏÎÎÎÎ ÏÎÏ Clutter</link>"
+
+#: C/clutter.page:46(item/p)
+msgid ""
+"<link href=\"http://developer.gnome.org/clutter/stable\";>Clutter Reference "
+"Manual</link>"
+msgstr ""
+"<link href=\"http://developer.gnome.org/clutter/stable\";>ÎÎÏÎÎÏÎÎÎÎ ÎÎÎÏÎÏÎÏ "
+"ÏÎÏ Clutter</link>"
+
+#: C/clutter.page:47(item/p)
+msgid ""
+"<link href=\"http://www.clutter-project.org\";>The Clutter web site</link>"
+msgstr ""
+"<link href=\"http://www.clutter-project.org\";>Î ÎÏÏÎÏÎÎÎÎÎ ÏÎÏ Clutter</link>"
+
+#: C/d-bus.page:6(info/desc)
+msgid "Standard interprocess communications bus"
+msgstr "ÎÏÏÎÎÏÏ ÎÎÎÎÎÎÎÏÎÎÎÏÏ ÎÎÎÏÎÎÏ ÎÏÎÎÎÎÎÏÎÎÏÎ"
+
+#: C/d-bus.page:10(page/title)
+msgid "D-Bus"
+msgstr "D-Bus"
+
+#: C/d-bus.page:12(page/p)
+msgid ""
+"D-Bus is a cross-desktop message bus for sending events between various "
+"applications, the desktop, and low-level components of the system. D-Bus "
+"provides a simple API for sending messages to particular services and for "
+"broadcasting messages to all interested services. D-Bus enables different "
+"types of applications to communicate and integrate with each other and with "
+"the desktop, providing better interaction and a richer experience for the "
+"user."
+msgstr ""
+"ÎÎ D-Bus ÎÎÎÎÎ ÎÎÎÏ ÎÎÎÏÎÎÏ ÎÎÎÏÎÎÏÏÎ ÏÎÏ ÎÎÎÏÎÏÏÎÎÎ ÏÎ ÏÎÎÎÎÏÎÎÏ ÎÏÎÏÎÎÎÎÎÏ "
+"ÎÏÎÎÏÎÎÏ ÎÎÎ ÎÏÎÏÏÎÏÎÎ ÏÎÎ ÎÏÎÏÏÎÎÎ ÎÎÎÏÎÎÏÏÎ ÎÎÏÎÎÏ ÎÏÎÏÎÎÎÏÎ, ÎÏÎÏÎÎÎÎÎÏ "
+"ÎÏÎÎÏÎÎÏ ÎÎÎ ÏÏÏÏÎÏÎÎÏÎ ÏÎÎÎÎÎÏ ÎÏÎÏÎÎÎÏ ÏÎÏ ÏÏÏÏÎÎÎÏÎÏ. ÎÎ D-Bus ÏÎÏÎÏÎÎ "
+"ÎÎÎ ÎÏÎÏ API ÎÎÎ ÏÎÎ ÎÏÎÏÏÎÎÎ ÎÎÎÏÎÎÏÏÎ ÏÏÎÏ ÏÏÎÎÎÎÏÎÎÎÎÎÏ ÏÏÎÏÎÏÎÎÏ ÎÎÎ ÎÎÎ "
+"ÏÎ ÎÎÏÎÎÎÏÎ ÏÏÎ ÎÎÎÏÎÎÏÏÎ ÏÎ ÏÎÎÏ ÏÎÏ ÎÎÎÎÎÏÎÏÏÎÎÎÎÏ ÏÏÎÏÎÏÎÎÏ. ÎÎ D-Bus "
+"ÎÏÎÏÏÎÏÎÎ ÏÎ ÎÎÎÏÎÏÎÏÏ ÏÏÏÎÏÏ ÎÏÎÏÎÎÎÏÎ ÎÎ ÎÏÎÎÎÎÎÏÎÎÏÎ ÎÎÎ ÎÎ ÏÏÎÎÏÎÎÎÎÎÏÎÎ "
+"ÎÎÏÎÎÏ ÏÎÏÏ ÎÎÎ ÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎÎ ÎÏÎÎÏÎÎÏ, ÏÏÎÏÏÎÏÎÎÏÎÏ ÏÏÎ ÏÏÎÏÏÎ "
+"ÎÎÎÏÎÏÎÎÎÎ ÎÎÎÎÏÎÏÏÎÎÏÏÎÏÎ ÎÎÎ ÏÎÎÏÏÎÏÏÎÏÎÏ ÎÎÏÎÎÏÎÎÏ."
+
+#: C/d-bus.page:20(page/p)
+msgid ""
+"D-Bus provides a session and a system bus. The session bus is used by "
+"applications in a single user session, allowing them to share data and event "
+"notifications and to integrate into the user's desktop. For example, movie "
+"players can send a D-Bus message to prevent the screensaver from activating "
+"when the user is watching a movie."
+msgstr ""
+"ÎÎ D-Bus ÏÎÏÎÏÎÎ ÎÎÎ ÎÎÎÏÎÎ ÏÏÎÎÎÏÎÎÏ ÎÎÎ ÎÎÎ ÎÎÎÏÎÎ ÏÏÏÏÎÎÎÏÎÏ. Î ÎÎÎÏÎÎÏ "
+"ÏÏÎÎÎÏÎÎÏ ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÎÏÏ ÎÏÎÏÎÎÎÎÏ ÏÎ ÏÏÎÎÎÏÎÎÏ ÎÎ ÎÎÎÎ ÎÎÎÎÎÎÎÏ "
+"ÏÏÎÏÏÎ, ÎÎÎ ÏÎÏÏ ÎÏÎÏÏÎÏÎÎ ÎÎ ÎÎÎÏÎÎÎÎÏÎÎ ÎÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎÎÏÎÎÎÏÎÎÏ ÎÎÎ "
+"ÎÎÎÎÎÏÏÎ, ÎÎÎÏÏ ÎÎÎ ÎÎ ÎÎÏÏÎÎÏÏÎÎÎÏÎÎ ÏÏÎÎ ÎÏÎÏÎÎÎÎÎ ÎÏÎÎÏÎÎÏ ÏÎÏ ÏÏÎÏÏÎ. "
+"ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ, Î ÎÏÎÏÎÎÎÎ ÎÎÎÏÎÏÎÎÏÎÎÏ ÏÎÎÎÎÏÎ ÎÏÎÏÎÎ ÎÎ ÏÏÎÎÎÎÎ ÎÎÎ ÎÎÎÏÎÎ "
+"D-Bus ÎÎÎ ÎÎ ÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÎÎÏÎÎÏÎÎÎÏÎ ÏÎÏ ÏÏÎÏÏÎÏÎÎÏ ÎÎÏÎÎÏ, ÏÏÎÎ Î "
+"ÏÏÎÏÏÎÏ ÏÎÏÎÎÎÎÎÏÎÎÎ ÏÎÎÎÎÎ."
+
+#: C/d-bus.page:26(page/p)
+msgid ""
+"The system bus is a single message bus which runs independently of any user "
+"sessions. It can communicate with applications in any session, enabling "
+"those applications to interact with system components without dealing with "
+"low-level system details. The system bus is used to provide important "
+"functionality that users expect to work on their systems. For example, the "
+"system bus is used to monitor when network interfaces go up or down, when "
+"external drives get plugged in, and when laptop batteries are low."
+msgstr ""
+"Î ÎÎÎÏÎÎÏ ÏÏÏÏÎÎÎÏÎÏ ÎÎÎÎÎ ÎÎÎÏ ÎÎÎÏÎÎÏ ÎÎÎÎÎÎÎÎÏ ÎÎÎÏÎÎÏÎÏ ÏÎÏ ÎÎÎÏÎÏÏÎÎÎ "
+"ÎÎÎÎÎÏÏÎÏÎ ÎÏÏ ÏÎÏ ÏÏÎÎÎÏÎÎÏ ÏÏÎÏÏÏÎ. ÎÏÎÏÎÎ ÎÎ ÎÏÎÎÎÎÎÏÎÎÎ ÎÎ ÎÏÎÏÎÎÎÎÏ ÏÎ "
+"ÏÎÎÏ ÏÎÏ ÏÏÎÎÎÏÎÎÏ ÎÎÎ ÎÎ ÏÎÏÏ ÎÏÎÏÏÎÏÎÎ ÎÎ ÏÏÎÎÏÎÎÎÎÎÏÎÎ ÎÎ ÏÏÏÏÎÏÎÎÎ ÏÎÏ "
+"ÏÏÏÏÎÎÎÏÎÏ ÏÏÏÎÏ ÎÎ ÏÏÎÎÏÎÏÏÎÎÏÎÎ ÏÏÎÏ ÎÎÏÏÎÎÎÏÎÎÎÏ ÏÎÎÎÎÎÏ ÎÏÎÏÎÎÎÏ ÏÎÏ "
+"ÏÏÏÏÎÎÎÏÎÏ. Î ÎÎÎÏÎÎÏ ÏÏÏÏÎÎÎÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÎÎÎ ÎÎ ÏÎÏÎÏÎÎ ÏÎÎÎÎÏÎÎÎÏ "
+"ÎÎÎÏÎÏÏÎÎÎÏ ÏÎÏ ÎÎ ÏÏÎÏÏÎÏ ÎÎÎÎÎÎÎÏÎ ÎÎ ÎÏÎÏÎ ÏÏÎ ÏÏÏÏÎÎÎ ÏÎÏÏ. ÎÎÎ "
+"ÏÎÏÎÎÎÎÎÎÎ, Î ÎÎÎÏÎÎÏ ÏÏÏÏÎÎÎÏÎÏ ÏÎÏÎÎÎÎÎÏÎÎÎ ÏÏÏÎ ÏÏÎÎÎÎÏÏÎ Î ÎÏÎÏÏÎÎÎÎÏÏÎ "
+"ÎÏÏ ÏÎ ÎÎÎÏÏÎ, ÎÎ ÎÏÎÏÎ ÏÏÎÎÎÏÎÎ ÎÎÏÏÎÏÎÎÎÏÏ ÎÎÎÎÎÏÏ, Î ÎÎ ÏÎ ÏÎÏÏÎÎ ÏÎÏ "
+"ÎÏÎÏÎÏÎÎÏ ÎÎÎÎÎ ÏÎÎÎÎÏ."
+
+#: C/d-bus.page:35(page/p)
+msgid ""
+"D-Bus is developed jointly on <link href=\"http://www.freedesktop.org/";
+"\">freedesktop.org</link>, so you can use it with different desktop "
+"environments and applications. Because D-Bus is a cross-desktop project, you "
+"use it to create portable and versatile software that seamlessly integrates "
+"with the user's desktop, regardless of which desktop it is."
+msgstr ""
+"ÎÎ D-Bus ÎÎÎÏÏÏÏÏÎÏÎÎ ÎÏÏ ÏÎ <link href=\"http://www.freedesktop.org/";
+"\">freedesktop.org</link>, ÎÏÎÎÎÎÏÏ ÎÏÎÏÎÎÏÎ ÎÎ ÏÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÏÎ "
+"ÎÎÎÏÎÏÎÏÎÎÎ ÏÎÏÎÎÎÎÎÎÎÏÎ ÎÎÎ ÎÏÎÏÎÎÎÎÏ. ÎÏÎÎÎÎ ÏÎ D-Bus ÎÎÎÏÎÏÏÎÎÎ ÏÎ "
+"ÏÎÎÎÎÏÎÎÏ ÎÏÎÏÎÎÎÎÎÏ ÎÏÎÎÏÎÎÏ, ÎÏÎÏÎÎÏÎ ÎÎ ÏÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÎÎÎ ÎÎ "
+"ÎÎÎÎÎÏÏÎÎÏÎÏÎ ÏÎÏÎÏÏ ÎÎÎ ÎÏÎÎÎÎÏÎ ÎÎÎÎÏÎÎÎÏ ÏÎÏ ÎÎ ÏÏÎÎÏÎÎÎÎÏÎÎ ÎÏÎÎÎ ÎÎ ÏÎÎ "
+"ÎÏÎÏÎÎÎÎÎ ÎÏÎÎÏÎÎÏ ÏÎÏ ÏÏÎÏÏÎ, ÎÎÎÎÎÏÏÎÏÎ ÎÏÏ ÏÎ ÏÎÎÎ ÎÎ ÎÎÎÎÎ ÎÏÏÎ."
+
+#: C/d-bus.page:42(page/p)
+msgid ""
+"GNOME provides full support for D-Bus using the GDBus APIs in <link xref="
+"\"gio\">GIO</link>."
+msgstr ""
+"ÎÎ GNOME ÏÎÏÎÏÎÎ ÏÎÎÏÎ ÏÏÎÏÏÎÏÎÎÎ ÎÎÎ ÎÎÎÏÎÎ D ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ APIs GDBus "
+"ÏÏÎ <link xref=\"gio\">GIO</link>."
+
+#: C/d-bus.page:46(item/p) C/gio-network.page:20(item/p) C/gio.page:30(item/p)
+msgid ""
+"<link href=\"http://developer.gnome.org/gio/stable/\";>GIO Reference Manual</"
+"link>"
+msgstr ""
+"<link href=\"http://developer.gnome.org/gio/stable/\";>ÎÎÏÎÎÏÎÎÎÎ ÎÎÎÏÎÏÎÏ "
+"ÏÎÏ GIO</link>"
 
-#: C/index.page:11(email)
-msgid "shaunm gnome org"
-msgstr "shaunm gnome org"
+#: C/d-bus.page:47(item/p)
+msgid ""
+"<link href=\"http://dbus.freedesktop.org/doc/dbus-tutorial.html\";>D-Bus "
+"Tutorial</link>"
+msgstr ""
+"<link href=\"http://dbus.freedesktop.org/doc/dbus-tutorial.html\";>ÎÎÎÎÎÎ D-"
+"Bus</link>"
 
-#: C/index.page:15(name)
-msgid "GermÃn PÃo-CaamaÃo"
-msgstr "GermÃn PÃo-CaamaÃo"
+#: C/d-bus.page:48(item/p)
+msgid ""
+"<link href=\"http://dbus.freedesktop.org/doc/dbus-specification.html\";>D-Bus "
+"Specification</link>"
+msgstr ""
+"<link href=\"http://dbus.freedesktop.org/doc/dbus-specification.html";
+"\">ÎÏÎÏÎÎÎÏÎÏÎÏÏ ÏÎÏ D-Bus</link>"
 
-#: C/index.page:16(email)
-msgid "gpoo gnome org"
-msgstr "gpoo gnome org"
+#: C/eds.page:6(info/desc)
+msgid "Integration with the desktop-wide address book and calendar"
+msgstr ""
+"ÎÎÎÎÎÎÏÏÏÎ ÎÎ ÏÎ ÏÎÎÏÎÎÏ ÎÏÎÏÎÎÎÎÎÏ ÎÏÎÎÏÎÎÏ ÎÎÎÎÎÎ ÎÎÎÏÎÏÎÏÎÏÎ ÎÎÎ "
+"ÎÎÎÏÎÎÏÎÎÎ"
 
-#: C/index.page:20(name)
-msgid "GNOME Foundation"
-msgstr "ÎÎÏÏÎÎ GNOME"
+#: C/eds.page:10(page/title)
+msgid "Evolution Data Server"
+msgstr "Evolution Data Server"
 
-#: C/index.page:21(page)
-msgid "http://foundation.gnome.org/";
-msgstr "http://foundation.gnome.org/";
+#: C/eds.page:12(page/p)
+msgid ""
+"With Evolution Data Server, GNOME provides a single address book and "
+"calendar that all applications can use to store and retrieve information. "
+"Using Evolution Data Server means that users no longer have to maintain "
+"separate lists of contacts in each application, or manually copy events to "
+"their calendar."
+msgstr ""
+"ÎÎÏÏ ÏÎÏ ÎÎÏÏÎÏÎÏÎÏÎ ÎÎÎÎÎÎÎÏÎ Evolution, ÏÎ GNOME ÏÎÏÎÏÎÎ ÎÎÎÎÎÎ ÎÎÎÎÎÎ "
+"ÎÎÎÏÎÏÎÏÎÏÎ ÎÎÎ ÎÎÎÏÎÎÎÎÎÎÏ ÏÎÏ ÎÏÎÏÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎ ÏÎÎÏ ÎÎ ÎÏÎÏÎÎÎÎÏ "
+"ÎÎÎ ÏÎÎ ÎÏÎÎÎÎÎÏÏÎ ÎÎÎ ÎÎÎÎÏÎÏÎ ÏÎÎÏÎÏÎÏÎÏÎ. ÎÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎÎ ÎÎÏÏÎÏÎÏÎÏÎ "
+"ÎÎÎÎÎÎÎÏÎ Evolution, ÎÎ ÏÏÎÏÏÎÏ ÎÎÎ ÏÏÎÎÎÎÎÏÎÎ ÏÎÎÎÎ ÎÎ ÎÎÎÏÎÏÎÏÎ ÎÎÏÏÏÎÏÏÎÏ "
+"ÎÎÏÏÎÏ ÎÏÎÏÏÎ ÎÎÎ ÎÎÎÎ ÎÏÎÏÎÎÎÎ, Î ÎÎ ÎÎÏÎÎÏÎÏÎÏÎ ÎÎ ÎÎÎÎÎ ÎÎÎÎ ÏÎÎÏÎÎÎÏ "
+"ÏÎÏÏ ÏÏÎ ÎÎÎÏÎÎÏÎÎÏ ÏÎÏÏ."
 
-#: C/index.page:23(title)
-msgid "GNOME"
-msgstr "GNOME"
+#: C/eds.page:18(page/p)
+msgid ""
+"People use computers increasingly to interact with their friends and "
+"colleagues. Applications such as email programs, instant messengers, and "
+"telephony and video conferencing applications are used to communicate with "
+"others. These applications often provide contact lists to help users. Using "
+"Evolution Data Server, applications can store contact information in a "
+"single location, allowing all applications to see all the pertinent data "
+"about users' contacts."
+msgstr ""
+"ÎÎÎ ÎÎÎ ÏÎÏÎÏÏÏÏÎÏÎ, ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÏÎÏÏ ÏÏÎÎÎÎÎÏÏÎÏ ÎÎÎ ÎÎ ÎÏÎÎÎÎÎÏÎÎÏÎÎ ÎÎ "
+"ÏÎÎÎÏÏ ÎÎÎ ÏÏÎÎÎÎÎÏÎÏÏ. ÎÎÎ ÎÎ ÏÎ ÎÏÎÏÏÏÎÏÎÎ, ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÎÏÎÏÎÎÎÎÏ "
+"ÎÎÎÎÏÏÎÎÎÎÎÏ ÏÎÏÏÎÏÎÎÎÎÎÏ, ÎÎÎÏÏÎ ÎÎÎÏÎÎÏÏÎ, ÏÎÎÎÏÏÎÎÎÏ ÎÎÎ "
+"ÎÎÎÏÎÎÎÎÎÏÎÎÏÎÏÎ. ÎÏÏÎÏ ÎÎ ÎÏÎÏÎÎÎÎÏ ÏÏÏÎÎ ÏÎÏÎÎÏÎÏÎ ÎÎÏÏÎÏ ÎÏÎÏÏÎ. "
+"ÎÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎÎ ÎÎÏÏÎÏÎÏÎÏÎ ÎÎÎÎÎÎÎÏÎ Evolution, ÎÎ ÎÏÎÏÎÎÎÎÏ ÎÏÎÏÎÏÎ ÎÎ "
+"ÎÏÎÎÎÎÎÏÎÏÎ ÎÏÎÏÎÏ ÏÎ ÎÎÎ ÎÎÎÎÎÎÎÎ ÏÎÏÎÎÎÏÎÎ, ÎÏÎÏÏÎÏÎÎÏÎÏ ÏÎ ÏÎÎÏ ÏÎÏ "
+"ÎÏÎÏÎÎÎÎÏ ÎÎ ÎÎÎÏÎÏÎ ÏÎ ÏÏÎÎÏÎÎÎ ÏÏÎ ÎÏÎÏÏÎ ÏÎÏ ÏÏÎÏÏÎ."
 
-#: C/index.page:27(title)
-msgid "Overview of the GNOME Platform"
-msgstr "ÎÎÏÎÎÏÎÏÎ ÏÎÏ ÏÎÎÏÏÏÏÎÎÏ GNOME"
+#: C/eds.page:26(page/p)
+msgid ""
+"Applications can also use Evolution Data Server to store and retrieve "
+"appointments on the user's calendar. For example, the clock on the panel "
+"shows a simple calendar when clicked. If the user has any appointments "
+"scheduled, they are shown alongside the calendar. This makes it easy to see "
+"upcoming appointments without opening a full calendar application."
+msgstr ""
+"ÎÏÎÏÎÏ, ÎÎ ÎÏÎÏÎÎÎÎÏ ÎÏÎÏÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎ ÏÎÎ ÎÎÏÏÎÏÎÏÎÏÎ ÎÎÎÎÎÎÎÏÎ "
+"Evolution ÎÎÎ ÎÎ ÎÏÎÎÎÎÎÏÎÏÎ ÎÎÎ ÎÎ ÎÎÎÎÏÎÏÎ ÏÎ ÏÎÎÏÎÎÎÏ ÏÎÏ ÏÏÎÏÏÎ ÎÏÏ ÏÎ "
+"ÎÎÎÏÎÎÏÎÎÏ ÏÎÏ. ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ, ÎÎ ÎÎÎÎÏÎ ÎÎÎÎ ÏÏÎ ÏÎÎÏÎ ÏÎÏ ÏÎÎÎÎÎ "
+"ÎÏÎÏÎÎÎÏÎ, ÎÎÏÎÎÎÎÎÏÎÎ ÎÎÎ ÎÏÎÏ ÎÎÎÏÎÎÏÎÎÎ. ÎÎ ÎÏÎÏÎ ÏÏÎÎÏÎÎÎÎÏÎÏÎÎ "
+"ÏÎÎÏÎÎÎÏ, ÎÏÏÎ ÎÎÏÎÎÎÎÎÎÏÎÎ ÏÏÎ ÎÎÎÏÎÎÏÎÎÎ. ÎÏÏÎ, ÎÏÎÏÎÎÏÎ ÎÎ ÏÏÎÎÎÏÎÎÏÎÏÏÎ "
+"ÏÎ ÏÎÎÏÎÎÎÏ ÏÎÏ ÏÏÏÎÏ ÎÎ ÎÎÎÎÎÎÏÎ ÏÎÎ ÏÎÎÏÎ ÎÏÎÏÎÎÎÎ ÎÎÎÏÎÎÎÎÎÎÏ."
 
-#: C/index.page:29(p)
+#: C/eds.page:33(item/p)
 msgid ""
-"GNOME is a powerful but simple desktop environment with a strong focus on "
-"usability, accessibility, and internationalization. GNOME is designed to be "
-"usable by everybody, regardless of technical expertise, disabilitites, or "
-"native language. GNOME makes it easy for people to use their computers."
+"<link href=\"http://developer.gnome.org/libebook/stable/\";>Evolution API "
+"Reference: libebook</link>"
 msgstr ""
-"ÎÎ GNOME ÎÎÎÎÎ ÎÎÎ ÎÏÏÏÏÏ ÎÎÎÎ ÎÏÎÏ ÏÎÏÎÎÎÎÎÎÎ ÎÏÎÏÎÎÎÎÎÏ ÎÏÎÎÏÎÎÏ ÏÎÏ "
-"ÎÏÎÎÎÎÏÏÏÎÎÏÎÎ ÎÎÎÎÎÏÎÏÎ ÏÏÎ ÏÏÎÏÏÎÎÏÏÎÏÎ, ÏÎÎ ÏÏÎÏÎÏÏÏÎÏÎ ÎÎÎ ÏÎ "
-"ÎÎÎÎÎÎÏÎÎÎÏÎ. ÎÎ GNOME ÎÏÎÎ ÏÏÎÎÎÎÏÏÎÎ ÎÏÏÎ ÏÏÏÎ ÎÎ ÎÏÎÏÎÎ ÎÎ ÏÎ "
-"ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ Î ÎÎÎÎÎÎÏ, ÎÎÎÎÎÏÏÎÏÎ ÎÏÏ ÏÎÏ ÏÎÏÎÎÎÎÏ ÏÎÏ ÎÎÏÏÎÎÏ, ÎÎÎÏÎÏÎÎÏ "
-"Î ÎÎÏÏÎÎÎ ÎÎÏÏÏÎ. ÎÎ GNOME ÎÏÎÎÏÎÎÎÎ ÏÎ ÏÏÎÏÎ ÏÏÎ ÏÏÎÎÎÎÎÏÏÏÎ ÎÎÎ ÏÎÎÏÏ ÎÎÏ."
+"<link href=\"http://developer.gnome.org/libebook/stable/\";>ÎÎÎÏÎÏÎ API ÏÎÏ "
+"Evolution: libebook</link>"
 
-#: C/index.page:34(p)
-#| msgid ""
-#| "GNOME provides a comprehensive developer platform that allow developers "
-#| "to create professional software that is easy to use and aesthetically "
-#| "pleasing. This document provides a high-level overview of the GNOME "
-#| "platform along with links to detailed documentation on each part of the "
-#| "platform."
+#: C/eds.page:34(item/p)
 msgid ""
-"The GNOME platform provides a comprehensive development environment for "
-"graphical applications and other software. GNOME provides a comprehensive "
-"developer platform that allow developers to create professional software "
-"that is easy to use and aesthetically pleasing. Using the technologies in "
-"GNOME, you can create high-quality software to meet and exceed your users' "
-"expectations. This document provides a high-level overview of the GNOME "
-"platform along with links to detailed documentation on each part of the "
-"platform."
+"<link href=\"http://developer.gnome.org/libecal/stable/\";>Evolution API "
+"Reference: libecal</link>"
 msgstr ""
-"ÎÎ ÎÎÎÎÏÎÎÎÏ GNOME ÏÎÏÎÏÎÎ ÎÎÎ ÎÎÏÎÏÎÎÎÎÎ ÏÎÏÎÎÎÎÎÎÎ ÎÎÎÏÏÏÎÎÏ ÎÎÎ ÎÏÎÏÎÎÎÏ "
-"ÎÏÎÏÎÎÎÎÏ ÎÎÎ ÎÎÎÎ ÎÎÎÎÏÎÎÎÏ. ÎÎ GNOME ÏÎÏÎÏÎÎ ÎÎÎ ÎÎÏÎÏÎÎÎÎÎ ÎÎÎÎÏÎÎÎÏ "
-"ÎÎÎÏÏÏÎÎÏ ÏÎÏ ÎÏÎÏÏÎÏÎÎ ÏÏÎÏÏ ÏÏÎÎÏÎÎÎÎÏÎÏÏÎÏ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎ ÎÏÎÎÎÎÎÎÎÏÎÎÏ "
-"ÎÎÎÎÏÎÎÎÏ, ÎÏÏÏÎÏÏÎ ÎÎÎ ÎÎÎÎÎÏÎÎÏÎ. ÎÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎÏ ÏÎÏÎÎÎÎÎÎÎÏ ÏÏÎ "
-"GNOME, ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎ ÎÎÎÎÏÎÎÎÏ ÏÏÎÎÎÏ ÏÎÎÏÏÎÏÎÏ ÎÎÎ ÎÎ "
-"ÏÏÎÏÎÎÎÏÏÎÎ ÏÎÏ ÏÏÎÏÎÎÎÎÎÏ ÏÏÎ ÏÏÎÏÏÏÎ ÏÎÏ. ÎÏÏÏ ÏÎ ÎÎÎÏÎÏÎ ÏÎÏÎÏÎÎ ÎÎÎ "
-"ÎÏÎÏÎÏÏÎÏÎ ÏÏÎÎÎÏ ÎÏÎÏÎÎÎÏ ÏÎÏ ÎÎÎÎÏÎÎÎÎÏ GNOME, ÎÎÎÎ ÎÎ ÏÏÎÎÎÏÎÎÏÏ ÎÎÎ "
-"ÎÎÏÏÎÎÎÏÎ ÏÎÎÎÎÏÎÏÏÎ ÎÎÎ ÎÎÎÎ ÏÎÎÎÎ ÏÎÏ ÎÎÎÎÏÎÎÎÎÏ."
+"<link href=\"http://developer.gnome.org/libecal/stable/\";>ÎÎÎÏÎÏÎ API ÏÎÏ "
+"Evolution: libecal</link>"
 
-#: C/index.page:45(title)
-msgid "Graphics and Multimedia"
-msgstr "ÎÏÎÏÎÎÎ ÎÎÎ ÎÎÎÏÎÎÏÎ"
+#: C/gda.page:6(info/desc)
+msgid "Common relational database access"
+msgstr "ÎÎÎÎÎ ÏÏÎÏÎÎÎÎ ÏÏÏÏÎÎÏÎ ÎÎÏÎÏ ÎÎÎÎÎÎÎÏÎ"
 
-#: C/index.page:50(title)
-msgid "Core Application Support"
-msgstr "ÎÏÎÏÏÎÏÎÎÎ ÎÏÎÏÎÎÎÎÏ ÏÏÏÎÎÎ"
+#: C/gda.page:10(page/title)
+msgid "GDA"
+msgstr "GDA"
 
-#: C/index.page:55(title)
-msgid "Application Technologies"
-msgstr "ÎÎÏÎÎÎÎÎÎÎÏ ÎÏÎÏÎÎÎÎÏ"
+#: C/gda.page:12(page/p)
+msgid ""
+"GDA offers a wrapper around relational databases, allowing you to easily "
+"store and retrieve data in many different common database systems."
+msgstr ""
+"ÎÎ GDA ÏÏÎÏÏÎÏÎÎ ÎÎÎ ÎÎÎÎÎÏÎÏÏÎ ÎÏÏÏ ÎÏÏ ÏÎÏ ÏÏÎÏÎÎÎÏ ÎÎÏÎÎÏ ÎÎÎÎÎÎÎÏÎ, "
+"ÎÏÎÏÏÎÏÎÎÏÎÏ ÏÎÎ ÎÏÎÎÎÎ ÎÏÎÎÎÎÎÏÏÎ ÎÎÎ ÎÎÎÎÏÎÏÎ ÎÎÎÎÎÎÎÏÎ ÏÎ ÏÎÎÎÎ "
+"ÎÎÎÏÎÏÎÏÎÎÎ ÏÏÏÏÎÎÎÏÎ ÎÎÏÎÏÎ ÎÎÎÎÎÎÎÏÎ."
 
-#: C/index.page:60(title)
-msgid "Under the Hood"
-msgstr "ÎÎ ÎÏÎÎÎ"
+#: C/gda.page:17(item/p)
+msgid ""
+"<link href=\"http://developer-next.gnome.org/libgda/stable/\";>GNOME Data "
+"Access Manual</link>"
+msgstr ""
+"<link href=\"http://developer-next.gnome.org/libgda/stable/\";>ÎÎÏÎÎÏÎÎÎÎ "
+"ÏÏÏÏÎÎÏÎÏ ÎÎÎÎÎÎÎÏÎ ÏÏÎ GNOME</link>"
 
-#: C/help.page:6(desc)
-msgid "Topic-oriented help system"
-msgstr "ÎÎÎÎÏÎÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎÎÎ ÏÏÏÏÎÎÎ ÎÎÎÎÎÎÎÏ"
+#: C/gdk.page:6(info/desc)
+msgid "Underlying windowing and event handling"
+msgstr "ÎÏÎÎÎÎÎÎÎÎ ÏÎÏÎÎÏÏÎÏÎÎÎÏÎ ÎÎÎ ÏÎÎÏÎÏÎÏÏ ÏÏÎÎÎÎÏÎÏ"
 
-#: C/help.page:10(title)
-msgid "Help"
-msgstr "ÎÎÎÎÎÎÎ"
+#: C/gdk.page:10(page/title)
+msgid "GDK"
+msgstr "GDK"
 
-#: C/help.page:12(p)
+#: C/gdk.page:12(page/p)
 msgid ""
-"Users sometimes need a little help, even with the best-designed "
-"applications. GNOME provides a built-in topic-oriented help system using the "
-"<link href=\"http://projectmallard.org/\";>Mallard</link> markup language. "
-"Pioneered by GNOME developers, Mallard is an agile and dynamic language that "
-"helps you write and revise quickly. Its topic-oriented design means your "
-"users can find the answers they need without sifting through a manual. With "
-"its unique linking and organization system, Mallard is the only language "
-"designed to handle plugin and vendor help in one coherent document."
+"GDK is the low-level library used by GTK+ to interact with the system for "
+"graphics and input devices. Although you will rarely use GDK directly in "
+"application code, it contains all the necessary functionality to draw "
+"objects and text to the screen and to interact with the user with various "
+"input devices."
 msgstr ""
-"ÎÎ ÏÏÎÏÏÎÏ ÎÎÏÎÎÎÏ ÏÎÏÎÏ ÏÏÎÎÎÎÎÎÏÎÎ ÎÎÎ ÎÎÎÏÎ ÎÎÎÎÎÎÎ, ÎÎÏÎÎ ÎÎÎ ÎÎ ÏÎÏ "
-"ÎÏÎÏÏÎ ÏÏÎÎÎÎÏÎÎÎÎÏ ÎÏÎÏÎÎÎÎÏ. ÎÎ GNOME ÏÎÏÎÏÎÎ ÎÎÎ ÎÎÏÏÎÎÏÏÎÎÎÎ ÏÏÏÏÎÎÎ "
-"ÎÎÎÎÎÎÎÏ ÎÎÎÎÏÎÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎÎÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ ÎÎÏÏÏÎ ÎÏÎÏÎÎÎÎÏÎÏ "
-"<link href=\"http://projectmallard.org/\";>Mallard</link>. ÎÎÎÎÎÎÎÎÎ ÎÏÏ "
-"ÏÏÎÎÏÎÎÎÎÏÎÏÏÎÏ ÏÎÏ GNOME, ÏÎ Mallard ÎÎÎÎÎ ÎÎÎ ÎÎÏÏÎÎ ÎÎÎ ÎÏÎÎÎÎÎÎ ÎÎÏÏÏÎ "
-"ÏÎÏ ÏÎÏ ÎÎÎÎÎ ÎÎ ÎÏÎÏÎÏÎ ÎÎÎ ÎÎ ÎÎÎÏÎÏÏÎÏÎ ÎÏÎÎÎÏÎ. Î ÎÎÎÎÏÎÎÎ "
-"ÏÏÎÏÎÎÎÏÎÎÎÏÎÎÎÎÏ ÏÏÎÎÎÎÏÎÏÏ ÏÎÏ ÏÎÎÎÎÎÎÎ ÏÏÎ ÎÎ ÏÏÎÏÏÎÏ ÏÎÏ ÎÏÎÏÎÏÎ ÎÎ "
-"ÎÏÎÏÎ ÏÎÏ ÎÏÎÎÏÎÏÎÎÏ ÏÎÏ ÏÏÎÎÎÎÎÎÏÎÎ ÏÏÏÎÏ ÎÎ ÎÎÎÏÏÎÎÎÏÎ ÏÎ ÎÎÎ ÎÎÏÎÎÏÎÎÎÎ. "
-"ÎÎ ÏÎ ÎÎÎÎÎÎÎÏ ÏÎÏ ÏÏÏÏÎÎÎ ÏÏÎÎÎÏÎÏ ÎÎÎ ÎÏÎÎÎÏÏÎÏ, ÏÎ Mallard ÎÎÎÎÎ Î ÎÏÎÎ "
-"ÎÎÏÏÏÎ ÏÎÏ ÏÏÎÎÎÎÏÏÎÎÎ ÎÎ ÏÎÎÏÎÎÎÏÎÎ ÏÏÏÏÎÎÏÎ ÎÎÎ ÎÎÎÎÎÎÎ ÏÏÎÎÏÎ ÏÎ ÎÎÎ "
-"ÏÏÎÎÎÏÎÎÏ ÎÎÎÏÎÏÎ."
+"Î GDK ÎÎÎÎÎ Î ÎÎÎÎÎÎÎÎÎÎ ÏÎÎÎÎÎÏ ÎÏÎÏÎÎÎÏ ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÎ Î GTK+ ÎÎÎ ÏÎ "
+"ÎÎÎÎÏÎÏÎ ÎÎ ÏÎ ÏÏÏÏÎÎÎ, ÏÏÎÎ ÎÏÎÏÎ ÏÎ ÎÏÎÏÎÎÎ ÎÎÎ ÏÎÏ ÏÏÏÎÎÏÎÏ ÎÎÏÏÎÎÏ. ÎÎ "
+"ÎÎÎ ÏÏÎÎÎÎ ÎÎ ÏÏÎÎÎÏÏÎÎ ÎÎ ÏÏÎÏÎÏÎÎÎÎÎÏÎ ÏÎ GDK ÎÏÎÏÎÎÎÎÏ ÏÏÎÎ ÎÏÎÎÎÎ ÏÎÏ "
+"ÎÏÎÏÎÎÎÎÏ ÏÎÏ, ÎÎÎÏ ÎÎÎÎÎ ÎÎ ÎÎÏÏÎÎÎÏÎ ÏÏÎ ÏÎÏÎÎÏÎÎ ÏÎÎÏ ÏÎÏ ÎÏÎÎÏÎÏÎÎÎÎÏ "
+"ÎÎÎÏÎÏÏÎÎÎÏ ÎÎÎ ÏÎ ÏÏÎÎÎÎÏÎ ÎÎÏÎÎÎÎÎÎÎÏÎ ÎÎÎ ÎÎÎÎÎÎÎÏ ÏÏÎÎ ÎÎÏÎÎ, ÎÎÎÏÏ ÎÎÎ "
+"ÎÎÎ ÏÎ ÎÎÎÎÏÎÏÎ ÎÎ ÏÎ ÏÏÎÏÏÎ ÎÎÏÏ ÎÎÎÏÏÏÏÎ ÏÏÏÎÎÏÏÎ ÎÎÏÏÎÎÏ."
 
-#: C/help.page:22(p)
+#: C/gdk.page:18(page/p)
 msgid ""
-"When you do need linear manuals, GNOME also supports the industry-standard "
-"<link href=\"http://docbook.org/\";>DocBook</link> format."
+"GDK enables you to access events from keyboards, mice, and other input "
+"devices, rather than connect to the high-level signals used in GTK+. GDK "
+"also provides low-level routines to access drag and drop and clipboard data "
+"from the system. When implementing custom controls, you may need to access "
+"these features to implement proper user interaction behavior."
 msgstr ""
-"ÎÏÎÎ ÏÏÎÎÎÎÏÏÎÏÏÎ ÎÎÏÎÎÏÎÎÎÎ, ÏÎ GNOME ÎÏÎÏÎÏ ÏÏÎÏÏÎÏÎÎÎÎ ÏÎ ÎÎÎÎÎÏÎÎÎÎÏ "
-"ÎÎÏÏÎ ÏÏÎÏÏÏÎÏ <link href=\"http://docbook.org/\";>DocBook</link>."
+"Î GDK ÏÎÏ ÏÏÎÏÏÎÏÎÎ ÎÏÎÏÎÎÎÎÏ ÏÏÏÏÎÎÏÎ ÏÎ ÎÎÎÎÎÏÏÎ ÎÏÏ ÏÎ ÏÎÎÎÏÏÎÎÏÎÎÎ, ÏÎ "
+"ÏÎÎÏÎÎÎ ÎÎÎ ÎÎÎÎÏ ÏÏÏÎÎÏÎÏ ÎÎÏÏÎÎÏ, ÎÎÏÎ ÎÎ ÏÎÏ ÎÎÎÎÎÎÎÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÏÎ "
+"ÏÎ ÏÎÎÎÏÎ ÏÏÎÎÎÏ ÎÏÎÏÎÎÎÏ ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÎ Î GTK+. ÎÎÏÎÎÎÎÎÎ, Î GDK ÏÎÏÎÏÎÎ "
+"ÏÎÏÏÎÎÎÏ ÏÎÎÎÎÎÏ ÎÏÎÏÎÎÎÏ ÎÎÎ ÏÎÎ ÏÏÏÏÎÎÏÎ ÏÏÎ ÎÎÎÎÎÎÎÎ ÏÏÏÏÎÎÎÏÎÏ ÎÎÎ "
+"ÎÏÏÎÎÏÎÏ, ÎÎÎÏÏ ÎÎÎ ÏÏÎÏÎÎÏÎÏ ÏÎÏ ÏÏÏÏÎÎÎÏÎÏ. ÎÎÏÎ ÏÎÎ ÏÎÎÏÎÎÎÏÎ "
+"ÏÏÎÏÎÏÎÎÏÎÎÎÏÎ ÎÎÎÎÏÏÎ, ÎÏÏÏ ÎÎ ÏÏÎÎÎÏÏÎÎÏÎ ÎÏÏÎÏ ÏÎÏ ÎÎÎÎÏÏ ÏÎÎ ÏÏÏÏÎÎÏÎ "
+"ÎÎÎ ÎÎ ÏÎÎÏÎÎÎÏÎÏÎ ÎÏÎÏÎÎÎÎÏ ÏÏÎÏÎÏÎÏÎÏÎÏ ÎÏÎÎÎÎÎÏÎÎÎÏ ÎÎ ÏÎ ÏÏÎÏÏÎ."
 
-#: C/help.page:27(link)
-msgid "Ten Minute Mallard Tour"
-msgstr "10 ÎÎÏÏÎ ÏÎÏÎÎÎÎÏÎ ÏÏÎ Mallard"
+#: C/gdk.page:25(page/p)
+msgid ""
+"GDK provides other functionality which is needed to implement a complete "
+"graphical toolkit like GTK+. Since GDK acts as a platform abstraction, "
+"allowing GTK+ to run under multiple environments, it provides an API for all "
+"of the system functionality needed by GTK+. This includes information about "
+"multi-head displays, resolution and color depth, colormaps, and cursors."
+msgstr ""
+"Î GDK ÏÎÏÎÏÎÎ ÎÎÎ ÎÎÎÎÏ ÎÎÎÏÎÏÏÎÎÎÏ ÏÎÏ ÎÏÎÎÏÎÏÎÏÎÎ ÎÎÎ ÏÎÎ ÏÎÎÏÎÎÎÏÎ ÎÎÏÏ "
+"ÎÎÎÎÎÎÏÏÎÎÎÎÏ toolkit ÎÏÎÏÎÎÏÎ, ÏÏÏÏ Î GTK+. ÎÎÎÏÏ Î GDK ÎÎÎÏÎÏÏÎÎÎ ÏÏ "
+"ÎÏÎÎÏÎÏÎÎÏ ÎÎÎÏÎÎÎ ÏÎÎÏÏÏÏÎÎÏ, ÎÏÎÏÏÎÏÎÎÏÎÏ ÏÏÎ GTK+ ÎÎ ÎÎÎÏÎÏÏÎÎÎ ÏÎ "
+"ÏÎÎÎÎÏÎÎ ÏÎÏÎÎÎÎÎÎÎÏÎ, ÏÎÏÎÏÎÎ ÎÎÎ API ÎÎÎ ÏÎÎÏ ÏÎÏ ÎÎÎÏÎÏÏÎÎÎÏ ÏÏÏÏÎÎÎÏÎÏ "
+"ÏÎÏ ÎÏÎÎÏÎÎ Î GTK+. ÎÏÏÏ ÏÎÏÎÎÎÎÎÎÎÎÎ ÏÎÎÏÎÏÎÏÎÎÏ ÎÎÎ ÏÎÏ ÏÎÎÎÎÏÎÎÏ ÎÎÏÎÎÏ, "
+"ÏÎÎ ÎÎÎÎÏÏÎ ÎÎÎ ÏÎ ÎÎÎÎÏ ÏÏÎ ÏÏÏÎÎÏÏÎ, ÏÎ ÏÏÏÎÎÏÎÎÏÎÎÎ ÎÎÎ ÏÎÏÏ ÎÏÎÎÎÎÏ."
 
-#: C/help.page:28(link)
-msgid "The Mallard web site"
-msgstr "ÎÏÏÎÏÎÎÎÎÎ ÏÎÏ Mallard"
+#: C/gdk.page:32(page/p)
+msgid ""
+"You should use GDK whenever you need low-level access to the underlying "
+"windowing system, including low-level access to events, windows, and the "
+"clipboard. Using GDK for these tasks ensures that your code is portable and "
+"integrates with the rest of your GTK+ code. The simple drawing routines in "
+"GDK should generally not be used. Instead, you should use the extensive "
+"functionality provide by Cairo."
+msgstr ""
+"ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ ÏÎ GDK ÎÎ ÏÏÎÎÎÎÎÏÏÎ ÏÏÏÏÎÎÏÎ ÏÎÎÎÎÎÏ ÎÏÎÏÎÎÎÏ ÏÏÎÎ ÏÏÎÎÎÎÎ "
+"ÏÎÏÎÎÏÏÏÎ ÏÎÏ ÏÏÏÏÎÎÎÏÎÏ, ÏÏÏÏ ÏÎ ÎÎÎÎÎÏÏÎ, ÏÎ ÏÎÏÎÎÏÏÎ ÎÎÎ ÏÎ ÏÏÏÏÎÎÏÎ. ÎÎÎ "
+"ÏÎÏÎÎÎ ÏÏÎÏÎ ÏÎÏ GDK ÎÎÎÏÏÎÎÎÎÎÎ ÏÎ ÏÎÏÎÏÏÏÎÏÎ ÏÎÏ ÎÏÎÎÎÎ ÏÎÏ ÎÎÎ ÏÎÎ ÎÏÎÎ "
+"ÏÎÏ ÎÎÏÏÎÎÏÏÏÎ ÏÏÎÎ ÏÏÏÎÎÎÏÎ ÎÏÎÎÎÎ GTK+. ÎÏÏÏÏÎ, ÏÏÎÏ ÏÎÏÎÏÏÏÏÎÏÎÏ "
+"ÏÎÏÎÏÏÏÏÎÎÏ ÎÎÎ ÏÏÎÎÏÏÎÏÎÎ Î ÏÏÎÏÎ ÏÏÎ ÎÏÎÏÎ ÏÎÏÏÎÎÏÎ ÏÏÎÎÎÎÏÎÏ ÏÎÏ GDK. "
+"ÎÏÎÏÎÎÎÏÏÎ, ÎÎÎÏÏÎÏÎ, ÏÎÏ ÎÎÏÎÏÎÎÎÎÎÏ ÎÏÎÎÏÏÏÎÏÎÏ ÏÎÏ Cairo."
 
-#: C/help.page:29(link)
-msgid "The DocBook web site"
-msgstr "ÎÏÏÎÏÎÎÎÎÎ ÏÎÏ DocBook"
+#: C/gdk.page:41(item/p)
+msgid ""
+"<link href=\"http://library.gnome.org/devel/gdk/stable/\";>GDK Reference "
+"Manual</link>"
+msgstr ""
+"<link href=\"http://library.gnome.org/devel/gdk/stable/\";>ÎÎÏÎÎÏÎÎÎÎ "
+"ÎÎÎÏÎÏÎÏ ÏÎÏ GDK</link>"
 
-#: C/gupnp.page:6(desc)
-msgid "An easy to use, efficient and flexible UPnP framework"
-msgstr "ÎÎÎÏ ÎÏÏÏÎÏÏÎÏ, ÎÏÎÏÎÎÎÏÎÎÏÎÎÏÏ ÎÎÎ ÎÏÎÎÎÎÏÎÏ ÏÎÎÎÎÏÏÏ UPnP"
+#: C/gio-network.page:6(info/desc)
+msgid "Powerful networking API built on the GIO stream classes"
+msgstr "ÎÏÏÏÏÎÏ ÎÎÏÎÏÎÎÏÎÏ API ÎÎÎÏÏÎÏ ÏÏÎÏ ÎÎÎÏÎÎÏ ÏÎÎÏ GIO"
 
-#: C/gupnp.page:10(title)
-msgid "GUPnP"
-msgstr "GUPnP"
+#: C/gio-network.page:10(page/title)
+msgid "GIO Networking"
+msgstr "ÎÎÎÏÏÏÏÎ GIO"
 
-#: C/gupnp.page:12(p)
+#: C/gio-network.page:12(page/p)
 msgid ""
-"GUPnP is an object-oriented open source framework for creating UPnP devices "
-"and control points, written in C using GObject and libsoup. The GUPnP API is "
-"intended to be easy to use, efficient and flexible."
+"Built on top of the stream APIs used for files, GIO provides high-level "
+"networking APIs to communicate over TCP/IP and UNIX domain sockets. You can "
+"use the GIO networking APIs to connect to a server, listen for events, and "
+"read resources. The asynchronous API designs means your application doesn't "
+"block waiting for a response."
 msgstr ""
-"GUPnP ÎÎÎÎÎ ÎÎÎÏ ÎÎÏÎÎÎÎÎÎÎÎÏÏÏÎÏÎÏ ÏÎÎÎÎÏÏÏ ÎÎÎÎÎÏÎÏ ÎÎÎÎÏÎÎÎÎÏ ÎÎÎ "
-"ÎÎÎÎÎÏÏÎÎÎ ÏÏÏÎÎÏÏÎ UPnP ÎÎÎ ÏÎÎÎÎÏÎ ÎÎÎÎÏÎÏ, ÎÏÎÎÎÎÎÎÏ ÏÎ C ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ "
-"GObject ÎÎÎ libsoup. ÎÎ GUPnP API ÏÎÎÏÎÏÎÎ ÎÎ ÎÎÎÎÎ ÎÏÏÏÎÏÏÎ, "
-"ÎÏÎÏÎÎÎÏÎÎÏÎÎÏ ÎÎÎ ÎÏÎÎÎÎÏÎ."
-
-#: C/gupnp.page:16(p)
-msgid "The GUPnP framework consists of the following components/packages:"
-msgstr "Î ÏÎÎÎÎÏÏÏ GUPnP ÎÏÎÏÎÎÎÎÏÎÎ ÎÏÏ ÏÎ ÎÎÏÎÎÏÎÎ ÏÏÏÏÎÏÎÎÎ/ÏÎÎÎÏÎ:"
+"ÎÎÏÎÏÎÎÏÎ ÏÏÎÎ ÎÎÏÏÏÎ ÏÎÏ ÏÎÎÏ APIs ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÎÎÎ ÎÏÏÎÎÎ, ÏÎ GIO "
+"ÏÎÏÎÏÎÎ APIs ÎÎÎÏÏÎÏ ÏÏÎÎÎÏ ÎÏÎÏÎÎÎÏ ÎÎÎ ÎÏÎÎÎÎÎÏÎÎÎ ÏÎÎÏ ÏÎ TCP/IP ÎÎÎ "
+"ÏÏÎÎÎÏÎÏ ÏÎÎÎÎ UNIX. ÎÏÎÏÎÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÏÎ APIs ÎÎÎÏÏÎÏ GIO ÎÎÎ "
+"ÏÏÎÎÎÏÎ ÎÎ ÎÎÎÎ ÎÎÏÏÎÏÎÏÎÏÎ, ÎÎ ÎÎÎÏÏÎÏÎ ÏÎ ÏÏÎÎÎÎÏÎ ÎÎÎ ÎÎ ÎÎÎÎÎÏÎÏÎ ÏÎÏÏ "
+"ÏÏÏÎÏÏ. ÎÎ ÎÏÏÎÏÏÎÎÎ ÏÏÎÎÎÎ API ÏÎÎÎÎÎÎÏÎ ÏÏÎ Î ÎÏÎÏÎÎÎÎ ÏÎÏ ÎÎÎ ÎÎÏÎÎÎÎÎÏÎÎ "
+"ÏÎÏÎÎÎÎÎÎÏÎÏ ÎÎÎ ÎÎÎ ÎÏÎÎÏÎÏÎ."
 
-#: C/gupnp.page:20(p)
+#: C/gio-network.page:21(item/p)
 msgid ""
-"GSSDP: The low-level library implementing resource discovery and "
-"announcement on the network through SSDP protocol."
+"<link href=\"http://developer-next.gnome.org/gio/stable/networking.html";
+"\">Lowlevel network support</link>"
 msgstr ""
-"GSSDP: Î ÏÎÎÏÎÎÎÏÎ ÎÎÎÎÎÎÎÎÎÎÏ ÏÎÎÎÎÎÏ ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÏÏÎÏ ÏÏÏÎÏ ÎÎÎ "
-"ÎÎÎÎÎÎÎÏÏÎÏ ÏÏÎ ÎÎÎÏÏÎ ÎÎÏÎ ÎÏÏ ÏÏÏÏÏÎÎÎÎÎ SSDP."
+"<link href=\"http://developer-next.gnome.org/gio/stable/networking.html";
+"\">ÎÎÎÎÎÎÏ ÎÏÎÏÎÎÎÏ ÏÏÎÏÏÎÏÎÎÎ ÎÎÎÏÏÎÏ</link>"
 
-#: C/gupnp.page:23(p)
+#: C/gio-network.page:22(item/p)
 msgid ""
-"GUPnP: The core library that implements the UPnP specification: resource "
-"announcement and discovery, description, control, event notification, and "
-"presentation (GUPnP includes basic web server functionality through "
-"libsoup). GUPnP does not include helpers for construction or control of "
-"specific standardized resources (e.g. MediaServer); this is left for higher "
-"level libraries utilizing the GUPnP framework."
+"<link href=\"http://developer-next.gnome.org/gio/stable/highlevel-socket.html";
+"\">Highlevel network functionality</link>"
 msgstr ""
-"GUPnP: Î ÎÎÎÎÎÎÎÎÎÎ ÏÏÏÎÎÎ ÏÎÏ ÏÎÎÏÎÎÎÎ ÏÎÎ ÏÏÎÎÎÎÎÏÎÏÎ UPnP: ÎÎÎÎÎÎÎÏÏÎ "
-"ÏÏÏÎÏ ÎÎÎ ÎÎÎÎÎÎÏÏÎ, ÏÎÏÎÎÏÎÏÎ, ÎÎÎÎÏÎ, ÎÎÎÎÏÎÎÎÏÎ ÏÏÎÎÎÎÏÎÏ ÎÎÎ ÏÎÏÎÏÏÎÎÏÎ "
-"(ÏÎ GUPnP ÏÎÏÎÎÎÎÎÎÎÎÎ ÎÎÎ ÎÎÏÎÎÎ ÎÎÎÏÎÏÏÎÎÎÏÏÎÏÎ ÎÎÏÏÎÏÎÏÎÏÎ ÎÏÏÎÏ ÎÎÏÎ ÎÏÏ "
-"libsoup). ÎÎ GUPnP ÎÎÎ ÏÎÏÎÎÎÎÎÎÎÎÎ ÎÎÎÎÎÏÏ ÎÎÎ ÎÎÏÎÏÎÎÏÎ Î ÎÎÎÎÏÎ ÏÏÎ "
-"ÎÎÎÎÎÏÎ ÏÏÏÎÏÎÎÎÎÎÎÏÎ ÏÏÏÏÎ (Ï.Ï. MediaServer)Â ÎÏÏÏ ÎÏÎÎÎÎÎ ÎÎÎ ÎÎÎÎÎÎÎÎÎÎÏ "
-"ÏÏÎÎÏÏÎÏÎÏ ÎÏÎÏÎÎÎÏ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎÎ ÏÎÎÎÎÏÏ GUPnP."
+"<link href=\"http://developer-next.gnome.org/gio/stable/highlevel-socket.html";
+"\">ÎÏÎÎÎÏ ÎÏÎÏÎÎÎÏ ÎÎÎÏÎÏÏÎÎÎÏÏÎÏÎ ÎÎÎÏÏÎÏ</link>"
+
+#: C/gio.page:6(info/desc)
+msgid "Asynchronous file and URI handling with access to file and volume info"
+msgstr ""
+"ÎÏÏÎÏÏÎÎÎ ÎÏÏÎÎÎ ÎÎÎ ÏÎÎÏÎÏÎÏÏ URI ÎÎ ÏÏÏÏÎÎÏÎ ÏÎ ÎÏÏÎÎÎ ÎÎÎ ÏÎÎÏÎÏÎÏÎÎÏ "
+"ÎÎÏÎÏÎÏ"
+
+#: C/gio.page:11(page/title)
+msgid "GIO Files"
+msgstr "ÎÏÏÎÎÎ GIO"
 
-#: C/gupnp.page:29(p)
+#: C/gio.page:13(page/p)
 msgid ""
-"GUPnP A/V: A small utility library that aims to ease the handling and "
-"implementation of UPnP A/V profiles."
+"GIO provides APIs for asynchronously reading and writing files and other "
+"streams. Files are referenced by URIs, and local backends can provide access "
+"to more than just local files. When running under the GNOME desktop, GIO "
+"uses GVfs to allow access to files over SFTP, FTP, WebDAV, SMB, and other "
+"popular protocols. This transparent network file access is free to all "
+"applications using GIO."
 msgstr ""
-"GUPnP A/V: ÎÎÎÏÏ ÎÏÎÎÎÎÎÎ ÎÎÎÎÎÎÎÎÎÎÏ ÏÎÏ ÏÏÎÏÎÏÎÎ ÎÎ ÎÎÎÏÎÎÎÏÎÎÎ ÏÎ "
-"ÏÎÎÏÎÏÎÏ ÎÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ ÏÏÎ ÎÎÏÎÏÎÎÏÎ UPnP ÎÏÎÏ/ÎÎÎÏÎÎ."
+"ÎÎ GIO ÏÎÏÎÏÎÎ APIs ÎÎÎ ÎÏÏÎÏÏÎÎÎ ÎÎÎÎÎÏÏÎ ÎÎÎ ÎÎÎÏÎÏÎ ÎÏÏÎÎÏÎ ÎÎÎ ÎÎÎÏÎ "
+"ÏÎÏÎ. ÎÎ ÎÏÏÎÎÎ ÎÎÎÏÎÏÎÎÏÎÎ ÎÏÏ URIs ÎÎÎ ÏÎÏÎÎÎÏ ÏÏÎÏÏÎÏÎÎÎÎÏ ÎÏÎÏÎÏÎ ÎÎ "
+"ÎÏÏÎÏÎ ÏÏÏÏÎÎÏÎ ÏÎ ÏÎÏÎÏÏÏÏÎÏÎ ÎÏÏ ÎÏÎÎ ÏÎÏÎÎÎ ÎÏÏÎÎÎ. ÎÏÎÎ ÎÎÏÎÎÎÏÎÏÎÎ ÏÏÎÎ "
+"ÎÏÎÏÎÎÎÎÎ ÎÏÎÎÏÎÎÏ GNOME, ÏÎ GIO ÏÏÎÏÎÎÎÏÎÎÎÎ GVfs ÎÎÎ ÎÎ ÎÏÎÏÏÎÏÎÎ ÏÎÎ "
+"ÏÏÏÏÎÎÏÎ ÏÎ ÎÏÏÎÎÎ ÏÎÎÏ ÏÎ SFTP, FTP, WebDAV, SMB ÎÎÎ ÎÎÎÎ ÎÎÎÎÏÎÎÎ "
+"ÏÏÏÏÏÎÎÎÎÎ. ÎÏÏÎ Î ÎÎÎÏÎÎÎÏ ÏÏÏÏÎÎÏÎ ÎÏÏÎÎÎÏ ÎÎÎÏÏÎÏ ÎÎÎÎÎ ÎÎÎÏÎÎÏÎ ÏÎ ÏÎÎÏ "
+"ÏÎÏ ÎÏÎÏÎÎÎÎÏ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ GIO."
 
-#: C/gupnp.page:32(p)
+#: C/gio.page:20(page/p)
 msgid ""
-"GUPnP DLNA: A small utility library that aims to ease the DLNA-related tasks "
-"such as media profile guessing, transcoding to a given profile, etc."
+"The GIO file APIs were designed to be used in event-driven graphical "
+"interfaces. The non-blocking, asynchronous design means your user interface "
+"doesn't hang while waiting for a file. There are also synchronous versions "
+"of the APIs available, which are sometimes more convenient for worker "
+"threads or processes."
 msgstr ""
-"GUPnP DLNA: ÎÎÎ ÎÎÎÏÎ ÎÎÎÎÎÏÎÎÎ ÎÎÎÎÎÎÎÎÎÎ ÏÎÏ ÏÎÎÏÎÏÎÎ ÏÏÎ ÎÎÎÏÎÏÎÏÎÏÎ ÏÏÎ "
-"ÏÏÎÏÎÎÏÎ ÎÎ DLNA ÎÏÎÎÏÎÏÎ ÏÏÏÏ ÏÏÏÎÎÎÏÎ ÎÎÏÎÏÎÎÎÏ ÎÎÏÏÎ, ÎÎÏÎÏÏÎÏÎ "
-"ÎÏÎÎÎÎÏÎÎÎÏÎÏ ÏÎ ÎÎÎ ÎÎÎÎÎÎÎÎ ÎÎÏÎÏÎÎÎ, ÎÎÏ."
+"ÎÎ APIs ÎÏÏÎÎÏÎ GIO ÏÏÎÎÎÎÏÏÎÎÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÎÏÎ ÏÎ ÎÏÎÏÎÎÎÏ ÎÎÎÏÎÏÎÏ "
+"ÎÎÎÎÎÏÎÎÎÎÏ ÎÏÏ ÏÏÎÎÎÎÏÎ. Î ÎÎ ÏÏÎÎÎÎÎÎ, ÎÏÏÎÏÏÎÎÎ ÏÏÎÎÎÎÏÎ ÏÎÎÎÎÎÎÎ ÏÏÎ Î "
+"ÎÎÎÏÎÏÎ ÏÎÏ ÏÏÎÏÏÎ ÏÎÏ ÎÎÎ ÎÏÎÎÎ ÎÎÏ ÏÎÏÎÎÎÎÎÎ ÎÎÎ ÎÏÏÎÎÎ. ÎÏÎÏÏÎÏÎ ÎÏÎÏÎÏ "
+"ÏÏÎÏÏÎÎÎÏ ÎÎÎÏÏÎÎÏ ÏÏÎ ÎÎÎÎÎÏÎÎÏÎ APIs, ÏÎÏ ÎÎÎÎÎ ÎÎÏÎÎÎÏ ÏÎÏÎÏ ÏÎÎ ÎÎÎÎÎÎÏ "
+"ÎÎÎ ÎÎÎÎÏÎ ÎÏÎÎÏÎÏÎ Î ÎÏÎÎÎÏÎÎÏÎÎÏ."
 
-#: C/gupnp.page:35(p)
+#: C/gio.page:26(page/p)
 msgid ""
-"GUPnP IGD: A library to handle UPnP Internet Gateway Device port mappings."
+"GIO also provides routines for managing drives and volumes, querying file "
+"types and icons, and finding applications to open files."
 msgstr ""
-"GUPnP IGD: ÎÎÎ ÎÎÎÎÎÎÎÎÎÎ ÎÎÎ ÏÎÎÏÎÏÎÏ ÎÏÎÎÎÎÎÎÏÎÏÎ ÎÏÏÎÏ ÏÏÏÎÎÏÎÏ ÏÏÎÎÏ "
-"ÎÎÎÎÎÎÏÏÎÏ UPnP."
+"ÎÎ GIO ÎÏÎÏÎÏ ÏÎÏÎÏÎÎ ÏÎÏÏÎÎÎÏ ÎÎÎ ÎÎÎÏÎÎÏÎÏÎ ÎÎÎÎÏÎ ÎÎÎ ÎÎÏÎÏÎÏÎ, ÎÏÏÏÎÏÎÏÎ "
+"ÏÏÏÏÎ ÎÏÏÎÎÎÏ ÎÎÎ ÎÎÎÎÎÎÎÎÏÎ ÎÎÎ ÎÏÏÎÏÎ ÎÏÎÏÎÎÎÏÎ ÎÎÎ ÎÎÎÎÎÎÎ ÎÏÏÎÎÏÎ."
 
-#: C/gupnp.page:37(p)
-msgid "GUPnP Vala: Vala bindings for GUPnP libraries."
-msgstr "GUPnP Vala: ÎÎ ÏÏÎÎÎÏÎÎÏ Vala ÎÎÎ ÎÎÎÎÎÎÎÎÎÎÏ GUPnP."
+#: C/gstreamer.page:6(info/desc)
+msgid "Playing, creating and manipulating sound, video, and other media"
+msgstr "ÎÎÎÏÎÏÎÎÏÎÎ, ÎÎÎÎÎÏÏÎÎÎ ÎÎÎ ÏÎÎÏÎÏÎÏÏ ÎÏÎÏ, ÎÎÎÏÎÎ ÎÎÎ ÎÎÎÏÎ ÎÎÏÏÎ"
 
-#: C/gupnp.page:39(p)
-msgid ""
-"GUPnP Tools: Free replacements of Intel UPnP tools, that use GUPnP. They "
-"provides the following client and server side tools which enable one to "
-"easily test and debug one's UPnP devices and control points:"
-msgstr ""
-"ÎÏÎÎÎÎÎÎ GUPnP: ÎÎÎÏÎÎÏÎÏ ÎÎÏÎÎÎÏÎÏÏÎÏÎÎÏ ÏÏÎ ÎÏÎÎÎÎÎÏÎ Intel UPnP, ÏÎÏ "
-"ÏÏÎÏÎÎÎÏÎÎÎÏÎ GUPnP. ÎÏÏÎ ÏÎÏÎÏÎÏÎ ÏÎ ÎÎÏÎÎÏÎÎ ÏÎÎÏÏÎÎÎ ÎÏÎÎÎÎÎÎ ÏÎÎÎÏÎ ÎÎÎ "
-"ÎÎÏÏÎÏÎÏÎÏÎ ÏÎÏ ÎÎÎÏÎÎÏÎÎÎÏÎ ÎÏÎÎÎÎ ÎÎÎÎÎÎ ÎÎÎ ÎÏÎÏÏÎÎÎÎÏÏÏÎ ÏÏÏÎÎÏÏÎ UPnP "
-"ÎÎÎ ÏÎÎÎÎÏÎ ÎÎÎÎÏÎÏ:"
+#: C/gstreamer.page:10(page/title)
+msgid "GStreamer"
+msgstr "GStreamer"
 
-#: C/gupnp.page:45(p)
+#: C/gstreamer.page:12(page/p)
 msgid ""
-"Universal Control Point: a tool that enables one to discover UPnP devices "
-"and services, retrieve information about them, subscribe to events and "
-"invoke actions."
+"GStreamer is a powerful multimedia library for playing, creating, and "
+"manipulating sound, video, and other media. You can use GStreamer to provide "
+"sound and video playback, record input from multiple sources, and edit "
+"multimedia content. GStreamer supports encoding and decoding numerous "
+"formats by default, and support for additional formats can be added with "
+"plug-ins."
 msgstr ""
-"ÎÎÎÎÎÏ ÏÎÎÎÎÎ ÎÎÎÎÏÎÏ: ÎÎÎ ÎÏÎÎÎÎÎÎ ÏÎÏ ÎÎÎÏÎÎÏÎÎÎÎ ÏÎÎ ÎÎÎÎÎÎÏÏÎ ÏÏÏÎÎÏÏÎ "
-"UPnP ÎÎÎ ÏÏÎÏÎÏÎÏÎ, ÎÎÎÎÏÎÏÎ ÏÎÎÏÎÏÎÏÎÏÎ ÎÎÎ ÎÏÏÎÏ, ÎÎÎÏÎÏÎ ÏÏÎÎÎÎÏÏÎ ÎÎÎ "
-"ÎÎÎÏÎ ÎÎÎÏÎÎÎÏÎ."
+"ÎÎ GStreamer ÎÎÎÎÎ ÎÎÎ ÎÏÏÏÏÏÏÎÏÎ ÎÎÎÎÎÎÎÎÎÎ ÏÎÎÏÎÎÏÏÎ ÎÎÎ ÏÎÎ ÎÎÎÏÎÏÎÎÏÎÎ, "
+"ÎÎÎÎÎÏÏÎÎÎ ÎÎÎ ÎÏÎÎÎÏÎÎÏÎÎ ÎÏÎÏ, ÎÎÎÏÎÎ ÎÎÎ ÎÎÎÏÎ ÏÎÎÏÎÎÏÏÎ. ÎÏÎÏÎÎÏÎ ÎÎ "
+"ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÏÎ GStreamer ÎÎÎ ÎÎ ÏÎÏÎÏÎÏÎ ÎÎÎÏÎÏÎÎÏÎÎ ÎÏÎÏ ÎÎÎ ÎÎÎÏÎÎ, ÎÎ "
+"ÎÎÎÎÏÎ ÎÎÎÏÎÏÎ ÎÏÏ ÎÎÎÏÎÏÎÏ ÏÎÎÎÏ, ÎÎÎÏÏ ÎÎÎ ÎÎ ÎÏÎÎÎÏÎÎÎÎÏÏÎ ÎÏÏÎÎÎ "
+"ÏÎÎÏÎÎÏÏÎ. ÎÎ GStreamer ÎÏÏ ÎÏÎÎ ÏÎÏ ÏÎÏÎÏÎÎ ÎÏÎÎÎÎÏÎÎÎÏÎ ÎÎÎ "
+"ÎÏÎÎÏÎÎÎÎÏÎÎÎÏÎ ÎÎÎ ÎÎÎÏÎÏÎÏ ÎÎÏÏÎÏ, ÎÎÏ ÎÏÎÏÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÎÏÎ ÎÎÎ "
+"ÏÏÏÏÎÎÏÎ ÎÎÎ ÏÎÎ ÏÏÎÏÏÎÏÎÎÎ ÎÏÎÏÎÎÎÎ ÎÎÏÏÏÎ."
 
-#: C/gupnp.page:48(p)
+#: C/gstreamer.page:19(page/p)
 msgid ""
-"Network Light: a virtual light bulb that allows control points to switch it "
-"on and off, change its dimming level and query its current status. It also "
-"provides a simple UI to control all the network lights available on the "
-"network."
+"GStreamer provides a flexible architecture wherein media is processed "
+"through a pipeline of elements. Each element may apply filters to the "
+"content, such as encoding or decoding, combining multiple sources, or "
+"transforming the multimedia content. This architecture allows for an "
+"arbitrary arrangement of elements, so that you can accomplish virtually any "
+"effect using GStreamer. Furthermore, GStreamer is designed to have low "
+"overhead, so it can be used in applications with high demands on latency."
 msgstr ""
-"ÎÏÏ ÎÎÎÏÏÎÏ: ÎÎÎÏ ÎÎÎÎÎÎÎÏÏ ÎÎÎÎÏÏ ÏÏÏÏÏ ÏÎÏ ÎÏÎÏÏÎÏÎÎ ÏÎ ÏÎÎÎÎÎ ÎÎÎÎÏÎÏ ÎÎ "
-"ÎÎÎÎÎÏÎ ÎÎÎ ÎÎ ÏÎÎÎÎÏÎ, ÎÎ ÎÎÎÎÎÎÏÎ ÏÎ ÎÏÎÏÎÎÎ ÎÎÏÎÏÏÏÎÏÎÏ ÎÎÎ ÎÎ ÏÏÏÎÏÎ ÏÎÎ "
-"ÏÏÎÏÎÏÏÎ ÏÎÏ ÎÎÏÎÏÏÎÏÎ. ÎÏÎÏÎÏ ÏÎÏÎÏÎÎ ÎÎÎ ÎÏÎÏ UI ÎÎÎ ÎÎ ÎÎÎÎÏÎÎ ÏÎÎ ÏÎ "
-"ÎÎÎÎÎÏÎÎÎ ÏÏÏÎ ÏÎÏ ÎÎÎÏÏÎÏ."
+"ÎÎ GStreamer ÏÎÏÎÏÎÎ ÎÎÎ ÎÏÎÎÎÎÏÎ ÎÏÏÎÏÎÎÏÎÎÎÎÎ, ÏÏÎÏÏÎÎ ÎÎ ÏÎÎ ÎÏÎÎÎ Î "
+"ÎÏÎÎÎÏÎÎÏÎÎ ÏÏÎ ÏÎÎÏÎÎÏÏÎ ÎÎÎÎÏÎÎ ÎÎÏÏ ÎÎÎÏ ÎÎÎÏÎÏÎÏÏÎÏ ÏÏÎÎÏÎÎÏÎ. ÎÎÎÎ "
+"ÏÏÎÎÏÎÎÎ ÎÏÎÏÎÎ ÎÎ ÎÏÎÏÎÏÎÎÎ ÏÎÎÏÏÎ ÏÏÎ ÏÎÏÎÎÏÏÎÎÎÎ ÏÏÏÏ ÎÏÎÎÎÎÏÎÎÎÏÎ Î "
+"ÎÏÎÎÏÎÎÎÎÏÎÎÎÏÎ, ÏÏÎÎÏÎÏÎÏ ÏÎÎÎÎÏÎÏÎ ÏÎÎÏÎ, Î ÎÎÏÎÏÏÎÎÎÏÎÏÎÏ ÏÎÏ "
+"ÏÎÏÎÎÏÏÎÎÎÎÏ ÏÎÎÏÎÎÏÏÎ. Î ÎÏÏÎÏÎÎÏÎÎÎÎÎ ÎÏÏÎ ÎÏÎÏÏÎÏÎÎ ÏÎÎ ÏÏÏÎÎÎ ÎÎÎÏÎÎÎ "
+"ÏÏÎ ÏÏÎÎÏÎÎÏÎ, ÎÎÏÎ ÏÎÏ ÏÏÎÏÏÎÏÎÎ ÏÏÎ GStreamer ÏÎ ÎÏÎÎÏÏÏÎÏÎ ÎÎ ÏÎÏÎÎÎÎ "
+"ÏÏÎÎÏÎ Ï,ÏÎ ÎÏÎÏÎÎÎÏÎÎ ÎÏÎÏÎÎÏÎ ÎÎ ÏÎÎÏÎÏÏÎÎÏÎ. ÎÏÎÏÎÎÎÎ, ÏÎ GStreamer ÎÏÎÎ "
+"ÏÏÎÎÎÎÏÏÎÎ ÎÎ ÎÎÏÎÎÎÎ ÏÎ ÏÎÎÎÎÎ ÎÏÎÎÎÏÏÎÏÎ, ÎÎÎ ÎÏÎ ÎÏÎÏÎÎ ÎÎ "
+"ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÎÏÏ ÎÏÎÏÎÎÎÎÏ ÎÎ ÎÏÎÎÎÎÎÎÏ ÎÎÎÎÎÎÏ ÏÎ ÎÎÎÎÎÎÎÎÏÎ ÏÏÏÎÎ."
 
-#: C/gupnp.page:52(p)
+#: C/gstreamer.page:28(page/p)
 msgid ""
-"AV Control Point: a simple media player UI that enables one to discover and "
-"play multimedia contents available on a network. It is strictly a control "
-"point and therefore does not have any playback capabilities of it's own and "
-"relies on external UPnP MediaRenderer devices for actual playback."
+"While GStreamer provides a powerful API for manipulating multimedia, it also "
+"provides convenient routines for simple playback. GStreamer can "
+"automatically construct a pipeline to read and playback files in any "
+"supported format, allowing you to use sound and video in your application "
+"easily."
 msgstr ""
-"ÎÎÎÎÎÎ ÎÎÎÎÏÎÏ AV: ÎÎÎÏ ÎÏÎÏÏ ÎÎÎÏÎÏÎÎÏÎÏÏ ÎÎÏÏÎ UI ÏÎÏ ÎÎÎÏÎÎÏÎÎÎÎ ÏÎÎ "
-"ÎÎÎÎÎÎÏÏÎ ÎÎÎ ÎÎÏÎÎÎÏÎ ÏÏÎ ÎÎÎÎÎÏÎÎÏÎ ÏÎÏÎÎÏÎÎÎÎÏÎ ÏÎÎÏÎÎÏÏÎ ÏÎ ÎÎÎÏÏÎ. "
-"ÎÎÎÎÎ ÎÏÏÏÎÏÎ ÎÎÎ ÏÎÎÎÎÎ ÎÎÎÎÏÎÏ ÎÎÎ ÏÏÎÎÏÏÏ ÎÎÎ ÎÏÎÎ ÎÏÎÎÎÎÎÏÎÏÎ ÎÎÎÎÎ ÏÎÏ "
-"ÎÎÎÎÏÏÎÏÎ ÎÎÎÏÎÏÎÎÏÎÎÏ ÎÎÎ ÎÎÏÎÎÎÏÎÎ ÏÎ ÎÎÏÏÎÏÎÎÎÏ ÏÏÏÎÎÏÎÏ UPnP "
-"MediaRenderer ÎÎÎ ÎÎÎÏÎÎ ÎÎÎÏÎÏÎÎÏÎÎ."
+"ÎÎ GStreamer ÏÎÏÎÏÎÎ ÎÎÎ ÎÏÏÏÏÏÏÎÏÎ API ÎÎÎ ÏÎÎ ÎÏÎÎÎÏÎÎÏÎÎ ÏÎÎÏÎÎÏÏÎ, "
+"ÏÎÏÎÏÎÎ ÏÎÏÏ ÎÎÎ ÎÏÏÏÎÏÏÎÏ ÏÎÏÏÎÎÎÏ ÎÎÎ ÏÎÎ ÎÏÎÎ ÎÎÎÏÎÏÎÎÏÎÎ ÏÎÎÏÎÎÏÏÎ. ÎÎ "
+"GStreamer ÎÏÎÏÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎÎ ÎÏÏÏÎÎÏÎ ÎÎÎÏÎÏÎÏÏÎÎÏ ÎÎÎ ÏÎÎ ÎÎÎÎÎÏÏÎ ÎÎÎ "
+"ÎÎÎÏÎÏÎÎÏÎÎ ÎÏÏÎÎÏÎ ÏÏÎÏ ÎÎÏÏÎÏ ÏÎÏ ÏÏÎÏÏÎÏÎÎÎÎ, ÎÏÎÏÏÎÏÎÎÏÎÏ ÏÎÏ ÎÎ "
+"ÏÏÎÏÎÎÏÎÏÎ ÎÏÎÎÎÎ ÎÏÎ ÎÎÎ ÎÎÎÏÎÎ ÏÏÎÎ ÎÏÎÏÎÎÎÎ ÏÎÏ."
 
-#: C/gupnp.page:57(p)
+#: C/gstreamer.page:34(page/p)
 msgid ""
-"Upload: a simple commandline utility that uploads files to known "
-"MediaServers. Use Universal Control Point for discovering the MediaServers."
+"The GStreamer architecture allows plugins to add encoders, decoders, and all "
+"sorts of content filters. Third-party developers can provide GStreamer "
+"plugins which will be automatically available to other applications using "
+"GStreamer. Plugins can provide support for other multimedia formats or "
+"provide additional functionality and effects."
 msgstr ""
-"ÎÎÎÎÎÏÎÎ: ÎÎÎ ÎÏÎÏ ÎÎÎÎÎÎÎ ÎÏÎÎÎÎÏ ÎÎÏÎÎÏÎ ÏÎÏ ÎÎÎÎÎÎÎÎ ÎÏÏÎÎÎ ÏÎ ÎÎÏÏÏÎÏÏ "
-"MediaServers. ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ ÎÎÎÎÎÏ ÏÎÎÎÎÎ ÎÎÎÎÏÎÏ ÎÎÎ ÎÎ ÎÎÎÎÎÎÏÏÎÏÎ ÏÎÏÏ "
-"MediaServers."
+"Î ÎÏÏÎÏÎÎÏÎÎÎÎÎ ÏÎÏ GStreamer ÎÏÎÏÏÎÏÎÎ ÏÎ ÏÏÎÏÎ ÏÏÎÏÎÎÏÏÎ ÎÎÎ ÏÎÎ ÏÏÎÏÎÎÎÎ "
+"ÎÏÎÎÎÎÏÎÎÎÏÏÎ, ÎÏÎÎÏÎÎÎÎÏÎÎÎÏÏÎ ÎÎÎ ÎÎÎÏÏÏÏÎ ÏÎÎÏÏÏÎ ÏÎÏÎÎÏÎÎÎÎÎÏ. ÎÎ "
+"ÎÎÏÏÎÏÎÎÎÎ ÏÏÎÎÏÎÎÎÎÏÎÏÏÎÏ ÎÏÎÏÎÏÎ ÎÎ ÏÎÏÎÏÎÏÎ ÏÏÏÏÎÎÏÎ ÎÎÎ ÏÎ GStreamer, ÏÎ "
+"ÎÏÎÎÎ ÎÎÎÎÏÏÎÎÏÎÎ ÎÏÏÎÎÎÏÏÏ ÎÎÎÎÎÏÎÎÎ ÏÎ ÏÎÎÏ ÏÎÏ ÎÏÎÏÎÎÎÎÏ ÏÎÏ "
+"ÏÏÎÏÎÎÎÏÎÎÎÏÎ ÏÎ GStreamer. ÎÎ ÏÏÏÏÎÎÏÎ ÎÏÎÏÎÏÎ ÎÎ ÎÏÎÏÎÏÎ ÏÎÎ ÏÏÎÏÏÎÏÎÎÎ "
+"ÎÎÏÎ ÎÎÏÏÏÎ ÏÎÎÏÎÎÏÏÎ, Î ÎÎÎ ÎÏÎ ÎÎÎ ÎÎÎÏÎÏÏÎÎÎÏ."
 
-#: C/gupnp.page:66(p)
+#: C/gstreamer.page:41(page/p)
 msgid ""
-"The GUPnP framework was born out of frustration with libupnp and its mess of "
-"threads. GUPnP is entirely single-threaded (though asynchronous), integrates "
-"with the GLib main loop, and provides the same set of features as libupnp "
-"while hiding most of the UPnP internals through an elegant object-oriented "
-"design."
+"You should use GStreamer whenever you need to read or play multimedia "
+"content in your application, or if your application needs to manipulate "
+"sound or video. Using GStreamer makes your application development easy, and "
+"it provides you well-tested elements for many of your needs."
 msgstr ""
-"Î ÏÎÎÎÎÏÏÏ GUPnP ÎÎÎÎÎÎÎÎÎ ÎÏÏ ÏÎÎ ÎÏÎÎÎÎÏÎÏÏÎ ÎÎ ÏÎ libupnp ÎÎÎ ÏÎ ÎÏÎÏÎÎÎÎ "
-"ÏÎÏ ÎÎ ÏÎ ÎÎÎÎÏÎ. ÎÎ GUPnP ÎÎÎÎÎ ÎÎÏÏÎÎÎ ÎÎÎÎÏ ÎÎÎÎÏÎÏ (ÎÎ ÎÎÎ ÎÏÏÎÏÏÎÎÎ), "
-"ÎÎÏÏÎÎÏÏÎÎÏÎÎ ÎÎ ÏÎÎ ÎÏÏÎÎ ÎÏÏÏÎ GLib ÎÎÎ ÏÎÏÎÏÎÎ ÏÎ ÎÎÎÎ ÏÏÎÎÎÎ ÎÎÏÏÎÏÎÎÏÏÎ "
-"ÏÏÏÏ ÏÎ libupnp ÎÎÏ ÎÏÏÎÎÎ ÏÎ ÏÎÏÎÏÏÏÏÎÏÎ ÎÏÏÏÎÏÎÎÎ ÏÎÏ UPnP ÎÎÏÎ ÎÏÏ ÎÎÎÎ "
-"ÎÎÎÏÏ ÎÎÏÎÎÎÎÎÎÎÎÏÏÏÎÏÎ ÏÏÎÎÎÎÏÎÏ."
+"ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ ÏÎ GStreamer ÎÏÎÏÎÎÎÏÎÏÎ ÏÏÎÎÎÏÏÎÎÏÎ ÎÎ ÎÎÎÎÎÏÎÏÎ Î ÎÎ "
+"ÎÎÎÏÎÏÎÎÎÏÎ ÏÎÎÏÎÎÏÎ, Î ÎÎ Î ÎÏÎÏÎÎÎÎ ÏÎÏ ÎÎÎÎÎ ÎÏÎÎÎÏÎÎÏÎÎ ÎÏÎÏ Î ÎÎÎÏÎÎ. Î "
+"ÏÏÎÏÎ ÏÎÏ GStreamer ÎÎÎÏÎÎÎÏÎÎÎ ÏÎÎ ÎÎÎÏÏÏÎÎ ÏÎÏ ÎÏÎÏÎÎÎÎÏ ÏÎÏ ÎÎÎ ÏÎÏ "
+"ÏÎÏÎÏÎÎ ÎÎÎÎÎÎÏÎÎÎÎÏ ÎÏÏÎÎÏ ÎÎÎ ÏÎÎ ÎÎÎÏÏÎ ÏÏÎ ÎÎÎÎÎÏÎ ÏÎÏ."
 
-#: C/gupnp.page:71(p)
+#: C/gstreamer.page:48(item/p)
 msgid ""
-"GUPnP is free software. All libraries are released under the GNU LGPL, while "
-"GUPnP Tools are licensed under GNU GPL."
+"<link href=\"http://gstreamer.freedesktop.org/data/doc/gstreamer/head/manual/";
+"html/index.html\">The GStreamer Application Development Manual</link>"
 msgstr ""
-"ÎÎ GUPnP ÎÎÎÎÎ ÎÎÎÏÎÎÏÎ ÎÎÎÎÏÎÎÎÏ. ÎÎÎÏ ÎÎ ÎÎÎÎÎÎÎÎÎÎÏ ÎÎÎÎÎÎÎÏÎÎ ÎÎ ÏÎÎ GNU "
-"LGPL, ÎÎÏ ÏÎ ÎÏÎÎÎÎÎÎ GUPnP ÎÎÎÎÎÎÎÏÎÏÎÏÎÎ ÎÎ GNU GPL."
+"<link href=\"http://gstreamer.freedesktop.org/data/doc/gstreamer/head/manual/";
+"html/index.html\">ÎÎÏÎÎÏÎÎÎÎ ÎÎÎÏÏÏÎÎÏ ÏÎÏ ÎÏÎÏÎÎÎÎÏ GStreamer</link>"
 
-#: C/gupnp.page:74(p)
+#: C/gstreamer.page:49(item/p)
 msgid ""
-"You should use GUPnP whenever you need your code to communicate with any "
-"UPnP or DLNA devices. Examples of such devices includes Sony Playstation 3 "
-"and Bravia model TVs, Samsung TVs and phones, Microsoft XBox and all modern "
-"router etc. The list of such devices is huge and its increasing."
+"<link href=\"http://gstreamer.freedesktop.org/data/doc/gstreamer/head/";
+"gstreamer/html/\">The GStreamer 0.10 Core Reference Manual</link>"
 msgstr ""
-"ÎÎ ÏÏÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ GUPnP ÏÏÎÏÎ ÏÏÎÎÎÎÎÏÏÎ Î ÎÏÎÎÎÎÏ ÏÎÏ ÎÎ "
-"ÎÏÎÎÎÎÎÏÎÎÏÎÎ ÎÎ ÎÏÎÎÎÏÎÎÏÎÏÎ ÏÏÏÎÎÏÎÏ UPnP Î DLNA. ÎÎÏÎÎÎÎÎÎÎÏÎ ÏÎÏÎÎÏÎ "
-"ÏÏÏÎÎÏÏÎ ÏÎÏÎÎÎÎÎÎÎÎÏÎ ÏÎ Sony Playstation 3 ÎÎÎ ÏÎ ÎÎÎÏÎÎÎ ÏÎÎÎÎÏÎÏÎÏÎ "
-"Bravia, ÏÎÎÎÎÏÎÏÎÏÎ ÎÎÎ ÏÎÎÎÏÏÎÏÎ Samsung, XBox ÏÎÏ Microsoft ÎÎÎ ÏÎÎÏÏ ÏÎÏÏ "
-"ÏÏÎÏÏÎÎÎÏÏ ÎÏÎÎÎÎÎÎÎÏÎÏ ÎÎÏ. Î ÎÎÏÏÎ ÏÎÏÎÎÏÎ ÏÏÏÎÎÏÏÎ ÎÎÎÎÎ ÏÎÎÏÏÎÎ ÎÎÎ "
-"ÎÏÎÎÎÏÎÎÎÎ."
+"<link href=\"http://gstreamer.freedesktop.org/data/doc/gstreamer/head/";
+"gstreamer/html/\">ÎÎÏÎÎÏÎÎÎÎ ÎÎÎÏÎÏÎÏ ÏÎÏ GStreamer 0.10 Core</link>"
 
-#: C/gupnp.page:77(p)
+#: C/gstreamer.page:50(item/p)
 msgid ""
-"Apart from dealing with existing UPnP devices, GUPnP can very effectively be "
-"used to easily create custom home network solutions where devices/services "
-"are able to discover and interact with each other without any configuration "
-"from user."
+"<link href=\"http://gstreamer.freedesktop.org/documentation/\";>The GStreamer "
+"documentation page</link>"
 msgstr ""
-"ÎÎÏÎ ÎÏÏ ÏÎ ÎÎÎÎÎÎÎ ÎÎ ÏÏÎÏÏÎÏÏÎÏ ÏÏÏÎÎÏÎÏ UPnP, ÏÎ GUPnP ÎÏÎÏÎÎ ÎÎ "
-"ÏÏÎÏÎÎÎÏÎÎÎÎÎÎ ÏÎÎÏ ÎÏÎÏÎÎÎÏÎÎÏÎÎÎ ÎÎÎ ÎÏÎÎÎÎ ÎÎÎÎÎÏÏÎÎÎ ÏÏÎÏÎÏÎÎÏÎÎÎÏÎ "
-"ÎÏÏÎÏÎ ÎÎÎÎÎÎÎÏ ÎÎÎÏÏÎÏ ÏÏÎÏ ÎÎ ÏÏÏÎÎÏÎÏ/ÏÏÎÏÎÏÎÎÏ ÎÏÎÏÎÏÎ ÎÎ ÎÎÎÎÎÎÏÏÎÏÎ "
-"ÎÎÎ ÎÎ ÎÎÎÎÎÎÏÎÎÏÎÏÎÏÎ ÎÎÏÎÎÏ ÏÎÏÏ ÏÏÏÎÏ ÎÏÎÎÎÎÎÏÎÏÎ ÏÏÎÎÎÏÎ ÎÏÏ ÏÎÎ ÏÏÎÏÏÎ."
+"<link href=\"http://gstreamer.freedesktop.org/documentation/\";>ÎÏÏÎÏÎÎÎÎÎ "
+"ÏÎÎÎÎÏÎÏÏÎÏ ÏÎÏ GStreamer</link>"
 
-#: C/gupnp.page:81(p)
+#: C/gstreamer.page:51(item/p)
 msgid ""
-"For comprehensive information on GUPnP, please visit the <link href=\"http://";
-"www.gupnp.org\">project home page</link>."
+"<link href=\"http://gstreamer.freedesktop.org\";>The GStreamer web site</link>"
 msgstr ""
-"ÎÎÎ ÏÎÏÎÏÏÏÏÎÏÎÏ ÏÎÎÏÎÏÎÏÎÎÏ ÏÏÎÏÎÎÎ ÎÎ ÏÎ GUPnP, ÎÏÎÏÎÎÏÏÎÎÏÎ ÏÎÎ <link "
-"href=\"http://www.gupnp.org\";>ÎÏÏÏÏÎÏÎ ÏÎÏ</link>."
+"<link href=\"http://gstreamer.freedesktop.org\";>Î ÎÏÏÎÏÎÎÎÎÎ ÏÎÏ GStreamer</"
+"link>"
 
-#: C/gtk.page:6(desc)
+#: C/gtk.page:6(info/desc)
 msgid "Feature rich toolkit for creating graphical user interfaces"
 msgstr ""
 "ÎÎÎÎÏÎ ÎÏÎÎÎÎÎÏÎ ÎÎ ÏÎÎÏÏÎÎ ÎÎÏÏÎÏÎÎÏÎ ÎÎÎ ÎÎÎÎÎÏÏÎÎÎ ÎÏÎÏÎÎÏÎ ÎÎÎÏÎÏÏÎ "
 "ÏÏÎÏÏÎ"
 
-#: C/gtk.page:10(title)
+#: C/gtk.page:10(page/title)
 msgid "GTK+"
 msgstr "GTK+"
 
-#: C/gtk.page:12(p)
+#: C/gtk.page:12(page/p)
 msgid ""
 "GTK+ is the primary library used to construct user interfaces in GNOME. It "
 "provides all the user interface controls, or widgets, used in a common "
@@ -696,7 +922,7 @@ msgstr ""
 "ÏÏÎÎÎÎÎÏÎÎ ÎÎ ÎÏÏÎÎÎÎÎÎÏÎ ÎÎ ÏÎÏ ÎÎÏÏÎÎÎÏÎÎÎÏ ÏÎÎÎÎÎÏ ÎÏÎÏÎÎÎÏ ÏÎÏ ÏÏÎÎÎÎÏÎÏ "
 "ÎÎÎ ÏÎÏ ÎÏÎÎÎÎÎÏÎÎÎÏ ÎÎ ÏÏÏÎÎÏÎÏ."
 
-#: C/gtk.page:19(p)
+#: C/gtk.page:19(page/p)
 msgid ""
 "In addition to basic widgets, such as buttons, check boxes, and text "
 "entries, GTK+ also provides powerful Model-View-Controller (MVC) APIs for "
@@ -707,7 +933,7 @@ msgstr ""
 "(Model-View-Controller) ÎÎÎ ÏÎ ÏÏÎÏÎ ÏÏÎÎÎÎÏÎ ÎÎÎÏÏÎÏ, ÏÎÎÎÏÎ ÎÎÎÎÎÎÎÏ "
 "ÏÎÎÎÎÏÎÏÎ ÎÏÎÎÎÏÎ ÎÎÎ ÎÎÎÏÎÎÎÏÎ ÏÏÎ ÎÎÎÎÏ ÎÎÎ ÏÎÏ ÎÏÎÎÎÎÎÎÎÎÎÎÏ."
 
-#: C/gtk.page:24(p)
+#: C/gtk.page:24(page/p)
 msgid ""
 "Widgets in GTK+ are placed on windows using a box-packing model. Programmers "
 "specify only how to pack widgets together in container boxes, rather than "
@@ -723,7 +949,7 @@ msgstr ""
 "ÏÏÏÎÏÎÏÎ ÏÎÎ ÏÎ ÏÎÏÎÎÏÏÎÎÎÏ, ÎÎÎÎÎÎÎÏÎÏ ÎÏÏÏÎÎÏÎ ÏÎ ÎÎÎÎÎÎÏ ÏÏÎ ÏÎÏÎÎÏÏÏÎ "
 "ÏÏÎÏÎ ÏÏÎÎÎÎÎÏÎÎ."
 
-#: C/gtk.page:30(p)
+#: C/gtk.page:30(page/p)
 msgid ""
 "Because GTK+ offers a flexible API, developing additional widgets for use in "
 "GTK+ applications is easy. A number of third-party libraries exist which "
@@ -736,7 +962,7 @@ msgstr ""
 "ÎÎÏ ÏÎÎÎÎÎ ÏÏÎÎÏÎÎÎÎÏÎÏÏÎÏ ÎÎÎÎÎÏÏÎÎÏÎ ÎÎÎÎÎÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÎÎÎ ÏÎÏ "
 "ÎÏÎÏÎÎÎÎÏ ÏÎÏÏ."
 
-#: C/gtk.page:35(p)
+#: C/gtk.page:35(page/p)
 msgid ""
 "GTK+ handles the difficult details of user interfaces and user interaction, "
 "and provides a simple yet powerful API which allows you to focus on the "
@@ -751,754 +977,866 @@ msgstr ""
 "ÎÏÎÎÎÎÏÎÏÎÎÏÎÏ ÏÎÏ ÏÏÎÏÏÎ, ÏÏÎÎÏÎÎÎÎÎÏÎÎ ÏÏÏÎÏ ÏÏÎÎÎÎÎÎÏÎ ÎÎ ÏÎÏ ÏÎÏÎÎÎÎÎÎÎÏ "
 "ÏÏÎÏÎÏÏÏÎÏÎÏ, ÎÎÎ ÎÎÎÎÎÎ ÏÏÎÏÎÏÎÏÎÏÎÎÏÎÎ ÎÎÏÎÎÏÏ ÏÏÏÏ ÎÎÎÎÎÎÎÏÎ ÎÎ ÏÏÎÏÏÎÏ."
 
-#: C/gtk.page:43(link)
-msgid "GTK+ demo tutorial"
-msgstr "ÎÎÏÎÏÏÎÎÏÎ ÎÎÎÎÎÎÏÎÏ GTK+"
+#: C/gtk.page:43(item/p)
+msgid ""
+"<link href=\"http://developer.gnome.org/gnome-devel-demos/stable/image-";
+"viewer.c.html\">GTK+ demo tutorial</link>"
+msgstr ""
+"<link href=\"http://developer.gnome.org/gnome-devel-demos/stable/image-";
+"viewer.c.html\">ÎÎÎÎÎÎ GTK+</link>"
 
-#: C/gtk.page:44(link)
-msgid "GTK+ Reference Manual"
-msgstr "ÎÎÏÎÎÏÎÎÎÎ ÎÎÎÏÎÏÎÏ ÏÎÏ GTK+"
+#: C/gtk.page:44(item/p)
+msgid ""
+"<link href=\"http://developer.gnome.org/gtk3/stable/\";>GTK+ Reference "
+"Manual</link>"
+msgstr ""
+"<link href=\"http://developer.gnome.org/gtk3/stable/\";>ÎÎÏÎÎÏÎÎÎÎ ÎÎÎÏÎÏÎÏ "
+"ÏÎÏ GTK+</link>"
 
-#: C/gtk.page:45(link)
-msgid "The GTK+ web site"
-msgstr "ÎÏÏÎÏÎÎÎÎÎ ÏÎÏ GTK+"
+#: C/gtk.page:45(item/p)
+msgid "<link href=\"http://gtk.org/\";>The GTK+ web site</link>"
+msgstr "<link href=\"http://gtk.org/\";>Î ÎÏÏÎÏÎÎÎÎÎ ÏÎÏ GTK+</link>"
 
-#: C/gstreamer.page:6(desc)
-msgid "Playing, creating and manipulating sound, video, and other media"
-msgstr "ÎÎÎÏÎÏÎÎÏÎÎ, ÎÎÎÎÎÏÏÎÎÎ ÎÎÎ ÏÎÎÏÎÏÎÏÏ ÎÏÎÏ, ÎÎÎÏÎÎ ÎÎÎ ÎÎÎÏÎ ÎÎÏÏÎ"
+#: C/gupnp.page:6(info/desc)
+msgid "An easy to use, efficient and flexible UPnP framework"
+msgstr "ÎÎÎÏ ÎÏÏÏÎÏÏÎÏ, ÎÏÎÏÎÎÎÏÎÎÏÎÎÏÏ ÎÎÎ ÎÏÎÎÎÎÏÎÏ ÏÎÎÎÎÏÏÏ UPnP"
 
-#: C/gstreamer.page:10(title)
-msgid "GStreamer"
-msgstr "GStreamer"
+#: C/gupnp.page:10(page/title)
+msgid "GUPnP"
+msgstr "GUPnP"
+
+#: C/gupnp.page:12(page/p)
+msgid ""
+"GUPnP is an object-oriented open source framework for creating UPnP devices "
+"and control points, written in C using GObject and libsoup. The GUPnP API is "
+"intended to be easy to use, efficient and flexible."
+msgstr ""
+"GUPnP ÎÎÎÎÎ ÎÎÎÏ ÎÎÏÎÎÎÎÎÎÎÎÏÏÏÎÏÎÏ ÏÎÎÎÎÏÏÏ ÎÎÎÎÎÏÎÏ ÎÎÎÎÏÎÎÎÎÏ ÎÎÎ "
+"ÎÎÎÎÎÏÏÎÎÎ ÏÏÏÎÎÏÏÎ UPnP ÎÎÎ ÏÎÎÎÎÏÎ ÎÎÎÎÏÎÏ, ÎÏÎÎÎÎÎÎÏ ÏÎ C ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ "
+"GObject ÎÎÎ libsoup. ÎÎ GUPnP API ÏÎÎÏÎÏÎÎ ÎÎ ÎÎÎÎÎ ÎÏÏÏÎÏÏÎ, ÎÏÎÏÎÎÎÏÎÎÏÎÎÏ "
+"ÎÎÎ ÎÏÎÎÎÎÏÎ."
+
+#: C/gupnp.page:16(page/p)
+msgid "The GUPnP framework consists of the following components/packages:"
+msgstr "Î ÏÎÎÎÎÏÏÏ GUPnP ÎÏÎÏÎÎÎÎÏÎÎ ÎÏÏ ÏÎ ÎÎÏÎÎÏÎÎ ÏÏÏÏÎÏÎÎÎ/ÏÎÎÎÏÎ:"
+
+#: C/gupnp.page:20(item/p)
+msgid ""
+"GSSDP: The low-level library implementing resource discovery and "
+"announcement on the network through SSDP protocol."
+msgstr ""
+"GSSDP: Î ÏÎÎÏÎÎÎÏÎ ÎÎÎÎÎÎÎÎÎÎÏ ÏÎÎÎÎÎÏ ÎÏÎÏÎÎÎÏ ÎÎÎÎÎÎÏÏÎÏ ÏÏÏÎÏ ÎÎÎ "
+"ÎÎÎÎÎÎÎÏÏÎÏ ÏÏÎ ÎÎÎÏÏÎ ÎÎÏÎ ÎÏÏ ÏÏÏÏÏÎÎÎÎÎ SSDP."
+
+#: C/gupnp.page:23(item/p)
+msgid ""
+"GUPnP: The core library that implements the UPnP specification: resource "
+"announcement and discovery, description, control, event notification, and "
+"presentation (GUPnP includes basic web server functionality through "
+"libsoup). GUPnP does not include helpers for construction or control of "
+"specific standardized resources (e.g. MediaServer); this is left for higher "
+"level libraries utilizing the GUPnP framework."
+msgstr ""
+"GUPnP: Î ÎÎÎÎÎÎÎÎÎÎ ÏÏÏÎÎÎ ÏÎÏ ÏÎÎÏÎÎÎÎ ÏÎÎ ÏÏÎÎÎÎÎÏÎÏÎ UPnP: ÎÎÎÎÎÎÎÏÏÎ "
+"ÏÏÏÎÏ ÎÎÎ ÎÎÎÎÎÎÏÏÎ, ÏÎÏÎÎÏÎÏÎ, ÎÎÎÎÏÎ, ÎÎÎÎÏÎÎÎÏÎ ÏÏÎÎÎÎÏÎÏ ÎÎÎ ÏÎÏÎÏÏÎÎÏÎ "
+"(ÏÎ GUPnP ÏÎÏÎÎÎÎÎÎÎÎÎ ÎÎÎ ÎÎÏÎÎÎ ÎÎÎÏÎÏÏÎÎÎÏÏÎÏÎ ÎÎÏÏÎÏÎÏÎÏÎ ÎÏÏÎÏ ÎÎÏÎ ÎÏÏ "
+"libsoup). ÎÎ GUPnP ÎÎÎ ÏÎÏÎÎÎÎÎÎÎÎÎ ÎÎÎÎÎÏÏ ÎÎÎ ÎÎÏÎÏÎÎÏÎ Î ÎÎÎÎÏÎ ÏÏÎ "
+"ÎÎÎÎÎÏÎ ÏÏÏÎÏÎÎÎÎÎÎÏÎ ÏÏÏÏÎ (Ï.Ï. MediaServer)Â ÎÏÏÏ ÎÏÎÎÎÎÎ ÎÎÎ ÎÎÎÎÎÎÎÎÎÎÏ "
+"ÏÏÎÎÏÏÎÏÎÏ ÎÏÎÏÎÎÎÏ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎÎ ÏÎÎÎÎÏÏ GUPnP."
+
+#: C/gupnp.page:29(item/p)
+msgid ""
+"GUPnP A/V: A small utility library that aims to ease the handling and "
+"implementation of UPnP A/V profiles."
+msgstr ""
+"GUPnP A/V: ÎÎÎÏÏ ÎÏÎÎÎÎÎÎ ÎÎÎÎÎÎÎÎÎÎÏ ÏÎÏ ÏÏÎÏÎÏÎÎ ÎÎ ÎÎÎÏÎÎÎÏÎÎÎ ÏÎ "
+"ÏÎÎÏÎÏÎÏ ÎÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎ ÏÏÎ ÎÎÏÎÏÎÎÏÎ UPnP ÎÏÎÏ/ÎÎÎÏÎÎ."
+
+#: C/gupnp.page:32(item/p)
+msgid ""
+"GUPnP DLNA: A small utility library that aims to ease the DLNA-related tasks "
+"such as media profile guessing, transcoding to a given profile, etc."
+msgstr ""
+"GUPnP DLNA: ÎÎÎ ÎÎÎÏÎ ÎÎÎÎÎÏÎÎÎ ÎÎÎÎÎÎÎÎÎÎ ÏÎÏ ÏÎÎÏÎÏÎÎ ÏÏÎ ÎÎÎÏÎÏÎÏÎÏÎ ÏÏÎ "
+"ÏÏÎÏÎÎÏÎ ÎÎ DLNA ÎÏÎÎÏÎÏÎ ÏÏÏÏ ÏÏÏÎÎÎÏÎ ÎÎÏÎÏÎÎÎÏ ÎÎÏÏÎ, ÎÎÏÎÏÏÎÏÎ "
+"ÎÏÎÎÎÎÏÎÎÎÏÎÏ ÏÎ ÎÎÎ ÎÎÎÎÎÎÎÎ ÎÎÏÎÏÎÎÎ, ÎÎÏ."
+
+#: C/gupnp.page:35(item/p)
+msgid ""
+"GUPnP IGD: A library to handle UPnP Internet Gateway Device port mappings."
+msgstr ""
+"GUPnP IGD: ÎÎÎ ÎÎÎÎÎÎÎÎÎÎ ÎÎÎ ÏÎÎÏÎÏÎÏ ÎÏÎÎÎÎÎÎÏÎÏÎ ÎÏÏÎÏ ÏÏÏÎÎÏÎÏ ÏÏÎÎÏ "
+"ÎÎÎÎÎÎÏÏÎÏ UPnP."
+
+#: C/gupnp.page:37(item/p)
+msgid "GUPnP Vala: Vala bindings for GUPnP libraries."
+msgstr "GUPnP Vala: ÎÎ ÏÏÎÎÎÏÎÎÏ Vala ÎÎÎ ÎÎÎÎÎÎÎÎÎÎÏ GUPnP."
+
+#: C/gupnp.page:39(item/p)
+msgid ""
+"GUPnP Tools: Free replacements of Intel UPnP tools, that use GUPnP. They "
+"provides the following client and server side tools which enable one to "
+"easily test and debug one's UPnP devices and control points:"
+msgstr ""
+"ÎÏÎÎÎÎÎÎ GUPnP: ÎÎÎÏÎÎÏÎÏ ÎÎÏÎÎÎÏÎÏÏÎÏÎÎÏ ÏÏÎ ÎÏÎÎÎÎÎÏÎ Intel UPnP, ÏÎÏ "
+"ÏÏÎÏÎÎÎÏÎÎÎÏÎ GUPnP. ÎÏÏÎ ÏÎÏÎÏÎÏÎ ÏÎ ÎÎÏÎÎÏÎÎ ÏÎÎÏÏÎÎÎ ÎÏÎÎÎÎÎÎ ÏÎÎÎÏÎ ÎÎÎ "
+"ÎÎÏÏÎÏÎÏÎÏÎ ÏÎÏ ÎÎÎÏÎÎÏÎÎÎÏÎ ÎÏÎÎÎÎ ÎÎÎÎÎÎ ÎÎÎ ÎÏÎÏÏÎÎÎÎÏÏÏÎ ÏÏÏÎÎÏÏÎ UPnP "
+"ÎÎÎ ÏÎÎÎÎÏÎ ÎÎÎÎÏÎÏ:"
+
+#: C/gupnp.page:45(item/p)
+msgid ""
+"Universal Control Point: a tool that enables one to discover UPnP devices "
+"and services, retrieve information about them, subscribe to events and "
+"invoke actions."
+msgstr ""
+"ÎÎÎÎÎÏ ÏÎÎÎÎÎ ÎÎÎÎÏÎÏ: ÎÎÎ ÎÏÎÎÎÎÎÎ ÏÎÏ ÎÎÎÏÎÎÏÎÎÎÎ ÏÎÎ ÎÎÎÎÎÎÏÏÎ ÏÏÏÎÎÏÏÎ "
+"UPnP ÎÎÎ ÏÏÎÏÎÏÎÏÎ, ÎÎÎÎÏÎÏÎ ÏÎÎÏÎÏÎÏÎÏÎ ÎÎÎ ÎÏÏÎÏ, ÎÎÎÏÎÏÎ ÏÏÎÎÎÎÏÏÎ ÎÎÎ "
+"ÎÎÎÏÎ ÎÎÎÏÎÎÎÏÎ."
+
+#: C/gupnp.page:48(item/p)
+msgid ""
+"Network Light: a virtual light bulb that allows control points to switch it "
+"on and off, change its dimming level and query its current status. It also "
+"provides a simple UI to control all the network lights available on the "
+"network."
+msgstr ""
+"ÎÏÏ ÎÎÎÏÏÎÏ: ÎÎÎÏ ÎÎÎÎÎÎÎÏÏ ÎÎÎÎÏÏ ÏÏÏÏÏ ÏÎÏ ÎÏÎÏÏÎÏÎÎ ÏÎ ÏÎÎÎÎÎ ÎÎÎÎÏÎÏ ÎÎ "
+"ÎÎÎÎÎÏÎ ÎÎÎ ÎÎ ÏÎÎÎÎÏÎ, ÎÎ ÎÎÎÎÎÎÏÎ ÏÎ ÎÏÎÏÎÎÎ ÎÎÏÎÏÏÏÎÏÎÏ ÎÎÎ ÎÎ ÏÏÏÎÏÎ ÏÎÎ "
+"ÏÏÎÏÎÏÏÎ ÏÎÏ ÎÎÏÎÏÏÎÏÎ. ÎÏÎÏÎÏ ÏÎÏÎÏÎÎ ÎÎÎ ÎÏÎÏ UI ÎÎÎ ÎÎ ÎÎÎÎÏÎÎ ÏÎÎ ÏÎ "
+"ÎÎÎÎÎÏÎÎÎ ÏÏÏÎ ÏÎÏ ÎÎÎÏÏÎÏ."
 
-#: C/gstreamer.page:12(p)
+#: C/gupnp.page:52(item/p)
 msgid ""
-"GStreamer is a powerful multimedia library for playing, creating, and "
-"manipulating sound, video, and other media. You can use GStreamer to provide "
-"sound and video playback, record input from multiple sources, and edit "
-"multimedia content. GStreamer supports encoding and decoding numerous "
-"formats by default, and support for additional formats can be added with "
-"plug-ins."
+"AV Control Point: a simple media player UI that enables one to discover and "
+"play multimedia contents available on a network. It is strictly a control "
+"point and therefore does not have any playback capabilities of it's own and "
+"relies on external UPnP MediaRenderer devices for actual playback."
 msgstr ""
-"ÎÎ GStreamer ÎÎÎÎÎ ÎÎÎ ÎÏÏÏÏÏÏÎÏÎ ÎÎÎÎÎÎÎÎÎÎ ÏÎÎÏÎÎÏÏÎ ÎÎÎ ÏÎÎ ÎÎÎÏÎÏÎÎÏÎÎ, "
-"ÎÎÎÎÎÏÏÎÎÎ ÎÎÎ ÎÏÎÎÎÏÎÎÏÎÎ ÎÏÎÏ, ÎÎÎÏÎÎ ÎÎÎ ÎÎÎÏÎ ÏÎÎÏÎÎÏÏÎ. ÎÏÎÏÎÎÏÎ ÎÎ "
-"ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÏÎ GStreamer ÎÎÎ ÎÎ ÏÎÏÎÏÎÏÎ ÎÎÎÏÎÏÎÎÏÎÎ ÎÏÎÏ ÎÎÎ ÎÎÎÏÎÎ, ÎÎ "
-"ÎÎÎÎÏÎ ÎÎÎÏÎÏÎ ÎÏÏ ÎÎÎÏÎÏÎÏ ÏÎÎÎÏ, ÎÎÎÏÏ ÎÎÎ ÎÎ ÎÏÎÎÎÏÎÎÎÎÏÏÎ ÎÏÏÎÎÎ "
-"ÏÎÎÏÎÎÏÏÎ. ÎÎ GStreamer ÎÏÏ ÎÏÎÎ ÏÎÏ ÏÎÏÎÏÎÎ ÎÏÎÎÎÎÏÎÎÎÏÎ ÎÎÎ "
-"ÎÏÎÎÏÎÎÎÎÏÎÎÎÏÎ ÎÎÎ ÎÎÎÏÎÏÎÏ ÎÎÏÏÎÏ, ÎÎÏ ÎÏÎÏÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÎÏÎ ÎÎÎ "
-"ÏÏÏÏÎÎÏÎ ÎÎÎ ÏÎÎ ÏÏÎÏÏÎÏÎÎÎ ÎÏÎÏÎÎÎÎ ÎÎÏÏÏÎ."
+"ÎÎÎÎÎÎ ÎÎÎÎÏÎÏ AV: ÎÎÎÏ ÎÏÎÏÏ ÎÎÎÏÎÏÎÎÏÎÏÏ ÎÎÏÏÎ UI ÏÎÏ ÎÎÎÏÎÎÏÎÎÎÎ ÏÎÎ "
+"ÎÎÎÎÎÎÏÏÎ ÎÎÎ ÎÎÏÎÎÎÏÎ ÏÏÎ ÎÎÎÎÎÏÎÎÏÎ ÏÎÏÎÎÏÎÎÎÎÏÎ ÏÎÎÏÎÎÏÏÎ ÏÎ ÎÎÎÏÏÎ. "
+"ÎÎÎÎÎ ÎÏÏÏÎÏÎ ÎÎÎ ÏÎÎÎÎÎ ÎÎÎÎÏÎÏ ÎÎÎ ÏÏÎÎÏÏÏ ÎÎÎ ÎÏÎÎ ÎÏÎÎÎÎÎÏÎÏÎ ÎÎÎÎÎ ÏÎÏ "
+"ÎÎÎÎÏÏÎÏÎ ÎÎÎÏÎÏÎÎÏÎÎÏ ÎÎÎ ÎÎÏÎÎÎÏÎÎ ÏÎ ÎÎÏÏÎÏÎÎÎÏ ÏÏÏÎÎÏÎÏ UPnP "
+"MediaRenderer ÎÎÎ ÎÎÎÏÎÎ ÎÎÎÏÎÏÎÎÏÎÎ."
 
-#: C/gstreamer.page:19(p)
+#: C/gupnp.page:57(item/p)
 msgid ""
-"GStreamer provides a flexible architecture wherein media is processed "
-"through a pipeline of elements. Each element may apply filters to the "
-"content, such as encoding or decoding, combining multiple sources, or "
-"transforming the multimedia content. This architecture allows for an "
-"arbitrary arrangement of elements, so that you can accomplish virtually any "
-"effect using GStreamer. Furthermore, GStreamer is designed to have low "
-"overhead, so it can be used in applications with high demands on latency."
+"Upload: a simple commandline utility that uploads files to known "
+"MediaServers. Use Universal Control Point for discovering the MediaServers."
 msgstr ""
-"ÎÎ GStreamer ÏÎÏÎÏÎÎ ÎÎÎ ÎÏÎÎÎÎÏÎ ÎÏÏÎÏÎÎÏÎÎÎÎÎ, ÏÏÎÏÏÎÎ ÎÎ ÏÎÎ ÎÏÎÎÎ Î "
-"ÎÏÎÎÎÏÎÎÏÎÎ ÏÏÎ ÏÎÎÏÎÎÏÏÎ ÎÎÎÎÏÎÎ ÎÎÏÏ ÎÎÎÏ ÎÎÎÏÎÏÎÏÏÎÏ ÏÏÎÎÏÎÎÏÎ. ÎÎÎÎ "
-"ÏÏÎÎÏÎÎÎ ÎÏÎÏÎÎ ÎÎ ÎÏÎÏÎÏÎÎÎ ÏÎÎÏÏÎ ÏÏÎ ÏÎÏÎÎÏÏÎÎÎÎ ÏÏÏÏ ÎÏÎÎÎÎÏÎÎÎÏÎ Î "
-"ÎÏÎÎÏÎÎÎÎÏÎÎÎÏÎ, ÏÏÎÎÏÎÏÎÏ ÏÎÎÎÎÏÎÏÎ ÏÎÎÏÎ, Î ÎÎÏÎÏÏÎÎÎÏÎÏÎÏ ÏÎÏ "
-"ÏÎÏÎÎÏÏÎÎÎÎÏ ÏÎÎÏÎÎÏÏÎ. Î ÎÏÏÎÏÎÎÏÎÎÎÎÎ ÎÏÏÎ ÎÏÎÏÏÎÏÎÎ ÏÎÎ ÏÏÏÎÎÎ ÎÎÎÏÎÎÎ "
-"ÏÏÎ ÏÏÎÎÏÎÎÏÎ, ÎÎÏÎ ÏÎÏ ÏÏÎÏÏÎÏÎÎ ÏÏÎ GStreamer ÏÎ ÎÏÎÎÏÏÏÎÏÎ ÎÎ ÏÎÏÎÎÎÎ "
-"ÏÏÎÎÏÎ Ï,ÏÎ ÎÏÎÏÎÎÎÏÎÎ ÎÏÎÏÎÎÏÎ ÎÎ ÏÎÎÏÎÏÏÎÎÏÎ. ÎÏÎÏÎÎÎÎ, ÏÎ GStreamer ÎÏÎÎ "
-"ÏÏÎÎÎÎÏÏÎÎ ÎÎ ÎÎÏÎÎÎÎ ÏÎ ÏÎÎÎÎÎ ÎÏÎÎÎÏÏÎÏÎ, ÎÎÎ ÎÏÎ ÎÏÎÏÎÎ ÎÎ "
-"ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÎÏÏ ÎÏÎÏÎÎÎÎÏ ÎÎ ÎÏÎÎÎÎÎÎÏ ÎÎÎÎÎÎÏ ÏÎ ÎÎÎÎÎÎÎÎÏÎ ÏÏÏÎÎ."
+"ÎÎÎÎÎÏÎÎ: ÎÎÎ ÎÏÎÏ ÎÎÎÎÎÎÎ ÎÏÎÎÎÎÏ ÎÎÏÎÎÏÎ ÏÎÏ ÎÎÎÎÎÎÎÎ ÎÏÏÎÎÎ ÏÎ ÎÎÏÏÏÎÏÏ "
+"MediaServers. ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ ÎÎÎÎÎÏ ÏÎÎÎÎÎ ÎÎÎÎÏÎÏ ÎÎÎ ÎÎ ÎÎÎÎÎÎÏÏÎÏÎ ÏÎÏÏ "
+"MediaServers."
 
-#: C/gstreamer.page:28(p)
+#: C/gupnp.page:66(page/p)
 msgid ""
-"While GStreamer provides a powerful API for manipulating multimedia, it also "
-"provides convenient routines for simple playback. GStreamer can "
-"automatically construct a pipeline to read and playback files in any "
-"supported format, allowing you to use sound and video in your application "
-"easily."
+"The GUPnP framework was born out of frustration with libupnp and its mess of "
+"threads. GUPnP is entirely single-threaded (though asynchronous), integrates "
+"with the GLib main loop, and provides the same set of features as libupnp "
+"while hiding most of the UPnP internals through an elegant object-oriented "
+"design."
 msgstr ""
-"ÎÎ GStreamer ÏÎÏÎÏÎÎ ÎÎÎ ÎÏÏÏÏÏÏÎÏÎ API ÎÎÎ ÏÎÎ ÎÏÎÎÎÏÎÎÏÎÎ ÏÎÎÏÎÎÏÏÎ, "
-"ÏÎÏÎÏÎÎ ÏÎÏÏ ÎÎÎ ÎÏÏÏÎÏÏÎÏ ÏÎÏÏÎÎÎÏ ÎÎÎ ÏÎÎ ÎÏÎÎ ÎÎÎÏÎÏÎÎÏÎÎ ÏÎÎÏÎÎÏÏÎ. ÎÎ "
-"GStreamer ÎÏÎÏÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎÎ ÎÏÏÏÎÎÏÎ ÎÎÎÏÎÏÎÏÏÎÎÏ ÎÎÎ ÏÎÎ ÎÎÎÎÎÏÏÎ ÎÎÎ "
-"ÎÎÎÏÎÏÎÎÏÎÎ ÎÏÏÎÎÏÎ ÏÏÎÏ ÎÎÏÏÎÏ ÏÎÏ ÏÏÎÏÏÎÏÎÎÎÎ, ÎÏÎÏÏÎÏÎÎÏÎÏ ÏÎÏ ÎÎ "
-"ÏÏÎÏÎÎÏÎÏÎ ÎÏÎÎÎÎ ÎÏÎ ÎÎÎ ÎÎÎÏÎÎ ÏÏÎÎ ÎÏÎÏÎÎÎÎ ÏÎÏ."
+"Î ÏÎÎÎÎÏÏÏ GUPnP ÎÎÎÎÎÎÎÎÎ ÎÏÏ ÏÎÎ ÎÏÎÎÎÎÏÎÏÏÎ ÎÎ ÏÎ libupnp ÎÎÎ ÏÎ ÎÏÎÏÎÎÎÎ "
+"ÏÎÏ ÎÎ ÏÎ ÎÎÎÎÏÎ. ÎÎ GUPnP ÎÎÎÎÎ ÎÎÏÏÎÎÎ ÎÎÎÎÏ ÎÎÎÎÏÎÏ (ÎÎ ÎÎÎ ÎÏÏÎÏÏÎÎÎ), "
+"ÎÎÏÏÎÎÏÏÎÎÏÎÎ ÎÎ ÏÎÎ ÎÏÏÎÎ ÎÏÏÏÎ GLib ÎÎÎ ÏÎÏÎÏÎÎ ÏÎ ÎÎÎÎ ÏÏÎÎÎÎ ÎÎÏÏÎÏÎÎÏÏÎ "
+"ÏÏÏÏ ÏÎ libupnp ÎÎÏ ÎÏÏÎÎÎ ÏÎ ÏÎÏÎÏÏÏÏÎÏÎ ÎÏÏÏÎÏÎÎÎ ÏÎÏ UPnP ÎÎÏÎ ÎÏÏ ÎÎÎÎ "
+"ÎÎÎÏÏ ÎÎÏÎÎÎÎÎÎÎÎÏÏÏÎÏÎ ÏÏÎÎÎÎÏÎÏ."
 
-#: C/gstreamer.page:34(p)
+#: C/gupnp.page:71(page/p)
 msgid ""
-"The GStreamer architecture allows plugins to add encoders, decoders, and all "
-"sorts of content filters. Third-party developers can provide GStreamer "
-"plugins which will be automatically available to other applications using "
-"GStreamer. Plugins can provide support for other multimedia formats or "
-"provide additional functionality and effects."
+"GUPnP is free software. All libraries are released under the GNU LGPL, while "
+"GUPnP Tools are licensed under GNU GPL."
 msgstr ""
-"Î ÎÏÏÎÏÎÎÏÎÎÎÎÎ ÏÎÏ GStreamer ÎÏÎÏÏÎÏÎÎ ÏÎ ÏÏÎÏÎ ÏÏÎÏÎÎÏÏÎ ÎÎÎ ÏÎÎ ÏÏÎÏÎÎÎÎ "
-"ÎÏÎÎÎÎÏÎÎÎÏÏÎ, ÎÏÎÎÏÎÎÎÎÏÎÎÎÏÏÎ ÎÎÎ ÎÎÎÏÏÏÏÎ ÏÎÎÏÏÏÎ ÏÎÏÎÎÏÎÎÎÎÎÏ. ÎÎ "
-"ÎÎÏÏÎÏÎÎÎÎ ÏÏÎÎÏÎÎÎÎÏÎÏÏÎÏ ÎÏÎÏÎÏÎ ÎÎ ÏÎÏÎÏÎÏÎ ÏÏÏÏÎÎÏÎ ÎÎÎ ÏÎ GStreamer, ÏÎ "
-"ÎÏÎÎÎ ÎÎÎÎÏÏÎÎÏÎÎ ÎÏÏÎÎÎÏÏÏ ÎÎÎÎÎÏÎÎÎ ÏÎ ÏÎÎÏ ÏÎÏ ÎÏÎÏÎÎÎÎÏ ÏÎÏ "
-"ÏÏÎÏÎÎÎÏÎÎÎÏÎ ÏÎ GStreamer. ÎÎ ÏÏÏÏÎÎÏÎ ÎÏÎÏÎÏÎ ÎÎ ÎÏÎÏÎÏÎ ÏÎÎ ÏÏÎÏÏÎÏÎÎÎ "
-"ÎÎÏÎ ÎÎÏÏÏÎ ÏÎÎÏÎÎÏÏÎ, Î ÎÎÎ ÎÏÎ ÎÎÎ ÎÎÎÏÎÏÏÎÎÎÏ."
+"ÎÎ GUPnP ÎÎÎÎÎ ÎÎÎÏÎÎÏÎ ÎÎÎÎÏÎÎÎÏ. ÎÎÎÏ ÎÎ ÎÎÎÎÎÎÎÎÎÎÏ ÎÎÎÎÎÎÎÏÎÎ ÎÎ ÏÎÎ GNU "
+"LGPL, ÎÎÏ ÏÎ ÎÏÎÎÎÎÎÎ GUPnP ÎÎÎÎÎÎÎÏÎÏÎÏÎÎ ÎÎ GNU GPL."
 
-#: C/gstreamer.page:41(p)
+#: C/gupnp.page:74(page/p)
 msgid ""
-"You should use GStreamer whenever you need to read or play multimedia "
-"content in your application, or if your application needs to manipulate "
-"sound or video. Using GStreamer makes your application development easy, and "
-"it provides you well-tested elements for many of your needs."
+"You should use GUPnP whenever you need your code to communicate with any "
+"UPnP or DLNA devices. Examples of such devices includes Sony Playstation 3 "
+"and Bravia model TVs, Samsung TVs and phones, Microsoft XBox and all modern "
+"router etc. The list of such devices is huge and its increasing."
 msgstr ""
-"ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ ÏÎ GStreamer ÎÏÎÏÎÎÎÏÎÏÎ ÏÏÎÎÎÏÏÎÎÏÎ ÎÎ ÎÎÎÎÎÏÎÏÎ Î ÎÎ "
-"ÎÎÎÏÎÏÎÎÎÏÎ ÏÎÎÏÎÎÏÎ, Î ÎÎ Î ÎÏÎÏÎÎÎÎ ÏÎÏ ÎÎÎÎÎ ÎÏÎÎÎÏÎÎÏÎÎ ÎÏÎÏ Î ÎÎÎÏÎÎ. Î "
-"ÏÏÎÏÎ ÏÎÏ GStreamer ÎÎÎÏÎÎÎÏÎÎÎ ÏÎÎ ÎÎÎÏÏÏÎÎ ÏÎÏ ÎÏÎÏÎÎÎÎÏ ÏÎÏ ÎÎÎ ÏÎÏ "
-"ÏÎÏÎÏÎÎ ÎÎÎÎÎÎÏÎÎÎÎÏ ÎÏÏÎÎÏ ÎÎÎ ÏÎÎ ÎÎÎÏÏÎ ÏÏÎ ÎÎÎÎÎÏÎ ÏÎÏ."
+"ÎÎ ÏÏÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ GUPnP ÏÏÎÏÎ ÏÏÎÎÎÎÎÏÏÎ Î ÎÏÎÎÎÎÏ ÏÎÏ ÎÎ "
+"ÎÏÎÎÎÎÎÏÎÎÏÎÎ ÎÎ ÎÏÎÎÎÏÎÎÏÎÏÎ ÏÏÏÎÎÏÎÏ UPnP Î DLNA. ÎÎÏÎÎÎÎÎÎÎÏÎ ÏÎÏÎÎÏÎ "
+"ÏÏÏÎÎÏÏÎ ÏÎÏÎÎÎÎÎÎÎÎÏÎ ÏÎ Sony Playstation 3 ÎÎÎ ÏÎ ÎÎÎÏÎÎÎ ÏÎÎÎÎÏÎÏÎÏÎ "
+"Bravia, ÏÎÎÎÎÏÎÏÎÏÎ ÎÎÎ ÏÎÎÎÏÏÎÏÎ Samsung, XBox ÏÎÏ Microsoft ÎÎÎ ÏÎÎÏÏ ÏÎÏÏ "
+"ÏÏÎÏÏÎÎÎÏÏ ÎÏÎÎÎÎÎÎÎÏÎÏ ÎÎÏ. Î ÎÎÏÏÎ ÏÎÏÎÎÏÎ ÏÏÏÎÎÏÏÎ ÎÎÎÎÎ ÏÎÎÏÏÎÎ ÎÎÎ "
+"ÎÏÎÎÎÏÎÎÎÎ."
 
-#: C/gstreamer.page:48(link)
-msgid "The GStreamer Application Development Manual"
-msgstr "ÎÎÏÎÎÏÎÎÎÎ ÎÎÎÏÏÏÎÎÏ ÏÎÏ ÎÏÎÏÎÎÎÎÏ GStreamer"
+#: C/gupnp.page:77(page/p)
+msgid ""
+"Apart from dealing with existing UPnP devices, GUPnP can very effectively be "
+"used to easily create custom home network solutions where devices/services "
+"are able to discover and interact with each other without any configuration "
+"from user."
+msgstr ""
+"ÎÎÏÎ ÎÏÏ ÏÎ ÎÎÎÎÎÎÎ ÎÎ ÏÏÎÏÏÎÏÏÎÏ ÏÏÏÎÎÏÎÏ UPnP, ÏÎ GUPnP ÎÏÎÏÎÎ ÎÎ "
+"ÏÏÎÏÎÎÎÏÎÎÎÎÎÎ ÏÎÎÏ ÎÏÎÏÎÎÎÏÎÎÏÎÎÎ ÎÎÎ ÎÏÎÎÎÎ ÎÎÎÎÎÏÏÎÎÎ ÏÏÎÏÎÏÎÎÏÎÎÎÏÎ "
+"ÎÏÏÎÏÎ ÎÎÎÎÎÎÎÏ ÎÎÎÏÏÎÏ ÏÏÎÏ ÎÎ ÏÏÏÎÎÏÎÏ/ÏÏÎÏÎÏÎÎÏ ÎÏÎÏÎÏÎ ÎÎ ÎÎÎÎÎÎÏÏÎÏÎ "
+"ÎÎÎ ÎÎ ÎÎÎÎÎÎÏÎÎÏÎÏÎÏÎ ÎÎÏÎÎÏ ÏÎÏÏ ÏÏÏÎÏ ÎÏÎÎÎÎÎÏÎÏÎ ÏÏÎÎÎÏÎ ÎÏÏ ÏÎÎ ÏÏÎÏÏÎ."
 
-#: C/gstreamer.page:49(link)
-msgid "The GStreamer 0.10 Core Reference Manual"
-msgstr "ÎÎÏÎÎÏÎÎÎÎ ÎÎÎÏÎÏÎÏ ÏÏÏÎÎÎ ÏÎÏ GStreamer 0.10"
+#: C/gupnp.page:81(page/p)
+msgid ""
+"For comprehensive information on GUPnP, please visit the <link href=\"http://";
+"www.gupnp.org\">project home page</link>."
+msgstr ""
+"ÎÎÎ ÏÎÏÎÏÏÏÏÎÏÎÏ ÏÎÎÏÎÏÎÏÎÎÏ ÏÏÎÏÎÎÎ ÎÎ ÏÎ GUPnP, ÎÏÎÏÎÎÏÏÎÎÏÎ ÏÎÎ <link "
+"href=\"http://www.gupnp.org\";>ÎÏÏÏÏÎÏÎ ÏÎÏ</link>."
 
-#: C/gstreamer.page:50(link)
-msgid "The GStreamer documentation page"
-msgstr "ÎÎÎÎÎÎ ÏÎÎÎÎÏÎÏÏÎÏ ÏÎÏ GStreamer"
+#: C/help.page:6(info/desc)
+msgid "Topic-oriented help system"
+msgstr "ÎÎÎÎÏÎÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎÎÎ ÏÏÏÏÎÎÎ ÎÎÎÎÎÎÎÏ"
 
-#: C/gstreamer.page:51(link)
-msgid "The GStreamer web site"
-msgstr "ÎÏÏÎÏÎÎÎÎÎ ÏÎÏ GStreamer"
+#: C/help.page:10(page/title)
+msgid "Help"
+msgstr "ÎÎÎÎÎÎÎ"
 
-#: C/gio.page:6(desc)
-msgid "Asynchronous file and URI handling with access to file and volume info"
+#: C/help.page:12(page/p)
+msgid ""
+"Users sometimes need a little help, even with the best-designed "
+"applications. GNOME provides a built-in topic-oriented help system using the "
+"<link href=\"http://projectmallard.org/\";>Mallard</link> markup language. "
+"Pioneered by GNOME developers, Mallard is an agile and dynamic language that "
+"helps you write and revise quickly. Its topic-oriented design means your "
+"users can find the answers they need without sifting through a manual. With "
+"its unique linking and organization system, Mallard is the only language "
+"designed to handle plugin and vendor help in one coherent document."
 msgstr ""
-"ÎÏÏÎÏÏÎÎÎ ÎÏÏÎÎÎ ÎÎÎ ÏÎÎÏÎÏÎÏÏ URI ÎÎ ÏÏÏÏÎÎÏÎ ÏÎ ÎÏÏÎÎÎ ÎÎÎ ÏÎÎÏÎÏÎÏÎÎÏ "
-"ÎÎÏÎÏÎÏ"
-
-#: C/gio.page:11(title)
-msgid "GIO Files"
-msgstr "ÎÏÏÎÎÎ GIO"
+"ÎÎ ÏÏÎÏÏÎÏ ÎÎÏÎÎÎÏ ÏÎÏÎÏ ÏÏÎÎÎÎÎÎÏÎÎ ÎÎÎ ÎÎÎÏÎ ÎÎÎÎÎÎÎ, ÎÎÏÎÎ ÎÎÎ ÎÎ ÏÎÏ "
+"ÎÏÎÏÏÎ ÏÏÎÎÎÎÏÎÎÎÎÏ ÎÏÎÏÎÎÎÎÏ. ÎÎ GNOME ÏÎÏÎÏÎÎ ÎÎÎ ÎÎÏÏÎÎÏÏÎÎÎÎ ÏÏÏÏÎÎÎ "
+"ÎÎÎÎÎÎÎÏ ÎÎÎÎÏÎÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÎÎÎ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ ÎÎÏÏÏÎ ÎÏÎÏÎÎÎÎÏÎÏ "
+"<link href=\"http://projectmallard.org/\";>Mallard</link>. ÎÎÎÎÎÎÎÎÎ ÎÏÏ "
+"ÏÏÎÎÏÎÎÎÎÏÎÏÏÎÏ ÏÎÏ GNOME, ÏÎ Mallard ÎÎÎÎÎ ÎÎÎ ÎÎÏÏÎÎ ÎÎÎ ÎÏÎÎÎÎÎÎ ÎÎÏÏÏÎ "
+"ÏÎÏ ÏÎÏ ÎÎÎÎÎ ÎÎ ÎÏÎÏÎÏÎ ÎÎÎ ÎÎ ÎÎÎÏÎÏÏÎÏÎ ÎÏÎÎÎÏÎ. Î ÎÎÎÎÏÎÎÎ "
+"ÏÏÎÏÎÎÎÏÎÎÎÏÎÎÎÎÏ ÏÏÎÎÎÎÏÎÏÏ ÏÎÏ ÏÎÎÎÎÎÎÎ ÏÏÎ ÎÎ ÏÏÎÏÏÎÏ ÏÎÏ ÎÏÎÏÎÏÎ ÎÎ "
+"ÎÏÎÏÎ ÏÎÏ ÎÏÎÎÏÎÏÎÎÏ ÏÎÏ ÏÏÎÎÎÎÎÎÏÎÎ ÏÏÏÎÏ ÎÎ ÎÎÎÏÏÎÎÎÏÎ ÏÎ ÎÎÎ ÎÎÏÎÎÏÎÎÎÎ. "
+"ÎÎ ÏÎ ÎÎÎÎÎÎÎÏ ÏÎÏ ÏÏÏÏÎÎÎ ÏÏÎÎÎÏÎÏ ÎÎÎ ÎÏÎÎÎÏÏÎÏ, ÏÎ Mallard ÎÎÎÎÎ Î ÎÏÎÎ "
+"ÎÎÏÏÏÎ ÏÎÏ ÏÏÎÎÎÎÏÏÎÎÎ ÎÎ ÏÎÎÏÎÎÎÏÎÎ ÏÏÏÏÎÎÏÎ ÎÎÎ ÎÎÎÎÎÎÎ ÏÏÎÎÏÎ ÏÎ ÎÎÎ "
+"ÏÏÎÎÎÏÎÎÏ ÎÎÎÏÎÏÎ."
 
-#: C/gio.page:13(p)
+#: C/help.page:22(page/p)
 msgid ""
-"GIO provides APIs for asynchronously reading and writing files and other "
-"streams. Files are referenced by URIs, and local backends can provide access "
-"to more than just local files. When running under the GNOME desktop, GIO "
-"uses GVfs to allow access to files over SFTP, FTP, WebDAV, SMB, and other "
-"popular protocols. This transparent network file access is free to all "
-"applications using GIO."
+"When you do need linear manuals, GNOME also supports the industry-standard "
+"<link href=\"http://docbook.org/\";>DocBook</link> format."
 msgstr ""
-"ÎÎ GIO ÏÎÏÎÏÎÎ APIs ÎÎÎ ÎÏÏÎÏÏÎÎÎ ÎÎÎÎÎÏÏÎ ÎÎÎ ÎÎÎÏÎÏÎ ÎÏÏÎÎÏÎ ÎÎÎ ÎÎÎÏÎ "
-"ÏÎÏÎ. ÎÎ ÎÏÏÎÎÎ ÎÎÎÏÎÏÎÎÏÎÎ ÎÏÏ URIs ÎÎÎ ÏÎÏÎÎÎÏ ÏÏÎÏÏÎÏÎÎÎÎÏ ÎÏÎÏÎÏÎ ÎÎ "
-"ÎÏÏÎÏÎ ÏÏÏÏÎÎÏÎ ÏÎ ÏÎÏÎÏÏÏÏÎÏÎ ÎÏÏ ÎÏÎÎ ÏÎÏÎÎÎ ÎÏÏÎÎÎ. ÎÏÎÎ ÎÎÏÎÎÎÏÎÏÎÎ ÏÏÎÎ "
-"ÎÏÎÏÎÎÎÎÎ ÎÏÎÎÏÎÎÏ GNOME, ÏÎ GIO ÏÏÎÏÎÎÎÏÎÎÎÎ GVfs ÎÎÎ ÎÎ ÎÏÎÏÏÎÏÎÎ ÏÎÎ "
-"ÏÏÏÏÎÎÏÎ ÏÎ ÎÏÏÎÎÎ ÏÎÎÏ ÏÎ SFTP, FTP, WebDAV, SMB ÎÎÎ ÎÎÎÎ ÎÎÎÎÏÎÎÎ "
-"ÏÏÏÏÏÎÎÎÎÎ. ÎÏÏÎ Î ÎÎÎÏÎÎÎÏ ÏÏÏÏÎÎÏÎ ÎÏÏÎÎÎÏ ÎÎÎÏÏÎÏ ÎÎÎÎÎ ÎÎÎÏÎÎÏÎ ÏÎ ÏÎÎÏ "
-"ÏÎÏ ÎÏÎÏÎÎÎÎÏ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ GIO."
+"ÎÏÎÎ ÏÏÎÎÎÎÏÏÎÏÏÎ ÎÎÏÎÎÏÎÎÎÎ, ÏÎ GNOME ÎÏÎÏÎÏ ÏÏÎÏÏÎÏÎÎÎÎ ÏÎ ÎÎÎÎÎÏÎÎÎÎÏ "
+"ÎÎÏÏÎ ÏÏÎÏÏÏÎÏ <link href=\"http://docbook.org/\";>DocBook</link>."
 
-#: C/gio.page:20(p)
+#: C/help.page:27(item/p)
 msgid ""
-"The GIO file APIs were designed to be used in event-driven graphical "
-"interfaces. The non-blocking, asynchronous design means your user interface "
-"doesn't hang while waiting for a file. There are also synchronous versions "
-"of the APIs available, which are sometimes more convenient for worker "
-"threads or processes."
+"<link href=\"http://projectmallard.org/about/learn/tenminutes.html\";>Ten "
+"Minute Mallard Tour</link>"
 msgstr ""
-"ÎÎ APIs ÎÏÏÎÎÏÎ GIO ÏÏÎÎÎÎÏÏÎÎÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÎÏÎ ÏÎ ÎÏÎÏÎÎÎÏ ÎÎÎÏÎÏÎÏ "
-"ÎÎÎÎÎÏÎÎÎÎÏ ÎÏÏ ÏÏÎÎÎÎÏÎ. Î ÎÎ ÏÏÎÎÎÎÎÎ, ÎÏÏÎÏÏÎÎÎ ÏÏÎÎÎÎÏÎ ÏÎÎÎÎÎÎÎ ÏÏÎ Î "
-"ÎÎÎÏÎÏÎ ÏÎÏ ÏÏÎÏÏÎ ÏÎÏ ÎÎÎ ÎÏÎÎÎ ÎÎÏ ÏÎÏÎÎÎÎÎÎ ÎÎÎ ÎÏÏÎÎÎ. ÎÏÎÏÏÎÏÎ ÎÏÎÏÎÏ "
-"ÏÏÎÏÏÎÎÎÏ ÎÎÎÏÏÎÎÏ ÏÏÎ ÎÎÎÎÎÏÎÎÏÎ APIs, ÏÎÏ ÎÎÎÎÎ ÎÎÏÎÎÎÏ ÏÎÏÎÏ ÏÎÎ ÎÎÎÎÎÎÏ "
-"ÎÎÎ ÎÎÎÎÏÎ ÎÏÎÎÏÎÏÎ Î ÎÏÎÎÎÏÎÎÏÎÎÏ."
+"<link href=\"http://projectmallard.org/about/learn/tenminutes.html";
+"\">ÎÎÎÎÎÎÏÏÎ ÏÎÏÎÎÎÎÏÎ ÏÏÎ Mallard</link>"
 
-#: C/gio.page:26(p)
-msgid ""
-"GIO also provides routines for managing drives and volumes, querying file "
-"types and icons, and finding applications to open files."
+#: C/help.page:28(item/p)
+msgid "<link href=\"http://projectmallard.org/\";>The Mallard web site</link>"
 msgstr ""
-"ÎÎ GIO ÎÏÎÏÎÏ ÏÎÏÎÏÎÎ ÏÎÏÏÎÎÎÏ ÎÎÎ ÎÎÎÏÎÎÏÎÏÎ ÎÎÎÎÏÎ ÎÎÎ ÎÎÏÎÏÎÏÎ, ÎÏÏÏÎÏÎÏÎ "
-"ÏÏÏÏÎ ÎÏÏÎÎÎÏ ÎÎÎ ÎÎÎÎÎÎÎÎÏÎ ÎÎÎ ÎÏÏÎÏÎ ÎÏÎÏÎÎÎÏÎ ÎÎÎ ÎÎÎÎÎÎÎ ÎÏÏÎÎÏÎ."
+"<link href=\"http://projectmallard.org/\";>Î ÎÏÏÎÏÎÎÎÎÎ ÏÎÏ Mallard</link>"
 
-#: C/gio.page:30(link) C/gio-network.page:20(link) C/d-bus.page:46(link)
-msgid "GIO Reference Manual"
-msgstr "ÎÎÏÎÎÏÎÎÎÎ ÎÎÎÏÎÏÎÏ ÏÎÏ GIO"
+#: C/help.page:29(item/p)
+msgid "<link href=\"http://docbook.org/\";>The DocBook web site</link>"
+msgstr "<link href=\"http://docbook.org/\";>Î ÎÏÏÎÏÎÎÎÎÎ ÏÎÏ DocBook</link>"
 
-#: C/gio-network.page:6(desc)
-msgid "Powerful networking API built on the GIO stream classes"
-msgstr "ÎÏÏÏÏÎÏ ÎÎÏÎÏÎÎÏÎÏ API ÎÎÎÏÏÎÏ ÏÏÎÏ ÎÎÎÏÎÎÏ ÏÎÎÏ GIO"
+#: C/keyring.page:6(info/desc)
+msgid "Secure storage for passwords and other data"
+msgstr "ÎÏÏÎÎÎÏ ÎÏÎÎÎÎÎÏÏÎ ÎÎÎ ÎÏÎÎÎÎÏÏ ÎÎÎ ÎÎÎÎ ÎÎÎÎÎÎÎÎ"
 
-#: C/gio-network.page:10(title)
-msgid "GIO Networking"
-msgstr "ÎÎÎÏÏÏÏÎ GIO"
+#: C/keyring.page:10(page/title)
+msgid "Keyring"
+msgstr "ÎÎÎÎÎÎÎÎÎÎ"
 
-#: C/gio-network.page:12(p)
+#: C/keyring.page:12(page/p)
 msgid ""
-"Built on top of the stream APIs used for files, GIO provides high-level "
-"networking APIs to communicate over TCP/IP and UNIX domain sockets. You can "
-"use the GIO networking APIs to connect to a server, listen for events, and "
-"read resources. The asynchronous API designs means your application doesn't "
-"block waiting for a response."
+"GNOME provides a modern and secure keyring manager to store users' passwords "
+"and other sensitive data. Applications can use the keyring manager library "
+"to store and access passwords, and users can manage their passwords using "
+"GNOME's <app>Seahorse</app> application."
 msgstr ""
-"ÎÎÏÎÏÎÎÏÎ ÏÏÎÎ ÎÎÏÏÏÎ ÏÎÏ ÏÎÎÏ APIs ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÎÎÎ ÎÏÏÎÎÎ, ÏÎ GIO "
-"ÏÎÏÎÏÎÎ APIs ÎÎÎÏÏÎÏ ÏÏÎÎÎÏ ÎÏÎÏÎÎÎÏ ÎÎÎ ÎÏÎÎÎÎÎÏÎÎÎ ÏÎÎÏ ÏÎ TCP/IP ÎÎÎ "
-"ÏÏÎÎÎÏÎÏ ÏÎÎÎÎ UNIX. ÎÏÎÏÎÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÏÎ APIs ÎÎÎÏÏÎÏ GIO ÎÎÎ "
-"ÏÏÎÎÎÏÎ ÎÎ ÎÎÎÎ ÎÎÏÏÎÏÎÏÎÏÎ, ÎÎ ÎÎÎÏÏÎÏÎ ÏÎ ÏÏÎÎÎÎÏÎ ÎÎÎ ÎÎ ÎÎÎÎÎÏÎÏÎ ÏÎÏÏ "
-"ÏÏÏÎÏÏ. ÎÎ ÎÏÏÎÏÏÎÎÎ ÏÏÎÎÎÎ API ÏÎÎÎÎÎÎÏÎ ÏÏÎ Î ÎÏÎÏÎÎÎÎ ÏÎÏ ÎÎÎ ÎÎÏÎÎÎÎÎÏÎÎ "
-"ÏÎÏÎÎÎÎÎÎÏÎÏ ÎÎÎ ÎÎÎ ÎÏÎÎÏÎÏÎ."
+"ÎÎ GNOME ÏÎÏÎÏÎÎ ÎÎÎ ÏÏÎÏÏÎÎÎ ÎÎÎ ÎÏÏÎÎÎ ÎÎÎÏÎÎÏÎÏÏÎ ÎÎÎÎÎÎÎÎÎÏÎ ÎÎÎ ÏÎÎ "
+"ÎÏÎÎÎÎÎÏÏÎ ÏÏÎ ÏÏÎÎÎÎÎÏÎÎÏÎ ÏÏÎ ÏÏÎÏÏÏÎ, ÎÎÎÏÏ ÎÎÎ ÎÎÎÏÎ ÎÏÎÎÏÎÎÏÏÎ "
+"ÎÎÎÎÎÎÎÏÎ. ÎÎ ÎÏÎÏÎÎÎÎÏ ÎÏÎÏÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎ ÏÎ ÎÎÎÎÎÎÎÎÎÎ ÏÎÏ "
+"ÎÎÎÏÎÎÏÎÏÏÎ ÎÎÎÎÎÎÎÎÎÏÎ ÎÎÎ ÏÎÎ ÎÏÎÎÎÎÎÏÏÎ ÎÎÎ ÎÎÎÎÏÎÏÎ ÏÏÎÎÎÎÎÏÎÎÏÎ, ÎÎÏ ÎÎ "
+"ÏÏÎÏÏÎÏ ÎÏÎÏÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎ ÏÎÎ ÎÏÎÏÎÎÎÎ <app>Seahorse</app> ÏÎÏ GNOME "
+"ÎÎÎ ÎÎ ÎÎÎÏÎÎÏÎÎÎÎÏÎÎ ÏÎ ÏÏÎÎÎÎÎÏÎÎÎ ÏÎÏÏ."
 
-#: C/gio-network.page:21(link)
-msgid "Lowlevel network support"
-msgstr "ÎÎÎÎÎÎÏ ÎÏÎÏÎÎÎÏ ÏÏÎÏÏÎÏÎÎÎ ÎÎÎÏÏÎÏ"
+#: C/keyring.page:18(page/p)
+msgid ""
+"The keyring manager provides any number of keyrings, where each keyring can "
+"contain any number of keyring items. Items in a keyring store some piece of "
+"data, often a password. Each keyring is locked individually, and users must "
+"provide a password to unlock the keyring. Once a keyring has been unlocked, "
+"the user has access to all of the items in that keyring."
+msgstr ""
+"Î ÎÎÎÏÎÎÏÎÏÏÎÏ ÎÎÎÎÎÎÎÎÎÏÎ ÏÎÏ ÎÏÎÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎÎÏÎ ÏÏÎÏ ÎÎÎÎÎÎÎÎÎÎÏ "
+"ÎÏÎÎÏÎÎÎÏÎ, ÎÎÎÎÎÎÎ ÎÏÏ ÏÎÏ ÎÏÎÎÎÏ ÎÏÎÏÎÎ ÎÎ ÏÎÏÎÎÏÎÎ ÏÏÎ ÏÏÎÎÏÎÎÎ "
+"ÎÏÎÎÏÎÎÎÏÎ. ÎÎ ÏÏÎÎÏÎÎÎ ÏÏÎ ÎÎÎÎÎÎÎÎÎÏÎ ÏÎÏÎÎÏÎÏÎ ÎÎÎÎÎÎÎÎ, ÏÏÎÎÎÏÏ "
+"ÏÏÎÎÎÎÎÏÎÎÎ. ÎÎÎÎ ÎÎÎÎÎÎÎÎÎÎ ÎÎÎÎÎÏÎÎÏÎÎ ÎÎÏÏÏÎÏÏÎ, ÎÎÎ ÎÎÎÎÎÎÎÏÎÎÏÎÎ ÎÎ ÏÎÎ "
+"ÎÎÏÎÎÏÎÎ ÏÏÎÎÎÎÎÏÎÎÎÏ ÎÏÏ ÏÎ ÏÏÎÏÏÎ. ÎÏÎÎ ÎÎÎÎÎÎÎÏÎÎÎ ÎÎÎ ÎÎÎÎÎÎÎÎÎÎ, Î "
+"ÏÏÎÏÏÎÏ ÎÏÎÎÏÎ ÏÏÏÏÎÎÏÎ ÏÎ ÏÎÎ ÏÎ ÏÏÎÎÏÎÎÎ ÏÎÏ."
 
-#: C/gio-network.page:22(link)
-msgid "Highlevel network functionality"
-msgstr "ÎÏÎÎÎÏ ÎÏÎÏÎÎÎÏ ÎÎÎÏÎÏÏÎÎÎÏÏÎÏÎ ÎÎÎÏÏÎÏ"
+#: C/keyring.page:25(page/p)
+msgid ""
+"The keyring manager provides access control lists for each keyring item, "
+"controlling which applications are allowed access to that item. If an "
+"unknown application attempts to access a keyring item, the keyring manager "
+"will prompt the user to allow or deny that application access. This helps "
+"prevent malicious or poorly-written programs from accessing the user's "
+"sensitive data."
+msgstr ""
+"Î ÎÎÎÏÎÎÏÎÏÏÎÏ ÎÎÎÎÎÎÎÎÎÏÎ ÏÎÏÎÎÎÎ ÎÎÏÏÎÏ ÎÎÎÎÏÎÏ ÏÏÏÏÎÎÏÎÏ ÎÎÎ ÎÎÎÎ "
+"ÏÏÎÎÏÎÎÎ ÎÎÎÏ ÎÎÎÎÎÎÎÎÎÎÏ, ÎÏÎÏÏÎÏÎÎÏÎÏ ÏÎÏ ÎÎ ÎÎÎÎÏÎÏÎ ÏÎÎÎÏ ÎÏÎÏÎÎÎÎÏ ÎÎ "
+"ÎÏÎÏÎ ÏÏÏÏÎÎÏÎ ÏÎ ÎÏÏÏ ÏÎ ÏÏÎÎÏÎÎÎ. ÎÎ ÎÎÎ ÎÎÎÏÏÏÎ ÎÏÎÏÎÎÎÎ ÏÏÎÏÏÎÎÎÏÎÎ ÎÎ "
+"ÎÏÎÎÏÎÏÎÎ ÏÏÏÏÎÎÏÎ ÏÎ ÎÎÎ ÏÏÎÎÏÎÎÎ ÎÎÎÎÎÎÎÎÎÎÏ, Î ÎÎÎÏÎÎÏÎÏÏÎÏ ÎÎÎÎÎÎÎÎÎÏÎ "
+"ÎÎ ÎÎÏÎÏÎÎ ÎÏÏ ÏÎ ÏÏÎÏÏÎ ÎÎ ÎÏÎÏÏÎÏÎÎ Î ÎÎ ÎÏÎÎÎÎÎ ÏÎÎ ÏÏÏÏÎÎÏÎ. ÎÎÏ' ÎÏÏÏÎ "
+"ÏÎÎ ÏÏÏÏÎ, ÏÏÏÏÎ ÎÎÎÏÎÎÏÎÎÏ Î ÎÎÎÎÎÏÎÎÎÎÎÎÏ ÎÏÎÏÎÎÎÎÏ ÎÎÎ ÎÏÎÏÎÏÎ ÎÎ "
+"ÎÏÎÎÏÎÏÎÏÎ ÏÏÏÏÎÎÏÎ ÏÏÎ ÎÏÎÎÏÎÎÏÎ ÎÎÎÎÎÎÎÎ ÏÎÏ ÏÏÎÏÏÎ."
 
-#: C/gdk.page:6(desc)
-msgid "Underlying windowing and event handling"
-msgstr "ÎÏÎÎÎÎÎÎÎÎ ÏÎÏÎÎÏÏÎÏÎÎÎÏÎ ÎÎÎ ÏÎÎÏÎÏÎÏÏ ÏÏÎÎÎÎÏÎÏ"
+#: C/keyring.page:32(page/p)
+msgid ""
+"Keyring data stored on the file system is encrypted with the AES block "
+"cipher, and SHA1 is used for hashes of the item's attributes. Using the "
+"attributes hash, the keyring manager is able to look up items requested by "
+"applications without ever unlocking the keyring. The keyring has to be "
+"unlocked when a matching item is found and accessed."
+msgstr ""
+"ÎÎ ÎÎÎÎÎÎÎÎ ÏÏÎ ÎÎÎÎÎÎÎÎÎÏÎ ÎÏÎÎÎÎÎÏÎÎÏÎÎ ÏÏÎ ÏÏÏÏÎÎÎ ÎÏÏÎÎÏÎ "
+"ÎÏÏÏÏÎÎÏÎÏÎÎÎÎÎ ÎÎ ÏÎÎ ÎÎÎÏÏÎÎÎÎ ÎÏÏÏÏÎÎÏÎÏÎÏÎÏ ÎÏÎÎÎ AES, ÎÎÏ Î SHA1 "
+"ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÎÎÎ ÏÎ hash ÏÏÎ ÎÎÏÏÎÏÎÎÏÏÎ ÏÏÎ ÏÏÎÎÏÎÎÏÎ. ÎÏÎÏÎÎÎÏÎÎÏÎÏÎÏ "
+"ÏÎ hash ÏÏÎ ÎÎÏÏÎÏÎÎÏÏÎ, Î ÎÎÎÏÎÎÏÎÏÏÎÏ ÎÎÎÎÎÎÎÎÎÏÎ ÎÏÎÏÎÎ ÎÎ ÎÏÎÎ ÏÎ "
+"ÏÏÎÎÏÎÎÎ ÏÎÏ ÎÎÏÎ ÎÎÎ ÎÏÎÏÎÎÎÎ ÏÏÏÎÏ ÎÎ ÏÏÎÎÎÏÏÎÎ ÎÎ ÎÎÎÎÎÎÎÏÏÎÎ ÏÎÎ "
+"ÎÎÎÎÎÎÎÎÎÎ. Î ÎÎÎÎÎÎÎÎÎÎ ÎÎÎÎÎÎÎÏÎÎÏÎÎ ÎÏÎÎ ÎÏÎÏ ÎÏÎÎÎÎ ÏÎ ÎÎÏÎÎÎÎÎÎ "
+"ÏÏÎÎÏÎÎÎ ÎÎÎ ÎÎÎÎÎ ÏÏÏÏÎÎÏÎ ÏÎ ÎÏÏÏ."
 
-#: C/gdk.page:10(title)
-msgid "GDK"
-msgstr "GDK"
+#: C/keyring.page:39(page/p)
+msgid ""
+"The keyring manager also provides a session keyring. Items in the session "
+"keyring are never stored on disk, and are lost as soon as the user's session "
+"ends. The session keyring can be used to store passwords to be used in the "
+"current session only."
+msgstr ""
+"Î ÎÎÎÏÎÎÏÎÏÏÎÏ ÎÎÎÎÎÎÎÎÎÏÎ ÏÎÏÎÏÎÎ ÎÏÎÏÎÏ ÎÎÎ ÎÎÎÎÎÎÎÎÎÎ ÏÏÎÎÎÏÎÎÏ. ÎÎ "
+"ÏÏÎÎÏÎÎÎ ÏÎÏ ÎÎÎÎÎÎÎÎÎÎÏ ÏÏÎÎÎÏÎÎÏ ÎÎÎ ÎÏÎÎÎÎÎÏÎÎÏÎÎ ÏÎÏÎ ÏÏÎ ÎÎÏÎÎ ÎÎÎ "
+"ÏÎÎÎÎÏÎÎ ÎÏÎÎÏ ÏÎÎÎÎÏÏÎÎ Î ÏÏÎÎÎÏÎÎ ÏÎÏ ÏÏÎÏÏÎ. Î ÎÎÎÎÎÎÎÎÎÎ ÏÏÎÎÎÏÎÎÏ "
+"ÎÏÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÎÎ ÎÎÎ ÏÎÎ ÎÏÎÎÎÎÎÏÏÎ ÏÏÎÎÎÎÎÏÎÎÏÎ ÏÎÏ ÎÏÎÏÎÏÎ ÎÏÎÎ "
+"ÏÎÎ ÏÏÎÏÎÏÏÎ ÏÏÎÎÎÏÎÎ."
 
-#: C/gdk.page:12(p)
+#: C/keyring.page:44(page/p)
 msgid ""
-"GDK is the low-level library used by GTK+ to interact with the system for "
-"graphics and input devices. Although you will rarely use GDK directly in "
-"application code, it contains all the necessary functionality to draw "
-"objects and text to the screen and to interact with the user with various "
-"input devices."
+"If you use GIO to access remote servers, you automatically get the benefits "
+"of the keyring manager. Whenever GVFS needs to authenticate the user, it "
+"provides the option to store the password, either in the default keyring or "
+"in the session keyring."
 msgstr ""
-"Î GDK ÎÎÎÎÎ Î ÎÎÎÎÎÎÎÎÎÎ ÏÎÎÎÎÎÏ ÎÏÎÏÎÎÎÏ ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÎ Î GTK+ ÎÎÎ ÏÎ "
-"ÎÎÎÎÏÎÏÎ ÎÎ ÏÎ ÏÏÏÏÎÎÎ, ÏÏÎÎ ÎÏÎÏÎ ÏÎ ÎÏÎÏÎÎÎ ÎÎÎ ÏÎÏ ÏÏÏÎÎÏÎÏ ÎÎÏÏÎÎÏ. ÎÎ "
-"ÎÎÎ ÏÏÎÎÎÎ ÎÎ ÏÏÎÎÎÏÏÎÎ ÎÎ ÏÏÎÏÎÏÎÎÎÎÎÏÎ ÏÎ GDK ÎÏÎÏÎÎÎÎÏ ÏÏÎÎ ÎÏÎÎÎÎ ÏÎÏ "
-"ÎÏÎÏÎÎÎÎÏ ÏÎÏ, ÎÎÎÏ ÎÎÎÎÎ ÎÎ ÎÎÏÏÎÎÎÏÎ ÏÏÎ ÏÎÏÎÎÏÎÎ ÏÎÎÏ ÏÎÏ ÎÏÎÎÏÎÏÎÎÎÎÏ "
-"ÎÎÎÏÎÏÏÎÎÎÏ ÎÎÎ ÏÎ ÏÏÎÎÎÎÏÎ ÎÎÏÎÎÎÎÎÎÎÏÎ ÎÎÎ ÎÎÎÎÎÎÎÏ ÏÏÎÎ ÎÎÏÎÎ, ÎÎÎÏÏ ÎÎÎ "
-"ÎÎÎ ÏÎ ÎÎÎÎÏÎÏÎ ÎÎ ÏÎ ÏÏÎÏÏÎ ÎÎÏÏ ÎÎÎÏÏÏÏÎ ÏÏÏÎÎÏÏÎ ÎÎÏÏÎÎÏ."
+"ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÏÎ ÏÎ GIO ÎÎÎ ÏÏÏÏÎÎÏÎ ÏÎ ÎÏÎÎÎÎÏÏÏÎÎÎÎÏÏ ÎÎÏÏÎÏÎÏÎÏÎÏ, "
+"ÎÎÎÏÎÏÏÏÎÎÏÎ ÎÎÎÏÏÏ ÏÎ ÏÎÎÎÎÎÎÏÎÎÎÏÎ ÏÎÏ ÎÎÎÏÎÎÏÎÏÏÎ ÎÎÎÎÎÎÎÎÎÏÎ. ÎÏÎÏÎ ÏÎ "
+"GVFS ÎÏÎÎÏÎÎ ÏÎÏÏÎÏÎÎÎÏÎ ÏÎÏ ÏÏÎÏÏÎ, ÏÎÏ ÎÎÎÎÏÎ Î ÎÏÎÎÏÏÏÎÏÎ ÎÎ ÎÏÎÎÎÎÎÏÏÎÏÎ "
+"ÏÎ ÏÏÎÎÎÎÎÏÎÎÏ ÏÎÏ, ÎÎÏÎ ÏÏÎÎ ÏÏÎÎÏÎÎÎÎÎÎÎÎ ÎÎÎÎÎÎÎÎÎÎ, ÎÎÏÎ ÏÏÎÎ ÎÎÎÎÎÎÎÎÎÎ "
+"ÏÎÏ ÏÏÎÎÎÏÎÎÏ."
 
-#: C/gdk.page:18(p)
+#: C/keyring.page:49(page/p)
 msgid ""
-"GDK enables you to access events from keyboards, mice, and other input "
-"devices, rather than connect to the high-level signals used in GTK+. GDK "
-"also provides low-level routines to access drag and drop and clipboard data "
-"from the system. When implementing custom controls, you may need to access "
-"these features to implement proper user interaction behavior."
+"You should use the keyring manager whenever your application needs to store "
+"passwords or other sensitive data for users. Using the keyring manager "
+"provides a better user experience while still keeping user data safe and "
+"secure."
 msgstr ""
-"Î GDK ÏÎÏ ÏÏÎÏÏÎÏÎÎ ÎÏÎÏÎÎÎÎÏ ÏÏÏÏÎÎÏÎ ÏÎ ÎÎÎÎÎÏÏÎ ÎÏÏ ÏÎ ÏÎÎÎÏÏÎÎÏÎÎÎ, ÏÎ "
-"ÏÎÎÏÎÎÎ ÎÎÎ ÎÎÎÎÏ ÏÏÏÎÎÏÎÏ ÎÎÏÏÎÎÏ, ÎÎÏÎ ÎÎ ÏÎÏ ÎÎÎÎÎÎÎÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÏÎ "
-"ÏÎ ÏÎÎÎÏÎ ÏÏÎÎÎÏ ÎÏÎÏÎÎÎÏ ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÎ Î GTK+. ÎÎÏÎÎÎÎÎÎ, Î GDK ÏÎÏÎÏÎÎ "
-"ÏÎÏÏÎÎÎÏ ÏÎÎÎÎÎÏ ÎÏÎÏÎÎÎÏ ÎÎÎ ÏÎÎ ÏÏÏÏÎÎÏÎ ÏÏÎ ÎÎÎÎÎÎÎÎ ÏÏÏÏÎÎÎÏÎÏ ÎÎÎ "
-"ÎÏÏÎÎÏÎÏ, ÎÎÎÏÏ ÎÎÎ ÏÏÎÏÎÎÏÎÏ ÏÎÏ ÏÏÏÏÎÎÎÏÎÏ. ÎÎÏÎ ÏÎÎ ÏÎÎÏÎÎÎÏÎ "
-"ÏÏÎÏÎÏÎÎÏÎÎÎÏÎ ÎÎÎÎÏÏÎ, ÎÏÏÏ ÎÎ ÏÏÎÎÎÏÏÎÎÏÎ ÎÏÏÎÏ ÏÎÏ ÎÎÎÎÏÏ ÏÎÎ ÏÏÏÏÎÎÏÎ "
-"ÎÎÎ ÎÎ ÏÎÎÏÎÎÎÏÎÏÎ ÎÏÎÏÎÎÎÎÏ ÏÏÎÏÎÏÎÏÎÏÎÏ ÎÏÎÎÎÎÎÏÎÎÎÏ ÎÎ ÏÎ ÏÏÎÏÏÎ."
+"ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ ÏÎÎ ÎÎÎÏÎÎÏÎÏÏÎ ÎÎÎÎÎÎÎÎÎÏÎ ÎÎ Î ÎÏÎÏÎÎÎÎ ÏÎÏ ÏÏÎÎÎÎÎÏÎÎ ÎÎ "
+"ÎÏÎÎÎÎÎÏÎÎ ÏÏÎÎÎÎÎÏÎÎÎ Î ÎÎÎÎ ÎÏÎÎÏÎÎÏÎ ÎÎÎÎÎÎÎÎ ÏÏÎ ÏÏÎÏÏÏÎ. Î ÏÏÎÏÎ ÏÎÏ "
+"ÎÎÎÏÎÎÏÎÏÏÎ ÎÎÎÎÎÎÎÎÎÏÎ ÎÎÎÏÎÏÎÎÎ ÏÎÎ ÎÎÏÎÎÏÎÎ ÏÎÏ ÏÏÎÏÏÎ, ÎÎÎÏÏÎÎÎÎÎÎÏÎÏ "
+"ÏÎÎ ÎÏÏÎÎÎÎÎ ÏÏÎ ÎÎÎÎÎÎÎÏÎ ÏÎÏ."
 
-#: C/gdk.page:25(p)
+#: C/keyring.page:55(item/p)
 msgid ""
-"GDK provides other functionality which is needed to implement a complete "
-"graphical toolkit like GTK+. Since GDK acts as a platform abstraction, "
-"allowing GTK+ to run under multiple environments, it provides an API for all "
-"of the system functionality needed by GTK+. This includes information about "
-"multi-head displays, resolution and color depth, colormaps, and cursors."
+"<link href=\"http://developer.gnome.org/gnome-keyring/stable/\";>gnome-"
+"keyring Reference Manual</link>"
 msgstr ""
-"Î GDK ÏÎÏÎÏÎÎ ÎÎÎ ÎÎÎÎÏ ÎÎÎÏÎÏÏÎÎÎÏ ÏÎÏ ÎÏÎÎÏÎÏÎÏÎÎ ÎÎÎ ÏÎÎ ÏÎÎÏÎÎÎÏÎ ÎÎÏÏ "
-"ÎÎÎÎÎÎÏÏÎÎÎÎÏ toolkit ÎÏÎÏÎÎÏÎ, ÏÏÏÏ Î GTK+. ÎÎÎÏÏ Î GDK ÎÎÎÏÎÏÏÎÎÎ ÏÏ "
-"ÎÏÎÎÏÎÏÎÎÏ ÎÎÎÏÎÎÎ ÏÎÎÏÏÏÏÎÎÏ, ÎÏÎÏÏÎÏÎÎÏÎÏ ÏÏÎ GTK+ ÎÎ ÎÎÎÏÎÏÏÎÎÎ ÏÎ "
-"ÏÎÎÎÎÏÎÎ ÏÎÏÎÎÎÎÎÎÎÏÎ, ÏÎÏÎÏÎÎ ÎÎÎ API ÎÎÎ ÏÎÎÏ ÏÎÏ ÎÎÎÏÎÏÏÎÎÎÏ ÏÏÏÏÎÎÎÏÎÏ "
-"ÏÎÏ ÎÏÎÎÏÎÎ Î GTK+. ÎÏÏÏ ÏÎÏÎÎÎÎÎÎÎÎÎ ÏÎÎÏÎÏÎÏÎÎÏ ÎÎÎ ÏÎÏ ÏÎÎÎÎÏÎÎÏ ÎÎÏÎÎÏ, "
-"ÏÎÎ ÎÎÎÎÏÏÎ ÎÎÎ ÏÎ ÎÎÎÎÏ ÏÏÎ ÏÏÏÎÎÏÏÎ, ÏÎ ÏÏÏÎÎÏÎÎÏÎÎÎ ÎÎÎ ÏÎÏÏ ÎÏÎÎÎÎÏ."
+"<link href=\"http://developer.gnome.org/gnome-keyring/stable/\";>ÎÎÏÎÎÏÎÎÎÎ "
+"ÎÎÎÏÎÏÎÏ ÏÎÏ gnome-keyring</link>"
 
-#: C/gdk.page:32(p)
+#: C/keyring.page:56(item/p)
 msgid ""
-"You should use GDK whenever you need low-level access to the underlying "
-"windowing system, including low-level access to events, windows, and the "
-"clipboard. Using GDK for these tasks ensures that your code is portable and "
-"integrates with the rest of your GTK+ code. The simple drawing routines in "
-"GDK should generally not be used. Instead, you should use the extensive "
-"functionality provide by Cairo."
+"<link href=\"http://developer.gnome.org/libseahorse/stable/\";>libseahorse "
+"Reference Manual</link>"
 msgstr ""
-"ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ ÏÎ GDK ÎÎ ÏÏÎÎÎÎÎÏÏÎ ÏÏÏÏÎÎÏÎ ÏÎÎÎÎÎÏ ÎÏÎÏÎÎÎÏ ÏÏÎÎ ÏÏÎÎÎÎÎ "
-"ÏÎÏÎÎÏÏÏÎ ÏÎÏ ÏÏÏÏÎÎÎÏÎÏ, ÏÏÏÏ ÏÎ ÎÎÎÎÎÏÏÎ, ÏÎ ÏÎÏÎÎÏÏÎ ÎÎÎ ÏÎ ÏÏÏÏÎÎÏÎ. ÎÎÎ "
-"ÏÎÏÎÎÎ ÏÏÎÏÎ ÏÎÏ GDK ÎÎÎÏÏÎÎÎÎÎÎ ÏÎ ÏÎÏÎÏÏÏÎÏÎ ÏÎÏ ÎÏÎÎÎÎ ÏÎÏ ÎÎÎ ÏÎÎ ÎÏÎÎ "
-"ÏÎÏ ÎÎÏÏÎÎÏÏÏÎ ÏÏÎÎ ÏÏÏÎÎÎÏÎ ÎÏÎÎÎÎ GTK+. ÎÏÏÏÏÎ, ÏÏÎÏ ÏÎÏÎÏÏÏÏÎÏÎÏ "
-"ÏÎÏÎÏÏÏÏÎÎÏ ÎÎÎ ÏÏÎÎÏÏÎÏÎÎ Î ÏÏÎÏÎ ÏÏÎ ÎÏÎÏÎ ÏÎÏÏÎÎÏÎ ÏÏÎÎÎÎÏÎÏ ÏÎÏ GDK. "
-"ÎÏÎÏÎÎÎÏÏÎ, ÎÎÎÏÏÎÏÎ, ÏÎÏ ÎÎÏÎÏÎÎÎÎÎÏ ÎÏÎÎÏÏÏÎÏÎÏ ÏÎÏ Cairo."
+"<link href=\"http://developer.gnome.org/libseahorse/stable/\";>ÎÎÏÎÎÏÎÎÎÎ "
+"ÎÎÎÏÎÏÎÏ ÏÎÏ libseahorse</link>"
 
-#: C/gdk.page:41(link)
-msgid "GDK Reference Manual"
-msgstr "ÎÎÏÎÎÏÎÎÎÎ ÎÎÎÏÎÏÎÏ ÏÎÏ GDK"
-
-#: C/gda.page:6(desc)
-msgid "Common relational database access"
-msgstr "ÎÎÎÎÎ ÏÏÎÏÎÎÎÎ ÏÏÏÏÎÎÏÎ ÎÎÏÎÏ ÎÎÎÎÎÎÎÏÎ"
+#: C/notify.page:6(info/desc)
+msgid "Interactive notifications in the messaging tray"
+msgstr "ÎÎÎÎÏÎÏÏÎÎÎÏ ÎÎÎÎÏÎÎÎÏÎÎÏ ÏÏÎÎ ÏÎÏÎÎÏÎ ÎÎÎÏÎÎÏÏÎ"
 
-#: C/gda.page:10(title)
-msgid "GDA"
-msgstr "GDA"
+#: C/notify.page:10(page/title)
+msgid "Notify"
+msgstr "Notify"
 
-#: C/gda.page:12(p)
+#: C/notify.page:12(page/p)
 msgid ""
-"GDA offers a wrapper around relational databases, allowing you to easily "
-"store and retrieve data in many different common database systems."
+"The libnotify library provides a convenient API for presenting notifications "
+"to the user. Notifications can be simple message or they can allow the user "
+"to respond. Notifications made with libnotify will use the appropriate "
+"interface in the environment the application is running in. In GNOME 3, "
+"notifications are displayed at the bottom of the screen and then put into "
+"the messaging tray."
 msgstr ""
-"ÎÎ GDA ÏÏÎÏÏÎÏÎÎ ÎÎÎ ÎÎÎÎÎÏÎÏÏÎ ÎÏÏÏ ÎÏÏ ÏÎÏ ÏÏÎÏÎÎÎÏ ÎÎÏÎÎÏ ÎÎÎÎÎÎÎÏÎ, "
-"ÎÏÎÏÏÎÏÎÎÏÎÏ ÏÎÎ ÎÏÎÎÎÎ ÎÏÎÎÎÎÎÏÏÎ ÎÎÎ ÎÎÎÎÏÎÏÎ ÎÎÎÎÎÎÎÏÎ ÏÎ ÏÎÎÎÎ "
-"ÎÎÎÏÎÏÎÏÎÎÎ ÎÎÎÎÎ ÏÏÏÏÎÎÎÏÎ ÎÎÏÎÏ ÎÎÎÎÎÎÎÏÎ."
-
-#: C/gda.page:17(link)
-msgid "GNOME Data Access Manual"
-msgstr "ÎÎÏÎÎÏÎÎÎÎ ÏÏÏÏÎÎÏÎÏ ÎÎÎÎÎÎÎÏÎ ÏÎÏ GNOME"
+"Î ÎÎÎÎÎÎÎÎÎÎ libnotify ÏÎÏÎÏÎÎ ÎÎÎ ÎÎÎÎÎÏ API ÎÎÎ ÏÎÏÎÏÏÎÎÏÎ ÎÎÎÎÏÎÎÎÏÎÏÎ "
+"ÏÏÎÎ ÏÏÎÏÏÎ. ÎÎ ÎÎÎÎÏÎÎÎÏÎÎÏ ÎÏÎÏÎÎ ÎÎ ÎÎÎÎÎ ÎÏÎÏ ÎÎÎÏÎÎ Î ÎÏÎÏÎÏÎ ÎÎ "
+"ÎÏÎÏÏÎÏÎÏÎ ÏÏÎÎ ÏÏÎÏÏÎ ÎÎ ÎÏÎÎÏÎÏÎÎ. ÎÎ ÎÎÎÎÏÎÎÎÏÎÎÏ ÏÎÏ ÎÎÎÎÎÎ ÎÎ libnotify "
+"ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÏÎÎ ÎÎÏÎÎÎÎÎÎ ÎÎÎÏÎÏÎ ÏÏÎ ÏÎÏÎÎÎÎÎÎÎ ÏÎÏ Î ÎÏÎÏÎÎÎÎ "
+"ÏÏÎÏÎÎ. ÎÏÎ GNOME 3, ÎÎ ÎÎÎÎÏÎÎÎÏÎÎÏ ÎÎÏÎÎÎÎÎÎÏÎÎ ÏÏÎ ÏÎÎÎÏ ÏÎÏ ÎÎÏÎÎÏ ÎÎÎ "
+"ÎÏÎÎÏÎ ÎÏÎÎÎÎÏÎ ÏÏÎÎ ÎÎÏÎÎ ÎÎÎÏÎÎÏÏÎ."
 
-#: C/eds.page:6(desc)
-msgid "Integration with the desktop-wide address book and calendar"
+#: C/notify.page:20(item/p)
+msgid ""
+"<link href=\"http://developer-next.gnome.org/libnotify/\";>Libnotify "
+"Reference Manual</link>"
 msgstr ""
-"ÎÎÎÎÎÎÏÏÏÎ ÎÎ ÏÎ ÏÎÎÏÎÎÏ ÎÏÎÏÎÎÎÎÎÏ ÎÏÎÎÏÎÎÏ ÎÎÎÎÎÎ ÎÎÎÏÎÏÎÏÎÏÎ ÎÎÎ "
-"ÎÎÎÏÎÎÏÎÎÎ"
+"<link href=\"http://developer-next.gnome.org/libnotify/\";>ÎÎÏÎÎÏÎÎÎÎ "
+"ÎÎÎÏÎÏÎÏ ÏÎÏ Libnotify</link>"
 
-#: C/eds.page:10(title)
-msgid "Evolution Data Server"
-msgstr "Evolution Data Server"
+#: C/pango.page:6(info/desc)
+msgid "Fully internationalized text layout and rendering"
+msgstr "ÎÎÎÏÏÏ ÎÎÎÎÎÎÏÎÎÎÎÎÎÎ ÎÎÎÏÎÎÎ ÎÎÎÎÎÎÎÏ ÎÎÎ ÎÏÏÎÎÏÎ"
+
+#: C/pango.page:10(page/title)
+msgid "Pango"
+msgstr "Pango"
 
-#: C/eds.page:12(p)
+#: C/pango.page:12(page/p)
 msgid ""
-"With Evolution Data Server, GNOME provides a single address book and "
-"calendar that all applications can use to store and retrieve information. "
-"Using Evolution Data Server means that users no longer have to maintain "
-"separate lists of contacts in each application, or manually copy events to "
-"their calendar."
+"Pango is the core text and font handling library in the GNOME platform. It "
+"is responsible for laying out and rendering text, and is used throughout GTK"
+"+."
 msgstr ""
-"ÎÎÏÏ ÏÎÏ ÎÎÏÏÎÏÎÏÎÏÎ ÎÎÎÎÎÎÎÏÎ Evolution, ÏÎ GNOME ÏÎÏÎÏÎÎ ÎÎÎÎÎÎ ÎÎÎÎÎÎ "
-"ÎÎÎÏÎÏÎÏÎÏÎ ÎÎÎ ÎÎÎÏÎÎÏÎÎÎ ÏÎÏ ÎÏÎÏÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎ ÏÎÎÏ ÎÎ ÎÏÎÏÎÎÎÎÏ "
-"ÎÎÎ ÏÎÎ ÎÏÎÎÎÎÎÏÏÎ ÎÎÎ ÎÎÎÎÏÎÏÎ ÏÎÎÏÎÏÎÏÎÏÎ. ÎÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎÎ ÎÎÏÏÎÏÎÏÎÏÎ "
-"ÎÎÎÎÎÎÎÏÎ Evolution, ÎÎ ÏÏÎÏÏÎÏ ÎÎÎ ÏÏÎÎÎÎÎÏÎÎ ÏÎÎÎÎ ÎÎ ÎÎÎÏÎÏÎÏÎ ÎÎÏÏÏÎÏÏÎÏ "
-"ÎÎÏÏÎÏ ÎÏÎÏÏÎ ÎÎÎ ÎÎÎÎ ÎÏÎÏÎÎÎÎ, Î ÎÎ ÎÎÏÎÎÏÎÏÎÏÎ ÎÎ ÎÎÎÎÎ ÎÎÎÎ ÏÎÎÏÎÎÎÏ "
-"ÏÎÏÏ ÏÏÎ ÎÎÎÏÎÎÏÎÎÏ ÏÎÏÏ."
+"Î Pango ÎÎÎÎÎ Î ÎÎÏÎÎÎ ÎÎÎÎÎÎÎÎÎÎ ÏÎÎÏÎÏÎÎÏ ÎÎÎÎÎÎÎÏ ÎÎÎ ÎÏÎÎÎÎÏÎÏÎÎÏÏÎ ÏÎÏ "
+"ÏÎÎÏÏÏÏÎÎÏ GNOME. ÎÎÎÎÎ ÏÏÎÏÎÏÎÎ ÎÎÎ ÏÎÎ ÎÎÏÎÎÎÏÎ ÎÎÎ ÏÎ ÎÎÎÏÎÎÎ ÏÎÏ "
+"ÎÎÎÎÎÎÎÏ ÎÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÏÎÎÏÎÏ ÏÏÎ GTK+."
 
-#: C/eds.page:18(p)
+#: C/pango.page:15(note/p)
 msgid ""
-"People use computers increasingly to interact with their friends and "
-"colleagues. Applications such as email programs, instant messengers, and "
-"telephony and video conferencing applications are used to communicate with "
-"others. These applications often provide contact lists to help users. Using "
-"Evolution Data Server, applications can store contact information in a "
-"single location, allowing all applications to see all the pertinent data "
-"about users' contacts."
+"The Pango layout engine can be used with different font backends and drawing "
+"backends. On most GNOME systems, Pango will use FreeType, fontconfig, and "
+"Cairo to access fonts and render text. On other systems, Pango will use the "
+"native font systems, such as Uniscribe on Microsoft Windows and ATSUI on "
+"MacOS"
 msgstr ""
-"ÎÎÎ ÎÎÎ ÏÎÏÎÏÏÏÏÎÏÎ, ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÏÎÏÏ ÏÏÎÎÎÎÎÏÏÎÏ ÎÎÎ ÎÎ ÎÏÎÎÎÎÎÏÎÎÏÎÎ ÎÎ "
-"ÏÎÎÎÏÏ ÎÎÎ ÏÏÎÎÎÎÎÏÎÏÏ. ÎÎÎ ÎÎ ÏÎ ÎÏÎÏÏÏÎÏÎÎ, ÏÏÎÏÎÎÎÏÎÎÎÏÎÎ ÎÏÎÏÎÎÎÎÏ "
-"ÎÎÎÎÏÏÎÎÎÎÎÏ ÏÎÏÏÎÏÎÎÎÎÎÏ, ÎÎÎÏÏÎ ÎÎÎÏÎÎÏÏÎ, ÏÎÎÎÏÏÎÎÎÏ ÎÎÎ "
-"ÎÎÎÏÎÎÎÎÎÏÎÎÏÎÏÎ. ÎÏÏÎÏ ÎÎ ÎÏÎÏÎÎÎÎÏ ÏÏÏÎÎ ÏÎÏÎÎÏÎÏÎ ÎÎÏÏÎÏ ÎÏÎÏÏÎ. "
-"ÎÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎÎ ÎÎÏÏÎÏÎÏÎÏÎ ÎÎÎÎÎÎÎÏÎ Evolution, ÎÎ ÎÏÎÏÎÎÎÎÏ ÎÏÎÏÎÏÎ ÎÎ "
-"ÎÏÎÎÎÎÎÏÎÏÎ ÎÏÎÏÎÏ ÏÎ ÎÎÎ ÎÎÎÎÎÎÎÎ ÏÎÏÎÎÎÏÎÎ, ÎÏÎÏÏÎÏÎÎÏÎÏ ÏÎ ÏÎÎÏ ÏÎÏ "
-"ÎÏÎÏÎÎÎÎÏ ÎÎ ÎÎÎÏÎÏÎ ÏÎ ÏÏÎÎÏÎÎÎ ÏÏÎ ÎÏÎÏÏÎ ÏÎÏ ÏÏÎÏÏÎ."
+"Î ÎÎÏÎÎÎ ÎÎÎÏÎÎÎÏ Pango ÎÏÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÎÎ ÎÎ ÎÎÎÏÎÏÎÏÎÎÎ ÏÏÎÏÏÎÏÎÎÎ "
+"ÎÏÎÎÎÎÏÎÏÎÎÏÏÎ ÎÎÎ ÎÏÎÏÎÎÏÎ. ÎÏÎ ÏÎÏÎÏÏÏÏÎÏÎ ÏÏÏÏÎÎÎÏÎ GNOME, Î Pango "
+"ÏÏÎÏÎÎÎÏÎÎÎÎ ÏÎ FreeType, fontconfig ÎÎÎ Cairo ÎÎÎ ÎÎ ÏÏÎÏÏÎÎÎÏÎÎ ÏÏÎÏ "
+"ÎÏÎÎÎÎÏÎÏÎÎÏÎÏ ÎÎÎ ÎÎ ÎÏÎÎÏÏÎÎ ÎÎÎÎÎÎÎ. ÎÎ ÎÎÎÎ ÏÏÏÏÎÎÎÏÎ, Î Pango "
+"ÏÏÎÏÎÎÎÏÎÎÎÎ ÏÎ ÎÎÎÎÎÎ ÏÏÏÏÎÎÎÏÎ ÎÏÎÎÎÎÏÎÏÎÎÏÏÎ, ÏÏÏÏ ÏÎ Uniscribe ÏÏÎ "
+"Microsoft Windows ÎÎÎ ÏÎ ATSUI ÏÏÎ MacOS."
 
-#: C/eds.page:26(p)
+#: C/pango.page:22(page/p)
 msgid ""
-"Applications can also use Evolution Data Server to store and retrieve "
-"appointments on the user's calendar. For example, the clock on the panel "
-"shows a simple calendar when clicked. If the user has any appointments "
-"scheduled, they are shown alongside the calendar. This makes it easy to see "
-"upcoming appointments without opening a full calendar application."
+"Pango has extensive support for the various writing systems used throughout "
+"the world. Many of the writing systems used for languages have complex rules "
+"for laying out glyphs and composing characters. With Pango, nearly all "
+"languages can be written and displayed correctly, allowing users everywhere "
+"to view text in their native languages. Pango support for multiple writing "
+"systems is automatic; application developers do not have to write any "
+"special code to support other languages."
 msgstr ""
-"ÎÏÎÏÎÏ, ÎÎ ÎÏÎÏÎÎÎÎÏ ÎÏÎÏÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎ ÏÎÎ ÎÎÏÏÎÏÎÏÎÏÎ ÎÎÎÎÎÎÎÏÎ "
-"Evolution ÎÎÎ ÎÎ ÎÏÎÎÎÎÎÏÎÏÎ ÎÎÎ ÎÎ ÎÎÎÎÏÎÏÎ ÏÎ ÏÎÎÏÎÎÎÏ ÏÎÏ ÏÏÎÏÏÎ ÎÏÏ ÏÎ "
-"ÎÎÎÏÎÎÏÎÎÏ ÏÎÏ. ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ, ÎÎ ÎÎÎÎÏÎ ÎÎÎÎ ÏÏÎ ÏÎÎÏÎ ÏÎÏ ÏÎÎÎÎÎ "
-"ÎÏÎÏÎÎÎÏÎ, ÎÎÏÎÎÎÎÎÏÎÎ ÎÎÎ ÎÏÎÏ ÎÎÎÏÎÎÏÎÎÎ. ÎÎ ÎÏÎÏÎ ÏÏÎÎÏÎÎÎÎÏÎÏÎÎ "
-"ÏÎÎÏÎÎÎÏ, ÎÏÏÎ ÎÎÏÎÎÎÎÎÎÏÎÎ ÏÏÎ ÎÎÎÏÎÎÏÎÎÎ. ÎÏÏÎ, ÎÏÎÏÎÎÏÎ ÎÎ ÏÏÎÎÎÏÎÎÏÎÏÏÎ "
-"ÏÎ ÏÎÎÏÎÎÎÏ ÏÎÏ ÏÏÏÎÏ ÎÎ ÎÎÎÎÎÎÏÎ ÏÎÎ ÏÎÎÏÎ ÎÏÎÏÎÎÎÎ ÎÎÎÏÎÎÎÎÎÎÏ."
-
-#: C/eds.page:33(link)
-msgid "Evolution API Reference: libebook"
-msgstr "ÎÎÎÏÎÏÎ API ÏÎÏ Evolution: libebook"
-
-#: C/eds.page:34(link)
-msgid "Evolution API Reference: libecal"
-msgstr "ÎÎÎÏÎÏÎ API ÏÎÏ Evolution: libecal"
-
-#: C/d-bus.page:6(desc)
-msgid "Standard interprocess communications bus"
-msgstr "ÎÏÏÎÎÏÏ ÎÎÎÎÎÎÎÏÎÎÎÏÏ ÎÎÎÏÎÎÏ ÎÏÎÎÎÎÎÏÎÎÏÎ"
-
-#: C/d-bus.page:10(title)
-msgid "D-Bus"
-msgstr "D-Bus"
+"Î Pango ÏÏÎÏÏÎÏÎÎ ÎÎÏÎÏÎÎÎÎÎ ÎÎÎÏÏÎ ÎÎÎ ÏÎ ÏÏÏÏÎÎÎÏÎ ÎÏÎÏÎÏ ÏÎÏ "
+"ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÏÎ ÎÎÎÏÎÏÎ ÎÎÏÎ ÏÎ ÏÎÎ ÏÎÎ ÎÏÏÎÎ. ÎÎÎÎÎÏ ÎÏÎÏÎÏ ÎÎÏÏÏÏÎ "
+"ÏÏÎÏÎÎÎÏÎÎÎÏÎ ÏÎÏÎÏÎÎÎÎÏÏ ÎÎÎÏÎÎÏ ÎÎÎ ÏÎ ÎÎÎÏÎÎÎ ÏÏÎ ÏÏÎÎÏÎÏÎ ÏÎÏÏ ÎÎÎ ÏÎ "
+"ÏÏÎÎÎÏÎ ÏÏÎ ÏÎÏÎÎÏÎÏÏÎ ÏÎÏÏ. ÎÎÏÏ ÏÎÏ Pango, ÏÏÎÎÏÎ ÏÎÎÏ ÎÎ ÎÎÏÏÏÎÏ ÎÏÎÏÎÏÎ "
+"ÎÎ ÎÏÎÏÎÎÏÎÎ ÎÎÎ ÎÎ ÎÎÏÎÎÎÎÎÎÏÎÎ ÏÏÏÏÎ, ÎÏÎÏÏÎÏÎÎÏÎÏ ÏÏÎÏÏ ÏÏÎÏÏÎÏ ÏÎ ÏÎÎ "
+"ÏÎÎ ÎÏÏÎÎ ÎÎ ÎÎÎÎÎÎÎÏÎ ÎÎÎÎÎÎÎ ÏÏÎ ÎÎÏÏÎÎÎ ÏÎÏÏ ÎÎÏÏÏÎ. Î Pango ÏÏÎÏÏÎÏÎÎÎÎ "
+"ÎÏÏÏÎÎÏÎ ÏÎ ÎÎÎÏÎÏÎ ÏÏÏÏÎÎÎÏÎ ÎÏÎÏÎÏÂ ÎÎ ÏÏÎÎÏÎÎÎÎÏÎÏÏÎÏ ÎÎÎ ÏÏÎÎÎÎÎÏÎÎ ÎÎ "
+"ÎÏÎÏÎÏÎ ÎÎÎÎÎÏ ÎÏÎÎÎÎ ÎÎÎ ÎÎ ÏÏÎÏÎÎÏÎÏÎ ÏÏÎÏÏÎÏÎÎÎ ÎÎÎ ÎÎÎÎÏ ÎÎÏÏÏÎÏ."
 
-#: C/d-bus.page:12(p)
+#: C/pango.page:31(page/p)
 msgid ""
-"D-Bus is a cross-desktop message bus for sending events between various "
-"applications, the desktop, and low-level components of the system. D-Bus "
-"provides a simple API for sending messages to particular services and for "
-"broadcasting messages to all interested services. D-Bus enables different "
-"types of applications to communicate and integrate with each other and with "
-"the desktop, providing better interaction and a richer experience for the "
-"user."
+"Pango supports the text styling used in typical documents and interfaces, "
+"including italics, font weights, and underlines. Pango uses a simple XML-"
+"like vocabulary called PangoMarkup which enables you to set font size, "
+"color, styles, and other text attributes. Using PangoMarkup, you can specify "
+"inline styles without manually iterating over text blocks. PangoMarkup can "
+"be used directly from GTK+, enabling you to style text in your graphical "
+"interfaces easily."
 msgstr ""
-"ÎÎ D-Bus ÎÎÎÎÎ ÎÎÎÏ ÎÎÎÏÎÎÏ ÎÎÎÏÎÎÏÏÎ ÏÎÏ ÎÎÎÏÎÏÏÎÎÎ ÏÎ ÏÎÎÎÎÏÎÎÏ ÎÏÎÏÎÎÎÎÎÏ "
-"ÎÏÎÎÏÎÎÏ ÎÎÎ ÎÏÎÏÏÎÏÎÎ ÏÎÎ ÎÏÎÏÏÎÎÎ ÎÎÎÏÎÎÏÏÎ ÎÎÏÎÎÏ ÎÏÎÏÎÎÎÏÎ, ÎÏÎÏÎÎÎÎÎÏ "
-"ÎÏÎÎÏÎÎÏ ÎÎÎ ÏÏÏÏÎÏÎÎÏÎ ÏÎÎÎÎÎÏ ÎÏÎÏÎÎÎÏ ÏÎÏ ÏÏÏÏÎÎÎÏÎÏ. ÎÎ D-Bus ÏÎÏÎÏÎÎ "
-"ÎÎÎ ÎÏÎÏ API ÎÎÎ ÏÎÎ ÎÏÎÏÏÎÎÎ ÎÎÎÏÎÎÏÏÎ ÏÏÎÏ ÏÏÎÎÎÎÏÎÎÎÎÎÏ ÏÏÎÏÎÏÎÎÏ ÎÎÎ ÎÎÎ "
-"ÏÎ ÎÎÏÎÎÎÏÎ ÏÏÎ ÎÎÎÏÎÎÏÏÎ ÏÎ ÏÎÎÏ ÏÎÏ ÎÎÎÎÎÏÎÏÏÎÎÎÎÏ ÏÏÎÏÎÏÎÎÏ. ÎÎ D-Bus "
-"ÎÏÎÏÏÎÏÎÎ ÏÎ ÎÎÎÏÎÏÎÏÏ ÏÏÏÎÏÏ ÎÏÎÏÎÎÎÏÎ ÎÎ ÎÏÎÎÎÎÎÏÎÎÏÎ ÎÎÎ ÎÎ ÏÏÎÎÏÎÎÎÎÎÏÎÎ "
-"ÎÎÏÎÎÏ ÏÎÏÏ ÎÎÎ ÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎÎ ÎÏÎÎÏÎÎÏ, ÏÏÎÏÏÎÏÎÎÏÎÏ ÏÏÎ ÏÏÎÏÏÎ "
-"ÎÎÎÏÎÏÎÎÎÎ ÎÎÎÎÏÎÏÏÎÎÏÏÎÏÎ ÎÎÎ ÏÎÎÏÏÎÏÏÎÏÎÏ ÎÎÏÎÎÏÎÎÏ."
+"Î Pango ÏÏÎÏÏÎÏÎÎÎÎ ÏÎ ÏÏÎÎÎÎ ÏÏÏÎ ÎÎÎÎÎÎÎÏ, ÏÏÏÏ ÎÎÎÎÎ ÎÎ ÏÎÎÎÎÎÎ "
+"ÏÎÏÎÎÏÎÏÎÏ, ÎÎ ÎÎÏÎÎÎÎ ÏÎÏÎÎÏÎÏÎÏ ÎÎÎ ÎÎ ÏÏÎÎÏÎÎÎÎÏÎÎÏ. Î Pango ÏÏÎÏÎÎÎÏÎÎÎÎ "
+"ÎÎÎ ÎÏÎÎ ÏÏÎÏÎÎÎ ÏÎÏ ÎÏÎÎÎÎÎ XML ÎÎÎ ÎÎÎÎÎÎÎÏÎÎ PangoMarkup, Î ÎÏÎÎÎ ÏÎÏ "
+"ÎÏÎÏÏÎÏÎÎ ÎÎ ÏÏÎÎÎÎÎÏÎ ÏÎ ÎÎÎÎÎÎÏ, ÏÎ ÏÏÏÎÎ ÎÎÎ ÏÎ ÏÏÏÎ ÏÎÏ ÎÏÎÎÎÎÏÎÏÎÎÏÎÏ, "
+"ÎÎÎÏÏ ÎÎÎ ÎÎÎÎ ÎÎÏÏÎÏÎÎÏÎ ÏÎÏ ÎÎÎÎÎÎÎÏ. ÎÏÎÏÎÎÎÏÎÎÏÎÏÎÏ PangoMarkup, "
+"ÎÏÎÏÎÎÏÎ ÎÎ ÎÏÎÎÎÏÎ ÏÎ ÎÎÏÏÏ ÏÎÏ ÎÏÎÎÎÎÏ ÏÏÏÎ ÏÏÏÎÏ ÎÎ ÏÏÎÎÎÎÎÏÎÎ ÎÎ ÏÎ "
+"ÏÏÎÏÎÎÏÎÏÎ ÎÎÎÎ ÏÎ ÎÎÎÎ ÎÏÎÎÎ ÎÎÎÎÎÎÎÏ. Î PangoMarkup ÎÏÎÏÎÎ ÎÎ "
+"ÏÏÎÏÎÎÎÏÎÎÎÎÎÎ ÎÏÎÏÎÎÎÎÏ ÎÏÏ ÏÎ GTK+, ÎÏÎÏÏÎÏÎÎÏÎÏ ÏÎÏ ÎÎ ÎÎÎÎÎÏÏÏÎÎÏÎ ÎÎ "
+"ÎÏÎÎÎÎÎ ÏÎ ÏÏÏÎ ÏÎÏ ÎÎÎÎÎÎÎÏ ÏÏÎ ÎÏÎÏÎÎÏÎ ÎÎÎÏÎÏÏÎ ÏÎÏ."
 
-#: C/d-bus.page:20(p)
+#: C/pango.page:40(page/p)
 msgid ""
-"D-Bus provides a session and a system bus. The session bus is used by "
-"applications in a single user session, allowing them to share data and event "
-"notifications and to integrate into the user's desktop. For example, movie "
-"players can send a D-Bus message to prevent the screensaver from activating "
-"when the user is watching a movie."
+"You should use Pango directly whenever you need to lay text out on the "
+"screen or on a different medium. Using Pango will allow your text layout to "
+"work seamlessly with GTK+ and the rest of the GNOME platform. It will help "
+"you create portable code, and most importantly, it will ensure that your "
+"application can render text correctly in hundreds of different languages."
 msgstr ""
-"ÎÎ D-Bus ÏÎÏÎÏÎÎ ÎÎÎ ÎÎÎÏÎÎ ÏÏÎÎÎÏÎÎÏ ÎÎÎ ÎÎÎ ÎÎÎÏÎÎ ÏÏÏÏÎÎÎÏÎÏ. Î ÎÎÎÏÎÎÏ "
-"ÏÏÎÎÎÏÎÎÏ ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÎÏÏ ÎÏÎÏÎÎÎÎÏ ÏÎ ÏÏÎÎÎÏÎÎÏ ÎÎ ÎÎÎÎ ÎÎÎÎÎÎÎÏ "
-"ÏÏÎÏÏÎ, ÎÎÎ ÏÎÏÏ ÎÏÎÏÏÎÏÎÎ ÎÎ ÎÎÎÏÎÎÎÎÏÎÎ ÎÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎÎÏÎÎÎÏÎÎÏ ÎÎÎ "
-"ÎÎÎÎÎÏÏÎ, ÎÎÎÏÏ ÎÎÎ ÎÎ ÎÎÏÏÎÎÏÏÎÎÎÏÎÎ ÏÏÎÎ ÎÏÎÏÎÎÎÎÎ ÎÏÎÎÏÎÎÏ ÏÎÏ ÏÏÎÏÏÎ. "
-"ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ, Î ÎÏÎÏÎÎÎÎ ÎÎÎÏÎÏÎÎÏÎÎÏ ÏÎÎÎÎÏÎ ÎÏÎÏÎÎ ÎÎ ÏÏÎÎÎÎÎ ÎÎÎ ÎÎÎÏÎÎ "
-"D-Bus ÎÎÎ ÎÎ ÎÎÏÎÎÎÏÎÎ ÏÎÎ ÎÎÎÏÎÎÏÎÎÎÏÎ ÏÎÏ ÏÏÎÏÏÎÏÎÎÏ ÎÎÏÎÎÏ, ÏÏÎÎ Î "
-"ÏÏÎÏÏÎÏ ÏÎÏÎÎÎÎÎÏÎÎÎ ÏÎÎÎÎÎ."
+"ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ ÎÏÎÏÎÎÎÎÏ ÏÎÎ Pango ÎÎÎÎ ÏÎÏÎ ÏÎÏ ÎÏÎÎÏÎÎÎÏÎ ÎÎ ÎÎÏÎÎÎÏÎÏÎ "
+"ÎÎÎÎÎÎÎ ÏÏÎÎ ÎÎÏÎÎ Î ÏÎ ÎÎÎÎ ÎÎÏÎ. Î ÏÏÎÏÎ ÏÎÏ Pango ÎÏÎÏÏÎÏÎÎ ÏÏÎ ÎÎÎÏÎÎÎ "
+"ÏÎÏ ÎÎÎÎÎÎÎÏ ÏÎÏ ÎÎ ÎÎÎÎÎÏÏÎÎÎÏÎÎ ÏÏÏÎÏ ÎÎÎÎÎÎ ÏÏÏÎÎÎÎÎ ÎÏÏ ÏÎ GTK+ ÎÎÎ ÏÎÎ "
+"ÏÏÏÎÎÎÏÎ ÏÎÎÏÏÏÏÎÎ ÏÎÏ GNOME. ÎÏÎÎÎÎÏÏ, ÏÎÏ ÎÎÎÎÎÎÎ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎ ÏÎÏÎÏÏ "
+"ÎÏÎÎÎÎ ÎÎÎ, ÎÏÏÎÏÏ, ÎÎÎÏÏÎÎÎÎÎÎ ÏÏÎ Î ÎÏÎÏÎÎÎÎ ÏÎÏ ÎÎ ÎÎÏÎÎÎÎÎÎ ÎÏÎÎÎ "
+"ÎÎÎÎÎÎÎ ÏÎ ÎÎÎÏÎÎÏÎÎÎÏ ÎÎÎÏÎÏÎÏÎÎÎÏ ÎÎÏÏÏÎÏ."
 
-#: C/d-bus.page:26(p)
+#: C/pango.page:49(item/p)
 msgid ""
-"The system bus is a single message bus which runs independently of any user "
-"sessions. It can communicate with applications in any session, enabling "
-"those applications to interact with system components without dealing with "
-"low-level system details. The system bus is used to provide important "
-"functionality that users expect to work on their systems. For example, the "
-"system bus is used to monitor when network interfaces go up or down, when "
-"external drives get plugged in, and when laptop batteries are low."
+"<link href=\"http://library.gnome.org/devel/pango/stable/\";>Pango Reference "
+"Manual</link>"
 msgstr ""
-"Î ÎÎÎÏÎÎÏ ÏÏÏÏÎÎÎÏÎÏ ÎÎÎÎÎ ÎÎÎÏ ÎÎÎÏÎÎÏ ÎÎÎÎÎÎÎÎÏ ÎÎÎÏÎÎÏÎÏ ÏÎÏ ÎÎÎÏÎÏÏÎÎÎ "
-"ÎÎÎÎÎÏÏÎÏÎ ÎÏÏ ÏÎÏ ÏÏÎÎÎÏÎÎÏ ÏÏÎÏÏÏÎ. ÎÏÎÏÎÎ ÎÎ ÎÏÎÎÎÎÎÏÎÎÎ ÎÎ ÎÏÎÏÎÎÎÎÏ ÏÎ "
-"ÏÎÎÏ ÏÎÏ ÏÏÎÎÎÏÎÎÏ ÎÎÎ ÎÎ ÏÎÏÏ ÎÏÎÏÏÎÏÎÎ ÎÎ ÏÏÎÎÏÎÎÎÎÎÏÎÎ ÎÎ ÏÏÏÏÎÏÎÎÎ ÏÎÏ "
-"ÏÏÏÏÎÎÎÏÎÏ ÏÏÏÎÏ ÎÎ ÏÏÎÎÏÎÏÏÎÎÏÎÎ ÏÏÎÏ ÎÎÏÏÎÎÎÏÎÎÎÏ ÏÎÎÎÎÎÏ ÎÏÎÏÎÎÎÏ ÏÎÏ "
-"ÏÏÏÏÎÎÎÏÎÏ. Î ÎÎÎÏÎÎÏ ÏÏÏÏÎÎÎÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÎÎÎ ÎÎ ÏÎÏÎÏÎÎ ÏÎÎÎÎÏÎÎÎÏ "
-"ÎÎÎÏÎÏÏÎÎÎÏ ÏÎÏ ÎÎ ÏÏÎÏÏÎÏ ÎÎÎÎÎÎÎÏÎ ÎÎ ÎÏÎÏÎ ÏÏÎ ÏÏÏÏÎÎÎ ÏÎÏÏ. ÎÎÎ "
-"ÏÎÏÎÎÎÎÎÎÎ, Î ÎÎÎÏÎÎÏ ÏÏÏÏÎÎÎÏÎÏ ÏÎÏÎÎÎÎÎÏÎÎÎ ÏÏÏÎ ÏÏÎÎÎÎÏÏÎ Î ÎÏÎÏÏÎÎÎÎÏÏÎ "
-"ÎÏÏ ÏÎ ÎÎÎÏÏÎ, ÎÎ ÎÏÎÏÎ ÏÏÎÎÎÏÎÎ ÎÎÏÏÎÏÎÎÎÏÏ ÎÎÎÎÎÏÏ, Î ÎÎ ÏÎ ÏÎÏÏÎÎ ÏÎÏ "
-"ÎÏÎÏÎÏÎÎÏ ÎÎÎÎÎ ÏÎÎÎÎÏ."
+"<link href=\"http://library.gnome.org/devel/pango/stable/\";>ÎÎÏÎÎÏÎÎÎÎ "
+"ÎÎÎÏÎÏÎÏ ÏÎÏ Pango</link>"
+
+#: C/pango.page:50(item/p)
+msgid "<link href=\"http://www.pango.org\";>The Pango web site</link>"
+msgstr "<link href=\"http://www.pango.org\";>Î ÎÏÏÎÏÎÎÎÎÎ ÏÎÏ Pango</link>"
+
+#: C/telepathy.page:6(info/desc)
+msgid "Unified and integrated real-time communication service"
+msgstr "ÎÎÎÎÎÎ ÎÎÎ ÎÎÏÏÎÎÏÏÎÎÎÎ ÏÏÎÏÎÏÎÎ ÎÏÎÎÎÎÎÏÎÎÎÏ ÏÏÎÎÎÎÏÎÎÎÏ ÏÏÏÎÎÏ"
+
+#: C/telepathy.page:10(page/title)
+msgid "Telepathy"
+msgstr "Telepathy"
 
-#: C/d-bus.page:35(p)
+#: C/telepathy.page:12(page/p)
 msgid ""
-"D-Bus is developed jointly on <link href=\"http://www.freedesktop.org/";
-"\">freedesktop.org</link>, so you can use it with different desktop "
-"environments and applications. Because D-Bus is a cross-desktop project, you "
-"use it to create portable and versatile software that seamlessly integrates "
-"with the user's desktop, regardless of which desktop it is."
+"Telepathy provides a powerful framework for interacting with the user's "
+"instant messaging contacts. With Telepathy, all accounts and connections are "
+"handled by a D-Bus session service that's deeply integrated into the GNOME "
+"desktop. Applications can tie into this service to communicate with contacts."
 msgstr ""
-"ÎÎ D-Bus ÎÎÎÏÏÏÏÏÎÏÎÎ ÎÏÏ ÏÎ <link href=\"http://www.freedesktop.org/";
-"\">freedesktop.org</link>, ÎÏÎÎÎÎÏÏ ÎÏÎÏÎÎÏÎ ÎÎ ÏÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÏÎ "
-"ÎÎÎÏÎÏÎÏÎÎÎ ÏÎÏÎÎÎÎÎÎÎÏÎ ÎÎÎ ÎÏÎÏÎÎÎÎÏ. ÎÏÎÎÎÎ ÏÎ D-Bus ÎÎÎÏÎÏÏÎÎÎ ÏÎ "
-"ÏÎÎÎÎÏÎÎÏ ÎÏÎÏÎÎÎÎÎÏ ÎÏÎÎÏÎÎÏ, ÎÏÎÏÎÎÏÎ ÎÎ ÏÎ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎ ÎÎÎ ÎÎ "
-"ÎÎÎÎÎÏÏÎÎÏÎÏÎ ÏÎÏÎÏÏ ÎÎÎ ÎÏÎÎÎÎÏÎ ÎÎÎÎÏÎÎÎÏ ÏÎÏ ÎÎ ÏÏÎÎÏÎÎÎÎÏÎÎ ÎÏÎÎÎ ÎÎ ÏÎÎ "
-"ÎÏÎÏÎÎÎÎÎ ÎÏÎÎÏÎÎÏ ÏÎÏ ÏÏÎÏÏÎ, ÎÎÎÎÎÏÏÎÏÎ ÎÏÏ ÏÎ ÏÎÎÎ ÎÎ ÎÎÎÎÎ ÎÏÏÎ."
+"ÎÎ Telepathy ÏÎÏÎÏÎÎ ÎÎÎ ÎÏÏÏÏÏ ÏÎÎÎÎÏÏ ÎÎÎ ÎÎÎÎÎÎÏÎÎÏÎÏÎ ÎÎ ÏÎÏ ÎÏÎÏÎÏ "
+"ÎÎÎÏÏÎ ÎÎÎÏÎÎÏÏÎ ÏÎÏ ÏÏÎÏÏÎ. ÎÎ ÏÎ Telepathy, ÏÎÎÎ ÎÎ ÎÎÎÎÏÎÎÏÎÎÎ ÎÎÎ ÎÎ "
+"ÏÏÎÎÎÏÎÎÏ ÏÎÎÏÎÎÎÎÏÎÎ ÎÏÏ ÎÎÎ ÏÏÎÏÎÏÎÎ ÏÏÎÎÎÏÎÎÏ ÎÎÎÏÎÎÏ D ÏÎÏ ÎÎÎÎÎ ÎÎÎÎÎ "
+"ÎÎÏÏÎÎÏÏÎÎÎÎ ÏÏÎÎ ÎÏÎÏÎÎÎÎÎ ÎÏÎÎÏÎÎÏ ÏÎÏ GNOME. ÎÎ ÎÏÎÏÎÎÎÎÏ ÎÏÎÏÎÏÎ ÎÎ "
+"ÏÏÎÏÎÏÏÎÏÎ ÎÎ ÎÏÏÎÎ ÏÎÎ ÏÏÎÏÎÏÎÎ ÎÎÎ ÎÏÎÎÎÎÎÏÎÎÎ ÎÎ ÎÏÎÏÎÏ."
 
-#: C/d-bus.page:42(p)
+#: C/telepathy.page:18(page/p)
 msgid ""
-"GNOME provides full support for D-Bus using the GDBus APIs in <link xref="
-"\"gio\">GIO</link>."
+"With the Telepathy Tubes API, you can even tunnel an arbitrary protocol over "
+"modern instant messaging protocols like Jabber to create interactive "
+"applications. Create multi-player games or collaborative editors that "
+"integrate with the desktop-wide instant messaging services."
 msgstr ""
-"ÎÎ GNOME ÏÎÏÎÏÎÎ ÏÎÎÏÎ ÏÏÎÏÏÎÏÎÎÎ ÎÎÎ ÎÎÎÏÎÎ D ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ APIs GDBus "
-"ÏÏÎ <link xref=\"gio\">GIO</link>."
+"ÎÎ ÏÎ Telepathy Tubes API, ÎÏÎÏÎÎÏÎ ÎÎÏÎÎ ÎÎ ÎÏÎÎÎÎÎÎÎÏÎÏÎ ÎÎÎ ÎÎÎÏÎÎÏÎ "
+"ÏÏÏÏÏÎÎÎÎÎ ÏÎÎÏ ÏÎ ÏÏÎÏÏÎÎÎ ÏÏÏÏÏÎÎÎÎÎ ÎÎÎÏÏÎ ÎÎÎÏÎÎÏÏÎ ÏÏÏÏ ÏÎ Jabber ÎÎÎ "
+"ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎ ÎÎÎÎÏÎÏÏÎÎÎÏ ÎÏÎÏÎÎÎÎÏ. ÎÎÎÎÎÏÏÎÎÏÏÎ ÏÎÎÏÎÎÎÎÎ ÏÎÎÎÎÏÎÏÎ "
+"ÏÎÎÎÏÏÎ Î ÏÏÎÎÏÎÎÎÏÎÎÎÎÏÏ ÎÏÎÎÎÏÎÎÏÏÎÏ ÏÎÏ ÎÎÏÏÎÎÏÏÎÎÎÏÎÎ ÎÎ ÏÎÏ ÏÏÎÏÎÏÎÎÏ "
+"ÎÎÎÏÏÎ ÎÎÎÏÎÎÏÏÎ ÏÎ ÏÎÎ ÏÎÎ ÎÏÎÏÎÎÎÎÎ ÎÏÎÎÏÎÎÏ."
 
-#: C/d-bus.page:47(link)
-msgid "D-Bus Tutorial"
-msgstr "ÎÎÎÎÎÎ ÎÎÎÏÎÎÏ D"
+#: C/telepathy.page:25(item/p)
+msgid ""
+"<link href=\"http://telepathy.freedesktop.org/doc/book/\";>Telepathy "
+"Developer's Manual</link>"
+msgstr ""
+"<link href=\"http://telepathy.freedesktop.org/doc/book/\";>ÎÎÏÎÎÏÎÎÎÎ "
+"ÎÎÎÏÎÎÏÎÏÏÎ ÏÎÏ Telepathy</link>"
 
-#: C/d-bus.page:48(link)
-msgid "D-Bus Specification"
-msgstr "ÎÏÎÎÎÎÎÏÎÏÎ ÎÎÎÏÎÎÏ D"
+#: C/telepathy.page:26(item/p)
+msgid ""
+"<link href=\"http://telepathy.freedesktop.org\";>The Telepathy web site</link>"
+msgstr ""
+"<link href=\"http://telepathy.freedesktop.org\";>Î ÎÏÏÎÏÎÎÎÎÎ ÏÎÏ Telepathy</"
+"link>"
 
-#: C/clutter.page:6(desc)
-msgid "Stunning graphics and animations with a scene-graph API"
-msgstr "ÎÎÎÎÏÎÎ ÎÏÎÏÎÎÎ ÎÎÎ ÎÎÎÎÏÎÎÏ ÎÎ ÎÎÎ API ÏÎÎÎÎÎÎÏ ÎÏÎÏÎÎÎÏ"
+#: C/webkit.page:6(info/desc)
+msgid "The power of HTML5 and the web in your application"
+msgstr "Î ÎÏÎÎÎÎ ÏÎÏ HTML5 ÎÎÎ ÏÎÏ ÎÏÏÎÏ ÏÏÎÏ ÎÏÎÏÎÎÎÎÏ ÏÎÏ"
 
-#: C/clutter.page:10(title)
-msgid "Clutter"
-msgstr "Clutter"
+#: C/webkit.page:10(page/title)
+msgid "WebKit"
+msgstr "WebKit"
 
-#: C/clutter.page:12(p)
+#: C/webkit.page:12(page/p)
 msgid ""
-"Clutter is a library that allows creating fast, portable, dynamic, "
-"compelling user interfaces."
+"WebKit is a powerful, multi-platform HTML engine used in open source and "
+"commercial products. WebKitGTK+ is the port of WebKit built on <link xref="
+"\"gtk\">GTK+</link> and integrated into the GNOME developer platform. "
+"WebKitGTK+ is developed upstream as part of the main WebKit project, so it's "
+"always up to date with the latest HTML5 features."
 msgstr ""
-"Clutter ÎÎÎÎÎ ÎÎÎ ÎÎÎÎÎÎÎÎÎÎ ÏÎÏ ÎÏÎÏÏÎÏÎÎ ÏÎ ÎÎÎÎÎÏÏÎÎÎ ÎÏÎÎÎÏÏÎ, ÏÎÏÎÏÏÎ, "
-"ÎÏÎÎÎÎÎÏÎ, ÎÎÎÏÎÎÎÏÎÏÏÎ ÎÎÎÏÎÏÏÎ ÏÏÎÏÏÎ."
+"WebKit ÎÎÎÎÎ ÎÎÎ ÎÏÏÏÏÎ ÎÎÎÏÏÏÏÎÎÎÎÎ ÎÎÏÎÎÎ ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÎÏÎÎ ÏÎ ÎÎÎÎÎÏÏ "
+"ÎÎÎÎÏÎÎÎÏ ÎÎÎ ÎÎÏÎÏÎÎÎ ÏÏÎÏÏÎÏÎ. ÎÎ WebKitGTK ÎÎÎÎÎ Î ÎÏÏÎ ÏÎÏ WebKit "
+"ÎÎÎÏÏÏÎÎÎÎÎ ÏÏÎ <link xref=\"gtk\">GTK+</link> ÎÎÎ ÎÎÏÏÎÎÏÏÎÎÎÎ ÏÏÎ "
+"ÎÎÎÎÏÎÎÎÏ ÎÎÎÏÏÏÎÎÏ ÏÎÏ GNOME. ÎÎ WebKitGTK ÎÎÎÏÏÏÏÏÎÏÎÎ ÎÎÎÎÎÎÎ ÏÏ ÎÎÏÎÏ "
+"ÏÎÏ ÎÏÏÎÎÏ ÎÏÎÎÏ WebKit, ÎÏÏÎ ÎÎÎÎÎ ÏÎÎÏÎ ÎÎÎÎÎÏÏÎÎÎÎ ÎÎ ÏÎ ÏÎÎÎÏÏÎÎÎ "
+"ÎÎÏÏÎÏÎÎÏÎ ÏÎÏ HTML5."
 
-#: C/clutter.page:15(p)
+#: C/webkit.page:19(page/p)
 msgid ""
-"Clutter uses the <link href=\"http://www.khronos.org/opengl/\";>OpenGL</link> "
-"and <link href=\"http://www.khronos.org/opengles/\";>OpenGL|ES</link> "
-"industry standard API to access the accelerated graphical hardware on both "
-"desktop and mobile environments alike, without exposing the complexities of "
-"GPU pipeline programming."
+"WebKitGTK+ makes it easy to add web functionality to your application, or to "
+"use HTML5 and associated technologies to create dynamic user interfaces "
+"quickly."
 msgstr ""
-"ÎÎ Clutter ÏÏÎÏÎÎÎÏÎÎÎÎ ÏÎ ÎÎÎÎÎÏÎÎÎÎÏ ÏÏÏÏÏÏÎ API <link "
-"href=\"http://www.khronos.org/opengl/\";>OpenGL</link> ÎÎÎ <link "
-"href=\"http://www.khronos.org/opengles/\";>OpenGL|ES</link> ÎÎÎ ÏÏÏÏÎÎÏÎ ÏÏÎ "
-"ÎÏÎÏÎÏÏÎÏÎÎÎÎ ÎÏÎÏÎÎÏ ÏÎÎÎÏ ÎÎÎ ÏÏÎÎ ÎÏÎÏÎÎÎÎÎ ÎÏÎÎÏÎÎÏ ÎÎÎ ÏÎ ÎÎÎÎÏÎ "
-"ÏÎÏÎÎÎÎÎÎÎÏÎ ÏÎÎÎÎ, ÏÏÏÎÏ ÎÎÎÎÏÎ ÏÏÎÏ ÏÎÏÎÏÎÎÎÎÏ ÏÎÏ ÏÏÎÎÏÎÎÎÎÏÎÏÏÎÎÎÏ "
-"ÎÎÎÏÎÏÎÏÏÎÏ GPU."
+"ÎÎ WebKitGTK+ ÎÎÎÏÎÎÎÏÎÎÎ ÏÎÎ ÏÏÎÏÎÎÎÎ ÎÎÎÏÎÏÏÎÎÎÏÏÎÏÎÏ ÎÏÏÎÏ ÏÏÎÎ ÎÏÎÏÎÎÎÎ "
+"ÏÎÏ, Î ÏÎ ÏÏÎÏÎ HTML5 ÎÎÎ ÏÏÏÏÎÏÎÏÎÎÎÏÎ ÏÎÏÎÎÎÎÎÎÏÎ ÎÎÎ ÎÏÎÎÎÏÎ ÎÎÎÎÎÏÏÎÎÎ "
+"ÎÏÎÎÎÎÎÏÎ ÎÎÎÏÎÏÏÎ ÏÏÎÏÏÎ."
 
-#: C/clutter.page:21(p)
+#: C/webkit.page:24(item/p)
 msgid ""
-"Clutter does not specify any visual style, and does not provide any pre-"
-"defined complex user interface control; it lets the developer define what is "
-"needed, using a flexible scene graph API, with free-form placement of the "
-"scene elements (or \"actors\") on the main viewport (or \"stage\")."
+"<link href=\"http://developer.gnome.org/gnome-devel-demos/stable/message-";
+"board.c.html\">WebKitGTK+ demo tutorial</link>"
 msgstr ""
-"ÎÎ Clutter ÎÎÎ ÎÎÎÎÏÎÎÎÎ ÎÎÎÎÎÎ ÎÏÏÎÎÏ ÏÏÎÏ ÎÎÎ ÎÎÎ ÏÎÏÎÏÎÎ ÎÎÎÎÎÎ "
-"ÏÏÎÎÎÎÎÏÎÏÎÎÎÎ ÏÏÎÎÎÏÎ ÎÎÎÎÏÎ ÎÎÎÏÎÏÎÏ ÏÏÎÏÏÎÂ ÎÏÎÏÏÎÏÎÎ ÏÏÎÎ ÏÏÎÎÏÎÎÎÎÏÎÏÏÎ "
-"ÎÎ ÎÎÎÎÏÎÏÎÎ ÏÎ ÎÏÎÎÏÎÎÏÎÎ, ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÎÎÎ ÎÏÎÎÎÎÏÎ ÏÎÎÎÎÎÏ ÎÏÎÏÎÎÎ "
-"API, ÎÎ ÎÎÎÏÎÎÏÎÏ ÎÎÏÏÎÏ ÏÎÏÎÎÎÏÎÏÎ ÏÏÎ ÏÎÎÎÎÎÏÎ ÏÏÎÎÏÎÎÏÎ (Î \"ÎÏÎÏÏÏÎ\") "
-"ÏÏÎÎ ÎÏÏÎÎ ÎÏÏÎ ÏÏÎÎÎÎÎÏ (Î \"ÏÏÎÎÎÎ\")."
-
-#: C/clutter.page:26(p)
+"<link href=\"http://developer.gnome.org/gnome-devel-demos/stable/message-";
+"board.c.html\">ÎÎÎÎÎÎ WebKitGTK+</link>"
+
+#: C/webkit.page:25(item/p)
 msgid ""
-"Clutter comes with pre-defined actors for displaying solid colors, image "
-"data, text and custom high-precision 2D drawing using the <link xref=\"cairo"
-"\">Cairo</link> API. Clutter also provides generic classes for structuring a "
-"user interface using both a box-packing model like <link xref=\"gtk\">GTK+</"
-"link>, and a series of free-form \"constraints\"."
+"<link href=\"http://webkitgtk.org/reference/index.html\";>WebKitGTK+ "
+"Reference Manual</link>"
 msgstr ""
-"ÎÎ Clutter ÎÏÏÎÏÎÎ ÎÎ ÏÏÎÎÎÎÎÏÎÏÎÎÎÎÏÏ ÎÏÎÏÏÎÏ ÎÎÎ ÏÏÎÎÎÎÎ ÏÏÎÏÎÎÏÎ "
-"ÏÏÏÎÎÏÏÎ, ÎÎÎÎÎÎÎÏÎ ÎÎÎÏÎÎÏ, ÎÎÎÎÎÎÎÏ ÎÎÎ ÏÏÎÏÎÏÎÎÏÎÎÎÎÏ ÏÏÎÎÎÏ ÎÎÏÎÎÎÎÎÏ 2Î "
-"ÏÏÎÎÎÎÏÎÏ ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ API <link xref=\"cairo\">Cairo</link>. ÎÎ "
-"Clutter ÎÏÎÏÎÏ ÏÎÏÎÏÎÎ ÎÎÎÎÎÎÏ ÎÎÎÏÎÎÏ ÎÎÎ ÎÏÎÎÏÎ ÎÎÎÏÎÏÎÏ ÏÏÎÏÏÎ "
-"ÏÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÎÎÎ ÏÏÏÏÏÏÎ ÏÎÎÎÏÎ ÏÎÎÎÏÎÎÏ ÏÏÏÏ <link "
-"xref=\"gtk\">GTK+</link> ÎÎÎ ÎÎÎ ÏÎÎÏÎ ÎÎÎÏÎÎÏÎÏ ÎÎÏÏÎÏ \"ÏÎÏÎÎÏÎÏÎÏÎ\"."
+"<link href=\"http://webkitgtk.org/reference/index.html\";>ÎÎÏÎÎÏÎÎÎÎ ÎÎÎÏÎÏÎÏ "
+"ÏÎÏ WebKitGTK+</link>"
+
+#: C/webkit.page:26(item/p)
+msgid "<link href=\"http://webkitgtk.org/\";>The WebKitGTK+ web site</link>"
+msgstr ""
+"<link href=\"http://webkitgtk.org/\";>Î ÎÏÏÎÏÎÎÎÎÎ ÏÎÏ WebKitGTK+</link>"
+
+#: C/cc-by-sa-3-0.xml:4(p/link)
+msgid "Creative Commons Attribution-Share Alike 3.0 United States License"
+msgstr "Creative Commons Attribution-Share Alike 3.0 United States License"
+
+#: C/cc-by-sa-3-0.xml:3(license/p)
+msgid "This work is licensed under a <_:link-1/>."
+msgstr "ÎÏÏÏ ÏÎ ÎÏÎÎ ÎÏÎÎ ÎÎÎÎÎÎÎÏÎÎÎÎ ÏÏÏ ÏÎÎ <_:link-1/>."
+
+#: C/cc-by-sa-3-0.xml:6(license/p)
+msgid ""
+"As a special exception, the copyright holders give you permission to copy, "
+"modify, and distribute the example code contained in this document under the "
+"terms of your choosing, without restriction."
+msgstr ""
+"ÎÏ ÎÎÎÎÎÎ ÎÎÎÎÏÎÏÎ, ÎÎ ÏÎÎÏÎÎÏÎÎÎÎ ÎÎÎÎÎÏÎÏÎÏ ÏÎÏ ÎÏÎÏÏÎÏÎÏÎ ÎÎ ÎÎÏÎÎÏÎÏÎÏÎ, "
+"ÎÎ ÏÏÎÏÎÏÎÎÎÏÎÏÎ ÎÎÎ ÎÎ ÎÎÎÎÎÎÎÎÎÎÎÏÎ ÏÎ ÏÎÏÎÎÎÎÎÎÎÏÎ ÏÎÎÎÎÎÏ ÎÏÎÎÎÎ ÏÎÏ "
+"ÏÎÏÎÎÎÎÎÎÎÎÎÏÎÎ Ï' ÎÏÏÏ ÏÎ ÎÎÎÏÎÏÎ ÏÏÏ ÏÎÏÏ ÏÏÎÏÏ ÏÎÏ ÎÏÎÎÎÎÎÏ ÏÎÏ, ÏÏÏÎÏ "
+"ÏÎÏÎÎÏÎÏÎÏ."
+
+#: C/legal-fdl.xml:8(para/ulink)
+msgid "link"
+msgstr "ÏÏÎÎÎÏÎÎ"
+
+#: C/legal-fdl.xml:2(legalnotice/para)
+msgid ""
+"Permission is granted to copy, distribute and/or modify this document under "
+"the terms of the GNU Free Documentation License (GFDL), Version 1.1 or any "
+"later version published by the Free Software Foundation with no Invariant "
+"Sections, no Front-Cover Texts, and no Back-Cover Texts. You can find a copy "
+"of the GFDL at this <_:ulink-1/> or in the file COPYING-DOCS distributed "
+"with this manual."
+msgstr ""
+"ÎÏÎÏÏÎÏÎÏÎÎ Î ÎÎÏÎÎÏÎÏÎ, ÎÎÎÎÎÎÎÎÎÎ ÎÎÎ/Î ÏÏÎÏÎÏÎÎÎÏÎ ÎÏÏÎÏ ÏÎÏ ÎÎÎÏÎÏÎÏ ÏÏÏ "
+"ÏÎÏÏ ÏÏÎÏÏ ÏÎÏ ÎÎÎÏÎÎÏÎÏ ÎÎÎÎÎÏ ÎÎÎÎÎÏÎÏÏÎÏ GNU (GFDL), ÎÎÎÎÏÎ 1.1 Î ÎÎÏÏÎÏÎ "
+"ÏÎÏ ÎÎÎÏÎÎÎÎ ÎÏÏ ÏÎ ÎÎÏÏÎÎ ÎÎÎÏÎÎÏÎÏ ÎÎÎÎÏÎÎÎÎÏ ÏÏÏÎÏ ÎÎÎÏÎÎÎÎÏÎ ÎÎÎÎÎÏÎ, "
+"ÏÏÏÎÏ ÎÎÎÎÎÎÎ ÎÎÏÏÏÎÎÎÏ, ÎÎÎ ÏÏÏÎÏ ÎÎÎÎÎÎÎ ÎÏÎÏÎÎÏÏÎÎÎÏ. ÎÏÎÏÎÎÏÎ ÎÎ ÎÏÎÎÏÎ "
+"ÎÎÎ ÎÎÏÎÎÏÎÏÎ ÏÎÏ GFDL ÏÎ ÎÏÏÏ ÏÎ <_:ulink-1/> Î ÏÏÎ ÎÏÏÎÎÎ COPYING-DOCS ÏÎÏ "
+"ÎÎÎÎÎÎÎÏÎÎ ÎÎ ÎÏÏÏ ÏÎ ÎÎÏÎÎÏÎÎÎÎ."
+
+#: C/legal-fdl.xml:11(legalnotice/para)
+msgid ""
+"This manual is part of a collection of GNOME manuals distributed under the "
+"GFDL. If you want to distribute this manual separately from the collection, "
+"you can do so by adding a copy of the license to the manual, as described in "
+"section 6 of the license."
+msgstr ""
+"ÎÏÏÏ ÏÎ ÎÎÏÎÎÏÎÎÎÎ ÎÏÎÏÎÎÎÎ ÎÎÏÎÏ ÏÎÏ ÏÏÎÎÎÎÎÏ ÎÎÏÎÎÏÎÎÎÏÎ ÏÎÏ GNOME ÏÎÏ "
+"ÎÎÎÎÎÎÎÎÏÎÎ ÏÏÏ ÏÎÏÏ ÏÏÎÏÏ ÏÎÏ GFDL. ÎÎ ÎÏÎÎÏÎÎÎÏÎ ÎÎ ÎÎÎÎÎÎÎÎÏÎ ÏÎ ÏÎÏÏÎ "
+"ÎÎÏÎÎÏÎÎÎÎ ÎÎÏÏÏÎÏÏÎ ÎÏÏ ÏÎ ÏÏÎÎÎÎÎ, ÎÏÎÎÎÎÏÎ ÎÎ ÏÏÎÏÎÎÏÎÏÎ ÏÏÎ ÎÎÏÎÎÏÎÎÎÎ "
+"ÎÎÏÎÎÏÎÏÎ ÏÎÏ ÎÎÎÎÎÏ ÏÏÎÏÎÏ, ÏÏÏÏ ÏÏÎÎÎÎÏÎÏÎÎ ÏÏÎ ÎÏÎÏÎ 6 ÏÎÏ ÎÎÎÎÎÏ."
+
+#: C/legal-fdl.xml:17(legalnotice/para)
+msgid ""
+"Many of the names used by companies to distinguish their products and "
+"services are claimed as trademarks. Where those names appear in any GNOME "
+"documentation, and the members of the GNOME Documentation Project are made "
+"aware of those trademarks, then the names are in capital letters or initial "
+"capital letters."
+msgstr ""
+"ÎÎÎÎÎ ÎÏÏ ÏÎ ÎÎÏÎÎÏÎ ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÏÎÏÎÎ ÎÏÏ ÎÏÎÎÏÎÎÎÏ ÎÎÎ ÎÎ ÎÎÎÎÏÎÎÎÏÎ ÏÎ "
+"ÏÏÎÏÏÎÏÎ ÎÎÎ ÏÎÏ ÏÏÎÏÎÏÎÎÏ ÏÎÏÏ ÎÎÎÎÎ ÎÎÏÎÏÎÎÎÎÏÎ ÏÎÎÎÏÎ. ÎÏÎÏ ÎÎÏÎÎÎÎÎÎÏÎÎ "
+"ÏÎÏÎÎÎ ÎÎÏÎÎÏÎ ÏÎ ÎÏÎÎÎÎÎÏÎÏÎ ÏÎÎÎÎÏÎÏÏÎ ÏÎÏ GNOME. ÎÎÎ ÏÎ ÎÎÎÎ ÏÎÏ ÎÏÎÎÏ "
+"ÎÎÎÎÎÏÎÏÏÎÏ ÏÎÏ GNOME ÏÎ ÎÎÏÏÎÎÎÏÎ, ÏÏÏÎ ÎÏÏÎ ÏÎ ÎÎÏÎÎÏÎ ÎÏÎÏÎÎÏÎÎ ÎÎ "
+"ÎÎÏÎÎÎÎÎ ÎÏÎÎÎÎÏÎ Î ÎÎÎÎÎÎÏÎ ÎÎ ÎÎÏÎÎÎÎÎ ÎÏÎÎÎÎ."
 
-#: C/clutter.page:33(p)
+#: C/legal-fdl.xml:30(listitem/para)
 msgid ""
-"Clutter provides an extensible animation framework and graphical effects. An "
-"animation is associated with a timeline and changes one or more properties "
-"of one or more actors over time, for example their rotation in a particular "
-"dimension, scale, size, opacity, etc."
+"DOCUMENT IS PROVIDED ON AN \"AS IS\" BASIS, WITHOUT WARRANTY OF ANY KIND, "
+"EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT "
+"THE DOCUMENT OR MODIFIED VERSION OF THE DOCUMENT IS FREE OF DEFECTS "
+"MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE "
+"RISK AS TO THE QUALITY, ACCURACY, AND PERFORMANCE OF THE DOCUMENT OR "
+"MODIFIED VERSION OF THE DOCUMENT IS WITH YOU. SHOULD ANY DOCUMENT OR "
+"MODIFIED VERSION PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL "
+"WRITER, AUTHOR OR ANY CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY "
+"SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN "
+"ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY DOCUMENT OR MODIFIED VERSION "
+"OF THE DOCUMENT IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER; AND"
 msgstr ""
-"ÎÎ Clutter ÏÎÏÎÏÎÎ ÎÎÎ ÎÏÎÎÏÎÏÎÎÎ ÎÎÎÎÏÎ ÏÎÎÎÎÏÎÏ ÎÎÎ ÎÏÎÏÎÎÎ ÎÏÎ. ÎÎÎ "
-"ÎÎÎÎÏÎ ÏÏÏÏÎÏÎÎÎÏÎÎ ÎÎ ÏÎ ÎÏÎÎÎÎ ÏÏÏÎÎÏ ÎÎÎ ÎÎÎÎÎÎÎ ÎÎÎ Î ÏÎÏÎÏÏÏÏÎÏÎÏ "
-"ÎÎÎÏÏÎÏÎÏ ÎÎÏÏ Î ÏÎÏÎÏÏÏÏÎÏÏÎ ÎÏÎÏÏÏÎ ÎÎ ÏÎÎ ÏÏÏÎÎ, ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ ÏÎÎ "
-"ÏÎÏÎÏÏÏÎÏÎ ÏÎÏÏ ÏÎ ÎÎÎ ÏÏÎÎÎÎÏÎÎÎÎÎ ÎÎÎÏÏÎÏÎ, ÎÎÎÎÎÎÎ, ÎÎÎÎÎÎÏ, ÎÎÎÎÏÎÎÎÎÎ, "
-"ÎÎÏ."
+"Î ÎÎÎÎÎÎÎÎÎÎ ÎÎÎÎ ÎÎÎÎÎÎÎÎÎ ÎÎ ÎÎÎÎÎ, ÎÎÎÎÎ ÎÎÎÎÎ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎÎÎÎ ÎÎ "
+"ÎÎÎÎÎÎÎÎÎÎÎÎ ÎÎÎÎÎÎ ÎÎÎÎÎ Î ÎÎÎ ÎÎÎÎÎ ÎÎÎÎÎ ÎÎÎÎÎÎ. ÎÎÎÎÎÎÎÎ Î ÎÎÎÎÎÎ ÎÎÎ "
+"ÎÎÎ ÎÎÎÎÎÎÎÎ, ÎÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎÎÎÎÎÎÎÎÎ Î ÎÎÎÎÎÎÎÎÎÎ "
+"ÎÎÎÎÎ ÎÎÎÎÎÎ ÎÎ ÎÎÎÎ. ÎÎÎ Î ÎÎÎÎÎÎÎÎÎÎ ÎÎÎÎ Î ÎÎÎÎÎÎÎÎÎ ÎÎÎÎÎ ÎÎÎÎÎ ÎÎÎÎÎ "
+"ÎÎÎÎ ÎÎÎÎÎÎ ÎÎÎÎÎ ÎÎÎÎÎ ÎÎÎÎÎÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎÎÎÎ ÎÎÎ ÎÎÎÎÎÎÎÎÎ. Î ÎÎÎÎÎÎÎÎ "
+"ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎÎÎÎÎÎÎ ÎÎÎÎ ÎÎÎ ÎÎÎÎÎÎÎÎÎÎ ÎÎÎÎÎ ÎÎÎÎÎÎÎÎÎÎÎ ÎÎÎÎÎÎÎ ÎÎÎÎÎ. "
+"ÎÎÎÎÎ ÎÎÎÎÎ ÎÎÎ ÎÎÎÎÎÎÎÎÎÎÎ Î ÎÎÎÎÎÎÎÎÎÎ ÎÎÎÎÎ ÎÎÎ ÎÎÎÎÎÎÎÎÎÎÎ ÎÎÎÎ ÎÎÎÎ ÎÎÎ "
+"ÎÎÎÎÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ ÎÎÎÎÎÎÎÎ ÎÎÎÎÎÎÎ."
 
-#: C/clutter.page:38(p)
+#: C/legal-fdl.xml:47(listitem/para)
 msgid ""
-"A number of third-party libraries allow integration with other technologies, "
-"such as: Clutter-GTK, for embedding a Clutter stage inside a GTK+ "
-"application; Clutter-GStreamer, for embedding GStreamer video and audio "
-"pipelines; Clutter-Box2D and Clutter-Bullet, for adding physics interaction "
-"in both 2D and 3D environments."
+"UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER IN TORT (INCLUDING "
+"NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL THE AUTHOR, INITIAL WRITER, ANY "
+"CONTRIBUTOR, OR ANY DISTRIBUTOR OF THE DOCUMENT OR MODIFIED VERSION OF THE "
+"DOCUMENT, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON "
+"FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF "
+"ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, "
+"WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER DAMAGES "
+"OR LOSSES ARISING OUT OF OR RELATING TO USE OF THE DOCUMENT AND MODIFIED "
+"VERSIONS OF THE DOCUMENT, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE "
+"POSSIBILITY OF SUCH DAMAGES."
+msgstr ""
+"ÎÎ ÎÎÎÎÎ ÎÎÎÎÎÎÎÎÎ ÎÎÎ ÎÎ ÎÎÎÎÎ ÎÎÎÎÎÎÎÎÎ ÎÎÎÎÎÎÎ ÎÎÎÎÎÎÎÎÎÎ "
+"(ÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎÎÎÎÎÎ), ÎÎÎÎÎÎÎÎÎÎ Î ÎÎÎÎÎ, Î ÎÎÎÎÎÎÎÎÎ, Î "
+"ÎÎÎÎÎÎÎ ÎÎÎÎÎÎÎÎÎÎ, ÎÎÎÎÎÎÎÎÎÎÎÎ ÎÎÎÎÎÎÎÎÎÎ Î ÎÎÎÎÎÎÎÎÎÎÎÎ ÎÎÎÎÎÎÎÎÎ ÎÎÎ "
+"ÎÎÎÎÎÎÎÎ Î ÎÎÎÎÎÎÎÎÎÎÎÎÎÎ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎÎÎÎÎÎ, Î ÎÎÎÎÎÎÎÎÎÎÎ ÎÎÎÎÎÎÎÎÎÎÎ "
+"ÎÎÎÎÎÎÎÎÎÎÎÎ ÎÎ ÎÎÎ ÎÎÎÎÎÎÎ ÎÎÎÎÎÎÎÎ ÎÎÎÎÎ ÎÎÎÎÎÎÎÎÎ ÎÎÎÎÎÎ ÎÎÎÎÎÎÎÎÎÎ "
+"ÎÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎÎÎÎÎÎÎÎÎ ÎÎÎÎÎ, ÎÎÎÎÎÎ, ÎÎÎÎÎÎÎÎÎÎ, ÎÎÎÎÎ Î ÎÎÎÎÎÎÎÎÎÎÎÎ "
+"ÎÎÎÎÎ ÎÎÎÎÎÎÎÎÎÎ ÎÎÎÎÎÎÎÎÎ ÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎÎ, ÎÎÎÎÎ ÎÎÎÎÎÎÎÎÎÎÎÎ, ÎÎÎÎÎÎ "
+"ÎÎÎÎÎÎÎÎ ÎÎÎÎÎÎÎÎ ÎÎÎÎÎÎÎÎÎ, ÎÎÎÎÎ ÎÎÎÎÎÎÎÎ, ÎÎÎÎÎÎÎ Î ÎÎÎÎ ÎÎÎÎÎÎÎÎÎÎ "
+"ÎÎÎÎÎÎÎÎÎÎ, Î ÎÎÎÎÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎÎ ÎÎÎÎ ÎÎÎÎÎ Î ÎÎÎÎÎÎÎ ÎÎÎ ÎÎ ÎÎÎÎÎÎÎ Î "
+"ÎÎÎÎÎÎÎÎÎÎ ÎÎ ÎÎÎ ÎÎÎÎÎ ÎÎÎ ÎÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎÎÎÎÎÎÎÎÎÎ ÎÎÎÎÎÎÎÎÎÎÎÎÎÎ ÎÎÎÎÎÎÎ "
+"ÎÎÎ ÎÎÎÎÎÎÎÎ, ÎÎÎÎÎ ÎÎÎ ÎÎ ÎÎÎÎÎÎ ÎÎÎ ÎÎÎÎ ÎÎ ÎÎÎÎÎÎÎ ÎÎÎÎÎ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎ "
+"ÎÎÎÎÎÎÎÎÎÎ ÎÎÎÎÎÎÎÎÎ ÎÎÎÎÎÎÎ ÎÎÎÎÎÎ."
+
+#: C/legal-fdl.xml:24(legalnotice/para)
+msgid ""
+"DOCUMENT AND MODIFIED VERSIONS OF THE DOCUMENT ARE PROVIDED UNDER THE TERMS "
+"OF THE GNU FREE DOCUMENTATION LICENSE WITH THE FURTHER UNDERSTANDING THAT: "
+"<_:orderedlist-1/>"
 msgstr ""
-"ÎÎÎÏ ÎÏÎÎÎÏÏ ÎÎÎÎÎÎÎÎÎÏÎ ÏÏÎÏÏÎ ÎÏÎÏÏÎÏÎÎ ÏÎÎ ÎÎÏÏÎÎÏÏÏÎ ÎÎ ÎÎÎÎÏ "
-"ÏÎÏÎÎÎÎÎÎÎÏ, ÏÏÏÏ: Clutter-GTK, ÎÎÎ ÎÎÏÏÎÎÏÏÏÎ ÎÎÏÏ ÏÏÎÎÎÎÏ Clutter ÎÎÏÎ ÏÎ "
-"ÎÎÎ ÎÏÎÏÎÎÎÎ GTK+Â Clutter-GStreamer, ÎÎÎ ÎÎÏÏÎÎÏÏÏÎ ÎÎÎÏÎÎ GStreamer ÎÎÎ "
-"ÎÏÎÏÎÎÏÎ ÎÎÎÏÎÏÎÏÏÎÏÎÂ Clutter-Box2D ÎÎÎ Clutter-Bullet, ÎÎÎ ÏÏÎÏÎÎÎÎ "
-"ÏÏÏÎÎÎÏ ÎÎÎÎÎÎÏÎÎÏÎÏÎÏ ÏÎ 2Î ÎÎÎ 3Î ÏÎÏÎÎÎÎÎÎÎÏÎ."
+"TÎ ÎÎÎÎÎÎÎ ÎÎÎ ÎÎ ÎÎÎÎÎÎÎÎÎÎÎÎ ÎÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎÎ ÎÎÎÎÎ ÎÎÎ "
+"ÎÎÎÎÎÎÎÎÎ ÎÎÎÎÎÎ ÎÎÎÎÎÎÎÎÎÎÎ GNU ÎÎ ÎÎÎ ÎÎÎÎÎÎÎÎ ÎÎÎÎÎÎÎÎÎÎÎÎÎÎ: <_:"
+"orderedlist-1/>"
 
-#: C/clutter.page:45(link)
-msgid "The Clutter Cookbook"
-msgstr "ÎÎÎÎÏÏÎÎÏ ÎÎÎÎÎÎ Clutter"
+#~ msgid "WebKitGTK+ demo tutorial"
+#~ msgstr "ÎÎÏÎÏÏÎÎÏÎ ÎÎÎÎÎÎÏÎÏ WebKitGTK+"
 
-#: C/clutter.page:46(link)
-msgid "Clutter Reference Manual"
-msgstr "ÎÎÏÎÎÏÎÎÎÎ ÎÎÎÏÎÏÎÏ ÏÎÏ Clutter"
+#~ msgid "WebKitGTK+ Reference Manual"
+#~ msgstr "ÎÎÏÎÎÏÎÎÎÎ ÎÎÎÏÎÏÎÏ ÏÎÏ WebKitGTK+"
 
-#: C/clutter.page:47(link)
-msgid "The Clutter web site"
-msgstr "ÎÏÏÎÏÎÎÎÎÎ ÏÎÏ Clutter"
+#~ msgid "The WebKitGTK+ web site"
+#~ msgstr "ÎÏÏÎÏÎÎÎÎÎ ÏÎÏ WebKitGTK+"
 
-#: C/canberra.page:6(desc)
-msgid "Simple audio API for notifications and events"
-msgstr "ÎÏÎÏ ÎÏÎÏÎÎÏ API ÎÎÎ ÎÎÎÎÏÎÎÎÏÎÎÏ ÎÎÎ ÏÏÎÎÎÎÏÎ"
+#~ msgid "Telepathy Developer's Manual"
+#~ msgstr "ÎÎÏÎÎÏÎÎÎÎ ÏÏÎÎÏÎÎÎÎÏÎÏÏÏÎ ÏÎÏ Telepathy"
 
-#: C/canberra.page:10(title)
-msgid "Canberra"
-msgstr "Canberra"
+#~ msgid "The Telepathy web site"
+#~ msgstr "ÎÏÏÎÏÎÎÎÎÎ ÏÎÏ Telepathy"
 
-#: C/canberra.page:12(p)
-msgid ""
-"Canberra is a simple library for playing audio events and notifications, "
-"such as when the user has received a message or an error has occurred. As "
-"well as providing a convenient API, Canberra can also work with the "
-"accessibility features of the desktop to provide alternate notification for "
-"hearing-impaired users."
-msgstr ""
-"Î Canberra ÎÎÎÎÎ ÎÎÎ ÎÏÎÎ ÎÎÎÎÎÎÎÎÎÎ ÎÎÎ ÏÎÎ ÎÎÎÏÎÏÎÎÏÎÎ ÎÏÎÏÎÎÏÎ ÏÏÎÎÎÎÏÏÎ "
-"ÎÎÎ ÎÎÎÎÏÎÎÎÏÎÏÎ, ÏÏÏÏ ÏÏÎÎ ÎÎÎÏ ÏÏÎÏÏÎÏ ÎÎÎÎÎÎÎÎ ÎÎÎ ÎÎÎÏÎÎ Î ÏÏÎÎ "
-"ÏÏÎÎÎÎÎÎÎ ÎÎÎ ÏÏÎÎÎÎ. ÎÏÎÏÎÏ ÏÎÏÎÏÎÎ ÎÎÎ ÎÎÎÎÎÏ API, ÏÎ Canberra ÏÎÏ ÎÏÎÏÎÎ "
-"ÎÏÎÏÎÏ ÎÎ ÎÎÎÏÎÏÏÎÎÏÎÎ ÎÎ ÏÎÏ ÎÏÎÎÏÏÏÎÏÎÏ ÏÏÏÏÎÎÏÎÏ ÏÎÏ ÎÏÎÏÎÎÎÎÎÏ ÎÏÎÎÏÎÎÏ "
-"ÎÎÎ ÎÎ ÎÏÏÎÏÎ ÎÎÎÎÎÎÎÏÎÎÎÏ ÎÎÎÎÏÎÎÎÏÎÎÏ ÎÎÎ ÏÏÎÏÏÎÏ ÎÎ ÏÏÎÎÎÎÎÎÏÎ ÎÎÎÎÏ."
+#~ msgid "Pango Reference Manual"
+#~ msgstr "ÎÎÏÎÎÏÎÎÎÎ ÎÎÎÏÎÏÎÏ ÏÎÏ Pango"
 
-#: C/canberra.page:19(link)
-msgid "Canberra Reference"
-msgstr "AÎÎÏÎÏÎ Canberra"
+#~ msgid "The Pango web site"
+#~ msgstr "ÎÏÏÎÏÎÎÎÎÎ ÏÎÏ Pango"
 
-#: C/cairo.page:6(desc)
-msgid "Modern 2D vector drawing canvas"
-msgstr "ÎÏÎÏÏÎÎÎÏ ÎÎÎÎÎÏ ÏÏÎÎÎÎÏÎÏ 2Î ÎÎÎÎÏÏÎÎÏÎÏ"
+#~ msgid "Libnotify Reference Manual"
+#~ msgstr "ÎÎÏÎÎÏÎÎÎÎ ÎÎÎÏÎÏÎÏ ÏÎÏ Libnotify"
 
-#: C/cairo.page:10(title)
-msgid "Cairo"
-msgstr "Cairo"
+#~ msgid "gnome-keyring Reference Manual"
+#~ msgstr "ÎÎÏÎÎÏÎÎÎÎ ÎÎÎÏÎÏÎÏ ÏÎÏ gnome-keyring"
 
-#: C/cairo.page:12(p)
-msgid ""
-"Cairo is a 2D graphics library featuring a sophisticated API for drawing "
-"vector graphics, compositing images, and rendering anti-aliased text. Cairo "
-"provides support for multiple output devices, including the X Window System, "
-"Microsoft Windows, and image buffers, allowing you to write platform-"
-"independent code to draw graphics on different media."
-msgstr ""
-"Î Cairo ÎÎÎÎÎ ÎÎÎ ÎÎÎÎÎÎÎÎÎÎ 2Î ÎÏÎÏÎÎÏÎ ÏÎÏ ÏÎÏÎÎÎÎÎÎÎÎÎ ÎÎÎ ÏÏÎÎÎÎÎÎÎ API "
-"ÎÎÎ ÏÎ ÏÏÎÎÎÎÏÎ ÎÎÎÎÏÏÎÎÏÎÎÏÎ ÎÏÎÏÎÎÏÎ, ÏÏÎÎÎÏÎÏ ÎÎÎÏÎÏÎ ÎÎÎ ÎÎÏÎÎÎÏÎÏ "
-"ÎÎÎÎÎÎÏÎÎÎÎÏ ÎÎÎÎÎÎÎÏ. Î Cairo ÏÏÎÏÏÎÏÎÎÎÎ ÏÎÎÎÎÏÎÎÏ ÏÏÏÎÎÏÎÏ ÎÎÏÎÎÏ, ÏÏÏÏ "
-"ÏÎ ÏÏÏÏÎÎÎ ÏÎÏÎÎÏÏÏÎ X , ÏÎ Microsoft Windows ÎÎÎ ÎÏÏÏÎÏ ÎÎÎÎÎÏ ÎÎÎÏÎÏÎ, "
-"ÎÏÎÏÏÎÏÎÎÏÎÏ ÏÎÏ ÎÎ ÎÏÎÏÎÏÎ ÎÎÎÏÏÏÏÎÎÎÎÏ ÎÏÎÎÎÎ ÎÎÎ ÏÎ ÏÏÎÎÎÎÏÎ ÎÏÎÏÎÎÏÎ ÏÎ "
-"ÎÎÎÏÎÏÎÏÎÎÎ ÎÎÏÎ."
+#~ msgid "libseahorse Reference Manual"
+#~ msgstr "ÎÎÏÎÎÏÎÎÎÎ ÎÎÎÏÎÏÎÏ ÏÎÏ libseahorse"
 
-#: C/cairo.page:18(p)
-msgid ""
-"The Cairo drawing model is similar to those provided by PostScript and PDF. "
-"The Cairo API provides such drawing operations as stroking and filling cubic "
-"BÃzier splines, compositing images, and performing affine transformations. "
-"These vector operations allow for rich, anti-aliased graphics without using "
-"expensive pixel-based drawing in your application code."
-msgstr ""
-"ÎÎ ÎÎÎÏÎÎÎ ÏÏÎÎÎÎÏÎÏ ÏÎÏ Cairo ÎÏÎÎÎÎÎ ÏÎ ÎÎÏÎÏÏÎÎÏÎ ÎÎÎÏÎÎÎ ÏÏÎ PostScript "
-"ÎÎÎ PDF. ÎÎ API ÏÎÏ Cairo ÏÎÏÎÏÎÎ ÏÎÏÎÎÎÏ ÎÎÎÏÎÏÏÎÎÎÏ ÏÏÎÎÎÎÏÎÏ ÏÏÏÏ ÏÎ "
-"ÎÎÏÎÎÎ ÎÎÎ ÏÎ ÎÎÎÎÏÎÎ ÎÏÎÎÎÏÎ ÎÏÎÏÎÎÏÏÏÎ ÎÎÎÏÏÎÏÎ BÃzier, Î ÏÏÎÎÎÏÎ ÎÎÎÏÎÏÎ "
-"ÎÎÎ Î ÎÎÏÎÎÎÏÎ ÏÏÎÎÎÎÎÎÏÎ ÎÎÏÎÏÏÎÏÏÎ. ÎÏÏÎÏ ÎÎ ÎÎÎÎÏÏÎÎÏÎÎÎÏ ÎÎÎÏÎÏÏÎÎÎÏ "
-"ÎÏÎÏÏÎÏÎÏÎ ÎÎ ÎÏÎÏÎ ÏÎÎÏÏÎÎ, ÎÎÎÎÎÎÏÎÎÎÎ ÎÏÎÏÎÎÎ ÏÏÏÎÏ ÏÎ ÏÏÎÏÎ ÎÎÏÎÎÎÏÏÎ "
-"ÏÏÎÎÎÏÎ ÎÎÏÎÏÎÎÎÏÎ ÏÎ ÎÎÎÎÎÎÏÏÎÎÏÎÎÎ ÏÏÎÎ ÎÏÎÎÎÎ ÏÎÏ ÎÏÎÏÎÎÎÎÏ ÏÎÏ."
+#~ msgid "shaunm gnome org"
+#~ msgstr "shaunm gnome org"
 
-#: C/cairo.page:25(p)
-msgid ""
-"Cairo's rich drawing model allows for high-quality rendering to multiple "
-"media. The same API can be used to create stunning on-screen graphics and "
-"text, to render images, or create crisp output suitable for printing."
-msgstr ""
-"ÎÎ ÏÏÎÎÎÎÎÎÎ ÎÎÎÏÎÎÎ ÏÏÎÎÎÎÏÎÏ ÏÎÏ Cairo ÏÏÎÏÏÎÏÎÎ ÎÎÏÎÎÎÏÎ ÏÏÎÎÎÏ ÏÎÎÏÏÎÏÎÏ "
-"ÏÎ ÎÎÎÏÎÏÎ ÎÎÏÎ. ÎÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎ ÎÎÎÎ API ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÎÎÏÏÎÎÏÎÏÎ "
-"ÎÎÎÎÎÎÏÏÎÎÏ ÎÎÎÎÎÎÎ ÎÎÎ ÎÏÎÏÎÎÎ ÎÎÎ ÎÎÏÎÎÎÏÎ ÏÏÎÎ ÎÎÏÎÎ, ÎÎ ÎÏÎÎÏÏÎÏÎ "
-"ÎÎÎÏÎÎÏ, Î ÎÎ ÏÎÏÎÎÎÏÎ ÏÎÎÏÎÎÎÎÎÏÎ ÎÏÎÏÎÎÎÏÎÎÏÎ ÎÎÎ ÎÎÏÏÏÏÏÎ."
+#~ msgid "gpoo gnome org"
+#~ msgstr "gpoo gnome org"
 
-#: C/cairo.page:30(p)
-msgid ""
-"You should use Cairo whenever you need to draw graphics in your application "
-"beyond the widgets provided by GTK+. Much of the drawing inside GTK+ is done "
-"using Cairo. Using Cairo for your custom drawing will allow your application "
-"to have high-quality, anti-aliased, and resolution-independent graphics."
-msgstr ""
-"ÎÏÎÏÎÎÎÏÎÎÎÏÏÎ ÏÎÎ Cairo ÏÏÎÏÎ ÏÏÎÎÎÎÎÏÏÎ ÎÎ ÏÏÎÎÎÎÏÎÏÎ ÎÏÎÏÎÎÎÎ ÎÏÎÏÎÎÎ, "
-"ÏÎÏÎ ÎÏÏ ÏÎ ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ ÏÎÏ ÏÎÏ ÏÎÏÎÏÎÎ Î GTK+. ÎÎÎÎÎÎ ÎÎÏÎÏ ÏÎÏ "
-"ÏÏÎÎÎÎÏÎÏ ÎÎÏÏÏ ÏÎÏ GTK+. ÎÎÎÎÏÎÎ ÎÎ ÏÏÎÏÎ ÏÎÏ Cairo. ÎÏÎÏÎÎÎÏÎÎÏÎÏÎÏ ÏÎÎ "
-"Cairo ÎÎÎ ÏÎ ÎÏÎÏÎÎÎ ÏÎÏ, ÎÏÎÎÎÎÎÎÏÎ ÏÎÎ ÎÏÎÏÎÎÎÎ ÏÎÏ ÎÎ ÎÏÎÏÎÎÎ ÏÏÎÎÎÏ "
-"ÏÎÎÏÏÎÏÎÏ, anti-aliased ÎÎÎ ÏÏÎÏÎÏÎÏÏÎÎÎ ÏÎ ÎÏÎÎÎÎÎÏÎÏÎ ÎÎÎÎÏÏÎ."
+#~ msgid "Ten Minute Mallard Tour"
+#~ msgstr "10 ÎÎÏÏÎ ÏÎÏÎÎÎÎÏÎ ÏÏÎ Mallard"
 
-#: C/cairo.page:37(link)
-msgid "Cairo Manual"
-msgstr "ÎÎÏÎÎÏÎÎÎÎ ÏÎÏ Cairo"
+#~ msgid "The Mallard web site"
+#~ msgstr "ÎÏÏÎÏÎÎÎÎÎ ÏÎÏ Mallard"
 
-#: C/cairo.page:38(link)
-msgid "The Cairo web site"
-msgstr "ÎÏÏÎÏÎÎÎÎÎ ÏÎÏ Cairo"
+#~ msgid "The DocBook web site"
+#~ msgstr "ÎÏÏÎÏÎÎÎÎÎ ÏÎÏ DocBook"
 
-#: C/atk.page:6(desc)
-msgid "Support for screen readers and other accessibility tools"
-msgstr "ÎÏÎÏÏÎÏÎÎÎ ÎÎÎ ÎÎÎÎÎÏÏÏÎÏ ÎÎÏÎÎÏ ÎÎÎ ÎÎÎÎ ÎÏÎÎÎÎÎÎ ÏÏÎÏÎÏÏÏÎÏÎÏ"
+#~ msgid "GTK+ demo tutorial"
+#~ msgstr "ÎÎÏÎÏÏÎÎÏÎ ÎÎÎÎÎÎÏÎÏ GTK+"
 
-#: C/atk.page:11(title)
-msgid "ATK"
-msgstr "ATK"
+#~ msgid "GTK+ Reference Manual"
+#~ msgstr "ÎÎÏÎÎÏÎÎÎÎ ÎÎÎÏÎÏÎÏ ÏÎÏ GTK+"
 
-#: C/atk.page:13(p)
-msgid ""
-"Accessibility is the process of ensuring your application can be used by "
-"people with various disabilities. Disabilities come in many forms: visual "
-"impairments, movement impairments, hearing impairments, cognitive and "
-"language impairments, and seizure disorders. Many people have some sort of "
-"disability, and making your application accessibility will allow more people "
-"to use your application effectively."
-msgstr ""
-"Î ÏÏÎÏÎÏÏÏÎÏÎ ÎÎÎÎÎ Î ÎÎÎÎÎÎÎÏÎÎ ÎÎÏÏ ÏÎÏ ÎÏÎÎÎÏ ÎÎÎÏÏÎÎÎÎÎÏÎ ÏÏÎ Î ÎÏÎÏÎÎÎÎ "
-"ÏÎÏ ÎÎ ÎÏÎÏÎÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÎÎ ÎÏÏ ÎÏÎÎÎ ÎÎ ÎÎÎÏÎÏÎÏ ÎÎÎÏÎÏÎÎÏ. ÎÏÎÏÏÎÏÎ "
-"ÏÎÎÎÎÏ ÎÎÏÏÎÏ ÎÎÎÏÎÏÎÏÎ: ÏÏÎÎÎÎÎÎÏÎ ÏÏÎÏÎÏ, ÎÎÎÎÏÎÏ ÎÎÎ ÎÎÎÎÏ, ÎÎÏÏÎÎÎÎÏ ÎÎÎ "
-"ÎÎÏÏÏÎÎÎÏ ÎÏÏÎÎÎÎÎÏ, ÏÎÏÎÎÏÏÎÎÎÎÏ ÎÎÎÏÎÏÎÏÎÏ. ÎÎÎÎÎÎ ÎÎÎÏÏÏÎÎ ÎÎÏÎÎÎÎÎÏÎ "
-"ÎÎÏÎÎÎ ÎÎÎÏÎÏÎÎ, ÎÏÎ, ÎÎÎÎÏÏÏÎÏÎÏ ÏÎÎ ÎÏÎÏÎÎÎÎ ÏÎÏ ÏÏÎÏÎÏÎ, ÎÎÎÏÏÏÎÎÏÎ ÏÎÎ "
-"ÎÏÎÎÎ ÏÏÎ ÏÏÎÏÏÏÎ ÏÎÏ."
+#~ msgid "The GTK+ web site"
+#~ msgstr "ÎÏÏÎÏÎÎÎÎÎ ÏÎÏ GTK+"
 
-#: C/atk.page:20(p)
-#| msgid ""
-#| "GNOME provides support for accessibility devices using the ATK framework. "
-#| "This framework defines a set of interfaces to which graphical interface "
-#| "components adhere. This allows, for instance, screen readers to read the "
-#| "text of an interface and interact with its controls. ATK support is built "
-#| "into GTK+ and the rest of the GNOME platform using the GAIL library, so "
-#| "any application using GTK+ will have reasonable accessibility support for "
-#| "free."
-msgid ""
-"GNOME provides support for accessibility devices using the ATK framework. "
-"This framework defines a set of interfaces to which graphical interface "
-"components adhere. This allows, for instance, screen readers to read the "
-"text of an interface and interact with its controls. ATK support is built "
-"into GTK+ and the rest of the GNOME platform, so any application using GTK+ "
-"will have reasonable accessibility support for free."
-msgstr ""
-"ÎÎ GNOME ÏÏÎÏÏÎÏÎÎÎÎ ÏÏÏÎÎÏÎÏ ÏÏÎÏÎÏÏÏÎÏÎÏ ÎÎÏÏ ÏÎÏ ÏÎÎÎÎÏÎÏ ATK. ÎÏÏÏÏ Î "
-"ÏÎÎÎÎÏÏÏ ÎÏÎÎÎÎ ÎÎÎ ÏÏÎÎÎÎ ÎÎÎÏÎÏÏÎ, ÏÏÎÏ ÎÏÎÎÎÏ ÎÎÎÎÎÎÎ ÏÎ ÏÏÏÏÎÏÎÎÎ ÏÏÎ "
-"ÎÏÎÏÎÎÏÎ ÎÎÎÏÎÏÏÎ. ÎÎÎ ÏÎÏÎÎÎÎÎÎÎ, ÎÏÏÎ ÎÏÎÏÏÎÏÎÏÎÎ ÏÏÎÏÏ ÎÎÎÎÎÏÏÏÎÏ ÎÎÏÎÎÏ "
-"ÎÎ ÎÎÎÎÎÎÎÏÎ ÏÎ ÎÎÎÎÎÎÎ ÎÎÎÏ ÎÎÎÏÎÏÎÏ ÎÎÎ ÎÎ ÎÎÎÎÎÎÏÎÎÏÎÏÎ ÎÎ ÏÎÏÏ ÎÎÎÎÏÎÏÏ "
-"ÏÎÏ. Î ÏÏÎÏÏÎÏÎÎÎ ÎÎÎ ÏÎÎ ATK ÎÎÏÏÎÎÏÏÎÎÏÎÎ ÏÏÎ GTK+ ÎÎÎ ÏÎÎ ÏÏÏÎÎÎÏÎ "
-"ÏÎÎÏÏÏÏÎÎ GNOME, ÎÏÏÎ ÏÏÏÎ ÏÎÎÏ ÎÎ ÎÏÎÏÎÎÎÎÏ ÏÎÏ ÏÏÎÏÎÎÎÏÎÎÎÏÎ ÏÎ GTK+ ÎÎ "
-"ÎÏÎÏÎ ÎÎÎÎÎÎ ÏÏÎÏÏÎÏÎÎÎ ÏÏÏÏÎÎÏÎÏ ÎÎÎÏÎÎÏÎ."
+#~ msgid "The GStreamer Application Development Manual"
+#~ msgstr "ÎÎÏÎÎÏÎÎÎÎ ÎÎÎÏÏÏÎÎÏ ÏÎÏ ÎÏÎÏÎÎÎÎÏ GStreamer"
 
-#: C/atk.page:28(p)
-msgid ""
-"Nonetheless, you should be aware of accessibility issues when when "
-"developing your applications. Although GTK+ interfaces provide reasonable "
-"accessibility by default, you can often improve how well your program "
-"behaves with accessibility tools by providing additional information to ATK. "
-"If you develop custom widgets, you should ensure that they expose their "
-"properties to ATK. You should also avoid using sound, graphics, or color as "
-"the sole means of conveying information to the user."
-msgstr ""
-"ÎÎÏÏÎÎ ÎÏÏÎ, ÎÎ ÏÏÎÏÎÎ ÎÎ ÎÎÎÎÎÎÎÏÎ ÏÏÏÏÎ ÏÎÏ ÏÎÎ ÏÏÎÏÎÏÏÏÎÏÎ ÎÎÏÎ ÏÎÎ "
-"ÎÎÎÏÏÏÎÎ ÏÏÎ ÎÏÎÏÎÎÎÏÎ ÏÎÏ. ÎÎ ÎÎÎ ÎÎ ÎÎÎÏÎÏÎÏ GTK+ ÏÎÏÎÏÎÏÎ ÎÏÏÏÎÎÏÎ ÎÎÎ "
-"ÎÎÎÎÎÏ ÎÏÎÏÎÎÎ ÏÏÎÏÎÏÏÏÎÏÎÏ, ÎÏÎÏÎÎÏÎ ÎÎ ÎÎÎÏÎÏÏÎÏÎ ÏÎ ÏÏÎÎÏÎÎÏÎÎ ÏÎÏ "
-"ÏÏÎÎÏÎÎÎÎÏÏÏ ÏÎÏ ÎÎ ÏÎ ÎÏÎÎÎÎÎÎ ÏÏÎÏÎÏÏÏÎÏÎÏ, ÏÎÏÎÏÎÎÏÎÏ ÎÏÎÏÎÎÎÎÏ "
-"ÎÏÎÏÏÏÏÎÎÏÎÏ ÏÎÎÏÎÏÎÏÎÎÏ ÏÏÎ GTK+. ÎÎ ÎÏÎÏÎ ÎÎÎÎÎÏÏÎÎÏÎÎ ÏÏÎÏÎÏÎÎÏÎÎÎÎ "
-"ÎÏÎÏÎÎÎ ÏÏÏÏÎÏÎÎÎ, ÎÎÎÏÏÎÎÎÏÏÎ ÏÏÎ ÏÎ ATK ÎÏÎÎ ÏÏÏÏÎÎÏÎ ÏÏÎÏ ÎÎÎÏÏÎÏÎÏ ÏÎÏÏ. "
-"ÎÏÎÏÎÏ, ÎÏÎÏÏÎÎÏÎ ÎÎ ÏÏÎÏÎÎÎÏÎÎÎÎÏÎ ÎÏÎ, ÎÏÎÏÎÎÎ Î ÏÏÏÎÎÏÎ ÏÏ ÏÎ ÎÎÎÎÎÎÎÏ "
-"ÎÎÏÎ ÏÎÏÎÏÎÏ ÏÎÎÏÎÏÎÏÎÏÎ ÏÏÎ ÏÏÎÏÏÎ."
+#~ msgid "The GStreamer 0.10 Core Reference Manual"
+#~ msgstr "ÎÎÏÎÎÏÎÎÎÎ ÎÎÎÏÎÏÎÏ ÏÏÏÎÎÎ ÏÎÏ GStreamer 0.10"
 
-#: C/atk.page:37(p)
-msgid ""
-"The GNOME desktop ships with a number of accessibility tools which enable "
-"users with disabilities to take full advantage of their desktop and "
-"applications. Applications that fully implement ATK will be able to work "
-"with the accessibility tools. GNOME's accessibility tools include a screen "
-"reader, a screen magnifier, an on-screen keyboard, and <app>Dasher</app>, an "
-"innovative predictive text entry tool."
-msgstr ""
-"Î ÎÏÎÏÎÎÎÎÎ ÎÏÎÎÏÎÎÏ GNOME ÏÎÏÎÎÎÎÎÎÎÎÎ ÎÎÎ ÏÎÎÏÎ ÎÏÏ ÎÏÎÎÎÎÎÎ ÏÏÎÏÎÏÏÏÎÏÎÏ "
-"ÏÎÏ ÎÏÎÏÏÎÏÎÏÎ ÏÏÎÏÏ ÏÏÎÏÏÎÏ ÎÎ ÎÎÎÏÎÏÎÎÏ ÎÎ ÎÎÎÎÏÎÎÎÏÎ ÏÎÎÏÏÏ ÏÎÎ ÎÏÎÏÎÎÎÎÎ "
-"ÎÏÎÎÏÎÎÏ ÎÎÎ ÏÎÏ ÎÏÎÏÎÎÎÎÏ ÏÎÏ. ÎÎ ÎÏÎÏÎÎÎÎÏ ÏÎÏ ÏÎÎÏÎÎÎÏÎ ÏÎÎÏÏÏ ÏÎÎ ATK "
-"ÎÏÎÏÎÏÎ ÎÎ ÏÏÎÎÏÎÎÏÏÎÏÎ ÎÎÎÎ ÎÎ ÏÎ ÎÏÎÎÎÎÎÎ ÏÏÎÏÎÏÏÏÎÏÎÏ. ÎÎ ÎÏÎÎÎÎÎÎ "
-"ÏÏÎÏÎÏÏÏÎÏÎÏ ÏÎÏ GNOME ÏÎÏÎÎÎÎÎÎÎÎÏÎ ÎÎÎÎ ÎÎÎÎÎÏÏÏÎ ÎÎÏÎÎÏ, ÎÎÎ ÎÎÎÎÎÏÎÏÎ "
-"ÎÎÏÎÎÏ, ÎÎÎ ÏÎÎÎÏÏÎÎÏÎÎÎ ÎÎÏÎÎÏ ÎÎÎ ÏÎ <app>Dasher</app>, ÎÎÎ ÎÎÎÎÎÏÏÎÎ "
-"ÎÏÎÎÎÎÎÎ ÎÎÏÎÎÏÎÎÏ ÎÎÎÎÎÎÎÏ ÎÎ ÏÏÏÎÎÎÏÎ."
+#~ msgid "The GStreamer documentation page"
+#~ msgstr "ÎÎÎÎÎÎ ÏÎÎÎÎÏÎÏÏÎÏ ÏÎÏ GStreamer"
 
-#: C/atk.page:46(link)
-msgid "GNOME Accessibility for Developers"
-msgstr "ÎÏÎÏÎÏÏÏÎÏÎ GNOME ÎÎÎ ÏÏÎÎÏÎÎÎÎÏÎÏÏÎÏ"
+#~ msgid "The GStreamer web site"
+#~ msgstr "ÎÏÏÎÏÎÎÎÎÎ ÏÎÏ GStreamer"
 
-#: C/atk.page:47(link)
-msgid "ATK Reference"
-msgstr "AÎÎÏÎÏÎ ATK"
+#~ msgid "GIO Reference Manual"
+#~ msgstr "ÎÎÏÎÎÏÎÎÎÎ ÎÎÎÏÎÏÎÏ ÏÎÏ GIO"
 
-#. Put one translator per line, in the form of NAME <EMAIL>, YEAR1, YEAR2
-#: C/index.page:0(None)
-msgid "translator-credits"
-msgstr ""
-"ÎÎÎÎÏÏÎÏ ÎÏÎÎÎÎÏ <dmtrs32 gmail com>, 2012\n"
-"ÎÎÎÎÎ ÎÎÏÎÏÎÎÎÎÏ <epetoumenou gmail com>\n"
-"ÎÎÏÎÎÏ ÎÎÎÏÎÎÎÏ <m zindilis dmajor org>\n"
-"ÎÎÎ ÏÎÏÎÏÏÏÏÎÏÎÏ ÏÎÎÏÎÏÎÏÎÎÏ, ÎÎÎÏÎ ÏÎ ÏÎÎÎÎÎ http://www.gnome.gr/";
+#~ msgid "Lowlevel network support"
+#~ msgstr "ÎÎÎÎÎÎÏ ÎÏÎÏÎÎÎÏ ÏÏÎÏÏÎÏÎÎÎ ÎÎÎÏÏÎÏ"
+
+#~ msgid "Highlevel network functionality"
+#~ msgstr "ÎÏÎÎÎÏ ÎÏÎÏÎÎÎÏ ÎÎÎÏÎÏÏÎÎÎÏÏÎÏÎ ÎÎÎÏÏÎÏ"
+
+#~ msgid "GDK Reference Manual"
+#~ msgstr "ÎÎÏÎÎÏÎÎÎÎ ÎÎÎÏÎÏÎÏ ÏÎÏ GDK"
+
+#~ msgid "GNOME Data Access Manual"
+#~ msgstr "ÎÎÏÎÎÏÎÎÎÎ ÏÏÏÏÎÎÏÎÏ ÎÎÎÎÎÎÎÏÎ ÏÎÏ GNOME"
+
+#~ msgid "Evolution API Reference: libebook"
+#~ msgstr "ÎÎÎÏÎÏÎ API ÏÎÏ Evolution: libebook"
+
+#~ msgid "Evolution API Reference: libecal"
+#~ msgstr "ÎÎÎÏÎÏÎ API ÏÎÏ Evolution: libecal"
+
+#~ msgid "D-Bus Tutorial"
+#~ msgstr "ÎÎÎÎÎÎ ÎÎÎÏÎÎÏ D"
+
+#~ msgid "D-Bus Specification"
+#~ msgstr "ÎÏÎÎÎÎÎÏÎÏÎ ÎÎÎÏÎÎÏ D"
+
+#~ msgid "The Clutter Cookbook"
+#~ msgstr "ÎÎÎÎÏÏÎÎÏ ÎÎÎÎÎÎ Clutter"
+
+#~ msgid "Clutter Reference Manual"
+#~ msgstr "ÎÎÏÎÎÏÎÎÎÎ ÎÎÎÏÎÏÎÏ ÏÎÏ Clutter"
+
+#~ msgid "The Clutter web site"
+#~ msgstr "ÎÏÏÎÏÎÎÎÎÎ ÏÎÏ Clutter"
+
+#~ msgid "Canberra Reference"
+#~ msgstr "AÎÎÏÎÏÎ Canberra"
+
+#~ msgid "Cairo Manual"
+#~ msgstr "ÎÎÏÎÎÏÎÎÎÎ ÏÎÏ Cairo"
+
+#~ msgid "The Cairo web site"
+#~ msgstr "ÎÏÏÎÏÎÎÎÎÎ ÏÎÏ Cairo"
+
+#~ msgid "GNOME Accessibility for Developers"
+#~ msgstr "ÎÏÎÏÎÏÏÏÎÏÎ GNOME ÎÎÎ ÏÏÎÎÏÎÎÎÎÏÎÏÏÎÏ"
+
+#~ msgid "ATK Reference"
+#~ msgstr "AÎÎÏÎÏÎ ATK"
 
 #~ msgid "Platform Overview"
 #~ msgstr "ÎÏÎÏÎÏÏÎÏÎ ÏÎÎÏÏÏÏÎÎÏ"



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