[gnome-devel-docs] Updated French translation



commit 2fa69b6d886986fbd54444e9361ae33d3c67b456
Author: AlainLojewski <allomervan gmail com>
Date:   Sun Mar 16 17:43:44 2014 +0000

    Updated French translation

 platform-demos/fr/fr.po |13361 +++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 11090 insertions(+), 2271 deletions(-)
---
diff --git a/platform-demos/fr/fr.po b/platform-demos/fr/fr.po
index a77b66d..878ad61 100644
--- a/platform-demos/fr/fr.po
+++ b/platform-demos/fr/fr.po
@@ -10,159 +10,197 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: gnome-devel-docs master\n"
-"POT-Creation-Date: 2012-06-15 12:13+0000\n"
-"PO-Revision-Date: 2012-06-02 19:00+0200\n"
-"Last-Translator: Alain Lojewski <allomervan gmail com>\n"
+"POT-Creation-Date: 2012-09-30 09:29+0000\n"
+"PO-Revision-Date: 2012-08-29 10:50+0100\n"
+"Last-Translator: AlainLojewski <allomervan gmail com>\n"
 "Language-Team: French <gnomefr traduc org>\n"
+"Language: fr\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"
-"Language: fr\n"
 "X-Generator: Lokalize 1.2\n"
+"X-Poedit-Language: French\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:23(None) C/window.py.page:29(None)
-#: C/window.js.page:23(None) C/window.c.page:23(None)
-#: C/GtkApplicationWindow.vala.page:20(None)
-#: C/GtkApplicationWindow.py.page:25(None)
-#: C/GtkApplicationWindow.js.page:20(None)
-#: C/GtkApplicationWindow.c.page:20(None)
+#: 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:11(name) C/window.py.page:11(name)
-#: C/window.c.page:11(name) C/vala.page:10(name) C/translate.page:10(name)
-#: C/treeview_simple_liststore.vala.page:13(name)
-#: C/toolbar_builder.vala.page:13(name) C/toolbar.vala.page:12(name)
-#: C/toolbar.js.page:11(name) C/togglebutton.vala.page:14(name)
-#: C/textview.vala.page:11(name) C/switch.vala.page:15(name)
-#: C/statusbar.vala.page:14(name) C/spinner.vala.page:11(name)
-#: C/spinbutton.vala.page:13(name) C/scrolledwindow.vala.page:12(name)
-#: C/scale.vala.page:13(name) C/radiobutton.vala.page:14(name)
-#: C/py.page:10(name) C/progressbar.vala.page:11(name)
-#: C/messagedialog.vala.page:11(name) C/linkbutton.vala.page:11(name)
-#: C/label.vala.page:11(name) C/js.page:11(name) C/index.page:22(name)
-#: C/image-viewer.vala.page:25(name) C/image.vala.page:11(name)
-#: C/guitar-tuner.vala.page:21(name) C/GtkApplicationWindow.vala.page:11(name)
-#: C/GtkApplicationWindow.py.page:11(name)
-#: C/GtkApplicationWindow.js.page:11(name)
-#: C/GtkApplicationWindow.c.page:11(name) C/grid.vala.page:13(name)
-#: C/grid.py.page:12(name) C/gmenu.vala.page:17(name) C/gmenu.py.page:11(name)
-#: C/gmenu.js.page:11(name) C/gmenu.c.page:11(name) C/entry.vala.page:11(name)
-#: C/documentation.page:10(name) C/dialog.vala.page:11(name)
-#: C/cpp.page:10(name) C/combobox.vala.page:11(name)
-#: C/colorbutton.vala.page:13(name) C/checkbutton.vala.page:11(name)
-#: C/checkbutton.c.page:11(name) C/c.page:10(name) C/button.vala.page:12(name)
-#: C/bug-filing.page:9(name) C/beginner.vala.page:13(name)
-#: C/beginner.py.page:13(name) C/aboutdialog.vala.page:19(name)
+#: C/window.vala.page:7(title)
+msgid "Window (Vala)"
+msgstr "Fenêtre (Vala)"
+
+#: C/window.vala.page:12(name) C/window.py.page:12(name)
+#: C/window.c.page:12(name) C/vala.page:10(name) C/tutorial.py.page:14(name)
+#: C/translate.page:10(name) C/treeview_simple_liststore.vala.page:14(name)
+#: C/toolbar_builder.vala.page:14(name) C/toolbar_builder.py.page:14(name)
+#: C/toolbar.vala.page:13(name) C/toolbar.js.page:12(name)
+#: C/togglebutton.vala.page:15(name) C/textview.vala.page:12(name)
+#: C/switch.vala.page:16(name) C/statusbar.vala.page:15(name)
+#: C/spinner.vala.page:12(name) C/spinbutton.vala.page:14(name)
+#: C/scrolledwindow.vala.page:13(name) C/scale.vala.page:14(name)
+#: C/radiobutton.vala.page:15(name) C/py.page:10(name)
+#: C/progressbar.vala.page:12(name) C/messagedialog.vala.page:12(name)
+#: C/menubutton.py.page:12(name) C/menubutton.vala.page:12(name)
+#: C/menubar.vala.page:14(name) C/menubar.py.page:14(name)
+#: C/linkbutton.vala.page:12(name) C/label.vala.page:12(name)
+#: C/js.page:11(name) C/index.page:22(name) C/image-viewer.vala.page:26(name)
+#: C/image.vala.page:12(name) C/helloWorld.js.page:19(name)
+#: C/guitar-tuner.vala.page:21(name) C/GtkApplicationWindow.vala.page:12(name)
+#: C/GtkApplicationWindow.py.page:12(name)
+#: C/GtkApplicationWindow.js.page:12(name)
+#: C/GtkApplicationWindow.c.page:12(name) C/grid.vala.page:14(name)
+#: C/grid.py.page:13(name) C/gmenu.vala.page:19(name) C/gmenu.py.page:12(name)
+#: C/gmenu.js.page:12(name) C/gmenu.c.page:12(name)
+#: C/filechooserdialog.vala.page:15(name) C/entry.vala.page:12(name)
+#: C/documentation.page:10(name) C/dialog.vala.page:12(name)
+#: C/cpp.page:10(name) C/combobox.vala.page:12(name)
+#: C/colorbutton.vala.page:14(name) C/checkbutton.vala.page:12(name)
+#: C/checkbutton.c.page:12(name) C/c.page:10(name) C/button.vala.page:13(name)
+#: C/bug-filing.page:9(name) C/beginner.vala.page:14(name)
+#: C/beginner.py.page:14(name) C/aboutdialog.vala.page:20(name)
 msgid "Tiffany Antopolski"
 msgstr "Tiffany Antopolski"
 
-#: C/window.vala.page:12(email) C/window.py.page:12(email)
-#: C/window.c.page:12(email) C/vala.page:11(email) C/translate.page:11(email)
-#: C/treeview_simple_liststore.vala.page:14(email)
-#: C/toolbar_builder.vala.page:14(email) C/toolbar.vala.page:13(email)
-#: C/toolbar.js.page:12(email) C/togglebutton.vala.page:15(email)
-#: C/textview.vala.page:12(email) C/switch.vala.page:16(email)
-#: C/statusbar.vala.page:15(email) C/spinner.vala.page:12(email)
-#: C/spinbutton.vala.page:14(email) C/scrolledwindow.vala.page:13(email)
-#: C/scale.vala.page:14(email) C/radiobutton.vala.page:15(email)
-#: C/py.page:11(email) C/progressbar.vala.page:12(email)
-#: C/messagedialog.vala.page:12(email) C/linkbutton.vala.page:12(email)
-#: C/label.vala.page:12(email) C/js.page:12(email) C/index.page:23(email)
-#: C/image-viewer.vala.page:26(email) C/image.vala.page:12(email)
-#: C/guitar-tuner.vala.page:22(email)
-#: C/GtkApplicationWindow.vala.page:12(email)
-#: C/GtkApplicationWindow.py.page:12(email)
-#: C/GtkApplicationWindow.js.page:12(email)
-#: C/GtkApplicationWindow.c.page:12(email) C/grid.vala.page:14(email)
-#: C/grid.py.page:13(email) C/gmenu.vala.page:18(email)
-#: C/gmenu.py.page:12(email) C/gmenu.js.page:12(email)
-#: C/gmenu.c.page:12(email) C/entry.vala.page:12(email)
-#: C/documentation.page:11(email) C/dialog.vala.page:12(email)
-#: C/cpp.page:11(email) C/combobox.vala.page:12(email)
-#: C/colorbutton.vala.page:14(email) C/checkbutton.vala.page:12(email)
-#: C/c.page:11(email) C/button.vala.page:13(email)
-#: C/beginner.vala.page:14(email) C/beginner.py.page:14(email)
-#: C/aboutdialog.vala.page:20(email)
+#: C/window.vala.page:13(email) C/window.py.page:13(email)
+#: C/window.c.page:13(email) C/vala.page:11(email)
+#: C/tutorial.py.page:15(email) C/translate.page:11(email)
+#: C/treeview_simple_liststore.vala.page:15(email)
+#: C/toolbar_builder.vala.page:15(email) C/toolbar_builder.py.page:15(email)
+#: C/toolbar.vala.page:14(email) C/toolbar.js.page:13(email)
+#: C/togglebutton.vala.page:16(email) C/textview.vala.page:13(email)
+#: C/switch.vala.page:17(email) C/statusbar.vala.page:16(email)
+#: C/spinner.vala.page:13(email) C/spinbutton.vala.page:15(email)
+#: C/scrolledwindow.vala.page:14(email) C/scale.vala.page:15(email)
+#: C/radiobutton.vala.page:16(email) C/py.page:11(email)
+#: C/progressbar.vala.page:13(email) C/messagedialog.vala.page:13(email)
+#: C/menubutton.py.page:13(email) C/menubutton.vala.page:13(email)
+#: C/menubar.vala.page:15(email) C/menubar.py.page:15(email)
+#: C/linkbutton.vala.page:13(email) C/label.vala.page:13(email)
+#: C/js.page:12(email) C/index.page:23(email)
+#: C/image-viewer.vala.page:27(email) C/image.vala.page:13(email)
+#: C/helloWorld.js.page:20(email) C/guitar-tuner.vala.page:22(email)
+#: C/GtkApplicationWindow.vala.page:13(email)
+#: C/GtkApplicationWindow.py.page:13(email)
+#: C/GtkApplicationWindow.js.page:13(email)
+#: C/GtkApplicationWindow.c.page:13(email) C/grid.vala.page:15(email)
+#: C/grid.py.page:14(email) C/gmenu.vala.page:20(email)
+#: C/gmenu.py.page:13(email) C/gmenu.js.page:13(email)
+#: C/gmenu.c.page:13(email) C/filechooserdialog.vala.page:16(email)
+#: C/entry.vala.page:13(email) C/documentation.page:11(email)
+#: C/dialog.vala.page:13(email) C/cpp.page:11(email)
+#: C/combobox.vala.page:13(email) C/colorbutton.vala.page:15(email)
+#: C/checkbutton.vala.page:13(email) C/c.page:11(email)
+#: C/button.vala.page:14(email) C/beginner.vala.page:15(email)
+#: C/beginner.py.page:15(email) C/aboutdialog.vala.page:21(email)
 msgid "tiffany antopolski gmail com"
 msgstr "tiffany antopolski gmail com"
 
-#: C/window.vala.page:13(years) C/window.py.page:13(years)
-#: C/window.py.page:18(years) C/window.js.page:13(years)
-#: C/window.c.page:13(years) C/weatherGeonames.js.page:12(years)
+#: 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:12(years)
-#: C/treeview_simple_liststore.vala.page:15(years)
-#: C/treeview_simple_liststore.py.page:15(years)
-#: C/toolbar_builder.vala.page:15(years) C/toolbar.vala.page:14(years)
-#: C/toolbar.py.page:14(years) C/toolbar.js.page:13(years)
-#: C/togglebutton.vala.page:16(years) C/togglebutton.py.page:15(years)
-#: C/togglebutton.c.page:17(years) C/textview.vala.page:13(years)
-#: C/textview.py.page:14(years) C/switch.vala.page:17(years)
-#: C/switch.py.page:17(years) C/switch.c.page:13(years)
-#: C/statusbar.vala.page:16(years) C/statusbar.py.page:16(years)
-#: C/statusbar.js.page:13(years) C/spinner.vala.page:13(years)
-#: C/spinner.py.page:13(years) C/spinner.js.page:13(years)
-#: C/spinner.c.page:14(years) C/spinbutton.vala.page:15(years)
-#: C/spinbutton.py.page:14(years) C/separator.py.page:14(years)
-#: C/scrolledwindow.vala.page:14(years) C/scrolledwindow.py.page:13(years)
-#: C/scale.vala.page:15(years) C/scale.py.page:14(years)
-#: C/radiobutton.vala.page:16(years) C/radiobutton.py.page:16(years)
-#: C/radiobutton.c.page:13(years) C/progressbar.vala.page:13(years)
-#: C/progressbar.py.page:13(years) C/progressbar.js.page:12(years)
-#: C/messagedialog.vala.page:13(years) C/messagedialog.py.page:13(years)
-#: C/messagedialog.js.page:13(years) C/linkbutton.vala.page:13(years)
-#: C/linkbutton.py.page:13(years) C/linkbutton.js.page:13(years)
-#: C/linkbutton.c.page:13(years) C/label.vala.page:13(years)
-#: C/label.py.page:13(years) C/label.py.page:18(years)
-#: C/label.js.page:13(years) C/label.c.page:13(years)
-#: C/image.vala.page:13(years) C/image.py.page:13(years)
-#: C/image.c.page:13(years) C/helloworldautotools.js.page:12(years)
-#: C/helloWorld.js.page:12(years) C/guitar-tuner.js.page:12(years)
-#: C/GtkApplicationWindow.vala.page:13(years)
-#: C/GtkApplicationWindow.py.page:13(years)
-#: C/GtkApplicationWindow.py.page:18(years)
-#: C/GtkApplicationWindow.js.page:13(years)
-#: C/GtkApplicationWindow.c.page:13(years) C/grid.vala.page:15(years)
-#: C/grid.py.page:14(years) C/grid.js.page:13(years) C/grid.c.page:13(years)
-#: C/gmenu.vala.page:13(years) C/gmenu.py.page:13(years)
-#: C/gmenu.js.page:13(years) C/gmenu.c.page:13(years)
-#: C/entry.vala.page:13(years) C/entry.py.page:13(years)
-#: C/entry.js.page:13(years) C/entry.c.page:13(years)
-#: C/dialog.vala.page:13(years) C/dialog.py.page:13(years)
-#: C/dialog.js.page:13(years) C/desktop.js.page:12(years)
-#: C/combobox_multicolumn.py.page:14(years) C/combobox.vala.page:13(years)
-#: C/combobox.py.page:13(years) C/colorbutton.vala.page:15(years)
-#: C/colorbutton.py.page:13(years) C/checkbutton.vala.page:13(years)
-#: C/checkbutton.py.page:13(years) C/checkbutton.js.page:13(years)
-#: C/checkbutton.c.page:13(years) C/button.vala.page:14(years)
-#: C/button.py.page:13(years) C/button.js.page:13(years)
-#: C/button.c.page:13(years) C/beginner.js.page:12(years)
-#: C/aboutdialog.vala.page:15(years) C/aboutdialog.py.page:13(years)
-#: C/aboutdialog.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)
+#: checkbutton/C.js.page:14(years) C/checkbutton.c.page:14(years)
+#: C/buttonbox.py.page:15(years) C/button.vala.page:15(years)
+#: C/button.py.page:15(years) C/button.js.page:14(years)
+#: C/button.c.page:16(years) C/beginner.js.page:12(years)
+#: C/aboutdialog.vala.page:16(years) C/aboutdialog.py.page:15(years)
+#: C/aboutdialog.js.page:13(years) C/aboutdialog.c.page:16(years)
+#: C/03_getting_the_signal.js.page:17(years)
+#: C/02_welcome_to_the_grid.js.page:16(years)
 msgid "2012"
 msgstr "2012"
 
-#: C/window.vala.page:16(desc) C/window.py.page:21(desc)
-#: C/window.c.page:16(desc)
+#: 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 ""
 "Une fenêtre de niveau supérieur qui peut contenir d'autres éléments "
 "graphiques"
 
-#: C/window.vala.page:19(title) C/window.py.page:24(title)
-#: C/window.js.page:19(title) C/window.c.page:19(title)
+#: C/window.vala.page:20(title) C/window.py.page:25(title)
+#: C/window.js.page:20(title) C/window.c.page:20(title)
 msgid "Window"
 msgstr "Fenêtre"
 
-#: C/window.vala.page:24(p)
+#: C/window.vala.page:25(p)
 msgid "The simplest Gtk.Application"
-msgstr "La plus simple Gtk.Application"
+msgstr "La plus simple des applications Gtk.Application"
 
-#: C/window.vala.page:27(p)
+#: C/window.vala.page:28(p)
 msgid ""
 "Use <link xref=\"GtkApplicationWindow.vala\">Application Window</link> if "
 "you need GMenu support."
@@ -170,143 +208,174 @@ msgstr ""
 "Utilisez <link xref=\"GtkApplicationWindow.vala\">Application Window</link> "
 "si vous avez besoin de la prise en charge de GMenu."
 
-#: C/window.vala.page:32(p) C/window.py.page:59(p) C/window.c.page:34(p)
-#: C/treeview_simple_liststore.vala.page:26(p)
-#: C/treeview_simple_liststore.py.page:26(p)
-#: C/toolbar_builder.vala.page:145(p) C/toolbar.vala.page:28(p)
-#: C/toolbar.py.page:27(p) C/toolbar.js.page:25(p)
-#: C/togglebutton.vala.page:27(p) C/togglebutton.py.page:26(p)
-#: C/togglebutton.c.page:30(p) C/textview.vala.page:29(p)
-#: C/textview.py.page:31(p) C/switch.vala.page:30(p) C/switch.py.page:30(p)
-#: C/switch.c.page:27(p) C/statusbar.vala.page:27(p) C/statusbar.py.page:49(p)
-#: C/spinner.vala.page:24(p) C/spinner.py.page:37(p) C/spinner.js.page:24(p)
-#: C/spinner.c.page:27(p) C/spinbutton.vala.page:26(p)
-#: C/spinbutton.py.page:25(p) C/separator.py.page:27(p)
-#: C/scrolledwindow.vala.page:25(p) C/scrolledwindow.py.page:24(p)
-#: C/scale.vala.page:26(p) C/scale.py.page:25(p) C/radiobutton.vala.page:27(p)
-#: C/radiobutton.py.page:27(p) C/radiobutton.c.page:26(p)
-#: C/progressbar.vala.page:34(p) C/progressbar.py.page:52(p)
-#: C/progressbar.js.page:33(p) C/messagedialog.vala.page:25(p)
-#: C/messagedialog.py.page:51(p) C/messagedialog.js.page:24(p)
-#: C/linkbutton.vala.page:24(p) C/linkbutton.py.page:26(p)
-#: C/linkbutton.js.page:24(p) C/linkbutton.c.page:26(p)
-#: C/label.vala.page:25(p) C/label.py.page:83(p) C/label.js.page:24(p)
-#: C/label.c.page:30(p) C/image.vala.page:26(p) C/image.py.page:97(p)
-#: C/image.c.page:27(p) C/GtkApplicationWindow.vala.page:25(p)
-#: C/GtkApplicationWindow.py.page:47(p) C/GtkApplicationWindow.js.page:25(p)
-#: C/GtkApplicationWindow.c.page:24(p) C/grid.vala.page:26(p)
-#: C/grid.py.page:27(p) C/grid.js.page:28(p) C/grid.c.page:26(p)
-#: C/gmenu.vala.page:35(p) C/gmenu.py.page:26(p) C/gmenu.js.page:24(p)
-#: C/gmenu.c.page:26(p) C/entry.vala.page:24(p) C/entry.py.page:24(p)
-#: C/entry.js.page:24(p) C/entry.c.page:26(p) C/dialog.vala.page:26(p)
-#: C/dialog.py.page:42(p) C/dialog.js.page:24(p)
-#: C/combobox_multicolumn.py.page:25(p) C/combobox.vala.page:24(p)
-#: C/combobox.py.page:24(p) C/colorbutton.vala.page:26(p)
-#: C/colorbutton.py.page:24(p) C/checkbutton.vala.page:24(p)
-#: C/checkbutton.py.page:24(p) C/checkbutton.c.page:24(p)
-#: C/button.js.page:25(p) C/button.c.page:26(p) C/aboutdialog.vala.page:33(p)
-#: C/aboutdialog.py.page:34(p) C/aboutdialog.js.page:23(p)
+#: 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_simdes ple_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 "Dans cet exemple, les éléments suivants sont utilisés :"
 
-#: C/window.vala.page:36(link) C/window.js.page:37(link)
-#: C/statusbar.js.page:221(link) C/spinner.js.page:29(link)
-#: C/progressbar.js.page:38(link) C/messagedialog.js.page:30(link)
-#: C/linkbutton.js.page:28(link) C/label.vala.page:29(link)
-#: C/label.js.page:28(link) C/GtkApplicationWindow.vala.page:29(link)
-#: C/GtkApplicationWindow.js.page:29(link) C/grid.py.page:31(link)
-#: C/grid.js.page:32(link) C/gmenu.vala.page:39(link) C/entry.js.page:28(link)
-#: C/dialog.js.page:28(link) C/checkbutton.js.page:136(link)
-#: C/button.js.page:29(link) C/aboutdialog.vala.page:37(link)
-#: C/aboutdialog.js.page:30(link)
+#: C/window.vala.page:37(link) C/window.js.page:38(link)
+#: C/treeview_simple_liststore.js.page:276(link)
+#: C/togglebutton.js.page:154(link) C/textview.js.page:249(link)
+#: C/switch.js.page:267(link) C/statusbar.js.page:222(link)
+#: C/spinner.js.page:30(link) C/spinbutton.js.page:201(link)
+#: C/scale.js.page:210(link) C/radiobutton.js.page:275(link)
+#: C/progressbar.js.page:39(link) C/messagedialog.js.page:195(link)
+#: C/linkbutton.js.page:29(link) C/label.vala.page:30(link)
+#: C/label.js.page:29(link) C/image.js.page:31(link)
+#: C/GtkApplicationWindow.vala.page:30(link)
+#: C/GtkApplicationWindow.js.page:30(link) C/grid.js.page:33(link)
+#: C/gmenu.vala.page:41(link) C/entry.js.page:29(link)
+#: C/dialog.js.page:29(link) C/combobox.js.page:237(link)
+#: C/comboboxtext.js.page:180(link) C/checkbutton.js.page:137(link)
+#: C/button.js.page:30(link) C/aboutdialog.vala.page:38(link)
+#: C/aboutdialog.js.page:31(link)
 msgid "Gtk.Application"
 msgstr "Gtk.Application"
 
-#: C/window.vala.page:37(p)
-#, fuzzy
-#| msgid ""
-#| "The widget <link href=\"http://www.valadoc.org/#!api=gtk+-3.0/Gtk.Window";
-#| "\">Gtk.Window</link>"
+#: C/window.vala.page:38(p)
 msgid ""
 "The widget <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html";
 "\">Gtk.Window</link>"
 msgstr ""
-"L'élément graphique <link href=\"http://www.valadoc.org/#!api=gtk+-3.0/Gtk.";
-"Window\">Gtk.Window</link>"
+"L'élément graphique <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.";
+"html\">Gtk.Window</link>"
 
-#: C/window.vala.page:39(p)
-#, fuzzy
-#| msgid ""
-#| "The enum <link href=\"http://references.valadoc.org/#!api=gtk+-3.0/Gtk.";
-#| "WindowPosition\">Gtk.WindowPosition</link>"
+#: C/window.vala.page:40(p)
 msgid ""
 "The enum <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.WindowPosition.html";
 "\">Gtk.WindowPosition</link>"
 msgstr ""
-"L'énumération <link href=\"http://references.valadoc.org/#!api=gtk+-3.0/Gtk.";
-"WindowPosition\">Gtk.WindowPosition</link>"
+"L'énumération <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.";
+"WindowPosition.html\">Gtk.WindowPosition</link>"
 
-#: C/window.vala.page:41(p)
-#, fuzzy
-#| msgid ""
-#| "The method <link href=\"http://www.valadoc.org/#!api=gtk+-3.0/Gtk.Window.";
-#| "set_default_size\">set_default_size</link>"
+#: C/window.vala.page:42(p)
 msgid ""
 "The method <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.";
 "set_default_size.html\">set_default_size</link>"
 msgstr ""
-"La méthode <link href=\"http://www.valadoc.org/#!api=gtk+-3.0/Gtk.Window.";
-"set_default_size\">set_default_size</link>"
+"La méthode <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.";
+"set_default_size.html\">set_default_size</link>"
 
-#: C/window.vala.page:43(link)
+#: C/window.vala.page:44(link)
 msgid "border_width"
 msgstr "border_width"
 
-#: C/window.vala.page:45(link)
+#: C/window.vala.page:46(link)
 msgid "window_position"
 msgstr "window_position"
 
-#: C/window.py.page:16(name) C/treeview_simple_liststore.py.page:13(name)
-#: C/toolbar.py.page:12(name) C/togglebutton.py.page:13(name)
-#: C/textview.py.page:12(name) C/switch.py.page:15(name)
-#: C/statusbar.py.page:14(name) C/spinner.py.page:11(name)
-#: C/spinbutton.py.page:12(name) C/separator.py.page:12(name)
-#: C/scrolledwindow.py.page:11(name) C/scale.py.page:12(name)
-#: C/radiobutton.py.page:14(name) C/progressbar.py.page:11(name)
-#: C/messagedialog.py.page:11(name) C/linkbutton.py.page:11(name)
-#: C/label.py.page:11(name) C/image.py.page:11(name)
-#: C/GtkApplicationWindow.py.page:16(name) C/entry.py.page:11(name)
-#: C/dialog.py.page:11(name) C/combobox_multicolumn.py.page:12(name)
-#: C/combobox.py.page:11(name) C/colorbutton.py.page:11(name)
-#: C/checkbutton.py.page:11(name) C/button.py.page:11(name)
-#: C/aboutdialog.py.page:11(name)
+#: C/window.py.page:7(title)
+msgid "Window (Python)"
+msgstr "Window (Python)"
+
+#: C/window.py.page:17(name) C/tutorial.py.page:19(name)
+#: C/treeview_treestore.py.page:12(name)
+#: C/treeview_simple_liststore.py.page:14(name)
+#: C/treeview_cellrenderertoggle.py.page:12(name)
+#: C/treeview_advanced_liststore.py.page:15(name) C/tooltip.py.page:13(name)
+#: C/toolbar_builder.py.page:20(name) C/toolbar.py.page:13(name)
+#: C/togglebutton.py.page:15(name) C/textview.py.page:20(name)
+#: C/switch.py.page:17(name) C/strings.py.page:19(name)
+#: C/statusbar.py.page:15(name) C/spinner.py.page:12(name)
+#: C/spinbutton.py.page:13(name) C/signals-callbacks.py.page:19(name)
+#: C/separator.py.page:13(name) C/scrolledwindow.py.page:12(name)
+#: C/scale.py.page:13(name) C/radiobutton.py.page:16(name)
+#: C/properties.py.page:19(name) C/progressbar.py.page:12(name)
+#: C/paned.py.page:12(name) C/model-view-controller.py.page:19(name)
+#: C/messagedialog.py.page:13(name) C/menubutton.py.page:18(name)
+#: C/menubar.py.page:19(name) C/linkbutton.py.page:13(name)
+#: C/label.py.page:13(name) C/image.py.page:12(name)
+#: C/GtkApplicationWindow.py.page:17(name) C/grid.py.page:19(name)
+#: C/gmenu.py.page:18(name) C/fontchooserwidget.py.page:13(name)
+#: C/filechooserdialog.py.page:15(name) C/entry.py.page:12(name)
+#: C/dialog.py.page:13(name) C/combobox_multicolumn.py.page:13(name)
+#: C/combobox.py.page:12(name) C/colorbutton.py.page:12(name)
+#: C/checkbutton.py.page:13(name) C/buttonbox.py.page:13(name)
+#: C/button.py.page:13(name) C/aboutdialog.py.page:13(name)
 msgid "Marta Maria Casetti"
 msgstr "Marta Maria Casetti"
 
-#: C/window.py.page:17(email) C/treeview_simple_liststore.py.page:14(email)
-#: C/toolbar.py.page:13(email) C/togglebutton.py.page:14(email)
-#: C/textview.py.page:13(email) C/switch.py.page:16(email)
-#: C/statusbar.py.page:15(email) C/spinner.py.page:12(email)
-#: C/spinbutton.py.page:13(email) C/separator.py.page:13(email)
-#: C/scrolledwindow.py.page:12(email) C/scale.py.page:13(email)
-#: C/radiobutton.py.page:15(email) C/progressbar.py.page:12(email)
-#: C/messagedialog.py.page:12(email) C/linkbutton.py.page:12(email)
-#: C/label.py.page:12(email) C/image.py.page:12(email)
-#: C/GtkApplicationWindow.py.page:17(email) C/entry.py.page:12(email)
-#: C/dialog.py.page:12(email) C/combobox_multicolumn.py.page:13(email)
-#: C/combobox.py.page:12(email) C/colorbutton.py.page:12(email)
-#: C/checkbutton.py.page:12(email) C/button.py.page:12(email)
-#: C/aboutdialog.py.page:12(email)
+#: 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:30(p)
-#, fuzzy
-#| msgid "A minimal Gtk+ Application."
+#: C/window.py.page:31(p)
 msgid "A minimal Gtk+ Application: a window with a title."
-msgstr "Une application Gtk+ minimale."
+msgstr "Une application Gtk+ minimale : une fenêtre avec un titre."
 
-#: C/window.py.page:33(p)
+#: C/window.py.page:34(p)
 msgid ""
 "Use <link xref=\"GtkApplicationWindow.py\">Application Window</link> if you "
 "need GMenu support."
@@ -314,138 +383,213 @@ msgstr ""
 "Utilisez <link xref=\"GtkApplicationWindow.py\">Application Window</link> si "
 "vous avez besoin de la prise en charge de GMenu."
 
-#: C/window.py.page:41(title) C/statusbar.py.page:29(title)
-#: C/spinner.py.page:26(title) C/progressbar.py.page:36(title)
-#: C/messagedialog.py.page:26(title) C/label.py.page:31(title)
-#: C/image.py.page:30(title) C/GtkApplicationWindow.py.page:31(title)
-#: C/dialog.py.page:26(title) C/aboutdialog.py.page:26(title)
+#: 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 ""
+msgstr "Code utilisé pour générer cet exemple"
 
-#: C/window.py.page:48(title)
+#: C/window.py.page:49(title)
 msgid "Useful methods for a Window widget"
-msgstr ""
+msgstr "Méthodes utiles pour un élément graphique fenêtre"
 
 #: C/window.py.page:50(p)
 msgid ""
 "<code>window = Gtk.Window(application=self, title=\"Welcome to GNOME\")</"
 "code> sets the title as well, without the need for the line <code>window."
-"set_title(\"Welcome to GNOME\")</code>."
+"set_title(\"Welcome to GNOME\")</code>. For a general discussion of this, "
+"see <link xref=\"properties.py\">here</link>."
 msgstr ""
+"Le code <code>window = Gtk.Window(application=self, title=\"Welcome to GNOME"
+"\")</code> définit aussi le titre, sans avoir besoin de la ligne "
+"<code>window.set_title(\"Welcome to GNOME\")</code>. Pour de plus amples "
+"informations, voyez <link xref=\"properties.py\">ici</link>."
 
-#: C/window.py.page:51(p) C/GtkApplicationWindow.py.page:40(p)
+#: C/window.py.page:52(p) C/GtkApplicationWindow.py.page:41(p)
 msgid ""
 "<code>set_default_size(200, 100)</code> sets the default size of the window "
 "to a width of <code>200</code> and a height of <code>100</code>; if instead "
 "of a positive number we pass <code>-1</code> we have the default size."
 msgstr ""
+"<code>set_default_size(200, 100)</code> définit la taille par "
+"défaut de la fenêtre à une largeur de <code>200</code> et une hauteur de "
+"<code>100</code> ; si, au lieu d'un nombre positif, vous lui transmettez "
+"<code>-1</code>, vous obtenez la taille par défaut."
 
-#: C/window.py.page:52(p) C/GtkApplicationWindow.py.page:41(p)
+#: C/window.py.page:53(p) C/GtkApplicationWindow.py.page:42(p)
 msgid ""
 "<code>set_position(Gtk.WindowPosition.CENTER)</code> centers the window. "
-"Other options are described in the <link href=\"http://developer.gnome.org/";
-"gtk3/3.4/gtk3-Standard-Enumerations.html#GtkWindowPosition\">standard "
-"enumerations</link> (with the caveat that they should be changed on the "
-"model of Gtk.WindowPosition.CENTER)."
-msgstr ""
-
-#: C/window.py.page:57(title) C/statusbar.py.page:48(title)
-#: C/spinner.py.page:36(title) C/progressbar.py.page:51(title)
-#: C/messagedialog.py.page:50(title) C/label.py.page:82(title)
-#: C/image.py.page:96(title) C/GtkApplicationWindow.py.page:46(title)
-#: C/dialog.py.page:41(title) C/aboutdialog.py.page:33(title)
+"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> place la "
+"fenêtre au centre de l'écran. Les autres options possibles sont : <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 ""
-
-#: C/window.py.page:61(link) C/window.c.page:38(link)
-#: C/togglebutton.c.page:34(link) C/switch.c.page:31(link)
-#: C/spinner.c.page:31(link) C/radiobutton.c.page:30(link)
-#: C/messagedialog.py.page:61(link) C/linkbutton.c.page:30(link)
-#: C/label.c.page:34(link) C/image.vala.page:30(link) C/image.c.page:31(link)
-#: C/GtkApplicationWindow.py.page:51(link)
-#: C/GtkApplicationWindow.c.page:28(link) C/grid.c.page:30(link)
-#: C/entry.c.page:30(link) C/checkbutton.py.page:28(link)
-#: C/button.c.page:30(link) C/aboutdialog.py.page:41(link)
+msgstr "Références 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:62(link) C/window.c.page:39(link)
-#: C/togglebutton.c.page:35(link) C/switch.c.page:32(link)
-#: C/spinner.c.page:32(link) C/separator.py.page:31(link)
-#: C/radiobutton.py.page:31(link) C/radiobutton.c.page:31(link)
-#: C/messagedialog.py.page:57(link) C/linkbutton.py.page:30(link)
-#: C/linkbutton.c.page:31(link) C/label.py.page:86(link)
-#: C/label.c.page:35(link) C/image.py.page:100(link) C/image.c.page:32(link)
-#: C/grid.c.page:31(link) C/entry.c.page:31(link) C/dialog.py.page:47(link)
-#: C/button.c.page:31(link)
+#: 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:11(name) C/statusbar.js.page:11(name)
-#: C/spinner.js.page:11(name) C/progressbar.js.page:10(name)
-#: C/messagedialog.js.page:11(name) C/linkbutton.js.page:11(name)
-#: C/label.js.page:11(name) C/grid.js.page:16(name) C/entry.js.page:11(name)
-#: C/dialog.js.page:11(name) C/checkbutton.js.page:11(name)
-#: C/button.js.page:11(name) C/aboutdialog.js.page:10(name)
+#: C/window.js.page:7(title)
+msgid "Window (JavaScript)"
+msgstr "Fenêtre (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:12(email) C/statusbar.js.page:12(email)
-#: C/spinner.js.page:12(email) C/progressbar.js.page:11(email)
-#: C/messagedialog.js.page:12(email) C/linkbutton.js.page:12(email)
-#: C/label.js.page:12(email) C/grid.js.page:17(email)
-#: C/entry.js.page:12(email) C/dialog.js.page:12(email)
-#: C/checkbutton.js.page:12(email) C/button.js.page:12(email)
-#: C/aboutdialog.js.page:11(email)
+#: C/window.js.page:13(email) C/treeview_simple_liststore.js.page:16(email)
+#: C/togglebutton.js.page:13(email) C/textview.js.page:17(email)
+#: C/switch.js.page:13(email) C/statusbar.js.page:13(email)
+#: C/spinner.js.page:13(email) C/spinbutton.js.page:16(email)
+#: C/set-up-gedit.js.page:12(email) C/scale.js.page:13(email)
+#: C/radiobutton.js.page:13(email) C/progressbar.js.page:12(email)
+#: C/messagedialog.js.page:16(email) C/linkbutton.js.page:13(email)
+#: C/label.js.page:13(email) C/image.js.page:12(email)
+#: C/hellognome.js.page:12(email) C/grid.js.page:18(email)
+#: C/entry.js.page:13(email) C/dialog.js.page:13(email)
+#: C/combobox.js.page:17(email) C/comboboxtext.js.page:15(email)
+#: C/checkbutton.js.page:13(email) C/button.js.page:13(email)
+#: C/aboutdialog.js.page:12(email) C/03_getting_the_signal.js.page:16(email)
+#: C/02_welcome_to_the_grid.js.page:15(email)
 msgid "jewelfox fursona net"
 msgstr "jewelfox fursona net"
 
-#: C/window.js.page:16(desc)
+#: C/window.js.page:17(desc)
 msgid "A basic window which can contain other widgets"
 msgstr ""
-"Une fenêtre de niveau basique qui peut contenir d'autres éléments graphiques"
+"Une fenêtre élémentaire qui peut contenir d'autres éléments graphiques"
 
-#: C/window.js.page:24(p) C/window.c.page:24(p)
+#: C/window.js.page:25(p)
 msgid "A minimal GtkApplication"
 msgstr "Une GtkApplication minimale"
 
-#: C/window.js.page:27(p)
+#: C/window.js.page:28(p)
 msgid ""
 "Use <link xref=\"GtkApplicationWindow.js\">ApplicationWindow</link> if you "
 "need GMenu support."
 msgstr ""
-"Utilisez <link xref=\"GtkApplicationWindow.js\">Application Window</link> si "
+"Utilisez <link xref=\"GtkApplicationWindow.js\">ApplicationWindow</link> si "
 "vous avez besoin de la prise en charge de GMenu."
 
-#: C/window.js.page:33(p)
+#: C/window.js.page:34(p)
 msgid "In this example we used the following:"
 msgstr "Dans cet exemple, les éléments suivants sont utilisés :"
 
-#: C/window.js.page:38(link) C/toolbar.js.page:29(link)
+#: C/window.js.page:39(link) C/toolbar.js.page:30(link)
 msgid "Gtk.Window"
 msgstr "Gtk.Window"
 
-#: C/window.c.page:27(p)
+#: C/window.c.page:7(title)
+msgid "Window (C)"
+msgstr "Fenêtre (C)"
+
+#: C/window.c.page:23(p)
+# Bruno : bug : pas d'espace entre Application et Window
 msgid ""
-"Use <link xref=\"GtkApplicationWindow.c\">Application Window</link> if you "
-"need GMenu support."
+"A minimal GtkApplication. Use <link xref=\"GtkApplicationWindow.c"
+"\">Application Window</link> if you need GMenu support."
 msgstr ""
-"Utilisez <link xref=\"GtkApplicationWindow.c\">Application Window</link> si "
-"vous avez besoin de la prise en charge de GMenu."
+"Une GtkApplication minimale. Utilisez <link xref=\"GtkApplicationWindow.c"
+"\">ApplicationWindow</link> si vous avez besoin de la prise en charge de "
+"GMenu."
 
 #: C/weatherGeonames.js.page:10(name) C/weatherAutotools.js.page:10(name)
-#: C/weatherAppMain.js.page:10(name) C/weatherApp.js.page:10(name)
-#: C/helloworldautotools.js.page:10(name) C/helloWorld.js.page:10(name)
-#: C/guitar-tuner.js.page:10(name) C/grid.js.page:11(name)
-#: C/desktop.js.page:10(name) C/beginner.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:11(email)
-#: C/helloworldautotools.js.page:11(email) C/helloWorld.js.page:11(email)
-#: C/guitar-tuner.js.page:11(email) C/grid.js.page:12(email)
-#: C/desktop.js.page:11(email) C/beginner.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"
 
@@ -455,22 +599,22 @@ msgstr "Bibliothèque locale geoNames"
 
 #: C/weatherGeonames.js.page:20(p)
 msgid ""
-"In this part of the guide well construct the local library geoNames using "
+"In this part of the guide we'll construct the local library geoNames using "
 "asynchronous calls. Weather information in this example is fetched from "
 "geonames.org and the application is using the <link href=\"http://en.";
 "wikipedia.org/wiki/List_of_airports_by_ICAO_code:_E\">ICAO codes </link> to "
 "place your weather request. To write and run all the code examples yourself, "
 "you need an editor to write code in, Terminal and GNOME 3 or higher "
-"installed into your computer. In this guide we we'll go through the "
-"following parts:"
+"installed into your computer. In this guide we'll go through the following "
+"parts:"
 msgstr ""
 "Dans cette partie du guide nous allons construire la bibliothèque locale "
 "geoNames en utilisant des appels asynchrones. Dans cet exemple, les "
 "informations météorologiques sont récupérés sur geonames.org et "
 "l'application utilise les <link href=\"http://fr.wikipedia.org/wiki/";
 "Liste_des_codes_OACI_des_a%C3%A9roports\">codes OACI</link> pour localiser "
-"les requêtes météo. Pour écrire et lancer tous les exemples de code vous-"
-"même, vous avez besoin d'un éditeur pour écrire le code, de Terminal et d'un "
+"les requêtes météo. Pour écrire et lancer tous les exemples de code "
+"vous avez besoin d'un éditeur pour saisir le code, de l'application Terminal et d'un "
 "ordinateur sur lequel GNOME 3 ou supérieur est installé. Dans ce guide, nous "
 "illustrerons les éléments suivants :"
 
@@ -504,7 +648,7 @@ msgid ""
 msgstr ""
 "Dès les premières lignes, nous importons et initialisons les bibliothèques "
 "dont nous avons besoin dans cette bibliothèque locale. « Soup » prend en "
-"charge toutes les requêtes que nous devons faire avec http."
+"charge toutes les requêtes que nous devons faire via http."
 
 #: C/weatherGeonames.js.page:42(title)
 msgid "Creating function GeoNames"
@@ -517,7 +661,7 @@ msgid ""
 "first and later expand them. This will be done inside the GeoNames.prototype "
 "curly braces{}"
 msgstr ""
-"Ici, nous créons la fonction GeoNames qui prendra en charge l'obtention de "
+"Ici, nous créons la fonction GeoNames qui prend en charge l'obtention de "
 "la météo pour nous. Le JavaScript nous permet de créer des fonctions qui, au "
 "départ contiennent peu de code et de les étendre ensuite. Cela se fait à "
 "l'intérieur des accolades {} de GeoNames.prototype."
@@ -527,6 +671,7 @@ msgid "Methods for GeoNames"
 msgstr "Méthodes pour GeoNames"
 
 #: C/weatherGeonames.js.page:96(p)
+# Bruno : then parse the information from the request ***to a form that we can use.***  ???
 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 "
@@ -537,10 +682,10 @@ msgid ""
 msgstr ""
 "La première méthode de GeoNames est getWeather et la seconde getIcon. Dans "
 "getWeather, une requête http est effectuée avec « soup », nous prenons en "
-"charge les erreurs puis analysons les informations à partir de la requête "
-"vers une forme que nous pouvons utiliser. Dans getIcon, vous comparons tout "
+"charge les erreurs puis analysons (parse) les informations à partir de la requête "
+"vers une forme utilisable. Dans getIcon, nous comparons tout "
 "simplement les résultats obtenus avec getWeather à l'aide de l'instruction "
-"switch afin d'obtenir l'icône correspondant au temps actuel. Notre "
+"switch afin d'obtenir l'icône correspondant à la météo actuelle. Notre "
 "bibliothèque locale est prête et nous pouvons maintenant l'utiliser."
 
 #: C/weatherGeonames.js.page:102(p)
@@ -551,7 +696,7 @@ msgstr ""
 "Voici le code complet pour notre bibliothèque locale. Le fichier principal "
 "du programme l'appelle de manière asynchrone."
 
-#: C/weatherAutotools.js.page:18(title) C/weatherApp.js.page:29(link)
+#: C/weatherAutotools.js.page:18(title) C/weatherApp.js.page:30(link)
 msgid "Autotools and Icons"
 msgstr "Autotools et icônes"
 
@@ -566,8 +711,8 @@ msgstr ""
 "Dans cette partie du guide, nous allons construire les « autotools » et "
 "personnaliser les icônes dont nous avons besoin pour que l'application météo "
 "fasse partie intégrante de notre bureau. Pour écrire et lancer tous les "
-"exemples de code vous-même, vous avez besoin d'un éditeur pour écrire le "
-"code, de Terminal et d'un ordinateur sur lequel GNOME 3 ou supérieur est "
+"exemples de code, vous avez besoin d'un éditeur pour écrire le "
+"code, de l'application Terminal et d'un ordinateur sur lequel GNOME 3 ou supérieur est "
 "installé. Dans ce guide, nous illustrerons les éléments suivants :"
 
 #: C/weatherAutotools.js.page:23(link)
@@ -594,7 +739,7 @@ msgstr ""
 "Le fait d'avoir plus d'un seul fichier dans votre dossier rend l'usage "
 "d'autotools un peu complexe. Vous avez besoin des fichiers .desktop, de "
 "autogen.sh, Makefile.am, configure.ac et d'un nouveau fichier : "
-"monapplication.sh.in. Détailler le fichier autotools est un peu compliqué. "
+"monapplication.sh.in par exemple. Détailler le fichier autotools est un peu compliqué. "
 "Vous trouverez plus d'informations dans de nombreuses autres sources, <link "
 "href=\"http://en.wikipedia.org/wiki/GNU_build_system\";>cet article sur "
 "wikipédia</link> fournit un bon aperçu sur le sujet."
@@ -608,33 +753,32 @@ msgid "weatherapp.sh.in"
 msgstr "weatherapp.sh.in"
 
 #: C/weatherAutotools.js.page:37(p) C/weatherAutotools.js.page:63(p)
-#: C/helloworldautotools.js.page:23(p) C/helloworldautotools.js.page:34(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/helloworldautotools.js.page:24(p) C/helloworldautotools.js.page:45(p)
+#: C/helloWorld.js.page:167(title)
 msgid "configure.ac"
 msgstr "configure.ac"
 
-#: C/weatherAutotools.js.page:39(p) C/helloworldautotools.js.page:22(p)
-#: C/helloworldautotools.js.page:27(p)
+#: C/weatherAutotools.js.page:39(p) C/helloWorld.js.page:154(title)
 msgid "autogen.sh"
 msgstr "autogen.sh"
 
 #: C/weatherAutotools.js.page:54(p)
+# Bruno : l'anglais est totalement incompréhensible !
 msgid ""
 "The thing to notice in this file is that the Exec line will make this ."
 "desktop file work only after running all the other makefiles. Weatherapp.sh "
 "is a small shell script created with the weatherapp.sh.in."
 msgstr ""
-"La chose à noter dans ce fichier est que la ligne « Exec » rendra fonctionnel "
-"ce fichier « desktop » seulement après avoir exécuté tous les autres "
-"« makefiles ». Weatherapp.sh est un petit script créé avec le weatherapp.sh."
-"in."
+"La chose à noter dans ce fichier est que la ligne « Exec » rendra "
+"fonctionnel ce fichier « desktop » seulement après avoir exécuté tous les "
+"autres « makefiles ». Weatherapp.sh est un petit script créé avec le "
+"weatherapp.sh.in."
 
 #: C/weatherAutotools.js.page:61(p)
-#, fuzzy
 msgid ""
 "This file is a template to the file Makefile will do to be run from .desktop."
 msgstr ""
@@ -646,7 +790,7 @@ msgid ""
 "This needs a bit more explaining. Compared to the HelloWorld Makefile.am "
 "this has changed quite a bit. Lets go through all the new blocks:"
 msgstr ""
-"Ceci nécessite un peu plus d'explication. Comparé au Makefile.am de "
+"Ceci nécessite un peu plus d'explications. Comparé au Makefile.am de "
 "Helloworld, celui-ci a été fortement modifié. Parcourons tous les nouveaux "
 "blocs :"
 
@@ -675,7 +819,7 @@ msgid ""
 "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 ""
-"Après le commentaire « #icons in the application » se trouvent tous les "
+"Après le commentaire « #icons in the application » se trouvent toutes les "
 "icônes qui sont utilisées par le programme. Pour qu'elles soient utiles, "
 "vous devez installer les icônes aux emplacements corrects, ce qui est "
 "réalisé par la partie « install-icons »."
@@ -692,7 +836,7 @@ msgid ""
 "usr/share/hicolor, otherwise (e.g. the weather icons of your app) /usr/share/"
 "$application/bla/bla"
 msgstr ""
-"Lorsque vous pensez icônes personnalisées, une bonne règle empirique est : "
+"Lorsque vous pensez icônes personnalisées, une bonne règle est : "
 "souhaitez-vous que cette icône puisse être utilisée autre part ou est-elle "
 "privée ? Dans le premier cas (par ex. des icônes dans le fichier desktop qui "
 "sont affichées par le shell) alors vous avez besoin de /usr/share/hicolor "
@@ -706,7 +850,7 @@ msgid ""
 "In the Makefile.am file you add these two lines to the end of your "
 "application #the application icon"
 msgstr ""
-"Pour utiliser autotools, vous devez faire quelques modifications à vos "
+"Pour utiliser autotools, vous devez apporter quelques modifications à vos "
 "fichiers .desktop et Makefile. Dans le fichier desktop, modifiez le nom de "
 "l'icône Icon=weather-icon. Dans le fichier Makefile.am, ajoutez ces deux "
 "lignes à la fin de votre application #the application icon."
@@ -719,7 +863,7 @@ msgstr "appicondir=$(datadir)/icons/hicolor/scalable/apps"
 msgid "appicon_DATA=weather-icon.svg"
 msgstr "appicon_DATA=weather-icon.svg"
 
-#: C/weatherAppMain.js.page:18(title) C/weatherApp.js.page:27(link)
+#: C/weatherAppMain.js.page:18(title) C/weatherApp.js.page:28(link)
 msgid "The main program file"
 msgstr "Le fichier du programme principal"
 
@@ -732,26 +876,31 @@ msgid ""
 msgstr ""
 "Dans cette partie du guide, nous allons construire le fichier du programme "
 "principal de l'application météo. Pour écrire et lancer tous les exemples de "
-"code vous-même, vous avez besoin d'un éditeur pour écrire le code, de "
+"code, vous avez besoin d'un éditeur pour écrire le code, de l'application "
 "Terminal et d'un ordinateur sur lequel GNOME 3 ou supérieur est installé. "
 "Dans ce guide, nous illustrerons les éléments suivants :"
 
 #: C/weatherAppMain.js.page:22(link) C/weatherAppMain.js.page:32(title)
-#: C/helloWorld.js.page:22(link) C/helloWorld.js.page:34(title)
-#: C/guitar-tuner.js.page:24(link) C/guitar-tuner.js.page:46(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 "Script de lancement de l'application"
 
 #: C/weatherAppMain.js.page:23(link) C/weatherAppMain.js.page:40(title)
-#: C/statusbar.js.page:26(title) C/helloWorld.js.page:23(link)
-#: C/helloWorld.js.page:41(title) C/guitar-tuner.js.page:25(link)
-#: C/guitar-tuner.js.page:53(title) C/checkbutton.js.page:26(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 "Bibliothèques à importer"
 
 #: C/weatherAppMain.js.page:24(link) C/weatherAppMain.js.page:48(title)
-#: C/helloWorld.js.page:24(link) C/helloWorld.js.page:48(title)
-#: C/guitar-tuner.js.page:26(link) C/guitar-tuner.js.page:62(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 "Création de la fenêtre principale de l'application"
 
@@ -780,11 +929,11 @@ msgid ""
 "click you code file, choose properties, click the permissions tab and check "
 "the box for allow executing file as a program"
 msgstr ""
-"Cette ligne indique comment lancer le script. Elle doit être la première "
+"Cette ligne indique comment exécuter le script. Elle doit être la première "
 "ligne de code et le script doit être exécutable. Pour donner les bonnes "
-"permissions, allez dans Terminal et lancer dans le dossier correct la "
+"permissions, allez dans Terminal et lancez dans le dossier correct la "
 "commande : chmod +x nomduscript. Vous pouvez aussi utiliser le gestionnaire "
-"de fichiers graphique. Déplacez-vous dans le bon dossier où se trouve votre "
+"de fichiers. Déplacez-vous dans le dossier où se trouve votre "
 "code, faites un clic-droit sur le fichier, sélectionnez Propriétés, cliquez "
 "sur l'onglet Permissions et cochez la case pour permettre l'exécution du "
 "fichier comme un programme."
@@ -817,7 +966,7 @@ msgid ""
 msgstr ""
 "Dans cette section, nous créons la grille que nous allons utiliser pour "
 "positionner les éléments graphiques. Tous les boutons, étiquettes et champs "
-"de saisie sont initialisés et placés dans la grille. Comme vous pouvez le "
+"de saisie sont initialisés et positionnés dans la grille. Comme vous pouvez le "
 "voir à partir du positionnement des différents éléments graphiques, ils ne "
 "sont pas nécessairement en relation avec un seul élément graphique. Pour "
 "l'instant, certaines étiquettes n'ont pas de contenu. Le contenu de ces "
@@ -866,7 +1015,7 @@ msgid ""
 msgstr ""
 "Enfin, nous avons les connexions qui permettent à l'application de "
 "fonctionner comme il se doit. Nous connectons à la fois le champ de saisie "
-"et le bouton afin qu'ils fassent la même chose, obtenir la météo. De cette "
+"et le bouton afin qu'ils fassent la même chose : obtenir la météo. De cette "
 "manière, peu importe que l'utilisateur appuie sur la touche Entrée ou clique "
 "sur le bouton de recherche."
 
@@ -882,12 +1031,9 @@ msgstr "Le fichier weatherapp.js ressemble à ceci :"
 msgid "Running until you have all the autotools files ready. :"
 msgstr "Exécutez-le jusqu'à obtenir tous les fichiers autotools prêts."
 
-#: C/weatherAppMain.js.page:230(output)
-#: C/helloworldautotools.js.page:33(output)
-#: C/helloworldautotools.js.page:55(output)
-#: C/helloworldautotools.js.page:56(output)
-#: C/helloworldautotools.js.page:57(output) C/helloWorld.js.page:110(output)
-#: C/helloWorld.js.page:111(output) C/guitar-tuner.js.page:229(output)
+#: C/weatherAppMain.js.page:230(output) C/helloWorld.js.page:120(output)
+#: C/helloWorld.js.page:131(output) C/helloWorld.js.page:158(output)
+#: C/guitar-tuner.js.page:230(output)
 msgid "$"
 msgstr "$"
 
@@ -903,28 +1049,32 @@ msgid ""
 msgstr ""
 "Utilisez cette commande dans un terminal pendant le développement de votre "
 "module. En appelant votre programme de cette manière, il sait où trouver "
-"votre JSlibraries personnalisée, dans ce cas geonames.js."
+"votre bibliothèques JavaScript personnalisées, dans ce cas 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/weatherApp.js.page:34(None)
+#: C/weatherApp.js.page:35(None)
 msgid "@@image: 'media/weatherAppJs.png'; md5=1fe859ac4854273d72ea8fc9203639b2"
 msgstr ""
 "@@image: 'media/weatherAppJs.png'; md5=1fe859ac4854273d72ea8fc9203639b2"
 
-#: C/weatherApp.js.page:15(desc)
+#: C/weatherApp.js.page:6(title)
+msgid "Weather Application (JavaScript)"
+msgstr "Application météo (JavaScript)"
+
+#: C/weatherApp.js.page:16(desc)
 msgid ""
 "How to plan an application that uses asynchronous calls. Asynchronous calls "
 "will be presented through a weather application."
 msgstr ""
-"Comment planifier une application qui utilise des appels asynchrones.  Les "
+"Comment planifier une application qui utilise des appels asynchrones. Les "
 "appels asynchrones sont présentés au travers d'une application météo."
 
-#: C/weatherApp.js.page:20(title)
+#: C/weatherApp.js.page:21(title)
 msgid "4 Weather Application"
 msgstr "4 Application météo"
 
-#: C/weatherApp.js.page:22(p)
+#: C/weatherApp.js.page:23(p)
 msgid ""
 "In this guide well construct a weather application using asynchronous calls. "
 "Weather information in this example is fetched from geonames.org and the "
@@ -937,31 +1087,31 @@ msgstr ""
 "Dans cette partie du guide, nous allons construire une application météo "
 "utilisant des appels asynchrones. Dans cet exemple, les informations "
 "météorologiques sont récupérées sur geonames.org et l'application utilise "
-"les <link href=\"http://fr.wikipedia.org/wiki/Liste_des_codes_OACI_des_a%C3%";
-"A9roports\">codes OACI</link> pour localiser les requêtes météo. Pour écrire "
-"et lancer tous les exemples de code vous-même, vous avez besoin d'un éditeur "
-"pour écrire le code, de Terminal et d'un ordinateur sur lequel GNOME 3 ou "
-"supérieur est installé. Dans ce guide, nous illustrerons les éléments "
+"les <link href=\"http://fr.wikipedia.org/wiki/Liste_des_codes_OACI_des_a";
+"%C3%A9roports\">codes OACI</link> pour localiser les requêtes météo. Pour "
+"écrire et lancer tous les exemples de code, vous avez besoin d'un "
+"éditeur pour écrire le code, de l'application Terminal et d'un ordinateur sur lequel GNOME "
+"3 ou supérieur est installé. Dans ce guide, nous illustrerons les éléments "
 "suivants :"
 
-#: C/weatherApp.js.page:25(link) C/weatherApp.js.page:37(title)
+#: C/weatherApp.js.page:26(link) C/weatherApp.js.page:38(title)
 msgid "Planning the graphical user interface"
 msgstr "Organisation de l'interface graphique utilisateur"
 
-#: C/weatherApp.js.page:26(link) C/weatherApp.js.page:41(title)
+#: C/weatherApp.js.page:27(link) C/weatherApp.js.page:42(title)
 msgid "Asynchronous calls"
 msgstr "Appels asynchrones"
 
-#: C/weatherApp.js.page:28(link)
+#: C/weatherApp.js.page:29(link)
 msgid "Local library GeoNames"
 msgstr "Bibliothèque locale GeoNames"
 
-#: C/weatherApp.js.page:33(p) C/guitar-tuner.js.page:34(p)
+#: C/weatherApp.js.page:34(p) C/guitar-tuner.js.page:35(p)
 msgid "After reading this tutorial, you should see this in your screen:"
 msgstr ""
 "Après avoir suivi ce tutoriel, vous devriez voir ceci sur votre écran :"
 
-#: C/weatherApp.js.page:38(p)
+#: C/weatherApp.js.page:39(p)
 msgid ""
 "Structuring an application for GNOME 3 means you will be using <link href="
 "\"http://developer.gnome.org/platform-overview/stable/gtk\";>GTK+</link>. The "
@@ -986,7 +1136,8 @@ msgstr ""
 "graphiques en fonction des autres, donc la position du premier sur la grille "
 "conditionne le placement des autres."
 
-#: C/weatherApp.js.page:42(p)
+#: C/weatherApp.js.page:43(p)
+# Bruno : for example file system I/O ???
 msgid ""
 "With many programming languages, all operations are run synchronously - you "
 "tell the program to do something, and it will wait until that action "
@@ -1011,7 +1162,8 @@ msgstr ""
 "pouvez par exemple utiliser cette méthode pour des accès entrée/sortie de "
 "fichiers systèmes et des calculs lents en arrière-plan."
 
-#: C/weatherApp.js.page:45(p)
+#: C/weatherApp.js.page:46(p)
+# Bruno :  would have to ***be*** killed from terminal."
 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 "
@@ -1022,13 +1174,13 @@ msgid ""
 msgstr ""
 "Dans cet exemple, il nous faut obtenir des données de geonames.org. Pendant "
 "ce temps, nous voulons que le reste du programme continue à tourner. Si nous "
-"utilisons pour cela une application synchrone et que nous n'arrivons pas à "
-"avoir une connexion Internet fonctionnelle avec le site geonames.org, nous "
-"n'obtiendrons aucune donnée et donc nous n'atteindrons jamais la ligne où "
-"l'instruction main_quit() est exécutée. Il faudra alors « tuer » "
-"l'application dans Terminal."
+"utilisions pour cela une application synchrone et que nous n'arrivions pas à "
+"avoir une connexion internet fonctionnelle avec le site geonames.org, nous "
+"n'obtiendrions aucune donnée et donc nous n'atteindrions jamais la ligne où "
+"l'instruction main_quit() est exécutée. Il faudrait alors « tuer » "
+"l'application à partir du Terminal."
 
-#: C/weatherApp.js.page:48(title)
+#: C/weatherApp.js.page:49(title)
 msgid "The different parts of the program"
 msgstr "Les différentes parties du programme"
 
@@ -1040,8 +1192,172 @@ msgstr "Vala"
 msgid "Tutorials, code samples and platform demos in Vala"
 msgstr "Tutoriels, exemples de code et plateforme de démonstrations en vala"
 
-#: C/translate.page:12(years) C/index.page:19(years)
-#: C/documentation.page:12(years) C/bug-filing.page:11(years)
+#: C/tutorial.py.page:8(title)
+msgid "Beginner's Tutorial (Python)"
+msgstr "Tutoriels pour les débutants (Python)"
+
+#: C/tutorial.py.page:12(desc)
+msgid ""
+"A tutorial for beginners who want to learn how to program GUIs using GTK+ in "
+"Python."
+msgstr ""
+"Un tutoriel pour les débutants souhaitant apprendre comment programmer des "
+"interfaces utilisateur graphiques en Python."
+
+#: C/tutorial.py.page:25(title)
+msgid "0 Beginner's Tutorial"
+msgstr "0 Tutoriels pour les débutants"
+
+#: C/tutorial.py.page:28(p) C/beginner.vala.page:32(p) C/beginner.c.page:29(p)
+msgid ""
+"By following these tutorials you will learn the basics of GUI programming "
+"using Gtk+."
+msgstr ""
+"En suivant ces tutoriels, vous allez apprendre les bases de la programmation "
+"d'interfaces utilisateurs avec Gtk+."
+
+#: C/tutorial.py.page:30(p)
+msgid ""
+"If you have never programmed before, or are not familiar with the concepts "
+"of object oriented programming, you may need to learn a few basics first. "
+"The book <link href=\"http://learnpythonthehardway.org/book/\";>Learn Python "
+"the Hard Way</link> or <link href=\"http://docs.python.org/tutorial/index.";
+"html\">The Python Tutorial</link> may be a better place for you to start. "
+"You may also be interested in <link href=\"http://python-gtk-3-tutorial.";
+"readthedocs.org/en/latest/index.html\">The Python GTK+ 3 Tutorial</link>. "
+"Once you master the basics, be sure to come back and check out these "
+"tutorials."
+msgstr ""
+"Si vous n'avez jamais programmé auparavant, ou si vous n'êtes pas à l'aise "
+"avec le concept de programmation orienté objets, il est préférable "
+"d'acquérir quelques bases avant toute chose. Vous pourriez par exemple "
+"commencer par lire les livres <link href=\"http://learnpythonthehardway.org/";
+"book/\">Learn Python the Hard Way</link> ou <link href=\"http://docs.python.";
+"org/tutorial/index.html\">The Python Tutorial</link>. Vous pourriez aussi "
+"être intéressé par <link href=\"http://python-gtk-3-tutorial.";
+"readthedocs.org/en/latest/index.html\">The Python GTK+ 3 Tutorial</link>. "
+"Dès que vous maîtrisez "
+"les bases, n'oubliez pas de revenir consulter ces tutoriels."
+
+#: C/tutorial.py.page:36(title)
+msgid "To run the code samples"
+msgstr "Lancement des exemples de code"
+
+#: 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 "Pour lancer les exemples de code :"
+
+#: C/tutorial.py.page:40(p)
+msgid "Copy and paste the code into <var>filename</var>.py"
+msgstr "Copiez et collez le code dans <var>nomdufichier</var>.py"
+
+#: C/tutorial.py.page:41(p) C/beginner.vala.page:46(p) C/beginner.c.page:43(p)
+#: C/beginner.c.page:56(p)
+msgid "In the terminal type:"
+msgstr "Saisissez dans le terminal :"
+
+#: C/tutorial.py.page:42(screen)
+#, no-wrap
+msgid "python <var>filename</var>.py"
+msgstr "python <var>nomdufichier</var>.py"
+
+#: C/tutorial.py.page:48(title)
+msgid "A path through the widgets"
+msgstr "Parcours des éléments graphiques"
+
+#: C/tutorial.py.page:50(title)
+msgid "Tutorial"
+msgstr "Tutoriel"
+
+#: C/tutorial.py.page:52(title)
+msgid "Basic windows"
+msgstr "Fenêtres élémentaires"
+
+#: C/tutorial.py.page:57(title)
+msgid "Images and labels"
+msgstr "Images et étiquettes"
+
+#: 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 "Grille"
+
+#: 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 "Décorations"
+
+#: C/tutorial.py.page:70(title)
+msgid "Basic buttons"
+msgstr "Boutons élémentaires"
+
+#: C/tutorial.py.page:79(title)
+msgid "Other display widgets"
+msgstr "Autre éléments graphiques d'affichage"
+
+#: C/tutorial.py.page:85(title)
+msgid "Entry widgets (with a detour on basic scrolling)"
+msgstr ""
+"Éléments graphiques de saisie (avec un détour sur les bases du défilement)"
+
+#: C/tutorial.py.page:93(title)
+msgid "Dialogs"
+msgstr "Boîtes de dialogue"
+
+#: C/tutorial.py.page:99(title)
+msgid "TreeViews and ComboBoxes (using the M/V/C design)"
+msgstr "Arborescences et boites combinées (utilisant la conception M/V/C)"
+
+#: C/tutorial.py.page:108(title)
+msgid "Menus and toolbars (also: using Glade)"
+msgstr "Menus et barres d'outils (et également utilisation de Glade)"
+
+#: C/tutorial.py.page:116(title)
+msgid "Selectors (a recap)"
+msgstr "Sélecteurs (récapitulation)"
+
+#: C/tutorial.py.page:122(title) C/tooltip.py.page:21(title)
+msgid "Tooltip"
+msgstr "Infobulle"
+
+#: C/tutorial.py.page:126(title)
+msgid "More containers"
+msgstr "Davantage de conteneurs"
+
+#: C/tutorial.py.page:131(title)
+msgid "More scrolling"
+msgstr "Davantage sur le défilement"
+
+#: C/tutorial.py.page:132(p)
+msgid "\"scrollbar.py\""
+msgstr "\"scrollbar.py\""
+
+#: C/tutorial.py.page:135(title)
+msgid "Custom widget"
+msgstr "Élément graphique personnalisé"
+
+#: C/tutorial.py.page:136(p)
+msgid "\"widget.py\""
+msgstr "\"widget.py\""
+
+#: C/tutorial.py.page:142(title)
+msgid "Some theory to help you"
+msgstr "Un peu de théorie pour vous aider"
+
+#: 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 "Exercices"
+
+#: 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"
 
@@ -1118,8 +1434,95 @@ 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/treeview_simple_liststore.vala.page:22(None)
-#: C/treeview_simple_liststore.py.page:22(None)
+#: C/treeview_treestore.py.page:21(None)
+msgid ""
+"@@image: 'media/treeview_treestore.png'; md5=5ca87bc4acd55c527b3fb5fd46779d85"
+msgstr ""
+"@@image: 'media/treeview_treestore.png'; md5=5ca87bc4acd55c527b3fb5fd46779d85"
+
+#: C/treeview_treestore.py.page:7(title)
+#: C/treeview_cellrenderertoggle.py.page:7(title)
+msgid "TreeView with TreeStore (Python)"
+msgstr "TreeView avec TreeStore (Python)"
+
+#: C/treeview_treestore.py.page:17(desc)
+msgid "A TreeView displaying a TreeStore (simpler example)"
+msgstr ""
+"Un TreeView affichant un TreeStore (exemple le plus simple)"
+
+#: C/treeview_treestore.py.page:20(title)
+#: C/treeview_cellrenderertoggle.py.page:20(title)
+msgid "TreeView with TreeStore"
+msgstr "TreeView avec TreeStore"
+
+#: C/treeview_treestore.py.page:22(p)
+msgid "This TreeView displays a TreeStore."
+msgstr "Ce TreeView affiche un TreeStore."
+
+#: C/treeview_treestore.py.page:33(title)
+#: C/treeview_simple_liststore.py.page:35(title)
+#: C/treeview_cellrenderertoggle.py.page:33(title)
+#: C/treeview_advanced_liststore.py.page:36(title)
+msgid "Useful methods for a TreeView widget"
+msgstr "Méthodes utiles pour un élément graphique TreeView"
+
+#: C/treeview_treestore.py.page:34(p)
+#: C/treeview_simple_liststore.py.page:36(p)
+#: C/treeview_cellrenderertoggle.py.page:34(p)
+#: C/treeview_advanced_liststore.py.page:37(p)
+msgid ""
+"The TreeView widget is designed around a <em>Model/View/Controller</em> "
+"design. For more information, and for a list of useful methods for TreeView "
+"and the interface TreeModel, see <link xref=\"model-view-controller.py"
+"\">here</link>."
+msgstr ""
+"L'élément graphique TreeView est articulé autour d'un concept "
+"<em>Modèle/Vue/Contrôleur</em>. Pour de plus amples informations et pour "
+"consulter une liste de méthodes utiles à l'utilisation de TreeView "
+"et de l'interface TreeModel, rendez-vous <link xref=\"model-"
+"view-controller.py\">ici</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"
@@ -1127,352 +1530,1114 @@ msgstr ""
 "@@image: 'media/treeview_simple_liststore.png'; "
 "md5=2dc501a2b95b094da985d37b66aee90c"
 
-#: C/treeview_simple_liststore.vala.page:18(desc)
-#: C/treeview_simple_liststore.py.page:18(desc)
+#: C/treeview_simple_liststore.vala.page:7(title)
+msgid "Simple Treeview with ListStore (Vala)"
+msgstr "TreeView tout simple avec ListStore (Vala)"
+
+#: C/treeview_simple_liststore.vala.page:19(desc)
 msgid "A widget can display any TreeModel implementation (lists and trees)"
 msgstr ""
 "Un élément graphique peut afficher n'importe quelle implémentation de "
 "TreeModel (en listes et arborescentes)"
 
-#: C/treeview_simple_liststore.vala.page:21(title)
-#: C/treeview_simple_liststore.py.page:21(title)
+#: C/treeview_simple_liststore.vala.page:22(title)
+#: C/treeview_advanced_liststore.py.page:23(title)
 msgid "Simple Treeview with ListStore"
-msgstr "Une simple vue arborescente (Treeview) avec ListStore"
+msgstr "Simple Treeview avec ListStore"
 
-#: C/treeview_simple_liststore.vala.page:23(p)
-#: C/treeview_simple_liststore.py.page:23(p)
+#: C/treeview_simple_liststore.vala.page:24(p)
 msgid ""
 "This TreeView displays a simple ListStore with the Selection \"changed\" "
 "signal connected."
 msgstr ""
-"Ce TreeView affiche un ListStore simple avec le signal « changed » de la "
-"sélection connecté."
+"Ce Treeview affiche un ListStore tout simple avec le signal "
+"« changed » de la sélection connecté."
 
-#: C/treeview_simple_liststore.vala.page:30(link)
+#: 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:31(link)
-#: C/combobox.vala.page:28(link)
+#: 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:32(link)
+#: 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:30(link)
-#, fuzzy
-#| msgid "Gtk.TreeView"
-msgid "GtkTreeView"
-msgstr "Gtk.TreeView"
+#: C/treeview_simple_liststore.py.page:7(title)
+msgid "Simple TreeView with ListStore (Python)"
+msgstr "TreeView tout simple avec ListStore (Python)"
 
-#: C/treeview_simple_liststore.py.page:31(link)
-#: C/combobox_multicolumn.py.page:30(link) C/combobox.py.page:29(link)
-#, fuzzy
-#| msgid "Gtk.ListStore"
-msgid "GtkListStore"
-msgstr "Gtk.ListStore"
+#: C/treeview_simple_liststore.py.page:19(desc)
+msgid "A TreeView displaying a ListStore (simpler example)"
+msgstr "Un TreeView affichant un ListStore (exemple le plus simple)"
 
-#: C/treeview_simple_liststore.py.page:32(link)
-#, fuzzy
-#| msgid "Gtk.TreeView"
-msgid "GtkTreeViewColumn"
-msgstr "Gtk.TreeView"
+#: C/treeview_simple_liststore.py.page:22(title)
+msgid "Simple TreeView with ListStore"
+msgstr "TreeView tout simple avec ListStore"
 
-#: C/treeview_simple_liststore.py.page:33(link)
-#: C/combobox_multicolumn.py.page:34(link) C/combobox.py.page:32(link)
-msgid "pygobject - Python bindings for GObject Introspection"
+#: C/treeview_simple_liststore.py.page:24(p)
+#: C/treeview_advanced_liststore.py.page:25(p)
+msgid ""
+"This TreeView displays a simple ListStore with the selection \"changed\" "
+"signal connected."
 msgstr ""
+"Ce Treeview affiche un ListStore tout simple avec le signal "
+"« changed » de la sélection connecté."
 
-#: C/treeview_simple_liststore.py.page:34(link)
+#: C/treeview_simple_liststore.py.page:45(link)
+#: C/treeview_advanced_liststore.py.page:47(link)
+#: C/combobox_multicolumn.py.page:44(link) C/combobox.py.page:41(link)
+msgid "GtkListStore"
+msgstr "GtkListStore"
+
+#: C/treeview_simple_liststore.py.page:48(link)
+#: C/treeview_advanced_liststore.py.page:50(link)
+#: C/combobox_multicolumn.py.page:48(link) C/combobox.py.page:44(link)
+msgid "pygobject - Python bindings for GObject Introspection"
+msgstr "pygobject - Liaisons Python pour l'introspection GObject"
+
+#: C/treeview_simple_liststore.py.page:49(link)
 msgid "Fonts"
+msgstr "Polices"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/treeview_simple_liststore.js.page:24(None)
+msgid ""
+"@@image: 'media/treeview_simple_liststore_penguins.png'; "
+"md5=d750a0b9fddf8e508753cc639839871d"
+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 avec ListStore (JavaScript)"
+
+#: C/treeview_simple_liststore.js.page:20(desc)
+msgid "A widget that shows a separate list of items"
+msgstr "Un élément graphique qui affiche une liste séparée d'éléments"
+
+#: C/treeview_simple_liststore.js.page:23(title)
+msgid "TreeView with ListStore"
+msgstr "TreeView avec ListStore"
+
+#: C/treeview_simple_liststore.js.page:25(p)
+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."
+msgstr ""
+"Un TreeView est une fenêtre affichant le contenu soit d'un "
+"ListStore, soit d'un TreeStore. Un ListStore peut être "
+"comparé à une feuille de calcul : une liste « plate », en deux dimensions, "
+"contenant des données réparties sur des lignes et dans des colonnes. Alors qu'"
+"un TreeStore peut déployer ses branches dans différentes "
+"directions, à la manière d'un arbre. Dans cet exemple, nous créons un "
+"TreeView qui affiche le contenu d'un ListStore contenant des noms et des "
+"numéros de téléphone (fictifs) et nous le paramétrons pour que "
+"l'<link xref=\"label.js\">étiquette</link> en bas de la "
+"fenêtre affiche plus d'informations sur le nom qui a été cliqué."
+
+#: C/treeview_simple_liststore.js.page:26(p)
+msgid ""
+"The TreeView is not just a single widget, but contains a number of smaller "
+"ones:"
+msgstr ""
+"Un TreeView n'est pas qu'un simple élément graphique, il contient aussi un certain "
+"nombre d'autres plus petits :"
+
+#: C/treeview_simple_liststore.js.page:28(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 ""
+"Les éléments graphiques TreeViewColumn affichent chaque colonne "
+"d'informations contenue dans le ListStore. Chacune d'elle a un nom qui "
+"peut être affiché dans l'en-tête de la colonne, comme montré dans la "
+"capture d'écran."
+
+#: C/treeview_simple_liststore.js.page:29(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\")."
+msgstr ""
+"Les éléments graphiques CellRenderer sont « empilés » dans chaque "
+"TreeViewColumn et contiennent les instructions sur la manière "
+"d'afficher chaque « cellule » individuelle ou chaque élément du "
+"ListStore. Il en existe beaucoup de types différents, y compris le "
+"CellRendererText utilisé ici et le CellRendererPixbuf qui affiche une image "
+"« pixel buffer »."
+
+#: C/treeview_simple_liststore.js.page:31(p)
+msgid ""
+"Finally, we're going to use an object called a TreeIter, which isn't a "
+"widget so much as an invisible cursor which points to a (horizontal) row in "
+"the ListStore. Whenever you click on a name in the phonebook, for instance, "
+"we create a TreeIter pointing to the row that's selected, and then use that "
+"to tell the ListStore which entry we want the Label to show more information "
+"about."
+msgstr ""
+"Pour finir, nous allons utiliser un objet nommé TreeIter, qui n'est "
+"pas à proprement parler un élément graphique, mais plutôt un curseur "
+"invisible qui pointe vers une ligne horizontale du ListStore. Si vous "
+"cliquez par exemple sur un nom de la liste téléphonique, cela génère un "
+"TreeIter qui pointe vers la ligne sélectionnée et qui sert à indiquer "
+"au ListStore quelles informations supplémentaires l'étiquette doit "
+"afficher."
+
+#: C/treeview_simple_liststore.js.page:32(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."
+msgstr ""
+"Le TreeView est probablement l'élément graphique Gtk le plus "
+"compliqué, de par le nombre d'éléments qu'il contient et à cause de la façon dont "
+"ils sont imbriqués pour travailler ensemble. Prenez le temps d'apprendre et "
+"son fonctionnement en faisant des essais, ou alors essayez "
+"de commencer par quelque chose de plus facile si vous n'y arrivez pas."
+
+#: C/treeview_simple_liststore.js.page:45(p) C/togglebutton.js.page:35(p)
+#: C/textview.js.page:44(p) C/switch.js.page:42(p) C/statusbar.js.page:35(p)
+#: C/spinbutton.js.page:38(p) C/scale.js.page:35(p)
+#: C/radiobutton.js.page:35(p) C/messagedialog.js.page:38(p)
+#: C/combobox.js.page:40(p) C/comboboxtext.js.page:36(p)
+#: C/checkbutton.js.page:35(p)
+msgid ""
+"These are the libraries we need to import for this application to run. "
+"Remember that the line which tells GNOME that we're using Gjs always needs "
+"to go at the start."
+msgstr ""
+"Ce sont les bibliothèques que nous devons importer "
+"pour faire fonctionner cette application. N'oubliez pas que la ligne qui "
+"informe GNOME que nous allons utiliser Gjs doit toujours se trouver au début."
+
+#: 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 "Création de la fenêtre de l'application"
+
+#: C/treeview_simple_liststore.js.page:75(p)
+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."
+msgstr ""
+"Tout le code utilisé pour cet exemple va dans la classe TreeViewExample. Le "
+"code ci-dessus crée une <link href=\"http://www.roojs.com/seed/gir-1.2-";
+"gtk-3.0/gjs/Gtk.Application.html\">Gtk.Application</link> pour nos éléments "
+"graphiques et la fenêtre qui les contient."
+
+#: C/treeview_simple_liststore.js.page:89(p) C/togglebutton.js.page:80(p)
+#: C/textview.js.page:87(p) C/switch.js.page:87(p) C/spinbutton.js.page:80(p)
+#: C/scale.js.page:77(p) C/radiobutton.js.page:78(p)
+#: C/messagedialog.js.page:83(p) C/combobox.js.page:82(p)
+#: C/comboboxtext.js.page:78(p)
+msgid ""
+"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 ""
+"La fonction _buildUI est l'endroit où nous mettons tout le code nécessaire à "
+"la création de l'interface utilisateur de l'application. La première étape "
+"consiste à créer une <link xref=\"GtkApplicationWindow.js\">Gtk."
+"ApplicationWindow</link> pour y mettre tous nos éléments graphiques."
+
+#: C/treeview_simple_liststore.js.page:93(title) C/combobox.js.page:86(title)
+msgid "Creating the ListStore"
+msgstr "Création du ListStore"
+
+#: C/treeview_simple_liststore.js.page:103(p)
+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 ""
+"Créons en premier le ListStore comme nous l'aurions fait pour n'importe "
+"quel élément graphique. Appelons ensuite sa méthode set_column_types et "
+"passons lui un tableau de types de données GObject (nous aurions pu "
+"placer tous les types sur une seule et même ligne, mais pour faciliter la "
+"lecture, nous les séparons)."
+
+#: C/treeview_simple_liststore.js.page:104(p)
+msgid "The GObject data types you can use include:"
+msgstr "Les types de données GObject que vous pouvez utiliser incluent :"
+
+#: 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> -- true ou false"
+
+#: C/treeview_simple_liststore.js.page:107(p) C/combobox.js.page:98(p)
+msgid ""
+"<file>GObject.TYPE_FLOAT</file> -- A floating point number (one with a "
+"decimal point)"
+msgstr "<file>GObject.TYPE_FLOAT</file> -- un nombre à virgule flottante"
+
+#: C/treeview_simple_liststore.js.page:108(p) C/combobox.js.page:99(p)
+msgid "<file>GObject.TYPE_STRING</file> -- A string of letters and numbers"
+msgstr ""
+"<file>GObject.TYPE_STRING</file> -- une chaîne de caractères (lettres ou chiffres)"
+
+#: C/treeview_simple_liststore.js.page:109(p)
+msgid "<file>gtk.gdk.Pixbuf</file> -- A picture"
+msgstr "<file>gtk.gdk.Pixbuf</file> -- une image"
+
+#: C/treeview_simple_liststore.js.page:111(p)
+msgid ""
+"In this case, we're making a ListStore of four columns, each one containing "
+"string values."
+msgstr ""
+"Dans ce cas, nous créons un ListStore de quatre colonnes contenant "
+"chacune des valeurs de type chaînes de caractères."
+
+#: C/treeview_simple_liststore.js.page:112(p) C/combobox.js.page:101(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 ""
+"Pour pouvoir utiliser les types GObject, vous devez placer la ligne "
+"<file>const GObject = imports.gi.GObject;</file> au début du code de votre "
+"application, comme nous l'avons fait dans cet exemple."
+
+#: C/treeview_simple_liststore.js.page:131(p)
+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."
+msgstr ""
+"Voici les informations contenues dans le ListStore. C'est un assortiment "
+"d'objets, chacun correspondant à une entrée de notre répertoire téléphonique."
+
+#: C/treeview_simple_liststore.js.page:132(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."
+msgstr ""
+"Notez que le TreeView de la capture d'écran n'affiche pas pour "
+"l'instant les données des propriétés « description ». Elles s'afficheront "
+"dans l'étiquette du dessous à chaque clic sur une ligne. C'est parce qu'un "
+"TreeView et un ListStore sont deux choses bien distinctes et "
+"qu'un TreeView peut afficher tout ou une partie du contenu d'un ListStore de différentes façons. Vous "
+"pouvez même posséder plusieurs éléments graphiques affichant des éléments "
+"d'un même ListStore, comme l'étiquette de notre exemple ou bien encore "
+"un second TreeView."
+
+#: C/treeview_simple_liststore.js.page:141(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."
+msgstr ""
+"Cette boucle <file>for</file> place les chaînes de caractères de notre "
+"répertoire téléphonique dans notre ListStore dans l'ordre. Pour ce faire, "
+"nous passons à la méthode set du ListStore le curseur qui pointe vers la "
+"bonne ligne, un tableau qui indique quelles colonnes nous voulons définir et "
+"un tableau qui contient les données que nous voulons y mettre."
+
+#: C/treeview_simple_liststore.js.page:142(p)
+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."
+msgstr ""
+"La méthode <file>append</file> du ListStore ajoute une ligne horizontale "
+"à celui-ci (au début, il n'y en a pas) et renvoie un TreeIter "
+"pointant vers cette ligne comme un curseur. Donc, en transmettant <file>this."
+"_listStore.append()</file> au ListStore comme propriété, nous créons "
+"une nouvelle ligne en indiquant en même temps à la méthode <file>set</file> "
+"à quelle ligne elle doit attribuer les données."
+
+#: C/treeview_simple_liststore.js.page:147(title)
+msgid "Creating the TreeView"
+msgstr "Création du TreeView"
+
+#: C/treeview_simple_liststore.js.page:154(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."
+msgstr ""
+"Ici, nous créons un élément graphique TreeView de base, qui s'étend à "
+"la fois horizontalement et verticalement pour utiliser autant d'espace que "
+"nécessaire. Nous le paramétrons pour utiliser le ListStore que nous avons "
+"créé comme étant son « modèle » et d'où proviendront les éléments qu'il "
+"affichera."
+
+#: C/treeview_simple_liststore.js.page:162(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."
+msgstr ""
+"Nous créons maintenant chacun des TreeViewColumns vertical qui "
+"s'afficheront dans notre TreeView. Comme le montre la capture "
+"d'écran, chaque titre se situe respectivement en haut de sa colonne."
+
+#: C/treeview_simple_liststore.js.page:177(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 ""
+"Ici, nous créons les CellRenderers que nous allons utiliser pour afficher le "
+"texte contenu dans notre ListStore et nous les positionnons dans les "
+"TreeViewColumns. Chaque CellRendererText est utilisé pour toutes les "
+"entrées de cette colonne. Notre CellRendererText normal (normal) ne génère que du "
+"texte brut, alors que celui en gras (bold) utilise du texte plus gras. Nous le "
+"mettons dans la première en-tête de colonne et nous indiquons aux deux "
+"autres d'utiliser des copies du normal. L'argument « true » utilisé "
+"comme second paramètre de la méthode <file>pack_start</file> lui indique "
+"d'agrandir les cellules quand cela est possible, au lieu de les laisser compactes."
+
+#: C/treeview_simple_liststore.js.page:178(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."
+msgstr ""
+"<link href=\"http://www.pygtk.org/docs/pygtk/pango-constants.html\";>Voici ici"
+"une liste</link> d'autres propriétés de texte que vous pouvez utiliser. Pour "
+"pouvoir utiliser les constantes Pango, assurez-vous "
+"d'ajouter la ligne <file>const Pango = imports.gi.Pango;</file> au début de "
+"votre code comme nous l'avons fait."
+
+#: C/treeview_simple_liststore.js.page:190(p)
+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."
+msgstr ""
+"Après avoir placé les CellRenderers dans les TreeViewColumns, nous "
+"utilisons la méthode <file>add_attribute</file> pour indiquer à chaque "
+"colonne d'extraire du modèle le texte pour lequel notre TreeView est "
+"programmée ; dans ce cas, le ListStore contenant le répertoire téléphonique."
+
+#: C/treeview_simple_liststore.js.page:192(p)
+msgid ""
+"The first parameter is which CellRenderer we're going to use to render what "
+"we're pulling in."
+msgstr ""
+"Le premier paramètre indique quel CellRenderer nous allons utiliser pour "
+"restituer ce que nous extrayons."
+
+#: C/treeview_simple_liststore.js.page:193(p)
+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."
+msgstr ""
+"Le second paramètre indique le type d'information que nous voulons extraire. "
+"Dans ce cas, nous lui indiquons que nous voulons du texte."
+
+#: C/treeview_simple_liststore.js.page:194(p)
+msgid ""
+"The third parameter is which of the ListStore's columns we're pulling that "
+"information in from."
+msgstr ""
+"Le troisième paramètre indique de quelle colonne du ListStore nous "
+"voulons extraire cette information."
+
+#: 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."
+msgstr ""
+"Après avoir paramétré ceci, nous utilisons la méthode <file>insert_column</"
+"file> pour trier le contenu de nos TreeViewColumns. Notre "
+"TreeView est à présent terminée."
+
+#: C/treeview_simple_liststore.js.page:197(p)
+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."
+msgstr ""
+"Normalement, vous devriez utiliser une boucle pour initialiser votre "
+"TreeView, mais dans cet exemple, nous avons détaillé étape par étape "
+"ce qui ce passe afin de mieux comprendre."
+
+#: C/treeview_simple_liststore.js.page:201(title)
+msgid "Building the rest of the UI"
+msgstr "Construction du reste de l'interface utilisateur"
+
+#: C/treeview_simple_liststore.js.page:212(p)
+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."
+msgstr ""
+"La méthode <file>get_selection</file> du TreeView retourne un objet appelé un "
+"TreeSelection. Un TreeSelection est comme un "
+"TreeIter, tout simplement un curseur qui pointe vers une ligne "
+"particulière, à la différence que celui-ci pointe vers la "
+"ligne qui est marqué visuellement comme sélectionnée."
+
+#: C/treeview_simple_liststore.js.page:213(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 ""
+"Une fois obtenu le TreeSelection qui va avec notre TreeView, "
+"nous lui demandons de nous indiquer vers quelle ligne il pointe quand il "
+"est modifié. Nous obtenons cela en connectant le signal <file>changed</file> "
+"à la fonction _onSelectionChanged que nous avons programmée. Cette fonction "
+"modifie le texte affiché par l'étiquette que nous venons de créer."
+
+#: C/treeview_simple_liststore.js.page:230(p)
+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."
+msgstr ""
+"Ceci fait, nous créons une <link xref=\"grid.js\">grille (grid)</link> pour y "
+"placer le tout, puis nous l'ajoutons à notre fenêtre et demandons à cette "
+"fenêtre de s'afficher avec son contenu."
+
+#: C/treeview_simple_liststore.js.page:234(title)
+msgid "Function which handles a changed selection"
+msgstr "Fonction prenant en charge la modification de la sélection"
+
+#: C/treeview_simple_liststore.js.page:253(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."
+msgstr ""
+"La ligne de code utilisant l'instruction « let » est quelque peu compliquée, mais c'est "
+"néanmoins la meilleure façon d'obtenir un TreeIter qui pointe "
+"vers la même ligne que notre TreeSelection. Elle doit créer "
+"quelques autres références d'objets, mais le seul qui nous intéresse est "
+"l'<file>iter</file>."
+
+#: C/treeview_simple_liststore.js.page:254(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."
+msgstr ""
+"Ceci fait, nous appelons la fonction <file>set_label</file> de l'étiquette "
+"et nous utilisons la fonction <file>get_value</file> du ListStore autant "
+"de fois que nécessaire pour la remplir de toutes les données que nous "
+"souhaitons y mettre. Ses paramètres sont un TreeIter pointant vers la "
+"ligne dont nous voulons extraire les données et la colonne."
+
+#: 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."
+msgstr ""
+"Ici, nous voulons obtenir les données des quatre colonnes, y compris celles "
+"qui sont « masquées » et qui ne font pas partie du TreeView. De "
+"cette façon, nous pouvons utiliser notre étiquette pour afficher les chaînes "
+"de caractères qui sont trop longues pour tenir dans le TreeView et "
+"que nous n'avons pas besoin de voir au premier coup d'œil."
+
+#: C/treeview_simple_liststore.js.page:262(p)
+msgid ""
+"Finally, we create a new instance of the finished TreeViewExample class, and "
+"set the application running."
+msgstr ""
+"Enfin, nous créons une nouvelle instance de la classe TreeViewExample qui est terminée et nous "
+"démarrons l'application."
+
+#: 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 "Exemple complet du code"
+
+#: 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 "Documentation approfondie"
+
+#: 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)
+msgid ""
+"A TreeView displaying a TreeStore (more complex example, with "
+"CellRendererToggle)"
+msgstr ""
+"Une TreeView affichant un TreeStore (exemple plus complexe "
+"avec CellRendererToggle)"
+
+#: C/treeview_cellrenderertoggle.py.page:22(p)
+# Bruno : toggle = inverseur
+msgid ""
+"This TreeView displays a TreeStore with two columns, one of which is "
+"rendered as a toggle."
+msgstr ""
+"Ce TreeView affiche un TreeStore de deux colonnes, dont "
+"l'une est affichée sous la forme d'un inverseur."
+
+#: C/treeview_cellrenderertoggle.py.page:45(link)
+msgid "GtkCellRendererToggle"
+msgstr "GtkCellRendererToggle"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/treeview_advanced_liststore.py.page:24(None)
+msgid ""
+"@@image: 'media/treeview_advanced_liststore.png'; "
+"md5=102b512197fb9aa4ed9a16462f6af911"
+msgstr ""
+"@@image: 'media/treeview_advanced_liststore.png'; "
+"md5=102b512197fb9aa4ed9a16462f6af911"
+
+#: C/treeview_advanced_liststore.py.page:7(title)
+msgid "Simple Treeview with ListStore (Python)"
+msgstr "Simple TreeView avec ListStore (Python)"
+
+#: C/treeview_advanced_liststore.py.page:20(desc)
+msgid "A TreeView displaying a ListStore (more complex example)"
+msgstr "Une TreeView affichant un ListStore (exemple plus complexe)"
+
+#: C/treeview_advanced_liststore.py.page:38(p)
+msgid ""
+"For buttons and callbacks functions, see <link xref=\"signals-callbacks.py"
+"\">here</link>"
+msgstr ""
+"Pour les boutons et les fonctions de rappel, voyez <link xref=\"signals-"
+"callbacks.py\">ici</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 "Ajouter des infobulles à vos éléments graphiques"
+
+#: C/tooltip.py.page:23(p)
+msgid "A toolbar with a tooltip (with an image) for a button."
+msgstr "Une barre d'outil avec une infobulle (une image) pour un bouton."
+
+#: C/tooltip.py.page:33(title)
+msgid "Useful methods for a Tooltip widget"
+msgstr "Méthodes utiles pour un élément graphique infobulle (Tooltip)"
+
+#: C/tooltip.py.page:34(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 ""
+"Les fonctions <code>set_tooltip_text(text)</code> et <code>set_tooltip_markup(text)</"
+"code> peuvent être utilisées pour ajouter une infobulle textuelle (ou un texte "
+"dans le langage de balisage Pango) à un élément graphique."
+
+#: C/tooltip.py.page:35(p)
+msgid "For more complex tooltips, for instance for a tooltip with an image:"
+msgstr "Pour des infobulles plus complexes, par exemple pour une infobulle "
+"sous la forme d'image :"
+
+#: C/tooltip.py.page:37(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."
+msgstr ""
+"Attribuez la valeur <code>True</code> (vrai) à la propriété <code>\"has-tooltip\"</code> "
+"de l'élément graphique ; de cette façon GTK+ surveille les événements liés aux mouvements de "
+"la souris et tous ceux qui sont nécessaires afin de déterminer quand et où afficher une infobulle."
+
+#: 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 ""
+"Connectez le signal <code>\"query-tooltip\"</code>. Ce signal est émis lorsqu'une "
+"infobulle doit s'afficher. Un des arguments transmis au gestionnaire de signaux "
+"est un objet GtkTooltip. C'est l'objet que nous allons afficher comme infobulle et "
+"qui peut être manipulé dans votre fonction de rappel (callback) en utilisant "
+"des fonctions comme <code>set_icon()</code>. Ce sont des fonctions servant à paramétrer "
+"le balisage de l'infobulle (<code>set_markup(text)</code>), à définir une image à partir "
+"de la collection d'icônes (<code>set_icon_from_stock(stock_id, size)</code>), ou même à "
+"positionner un élément graphique personnalisé (<code>set_custom(widget)</code>)."
+
+#: 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 ""
+"Renvoyez la valeur <code>True</code> à partir de votre gestionnaire query-tooltip. "
+"Cela provoque l'affichage de l'infobulle. Si vous renvoyez <code>False</code>, "
+"elle n'est pas affichée."
+
+#: C/tooltip.py.page:42(p)
+msgid ""
+"In the probably rare case where you want to have even more control over the "
+"tooltip that is about to be shown, you can set your own GtkWindow which will "
+"be used as tooltip window. This works as follows:"
+msgstr ""
+"Dans le cas peut probable où vous voulez avoir plus de contrôle sur l'infobulle qui "
+"est sur le point d'être affichée, vous pouvez définir votre propre GtkWindow qui "
+"sera utilisée comme fenêtre d'infobulle. Cela fonctionne comme ceci :"
+
+#: C/tooltip.py.page:44(p)
+msgid ""
+"Set <code>\"has-tooltip\"</code> and connect to <code>\"query-tooltip\"</"
+"code> as before."
+msgstr ""
+"Paramétrez <code>\"has-tooltip\"</code> et connectez le à <code>\"query-tooltip\"</"
+"code> comme auparavant."
+
+#: C/tooltip.py.page:45(p)
+msgid ""
+"Use <code>set_tooltip_window()</code> on the widget to set a GtkWindow "
+"created by you as tooltip window."
 msgstr ""
+"Utilisez <code>set_tooltip_window()</code> sur l'élément graphique pour définir un GtkWindow "
+"créé par vos soins comme fenêtre d'infobulle."
+
+#: C/tooltip.py.page:46(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."
+msgstr ""
+"Dans la fonction de rappel <code>\"query-tooltip\"</code> vous pouvez accéder à votre fenêtre "
+"en utilisant <code>get_tooltip_window()</code> et la manipuler comme bon vous semble. La "
+"sémantiques pour la valeur retournée est exactement comme ci-dessus, renvoyez <code>True</"
+"code> pour afficher la fenêtre, <code>False</code> dans le cas contraire."
+
+#: C/tooltip.py.page:55(link)
+msgid "GtkTooltip"
+msgstr "GtkTooltip"
+
+#: C/tooltip.py.page:56(link) C/toolbar.py.page:52(link)
+msgid "GtkToolbar"
+msgstr "GtkToolbar"
+
+#: 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/tooltip.py.page:58(link) C/toolbar.py.page:55(link)
+#: C/combobox_multicolumn.py.page:47(link)
+msgid "Stock Items"
+msgstr "Éléments de la collection"
 
 #. When image changes, this message 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:23(None) C/toolbar.vala.page:22(None)
-#: C/toolbar.py.page:22(None) C/toolbar.js.page:20(None)
+#: 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"
 
 #. When image changes, this message 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:31(None)
-#, fuzzy
-#| msgid "@@image: 'media/button.png'; md5=8d69efbb3a0d3e043af6139b6492171c"
+#: 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/button.png'; md5=8d69efbb3a0d3e043af6139b6492171c"
+msgstr "@@image: 'media/glade_ui.png'; md5=baea74fe213bc12ea934f64f6977215a"
 
 #. When image changes, this message 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:37(None)
-#, fuzzy
-#| msgid "@@image: 'media/toolbar.png'; md5=f0350855eedf6343952b72d6d906f738"
+#: C/toolbar_builder.vala.page:38(None) C/toolbar_builder.py.page:54(None)
 msgid ""
 "@@image: 'media/glade_select_toolbar.png'; "
 "md5=f7b5b224050b2e387eb04362fc99df00"
-msgstr "@@image: 'media/toolbar.png'; md5=f0350855eedf6343952b72d6d906f738"
+msgstr ""
+"@@image: 'media/glade_select_toolbar.png'; "
+"md5=f7b5b224050b2e387eb04362fc99df00"
 
 #. When image changes, this message 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:43(None)
-#, fuzzy
-#| msgid "@@image: 'media/statusbar.png'; md5=eb1aca55315d6cda57b12a5f36058ba8"
+#: C/toolbar_builder.vala.page:44(None) C/toolbar_builder.py.page:60(None)
 msgid ""
 "@@image: 'media/glade_toolbar_general.png'; "
 "md5=e31daba6e8a3e526aca89d5f1622edaa"
-msgstr "@@image: 'media/statusbar.png'; md5=eb1aca55315d6cda57b12a5f36058ba8"
+msgstr ""
+"@@image: 'media/glade_toolbar_general.png'; "
+"md5=e31daba6e8a3e526aca89d5f1622edaa"
 
 #. When image changes, this message 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:49(None)
-#, fuzzy
-#| msgid ""
-#| "@@image: 'media/radiobutton.png'; md5=d115460280d8e41493dd98054b5822a5"
+#: C/toolbar_builder.vala.page:50(None) C/toolbar_builder.py.page:66(None)
 msgid ""
 "@@image: 'media/glade_toolbar_common.png'; "
 "md5=d5ec6cc0218ca98e195dbd033feb9ac5"
-msgstr "@@image: 'media/radiobutton.png'; md5=d115460280d8e41493dd98054b5822a5"
+msgstr ""
+"@@image: 'media/glade_toolbar_common.png'; "
+"md5=d5ec6cc0218ca98e195dbd033feb9ac5"
 
 #. When image changes, this message 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:55(None)
-#, fuzzy
-#| msgid "@@image: 'media/toolbar.png'; md5=f0350855eedf6343952b72d6d906f738"
+#: C/toolbar_builder.vala.page:56(None) C/toolbar_builder.py.page:72(None)
 msgid ""
 "@@image: 'media/glade_toolbar_edit.png'; md5=feb1e2b7040d24a4d030f94cf07c81fd"
-msgstr "@@image: 'media/toolbar.png'; md5=f0350855eedf6343952b72d6d906f738"
+msgstr ""
+"@@image: 'media/glade_toolbar_edit.png'; md5=feb1e2b7040d24a4d030f94cf07c81fd"
 
 #. When image changes, this message 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:114(None)
-#, fuzzy
-#| msgid "@@image: 'media/toolbar.png'; md5=f0350855eedf6343952b72d6d906f738"
+#: C/toolbar_builder.vala.page:115(None) C/toolbar_builder.py.page:131(None)
 msgid ""
 "@@image: 'media/glade_toolbar_editor.png'; "
 "md5=8af65241e5ca47d5494a7b36640e6f1c"
-msgstr "@@image: 'media/toolbar.png'; md5=f0350855eedf6343952b72d6d906f738"
+msgstr ""
+"@@image: 'media/glade_toolbar_editor.png'; "
+"md5=8af65241e5ca47d5494a7b36640e6f1c"
 
 #. When image changes, this message 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:123(None)
-#, fuzzy
-#| msgid "@@image: 'media/image.png'; md5=9416aa74d9d6a857783f7a36338e7a02"
+#: C/toolbar_builder.vala.page:124(None) C/toolbar_builder.py.page:140(None)
 msgid ""
 "@@image: 'media/glade_visible_no.png'; md5=dc6c025aa825f4d772fbd283d6330026"
-msgstr "@@image: 'media/image.png'; md5=9416aa74d9d6a857783f7a36338e7a02"
+msgstr ""
+"@@image: 'media/glade_visible_no.png'; md5=dc6c025aa825f4d772fbd283d6330026"
+
+#: C/toolbar_builder.vala.page:7(title)
+msgid "Toolbar created using Glade (Vala)"
+msgstr "Barre d'outils créée avec Glade (Vala)"
 
-#: C/toolbar_builder.vala.page:18(desc) C/toolbar.vala.page:17(desc)
+#: C/toolbar_builder.vala.page:19(desc) C/toolbar.vala.page:18(desc)
 msgid "A bar of buttons"
 msgstr "Une barre de boutons"
 
-#: C/toolbar_builder.vala.page:21(title)
+#: C/toolbar_builder.vala.page:22(title) C/toolbar_builder.py.page:34(title)
 msgid "Toolbar created using Glade"
-msgstr ""
+msgstr "Barre d'outils créée avec Glade"
 
-#: C/toolbar_builder.vala.page:24(p)
+#: C/toolbar_builder.vala.page:25(p)
 msgid ""
 "This example is similar to <link xref=\"toolbar.vala\"/>, except we use "
 "Glade to create the toolbar in an XML ui file."
 msgstr ""
+"Cet exemple est identique à <link xref=\"toolbar.vala\"/>, sauf que nous "
+"utilisons Glade pour créer la barre d'outils dans un fichier XML .ui."
 
-#: C/toolbar_builder.vala.page:26(p)
+#: C/toolbar_builder.vala.page:27(p) C/toolbar_builder.py.page:43(p)
 msgid ""
 "To create the toolbar using the <link href=\"http://glade.gnome.org/\";>Glade "
 "Interface Designer</link>:"
 msgstr ""
+"Pour créer la barre d'outils avec <link href=\"http://glade.gnome.org/";
+"\">Glade</link> :"
 
-#: C/toolbar_builder.vala.page:30(p)
+#: C/toolbar_builder.vala.page:31(p) C/toolbar_builder.py.page:47(p)
 msgid "Open Glade, and save the file as <file>toolbar_builder.ui</file>"
 msgstr ""
+"ouvrez Glade et enregistrez le fichier sous <file>toolbar_builder.ui</file>"
 
-#: C/toolbar_builder.vala.page:31(media)
+#: C/toolbar_builder.vala.page:32(media) C/toolbar_builder.py.page:48(media)
 msgid "Screenshot of Glade ui"
-msgstr ""
+msgstr "Capture d'écran de l'interface utilisateur de Glade"
 
-#: C/toolbar_builder.vala.page:36(p)
+#: C/toolbar_builder.vala.page:37(p) C/toolbar_builder.py.page:53(p)
+# Bruno : c'est hélas bien widget dans glade
 msgid ""
 "Under <gui>Containers</gui> on the left hand side, right click on the "
 "toolbar icon and select <gui>Add widget as toplevel</gui>."
 msgstr ""
+"Au-dessous de <gui>Conteneurs</gui>, dans la partie gauche, faites un clic "
+"droit sur une icône de la barre d'outils et sélectionnez <gui>Ajouter un "
+"widget comme premier niveau</gui>."
 
-#: C/toolbar_builder.vala.page:37(media)
+#: C/toolbar_builder.vala.page:38(media) C/toolbar_builder.py.page:54(media)
 msgid "Screenshot of toolbar icon in Glade ui"
 msgstr ""
+"Capture d'écran de l'icône de la barre d'outils dans l'interface utilisateur "
+"de Glade"
 
-#: C/toolbar_builder.vala.page:42(p)
+#: C/toolbar_builder.vala.page:43(p) C/toolbar_builder.py.page:59(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>."
 msgstr ""
+"Dans l'onglet <gui>Général</gui>, dans la partie inférieure droite, modifiez "
+"le <gui>Nom</gui> en <input>toolbar</input> et mettez l'option <gui>Afficher "
+"la flèche</gui> à <gui>Non</gui>."
 
-#: C/toolbar_builder.vala.page:43(media)
+#: C/toolbar_builder.vala.page:44(media) C/toolbar_builder.py.page:60(media)
 msgid "Screenshot of General tab"
-msgstr ""
+msgstr "Capture d'écran de l'onglet Général"
 
-#: C/toolbar_builder.vala.page:48(p)
+#: C/toolbar_builder.vala.page:49(p) C/toolbar_builder.py.page:65(p)
 msgid ""
 "Under the <gui>Common</gui> tab, set <gui>Horizontal Expand</gui> to "
 "<gui>Yes</gui>."
 msgstr ""
+"Dans l'onglet <gui>Commun</gui>, définissez <gui>Extension horizontale</gui>à "
+"<gui>Oui</gui>."
 
-#: C/toolbar_builder.vala.page:49(media)
+#: C/toolbar_builder.vala.page:50(media) C/toolbar_builder.py.page:66(media)
 msgid "Screenshot of Common tab"
-msgstr ""
+msgstr "Capture d'écran de l'onglet Commun"
 
-#: C/toolbar_builder.vala.page:54(p)
+#: C/toolbar_builder.vala.page:55(p) C/toolbar_builder.py.page:71(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."
 msgstr ""
+"Faites un clic droit sur « toolbar » dans la partie en haut à droite et "
+"sélectionnez <gui>Éditer</gui>. La boîte de dialogue <gui>Éditeur de barre "
+"d'outils</gui> s'affiche."
 
-#: C/toolbar_builder.vala.page:55(media)
+#: 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 ""
+msgstr "Capture d'écran indiquant où faire un clic-droit pour éditer la barre d'outils."
 
-#: C/toolbar_builder.vala.page:60(p)
+#: C/toolbar_builder.vala.page:61(p) C/toolbar_builder.py.page:77(p)
 msgid ""
 "We want to add 5 ToolButtons: New, Open, Undo, Fullscreen and Leave "
 "Fullscreen. First, we will add the New ToolButton."
 msgstr ""
+"Nous voulons ajouter 5 ToolButtons (boutons) : « Nouveau », « Ouvrir », « Mode plein "
+"écran » et « Quitter le mode plein écran ». Ajoutons d'abord le ToolButton "
+"« Nouveau »."
 
-#: C/toolbar_builder.vala.page:63(p)
+#: 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 ""
+msgstr "Dans l'onglet <gui>Hiérarchie</gui>, cliquez sur <gui>Ajouter</gui>."
 
-#: C/toolbar_builder.vala.page:64(p)
+#: 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 ""
+msgstr "Modifiez le nom de l'élément outil (ToolItem) en <input>new_button</input>."
 
-#: C/toolbar_builder.vala.page:65(p)
+#: C/toolbar_builder.vala.page:66(p) C/toolbar_builder.py.page:82(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."
 msgstr ""
+"Faites défiler vers le bas et définissez <gui>Est important</gui> à "
+"<gui>Oui</gui>. Ceci provoque l'affichage de l'étiquette du ToolButton quand vous affichez "
+"la barre d'outils."
 
-#: C/toolbar_builder.vala.page:66(p)
+#: 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 ""
+msgstr "Saisissez le <gui>nom de l'action</gui> : <input>app.new</input>."
 
-#: C/toolbar_builder.vala.page:67(p)
+#: 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 ""
+msgstr "Modifiez le champ <gui>Étiquette</gui> en <input>New</input> (Nouveau)."
 
-#: C/toolbar_builder.vala.page:68(p)
+#: C/toolbar_builder.vala.page:69(p) C/toolbar_builder.py.page:85(p)
 msgid ""
 "Select the <gui>New</gui> Stock Id from the drop down menu, or type "
 "<input>gtk-new</input>."
 msgstr ""
+"Dans le menu déroulant « ID prédéfini », sélectionnez <gui>Nouveau</gui>, "
+"ou saisissez <input>gtk-new</input>."
 
-#: C/toolbar_builder.vala.page:70(p)
+#: C/toolbar_builder.vala.page:71(p) C/toolbar_builder.py.page:87(p)
 msgid ""
 "Repeat the above steps for the remaining ToolButtons, with the following "
 "properties:"
 msgstr ""
+"Répétez les étapes ci-dessus pour tous les autres ToolButtons en leur "
+"attribuant les propriétés suivantes :"
 
-#: C/toolbar_builder.vala.page:76(p)
+#: C/toolbar_builder.vala.page:77(p) C/toolbar_builder.py.page:93(p)
+#: C/helloWorld.js.page:139(title)
 msgid "Name"
-msgstr ""
+msgstr "Nom"
 
-#: C/toolbar_builder.vala.page:77(p)
+#: C/toolbar_builder.vala.page:78(p) C/toolbar_builder.py.page:94(p)
 msgid "Is important"
-msgstr ""
+msgstr "Est important"
 
-#: C/toolbar_builder.vala.page:78(p)
-msgid "action name"
-msgstr ""
+#: C/toolbar_builder.vala.page:79(p) C/toolbar_builder.py.page:95(p)
+msgid "Action name"
+msgstr "Nom de l'action"
 
-#: C/toolbar_builder.vala.page:79(p) C/label.vala.page:19(title)
-#: C/label.py.page:24(title) C/label.js.page:19(title)
-#: C/label.c.page:19(title)
+#: 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 "Étiquette"
 
-#: C/toolbar_builder.vala.page:80(p)
+#: C/toolbar_builder.vala.page:81(p) C/toolbar_builder.py.page:97(p)
 msgid "Stock Id"
-msgstr ""
+msgstr "ID prédéfini"
 
-#: C/toolbar_builder.vala.page:85(p)
-#, fuzzy
-#| msgid "SpinButton"
+#: C/toolbar_builder.vala.page:86(p) C/toolbar_builder.py.page:102(p)
 msgid "open_button"
-msgstr "SpinButton"
+msgstr "open_button"
 
-#: C/toolbar_builder.vala.page:86(p) C/toolbar_builder.vala.page:93(p)
-#: C/toolbar_builder.vala.page:100(p) C/toolbar_builder.vala.page:107(p)
+#: 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 ""
+msgstr "Oui"
 
-#: C/toolbar_builder.vala.page:87(p)
-#, fuzzy
-#| msgid "append"
+#: C/toolbar_builder.vala.page:88(p) C/toolbar_builder.py.page:104(p)
 msgid "app.open"
-msgstr "append"
+msgstr "app.open"
 
-#: C/toolbar_builder.vala.page:88(p)
-#, fuzzy
-#| msgid "OpenSuSE"
+#: C/toolbar_builder.vala.page:89(p) C/toolbar_builder.py.page:105(p)
 msgid "Open"
-msgstr "OpenSuSE"
+msgstr "Open (Ouvrir)"
 
-#: C/toolbar_builder.vala.page:89(p)
+#: C/toolbar_builder.vala.page:90(p) C/toolbar_builder.py.page:106(p)
 msgid "gtk-open"
-msgstr ""
+msgstr "gtk-open"
 
-#: C/toolbar_builder.vala.page:92(p)
-#, fuzzy
-#| msgid "RadioButton"
+#: C/toolbar_builder.vala.page:93(p) C/toolbar_builder.py.page:109(p)
 msgid "undo_button"
-msgstr "RadioButton"
+msgstr "undo_button"
 
-#: C/toolbar_builder.vala.page:94(p)
+#: C/toolbar_builder.vala.page:95(p) C/toolbar_builder.py.page:111(p)
 msgid "win.undo"
-msgstr ""
+msgstr "win.undo"
 
-#: C/toolbar_builder.vala.page:95(p)
-#, fuzzy
-#| msgid "Window"
+#: C/toolbar_builder.vala.page:96(p) C/toolbar_builder.py.page:112(p)
 msgid "Undo"
-msgstr "Fenêtre"
+msgstr "Undo (Annuler)"
 
-#: C/toolbar_builder.vala.page:96(p)
+#: C/toolbar_builder.vala.page:97(p) C/toolbar_builder.py.page:113(p)
 msgid "gtk-undo"
-msgstr ""
+msgstr "gtk-undo"
 
-#: C/toolbar_builder.vala.page:99(p)
+#: C/toolbar_builder.vala.page:100(p) C/toolbar_builder.py.page:116(p)
 msgid "fullscreen_button"
-msgstr ""
+msgstr "fullscreen_button"
 
-#: C/toolbar_builder.vala.page:101(p) C/toolbar_builder.vala.page:108(p)
+#: 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 ""
+msgstr "win.fullscreen"
 
-#: C/toolbar_builder.vala.page:102(p)
+#: C/toolbar_builder.vala.page:103(p) C/toolbar_builder.py.page:119(p)
 msgid "Fullscreen"
-msgstr ""
+msgstr "Fullscreen (Mode plein écran)"
 
-#: C/toolbar_builder.vala.page:103(p)
+#: C/toolbar_builder.vala.page:104(p) C/toolbar_builder.py.page:120(p)
 msgid "gtk-fullscreen"
-msgstr ""
+msgstr "gtk-fullscreen"
 
-#: C/toolbar_builder.vala.page:106(p)
+#: C/toolbar_builder.vala.page:107(p) C/toolbar_builder.py.page:123(p)
 msgid "leave_fullscreen_button"
-msgstr ""
+msgstr "leave_fullscreen_button"
 
-#: C/toolbar_builder.vala.page:109(p)
+#: C/toolbar_builder.vala.page:110(p) C/toolbar_builder.py.page:126(p)
 msgid "Leave Fullscreen"
-msgstr ""
+msgstr "Leave Fullscreen (Quitter le mode plein écran)"
 
-#: C/toolbar_builder.vala.page:110(p)
+#: C/toolbar_builder.vala.page:111(p) C/toolbar_builder.py.page:127(p)
 msgid "gtk-leave-fullscreen"
-msgstr ""
+msgstr "gtk-leave-fullscreen"
 
-#: C/toolbar_builder.vala.page:119(p)
+#: C/toolbar_builder.vala.page:120(p) C/toolbar_builder.py.page:136(p)
 msgid "Close the <gui>Tool Bar Editor</gui>."
-msgstr ""
+msgstr "Fermez l'<gui>Éditeur de barre d'outils</gui>."
 
-#: C/toolbar_builder.vala.page:122(p)
+#: C/toolbar_builder.vala.page:123(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 "
@@ -1481,16 +2646,22 @@ msgid ""
 "appear in the interface designer, but will behave correctly when the file is "
 "loaded into your program code."
 msgstr ""
+"Au lancement du programme, nous ne voulons pas que le ToolButton "
+"<gui>Quitter le mode plein écran<gui/> s'affiche, car nous ne sommes pas en "
+"mode plein écran. Dans l'onglet <gui>Commun</gui>, définissez la propriété "
+"<gui>Visible</gui> sur <gui>Non</gui>. Le ToolButton sera toujours présent "
+"dans le concepteur d'interface, mais se comportera comme souhaité quand le "
+"fichier sera chargé dans le code de votre programme."
 
-#: C/toolbar_builder.vala.page:123(media)
+#: C/toolbar_builder.vala.page:124(media) C/toolbar_builder.py.page:140(media)
 msgid "Setting the visible property to No"
-msgstr ""
+msgstr "Définition de la propriété « Visible » à « Non »"
 
-#: C/toolbar_builder.vala.page:128(p)
+#: C/toolbar_builder.vala.page:129(p) C/toolbar_builder.py.page:145(p)
 msgid "Save your work, and close Glade."
-msgstr ""
+msgstr "Enregistrez votre travail et quittez Glade."
 
-#: C/toolbar_builder.vala.page:131(p)
+#: C/toolbar_builder.vala.page:132(p) C/toolbar_builder.py.page:148(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."
@@ -1498,38 +2669,209 @@ msgid ""
 "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 ""
+"Vous pouvez voir le fichier XML créé par Glade ci-dessous. C'est la "
+"description de la barre d'outils. Au moment de la rédaction de ces lignes, "
+"l'option pour ajouter la classe Gtk.STYLE_CLASS_PRIMARY_TOOLBAR dans "
+"l'interface de Glade n'existait pas. Mais nous pouvons le faire "
+"manuellement. Pour cela, ajoutez le code XML suivant à la ligne 9 du fichier "
+"<file>toolbar_builder.ui</file> :"
 
-#: C/toolbar_builder.vala.page:137(p)
+#: C/toolbar_builder.vala.page:138(p) C/toolbar_builder.py.page:154(p)
 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."
 msgstr ""
+"Le programme fonctionnera malgré tout correctement si vous ne l'ajoutez pas, "
+"mais la barre d'outils que vous obtiendrez sera légèrement différente de "
+"celle de la capture d'écran en haut de cette page."
 
-#: C/toolbar_builder.vala.page:142(p)
+#: C/toolbar_builder.vala.page:143(p) C/toolbar_builder.py.page:164(p)
 msgid ""
 "We now create the code below, which adds the toolbar from the file we just "
 "created."
 msgstr ""
+"Le code ci-dessous ajoute la barre d'outils du fichier que nous venons de "
+"finir."
 
-#: C/toolbar_builder.vala.page:149(link) C/toolbar.vala.page:32(link)
-#: C/toolbar.js.page:30(link)
+#: C/toolbar_builder.vala.page:150(link) C/toolbar.vala.page:33(link)
+#: C/toolbar.js.page:31(link)
 msgid "Gtk.Toolbar"
 msgstr "Gtk.Toolbar"
 
-#: C/toolbar_builder.vala.page:150(link) C/toolbar.vala.page:33(link)
+#: C/toolbar_builder.vala.page:151(link) C/toolbar.vala.page:34(link)
 msgid "Gtk.Toolbutton"
 msgstr "Gtk.Toolbutton"
 
-#: C/toolbar_builder.vala.page:151(link) C/toolbar.vala.page:34(link)
+#: C/toolbar_builder.vala.page:152(link) C/toolbar.vala.page:35(link)
 msgid "Gtk.Stock"
 msgstr "Gtk.Stock"
 
-#: C/toolbar.vala.page:20(title) C/toolbar.js.page:19(title)
-msgid "Toolbar widget"
-msgstr "Élément graphique de barre d'outils"
+#: C/toolbar_builder.py.page:7(title)
+msgid "Toolbar created using Glade (Python)"
+msgstr "Barre d'outils créée avec Glade (Python)"
+
+#: C/toolbar_builder.py.page:26(name) C/textview.py.page:14(name)
+#: C/strings.py.page:14(name) C/signals-callbacks.py.page:14(name)
+#: C/properties.py.page:14(name) C/model-view-controller.py.page:14(name)
+#: C/label.py.page:18(name) C/entry.py.page:18(name)
+msgid "Sebastian Pölsterl"
+msgstr "Sebastian Pölsterl"
+
+#: C/toolbar_builder.py.page:27(email) C/textview.py.page:15(email)
+#: C/strings.py.page:15(email) C/signals-callbacks.py.page:15(email)
+#: C/properties.py.page:15(email) C/model-view-controller.py.page:15(email)
+#: C/label.py.page:19(email) C/entry.py.page:19(email)
+msgid "sebp k-d-w org"
+msgstr "sebp k-d-w org"
+
+#: C/toolbar_builder.py.page:31(desc) C/toolbar.py.page:18(desc)
+msgid "A bar of buttons and other widgets"
+msgstr "Une barre de boutons et autres éléments graphiques"
+
+#: C/toolbar_builder.py.page:37(p)
+msgid ""
+"This example is similar to <link xref=\"toolbar.py\"/>, except we use Glade "
+"to create the toolbar in an XML .ui file."
+msgstr ""
+"Cet exemple est identique à <link xref=\"toolbar.py\"/>, sauf que nous "
+"utilisons Glade pour créer la barre d'outils dans un fichier XML .ui."
+
+#: C/toolbar_builder.py.page:42(title)
+msgid "Creating the toolbar with Glade"
+msgstr "Création de la barre d'outils avec Glade"
+
+#: C/toolbar_builder.py.page:139(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."
+msgstr ""
+"Au lancement du programme, nous ne voulons pas que le ToolButton "
+"<gui>Quitter le mode plein écran<gui/> s'affiche, car nous ne sommes pas en "
+"mode plein écran. Dans l'onglet <gui>Commun</gui>, définissez la propriété "
+"<gui>Visible</gui> sur <gui>Non</gui>. Le ToolButton sera toujours présent "
+"dans le concepteur d'interface, mais se comportera comme souhaité quand le "
+"fichier sera chargé dans le code de votre programme. Notez que la méthode "
+"<code>show_all()</code> ne prend pas en compte ce réglage, de sorte qu'il "
+"nous faut utiliser <code>show()</code> séparément pour chaque élément."
+
+#: C/toolbar_builder.py.page:170(title)
+msgid "Useful methods for Gtk.Builder"
+msgstr "Méthodes utiles pour Gtk.Builder"
+
+#: C/toolbar_builder.py.page:171(p)
+msgid ""
+"For the useful methods for a Toolbar widget, see <link xref=\"toolbar.py\"/>"
+msgstr ""
+"Consultez <link xref=\"toolbar.py\"/> pour connaître les méthodes utiles à "
+"un élément graphique de barre d'outils"
+
+#: C/toolbar_builder.py.page:173(p)
+msgid "Gtk.Builder builds an interface from an XML UI definition."
+msgstr ""
+"Gtk.Builder construit une interface à partir d'une définition XML d'une "
+"interface utilisateur."
+
+#: C/toolbar_builder.py.page:176(p)
+msgid ""
+"<code>add_from_file(filename)</code> loads and parses the given file and "
+"merges it with the current contents of the Gtk.Builder."
+msgstr ""
+"La méthode <code>add_from_file(nomdufichier)</code> charge et analyse le "
+"fichier donné et le fusionne avec le contenu actuel de Gtk.Builder."
+
+#: C/toolbar_builder.py.page:177(p)
+msgid ""
+"<code>add_from_string(string)</code> parses the given string and merges it "
+"with the current contents of the Gtk.Builder."
+msgstr ""
+"La méthode <code>add_from_string(chaîne)</code> charge et analyse la chaîne "
+"de caractères donnée et la fusionne avec le contenu actuel de Gtk.Builder."
+
+#: C/toolbar_builder.py.page:178(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."
+msgstr ""
+"La méthode <code>add_objects_from_file(nomdufichier, object_ids)</code> est "
+"identique à <code>add_from_file()</code>, mais elle ne charge que les objets "
+"qui possèdent les identifiants donnés par la liste <code>object_id</code>."
+
+#: C/toolbar_builder.py.page:179(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."
+msgstr ""
+"La méthode <code>add_objects_from_string(nomdufichier, object_ids)</code> "
+"est identique à <code>add_from_string()</code>, mais elle ne charge que les "
+"objets avec les identifiants donnés par la liste <code>object_id</code>."
 
-#: C/toolbar.vala.page:23(p) C/toolbar.js.page:21(p)
+#: C/toolbar_builder.py.page:180(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."
+msgstr ""
+"La méthode <code>get_object(object_id)</code> récupère l'élément "
+"graphique possédant l'identifiant <code>object_id</code> à partir des objets "
+"chargés dans le constructeur."
+
+#: C/toolbar_builder.py.page:181(p)
+msgid "<code>get_objects()</code> returns all loaded objects."
+msgstr "La méthode <code>get_objects()</code> renvoie tous les objets chargés."
+
+#: C/toolbar_builder.py.page:182(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."
+msgstr ""
+"La méthode <code>connect_signals(handler_object)</code> connecte les signaux "
+"aux méthodes fournies par le gestionnaire <code>handler_object</code>. Ce "
+"peut être n'importe quel objet contenant des clés ou des attributs qui sont "
+"appelés comme les noms des gestionnaires de signaux dans la "
+"description de l'interface, par ex. une classe ou un dictionnaire."
+
+#: 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 "Event Structures"
+
+#: C/toolbar_builder.py.page:197(link)
+msgid "The Python Gtk+ 3 Tutorial - Glade and Gtk.Builder"
+msgstr "Tutoriel Gtk+ 3 Python - Glade et Gtk.Builder"
+
+#: C/toolbar.vala.page:7(title)
+msgid "Toolbar (Vala)"
+msgstr "Barre d'outils (Vala)"
+
+#: C/toolbar.vala.page:21(title) C/toolbar.py.page:21(title)
+#: C/toolbar.js.page:20(title)
+msgid "Toolbar"
+msgstr "Barre d'outils"
+
+#: C/toolbar.vala.page:24(p) C/toolbar.js.page:22(p)
 msgid ""
 "Toolbar can contain either text or stock icons. In this sample we use stock "
 "icons. This example has fullscreen functionality."
@@ -1538,7 +2880,7 @@ msgstr ""
 "collection. Dans cet exemple, nous utilisons les icônes de la collection. "
 "Cet exemple possède la fonction plein écran."
 
-#: C/toolbar.vala.page:24(p) C/toolbar.js.page:22(p)
+#: C/toolbar.vala.page:25(p) C/toolbar.js.page:23(p)
 msgid ""
 "This example uses SimpleActions (window and app). App actions can easily be "
 "added the the app menu."
@@ -1546,381 +2888,1683 @@ msgstr ""
 "Cet exemple utilise SimpleActions (fenêtre et application). Les actions "
 "applications peuvent être facilement ajoutées au menu « Applications »."
 
-#: C/toolbar.py.page:17(desc)
-#, fuzzy
-#| msgid "A bar of buttons"
-msgid "A bar of buttons and other widgets"
-msgstr "Une barre de boutons"
-
-#: C/toolbar.py.page:20(title)
-#, fuzzy
-#| msgid "Gtk.Toolbar"
-msgid "Toolbar"
-msgstr "Gtk.Toolbar"
+#: C/toolbar.py.page:7(title)
+msgid "Toolbar (Python)"
+msgstr "Barre d'outils (Python)"
 
-#: C/toolbar.py.page:23(p)
+#: C/toolbar.py.page:24(p)
 msgid "An example of toolbar with buttons (from stock icons)."
 msgstr ""
+"Un exemple de barre d'outils avec des boutons (à partir des icônes de la "
+"collection)."
 
-#: C/toolbar.py.page:31(link)
-#, fuzzy
-#| msgid "Gtk.Toolbar"
-msgid "GtkToolbar"
-msgstr "Gtk.Toolbar"
+#: C/toolbar.py.page:35(title)
+msgid "Useful methods for a Toolbar widget"
+msgstr "Méthodes utiles pour un élément graphique barre d'outils"
 
-#: C/toolbar.py.page:32(link)
-#, fuzzy
-#| msgid "Gtk.ToolButton"
+#: C/toolbar.py.page:38(p)
+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."
+msgstr ""
+"La méthode <code>insert(tool_item, position)</code> insère l'élément "
+"<code>tool_item</code> à sa place <code>position</code>. Si <code>position</"
+"code> est négatif, l'élément est ajouté à la fin de la barre d'outils."
+
+#: C/toolbar.py.page:39(p)
+msgid ""
+"<code>get_item_index(tool_item)</code> retrieves the position of "
+"<code>tool_item</code> on the toolbar."
+msgstr ""
+"La méthode <code>get_item_index(tool_item)</code> récupère la position de "
+"l'élément <code>tool_item</code> dans la barre d'outils."
+
+#: C/toolbar.py.page:40(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>."
+msgstr ""
+"La méthode <code>get_n_items()</code> renvoie le nombre d'éléments de la "
+"barre d'outils ; <code>get_nth_item(position)</code> renvoie l'élément placé "
+"à <code>position</code>."
+
+#: C/toolbar.py.page:41(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."
+msgstr ""
+"S'il n'y a pas assez de place dans la barre d'outils pour tous les éléments "
+"du menu, et si l'affichage de la flèche est sur <code>set_show_arrow(True)</"
+"code>, les éléments en surplus sont affichés dans un menu de dépassement."
+
+#: C/toolbar.py.page:42(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."
+msgstr ""
+"La méthode <code>set_icon_size(icon_size)</code> définit la taille des "
+"icônes de la barre d'outils ; <code>icon_size</code> peut être : <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>. Cette option ne doit être utilisée que pour des barres "
+"d'outils spéciales. Les barres d'outils des applications normales doivent "
+"respecter le choix des préférences des utilisateurs en ce qui concerne la taille des "
+"icônes. La fonction <code>unset_icon_size()</code> désactive les préférences "
+"définies avec <code>set_icon_size(icon_size)</code> afin que les préférences "
+"de l'utilisateur soient utilisées pour déterminer la taille des icônes."
+
+#: C/toolbar.py.page:43(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>."
+msgstr ""
+"La méthode <code>set_style(style)</code>, où <code>style</code> peut être "
+"<code>Gtk.ToolbarStyle.ICONS, Gtk.ToolbarStyle.TEXT, Gtk.ToolbarStyle.BOTH, "
+"Gtk.ToolbarStyle.BOTH_HORIZ</code>, définit si la barre d'outils affiche "
+"seulement les icônes, seulement du texte ou les deux à la fois (placés "
+"verticalement ou les uns à côté des autres). Pour que les préférences utilisateur "
+"déterminent le style de la barre et annule un style de barre d'outils ainsi défini, "
+"utilisez <code>unset_style()</code>."
+
+#: C/toolbar.py.page:53(link)
 msgid "GtkToolButton"
-msgstr "Gtk.ToolButton"
+msgstr "GtkToolButton"
 
-#: C/toolbar.py.page:33(link)
-#, fuzzy
-#| msgid "Gtk.Toolbutton"
+#: C/toolbar.py.page:54(link)
 msgid "GtkToolItem"
-msgstr "Gtk.Toolbutton"
+msgstr "GtkToolItem"
 
-#: C/toolbar.py.page:34(link) C/combobox_multicolumn.py.page:33(link)
-#, fuzzy
-#| msgid "Gtk Stock items"
-msgid "Stock Items"
-msgstr "Éléments de la collection Gtk"
-
-#: C/toolbar.py.page:35(link)
-#, fuzzy
-#| msgid "GtkApplication"
+#: C/toolbar.py.page:56(link)
 msgid "GtkActionable"
-msgstr "GtkApplication"
+msgstr "GtkActionable"
 
-#: C/toolbar.py.page:36(link) C/togglebutton.py.page:31(link)
-msgid "GtkWidget"
-msgstr "GtkWidget"
-
-#: C/toolbar.py.page:37(link)
-#, fuzzy
-#| msgid "Program Structure"
-msgid "Event Structures"
-msgstr "Structure du programme"
+#: C/toolbar.js.page:7(title)
+msgid "Toolbar (JavaScript)"
+msgstr "Barre d'outils (JavaScript)"
 
-#: C/toolbar.js.page:16(desc)
+#: C/toolbar.js.page:17(desc)
 msgid "A bar of tools"
 msgstr "Une barre d'outils"
 
-#: C/toolbar.js.page:31(link)
+#: C/toolbar.js.page:32(link)
 msgid "Gtk.ToolButton"
 msgstr "Gtk.ToolButton"
 
-#: C/toolbar.js.page:32(link)
+#: C/toolbar.js.page:33(link)
 msgid "Gtk Stock items"
 msgstr "Éléments de la collection Gtk"
 
-#: C/toolbar.js.page:33(link)
+#: C/toolbar.js.page:34(link)
 msgid "Gdk.WindowState"
 msgstr "Gdk.WindowState"
 
 #. When image changes, this message will be marked fuzzy or untranslated for you.
 #. It doesn't matter what you translate it to: it's not used at all.
-#: C/togglebutton.vala.page:23(None) C/togglebutton.py.page:22(None)
-#: C/togglebutton.c.page:25(None)
+#: 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"
 msgstr ""
 "@@image: 'media/togglebutton.png'; md5=791e062613d4f9bd5936390b0aa18448"
 
-#: C/togglebutton.vala.page:19(desc) C/togglebutton.py.page:18(desc)
+#: C/togglebutton.vala.page:7(title)
+msgid "ToggleButton (Vala)"
+msgstr "ToggleButton (Vala)"
+
+#: C/togglebutton.vala.page:20(desc) C/togglebutton.py.page:20(desc)
+#: C/togglebutton.c.page:21(desc)
 msgid "A button which retains state"
 msgstr "Un bouton qui mémorise l'état"
 
-#: C/togglebutton.vala.page:22(title) C/togglebutton.py.page:21(title)
+#: 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:24(p) C/togglebutton.py.page:23(p)
-#: C/togglebutton.c.page:26(p)
+#: 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 "Quand ce ToggleButton est activé, l'indicateur d'activité tourne."
+msgstr ""
+"Quand ce ToggleButton est activé, l'indicateur d'activité tourne."
 
-#: C/togglebutton.vala.page:31(link)
+#: C/togglebutton.vala.page:32(link) C/togglebutton.js.page:158(link)
 msgid "Gtk.ToggleButton"
 msgstr "Gtk.ToggleButton"
 
-#: C/togglebutton.py.page:30(link) C/checkbutton.py.page:30(link)
+#: C/togglebutton.py.page:7(title)
+msgid "ToggleButton (Python)"
+msgstr "ToggleButton (Python)"
+
+#: C/togglebutton.py.page:37(title)
+msgid "Useful methods for a ToggleButton widget"
+msgstr "Méthodes utiles pour un élément graphique ToggleButton"
+
+#: C/togglebutton.py.page:38(p) C/radiobutton.py.page:37(p)
+#: C/messagedialog.py.page:36(p) C/fontchooserwidget.py.page:34(p)
+#: C/dialog.py.page:36(p) C/button.py.page:34(p) C/aboutdialog.py.page:36(p)
+msgid ""
+"For an explanation of signals and callback functions, see <link xref="
+"\"signals-callbacks.py\">this page</link>."
+msgstr ""
+"Pour de plus amples informations sur les signaux et fonctions de rappel, "
+"consultez <link xref=\"signals-callbacks.py\">cette page</link>."
+
+#: C/togglebutton.py.page:45(link) C/checkbutton.py.page:48(link)
 msgid "GtkToggleButton"
 msgstr "GtkToggleButton"
 
-#: C/togglebutton.py.page:32(link) C/togglebutton.c.page:36(link)
-#: C/spinner.py.page:39(link) C/spinner.c.page:34(link)
+#: C/togglebutton.py.page:47(link) C/togglebutton.c.page:37(link)
+#: C/spinner.py.page:40(link) C/spinner.c.page:35(link)
 msgid "GtkSpinner"
 msgstr "GtkSpinner"
 
-#: C/togglebutton.c.page:15(name) C/switch.c.page:11(name)
-#: C/spinner.c.page:12(name) C/radiobutton.c.page:11(name)
-#: C/linkbutton.c.page:11(name) C/label.c.page:11(name)
-#: C/image.c.page:11(name) C/grid.c.page:11(name) C/entry.c.page:11(name)
-#: C/button.c.page:11(name)
+#: C/togglebutton.js.page:7(title)
+msgid "ToggleButton (JavaScript)"
+msgstr "ToggleButton (JavaScript)"
+
+#: C/togglebutton.js.page:17(desc)
+msgid "Stays pressed until you click it again"
+msgstr "Reste enfoncé jusqu'à ce que vous cliquiez dessus à nouveau"
+
+#: C/togglebutton.js.page:22(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."
+msgstr ""
+"Un ToggleButton ressemble à un <link xref=\"button.js\">bouton</link> "
+"normal, sauf qu'il reste enfoncé après l'avoir cliqué. Vous pouvez "
+"l'utiliser comme un commutateur allumé/éteint pour contrôler des éléments "
+"comme l'<link xref=\"spinner.js\">indicateur d'activité</link> de cet "
+"exemple."
+
+#: C/togglebutton.js.page:23(p)
+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 ""
+"La méthode get_active d'un ToggleButton renvoie « true » (vrai) s'il est "
+"enfoncé et « false » dans le cas contraire. Utilisez sa méthode set_active si "
+"vous souhaitez changer son état sans avoir besoin de cliquer dessus. Quand "
+"il passe de l'état « enfoncé » à « relâché » et vice versa, il envoie le signal "
+"« toggled » que vous pouvez connecter à une fonction afin d'effectuer une "
+"action."
+
+#: C/togglebutton.js.page:66(p) C/radiobutton.js.page:66(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."
+msgstr ""
+"Tout le code de cet exemple est dans la classe RadioButtonExample. Le code ci-"
+"dessus crée un <link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/";
+"Gtk.Application.html\">Gtk.Application</link> pour y mettre nos éléments "
+"graphiques et la fenêtre qui les contient."
+
+#: C/togglebutton.js.page:84(title)
+msgid "Creating the ToggleButton and other widgets"
+msgstr "Création du ToggleButton et des autres éléments graphiques"
+
+#: C/togglebutton.js.page:90(p)
+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."
+msgstr ""
+"Nous voulons que cet <link xref=\"spinner.js\">indicateur d'activité</link> "
+"puisse s'étendre verticalement et horizontalement pour prendre le maximum "
+"d'espace disponible dans la fenêtre."
+
+#: C/togglebutton.js.page:98(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."
+msgstr ""
+"La création d'un ToggleButton ressemble beaucoup à la création d'un "
+"<link xref=\"button.js\">bouton</link> normal. La plus grosse différence "
+"réside dans le fait que vous manipulez un signal « toggled » au lieu d'un "
+"signal « clicked ». Ce code relie la fonction _onToggle à ce signal, de sorte "
+"qu'elle est appelée à chaque fois que le ToggleButton est commuté."
+
+#: C/togglebutton.js.page:108(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."
+msgstr ""
+"Nous créons ici une simple <link xref=\"grid.js\">grille</link> pour tout ranger "
+"dedans, puis nous lui attachons le Spinner (indicateur d'activité) et le ToggleButton."
+
+#: C/togglebutton.js.page:118(p)
+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."
+msgstr ""
+"Ensuite, nous ajoutons la grille à la fenêtre et demandons à celle-ci de s'afficher "
+"ainsi que ses éléments graphiques enfants quand l'application est démarrée."
+
+#: C/togglebutton.js.page:122(title)
+msgid "Making something happen when the ToggleButton is toggled"
+msgstr "Déclenchement d'une action quand le ToggleButton est commuté"
+
+#: C/togglebutton.js.page:136(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."
+msgstr ""
+"Chaque fois que quelqu'un commutte le bouton, cette fonction vérifie s'il "
+"est enfoncé ou non en utilisant get_active et, selon le cas, démarre ou "
+"arrête l'indicateur d'activité. Nous voulons qu'il ne tourne que lorsque le "
+"bouton est enfoncé, donc, si get_active renvoie la valeur true (vrai), nous "
+"démarrons l'indicateur, sinon, nous lui indiquons de s'arrêter."
+
+#: C/togglebutton.js.page:143(p) C/radiobutton.js.page:264(p)
+msgid ""
+"Finally, we create a new instance of the finished RadioButtonExample class, "
+"and set the application running."
+msgstr ""
+"Enfin, nous créons une nouvelle instance de la classe RadioButtonExample et "
+"lançons l'application."
+
+#: 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:16(email) C/switch.c.page:12(email)
-#: C/spinner.c.page:13(email) C/radiobutton.c.page:12(email)
-#: C/linkbutton.c.page:12(email) C/label.c.page:12(email)
-#: C/image.c.page:12(email) C/grid.c.page:12(email) C/entry.c.page:12(email)
-#: C/button.c.page:12(email)
+#: 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:20(desc)
-#, fuzzy
-#| msgid "A button which retains state"
-msgid "A button which retains state."
-msgstr "Un bouton qui mémorise l'état"
-
-#: C/togglebutton.c.page:23(title)
-#, fuzzy
-#| msgid "ToggleButton"
-msgid "Togglebutton"
-msgstr "ToggleButton"
-
-#: C/togglebutton.c.page:37(link)
-#, fuzzy
-#| msgid "GtkToggleButton"
+#: C/togglebutton.c.page:38(link)
 msgid "GtkTogglebutton"
-msgstr "GtkToggleButton"
-
-#: C/togglebutton.c.page:38(link) C/switch.py.page:36(link)
-#: C/switch.c.page:35(link) C/separator.py.page:33(link)
-#: C/radiobutton.py.page:32(link) C/radiobutton.c.page:33(link)
-#: C/grid.c.page:34(link)
-msgid "GtkGrid"
-msgstr "GtkGrid"
+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:25(None) C/textview.py.page:21(None)
+#: 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:16(desc)
-#, fuzzy
-#| msgid "Widget that displays a GtkTextBuffer"
+#: C/textview.vala.page:7(title)
+msgid "TextView (Vala)"
+msgstr "TextView (Vala)"
+
+#: C/textview.vala.page:17(desc) C/textview.c.page:17(desc)
 msgid "Widget which displays a GtkTextBuffer"
 msgstr "L'élément graphique qui affiche un GtkTextBuffer"
 
-#: C/textview.vala.page:19(title)
-#, fuzzy
-#| msgid "TreeView widget"
+#: C/textview.vala.page:20(title) C/textview.c.page:20(title)
 msgid "TextView widget"
-msgstr "Élément graphique arborescent"
+msgstr "Élément graphique TextView"
 
-#: C/textview.vala.page:20(p) C/textview.py.page:24(p)
+#: 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 "En appuyant sur » Entrée », nous créons une nouvelle ligne."
+msgstr "En appuyant sur « Entrée », nous créons une nouvelle ligne."
 
-#: C/textview.vala.page:21(p)
+#: C/textview.vala.page:22(p) C/textview.c.page:22(p)
 msgid ""
 "If we press \"enter\" more times then there are lines in the default sized "
 "window, then a vertical scrollbar appears."
 msgstr ""
+"En appuyant encore de nombreuses fois sur « Entrée », d'autres lignes sont "
+"créées dans la fenêtre de taille par défaut, puis une barre de défilement "
+"verticale apparaît."
 
-#: C/textview.vala.page:22(p)
-#, fuzzy
-#| msgid ""
-#| "But we can also have a new line if we write a long sentence (the text "
-#| "will wrap breaking lines between words)."
+#: C/textview.vala.page:23(p) C/textview.c.page:23(p)
 msgid ""
 "If we write a long sentence, the text will wrap breaking lines between words."
-msgstr ""
-"Mais nous pouvons aussi aller à la ligne en écrivant une longue phrase (la "
-"césure se fait entre deux mots)."
+msgstr "Si nous écrivons une longue phrase, la césure se fait entre deux mots."
 
-#: C/textview.vala.page:23(p)
-#, fuzzy
-#| msgid "If we have a loooooooooooooooooooooooooooooooooooong"
+#: C/textview.vala.page:24(p)
 msgid ""
 "If we have a loooooooooooooooooooooooooooooooooooong word, a horizontal "
 "scrollbar will appear."
-msgstr "Si nous avons un loooooooooooooooooooooooooooooooooooong"
+msgstr ""
+"Si nous avons un loooooooooooooooooooooooooooooooooooong mot, une barre de "
+"défilement horizontale apparaît."
 
-#: C/textview.vala.page:26(p)
-#, fuzzy
-#| msgid "This is an example of Gtk.TextView."
+#: C/textview.vala.page:27(p) C/textview.c.page:27(p)
 msgid "This is an example of Gtk.TextView"
-msgstr "Ceci est un exemple de Gtk.TextView."
+msgstr "Ceci est un exemple de Gtk.TextView"
 
-#: C/textview.vala.page:33(link)
-#, fuzzy
-#| msgid "GtkTextBuffer"
+#: C/textview.vala.page:34(link) C/textview.js.page:256(link)
 msgid "Gtk.TextBuffer"
-msgstr "GtkTextBuffer"
+msgstr "Gtk.TextBuffer"
 
-#: C/textview.vala.page:34(link)
-#, fuzzy
-#| msgid "GtkTextView"
+#: C/textview.vala.page:35(link) C/textview.js.page:257(link)
 msgid "Gtk.TextView"
-msgstr "GtkTextView"
+msgstr "Gtk.TextView"
 
-#: C/textview.vala.page:35(link) C/scrolledwindow.vala.page:29(link)
-#, fuzzy
-#| msgid "GtkScrolledWindow"
+#: C/textview.vala.page:36(link) C/textview.js.page:255(link)
+#: C/scrolledwindow.vala.page:30(link)
 msgid "Gtk.ScrolledWindow"
-msgstr "GtkScrolledWindow"
+msgstr "Gtk.ScrolledWindow"
 
-#: C/textview.vala.page:36(link)
-#, fuzzy
-#| msgid "Gtk.Widget"
+#: C/textview.vala.page:37(link)
 msgid "Gtk.WrapMode"
-msgstr "Gtk.Widget"
+msgstr "Gtk.WrapMode"
 
-#: C/textview.vala.page:37(link) C/scrolledwindow.vala.page:30(link)
-#, fuzzy
-#| msgid "Gtk.ButtonsType"
+#: C/textview.vala.page:38(link) C/scrolledwindow.vala.page:31(link)
 msgid "Gtk.PolicyType"
-msgstr "Gtk.ButtonsType"
+msgstr "Gtk.PolicyType"
+
+#: C/textview.py.page:7(title)
+msgid "TextView (Python)"
+msgstr "TextView (Python)"
 
-#: C/textview.py.page:17(desc)
+#: C/textview.py.page:25(desc)
 msgid "Widget that displays a GtkTextBuffer"
 msgstr "L'élément graphique qui affiche un GtkTextBuffer"
 
-#: C/textview.py.page:20(title)
+#: C/textview.py.page:28(title) C/textview.js.page:24(title)
 msgid "TextView"
 msgstr "TextView"
 
-#: C/textview.py.page:22(p)
-msgid "The text reads:"
-msgstr "Le texte dit :"
-
-#: C/textview.py.page:23(p)
+#: C/textview.py.page:30(p)
 msgid "This is an example of Gtk.TextView."
 msgstr "Ceci est un exemple de Gtk.TextView."
 
-#: C/textview.py.page:25(p)
+#: C/textview.py.page:32(p)
 msgid ""
 "But we can also have a new line if we write a long sentence (the text will "
 "wrap breaking lines between words)."
 msgstr ""
-"Mais nous pouvons aussi aller à la ligne en écrivant une longue phrase (la "
+"Mais il peut également y avoir un retour à la ligne si nous écrivons une longue phrase (la "
 "césure se fait entre deux mots)."
 
-#: C/textview.py.page:26(p)
+#: C/textview.py.page:33(p)
 msgid "If we have a loooooooooooooooooooooooooooooooooooong"
 msgstr "Si nous avons un loooooooooooooooooooooooooooooooooooong"
 
-#: C/textview.py.page:27(p)
+#: C/textview.py.page:34(p)
 msgid "(that was long)"
 msgstr "(long comme ça)"
 
-#: C/textview.py.page:28(p)
+#: C/textview.py.page:35(p)
 msgid "word, an horizontal scrollbar will appear."
 msgstr "mot, une barre de défilement horizontale apparaît."
 
-#: C/textview.py.page:35(link)
+#: C/textview.py.page:48(title)
+msgid "Useful methods for a TextView widget"
+msgstr "Méthodes utiles pour un élément graphique TextView"
+
+#: C/textview.py.page:49(p) C/label.py.page:69(p)
+msgid ""
+"An explanation of how to deal with strings and Unicode (and a recap of what "
+"these things are) can be found <link xref=\"strings.py.page\">here</link>."
+msgstr ""
+"Vous trouverez une documentation sur la façon de se servir des chaînes de caractères et "
+"des caractères Unicode (ainsi qu'un récapitulatif de ce que c'est) <link "
+"xref=\"strings.py.page\">ici</link>."
+
+#: C/textview.py.page:50(p)
+msgid ""
+"A <code>Gtk.TextView</code> displays the text stored in a <code>Gtk."
+"TextBuffer</code>. However, most text manipulation is accomplished with "
+"iterators, represented by a <code>Gtk.TextIter</code> - a position between "
+"two characters in the text buffer. Iterators are not valid indefinitely; "
+"whenever the buffer is modified in a way that affects the contents of the "
+"buffer, all outstanding iterators become invalid. Because of this, iterators "
+"can’t be used to preserve positions across buffer modifications. To preserve "
+"a position, we use a <code>Gtk.TextMark</code>, that can be set visible with "
+"<code>visible(True)</code>. A text buffer contains two built-in marks; an "
+"\"insert\" mark (the position of the cursor) and the \"selection_bound\" "
+"mark."
+msgstr ""
+"Un <code>Gtk.TextView</code> affiche le texte stocké dans le tampon d'un "
+"<code>Gtk.TextBuffer</code>. Cependant, la plupart des manipulations de "
+"texte se font avec des itérateurs représentés par un <code>Gtk.TextIter</"
+"code> - une position entre deux caractères dans le tampon du texte. Les "
+"itérateurs ne restent pas valides indéfiniment ; à chaque fois que le tampon "
+"se trouve modifié d'une façon qui affecte son contenu, tous les itérateurs "
+"en cours deviennent non valides. À cause de cela, les itérateurs ne peuvent pas "
+"être utilisés pour préserver les positions en cas de modifications du "
+"tampon. Pour préserver une position, nous utilisons donc un marqueur "
+"<code>Gtk.TextMark</code>, qui peut être rendu visible avec <code>visible"
+"(True)</code>. Un tampon de texte contient deux marqueurs intégrés : un "
+"marqueur « insert » (la position du curseur) et un marqueur "
+"« selection_bound » (limite de sélection)."
+
+#: C/textview.py.page:51(p)
+msgid "Methods for a TextView widget:"
+msgstr "Méthodes pour un élément graphique TextView :"
+
+#: C/textview.py.page:53(p)
+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."
+msgstr ""
+"L'élément graphique TextView est modifiable par défaut. Si vous préférez le "
+"contraire, utilisez <code>set_editable(False)</code>. Si le tampon ne "
+"contient pas de texte modifiable, c'est une bonne idée d'utiliser "
+"<code>set_cursor_visible(False)</code> aussi."
+
+#: C/textview.py.page:54(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>."
+msgstr ""
+"La justification du texte est définie par <code>set_justification(Gtk."
+"Justification.JUSTIFICATION)</code> où <code>JUSTIFICATION</code> est l'une "
+"des valeurs <code>LEFT, RIGHT, CENTER, FILL</code>."
+
+#: C/textview.py.page:55(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)."
+msgstr ""
+"La césure du texte est définie par <code>set_wrap_mode(Gtk.WrapMode.WRAP)</"
+"code> où <code>WRAP</code> est une des valeurs <code>NONE</code> (la zone de "
+"texte s'élargit), <code>CHAR</code> (fait la césure n'importe où le curseur peut "
+"apparaître), <code>WORD</code> (fait la césure entre deux mots), <code>WORD_CHAR</"
+"code> (fait la césure entre deux mots, mais si cela ne suffit pas, la "
+"fait entre deux caractères)."
+
+#: C/textview.py.page:57(p)
+msgid "Methods for a TextBuffer widget:"
+msgstr "Méthodes pour un élément graphique TextBuffer :"
+
+#: C/textview.py.page:59(p)
+msgid ""
+"<code>get_insert()</code> returns the <code>Gtk.TextMark</code> that "
+"represents the cursor, that is the insertion point."
+msgstr ""
+"La méthode <code>get_insert()</code> retourne le marqueur <code>Gtk."
+"TextMark</code> qui représente le curseur, c'est-à-dire le point d'insertion."
+
+#: C/textview.py.page:60(p)
+msgid ""
+"<code>get_selection_bound()</code> returns the <code>Gtk.TextMark</code> "
+"that represents the selection bound."
+msgstr ""
+"La méthode <code>get_selection_bound()</code> renvoie le marqueur <code>Gtk."
+"TextMark</code> qui représente les limites de la sélection."
+
+#: C/textview.py.page:61(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."
+msgstr ""
+"La méthode <code>set_text(\"du texte\", longueur)</code> où <code>longueur</code> "
+"est un nombre entier positif ou <code>-1</code> définit "
+"le contenu du tampon comme étant les <code>longueur</code> premiers caractères "
+"du texte <code>du texte</code>. Si <code>longueur</code> "
+"est omis ou égal à <code>-1</code>, tout le texte est inséré. Le "
+"contenu du tampon, s'il existe, est détruit."
+
+#: C/textview.py.page:62(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."
+msgstr ""
+"La méthode <code>insert(iter, \"du texte\", longueur)</code>, où <code>iter</code> "
+"est un itérateur et <code>longueur</code> est un nombre entier positif ou "
+"<code>-1</code>, insère dans le tampon à l'endroit de "
+"<code>iter</code> les <code>longueur</code> premiers caractères du texte "
+"<code>du texte</code>. Si <code>longueur</code> est omis ou égal à <code>-1</"
+"code>, tout le texte est inséré."
+
+#: C/textview.py.page:63(p)
+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>."
+msgstr ""
+"La méthode <code>insert_at_cursor(\"du texte\", longueur)</code> effectue la même "
+"action que <code>insert(iter, \"du texte\", length)</code>, avec le curseur actuel "
+"comme <code>iter</code>."
+
+#: C/textview.py.page:64(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>."
+msgstr ""
+"La méthode <code>create_mark(\"nom_marqueur\", iter, left_gravity)</code>, où "
+"<code>iter</code> est un <code>Gtk.TextIter</code> et <code>left_gravity</"
+"code> une valeur booléenne, crée un marqueur <code>Gtk.TextMark</code> à "
+"l'emplacement de l'<code>iter</code>. Si la valeur de <code>\"nom_marqueur\"</"
+"code> est <code>None</code>, le marqueur est anonyme ; sinon, le marqueur "
+"peut être récupéré par son nom avec <code>get_mark()</code>. Si un marqueur "
+"possède la propriété left_gravity et que le texte est inséré à son emplacement actuel, "
+"alors le marqueur est déplacé à gauche du texte qui vient d'être inséré. Si "
+"la valeur <code>left_gravity</code> est omise, alors la valeur <code>False</"
+"code> est utilisée par défaut."
+
+#: C/textview.py.page:66(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:"
+msgstr ""
+"Pour indiquer qu'un morceau de texte du tampon doit être formatée "
+"spécifiquement, vous devez définir une étiquette contenant cette information "
+"de formatage et ensuite l'appliquer à la portion de texte en utilisant "
+"<code>create_tag(\"nom etiquette\", propriété)</code> et <code>apply_tag(tag, "
+"start_iter, end_iter)</code>, par exemple comme ceci :"
+
+#: C/textview.py.page:67(code)
+#, no-wrap
+msgid ""
+"\n"
+"tag = textbuffer.create_tag(\"orange_bg\", background=\"orange\")\n"
+"textbuffer.apply_tag(tag, start_iter, end_iter)"
+msgstr ""
+"\n"
+"etiquette = textbuffer.create_tag(\"fond_orange\", background=\"orange\")\n"
+"textbuffer.apply_tag(etiquette, start_iter, end_iter)"
+
+#: C/textview.py.page:70(p)
+msgid "The following are some of the common styles applied to text:"
+msgstr "Voici quelques styles les plus usuels appliqués à du texte :"
+
+#: C/textview.py.page:72(p)
+msgid "Background colour (\"background\" property)"
+msgstr "Couleur d'arrière-plan (propriété « background »)"
+
+#: C/textview.py.page:73(p)
+msgid "Foreground colour (\"foreground\" property)"
+msgstr "Couleur de premier plan (propriété « foreground »)"
+
+#: C/textview.py.page:74(p)
+msgid "Underline (\"underline\" property)"
+msgstr "Souligné (propriété « underline »)"
+
+#: C/textview.py.page:75(p)
+msgid "Bold (\"weight\" property)"
+msgstr "Gras (propriété « weight »)"
+
+#: C/textview.py.page:76(p)
+msgid "Italics (\"style\" property)"
+msgstr "Italique (propriété « style »)"
+
+#: C/textview.py.page:77(p)
+msgid "Strikethrough (\"strikethrough\" property)"
+msgstr "Barré (propriété « strikethrough »)"
+
+#: C/textview.py.page:78(p)
+msgid "Justification (\"justification\" property)"
+msgstr "Justifié (propriété « justification »)"
+
+#: C/textview.py.page:79(p)
+msgid "Size (\"size\" and \"size-points\" properties)"
+msgstr "Taille (propriétés « size » et « size-points »)"
+
+#: C/textview.py.page:80(p)
+msgid "Text wrapping (\"wrap-mode\" property)"
+msgstr "Césure (propriété « wrap-mode »)"
+
+#: C/textview.py.page:82(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>."
+msgstr ""
+"Vous pouvez aussi supprimer par la suite certaines étiquettes en particulier "
+"avec <code>remove_tag()</code>, ou supprimer toutes celles d'une région donnée "
+"avec <code>remove_all_tags()</code>."
+
+#: C/textview.py.page:84(p)
+msgid "Methods for a TextIter widget"
+msgstr "Méthodes pour un élément graphique TextIter"
+
+#: C/textview.py.page:86(p)
+#, Bruno : j'ai l'impression qu'il faut mettre le contraire pour les flags !
+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."
+msgstr ""
+"La méthode <code>forward_search(needle, flags, limit)</code> effectue "
+"une recherche en avant de <code>needle</code> (cible). La recherche ne "
+"s'effectue pas au delà de l'itérateur <code>Gtk.TextIter</code>. "
+"Les <code>flags</code> (drapeaux) "
+"peuvent être définis comme l'un des éléments suivants, ou comme "
+"n'importe quelle combinaison de l'un d'eux, en les concaténant avec l'opérateur binaire "
+"OR <code>|"
+"</code> : <code>0</code> (la correspondance doit être exacte) ; <code>Gtk."
+"TextSearchFlags.VISIBLE_ONLY</code> (la correspondance peut contenir du "
+"texte invisible intercalé dans la sélection) ; <code>Gtk.TextSearchFlags."
+"TEXT_ONLY</code> (la correspondance peut contenir des pixbufs ou des éléments "
+"graphiques enfants mélangés dans la sélection) ; <code>Gtk.TextSearchFlags."
+"CASE_INSENSITIVE</code> (la correspondance n'est pas sensible à la casse). "
+"La méthode renvoie un tuple contenant un <code>Gtk.TextIter</"
+"code> qui pointe vers le début et vers le premier caractère après la "
+"correspondance ; s'il n'y a pas de correspondance, elle renvoie la valeur "
+"<code>None</code>."
+
+#: C/textview.py.page:87(p)
+msgid ""
+"<code>backward_search(needle, flags, limit)</code> does the same as "
+"<code>forward_search()</code>, but moving backwards."
+msgstr ""
+"La méthode <code>backward_search(needle, flags, limit)</code> "
+"effectue les même actions que <code>forward_search()</code>, mais en arrière."
+
+#: C/textview.py.page:95(link) C/textview.c.page:38(link)
+#: C/filechooserdialog.py.page:74(link)
 msgid "GtkTextView"
 msgstr "GtkTextView"
 
-#: C/textview.py.page:36(link)
+#: C/textview.py.page:96(link) C/textview.c.page:37(link)
+#: C/filechooserdialog.py.page:75(link)
 msgid "GtkTextBuffer"
 msgstr "GtkTextBuffer"
 
-#: C/textview.py.page:37(link)
-#, fuzzy
-#| msgid "GtkTextTags"
+#: C/textview.py.page:97(link)
 msgid "GtkTextTag"
-msgstr "GtkTextTags"
+msgstr "GtkTextTag"
 
-#: C/textview.py.page:38(link) C/scrolledwindow.py.page:28(link)
+#: 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/textview.py.page:39(link) C/scrolledwindow.py.page:29(link)
-#: C/scale.py.page:31(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 "Énumérations standards"
 
 #. When image changes, this message 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:24(None) C/switch.py.page:24(None)
-#: C/switch.c.page:21(None)
+#: C/textview.js.page:25(None)
+msgid ""
+"@@image: 'media/textviewpenguinchat.png'; "
+"md5=0dd6f6aa44aaeab7901bd90162ed4c9a"
+msgstr ""
+"@@image: 'media/textviewpenguinchat.png'; "
+"md5=0dd6f6aa44aaeab7901bd90162ed4c9a"
+
+#: C/textview.js.page:7(title)
+msgid "TextView (JavaScript)"
+msgstr "TextView (JavaScript)"
+
+#: C/textview.js.page:21(desc)
+msgid "A multiline text editor"
+msgstr "Un éditeur de texte multiligne"
+
+#: C/textview.js.page:26(p)
+msgid ""
+"A TextView is really (or at least usually) a nested set of three objects."
+msgstr ""
+"Un élément graphique TextView est en réalité (le plus souvent) une combinaison de trois objets."
+
+#: C/textview.js.page:28(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."
+msgstr ""
+"En bas se trouve un tampon <link href=\"http://www.roojs.org/seed/gir-1.2-";
+"gtk-3.0/gjs/Gtk.TextBuffer.html\">TextBuffer</link> qui contient le texte "
+"lui-même."
+
+#: C/textview.js.page:29(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."
+msgstr ""
+"Au milieu, nous trouvons l'élément graphique <link href=\"http://www.roojs.";
+"org/seed/gir-1.2-gtk-3.0/gjs/Gtk.TextView.html\">TextView</link>, qui nous "
+"permet d'afficher et de modifier le texte du tampon. Il se redimensionne "
+"automatiquement en fonction de la quantité de texte qu'il contient."
+
+#: 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 ""
+"Étant donné que le redimensionnement automatique peut rendre un TextView "
+"peu maniable, placez-le dans une fenêtre à défilement <link xref="
+"\"scrolledwindow.js\">ScrolledWindow</link>. Malgré son nom, ce n'est pas à "
+"proprement parler une fenêtre, car elle ne comporte ni barre de titre, ni "
+"bouton X ; c'est un élément graphique à placer dans l'application que vous "
+"construisez et qui permet de mieux gérer un TextView. Si le texte "
+"du tampon est trop grand, des ascenseurs apparaissent."
+
+#: C/textview.js.page:32(p)
+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."
+msgstr ""
+"Si vous modifiez le texte affiché dans le TextView, vous agissez sur le TextBuffer "
+"puisque c'est lui qui contient effectivement le texte. Procédez de la même manière si vous souhaitez 
connaître le "
+"texte saisi par quelqu'un. Cet exemple d'application vous permet de "
+"parler à un pingouin (imaginaire) et parcourt le TextBuffer "
+"pour voir si vous avez saisi le mot « poisson » quelque part."
+
+#: C/textview.js.page:33(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>."
+msgstr ""
+"Dans la vraie vie, les populations de pingouins déclinent rapidement, à "
+"cause du changement climatique qui fait fondre les glaces sur lesquels ils "
+"vivent et raréfie les stocks de poissons dont ils se nourrissent. Allez "
+"jeter un coup d'œil à <link href=\"http://pingus.seul.org/\";>Pingus.</link> "
+"si vous voulez jouer à un jeu GNOME (un peu stupide) basé sur ce "
+"constat."
+
+#: C/textview.js.page:73(p)
+msgid ""
+"All the code for this sample goes in the TextViewExample class. The above "
+"code creates a <link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/";
+"Gtk.Application.html\">Gtk.Application</link> for our widgets and window to "
+"go in."
+msgstr ""
+"Tout le code de cet exemple tient dans la classe TextViewExample. Le code ci-"
+"dessus crée une <link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/";
+"Gtk.Application.html\">Gtk.Application</link> pour nos éléments graphiques "
+"et la fenêtre qui les contient."
+
+#: C/textview.js.page:91(title)
+msgid "Creating the TextView"
+msgstr "Création de l'élément graphique TextView"
+
+#: C/textview.js.page:101(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."
+msgstr ""
+"Pour commencer, créons le <link xref=\"label.js\">Label</link> (étiquette) que le "
+"pingouin va utiliser pour dialoguer avec vous. Définissons la propriété de césure du "
+"texte de l'étiquette sur wrap (césure) en lui attribuant la valeur « true », "
+"mais nous utiliserons une méthode différente sur l'élément graphique "
+"TextView lui-même pour avoir un contrôle plus fin."
+
+#: C/textview.js.page:112(p)
+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."
+msgstr ""
+"La première étape consiste à créer un élément graphique TextBuffer pour y "
+"placer les mots. Ensuite, nous créons l'élément TextView et nous lui "
+"indiquons d'utiliser le TextBuffer comme tampon. Nous le "
+"paramétrons aussi pour qu'il soit modifiable (editable), car nous voulons pouvoir y "
+"saisir d'autres choses."
+
+#: C/textview.js.page:113(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."
+msgstr ""
+"La propriété wrap_mode permet de choisir entre quatre modes de césure "
+"<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.WrapMode.html";
+"\">WrapModes</link> différents. Le mode Gtk.WrapMode.CHAR, par exemple, fait "
+"la césure au milieu d'un mot si vous continuer la saisie après avoir "
+"atteint le bord. La plupart d'entre vous sont certainement plus habitués au mode Gtk."
+"WrapMode.WORD, qui met automatiquement le mot entier à la ligne s'il est "
+"trop long."
+
+#: C/textview.js.page:127(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 ""
+"Ici, nous créons une <link xref=\"scrolledwindow.js\">ScrolledWindow</link> et "
+"nous la paramétrons pour défiler automatiquement si son contenu déborde "
+"horizontalement ou verticalement. Nous lui ajoutons aussi une belle bordure "
+"ETCHED_IN. Ensuite, nous y mettons notre TextView et nous indiquons "
+"à la fenêtre ScrolledWindow de nous l'afficher."
+
+#: C/textview.js.page:131(title) C/radiobutton.js.page:117(title)
+msgid "Creating the rest of the user interface"
+msgstr "Création du reste de l'interface utilisateur"
+
+#: C/textview.js.page:143(p)
+msgid ""
+"The first <link xref=\"grid.js\">Grid</link> we create only has the Label "
+"and the ScrolledWindow inside it."
+msgstr ""
+"Le premier <link xref=\"grid.js\">Grid</link> (grille) que nous avons créé ne "
+"contient que l'étiquette et la ScrolledWindow."
+
+#: C/textview.js.page:162(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."
+msgstr ""
+"Nous créons un <link xref=\"button.js\">Button</link> (bouton) pour envoyer votre message "
+"au pingouin et un nouveau Grid (grille) qui contient l'autre grille en haut et le "
+"bouton en bas. Le bouton comporte une marge (margin) dans sa partie supérieure, de "
+"telle sorte qu'il n'est pas collé contre la ScrolledWindow."
+
+#: C/textview.js.page:173(p)
+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."
+msgstr ""
+"Enfin, nous relions la grille principale à la fenêtre, puis indiquons à la "
+"fenêtre de s'afficher avec son contenu quand l'application est lancée."
+
+#: C/textview.js.page:178(title)
+msgid "Function which handles the penguin's response"
+msgstr "Fonction prenant en charge la réponse du pingouin"
+
+#: C/textview.js.page:230(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."
+msgstr ""
+"Nous utilisons ici quelques fonctions JavaScript de base pour que le "
+"pingouin dise quelque chose au hasard. Les pingouins apprécient le "
+"poisson et nous allons donc le faire répondre quand on prononce le mot "
+"« fish » (poisson). Pour cela, nous appliquons la méthode JavaScript de correspondance "
+"d'objets chaîne de caractères sur le texte <file>this.buffer.text</file>, "
+"qui renvoie le contenu de notre TextBuffer."
+
+#: C/textview.js.page:231(p)
+msgid ""
+"Since we want to clear out the TextBuffer after each time you click Send, we "
+"set <file>this.buffer.text</file> to contain an empty string afterwards. "
+"Then we return focus to our TextView, so that you can keep typing without "
+"having to click on it beforehand."
+msgstr ""
+"Comme nous voulons effacer le TextBuffer après chaque clic sur « Sent » (Envoyer), nous "
+"paramétrons le <file>this.buffer.text</file> pour qu'il contienne "
+"une chaîne vide après cela. Nous renvoyons ensuite le focus sur notre "
+"élément TextView, pour pouvoir continuer à y saisir du texte sans avoir "
+"besoin de cliquer dessus au préalable."
+
+#: C/textview.js.page:238(p)
+msgid ""
+"Finally, we create a new instance of the finished TextViewExample class, and "
+"set the application running."
+msgstr ""
+"Enfin, nous créons une nouvelle instance de la classe TextViewExample que nous venons de terminer "
+"et démarrons l'application."
+
+#: 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)"
+
+#: C/textview.c.page:24(p)
+msgid ""
+"If we have a loooooooooooooooooooooooooooooooooooong (that was long) word, "
+"a* horizontal scrollbar will appear."
+msgstr ""
+"Si nous avons un loooooooooooooooooooooooooooooooooooong mot, une barre de "
+"défilement horizontale apparaît."
+
+#: 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:25(None) C/switch.py.page:25(None)
-#: C/switch.c.page:22(None)
+#: 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:20(desc) C/switch.py.page:20(desc)
-#: C/switch.c.page:16(desc)
+#: C/switch.vala.page:7(title)
+msgid "Switch (Vala)"
+msgstr "Switch (interrupteur) (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 "Un bouton du style « interrupteur électrique »"
+msgstr "Un bouton de basculement du style « interrupteur électrique »"
 
-#: C/switch.vala.page:23(title) C/switch.py.page:23(title)
-#: C/switch.c.page:19(title)
+#: 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 "Interrupteur"
+msgstr "Switch (interrupteur)"
 
-#: C/switch.vala.page:27(p)
+#: C/switch.vala.page:28(p)
 msgid "This Switch toggles the title."
 msgstr "Cet interrupteur bascule le titre."
 
-#: C/switch.vala.page:34(link)
+#: C/switch.vala.page:35(link) C/switch.js.page:272(link)
 msgid "Gtk.Switch"
 msgstr "Gtk.Switch"
 
-#: C/switch.py.page:27(p)
+#: C/switch.py.page:7(title)
+msgid "Switch (Python)"
+msgstr "Switch : interrupteur (Python)"
+
+#: C/switch.py.page:29(p)
 msgid "This Switch makes the title appears and disappear."
 msgstr "Cet interrupteur fait apparaître et disparaître le titre."
 
-#: C/switch.py.page:34(link) C/switch.c.page:34(link)
-#: C/radiobutton.c.page:34(link)
+#: C/switch.py.page:40(title)
+msgid "Useful methods for a Switch widget"
+msgstr "Méthodes utiles pour un élément graphique Switch"
+
+#: C/switch.py.page:41(p) C/checkbutton.py.page:38(p)
+msgid ""
+"For a discussion on signals and callback functions, see <link xref=\"signals-"
+"callbacks.py\">this page</link>."
+msgstr ""
+"Pour obtenir des informations sur les signaux et fonctions de rappel, "
+"consultez <link xref=\"signals-callbacks.py\">cette page</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:35(link) C/switch.c.page:33(link)
-#: C/radiobutton.c.page:32(link) C/label.py.page:85(link)
-#: C/label.c.page:36(link)
+#: 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"
 
-#: C/switch.c.page:23(p)
-#, fuzzy
-#| msgid "This Switch toggles the title."
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/switch.js.page:21(None)
+msgid ""
+"@@image: 'media/switchanimals.png'; md5=513ae15dcf68e15eef30b76420b8c714"
+msgstr ""
+"@@image: 'media/switchanimals.png'; md5=513ae15dcf68e15eef30b76420b8c714"
+
+#: C/switch.js.page:7(title)
+msgid "Switch (JavaScript)"
+msgstr "Switch : interrupteur (JavaScript)"
+
+#: C/switch.js.page:17(desc)
+msgid "A sliding switch that can be flipped on and off"
+msgstr "Un interrupteur à glissière qui peut être allumé ou éteint"
+
+#: C/switch.js.page:22(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>"
+msgstr ""
+"Un interrupteur possède deux positions : allumé ou éteint. Cet exemple "
+"montre comment utiliser plusieurs interrupteurs ensemble pour contrôler "
+"quelle <link xref=\"image.js\">Image</</link> s'affiche dans la fenêtre. Les "
+"images utilisées dans cet exemple <link href=\"https://live.gnome.org/";
+"TarynFox?action=AttachFile&amp;do=get&amp;target=Animal+Photos.zip\">peuvent "
+"être téléchargées ici.</link>"
+
+#: C/switch.js.page:23(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:"
+msgstr ""
+"Si les fichiers <file>redfox.png</file>, <file>muteswan.png</file>, "
+"<file>fruitbat.png</file> et <file>gentoopenguin.png</file> ne se trouvent "
+"pas dans le même dossier, la fenêtre affichera une icône « image brisée ». Vous pouvez modifier le code et 
les images comme "
+"bon vous semble, mais sachez que les photos sous licence Creative Commons "
+"utilisées dans cet exemple proviennent des sources suivantes et ont été "
+"rognées à 640x435 :"
+
+#: C/switch.js.page:25(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>"
+msgstr ""
+"<link href=\"http://en.wikipedia.org/wiki/File:Fuzzy_Freddy.jpg\";>Red fox "
+"photo</link> (renard rouge) par Rob Lee, licence <link href=\"http://creativecommons.org/";
+"licenses/by/2.0/deed.en\">CC-By</link>"
+
+#: C/switch.js.page:26(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>"
+msgstr ""
+"<link href=\"http://en.wikipedia.org/wiki/File:Pygoscelis_papua_-";
+"Nagasaki_Penguin_Aquarium_-swimming_underwater-8a.jpg\">Gentoo penguinphoto</"
+"link> (pingouin) par Ken Funakoshi, licence <link href=\"http://creativecommons.org/";
+"licenses/by-sa/2.0/deed.en\">CC-By-SA</link>"
+
+#: C/switch.js.page:27(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>"
+msgstr ""
+"<link href=\"http://www.flickr.com/photos/shekgraham/127431519/in/";
+"photostream/\">Fruit bat photo</link> (chauve-souris) par Shek Graham, licence <link href="
+"\"http://creativecommons.org/licenses/by/2.0/deed.en\";>CC-By</link>"
+
+#: C/switch.js.page:28(p)
+msgid ""
+"<link href=\"http://commons.wikimedia.org/wiki/File:Mute_Swan-";
+"Mindaugas_Urbonas.jpg\">Mute swan photo</link> by Mindaugas Urbonas, "
+"licensed <link href=\"http://creativecommons.org/licenses/by-sa/2.5/deed.en";
+"\">CC-By-SA</link>"
+msgstr ""
+"<link href=\"http://commons.wikimedia.org/wiki/File:Mute_Swan-";
+"Mindaugas_Urbonas.jpg\">Mute swan photo</link> (cygne) par Mindaugas Urbonas, "
+"licence <link href=\"http://creativecommons.org/licenses/by-sa/2.5/deed.en";
+"\">CC-By-SA</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>"
+msgstr ""
+"Les crédits photos et les informations de licence sont affichés dans la boîte de dialogue <link "
+"xref=\"aboutdialog.js\">AboutDialog</link> de l'application. Pensez à "
+"toujours porter au crédit de l'artiste original tout <link href=\"http://";
+"creativecommons.org\">travail sous licence Creative Commons !</link>."
+
+#: C/switch.js.page:74(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."
+msgstr ""
+"Tout le code de cet exemple est contenu dans la classe SwitchExample. Le code ci-"
+"dessus crée une <link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/";
+"Gtk.Application.html\">Gtk.Application</link> pour nos éléments graphiques "
+"et la fenêtre qui les contient."
+
+#: C/switch.js.page:75(p) C/messagedialog.js.page:70(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."
+msgstr ""
+"Avant d'appeler _buildUI pour créer la fenêtre et les éléments graphiques "
+"qu'elle contient, il nous faut appeler _initMenus, qui indique à GNOME de "
+"générer le menu. Nous pouvons mettre le code actuel pour _initMenus après le "
+"code pour _buildUI, car l'ordre n'a pas d'importance du moment que "
+"_initMenus est appelé en premier dans _onStartup."
+
+#: C/switch.js.page:91(title)
+msgid "Creating the switches"
+msgstr "Création des interrupteurs"
+
+#: C/switch.js.page:97(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 ""
+"Créons en premier l'<link xref=\"image.js\">Image</link> que les "
+"interrupteurs vont contrôler. Souvenez-vous qu'un fichier nommé <file>redfox."
+"png</file> doit être présent dans le même dossier que cette application."
+
+#: C/switch.js.page:119(p)
+msgid ""
+"We use a <link xref=\"label.js\">Label</link> to mark each Switch, and give "
+"them a bit of a margin on the right so that they aren't crammed right next "
+"to the Switches. After that we create the Switches, and set them to be "
+"switched off by default."
+msgstr ""
+"Utilisons un <link xref=\"label.js\">Label</link> pour étiqueter chaque "
+"interrupteur et laissons-leur un peu de marge à droite pour qu'ils ne "
+"débordent pas les uns sur les autres. Créons ensuite les interrupteurs et "
+"paramétrons-les pour qu'ils soient en position « éteint » par défaut."
+
+#: C/switch.js.page:120(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."
+msgstr ""
+"Le signal qu'un interrupteur envoie quand il est basculé dans un sens ou "
+"dans l'autre est appelé notify::active. Après avoir créé chaque "
+"interrupteur, connectons son signal notify::active à une fonction appelée "
+"_switchFlip. Si vous avez plein d'interrupteurs qui font chacun quelque "
+"chose de différent, vous pouvez les connecter à différentes fonctions, mais "
+"ici, ils sont tous les deux utilisés pour la même chose : contrôler quelle "
+"image est affichée par _image."
+
+#: C/switch.js.page:144(p)
+msgid ""
+"We create a <link xref=\"grid.js\">Grid</link> for the Labels and Switches "
+"first, so that we can organize them in a 2x2 layout with a margin between it "
+"and the Image. Then we put that Grid into a larger 2x1 Grid that has the "
+"Image on top, and the Grid with the Labels and Switches on the bottom."
+msgstr ""
+"Créons une <link xref=\"grid.js\">grille</link> pour les étiquettes et les "
+"interrupteurs de façon à les organiser dans un agencement 2x2 avec une marge "
+"entre eux et l'image. Ensuite, mettons cette grille dans une plus grande au "
+"format 2x1 qui contient l'image en haut et la grille avec les étiquettes et "
+"les interrupteurs en bas."
+
+#: C/switch.js.page:153(p) C/spinbutton.js.page:165(p)
+msgid ""
+"Finally, we add the larger Grid to the window, then tell the window to show "
+"itself and all the widgets inside of it."
+msgstr ""
+"Enfin, ajoutons la grille la plus grande à la fenêtre et indiquons à la fenêtre de "
+"s'afficher avec tous les éléments graphiques à l'intérieur."
+
+#: C/switch.js.page:157(title)
+msgid "Function which handles the switches being flipped"
+msgstr "Fonction prenant en charge la commutation des interrupteurs"
+
+#: C/switch.js.page:180(p)
+msgid ""
+"Each time a Switch is flipped, this function checks to see which of the two "
+"Switches are active afterwards, using the Switches' built-in get_active() "
+"function. It then changes the Image accordingly. You can change the "
+"filenames around as you like, so long as you have pictures to go with them."
+msgstr ""
+"À chaque fois qu'un interrupteur est activé, cette fonction vérifie lequel "
+"des deux interrupteurs est allumé à l'aide de la fonction intégrée get_active"
+"(). Elle affiche ensuite l'image correspondante. Vous pouvez modifier les noms "
+"des fichiers comme bon vous semble, tant que les images "
+"correspondantes sont dans le même dossier."
+
+#: C/switch.js.page:184(title)
+msgid "Creating the AboutDialog"
+msgstr "Création de la boîte de dialogue « À propos »"
+
+#: C/switch.js.page:211(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."
+msgstr ""
+"La première étape est de créer le <link xref=\"gmenu.js\">GMenu</link> dans "
+"lequel s'insère le bouton « À propos ». C'est ce menu qui s'affiche quand "
+"vous cliquez dans le coin gauche supérieur de l'écran, à côté du menu "
+"Activités. Notre menu ne contient que deux options : À propos et Quitter."
+
+#: C/switch.js.page:247(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."
+msgstr ""
+"Vous pouvez définir beaucoup de choses très différentes dans une boîte de "
+"dialogue <link xref=\"aboutdialog.js\">À propos</link>, comme créditer tous "
+"les contributeurs ayant participé au développement de l'application et "
+"laisser une note à qui veut la lire. Dans notre cas, la section licence "
+"contient nos notes et les crédits aux photographes auteurs, alors que la "
+"section artistes affiche une liste des photographes avec les liens vers les "
+"images originales quand vous cliquez sur le bouton Crédits. Les liens URL "
+"qui suivent leurs noms les transforment en liens cliquables vous renvoyant à "
+"la section Crédits."
+
+#: C/switch.js.page:254(p)
+msgid ""
+"Finally, we create a new instance of the finished SwitchExample class, and "
+"set the application running."
+msgstr ""
+"Enfin, créons une nouvelle instance de la classe SwitchExample et démarrons "
+"l'application."
+
+#: 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"
+
+#: C/switch.js.page:270(link) C/image.js.page:33(link)
+msgid "Gtk.Image"
+msgstr "Gtk.Image"
+
+#: C/switch.c.page:7(title)
+msgid "Switch (C)"
+msgstr "Switch (C)"
+
+#: C/switch.c.page:24(p)
 msgid "This switch toggles the title of the window."
 msgstr "Cet interrupteur bascule le titre de la fenêtre."
 
+#: C/strings.py.page:8(title)
+msgid "Strings (Python)"
+msgstr "Chaînes de caractères (Python)"
+
+#: C/strings.py.page:12(desc)
+msgid "An explanation of how to deal with strings in Python and GTK+."
+msgstr ""
+"Une explication sur l'utilisation des chaînes de caractères dans Python et "
+"GTK+."
+
+#: C/strings.py.page:25(title)
+msgid "Strings"
+msgstr "Chaînes de caractères"
+
+#: C/strings.py.page:30(title)
+msgid "Definitions"
+msgstr "Définition"
+
+#: C/strings.py.page:32(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 ""
+"Par principe, une <em>chaîne</em> est composée de <em>caractères</em> "
+"comme « A », « B », « C » ou « È ». Les caractères sont des représentations "
+"abstraites et leur signification dépend de la langue et du contexte dans "
+"lesquels ils sont utilisés. Le <em>standard Unicode</em> décrit comment les "
+"caractères sont représentés par des <em>points de code</em>. Par exemple, "
+"les caractères ci-dessus sont représentés respectivement par les points de "
+"code U+0041, U+0042, U+0043 et U+00C9. Basiquement, les points de code sont "
+"des nombres compris entre 0 et 0x10FFFF."
+
+#: C/strings.py.page:34(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 ""
+"La représentation d'une chaîne comme une liste de points de code est "
+"abstraite. Afin de convertir cette représentation abstraite en une séquence "
+"d'octets, la chaîne Unicode doit être <em>codée</em>. La méthode de codage "
+"la plus simple est l'ASCII et se présente ainsi :"
+
+#: C/strings.py.page:37(p)
+msgid ""
+"If the code point is strictly less than 128, each byte is the same as the "
+"value of the code point."
+msgstr ""
+"Si le point de code est strictement inférieur à 128, chaque octet est "
+"identique à la valeur du point de code."
+
+#: C/strings.py.page:38(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.)"
+msgstr ""
+"Si le point de code est égal ou supérieur à 128, la chaîne Unicode ne peut "
+"pas être codée de cette façon (Python retourne une exception "
+"<sys>UnicodeEncodeError</sys> dans ce cas)."
+
+#: C/strings.py.page:41(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."
+msgstr ""
+"Bien que le codage en ASCII soit facile d'utilisation, il ne peut coder que"
+"128 caractères différents, ce qui est largement insuffisant. Pour contourner "
+"ce problème, une des méthodes de codage les plus utilisées est UTF-8 (elle "
+"prend en charge n'importe quel point de code Unicode). UTF signifie « Unicode "
+"Transformation Format » et le « 8 » signifie que des nombres à 8 bits "
+"sont utilisés dans le codage."
+
+#: C/strings.py.page:46(title)
+msgid "Strings in Python 2"
+msgstr "Les chaînes de caractères dans Python 2"
+
+#: C/strings.py.page:48(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."
+msgstr ""
+"Python 2 est livré avec deux types différents d'objets qui peuvent être "
+"utilisés pour représenter des chaînes : <code>str</code> et <code>unicode</"
+"code>. Les instances du type <code>unicode</code> sont utilisées pour exprimer "
+"des chaînes Unicode, alors que les exemples du type <code>str</code> sont "
+"des représentations d'octets (la chaîne codée). En interne, Python "
+"représente les chaînes Unicode par des entiers de 16 ou de 32 bits, en "
+"fonction du type de compilation de l'interpréteur Python."
+
+#: C/strings.py.page:50(code)
+#, no-wrap
+msgid ""
+"<![CDATA[\n"
+">>> unicode_string = u\"Fu\\u00dfb\\u00e4lle\"\n"
+">>> print unicode_string]]>\n"
+"Fußbälle\n"
+msgstr ""
+"<![CDATA[\n"
+">>> unicode_string = u\"Fu\\u00dfb\\u00e4lle\"\n"
+">>> print unicode_string]]>\n"
+"Fußbälle\n"
+
+#: C/strings.py.page:56(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>):"
+msgstr ""
+"Les chaînes Unicode peuvent être converties en 8 bits avec <code>unicode."
+"encode()</code>. Les chaînes Python en 8 bits contiennent une méthode "
+"<code>str.decode()</code> qui interprète la chaîne avec le codage qui lui "
+"est attribué (c'est donc l'inverse de <code>unicode.encode()</code>) :"
+
+#: C/strings.py.page:69(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 ""
+"Malheureusement, Python 2.x vous permet de mélanger les types <code>unicode</"
+"code> et <code>str</code> s'il arrivait que la chaîne de 8 bits ne contienne "
+"que des octets de 7 bits (ASCII), mais retourne l'erreur "
+"<sys>UnicodeDecodeError</sys> si elle contient des valeurs qui ne sont pas "
+"ASCII."
+
+#: C/strings.py.page:74(title)
+msgid "Strings in Python 3"
+msgstr "Les chaînes dans Python 3"
+
+#: C/strings.py.page:76(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 ""
+"Depuis la version 3.0 de Python, toutes les chaînes sont stockées en Unicode "
+"dans une représentation du type <code>str</code>. D'autre part, les chaînes "
+"codées sont stockées en données binaires sous forme d'octets. "
+"Conceptuellement, le type <code>str</code> représente du texte, alors que "
+"les octets représentent des données. Utilisez la méthode <code>encode()</"
+"code> pour passer de <code>str</code> à <code>bytes</code> et <code>decode()"
+"</code> pour passer de <code>bytes</code> à <code>str</code>."
+
+#: C/strings.py.page:78(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 ""
+"En plus, il n'est plus possible de mélanger des chaînes Unicode avec des "
+"chaînes codées, car cela retournerait une erreur <code>TypeError</code> :"
+
+#: C/strings.py.page:95(title)
+msgid "Unicode in GTK+"
+msgstr "Unicode dans GTK+"
+
+#: C/strings.py.page:97(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+ utilise des chaînes au format UTF-8 pour tout ce qui est texte. Cela "
+"signifie que, si vous appelez une méthode qui renvoie une chaîne, vous "
+"obtenez toujours une représentation du type <code>str</code>. Cela "
+"s'applique également aux méthodes qui considèrent une ou plusieurs chaînes "
+"comme paramètres, elles doivent aussi être codées en UTF-8. Cependant, pour "
+"plus de souplesse, PyGObject convertit automatiquement n'importe quelle "
+"représentation Unicode au format str si vous lui donnez comme argument :"
+
+#: C/strings.py.page:108(p)
+msgid "Furthermore:"
+msgstr "Furthermore:"
+
+#: C/strings.py.page:113(p)
+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)."
+msgstr ""
+"devrait renvoyer <code>False</code>, avec l'avertissement <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> renvoie toujours une représentation <code>str</code> ; en "
+"conséquence, <code>txt</code> et <code>unicode_string</code> sont inégaux)."
+
+#: C/strings.py.page:115(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."
+msgstr ""
+"Cela est particulièrement important si vous voulez internationnaliser votre "
+"programme avec <link href=\"http://docs.python.org/library/gettext.html";
+"\"><code>gettext</code></link>. Vous devez vous assurer que <code>gettext</"
+"code> va renvoyer des chaînes codées en UTF-8 pour toutes les langues."
+
+#: C/strings.py.page:117(p)
+msgid ""
+"In general it is recommended to not use <code>unicode</code> objects in GTK+ "
+"applications at all, and only use UTF-8 encoded <code>str</code> objects "
+"since GTK+ does not fully integrate with <code>unicode</code> objects."
+msgstr ""
+"D'une manière générale, nous vous recommandons de ne pas du tout utiliser "
+"d'objets <code>unicode</code> dans les applications GTK+, mais seulement des "
+"objets <code>str</code> codés en UTF-8, car GTK+ n'intègre pas tous les "
+"objets <code>unicode</code>."
+
+#: C/strings.py.page:119(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:"
+msgstr ""
+"Avec Python 3.x, les choses sont beaucoup plus logiques, car PyGObject code "
+"ou décode automatiquement en UTF-8 si vous assignez une chaîne à une méthode "
+"ou inversement. Les chaînes, ou le texte, sont toujours représentés en "
+"<code>str</code> seulement :"
+
+#: 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 "Références"
+
+#: C/strings.py.page:126(link)
+msgid "How To Deal With Strings - The Python GTK+ 3 Tutorial"
+msgstr "Travailler avec les chaînes - Le tutoriel 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:23(None) C/statusbar.py.page:23(None)
+#: 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:19(desc) C/statusbar.py.page:19(desc)
+#: C/statusbar.vala.page:7(title)
+msgid "Statusbar (Vala)"
+msgstr "Barre de statut (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 ""
 "Rapporte les messages d'information d'importance mineure pour l'utilisateur"
 
-#: C/statusbar.vala.page:22(title) C/statusbar.py.page:22(title)
-#: C/statusbar.js.page:19(title)
+#: 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 "Statusbar"
+msgstr "Barre de statut"
 
-#: C/statusbar.vala.page:24(p)
+#: C/statusbar.vala.page:25(p)
 msgid "This statusbar tells you what's going on."
-msgstr "Cette statusbar vous indique ce qui se passe."
+msgstr "Cette barre de statut vous indique ce qui se passe."
 
-#: C/statusbar.vala.page:31(link) C/statusbar.js.page:226(link)
+#: C/statusbar.vala.page:32(link) C/statusbar.js.page:227(link)
 msgid "Gtk.Statusbar"
 msgstr "Gtk.Statusbar"
 
-#: C/statusbar.py.page:24(p)
+#: C/statusbar.py.page:7(title)
+#, fuzzy
+#| msgid "Statusbar"
+msgid "Statusbar (Python)"
+msgstr "Barre de statut"
+
+#: C/statusbar.py.page:25(p)
 msgid ""
 "This statusbar tells you if you click the button or if you press any key "
 "(and which key)."
 msgstr ""
-"Cette statusbar vous informe si vous cliquez sur le bouton ou si vous "
+"Cette barre de statut vous informe si vous cliquez sur le bouton ou si vous "
 "appuyez sur n'importe quelle touche (et sur quelle touche)."
 
-#: C/statusbar.py.page:33(p)
+#: C/statusbar.py.page:34(p)
 msgid ""
 "<code>Gdk.keyval_name(event.keyval)</code> converts the key value "
 "<code>event.keyval</code> into a symbolic name. The names and corresponding "
@@ -1928,24 +4572,34 @@ msgid ""
 "gdk/gdkkeysyms.h\">here</link>, but for instance <code>GDK_KEY_BackSpace</"
 "code> becomes the string <code>\"BackSpace\"</code>."
 msgstr ""
+"La méthode <code>Gdk.keyval_name(event.keyval)</code> convertit la valeur "
+"des touches <code>event.keyval</code> en noms symboliques. Les noms et les "
+"valeurs correspondantes des touches se trouvent <link href=\"http://git.";
+"gnome.org/browse/gtk+/tree/gdk/gdkkeysyms.h\">ici</link>. À titre d'exemple, "
+"<code>GDK_KEY_BackSpace</code> devient la chaîne <code>« Retour arrière »</"
+"code>."
 
-#: C/statusbar.py.page:39(title)
+#: C/statusbar.py.page:40(title)
 msgid "Useful methods for a Statusbar widget"
-msgstr ""
+msgstr "Méthodes utiles pour un élément graphique BarreDeStatut"
 
-#: C/statusbar.py.page:41(p)
+#: C/statusbar.py.page:42(p)
 msgid ""
 "<code>pop(context_id)</code> removes the first message in the statusbar "
 "stack with the given <code>context_id</code>."
 msgstr ""
+"La fonction <code>pop(context_id)</code> efface le premier message de la "
+"pile de la barre de statut avec le <code>context_id</code> donné."
 
-#: C/statusbar.py.page:42(p)
+#: C/statusbar.py.page:43(p)
 msgid ""
 "<code>remove_all(context_id)</code> removes all the messages in the "
 "statusbar stack with the given <code>context_id</code>."
 msgstr ""
+"La méhode <code>remove_all(context_id)</code> efface tous les messages de la "
+"pile de la barre de statut ayant l'identifiant <code>context_id</code> donné."
 
-#: C/statusbar.py.page:43(p)
+#: C/statusbar.py.page:44(p)
 msgid ""
 "<code>remove(context_id, message_id)</code> removes the message with the "
 "given <code>message_id</code> in the statusbar stack with the given "
@@ -1953,74 +4607,73 @@ msgid ""
 "<code>push(context_id, \"the message\")</code> when pushing the message on "
 "the statusbar."
 msgstr ""
+"La méthode <code>remove(context_id, message_id)</code> efface le message de "
+"la pile de la barre de statut avec le <code>context_id</code> donné. Le "
+"<code>message_id</code> est renvoyé par <code>push(context_id, lemessage)</"
+"code> quand il pousse le message dans la barre des statut."
 
-#: C/statusbar.py.page:51(link)
+#: C/statusbar.py.page:52(link)
 msgid "GtkStatusbar"
 msgstr "GtkStatusbar"
 
-#: C/statusbar.py.page:52(link) C/spinner.js.page:28(link)
-#: C/progressbar.py.page:56(link)
-#, fuzzy
+#: C/statusbar.py.page:53(link) C/spinner.js.page:29(link)
+#: C/progressbar.py.page:57(link)
 msgid "Gdk - Key Values"
 msgstr "Gdk - Key Values"
 
 #. When image changes, this message 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:20(None)
-#, fuzzy
-#| msgid "@@image: 'media/statusbar.png'; md5=eb1aca55315d6cda57b12a5f36058ba8"
+#: C/statusbar.js.page:21(None)
 msgid "@@image: 'media/statusbar2.png'; md5=ff6f7e5b270827ca98b2d5f7087aa766"
-msgstr "@@image: 'media/statusbar.png'; md5=eb1aca55315d6cda57b12a5f36058ba8"
+msgstr "@@image: 'media/statusbar2.png'; md5=ff6f7e5b270827ca98b2d5f7087aa766"
 
-#: C/statusbar.js.page:16(desc)
+#: C/statusbar.js.page:7(title)
+#, fuzzy
+#| msgid "JavaScript"
+msgid "Statusbar (JavaScript)"
+msgstr "JavaScript"
+
+#: C/statusbar.js.page:17(desc)
 msgid "Show notifications in a dedicated statusbar"
-msgstr ""
+msgstr "Afficher les notifications dans une barre de statut donnée"
 
-#: C/statusbar.js.page:21(p)
+#: 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 ""
+"Cette barre de statut enregistre le nombre de fois que vous avez cliqué sur "
+"un bouton. Des applications comme <link href=\"http://projects.gnome.org/";
+"gedit/\">gedit</link> utilisent une barre de statut pour rendre les "
+"informations visibles d'un coup d'œil sans interrompre l'utilisateur."
 
-#: C/statusbar.js.page:22(p)
+#: C/statusbar.js.page:23(p)
 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."
 msgstr ""
+"Les nouveaux messages sont ajoutés au sommet de la pile d'une barre de "
+"statut et peuvent être affichés pour consulter les plus récents. Vous pouvez "
+"aussi effacer tous les messages d'un type spécifique d'un seul coup. Cet "
+"exemple d'application explique ces fonctions."
 
-#: C/statusbar.js.page:34(p) C/checkbutton.js.page:34(p)
-msgid ""
-"These are the libraries we need to import for this application to run. "
-"Remember that the line which tells GNOME that we're using Gjs always needs "
-"to go at the start."
-msgstr ""
-
-#: C/statusbar.js.page:38(title) C/checkbutton.js.page:38(title)
-#, fuzzy
-#| msgid "Designing the application"
-msgid "Creating the application window"
-msgstr "Conception de l'application"
-
-#: C/statusbar.js.page:65(p)
-#, fuzzy
-#| msgid ""
-#| "In this sample we used the following widget: <link href=\"http://www.";
-#| "roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Window.html\">Gtk.Window</link>"
+#: C/statusbar.js.page:66(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."
 msgstr ""
-"Dans cet exemple, nous avons utilisé l'élément graphique suivant : <link "
-"href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Window.html\";>Gtk."
-"Window</link>"
+"Tout le code de cet exemple va dans la classe StatusbarExample. Le code ci-"
+"dessus crée une <link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/";
+"Gtk.Application.html\">Gtk.Application</link> pour nos éléments graphiques "
+"et la fenêtre qui les contient."
 
-#: C/statusbar.js.page:82(p)
+#: 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="
@@ -2031,14 +4684,20 @@ msgid ""
 "applications, and it stays at the bottom of the window, even if the user "
 "resizes it."
 msgstr ""
+"Mettons tout le code nécessaire à la création de l'interface utilisateur "
+"dans la fonction _buildUI. Créons d'abord une <link href="
+"\"GtkApplicationWindow.js.page\">Gtk.ApplicationWindow</link> qui va "
+"contenir tous nos éléments graphiques. Ensuite, créons un panneau "
+"d'interface <link href=\"paned.js.page\">Gtk.Paned</link> orienté "
+"verticalement pour diviser la fenêtre en deux parties. De cette façon, la "
+"barre de statut va ressembler à celle d'autres application et restera en bas "
+"de la fenêtre, même si vous la redimensionnez."
 
-#: C/statusbar.js.page:86(title)
-#, fuzzy
-#| msgid "Starting the fun"
+#: C/statusbar.js.page:87(title)
 msgid "Creating the buttons"
-msgstr "Début du plaisir"
+msgstr "Création des boutons"
 
-#: C/statusbar.js.page:105(p)
+#: 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 "
@@ -2047,8 +4706,15 @@ msgid ""
 "buttons,</link> which are automatically translated into any language GNOME "
 "supports."
 msgstr ""
+"Ce code génère les trois boutons <link href=\"button.js.page\">Gtk.Buttons</"
+"link> que nous utiliserons pour ajouter un nouveau message à la barre de "
+"statut, pour l'afficher et pour effacer tous les messages existants. Les "
+"boutons « Retour arrière » et « Suppr » sont des <link href=\"http://";
+"developer.gnome.org/gtk/2.24/gtk-Stock-Items.html\">boutons de la "
+"collection</link> qui sont automatiquement traduits dans toutes les langues "
+"prises en charge par GNOME."
 
-#: C/statusbar.js.page:123(p)
+#: C/statusbar.js.page:124(p)
 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 "
@@ -2057,20 +4723,27 @@ msgid ""
 "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 ""
+"Ce code génère la grille <link href=\"grid.js.page\">Gtk.Grid</link> que "
+"nous utiliserons pour organiser les boutons et les mettre dans le bon ordre. "
+"Il génère ensuite un cadre <link href=\"paned.js.page\">Gtk.Frame</link> "
+"qui occupe la majeure partie de la fenêtre et laisse beaucoup de marge "
+"autour des boutons, puis lui ajoute la grille. Il nous reste encore à placer "
+"le cadre dans le panneau interface et l'ajouter à l'ApplicationWindow."
 
-#: C/statusbar.js.page:127(title)
-#, fuzzy
-#| msgid "Creating the signal handler"
+#: C/statusbar.js.page:128(title)
 msgid "Creating the statusbar"
-msgstr "Création du gestionnaire de signal"
+msgstr "Création de la barre de statut"
 
-#: C/statusbar.js.page:144(p)
+#: C/statusbar.js.page:145(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."
 msgstr ""
+"Ici, nous créons la barre de statuts Gtk.Statusbar et lui ajoutons un "
+"message pour commencer. Puis, nous lui attribuons son propre cadre étroit au "
+"bas de la fenêtre."
 
-#: C/statusbar.js.page:145(p)
+#: 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 "
@@ -2080,25 +4753,38 @@ msgid ""
 "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 ""
+"Chaque message doit avoir un identifiant de contexte, une valeur entière qui "
+"peut vous être donnée par la fonction get_context_id(). Son seul paramètre "
+"est la valeur de la chaîne que vous utilisez pour décrire cet identifiant "
+"particulier. Normalement, il y a un identifiant différent selon le type de "
+"message, de façon à pouvoir utiliser la fonction remove() pour supprimer un "
+"message spécifique et non pas seulement le dernier au sommet de la pile. "
+"Voici un exemple simple avec un seul type de message, nous n'en utiliserons "
+"donc qu'un seul pour tout."
 
-#: C/statusbar.js.page:146(p)
+#: C/statusbar.js.page:147(p)
 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."
 msgstr ""
+"La fonction push(), ajoute un nouveau message au-dessus de la pile. Son "
+"premier paramètre est l'identifiant de contexte, et le second, le message."
 
-#: C/statusbar.js.page:159(p)
+#: C/statusbar.js.page:160(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."
 msgstr ""
+"Ce code se termine par la création de la fenêtre, le placement du cadre dans "
+"le panneau et l'ordre donné à la fenêtre d'afficher tous ses éléments "
+"graphiques enfants."
 
-#: C/statusbar.js.page:163(title)
+#: C/statusbar.js.page:164(title)
 msgid "Functions for interacting with the statusbar"
-msgstr ""
+msgstr "Fonctions interagissant avec la barre de statut"
 
-#: C/statusbar.js.page:204(p)
+#: C/statusbar.js.page:205(p)
 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 "
@@ -2107,89 +4793,104 @@ msgid ""
 "of. The remove_all() function works the same way, except it removes all "
 "messages of that type from the stack."
 msgstr ""
+"Voici des fonctions qui montrent comment ajouter un message à la pile, "
+"comment afficher celui qui se trouve au sommet et comment effacer tous les "
+"messages avec un identifiant de contexte particulier. La fonction pop() ne "
+"prend qu'un argument, l'identifiant de contexte du type de message le plus "
+"récent à afficher. La fonction remove_all() se comporte de la même façon, "
+"sauf qu'elle supprime de la pile tous les messages de ce type."
 
-#: C/statusbar.js.page:210(p)
+#: C/statusbar.js.page:211(p)
 msgid ""
 "Finally, we create a new instance of the finished StatusbarExample class, "
 "and set the application running."
 msgstr ""
+"Enfin, nous créons un nouvel exemple de la classe StatusbarExample terminée "
+"et nous démarrons l'application."
 
-#: C/statusbar.js.page:214(title) C/checkbutton.js.page:129(title)
-#, fuzzy
-#| msgid "Code samples"
-msgid "Complete code sample"
-msgstr "Exemples de code"
-
-#: C/statusbar.js.page:219(title) C/checkbutton.js.page:134(title)
-msgid "In-depth documentation"
-msgstr ""
+#: C/statusbar.js.page:225(link)
+msgid "Gtk.Frame"
+msgstr "Gtk.Frame"
 
-#: C/statusbar.js.page:222(link) C/spinner.js.page:30(link)
-#: C/progressbar.js.page:39(link) C/messagedialog.js.page:31(link)
-#: C/linkbutton.js.page:29(link) C/label.vala.page:30(link)
-#: C/label.js.page:29(link) C/GtkApplicationWindow.vala.page:30(link)
-#: C/GtkApplicationWindow.js.page:30(link) C/grid.py.page:32(link)
-#: C/grid.js.page:33(link) C/gmenu.vala.page:40(link) C/entry.js.page:29(link)
-#: C/dialog.js.page:29(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.ApplicationWindow"
-msgstr "Gtk.ApplicationWindow"
+#: C/statusbar.js.page:226(link)
+msgid "Gtk.Paned"
+msgstr "Gtk.Paned"
 
-#: C/statusbar.js.page:223(link) C/grid.js.page:34(link)
-#: C/button.js.page:31(link)
-msgid "Gtk.Button"
-msgstr "Gtk.Button"
+#. When image changes, this message 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.js.page:224(link)
+#: C/statusbar.c.page:7(title)
 #, fuzzy
-#| msgid "Gtk.Label"
-msgid "Gtk.Frame"
-msgstr "Gtk.Label"
+#| msgid "Statusbar"
+msgid "Statusbar (C)"
+msgstr "Barre de statut"
 
-#: C/statusbar.js.page:225(link)
-#, fuzzy
-#| msgid "Gtk.Label"
-msgid "Gtk.Paned"
-msgstr "Gtk.Label"
+#: C/statusbar.c.page:27(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."
+msgstr ""
+"Cette barre de statut sert à démontrer comment les messages sont empilés "
+"dans l'ordre « le dernier au-dessus ». Le message au sommet de la pile est "
+"toujours celui qui est affiché."
+
+#: 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 "Fonctions de chaînes utilitaires"
 
 #. When image changes, this message 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:20(None) C/spinner.py.page:20(None)
-#: C/spinner.js.page:20(None) C/spinner.c.page:22(None)
+#: 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:16(desc) C/spinner.py.page:16(desc)
-#: C/spinner.js.page:16(desc) C/spinner.c.page:17(desc)
+#: C/spinner.vala.page:7(title)
+#, fuzzy
+#| msgid "Spinner"
+msgid "Spinner (Vala)"
+msgstr "Indicateur d'activité"
+
+#: 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 "Un indicateur d'activité animé"
+msgstr "L'animation d'un indicateur d'activité"
 
-#: C/spinner.vala.page:19(title) C/spinner.py.page:19(title)
-#: C/spinner.js.page:19(title) C/spinner.c.page:20(title)
+#: 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 "Indicateur d'activité"
 
-#: C/spinner.vala.page:21(p) C/spinner.py.page:21(p) C/spinner.js.page:21(p)
-#: C/spinner.c.page:23(p)
+#: 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 ""
 "Cet indicateur d'activité s'arrête et démarre en appuyant sur la barre "
 "d'espace."
 
-#: C/spinner.vala.page:28(link)
+#: C/spinner.vala.page:29(link)
 msgid "Gtk.Widget"
 msgstr "Gtk.Widget"
 
-#: C/spinner.vala.page:29(link) C/spinner.js.page:31(link)
-msgid "Gtk.Spinner"
-msgstr "Gtk.Spinner"
-
-#: C/spinner.vala.page:30(link)
+#: C/spinner.vala.page:31(link)
 msgid "Gdk.keyval_name"
 msgstr "Gdk.keyval_name"
 
-#: C/spinner.py.page:30(p)
+#: C/spinner.py.page:7(title)
+#, fuzzy
+#| msgid "Strings in Python 2"
+msgid "Spinner (Python)"
+msgstr "Les chaînes dans Python 2"
+
+#: C/spinner.py.page:31(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 "
@@ -2197,221 +4898,1158 @@ msgid ""
 "gdk/gdkkeysyms.h\">here</link>,but for instance <code>GDK_KEY_BackSpace</"
 "code> becomes the string <code>\"BackSpace\"</code>."
 msgstr ""
+"La fonction <code>Gdk.keyval_name(event.keyval)</code> donne à la touche "
+"<code>event.keyval</code> un nom symbolique. Les noms avec leurs valeurs "
+"correspondantes se trouvent <link href=\"http://git.gnome.org/browse/gtk+/";
+"tree/gdk/gdkkeysyms.h\">ici</link>, mais par exemple, "
+"<code>GDK_KEY_BackSpace</code> devient la chaîne <code>« Retour arrière »</"
+"code>."
 
-#: C/spinner.py.page:40(link)
+#: C/spinner.py.page:41(link)
 msgid "Key Values"
-msgstr "Valeurs de touche"
+msgstr "Valeurs des touches"
+
+#: C/spinner.js.page:7(title)
+#, fuzzy
+#| msgid "JavaScript"
+msgid "Spinner (JavaScript)"
+msgstr "JavaScript"
 
-#: C/spinner.c.page:33(link)
+#: C/spinner.c.page:7(title)
+#, fuzzy
+#| msgid "Spinner"
+msgid "Spinner (C)"
+msgstr "Indicateur d'activité"
+
+#: C/spinner.c.page:34(link)
 msgid "GObject"
-msgstr ""
+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:22(None) C/spinbutton.py.page:21(None)
+#: 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:18(desc)
+#: C/spinbutton.vala.page:7(title)
 #, fuzzy
-#| msgid "Retrieve an integer or floating-point number from the user."
+#| msgid "SpinButton"
+msgid "SpinButton (Vala)"
+msgstr "SpinButton"
+
+#: C/spinbutton.vala.page:19(desc)
 msgid "Retrieve an integer or floating point number."
-msgstr "Renvoie un entier ou un nombre flottant."
+msgstr "Renvoie un entier ou un nombre à virgule flottante."
 
-#: C/spinbutton.vala.page:21(title) C/spinbutton.py.page:20(title)
+#: 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:23(p) C/spinbutton.py.page:22(p)
+#: 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 ""
 "Choisissez un nombre en le saisissant ou en cliquant sur les boutons -/+ !"
 
-#: C/spinbutton.vala.page:30(link)
-#, fuzzy
-#| msgid "GtkSpinButton"
+#: C/spinbutton.vala.page:31(link) C/spinbutton.js.page:205(link)
 msgid "Gtk.SpinButton"
-msgstr "GtkSpinButton"
+msgstr "Gtk.SpinButton"
+
+#: C/spinbutton.py.page:7(title)
+#, fuzzy
+#| msgid "SpinButton"
+msgid "SpinButton (Python)"
+msgstr "SpinButton"
 
-#: C/spinbutton.py.page:17(desc)
+#: C/spinbutton.py.page:18(desc)
 msgid "Retrieve an integer or floating-point number from the user."
-msgstr "Renvoie un entier ou un nombre flottant de l'utilisateur."
+msgstr "Renvoie un entier ou un nombre à virgule flottante de l'utilisateur."
+
+#: C/spinbutton.py.page:33(title)
+msgid "Useful methods for a SpinButton widget"
+msgstr "Méthodes utiles pour un élément graphique BoutonDactivité"
+
+#: C/spinbutton.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 spinbutton changes."
+msgstr ""
+"Pour de plus amples informations sur les signaux et les fonctions de rappel, "
+"consultez <link xref=\"signals-callbacks.py\">cette page</link>. Un exemple "
+"est le signal <code>\"value-changed\"</code>, émis quand la valeur du "
+"BoutonDactivité change."
+
+#: C/spinbutton.py.page:35(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>."
+msgstr ""
+"Il faut une valeur Gtk.Adjustment pour construire le Gtk.SpinButton. C'est "
+"la représentation d'une valeur avec une limite supérieure et une limite "
+"inférieure, avec des incréments d'étape et de page, avec une taille de page "
+"et elle se présente sous la forme <code>Gtk.Adjustment(valeur, inferieure, "
+"superieure, step_increment, page_increment, page_size)</code> où les champs "
+"sont du type <code>float</code> ; <code>step_increment</code> est "
+"l'incrément ou le décrément obtenu en agissant sur les touches du curseur ou "
+"sur les boutons du BoutonDactivité. Notez que les valeurs "
+"<code>page_increment</code> et <code>page_size</code> ne sont pas utilisés "
+"dans ce cas et qu'ils doivent être définis à <code>0</code>."
 
-#: C/spinbutton.py.page:29(link)
+#: C/spinbutton.py.page:37(p)
+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."
+msgstr ""
+"Si vous voulez que la valeur du BoutonDactivité aille à la ligne quand elle "
+"dépasse les limites supérieure ou inférieure, définissez la fonction "
+"<code>set_wrap(True)</code> sur vrai. Le signal <code>\"wrapped\"</code> est "
+"alors émis quand cela se produit."
+
+#: C/spinbutton.py.page:38(p)
+msgid ""
+"<code>set_digits(digits)</code> sets the precision to be displayed by the "
+"spinbutton, up to 20 digits."
+msgstr ""
+"La méthode <code>set_digits(caracteres)</code> définit la précision "
+"d'affichage du BoutonDactivité, jusqu'à 20 caractères."
+
+#: C/spinbutton.py.page:39(p)
+msgid ""
+"To get the value of the spinbutton as an integer, use <code>get_value_as_int"
+"()</code>."
+msgstr ""
+"Pour avoir la valeur du BoutonDactivité sous forme d'un nombre entier, "
+"utilisez <code>get_value_as_int()</code>."
+
+#: C/spinbutton.py.page:47(link) C/spinbutton.c.page:36(link)
 msgid "GtkSpinButton"
 msgstr "GtkSpinButton"
 
-#: C/spinbutton.py.page:30(link) C/scale.py.page:30(link)
+#: 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"
 
 #. When image changes, this message 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:22(None)
+#: C/spinbutton.js.page:24(None)
+msgid ""
+"@@image: 'media/spinbuttonkittens.png'; md5=577cce8a902140aacbab73fe8a76a010"
+msgstr ""
+"@@image: 'media/spinbuttonkittens.png'; md5=577cce8a902140aacbab73fe8a76a010"
+
+#: C/spinbutton.js.page:7(title)
+#, fuzzy
+#| msgid "SpinButton"
+msgid "SpinButton (JavaScript)"
+msgstr "SpinButton"
+
+#: C/spinbutton.js.page:20(desc)
+msgid "A number entry field that has + and - buttons"
+msgstr "Un champ de saisie de nombres avec des boutons + et -"
+
+#: C/spinbutton.js.page:25(p)
+msgid ""
+"A SpinButton is not related to a <link xref=\"spinner.js\">Spinner.</link> "
+"It's a text entry field which only accepts numbers, and which has plus and "
+"minus buttons to let you change the value without having to type anything in."
+msgstr ""
+"Un BoutonDactivité n'a rien à voir avec un <link xref=\"spinner.js"
+"\">indicateur d'activité</link>. C'est un champ de saisie de texte qui "
+"n'accepte que des nombres et qui possède des boutons plus et moins pour "
+"pouvoir en modifier la valeur sans rien saisir."
+
+#: 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 ""
+"Son utilisation est optimale quand il apparaît évident que seul un nombre "
+"peut y être saisi. Dans cet exemple, nous utilisons deux BoutonDactivités "
+"pour définir le nombre de chatons et le nombre de boîtes de thon à leur "
+"donner."
+
+#: C/spinbutton.js.page:68(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."
+msgstr ""
+"Tout le code de cet exemple va dans la classe SpinButtonExample. Le code ci-"
+"dessus crée une <link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/";
+"Gtk.Application.html\">Gtk.Application</link> pour nos éléments graphiques "
+"et la fenêtre qui les contient."
+
+#: C/spinbutton.js.page:84(title)
+msgid "Creating the SpinButtons"
+msgstr "Création des BoutonDactivités"
+
+#: C/spinbutton.js.page:91(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."
+msgstr ""
+"Utilisons la fonction new_with_range pour créer rapidement un nouveau "
+"BoutonDactivité. Son premier paramètre est la valeur de départ du "
+"BoutonDactivité, le second est la valeur maximale et le troisième est la "
+"valeur de l'incrément lorsque les boutons plus ou moins sont pressés."
+
+#: C/spinbutton.js.page:92(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."
+msgstr ""
+"Après avoir généré le premier BoutonDactivité, nous connectons son signal "
+"value-changed à une fonction qui gère ce qui se passe quand le nombre à "
+"l'intérieur d'un des deux BoutonDactivités change."
+
+#: 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."
+msgstr ""
+"Si vous souhaitez avoir un contrôle un peu plus fin sur un BoutonDactivité, "
+"ou si vous voulez créer beaucoup de BoutonDactivités qui utilisent tous les "
+"mêmes paramètres, vous pouvez créer un objet appelé <link href=\"http://www.";
+"roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.Adjustment.html\">Adjustment.</link> "
+"Vous pouvez ensuite l'utiliser comme une propriété d'ajustement pour un "
+"nouveau BoutonDactivité qui paramètre d'un seul coup toutes les valeurs. "
+"Vous pouvez aussi modifier tous les BoutonDactivités utilisant ce réglage en "
+"modifiant les propriétés de l'objet Adjustment."
+
+#: C/spinbutton.js.page:112(p)
+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."
+msgstr ""
+"Ici, les lignes placées en commentaires vous montrent des moyens de "
+"personnaliser votre BoutonDactivité. Vous pouvez, par exemple, définir le "
+"nombre de décimales après la virgule, ou lui indiquer qu'il doit aller à la "
+"ligne s'il dépasse les limites supérieures ou inférieures que vous avez "
+"définies."
+
+#: C/spinbutton.js.page:113(p)
+msgid ""
+"For the kitties' sake, please don't use set_digits to allow a decimal number "
+"of kittens."
+msgstr ""
+"Dans l'intérêt des chatons, il est préférable de ne pas autoriser set_digits "
+"à paramétrer un nombre décimal de chatons."
+
+#: C/spinbutton.js.page:117(title)
+msgid "Creating the rest of the UI"
+msgstr "Création du reste de l'interface utilisateur"
+
+#: C/spinbutton.js.page:128(p)
+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."
+msgstr ""
+"Créons chaque <link xref=\"label.js\">étiquette</link> individuellement et "
+"attachons-les ensemble avec les BoutonDactivités. La dernière étiquette doit "
+"afficher le nombre de boîtes de thon par chaton, elle comprend donc une "
+"variable au milieu qui correspond à une équation qui utilise les fonctions "
+"get_value des BoutonDactivités pour trouver à quelles valeurs ils sont "
+"définis. On utilise une méthode mathématique de base en JavaScript pour "
+"arrondir le nombre de boîtes de thon par chaton à l'entier le plus proche."
+
+#: C/spinbutton.js.page:154(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."
+msgstr ""
+"Ici, nous utilisons des éléments graphiques <link xref=\"grid.js\">grille</"
+"link> pour tout ranger. Une grille maintient les étiquettes et les "
+"BoutonDactivités dans l'ordre pendant que l'autre affiche la première grille "
+"en haut et la dernière étiquette en bas."
+
+#: C/spinbutton.js.page:155(p)
+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."
+msgstr ""
+"Il n'y a pas de mauvaise façon de ranger les éléments dans les grilles, à "
+"partir du moment où cela vous convient. Dans notre cas, la grille du haut "
+"comporte une marge en bas pour la séparer de l'étiquette qui se trouve au-"
+"dessous et qui est dans une grille indépendante centrée par rapport aux "
+"étiquettes et BoutonDactivités du haut."
+
+#: C/spinbutton.js.page:169(title)
+msgid "Function which handles the SpinButtons' numerical values being adjusted"
+msgstr ""
+"Fonction prenant en charge les valeurs numériques des BoutonDactivités en "
+"cours de réglage"
+
+#: C/spinbutton.js.page:182(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."
+msgstr ""
+"Ici, nous mettons à jour la variable parchaton en fonction des nouvelles "
+"valeurs des BoutonDactivités et utilisons les propriétés de set_label pour "
+"actualiser ce qu'affiche _lastLabel. Comme les deux BoutonDactivités ont "
+"leur signal value-changed connecté à cette fonction, celle-ci met à jour "
+"l'étiquette à chaque fois qu'un des nombres change."
+
+#: C/spinbutton.js.page:189(p)
+msgid ""
+"Finally, we create a new instance of the finished SpinButtonExample class, "
+"and set the application running."
+msgstr ""
+"Enfin, nous créons un nouvel exemple de la classe SpinButtonExample et "
+"démarrons l'application."
+
+#: 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)
+#, fuzzy
+#| msgid "SpinButton"
+msgid "SpinButton (C)"
+msgstr "SpinButton"
+
+#: C/spinbutton.c.page:20(desc)
+msgid "Retrieve an integer or floating point number"
+msgstr "Renvoie un entier ou un nombre à virgule flottante"
+
+#: C/signals-callbacks.py.page:8(title)
+#, fuzzy
+#| msgid "Signals and callbacks"
+msgid "Signals and callbacks (Python)"
+msgstr "Signaux et rappels"
+
+#: C/signals-callbacks.py.page:12(desc)
+msgid "An explanation of signals and callbacks in GTK+."
+msgstr "Une explication des signaux et rappels dans GTK+."
+
+#: C/signals-callbacks.py.page:25(title)
+msgid "Signals and callbacks"
+msgstr "Signaux et rappels"
+
+#: C/signals-callbacks.py.page:30(title) C/properties.py.page:30(title)
+#: C/model-view-controller.py.page:30(title)
+msgid "Overview"
+msgstr "Présentation"
+
+#: C/signals-callbacks.py.page:32(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+."
+msgstr ""
+"Comme la plupart des boîtes à outils d'interfaces utilisateurs, GTK+ utilise "
+"un modèle de programmation événementiel. Lorsque l'utilisateur ne fait rien, "
+"GTK+ attend qu'une entrée se fasse dans la boucle principale. Dès que "
+"l'utilisateur fait quelque chose (disons un clic de souris), alors la boucle "
+"principale « se réveille » et fournit un événement à GTK+."
+
+#: C/signals-callbacks.py.page:34(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."
+msgstr ""
+"Lorsque les éléments graphiques reçoivent un événement, il émettent la "
+"plupart du temps un ou plusieurs signaux. Ces signaux indiquent à votre "
+"programme que « quelque chose d'intéressant vient de se passer » en "
+"exécutant les fonctions que vous leur avez connecté. Lorsque vos rappels "
+"sont exécutés, vous agissez normalement en conséquence. Après la fin d'un "
+"rappel, GTK+ retourne dans la boucle principale et attend d'autres "
+"événements."
+
+#: 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 ""
+"Voici un exemple générique : <code>handler_id = widget.connect(evenement, "
+"rappel, donnees)</code>. <code>widget</code> est un exemple d'élément "
+"graphique que nous avons créé un peu plus tôt. Puis vient l'<code>evenement</"
+"code> qui nous intéresse. Chaque élément graphique possède ses propres "
+"événements pouvant arriver. Par exemple, si vous connectez un Gtk.Button à "
+"l'événement « cliqué » : chaque fois que ce bouton est cliqué, le signal est "
+"émis. Un autre exemple avec le signal <code>notify::property</code> : chaque "
+"fois qu'une <link xref=\"properties.py\">propriété</link> d'un GObject est "
+"modifiée, GObject associe comme détail à l'émission de ce signal, le nom de "
+"la propriété modifiée au lieu de seulement émettre le signal <code>notify</"
+"code>. Cela permet aux clients qui ne veulent être informés des "
+"modifications que d'une seule propriété de filtrer la plupart des événements "
+"avant de les recevoir. Troisièmement, l'argument de rappel est le nom de la "
+"fonction de rappel, qui contient le code en cours d'exécution quand les "
+"signaux de ce type spécifique sont émis. Enfin, l'argument optionnel de "
+"données inclut toute donnée devant être passée quand le signal est émis."
+
+#: C/signals-callbacks.py.page:38(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 ""
+"La fonction renvoie un nombre (le <code>handler_id</code>) qui identifie "
+"cette paire particulière de signal-rappel. Ce nombre est nécessaire pour se "
+"déconnecter d'un signal de façon à ce que la fonction de rappel ne soit plus "
+"appelée, ni par la suite, ni pendant les émissions du signal à laquelle elle "
+"est actuellement connectée, comme dans <code>widget.disconnect(handler_id)</"
+"code>."
+
+#: C/signals-callbacks.py.page:45(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\";>Les "
+"signaux</link> dans la documentation GObject"
+
+#: C/signals-callbacks.py.page:46(p)
+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"
+msgstr ""
+"<link href=\"http://python-gtk-3-tutorial.readthedocs.org/en/latest/basics.";
+"html\">Les bases - Boucle principale et signaux</link> dans le tutoriel "
+"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/set-up-gedit.js.page:24(None)
+msgid "@@image: 'media/geditview.png'; md5=f1438295662d95f56fcd1d8200efaaf2"
+msgstr "@@image: 'media/geditview.png'; md5=f1438295662d95f56fcd1d8200efaaf2"
+
+#. When image changes, this message 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/set-up-gedit.js.page:18(title)
+msgid "Set up gedit for JavaScript development"
+msgstr "Configuration de gedit pour le développement en JavaScript"
+
+#: C/set-up-gedit.js.page:19(p)
+msgid ""
+"This tutorial will show you how to set up <link href=\"http://projects.gnome.";
+"org/gedit/\">gedit,</link> GNOME's basic text editor, so that it has a "
+"handful of extra features which are useful for writing JavaScript code."
+msgstr ""
+"Ce tutoriel va vous montrer comment configurer <link href=\"http://projects.";
+"gnome.org/gedit/\">gedit,</link> l'éditeur de texte de base dans GNOME, pour "
+"qu'il intègre les fonctions optionnelles nécessaires à la programmation en "
+"JavaScript."
+
+#: C/set-up-gedit.js.page:22(title)
+msgid "Making code clearer"
+msgstr "Clarification du code"
+
+#: C/set-up-gedit.js.page:23(p)
+msgid ""
+"Click on <gui>Edit</gui> in gedit's menu bar, then click on <gui>Preferences."
+"</gui> You should see something like this:"
+msgstr ""
+"Dans l'onglet <gui>Édition</gui> de la barre de menu de gedit, cliquez sur "
+"<gui>Préférences</gui>. La boîte de dialogue suivante s'affiche :"
+
+#: C/set-up-gedit.js.page:25(p)
+msgid "Here are the options you want to make sure are turned on."
+msgstr "Voici les options à activer."
+
+#: 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."
+msgstr ""
+"<gui>Afficher les numéros de ligne</gui> va vous aider à comparer votre code "
+"avec l'original et trouver plus facilement la ligne qui provoque une erreur "
+"s'il y a un bogue."
+
+#: 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>Surligner la ligne actuelle</gui> vous permet de retrouver plus "
+"facilement votre ligne active quand vous vous déplacez souvent."
+
+#: 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>Surligner les parenthèses correspondantes</gui> vous permet de penser à "
+"refermer la parenthèse."
+
+#: C/set-up-gedit.js.page:34(title)
+msgid "Making editing easier"
+msgstr "Faciliter l'édition"
+
+#: C/set-up-gedit.js.page:35(p)
+msgid ""
+"In gedit's <gui>Preferences</gui> dialog, click on the <gui>Editor</gui> "
+"tab. You should see something like this:"
+msgstr ""
+"Dans les <gui>Préférences</gui> de gedit, ouvrez l'onglet <gui>Éditeur</"
+"gui>. Cette boîte de dialogue s'affiche :"
+
+#: C/set-up-gedit.js.page:37(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 ""
+"Cochez la case <gui>Activer l'indentation automatique</gui>. Cela oblige le "
+"curseur à rester sur le même indent qu'à la ligne précédente lorsque vous "
+"pressez sur la touche <key>Entrée</key>. Cela est très important en "
+"JavaScript car ce langage utilise l'indentation pour clarifier les fonctions "
+"de chaque partie du programme."
+
+#: C/set-up-gedit.js.page:38(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>"
+msgstr ""
+"Pour pouvoir partager votre code avec d'autres personnes programmant des "
+"applications GNOME en JavaScript, réglez la <gui>Largeur des tabulations</"
+"gui> sur 4 et cochez la case <gui>Insérer des espaces au lieu de "
+"tabulations</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:17(desc)
+#: C/separator.py.page:7(title)
+msgid "Seperator (Python)"
+msgstr ""
+
+#: C/separator.py.page:18(desc)
 msgid "A separator widget"
 msgstr "Un élément graphique séparateur"
 
-#: C/separator.py.page:20(title)
+#: C/separator.py.page:21(title)
 msgid "Separator"
 msgstr "Séparateur"
 
-#: C/separator.py.page:23(p)
-msgid "A horizontal and a vertical separator."
-msgstr "Un séparateur horizontal et vertical."
+#: C/separator.py.page:24(p)
+msgid "A horizontal and a vertical separator divide some labels."
+msgstr "Un séparateur horizontal et un vertical séparent quelques étiquettes."
 
-#: C/separator.py.page:32(link)
+#: C/separator.py.page:34(title)
+msgid "API Reference"
+msgstr "Référence API"
+
+#: C/separator.py.page:38(link)
 msgid "GtkSeparator"
 msgstr "GtkSeparator"
 
 #. When image changes, this message will be marked fuzzy or untranslated for you.
 #. It doesn't matter what you translate it to: it's not used at all.
-#: C/scrolledwindow.vala.page:21(None) C/scrolledwindow.py.page:20(None)
+#: C/scrolledwindow.vala.page:22(None) C/scrolledwindow.py.page:21(None)
 msgid ""
 "@@image: 'media/scrolledwindow.png'; md5=697bb3205d5c4fb0b4ea8db435843157"
 msgstr ""
 "@@image: 'media/scrolledwindow.png'; md5=697bb3205d5c4fb0b4ea8db435843157"
 
-#: C/scrolledwindow.vala.page:17(desc) C/scrolledwindow.py.page:16(desc)
+#: C/scrolledwindow.vala.page:7(title)
+#, fuzzy
+#| msgid "ScrolledWindow"
+msgid "ScrolledWindow (Vala)"
+msgstr "ScrolledWindow"
+
+#: C/scrolledwindow.vala.page:18(desc) C/scrolledwindow.py.page:17(desc)
 msgid "Adds scrollbars to its child widget"
 msgstr "Ajoute des barres de défilement à son élément graphique enfant"
 
-#: C/scrolledwindow.vala.page:20(title) C/scrolledwindow.py.page:19(title)
+#: C/scrolledwindow.vala.page:21(title) C/scrolledwindow.py.page:20(title)
 msgid "ScrolledWindow"
 msgstr "ScrolledWindow"
 
-#: C/scrolledwindow.vala.page:22(p) C/scrolledwindow.py.page:21(p)
+#: C/scrolledwindow.vala.page:23(p) C/scrolledwindow.py.page:22(p)
 msgid "An image in a scrolled window."
 msgstr "Une image dans une fenêtre avec barres de défilement."
 
-#: C/scrolledwindow.py.page:30(link) C/image.vala.page:32(link)
-#: C/image.py.page:99(link) C/image.c.page:33(link)
+#: C/scrolledwindow.py.page:7(title)
+#, fuzzy
+#| msgid "ScrolledWindow"
+msgid "ScrolledWindow (Python)"
+msgstr "ScrolledWindow"
+
+#: C/scrolledwindow.py.page:31(title)
+msgid "Useful methods for a ScrolledWindow widget"
+msgstr "Méthodes utiles pour un élément graphique ScrolledWindow"
+
+#: C/scrolledwindow.py.page:33(p)
+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."
+msgstr ""
+"La méthode <code>set_policy(hscrollbar_policy, vscrollbar_policy)</code>, où "
+"chaque argument est l'un des <code>Gtk.Policy.AUTOMATIC, Gtk.Policy.ALWAYS, "
+"Gtk.Policy.NEVER</code>, définit laquelle des barres de défilement verticale "
+"ou horizontale doit s'afficher. <code>AUTOMATIC</code> les affiche seulement "
+"si nécessaire, <code>ALWAYS</code> et <code>NEVER</code> les affichent "
+"respectivement toujours ou jamais."
+
+#: C/scrolledwindow.py.page:34(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."
+msgstr ""
+"La méthode <code>add_with_viewport(widget)</code> est utilisé pour ajouter "
+"l'élément graphique Gtk.Widget <code>widget</code>, sans possibilité de "
+"défilement à l'intérieur de la fenêtre."
+
+#: C/scrolledwindow.py.page:35(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>."
+msgstr ""
+"La méthode <code>set_placement(window_placement)</code> organise le cadrage "
+"du contenu de la fenêtre en fonction de ses barres de défilement. Les "
+"options possibles des arguments sont : <code>Gtk.CornerType.TOP_LEFT</code> "
+"(par défaut, les barres de défilement sont en bas et à droite de la "
+"fenêtre), <code>Gtk.CornerType.TOP_RIGHT, Gtk.CornerType.BOTTOM_LEFT, Gtk."
+"CornerType.BOTTOM_RIGHT</code>."
+
+#: C/scrolledwindow.py.page:36(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 ""
+"Les méthodes <code>set_hadjustment(ajustement)</code> et "
+"<code>set_vadjustment(ajustement)</code> définissent l'<code>ajustement</"
+"code> Gtk.Adjustment. C'est la représentation d'une valeur avec une limite "
+"inférieure et supérieure, des incréments d'étape et de page, d'une taille de "
+"page et est construite sous la forme <code>Gtk.Adjustment(valeur, "
+"inferieure, superieure, step_increment, page_increment, page_size)</code> où "
+"les champs sont du type <code>float</code>. (Notez que <code>step_increment</"
+"code> n'est pas utilisé dans notre exemple et qu'il peut être défini à "
+"<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"
 
 #. When image changes, this message 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:22(None) C/scale.py.page:21(None)
+#: 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/scale.vala.page:18(desc) C/scale.py.page:17(desc)
+#: C/scale.vala.page:7(title)
+#, fuzzy
+#| msgid "Sample Vala code"
+msgid "Scale (Vala)"
+msgstr "Exemple de code Vala"
+
+#: C/scale.vala.page:19(desc) C/scale.py.page:18(desc) C/scale.c.page:19(desc)
 msgid "A slider widget for selecting a value from a range"
 msgstr ""
-"Un élément graphique « glissière » pour choisir une valeur dans un intervalle"
+"Un élément graphique glissière pour choisir une valeur dans un intervalle"
 
-#: C/scale.vala.page:21(title) C/scale.py.page:20(title)
+#: 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 "Échelle"
 
-#: C/scale.vala.page:23(p) C/scale.py.page:22(p)
+#: C/scale.vala.page:24(p) C/scale.py.page:23(p) C/scale.c.page:25(p)
 msgid "Slide the scales!"
 msgstr "Faites glisser les échelles !"
 
-#: C/scale.vala.page:30(link)
-#, fuzzy
-#| msgid "GtkScale"
+#: C/scale.vala.page:31(link) C/scale.js.page:214(link)
 msgid "Gtk.Scale"
-msgstr "GtkScale"
+msgstr "Gtk.Scale"
 
-#: C/scale.vala.page:31(link)
-#, fuzzy
-#| msgid "GtkAdjustment"
-msgid "Gtk.Adjustment"
-msgstr "GtkAdjustment"
-
-#: C/scale.vala.page:32(link)
-#, fuzzy
-#| msgid "Gtk.ButtonsType"
+#: C/scale.vala.page:33(link)
 msgid "Gtk.PositionType"
-msgstr "Gtk.ButtonsType"
+msgstr "Gtk.PositionType"
 
-#: C/scale.vala.page:33(link)
-#, fuzzy
-#| msgid "Gtk.LinkButton"
+#: C/scale.vala.page:34(link)
 msgid "Gtk.Orientation"
-msgstr "Gtk.LinkButton"
+msgstr "Gtk.Orientation"
+
+#: C/scale.py.page:7(title)
+#, fuzzy
+#| msgid "Python"
+msgid "Scale (Python)"
+msgstr "Python"
+
+#: C/scale.py.page:33(title)
+msgid "Useful methods for a Scale widget"
+msgstr "Méthodes utiles pour un élément graphique échelle"
+
+#: 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."
+msgstr ""
+"Pour de plus amples informations sur les signaux et les fonctions de rappel, "
+"consultez <link xref=\"signals-callbacks.py\">cette page</link>. Un exemple "
+"est le signal <code>\"value-changed\"</code> qui est émis quand la valeur de "
+"l'échelle est modifiée."
+
+#: 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 ""
+"Pour construire une échelle Gtk.Scale, il faut un Gtk.Adjustment. C'est la "
+"représentation d'une valeur avec une limite inférieure et supérieure, des "
+"incréments d'étape et de page, d'une taille de page et est construite sous "
+"la forme <code>Gtk.Adjustment(valeur, inferieure, superieure, "
+"step_increment, page_increment, page_size)</code>, où les champs sont du "
+"type flottant <code>float</code> ; <code>step_increment</code> est "
+"l'incrément ou décrément obtenu par l'utilisation des touches fléchées et "
+"<code>page_increment</code> est celui obtenu en cliquant sur l'échelle elle-"
+"même. Notez que la taille <code>page_size</code> n'est pas utilisée dans "
+"notre exemple et que sa valeur doit être définie à <code>0</code>."
+
+#: C/scale.py.page:37(p)
+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."
+msgstr ""
+"La méthode <code>get_value()</code> récupère la valeur actuelle de "
+"l'échelle ; <code>set_value(valeur)</code> la définit (si la <code>valeur</"
+"code>, du type <code>float</code>, est en dehors des limites inférieure ou "
+"supérieure, elle sera rétrécie pour tenir à l'intérieur). Ce sont les "
+"méthodes de la classe Gtk.Range."
+
+#: C/scale.py.page:38(p)
+msgid ""
+"Use <code>set_draw_value(False)</code> to avoid displaying the current value "
+"as a string next to the slider."
+msgstr ""
+"Utilisez <code>set_draw_value(faux)</code> pour éviter d'afficher la valeur "
+"actuelle sous forme d'une chaîne à côté de la glissière."
+
+#: C/scale.py.page:39(p)
+msgid ""
+"To highlight the part of the scale between the origin and the current value:"
+msgstr ""
+"Pour surligner la partie d'échelle située entre l'origine et la valeur "
+"actuelle :"
+
+#: C/scale.py.page:40(code)
+#, no-wrap
+msgid ""
+"\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 ""
+"\n"
+"self.h_scale.set_restrict_to_fill_level(faux)\n"
+"self.h_scale.set_fill_level(self.h_scale.get_value())\n"
+"self.h_scale.set_show_fill_level(vrai)"
+
+#: C/scale.py.page:44(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."
+msgstr ""
+"dans la fonction de rappel du signal « value-changed », pour avoir le "
+"nouveau remplissage chaque fois que la valeur est modifiée. Ce sont les "
+"méthodes de la classe Gtk.Range."
 
-#: C/scale.py.page:29(link)
+#: 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 ""
+"La méthode <code>add_mark(valeur, position, marqueur)</code> ajoute un "
+"marqueur à la <code>valeur</code> (<code>float</code> ou <code>int</code> "
+"selon la précision de l'échelle) dans <code>position</code> (<code>Gtk."
+"PositionType.LEFT, Gtk.PositionType.RIGHT, Gtk.PositionType.TOP, Gtk."
+"PositionType.BOTTOM</code>) avec le texte <code>Null</code> ou "
+"<code>marqueur</code> en langage Pango Markup. La fonction <code>clear_marks"
+"()</code> supprime les marqueurs."
+
+#: C/scale.py.page:47(p)
+msgid ""
+"<code>set_digits(digits)</code> sets the precision of the scale at "
+"<code>digits</code> digits."
+msgstr ""
+"La méthode <code>set_digits(digits)</code> définit la précision de l'échelle "
+"aux caractères <code>digits</code>."
+
+#: C/scale.py.page:55(link) C/scale.c.page:35(link)
 msgid "GtkScale"
 msgstr "GtkScale"
 
 #. When image changes, this message 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:63(None)
+#: C/scale.js.page:21(None)
+msgid ""
+"@@image: 'media/scalepenguins.png'; md5=2dbe6a833fec86fde71a5ddb421e2cd5"
+msgstr ""
+"@@image: 'media/scalepenguins.png'; md5=2dbe6a833fec86fde71a5ddb421e2cd5"
+
+#: C/scale.js.page:7(title)
+#, fuzzy
+#| msgid "JavaScript"
+msgid "Scale (JavaScript)"
+msgstr "JavaScript"
+
+#: C/scale.js.page:17(desc)
+msgid "A slider which corresponds to a numerical value"
+msgstr "Une glissière qui correspond à une valeur numérique"
+
+#: C/scale.js.page:22(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."
+msgstr ""
+"Une échelle est une glissière horizontale ou verticale représentant une "
+"valeur comprise dans une fourchette numérique. Pour créer une échelle, vous "
+"devez définir sa position par défaut, son étendue numérique et le pas auquel "
+"elle avance ou recule. Au lieu d'être obligé de tout recommencer à chaque "
+"fois que vous créez une nouvelle échelle, vous pouvez inclure toutes ces "
+"données dans un objet nommé Adjustment et qui garde en mémoire tous les "
+"paramètres. Ensuite, à chaque création d'une nouvelle échelle, il suffit de "
+"lui indiquer de prendre ces réglages."
+
+#: C/scale.js.page:23(p)
+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."
+msgstr ""
+"Cette échelle est un simple élément graphique permettant d'ajuster la taille "
+"d'un iceberg sur lequel vivent des pingouins. Le nombre de pingouins sur "
+"l'iceberg est le produit des valeurs des deux glissières. Faites des essais "
+"en modifiant les valeurs et observez le résultat."
+
+#: C/scale.js.page:65(p)
+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."
+msgstr ""
+"Tout le code de cet exemple va dans la classe ScaleExemple. Le code ci-"
+"dessus crée une <link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/";
+"Gtk.Application.html\">Gtk.Application</link> pour nos éléments graphiques "
+"et la fenêtre qui les contient."
+
+#: C/scale.js.page:81(title)
+msgid "Creating the scales"
+msgstr "Création des échelles"
+
+#: C/scale.js.page:91(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."
+msgstr ""
+"La méthode new_with_range est l'un des moyens pour créer un nouvel élément "
+"graphique échelle. Les paramètres qu'elle utilise sont <link href=\"http://";
+"www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.Orientation.html\">Gtk."
+"Orientation</link>, la valeur minimum et l'incrément pour une seule "
+"graduation. Ensuite, nous utilisons les méthodes de l'échelle pour définir "
+"sa valeur de départ et en combien de fractions décimales la diviser. Dans ce "
+"cas, il nous faut aussi définir son alignement vertical pour la placer dans "
+"la fenêtre."
+
+#: C/scale.js.page:92(p)
+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."
+msgstr ""
+"Nous pouvons aussi lui indiquer s'il faut afficher ou non le nombre à côté "
+"de la glissière avec la méthode set_draw_value. Les explications se trouvent "
+"dans cet exemple."
+
+#: C/scale.js.page:104(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."
+msgstr ""
+"Un Adjustment est un objet permettant de simplifier la procédure de création "
+"d'une nouvelle échelle. La propriété « valeur » de l'Adjustment est la "
+"valeur par défaut de l'échelle alors que les valeurs « superieure » et "
+"« inferieure » en représentent le début et la fin. Entre les deux, les "
+"valeurs de l'incrément définissent le pas auquel l'échelle se déplace "
+"lorsque vous cliquez dessus."
+
+#: C/scale.js.page:116(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."
+msgstr ""
+"Ici, nous créons un nouvel objet échelle en utilisant _adjustment comme "
+"étant sa propriété d'« ajustement ». Cela est un raccourci important. "
+"Cependant, il nous faut encore lui indiquer comment arrondir les décimales. "
+"Notez que nous y expliquons aussi la propriété draw_value : comment lui "
+"indiquer de ne pas afficher le nombre à côté de l'échelle lorsque vous "
+"décidez cette façon de faire."
+
+#: C/scale.js.page:132(p)
+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."
+msgstr ""
+"La méthode get_value permet de trouver la valeur numérique à laquelle une "
+"échelle est définie. Ensuite, nous pouvons en faire ce que nous voulons, y "
+"compris multiplier les valeurs des deux échelles et obtenir une <link xref="
+"\"label.js\">étiquette</link> affichant le produit. Paramétrons le texte "
+"avec retour à la ligne, car nous avons aussi un message stupide à afficher."
+
+#: C/scale.js.page:133(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."
+msgstr ""
+"Ensuite, connectons les deux signaux « value-changed » à la fonction "
+"_recalc, qui recalcule le nombre de pingouins sur l'iceberg et affiche un "
+"nouveau message."
+
+#: C/scale.js.page:148(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 ""
+"Ici, nous créons une <link xref=\"grid.js\">grille</link> pour tout y mettre "
+"et nous lui lions tous nos éléments graphiques. Notez que cette fois (et "
+"pour quelques éléments graphiques) nous utilisons des marges pour espacer "
+"proprement les éléments."
+
+#: C/scale.js.page:157(p)
+msgid ""
+"Finally, we add the Grid to the window, then tell the window to show itself "
+"and all the widgets inside of it."
+msgstr ""
+"Enfin, nous ajoutons la grille à la fenêtre et indiquons à celle-ci de "
+"s'afficher toute seule avec tout son contenu."
+
+#: C/scale.js.page:161(title)
+msgid "Function which handles the scales' values changing"
+msgstr "Fonction prenant en charge les modifications de valeurs de l'échelle"
+
+#: C/scale.js.page:191(p)
+msgid ""
+"Remember, we can get a Scale's value using its get_value method. Here we "
+"simply recalculate what the product of the two values is after one of the "
+"Scales is moved, add in a silly message depending on how many penguins are "
+"left, and change the wording on _label to show the new number and message."
+msgstr ""
+"Souvenez-vous, nous pouvons obtenir la valeur d'une échelle avec la méthode "
+"get_value. Ici, nous ne faisons que recalculer le produit des deux valeurs "
+"après qu'une des deux échelles a bougé, ajouter un message stupide en "
+"fonction du nombre de pingouins restant et modifier le texte de l'étiquette "
+"avec le nouveau nombre et le message."
+
+#: C/scale.js.page:198(p)
+msgid ""
+"Finally, we create a new instance of the finished ScaleExample class, and "
+"set the application running."
+msgstr ""
+"Enfin, nous créons un nouvel exemple de la classe ScaleExemple et démarrons "
+"l'application."
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/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)
+#, fuzzy
+#| msgid "Scale"
+msgid "Scale (C)"
+msgstr "Échelle"
+
+#: C/scale.c.page:36(link)
+msgid "GtkRange"
+msgstr "GtkRange"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/record-collection.js.page:64(None)
 msgid ""
 "@@image: 'media/record-collection.png'; md5=2d645997687ed5aacd36aafafc16e072"
 msgstr ""
 "@@image: 'media/record-collection.png'; md5=2d645997687ed5aacd36aafafc16e072"
 
-#: C/record-collection.js.page:9(desc)
+#: C/record-collection.js.page:7(title)
+#, fuzzy
+#| msgid "3 Record Collection"
+msgid "Record Collection (JavaScript)"
+msgstr "3 Discothèque"
+
+#: C/record-collection.js.page:10(desc)
 msgid "Create a small database application for ordering your music collection"
 msgstr "Création d'une petite base de données pour trier votre discothèque"
 
-#: C/record-collection.js.page:13(name) C/image-viewer.vala.page:13(name)
-#: C/image-viewer.cpp.page:12(name) C/image-viewer.c.page:13(name)
-#: C/guitar-tuner.vala.page:13(name) C/guitar-tuner.py.page:13(name)
-#: C/guitar-tuner.cpp.page:12(name) C/guitar-tuner.c.page:13(name)
+#: 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 "Projet de Documentation GNOME"
 
-#: C/record-collection.js.page:14(email) C/index.page:8(email)
-#: C/image-viewer.vala.page:14(email) C/image-viewer.cpp.page:13(email)
-#: C/image-viewer.c.page:14(email) C/guitar-tuner.vala.page:14(email)
-#: C/guitar-tuner.py.page:14(email) C/guitar-tuner.cpp.page:13(email)
-#: C/guitar-tuner.c.page:14(email) C/getting-ready.page:12(email)
+#: 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:17(name) C/photo-wall.c.page:16(name)
-#: C/magic-mirror.vala.page:17(name) C/index.page:17(name)
-#: C/image-viewer.vala.page:17(name) C/image-viewer.py.page:18(name)
+#: 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:17(name) C/guitar-tuner.vala.page:17(name)
-#: C/guitar-tuner.py.page:17(name) C/guitar-tuner.cpp.page:16(name)
-#: C/guitar-tuner.c.page:17(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:18(email) C/photo-wall.c.page:17(email)
-#: C/magic-mirror.vala.page:18(email) C/index.page:18(email)
-#: C/image-viewer.vala.page:18(email) C/image-viewer.py.page:19(email)
+#: 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:18(email) C/guitar-tuner.vala.page:18(email)
-#: C/guitar-tuner.py.page:18(email) C/guitar-tuner.cpp.page:17(email)
-#: C/guitar-tuner.c.page:18(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:22(title)
+#: C/record-collection.js.page:23(title)
 msgid "3 Record Collection"
 msgstr "3 Discothèque"
 
-#: C/record-collection.js.page:25(p) C/message-board.c.page:24(p)
-#: C/image-viewer.cpp.page:24(p) C/image-viewer.c.page:25(p)
+#: 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 "Dans ce tutoriel, vous allez apprendre :"
 
-#: C/record-collection.js.page:27(p)
+#: C/record-collection.js.page:28(p)
 msgid "How to connect to a database using libgda"
 msgstr "comment vous connecter à une base de données en utilisant « libgda »"
 
-#: C/record-collection.js.page:28(p)
+#: C/record-collection.js.page:29(p)
 msgid "How to insert and browse records in a database table"
 msgstr ""
 "comment insérer et parcourir des enregistrements dans une table de base de "
 "données"
 
-#: C/record-collection.js.page:33(title) C/photo-wall.c.page:35(title)
+#: C/record-collection.js.page:34(title) C/photo-wall.c.page:36(title)
 msgid "Introduction"
 msgstr "Introduction"
 
-#: C/record-collection.js.page:34(p)
+#: C/record-collection.js.page:35(p)
 msgid ""
 "This demo uses the Javascript language. We are going to demonstrate how to "
 "connect and use a database from a GTK program, by using the GDA (GNOME Data "
@@ -2422,7 +6060,7 @@ msgstr ""
 "GTK en utilisant la bibliothèque GDA (GNOME Data Access). Vous devez bien "
 "sûr avoir déjà installé cette dernière."
 
-#: C/record-collection.js.page:37(p)
+#: C/record-collection.js.page:38(p)
 msgid ""
 "GNOME Data Access (GDA) is library whose purpose is to provide universal "
 "access to different kinds and types of data sources. This goes from "
@@ -2439,7 +6077,7 @@ msgstr ""
 "complète, consultez le <link href=\"http://library.gnome.org/devel/libgda/";
 "stable/\">Site Web de GDA</link>."
 
-#: C/record-collection.js.page:40(p)
+#: C/record-collection.js.page:41(p)
 msgid ""
 "Although a big part of the code is related to user interface (GUI), we are "
 "going to focus our tutorial on the database parts (we might mention other "
@@ -2454,21 +6092,21 @@ msgstr ""
 "programmes GNOME en Javascript, consultez le tutoriel <link xref=\"image-"
 "viewer.js\">Programme visionneur d'images</link>."
 
-#: C/record-collection.js.page:46(title) C/photo-wall.c.page:45(title)
-#: C/message-board.c.page:41(title) C/magic-mirror.vala.page:43(title)
-#: C/image-viewer.vala.page:50(title) C/image-viewer.py.page:44(title)
+#: 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:35(title) C/guitar-tuner.py.page:41(title)
-#: C/guitar-tuner.cpp.page:40(title) C/guitar-tuner.c.page:41(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 "Création d'un projet dans Anjuta"
 
-#: C/record-collection.js.page:47(p) C/photo-wall.c.page:46(p)
-#: C/magic-mirror.vala.page:44(p) C/image-viewer.vala.page:51(p)
+#: 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:36(p)
-#: C/guitar-tuner.vala.page:46(p) C/guitar-tuner.py.page:42(p)
-#: C/guitar-tuner.cpp.page:41(p) C/guitar-tuner.c.page:42(p)
+#: C/image-viewer.cpp.page:35(p) C/image-viewer.c.page:37(p)
+#: C/guitar-tuner.vala.page:46(p) C/guitar-tuner.py.page:43(p)
+#: C/guitar-tuner.cpp.page:41(p) C/guitar-tuner.c.page:43(p)
 msgid ""
 "Before you start coding, you'll need to set up a new project in Anjuta. This "
 "will create all of the files you need to build and run the code later on. "
@@ -2479,11 +6117,11 @@ msgstr ""
 "construire et exécuter votre programme plus tard. C'est aussi utile pour "
 "tout regrouper en un seul endroit."
 
-#: C/record-collection.js.page:50(p) C/photo-wall.c.page:49(p)
-#: C/magic-mirror.vala.page:47(p) C/image-viewer.py.page:48(p)
+#: 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:39(p) C/guitar-tuner.py.page:45(p)
-#: C/guitar-tuner.cpp.page:44(p) C/guitar-tuner.c.page:45(p)
+#: C/image-viewer.c.page:40(p) C/guitar-tuner.py.page:46(p)
+#: C/guitar-tuner.cpp.page:44(p) C/guitar-tuner.c.page:46(p)
 msgid ""
 "Start Anjuta and click <guiseq><gui>File</gui><gui>New</gui><gui>Project</"
 "gui></guiseq> to open the project wizard."
@@ -2491,7 +6129,7 @@ msgstr ""
 "Lancez Anjuta et cliquez sur <guiseq><gui>Fichier</gui><gui>Nouveau</"
 "gui><gui>Projet</gui></guiseq> pour ouvrir l'assistant de création de projet."
 
-#: C/record-collection.js.page:53(p)
+#: C/record-collection.js.page:54(p)
 msgid ""
 "Choose <gui>Generic Javascript</gui> from the <gui>JS</gui> tab, click "
 "<gui>Forward</gui>, and fill-out your details on the next few pages. Use "
@@ -2502,7 +6140,7 @@ msgstr ""
 "vos informations. Mettez <file>discotheque</file> (sans accent) comme nom du "
 "projet et répertoire."
 
-#: C/record-collection.js.page:56(p)
+#: C/record-collection.js.page:57(p)
 msgid ""
 "Click <gui>Finished</gui> and the project will be created for you. Open "
 "<file>src/main.js</file> from the <gui>Project</gui> or <gui>File</gui> "
@@ -2512,11 +6150,11 @@ msgstr ""
 "main.js</file> depuis l'onglet <gui>Projet</gui> ou l'onglet <gui>Fichiers</"
 "gui>. Il contient un exemple de programme très basique."
 
-#: C/record-collection.js.page:62(title)
+#: C/record-collection.js.page:63(title)
 msgid "Program Structure"
 msgstr "Structure du programme"
 
-#: C/record-collection.js.page:64(p)
+#: C/record-collection.js.page:65(p)
 msgid ""
 "This demo is a simple GTK application (with a single window) capable of "
 "inserting records into a database table as well as browsing all records of "
@@ -2536,15 +6174,15 @@ msgstr ""
 "jour à chaque fois qu'un nouvel enregistrement est inséré et au démarrage de "
 "l'application."
 
-#: C/record-collection.js.page:69(title)
+#: C/record-collection.js.page:70(title)
 msgid "Starting the fun"
 msgstr "Début du plaisir"
 
-#: C/record-collection.js.page:70(p)
+#: C/record-collection.js.page:71(p)
 msgid "Let's start by examining the skeleton of the program:"
 msgstr "Commençons par examiner le squelette du programme :"
 
-#: C/record-collection.js.page:96(p)
+#: C/record-collection.js.page:97(p)
 msgid ""
 "Lines 1‒4: Initial imports. Pay special attention to line 3, which tells "
 "Javascript to import the GDA library, our focus in this tutorial."
@@ -2553,7 +6191,7 @@ msgstr ""
 "qui commande à Javascript l'importation de la bibliothèque GDA, la cible de "
 "ce tutoriel."
 
-#: C/record-collection.js.page:97(p)
+#: C/record-collection.js.page:98(p)
 msgid ""
 "Lines 6‒17: Define our <code>Demo</code> class. Pay special attention to "
 "lines 13‒15, where we call 3 methods which will do the whole job. They will "
@@ -2563,15 +6201,15 @@ msgstr ""
 "attention aux lignes 13‒15, où nous appelons 3 méthodes qui font tout le "
 "travail. Elles sont détaillées plus bas."
 
-#: C/record-collection.js.page:98(p)
+#: C/record-collection.js.page:99(p)
 msgid "Lines 19‒23: Start the application."
 msgstr "Lignes 19‒23 : lancement de l'application."
 
-#: C/record-collection.js.page:103(title)
+#: C/record-collection.js.page:104(title)
 msgid "Designing the application"
 msgstr "Conception de l'application"
 
-#: C/record-collection.js.page:104(p)
+#: C/record-collection.js.page:105(p)
 msgid ""
 "Let's take a look at the <code>setupWindow</code> method. It is responsible "
 "for creating the User Interface (UI). As UI is not our focus, we will "
@@ -2581,7 +6219,7 @@ msgstr ""
 "l'interface utilisateur. Comme l'interface utilisateur n'est pas notre "
 "sujet, nous en expliquons seulement les parties pertinentes."
 
-#: C/record-collection.js.page:155(p)
+#: C/record-collection.js.page:156(p)
 msgid ""
 "Lines 22 and 27: Create the 2 entries (for the two fields) in which users "
 "will type something to get inserted in the database."
@@ -2589,7 +6227,7 @@ msgstr ""
 "Lignes 22 et 27 : création des 2 entrées (pour les 2 champs) dans lesquelles "
 "l'utilisateur saisit les choses à insérer dans la base de données."
 
-#: C/record-collection.js.page:156(p)
+#: C/record-collection.js.page:157(p)
 msgid ""
 "Lines 31‒34: Create the Insert button. We connect its <code>clicked</code> "
 "signal to the <code>_insertClicked</code> private method of the class. This "
@@ -2599,7 +6237,7 @@ msgstr ""
 "de ce bouton est connecté à la méthode privée <code>_insertClicked</code> de "
 "la classe. Cette méthode est décrite ci-dessous."
 
-#: C/record-collection.js.page:157(p)
+#: C/record-collection.js.page:158(p)
 msgid ""
 "Line 39: Create the widget (<code>TextView</code>) where we will show the "
 "contents of the table."
@@ -2607,7 +6245,7 @@ msgstr ""
 "Ligne 39 : création de l'élément graphique (<code>TextView</code>) où nous "
 "affichons le contenu de la table."
 
-#: C/record-collection.js.page:158(p)
+#: C/record-collection.js.page:159(p)
 msgid ""
 "Line 44: Create the label where we will show the number of records in the "
 "table. Initially it's empty, it will be updated later."
@@ -2616,11 +6254,11 @@ msgstr ""
 "d'enregistrements dans la table. Au début, elle est vide et est mise à jour "
 "ultérieurement."
 
-#: C/record-collection.js.page:163(title)
+#: C/record-collection.js.page:164(title)
 msgid "Connecting to and initializing the database"
 msgstr "Connexion à la base de données et initialisation"
 
-#: C/record-collection.js.page:164(p)
+#: C/record-collection.js.page:165(p)
 msgid ""
 "The code which makes the connection to the database is in the "
 "<code>setupDatabase</code> method below:"
@@ -2628,7 +6266,7 @@ msgstr ""
 "Le code permettant de se connecter à la base de données est dans la méthode "
 "<code>setupDatabase</code> ci-dessous :"
 
-#: C/record-collection.js.page:181(p)
+#: 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:"
@@ -2636,7 +6274,7 @@ msgstr ""
 "Lignes 2‒3 : création de l'objet <code>Connection</code> de GDA. Il faut "
 "transmettre quelques propriétés à son constructeur :"
 
-#: C/record-collection.js.page:184(p)
+#: C/record-collection.js.page:185(p)
 msgid ""
 "<code>provider</code>: One of GDA's supported providers. GDA supports "
 "SQLite, MySQL, PostgreSQL, Oracle and many others. For demo purposes we will "
@@ -2649,7 +6287,7 @@ msgstr ""
 "déjà incluse par défaut dans la plupart des distributions et elle est facile "
 "à utiliser (elle n'a besoin que d'un fichier comme base de données)."
 
-#: C/record-collection.js.page:187(p)
+#: C/record-collection.js.page:188(p)
 msgid ""
 "<code>cnc_string</code>: The connection string. It may change from provider "
 "to provider. The syntax for SQLite is: <code>DB_DIR=<var>PATH</var>;"
@@ -2664,7 +6302,7 @@ msgstr ""
 "dossier personnel de l'utilisateur (notez l'appel à la fonction "
 "<code>get_home_dir</code> de GLib)."
 
-#: C/record-collection.js.page:191(p)
+#: 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 "
@@ -2676,7 +6314,7 @@ msgstr ""
 "faut gérer cette exception grâce à l'instruction JavaScript <code>try</"
 "code>...<code>catch</code>."
 
-#: C/record-collection.js.page:195(p)
+#: 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."
@@ -2684,7 +6322,7 @@ msgstr ""
 "Ligne 4 : ouverture de la connexion. Pour le fournisseur SQLite, si la base "
 "de donnée n'existe pas, elle est créée à cette étape."
 
-#: C/record-collection.js.page:197(p)
+#: C/record-collection.js.page:198(p)
 msgid ""
 "Lines 6‒10: Try to do a simple select to check if the table exists (line 7). "
 "If it does not exist (because the database was just created), this command "
@@ -2699,7 +6337,7 @@ msgstr ""
 "code>. Dans ce cas, il faut exécuter l'instruction « create table » pour "
 "créer la table (ligne 9)."
 
-#: C/record-collection.js.page:198(p)
+#: 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</"
@@ -2712,17 +6350,17 @@ msgstr ""
 "ne requièrent que deux arguments : l'objet <code>Connection</code> et la "
 "commande SQL à analyser."
 
-#: C/record-collection.js.page:202(p)
+#: C/record-collection.js.page:203(p)
 msgid "At this point we have the database set up, and are ready to use it."
 msgstr ""
 "À ce niveau, nous avons configuré la base de données et cette dernière est "
 "fonctionnelle."
 
-#: C/record-collection.js.page:206(title)
+#: C/record-collection.js.page:207(title)
 msgid "Selecting"
 msgstr "Sélection"
 
-#: C/record-collection.js.page:207(p)
+#: C/record-collection.js.page:208(p)
 msgid ""
 "After connecting to the database, our demo's constructor calls the "
 "<code>selectData</code> method. It is responsible for getting all the "
@@ -2734,7 +6372,7 @@ msgstr ""
 "enregistrements de la table et qui les affiche dans l'élément graphique "
 "<code>TextView</code>. Regardons à quoi elle ressemble :"
 
-#: C/record-collection.js.page:228(p)
+#: C/record-collection.js.page:229(p)
 msgid ""
 "Line 2: The <code>SELECT</code> command. We are using the global GDA's "
 "function <code>execute_select_command</code> for that. It returns a "
@@ -2744,7 +6382,7 @@ msgstr ""
 "globale <code>execute_select_command</code> de GDA pour cela. Elle retourne "
 "un objet <code>DataModel</code> qui servira plus tard à récupérer les lignes."
 
-#: C/record-collection.js.page:229(p)
+#: C/record-collection.js.page:230(p)
 msgid ""
 "Line 3: Create an <code>Iter</code> object, which is used to iterate over "
 "the <code>DataModel</code>'s records."
@@ -2752,7 +6390,7 @@ msgstr ""
 "Ligne 3 : création d'un objet <code>Iter</code> qui sert à itérer sur les "
 "enregistrements de <code>DataModel</code>."
 
-#: C/record-collection.js.page:230(p)
+#: C/record-collection.js.page:231(p)
 msgid ""
 "Line 7: Loop through all the records, fetching them with the help of the "
 "<code>Iter</code> object. At this point, the <code>iter</code> variable "
@@ -2765,11 +6403,11 @@ msgstr ""
 "retourne le message <code>false</code> quand elle atteint le dernier "
 "enregistrement."
 
-#: C/record-collection.js.page:232(p)
+#: C/record-collection.js.page:233(p)
 msgid "Lines 8‒9: We do two things in each line:"
 msgstr "Lignes 8‒9 : nous faisons deux choses dans chaque ligne :"
 
-#: C/record-collection.js.page:234(p)
+#: C/record-collection.js.page:235(p)
 msgid ""
 "Use <code>Iter</code>'s method <code>get_value_at</code>, which requires "
 "only one argument: the column number to retrieve, starting at 0. As our "
@@ -2781,7 +6419,7 @@ msgstr ""
 "par 0. Comme notre commande <code>SELECT</code> ne retourne que deux "
 "colonnes, nous récupérons donc les colonnes 0 et 1."
 
-#: C/record-collection.js.page:235(p)
+#: C/record-collection.js.page:236(p)
 msgid ""
 "The method <code>get_value_at</code> returns the field in GLib's "
 "<code>GValue</code> format. A simple way to convert this format to a string "
@@ -2796,7 +6434,7 @@ msgstr ""
 "résultats dans les variables <code>id_field</code> et <code>name_field</"
 "code>."
 
-#: C/record-collection.js.page:238(p)
+#: C/record-collection.js.page:239(p)
 msgid ""
 "Line 11: Concatenate the two fields to make one text line, separated by "
 "<code>\"=&gt;\"</code>, and store it in the <code>text</code> variable."
@@ -2805,7 +6443,7 @@ msgstr ""
 "texte en les séparant par <code>\"=&gt;\"</code> et enregistrement dans la "
 "variable <code>text</code>."
 
-#: C/record-collection.js.page:239(p)
+#: C/record-collection.js.page:240(p)
 msgid ""
 "Line 14: After the loop is finished, we have all the records formatted in "
 "the <code>text</code> variable. In this line we just set the contents of the "
@@ -2815,7 +6453,7 @@ msgstr ""
 "dans la variable <code>text</code>. À cette ligne, nous attribuons le "
 "contenu de cette variable au <code>TextView</code>."
 
-#: C/record-collection.js.page:240(p)
+#: C/record-collection.js.page:241(p)
 msgid ""
 "Line 15: Display the number of records in the table, making use of the "
 "<code>DataModel</code>'s <code>get_n_rows</code> method."
@@ -2823,11 +6461,11 @@ msgstr ""
 "Ligne 15 : affichage du nombre d'enregistrements dans la table avec la "
 "fonction <code>get_n_rows</code> de <code>DataModel</code>."
 
-#: C/record-collection.js.page:245(title)
+#: C/record-collection.js.page:246(title)
 msgid "Inserting"
 msgstr "Insertion"
 
-#: C/record-collection.js.page:246(p)
+#: 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 "
@@ -2843,7 +6481,7 @@ msgstr ""
 "méthode <code>_insertClicked</code>. Voyons la mise en place de cette "
 "méthode."
 
-#: C/record-collection.js.page:267(p)
+#: C/record-collection.js.page:268(p)
 msgid ""
 "We have learned how to use GDA's convenience functions "
 "<code>execute_select_command</code> and <code>execute_non_select_command</"
@@ -2862,7 +6500,7 @@ msgstr ""
 "compatible avec le fournisseur de connexion utilisé (elle utilise le même "
 "langage SQL que celui du fournisseur). Voyons en détail le programme :"
 
-#: C/record-collection.js.page:271(p)
+#: C/record-collection.js.page:272(p)
 msgid ""
 "Lines 2‒3: Check if the user filled all the fields. The code for the private "
 "method <code>_validateFields</code> is really simple and you can read it in "
@@ -2873,7 +6511,7 @@ msgstr ""
 "vraiment simple et vous pouvez le consulter dans le programme source complet "
 "de l'exemple."
 
-#: C/record-collection.js.page:272(p)
+#: C/record-collection.js.page:273(p)
 msgid ""
 "Line 5: The faster way of doing the <code>INSERT</code>. It's commented out "
 "as we want to show how to use the <code>SqlBuilder</code> object to build a "
@@ -2884,7 +6522,7 @@ msgstr ""
 "voulons vous montrer comment utiliser l'objet <code>SqlBuilder</code> pour "
 "construire une instruction SQL qui soit indépendante de la base de données."
 
-#: C/record-collection.js.page:273(p)
+#: 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>, "
@@ -2895,7 +6533,7 @@ msgstr ""
 "être <code>SELECT</code>, <code>UPDATE</code>, <code>INSERT</code> ou "
 "<code>DELETE</code>."
 
-#: C/record-collection.js.page:274(p)
+#: C/record-collection.js.page:275(p)
 msgid ""
 "Line 8: Set the name of the table on which the built statement will operate "
 "(it will generate <code>INSERT INTO demo</code>)"
@@ -2903,7 +6541,7 @@ msgstr ""
 "Ligne 8 : détermination du nom de la table sur laquelle l'instruction "
 "construite va agir (le code <code>INSERT INTO demo</code> est généré)"
 
-#: C/record-collection.js.page:275(p)
+#: 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 "
@@ -2913,7 +6551,7 @@ msgstr ""
 "de l'instruction. Le premier argument est le nom du champ (comme dans la "
 "table). Le second est la valeur pour ce champ."
 
-#: C/record-collection.js.page:276(p)
+#: C/record-collection.js.page:277(p)
 msgid ""
 "Line 11: Get the dynamically generated <code>Statement</code> object, which "
 "represents a SQL statement."
@@ -2921,12 +6559,12 @@ msgstr ""
 "Ligne 11 : fabrication de l'objet <code>Statement</code> généré "
 "dynamiquement et qui représente une instruction SQL."
 
-#: C/record-collection.js.page:277(p)
+#: C/record-collection.js.page:278(p)
 msgid "Line 12: Finally, execute the SQL statement (<code>INSERT</code>)."
 msgstr ""
 "Ligne 12 : enfin, exécution de l'instruction SQL (<code>INSERT</code>)."
 
-#: C/record-collection.js.page:278(p)
+#: C/record-collection.js.page:279(p)
 msgid ""
 "Line 14: Clear the id and name fields on the screen. The code for the "
 "private method <code>_clearFields</code> is really simple and you can read "
@@ -2936,14 +6574,14 @@ msgstr ""
 "méthode privée <code>_clearFields</code> est vraiment simple et vous pouvez "
 "le consulter dans le programme source complet de l'exemple."
 
-#: C/record-collection.js.page:279(p)
+#: C/record-collection.js.page:280(p)
 msgid ""
 "Line 15: Refresh the view on the screen by doing another <code>SELECT</code>."
 msgstr ""
 "Ligne 15 : mise à jour de l'affichage à l'écran en faisant un nouveau "
 "<code>SELECT</code>."
 
-#: C/record-collection.js.page:281(p)
+#: C/record-collection.js.page:282(p)
 msgid ""
 "You can also make use of parameters while building the statement. By using "
 "the <code>SqlBuilder</code> objects and parameters you are less subject to "
@@ -2957,12 +6595,12 @@ msgstr ""
 "\"http://library.gnome.org/devel/libgda/stable/\";>documentation GDA</link> "
 "pour plus d'informations sur les paramètres."
 
-#: C/record-collection.js.page:285(title) C/image-viewer.py.page:220(title)
-#: C/image-viewer.js.page:306(title) C/guitar-tuner.py.page:223(title)
+#: 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 "Exécution de l'application"
 
-#: C/record-collection.js.page:286(p)
+#: C/record-collection.js.page:287(p)
 msgid ""
 "All of the code you need should now be in place, so try running the code. "
 "You now have a database for your record collection!"
@@ -2971,17 +6609,17 @@ msgstr ""
 "l'exécuter. Vous disposez maintenant d'une base de donnée pour votre "
 "discothèque !"
 
-#: C/record-collection.js.page:290(title) C/photo-wall.c.page:378(title)
-#: C/magic-mirror.vala.page:143(title) C/image-viewer.vala.page:281(title)
+#: 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:221(title)
-#: C/guitar-tuner.vala.page:253(title) C/guitar-tuner.py.page:228(title)
-#: C/guitar-tuner.js.page:233(title) C/guitar-tuner.cpp.page:255(title)
-#: C/guitar-tuner.c.page:256(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 "Implémentation de référence"
 
-#: C/record-collection.js.page:291(p)
+#: C/record-collection.js.page:292(p)
 msgid ""
 "If you run into problems with the tutorial, compare your code with this "
 "<link href=\"record-collection/record-collection.js\">reference code</link>."
@@ -2992,57 +6630,296 @@ 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/radiobutton.vala.page:23(None) C/radiobutton.py.page:23(None)
-#: C/radiobutton.c.page:21(None)
+#: 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:19(desc)
+#: C/radiobutton.vala.page:7(title)
+#, fuzzy
+#| msgid "RadioButton"
+msgid "RadioButton (Vala)"
+msgstr "RadioButton"
+
+#: C/radiobutton.vala.page:20(desc)
 msgid "A choice from multiple CheckButtons."
 msgstr "Un choix entre plusieurs CheckButtons."
 
-#: C/radiobutton.vala.page:22(title) C/radiobutton.py.page:22(title)
+#: 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:24(p)
+#: C/radiobutton.vala.page:25(p)
 msgid "These RadioButtons report their activity in the terminal."
 msgstr "Ces boutons radio signalent leur activité dans le terminal."
 
-#: C/radiobutton.vala.page:31(link)
-msgid "Gtk.RadioButton"
-msgstr "Gtk.RadioButton"
+#: C/radiobutton.py.page:7(title)
+#, fuzzy
+#| msgid "RadioButton"
+msgid "RadioButton (Python)"
+msgstr "RadioButton"
 
-#: C/radiobutton.py.page:19(desc)
+#: C/radiobutton.py.page:21(desc)
 msgid "Mutually exclusive buttons."
 msgstr "Boutons exclusifs."
 
-#: C/radiobutton.py.page:24(p)
+#: C/radiobutton.py.page:26(p)
 msgid ""
 "Three RadioButtons. You can see in the terminal if they are turned off or on."
 msgstr ""
 "Trois boutons radio. Vous pouvez voir dans le terminal s'ils sont activés ou "
 "non."
 
-#: C/radiobutton.py.page:33(link)
+#: C/radiobutton.py.page:36(title)
+msgid "Useful methods for a RadioButton widget"
+msgstr "Méthodes utiles pour un élément graphique RadioButton"
+
+#: C/radiobutton.py.page:39(p)
+msgid ""
+"Instead of <code>button1 = Gtk.RadioButton(label=\"Button 1\")</code> we "
+"could create the button and label it with"
+msgstr ""
+"Au lieu de <code>button1 = Gtk.RadioButton(label=« bouton 1 »)</code>, nous "
+"pourrions créer le bouton et l'étiquette qui va avec"
+
+#: C/radiobutton.py.page:40(code)
+#, no-wrap
+msgid ""
+"\n"
+"button1 = Gtk.RadioButton()\n"
+"button1.set_label(\"Button 1\")."
+msgstr ""
+"\n"
+"button1 = Gtk.RadioButton()\n"
+"button1.set_label(« bouton 1 »)."
+
+#: C/radiobutton.py.page:43(p)
+msgid ""
+"For a general discussion of this, see <link xref=\"properties.py\">here</"
+"link>."
+msgstr ""
+"Pour de plus amples informations sur cela, voyez <link xref=\"properties.py"
+"\">ici</link>."
+
+#: C/radiobutton.py.page:44(p)
+msgid ""
+"Yet another way to create a new RadioButton with a label is <code>button1 = "
+"Gtk.RadioButton.new_with_label(None, \"Button 1\")</code> (the first "
+"arguement is the group of the radiobuttons, which we can get with "
+"<code>get_group()</code>, the second argument is the label)."
+msgstr ""
+"Il y a encore une autre manière de créer un nouveau bouton de radio : "
+"<code>button1 = Gtk.RadioButton.new_with_label(None, « bouton 1 »)</code> où "
+"le premier argument est le groupe de boutons de radio que nous pouvons "
+"obtenir avec <code>get_group()</code> et le second argument est l'étiquette."
+
+#: C/radiobutton.py.page:53(link)
 msgid "GtkRadioButton"
 msgstr "GtkRadioButton"
 
-#: C/radiobutton.c.page:16(desc)
-#, fuzzy
-#| msgid "A choice from multiple CheckButtons."
-msgid "A choice from multiple checkbuttons."
-msgstr "Un choix entre plusieurs boutons de vérification."
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/radiobutton.js.page:21(None)
+msgid ""
+"@@image: 'media/radiobuttontravel.png'; md5=0c5f01ee160bb42716ccf5dccbd080c0"
+msgstr ""
+"@@image: 'media/radiobuttontravel.png'; md5=0c5f01ee160bb42716ccf5dccbd080c0"
 
-#: C/radiobutton.c.page:19(title)
+#: C/radiobutton.js.page:7(title)
 #, fuzzy
 #| msgid "RadioButton"
-msgid "Radiobutton"
+msgid "RadioButton (JavaScript)"
 msgstr "RadioButton"
 
-#: C/radiobutton.c.page:22(p)
+#: C/radiobutton.js.page:17(desc)
+msgid "Only one can be selected at a time"
+msgstr "Un seul peut être sélectionné à la fois"
+
+#: C/radiobutton.js.page:22(p)
+msgid ""
+"RadioButtons are named after old-style car radios, which had buttons for "
+"switching between channel presets. Because the radio could only be tuned to "
+"one station at a time, only one button could be pressed in at a time; if you "
+"pressed a new one, the one that was already pressed in would pop back out. "
+"That's how these buttons work, too."
+msgstr ""
+"Le terme « bouton de radio » provient de l'analogie avec les anciennes "
+"radios de nos vieux véhicules. Ils avaient des boutons poussoirs programmés "
+"et un seul pouvait resté enfoncé à la fois, transmettant une seule station. "
+"Si vous en enfonciez un autre, cela faisait sortir automatiquement le "
+"précédent. Ici, nos RadioButtons fonctionnent exactement de la même façon."
+
+#: C/radiobutton.js.page:23(p)
+msgid ""
+"Each RadioButton needs a text label and a group. Only one button in a group "
+"can be selected at a time. You don't name each group; you just set new "
+"RadioButtons to be part of the same group as an existing one. If you create "
+"a new one outside of a group, it automatically creates a new group for it to "
+"be part of."
+msgstr ""
+"Chaque bouton de radio nécessite une étiquette texte et un groupe. Un seul "
+"bouton d'un même groupe peut être sélectionné à la fois. Ne nommez pas "
+"chaque groupe ; définissez seulement les nouveaux boutons à l'intérieur d'un "
+"groupe qui existe déjà. Si vous créez un bouton en dehors d'un groupe "
+"existant, il générera automatiquement un nouveau groupe pour s'y loger."
+
+#: C/radiobutton.js.page:82(title)
+msgid "Creating the radiobuttons"
+msgstr "Création des boutons de radio"
+
+#: C/radiobutton.js.page:88(p)
+msgid ""
+"We use a <link xref=\"label.js\">Gtk.Label</link> to set each group of "
+"RadioButtons apart. Nothing will stop you from putting RadioButtons from all "
+"different groups wherever you want, so if you want people to know which ones "
+"go together you need to organize things accordingly."
+msgstr ""
+"Utilisez une étiquette <link xref=\"label.js\">Gtk.Label</link> pour définir "
+"chaque groupe de boutons de radio séparément. Vous pouvez mettre les boutons "
+"de radio de tous les différents groupes où vous voulez, donc si vous voulez "
+"que l'on sache lesquels vont ensemble, vous devez organiser les choses en "
+"fonction."
+
+#: C/radiobutton.js.page:101(p)
+msgid ""
+"Here are three different ways to create RadioButtons. The first is the usual "
+"way, where we create a new Gtk.RadioButton and assign its properties at the "
+"same time. The second and third use functions which automatically handle "
+"some of the properties; new_from_widget takes a single argument, the "
+"RadioButton that you want to put this new one in the same group as. "
+"Meanwhile, new_with_label_from_widget takes that and the RadioButton's label "
+"at the same time."
+msgstr ""
+"Voici trois méthodes différentes pour créer des boutons de radio. La "
+"première est la méthode habituelle, où nous créons un nouveau Gtk."
+"RadioButton et lui assignons ses propriétés en même temps. La seconde et la "
+"troisième utilisent des fonctions qui prennent en charge automatiquement "
+"quelques unes des propriétés ; new_from_widget ne prend qu'un argument : le "
+"nouveau bouton de radio que vous voulez mettre dans le même groupe, alors "
+"que new_with_label_from_widget prend ce même argument et l'étiquette qui va "
+"avec en même temps."
+
+#: C/radiobutton.js.page:102(p)
+msgid ""
+"The first RadioButton in a group is the one that's selected by default. Try "
+"uncommenting the last line in this sample code to see how you can set a "
+"different one to be the default selection."
+msgstr ""
+"Le premier bouton de radio d'un groupe est celui sélectionné par défaut. "
+"Décommentez la dernière ligne de cet exemple de code pour apprendre comment "
+"en définir un autre pour qu'il devienne celui sélectionné par défaut."
+
+#: C/radiobutton.js.page:113(p)
+msgid ""
+"Here we create the label for the second group of buttons, and then create "
+"them all the same way."
+msgstr ""
+"Ici, nous créons l'étiquette du second groupe de boutons et ensuite nous les "
+"générons tous de la même manière."
+
+#: C/radiobutton.js.page:129(p)
+msgid ""
+"This code creates a <link xref=\"button.js\">Gtk.Button</link> and binds it "
+"to a function which will show people a silly message when they click OK, "
+"depending on which RadioButtons were selected."
+msgstr ""
+"Ce code crée un bouton <link xref=\"button.js\">Gtk.Button</link> et le lie "
+"à une fonction qui affiche un message stupide si on clique sur OK, selon les "
+"boutons qui sont sélectionnés."
+
+#: C/radiobutton.js.page:130(p)
+msgid ""
+"To make sure the button's \"OK\" label shows up properly in every language "
+"that GNOME is translated into, remember to use one of Gtk's <link href="
+"\"http://developer.gnome.org/gtk/2.24/gtk-Stock-Items.html\";>stock button "
+"types.</link>"
+msgstr ""
+"Assurez-vous d'utiliser un des <link href=\"http://developer.gnome.org/";
+"gtk/2.24/gtk-Stock-Items.html\">types de bouton de la collection Gtk</link> "
+"pour que votre bouton « OK » s'affiche dans toutes les langues traduites de "
+"GNOME."
+
+#: C/radiobutton.js.page:166(p)
+msgid ""
+"We use a separate <link xref=\"grid.js\">Gtk.Grid</link> to organize each "
+"group of radio buttons. This way we can change the layout with less fuss "
+"later on. The second Grid has a margin on top, to visually separate the two "
+"sets of choices."
+msgstr ""
+"Organisons chaque groupe de boutons de radio dans une grille <link xref="
+"\"grid.js\">Gtk.Grid</link> séparée. Comme cela, nous pouvons modifier "
+"l'agencement plus aisément plus tard. Mettons une marge en haut de la "
+"deuxième grille pour séparer visuellemnt les deux ensembles de choix."
+
+#: C/radiobutton.js.page:167(p)
+msgid ""
+"After we've organized them, we put them into a third, master Grid, along "
+"with the OK button. Then we attach that to the window."
+msgstr ""
+"Après les avoir organisé, nous les mettons dans une troisième grille "
+"principale, avec le bouton OK. Puis, nous lions le tout à la fenêtre."
+
+#: C/radiobutton.js.page:175(p)
+msgid ""
+"Finally, we tell the window and everything inside it to become visible when "
+"the application is run."
+msgstr ""
+"Enfin, nous indiquons à la fenêtre de s'afficher avec son contenu au "
+"démarrage de l'application."
+
+#: 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 "Fonction prenant en charge votre sélection"
+
+#: C/radiobutton.js.page:200(p)
+msgid ""
+"When you click OK, a <link xref=\"messagedialog.js\">Gtk.MessageDialog</"
+"link> appears. This function creates and displays the popup window, then "
+"binds its OK button to a function that closes it. What text appears in the "
+"popup depends on the _messageText() function, which returns a different "
+"value depending on which set of options you chose."
+msgstr ""
+"Quand vous cliquez sur OK, une boîte de dialogue <link xref=\"messagedialog."
+"js\">Gtk.MessageDialog</link> s'affiche. Cette fonction crée et affiche le "
+"message surgissant et ensuite connecte son bouton OK à une fonction qui le "
+"ferme. Le contenu du message surgissant dépend de la fonction _messageText"
+"(), qui renvoie une valeur différente selon les options que vous avez "
+"choisies."
+
+#: C/radiobutton.js.page:246(p)
+msgid ""
+"The get_active() method is how we can tell which RadioButton's pressed in. "
+"This function returns a different silly message depending on which set of "
+"buttons was pressed. Its return value is used as the MessageDialog's text "
+"property."
+msgstr ""
+"La méthode get_active() permet de savoir quel bouton de radio a été pressé. "
+"Cette fonction renvoie un message stupide différent selon le bouton qui a "
+"été pressé. Sa valeur de retour est utilisée comme propriété du texte de la "
+"boîte de dialogue de message."
+
+#: C/radiobutton.js.page:257(p)
+msgid ""
+"This function is called when the MessageDialog's OK button is pressed. It "
+"simply makes the popup go away."
+msgstr ""
+"Cette fonction est appelée quand le bouton OK du texte de la boîte de "
+"dialogue de message est pressé. Elle fait seulement disparaître le message "
+"surgissant."
+
+#: C/radiobutton.c.page:7(title)
 #, fuzzy
-#| msgid "These RadioButtons report their activity in the terminal."
+#| msgid "RadioButton"
+msgid "RadioButton (C)"
+msgstr "RadioButton"
+
+#: C/radiobutton.c.page:19(desc)
+msgid "A choice from multiple checkbuttons"
+msgstr "Un choix entre plusieurs boutons de vérification."
+
+#: C/radiobutton.c.page:25(p)
 msgid "These radiobuttons report their activity in the terminal."
 msgstr "Ces boutons de radio signalent leur activité dans le terminal."
 
@@ -3054,124 +6931,262 @@ msgstr "Python"
 msgid "Tutorials, code samples and platform demos in Python"
 msgstr "Tutoriels, exemples de code et plateformes de démonstration en Python"
 
+#: C/properties.py.page:8(title)
+#, fuzzy
+#| msgid "Properties"
+msgid "Properties (Python)"
+msgstr "Propriétés"
+
+#: C/properties.py.page:12(desc)
+msgid "An explanation of properties, getters and setters."
+msgstr ""
+"Une explication des propriétés, des mécanismes d'obtention et de définition."
+
+#: C/properties.py.page:25(title)
+msgid "Properties"
+msgstr "Propriétés"
+
+#: C/properties.py.page:32(p)
+msgid ""
+"<em>Properties</em> describe the configuration and state of widgets, and "
+"each widget has its own particular set of properties. For example, a widget "
+"such as a button or a label has the property \"label\" which contains the "
+"text of the widget. You can specify the name and value of any number of "
+"properties as keyword arguments when creating an instance of a widget: for "
+"example, to create a label aligned to the right with the text “Hello World” "
+"and an angle of 25 degrees, you can use:"
+msgstr ""
+"Les <em>Propriétés</em> décrivent la configuration et l'état des éléments "
+"graphiques, chacun d'eux ayant son propre paquet de propriétés spécifiques. "
+"Par exemple, un bouton ou une étiquette possède la propriété « label » qui "
+"contient le texte de l'élément graphique. Lorsque vous créez un exemple "
+"d'élément graphique, vous pouvez spécifier le nom et la valeur de n'importe "
+"quel nombre de propriétés en tant qu'arguments. Par exemple, pour créer une "
+"étiquette alignée à droite, contenant le texte « Hello World » et ayant un "
+"angle de 25 degrés, utilisez le code suivant :"
+
+#: C/properties.py.page:33(code)
+#, no-wrap
+msgid ""
+"\n"
+"label = Gtk.Label(label=\"Hello World\", angle=25, halign=Gtk.Align.END)"
+msgstr ""
+"\n"
+"label = Gtk.Label(label=\"Hello World\", angle=25, halign=Gtk.Align.END)"
+
+#: C/properties.py.page:36(p)
+msgid "This is equivalent to:"
+msgstr "Ce qui est équivalent à :"
+
+#: C/properties.py.page:37(code)
+#, no-wrap
+msgid ""
+"\n"
+"label = Gtk.Label()\n"
+"label.set_label(\"Hello World\")\n"
+"label.set_angle(25)\n"
+"label.set_halign(Gtk.Align.END)"
+msgstr ""
+"\n"
+"label = Gtk.Label()\n"
+"label.set_label(\"Hello World\")\n"
+"label.set_angle(25)\n"
+"label.set_halign(Gtk.Align.END)"
+
+#: C/properties.py.page:43(p)
+msgid ""
+"Once you have created such a label, you can get the text with the getter "
+"<code>label.get_label()</code>."
+msgstr ""
+"Une fois cette étiquette créée, utilisez la méthode d'obtention <code>label."
+"get_label()</code> pour récupérer le texte."
+
+#: C/properties.py.page:45(p)
+msgid ""
+"Instead of using getters and setters you can also get and set the properties "
+"with <code>get_property(\"prop-name\")</code> and <code>set_property(\"prop-"
+"name\", value)</code>, respectively."
+msgstr ""
+"Au lieu d'utiliser les mécanismes d'obtention et de définition, vous pouvez "
+"aussi obtenir et définir respectivement les propriétés avec les fonctions "
+"<code>get_property(\"prop-name\")</code> et <code>set_property(\"prop-name"
+"\", value)</code>."
+
+#: C/properties.py.page:51(p)
+msgid ""
+"<link href=\"http://python-gtk-3-tutorial.readthedocs.org/en/latest/basics.";
+"html\">Basics - Properties</link> in Python Gtk+ 3 Tutorial"
+msgstr ""
+"<link href=\"http://python-gtk-3-tutorial.readthedocs.org/en/latest/basics.";
+"html\">Propriétés de base</link> dans le tutoriel 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:20(None) C/progressbar.py.page:20(None)
-#: C/progressbar.js.page:19(None)
-msgid "@@image: 'media/progressbar.ogv'; md5=36deab3dd4b5be968828fa2ef416d612"
-msgstr "@@image: 'media/progressbar.ogv'; md5=36deab3dd4b5be968828fa2ef416d612"
+#: C/progressbar.vala.page:21(None) C/progressbar.c.page:23(None)
+msgid ""
+"@@image: 'media/progressbar_fill.ogv'; md5=287763d1d3f4a328212ea2243910f5e4"
+msgstr ""
+"@@image: 'media/progressbar_fill.ogv'; md5=287763d1d3f4a328212ea2243910f5e4"
+
+#: C/progressbar.vala.page:7(title)
+#, fuzzy
+#| msgid "ProgressBar"
+msgid "ProgressBar (Vala)"
+msgstr "Barre de progression"
 
-#: C/progressbar.vala.page:16(desc)
+#: C/progressbar.vala.page:17(desc) C/progressbar.c.page:18(desc)
 msgid "A widget which indicates progress visually"
 msgstr "Un élément graphique qui matérialise visuellement la progression"
 
-#: C/progressbar.vala.page:19(title) C/progressbar.py.page:19(title)
-#: C/progressbar.js.page:18(title)
+#: 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"
+msgstr "Barre de progression"
 
-#: C/progressbar.vala.page:24(p) C/progressbar.py.page:24(p)
-#: C/progressbar.js.page:23(p)
-msgid "Pressing any key stops and starts this ProgressBar."
-msgstr ""
-"L'appui sur n'importe quelle touche démarre et arrête la barre de "
-"progression (ProgressBar)."
-
-#: C/progressbar.vala.page:31(p) C/progressbar.py.page:31(p)
-#: C/progressbar.js.page:30(p)
-msgid "This ProgressBar is stopped and started by pressing any key."
+#: C/progressbar.vala.page:22(p) C/progressbar.c.page:24(p)
+msgid ""
+"This ProgressBar \"fills in\" by a fraction of the bar until it is full."
 msgstr ""
-"Pour démarrer ou arrêter cette barre de progression, appuyez sur n'importe "
-"quelle touche."
+"Cette barre de progression se « rempli » par fractions jusqu'à ce qu'elle "
+"soit pleine."
 
-#: C/progressbar.vala.page:38(link) C/progressbar.js.page:40(link)
-#: C/grid.py.page:34(link) C/grid.js.page:36(link)
+#: 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:39(link)
+#: C/progressbar.vala.page:30(link)
 msgid "GLib.Timeout"
 msgstr "GLib.Timeout"
 
-#: C/progressbar.vala.page:40(link)
-msgid "GLib.Source"
-msgstr "GLib.Source"
+#. When image changes, this message 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.vala.page:41(link)
-msgid "Gtk.Widget.key_press_event"
-msgstr "Gtk.Widget.key_press_event"
+#: C/progressbar.py.page:7(title)
+#, fuzzy
+#| msgid "ProgressBar"
+msgid "ProgressBar (Python)"
+msgstr "Barre de progression"
 
-#: C/progressbar.py.page:16(desc)
+#: C/progressbar.py.page:17(desc)
 msgid "A widget which indicates progress visually."
 msgstr "Un élément graphique qui matérialise visuellement la progression."
 
-#: C/progressbar.py.page:43(title)
-msgid "Useful methods for a ProgressBar widget"
+#: C/progressbar.py.page:25(p) C/progressbar.js.page:24(p)
+msgid "Pressing any key stops and starts this ProgressBar."
 msgstr ""
+"L'appui sur n'importe quelle touche démarre et arrête la barre de "
+"progression (ProgressBar)."
 
-#: C/progressbar.py.page:45(p)
+#: C/progressbar.py.page:32(p) C/progressbar.js.page:31(p)
+msgid "This ProgressBar is stopped and started by pressing any key."
+msgstr ""
+"Pour démarrer ou arrêter cette barre de progression, appuyez sur n'importe "
+"quelle touche."
+
+#: C/progressbar.py.page:44(title)
+msgid "Useful methods for a ProgressBar widget"
+msgstr "Méthodes utiles pour un élément graphique barre de progression"
+
+#: C/progressbar.py.page:46(p)
 msgid ""
 "Instead of <code>pulse()</code>, that makes the bar go back and forth, if we "
 "want the ProgressBar to \"fill in\" a fraction (a <code>float</code> between "
 "<code>0.0</code> and <code>1.0</code> included) of the bar that has been "
 "completed, use <code>set_fraction(fraction)</code>."
 msgstr ""
+"Contrairement à <code>pulse()</code>, qui fait avancer ou reculer la barre, "
+"si nous voulons que notre barre de progression se remplisse par fractions "
+"(un nombre flottant <code>float</code> compris entre <code>0.0</code> et "
+"<code>1.0</code> inclus) toujours dans le même sens, nous utilisons la "
+"méthode <code>set_fraction(fraction)</code>."
 
-#: C/progressbar.py.page:46(p)
+#: C/progressbar.py.page:47(p)
 msgid ""
 "To set a text and show it (superimposed over the bar) use <code>set_text"
 "(\"some text\")</code> and <code>set_show_text(True)</code>. If a text is "
 "not set and <code>set_show_text(True)</code> the text will be the percentage "
 "of the work that has been completed."
 msgstr ""
+"Pour définir un texte et l'afficher en superposition sur la barre, utilisez "
+"<code>set_text(« texte »)</code> et <code>set_show_text(vrai)</code>. Si "
+"vous ne définissez pas un texte et si vous appliquez <code>set_show_text"
+"(vrai)</code>, le texte remplira la barre en fonction du pourcentage de "
+"l'avancement de la tâche."
 
-#: C/progressbar.py.page:54(link) C/grid.c.page:32(link)
+#: 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:55(link)
+#: C/progressbar.py.page:56(link)
 msgid "GLib - The Main Event Loop"
 msgstr "GLib - La boucle de l'événement principal"
 
-#: C/progressbar.js.page:15(desc)
+#: C/progressbar.js.page:6(title)
+#, fuzzy
+#| msgid "ProgressBar"
+msgid "ProgressBar (JavaScript)"
+msgstr "Barre de progression"
+
+#: C/progressbar.js.page:16(desc)
 msgid "A bar which animates to indicate progress"
 msgstr "Une barre qui s'anime pour indiquer la progression"
 
-#: C/progressbar.js.page:37(link)
+#: C/progressbar.js.page:38(link)
 msgid "GLib"
 msgstr "GLib"
 
+#: C/progressbar.c.page:7(title)
+#, fuzzy
+#| msgid "ProgressBar"
+msgid "ProgressBar (C)"
+msgstr "Barre de progression"
+
+#: C/progressbar.c.page:35(link)
+msgid "G_Timeout"
+msgstr "G_Timeout"
+
 #. When image changes, this message will be marked fuzzy or untranslated for you.
 #. It doesn't matter what you translate it to: it's not used at all.
-#: C/photo-wall.c.page:77(None)
+#: C/photo-wall.c.page:78(None)
 msgid "@@image: 'media/photo-wall.png'; md5=f19590d97e8ec029cda3c44b769c11cd"
 msgstr "@@image: 'media/photo-wall.png'; md5=f19590d97e8ec029cda3c44b769c11cd"
 
 #. When image changes, this message will be marked fuzzy or untranslated for you.
 #. It doesn't matter what you translate it to: it's not used at all.
-#: C/photo-wall.c.page:80(None)
+#: C/photo-wall.c.page:81(None)
 msgid ""
 "@@image: 'media/photo-wall-focused.png'; md5=9f1ceecf3a28c1e468597b093a10cbae"
 msgstr ""
 "@@image: 'media/photo-wall-focused.png'; md5=9f1ceecf3a28c1e468597b093a10cbae"
 
-#: C/photo-wall.c.page:8(desc)
+#: C/photo-wall.c.page:6(title)
+#, fuzzy
+#| msgid "Photo Wall"
+msgid "Photo Wall (C)"
+msgstr "Mur de photos"
+
+#: C/photo-wall.c.page:9(desc)
 msgid "A Clutter image viewer"
 msgstr "Un visionneur d'images avec Clutter"
 
-#: C/photo-wall.c.page:12(name)
+#: C/photo-wall.c.page:13(name)
 msgid "Chris Kühl"
 msgstr "Chris Kühl"
 
-#: C/photo-wall.c.page:13(email)
+#: C/photo-wall.c.page:14(email)
 msgid "chrisk openismus com"
 msgstr "chrisk openismus com"
 
-#: C/photo-wall.c.page:21(title)
+#: C/photo-wall.c.page:22(title)
 msgid "Photo Wall"
 msgstr "Mur de photos"
 
-#: C/photo-wall.c.page:24(p)
+#: C/photo-wall.c.page:25(p)
 msgid ""
 "For this example we will build a simple image viewer using Clutter. You will "
 "learn:"
@@ -3179,31 +7194,31 @@ msgstr ""
 "Dans cet exemple, nous allons fabriquer un visionneur d'images simple avec "
 "Clutter. Vous apprendrez :"
 
-#: C/photo-wall.c.page:26(p)
+#: C/photo-wall.c.page:27(p)
 msgid "How to size and position <code>ClutterActor</code>s"
 msgstr "comment dimensionner et positionner les <code>ClutterActor</code>,"
 
-#: C/photo-wall.c.page:27(p)
+#: C/photo-wall.c.page:28(p)
 msgid "How to place an image in a <code>ClutterActor</code>"
 msgstr "comment placer une image dans un <code>ClutterActor</code>,"
 
-#: C/photo-wall.c.page:28(p)
+#: C/photo-wall.c.page:29(p)
 msgid "How to do simple transitions using Clutter's animation framework"
 msgstr ""
 "comment faire des transitions simples avec la structure d'animation de "
 "Clutter,"
 
-#: C/photo-wall.c.page:29(p)
+#: C/photo-wall.c.page:30(p)
 msgid "How to make <code>ClutterActor</code>s respond to mouse events"
 msgstr ""
 "comment faire réagir les <code>ClutterActor</code> aux événements de la "
 "souris,"
 
-#: C/photo-wall.c.page:30(p)
+#: C/photo-wall.c.page:31(p)
 msgid "How to get file names from a directory"
 msgstr "et comment récupérer des noms de fichier depuis un répertoire."
 
-#: C/photo-wall.c.page:36(p)
+#: C/photo-wall.c.page:37(p)
 msgid ""
 "Clutter is a library for creating dynamic user interfaces using OpenGL for "
 "hardware acceleration. This example demonstates a small, but central, part "
@@ -3216,7 +7231,7 @@ msgstr ""
 "Clutter pour écrire un programme simple, mais sympathique, de visionneur "
 "d'images."
 
-#: C/photo-wall.c.page:39(p)
+#: C/photo-wall.c.page:40(p)
 msgid ""
 "To help us reach our goal we will be utilising a few other common pieces of "
 "GLib as well. Most importantly, we'll use one <code>GSList</code>, a singly-"
@@ -3232,7 +7247,7 @@ msgstr ""
 "avec des répertoires, afin d'accéder au répertoire de nos images et de "
 "récupérer les chemins de fichier."
 
-#: C/photo-wall.c.page:52(p)
+#: C/photo-wall.c.page:53(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 "
@@ -3243,7 +7258,7 @@ msgstr ""
 "suivantes avec vos informations. Saisissez <file>murdephotos</file> (sans "
 "accent) comme nom de projet et de répertoire."
 
-#: C/photo-wall.c.page:55(p)
+#: C/photo-wall.c.page:56(p)
 msgid ""
 "Make sure that <gui>Use GtkBuilder for user interface</gui> is disabled as "
 "we will create the UI manually in this tutorial. Check the <link xref="
@@ -3255,7 +7270,7 @@ msgstr ""
 "\">Accordeur de guitare</link> si vous souhaitez savoir comment utiliser le "
 "constructeur d'interface GtkBuilder."
 
-#: C/photo-wall.c.page:60(p)
+#: C/photo-wall.c.page:61(p)
 msgid ""
 "Enable <gui>Configure external packages</gui>. On the next page, select "
 "<em>clutter-1.0</em> from the list to include the Clutter library in your "
@@ -3265,8 +7280,8 @@ msgstr ""
 "sélectionnez <em>clutter-1.0</em> dans la liste pour inclure la bibliothèque "
 "Clutter à votre projet."
 
-#: C/photo-wall.c.page:64(p) C/image-viewer.c.page:50(p)
-#: C/guitar-tuner.c.page:55(p)
+#: C/photo-wall.c.page:65(p) C/image-viewer.c.page:51(p)
+#: C/guitar-tuner.c.page:56(p)
 msgid ""
 "Click <gui>Apply</gui> and the project will be created for you. Open "
 "<file>src/main.c</file> from the <gui>Project</gui> or <gui>File</gui> tabs. "
@@ -3276,15 +7291,15 @@ msgstr ""
 "main.c</file> depuis l'onglet <gui>Projet</gui> ou l'onglet <gui>Fichiers</"
 "gui>. Vous devez voir apparaître du code commençant par les lignes :"
 
-#: C/photo-wall.c.page:73(title)
+#: C/photo-wall.c.page:74(title)
 msgid "A look at Photo Wall"
 msgstr "Un aperçu du mur de photos"
 
-#: C/photo-wall.c.page:74(p)
+#: C/photo-wall.c.page:75(p)
 msgid "Our image viewer presents the user with a wall of images."
 msgstr "Notre visionneur d'images vous montre un mur de photos."
 
-#: C/photo-wall.c.page:78(p)
+#: C/photo-wall.c.page:79(p)
 msgid ""
 "When an image is clicked, it is animated to fill the viewing area. When the "
 "image having focus is clicked it is returned to its original position using "
@@ -3295,11 +7310,11 @@ msgstr ""
 "retourne à sa position d'origine en utilisant une animation qui dure "
 "également 500 millisecondes."
 
-#: C/photo-wall.c.page:84(title)
+#: C/photo-wall.c.page:85(title)
 msgid "Initial setup"
 msgstr "Configuration initiale"
 
-#: C/photo-wall.c.page:85(p)
+#: C/photo-wall.c.page:86(p)
 msgid ""
 "The following code segment contains many of the defines and variables we "
 "will be using in the following sections. Use this as a reference for later "
@@ -3309,11 +7324,11 @@ msgstr ""
 "qui sont utilisées dans les sections suivantes. Servez-vous en comme "
 "référence. Copiez ce code au début du fichier <file>src/main.c</file> :"
 
-#: C/photo-wall.c.page:122(title)
+#: C/photo-wall.c.page:123(title)
 msgid "Jumping into the code"
 msgstr "Immersion dans le code"
 
-#: C/photo-wall.c.page:123(p)
+#: C/photo-wall.c.page:124(p)
 msgid ""
 "We will start by taking a look at the <code>main()</code> function as a "
 "whole. Then we'll discuss the other code sections in detail. Change the "
@@ -3327,7 +7342,7 @@ msgstr ""
 "fonction <code>main()</code>. Vous pouvez aussi supprimer la fonction "
 "<code>create_window()</code> car on n'en a plus besoin dans cet exemple."
 
-#: C/photo-wall.c.page:164(p)
+#: C/photo-wall.c.page:165(p)
 msgid ""
 "Line 4: <code>ClutterColor</code> is defined by setting the red, green, blue "
 "and transparency (alpha) values. The values range from 0-255. For "
@@ -3338,7 +7353,7 @@ msgstr ""
 "comprises entre 0 et 255. Pour la transparence, une valeur de 255 représente "
 "l'opacité."
 
-#: C/photo-wall.c.page:165(p)
+#: C/photo-wall.c.page:166(p)
 msgid ""
 "Line 7: You must initialize Clutter. If you forget to do this, you will get "
 "very strange errors. Be warned."
@@ -3346,7 +7361,7 @@ msgstr ""
 "Ligne 7 : vous devez initialiser Clutter. Attention, si vous oubliez de le "
 "faire, vous aurez de très étranges messages d'erreur. Vous êtes prévenu."
 
-#: C/photo-wall.c.page:166(p)
+#: C/photo-wall.c.page:167(p)
 msgid ""
 "Lines 9‒11: Here we get the default <code>ClutterStage</code> that was "
 "provided by <code>clutter_init</code>. We then set the size using the "
@@ -3358,7 +7373,7 @@ msgstr ""
 "en utilisant les variables définies à la section précédente et l'adresse du "
 "<code>ClutterColor</code> que nous venons de définir."
 
-#: C/photo-wall.c.page:167(p)
+#: C/photo-wall.c.page:168(p)
 msgid ""
 "A <code>ClutterStage</code> is the top-level <code>ClutterActor</code> onto "
 "which other <code>ClutterActor</code>s are placed."
@@ -3366,7 +7381,7 @@ msgstr ""
 "Un <code>ClutterStage</code> est le <code>ClutterActor</code> de premier "
 "niveau sur lequel les autres <code>ClutterActor</code> sont disposés."
 
-#: C/photo-wall.c.page:169(p)
+#: 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."
@@ -3374,7 +7389,7 @@ msgstr ""
 "Ligne 13 : ici nous appelons notre fonction pour obtenir les chemins des "
 "fichiers image. Nous l'examinerons dans un instant."
 
-#: C/photo-wall.c.page:170(p)
+#: C/photo-wall.c.page:171(p)
 msgid ""
 "Lines 14‒26: This is where we set up the <code>ClutterActor</code>s, load "
 "the images and place them into their spot in the image wall. We will look at "
@@ -3384,22 +7399,22 @@ msgstr ""
 "code>, chargeons les images et les disposons au bon endroit dans le mur "
 "d'images. Nous regarderons cela en détail dans la section suivante."
 
-#: C/photo-wall.c.page:171(p)
+#: C/photo-wall.c.page:172(p)
 msgid ""
 "Line 29: Show the stage and <em>all its children</em>, meaning our images."
 msgstr ""
 "Ligne 29 : affichage de « stage » et de <em>tous ses enfants</em>, c'est-à-"
 "dire nos images."
 
-#: C/photo-wall.c.page:172(p)
+#: C/photo-wall.c.page:173(p)
 msgid "Line 32: Start the Clutter main loop."
 msgstr "Ligne 32 : démarrage de la boucle principale de Clutter."
 
-#: C/photo-wall.c.page:177(title)
+#: C/photo-wall.c.page:178(title)
 msgid "Setting up our image actors"
 msgstr "Mise en place de nos acteurs image"
 
-#: C/photo-wall.c.page:178(p)
+#: C/photo-wall.c.page:179(p)
 msgid ""
 "In Clutter, an actor is the most basic visual element. Basically, everything "
 "you see is an actor."
@@ -3407,7 +7422,7 @@ msgstr ""
 "Dans Clutter, un acteur est l'élément visuel le plus élémentaire. En gros, "
 "tout ce que vous voyez est un acteur."
 
-#: C/photo-wall.c.page:179(p)
+#: C/photo-wall.c.page:180(p)
 msgid ""
 "In this section, we are going to take a closer look at the loop used for "
 "setting up the <code>ClutterActor</code>s that will display our images."
@@ -3415,7 +7430,7 @@ msgstr ""
 "Dans cette section, nous allons regarder plus en détail la boucle utilisée "
 "pour paramétrer les <code>ClutterActor</code> qui affichent nos images."
 
-#: C/photo-wall.c.page:197(p)
+#: C/photo-wall.c.page:198(p)
 msgid ""
 "Line 5: Here we want to get the path at the <var>n</var>th location in the "
 "<code>GSList</code> that is holding our image path names. The <var>n</var>th "
@@ -3432,7 +7447,7 @@ msgstr ""
 "suivante pour obtenir le chemin réel. Le premier argument est un pointeur "
 "vers le début de la liste."
 
-#: C/photo-wall.c.page:199(p)
+#: C/photo-wall.c.page:200(p)
 msgid ""
 "Line 6: This is where we actually create the <code>ClutterActor</code> and "
 "place the image into the actor. The first argument is the path which we "
@@ -3444,11 +7459,11 @@ msgstr ""
 "permet d'accéder au nœud de notre <code>GSList</code>. Le deuxième sert à "
 "rapporter une erreur mais nous allons ignorer cela pour faire court."
 
-#: C/photo-wall.c.page:201(p)
+#: C/photo-wall.c.page:202(p)
 msgid "Line 7: We'll look at this function in a later section."
 msgstr "Ligne 7 : nous regarderons cette fonction dans une section ultérieure."
 
-#: C/photo-wall.c.page:203(p)
+#: C/photo-wall.c.page:204(p)
 msgid ""
 "Line 8: This adds the <code>ClutterActor</code> to the stage, which is a "
 "container. It also assumes ownership of the <code>ClutterActor</code> which "
@@ -3464,7 +7479,7 @@ msgstr ""
 "\"http://library.gnome.org/devel/gobject/stable/gobject-memory.html";
 "\">documentation de <code>GObject</code></link> pour des détails pointus."
 
-#: C/photo-wall.c.page:205(p)
+#: C/photo-wall.c.page:206(p)
 msgid ""
 "Line 9: This adds our <code>ClutterActor</code> to a <code>GSList</code> so "
 "that we can later iterate over the <code>ClutterActor</code>s."
@@ -3473,7 +7488,7 @@ msgstr ""
 "code> afin que nous puissions plus tard itérer sur les <code>ClutterActor</"
 "code>."
 
-#: C/photo-wall.c.page:206(p)
+#: C/photo-wall.c.page:207(p)
 msgid ""
 "Interesting to note is that we want to prepend the <code>ClutterActor</"
 "code>s rather than append so that we avoid traversing the list upon each "
@@ -3487,11 +7502,11 @@ msgstr ""
 "code> suivi de <code>g_slist_reverse</code> car c'est plus rapide que "
 "d'insérer beaucoup d'objets à la fin de la liste."
 
-#: C/photo-wall.c.page:212(title)
+#: C/photo-wall.c.page:213(title)
 msgid "Loading the images"
 msgstr "Chargement des images"
 
-#: C/photo-wall.c.page:213(p)
+#: C/photo-wall.c.page:214(p)
 msgid ""
 "Let's take a short break from Clutter to see how we can get the file names "
 "from our image directory."
@@ -3499,7 +7514,7 @@ msgstr ""
 "Oublions un court instant Clutter pour regarder comment nous pouvons obtenir "
 "les noms des fichiers contenus dans notre répertoire d'images."
 
-#: C/photo-wall.c.page:240(p)
+#: C/photo-wall.c.page:241(p)
 msgid ""
 "Lines 5 and 12: This opens our directory or, if an error occured, returns "
 "after printing an error message."
@@ -3507,7 +7522,7 @@ msgstr ""
 "Lignes 5 et 12 : cela ouvre notre répertoire ou, en cas d'erreur, quitte la "
 "fonction après affichage d'un message d'erreur."
 
-#: C/photo-wall.c.page:241(p)
+#: C/photo-wall.c.page:242(p)
 msgid ""
 "Lines 14‒23: The first line gets another file name from the <code>GDir</"
 "code> we opened earlier. If there was an image file (which we check by "
@@ -3524,11 +7539,11 @@ msgstr ""
 "la liste définie auparavant. Enfin, nous essayons d'obtenir le prochain nom "
 "de fichier et nous recommençons la boucle si un autre fichier a été trouvé."
 
-#: C/photo-wall.c.page:246(title)
+#: C/photo-wall.c.page:247(title)
 msgid "Set up the actors"
 msgstr "Mise en place des acteurs"
 
-#: C/photo-wall.c.page:247(p)
+#: C/photo-wall.c.page:248(p)
 msgid ""
 "We now take a look at the sizing and positioning of <code>ClutterActor</"
 "code>s and also readying the <code>ClutterActor</code> for user interaction."
@@ -3537,7 +7552,7 @@ msgstr ""
 "<code>ClutterActor</code> et également la préparation du <code>ClutterActor</"
 "code> pour une interaction de l'utilisateur."
 
-#: C/photo-wall.c.page:266(p)
+#: C/photo-wall.c.page:267(p)
 msgid ""
 "Line 7: Setting an actor reactive means that it reacts to events, such as "
 "<code>button-press-event</code> in our case. For Photo Wall, all "
@@ -3548,7 +7563,7 @@ msgstr ""
 "Pour le mur de photos, tous les <code>ClutterActor</code> du mur doivent "
 "être initialisés comme « reactive »."
 
-#: C/photo-wall.c.page:269(p)
+#: C/photo-wall.c.page:270(p)
 msgid ""
 "Line 9‒12: Now we connect the <code>button-press-event</code> to the "
 "<code>actor_clicked_cb</code> callback which we will look at next."
@@ -3557,17 +7572,17 @@ msgstr ""
 "event</code> à la fonction de rappel <code>actor_clicked_cb</code> que nous "
 "examinons ci-dessous."
 
-#: C/photo-wall.c.page:272(p)
+#: C/photo-wall.c.page:273(p)
 msgid "At this point we've got a wall of images that are ready to be viewed."
 msgstr ""
 "À cet instant, nous obtenons un mur d'images qui sont prêtes à être "
 "regardées."
 
-#: C/photo-wall.c.page:276(title)
+#: C/photo-wall.c.page:277(title)
 msgid "Reacting to the clicks"
 msgstr "Réaction aux clics"
 
-#: C/photo-wall.c.page:321(p)
+#: C/photo-wall.c.page:322(p)
 msgid ""
 "Lines 1‒4: We have to make sure our callback function matches the signature "
 "required for the <code>button_clicked_event</code> signal. For our example, "
@@ -3579,7 +7594,7 @@ msgstr ""
 "Dans notre exemple, nous n'utilisons que le premier argument, le "
 "<code>ClutterActor</code> qui est réellement cliqué."
 
-#: C/photo-wall.c.page:323(p)
+#: C/photo-wall.c.page:324(p)
 msgid ""
 "A few words on the arguments we are not using in this example. The "
 "<code>ClutterEvent</code> is different depending on what event is being "
@@ -3599,7 +7614,7 @@ msgstr ""
 "code>. Consultez la documentation de Clutter pour les autres types "
 "d'événement <code>ClutterEvent</code>."
 
-#: C/photo-wall.c.page:324(p)
+#: C/photo-wall.c.page:325(p)
 msgid ""
 "The <code>user_data</code> is what one uses to pass data into the the "
 "function. A pointer to any data type can be passed in. If you need multiple "
@@ -3612,7 +7627,7 @@ msgstr ""
 "de rappel, vous pouvez mettre les données dans une structure et transmettre "
 "son adresse."
 
-#: C/photo-wall.c.page:328(p)
+#: C/photo-wall.c.page:329(p)
 msgid ""
 "Line 7: We set up a static flag to track which state we are in: wall mode or "
 "focus mode. We start out in wall mode so no image has focus. Thus, we set "
@@ -3624,7 +7639,7 @@ msgstr ""
 "conséquent, nous paramétrons le drapeau à <code>FALSE</code> (FAUX) au "
 "départ."
 
-#: C/photo-wall.c.page:329(p)
+#: C/photo-wall.c.page:330(p)
 msgid ""
 "Line 9: This line of code runs a custom function, "
 "<code>foreach_set_focus_state</code>, for each element in our "
@@ -3638,7 +7653,7 @@ msgstr ""
 "<code>is_focused</code>. Nous verrons la définition de la fonction "
 "<code>foreach_set_focus_state</code> dans la prochaine section."
 
-#: C/photo-wall.c.page:330(p)
+#: C/photo-wall.c.page:331(p)
 msgid ""
 "Lines 13‒19: Reaching this code means that one image currently has focus and "
 "we want to return to wall mode. The <code>clutter_actor_animate</code> "
@@ -3652,11 +7667,11 @@ msgstr ""
 "propriétés d'un <code>ClutterActor</code> à partir du ou des états actuels "
 "vers les états spécifiés. Les arguments sont les suivants :"
 
-#: C/photo-wall.c.page:332(p)
+#: C/photo-wall.c.page:333(p)
 msgid "The address of the <code>ClutterActor</code> to animate"
 msgstr "L'adresse du <code>ClutterActor</code> à animer"
 
-#: C/photo-wall.c.page:333(p)
+#: C/photo-wall.c.page:334(p)
 msgid ""
 "The animation mode to use. Here we use <code>CLUTTER_LINEAR</code> so that "
 "we have a constant speed for animation."
@@ -3664,7 +7679,7 @@ msgstr ""
 "Le mode d'animation à utiliser. Ici nous utilisons <code>CLUTTER_LINEAR</"
 "code> pour avoir une vitesse d'animation constante."
 
-#: C/photo-wall.c.page:334(p)
+#: C/photo-wall.c.page:335(p)
 msgid ""
 "The duration of the animation in milliseconds. I've chosen 500 ms for this "
 "example."
@@ -3672,7 +7687,7 @@ msgstr ""
 "La durée de l'animation en millisecondes. J'ai choisi 500 ms pour cet "
 "exemple."
 
-#: C/photo-wall.c.page:335(p)
+#: C/photo-wall.c.page:336(p)
 msgid ""
 "The remaining arguments are property/value pairs. Here we want to set the "
 "<code>x</code> value to the starting <code>x</code> value this "
@@ -3682,7 +7697,7 @@ msgstr ""
 "définir la valeur <code>x</code> à la valeur <code>x</code> initiale, où ce "
 "<code>ClutterActor</code> était avant de posséder le focus."
 
-#: C/photo-wall.c.page:336(p)
+#: C/photo-wall.c.page:337(p)
 msgid ""
 "The last argument must always be <code>NULL</code> to indicate that there "
 "are no more properties to be set."
@@ -3690,7 +7705,7 @@ msgstr ""
 "Le dernier argument doit toujours être <code>NULL</code> pour indiquer qu'il "
 "n'y a plus de propriétés à définir."
 
-#: C/photo-wall.c.page:338(p)
+#: 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 "
@@ -3703,7 +7718,7 @@ msgstr ""
 "cette section, nous réajustons sa propriété à la même altitude que les "
 "autres images sur le mur."
 
-#: C/photo-wall.c.page:339(p)
+#: C/photo-wall.c.page:340(p)
 msgid ""
 "Depth also determines which <code>ClutterActor</code>s receive events. A "
 "<code>ClutterActor</code> with a higher depth value receives the click "
@@ -3716,7 +7731,7 @@ msgstr ""
 "<code>ClutterActor</code> en dessous de lui. Nous verrons comment cela "
 "fonctionne un peu plus loin."
 
-#: C/photo-wall.c.page:341(p)
+#: C/photo-wall.c.page:342(p)
 msgid ""
 "Line 24: Reaching this line of code means we are currently in the wall state "
 "and are about to give a <code>ClutterActor</code> focus. Here we save the "
@@ -3727,7 +7742,7 @@ msgstr ""
 "code>. Ici nous enregistrons la position de départ afin de pouvoir le "
 "repositionner plus tard."
 
-#: C/photo-wall.c.page:342(p)
+#: C/photo-wall.c.page:343(p)
 msgid ""
 "Line 25: Setting the <code>ClutterActor</code>'s <code>reactive</code> "
 "property to <code>TRUE</code> makes this <code>ClutterActor</code> react to "
@@ -3743,7 +7758,7 @@ msgstr ""
 "<code>ClutterActor</code> qui est actuellement affiché. Un clic sur ce "
 "<code>ClutterActor</code> le repositionne à sa position de départ."
 
-#: C/photo-wall.c.page:343(p)
+#: C/photo-wall.c.page:344(p)
 msgid ""
 "Lines 27‒33: This is similar to the above block of code. Notice that we are "
 "setting the the depth to raise it above the other images."
@@ -3751,7 +7766,7 @@ msgstr ""
 "Ligne 27-33 : similaire au bloc de code ci-dessus. Notez que nous "
 "paramétrons l'altitude afin de placer l'acteur devant les autres images."
 
-#: C/photo-wall.c.page:344(p)
+#: C/photo-wall.c.page:345(p)
 msgid ""
 "Line 37: Here we toggle the <code>is_focused</code> flag to the current "
 "state."
@@ -3759,7 +7774,7 @@ msgstr ""
 "Ligne 37 : ici nous basculons le drapeau <code>is_focused</code> vers l'état "
 "actuel."
 
-#: C/photo-wall.c.page:345(p)
+#: C/photo-wall.c.page:346(p)
 msgid ""
 "As mentioned previously, the <code>ClutterActor</code>s with higher "
 "<code>depth</code> values receive events but can allow <code>ClutterActor</"
@@ -3774,7 +7789,7 @@ msgstr ""
 "la transmission des événements alors qu'en renvoyant <code>FALSE</code> la "
 "transmission se fait."
 
-#: C/photo-wall.c.page:347(p)
+#: C/photo-wall.c.page:348(p)
 msgid ""
 "Remember, however, that to receive events the <code>ClutterActor</code>s "
 "must be set <code>reactive</code>."
@@ -3782,7 +7797,7 @@ msgstr ""
 "Rappelez-vous cependant que pour recevoir des événements les "
 "<code>ClutterActor</code> doivent être définis à <code>reactive</code>."
 
-#: C/photo-wall.c.page:351(p)
+#: C/photo-wall.c.page:352(p)
 msgid ""
 "The following is the convenience function passed to <code>g_slist_foreach</"
 "code>."
@@ -3790,7 +7805,7 @@ msgstr ""
 "Ce qui suit est la fonction bien commode transmise à <code>g_slist_foreach</"
 "code>."
 
-#: C/photo-wall.c.page:364(p)
+#: C/photo-wall.c.page:365(p)
 msgid ""
 "Lines 2‒5: The signature of this function requires two <code>gpointer</"
 "code>s. The first is a pointer to the <code>ClutterActor</code> that our "
@@ -3805,7 +7820,7 @@ msgstr ""
 "Nous allons en garder une trace et les enregistrer pour pouvoir les utiliser "
 "facilement."
 
-#: C/photo-wall.c.page:365(p)
+#: C/photo-wall.c.page:366(p)
 msgid ""
 "Line 7: Depending on which boolean value is passed in, the "
 "<code>ClutterActor</code> will be set to respond to events or not."
@@ -3813,14 +7828,14 @@ msgstr ""
 "Ligne 7 : en fonction de la valeur booléenne transmise, le "
 "<code>ClutterActor</code> est paramétré pour répondre aux événements ou pas."
 
-#: C/photo-wall.c.page:370(title) C/image-viewer.vala.page:273(title)
-#: C/image-viewer.cpp.page:204(title) C/image-viewer.c.page:215(title)
+#: 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:250(title)
+#: C/guitar-tuner.c.page:251(title)
 msgid "Build and run the application"
 msgstr "Construction et lancement de l'application"
 
-#: C/photo-wall.c.page:371(p)
+#: C/photo-wall.c.page:372(p)
 msgid ""
 "All of the code should now be ready to go. All you need now is some pictures "
 "to load. By default, the pictures are loaded from a <file>berlin_images</"
@@ -3843,7 +7858,7 @@ msgstr ""
 "répertoire <file>murdephotos</file>. Assurez-vous de mettre au moins 12 "
 "images dans le répertoire !"
 
-#: C/photo-wall.c.page:373(p)
+#: C/photo-wall.c.page:374(p)
 msgid ""
 "When you have done that, click <guiseq><gui>Build</gui><gui>Build Project</"
 "gui></guiseq> to build everything again, then <guiseq><gui>Run</"
@@ -3854,7 +7869,7 @@ msgstr ""
 "sur <guiseq><gui>Exécuter</gui><gui>Exécuter</gui></guiseq> pour lancer "
 "l'application."
 
-#: C/photo-wall.c.page:374(p)
+#: C/photo-wall.c.page:375(p)
 msgid ""
 "If you haven't already done so, choose the <file>Debug/src/photo-wall</file> "
 "application in the dialog that appears. Finally, hit <gui>Run</gui> and "
@@ -3864,7 +7879,7 @@ msgstr ""
 "murdephotos</file> dans la boîte de dialogue qui apparaît. Enfin, cliquez "
 "sur <gui>Lancer</gui> et amusez-vous !"
 
-#: C/photo-wall.c.page:379(p)
+#: C/photo-wall.c.page:380(p)
 msgid ""
 "If you run into problems with the tutorial, compare your code with this "
 "<link href=\"photo-wall/photo-wall.c\">reference code</link>."
@@ -3875,49 +7890,825 @@ msgstr ""
 
 #. When image changes, this message will be marked fuzzy or untranslated for you.
 #. It doesn't matter what you translate it to: it's not used at all.
-#: C/messagedialog.vala.page:20(None) C/messagedialog.py.page:20(None)
-#: C/messagedialog.js.page:20(None)
+#: C/paned.py.page:21(None)
+#, fuzzy
+#| msgid "@@image: 'media/window.png'; md5=eb0cde3530978619c25bddfaeb453345"
+msgid "@@image: 'media/paned.png'; md5=01e36d8a51ee18313616d63d2e15d993"
+msgstr "@@image: 'media/window.png'; md5=eb0cde3530978619c25bddfaeb453345"
+
+#: C/paned.py.page:7(title)
+#, fuzzy
+#| msgid "Python"
+msgid "Paned (Python)"
+msgstr "Python"
+
+#: C/paned.py.page:17(desc)
+msgid "A widget with two adjustable panes"
+msgstr ""
+
+#: C/paned.py.page:20(title)
+#, fuzzy
+#| msgid "Gtk.Paned"
+msgid "Paned"
+msgstr "Gtk.Paned"
+
+#: C/paned.py.page:22(p)
+msgid "Two images in two adjustable panes, horizontally aligned."
+msgstr ""
+
+#: C/paned.py.page:32(title)
+#, fuzzy
+#| msgid "Useful methods for a Scale widget"
+msgid "Useful methods for a Paned widget"
+msgstr "Méthodes utiles pour un élément graphique échelle"
+
+#: C/paned.py.page:33(p)
+msgid ""
+"To have two vertically aligned panes, use <code>Gtk.Orientation.VERTICAL</"
+"code> instead of <code>Gtk.Orientation.HORIZONTAL</code>. The method "
+"<code>add1(widget1)</code> will add the <code>widget1</code> to the top "
+"pane, and <code>add2(widget2)</code> will add the <code>widget2</code> to "
+"the bottom pane."
+msgstr ""
+
+#: C/paned.py.page:40(link)
+#, fuzzy
+#| msgid "Gtk.Paned"
+msgid "GtkPaned"
+msgstr "Gtk.Paned"
+
+#: C/model-view-controller.py.page:8(title)
+#, fuzzy
+#| msgid "The Model/View/Controller design"
+msgid "The Model/View/Controller design (Python)"
+msgstr "Le concept Modèle/Vue/Contrôleur"
+
+#: C/model-view-controller.py.page:12(desc)
+#: C/model-view-controller.py.page:25(title)
+msgid "The Model/View/Controller design"
+msgstr "Le concept Modèle/Vue/Contrôleur"
+
+#: C/model-view-controller.py.page:32(p)
+msgid ""
+"Both the <link xref=\"treeview_simple_liststore.py\">TreeView</link> and the "
+"<link xref=\"combobox.py\">ComboBox</link> widgets are built on the "
+"<em>Model/View/Controller</em> design. The <em>Model</em> (an implementation "
+"of <code>Gtk.TreeModel</code>, usually <code>Gtk.TreeStore</code> or "
+"<code>Gtk.ListStore</code>) stores the data; the <em>View</em> (e.g. "
+"<code>Gtk.TreeView</code>, <code>Gtk.ComboBox</code>, or <code>Gtk."
+"ComboBoxText</code>) gets change notifications and displays the content of "
+"the model. The <em>Controller</em>, finally, changes the state of the model "
+"(via some methods in the model's implementation - such as <code>append()</"
+"code> or <code>remove()</code>) and notifies the view of these changes (via "
+"signals like <code>\"changed\"</code>)."
+msgstr ""
+"Les deux éléments graphiques <link xref=\"treeview_simple_liststore.py"
+"\">TreeView</link> et <link xref=\"combobox.py\">BoiteCombinee</link> "
+"sont construits sur le concept <em>Modèle/Vue/Contrôleur</em>. Le "
+"<em>Modèle</em> (une implémentation de <code>Gtk.TreeModel</code>, "
+"habituellemnt soit <code>Gtk.TreeStore</code>, soit <code>Gtk.ListStore</"
+"code>) stocke les données ; la<em>Vue</em> (par ex. <code>Gtk.TreeView</"
+"code>, <code>Gtk.ComboBox</code>, ou <code>Gtk.ComboBoxText</code>) obtient "
+"les notifications de modifications et affiche le contenu du modèle. Enfin, "
+"le <em>Contrôleur</em> modifie l'état du modèle (à l'aide de méthodes dans "
+"l'implémentation du modèle, comme <code>append()</code>, ou <code>remove()</"
+"code>) et indique à la Vue ces modifications (à l'aide de signaux comme "
+"<code>\"changed\"</code>)."
+
+#: C/model-view-controller.py.page:37(title)
+msgid "The Model"
+msgstr "Le Modèle"
+
+#: C/model-view-controller.py.page:39(p)
+msgid ""
+"The main difference between the two main implementations of <code>Gtk."
+"TreeModel</code> is that <code>Gtk.ListStore</code> contains simple rows of "
+"data without children, whereas <code>Gtk.TreeStore</code> also contains rows "
+"of data, but each row may have child rows (which in turn can have child "
+"rows, and so on)."
+msgstr ""
+"La principale différence entre les deux implémentations principales de "
+"<code>Gtk.TreeModel</code> est que <code>Gtk.ListStore</code> ne contient "
+"que des lignes de données sans enfant, alors que <code>Gtk.TreeStore</code> "
+"contient aussi des lignes de données mais que chacune d'elle peut contenir "
+"des lignes enfants (qui à leur tour peuvent aussi contenir des lignes "
+"enfants et ainsi de suite)."
+
+#: C/model-view-controller.py.page:41(p)
+msgid ""
+"The data in the Model can be retrieved or modified using the tree iter and "
+"column index, or <code>Gtk.TreeIter</code>, or <code>Gtk.TreePath</code>."
+msgstr ""
+"Les données du modèle peuvent être supprimées ou modifiées avec l'itérateur "
+"arborescent et l'indexe de la colonne, ou avec <code>Gtk.TreeIter</code>, ou "
+"<code>Gtk.TreePath</code>."
+
+#: C/model-view-controller.py.page:43(p)
+msgid ""
+"As with Python's built-in list object you can use <code>len()</code> to get "
+"the number of rows and use slices to retrieve or set values. Otherwise, the "
+"method <code>append()</code> returns a <code>Gtk.TreeIter</code> instance, "
+"which points to the location of the newly inserted row. You can also "
+"retrieve a <code>Gtk.TreeIter</code> by calling <code>get_iter()</code>."
+msgstr ""
+"Comme avec l'objet liste intégré dans Python, vous pouvez obtenir le nombre "
+"de lignes avec <code>len()</code> et utiliser des segments pour récupérer ou "
+"définir des valeurs. D'une autre façon, la méthode <code>append()</code> "
+"renvoie un exemple de <code>Gtk.TreeIter</code> qui pointe vers "
+"l'emplacement de la ligne qui vient d'être insérée. L'appel à la fonction "
+"<code>get_iter()</code> récupère aussi un <code>Gtk.TreeIter</code>."
+
+#: C/model-view-controller.py.page:45(p)
+msgid ""
+"As <code>Gtk.ListStore</code> contains only one level, i.e. nodes do not "
+"have any child nodes, a path is essentially the index of the row you want to "
+"access. In the case of <code>Gtk.TreeStore</code>, a path is a list of "
+"indexes or a string. The string form is a list of numbers separated by a "
+"colon. Each number refers to the offset at that level. Thus, the path <code>"
+"\"0\"</code> refers to the root node and the path <code>\"2:4\"</code> "
+"refers to the fifth child of the third node."
+msgstr ""
+"Comme <code>Gtk.ListStore</code> n'a qu'un seul niveau, c-à-d. les nœuds "
+"n'ont aucun nœud enfant, un chemin est essentiellement représenté par "
+"l'index de la ligne à laquelle vous souhaitez accéder. En ce qui concerne "
+"<code>Gtk.TreeStore</code>, un chemin est représenté par une liste d'indexes "
+"ou une chaîne de caractères. La chaîne se présente sous la forme d'une liste "
+"de nombres séparés par une colonne. Chaque nombre se réfère au décalage à ce "
+"niveau. Donc, le chemin <code>\"0\"</code> se réfère au nœud racine et le "
+"chemin <code>\"2:4\"</code> se réfère au cinquième enfant du troisième nœud."
+
+#: C/model-view-controller.py.page:47(p)
+msgid "Useful methods for a <code>Gtk.TreeModel</code>:"
+msgstr "Méthodes utiles pour un <code>Gtk.TreeModel</code> :"
+
+#: C/model-view-controller.py.page:49(p)
+msgid ""
+"<code>get_iter(path)</code> returns a <code>Gtk.TreeIter</code> instance "
+"pointing to <code>path</code>. This is expected to be a colon-separated list "
+"of numbers, or a tuple. For example, the string <code>\"10:4:0\"</code> is "
+"equivalent to the tuple <code>(10, 4, 0)</code>, as both would create a path "
+"of depth 3 pointing to the 11th child of the root node, the 5th child of "
+"that 11th child, and the 1st child of that 5th child."
+msgstr ""
+"La méthode <code>get_iter(chemin)</code> renvoie un exemple de <code>Gtk."
+"TreeIter</code> qui pointe vers le <code>chemin</code>. Ce chemin est soit "
+"une liste de nombres séparés par une colonne, soit un tuple. Par exemple, la "
+"chaîne de caractères <code>\"10:4:0\"</code> est équivalente au tuple <code>"
+"(10, 4, 0)</code>, car tous deux créent un chemin de niveau 3 pointant vers "
+"le 11ème enfant du nœud racine, le 5ème enfant de cet 11ème enfant et le 1er "
+"enfant de ce 5ème enfant."
+
+#: C/model-view-controller.py.page:50(p)
+msgid ""
+"<code>iter_next(treeiter)</code> returns a <code>Gtk.TreeIter</code> "
+"instance pointing the node following treeiter at the current level or "
+"<code>None</code> if there is no next iter."
+msgstr ""
+"La méthode <code>iter_next(TreeIter)</code> renvoie un exemple de "
+"<code>Gtk.TreeIter</code> qui pointe vers le nœud TreeIter suivant "
+"situé au même niveau, ou vers <code>None</code> s'il n'y a rien derrière."
+
+#: C/model-view-controller.py.page:51(p)
+msgid ""
+"<code>iter_has_child(treeiter)</code> returns <code>True</code> if "
+"<code>treeiter</code> has children, <code>False</code> otherwise."
+msgstr ""
+"La méthode <code>iter_has_child(TreeIter)</code> renvoie la valeur "
+"<code>vrai</code> si <code>TreeIter</code> a des enfants, ou "
+"<code>faux</code> dans le cas contraire."
+
+#: C/model-view-controller.py.page:52(p)
+msgid ""
+"<code>iter_children(treeiter)</code> returns a <code>Gtk.TreeIter</code> "
+"instance pointing to the first child of <code>treeiter</code> or <code>None</"
+"code> if <code>treeiter</code> has no children."
+msgstr ""
+"La méthode <code>iter_children(TreeIter)</code> renvoie un exemple de "
+"<code>Gtk.TreeIter</code> qui pointe vers le premier enfant de "
+"<code>TreeIter</code>, ou sur <code>None</code> si "
+"<code>TreeIter</code> n'a pas d'enfant."
+
+#: C/model-view-controller.py.page:53(p)
+msgid ""
+"<code>get_iter_first()</code> returns a <code>Gtk.TreeIter</code> instance "
+"pointing to the first iterator in the tree (the one at the path <code>\"0\"</"
+"code>) or <code>None</code> if the tree is empty."
+msgstr ""
+"La fonction <code>get_iter_first()</code> renvoie un exemple de <code>Gtk."
+"TreeIter</code> qui pointe vers le premier itérateur arborescent (celui du "
+"chemin <code>\"0\"</code>) ou sur <code>None</code> si l'arborescence est "
+"vide."
+
+#: C/model-view-controller.py.page:56(p)
+msgid "Useful methods for a <code>Gtk.ListStore</code>:"
+msgstr "Méthodes utiles pour un <code>Gtk.ListStore</code> :"
+
+#: C/model-view-controller.py.page:58(p)
+msgid ""
+"<code>append(row)</code> appends a new row to this list store, where "
+"<code>row</code> can be a list of values for each column; <code>row</code> "
+"can also be omitted or <code>None</code>, and in that case an empty row will "
+"be appended. The method returns a <code>Gtk.TreeIter</code> pointing to the "
+"appended row."
+msgstr ""
+"La méthode <code>append(ligne)</code> ajoute une nouvelle ligne à ce magasin "
+"liste, où <code>ligne</code> peut être une liste de valeurs pour chaque "
+"colonne ; <code>ligne</code> peut aussi être omis ou avoir la valeur "
+"<code>None</code> et dans ces cas une colonne vide est ajoutée. La méthode "
+"renvoie un <code>Gtk.TreeIter</code> qui pointe vers la ligne ajoutée."
+
+#: C/model-view-controller.py.page:59(p) C/model-view-controller.py.page:65(p)
+msgid ""
+"<code>remove(iter)</code> removes <code>iter</code> from the <code>Gtk."
+"ListStore</code>, and returns <code>True</code> if the iter is valid, and "
+"<code>False</code> if the iter is not. After being removed, <code>iter</"
+"code> is set to be the next valid row."
+msgstr ""
+"La méthode <code>remove(iter)</code> supprime l'<code>iter</code> du magasin "
+"<code>Gtk.ListStore</code> et renvoie la valeur <code>vrai</code> si "
+"l'itérateur est valide ou <code>faux</code> dans le cas contraire. Après sa "
+"suppression, l'<code>iter</code> est configuré pour devenir la prochaine "
+"ligne valide."
+
+#: C/model-view-controller.py.page:62(p)
+msgid "Useful methods for a <code>Gtk.TreeStore</code>:"
+msgstr "Méthodes utiles pour un <code>Gtk.TreeStore</code> :"
+
+#: C/model-view-controller.py.page:64(p)
+msgid ""
+"<code>append(parent, row)</code> appends a new row to this tree store; "
+"<code>parent</code> must be a valid Gtk.TreeIter. If parent is not "
+"<code>None</code>, then it will append the new row after the last child of "
+"parent, otherwise it will append a row to the top level; <code>row</code> "
+"can be a list of values for each column, or it can be omitted or <code>None</"
+"code>; in this latter case an empty row will be appended. The method returns "
+"a <code>Gtk.TreeIter</code> pointing to the appended row."
+msgstr ""
+"La méthode <code>append(parent, ligne)</code> ajoute une nouvelle ligne à ce "
+"magasin arborescent ; <code>parent</code> doit être un Gtk.TreeIter valide. "
+"Si la valeur du parent est différente de <code>None</code>, alors elle "
+"ajoute la nouvelle ligne après le dernier enfant du parent, sinon elle "
+"ajoute une ligne au premier niveau ; <code>ligne</code> peut être une liste "
+"de valeurs pour chaque colonne, ou alors peut être omis ou avoir la valeur "
+"<code>None</code> ; dans ce dernier cas, une colonne vide est ajoutée. La "
+"méthode renvoie un <code>Gtk.TreeIter</code> qui pointe vers la ligne "
+"ajoutée."
+
+#: C/model-view-controller.py.page:71(title)
+msgid "The View: the TreeView case"
+msgstr "La Vue : le cas de la TreeView"
+
+#: C/model-view-controller.py.page:73(p)
+msgid ""
+"A Treeview shows the structure of children and parent items as a tree. See "
+"for instance <link xref=\"treeview_treestore.py\">this example</link>."
+msgstr ""
+"Une TreeView affiche la structure des éléments enfants et parents "
+"sous la forme des branches d'un arbre. Regardez cet <link xref="
+"\"treeview_treestore.py\">exemple</link>."
+
+#: C/model-view-controller.py.page:75(p)
+msgid ""
+"The <code>Gtk.TreeViewColumn</code> is used to organize the vertical columns."
+msgstr ""
+"La <code>Gtk.TreeViewColumn</code> est utilisée pour organiser les colonnes "
+"verticales."
+
+#: C/model-view-controller.py.page:77(p)
+msgid "Useful methods for a <code>Gtk.TreeView</code>:"
+msgstr "Méthodes utiles pour une vue <code>Gtk.TreeView</code> :"
+
+#: C/model-view-controller.py.page:79(p)
+msgid ""
+"<code>set_model(model)</code> sets the model for this tree view. If this "
+"tree view already has a model set, it will remove it before setting the new "
+"model. If model is <code>None</code>, then it will unset the old model."
+msgstr ""
+"La méthode <code>set_model(modele)</code> définit le modèle de cette vue "
+"arborescente. Si elle a déjà un modèle défini, la fonction le supprime avant "
+"de lui définir le nouveau. Si la valeur du modèle est <code>None</code>, la "
+"fonction supprime l'ancien modèle."
+
+#: C/model-view-controller.py.page:80(p)
+msgid ""
+"<code>get_model()</code> returns the model this tree view is based on, "
+"<code>None</code> if the model is unset."
+msgstr ""
+"La méthode <code>get_model()</code> renvoie le modèle sur lequel est "
+"construite cette vue arborescente, ou <code>None</code> si le modèle n'est "
+"pas défini."
+
+#: C/model-view-controller.py.page:81(p)
+msgid ""
+"<code>append_column(column)</code> appends <code>column</code> to the list "
+"of columns."
+msgstr ""
+"La méthode <code>append_column(colonne)</code> ajoute <code>colonne</code> à "
+"la liste de colonnes."
+
+#: C/model-view-controller.py.page:82(p)
+msgid ""
+"<code>get_selection()</code> gets the <code>Gtk.TreeSelection</code> "
+"associated with this tree view."
+msgstr ""
+"La méthode <code>get_selection()</code> récupère la sélection <code>Gtk."
+"TreeSelection</code> associée à cette vue arborescente."
+
+#: C/model-view-controller.py.page:85(p)
+msgid "Useful methods for a <code>Gtk.TreeViewColumn</code>:"
+msgstr "Méthodes utiles pour une <code>Gtk.TreeViewColumn</code> :"
+
+#: C/model-view-controller.py.page:87(p)
+msgid ""
+"<code>add_attribute(renderer, attribute, value)</code> adds an attribute "
+"mapping to this column. <code>attribute</code> is the parameter on "
+"<code>renderer</code> to be set from the <code>value</code>"
+msgstr ""
+"La méthode <code>add_attribute(renderer, attribut, valeur)</code> ajoute un "
+"mappage d'attribut à cette colonne. <code>attribut</code> est le paramètre "
+"du <code>renderer</code> à définir à partir de la valeur <code>valeur</code>"
+
+#: C/model-view-controller.py.page:88(p)
+msgid ""
+"<code>pack_start(renderer, expand)</code> packs <code>renderer</code> into "
+"the beginning of this column. If <code>expand</code> is <code>False</code>, "
+"then <code>renderer</code> is allocated no more space than it needs. Any "
+"unused space is divided evenly between cells for which expand is <code>True</"
+"code>."
+msgstr ""
+"La méthode <code>pack_start(renderer, expand)</code> compresse le "
+"<code>renderer</code> au début de cette colonne. Si la valeur "
+"d'<code>expand</code> est <code>False</code>, alors il est alloué au "
+"<code>renderer</code> juste l'espace qui lui est nécessaire. Tout espace "
+"inutilisé est divisé à parts égales entre les cellules pour lesquelles la "
+"valeur est <code>True</code>."
+
+#: C/model-view-controller.py.page:89(p)
+msgid ""
+"<code>pack_end(renderer, expand)</code> adds <code>renderer</code> to end of "
+"this column. If <code>expand</code> is <code>False</code>, then "
+"<code>renderer</code> is allocated no more space than it needs. Any unused "
+"space is divided evenly between cells for which <code>expand</code> is "
+"<code>True</code>."
+msgstr ""
+"La méthode <code>pack_end(renderer, expand)</code> compresse le "
+"<code>renderer</code> à la fin de cette colonne. Si la valeur "
+"d'<code>expand</code> est <code>False</code>, alors il est alloué au "
+"<code>renderer</code> juste l'espace qui lui est nécessaire. Tout espace "
+"inutilisé est divisé à parts égales entre les cellules pour lesquelles la "
+"valeur est <code>True</code>."
+
+#: C/model-view-controller.py.page:90(p)
+msgid ""
+"<code>set_sort_column_id(sort_column_id)</code> sets the column of the model "
+"by which this column (of the view) should be sorted. This also makes the "
+"columnd header clickable."
+msgstr ""
+"La méthode <code>set_sort_column_id(sort_column_id)</code> définit par quel "
+"argument la colonne (de cette vue) doit être triée. Elle rend aussi "
+"cliquable l'en-tête de la colonne."
+
+#: C/model-view-controller.py.page:91(p)
+msgid ""
+"<code>set_sort_indicator(setting)</code> sets whether a little arrow is "
+"displayed in the column header; <code>setting</code> can either be "
+"<code>True</code> (indicator is shown) or <code>False</code>."
+msgstr ""
+"La méthode <code>set_sort_indicator(setting)</code> définit s'il faut "
+"afficher une petite flèche dans l'en-tête de la colonne ; le <code>setting</"
+"code> possible peut être soit <code>True</code> (la flèche est visible), "
+"soit <code>False</code>."
+
+#: C/model-view-controller.py.page:92(p)
+msgid ""
+"<code>set_sort_order(order)</code> changes the order by which the column is "
+"sorted; <code>order</code> can either be <code>Gtk.SortType.ASCENDING</code> "
+"or <code>Gtk.SortType.DESCENDING</code>."
+msgstr ""
+"La méthode <code>set_sort_order(ordre)</code> modifie l'ordre de tri de la "
+"colonne ; l'<code>ordre</code> peut être soit <code>Gtk.SortType.ASCENDING</"
+"code>, soit <code>Gtk.SortType.DESCENDING</code>."
+
+#: C/model-view-controller.py.page:98(title)
+msgid "The View: the ComboBox case"
+msgstr "La Vue : cas de l'élément graphique BoiteCombinee"
+
+#: C/model-view-controller.py.page:100(p)
+msgid ""
+"A <code>Gtk.ComboBox</code> allows for the selection of an item from a "
+"dropdown menu, see for instance <link xref=\"combobox.py\">this example</"
+"link>. For a list of textual choices, one can also use the simpler <code>Gtk."
+"ComboBoxText</code>. Both <code>Gtk.ComboBox</code> and <code>Gtk."
+"ComboBoxText</code> can contain an entry."
+msgstr ""
+"Une <code>Gtk.ComboBox</code> permet de sélectionner un élément à partir "
+"d'un menu déroulant, regardez <link xref=\"combobox.py\">cet exemple</link>. "
+"Pour une liste de choix textuels, on peut aussi utiliser plus simplement un "
+"<code>Gtk.ComboBoxText</code>. Les deux peuvent contenir une entrée."
+
+#: C/model-view-controller.py.page:102(p)
+msgid "Useful methods for a <code>Gtk.ComboBox</code>:"
+msgstr "Méthodes utiles pour un élément graphique <code>Gtk.ComboBox</code> :"
+
+#: C/model-view-controller.py.page:104(p)
+msgid ""
+"The static method <code>new_with_entry()</code> creates a new empty "
+"<code>Gtk.ComboBox</code> with an entry; the static method "
+"<code>new_with_model(model)</code> creates a new one with the model "
+"initialized to <code>model</code>; and the static method "
+"<code>new_with_model_and_entry(model)</code> is a combination of the two."
+msgstr ""
+"La méthode statique <code>new_with_entry()</code> crée une nouvelle "
+"BoiteCombinee <code>Gtk.ComboBox</code> avec une entrée ; la méthode "
+"statique <code>new_with_model(model)</code> en crée une nouvelle à partir du "
+"modèle initialisé à <code>model</code> ; et la méthode statique "
+"<code>new_with_model_and_entry(model)</code> est une combinaison des deux "
+"autres."
+
+#: C/model-view-controller.py.page:105(p)
+msgid ""
+"<code>get_active_iter()</code> returns a <code>Gtk.TreeIter</code> pointing "
+"to the current active item. If no active item exists, <code>None</code> is "
+"returned."
+msgstr ""
+"La méthode <code>get_active_iter()</code> renvoie un <code>Gtk.TreeIter</"
+"code> qui pointe vers l'élément actif actuel. S'il n'y en a pas, elle "
+"renvoie <code>None</code>."
+
+#: C/model-view-controller.py.page:106(p)
+msgid ""
+"<code>set_model(model)</code> sets the model used by this combo box to be "
+"<code>model</code>, and it will unset a previously set model (if there is "
+"any). If <code>model</code> is <code>None</code>, then it will unset the "
+"model. Note that this function does not clear the cell renderers."
+msgstr ""
+"La méthode <code>set_model(model)</code> définit le modèle utilisé par la "
+"boîte combinée à <code>model</code> et annule le modèle précédent s'il "
+"existait déjà. Si la valeur <code>model</code> est <code>None</code>, alors "
+"la fonction annule le paramétrage du modèle. Notez que cette fonction ne "
+"supprime pas les générateurs de rendu de cellules."
+
+#: C/model-view-controller.py.page:107(p)
+msgid ""
+"<code>set_entry_text_column(text_column)</code> sets the model column which "
+"this combo box should use to get strings from to be <code>text_column</"
+"code>. The column <code>text_column</code> in the model of this combo box "
+"must be of type <code>str</code> (this is only relevant if this combo box "
+"has been created with the “has-entry” property set to True)."
+msgstr ""
+"La méthode <code>set_entry_text_column(text_column)</code> définit la "
+"colonne du modèle que cette boîte combinée doit utiliser pour que ses "
+"chaînes de caractères soient du type <code>text_column</code>. La colonne "
+"<code>text_column</code> dans ce modèle de boîte combinée doit être du type "
+"<code>str</code> (ceci n'est pertinent que si cette boîte combinée a été "
+"créée avec la propriété « has-entry » définie à True)."
+
+#: C/model-view-controller.py.page:108(p)
+msgid ""
+"<code>set_wrap_width(width)</code> sets the wrap width of this combo box to "
+"be <code>width</code>. The wrap width is basically the preferred number of "
+"columns when you want the popup to be layed out in a grid."
+msgstr ""
+"La méthode <code>set_wrap_width(largeur)</code> définit la largeur du texte "
+"de cette boîte combinée à <code>largeur</code>. Basiquement, la largeur du "
+"texte est votre nombre préféré de colonnes quand vous voulez que le message "
+"surgissant soit placé dans une grille."
+
+#: C/model-view-controller.py.page:111(p)
+msgid "Useful methods for a <code>Gtk.ComboBoxText</code>:"
+msgstr "Méthodes utiles pour une boîte <code>Gtk.ComboBoxText</code> :"
+
+#: C/model-view-controller.py.page:113(p)
+msgid ""
+"The static method <code>new_with_entry()</code> creates a new empty "
+"<code>Gtk.ComboBoxText</code> with an entry."
+msgstr ""
+"La méthode statique <code>new_with_entry()</code> crée une nouvelle "
+"<code>Gtk.ComboBoxText</code> vide avec une entrée."
+
+#: C/model-view-controller.py.page:114(p)
+msgid ""
+"<code>append_text(text)</code> appends <code>text</code> to the list of "
+"strings stored in this combo box."
+msgstr ""
+"La méthode <code>append_text(texte)</code> ajoute le <code>texte</code> à la "
+"liste des chaînes stockées dans cette boîte combinée."
+
+#: C/model-view-controller.py.page:115(p)
+msgid ""
+"<code>get_active_text()</code> returns the currently active string in this "
+"combo box, or <code>None</code> if none is selected. If this combo box "
+"contains an entry, this function will return its contents (which will not "
+"necessarily be an item from the list)."
+msgstr ""
+"La méthode <code>get_active_text()</code> renvoie la chaîne active actuelle "
+"de cette boîte combinée, ou <code>None</code> si aucune chaîne n'est "
+"sélectionnée. Si la boîte combinée contient une entrée, la méthode renvoie "
+"son contenu (qui n'est pas nécessairement un élément de la liste)."
+
+#: C/model-view-controller.py.page:121(title)
+msgid "The View: the Cellrenderers"
+msgstr "La Vue : les Cellrenderers"
+
+#: C/model-view-controller.py.page:123(p)
+msgid ""
+"The View makes use of <code>Gtk.CellRenderer</code>s of various types to "
+"draw the data."
+msgstr ""
+"La Vue se sert de <code>Gtk.CellRenderer</code> de différents types pour "
+"dessiner les données."
+
+#: C/model-view-controller.py.page:125(p)
+msgid "Implementations of <code>Gtk.CellRenderer</code> and useful methods:"
+msgstr "Implémentations de <code>Gtk.CellRenderer</code> et méthodes utiles :"
+
+#: C/model-view-controller.py.page:127(p)
+msgid "<code>Gtk.CellRendererText</code> - renders text in a cell"
+msgstr "<code>Gtk.CellRendererText</code> - génère du texte dans une cellule"
+
+#: C/model-view-controller.py.page:128(p)
+msgid ""
+"<code>Gtk.CellRendererToggle</code> - renders a toggle or radio button in a "
+"cell. Useful methods:"
+msgstr ""
+"<code>Gtk.CellRendererToggle</code> - génère un bouton de basculement ou de "
+"radio dans une cellule. Méthodes utiles :"
+
+#: C/model-view-controller.py.page:130(p)
+msgid ""
+"<code>set_active(setting)</code> - activates or deactivates a cell renderer"
+msgstr ""
+"<code>set_active(setting)</code> - active ou désactive un générateur de rendu"
+
+#: C/model-view-controller.py.page:131(p)
+msgid "<code>get_active()</code> - returns whether the cell renderer is active"
+msgstr ""
+"<code>get_active()</code> - indique si le générateur de rendu est actif"
+
+#: C/model-view-controller.py.page:132(p)
+msgid ""
+"<code>set_radio(radio)</code> - if radio is <code>True</code>, the cell "
+"renderer renders a radio toggle (i.e. a toggle in a group of mutually-"
+"exclusive toggles); if <code>False</code>, it renders a check toggle (a "
+"standalone boolean option)"
+msgstr ""
+"<code>set_radio(radio)</code> - si la valeur radio est <code>True</code>, le "
+"générateur crée un bouton de radio inverseur (par ex. un inverseur d'un "
+"groupe mutuellement exclusif) ; si la valeur est <code>False</code>, il "
+"génère un inverseur de vérification (une option boléenne autonome)"
+
+#: C/model-view-controller.py.page:133(p)
+msgid ""
+"<code>get_radio()</code> - returns whether we are rendering radio toggles "
+"rather than checkboxes."
+msgstr ""
+"<code>get_radio()</code> - indique si nous générons des boutons de "
+"basculement au lieu de cases à cocher."
+
+#: C/model-view-controller.py.page:136(p)
+msgid "<code>Gtk.CellRendererPixbuf</code> - renders an image in a cell"
+msgstr ""
+"<code>Gtk.CellRendererPixbuf</code> - génère un rendu image dans une cellule"
+
+#: C/model-view-controller.py.page:137(p)
+msgid ""
+"<code>Gtk.CellRendererCombo</code> - renders text in a cell; but while "
+"<code>Gtk.CellRendererText</code> offers a simple entry to edit the text, "
+"<code>Gtk.CellRendererCombo</code> offers a <code>Gtk.ComboBox</code> widget "
+"to edit the text. It can be used with and without an associated Gtk.Entry "
+"widget, depending on the value of the “has-entry” property."
+msgstr ""
+"<code>Gtk.CellRendererCombo</code> - génère un rendu texte dans une "
+"cellule ; mais, alors que <code>Gtk.CellRendererText</code> n'offre qu'une "
+"simple entrée pour modifier le texte, <code>Gtk.CellRendererCombo</code> "
+"offre un élément graphique <code>Gtk.ComboBox</code> pour la même action. Il "
+"peut être utilisé avec ou sans un élément graphique Gtk.Entry associé, en "
+"fonction de la propriété de la valeur « has-entry »."
+
+#: C/model-view-controller.py.page:138(p)
+msgid ""
+"<code>Gtk.CellRendererProgress</code> - renders a numeric value as a "
+"progress bar in a cell; it can display a text on top of the progress bar"
+msgstr ""
+"<code>Gtk.CellRendererProgress</code> - génère une valeur numérique sous "
+"forme de barre de progression dans une cellule ; il peut afficher du texte "
+"au-dessus de la barre de progression"
+
+#: C/model-view-controller.py.page:139(p)
+msgid ""
+"<code>Gtk.CellRendererSpinner</code> - renders a spinning animation in a cell"
+msgstr ""
+"<code>Gtk.CellRendererSpinner</code> - génère l'animation d'un indicateur "
+"dans une cellule"
+
+#: C/model-view-controller.py.page:140(p)
+msgid "<code>Gtk.CellRendererSpin</code> - renders a spin button in a cell"
+msgstr ""
+"<code>Gtk.CellRendererSpin</code> - génère un bouton d'activité dans une "
+"cellule"
+
+#: C/model-view-controller.py.page:141(p)
+msgid ""
+"<code>Gtk.CellRendererAccel</code> - renders a keyboard accelerator in a cell"
+msgstr ""
+"<code>Gtk.CellRendererAccel</code> - génère un accélérateur de clavier dans "
+"une cellule"
+
+#: C/model-view-controller.py.page:147(title)
+msgid "The Controller: the Selection"
+msgstr "Le contrôleur : la sélection"
+
+#: C/model-view-controller.py.page:149(p)
+msgid ""
+"Most applications will need to not only deal with displaying data, but also "
+"receiving input events from users. To do this, simply get a reference to a "
+"selection object and connect to the <code>\"changed\"</code> signal."
+msgstr ""
+"La plupart des applications doivent non seulement afficher des données, mais "
+"aussi réceptionner les événements émis par les utilisateurs. Pour faire "
+"cela, il faut tout simplement obtenir une référence pour un objet "
+"sélectionné et la connecter au signal « changed »."
+
+#: C/model-view-controller.py.page:151(code)
+#, no-wrap
+msgid ""
+"\n"
+"select = tree.get_selection()\n"
+"select.connect(\"changed\", on_tree_selection_changed)\n"
+msgstr ""
+"\n"
+"select = tree.get_selection()\n"
+"select.connect(\"changed\", on_tree_selection_changed)\n"
+
+#: C/model-view-controller.py.page:156(p)
+msgid "Then to retrieve data for the row selected:"
+msgstr "Ensuite, pour récupérer les données pour la colonne sélectionnée :"
+
+#: C/model-view-controller.py.page:158(code)
+#, no-wrap
+msgid ""
+"\n"
+"def on_tree_selection_changed(selection):\n"
+"    model, treeiter = selection.get_selected()\n"
+"    if treeiter != None:\n"
+"        print \"You selected\", model[treeiter][0]\n"
+msgstr ""
+"\n"
+"def on_tree_selection_changed(selection):\n"
+"    model, treeiter = selection.get_selected()\n"
+"    if treeiter != None:\n"
+"        print \"You selected\", model[treeiter][0]\n"
+
+#: C/model-view-controller.py.page:165(p)
+msgid "Useful method for a <code>Gtk.TreeSelection</code>:"
+msgstr "Méthodes utiles pour une <code>Gtk.TreeSelection</code> :"
+
+#: C/model-view-controller.py.page:168(p)
+msgid ""
+"<code>set_mode(type)</code> sets the type of selection, where type is one of"
+msgstr ""
+"La méthode <code>set_mode(type)</code> définit le type de sélection, où type "
+"est l'un des"
+
+#: C/model-view-controller.py.page:170(p)
+msgid "<code>Gtk.SelectionMode.NONE</code> - no selection is possible"
+msgstr "<code>Gtk.SelectionMode.NONE</code> - pas de sélection possible"
+
+#: C/model-view-controller.py.page:171(p)
+msgid ""
+"<code>Gtk.SelectionMode.SINGLE</code> - zero or one element may be selected"
+msgstr ""
+"<code>Gtk.SelectionMode.SINGLE</code> - zéro ou un élément peut être "
+"sélectionné"
+
+#: C/model-view-controller.py.page:172(p)
+msgid ""
+"<code>Gtk.SelectionMode.BROWSE</code> - exactly one element is selected. In "
+"some circumstances, such as initially or during a search operation, it’s "
+"possible for no element to be selected. What is really enforced is that the "
+"user can’t deselect a currently selected element except by selecting another "
+"element."
+msgstr ""
+"<code>Gtk.SelectionMode.BROWSE</code> - exactement un élément est "
+"sélectionné. Dans certaines circonstances, comme au début ou pendant une "
+"opération de recherche, il est possible qu'il n'y ait aucun élément pouvant "
+"être sélectionné. Ce qui est réellement imposé, c'est l'impossibilité pour "
+"l'utilisateur de désélectionner un élément actuellement sélectionné sauf "
+"s'il en sélectionne un autre."
+
+#: C/model-view-controller.py.page:173(p)
+msgid ""
+"<code>Gtk.SelectionMode.MULTIPLE</code> -any number of elements may be "
+"selected. Clicks toggle the state of an item. Any number of elements may be "
+"selected. The Ctrl key may be used to enlarge the selection, and Shift key "
+"to select between the focus and the child pointed to. Some widgets may also "
+"allow Click-drag to select a range of elements."
+msgstr ""
+"<code>Gtk.SelectionMode.MULTIPLE</code> - n'importe quel nombre d'éléments "
+"peuvent être sélectionnés. Un clic sur un élément modifie son état. La "
+"touche Ctrl permet d'élargir la sélection et la touche Maj d'y ajouter les "
+"enfants pointés. Quelques éléments graphiques peuvent aussi permettre le "
+"cliqué-glissé pour sélectionner un ensemble d'éléments."
+
+#: C/model-view-controller.py.page:176(p)
+msgid ""
+"<code>get_selected()</code> returns a tuple <code>(model, treeiter)</code>, "
+"where <code>model</code> is the current model and <code>treeiter</code> a "
+"<code>Gtk.TreeIter</code> pointing to the currently selected row, or None if "
+"no rows are selected. The method does not work if the selection mode is set "
+"to <code>Gtk.SelectionMode.MULTIPLE</code>; in that case, use "
+"<code>get_selected_rows()</code> instead, which Returns a list of <code>Gtk."
+"TreePath</code> instances of all selected rows."
+msgstr ""
+"La méthode <code>get_selected()</code> renvoie un tuple <code>(modele, "
+"TreeIter)</code>, où <code>modele</code> est le modèle actuel et "
+"<code>TreeIter</code> un <code>Gtk.TreeIter</code> qui pointe soit "
+"vers la ligne actuellement sélectionnée, soit vers None si aucune ligne "
+"n'est sélectionnée. La méthode ne marche pas si le type de sélection est "
+"défini à <code>Gtk.SelectionMode.MULTIPLE</code> ; dans ce cas, utilisez à "
+"la place la fonction <code>get_selected_rows()</code>, qui renvoie une liste "
+"d'exemples <code>Gtk.TreePath</code> de toutes les lignes sélectionnées."
+
+#: 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 "Le tutoriel Python Gtk+ 3 - éléments graphiques arborescents et listes"
+
+#: C/model-view-controller.py.page:191(link)
+msgid "The Python Gtk+ 3 Tutorial - CellRenderers"
+msgstr "Le tutoriel Python Gtk+ 3 - Générateurs de rendu"
+
+#: C/model-view-controller.py.page:192(link)
+msgid "The Python Gtk+ 3 Tutorial - ComboBox"
+msgstr "Le tutoriel Python Gtk+ 3 - Boîte combinée"
+
+#. When image changes, this message 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:16(desc) C/messagedialog.py.page:16(desc)
+#: C/messagedialog.vala.page:7(title)
+#, fuzzy
+#| msgid "MessageDialog"
+msgid "MessageDialog (Vala)"
+msgstr "Boîte de dialogue de message"
+
+#: C/messagedialog.vala.page:17(desc) C/messagedialog.py.page:18(desc)
+#: C/messagedialog.c.page:18(desc)
 msgid "A message window"
 msgstr "Une fenêtre de message"
 
-#: C/messagedialog.vala.page:19(title) C/messagedialog.py.page:19(title)
-#: C/messagedialog.js.page:19(title)
+#: 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 "Boîte de dialogue de message"
 
-#: C/messagedialog.vala.page:21(p)
+#: 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 ""
 "Une boîte de dialogue de message modal qui peut faire exploser le monde."
 
-#: C/messagedialog.vala.page:29(link)
+#: C/messagedialog.vala.page:30(link)
 msgid "Gtk.ResponseType"
 msgstr "Gtk.ResponseType"
 
-#: C/messagedialog.vala.page:30(link) C/messagedialog.js.page:32(link)
-#: C/entry.js.page:31(link)
+#: 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:31(link)
+#: C/messagedialog.vala.page:32(link)
 msgid "Gtk.DialogFlags"
 msgstr "Gtk.DialogFlags"
 
-#: C/messagedialog.vala.page:32(link)
+#: C/messagedialog.vala.page:33(link)
 msgid "Gtk.MessageType"
 msgstr "Gtk.MessageType"
 
-#: C/messagedialog.vala.page:33(link)
+#: C/messagedialog.vala.page:34(link)
 msgid "Gtk.ButtonsType"
 msgstr "Gtk.ButtonsType"
 
-#: C/messagedialog.py.page:21(p)
+#: C/messagedialog.py.page:7(title)
+#, fuzzy
+#| msgid "MessageDialog"
+msgid "MessageDialog (Python)"
+msgstr "Boîte de dialogue de message"
+
+#: C/messagedialog.py.page:23(p)
 msgid ""
 "A message dialog which prints messages on the terminal, depending on your "
 "choices."
@@ -3925,41 +8716,56 @@ msgstr ""
 "Une boîte de dialogue qui affiche les messages sur le terminal en fonction "
 "de vos choix."
 
-#: C/messagedialog.py.page:33(title)
+#: C/messagedialog.py.page:35(title)
 msgid "Useful methods for a MessageDialog widget"
-msgstr ""
+msgstr "Méthodes utiles pour un élément graphique BoiteDeDialogueDemessage"
 
-#: C/messagedialog.py.page:35(p)
+#: C/messagedialog.py.page:38(p)
 msgid ""
 "In the constructor of MessageDialog we could set flags as <code>Gtk."
 "DialogFlags.DESTROY_WITH_PARENT</code> (to destroy the messagedialog window "
 "when its parent window is destroyed) or as <code>Gtk.DialogFlags.MODAL</"
 "code> (no interaction with other windows of the application)."
 msgstr ""
+"Dans le constructeur de BoiteDeDialogueDemessage, nous pouvons définir les "
+"drapeaux à <code>Gtk.DialogFlags.DESTROY_WITH_PARENT</code> (pour la "
+"détruire si sa fenêtre parente est détruite), ou à <code>Gtk.DialogFlags."
+"MODAL</code> (aucune interaction avec les autres fenêtres de l'application)."
 
-#: C/messagedialog.py.page:36(p)
+#: C/messagedialog.py.page:39(p)
 msgid ""
 "In the constructor of MessageDialog we could set type as any of <code>Gtk."
 "MessageType.INFO, Gtk.MessageType.WARNING, Gtk.MessageType.QUESTION, Gtk."
 "MessageType.ERROR, Gtk.MessageType.OTHER</code> depending on what type of "
 "message we want."
 msgstr ""
+"Dans le constructeur de BoiteDeDialogueDemessage, nous pouvons définir le "
+"type à <code>Gtk.MessageType.INFO, Gtk.MessageType.WARNING, Gtk.MessageType."
+"QUESTION, Gtk.MessageType.ERROR, Gtk.MessageType.OTHER</code> en fonction du "
+"type de message voulu."
 
-#: C/messagedialog.py.page:37(p)
+#: C/messagedialog.py.page:40(p)
 msgid ""
 "In the constructor of MessageDialog we could set buttons as any of <code>Gtk."
 "ButtonsType.NONE, Gtk.ButtonsType.OK, Gtk.ButtonsType.CLOSE, Gtk.ButtonsType."
 "CANCEL, Gtk.ButtonsType.YES_NO, Gtk.ButtonsType.OK_CANCEL</code>, or any "
 "button using <code>add_button()</code> as in Gtk.Dialog."
 msgstr ""
+"Dans le constructeur de BoiteDeDialogueDemessage, nous pouvons définir les "
+"boutons à <code>Gtk.ButtonsType.NONE, Gtk.ButtonsType.OK, Gtk.ButtonsType."
+"CLOSE, Gtk.ButtonsType.CANCEL, Gtk.ButtonsType.YES_NO, Gtk.ButtonsType."
+"OK_CANCEL</code>, ou n'importe quel bouton utilisant <code>add_button()</"
+"code> comme dans Gtk.Dialog."
 
-#: C/messagedialog.py.page:38(p)
+#: C/messagedialog.py.page:41(p)
 msgid ""
 "We could substitute the default image of the MessageDialog with another "
 "image using"
 msgstr ""
+"Nous pouvons substituer l'image par défaut de la BoiteDeDialogueDemessage "
+"par une autre avec"
 
-#: C/messagedialog.py.page:39(code)
+#: C/messagedialog.py.page:42(code)
 #, no-wrap
 msgid ""
 "\n"
@@ -3968,61 +8774,211 @@ msgid ""
 "image.show()\n"
 "messagedialog.set_image(image)"
 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)"
 
-#: C/messagedialog.py.page:44(p)
+#: C/messagedialog.py.page:47(p)
+#, fuzzy
+#| msgid ""
+#| "where <code>Gtk.STOCK_CAPS_LOCK_WARNING</code> is any image from <link "
+#| "href=\"http://developer.gnome.org/gtk3/3.4/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>."
 msgid ""
 "where <code>Gtk.STOCK_CAPS_LOCK_WARNING</code> is any image from <link href="
-"\"http://developer.gnome.org/gtk3/3.4/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>."
+"\"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 ""
+"où <code>Gtk.STOCK_CAPS_LOCK_WARNING</code> est n'importe quelle image des "
+"<link href=\"http://developer.gnome.org/gtk3/3.4/gtk3-Stock-Items.html";
+"\">Éléments de la collection</link>. Nous pouvons aussi définir n'importe "
+"quelle image comme dans l'élément graphique Image, avec la fonction "
+"<code>image.set_from_file(« nomdufichier.png »)</code>."
 
-#: C/messagedialog.py.page:45(p)
+#: C/messagedialog.py.page:48(p)
 msgid ""
 "<code>format_secondary_text(\"some secondary message\")</code> sets a "
 "secondary message. The primary text becomes bold."
 msgstr ""
+"La méthode <code>format_secondary_text(« messagesecondaire »)</code> définit "
+"un message secondaire. Le texte principal se met en gras."
 
-#: C/messagedialog.py.page:55(link)
-#, fuzzy
-#| msgid "Gtk.MessageDialog"
+#: C/messagedialog.py.page:58(link) C/messagedialog.c.page:38(link)
 msgid "GtkMessageDialog"
-msgstr "Gtk.MessageDialog"
+msgstr "GtkMessageDialog"
 
-#: C/messagedialog.py.page:56(link) C/dialog.py.page:46(link)
-#, fuzzy
-#| msgid "Gtk.Dialog"
+#: C/messagedialog.py.page:59(link) C/dialog.py.page:49(link)
+#: C/dialog.c.page:35(link)
 msgid "GtkDialog"
-msgstr "Gtk.Dialog"
+msgstr "GtkDialog"
 
-#: C/messagedialog.py.page:58(link) C/messagedialog.js.page:29(link)
-#: C/gmenu.py.page:31(link) C/gmenu.js.page:29(link) C/gmenu.c.page:31(link)
-#: C/aboutdialog.js.page:28(link)
-msgid "GSimpleAction"
-msgstr "GSimpleAction"
+#: C/messagedialog.py.page:62(link) C/messagedialog.c.page:40(link)
+#: C/aboutdialog.c.page:38(link)
+msgid "GActionMap"
+msgstr "GActionMap"
 
-#: C/messagedialog.py.page:59(link)
+#: C/messagedialog.js.page:7(title)
 #, fuzzy
-#| msgid "GtkApplication"
-msgid "GActionMap"
-msgstr "GtkApplication"
+#| msgid "MessageDialog"
+msgid "MessageDialog (JavaScript)"
+msgstr "Boîte de dialogue de message"
 
-#: C/messagedialog.py.page:60(link) C/messagedialog.js.page:28(link)
-#: C/gmenu.vala.page:24(title) C/gmenu.py.page:19(title)
-#: C/gmenu.py.page:30(link) C/gmenu.js.page:19(title) C/gmenu.js.page:28(link)
-#: C/gmenu.c.page:19(title) C/gmenu.c.page:30(link)
-#: C/aboutdialog.py.page:40(link) C/aboutdialog.js.page:27(link)
-msgid "GMenu"
-msgstr "GMenu"
+#: C/messagedialog.js.page:20(desc)
+msgid "A popup message attached to a window"
+msgstr "Un message surgissant lié à une fenêtre"
+
+#: 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 ""
+"Une BoiteDeDialogueDemessage contient un message modale surgissant auquel "
+"vous devez d'abord répondre avant de pouvoir retourner travailler dans la "
+"fenêtre à laquelle elle est liée. Elle peut faire exploser le monde (ou au "
+"moins elle le prétend). Pour faire apparaître le message surgissant quand "
+"vous exécutez cet exemple, cliquez sur « Message » dans le menu de son "
+"application : c'est le menu qui s'affiche quand vous cliquez sur le nom de "
+"l'application dans le coin supérieur gauche de l'écran, à côté de "
+"« Activités »."
+
+#: 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 ""
+"La différence entre une BoiteDeDialogueDemessage et une <link xref=\"dialog."
+"js\">Boîte de dialogue</link> est que la boîte de dialogue peut contenir "
+"n'importe quel élément graphique ou contenu que vous souhaitez y mettre, "
+"alors que la BoiteDeDialogueDemessage est juste un moyen pratique de faire "
+"s'afficher un message basique surgissant avec des boutons."
+
+#: C/messagedialog.js.page:69(p) C/comboboxtext.js.page:65(p)
+msgid ""
+"All the code for this sample goes in the MessageDialogExample class. The "
+"above code creates a <link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/";
+"gjs/Gtk.Application.html\">Gtk.Application</link> for our widgets and window "
+"to go in."
+msgstr ""
+"Tout le code de cet exemple va dans la classe MessageDialogExample. Le code "
+"ci-dessus crée une <link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/";
+"gjs/Gtk.Application.html\">Gtk.Application</link> pour nos éléments "
+"graphiques et la fenêtre qui les contient."
+
+#: C/messagedialog.js.page:91(p)
+msgid ""
+"For this example, all that we have in the window the popup comes out of is a "
+"silly warning <link xref=\"label.js\">Label.</link>"
+msgstr ""
+"Dans cet exemple, nous avons dans la BoiteDeDialogueDemessage une <link xref="
+"\"label.js\">Étiquette</link> contenant un stupide message d'avertissement."
+
+#: C/messagedialog.js.page:95(title)
+msgid "Creating the application's menu"
+msgstr "Création du menu de l'application"
+
+#: C/messagedialog.js.page:121(p)
+msgid ""
+"Here, we build the <link xref=\"gmenu.js\">GMenu</link> where we'll be "
+"putting the \"Message\" button which triggers the popup MessageDialog. The "
+"GMenu is the menu that appears when you click the application's name in the "
+"upper-left corner of the screen, next to the Activities menu. Our menu only "
+"has two options in it: Message, and Quit."
+msgstr ""
+"Ici, nous construisons le <link xref=\"gmenu.js\">GMenu</link> où nous "
+"mettons le bouton « Message » qui active la BoiteDeDialogueDemessage. le "
+"GMenu est le menu qui s'affiche quand vous cliquez sur le nom de "
+"l'application dans le coin supérieur gauche de l'écran, à côté de "
+"« Activités ». Notre menu ne contient que deux options : Message et Quit."
+
+#: C/messagedialog.js.page:125(title)
+msgid "Creating the MessageDialog"
+msgstr "Création de la BoiteDeDialogueDemessage"
+
+#: C/messagedialog.js.page:141(p)
+msgid ""
+"To make our MessageDialog a popup attached to the main window, we set its "
+"modal property to true and set it to be \"transient_for\" _window. After "
+"that, we can set what kind of buttons it has and what kind of message it is "
+"(which determines what icon appears next to the message), and write out the "
+"text inside it, before connecting its \"response\" signal to the callback "
+"function which handles it."
+msgstr ""
+"Pour que notre BoiteDeDialogueDemessage soit liée à la fenêtre principale, "
+"nous définissons sa propriété modale à vrai et la configurons comme une "
+"\"transient_for\" _window. Ensuite, nous définissons quel type de bouton et "
+"quel genre de message nous voulons y mettre (celui-ci va déterminer le type "
+"d'icône qui accompagnera le message). Enfin nous y saisissons le texte du "
+"message et connectons son signal « response » à la fonction de rappel qui le "
+"prend en charge."
+
+#: C/messagedialog.js.page:142(p)
+msgid "Here are some resources for making your own MessageDialogs:"
+msgstr ""
+"Voici quelques ressources pour bâtir vos propres BoiteDeDialogueDemessage"
+
+#: C/messagedialog.js.page:144(link)
+msgid "List of button types"
+msgstr "Liste de types de boutons"
+
+#: C/messagedialog.js.page:145(link)
+msgid "List of message types"
+msgstr "Liste de types de messages"
+
+#: C/messagedialog.js.page:172(p)
+msgid ""
+"This function takes two parameters, the MessageDialog and its response_id, "
+"both of which are automatically supplied (you don't have to manually pass "
+"them to it for it to work). Here we use a simple switch to change the "
+"\"warning label\"'s text, depending on which option you select. The "
+"DELETE_EVENT occurs if you press Escape to cancel the MessageDialog, instead "
+"of clicking OK or Cancel. Whatever you select, the popup is destroyed "
+"afterwards."
+msgstr ""
+"Cette fonction prend deux paramètres : la BoiteDeDialogueDemessage et son "
+"identifiant response_id. Les deux sont fournis automatiquement (il n'y a pas "
+"besoins d'intervention manuelle pour que cela fonctionne). Ici, nous "
+"utilisons un interrupteur simple pour modifier le texte « warning label » en "
+"fonction de l'option sélectionnée. Le DELETE_EVENT se produit en appuyant "
+"sur la touche Échap pour annuler la BoiteDeDialogueDemessage au lieu de "
+"cliquer sur OK ou Cancel. Quel que soit votre choix, le message surgissant "
+"est détruit ensuite."
+
+#: C/messagedialog.js.page:179(p)
+msgid ""
+"Finally, we create a new instance of the finished MessageDialogExample "
+"class, and set the application running."
+msgstr ""
+"Pour finir, nous créons un nouvel exemple de la classe MessageDialogExample "
+"terminée et nous démarrons l'application."
 
-#: C/messagedialog.js.page:16(desc)
-msgid "A modal message window"
-msgstr "Une fenêtre de message modale"
+#: C/messagedialog.c.page:7(title)
+#, fuzzy
+#| msgid "MessageDialog"
+msgid "MessageDialog (C)"
+msgstr "Boîte de dialogue de message"
 
-#: C/messagedialog.js.page:21(p)
-msgid "A modal message dialog. This one can cause the world to explode."
+#: 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 ""
-"Une boîte de dialogue de message modal qui peut faire exploser le monde."
+
+#: C/messagedialog.c.page:36(link)
+#, fuzzy
+#| msgid "GtkApplication"
+msgid "GApplication"
+msgstr "GtkApplication"
 
 #. When image changes, this message will be marked fuzzy or untranslated for you.
 #. It doesn't matter what you translate it to: it's not used at all.
@@ -4032,6 +8988,12 @@ msgid ""
 msgstr ""
 "@@image: 'media/message-board.ogv'; md5=beb80c4538776dc2cdd26c95abea5027"
 
+#: C/message-board.c.page:7(title)
+#, fuzzy
+#| msgid "Message Board"
+msgid "Message Board (C)"
+msgstr "Visionneur de messages"
+
 #: C/message-board.c.page:10(desc)
 msgid "A simple program using WebKitGTK+ and the DOM."
 msgstr "Un programme simple utilisant WebKitGTK+ et DOM."
@@ -4708,28 +9670,720 @@ msgstr ""
 
 #. When image changes, this message will be marked fuzzy or untranslated for you.
 #. It doesn't matter what you translate it to: it's not used at all.
-#: C/magic-mirror.vala.page:40(None)
+#: 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 "Un élément graphique qui affiche un menu quand il est cliqué"
+
+#: C/menubutton.py.page:28(p) C/menubutton.vala.page:22(p)
+#: C/menubutton.js.page:22(p)
+msgid ""
+"The GtkMenuButton widget is used to display a menu when clicked on. This "
+"menu can be provided either as a GtkMenu, or an abstract GMenuModel. The "
+"GtkMenuButton widget can hold any valid child widget. That is, it can hold "
+"almost any other standard GtkWidget. The most commonly used child is the "
+"provided GtkArrow."
+msgstr ""
+"L'élément graphique GtkMenuButton sert à afficher un menu quand il est "
+"cliqué. Le menu peut provenir soit d'un GtkMenu, soit d'un GMenuModel "
+"abstrait. L'élément graphique GtkMenuButton peut contenir n'importe quel "
+"élément graphique enfant valide. Ceci dit, il peut contenir pratiquement "
+"n'importe quel autre GtkWidget standard. L'enfant le plus souvent utilisé "
+"est la flèche GtkArrow fournie."
+
+#: 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 ""
+"Pour que le MenuButton fonctionne, il vous faut avoir installé GNOME 3.6"
+
+#: C/menubutton.py.page:40(title)
+#, fuzzy
+#| msgid "Useful methods for a Button widget"
+msgid "Useful methods for a MenuButton widget"
+msgstr "Méthode utiles pour un élément graphique Bouton"
+
+#: C/menubutton.py.page:41(p)
+msgid ""
+"The positioning of the menu is determined by the \"direction\" property of "
+"the menu button and the \"halign\" or \"valign\" properties of the menu. For "
+"example, when the direction is <code>Gtk.ArrowType.DOWN</code> (other "
+"option: <code>UP</code>) and the horizontal alignment is <code>Gtk.Align."
+"START</code> (other options: <code>CENTER</code> and <code>END</code>), the "
+"menu will be positioned below the button, with the starting edge (depending "
+"on the text direction) of the menu aligned with the starting edge of the "
+"button. If there is not enough space below the button, the menu is popped up "
+"above the button instead. If the alignment would move part of the menu "
+"offscreen, it is 'pushed in'."
+msgstr ""
+
+#: C/menubutton.py.page:43(p)
+msgid ""
+"In the case of vertical alignment, the possible ArrowType directions are "
+"<code>LEFT</code> and <code>RIGHT</code> and the vertical alignment is again "
+"<code>START</code>, <code>CENTER</code> or <code>END</code>."
+msgstr ""
+
+#: C/menubutton.py.page:45(p)
+#, fuzzy
+#| msgid ""
+#| "<code>get_text()</code> and <code>set_text(\"some text\")</code> can be "
+#| "used to get and set the content for the entry."
+msgid ""
+"<code>set_align_widget(alignment)</code> and <code>set_direction(direction)</"
+"code> can be used to set these properties."
+msgstr ""
+"Les fonctions <code>get_text()</code> et <code>set_text(\"some text\")</"
+"code> peuvent être utilisées pour obtenir et définir le contenu de l'entrée."
+
+#: C/menubutton.vala.page:7(title)
+#, fuzzy
+#| msgid "MenuButton"
+msgid "MenuButton (Vala)"
+msgstr "MenuButton"
+
+#: C/menubutton.js.page:7(title)
+#, fuzzy
+#| msgid "MenuButton"
+msgid "MenuButton (JavaScript)"
+msgstr "MenuButton"
+
+#: 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"
+
+#. When image changes, this message 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)
+msgid ""
+"@@image: 'media/menubar_choices.png'; md5=47cdfa12caf85ba20dd3e835bd7f893f"
+msgstr ""
+"@@image: 'media/menubar_choices.png'; md5=47cdfa12caf85ba20dd3e835bd7f893f"
+
+#: C/menubar.vala.page:7(title)
+#, fuzzy
+#| msgid "MenuBar"
+msgid "MenuBar (Vala)"
+msgstr "BarreDeMenu"
+
+#: C/menubar.vala.page:19(desc) C/menubar.py.page:24(desc)
+msgid "A widget which holds GtkMenuItem widgets"
+msgstr "Un élément graphique qui contient des éléments graphiques GtkMenuItem"
+
+#: C/menubar.vala.page:22(title) C/menubar.py.page:27(title)
+msgid "MenuBar"
+msgstr "BarreDeMenu"
+
+#: C/menubar.vala.page:24(p) C/menubar.py.page:29(p)
+msgid "A MenuBar created using XML and GtkBuilder."
+msgstr "Une BarreDeMenu créée avec XML et GtkBuilder."
+
+#: C/menubar.vala.page:28(title) C/menubar.py.page:33(title)
+msgid "Create a MenuBar using XML"
+msgstr "Création d'une BarreDeMenu avec XML"
+
+#: C/menubar.vala.page:29(p) C/menubar.py.page:34(p)
+msgid "To create the menubar using XML:"
+msgstr "Pour créer une BarreDeMenu avec XML :"
+
+#: C/menubar.vala.page:31(p) C/menubar.py.page:36(p)
+msgid "Create <file>menubar.ui</file> using your favorite text editor."
+msgstr ""
+"créez le fichier <file>barredemenu.ui</file> avec votre éditeur de texte "
+"favorit."
+
+#: C/menubar.vala.page:32(p) C/menubar.py.page:37(p)
+msgid "Enter the following line at the top of the file:"
+msgstr "Saisissez la ligne suivante en haut du fichier :"
+
+#: C/menubar.vala.page:36(p) C/menubar.py.page:41(p)
+msgid ""
+"We want to create the interface which will contain our menubar and it's "
+"submenus. Our menubar will contain <gui>File</gui>, <gui>Edit</gui>, "
+"<gui>Choices</gui> and <gui>Help</gui> submenus. We add the following XML "
+"code to the file:"
+msgstr ""
+"Nous souhaitons créer une interface contenant notre BarreDeMenu et ses "
+"SousMenus. Notre BarreDeMenu contient les SousMenus <gui>Fichier</gui>, "
+"<gui>Édition</gui>, <gui>Choix</gui> et <gui>Aide</gui>. Ajoutons le code "
+"XML suivant au fichier :"
+
+#: C/menubar.vala.page:39(p)
+msgid ""
+"Now we will create the .vala file and use GtkBuilder to import the "
+"<file>menubar.ui</file> we just created."
+msgstr ""
+"Créons maintenant le fichier .vala et utilisons GtkBuilder pour importer le "
+"fichier <file>barredemenu.ui</file> que nous venons de faire."
+
+#: C/menubar.vala.page:42(title) C/menubar.py.page:48(title)
+msgid "Add the MenuBar to the window using GtkBuilder"
+msgstr "Ajout de la BarreDeMenu à la fenêtre avec GtkBuilder"
+
+#: C/menubar.vala.page:44(p)
+msgid ""
+"Now, compile the vala file, and run it. The application should look like the "
+"picture at the top of this page."
+msgstr ""
+"Maintenant, compilez le fichier vala et lancez-le. L'application devrait "
+"ressembler à l'image en haut de cette page."
+
+#: C/menubar.vala.page:50(title) C/menubar.py.page:54(title)
+msgid "Add items to the menus"
+msgstr "Ajout d'éléments aux menus"
+
+#: C/menubar.vala.page:51(p) C/menubar.py.page:55(p)
+msgid ""
+"We start off by adding 2 menuitems to the <gui>File</gui> menu: <gui>New</"
+"gui> and <gui>Quit</gui>. We do this by adding a <code>section</code> to the "
+"the <code>File</code> submenu with these items. The <file>menubar.ui</file> "
+"should look like this (lines 6 to 13 inclusive comprise the newly added "
+"section):"
+msgstr ""
+"Commençons par ajouter 2 éléments au menu <gui>Fichier</gui> : <gui>Nouveau</"
+"gui> et <gui>Quitter</gui>. Pour ce faire, ajoutons une <code>section</code> "
+"contenant ces éléments au SouMenu <code>Fichier</code>. Le fichier "
+"<file>barredemenu.ui</file> devrait ressembler à ceci (les lignes 6 à 13 "
+"comportent la section nouvellement ajoutée) :"
+
+#: C/menubar.vala.page:79(p)
+msgid ""
+"Following this pattern, you can now add a <code>Copy</code> and a "
+"<code>Paste</code> item to the <code>Edit</code> submenu, and an "
+"<code>About</code> item to the <code>Help</code> submenu. We will hold off "
+"on adding items to the <link xref=\"menubar.vala#choices\">Choices submenu</"
+"link> until further in the tutorial."
+msgstr ""
+"En suivant ce modèle, ajoutez les éléments <code>Copier</code> et "
+"<code>Coller</code> au SousMenu <code>Édition</code> et un élément <code>À "
+"propos</code> au SousMenu <code>Aide</code>. Nous allons attendre pour "
+"ajouter des éléments au SousMenu <link xref=\"menubar.vala#choices\">Choix</"
+"link> d'être un peu plus loin dans ce guide."
+
+#: C/menubar.vala.page:81(p)
+msgid ""
+"You do not need to recompile the vala program if you only made changes to "
+"the UI file. Just run your previously compiled application, and the UI "
+"changes will be reflected."
+msgstr ""
+"Il es inutile de recompiler le programme vala si vous n'avez apporté des "
+"modifications qu'au fichier barredemenu.ui. Éxecutez seulement votre "
+"application compilée précédemment et les modifications dans l'interface "
+"utilisateur vont être prises en compte."
+
+#: C/menubar.vala.page:86(title) C/menubar.py.page:92(title)
+msgid "Setup actions"
+msgstr "Définition des actions"
+
+#: C/menubar.vala.page:87(p)
+msgid "This is a three step process."
+msgstr "Ceci est un processus en trois étapes."
+
+#: C/menubar.vala.page:89(p)
+msgid ""
+"First we create the ActionEntry array in the MyApplication class. An "
+"ActionEntry consists of:"
+msgstr ""
+"Premièrement, créons la matrice ActionEntry dans la classe MyApplication. "
+"Une ActionEntry se compose :"
+
+#: C/menubar.vala.page:92(p)
+msgid "the \"action name\" (mandatory)"
+msgstr "du nom « action name » (obligatoire)"
+
+#: C/menubar.vala.page:93(p)
+msgid ""
+"the callback function to connect to the \"activate\" signal of the action "
+"(if applicable)"
+msgstr ""
+"de la fonction de rappel pour connecter le signal « activate » à l'action "
+"(si applicable)"
+
+#: C/menubar.vala.page:94(p)
+msgid ""
+"the type of the parameter that must be passed to the activate function for "
+"the action (if applicable)"
+msgstr ""
+"du type de paramètre qui doit être transmis à la fonction activate pour "
+"l'action (si applicable)"
+
+#: C/menubar.vala.page:95(p)
+msgid "the initial state for this action (if applicable)"
+msgstr "de l'état initial de cette action (si applicable)"
+
+#: C/menubar.vala.page:96(p)
+msgid "the callback to connect to \"change-state\" signal (if applicable)"
+msgstr "du rappel à connecter au signal « change-state » (si applicable)"
+
+#: C/menubar.vala.page:98(code)
+#, no-wrap
+msgid ""
+"\n"
+"const ActionEntry[] actions = {\n"
+"    { \"new\", new_cb }, // {\"action name\", callback_function}\n"
+"    { \"quit\", quit_cb }\n"
+"};"
+msgstr ""
+"\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."
+msgstr ""
+"Deuxièmement, nous créons les fonctions de rappel qui sont connectées aux "
+"actions."
+
+#: C/menubar.vala.page:106(code)
+#, no-wrap
+msgid ""
+"\n"
+"void new_cb (SimpleAction action, Variant? parameter) {\n"
+"    print (\"You clicked \\\"New\\\"\\n\");\n"
+"    //new MyWindow (this).show ();\n"
+"}\n"
+"\n"
+"void quit_cb (SimpleAction action, Variant? parameter) {\n"
+"    print (\"You clicked \\\"Quit\\\"\\n\");\n"
+"    //this.quit ();  **Bug #674090**\n"
+"}"
+msgstr ""
+"\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/menubar.vala.page:117(p)
+msgid ""
+"And lastly, we connect the menu items to the actions in the XML file by "
+"adding the \"action\" attribute:"
+msgstr ""
+"Et troisièmement, nous connectons les éléments du menu aux actions dans le "
+"fichier XML en y ajoutant l'attribut « action » :"
+
+#: C/menubar.vala.page:132(title) C/menubar.py.page:128(title)
+msgid "Choices submenu and items with state"
+msgstr "Le SousMenu Choix et les éléments avec leur état"
+
+#: C/menubar.vala.page:134(p)
+msgid ""
+"Lines 30 to 80 inclusive of the <link xref=\"menubar.vala#xml-code\"/> "
+"demonstrate the XML code used to create the UI for <gui>Choices</gui> menu."
+msgstr ""
+"Les lignes 30 à 80 inclues de <link xref=\"menubar.vala#xml-code\"/> "
+"décrivent le code XML utilisé pour créer le menu <gui>Choix</gui> de "
+"l'interface utilisateur."
+
+#: C/menubar.vala.page:138(title) C/menubar.py.page:119(title)
+msgid "Actions: Application or Window?"
+msgstr "Actions : application ou fenêtre ?"
+
+#: C/menubar.vala.page:139(p) C/menubar.py.page:120(p)
+msgid ""
+"Above, we created the \"new\" and \"open\" actions as part of the "
+"MyApplication class. Actions which control the application itself, such as "
+"\"quit\" should be created similarly."
+msgstr ""
+"Ci-dessus, nous créons les actions « new » et « open » comme faisant partie "
+"de la classe MyApplication. Les actions qui gèrent l'application elle-même "
+"(comme « quit »), doivent être créées de la même façon."
+
+#: C/menubar.vala.page:142(p) C/menubar.py.page:122(p)
+msgid ""
+"Some actions, such as \"copy\" and \"paste\" deal with the window, not the "
+"application. Window actions should be created as part of the window class."
+msgstr ""
+"Quelques actions, comme « copy » et « paste » gèrent la fenêtre, pas "
+"l'application. Les actions gérant la fenêtre doivent être créées dans la "
+"classe window."
+
+#: C/menubar.vala.page:145(p)
+msgid ""
+"The complete example files contain both application actions and window "
+"applications. The window actions are the ones usually included in the <link "
+"xref=\"gmenu.vala\">application menu</link> also. It is not good practice to "
+"include window actions in the applcation menu. For demonstration purposes, "
+"the complete example files which follow include XML in the UI file which "
+"creates the application menu which includes a \"New\" and \"Open\" item, and "
+"these are hooked up to the same actions as the menubar items of the same "
+"name."
+msgstr ""
+"Les fichiers complets de l'exemple contiennent à la fois les actions qui "
+"gèrent l'application et celles qui gèrent la fenêtre. Les actions gérant la "
+"fenêtre sont aussi celles habituellement inclues dans <link xref=\"gmenu.vala"
+"\">application menu</link>. Ce n'est pas une bonne façon de faire que "
+"d'inclure les actions gérant la fenêtre dans le menu de l'application. "
+"Néanmoins, pour les besoins de cette démonstration, les fichiers exemple "
+"complets suivants incluent le code XML dans le fichier de l'interface "
+"utilisateur. Celui-ci crée le menu de l'application en y incluant les "
+"éléments « new » et « open » et les lie aux mêmes actions que celles "
+"attribuées aux éléments de la BarreDeMenu ayant le même nom."
+
+#: C/menubar.vala.page:153(title) C/menubar.py.page:147(title)
+msgid "Complete XML UI file for this example"
+msgstr "Fichier XML complet de l'interface utilisateur de cet exemple"
+
+#: C/menubar.vala.page:156(title)
+msgid "Complete Vala file for this example"
+msgstr "Fichier vala complet de cet exemple"
+
+#: C/menubar.vala.page:160(title)
+msgid "Mnemonics"
+msgstr "Mnémoniques"
+
+#: C/menubar.vala.page:161(p) C/menubar.py.page:157(p)
+msgid ""
+"Labels may contain mnemonics. Mnemonics are underlined characters in the "
+"label, used for keyboard navigation. Mnemonics are created by placing an "
+"underscore before the mnemonic character. For example \"_File\" instead of "
+"just \"File\" in the menubar.ui label attribute."
+msgstr ""
+"Les étiquettes peuvent contenir des mnémoniques. Les mnémoniques sont les "
+"caractères soulignés dans l'étiquette et sont utilisés pour se déplacer à "
+"l'aide des touches du clavier. Par exemple, « _Fichier » au lieu de "
+"seulement « Fichier » dans l'attribut barredemenu.ui de l'étiquette."
+
+#: C/menubar.vala.page:162(p) C/menubar.py.page:158(p)
+msgid ""
+"The mnemonics are visible when you press the <key>Alt</key> key. Pressing "
+"<keyseq><key>Alt</key><key>F</key></keyseq> will open the <gui>File</gui> "
+"menu."
+msgstr ""
+"Vous pouvez voir les mnémoniques en appuyant sur la touche <key>Alt</key>. "
+"Pour ouvrir le menu <gui>Fichier</gui>, appuyez sur la combinaison de "
+"touches <keyseq><key>Alt</key><key>F</key></keyseq>."
+
+#: C/menubar.vala.page:166(title)
+msgid "Accelerators"
+msgstr "Raccourcis clavier"
+
+#: C/menubar.vala.page:167(p) C/menubar.py.page:160(p)
+msgid ""
+"Accelerators can be explicitly added in the UI definitions. For example, it "
+"is common to be able to quit an application by pressing <keyseq><key>Ctrl</"
+"key><key>Q</key></keyseq> or to save a file by pressing <keyseq><key>Ctrl</"
+"key><key>S</key></keyseq>. To add an accelerator to the UI definition, you "
+"simply need add an \"accel\" attribute to the item."
+msgstr ""
+"Des raccourcis clavier peuvent être explicitement ajoutés aux définitions de "
+"l'interface utilisateur. Il est par exemple usuel de pouvoir quitter une "
+"application en appuyant sur la combinaison <keyseq><key>Ctrl</key><key>Q</"
+"key></keyseq> ou enregistrer un fichier avec <keyseq><key>Ctrl</key><key>S</"
+"key></keyseq>. Pour ajouter un raccourci clavier à la définition de "
+"l'interface, ajoutez simplement un attribut « accel » à l'élément."
+
+#: C/menubar.vala.page:168(p) C/menubar.py.page:161(p)
+#, fuzzy
+#| msgid ""
+#| "<code mime=\"text\"><![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."
+msgid ""
+"<code mime=\"application/xml\"><![CDATA[<attribute name=\"accel\">&lt;"
+"Primary&gt;q</attribute>]]></code> will create the <keyseq><key>Ctrl</"
+"key><key>Q</key></keyseq> sequence when added to the <code>Quit</code> label "
+"item. Here, \"Primary\" refers to the <key>Ctrl</key> key on a PC or the "
+"<key>⌘</key> key on a Mac."
+msgstr ""
+"Le code <code mime=\"text\"><![CDATA[<attribute name=\"accel\">&lt;"
+"Primary&gt;q</attribute>]]></code> va créer la combinaison "
+"<keyseq><key>Ctrl</key><key>Q</key></keyseq> quand il est ajouté à l'élément "
+"de l'étiquette <code>Quit</code>. Ici, \"Primary\" représente la touche "
+"<key>Ctrl</key> sur un PC ou la touche <key>⌘</key> sur un Mac."
+
+#: C/menubar.vala.page:178(title) C/menubar.py.page:171(title)
+msgid "Translatable strings"
+msgstr "Chaînes de caractères traduisibles"
+
+#: C/menubar.vala.page:179(p) C/menubar.py.page:172(p)
+msgid ""
+"Since GNOME applications are being translated into <link href=\"http://l10n.";
+"gnome.org/languages/\">many languages</link>, it is important that the "
+"strings in your application are translable. To make a label translatable, "
+"simple set <code>translatable=\"yes\"</code>:"
+msgstr ""
+"Étant donné que les applications GNOME sont traduites dans <link href="
+"\"http://l10n.gnome.org/languages/\";>beaucoup de langues</link>, il est "
+"important que les chaînes de votre application soient traduisibles. Pour "
+"qu'une étiquette soit traduisible, définissez <code>translatable=\"yes\"</"
+"code> :"
+
+#: C/menubar.vala.page:186(title) C/filechooserdialog.vala.page:34(title)
+msgid "Relevant API documentation"
+msgstr "Documentation API associée"
+
+#: C/menubar.vala.page:191(link)
+msgid "Glib.ActionEntry"
+msgstr "Glib.ActionEntry"
+
+#: C/menubar.vala.page:192(link) C/filechooserdialog.vala.page:41(link)
+msgid "Gtk.Builder"
+msgstr "Gtk.Builder"
+
+#: C/menubar.py.page:7(title)
+#, fuzzy
+#| msgid "MenuButton"
+msgid "MenuBar (Python)"
+msgstr "MenuButton"
+
+#: C/menubar.py.page:44(p)
+msgid ""
+"Now we will create the .py file and use GtkBuilder to import the "
+"<file>menubar.ui</file> we just created."
+msgstr ""
+"Maintenant, créons le fichier .py et utilisons GtkBuilder pour importer le "
+"fichier <file>barredemenu.ui</file> que nous venons de faire."
+
+#: C/menubar.py.page:50(p)
+msgid ""
+"Now run the python application. It should look like the picture at the top "
+"of this page."
+msgstr ""
+"Démarrez maintenant l'application python. Vous devriez voir quelque chose "
+"qui ressemble à l'image en haut de cette page."
+
+#: C/menubar.py.page:58(title)
+msgid "menubar.ui"
+msgstr ""
+
+#: C/menubar.py.page:87(p)
+msgid ""
+"Following this pattern, you can now add a <code>Copy</code> and a "
+"<code>Paste</code> item to the <code>Edit</code> submenu, and an "
+"<code>About</code> item to the <code>Help</code> submenu."
+msgstr ""
+"En suivant ce modèle, ajoutez maintenant les éléments <code>Copier</code> et "
+"<code>Coller</code> au SousMenu <code>Édition</code> et un élément <code>À "
+"propos</code> au SousMenu <code>Aide</code>."
+
+#: C/menubar.py.page:94(p)
+msgid ""
+"We now create the actions for \"New\" and \"Quit\" connected to a callback "
+"function in the Python file; for instance we create \"new\" as:"
+msgstr ""
+"Dans le fichier Python, créons les actions « Nouveau » et « Quitter » et "
+"connectons-les à une fonction de rappel ; par exemple, créons « new » de "
+"cette façon :"
+
+#: C/menubar.py.page:95(code)
+#, no-wrap
+msgid ""
+"\n"
+"new_action = Gio.SimpleAction.new(\"new\", None)\n"
+"new_action.connect(\"activate\", self.new_callback)"
+msgstr ""
+"\n"
+"new_action = Gio.SimpleAction.new(\"new\", None)\n"
+"new_action.connect(\"activate\", self.new_callback)"
+
+#: C/menubar.py.page:99(p)
+msgid "And we create the callback function of \"new\" as"
+msgstr "et la fonction de rappel de « new » de cette façon :"
+
+#: C/menubar.py.page:100(code)
+#, no-wrap
+msgid ""
+"\n"
+"def new_callback(self, action, parameter):\n"
+"    print \"You clicked \\\"New\\\"\""
+msgstr ""
+"\n"
+"def new_callback(self, action, parameter):\n"
+"    print \"You clicked \\\"New\\\"\""
+
+#: C/menubar.py.page:104(p)
+msgid ""
+"Now, in the XML file, we we connect the menu items to the actions in the XML "
+"file by adding the \"action\" attribute:"
+msgstr ""
+"Maintenant, dans le fichier XML, connectons les éléments du menu aux actions "
+"en y ajoutant l'attibut « action » :"
+
+#: C/menubar.py.page:111(p)
+msgid ""
+"Note that for an action that is relative to the application, we use the "
+"prefix <code>app.</code>; for actions that are relative to the window we use "
+"the prefix <code>win.</code>."
+msgstr ""
+"Notez que pour une action relative à l'application, nous utilisons le "
+"préfixe <code>app.</code>, et que pour une action relative à la fenêtre, "
+"nous utilisons le préfixe <code>win.</code>."
+
+#: C/menubar.py.page:113(p)
+msgid ""
+"Finally, in the Python file, we add the action to the application or to the "
+"window - so for instance <code>app.new</code> will be added to the "
+"application in the method <code>do_startup(self)</code> as"
+msgstr ""
+"Finalement, nous ajoutons l'action à l'application ou à la fenêtre dans le "
+"fichier python - ainsi, par exemple, <code>app.new</code> est ajouté à "
+"l'application dans la méthode <code>do_startup(self)</code> de cette façon :"
+
+#: C/menubar.py.page:114(code)
+#, no-wrap
+msgid ""
+"\n"
+"self.add_action(new_action)"
+msgstr ""
+"\n"
+"self.add_action(new_action)"
+
+#: C/menubar.py.page:124(p)
+msgid ""
+"The complete example files contain both application actions and window "
+"applications. The window actions are the ones usually included in the <link "
+"xref=\"gmenu.py\">application menu</link> also. It is not good practice to "
+"include window actions in the applcation menu. For demonstration purposes, "
+"the complete example files which follow include XML in the UI file which "
+"creates the application menu which includes a \"New\" and \"Open\" item, and "
+"these are hooked up to the same actions as the menubar items of the same "
+"name."
+msgstr ""
+"Les fichiers complets de l'exemple contiennent à la fois les actions qui "
+"gèrent l'application et celles qui gèrent la fenêtre. Les actions gérant la "
+"fenêtre sont aussi celles habituellement inclues dans <link xref=\"gmenu.py"
+"\">application menu</link>. Ce n'est pas une bonne façon de faire que "
+"d'inclure les actions gérant la fenêtre dans le menu de l'application. "
+"Néanmoins, pour les besoins de cette démonstration, les fichiers exemple "
+"complets suivants incluent le code XML dans le fichier de l'interface "
+"utilisateur. Celui-ci crée le menu de l'application en y incluant les "
+"éléments « new » et « open » et les lie aux mêmes actions que celles "
+"attribuées aux éléments de la BarreDeMenu ayant le même nom."
+
+#: C/menubar.py.page:130(p)
+msgid ""
+"Lines 30 to 80 inclusive of the <link xref=\"menubar.py#xml-code\"/> "
+"demonstrate the XML code used to create the UI for <gui>Choices</gui> menu."
+msgstr ""
+"Les lignes 30 à 80 inclue de <link xref=\"menubar.py#xml-code\"/> décrivent "
+"le code XML utilisé pour créer le menu <gui>Choix</gui> de l'interface "
+"utilisateur."
+
+#: C/menubar.py.page:132(p)
+msgid ""
+"The actions created so far are <em>stateless</em>, that is they do not "
+"retain or depend on a state given by the action itself. The actions we need "
+"to create for the Choices submenu, on the other hand, are <em>stateful</em>. "
+"An example of creation of a stateful action is:"
+msgstr ""
+"les actions créées jusqu'à présent sont <em>sans état (stateless)</em>, c-à-"
+"d. qu'elles ne prennent pas ni ne dépendent pas d'un état définit par "
+"l'action elle-même. Par contre, les actions que nous avons besoin de créer "
+"pour le SousMenu Choix sont <em>avec état (stateful)</em>. Voici un exemple "
+"de création d'une action stateful :"
+
+#: C/menubar.py.page:133(code)
+#, no-wrap
+msgid ""
+"\n"
+"shape_action = Gio.SimpleAction.new_stateful(\"shape\", GLib.VariantType.new('s'), 
GLib.Variant.new_string('line'))"
+msgstr ""
+"\n"
+"shape_action = Gio.SimpleAction.new_stateful(\"shape\", GLib.VariantType.new('s'), 
GLib.Variant.new_string('line'))"
+
+#: C/menubar.py.page:136(p)
+msgid ""
+"where the variables of the method are: name, parameter type (in this case, a "
+"string - see <link href=\"http://developer.gnome.org/glib/unstable/glib-";
+"GVariantType.html\">here</link> for a complete list of character meanings), "
+"initial state (in this case, 'line' - in case of a <code>True</code> boolean "
+"value it should be <code>Glib.Variant.new_boolean(True)</code>, and so on, "
+"see <link href=\"http://developer.gnome.org/glib/unstable/glib-GVariant.html";
+"\">here</link> for a complete list)"
+msgstr ""
+"où les variables de la méthode sont : le nom, le type de paramètre (dans ce "
+"cas, une chaîne - voyez <link href=\"http://developer.gnome.org/glib/";
+"unstable/glib-GVariantType.html\">ici</link> pour une liste complète des "
+"significations des caractères), l'état initial (dans ce cas, « line » - dans "
+"le cas d'une valeur boléenne <code>True</code>, il devrait être <code>Glib."
+"Variant.new_boolean(True)</code> et ainsi de suite. Voyez <link href="
+"\"http://developer.gnome.org/glib/unstable/glib-GVariant.html\";>ici</link> "
+"pour consulter une liste complète)"
+
+#: C/menubar.py.page:138(p)
+msgid ""
+"After creating the stateful SimpleAction we connect it to the callback "
+"function and we add it to the window (or the application, if it is the "
+"case), as before:"
+msgstr ""
+"Après avoir créé l'ActionSimple stateful, nous la connectons à la fonction "
+"de rappel et nous l'ajoutons à la fenêtre (ou à l'application selon le cas) "
+"comme auparavant :"
+
+#: C/menubar.py.page:140(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/menubar.py.page:152(title)
+msgid "Complete Python file for this example"
+msgstr "Fichier Python complet de cet exemple"
+
+#: C/menubar.py.page:156(title)
+msgid "Mnemonics and Accelerators"
+msgstr "Mnémoniques et raccourcis clavier"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/magic-mirror.vala.page:41(None)
 msgid "@@image: 'media/magic-mirror.png'; md5=8171faea6ed3b6ddac0da084c29e4e22"
 msgstr ""
 "@@image: 'media/magic-mirror.png'; md5=8171faea6ed3b6ddac0da084c29e4e22"
 
-#: C/magic-mirror.vala.page:9(desc)
+#: C/magic-mirror.vala.page:7(title)
+#, fuzzy
+#| msgid "4 Magic Mirror"
+msgid "Magic Mirror (Vala)"
+msgstr "4 Miroir magique"
+
+#: C/magic-mirror.vala.page:10(desc)
 msgid "Use your webcam as a mirror using the GStreamer framework and Gtk+"
 msgstr "Utilisation de votre webcam comme miroir avec GStreamer et Gtk+"
 
-#: C/magic-mirror.vala.page:13(name)
+#: C/magic-mirror.vala.page:14(name)
 msgid "Daniel G. Siegel"
 msgstr "Daniel G. Siegel"
 
-#: C/magic-mirror.vala.page:14(email)
+#: C/magic-mirror.vala.page:15(email)
 msgid "dgsiegel gnome org"
 msgstr "dgsiegel gnome org"
 
-#: C/magic-mirror.vala.page:22(title)
+#: C/magic-mirror.vala.page:23(title)
 msgid "4 Magic Mirror"
 msgstr "4 Miroir magique"
 
-#: C/magic-mirror.vala.page:25(em)
+#: C/magic-mirror.vala.page:26(em)
 msgid ""
 "Your mirror just fell off the wall and broke into a thousand pieces — but "
 "you need a mirror to shave your beard off or add some makeup! You only have "
@@ -4740,7 +10394,7 @@ msgstr ""
 "vous reste que 15 minutes avant d'attraper le bus pour aller au travail. "
 "Comment faire ?"
 
-#: C/magic-mirror.vala.page:26(p)
+#: C/magic-mirror.vala.page:27(p)
 msgid ""
 "In this tutorial, we're going to make a program which lets you use your "
 "webcam as a mirror. You will learn how to:"
@@ -4748,44 +10402,44 @@ msgstr ""
 "Dans ce tutoriel, nous allons faire un programme qui va vous permettre "
 "d'utiliser votre webcam comme miroir. Vous apprendrez comment :"
 
-#: C/magic-mirror.vala.page:28(p)
+#: C/magic-mirror.vala.page:29(p)
 msgid "Create a GTK+ application"
 msgstr "créer une application GTK+,"
 
-#: C/magic-mirror.vala.page:29(p)
+#: C/magic-mirror.vala.page:30(p)
 msgid "Access your webcam using GStreamer and embed the result into a window"
 msgstr ""
 "accéder à votre webcam en utilisant GStreamer et intégrer le résultat dans "
 "une fenêtre,"
 
-#: C/magic-mirror.vala.page:30(p)
+#: C/magic-mirror.vala.page:31(p)
 msgid "Grab photos off your webcam"
 msgstr "récupérer des photos de votre webcam,"
 
-#: C/magic-mirror.vala.page:32(p) C/image-viewer.vala.page:39(p)
+#: 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:31(p)
-#: C/guitar-tuner.cpp.page:30(p) C/guitar-tuner.c.page:31(p)
+#: C/guitar-tuner.vala.page:35(p) C/guitar-tuner.py.page:32(p)
+#: C/guitar-tuner.cpp.page:30(p) C/guitar-tuner.c.page:32(p)
 msgid "You'll need the following to be able to follow this tutorial:"
 msgstr "Vous avez besoin de ce qui suit pour pouvoir suivre ce tutoriel :"
 
-#: C/magic-mirror.vala.page:34(p) C/image-viewer.py.page:36(p)
-#: C/image-viewer.js.page:36(p) C/guitar-tuner.py.page:33(p)
-#: C/guitar-tuner.cpp.page:32(p) C/guitar-tuner.c.page:33(p)
+#: C/magic-mirror.vala.page:35(p) C/image-viewer.py.page:36(p)
+#: C/image-viewer.js.page:36(p) C/guitar-tuner.py.page:34(p)
+#: C/guitar-tuner.cpp.page:32(p) C/guitar-tuner.c.page:34(p)
 msgid "An installed copy of the <link xref=\"getting-ready\">Anjuta IDE</link>"
 msgstr ""
 "l'installation du paquet <link xref=\"getting-ready\">Anjuta IDE</link>,"
 
-#: C/magic-mirror.vala.page:35(p)
+#: C/magic-mirror.vala.page:36(p)
 msgid "Installed copies of GTK, GStreamer, and a Vala compiler"
 msgstr "l'installation des paquets GTK, GStreamer et d'un compilateur Vala,"
 
-#: C/magic-mirror.vala.page:36(p)
+#: C/magic-mirror.vala.page:37(p)
 msgid "Basic knowledge of an object-oriented programming language"
 msgstr "des connaissances de base d'un langage de programmation d'objets."
 
 # BUG : "magic_mirror" au lieu de "guitar-tuner"
-#: C/magic-mirror.vala.page:50(p)
+#: C/magic-mirror.vala.page:51(p)
 msgid ""
 "Choose <gui>Gtk+ (simple)</gui> from the <gui>Vala</gui> tab, click "
 "<gui>Forward</gui>, and fill out your details on the next few pages. Use "
@@ -4796,7 +10450,7 @@ msgstr ""
 "suivantes. Utilisez <file>miroir_magique</file> comme nom de projet et de "
 "répertoire."
 
-#: C/magic-mirror.vala.page:53(p)
+#: C/magic-mirror.vala.page:54(p)
 msgid ""
 "Disable <gui>Use GtkBuilder for user interface</gui> as we will create the "
 "UI manually in this tutorial. Check the <link xref=\"guitar-tuner.vala"
@@ -4807,7 +10461,7 @@ msgstr ""
 "tutoriel <link xref=\"guitar-tuner.vala\">Accordeur de guitare</link> à "
 "propos de l'utilisation du constructeur d'interface GtkBuilder."
 
-#: C/magic-mirror.vala.page:58(p)
+#: C/magic-mirror.vala.page:59(p)
 msgid ""
 "Make sure that <gui>Configure external packages</gui> is selected. On the "
 "next page, select <em>gstreamer-0.10</em> from the list to include the "
@@ -4817,7 +10471,7 @@ msgstr ""
 "Sur la page suivante, sélectionnez <em>gstreamer-0.10</em> dans la liste "
 "pour inclure la bibliothèque <app>GStreamer</app> à votre projet."
 
-#: C/magic-mirror.vala.page:62(p)
+#: C/magic-mirror.vala.page:63(p)
 msgid ""
 "Click <gui>Apply</gui> and the project will be created for you. Open "
 "<file>src/magic_mirror.vala</file> from the <gui>Project</gui> or <gui>File</"
@@ -4828,14 +10482,14 @@ msgstr ""
 "<gui>Fichiers</gui>. Vous devez voir apparaître du code commençant par les "
 "lignes :"
 
-#: C/magic-mirror.vala.page:71(title) C/image-viewer.vala.page:106(title)
-#: C/image-viewer.cpp.page:60(title) C/image-viewer.c.page:59(title)
+#: 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:64(title)
+#: C/guitar-tuner.c.page:65(title)
 msgid "Build the code for the first time"
 msgstr "Première construction du programme"
 
-#: C/magic-mirror.vala.page:72(p)
+#: C/magic-mirror.vala.page:73(p)
 msgid ""
 "The code loads an (empty) window and shows it. More details are given below; "
 "skip this list if you understand the basics:"
@@ -4843,7 +10497,7 @@ msgstr ""
 "Le programme charge et affiche une fenêtre (vide). Vous trouverez plus de "
 "détails ci-dessous ; passez cette liste si vous comprenez les bases :"
 
-#: C/magic-mirror.vala.page:75(p) C/guitar-tuner.vala.page:73(p)
+#: C/magic-mirror.vala.page:76(p) C/guitar-tuner.vala.page:73(p)
 msgid ""
 "The two <code>using</code> lines import namespaces so we don't have to name "
 "them explicitly."
@@ -4851,7 +10505,7 @@ msgstr ""
 "Les deux lignes <code>using</code> importent des espaces de noms que nous "
 "n'aurons plus à nommer explicitement."
 
-#: C/magic-mirror.vala.page:78(p)
+#: C/magic-mirror.vala.page:79(p)
 msgid ""
 "The constructor of the <code>Main</code> class creates a new window and sets "
 "its title. Afterwards the window is shown and a signal is connected which "
@@ -4862,7 +10516,7 @@ msgstr ""
 "permettant de quitter l'application est connecté à la fermeture de la "
 "fenêtre. Plus d'informations sur les signaux sont données plus tard."
 
-#: C/magic-mirror.vala.page:82(p)
+#: C/magic-mirror.vala.page:83(p)
 msgid ""
 "The static <code>main</code> function is run by default when you start a "
 "Vala application. It calls a few functions which create the Main class, set "
@@ -4877,9 +10531,9 @@ msgstr ""
 "l'interface utilisateur et commence à écouter les événements (comme des "
 "clics de souris ou des appuis sur des touches)."
 
-#: C/magic-mirror.vala.page:86(p) C/image-viewer.vala.page:126(p)
-#: C/image-viewer.cpp.page:76(p) C/image-viewer.c.page:78(p)
-#: C/guitar-tuner.cpp.page:78(p) C/guitar-tuner.c.page:83(p)
+#: C/magic-mirror.vala.page:87(p) C/image-viewer.vala.page:127(p)
+#: C/image-viewer.cpp.page:76(p) C/image-viewer.c.page:79(p)
+#: C/guitar-tuner.cpp.page:78(p) C/guitar-tuner.c.page:84(p)
 msgid ""
 "This code is ready to be used, so you can compile it by clicking "
 "<guiseq><gui>Build</gui><gui>Build Project</gui></guiseq> (or press "
@@ -4889,7 +10543,7 @@ msgstr ""
 "cliquant sur <guiseq><gui>Construire</gui><gui>Construire le projet</gui></"
 "guiseq> ou en appuyant sur <keyseq><key>Maj</key><key>F7</key></keyseq>."
 
-#: C/magic-mirror.vala.page:87(p) C/image-viewer.vala.page:127(p)
+#: C/magic-mirror.vala.page:88(p) C/image-viewer.vala.page:128(p)
 msgid ""
 "Change the <gui>Configuration</gui> to <gui>Default</gui> and then press "
 "<gui>Execute</gui> to configure the build directory. You only need to do "
@@ -4900,11 +10554,11 @@ msgstr ""
 "<gui>Exécuter</gui>. Il ne faut le faire qu'une seule fois, à la première "
 "compilation."
 
-#: C/magic-mirror.vala.page:91(title)
+#: C/magic-mirror.vala.page:92(title)
 msgid "Access the webcam video stream with GStreamer"
 msgstr "Accès au flux vidéo de votre webcam avec GStreamer"
 
-#: C/magic-mirror.vala.page:92(p)
+#: C/magic-mirror.vala.page:93(p)
 msgid ""
 "The GStreamer multimedia framework is able to handle video from webcams. "
 "Let's add GStreamer to our application and so we can access the video stream."
@@ -4913,7 +10567,7 @@ msgstr ""
 "de webcams. Ajoutons GStreamer à notre application et nous pouvons ainsi "
 "accéder au flux vidéo."
 
-#: C/magic-mirror.vala.page:119(p)
+#: C/magic-mirror.vala.page:120(p)
 msgid ""
 "First we remove the window we created before because GStreamer will take "
 "care of showing the picture on screen."
@@ -4921,7 +10575,7 @@ msgstr ""
 "Enlevons d'abord la fenêtre créée précédemment, car GStreamer va gérer "
 "l'affichage de l'image à l'écran."
 
-#: C/magic-mirror.vala.page:123(p)
+#: C/magic-mirror.vala.page:124(p)
 msgid ""
 "Now we are creating a GStreamer element which accesses our webcam. We are "
 "using the Camerabin element, which is an all-in-one camera element and is "
@@ -4937,7 +10591,7 @@ msgstr ""
 "State.PLAYING)</code> nous disons au pipeline GStreamer, que nous venons de "
 "créer, de commencer la lecture. Facile, non ?"
 
-#: C/magic-mirror.vala.page:130(p)
+#: C/magic-mirror.vala.page:131(p)
 msgid ""
 "Of course it is also possible to integrate the video more tighly into other "
 "windows but that is an advanced topic that includes some details of the X "
@@ -4947,7 +10601,7 @@ msgstr ""
 "d'autres fenêtres, mais c'est un sujet avancé, qui inclut des détails sur le "
 "système X Window et que nous ne traiterons pas ici."
 
-#: C/magic-mirror.vala.page:134(p)
+#: C/magic-mirror.vala.page:135(p)
 msgid ""
 "Compile and run it again. You will end up with two windows. In the next step "
 "we will integrate the video into the GTK+ window."
@@ -4956,7 +10610,7 @@ msgstr ""
 "fenêtres. À l'étape suivante, nous allons intégrer la vidéo dans la fenêtre "
 "GTK+."
 
-#: C/magic-mirror.vala.page:144(p)
+#: C/magic-mirror.vala.page:145(p)
 msgid ""
 "If you run into problems with the tutorial, compare your code with this "
 "<link href=\"magic-mirror/magic-mirror.vala\">reference code</link>. There "
@@ -4972,11 +10626,11 @@ msgstr ""
 "une fenêtre standard Gtk, mais qui nécessite des techniques avancées ainsi "
 "que l'ajout de boutons pour lire/arrêter l'image."
 
-#: C/magic-mirror.vala.page:150(title) C/guitar-tuner.vala.page:258(title)
+#: C/magic-mirror.vala.page:151(title) C/guitar-tuner.vala.page:258(title)
 msgid "Further reading"
 msgstr "Documentation complémentaire"
 
-#: C/magic-mirror.vala.page:151(p)
+#: C/magic-mirror.vala.page:152(p)
 msgid ""
 "To find out more about the Vala programming language you might want to check "
 "out the <link href=\"http://live.gnome.org/Vala/Tutorial\";>Vala Tutorial</"
@@ -4985,11 +10639,11 @@ msgstr ""
 "Pour en savoir plus à propos de la programmation en langage Vala, consultez "
 "le <link href=\"http://live.gnome.org/Vala/Tutorial\";>manuel Vala</link>."
 
-#: C/magic-mirror.vala.page:156(title)
+#: C/magic-mirror.vala.page:157(title)
 msgid "Conclusion"
 msgstr "Conclusion"
 
-#: C/magic-mirror.vala.page:157(p)
+#: C/magic-mirror.vala.page:158(p)
 msgid ""
 "That's it, you have managed to create a full-featured webcam photo "
 "application in 15 minutes. Now you can shave your beard off or add some "
@@ -5005,101 +10659,229 @@ 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/linkbutton.vala.page:20(None) C/linkbutton.py.page:21(None)
-#: C/linkbutton.js.page:20(None) C/linkbutton.c.page:21(None)
+#: 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:16(desc) C/linkbutton.c.page:16(desc)
+#: C/linkbutton.vala.page:7(title)
+#, fuzzy
+#| msgid "LinkButton"
+msgid "LinkButton (Vala)"
+msgstr "LinkButton"
+
+#: C/linkbutton.vala.page:17(desc) C/linkbutton.c.page:17(desc)
 msgid "Create buttons bound to a URL"
 msgstr "Créer des boutons reliés à un URL"
 
-#: C/linkbutton.vala.page:19(title) C/linkbutton.py.page:19(title)
-msgid "LinkButton widget"
-msgstr "Élément graphique LinkButton"
+#: 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:21(p)
-#, fuzzy
-#| msgid "This button links to the GNOME live webpage."
+#: C/linkbutton.vala.page:22(p)
 msgid "This button links to GNOME live."
 msgstr "Ce bouton se connecte à la page Web de GNOME live."
 
-#: C/linkbutton.vala.page:28(link) C/linkbutton.js.page:30(link)
+#: C/linkbutton.vala.page:29(link) C/linkbutton.js.page:31(link)
 msgid "Gtk.LinkButton"
 msgstr "Gtk.LinkButton"
 
-#: C/linkbutton.py.page:16(desc)
+#: C/linkbutton.py.page:7(title)
+#, fuzzy
+#| msgid "LinkButton"
+msgid "LinkButton (Python)"
+msgstr "LinkButton"
+
+#: C/linkbutton.py.page:18(desc)
 msgid "A button bound to an URL"
 msgstr "Un bouton relié à un URL"
 
-#: C/linkbutton.py.page:22(p)
+#: C/linkbutton.py.page:24(p)
 msgid "A button that links to a web page."
 msgstr "Un bouton qui crée un lien vers une page Web."
 
-#: C/linkbutton.py.page:31(link) C/linkbutton.c.page:32(link)
+#: C/linkbutton.py.page:35(title)
+msgid "Useful methods for a LinkButton widget"
+msgstr "Méthodes utiles pour un élément graphique LinkButton"
+
+#: C/linkbutton.py.page:37(p)
+msgid ""
+"<code>get_visited()</code> returns the 'visited' state (<code>True</code> or "
+"<code>False</code>) of the URI where the LinkButton points. The button "
+"becomes visited when it is clicked."
+msgstr ""
+"La méthode <code>get_visited()</code> renvoie l'état "
+"« visited » (<code>True</code> ou <code>False</code>) de l'URI vers lequel "
+"pointe le LinkButton. Le bouton se change en visited quand il est cliqué."
+
+#: C/linkbutton.py.page:38(p)
+msgid ""
+"<code>set_visited(True)</code> sets the 'visited' state of the URI where the "
+"LinkButton points as <code>True</code> (analogously for <code>False</code>)."
+msgstr ""
+"La méthode <code>set_visited(vrai)</code> définit l'état « visited » de "
+"l'URI vers lequel pointe le LinkButton à <code>vrai</code> (même chose pour "
+"<code>faux</code>)."
+
+#: C/linkbutton.py.page:39(p)
+msgid ""
+"Each time the button is clicked, the signal <code>\"activate-link\"</code> "
+"is emitted. For an explanation of signals and callback functions, see <link "
+"xref=\"signals-callbacks.py\">this page</link>."
+msgstr ""
+"À chaque fois que le bouton es cliqué, le signal <code>\"activate-link\"</"
+"code> est émis. Pour de plus amples informations sur les signaux et les "
+"fonctions de rappel, consultez <link xref=\"signals-callbacks.py\">cette "
+"page</link>."
+
+#: C/linkbutton.py.page:47(link) C/linkbutton.c.page:33(link)
 msgid "GtkLinkButton"
 msgstr "GtkLinkButton"
 
-#: C/linkbutton.js.page:16(desc)
+#: C/linkbutton.js.page:7(title)
+#, fuzzy
+#| msgid "LinkButton widget"
+msgid "LinkButton (JavaScript)"
+msgstr "Élément graphique LinkButton"
+
+#: C/linkbutton.js.page:17(desc)
 msgid "A button that links to a web page"
 msgstr "Un bouton qui crée un lien vers une page Web"
 
-#: C/linkbutton.js.page:19(title)
-msgid "LinkButton"
-msgstr "LinkButton"
-
-#: C/linkbutton.js.page:21(p)
+#: C/linkbutton.js.page:22(p)
 msgid "A button that links to live.gnome.org."
 msgstr "Un bouton qui crée un lien vers live.gnome.org."
 
-#: C/linkbutton.c.page:19(title)
-msgid "LinkButton Widget"
-msgstr "Élément graphique LinkButton"
+#: C/linkbutton.c.page:7(title)
+#, fuzzy
+#| msgid "LinkButton"
+msgid "LinkButton (C)"
+msgstr "LinkButton"
 
-#: C/linkbutton.c.page:22(p)
+#: C/linkbutton.c.page:23(p)
 msgid "This button links to the GNOME live webpage."
 msgstr "Ce bouton se connecte à la page Web de GNOME live."
 
+#: C/license.page:8(desc)
+msgid "Legal information."
+msgstr ""
+
+#: C/license.page:11(title)
+msgid "License"
+msgstr ""
+
+#: C/license.page:12(p)
+msgid ""
+"This work is distributed under a CreativeCommons Attribution-Share Alike 3.0 "
+"Unported license."
+msgstr ""
+
+#: C/license.page:20(p)
+msgid "You are free:"
+msgstr ""
+
+#: C/license.page:25(em)
+msgid "To share"
+msgstr ""
+
+#: C/license.page:26(p)
+msgid "To copy, distribute and transmit the work."
+msgstr ""
+
+#: C/license.page:29(em)
+msgid "To remix"
+msgstr ""
+
+#: C/license.page:30(p)
+msgid "To adapt the work."
+msgstr ""
+
+#: C/license.page:33(p)
+#, fuzzy
+#| msgid "The code has the following purpose:"
+msgid "Under the following conditions:"
+msgstr "L'objectif du programme est le suivant :"
+
+#: C/license.page:38(em)
+#, fuzzy
+#| msgid "Introduction"
+msgid "Attribution"
+msgstr "Introduction"
+
+#: C/license.page:39(p)
+msgid ""
+"You must attribute the work in the manner specified by the author or "
+"licensor (but not in any way that suggests that they endorse you or your use "
+"of the work)."
+msgstr ""
+
+#: C/license.page:46(em)
+msgid "Share Alike"
+msgstr ""
+
+#: C/license.page:47(p)
+msgid ""
+"If you alter, transform, or build upon this work, you may distribute the "
+"resulting work only under the same, similar or a compatible license."
+msgstr ""
+
+#: C/license.page:53(p)
+msgid ""
+"For the full text of the license, see the <link href=\"http://";
+"creativecommons.org/licenses/by-sa/3.0/legalcode\">CreativeCommons website</"
+"link>, or read the full <link href=\"http://creativecommons.org/licenses/by-";
+"sa/3.0/\">Commons Deed</link>."
+msgstr ""
+
+#: C/license.page:60(p)
+msgid ""
+"As a special exception, the copyright holders give you permission to copy, "
+"modify, and distribute the example code contained in this documentation "
+"under the terms of your choosing, without restriction."
+msgstr ""
+
 #. When image changes, this message will be marked fuzzy or untranslated for you.
 #. It doesn't matter what you translate it to: it's not used at all.
-#: C/label.vala.page:20(None) C/label.py.page:25(None)
-#: C/label.js.page:20(None) C/label.c.page:23(None)
+#: 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:16(desc) C/label.c.page:16(desc)
+#: C/label.vala.page:7(title)
+msgid "Label (Vala)"
+msgstr ""
+
+#: C/label.vala.page:17(desc) C/label.c.page:18(desc)
 msgid "A widget which displays text"
 msgstr "Un élément graphique qui affiche du texte"
 
-#: C/label.vala.page:21(p) C/label.py.page:26(p) C/label.c.page:24(p)
+#: C/label.vala.page:22(p) C/label.py.page:28(p) C/label.c.page:26(p)
 msgid "A simple label"
 msgstr "Une étiquette simple"
 
-#: C/label.vala.page:31(link) C/label.js.page:30(link)
-#: C/dialog.vala.page:32(link)
-msgid "Gtk.Label"
-msgstr "Gtk.Label"
-
-#: C/label.py.page:16(name)
-msgid "Sebastian Pölsterl"
-msgstr ""
-
-#: C/label.py.page:17(email)
-msgid "sebp k-d-w org"
-msgstr ""
+#: C/label.py.page:7(title)
+#, fuzzy
+#| msgid "Python"
+msgid "Label (Python)"
+msgstr "Python"
 
-#: C/label.py.page:21(desc)
+#: C/label.py.page:23(desc)
 msgid "A widget that displays a small to medium amount of text"
 msgstr ""
+"Un élément graphique qui affiche une petite à moyenne quantité de texte"
 
-#: C/label.py.page:35(p)
+#: C/label.py.page:37(p)
 msgid ""
 "Another way to obtain what we have in the example is to create the label as "
 "an instance of another class and add it to the instance of <code>MyWindow</"
 "code> in the <code>do_activate(self)</code> method:"
 msgstr ""
+"Une autre manière d'obtenir ce que contient cet exemple est de créer "
+"l'étiquette comme étant un exemple d'une autre classe et de l'ajouter à "
+"<code>MyWindow</code> dans la méthode <code>do_activate(self)</code> :"
 
-#: C/label.py.page:36(code)
+#: C/label.py.page:38(code)
 #, no-wrap
 msgid ""
 "\n"
@@ -5129,47 +10911,101 @@ msgid ""
 "        # show the window and everything on it\n"
 "        win.show_all()"
 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"
+"\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:66(title)
-msgid "Useful methods for a Label widgets"
-msgstr ""
+#: C/label.py.page:68(title)
+msgid "Useful methods for a Label widget"
+msgstr "Méthodes utiles pour un élément graphique étiquette"
 
-#: C/label.py.page:68(p)
+#: C/label.py.page:70(p)
 msgid ""
-"<code>label = Gtk.Label(\"Hello GNOME!\")</code> could also be used create a "
-"label and set the text directly."
+"<code>label = Gtk.Label(label=\"Hello GNOME!\")</code> could also be used "
+"create a label and set the text directly. For a general discussion of this, "
+"see <link xref=\"properties.py\">here</link>."
 msgstr ""
+"La fonction <code>label = Gtk.Label(label=\"Hello GNOME!\")</code> pourrait "
+"aussi être utilisée pour créer une étiquette et y définir le texte "
+"directement. Pour de plus amples informations sur cela, voyez <link xref="
+"\"properties.py\">ici</link>."
 
-#: C/label.py.page:69(p)
+#: C/label.py.page:72(p)
 msgid ""
 "<code>set_line_wrap(True)</code> breaks lines if the text of the label "
 "exceeds the size of the widget."
 msgstr ""
+"La fonction <code>set_line_wrap(True)</code> renvoie le texte de l'étiquette "
+"à la ligne s'il excède la largeur de l'élément graphique."
 
-#: C/label.py.page:70(p)
+#: C/label.py.page:73(p)
 msgid ""
 "<code>set_justify(Gtk.Justification.LEFT)</code> (or <code>Gtk.Justification."
 "RIGHT, Gtk.Justification.CENTER, Gtk.Justification.FILL</code>) sets the "
 "alignment of the lines in the text of the label relative to each other. The "
 "method has no effect on a single-line label."
 msgstr ""
+"La fonction <code>set_justify(Gtk.Justification.LEFT)</code> (ou <code>Gtk."
+"Justification.RIGHT, Gtk.Justification.CENTER, Gtk.Justification.FILL</"
+"code>) définit l'alignement des lignes du texte de l'étiquette à une "
+"position relative les unes par rapport aux autres. La méthode n'a aucun "
+"effet sur une étiquette comportant une seule ligne."
 
-#: C/label.py.page:71(p)
+#: C/label.py.page:74(p)
 msgid ""
 "For decorated text we can use <code>set_markup(\"text\")</code>, where <code>"
 "\"text\"</code> is a text in the <link href=\"http://developer.gnome.org/";
 "pango/stable/PangoMarkupFormat.html\">Pango Markup Language</link>. An "
 "example:"
 msgstr ""
+"Pour décorer le texte, nous pouvons utiliser <code>set_markup(\"text\")</"
+"code>, où <code>\"text\"</code> est mis en <link href=\"http://developer.";
+"gnome.org/pango/stable/PangoMarkupFormat.html\">langage Markup pango</link>. "
+"Voici un exemple :"
+
+#: C/label.js.page:7(title)
+#, fuzzy
+#| msgid "JavaScript"
+msgid "Label (JavaScript)"
+msgstr "JavaScript"
 
-#: C/label.js.page:16(desc)
+#: C/label.js.page:17(desc)
 msgid "A label which can contain text"
 msgstr "Une étiquette qui peut contenir du texte"
 
-#: C/label.js.page:21(p)
+#: C/label.js.page:22(p)
 msgid "A label displaying a friendly message."
 msgstr "Une étiquette qui affiche un message sympathique."
 
+#: C/label.c.page:7(title)
+#, fuzzy
+#| msgid "Label"
+msgid "Label (C)"
+msgstr "Étiquette"
+
 #: C/js.page:7(title)
 msgid "JavaScript"
 msgstr "JavaScript"
@@ -5205,31 +11041,37 @@ msgstr "Contribution"
 
 #. When image changes, this message 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:47(None) C/image-viewer.py.page:41(None)
+#: 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:32(None)
+#: C/image-viewer.c.page:33(None)
 msgid "@@image: 'media/image-viewer.png'; md5=7720360611243b14283b83527be968c2"
 msgstr ""
 "@@image: 'media/image-viewer.png'; md5=7720360611243b14283b83527be968c2"
 
-#: C/image-viewer.vala.page:9(desc) C/image-viewer.c.page:9(desc)
+#: C/image-viewer.vala.page:7(title)
+#, fuzzy
+#| msgid "Image Viewer"
+msgid "Image Viewer (Vala)"
+msgstr "Visionneur d'images"
+
+#: C/image-viewer.vala.page:10(desc) C/image-viewer.c.page:10(desc)
 msgid "A little bit more than a simple \"Hello world\" Gtk application."
 msgstr "Un peu plus qu'une simple application Gtk « Hello world »."
 
-#: C/image-viewer.vala.page:21(name)
+#: C/image-viewer.vala.page:22(name)
 msgid "Philip Chimento"
 msgstr "Philip Chimento"
 
-#: C/image-viewer.vala.page:22(email)
+#: C/image-viewer.vala.page:23(email)
 msgid "philip chimento gmail com"
 msgstr "philip chimento gmail com"
 
-#: C/image-viewer.vala.page:30(title) C/image-viewer.py.page:24(title)
+#: 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 Visionneur d'images"
 
-#: C/image-viewer.vala.page:32(p)
+#: C/image-viewer.vala.page:33(p)
 msgid ""
 "In this tutorial you will create an application which opens and displays an "
 "image file. You will learn:"
@@ -5237,7 +11079,7 @@ msgstr ""
 "Dans ce tutoriel, nous allons écrire une application qui charge et affiche "
 "un fichier image. Vous allez apprendre :"
 
-#: C/image-viewer.vala.page:34(p)
+#: C/image-viewer.vala.page:35(p)
 msgid ""
 "How to set up a basic project using the <link xref=\"getting-ready\">Anjuta "
 "IDE</link>."
@@ -5245,7 +11087,7 @@ msgstr ""
 "comment paramétrer un projet de base en utilisant <link xref=\"getting-ready"
 "\">Anjuta IDE</link>,"
 
-#: C/image-viewer.vala.page:35(p)
+#: C/image-viewer.vala.page:36(p)
 msgid ""
 "How to write a <link href=\"http://developer.gnome.org/platform-overview/";
 "stable/gtk\">Gtk application</link> in Vala"
@@ -5253,7 +11095,7 @@ msgstr ""
 "comment écrire une <link href=\"http://developer.gnome.org/platform-overview/";
 "stable/gtk\">application Gtk</link> en Vala,"
 
-#: C/image-viewer.vala.page:36(p)
+#: C/image-viewer.vala.page:37(p)
 msgid ""
 "Some basic concepts of <link href=\"http://developer.gnome.org/gobject/";
 "stable/\">GObject</link> programming"
@@ -5261,7 +11103,7 @@ msgstr ""
 "quelques concepts de base sur la programmation <link href=\"http://developer.";
 "gnome.org/gobject/stable/\">GObject</link>,"
 
-#: C/image-viewer.vala.page:41(p) C/guitar-tuner.vala.page:37(p)
+#: C/image-viewer.vala.page:42(p) C/guitar-tuner.vala.page:37(p)
 msgid ""
 "Basic knowledge of the <link href=\"https://live.gnome.org/Vala/Tutorial";
 "\">Vala</link> programming language."
@@ -5269,11 +11111,11 @@ msgstr ""
 "les connaissances de base du langage de programmation <link href=\"https://";
 "live.gnome.org/Vala/Tutorial\">Vala</link>."
 
-#: C/image-viewer.vala.page:42(p) C/guitar-tuner.vala.page:38(p)
+#: C/image-viewer.vala.page:43(p) C/guitar-tuner.vala.page:38(p)
 msgid "An installed copy of <app>Anjuta</app>."
 msgstr "une copie installée de <em>Anjuta</em>."
 
-#: C/image-viewer.vala.page:43(p)
+#: C/image-viewer.vala.page:44(p)
 msgid ""
 "You may find the <link href=\"http://valadoc.org/gtk+-3.0/\";>gtk+-3.0</link> "
 "API Reference useful, although it is not necessary to follow the tutorial."
@@ -5282,7 +11124,7 @@ msgstr ""
 "+-3.0/\">gtk+-3.0</link> utile, bien qu'il ne soit pas nécessaire de suivre "
 "le tutoriel."
 
-#: C/image-viewer.vala.page:56(p) C/guitar-tuner.vala.page:49(p)
+#: C/image-viewer.vala.page:57(p) C/guitar-tuner.vala.page:49(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 "
@@ -5292,7 +11134,7 @@ msgstr ""
 "ou <guiseq><gui>Fichier</gui><gui>Nouveau</gui><gui>Projet</gui></guiseq> "
 "pour ouvrir l'assistant de création de projet."
 
-#: C/image-viewer.vala.page:59(p)
+#: C/image-viewer.vala.page:60(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 "
@@ -5303,7 +11145,7 @@ msgstr ""
 "suivantes. Utilisez <file>image-viewer</file> comme nom de projet et de "
 "répertoire."
 
-#: C/image-viewer.vala.page:63(p)
+#: C/image-viewer.vala.page:64(p)
 msgid ""
 "Make sure that <gui>Use GtkBuilder for user interface</gui> is unchecked as "
 "we will create the UI manually in this tutorial."
@@ -5312,7 +11154,7 @@ msgstr ""
 "utilisateur</gui> car nous allons créer l'interface utilisateur manuellement "
 "dans cet exemple."
 
-#: C/image-viewer.vala.page:64(p)
+#: C/image-viewer.vala.page:65(p)
 msgid ""
 "You will learn how to use the interface builder in the <link xref=\"guitar-"
 "tuner.vala\">Guitar-Tuner</link> tutorial."
@@ -5321,7 +11163,7 @@ msgstr ""
 "link> si vous souhaitez savoir comment utiliser le constructeur d'interface "
 "GtkBuilder."
 
-#: C/image-viewer.vala.page:68(p)
+#: C/image-viewer.vala.page:69(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 "
@@ -5331,7 +11173,7 @@ msgstr ""
 "image_viewer.vala</file> depuis l'onglet <gui>Projet</gui> ou l'onglet "
 "<gui>Fichiers</gui>. Vous verrez apparaître ce code :"
 
-#: C/image-viewer.vala.page:107(p)
+#: C/image-viewer.vala.page:108(p)
 msgid ""
 "The code loads an (empty) window from the user interface description file "
 "and shows it. More details are given below; skip this list if you understand "
@@ -5341,7 +11183,7 @@ msgstr ""
 "l'interface et l'affiche. Vous trouverez plus de détails ci-dessous ; passez "
 "cette liste si vous comprenez les bases :"
 
-#: C/image-viewer.vala.page:112(p)
+#: C/image-viewer.vala.page:113(p)
 msgid ""
 "The two <code>using</code> lines at the top import namespaces so we don't "
 "have to name them explicitly."
@@ -5349,7 +11191,7 @@ msgstr ""
 "Les deux lignes <code>using</code> du début importent des espaces de noms "
 "que nous n'aurons plus à nommer explicitement."
 
-#: C/image-viewer.vala.page:115(p)
+#: C/image-viewer.vala.page:116(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";
@@ -5360,8 +11202,8 @@ msgstr ""
 "SignalsAndCallbacks\">signal</link> pour quitter l'application quand cette "
 "fenêtre est fermée."
 
-#: C/image-viewer.vala.page:116(p) C/image-viewer.c.page:68(p)
-#: C/guitar-tuner.c.page:73(p)
+#: C/image-viewer.vala.page:117(p) C/image-viewer.c.page:69(p)
+#: C/guitar-tuner.c.page:74(p)
 msgid ""
 "Connecting signals is how you define what happens when you push a button, or "
 "when some other event happens. Here, the <code>destroy</code> function is "
@@ -5372,7 +11214,7 @@ msgstr ""
 "fonction <code>destroy</code> est appelée (et quitte l'application) quand la "
 "fenêtre est fermée."
 
-#: C/image-viewer.vala.page:120(p)
+#: C/image-viewer.vala.page:121(p)
 msgid ""
 "The <code>static main</code> function is run by default when you start a "
 "Vala application. It calls a few functions which create the <code>Main</"
@@ -5391,12 +11233,12 @@ msgstr ""
 "utilisateur et commence à écouter les événements (comme des clics de souris "
 "ou des appuis sur des touches)."
 
-#: C/image-viewer.vala.page:132(title) C/image-viewer.cpp.page:81(title)
-#: C/image-viewer.c.page:83(title)
+#: 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 "Création de l'interface utilisateur"
 
-#: C/image-viewer.vala.page:133(p)
+#: C/image-viewer.vala.page:134(p)
 msgid ""
 "Now we will bring life into the empty window. GTK organizes the user "
 "interface with <link href=\"http://www.valadoc.org/gtk+-2.0/Gtk.Container.";
@@ -5406,23 +11248,23 @@ msgid ""
 "Box</code></link>."
 msgstr ""
 "Nous allons maintenant donner vie à la fenêtre vide. GTK organise "
-"l'interface utilisateur avec des <link href=\"http://www.valadoc.org/gtk+-";
-"2.0/Gtk.Container.html\"><code>Gtk.Container</code></link> qui peuvent "
+"l'interface utilisateur avec des <link href=\"http://www.valadoc.org/gtk";
+"+-2.0/Gtk.Container.html\"><code>Gtk.Container</code></link> qui peuvent "
 "contenir d'autres éléments graphiques et même d'autres conteneurs. Ici, nous "
 "allons utiliser le plus simple conteneur disponible, une boîte <link href="
 "\"http://unstable.valadoc.org/gtk+-2.0/Gtk.Box.html\";><code>Gtk.Box</code></"
 "link> :"
 
-#: C/image-viewer.vala.page:137(p)
+#: C/image-viewer.vala.page:138(p)
 msgid "Add the following lines to the top of the <code>Main</code> class:"
 msgstr ""
 "Ajoutez les lignes suivantes au dessus de la classe <code>Main</code> :"
 
-#: C/image-viewer.vala.page:143(p)
+#: C/image-viewer.vala.page:144(p)
 msgid "Now replace the current constructor with the one below:"
 msgstr "Remplacez maintenant le constructeur actuel par celui ci-dessous :"
 
-#: C/image-viewer.vala.page:169(p)
+#: C/image-viewer.vala.page:170(p)
 msgid ""
 "The first two lines are the parts of the GUI that we will need to access "
 "from more than one method. We declare them up here so that they are "
@@ -5434,7 +11276,7 @@ msgstr ""
 "déclarons avant afin qu'elles soient accessibles depuis la classe plutôt que "
 "seulement dans la méthode où elles sont crées."
 
-#: C/image-viewer.vala.page:173(p)
+#: C/image-viewer.vala.page:174(p)
 msgid ""
 "The first lines of the constructor create the empty window. The next lines "
 "create the widgets we want to use: a button for opening up an image, the "
@@ -5445,7 +11287,7 @@ msgstr ""
 "pour ouvrir une image, l'élément graphique image lui-même et la boîte que "
 "nous utilisons comme conteneur."
 
-#: C/image-viewer.vala.page:177(p)
+#: C/image-viewer.vala.page:178(p)
 msgid ""
 "The calls to <link href=\"http://unstable.valadoc.org/gtk+-2.0/Gtk.Box.";
 "pack_start.html\"><code>pack_start</code></link> add the two widgets to the "
@@ -5465,7 +11307,7 @@ msgstr ""
 "pour différentes tailles de fenêtre. La boîte est ensuite ajoutée dans la "
 "fenêtre."
 
-#: C/image-viewer.vala.page:184(p)
+#: C/image-viewer.vala.page:185(p)
 msgid ""
 "We need to define what happens when the user clicks on the button. GTK uses "
 "the concept of <em>signals</em>."
@@ -5473,7 +11315,7 @@ msgstr ""
 "Nous devons définir ce qui se produit lorsque l'utilisateur clique sur le "
 "bouton. GTK utilise le concept de <em>signaux</em>."
 
-#: C/image-viewer.vala.page:185(p)
+#: C/image-viewer.vala.page:186(p)
 msgid ""
 "When the <link href=\"http://valadoc.org/gtk+-3.0/Gtk.Button.html\";>button</"
 "link> is clicked, it fires the <link href=\"http://valadoc.org/gtk+-3.0/Gtk.";
@@ -5487,7 +11329,7 @@ msgstr ""
 "pouvons connecter à des actions (définies dans une <link href=\"https://live.";
 "gnome.org/Vala/SignalsAndCallbacks\">fonction de rappel</link>)."
 
-#: C/image-viewer.vala.page:188(p)
+#: C/image-viewer.vala.page:189(p)
 msgid ""
 "This is done using the <code>connect</code> method of the button's "
 "<code>clicked</code> signal, which in this case tells GTK to call the (yet "
@@ -5500,7 +11342,7 @@ msgstr ""
 "le bouton est cliqué. Nous définirons la <em>fonction de rappel</em> dans la "
 "prochaine section."
 
-#: C/image-viewer.vala.page:192(p)
+#: C/image-viewer.vala.page:193(p)
 msgid ""
 "In the callback, we need to access the <code>window</code> and <code>image</"
 "code> widgets, which is why we defined them as private members at the top of "
@@ -5511,7 +11353,7 @@ msgstr ""
 "pourquoi nous les définissons comme membres privés (private) au début de "
 "notre classe."
 
-#: C/image-viewer.vala.page:196(p)
+#: C/image-viewer.vala.page:197(p)
 msgid ""
 "The last <code>connect</code> call makes sure that the application exits "
 "when the window is closed. The code generated by Anjuta called an "
@@ -5528,12 +11370,12 @@ msgstr ""
 "<code>main_quit</code>. Vous pouvez supprimer la méthode <code>on_destroy</"
 "code>."
 
-#: C/image-viewer.vala.page:203(title) C/image-viewer.cpp.page:136(title)
-#: C/image-viewer.c.page:148(title)
+#: 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 "Affichage de l'image"
 
-#: C/image-viewer.vala.page:204(p)
+#: C/image-viewer.vala.page:205(p)
 msgid ""
 "We will now define the signal handler for the <code>clicked</code> signal "
 "for the button we mentioned before. Add this code after the constructor:"
@@ -5542,12 +11384,12 @@ msgstr ""
 "<code>clicked</code> du bouton ci-dessus. Ajoutez ce code après le "
 "constructeur :"
 
-#: C/image-viewer.vala.page:230(p)
+#: C/image-viewer.vala.page:231(p)
 msgid "This is a bit complicated, so let's break it down:"
 msgstr ""
 "C'est un peu compliqué, donc décortiquons cette partie étape par étape :"
 
-#: C/image-viewer.vala.page:231(p)
+#: C/image-viewer.vala.page:232(p)
 msgid ""
 "A signal handler is a type of callback method that is called when a signal "
 "is emitted. Here the terms are used interchangeably."
@@ -5555,7 +11397,7 @@ msgstr ""
 "Un gestionnaire de signal est un type de fonction de rappel qui est appelé "
 "lorsqu'un signal est émis. Ici les termes sont utilisés indifféremment."
 
-#: C/image-viewer.vala.page:234(p)
+#: C/image-viewer.vala.page:235(p)
 msgid ""
 "The first argument of the callback method is always the widget that sent the "
 "signal. Sometimes other arguments related to the signal come after that, but "
@@ -5565,7 +11407,7 @@ msgstr ""
 "graphique qui a envoyé le signal. Parfois d'autres arguments apparaissent "
 "derrière reliés au signal, mais <em>clicked</em> n'en a aucun."
 
-#: C/image-viewer.vala.page:236(p)
+#: C/image-viewer.vala.page:237(p)
 msgid ""
 "In this case the <code>button</code> sent the <code>clicked</code> signal, "
 "which is connected to the <code>on_open_image</code> callback method:"
@@ -5573,7 +11415,7 @@ msgstr ""
 "Dans ce cas, le <code>bouton</code> envoie le signal <code>clicked</code> "
 "qui est connecté à la fonction de rappel <code>on_open_image</code> :"
 
-#: C/image-viewer.vala.page:241(p)
+#: C/image-viewer.vala.page:242(p)
 msgid ""
 "The <code>on_open_image</code> method takes the button that emitted the "
 "signal as an argument:"
@@ -5581,7 +11423,7 @@ msgstr ""
 "Le méthode <code>on_open_image</code> prend comme paramètre le bouton qui a "
 "émis le signal :"
 
-#: C/image-viewer.vala.page:247(p)
+#: C/image-viewer.vala.page:248(p)
 msgid ""
 "The next interesting line is where the dialog for choosing the file is "
 "created. <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.FileChooserDialog.";
@@ -5596,7 +11438,7 @@ msgstr ""
 "dialogue et plusieurs options telles que l'étiquette des boutons et les "
 "actions correspondantes."
 
-#: C/image-viewer.vala.page:249(p)
+#: C/image-viewer.vala.page:250(p)
 msgid ""
 "Notice that we are using <link href=\"http://unstable.valadoc.org/gtk+-3.0/";
 "Gtk.Stock.html\"><em>stock</em></link> button names from Gtk, instead of "
@@ -5606,11 +11448,11 @@ msgid ""
 msgstr ""
 "Notez que nous utilisons les noms de bouton de la <link href=\"http://";
 "unstable.valadoc.org/gtk+-3.0/Gtk.Stock.html\"><em>collection</em></link> "
-"(stock) Gtk au lieu de saisir manuellement « Cancel » ou « Open ». L'avantage "
-"d'utiliser les noms de la collection est que les étiquettes des boutons sont "
-"déjà traduites dans la langue de l'utilisateur."
+"(stock) Gtk au lieu de saisir manuellement « Cancel » ou « Open ». "
+"L'avantage d'utiliser les noms de la collection est que les étiquettes des "
+"boutons sont déjà traduites dans la langue de l'utilisateur."
 
-#: C/image-viewer.vala.page:253(p)
+#: C/image-viewer.vala.page:254(p)
 msgid ""
 "The next two lines restrict the <gui>Open</gui> dialog to only display files "
 "which can be opened by <em>GtkImage</em>. GtkImage is a widget which "
@@ -5629,7 +11471,7 @@ msgstr ""
 "d'image comme PNG ou JPEG) au filtre. Enfin, nous appliquons ce filtre à la "
 "boîte de dialogue <gui>Open</gui>."
 
-#: C/image-viewer.vala.page:258(p)
+#: C/image-viewer.vala.page:259(p)
 msgid ""
 "<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Dialog.run.html";
 "\"><code>dialog.run</code></link> displays the <gui>Open</gui> dialog. The "
@@ -5648,7 +11490,7 @@ msgstr ""
 "<code>ResponseType.CANCEL</code> si l'utilisateur clique sur <gui>Cancel</"
 "gui>). L'instruction <code>switch</code> teste cette réponse."
 
-#: C/image-viewer.vala.page:263(p)
+#: C/image-viewer.vala.page:264(p)
 msgid ""
 "Assuming that the user did click <gui>Open</gui>, the next lines get the "
 "filename of the image selected by the user, and tell the <code>GtkImage</"
@@ -5659,7 +11501,7 @@ msgstr ""
 "l'utilisateur et indique à l'élément graphique <code>GtkImage</code> de "
 "charger et d'afficher l'image choisie."
 
-#: C/image-viewer.vala.page:266(p) C/image-viewer.py.page:213(p)
+#: C/image-viewer.vala.page:267(p) C/image-viewer.py.page:213(p)
 #: C/image-viewer.js.page:299(p)
 msgid ""
 "In the final line of this method, we destroy the <gui>Open</gui> dialog "
@@ -5668,13 +11510,13 @@ msgstr ""
 "La dernière ligne de cette méthode détruit la boîte de dialogue <gui>Open</"
 "gui> car nous n'en avons plus besoin."
 
-#: C/image-viewer.vala.page:267(p)
+#: C/image-viewer.vala.page:268(p)
 msgid "Destroying automatically hides the dialog."
 msgstr "La destruction masque automatiquement la boîte de dialogue."
 
-#: C/image-viewer.vala.page:274(p) C/image-viewer.cpp.page:205(p)
-#: C/image-viewer.c.page:216(p) C/guitar-tuner.vala.page:248(p)
-#: C/guitar-tuner.c.page:251(p)
+#: C/image-viewer.vala.page:275(p) C/image-viewer.cpp.page:205(p)
+#: C/image-viewer.c.page:217(p) C/guitar-tuner.vala.page:248(p)
+#: C/guitar-tuner.c.page:252(p)
 msgid ""
 "All of the code should now be ready to go. Click <guiseq><gui>Build</"
 "gui><gui>Build Project</gui></guiseq> to build everything again, and then "
@@ -5685,7 +11527,7 @@ msgstr ""
 "tout reconstruire et faites <guiseq><gui>Exécuter</gui><gui>Exécuter</gui></"
 "guiseq> pour lancer l'application."
 
-#: C/image-viewer.vala.page:276(p)
+#: C/image-viewer.vala.page:277(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 "
@@ -5695,7 +11537,7 @@ msgstr ""
 "viewer</file> dans la boîte de dialogue qui s'affiche et cliquez sur "
 "<gui>Exécuter</gui>. Amusez-vous bien !"
 
-#: C/image-viewer.vala.page:282(p)
+#: C/image-viewer.vala.page:283(p)
 msgid ""
 "If you run into problems with the tutorial, compare your code with this "
 "<link href=\"image-viewer/image-viewer.vala\">reference code</link>."
@@ -5704,23 +11546,23 @@ msgstr ""
 "programme à ce <link href=\"image-viewer/image-viewer.vala\">programme de "
 "référence</link>."
 
-#: C/image-viewer.vala.page:286(title) C/image-viewer.py.page:230(title)
+#: 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:226(title) C/guitar-tuner.vala.page:264(title)
-#: C/guitar-tuner.py.page:233(title) C/guitar-tuner.cpp.page:268(title)
-#: C/guitar-tuner.c.page:261(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 "Les étapes suivantes"
 
-#: C/image-viewer.vala.page:287(p) C/image-viewer.py.page:231(p)
+#: 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:227(p) C/guitar-tuner.vala.page:265(p)
-#: C/guitar-tuner.py.page:234(p) C/guitar-tuner.cpp.page:269(p)
-#: C/guitar-tuner.c.page:262(p)
+#: C/image-viewer.c.page:228(p) C/guitar-tuner.vala.page:265(p)
+#: C/guitar-tuner.py.page:235(p) C/guitar-tuner.cpp.page:269(p)
+#: C/guitar-tuner.c.page:263(p)
 msgid "Here are some ideas for how you can extend this simple demonstration:"
 msgstr "Voici quelques idées sur la manière d'étendre ce simple exemple :"
 
-#: C/image-viewer.vala.page:289(p)
+#: C/image-viewer.vala.page:290(p)
 msgid ""
 "Set it up so that when the window opens it is of a specific size to start "
 "off with. For example, 200 X 200 pixels."
@@ -5728,9 +11570,9 @@ msgstr ""
 "Paramètre en sorte que lorsque la fenêtre s'ouvre, elle fasse une taille de "
 "départ spécifiée, par exemple 200 X 200 pixels."
 
-#: C/image-viewer.vala.page:291(p) C/image-viewer.py.page:234(p)
+#: 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:230(p)
+#: C/image-viewer.c.page:231(p)
 msgid ""
 "Have the user select a directory rather than a file, and provide controls to "
 "cycle through all of the images in a directory."
@@ -5738,9 +11580,9 @@ msgstr ""
 "Faire que l'utilisateur puisse sélectionner un dossier plutôt qu'un fichier "
 "et fournir les contrôles pour naviguer parmi toutes les images d'un dossier."
 
-#: C/image-viewer.vala.page:294(p) C/image-viewer.py.page:237(p)
+#: 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:233(p)
+#: C/image-viewer.c.page:234(p)
 msgid ""
 "Apply random filters and effects to the image when it is loaded and allow "
 "the user to save the modified image."
@@ -5748,9 +11590,9 @@ msgstr ""
 "Appliquer au hasard des filtres et des effets à l'image quand elle est "
 "chargée et permettre à l'utilisateur d'enregistrer l'image modifiée."
 
-#: C/image-viewer.vala.page:295(p) C/image-viewer.py.page:238(p)
+#: 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:234(p)
+#: C/image-viewer.c.page:235(p)
 msgid ""
 "<link href=\"http://www.gegl.org/api.html\";>GEGL</link> provides powerful "
 "image manipulation capabilities."
@@ -5758,9 +11600,9 @@ msgstr ""
 "<link href=\"http://www.gegl.org/api.html\";>GEGL</link> fournit de "
 "puissantes possibilités de manipulation d'image."
 
-#: C/image-viewer.vala.page:298(p) C/image-viewer.py.page:241(p)
+#: 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:237(p)
+#: C/image-viewer.c.page:238(p)
 msgid ""
 "Allow the user to load images from network shares, scanners, and other more "
 "complicated sources."
@@ -5768,9 +11610,9 @@ msgstr ""
 "Permettre à l'utilisateur de charger des images depuis des sites de partage, "
 "des scanners ou d'autres sources plus sophistiquées."
 
-#: C/image-viewer.vala.page:299(p) C/image-viewer.py.page:242(p)
+#: 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:238(p)
+#: C/image-viewer.c.page:239(p)
 msgid ""
 "You can use <link href=\"http://library.gnome.org/devel/gio/unstable/\";>GIO</"
 "link> to handle network file tranfers and the like, and <link href=\"http://";
@@ -5782,6 +11624,12 @@ msgstr ""
 "choses du même type et <link href=\"http://library.gnome.org/devel/gnome-";
 "scan/unstable/\">GNOME Scan</link> pour gérer les documents scannés."
 
+#: C/image-viewer.py.page:7(title)
+#, fuzzy
+#| msgid "Image Viewer"
+msgid "Image Viewer (Python)"
+msgstr "Visionneur d'images"
+
 #: C/image-viewer.py.page:10(desc)
 msgid ""
 "A little bit more than a simple \"Hello world\" application - write an image "
@@ -6199,7 +12047,7 @@ msgstr ""
 "méthode <code>__init__</code> :"
 
 #: 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:185(p)
+#: C/image-viewer.cpp.page:172(p) C/image-viewer.c.page:186(p)
 msgid ""
 "This is a bit more complicated than anything we've attempted so far, so "
 "let's break it down:"
@@ -6238,7 +12086,7 @@ msgstr ""
 "<gui>Ouvrir</gui>."
 
 #: 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:197(p)
+#: C/image-viewer.cpp.page:180(p) C/image-viewer.c.page:198(p)
 msgid ""
 "Notice that we are using <em>stock</em> button names from Gtk, instead of "
 "manually typing \"Cancel\" or \"Open\". The advantage of using stock names "
@@ -6246,9 +12094,9 @@ msgid ""
 "language."
 msgstr ""
 "Notez que nous utilisons les noms de bouton de la <em>collection</em> "
-"(stock) Gtk au lieu de saisir manuellement « Cancel » ou « Open ». L'avantage "
-"d'utiliser les noms de la collection est que les étiquettes des boutons "
-"seront déjà traduites dans la langue de l'utilisateur."
+"(stock) Gtk au lieu de saisir manuellement « Cancel » ou « Open ». "
+"L'avantage d'utiliser les noms de la collection est que les étiquettes des "
+"boutons seront déjà traduites dans la langue de l'utilisateur."
 
 #: C/image-viewer.py.page:202(p) C/image-viewer.js.page:288(p)
 msgid ""
@@ -6322,6 +12170,12 @@ msgstr ""
 "programme à ce <link href=\"image-viewer/image-viewer.py\">programme de "
 "référence</link>."
 
+#: C/image-viewer.js.page:7(title)
+#, fuzzy
+#| msgid "Classes in JavaScript"
+msgid "Image Viewer (JavaScript)"
+msgstr "Les classes en JavaScript"
+
 #: C/image-viewer.js.page:10(desc)
 msgid ""
 "A little bit more than a simple \"Hello world\" application - write an image "
@@ -6470,8 +12324,8 @@ msgid ""
 "code>."
 msgstr ""
 "La méthode suivante est appelée <code>aMethod</code> et possède deux "
-"arguments qu'elle imprime quand vous l'appelez. La dernière méthode est "
-"<code>dumpProperties</code> et elle imprime les champs <code>propertyA</"
+"arguments qu'elle affiche quand vous l'appelez. La dernière méthode est "
+"<code>dumpProperties</code> et elle affiche les champs <code>propertyA</"
 "code> et <code>propertyB</code>."
 
 #: C/image-viewer.js.page:110(p)
@@ -6902,7 +12756,7 @@ msgstr ""
 msgid "A little bit more than a simple \"Hello world\" GTKmm application."
 msgstr "Un peu plus qu'une simple application GTKmm « Hello world »."
 
-#: C/image-viewer.cpp.page:21(title) C/image-viewer.c.page:22(title)
+#: C/image-viewer.cpp.page:21(title) C/image-viewer.c.page:23(title)
 msgid "Image Viewer"
 msgstr "Visionneur d'images"
 
@@ -6990,8 +12844,8 @@ msgstr ""
 "argument de la fonction, l'application quitte automatiquement quand la "
 "fenêtre est fermée."
 
-#: C/image-viewer.cpp.page:77(p) C/image-viewer.c.page:79(p)
-#: C/guitar-tuner.cpp.page:79(p) C/guitar-tuner.c.page:84(p)
+#: C/image-viewer.cpp.page:77(p) C/image-viewer.c.page:80(p)
+#: C/guitar-tuner.cpp.page:79(p) C/guitar-tuner.c.page:85(p)
 msgid ""
 "Press <gui>Execute</gui> on the next window that appears to configure a "
 "debug build. You only need to do this once, for the first build."
@@ -7165,7 +13019,7 @@ msgstr ""
 "ligne suivante charge le fichier dans le<code>Gtk::Image</code> afin qu'elle "
 "s'affiche."
 
-#: C/image-viewer.cpp.page:206(p) C/image-viewer.c.page:217(p)
+#: C/image-viewer.cpp.page:206(p) C/image-viewer.c.page:218(p)
 msgid ""
 "If you haven't already done so, choose the <file>Debug/src/image-viewer</"
 "file> application in the dialog that appears. Finally, hit <gui>Run</gui> "
@@ -7184,15 +13038,21 @@ msgstr ""
 "programme à ce <link href=\"image-viewer/image-viewer.cc\">programme de "
 "référence</link>."
 
-#: C/image-viewer.c.page:27(p)
+#: C/image-viewer.c.page:7(title)
+#, fuzzy
+#| msgid "Image Viewer"
+msgid "Image Viewer (C)"
+msgstr "Visionneur d'images"
+
+#: C/image-viewer.c.page:28(p)
 msgid "Some basic concepts of C/GObject programming"
 msgstr "quelques concepts de base de la programmation en C/GObject,"
 
-#: C/image-viewer.c.page:28(p)
+#: C/image-viewer.c.page:29(p)
 msgid "How to write a Gtk application in C"
 msgstr "comment écrire une application GTK en C."
 
-#: C/image-viewer.c.page:42(p)
+#: C/image-viewer.c.page:43(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 "
@@ -7203,7 +13063,7 @@ msgstr ""
 "pages suivantes. Mettez <file>image-viewer</file> comme nom de projet et de "
 "répertoire."
 
-#: C/image-viewer.c.page:45(p)
+#: C/image-viewer.c.page:46(p)
 msgid ""
 "Make sure that <gui>Use GtkBuilder for user interface</gui> is disabled as "
 "we will create the UI manually in this tutorial. Check the <link xref="
@@ -7215,7 +13075,7 @@ msgstr ""
 "dans cet exemple. Consultez le tutoriel <link xref=\"guitar-tuner.c\">Guitar-"
 "Tuner</link> pour un exemple d'utilisation du constructeur d'interfaces."
 
-#: C/image-viewer.c.page:60(p)
+#: C/image-viewer.c.page:61(p)
 msgid ""
 "C is a rather verbose language, so don't be surprised that the file contains "
 "quite a lot of code. Most of it is template code. It loads an (empty) window "
@@ -7227,7 +13087,7 @@ msgstr ""
 "Il charge une fenêtre (vide) et l'affiche. Vous trouverez plus de détails ci-"
 "dessous ; passez cette liste si vous comprenez les bases :"
 
-#: C/image-viewer.c.page:64(p) C/guitar-tuner.c.page:69(p)
+#: C/image-viewer.c.page:65(p) C/guitar-tuner.c.page:70(p)
 msgid ""
 "The three <code>#include</code> lines at the top include the <code>config</"
 "code> (useful autoconf build defines), <code>gtk</code> (user interface) and "
@@ -7240,7 +13100,7 @@ msgstr ""
 "internationalisation). Les fonctions de ces bibliothèques seront utilisées "
 "dans le reste du programme."
 
-#: C/image-viewer.c.page:67(p)
+#: C/image-viewer.c.page:68(p)
 msgid ""
 "The <code>create_window</code> function creates a new (empty) window and "
 "connects a signal to exit the application when that window is closed."
@@ -7248,7 +13108,7 @@ msgstr ""
 "La fonction <code>create_window</code> crée une nouvelle fenêtre (vide) et "
 "connecte un signal pour quitter l'application quand la fenêtre est fermée."
 
-#: C/image-viewer.c.page:71(p) C/guitar-tuner.c.page:76(p)
+#: C/image-viewer.c.page:72(p) C/guitar-tuner.c.page:77(p)
 msgid ""
 "The <code>main</code> function is run by default when you start a C "
 "application. It calls a few functions which set up and then run the "
@@ -7262,7 +13122,7 @@ msgstr ""
 "principale de GTK, qui lance l'interface utilisateur et commence à écouter "
 "les événements (comme des clics de souris ou des appuis sur des touches)."
 
-#: C/image-viewer.c.page:74(p) C/guitar-tuner.c.page:79(p)
+#: C/image-viewer.c.page:75(p) C/guitar-tuner.c.page:80(p)
 msgid ""
 "The <code>ENABLE_NLS</code> conditional definition sets up <code>gettext</"
 "code>, which is a framework for translating applications. These functions "
@@ -7273,7 +13133,7 @@ msgstr ""
 "applications. Ces fonctions définissent la façon dont les objets de "
 "traduction doivent prendre en charge votre application quand vous l'exécutez."
 
-#: C/image-viewer.c.page:84(p)
+#: C/image-viewer.c.page:85(p)
 msgid ""
 "Now we will bring life into the empty window. GTK organizes the user "
 "interface with <code>GtkContainer</code>s that can contain other widgets and "
@@ -7286,7 +13146,7 @@ msgstr ""
 "allons utiliser le plus simple conteneur disponible, une boîte <code>GtkBox</"
 "code> :"
 
-#: C/image-viewer.c.page:122(p)
+#: C/image-viewer.c.page:123(p)
 msgid ""
 "The first lines create the widgets we want to use: a button for opening up "
 "an image, the image view widget itself and the box we will use as a "
@@ -7301,7 +13161,7 @@ msgstr ""
 "dynamique les types d'objet ce qui est nécessaire car le C n'est pas prévu "
 "nativement pour prendre en charge la programmation orientée objets."
 
-#: C/image-viewer.c.page:127(p)
+#: C/image-viewer.c.page:128(p)
 msgid ""
 "The calls to <code>gtk_box_pack_start</code> add the two widgets to the box "
 "and define their behaviour. The image will expand into any available space "
@@ -7319,7 +13179,7 @@ msgstr ""
 "pour différentes tailles de fenêtre. La boîte est ensuite ajoutée dans la "
 "fenêtre."
 
-#: C/image-viewer.c.page:133(p)
+#: C/image-viewer.c.page:134(p)
 msgid ""
 "We need to define what happens when the user clicks on the button. GTK uses "
 "the concept of <em>signals</em>. When the button is clicked, it fires the "
@@ -7338,7 +13198,7 @@ msgstr ""
 "additionnel. Nous définirons la <em>fonction de rappel</em> à la section "
 "suivante."
 
-#: C/image-viewer.c.page:138(p)
+#: C/image-viewer.c.page:139(p)
 msgid ""
 "The last <code>g_signal_connect()</code> makes sure that the application "
 "exits when the window is closed."
@@ -7346,7 +13206,7 @@ msgstr ""
 "Le dernier signal <code>g_signal_connect()</code> assure que l'application "
 "quitte quand la fenêtre est fermée."
 
-#: C/image-viewer.c.page:141(p)
+#: C/image-viewer.c.page:142(p)
 msgid ""
 "As a last step, make sure to replace the <code>gtk_widget_show</code> call "
 "in the <code>main()</code> function by <code>gtk_widget_show_all()</code> to "
@@ -7357,7 +13217,7 @@ msgstr ""
 "</code> pour afficher la fenêtre et tous les éléments graphiques qu'elle "
 "contient."
 
-#: C/image-viewer.c.page:149(p)
+#: C/image-viewer.c.page:150(p)
 msgid ""
 "We will now define the signal handler for the <em>clicked</em> signal or the "
 "button we mentioned before. Add this code before the <code>create_window()</"
@@ -7367,7 +13227,7 @@ msgstr ""
 "<em>clicked</em> du bouton ci-dessus. Ajoutez ce code avant la méthode "
 "<code>create_window()</code>."
 
-#: C/image-viewer.c.page:187(p)
+#: C/image-viewer.c.page:188(p)
 msgid ""
 "The first argument of the signal is always the widget that sent the signal. "
 "Sometimes other arguments related to the signal come after that, but "
@@ -7381,7 +13241,7 @@ msgstr ""
 "code> qui est un pointeur vers les données transmises en connectant le "
 "signal. Ici, c'est notre objet <code>GtkImage</code>."
 
-#: C/image-viewer.c.page:193(p)
+#: C/image-viewer.c.page:194(p)
 msgid ""
 "The next interesting line is where the dialog for choosing the file is "
 "created using <code>gtk_file_chooser_dialog_new</code>. The function takes "
@@ -7394,7 +13254,7 @@ msgstr ""
 "dialogue et plusieurs options telles que le numéro des boutons et leurs "
 "valeurs correspondantes."
 
-#: C/image-viewer.c.page:200(p)
+#: C/image-viewer.c.page:201(p)
 msgid ""
 "The next two lines restrict the <gui>Open</gui> dialog to only display files "
 "which can be opened by GtkImage. A filter object is created first; we then "
@@ -7409,7 +13269,7 @@ msgstr ""
 "plupart des formats d'image comme PNG ou JPEG) au filtre. Enfin, nous "
 "appliquons ce filtre à la boîte de dialogue <gui>Open</gui>."
 
-#: C/image-viewer.c.page:203(p)
+#: C/image-viewer.c.page:204(p)
 msgid ""
 "<code>gtk_dialog_run</code> displays the <gui>Open</gui> dialog. The dialog "
 "will wait for the user to choose an image; when they do, "
@@ -7424,7 +13284,7 @@ msgstr ""
 "<code>GTK_RESPONSE_CANCEL</code> si l'utilisateur clique sur <gui>Cancel</"
 "gui>). L'instruction <code>switch</code> teste cette réponse."
 
-#: C/image-viewer.c.page:205(p)
+#: C/image-viewer.c.page:206(p)
 msgid ""
 "Assuming that the user did click <gui>Open</gui>, the next line sets the "
 "<code>file</code> property of the GtkImage to the filename of the image "
@@ -7436,7 +13296,7 @@ msgstr ""
 "propriétés <code>file</code> du GtkImage. Ensuite, GtkImage charge et "
 "affiche l'image choisie."
 
-#: C/image-viewer.c.page:208(p)
+#: C/image-viewer.c.page:209(p)
 msgid ""
 "In the final line of this method, we destroy the <gui>Open</gui> dialog "
 "because we don't need it any more. Destroying automatically hides the dialog."
@@ -7445,7 +13305,7 @@ msgstr ""
 "dialogue <gui>Open</gui> car on n'en a plus besoin. La destruction masque "
 "automatiquement la boîte de dialogue."
 
-#: C/image-viewer.c.page:222(p)
+#: C/image-viewer.c.page:223(p)
 msgid ""
 "If you run into problems with the tutorial, compare your code with this "
 "<link href=\"image-viewer/image-viewer.c\">reference code</link>."
@@ -7456,65 +13316,77 @@ msgstr ""
 
 #. When image changes, this message will be marked fuzzy or untranslated for you.
 #. It doesn't matter what you translate it to: it's not used at all.
-#: C/image.vala.page:20(None) C/image.py.page:20(None) C/image.c.page:20(None)
+#: 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:16(desc) C/image.py.page:16(desc)
+#: C/image.vala.page:7(title)
+#, fuzzy
+#| msgid "Images and labels"
+msgid "Image (Vala)"
+msgstr "Images et étiquettes"
+
+#: 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 "Un élément graphique qui affiche une image"
 
-#: C/image.vala.page:19(title) C/image.py.page:19(title)
-#: C/image.c.page:19(title)
+#: 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 "Image"
 
-#: C/image.vala.page:21(p) C/image.py.page:21(p) C/image.c.page:21(p)
+#: C/image.vala.page:22(p) C/image.py.page:22(p) C/image.js.page:21(p)
+#: C/image.c.page:22(p)
 msgid "This GtkApplication displays an image file from the current directory."
 msgstr ""
 "Cette application Gtk affiche un fichier image issu du dossier en cours."
 
-#: C/image.vala.page:22(p) C/image.c.page:22(p)
+#: C/image.vala.page:23(p) C/image.js.page:22(p) C/image.c.page:23(p)
 msgid ""
 "If the image file isn't loaded successfully, the image will contain a "
 "\"broken image\" icon. The <file>filename.png</file> needs to be in the "
 "current directory for this code to work. Use your favorite picture!"
 msgstr ""
 "Si le fichier image n'est pas chargé correctement, l'image contient une "
-"icône en forme d'« image brisée ». Le <file>nomdufichier.png</file> doit être "
-"dans le dossier actuel pour que ce code fonctionne. Faites bon usage de "
+"icône en forme d'« image brisée ». Le <file>nomdufichier.png</file> doit "
+"être dans le dossier actuel pour que ce code fonctionne. Faites bon usage de "
 "votre photo favorite !"
 
-#: C/image.vala.page:31(link) C/GtkApplicationWindow.py.page:52(link)
-#: C/GtkApplicationWindow.c.page:29(link) C/checkbutton.py.page:29(link)
-#: C/aboutdialog.py.page:39(link)
+#: 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:23(p)
+#: C/image.py.page:7(title)
 #, fuzzy
-#| 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!"
+#| msgid "Python"
+msgid "Image (Python)"
+msgstr "Python"
+
+#: C/image.py.page:24(p)
 msgid ""
 "If the image file is not loaded successfully, the image will contain a "
 "\"broken image\" icon. The <file>filename.png</file> needs to be in the "
 "current directory for this code to work."
 msgstr ""
 "Si le fichier image n'est pas chargé correctement, l'image contient une "
-"icône en forme d'« image brisée ». Le <file>nomdufichier.png</file> doit être "
-"dans le dossier actuel pour que ce code fonctionne. Faites bon usage de "
-"votre photo favorite !"
+"icône en forme d'« image brisée ». Le <file>nomdufichier.png</file> doit "
+"être dans le dossier actuel pour que ce code fonctionne."
 
-#: C/image.py.page:34(p)
+#: C/image.py.page:35(p)
 msgid ""
 "Another way to obtain what we have in the example is to create the image as "
 "an instance of another class and add it to the instance of <code>MyWindow</"
 "code> in the <code>do_activate(self)</code> method:"
 msgstr ""
+"Une autre manière d'obtenir ce qu'il y a dans cet exemple est de créer "
+"l'image en tant qu'exemple d'une autre classe et de l'ajouter à "
+"<code>MyWindow</code> dans la méthode <code>do_activate(self)</code> :"
 
-#: C/image.py.page:35(code)
+#: C/image.py.page:36(code)
 #, no-wrap
 msgid ""
 "\n"
@@ -7542,38 +13414,89 @@ msgid ""
 "        # 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:62(title)
+#: C/image.py.page:63(title)
 msgid "Useful methods for an Image widget"
-msgstr ""
+msgstr "Méthodes utiles pour un élément graphique Image"
 
-#: C/image.py.page:65(p)
+#: C/image.py.page:66(p)
+#, fuzzy
+#| 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/3.4/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>."
 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/3.4/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."
+"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 ""
+"Pour définir une icône de la collection comme image, utilisez "
+"<code>set_from_stock(stock_id, taille)</code>, où <code>stock_id</code> est "
+"une icône de la collection <code>Gtk.STOCK_ABOUT</code> (vous en trouverez "
+"d'autres dans <link href=\"http://developer.gnome.org/gtk3/3.4/gtk3-Stock-";
+"Items\">Éléments de la collection</link>, à ceci près qu'elles doivent être "
+"modifiées comme ci-dessus) et où <code>taille</code> est une taille d'icône "
+"de la collection à choisir parmi <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:66(p)
+#: C/image.py.page:67(p)
 msgid ""
 "You can also use <code>set_from_icon_name(icon_name, size)</code>, where "
 "<code>icon_name</code> is a stock icon name such as <code>\"gtk-about\"</"
 "code> (more can be found as above) and <code>size</code> is as above."
 msgstr ""
+"Vous pouvez aussi utiliser la méthode <code>set_from_icon_name(icon_name, "
+"taille)</code>, où <code>icon_name</code> est une icône de la collection "
+"<code>\"gtk-about\"</code> (il y en a d'autres à l'emplacement ci-dessus) et "
+"<code>taille</code> comme ci-dessus."
 
-#: C/image.py.page:67(p)
+#: C/image.py.page:68(p)
 msgid ""
 "To load an image over a network use <code>set_from_pixbuf(pixbuf)</code>, "
 "where <code>pixbuf</code> is a <link href=\"http://developer.gnome.org/gdk-";
 "pixbuf/unstable//index.html\">GdkPixbuf</link>."
 msgstr ""
+"Pour charger une image en provenance d'un réseau, utilisez la fonction "
+"<code>set_from_pixbuf(pixbuf)</code>, où <code>pixbuf</code> est un <link "
+"href=\"http://developer.gnome.org/gdk-pixbuf/unstable//index.html";
+"\">GdkPixbuf</link>."
 
-#: C/image.py.page:68(code)
+#: C/image.py.page:69(code)
 #, no-wrap
 msgid ""
 "\n"
@@ -7598,207 +13521,207 @@ msgid ""
 "        # 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:89(p)
+#: C/image.py.page:90(p)
 msgid ""
 "If <code>preserve_aspect_ratio=True</code> we can use "
 "<code>new_from_file_at_size(filename, width, height)</code>. If <code>width</"
 "code> or <code>height</code> is <code>-1</code>, it is not constrained."
 msgstr ""
+"Si <code>preserve_aspect_ratio=True</code> est vrai, utilisez "
+"<code>new_from_file_at_size(nomdufichier, largeur, hauteur)</code>. Si "
+"<code>largeur</code> ou <code>hauteur</code> est <code>-1</code>, il n'y a "
+"pas de contrainte."
 
-#: C/image.py.page:90(p)
+#: C/image.py.page:91(p)
 msgid ""
 "For loading from an input stream, see <code>new_from_stream()</code> and "
 "<code>new_from_stream_at_scale()</code> in the documentation"
 msgstr ""
+"Pour charger à partir d'un flux entrant, consultez <code>new_from_stream()</"
+"code> et <code>new_from_stream_at_scale()</code> dans la documentation"
 
-#: C/image.c.page:16(desc)
-msgid "A widget displaying an image."
-msgstr "Un élément graphique qui affiche une image."
-
-#: C/helloworldautotools.js.page:18(title)
-msgid "Autotools files for your Hello World application"
-msgstr "Les fichiers autotools pour votre application « Hello world »"
-
-#: C/helloworldautotools.js.page:19(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 ""
-"Pour que votre application fasse partie intégrante de GNOME 3, vous devez "
-"l'installer à l'aide d'autotools. Autotools construit et installe tous les "
-"fichiers nécessaires et les place à leurs emplacements corrects."
-
-#: C/helloworldautotools.js.page:20(p)
-msgid "For this you need to have the following files:"
-msgstr "Auparavant, vous devez posséder les fichiers suivants :"
-
-#: C/helloworldautotools.js.page:25(p)
-msgid "README"
-msgstr "README"
-
-#: C/helloworldautotools.js.page:32(p)
-msgid "autogen.sh file will install"
-msgstr "Le fichier autogen.sh installe"
-
-#: C/helloworldautotools.js.page:33(p)
-msgid "After the autogen.sh file is ready and saved run"
-msgstr "Quand le fichier autogen.sh est prêt et enregistré, exécutez"
-
-#: C/helloworldautotools.js.page:33(input)
-msgid "chmod +x autogen.sh"
-msgstr "chmod +x autogen.sh"
-
-#: C/helloworldautotools.js.page:33(p)
-msgid "to give the file the necessary rights to install."
-msgstr "pour donner au fichier les droits nécessaires à l'installation."
-
-#: C/helloworldautotools.js.page:52(p)
-msgid "README: Information user should read first."
-msgstr "README : informations à lire en premier par l'utilisateur."
-
-#: C/helloworldautotools.js.page:53(p)
-msgid ""
-"When you have all the 3 files with correct information and rights run these "
-"commands in terminal:"
-msgstr ""
-"Quand vous avez ces 3 fichiers avec les informations correctes et les droits "
-"nécessaires, exécutez ces commandes dans le terminal :"
-
-#: C/helloworldautotools.js.page:55(input)
-msgid "./autogen.sh"
-msgstr "./autogen.sh"
-
-#: C/helloworldautotools.js.page:56(input)
-msgid "./configure --prefix=/usr/local"
-msgstr "./configure --prefix=/usr/local"
+#: C/image.js.page:6(title)
+#, fuzzy
+#| msgid "JavaScript"
+msgid "Image (JavaScript)"
+msgstr "JavaScript"
 
-#: C/helloworldautotools.js.page:57(input)
-msgid "sudo make install"
-msgstr "sudo make install"
+#: C/image.c.page:7(title)
+#, fuzzy
+#| msgid "Image"
+msgid "Image (C)"
+msgstr "Image"
 
 #. When image changes, this message will be marked fuzzy or untranslated for you.
 #. It doesn't matter what you translate it to: it's not used at all.
-#: C/helloWorld.js.page:32(None)
-msgid "@@image: 'media/helloWorldJs.png'; md5=4c88a27211dfd1b33e504c9f78602f2d"
+#: C/helloWorld.js.page:27(None)
+#, fuzzy
+#| msgid ""
+#| "@@image: 'media/helloWorldJs.png'; md5=4c88a27211dfd1b33e504c9f78602f2d"
+msgid "@@image: 'media/helloWorld.png'; md5=4c88a27211dfd1b33e504c9f78602f2d"
 msgstr ""
 "@@image: 'media/helloWorldJs.png'; md5=4c88a27211dfd1b33e504c9f78602f2d"
 
-#: C/helloWorld.js.page:15(desc)
+#: C/helloWorld.js.page:8(title)
+#, fuzzy
+#| msgid "Hello World"
+msgid "Hello World (JavaScript)"
+msgstr "Hello World"
+
+#: C/helloWorld.js.page:23(desc)
 msgid "A basic \"hello, world\" application"
 msgstr "Une application basique « hello, world »"
 
-#: C/helloWorld.js.page:17(title)
+#: C/helloWorld.js.page:26(title)
 msgid "Hello World"
 msgstr "Hello World"
 
-#: C/helloWorld.js.page:20(p)
-msgid ""
-"In this tutorial we'll construct a small application, Hello World, using "
-"JavaScript and GTK+. To write and run all the code examples yourself, you "
-"need an editor to write code in, Terminal, and GNOME 3 or higher installed "
-"into your computer. In this tutorial we'll go through the following parts:"
+#: C/helloWorld.js.page:29(p)
+msgid "This tutorial will demonstrate how to:"
 msgstr ""
-"Dans ce tutoriel, nous allons construire une petite application, « Hello "
-"World » utilisant JavaScript et GTK+. Pour écrire et lancer tous les "
-"exemples de code vous-même, vous avez besoin d'un éditeur pour écrire le "
-"code, de Terminal et d'un ordinateur sur lequel GNOME 3 ou supérieur est "
-"installé. Dans ce guide, nous illustrerons les éléments suivants :"
 
-#: C/helloWorld.js.page:25(link) C/helloWorld.js.page:64(title)
-msgid "Label for the window"
-msgstr "Étiquette de la fenêtre"
+#: C/helloWorld.js.page:31(p)
+#, fuzzy
+#| msgid ""
+#| "A little bit more than a simple \"Hello world\" application - write an "
+#| "image viewer in GTK."
+msgid "create a small \"Hello, World\" application using JavaScript and GTK+"
+msgstr ""
+"Un peu plus qu'une simple application « Hello world » - écrire un visionneur "
+"d'images en GTK."
 
-#: C/helloWorld.js.page:26(link) C/helloWorld.js.page:80(title)
-msgid "helloWorld.js"
-msgstr "helloWorld.js"
+#: C/helloWorld.js.page:32(p)
+msgid "make the <file>.desktop</file> file"
+msgstr ""
 
-#: C/helloWorld.js.page:27(link) C/guitar-tuner.js.page:31(link)
-#: C/guitar-tuner.js.page:228(title)
-msgid "Running the application form Terminal"
-msgstr "Exécution de l'application à partir de Terminal"
+#: C/helloWorld.js.page:33(p)
+msgid "how to set up the build system"
+msgstr ""
 
-#: C/helloWorld.js.page:31(p)
-msgid "After taking this tutorial, you should see this on your screen:"
-msgstr "Après avoir lu ce tutoriel, vous devriez voir ceci sur votre écran :"
+#: C/helloWorld.js.page:41(title)
+msgid "Create the HelloWorld program"
+msgstr ""
+
+#: C/helloWorld.js.page:46(p)
+msgid "This needs to be the first line of your script:"
+msgstr ""
 
-#: C/helloWorld.js.page:37(p)
+#: C/helloWorld.js.page:48(p)
 msgid ""
-"This needs to be the first line of your script, because it tells GNOME that "
-"we'll be using Gjs -- the JavaScript bindings for GNOME -- in order to run "
-"it."
+"It tells the script to use <link href=\"https://live.gnome.org/Gjs/\";>Gjs</"
+"link>. Gjs is a JavaScript binding for GNOME."
 msgstr ""
-"Cela doit être la première ligne de votre script parce qu'elle indique à "
-"GNOME que nous utilisons Gjs -- les correspondances JavaScript pour GNOME -- "
-"afin de le lancer."
 
-#: C/helloWorld.js.page:44(p)
+#: C/helloWorld.js.page:55(p)
+#, fuzzy
+#| msgid ""
+#| "In order for our script to work with GNOME, we need to import GNOME "
+#| "libraries via GObject Introspection. In this case, we're importing GTK+, "
+#| "the most basic library that contains the graphical widgets used to make "
+#| "GNOME apps."
 msgid ""
 "In order for our script to work with GNOME, we need to import GNOME "
-"libraries via GObject Introspection. In this case, we're importing GTK+, the "
-"most basic library that contains the graphical widgets used to make GNOME "
-"apps."
+"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 ""
 "Afin que notre script fonctionne avec GNOME, nous devons importer les "
 "bibliothèques GNOME via l'introspection GObject. Dans ce cas, nous importons "
 "GTK+, la bibliothèque la plus basique qui contient les éléments graphiques "
 "utilisé pour faire les applications GNOME."
 
-#: C/helloWorld.js.page:60(p)
+#: C/helloWorld.js.page:91(p)
 msgid ""
-"After importing Gtk, we need to initialize it. After that, we can start "
-"building our first window. We do this by creating a variable called mywindow "
-"and assigning it a new Gtk.Window of type TOPLEVEL."
+"GtkApplication initializes Gtk+. It also connects the <gui>x</gui> button "
+"that's automatically generated along with the window to the \"destroy\" "
+"signal."
+msgstr ""
+
+#: C/helloWorld.js.page:92(p)
+#, fuzzy
+#| msgid ""
+#| "After importing Gtk, we need to initialize it. After that, we can start "
+#| "building our first window. We do this by creating a variable called "
+#| "mywindow and assigning it a new Gtk.Window of type TOPLEVEL."
+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 ""
 "Après l'importation de Gtk, nous devons l'initialiser. Après cela, nous "
 "pouvons démarrer la construction de notre première fenêtre. Nous faisons "
 "cela en créant une variable appelée mywindow et en lui attribuant une "
 "nouvelle Gtk.Window de type TOPLEVEL."
 
-#: C/helloWorld.js.page:60(p)
+#: C/helloWorld.js.page:93(p)
+#, fuzzy
+#| msgid ""
+#| "After setting up our first window we'll give the window a property called "
+#| "title. The title can be any string you want it to be. To be on the safe "
+#| "side, it's best to stick to UTF-8 encoding."
 msgid ""
-"After setting up our first window we'll give the window a property called "
-"title. The title can be any string you want it to be. To be on the safe "
-"side, it's best to stick to UTF-8 encoding."
+"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 ""
 "Après la définition de notre première fenêtre, nous donnons à la fenêtre une "
 "propriété appelée « title ». Le titre peut être n'importe quelle chaîne de "
 "caractères. Pour être certain que cela fonctionne, il est préférable de se "
 "tenir à un codage UTF-8."
 
-#: C/helloWorld.js.page:60(p)
-msgid ""
-"The next thing we need to do for our application is connect the close button "
-"that's automatically generated along with the window to the close "
-"functionality. That happens with the method connect(). When the close button "
-"is pressed it gives out the signal \"destroy\", so in this part we're "
-"connecting the \"destroy\" signal to function(){Gtk.main_quit()}, which does "
-"the actual closing."
-msgstr ""
-"Ensuite, nous devons connecter notre application au bouton de fermeture qui "
-"est créé automatiquement avec la fenêtre pour la fonction de fermeture. "
-"C'est fait avec la méthode connect(). Lorsque le bouton de fermeture est "
-"cliqué, cela envoie le signal « destroy » donc dans cette partie nous "
-"connectons le signal « destroy » à function(){Gtk.main_quit()} qui ferme "
-"vraiment la fenêtre."
-
-#: C/helloWorld.js.page:60(p)
+#: C/helloWorld.js.page:94(p)
+#, fuzzy
+#| msgid ""
+#| "Now we have a window that has a title and a working \"close\" button. "
+#| "Let's add the actual \"Hello, world\" text."
 msgid ""
-"Now we have a window that has a title and a working \"close\" button. Let's "
-"add the actual \"Hello, world\" text."
+"Now we have a window which has a title and a working \"close\" button. Let's "
+"add the actual \"Hello World\" text."
 msgstr ""
 "Maintenant, nous avons une fenêtre qui possède un titre et un bouton de "
 "fermeture fonctionnel. Ajoutons le vrai texte « Hello, world »."
 
-#: C/helloWorld.js.page:76(p)
+#: C/helloWorld.js.page:97(title)
+msgid "Label for the window"
+msgstr "Étiquette de la fenêtre"
+
+#: C/helloWorld.js.page:103(p)
+#, fuzzy
+#| msgid ""
+#| "A text label is one of the GTK+ widgets we can use, on account of having "
+#| "imported the GTK+ library. To use it, we create a new variable called "
+#| "label, and assign it a new Gtk.Label. Then we give it properties inside "
+#| "the curly braces {}. In this case, we're setting the text that the label "
+#| "will hold. Finally, we tell GNOME to show the label and the window "
+#| "containing it to the user, and call Gtk.main() to get the app itself "
+#| "started."
 msgid ""
 "A text label is one of the GTK+ widgets we can use, on account of having "
 "imported the GTK+ library. To use it, we create a new variable called label, "
 "and assign it a new Gtk.Label. Then we give it properties inside the curly "
 "braces {}. In this case, we're setting the text that the label will hold. "
-"Finally, we tell GNOME to show the label and the window containing it to the "
-"user, and call Gtk.main() to get the app itself started."
+"Finally, we create and run the application:"
 msgstr ""
 "Nous pouvons utiliser une étiquette de texte comme éléments graphiques GTK+ "
 "à condition d'avoir importer la bibliothèque GTK+. Pour l'utiliser, nous "
@@ -7809,11 +13732,16 @@ msgstr ""
 "contenant à l'écran et appelons Gtk.main() afin que l'application démarre "
 "elle-même."
 
-#: C/helloWorld.js.page:77(p)
+#: C/helloWorld.js.page:109(p)
+#, fuzzy
+#| msgid ""
+#| "For the future, keep in mind that Gtk.Window can only hold one widget at "
+#| "a time. To construct more elaborate programs you need to create a holder "
+#| "widget (Gtk.Box, Gtk.Grid, Gtk.Application, and so on) of some kind "
+#| "inside the window, and then add all the other widgets to it."
 msgid ""
-"For the future, keep in mind that Gtk.Window can only hold one widget at a "
-"time. To construct more elaborate programs you need to create a holder "
-"widget (Gtk.Box, Gtk.Grid, Gtk.Application, and so on) of some kind inside "
+"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 ""
 "À l'avenir, gardez à l'esprit que le Gtk.Window ne peut contenir qu'un seul "
@@ -7822,48 +13750,570 @@ msgstr ""
 "Application, etc.) d'un certain type à l'intérieur de la fenêtre puis "
 "ajouter tous les autres éléments graphiques à l'intérieur."
 
-#: C/helloWorld.js.page:81(p)
-msgid "Here's what the completed program looks like."
-msgstr "Voici à quoi ressemble le programme terminé."
+#: C/helloWorld.js.page:113(title)
+msgid "helloWorld.js"
+msgstr "helloWorld.js"
+
+#: C/helloWorld.js.page:114(p)
+msgid "The complete file:"
+msgstr ""
 
-#: C/helloWorld.js.page:109(title)
-msgid "Running the application from Terminal"
+#: C/helloWorld.js.page:118(title)
+#, fuzzy
+#| msgid "Running the application from Terminal"
+msgid "Running the application from terminal"
 msgstr "Exécution de l'application à partir de Terminal"
 
-#: C/helloWorld.js.page:110(p)
+#: C/helloWorld.js.page:119(p)
+#, fuzzy
+#| 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"
 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"
+"go to the folder where your application is stored and run:"
 msgstr ""
 "Pour lancer cette application, enregistrez-la d'abord sous le nom helloWorld."
 "js, puis ouvrez Terminal, allez dans le dossier où l'application est "
 "enregistrée et lancez"
 
-#: C/helloWorld.js.page:110(input)
-msgid "chmod +x helloWorld.js"
+#: C/helloWorld.js.page:120(input)
+#, fuzzy
+#| msgid "helloWorld.js"
+msgid "gjs helloWorld.js"
+msgstr "helloWorld.js"
+
+#: C/helloWorld.js.page:126(title)
+msgid "The <file>.desktop.in</file> file"
+msgstr ""
+
+#: C/helloWorld.js.page:127(p)
+#, fuzzy
+#| msgid ""
+#| "Running applications from the Terminal is useful at the beginning of the "
+#| "application making process. To have a fully working <link href=\"http://";
+#| "library.gnome.org/admin/system-admin-guide/stable/mimetypes-9.html.en"
+#| "\">application integration</link> in GNOME 3 requires a desktop launcher. "
+#| "For this you need to create a <file>.desktop</file> file. The .desktop "
+#| "file describes the application name, the used icon and various "
+#| "integration bits. A deeper insight to <file>.desktop</file> file can be "
+#| "found <link href=\"http://developer.gnome.org/desktop-entry-spec/\";>here</"
+#| "link>."
+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 ""
+"Le lancement d'applications à partir de Terminal est utile au début du "
+"processus de création de l'application. Pour avoir une <link href=\"http://";
+"library.gnome.org/admin/system-admin-guide/stable/mimetypes-9.html.en"
+"\">intégration de l'application</link> fonctionnelle et complète dans GNOME "
+"3, il vous faut un lanceur de bureau. Pour cela vous devez créer un fichier "
+"<file>.desktop</file>. Le fichier .desktop fournit le nom de l'application, "
+"l'icône utilisée et les parties de l'intégration. Un aperçu complet des "
+"fichiers <file>.desktop</file> peut être trouvé <link href=\"http://";
+"developer.gnome.org/desktop-entry-spec/\">ici</link>."
+
+#: C/helloWorld.js.page:130(p)
+msgid ""
+"Before continuing, resave <file>helloWorld.js</file> as <file>helloWorld</"
+"file>. Then run this in the command line:"
+msgstr ""
+
+#: C/helloWorld.js.page:131(input)
+#, fuzzy
+#| msgid "chmod +x helloWorld.js"
+msgid "chmod +x helloWorld"
 msgstr "chmod +x helloWorld.js"
 
-#: C/helloWorld.js.page:111(p)
-msgid "This makes your script executable. After that, run"
-msgstr "Cela rend votre script exécutable. Ensuite, lancez"
+#: C/helloWorld.js.page:134(p)
+#, fuzzy
+#| msgid ""
+#| "The example shows you the minimum requirements for a <code>.desktop</"
+#| "code> file."
+msgid ""
+"The example shows you the minimum requirements for a <code>.desktop.in</"
+"code> file."
+msgstr ""
+"L'exemple vous montre le minimum nécessaire pour un fichier <code>.desktop</"
+"code>."
+
+#: C/helloWorld.js.page:137(p)
+#, fuzzy
+#| msgid "Now let's go through some parts of the <code>.desktop</code> file."
+msgid "Now let's go through some parts of the <code>.desktop.in</code> file."
+msgstr ""
+"Allons maintenant examiner quelques parties du fichier <code>.desktop</code>.­­"
+
+#: C/helloWorld.js.page:139(p)
+#, fuzzy
+#| msgid "Run the application"
+msgid "The application name."
+msgstr "Exécution de l'application"
+
+#: C/helloWorld.js.page:140(title)
+msgid "Comment"
+msgstr ""
+
+#: C/helloWorld.js.page:140(p)
+#, fuzzy
+#| msgid "Designing the application"
+msgid "A short description of the application."
+msgstr "Conception de l'application"
+
+#: C/helloWorld.js.page:141(title)
+msgid "Exec"
+msgstr ""
+
+#: C/helloWorld.js.page:141(p)
+#, fuzzy
+#| msgid ""
+#| "Line 6: Specifies a command to execute when you choose the item from the "
+#| "menu. In this example exec just tells where to find the <code>helloworld."
+#| "js</code> file and the file takes care of the rest."
+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 ""
+"Ligne 6 : spécifie une commande à exécuter lorsque vous choisissez l'élément "
+"de menu. Dans cet exemple, « exec » indique juste où trouver le fichier "
+"<code>helloworld.js</code> et le fichier prend en charge le reste."
+
+#: C/helloWorld.js.page:142(title)
+msgid "Terminal"
+msgstr ""
+
+#: C/helloWorld.js.page:142(p)
+#, fuzzy
+#| msgid ""
+#| "Line 8: Specifies whether the command in the Exec key runs in a terminal "
+#| "window."
+msgid ""
+"Specifies whether the command in the Exec key runs in a terminal window."
+msgstr ""
+"Ligne 8 : indique si la commande de la clé Exec se lance dans une fenêtre de "
+"terminal."
+
+#: C/helloWorld.js.page:145(p)
+#, fuzzy
+#| msgid ""
+#| "To put your application to the right category you need to add the "
+#| "necessary categories to the Categories line. More information on the "
+#| "different categories can be found in the <link href=\"http://standards.";
+#| "freedesktop.org/menu-spec/latest/apa.html\">menu spec</link>."
+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 ""
+"Pour mettre votre application dans la bonne catégorie, vous devez ajouter "
+"les catégories nécessaires à la ligne « Categories ». Plus d'informations "
+"sur les différentes catégories peuvent être trouvées dans les <link href="
+"\"http://standards.freedesktop.org/menu-spec/latest/apa.html";
+"\">spécifications de menu</link>."
+
+#: C/helloWorld.js.page:146(p)
+#, fuzzy
+#| msgid ""
+#| "In this example I used an existing icon. For a custom icon you need to "
+#| "have a .svg file of your icon, store it to /usr/share/icons/hicolor/"
+#| "scalable/apps. Write the name of your icon file to the .desktop file, on "
+#| "line 7. More information on icons in: <link href=\"http://library.gnome.";
+#| "org/admin/system-admin-guide/stable/themes-11.html.en\"> Installing Icons "
+#| "for Themes </link>, <link href=\"https://live.gnome.org/GnomeGoals/AppIcon";
+#| "\">Installing Icons for Themes</link> and <link href=\"http://freedesktop.";
+#| "org/wiki/Specifications/icon-theme-spec\">on freedesktop.org: "
+#| "Specifications/icon-theme-spec</link>."
+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 ""
+"Dans cet exemple, nous utilisons une icône existante. Pour une icône "
+"personnalisée, vous devez posséder un fichier .svg de votre icône, "
+"l'enregistrer dans /usr/share/icons/hicolor/scalable/apps. Inscrivez le nom "
+"de votre fichier icône dans le fichier .desktop en ligne 7. Plus "
+"d'informations sur les icônes dans : <link href=\"http://library.gnome.org/";
+"admin/system-admin-guide/stable/themes-11.html.en\">Installation d'icônes "
+"pour les thèmes</link>, <link href=\"https://live.gnome.org/GnomeGoals/";
+"AppIcon\">Installation d'icônes pour les thèmes</link> et <link href="
+"\"http://freedesktop.org/wiki/Specifications/icon-theme-spec\";>sur "
+"freedesktop.org : spécifications/icônes-thème-spécifications</link>."
+
+#: C/helloWorld.js.page:149(title)
+msgid "The build system"
+msgstr ""
+
+#: C/helloWorld.js.page:150(p)
+msgid ""
+"To make your application truly a part of the GNOME 3 system you need to "
+"install it with the help of autotools. The autotools build will install all "
+"the necessary files to all the right places."
+msgstr ""
+"Pour que votre application fasse partie intégrante de GNOME 3, vous devez "
+"l'installer à l'aide d'autotools. Autotools construit et installe tous les "
+"fichiers nécessaires et les place à leurs emplacements corrects."
+
+#: C/helloWorld.js.page:151(p)
+msgid "For this you need to have the following files:"
+msgstr "Auparavant, vous devez posséder les fichiers suivants :"
+
+#: C/helloWorld.js.page:157(p)
+#, fuzzy
+#| msgid "After the autogen.sh file is ready and saved run"
+msgid "After the <file>autogen.sh</file> file is ready and saved, run:"
+msgstr "Quand le fichier autogen.sh est prêt et enregistré, exécutez"
+
+#: C/helloWorld.js.page:158(input)
+msgid "chmod +x autogen.sh"
+msgstr "chmod +x autogen.sh"
 
-#: C/helloWorld.js.page:111(input)
-msgid "GJS_PATH=`pwd` gjs helloWorld.js"
-msgstr "GJS_PATH=`pwd` gjs helloWorld.js"
+#: C/helloWorld.js.page:172(title)
+msgid "README"
+msgstr "README"
+
+#: C/helloWorld.js.page:173(p)
+#, fuzzy
+#| msgid "README: Information user should read first."
+msgid "Information users should read first. This file can be blank."
+msgstr "README : informations à lire en premier par l'utilisateur."
+
+#: C/helloWorld.js.page:175(p)
+msgid ""
+"When you have the <file>helloWorld</file>, <file>helloWorld.desktop.in</"
+"file>, <file>Makefile.am</file>, <file>configure.ac</file> and <file>autogen."
+"sh</file> files with correct information and rights, the <file>README</file> "
+"file can include the following instructions:"
+msgstr ""
 
 #. When image changes, this message will be marked fuzzy or untranslated for you.
 #. It doesn't matter what you translate it to: it's not used at all.
-#: C/guitar-tuner.vala.page:42(None) C/guitar-tuner.py.page:38(None)
-#: C/guitar-tuner.js.page:35(None) C/guitar-tuner.cpp.page:37(None)
-#: C/guitar-tuner.c.page:38(None)
+#: C/hellognome.js.page:64(None)
+#, fuzzy
+#| msgid ""
+#| "@@image: 'media/switchanimals.png'; md5=513ae15dcf68e15eef30b76420b8c714"
+msgid ""
+"@@image: 'media/hellognomewebapp.png'; md5=948efb6148ede3bc6b47b4b0bbe4a74f"
+msgstr ""
+"@@image: 'media/switchanimals.png'; md5=513ae15dcf68e15eef30b76420b8c714"
+
+#: C/hellognome.js.page:16(desc)
+#, fuzzy
+#| msgid "A first Gtk application"
+msgid "Your first GNOME application!"
+msgstr "Une première application Gtk"
+
+#: C/hellognome.js.page:19(title)
+msgid "1. Hello, GNOME!"
+msgstr ""
+
+#: C/hellognome.js.page:21(p)
+msgid ""
+"This tutorial will show you how to write your first GNOME application in "
+"JavaScript. You will use JavaScript to write for GNOME the same way you "
+"would for the web. Afterwards, you will learn how to use \"native\" widgets, "
+"to write applications that look and feel like other GNOME apps."
+msgstr ""
+
+#: C/hellognome.js.page:22(p)
+msgid ""
+"Have you gotten GNOME installed on your computer, and <link xref=\"set-up-"
+"gedit.js\">gedit</link> set up to write code with? You'll want to do these "
+"things first."
+msgstr ""
+
+#: C/hellognome.js.page:28(title)
+#, fuzzy
+#| msgid "A button that links to a web page"
+msgid "Let's start with a web page"
+msgstr "Un bouton qui crée un lien vers une page Web"
+
+#: C/hellognome.js.page:30(p)
+msgid ""
+"Here's some basic HTML, CSS, and JavaScript code. Does this look familiar?"
+msgstr ""
+
+#: C/hellognome.js.page:62(p)
+msgid ""
+"Let's save this as <file>hellognome.html</file>, and see what it looks like "
+"when we run it!"
+msgstr ""
+
+#: C/hellognome.js.page:66(p)
+msgid ""
+"You <em>can</em> run the above code by opening <file>hellognome.html</file> "
+"in a web browser. But here, we're going to create a GNOME application that "
+"runs our web app inside of it, just like you see in the screenshot. You'll "
+"be able to resize and maximize the window, and click the X in the corner to "
+"close it, just like you'd expect from any other GNOME app. The difference is "
+"that this one will run our web code inside of it."
+msgstr ""
+
+#: C/hellognome.js.page:67(p)
+msgid ""
+"The best part? We're going to continue to use JavaScript, to write all the "
+"parts that make our app work with GNOME. Let's look at the code, and see how "
+"it's done!"
+msgstr ""
+
+#: C/hellognome.js.page:71(title)
+#, fuzzy
+#| msgid "Creating the main window for the application"
+msgid "Creating a GNOME window to frame our web app"
+msgstr "Création de la fenêtre principale de l'application"
+
+#: C/hellognome.js.page:73(p)
+msgid ""
+"First, we need to tell GNOME that this is a JavaScript application, which "
+"uses gjs. Gjs is GNOME's way of turning your JavaScript code into "
+"instructions it understands, so this line always has to go at the start of "
+"your applications."
+msgstr ""
+
+#: C/hellognome.js.page:77(p)
+msgid "After that, we need to tell GNOME which libraries we want to import."
+msgstr ""
+
+#: C/hellognome.js.page:84(p)
+msgid ""
+"Just like how add-on libraries like jQuery let us do extra things with "
+"JavaScript, each of these libraries gives us new capabilities for our GNOME "
+"apps:"
+msgstr ""
+
+#: C/hellognome.js.page:86(p)
+msgid ""
+"<file>Gtk</file> and <file>Lang</file> are basic parts of any GNOME "
+"application, which let you create windows and widgets and tie them together."
+msgstr ""
+
+#: C/hellognome.js.page:87(p)
+msgid ""
+"<file>GLib</file> is a helper library, which lets us do things like tell "
+"GNOME where the <file>hellognome.html</file> file we created is."
+msgstr ""
+
+#: C/hellognome.js.page:88(p)
+msgid ""
+"And <file>Webkit</file> is a web rendering engine, which we'll use to "
+"basically create a browser window to open our HTML file with."
+msgstr ""
+
+#: C/hellognome.js.page:91(p)
+#, fuzzy
+#| msgid "Creating the application window"
+msgid "Now we create the application itself:"
+msgstr "Création de la fenêtre de l'application"
+
+#: C/hellognome.js.page:96(p)
+msgid ""
+"This will look familiar to you if you've worked with object-oriented "
+"JavaScript before. That's right; our whole application is a class called "
+"HelloGNOME. And as you can see, we've given it a property that says what its "
+"name is."
+msgstr ""
+
+#: C/hellognome.js.page:118(p)
+msgid ""
+"Here's some code you will more or less copy-and-paste for every JavaScript "
+"application you build. It creates a new Application, and then binds its "
+"activate and startup signals to functions that make the window show itself "
+"and build its user interface, respectively."
+msgstr ""
+
+#: C/hellognome.js.page:119(p)
+msgid ""
+"What does that mean? Well, everything in a GNOME application sends out a "
+"signal when something important happens. A button might send out the clicked "
+"signal when you click on it, for instance. Our job is to connect the signals "
+"to functions which handle them, and make the things that we want to have "
+"happen occur. We do this using each object's connect method, which takes two "
+"arguments: The signal we want to handle, and the Lang.bind function, which "
+"we have to use to tell connect which function we want to have handle the "
+"signal."
+msgstr ""
+
+#: C/hellognome.js.page:120(p)
+msgid ""
+"In this case, we want _onActivate to handle the activate signal, and "
+"_onStartup to handle the startup signal. _onActivate just tells the window "
+"to present itself; so basically, whenever you <keyseq><key>Alt</"
+"key><key>Tab</key></keyseq> to the application it appears, like you would "
+"expect it to. _onStartup calls _buildUI, which is the function that creates "
+"our user interface and is the next part that we will look at."
+msgstr ""
+
+#: C/hellognome.js.page:121(p)
+msgid ""
+"When you copy and paste the above code for your own applications, be sure to "
+"change the name to a unique one each time."
+msgstr ""
+
+#: C/hellognome.js.page:125(title)
+msgid "Designing our window's UI"
+msgstr ""
+
+#: C/hellognome.js.page:126(p)
+msgid ""
+"In the _buildUI function, we're going to tell GNOME about our window and the "
+"things inside it, one at a time. After that, we're going to connect "
+"everything together and put it all on display."
+msgstr ""
+
+#: C/hellognome.js.page:141(p)
+msgid ""
+"The first object we create is an ApplicationWindow. It needs a title to go "
+"in the title bar, and its application property needs to be the application "
+"that we created, above. Beyond that, there are various ways of customizing "
+"how it looks, which the <link xref=\"GtkApplicationWindow.js"
+"\">ApplicationWindow</link> reference page will go into more detail about. "
+"As you can see here, we gave it a default height and width (measured in "
+"pixels), and told GNOME we want our window to appear in the center of the "
+"screen."
+msgstr ""
+
+#: C/hellognome.js.page:150(p)
+msgid ""
+"Remember how we imported Webkit right at the start? Here we're creating a "
+"new instance of a Webkit class called a WebView, which is more or less a "
+"browser window you can put inside of your app. After that, we then give it "
+"the URI that we want it to load when the application starts up."
+msgstr ""
+
+#: C/hellognome.js.page:151(p)
+msgid ""
+"We <em>could</em> just give it a web URI, like <link href=\"http://gnome.org";
+"\">http://gnome.org</link>. Instead, here we use a couple of GLib helper "
+"functions to tell the WebView where our <file>hellognome.html</file> file "
+"is. GLib.get_current_dir returns the directory that our app's running in, "
+"and GLib.filename_to_uri turns our file's path and filename into a URI that "
+"the WebView's load_uri function understands. (filename_to_uri's second "
+"parameter should be null unless you know what it's used for and have a "
+"reason for changing it.)"
+msgstr ""
+
+#: C/hellognome.js.page:162(p)
+msgid ""
+"Each window can hold one, and only one, widget. Normally, we'd use a "
+"container widget like a <link xref=\"grid.js\">Grid</link> to put multiple "
+"widgets into, then use the window's add function to add the Grid to it. "
+"Here, we just need the WebView, so that's all we add to the window. After "
+"that, as the last part of the _buildUI function that creates our window, we "
+"tell the window to show itself and its contents."
+msgstr ""
+
+#: C/hellognome.js.page:168(p)
+#, fuzzy
+#| msgid ""
+#| "Finally, we create a new instance of the finished ScaleExample class, and "
+#| "set the application running."
+msgid ""
+"Finally, we create a new instance of our HelloGNOME class, and tell GNOME to "
+"run it."
+msgstr ""
+"Enfin, nous créons un nouvel exemple de la classe ScaleExemple et démarrons "
+"l'application."
+
+#: C/hellognome.js.page:172(title)
+#, fuzzy
+#| msgid "Run the application"
+msgid "Running your GNOME application"
+msgstr "Exécution de l'application"
+
+#: C/hellognome.js.page:174(p)
+msgid ""
+"Now that we've created our first GNOME application, it's time to test it "
+"out! You don't need to compile your app or install any special software for "
+"this; GNOME has gjs built in, to let it run GNOME Shell. Just save "
+"<file>hellognome.html</file> and our actual application, <file>hellognome."
+"js</file>, to a directory you can get to with the terminal. (They usually "
+"open onto your home directory, the one that's called by your username.) "
+"After that, open a terminal, go there, and type:"
+msgstr ""
+
+#: C/hellognome.js.page:175(screen)
+#, no-wrap
+msgid " <output style=\"prompt\">$ </output>gjs hellognome.js "
+msgstr ""
+
+#: C/hellognome.js.page:176(p)
+msgid ""
+"You should see more or less the same screenshot as before, with a button "
+"that you can click to make a short message appear."
+msgstr ""
+
+#: C/hellognome.js.page:179(p)
+msgid "You can use the terminal command"
+msgstr ""
+
+#: C/hellognome.js.page:180(screen)
+#, no-wrap
+msgid " <output style=\"prompt\">$ </output>cd <var>(directory name)</var> "
+msgstr ""
+
+#: C/hellognome.js.page:181(p)
+msgid ""
+"to navigate between directories inside the Terminal, in order to get to "
+"where you saved the files. There is also an extension for Nautilus, GNOME's "
+"file manager, which lets you right-click anywhere inside it to open a "
+"terminal window right there. Check the app you use to install new software "
+"(like Add/Remove Programs or the Software Center) for it."
+msgstr ""
+
+#: C/hellognome.js.page:186(title) C/03_getting_the_signal.js.page:339(title)
+#: C/02_welcome_to_the_grid.js.page:256(title)
+msgid "What's next?"
+msgstr ""
+
+#: C/hellognome.js.page:188(p)
+msgid ""
+"<link xref=\"02_welcome_to_the_grid.js\">Continue on to the next tutorial</"
+"link> to learn how to build \"native\" GNOME applications that look and feel "
+"like the others, instead of a webview with HTML code inside. Or take a look "
+"at some <link xref=\"beginner.js#samples\">code samples,</link> if you'd "
+"like to see example code for each Gtk widget."
+msgstr ""
+
+#: C/hellognome.js.page:189(p)
+msgid ""
+"Finally, if you want to just build GNOME applications using JavaScript "
+"libraries designed for the web, you can basically stop here and go do that! "
+"Take a look at the <link xref=\"scrolledwindow.js\">ScrolledWindow</link> "
+"code sample if you'd like to see how to make a WebView widget that can "
+"scroll to show parts of a larger web page, and check out <link xref="
+"\"beginner.js#tutorials\">the later tutorials</link> if you'd like to see "
+"how to create a .desktop file for your application, which will let it appear "
+"in your desktop's Activities menu with all your other apps."
+msgstr ""
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/guitar-tuner.vala.page:42(None) C/guitar-tuner.py.page:39(None)
+#: C/guitar-tuner.js.page:36(None) C/guitar-tuner.cpp.page:37(None)
+#: C/guitar-tuner.c.page:39(None)
 msgid "@@image: 'media/guitar-tuner.png'; md5=35e615e0f5e293671d00c5c414ac2f6b"
 msgstr ""
 "@@image: 'media/guitar-tuner.png'; md5=35e615e0f5e293671d00c5c414ac2f6b"
 
 #. When image changes, this message will be marked fuzzy or untranslated for you.
 #. It doesn't matter what you translate it to: it's not used at all.
-#: C/guitar-tuner.vala.page:95(None) C/guitar-tuner.py.page:89(None)
-#: C/guitar-tuner.cpp.page:88(None) C/guitar-tuner.c.page:93(None)
+#: C/guitar-tuner.vala.page:95(None) C/guitar-tuner.py.page:90(None)
+#: C/guitar-tuner.cpp.page:88(None) C/guitar-tuner.c.page:94(None)
 msgid ""
 "@@image: 'media/guitar-tuner-glade.png'; md5=f6606525443ab2160f53a87a454364d0"
 msgstr ""
@@ -7871,9 +14321,9 @@ msgstr ""
 
 #. When image changes, this message will be marked fuzzy or untranslated for you.
 #. It doesn't matter what you translate it to: it's not used at all.
-#: C/guitar-tuner.vala.page:129(None) C/guitar-tuner.py.page:132(None)
-#: C/guitar-tuner.js.page:41(None) C/guitar-tuner.cpp.page:117(None)
-#: C/guitar-tuner.c.page:138(None)
+#: C/guitar-tuner.vala.page:129(None) C/guitar-tuner.py.page:133(None)
+#: C/guitar-tuner.js.page:42(None) C/guitar-tuner.cpp.page:117(None)
+#: C/guitar-tuner.c.page:139(None)
 msgid ""
 "@@image: 'media/guitar-tuner-pipeline.png'; "
 "md5=5adc952909d92af5dae6954781b4ad5f"
@@ -7894,8 +14344,8 @@ msgstr ""
 "application d'accordeur de guitare simple pour GNOME. Explications sur la "
 "manière d'utiliser le concepteur d'interface."
 
-#: C/guitar-tuner.vala.page:26(title) C/guitar-tuner.py.page:22(title)
-#: C/guitar-tuner.js.page:18(title)
+#: 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 Accordeur de guitare"
 
@@ -7947,9 +14397,9 @@ msgstr ""
 #: C/guitar-tuner.vala.page:55(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>"
+"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 ""
 "Assurez-vous que <gui>Configuration des paquets externes</gui> est basculée "
 "sur <gui>I</gui>. Sur la page suivante, choisissez <link href=\"http://";
@@ -8038,8 +14488,8 @@ msgstr ""
 "cliquez sur <gui>Exécuter</gui>. Il ne faut le faire qu'une seule fois, à la "
 "première compilation."
 
-#: C/guitar-tuner.vala.page:90(title) C/guitar-tuner.py.page:84(title)
-#: C/guitar-tuner.cpp.page:83(title) C/guitar-tuner.c.page:88(title)
+#: 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 "Création de l'interface utilisateur"
 
@@ -8141,8 +14591,8 @@ msgstr ""
 "saisissez <code>main_on_button_clicked</code> dans la colonne "
 "<gui>Gestionnaire</gui> et appuyez sur <key>Entrée</key>."
 
-#: C/guitar-tuner.vala.page:116(p) C/guitar-tuner.py.page:106(p)
-#: C/guitar-tuner.c.page:110(p)
+#: C/guitar-tuner.vala.page:116(p) C/guitar-tuner.py.page:107(p)
+#: C/guitar-tuner.c.page:111(p)
 msgid ""
 "Repeat the above steps for the other buttons, adding the next 5 strings with "
 "the names <em>A</em>, <em>D</em>, <em>G</em>, <em>B</em>, and <em>e</em>."
@@ -8150,8 +14600,8 @@ msgstr ""
 "Répétez cette procédure pour les autres boutons, ce qui ajoute les 5 autres "
 "cordes nommées <em>A</em>, <em>D</em>, <em>G</em>, <em>B</em> et <em>e</em>."
 
-#: C/guitar-tuner.vala.page:119(p) C/guitar-tuner.py.page:109(p)
-#: C/guitar-tuner.c.page:113(p)
+#: C/guitar-tuner.vala.page:119(p) C/guitar-tuner.py.page:110(p)
+#: C/guitar-tuner.c.page:114(p)
 msgid ""
 "Save the UI design (by clicking <guiseq><gui>File</gui><gui>Save</gui></"
 "guiseq>) and keep it open."
@@ -8160,9 +14610,9 @@ msgstr ""
 "sur <guiseq><gui>Fichier</gui><gui>Enregistrer</gui></guiseq>) et laissez-le "
 "ouvert."
 
-#: C/guitar-tuner.vala.page:125(title) C/guitar-tuner.py.page:128(title)
-#: C/guitar-tuner.js.page:23(link) C/guitar-tuner.js.page:37(title)
-#: C/guitar-tuner.cpp.page:112(title) C/guitar-tuner.c.page:134(title)
+#: 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 "Les pipelines GStreamer"
 
@@ -8198,9 +14648,9 @@ msgstr ""
 "fichier image, une vidéo ou un fichier musical, par exemple, et la sortie un "
 "élément graphique ou une carte son."
 
-#: C/guitar-tuner.vala.page:128(p) C/guitar-tuner.py.page:131(p)
-#: C/guitar-tuner.js.page:40(p) C/guitar-tuner.cpp.page:116(p)
-#: C/guitar-tuner.c.page:137(p)
+#: C/guitar-tuner.vala.page:128(p) C/guitar-tuner.py.page:132(p)
+#: C/guitar-tuner.js.page:41(p) C/guitar-tuner.cpp.page:116(p)
+#: C/guitar-tuner.c.page:138(p)
 msgid ""
 "Between source and sink, you can apply various filters and converters to "
 "handle effects, format conversions and so on. Each element of the pipeline "
@@ -8211,14 +14661,14 @@ msgstr ""
 "format et ainsi de suite. Chaque élément du pipeline possède des propriétés "
 "pouvant être utilisées pour modifier son comportement."
 
-#: C/guitar-tuner.vala.page:130(p) C/guitar-tuner.py.page:133(p)
-#: C/guitar-tuner.js.page:42(p) C/guitar-tuner.cpp.page:118(p)
-#: C/guitar-tuner.c.page:139(p)
+#: C/guitar-tuner.vala.page:130(p) C/guitar-tuner.py.page:134(p)
+#: C/guitar-tuner.js.page:43(p) C/guitar-tuner.cpp.page:118(p)
+#: C/guitar-tuner.c.page:140(p)
 msgid "An example GStreamer pipeline."
 msgstr "Un exemple de pipeline GStreamer."
 
-#: C/guitar-tuner.vala.page:135(title) C/guitar-tuner.py.page:138(title)
-#: C/guitar-tuner.c.page:144(title)
+#: 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 "Configuration du pipeline"
 
@@ -8272,8 +14722,8 @@ msgstr ""
 "sera utilisé comme conteneur pour les deux autres). Ce sont des variables de "
 "classe et sont donc définies en dehors de la méthode. Le pipeline est nommé "
 "« note » ; la source est nommée « source » et le collecteur est nommé "
-"« output » et est défini comme étant le connecteur <code>autoaudiosink</code> "
-"(qui est la sortie par défaut de la carte son)."
+"« output » et est défini comme étant le connecteur <code>autoaudiosink</"
+"code> (qui est la sortie par défaut de la carte son)."
 
 #: C/guitar-tuner.vala.page:178(p)
 msgid ""
@@ -8313,11 +14763,11 @@ 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>)."
+"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 ""
 "Ensuite, <link href=\"http://valadoc.org/gstreamer-0.10/Gst.Element.link.html";
 "\"><code>sink.link</code></link> sert à lier les éléments ensemble, de sorte "
@@ -8347,7 +14797,7 @@ msgstr ""
 "supprimer lui-même du délai d'attente, sinon il serait constamment appelé "
 "toutes les 200 ms."
 
-#: C/guitar-tuner.vala.page:197(title) C/guitar-tuner.c.page:119(title)
+#: C/guitar-tuner.vala.page:197(title) C/guitar-tuner.c.page:120(title)
 msgid "Creating the signal handler"
 msgstr "Création du gestionnaire de signal"
 
@@ -8448,7 +14898,7 @@ msgstr ""
 "guitare opérationnel !"
 
 #: C/guitar-tuner.vala.page:249(p) C/guitar-tuner.cpp.page:251(p)
-#: C/guitar-tuner.c.page:252(p)
+#: C/guitar-tuner.c.page:253(p)
 msgid ""
 "If you haven't already done so, choose the <file>Debug/src/guitar-tuner</"
 "file> application in the dialog that appears. Finally, hit <gui>Run</gui> "
@@ -8478,21 +14928,21 @@ msgstr ""
 "le <link href=\"http://live.gnome.org/Vala/Tutorial\";>manuel Vala</link> et "
 "la <link href=\"http://valadoc.org/\";>Documentation de Vala API</link>."
 
-#: C/guitar-tuner.vala.page:268(p) C/guitar-tuner.py.page:237(p)
-#: C/guitar-tuner.cpp.page:272(p) C/guitar-tuner.c.page:265(p)
+#: 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 ""
 "Faire que le programme joue automatiquement les notes de manière cyclique."
 
-#: C/guitar-tuner.vala.page:271(p) C/guitar-tuner.py.page:240(p)
-#: C/guitar-tuner.cpp.page:275(p) C/guitar-tuner.c.page:268(p)
+#: 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 ""
 "Faire que le programme lise des enregistrements de vraies cordes de guitare "
 "pincées."
 
-#: C/guitar-tuner.vala.page:272(p) C/guitar-tuner.py.page:241(p)
-#: C/guitar-tuner.cpp.page:276(p) C/guitar-tuner.c.page:269(p)
+#: 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 "
@@ -8508,8 +14958,8 @@ msgstr ""
 "basés sur le format des sons enregistrés — par exemple, les MP3 utilisent "
 "des éléments différents de ceux des fichiers Ogg Vorbis."
 
-#: C/guitar-tuner.vala.page:273(p) C/guitar-tuner.py.page:242(p)
-#: C/guitar-tuner.cpp.page:277(p) C/guitar-tuner.c.page:270(p)
+#: C/guitar-tuner.vala.page:273(p) C/guitar-tuner.py.page:243(p)
+#: C/guitar-tuner.cpp.page:277(p) C/guitar-tuner.c.page:271(p)
 msgid ""
 "You might need to connect the elements in more complicated ways too. This "
 "could involve using <link href=\"http://gstreamer.freedesktop.org/data/doc/";
@@ -8527,13 +14977,13 @@ msgstr ""
 "gstreamer/head/manual/html/section-intro-basics-pads.html\">pads</link>. La "
 "commande <cmd>gst-inspect</cmd> peut également vous être utile."
 
-#: C/guitar-tuner.vala.page:276(p) C/guitar-tuner.py.page:245(p)
-#: C/guitar-tuner.cpp.page:280(p) C/guitar-tuner.c.page:273(p)
+#: 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 "Analyser automatiquement les notes jouées par l'utilisateur."
 
-#: C/guitar-tuner.vala.page:277(p) C/guitar-tuner.py.page:246(p)
-#: C/guitar-tuner.cpp.page:281(p) C/guitar-tuner.c.page:274(p)
+#: C/guitar-tuner.vala.page:277(p) C/guitar-tuner.py.page:247(p)
+#: C/guitar-tuner.cpp.page:281(p) C/guitar-tuner.c.page:275(p)
 msgid ""
 "You could connect a microphone and record sounds from it using an <link href="
 "\"http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-good-";
@@ -8551,7 +15001,13 @@ msgstr ""
 "html/gst-plugins-good-plugins-plugin-spectrum.html\">analyseur de spectre</"
 "link> peut vous aider à trouver les notes jouées ?"
 
-#: C/guitar-tuner.py.page:9(desc) C/guitar-tuner.c.page:9(desc)
+#: C/guitar-tuner.py.page:7(title)
+#, fuzzy
+#| msgid "Guitar Tuner"
+msgid "Guitar Tuner (Python)"
+msgstr "Accordeur de guitare"
+
+#: C/guitar-tuner.py.page:10(desc) C/guitar-tuner.c.page:10(desc)
 msgid ""
 "Use Gtk+ and GStreamer to build a simple guitar tuner application for GNOME. "
 "Shows off how to use the interface designer."
@@ -8560,8 +15016,8 @@ msgstr ""
 "d'accordeur de guitare simple pour GNOME. Explications sur la manière "
 "d'utiliser le concepteur d'interface."
 
-#: C/guitar-tuner.py.page:25(p) C/guitar-tuner.cpp.page:24(p)
-#: C/guitar-tuner.c.page:25(p)
+#: C/guitar-tuner.py.page:26(p) C/guitar-tuner.cpp.page:24(p)
+#: C/guitar-tuner.c.page:26(p)
 msgid ""
 "In this tutorial, we're going to make a program which plays tones that you "
 "can use to tune a guitar. You will learn how to:"
@@ -8569,28 +15025,28 @@ msgstr ""
 "Dans ce tutoriel, nous allons écrire un programme qui émet des sons servant "
 "à accorder une guitare. Nous allons apprendre comment :"
 
-#: C/guitar-tuner.py.page:27(p) C/guitar-tuner.cpp.page:26(p)
-#: C/guitar-tuner.c.page:27(p)
+#: 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 "créer un projet basique dans Anjuta,"
 
-#: C/guitar-tuner.py.page:28(p) C/guitar-tuner.cpp.page:27(p)
-#: C/guitar-tuner.c.page:28(p)
+#: 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 ""
 "créer une interface graphique simple avec le concepteur d'interface "
 "utilisateur d'Anjuta,"
 
-#: C/guitar-tuner.py.page:29(p) C/guitar-tuner.cpp.page:28(p)
-#: C/guitar-tuner.c.page:29(p)
+#: 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 "utiliser GStreamer pour émettre des sons."
 
-#: C/guitar-tuner.py.page:34(p)
+#: C/guitar-tuner.py.page:35(p)
 msgid "Basic knowledge of the Python programming language"
 msgstr "de connaissances de base du langage de programmation Python."
 
-#: C/guitar-tuner.py.page:48(p)
+#: C/guitar-tuner.py.page:49(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 "
@@ -8601,7 +15057,7 @@ msgstr ""
 "suivantes. Utilisez <file>guitar-tuner</file> comme nom de projet et de "
 "répertoire."
 
-#: C/guitar-tuner.py.page:51(p)
+#: C/guitar-tuner.py.page:52(p)
 msgid ""
 "Click <gui>Apply</gui> and the project will be created for you. Open "
 "<file>src/guitar_tuner.py</file> from the <gui>Project</gui> or <gui>File</"
@@ -8612,11 +15068,11 @@ msgstr ""
 "<gui>Fichiers</gui>. Vous devez voir apparaître du code commençant par les "
 "lignes :"
 
-#: C/guitar-tuner.py.page:60(title)
+#: C/guitar-tuner.py.page:61(title)
 msgid "Run the code for the first time"
 msgstr "Exécution du programme pour la première fois"
 
-#: C/guitar-tuner.py.page:61(p)
+#: C/guitar-tuner.py.page:62(p)
 msgid ""
 "Most of the code in the file is template code. It loads an (empty) window "
 "from the user interface description file and shows it. More details are "
@@ -8628,7 +15084,7 @@ msgstr ""
 "les bases :"
 
 # Bruno : Pas de "include the"
-#: C/guitar-tuner.py.page:65(p)
+#: C/guitar-tuner.py.page:66(p)
 msgid ""
 "The <code>import</code> lines at the top include the tell Python to load the "
 "user interface and system libraries needed."
@@ -8636,7 +15092,7 @@ msgstr ""
 "Les lignes <code>import</code> tout en haut, indiquent à Python de charger "
 "l'interface utilisateur et les bibliothèques système nécessaires."
 
-#: C/guitar-tuner.py.page:69(p)
+#: C/guitar-tuner.py.page:70(p)
 msgid ""
 "A class is declared that will be the main class for our application. In the "
 "<code>__init__</code> method the main window is loaded from the GtkBuilder "
@@ -8647,7 +15103,7 @@ msgstr ""
 "depuis le fichier GtkBuilder (<file>src/guitar-tuner.ui</file>) et les "
 "signaux sont connectés."
 
-#: C/guitar-tuner.py.page:72(p)
+#: C/guitar-tuner.py.page:73(p)
 msgid ""
 "Connecting signals is how you define what happens when you push a button, or "
 "when some other event happens. Here, the <code>destroy</code> method is "
@@ -8658,7 +15114,7 @@ msgstr ""
 "méthode <code>destroy</code> est appelée (et quitte l'application) quand la "
 "fenêtre est fermée."
 
-#: C/guitar-tuner.py.page:75(p)
+#: C/guitar-tuner.py.page:76(p)
 msgid ""
 "The <code>main</code> function is run by default when you start a Python "
 "application. It just creates an instance of the main class and starts the "
@@ -8668,7 +15124,7 @@ msgstr ""
 "application Python. Elle crée juste une instance de la classe principale et "
 "démarre la boucle principale pour afficher la fenêtre."
 
-#: C/guitar-tuner.py.page:80(p)
+#: C/guitar-tuner.py.page:81(p)
 msgid ""
 "This code is ready to be used, so you can run it by clicking "
 "<guiseq><gui>Run</gui><gui>Execute</gui></guiseq>."
@@ -8676,7 +15132,7 @@ msgstr ""
 "Le programme est prêt à être utilisé et vous pouvez l'exécuter avec "
 "<guiseq><gui>Exécuter</gui><gui>Exécuter</gui></guiseq>."
 
-#: C/guitar-tuner.py.page:85(p)
+#: C/guitar-tuner.py.page:86(p)
 msgid ""
 "A description of the user interface (UI) is contained in the GtkBuilder "
 "file. To edit the user interface, open <file>src/guitar_tuner.ui</file>. "
@@ -8691,8 +15147,8 @@ msgstr ""
 "sont sur la droite et la palette des composants graphiques disponibles est "
 "sur la gauche."
 
-#: C/guitar-tuner.py.page:87(p) C/guitar-tuner.cpp.page:86(p)
-#: C/guitar-tuner.c.page:91(p)
+#: C/guitar-tuner.py.page:88(p) C/guitar-tuner.cpp.page:86(p)
+#: C/guitar-tuner.c.page:92(p)
 msgid ""
 "The layout of every UI in GTK+ is organized using boxes and tables. Let's "
 "use a vertical <gui>GtkButtonBox</gui> here to assign six <gui>GtkButtons</"
@@ -8703,8 +15159,8 @@ msgstr ""
 "<gui>GtkButtonBox</gui> verticale pour y mettre six <gui>GtkButtons</gui>, "
 "un pour chacune des six cordes de la guitare."
 
-#: C/guitar-tuner.py.page:93(p) C/guitar-tuner.cpp.page:92(p)
-#: C/guitar-tuner.c.page:97(p)
+#: C/guitar-tuner.py.page:94(p) C/guitar-tuner.cpp.page:92(p)
+#: C/guitar-tuner.c.page:98(p)
 msgid ""
 "Select a <gui>GtkButtonBox</gui> from the <gui>Container</gui> section of "
 "the <gui>Palette</gui> on the right and put it into the window. In the "
@@ -8716,8 +15172,8 @@ msgstr ""
 "fenêtre. Dans l'onglet <gui>Propriétés</gui>, définissez le nombre "
 "d'éléments à 6 (pour les six cordes) et l'orientation à verticale."
 
-#: C/guitar-tuner.py.page:97(p) C/guitar-tuner.cpp.page:96(p)
-#: C/guitar-tuner.c.page:101(p)
+#: C/guitar-tuner.py.page:98(p) C/guitar-tuner.cpp.page:96(p)
+#: C/guitar-tuner.c.page:102(p)
 msgid ""
 "Now, choose a <gui>GtkButton</gui> from the palette and put it into the "
 "first part of the box."
@@ -8725,7 +15181,7 @@ msgstr ""
 "Ensuite, choisissez un <gui>GtkButton</gui> (Bouton) dans la palette et "
 "mettez-le dans la première partie de la boîte."
 
-#: C/guitar-tuner.py.page:100(p) C/guitar-tuner.c.page:104(p)
+#: C/guitar-tuner.py.page:101(p) C/guitar-tuner.c.page:105(p)
 msgid ""
 "While the button is still selected, change the <gui>Label</gui> property in "
 "the <gui>Widgets</gui> tab to <gui>E</gui>. This will be the low E string."
@@ -8734,7 +15190,7 @@ msgstr ""
 "<gui>Étiquette</gui> dans l'onglet <gui>Composants graphiques</gui> à "
 "<gui>E</gui>. C'est la corde E du bas."
 
-#: C/guitar-tuner.py.page:103(p) C/guitar-tuner.c.page:107(p)
+#: C/guitar-tuner.py.page:104(p) C/guitar-tuner.c.page:108(p)
 msgid ""
 "Switch to the <gui>Signals</gui> tab (inside the <gui>Widgets</gui> tab) and "
 "look for the <code>clicked</code> signal of the button. You can use this to "
@@ -8749,11 +15205,11 @@ msgstr ""
 "saisissez <code>on_button_clicked</code> dans la colonne <gui>Gestionnaire</"
 "gui> et appuyez sur <key>Entrée</key>."
 
-#: C/guitar-tuner.py.page:115(title)
+#: C/guitar-tuner.py.page:116(title)
 msgid "Write the signal handler"
 msgstr "Écriture du gestionnaire de signal"
 
-#: C/guitar-tuner.py.page:116(p) C/guitar-tuner.c.page:120(p)
+#: C/guitar-tuner.py.page:117(p) C/guitar-tuner.c.page:121(p)
 msgid ""
 "In the UI designer, you made it so that all of the buttons will call the "
 "same function, <gui>on_button_clicked</gui>, when they are clicked. We need "
@@ -8764,7 +15220,7 @@ msgstr ""
 "ils sont cliqués. Nous devons ajouter cette fonction dans notre fichier "
 "source."
 
-#: C/guitar-tuner.py.page:117(p)
+#: C/guitar-tuner.py.page:118(p)
 msgid ""
 "To do this, open <file>guitar_tuner.py</file> while the user interface file "
 "is still open. Switch to the <gui>Signals</gui> tab, which you already used "
@@ -8778,7 +15234,7 @@ msgstr ""
 "vous aviez défini le signal <gui>clicked</gui> et faites-la glisser dans la "
 "classe du fichier source. Le code suivant s'ajoute à votre fichier source :"
 
-#: C/guitar-tuner.py.page:123(p)
+#: C/guitar-tuner.py.page:124(p)
 msgid ""
 "This signal handler has two arguments: the usual Python class pointer, and "
 "the <code>Gtk.Button</code> that called the function."
@@ -8786,7 +15242,7 @@ msgstr ""
 "Ce récepteur de signal possède deux arguments : le pointeur classique de "
 "Python et <code>Gtk.Button</code> qui appelle la fonction."
 
-#: C/guitar-tuner.py.page:124(p) C/guitar-tuner.c.page:130(p)
+#: C/guitar-tuner.py.page:125(p) C/guitar-tuner.c.page:131(p)
 msgid ""
 "For now, we'll leave the signal handler empty while we work on writing the "
 "code to produce sounds."
@@ -8794,8 +15250,8 @@ msgstr ""
 "Laissons le gestionnaire de signal vide pour l'instant et écrivons le code "
 "qui produit les sons."
 
-#: C/guitar-tuner.py.page:129(p) C/guitar-tuner.js.page:38(p)
-#: C/guitar-tuner.c.page:135(p)
+#: C/guitar-tuner.py.page:130(p) C/guitar-tuner.js.page:39(p)
+#: C/guitar-tuner.c.page:136(p)
 msgid ""
 "GStreamer is GNOME's multimedia framework — you can use it for playing, "
 "recording, and processing video, audio, webcam streams and the like. Here, "
@@ -8806,8 +15262,8 @@ msgstr ""
 "audio, de webcam entre autres. Ici, nous allons nous en servir pour émettre "
 "des tonalités à une seule fréquence."
 
-#: C/guitar-tuner.py.page:130(p) C/guitar-tuner.js.page:39(p)
-#: C/guitar-tuner.cpp.page:115(p) C/guitar-tuner.c.page:136(p)
+#: C/guitar-tuner.py.page:131(p) C/guitar-tuner.js.page:40(p)
+#: C/guitar-tuner.cpp.page:115(p) C/guitar-tuner.c.page:137(p)
 msgid ""
 "Conceptually, GStreamer works as follows: You create a <em>pipeline</em> "
 "containing several processing elements going from the <em>source</em> to the "
@@ -8820,8 +15276,8 @@ msgstr ""
 "peut être un fichier image, une vidéo ou un fichier musical, par exemple, et "
 "la sortie un élément graphique ou une carte son."
 
-#: C/guitar-tuner.py.page:139(p) C/guitar-tuner.cpp.page:129(p)
-#: C/guitar-tuner.c.page:145(p)
+#: C/guitar-tuner.py.page:140(p) C/guitar-tuner.cpp.page:129(p)
+#: C/guitar-tuner.c.page:146(p)
 msgid ""
 "In this simple example we will use a tone generator source called "
 "<code>audiotestsrc</code> and send the output to the default system sound "
@@ -8835,7 +15291,7 @@ msgstr ""
 "faut seulement configurer la fréquence du générateur accessible depuis la "
 "propriété <code>freq</code> de <code>audiotestsrc</code>."
 
-#: C/guitar-tuner.py.page:141(p)
+#: C/guitar-tuner.py.page:142(p)
 msgid ""
 "Change the import line in <file>guitar_tuner.py</file>, just at the "
 "beginning to :"
@@ -8843,7 +15299,7 @@ msgstr ""
 "Modifiez la ligne import au début du fichier <file>guitar_tuner.py</file> "
 "en :"
 
-#: C/guitar-tuner.py.page:143(p)
+#: C/guitar-tuner.py.page:144(p)
 msgid ""
 "The <code>Gst</code> includes the GStreamer library. You also need to "
 "initialise GStreamer properly which is done in the <code>main()</code> "
@@ -8854,7 +15310,7 @@ msgstr ""
 "<code>main()</code> par cet appel à ajouter au-dessus de la ligne <code>app "
 "= GUI()</code> :"
 
-#: C/guitar-tuner.py.page:147(p)
+#: C/guitar-tuner.py.page:148(p)
 msgid ""
 "Then, copy the following function into the class in <file>guitar_tuner.py</"
 "file> somewhere:"
@@ -8862,7 +15318,7 @@ msgstr ""
 "Copiez ensuite la fonction suivante quelque part dans la classe de "
 "<file>guitar_tuner.py</file> :"
 
-#: C/guitar-tuner.py.page:163(p)
+#: C/guitar-tuner.py.page:164(p)
 msgid ""
 "The first three lines create source and sink GStreamer elements and a "
 "pipeline element (which will be used as a container for the other two "
@@ -8875,11 +15331,11 @@ msgstr ""
 "(collecteur) et un élément pipeline (qui sera utilisé comme conteneur pour "
 "les deux autres éléments). Le pipeline est nommé « note » ; la source est "
 "nommée « source » et est définie comme étant le connecteur "
-"<code>audiotestsrc</code> et le collecteur est nommé « output » et est défini "
-"comme étant le connecteur <code>autoaudiosink</code> (qui est la sortie par "
-"défaut de la carte son)."
+"<code>audiotestsrc</code> et le collecteur est nommé « output » et est "
+"défini comme étant le connecteur <code>autoaudiosink</code> (qui est la "
+"sortie par défaut de la carte son)."
 
-#: C/guitar-tuner.py.page:166(p)
+#: C/guitar-tuner.py.page:167(p)
 msgid ""
 "The call to <code>source.set_property</code> sets the <code>freq</code> "
 "property of the source element to <code>frequency</code>, which was passed "
@@ -8893,7 +15349,7 @@ msgstr ""
 "fréquence de la note de musique en Hertz ; certaines fréquences utiles "
 "seront définies plus tard."
 
-#: C/guitar-tuner.py.page:169(p)
+#: C/guitar-tuner.py.page:170(p)
 msgid ""
 "The next two lines call <code>pipeline.add</code>, putting the source and "
 "sink into the pipeline. The pipeline can contain multiple other GStreamer "
@@ -8906,7 +15362,7 @@ msgstr ""
 "d'éléments que vous voulez au pipeline en faisant autant d'appels "
 "supplémentaires à <code>add</code>."
 
-#: C/guitar-tuner.py.page:172(p)
+#: 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>)."
@@ -8915,11 +15371,11 @@ msgstr ""
 "lecture en basculant l'état du pipeline à « playing » (lecture) (<code>Gst."
 "State.PLAYING</code>)."
 
-#: C/guitar-tuner.py.page:179(title) C/guitar-tuner.c.page:194(title)
+#: C/guitar-tuner.py.page:180(title) C/guitar-tuner.c.page:195(title)
 msgid "Stopping playback"
 msgstr "Arrêt de la lecture"
 
-#: C/guitar-tuner.py.page:180(p)
+#: 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>. "
@@ -8935,7 +15391,7 @@ msgstr ""
 "<code>pipeline_stop</code> et continuera à l'appeler jusqu'à ce que "
 "<code>pipeline_stop</code> renvoie la valeur <code>False</code>."
 
-#: C/guitar-tuner.py.page:181(p)
+#: C/guitar-tuner.py.page:182(p)
 msgid ""
 "Now, we'll write the <code>pipeline_stop</code> function which is called by "
 "<code>GObject.timeout_add</code>. Insert the following code <em>above</em> "
@@ -8945,7 +15401,7 @@ msgstr ""
 "par <code>GObject.timeout_add</code>. Insérez le code suivant <em>au-dessus</"
 "em> de la fonction <code>play_sound</code> :"
 
-#: C/guitar-tuner.py.page:187(p)
+#: C/guitar-tuner.py.page:188(p)
 msgid ""
 "You need to define the <code>LENGTH</code> constant inside the class, so add "
 "this code at the beginning of the main class:"
@@ -8953,7 +15409,7 @@ msgstr ""
 "Vous devez définir la constante <code>LENGTH</code> dans la classe, donc "
 "ajoutez ce code au début de la classe principale :"
 
-#: C/guitar-tuner.py.page:192(p)
+#: C/guitar-tuner.py.page:193(p)
 msgid ""
 "The call to <code>pipeline.set_state</code> pauses the playback of the "
 "pipeline."
@@ -8961,11 +15417,11 @@ msgstr ""
 "L'appel à <code>pipeline.set_state</code> met en pause la lecture du "
 "pipeline."
 
-#: C/guitar-tuner.py.page:196(title) C/guitar-tuner.c.page:212(title)
+#: C/guitar-tuner.py.page:197(title) C/guitar-tuner.c.page:213(title)
 msgid "Define the tones"
 msgstr "Définition des notes"
 
-#: C/guitar-tuner.py.page:197(p)
+#: C/guitar-tuner.py.page:198(p)
 msgid ""
 "We want to play the correct sound when the user clicks a button. First of "
 "all, we need to know the frequencies for the six guitar strings, which are "
@@ -8978,7 +15434,7 @@ msgstr ""
 "dans un dictionnaire de façon à pouvoir facilement les associer aux noms des "
 "cordes :"
 
-#: C/guitar-tuner.py.page:210(p) C/guitar-tuner.c.page:222(p)
+#: C/guitar-tuner.py.page:211(p) C/guitar-tuner.c.page:223(p)
 msgid ""
 "Now to flesh out the signal handler that we defined earlier, "
 "<code>on_button_clicked</code>. We could have connected every button to a "
@@ -8992,7 +15448,7 @@ msgstr ""
 "beaucoup de code. Au lieu de ça, nous allons plutôt utiliser l'étiquette du "
 "bouton pour déterminer le bouton cliqué :"
 
-#: C/guitar-tuner.py.page:218(p)
+#: C/guitar-tuner.py.page:219(p)
 msgid ""
 "The button that was clicked is passed as an argument (<code>button</code>) "
 "to <code>on_button_clicked</code>. We can get the label of that button by "
@@ -9004,7 +15460,7 @@ msgstr ""
 "en utilisant <code>button.get_child</code> puis en extrayant le texte de "
 "cette étiquette avec <code>label.get_label</code>."
 
-#: C/guitar-tuner.py.page:219(p)
+#: C/guitar-tuner.py.page:220(p)
 msgid ""
 "The label text is then used as a key for the dictionary and "
 "<code>play_sound</code> is called with the frequency appropriate for that "
@@ -9015,7 +15471,7 @@ msgstr ""
 "à cette note. Cela joue la note ; nous avons un accordeur de guitare "
 "opérationnel !"
 
-#: C/guitar-tuner.py.page:224(p)
+#: C/guitar-tuner.py.page:225(p)
 msgid ""
 "All of the code should now be ready to go. Click <guiseq><gui>Run</"
 "gui><gui>Execute</gui></guiseq> to start the application. Enjoy!"
@@ -9024,7 +15480,7 @@ msgstr ""
 "<guiseq><gui>Exécuter</gui><gui>Exécuter</gui></guiseq> pour lancer "
 "l'application. Amusez-vous bien !"
 
-#: C/guitar-tuner.py.page:229(p)
+#: C/guitar-tuner.py.page:230(p)
 msgid ""
 "If you run into problems with the tutorial, compare your code with this "
 "<link href=\"guitar-tuner/guitar-tuner.py\">reference code</link>."
@@ -9033,14 +15489,20 @@ msgstr ""
 "programme à ce <link href=\"guitar-tuner/guitar-tuner.py\">programme de "
 "référence</link>."
 
-#: C/guitar-tuner.js.page:15(desc)
+#: C/guitar-tuner.js.page:6(title)
+#, fuzzy
+#| msgid "Guitar Tuner"
+msgid "Guitar Tuner (JavaScript)"
+msgstr "Accordeur de guitare"
+
+#: C/guitar-tuner.js.page:16(desc)
 msgid ""
 "Use Gtk+ and GStreamer to build a simple guitar tuner application for GNOME."
 msgstr ""
 "Utilisation de Gtk+ et de GStreamer pour construire une application "
 "d'accordeur de guitare simple pour GNOME."
 
-#: C/guitar-tuner.js.page:21(p)
+#: C/guitar-tuner.js.page:22(p)
 msgid ""
 "In this tutorial we'll construct a small application, Guitar Tuner, using "
 "JavaScript and GTK+ and GStreamer. To do and run all the code examples "
@@ -9054,23 +15516,27 @@ msgstr ""
 "supérieur est installé. Dans ce guide, nous illustrerons les éléments "
 "suivants :"
 
-#: C/guitar-tuner.js.page:27(link) C/guitar-tuner.js.page:76(title)
+#: C/guitar-tuner.js.page:28(link) C/guitar-tuner.js.page:77(title)
 msgid "Buttons for the tunes"
 msgstr "Les boutons pour les sons"
 
-#: C/guitar-tuner.js.page:28(link) C/guitar-tuner.js.page:101(title)
+#: C/guitar-tuner.js.page:29(link) C/guitar-tuner.js.page:102(title)
 msgid "Making the sounds with GStreamer"
 msgstr "Création des sons avec GStreamer"
 
-#: C/guitar-tuner.js.page:29(link) C/guitar-tuner.js.page:125(title)
+#: C/guitar-tuner.js.page:30(link) C/guitar-tuner.js.page:126(title)
 msgid "Connecting buttons to playSound"
 msgstr "Connexion des boutons à playSound"
 
-#: C/guitar-tuner.js.page:30(link) C/guitar-tuner.js.page:148(title)
+#: C/guitar-tuner.js.page:31(link) C/guitar-tuner.js.page:149(title)
 msgid "The whole program"
 msgstr "Le programme complet"
 
-#: C/guitar-tuner.js.page:49(p)
+#: C/guitar-tuner.js.page:32(link) C/guitar-tuner.js.page:229(title)
+msgid "Running the application form Terminal"
+msgstr "Exécution de l'application à partir de Terminal"
+
+#: C/guitar-tuner.js.page:50(p)
 msgid ""
 "This line tells how to run the script. It needs to be the first line of the "
 "code and it needs to be executable. To get the execution rights go to "
@@ -9088,7 +15554,7 @@ msgstr ""
 "sur l'onglet Permissions et cochez la case pour permettre l'exécution du "
 "fichier comme un programme."
 
-#: C/guitar-tuner.js.page:59(p)
+#: C/guitar-tuner.js.page:60(p)
 msgid ""
 "In order to have a working program we need to import a few GObject "
 "Introspection -libraries to our use. For working UI, we need Gtk and for "
@@ -9096,7 +15562,7 @@ msgid ""
 "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 ""
-"Afin que le programme fonctionne, vous devez importer quelques  "
+"Afin que le programme fonctionne, vous devez importer quelques "
 "bibliothèques d'introspection GObject à utiliser. Pour faire une interface "
 "graphique, nous avons besoin de Gtk et pour que Gstreamer fonctionne, nous "
 "avons besoin de Gst. Elles sont importées au début afin de pouvoir les "
@@ -9104,7 +15570,7 @@ msgstr ""
 "principale Mainloop pour prendre en charge le délai à utiliser avec les sons "
 "d'accordage."
 
-#: C/guitar-tuner.js.page:73(p)
+#: C/guitar-tuner.js.page:74(p)
 msgid ""
 "Importing Gtk and Gst is not enough, we need to initialize them in order to "
 "get them working. When Gtk and Gst are up and running we need to create the "
@@ -9119,7 +15585,7 @@ msgstr ""
 "s'affiche, nous devons lui dire de s'afficher et nous avons besoin de lancer "
 "le code avec Gtk.main()."
 
-#: C/guitar-tuner.js.page:97(p)
+#: C/guitar-tuner.js.page:98(p)
 msgid ""
 "Because Gtk.Window can only contain a single widget, we need to create "
 "something under it to be able to add all the necessary buttons inside it. In "
@@ -9131,12 +15597,12 @@ msgstr ""
 "Puisque Gtk.Window ne peut contenir qu'un seul élément graphique, nous "
 "devons créer quelque chose en dessous pour pouvoir ajouter tous les boutons "
 "nécessaires à l'intérieur. Dans cet exemple, nous utilisons Buttonbox. Après "
-"la création de Buttonbox,  nous créons les boutons avec les étiquettes "
+"la création de Buttonbox, nous créons les boutons avec les étiquettes "
 "nécessaires. Après l'obtention des boutons, nous devons les ajouter au "
 "Buttonbox et celui-ci doit être ajouté au Gtk.Window et tout ce qui est dans "
 "Buttonbox doit être affiché."
 
-#: C/guitar-tuner.js.page:98(p)
+#: C/guitar-tuner.js.page:99(p)
 msgid ""
 "After this stage you should have a window appearing to your screen showing 6 "
 "buttons. Right now the buttons don't do anything and we shall address that "
@@ -9148,7 +15614,7 @@ msgstr ""
 "verrons cela plus tard. Pour pouvoir connecter les signaux des boutons à "
 "quelque chose, il nous faut d'abord coder ce quelque chose."
 
-#: C/guitar-tuner.js.page:121(p)
+#: C/guitar-tuner.js.page:122(p)
 msgid ""
 "The first thing we need to do is decide what tunes we want to make when we "
 "push a button. The frequencies list takes care of that. After that we get to "
@@ -9169,7 +15635,7 @@ msgstr ""
 "le jouer. Enfin, utilisons la constante Mainloop pour arrêter l'émission du "
 "son après 500ms."
 
-#: C/guitar-tuner.js.page:122(p)
+#: C/guitar-tuner.js.page:123(p)
 msgid ""
 "Now we have the method of playing a tune when clicking a button. Next well "
 "make the conncetions between pushing a button and playing the correct sound "
@@ -9179,18 +15645,25 @@ msgstr ""
 "un bouton. Faisons ensuite la connexion entre l'appui sur un bouton et "
 "l'émission du son correct relié à ce bouton."
 
-#: C/guitar-tuner.js.page:145(p)
+#: C/guitar-tuner.js.page:146(p)
 msgid ""
 "The method of connecting button clicks to playSound with the correct tune is "
-"by using the connect method of the button widget. So we yelp-check validate "
-"*pagechoose a button to be connected and type E.connect(\"clicked\", function"
-"(){playSound(frequencies.E);}); The connect tells that when pushing E, "
-"something should happen. The \"clicked\" tells the type of something "
-"happening to E and then in the function(){}; we the playSound happen with "
-"the correct tune that should be associated to the button."
-msgstr ""
-
-#: C/guitar-tuner.js.page:149(p)
+"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 ""
+"Pour connecter les clics des boutons à la fonction playSound avec la "
+"tonalité correcte, utilisez la méthode connect de l'élément graphique "
+"button : choisissez un bouton à connecter et saisissez E.connect(\"clicked"
+"\", function(){playSound(frequencies.E);}) ; la connection indique qu'en "
+"appuyant sur E, quelque chose doit se produire. « clicked » indique ce qui "
+"arrive à E et ensuite ce qui se passe dans la function(){} ; enfin la "
+"fonction playSound renvoie la tonalité correcte à associer au bouton."
+
+#: C/guitar-tuner.js.page:150(p)
 msgid ""
 "So this is what all the parts combined looks like. When running this code, "
 "you should be able to tune your guitar(if you have correctly calibrated "
@@ -9200,7 +15673,7 @@ msgstr ""
 "ce code, vous devriez être capable d'accorder votre guitare (si vous avez "
 "correctement calibré vos haut-parleurs)."
 
-#: C/guitar-tuner.js.page:229(p)
+#: C/guitar-tuner.js.page:230(p)
 msgid ""
 "To run this application open Terminal, go to the folder where your "
 "application is stored and then run"
@@ -9208,11 +15681,11 @@ msgstr ""
 "Pour lancer cette application, ouvrez Terminal, allez dans le dossier où "
 "votre application est enregistrée et lancez"
 
-#: C/guitar-tuner.js.page:229(input)
+#: C/guitar-tuner.js.page:230(input)
 msgid "GJS_PATH=`pwd` gjs guitarTuner.js"
 msgstr "GJS_PATH=`pwd` gjs guitarTuner.js"
 
-#: C/guitar-tuner.js.page:234(p)
+#: C/guitar-tuner.js.page:235(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>."
@@ -9230,7 +15703,7 @@ msgstr ""
 "accordeur de guitare simple pour GNOME. Explications sur la manière "
 "d'utiliser le concepteur d'interface."
 
-#: C/guitar-tuner.cpp.page:21(title) C/guitar-tuner.c.page:22(title)
+#: C/guitar-tuner.cpp.page:21(title) C/guitar-tuner.c.page:23(title)
 msgid "Guitar Tuner"
 msgstr "Accordeur de guitare"
 
@@ -9308,7 +15781,7 @@ msgstr ""
 "de GTKmm qui affiche l'interface utilisateur et commence à écouter les "
 "événements (comme des clics de souris ou des appuis sur des touches)."
 
-#: C/guitar-tuner.cpp.page:84(p) C/guitar-tuner.c.page:89(p)
+#: C/guitar-tuner.cpp.page:84(p) C/guitar-tuner.c.page:90(p)
 msgid ""
 "A description of the user interface (UI) is contained in the GtkBuilder "
 "file. To edit the user interface, open <file>src/guitar_tuner.ui</file>. "
@@ -9594,11 +16067,17 @@ msgstr ""
 "library.gnome.org/devel/gstreamermm/\">documentation de référence de "
 "gstreamermm</link>."
 
-#: C/guitar-tuner.c.page:34(p)
+#: C/guitar-tuner.c.page:7(title)
+#, fuzzy
+#| msgid "Guitar Tuner"
+msgid "Guitar Tuner (C)"
+msgstr "Accordeur de guitare"
+
+#: C/guitar-tuner.c.page:35(p)
 msgid "Basic knowledge of the C programming language"
 msgstr "des connaissances de base de la programmation en langage C"
 
-#: C/guitar-tuner.c.page:48(p)
+#: C/guitar-tuner.c.page:49(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 "
@@ -9609,7 +16088,7 @@ msgstr ""
 "suivantes. Utilisez <file>guitar-tuner</file> comme nom de projet et de "
 "répertoire."
 
-#: C/guitar-tuner.c.page:51(p)
+#: C/guitar-tuner.c.page:52(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 "
@@ -9619,7 +16098,7 @@ msgstr ""
 "sur <gui>I</gui>. Sur la page suivante, choisissez <em>gstreamer-0.10</em> "
 "dans la liste pour inclure la bibliothèque GStreamer à votre projet."
 
-#: C/guitar-tuner.c.page:65(p)
+#: C/guitar-tuner.c.page:66(p)
 msgid ""
 "C is a rather verbose language, so don't be surprised that the file contains "
 "quite a lot of code. Most of it is template code. It loads an (empty) window "
@@ -9632,7 +16111,7 @@ msgstr ""
 "l'interface et l'affiche. Vous trouverez plus de détails ci-dessous ; passez "
 "cette liste si vous comprenez les bases :"
 
-#: C/guitar-tuner.c.page:72(p)
+#: C/guitar-tuner.c.page:73(p)
 msgid ""
 "The <code>create_window</code> function creates a new window by opening a "
 "GtkBuilder file (<file>src/guitar-tuner.ui</file>, defined a few lines "
@@ -9647,7 +16126,7 @@ msgstr ""
 "utilisateur et de tous ses éléments. Vous pouvez utiliser l'éditeur d'Anjuta "
 "pour concevoir des interfaces utilisateur GtkBuilder."
 
-#: C/guitar-tuner.c.page:121(p)
+#: C/guitar-tuner.c.page:122(p)
 msgid ""
 "To do this, open <file>main.c</file> while the user interface file is still "
 "open. Switch to the <gui>Signals</gui> tab, which you already used to set "
@@ -9662,7 +16141,7 @@ msgstr ""
 "l'extérieur d'une fonction dans le fichier source. Le code suivant s'ajoute "
 "à votre fichier source :"
 
-#: C/guitar-tuner.c.page:129(p)
+#: 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</"
@@ -9681,7 +16160,7 @@ msgstr ""
 "transmettre un pointeur à une structure de données auxquelles vous pouvez "
 "avoir besoin d'accéder à l'intérieur du gestionnaire de signal)."
 
-#: C/guitar-tuner.c.page:147(p)
+#: 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:"
@@ -9689,7 +16168,7 @@ msgstr ""
 "Insérez la ligne suivante dans le fichier <file>main.c</file>, juste en "
 "dessous de la ligne <code><![CDATA[#include <gtk/gtk.h>]]></code> :"
 
-#: C/guitar-tuner.c.page:149(p)
+#: C/guitar-tuner.c.page:150(p)
 msgid ""
 "This includes the GStreamer library. You also need to add a line to "
 "initialize GStreamer; put the following code on the line above the "
@@ -9699,7 +16178,7 @@ msgstr ""
 "initialiser GStreamer ; mettez le code suivant dans la ligne au-dessus de "
 "<code>gtk_init</code> dans la fonction <code>main</code> :"
 
-#: C/guitar-tuner.c.page:151(p)
+#: C/guitar-tuner.c.page:152(p)
 msgid ""
 "Then, copy the following function into <file>main.c</file> above the empty "
 "<code>on_button_clicked</code> function:"
@@ -9707,7 +16186,7 @@ msgstr ""
 "Ensuite, copiez la fonction suivante dans le fichier <file>main.c</file> au-"
 "dessus de la fonction vide <code>on_button_clicked</code> :"
 
-#: C/guitar-tuner.c.page:178(p)
+#: C/guitar-tuner.c.page:179(p)
 msgid ""
 "The first five lines create source and sink GStreamer elements "
 "(<code>GstElement</code>), and a pipeline element (which will be used as a "
@@ -9724,7 +16203,7 @@ msgstr ""
 "connecteur <code>autoaudiosink</code> (qui est la sortie par défaut de la "
 "carte son)."
 
-#: C/guitar-tuner.c.page:181(p)
+#: C/guitar-tuner.c.page:182(p)
 msgid ""
 "The call to <code>g_object_set</code> sets the <code>freq</code> property of "
 "the source element to <code>frequency</code>, which is passed as an argument "
@@ -9737,7 +16216,7 @@ msgstr ""
 "de la note de musique en Hertz ; certaines fréquences utiles seront définies "
 "plus tard."
 
-#: C/guitar-tuner.c.page:184(p)
+#: C/guitar-tuner.c.page:185(p)
 msgid ""
 "<code>gst_bin_add_many</code> puts the source and sink into the pipeline. "
 "The pipeline is a <code>GstBin</code>, which is just an element that can "
@@ -9751,7 +16230,7 @@ msgstr ""
 "pouvez ajouter autant d'éléments que vous voulez au pipeline en ajoutant "
 "d'autres d'arguments à <code>gst_bin_add_many</code>."
 
-#: C/guitar-tuner.c.page:187(p)
+#: C/guitar-tuner.c.page:188(p)
 msgid ""
 "Next, <code>gst_element_link</code> is used to connect the elements "
 "together, so the output of <code>source</code> (a tone) goes into the input "
@@ -9767,7 +16246,7 @@ msgstr ""
 "basculant l'état du pipeline à « playing » (lecture) "
 "(<code>GST_STATE_PLAYING</code>)."
 
-#: C/guitar-tuner.c.page:195(p)
+#: C/guitar-tuner.c.page:196(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 "
@@ -9783,7 +16262,7 @@ msgstr ""
 "<code>pipeline_stop</code> et continuera à l'appeler jusqu'à ce que "
 "<code>pipeline_stop</code> renvoie la valeur <code>FALSE</code>."
 
-#: C/guitar-tuner.c.page:196(p)
+#: C/guitar-tuner.c.page:197(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 "
@@ -9793,7 +16272,7 @@ msgstr ""
 "par <code>g_timeout_add</code>. Insérez le code suivant <em>au-dessus</em> "
 "de la fonction <code>play_sound</code> :"
 
-#: C/guitar-tuner.c.page:208(p)
+#: C/guitar-tuner.c.page:209(p)
 msgid ""
 "The call to <code>gst_element_set_state</code> pauses the playback of the "
 "pipeline and <code>g_object_unref</code> unreferences the pipeline, "
@@ -9803,7 +16282,7 @@ msgstr ""
 "pipeline et <code>g_object_unref</code> déréférence le pipeline, le "
 "détruisant ainsi et effaçant sa mémoire."
 
-#: C/guitar-tuner.c.page:213(p)
+#: C/guitar-tuner.c.page:214(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 "
@@ -9814,7 +16293,7 @@ msgstr ""
 "cordes de la guitare qui sont définies (au début du fichier <file>main.c</"
 "file>) ainsi :"
 
-#: C/guitar-tuner.c.page:245(p)
+#: C/guitar-tuner.c.page:246(p)
 msgid ""
 "A pointer to the <code>GtkButton</code> that was clicked is passed as an "
 "argument (<code>button</code>) to <code>on_button_clicked</code>. We can get "
@@ -9827,7 +16306,7 @@ msgstr ""
 "<code>gtk_bin_get_child</code> puis en extrayant le texte de cette étiquette "
 "avec <code>gtk_label_get_label</code>."
 
-#: C/guitar-tuner.c.page:246(p)
+#: C/guitar-tuner.c.page:247(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 "
@@ -9839,7 +16318,7 @@ msgstr ""
 "avec la fréquence appropriée à cette note. Cela joue la note ; nous avons un "
 "accordeur de guitare opérationnel !"
 
-#: C/guitar-tuner.c.page:257(p)
+#: C/guitar-tuner.c.page:258(p)
 msgid ""
 "If you run into problems with the tutorial, compare your code with this "
 "<link href=\"guitar-tuner/guitar-tuner.c\">reference code</link>."
@@ -9848,74 +16327,181 @@ msgstr ""
 "programme à ce <link href=\"guitar-tuner/guitar-tuner.c\">programme de "
 "référence</link>."
 
-#: C/GtkApplicationWindow.vala.page:16(desc)
-#: C/GtkApplicationWindow.py.page:21(desc)
-#: C/GtkApplicationWindow.js.page:16(desc)
+#: C/GtkApplicationWindow.vala.page:7(title)
+#, fuzzy
+#| msgid "ApplicationWindow"
+msgid "ApplicationWindow (Vala)"
+msgstr "ApplicationWindow"
+
+#: 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 "Sous-classe GtkWindow avec la prise en charge de GtkApplication"
 
-#: C/GtkApplicationWindow.vala.page:19(title)
-#: C/GtkApplicationWindow.py.page:24(title)
-#: C/GtkApplicationWindow.js.page:19(title)
-#: C/GtkApplicationWindow.c.page:19(title)
+#: 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:21(p) C/GtkApplicationWindow.py.page:26(p)
+#: C/GtkApplicationWindow.vala.page:22(p) C/GtkApplicationWindow.py.page:27(p)
 msgid "The simplest GtkApplication Window which can support Menus."
 msgstr "L'application Gtk la plus simple qui prend en charge les menus."
 
-#: C/GtkApplicationWindow.py.page:37(title)
+#: C/GtkApplicationWindow.py.page:7(title)
 #, fuzzy
-#| msgid "Gtk.ApplicationWindow"
+#| msgid "ApplicationWindow"
+msgid "ApplicationWindow (Python)"
+msgstr "ApplicationWindow"
+
+#: C/GtkApplicationWindow.py.page:38(title)
 msgid "Useful methods for a Gtk.ApplicationWindow widget"
-msgstr "Gtk.ApplicationWindow"
+msgstr "Méthodes utiles pour un élément graphique Gtk.ApplicationWindow"
 
-#: C/GtkApplicationWindow.py.page:38(p)
-msgid ""
-"These be used in the class MyWindow with or in the function do_activate()."
-msgstr ""
+#: C/GtkApplicationWindow.js.page:7(title)
+#, fuzzy
+#| msgid "ApplicationWindow"
+msgid "ApplicationWindow (JavaScript)"
+msgstr "ApplicationWindow"
 
-#: C/GtkApplicationWindow.js.page:21(p)
+#: C/GtkApplicationWindow.js.page:22(p)
 msgid "A simple GtkApplicationWindow which can support Menus."
 msgstr "Une simple GtkApplicationWindow qui prend en charge les menus."
 
-#: C/GtkApplicationWindow.c.page:16(desc)
+#: C/GtkApplicationWindow.c.page:7(title)
+#, fuzzy
+#| msgid "ApplicationWindow"
+msgid "ApplicationWindow (C)"
+msgstr "ApplicationWindow"
+
+#: C/GtkApplicationWindow.c.page:17(desc)
 msgid "A toplevel window which can contain other widgets, and support GMenu"
 msgstr ""
 "Une fenêtre de niveau supérieur qui peut contenir d'autres éléments "
 "graphiques et prend en charge GMenu."
 
-#: C/GtkApplicationWindow.c.page:21(p)
+#: C/GtkApplicationWindow.c.page:22(p)
 msgid "A minimal GtkApplication with a GtkApplicationWindow"
 msgstr "Une application Gtk minimale avec une GtkApplicationWindow"
 
 #. When image changes, this message 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:22(None) C/grid.py.page:22(None) C/grid.js.page:24(None)
-#: C/grid.c.page:21(None)
+#: 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:18(desc) C/grid.py.page:17(desc) C/grid.js.page:20(desc)
-#: C/grid.c.page:16(desc)
+#: C/grid.vala.page:7(title)
+msgid "Grid (Vala)"
+msgstr ""
+
+#: 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 "Ranger les éléments graphiques en lignes et colonnes"
 
-#: C/grid.vala.page:21(title) C/grid.py.page:20(title)
-#: C/grid.js.page:23(title)
+#: C/grid.vala.page:22(title)
 msgid "Grid widget"
-msgstr "Élément graphique Grid"
+msgstr "Élément graphique Grille"
 
-#: C/grid.vala.page:23(p) C/grid.py.page:23(p) C/grid.c.page:22(p)
+#: C/grid.vala.page:24(p) C/grid.c.page:23(p)
 msgid "A button widget connected to a progress bar."
 msgstr "Un élément graphique bouton connecté à une barre de progression."
 
-#: C/grid.vala.page:30(link) C/grid.py.page:33(link) C/grid.js.page:35(link)
-msgid "Gtk.Grid"
-msgstr "Gtk.Grid"
+#. When image changes, this message 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.js.page:25(p)
+#: C/grid.py.page:7(title)
+#, fuzzy
+#| msgid "Python"
+msgid "Grid (Python)"
+msgstr "Python"
+
+#: C/grid.py.page:30(p)
+msgid "Some labels in a grid."
+msgstr "Quelques étiquettes dans une grille."
+
+#: C/grid.py.page:40(title)
+msgid "Useful methods for a Grid widget"
+msgstr "Méthodes utiles pour un élément graphique Grille"
+
+#: C/grid.py.page:43(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 ""
+"Pour joindre un élément graphique <code>enfant</code> à l'emplacement "
+"<code>gauche, superieur</code> dans un créneaux de taille <code>largeur, "
+"hauteur</code> donné, utilisez la méthode <code>attach(enfant, superieur, "
+"gauche, largeur, hauteur)</code>. S'il y a déjà un élément graphique "
+"<code>sibling</code> à cette place, utilisez la fonction <code>attach_next_to"
+"(enfant, sibling, side, largeur, hauteur)</code>, où <code>side</code> est "
+"l'une des positions <code>Gtk.PositionType.LEFT, Gtk.PositionType.RIGHT, Gtk."
+"PositionType.TOP, Gtk.PositionType.BOTTOM</code>."
+
+#: C/grid.py.page:44(p)
+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 ""
+"Les méthodes <code>insert_row(position)</code> et <code>insert_column"
+"(position)</code> font littéralement ce qu'elles indiquent ; les enfants "
+"liés à ou au-dessous de cette position sont descendus une ligne plus bas et "
+"les enfants qui s'étendent sur cette position sont agrandis pour s'étendre "
+"sur la nouvelle ligne. La fonction <code>insert_next_to(sibling, side)</"
+"code> insère une ligne ou une colonne à la position spécifiée. La nouvelle "
+"ligne ou nouvelle colonne est placée à côté de <code>sibling</code>, du côté "
+"défini par <code>side</code> ; si side est défini à <code>Gtk.PositionType."
+"TOP</code> ou à <code>Gtk.PositionType.BOTTOM</code>, une ligne est "
+"insérée ; si side est défini à <code>Gtk.PositionType.LEFT</code> ou à "
+"<code>Gtk.PositionType.RIGHT</code>, une colonne est insérée."
+
+#: C/grid.py.page:45(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 ""
+"Les méthodes <code>set_row_homogeneous(True)</code> et "
+"<code>set_column_homogeneous(True)</code> vérifient que chaque ligne ou "
+"chaque colonne a la même largeur ou la même hauteur."
+
+#: C/grid.py.page:46(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 ""
+"Les méthodes <code>set_row_spacing(espace)</code> et <code>set_column_spacing"
+"(espace)</code> forcent un espace entre (respectivement) les lignes ou les "
+"colonnes. La valeur de <code>espace</code> peut être comprise entre <code>0</"
+"code>, qui est la valeur par défaut et <code>32767</code>"
+
+#: C/grid.js.page:7(title)
+#, fuzzy
+#| msgid "JavaScript"
+msgid "Grid (JavaScript)"
+msgstr "JavaScript"
+
+#: C/grid.js.page:26(p)
 msgid ""
 "A button widget connected to a progress bar, inside of a grid which handles "
 "the layout."
@@ -9923,41 +16509,45 @@ msgstr ""
 "Un élément graphique bouton connecté à une barre de progression, à "
 "l'intérieur d'une grille qui gère l'agencement."
 
-#: C/grid.c.page:19(title)
+#: C/grid.c.page:7(title)
 #, fuzzy
-#| msgid "Grid widget"
-msgid "Grid Widget"
-msgstr "Élément graphique Grid"
+#| msgid "Grid"
+msgid "Grid (C)"
+msgstr "Grille"
 
-#: C/grid.c.page:33(link) C/button.c.page:32(link)
+#: 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:25(None)
+#: 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:11(name) C/aboutdialog.vala.page:13(name)
+#: C/gmenu.vala.page:7(title)
+msgid "GMenu (Vala)"
+msgstr ""
+
+#: C/gmenu.vala.page:13(name) C/aboutdialog.vala.page:14(name)
 msgid "Ryan Lortie"
 msgstr "Ryan Lortie"
 
-#: C/gmenu.vala.page:12(email) C/aboutdialog.vala.page:14(email)
+#: C/gmenu.vala.page:14(email) C/aboutdialog.vala.page:15(email)
 msgid "desrt desrt ca"
 msgstr "desrt desrt ca"
 
-#: C/gmenu.vala.page:21(desc) C/gmenu.py.page:16(desc)
-#: C/gmenu.js.page:16(desc) C/gmenu.c.page:16(desc)
+#: 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 "Une implémentation simple de GMenuModel"
 
-#: C/gmenu.vala.page:27(em)
+#: C/gmenu.vala.page:29(em)
 msgid "You need to be running Gtk+-3.4 or later for this to work"
 msgstr ""
 "Pour que cela fonctionne, il vous faut avoir installé Gtk+-3.4 ou supérieur"
 
-#: C/gmenu.vala.page:30(p)
+#: C/gmenu.vala.page:32(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</"
@@ -9968,50 +16558,263 @@ msgstr ""
 "#674090</link> ne sera pas résolu. En conséquence, la ligne posant problème "
 "a été mise en commentaire."
 
-#: C/gmenu.vala.page:32(p) C/gmenu.py.page:21(p) C/gmenu.js.page:21(p)
-#: C/gmenu.c.page:21(p)
+#: 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 "Une application Gtk avec un GMenu de base et SimpleActions"
+msgstr "Une application Gtk avec un GMenu de base et des SimpleActions"
 
-#: C/gmenu.vala.page:41(link)
+#: C/gmenu.vala.page:43(link)
 msgid "Menu"
 msgstr "Menu"
 
-#: C/gmenu.vala.page:42(link)
+#: C/gmenu.vala.page:44(link)
 msgid "append"
 msgstr "append"
 
-#: C/gmenu.vala.page:43(link)
+#: C/gmenu.vala.page:45(link)
 msgid "SimpleAction"
 msgstr "SimpleAction"
 
-#: C/gmenu.vala.page:44(link)
+#: 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:20(None)
+#: 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:22(em) C/gmenu.c.page:22(em) C/aboutdialog.vala.page:30(em)
+#: C/gmenu.py.page:7(title)
+#, fuzzy
+#| msgid "Python"
+msgid "GMenu (Python)"
+msgstr "Python"
+
+#: C/gmenu.py.page:23(desc)
+msgid "A simple implementation of GMenu"
+msgstr "Une implémentation simple de GMenu"
+
+#: 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 ""
 "Pour que cela fonctionne, il vous faut avoir installé Gtk3.4 ou supérieur"
 
+#: C/gmenu.py.page:40(title)
+msgid "Useful methods for a GSimpleAction and a GMenu"
+msgstr "Méthodes utiles pour GSimpleAction et GMenu"
+
+#: C/gmenu.py.page:42(p)
+msgid "Useful methods for a GSimpleAction:"
+msgstr "Méthodes utiles pour GSimpleAction :"
+
+#: C/gmenu.py.page:44(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 ""
+"Pour créer une nouvelle action qui est <em>stateless</em>, c-à-d. une action "
+"qui ne retient ni ne dépend d'un état définit par l'action elle-même, "
+"utilisez"
+
+#: C/gmenu.py.page:45(code)
+#, no-wrap
+msgid ""
+"\n"
+"action = Gio.SimpleAction.new(\"name\", parameter_type)"
+msgstr ""
+"\n"
+"action = Gio.SimpleAction.new(« nom », parameter_type)"
+
+#: C/gmenu.py.page:47(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 ""
+"où <code>« nom »</code> est le nom de l'action et <code>parameter_type</"
+"code> est le type de paramètre que l'action reçoit quand elle est activée. "
+"Ce peut être <code>None</code>, ou <code>GLib.VariantType.new('s')</code> si "
+"le paramètre est du type <code>str</code>, ou au lieu de <code>'s'</code>, "
+"un caractère tel que décrit <link href=\"http://developer.gnome.org/glib/";
+"unstable/glib-GVariantType.html\">ici</link>."
+
+#: C/gmenu.py.page:48(code)
+#, no-wrap
+msgid ""
+"\n"
+"action = Gio.SimpleAction.new_stateful(\"name\", parameter_type, initial_state)"
+msgstr ""
+"\n"
+"action = Gio.SimpleAction.new_stateful(« nom », parameter_type, initial_state)"
+
+#: C/gmenu.py.page:50(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 ""
+"où <code>initial_state</code> est défini comme étant une GVariant - par "
+"exemple <code>Glib.Variant.new_string('start')</code> ; voyez <link href="
+"\"http://developer.gnome.org/glib/unstable/glib-GVariant.html\";>ici</link> "
+"pour accéder à une liste des possibilités."
+
+#: C/gmenu.py.page:51(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 ""
+"La méthode <code>set_enabled(True)</code> définit l'action à enabled ; une "
+"action doit être en position enabled pour pouvoir être activée ou pour voir "
+"son état modifié par des appels extérieurs. La fonction ne peut être appelée "
+"que par l'implémenteur de l'action. Les utilisateurs de l'action ne doivent "
+"pas tenter de modifier son drapeau enabled."
+
+#: C/gmenu.py.page:52(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 ""
+"La fonction <code>set_state(state)</code>, où <code>state</code> est une "
+"GVariant, définit l'état de l'action en mettant à jour la propriété "
+"« state » à la valeur donnée. Elle ne peut être appelée que par "
+"l'implémenteur de l'action ; par contre, les utilisateurs peuvent appeler "
+"<code>change_state(state)</code> (où <code>state</code> est une GVariant) "
+"pour demander le changement d'état."
+
+#: C/gmenu.py.page:55(p)
+msgid "Useful methods for a GMenu:"
+msgstr "Méthodes utiles pour un GMenu :"
+
+#: C/gmenu.py.page:57(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 ""
+"Pour insérer un élément dans le menu à la <code>position</code>, utilisez la "
+"méthode <code>insert(position, label, detailed_action)</code>, où "
+"<code>label</code> est l'étiquette qui s'affiche dans le menu et "
+"<code>detailed_action</code> est une chaîne de caractères composée du nom de "
+"l'action à laquelle vous ajoutez le préfixe <code>app.</code>. Pour de plus "
+"amples détails, consultez <link xref=\"menubar.py#win-app\"/>."
+
+#: C/gmenu.py.page:58(p)
+msgid ""
+"To append or prepend an item in the menu use respectively <code>append"
+"(label, detailed_action)</code> and <code>prepend(label, detailed_action)</"
+"code>."
+msgstr ""
+"Pour joindre ou ajouter un élément dans le menu, utilisez respectivement les "
+"méthodes <code>append(label, detailed_action)</code> et <code>prepend(label, "
+"detailed_action)</code>."
+
+#: C/gmenu.py.page:59(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 ""
+"Une autre méthode pour ajouter des éléments au menu est de les créer comme "
+"des éléments <code>GMenuItem</code> et d'utiliser l'une des fonctions "
+"<code>insert_item(position, item)</code>, <code>append_item(item)</code>, ou "
+"<code>prepend_item(item)</code> ; par exemple :"
+
+#: C/gmenu.py.page:60(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(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 ""
+"Nous pouvons aussi ajouter une sous-section entière dans un menu avec "
+"<code>insert_section(position, label, section)</code>, <code>append_section"
+"(label, section)</code>, ou <code>prepend_section(label, section)</code>, où "
+"<code>label</code> est le titre de la sous-section."
+
+#: C/gmenu.py.page:65(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 ""
+"Pour ajouter un sous-menu qui va s'étendre et se contracter, utilisez l'une "
+"des méthodes <code>insert_submenu(position, label, section)</code>, "
+"<code>append_submenu(label, section)</code>, ou bien <code>prepend_submenu"
+"(label, section)</code>, où <code>label</code> est le titre du sous-menu."
+
+#: C/gmenu.py.page:66(p)
+#, fuzzy
+msgid "To remove an item from the menu, use <code>remove(postion)</code>."
+msgstr ""
+"Pour supprimer un élément du menu, utilisez la fonction <code>remove"
+"(position)</code>."
+
+#: C/gmenu.py.page:67(p)
+msgid "To set a label for the menu, use <code>set_label(label)</code>."
+msgstr ""
+"Pour définir une étiquette pour le menu, utilisez la méthode <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:20(None)
+#: 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)
+#, fuzzy
+#| msgid "JavaScript"
+msgid "GMenu (JavaScript)"
+msgstr "JavaScript"
+
 #. When image changes, this message will be marked fuzzy or untranslated for you.
 #. It doesn't matter what you translate it to: it's not used at all.
-#: C/gmenu.c.page:20(None)
+#: 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)
+#, fuzzy
+#| msgid "GMenu"
+msgid "GMenu (C)"
+msgstr "GMenu"
+
 #. When image changes, this message 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)
@@ -10133,49 +16936,574 @@ 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/entry.vala.page:20(None) C/entry.py.page:20(None)
-#: C/entry.js.page:20(None) C/entry.c.page:21(None)
+#: C/fontchooserwidget.py.page:23(None)
+msgid ""
+"@@image: 'media/fontchooserwidget.png'; md5=9161245e307b432ae1313e9a9941edae"
+msgstr ""
+"@@image: 'media/fontchooserwidget.png'; md5=9161245e307b432ae1313e9a9941edae"
+
+#: C/fontchooserwidget.py.page:7(title)
+#, fuzzy
+#| msgid "FontChooserWidget"
+msgid "FontChooserWidget (Python)"
+msgstr "Élément graphique GtkFontChooser"
+
+#: C/fontchooserwidget.py.page:18(desc)
+msgid "A widget to choose a font"
+msgstr "Un élément graphique pour choisir une police"
+
+#: C/fontchooserwidget.py.page:21(title)
+msgid "FontChooserWidget"
+msgstr "Élément graphique GtkFontChooser"
+
+#: C/fontchooserwidget.py.page:24(p)
+msgid "A FontChooserWidget with a callback function."
+msgstr "Un élément graphique GtkFontChooser avec une fonction de rappel."
+
+#: C/fontchooserwidget.py.page:33(title)
+msgid "Useful methods for a FontChooserWidget"
+msgstr "Méthodes utiles pour un élément graphique GtkFontChooser"
+
+#: C/fontchooserwidget.py.page:36(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 ""
+"Pour définir la police initiallement sélectionnée, utilisez la méthode "
+"<code>set_font(font)</code> (où <code>font</code> est le nom de la police), "
+"ou <code>set_font_desc(font)</code> (où <code>font</code> est la "
+"PangoFontDescription)."
+
+#: C/fontchooserwidget.py.page:37(p)
+msgid ""
+"To get the selected font use <code>get_font()</code> or <code>get_font_desc()"
+"</code>."
+msgstr ""
+"Pour obtenir la police sélectionnée, utilisez l'une des deux méthodes "
+"<code>get_font()</code> ou <code>get_font_desc()"
+
+#: C/fontchooserwidget.py.page:38(p)
+msgid ""
+"To change the text which is shown in the preview area, use "
+"<code>set_preview_text()</code>."
+msgstr ""
+"Pour modifier le texte affiché dans la position précédente, utilisez la "
+"méthode <code>set_preview_text()</code>."
+
+#: C/fontchooserwidget.py.page:45(link)
+msgid "GtkFontChooserWidget"
+msgstr "Élément graphique GtkFontChooser"
+
+#: C/filechooserdialog.vala.page:7(title)
+#, fuzzy
+#| msgid "FileChooserDialog"
+msgid "FileChooserDialog (Vala)"
+msgstr "Boîte de dialogue FileChooser"
+
+#: C/filechooserdialog.vala.page:20(desc)
+msgid "A dialog suitable for \"Open\" and \"Save\" commands."
+msgstr "Une boîte de dialogue qui convient aux commandes « open » et « save »."
+
+#: C/filechooserdialog.vala.page:23(title)
+#: C/filechooserdialog.vala.page:40(link)
+#: C/filechooserdialog.py.page:23(title)
+msgid "FileChooserDialog"
+msgstr "Boîte de dialogue FileChooser"
+
+#: C/filechooserdialog.vala.page:25(title)
+msgid "Overview of the example"
+msgstr "Vue d'ensemble de l'exemple"
+
+#: C/filechooserdialog.vala.page:26(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 ""
+"Cet exemple montre l'utilisation d'une boîte de dialogue FileChooser. Elle "
+"est intégrée dans une application éditeur de texte très simple. Toutes les "
+"<link xref=\"menubar.vala#win-app\">actions</link>, y compris les commandes "
+"« open », « save » et « save-as » sont disponibles dans <link xref=\"gmenu."
+"vala\">app-menu</link>. Ici, nous créons l'app-menu avec un fichier "
+"interface utilisateur en XML, qui est ensuite importé dans l'application "
+"avec Gtk.Builder."
+
+#: C/filechooserdialog.vala.page:28(title)
+msgid "XML UI file which creates the app-menu"
+msgstr "Fichier XML interface utilisateur créant l'app-menu"
+
+#: C/filechooserdialog.vala.page:31(title)
+msgid "Vala Code"
+msgstr "Code Vala"
+
+#: C/filechooserdialog.vala.page:39(link)
+msgid "FileChooser"
+msgstr "FileChooser"
+
+#: C/filechooserdialog.vala.page:42(link)
+msgid "GLib.ActionEntry"
+msgstr "GLib.ActionEntry"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/filechooserdialog.py.page:24(None)
+#, fuzzy
+#| msgid "@@image: 'media/image.png'; md5=9416aa74d9d6a857783f7a36338e7a02"
+msgid ""
+"@@image: 'media/filechooserdialog_save.png'; "
+"md5=3a7a3b71b9d3a36066857843b68ff27f"
+msgstr "@@image: 'media/image.png'; md5=9416aa74d9d6a857783f7a36338e7a02"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/filechooserdialog.py.page:26(None)
+#, fuzzy
+#| msgid ""
+#| "@@image: 'media/fontchooserwidget.png'; "
+#| "md5=9161245e307b432ae1313e9a9941edae"
+msgid ""
+"@@image: 'media/filechooserdialog_menu.png'; "
+"md5=8a75f04127a70eba0ed68a9eb1d3bbca"
+msgstr ""
+"@@image: 'media/fontchooserwidget.png'; md5=9161245e307b432ae1313e9a9941edae"
+
+#: C/filechooserdialog.py.page:7(title)
+#, fuzzy
+#| msgid "FileChooserDialog"
+msgid "FileChooserDialog (Python)"
+msgstr "Boîte de dialogue FileChooser"
+
+#: C/filechooserdialog.py.page:20(desc)
+#, fuzzy
+#| msgid "A dialog suitable for \"Open\" and \"Save\" commands."
+msgid "A dialog suitable for \"Open\" and \"Save\" commands"
+msgstr "Une boîte de dialogue qui convient aux commandes « open » et « save »."
+
+#: C/filechooserdialog.py.page:25(p)
+msgid ""
+"This FileChooserDialog saves a text document, which can be opened or written "
+"from scratch in a TextView (see below)."
+msgstr ""
+
+#: C/filechooserdialog.py.page:27(p)
+msgid "It is also possible to call a FileChooserDialog to open a new document."
+msgstr ""
+
+#: C/filechooserdialog.py.page:32(title)
+#, fuzzy
+#| msgid "Code used to generate this example"
+msgid "Steps to recreate the example"
+msgstr "Code utilisé pour générer cet exemple"
+
+#: C/filechooserdialog.py.page:34(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 ""
+
+#: C/filechooserdialog.py.page:35(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 ""
+
+#: C/filechooserdialog.py.page:36(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 ""
+
+#: C/filechooserdialog.py.page:37(p)
+msgid ""
+"\"New\" and \"Quit\" actions and callback functions are quite "
+"straightforward, see <link xref=\"#code\"/>."
+msgstr ""
+
+#: C/filechooserdialog.py.page:38(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 ""
+
+#: C/filechooserdialog.py.page:39(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 ""
+
+#: C/filechooserdialog.py.page:40(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 ""
+
+#: C/filechooserdialog.py.page:41(p)
+msgid ""
+"Finally, the method <code>save_to_file()</code>: see <link xref=\"#code\"/>, "
+"lines 146 - 175."
+msgstr ""
+
+#: C/filechooserdialog.py.page:46(title)
+#, fuzzy
+#| msgid "XML UI file which creates the app-menu"
+msgid "XML file which creates the app-menu"
+msgstr "Fichier XML interface utilisateur créant l'app-menu"
+
+#: C/filechooserdialog.py.page:56(title)
+#, fuzzy
+#| msgid "Useful methods for a FontChooserWidget"
+msgid "Useful methods for a FileChooserDialog"
+msgstr "Méthodes utiles pour un élément graphique GtkFontChooser"
+
+#: C/filechooserdialog.py.page:57(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 ""
+
+#: C/filechooserdialog.py.page:58(p)
+msgid "Besides the methods used in the <link xref=\"#code\"/>, we have:"
+msgstr ""
+
+#: C/filechooserdialog.py.page:60(p)
+msgid ""
+"<code>set_show_hidden(True)</code> is used to display hidden files and "
+"folders."
+msgstr ""
+
+#: C/filechooserdialog.py.page:61(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 ""
+
+#: C/filechooserdialog.py.page:62(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 ""
+
+#: C/filechooserdialog.py.page:63(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 ""
+
+#: C/filechooserdialog.py.page:71(link)
+#, fuzzy
+#| msgid "FileChooserDialog"
+msgid "GtkFileChooserDialog"
+msgstr "Boîte de dialogue FileChooser"
+
+#: C/filechooserdialog.py.page:72(link)
+#, fuzzy
+#| msgid "FileChooser"
+msgid "GtkFileChooser"
+msgstr "FileChooser"
+
+#: C/filechooserdialog.py.page:77(link)
+msgid "GFile"
+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/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:16(desc) C/entry.py.page:16(desc) C/entry.c.page:16(desc)
+#: C/entry.vala.page:7(title)
+msgid "Entry (Vala)"
+msgstr ""
+
+#: 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 "Un champ de saisie de texte sur une ligne"
 
-#: C/entry.vala.page:19(title) C/entry.py.page:19(title)
-#: C/entry.js.page:19(title) C/entry.c.page:19(title)
+#: 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 "Saisie"
+msgstr "Entrée"
 
-#: C/entry.vala.page:21(p) C/entry.c.page:22(p)
+#: C/entry.vala.page:22(p) C/entry.c.page:23(p)
 msgid "This application greets you in the terminal."
 msgstr "Cette application vous accueille dans le terminal."
 
-#: C/entry.vala.page:28(link) C/entry.js.page:30(link)
+#: C/entry.vala.page:29(link) C/entry.js.page:31(link)
 msgid "Gtk.Entry"
 msgstr "Gtk.Entry"
 
-#: C/entry.py.page:21(p)
+#: C/entry.py.page:7(title)
+#, fuzzy
+#| msgid "Python"
+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 ""
 "Cette application vous accueille dans le terminal avec le nom que vous "
 "fournissez."
 
-#: C/entry.py.page:28(link) C/entry.c.page:32(link)
+#: C/entry.py.page:37(title)
+msgid "Useful methods for an Entry widget"
+msgstr "Méthodes utiles pour un élément graphique Entrée"
+
+#: C/entry.py.page:38(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 ""
+"Pour de plus amples informations sur les signaux et les fonctions de rappel, "
+"consultez <link xref=\"signals-callbacks.py\">cette page</link>. Voici "
+"quelques uns des signaux qu'un élément graphique Gtk.Entry peut émettre : "
+"<code>\"activate\"</code> (émis quand l'utilisateur appuie sur la touche "
+"Entrée) ; <code>\"backspace\"</code> (émis quand l'utilisateur appuie soit "
+"sur la touche Retour arrière, soit sur la combinaison de touches Maj+Retour "
+"arrière) ; <code>\"copy-clipboard\"</code> (Ctrl+c et Ctrl+Inser) ; <code>"
+"\"paste-clipboard\"</code> (Ctrl+v et Ctrl+Inser) ; <code>\"delete-from-"
+"cursor\"</code> (Suppr pour supprimer un caractère et Ctrl+Suppr pour "
+"supprimer un mot) ; <code>\"icon-press\"</code> (émis quand l'utilisateur "
+"clique sur une icône activable) ; <code>\"icon-release\"</code> (émis lors "
+"du relâchement du bouton après un clic de souris sur une icône activable) ; "
+"<code>\"insert-at-cursor\"</code> (émis quand l'utilisateur commence "
+"l'insertion du premier caractère d'une chaîne à l'emplacement du curseur) ; "
+"<code>\"move-cursor\"</code> (émis quand l'utilisateur commence à déplacer "
+"le curseur) ; <code>\"populate-popup \"</code> (émis avant d'afficher le "
+"menu contextuel de l'entrée ; il peut servir à y ajouter des éléments)."
+
+#: C/entry.py.page:40(p)
+msgid ""
+"<code>get_buffer()</code> and <code>set_buffer(buffer)</code>, where "
+"<code>buffer</code> is a Gtk.EntryBuffer object, can be used to get and set "
+"the buffer for the entry."
+msgstr ""
+"Les méthodes <code>get_buffer()</code> et <code>set_buffer(tampon)</code>, "
+"où <code>tampon</code> est un objet Gtk.EntryBuffer, peuvent être utilisées "
+"pour obtenir et définir le tampon de l'entrée."
+
+#: C/entry.py.page:41(p)
+msgid ""
+"<code>get_text()</code> and <code>set_text(\"some text\")</code> can be used "
+"to get and set the content for the entry."
+msgstr ""
+"Les fonctions <code>get_text()</code> et <code>set_text(\"some text\")</"
+"code> peuvent être utilisées pour obtenir et définir le contenu de l'entrée."
+
+#: C/entry.py.page:42(p)
+msgid "<code>get_text_length()</code> is self-explanatory."
+msgstr "La méthode <code>get_text_length()</code> parle d'elle-même."
+
+#: C/entry.py.page:43(p)
+msgid ""
+"<code>get_text_area()</code> gets the area where the entry's text is drawn."
+msgstr ""
+"La méthode <code>get_text_area()</code> obtient la position où le texte de "
+"l'entrée est dessiné."
+
+#: C/entry.py.page:44(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 ""
+"Si nous définissons la méthode <code>set_visibility(False)</code>, les "
+"caractères de l'entrée sont affichés en tant que caractères invisibles. "
+"C'est la meilleur police disponible dans le type actuel, mais peut être "
+"modifié à l'aide de <code>set_invisible_char(ch)</code>, où <code>ch</code> "
+"est un caractère Unicode. Nous pouvons inverser cette denière fonction avec "
+"<code>unset_invisible_char()</code>."
+
+#: C/entry.py.page:45(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 ""
+"La méthode <code>set_max_length(int)</code>, où <code>int</code> est un "
+"nombre entier, coupe chaque entrée plus longue que <code>int</code> afin "
+"d'obtenir la longueur maximum désirée."
+
+#: C/entry.py.page:46(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 ""
+"Par défaut, si vous appuyez sur la touche Entrée, Gtk.Entry émet le signal "
+"<code>\"activate\"</code>. Si vous préférez activer l'élément graphique par "
+"défaut de la fenêtre (défini par la méthode <code>set_default(widget)</code> "
+"pour la fenêtre), utilisez alors <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>."
+msgstr ""
+"Pour définir un cadre autour de l'entrée, utilisez la méthode "
+"<code>set_has_frame(True)</code>."
+
+#: C/entry.py.page:48(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 ""
+"La méthode <code>set_placeholder_text(« texte »)</code> définit le texte "
+"pour qu'il s'affiche dans l'entrée quand il est vide et inactif."
+
+#: C/entry.py.page:49(p)
+msgid ""
+"<code>set_overwrite_mode(True)</code> and <code>set_overwrite_mode(False)</"
+"code> are self-explanatory."
+msgstr ""
+"Les méthodes <code>set_overwrite_mode(True)</code> et "
+"<code>set_overwrite_mode(False)</code> parlent d'elles-mêmes."
+
+#: 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 ""
+"La méthode <code>set_editable(False)</code> n'autorise pas l'utilisateur à "
+"modifier le texte dans l'élément graphique."
+
+#: C/entry.py.page:51(p)
+#, fuzzy
+#| msgid ""
+#| "<code>set_completion(completion)</code>, where <code>completion</code> is "
+#| "a <link href=\"http://developer.gnome.org/gtk3/3.4/GtkEntryCompletion.html";
+#| "\"><code>Gtk.EntryCompletion</code></link>, sets completion - or disables "
+#| "it if <code>completion</code> is <code>None</code>."
+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 ""
+"La méthode <code>set_completion(completion)</code>, où <code>completion</"
+"code> est une <link href=\"http://developer.gnome.org/gtk3/3.4/";
+"GtkEntryCompletion.html\"><code>Gtk.EntryCompletion</code></link>, active la "
+"complétion - ou la désactive si <code>completion</code> est <code>None</"
+"code>."
+
+#: C/entry.py.page:52(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 ""
+"Un élément graphique Entry peut afficher la progression ou les informations "
+"d'activité derrière le texte. La méthode <code>set_progress_fraction"
+"(fraction)</code>, où <code>fraction</code> est un nombre flottant "
+"<code>float</code> compris entre <code>0.0</code> et <code>1.0</code> "
+"inclus, sert à remplir la fraction définie de la barre de progression. La "
+"méthode <code>set_progress_pulse_step()</code> définit la fraction de la "
+"largeur totale de l'entrée qui va se remplir d'un bloc à chaque appel à "
+"<code>progress_pulse()</code>. Cette dernière fonction indique qu'une "
+"progression est en cours et passe l'indicateur de progression sur \"activity "
+"mode\", ce qui fait avancer ou reculer un bloc. Chaque appel à "
+"<code>progress_pulse()</code> fait un petit peu bouger le bloc (l'amplitude "
+"du mouvement par pulsation est définie par <code>set_progress_pulse_step()</"
+"code>), comme expliqué précédemment."
+
+#: C/entry.py.page:53(p)
+msgid ""
+"An Entry widget can also show icons. These icons can be activatable by "
+"clicking, can be set up as drag source and can have tooltips. To add an "
+"icon, use <code>set_icon_from_stock(icon_position, stock_id)</code>, or one "
+"of <code>set_icon_from_pixbuf(icon_position, pixbuf)</code>, "
+"<code>set_icon_from_icon_name(icon_position, icon_name)</code>, where "
+"<code>icon_position</code> is one of <code>Gtk.EntryIconPosition.PRIMARY</"
+"code> (to set the icon at the beginning of the entry) <code>Gtk."
+"EntryIconPosition.SECONDARY</code> (to set the icon at the end of the "
+"entry). To set a tooltip on an icon, use <code>set_icon_tooltip_text"
+"(\"tooltip text\")</code> or <code>set_icon_tooltip_markup(\"tooltip text in "
+"Pango markup language\")</code>."
+msgstr ""
+"Un élément graphique Entry peut aussi afficher des icônes. Ces icônes sont "
+"activables d'un clic de souris, ou peuvent être définies comme étant la "
+"source d'un élément glissable et comporter des infobulles. Pour ajouter une "
+"icône de la collection, utilisez la méthode <code>set_icon_from_stock"
+"(icon_position, stock_id)</code>, ou bien l'une des méthodes suivantes : "
+"<code>set_icon_from_pixbuf(icon_position, pixbuf)</code> ; "
+"<code>set_icon_from_icon_name(icon_position, icon_name)</code>, où "
+"<code>icon_position</code> est l'une des deux positions <code>Gtk."
+"EntryIconPosition.PRIMARY</code> (pour positionner l'icône au début de "
+"l'entrée) ou <code>Gtk.EntryIconPosition.SECONDARY</code> (pour positionner "
+"l'icône à la fin de l'entrée). Pour ajouter une infobulle à une icône, "
+"utiliser l'une des deux fonctions <code>set_icon_tooltip_text(\"tooltip text"
+"\")</code> ou <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:16(desc)
+#: C/entry.js.page:7(title)
 #, fuzzy
-#| msgid "A single line text entry field"
+#| msgid "JavaScript"
+msgid "Entry (JavaScript)"
+msgstr "JavaScript"
+
+#: C/entry.js.page:17(desc)
 msgid "A single-line text entry field"
 msgstr "Un champ de saisie de texte sur une ligne"
 
-#: C/entry.js.page:21(p)
-#, fuzzy
-#| msgid "This application greets you in the terminal."
+#: C/entry.js.page:22(p)
 msgid "This application greets you by name through a pop-up window."
-msgstr "Cette application vous accueille dans le terminal."
+msgstr ""
+"Cette application vous accueille par votre nom dans une fenêtre surgissante."
+
+#: C/entry.c.page:7(title)
+#, fuzzy
+#| msgid "Entry"
+msgid "Entry (C)"
+msgstr "Entrée"
 
 #: C/documentation.page:19(title)
 msgid "Help develop"
@@ -10209,69 +17537,92 @@ msgstr ""
 
 #. When image changes, this message will be marked fuzzy or untranslated for you.
 #. It doesn't matter what you translate it to: it's not used at all.
-#: C/dialog.vala.page:20(None) C/dialog.py.page:20(None)
-#: C/dialog.js.page:20(None)
+#: 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:16(desc) C/dialog.py.page:16(desc)
-#: C/dialog.js.page:16(desc)
+#: C/dialog.vala.page:7(title)
+#, fuzzy
+#| msgid "Dialog"
+msgid "Dialog (Vala)"
+msgstr "Boîte de dialogue"
+
+#: 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 "Une fenêtre surgissante"
 
-#: C/dialog.vala.page:19(title) C/dialog.py.page:19(title)
-#: C/dialog.js.page:19(title)
+#: 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 "Boîte de dialogue"
 
-#: C/dialog.vala.page:21(p)
+#: C/dialog.vala.page:22(p)
 msgid "A dialog with the response signal hooked up to a callback function."
 msgstr ""
 "Une boîte de dialogue avec le signal de réponse connecté à une fonction de "
 "rappel."
 
-#: C/dialog.vala.page:30(link) C/dialog.js.page:30(link)
+#: C/dialog.vala.page:31(link) C/dialog.js.page:31(link)
 msgid "Gtk.Dialog"
 msgstr "Gtk.Dialog"
 
-#: C/dialog.vala.page:31(link)
+#: C/dialog.vala.page:32(link)
 msgid "Gtk.Dialog.with_buttons"
 msgstr "Gtk.Dialog.with_buttons"
 
-#: C/dialog.vala.page:33(link)
+#: C/dialog.vala.page:34(link)
 msgid "get_content_area"
 msgstr "get_content_area"
 
-#: C/dialog.py.page:21(p)
-#, fuzzy
-#| msgid "A dialog with the response signal hooked up to a callback function."
+#: C/dialog.py.page:7(title)
+msgid "Dialog (Python)"
+msgstr ""
+
+#: C/dialog.py.page:23(p)
 msgid "A dialog with the response signal connected to a callback function."
 msgstr ""
 "Une boîte de dialogue avec le signal de réponse connecté à une fonction de "
 "rappel."
 
-#: C/dialog.py.page:33(title)
+#: C/dialog.py.page:35(title)
 msgid "Useful methods for a Dialog widget"
-msgstr ""
+msgstr "Méthodes utiles pour un élément graphique BoiteDeDialogue"
 
-#: C/dialog.py.page:35(p)
+#: C/dialog.py.page:38(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 ""
+"Au lieu de <code>set_modal(True)</code>, nous pouvons avoir <code>set_modal"
+"(False)</code> suivi de la méthode <code>set_destroy_with_parent(True)</"
+"code>, qui détruit la boîte de dialogue quand on ferme la fenêtre principale."
 
-#: C/dialog.py.page:36(p)
+#: C/dialog.py.page:39(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>."
+"APPLY, HELP</code>, which in turn correspond to the integers <code>-5, "
+"-6,..., -11</code>."
 msgstr ""
+"La méthode <code>add_button(button_text=\"The Answer\", response_id=42)</"
+"code>, où <code>42</code> est un nombre entier, est une alternative à la "
+"fonction <code>add_button(button_text=\"text\", response_id=Gtk.ResponseType."
+"RESPONSE)</code>, où <code>RESPONSE</code> peut être l'une des valeurs "
+"<code>OK, CANCEL, CLOSE, YES, NO, APPLY, HELP</code> qui correspondent aux "
+"nombres entiers <code>-5, -6,..., -11</code>."
 
-#: C/dialog.js.page:21(p)
+#: C/dialog.js.page:7(title)
+#, fuzzy
+#| msgid "JavaScript"
+msgid "Dialog (JavaScript)"
+msgstr "JavaScript"
+
+#: C/dialog.js.page:22(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 "
@@ -10282,355 +17633,673 @@ msgstr ""
 "contenu il y a un petit message et dans la zone d'action il y a un bouton "
 "qui ferme la boîte."
 
-#: C/desktop.js.page:15(desc)
-msgid "A desktop file for the hello world application"
-msgstr "Un fichier desktop pour l'application « Hello world »"
+#: C/dialog.c.page:7(title)
+#, fuzzy
+#| msgid "Dialog"
+msgid "Dialog (C)"
+msgstr "Boîte de dialogue"
+
+#: C/dialog.c.page:25(p)
+msgid "A dialog window that pops up when a button is pressed."
+msgstr "Une boîte de dialogue qui surgit quand un bouton est enfoncé."
+
+#: C/cpp.page:6(title)
+msgid "C++"
+msgstr "C++"
 
-#: C/desktop.js.page:18(title)
-msgid "helloWorld.desktop"
-msgstr "helloWorld.desktop"
+#: C/cpp.page:15(title)
+msgid "Platform demos in C++"
+msgstr "Exemples de la plateforme en langage C++"
 
-#: C/desktop.js.page:19(p)
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/combobox_multicolumn.py.page:22(None) C/combobox.js.page:25(None)
 msgid ""
-"Running applications from the Terminal is useful at the beginning of the "
-"application making process. To have a fully working <link href=\"http://";
-"library.gnome.org/admin/system-admin-guide/stable/mimetypes-9.html.en"
-"\">application integration</link> in GNOME 3 requires a desktop launcher. "
-"For this you need to create a <file>.desktop</file> file. The .desktop file "
-"describes the application name, the used icon and various integration bits. "
-"A deeper insight to <file>.desktop</file> file can be found <link href="
-"\"http://developer.gnome.org/desktop-entry-spec/\";>here</link>."
+"@@image: 'media/combobox_multicolumn.png'; "
+"md5=43f16648fb11ebc7d2f70825ed0f63b3"
 msgstr ""
-"Le lancement d'applications à partir de Terminal est utile au début du "
-"processus de création de l'application. Pour avoir une <link href=\"http://";
-"library.gnome.org/admin/system-admin-guide/stable/mimetypes-9.html.en"
-"\">intégration de l'application</link> fonctionnelle et complète dans GNOME "
-"3, il vous faut un lanceur de bureau. Pour cela vous devez créer un fichier "
-"<file>.desktop</file>. Le fichier .desktop fournit le nom de l'application, "
-"l'icône utilisée et les parties de l'intégration. Un aperçu complet des "
-"fichiers <file>.desktop</file> peut être trouvé <link href=\"http://";
-"developer.gnome.org/desktop-entry-spec/\">ici</link>."
+"@@image: 'media/combobox_multicolumn.png'; "
+"md5=43f16648fb11ebc7d2f70825ed0f63b3"
+
+#: C/combobox_multicolumn.py.page:7(title) C/combobox.py.page:7(title)
+#, fuzzy
+#| msgid "ComboBox"
+msgid "ComboBox (Python)"
+msgstr "BoiteCombinee"
+
+#: C/combobox_multicolumn.py.page:18(desc) C/combobox.vala.page:17(desc)
+#: C/combobox.py.page:17(desc)
+msgid "A widget used to choose from a list of items"
+msgstr ""
+"Un élément graphique utilisé pour effectuer un choix dans une liste "
+"d'éléments"
+
+#: 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 "BoiteCombinee"
+
+#: 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 ""
+"Cette BoiteCombinee affiche votre sélection dans le terminal quand vous la "
+"modifiez."
 
-#: C/desktop.js.page:20(p)
+#: C/combobox_multicolumn.py.page:34(title) C/combobox.py.page:32(title)
+msgid "Useful methods for a ComboBox widget"
+msgstr "Méthode utiles pour un élément graphique BoiteCombinee"
+
+#: C/combobox_multicolumn.py.page:35(p) C/combobox.py.page:33(p)
 msgid ""
-"The example shows you the minimum requirements for a <code>.desktop</code> "
-"file."
+"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 ""
-"L'exemple vous affiche le minimum nécessaire pour un fichier <code>.desktop</"
-"code>."
+"La BoiteCombinee est construite autour d'un concept <em>Modèle/Vue/"
+"Contrôleur</em>. Pour de plus amples informations et pour obtenir une liste "
+"des méthodes utiles pour une BoiteCombinee et un ModeleArborescent, allez "
+"<link xref=\"model-view-controller.py\">ici</link>."
+
+#: C/combobox_multicolumn.py.page:46(link)
+msgid "GtkCellRendererPixbuf"
+msgstr "GtkCellRendererPixbuf"
+
+#. When image changes, this message 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/desktop.js.page:33(p)
-msgid "Now let's go through some parts of the <code>.desktop</code> file."
+#: C/combobox.vala.page:7(title)
+#, fuzzy
+#| msgid "ComboBox"
+msgid "ComboBox (Vala)"
+msgstr "BoiteCombinee"
+
+#: C/combobox.vala.page:22(p)
+msgid "This ComboBox prints to the terminal when you change your selection."
 msgstr ""
-"Allons maintenant examiner quelques parties du fichier <code>.desktop</"
-"code>.­­"
+"Cette BoiteCombinee s'affiche dans le terminal quand vous modifiez votre "
+"sélection."
+
+#: C/combobox.vala.page:30(link) C/combobox.js.page:241(link)
+msgid "Gtk.ComboBox"
+msgstr "Gtk.ComboBox"
 
-#: C/desktop.js.page:35(p)
-msgid "Line 4: Name of the application"
-msgstr "Lignes 4 : nom de l'application."
+#: C/combobox.vala.page:32(link)
+msgid "set_attributes"
+msgstr "set_attributes"
+
+#: C/combobox.py.page:43(link)
+msgid "GtkCellLayout"
+msgstr "GtkCellLayout"
 
-#: C/desktop.js.page:36(p)
-msgid "Line 5: Specifies a short description of the item"
-msgstr "Ligne 5  : indique une courte description d'élément."
+#: C/combobox.js.page:7(title)
+#, fuzzy
+#| msgid "JavaScript"
+msgid "ComboBox (JavaScript)"
+msgstr "JavaScript"
 
-#: C/desktop.js.page:37(p)
+#: C/combobox.js.page:21(desc)
+#, fuzzy
+#| msgid "A text-only drop-down menu"
+msgid "A customizable drop-down menu"
+msgstr "Un menu déroulant texte seul"
+
+#: C/combobox.js.page:26(p)
 msgid ""
-"Line 6: Specifies a command to execute when you choose the item from the "
-"menu. In this example exec just tells where to find the <code>helloworld.js</"
-"code> file and the file takes care of the rest."
+"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 ""
-"Ligne 6 : spécifie une commande à exécuter lorsque vous choisissez l'élément "
-"de menu. Dans cet exemple, « exec » indique juste où trouver le fichier "
-"<code>helloworld.js</code> et le fichier prend en charge le reste."
 
-#: C/desktop.js.page:38(p)
+#: C/combobox.js.page:27(p)
 msgid ""
-"Line 8: Specifies whether the command in the Exec key runs in a terminal "
-"window."
+"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 ""
-"Ligne 8 : indique si la commande de la clé Exec se lance dans une fenêtre de "
-"terminal."
 
-#: C/desktop.js.page:40(p)
+#: C/combobox.js.page:28(p)
 msgid ""
-"If you want your <code>.desktop</code> file to exist as a part of the "
-"system, copy your <code>.desktop</code> file to this directory: ~/.local/"
-"share/applications"
+"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 ""
-"Si vous voulez que votre fichier <code>.desktop</code> fasse partie entière "
-"du système, copiez votre fichier <code>.desktop</code> dans ce répertoire : "
-"~/.local/share/applications"
 
-#: C/desktop.js.page:41(p)
+#: C/combobox.js.page:69(p)
+#, fuzzy
+#| 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."
 msgid ""
-"To put your application to the right category you need to add the necessary "
-"categories to the Categories line. More information on the different "
-"categories can be found in the <link href=\"http://standards.freedesktop.org/";
-"menu-spec/latest/apa.html\">menu spec</link>."
+"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 ""
-"Pour mettre votre application dans la bonne catégorie, vous devez ajouter "
-"les catégories nécessaires à la ligne « Categories ». Plus d'informations sur "
-"les différentes catégories peuvent être trouvées dans les <link href="
-"\"http://standards.freedesktop.org/menu-spec/latest/apa.html";
-"\">spécifications de menu</link>."
+"Tout le code de cet exemple va dans la classe CheckButtonExample. Le code ci-"
+"dessus crée une <link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/";
+"Gtk.Application.html\">Gtk.Application</link> pour nos éléments graphiques "
+"et la fenêtre qui les contient."
 
-#: C/desktop.js.page:42(p)
+#: C/combobox.js.page:94(p)
 msgid ""
-"In this example I used an existing icon. For a custom icon you need to have "
-"a .svg file of your icon, store it to /usr/share/icons/hicolor/scalable/"
-"apps. Write the name of your icon file to the .desktop file, on line 7. More "
-"information on icons in: <link href=\"http://library.gnome.org/admin/system-";
-"admin-guide/stable/themes-11.html.en\"> Installing Icons for Themes </link>, "
-"<link href=\"https://live.gnome.org/GnomeGoals/AppIcon\";>Installing Icons "
-"for Themes</link> and <link href=\"http://freedesktop.org/wiki/";
-"Specifications/icon-theme-spec\">on freedesktop.org: Specifications/icon-"
-"theme-spec</link>."
+"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 ""
-"Dans cet exemple, nous utilisons une icône existante. Pour une icône "
-"personnalisée, vous devez posséder un fichier .svg de votre icône, "
-"l'enregistrer dans /usr/share/icons/hicolor/scalable/apps. Inscrivez le nom "
-"de votre fichier icône dans le fichier .desktop en ligne 7. Plus "
-"d'informations sur les icônes dans : <link href=\"http://library.gnome.org/";
-"admin/system-admin-guide/stable/themes-11.html.en\">Installation d'icônes "
-"pour les thèmes</link>, <link href=\"https://live.gnome.org/GnomeGoals/";
-"AppIcon\">Installation d'icônes pour les thèmes</link> et <link href="
-"\"http://freedesktop.org/wiki/Specifications/icon-theme-spec\";>sur "
-"freedesktop.org : spécifications/icônes-thème-spécifications</link>."
 
-#: C/desktop.js.page:43(p)
+#: C/combobox.js.page:95(p)
 msgid ""
-"After you have finished writing the .desktop file you must change it's "
-"permissions to allow executing file as program. To do that, go to the folder "
-"containing the .desktop file. Right click the .desktop file, choose "
-"properties and tab permissions and place a check on the box after Execute:"
+"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 ""
-"Quand vous avez terminé d'écrire le fichier .desktop, vous devez modifier "
-"ses permissions pour permettre l'exécution du fichier en tant que programme. "
-"Pour faire cela, allez dans le dossier contenant le fichier .desktop. Faites "
-"un clic droit sur le fichier .desktop, sélectionnez Propriétés et l'onglet "
-"Permissions et cochez la case après Exécution :"
 
-#: C/cpp.page:6(title)
-msgid "C++"
-msgstr "C++"
+#: C/combobox.js.page:119(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 ""
 
-#: C/cpp.page:15(title)
-msgid "Platform demos in C++"
-msgstr "Exemples de la plateforme en langage C++"
+#: 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."
+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_multicolumn.py.page:21(None)
+#: C/combobox.js.page:124(title)
 #, fuzzy
-#| msgid ""
-#| "@@image: 'media/aboutdialog_GMenu.png'; "
-#| "md5=a36117a559fa98e25e2f6b3db593639f"
+#| msgid "Creating the ComboBoxText"
+msgid "Creating the ComboBox"
+msgstr "Création de la BoiteCombineeTexte"
+
+#: C/combobox.js.page:130(p)
 msgid ""
-"@@image: 'media/combobox_multicolumn.png'; "
-"md5=43f16648fb11ebc7d2f70825ed0f63b3"
+"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 ""
-"@@image: 'media/aboutdialog_GMenu.png'; md5=a36117a559fa98e25e2f6b3db593639f"
 
-#: C/combobox_multicolumn.py.page:17(desc) C/combobox.vala.page:16(desc)
-#: C/combobox.py.page:16(desc)
-msgid "A widget used to choose from a list of items"
+#: 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)."
 msgstr ""
-"Un élément graphique utilisé pour effectuer un choix dans une liste "
-"d'éléments"
 
-#: C/combobox_multicolumn.py.page:20(title) C/combobox.vala.page:19(title)
-#: C/combobox.py.page:19(title)
-msgid "ComboBox"
-msgstr "ComboBox"
+#: 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 ""
 
-#: C/combobox_multicolumn.py.page:22(p) C/combobox.py.page:21(p)
-#, fuzzy
-#| msgid "This ComboBox prints to the terminal when you change your selection."
-msgid "This ComboBox prints to the terminal your selection when you change it."
+#: 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 ""
-"Cette ComboBox affiche votre sélection dans le terminal quand vous la "
-"modifiée."
 
-#: C/combobox_multicolumn.py.page:29(link) C/combobox.py.page:28(link)
-#, fuzzy
-#| msgid "Gtk.ComboBox"
-msgid "GtkComboBox"
-msgstr "Gtk.ComboBox"
+#: C/combobox.js.page:155(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 ""
 
-#: C/combobox_multicolumn.py.page:31(link) C/combobox.py.page:30(link)
+#: C/combobox.js.page:165(p)
 #, fuzzy
-#| msgid "Gtk.CellRendererText"
-msgid "GtkCellRendererText"
-msgstr "Gtk.CellRendererText"
+#| msgid ""
+#| "Finally, we add the ComboBoxText to the window, and tell the window to "
+#| "show itself and the widget inside it."
+msgid ""
+"Finally, we add the ComboBox to the window, and tell the window to show "
+"itself and everything inside it."
+msgstr ""
+"Enfin, ajoutons la BoiteCombineeTexte à la fenêtre et indiquons à la fenêtre "
+"de s'afficher avec ses éléments graphiques à l'intérieur."
 
-#: C/combobox_multicolumn.py.page:32(link)
+#: C/combobox.js.page:179(p)
 #, fuzzy
-#| msgid "Gtk.CellRendererText"
-msgid "GtkCellRendererPixbuf"
-msgstr "Gtk.CellRendererText"
+#| 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."
+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 ""
+"Nous allons créer une <link xref=\"messagedialog.js"
+"\">BoiteDeDialogueDemessage</link> qui affiche un message en fonction de la "
+"distribution sélectionnée. Créons d'abord le tableau des réponses à "
+"utiliser. Comme la première chaîne de notre BoiteCombineeTexte est justement "
+"le message « Select distribution », laissons celle-ci vide."
+
+#: C/combobox.js.page:203(p)
+#, fuzzy
+#| 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."
+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 ""
+"Avant d'afficher une BoiteDeDialogueDemessage, vérifions d'abord que vous "
+"n'avez pas choisi le message « Select distribution ». Ensuite, définissons "
+"son texte comme étant l'entrée dans le tableau qui correspond à l'entrée "
+"active de notre BoiteDeDialogueDemessage. Cela se fait avec la méthode "
+"<file>get_active</file>, qui renvoie l'identifiant numérique de votre "
+"sélection."
 
-#. When image changes, this message 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:20(None) C/combobox.py.page:20(None)
-msgid "@@image: 'media/combobox.png'; md5=ab9e91bc1a58fe866cb00dd52159251d"
-msgstr "@@image: 'media/combobox.png'; md5=ab9e91bc1a58fe866cb00dd52159251d"
+#: C/combobox.js.page:204(p) C/comboboxtext.js.page:147(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 ""
+"Il existe d'autres méthodes alternatives : <file>get_active_id</file>, qui "
+"renvoie l'identifiant texte assigné par <file>append</file>, et "
+"<file>get_active_text</file>, qui renvoie le texte complet de la chaîne "
+"sélectionnée."
 
-#: C/combobox.vala.page:21(p)
-msgid "This ComboBox prints to the terminal when you change your selection."
+#: C/combobox.js.page:205(p) C/comboboxtext.js.page:148(p)
+msgid ""
+"After we create the MessageDialog, we connect its response signal to the "
+"_onDialogResponse function, then tell it to show itself."
 msgstr ""
-"Cette ComboBox affiche dans le terminal quand vous modifiez votre sélection."
+"Une fois la BoiteDeDialogueDemessage terminée, connectons son signal de "
+"retour à la fonction _onDialogResponse et indiquons lui de s'afficher toute "
+"seule."
 
-#: C/combobox.vala.page:29(link)
-msgid "Gtk.ComboBox"
-msgstr "Gtk.ComboBox"
+#: C/combobox.js.page:216(p) C/comboboxtext.js.page:159(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 ""
+"Comme le seul bouton de la BoiteDeDialogueDemessage est le bouton OK, il "
+"n'est pas nécessaire de vérifier son response_id pour savoir quel bouton a "
+"été cliqué. Tout ce que nous faisons ici est détruire le message surgissant."
 
-#: C/combobox.vala.page:30(link)
-msgid "Gtk.CellRendererText"
-msgstr "Gtk.CellRendererText"
+#: C/combobox.js.page:223(p)
+#, fuzzy
+#| msgid ""
+#| "Finally, we create a new instance of the finished ComboBoxTextExample "
+#| "class, and set the application running."
+msgid ""
+"Finally, we create a new instance of the finished ComboBoxExample class, and "
+"set the application running."
+msgstr ""
+"Enfin, nous créons un nouvel exemple de la classe ComboBoxTextExample "
+"terminée et démarrons l'application."
 
-#: C/combobox.vala.page:31(link)
-msgid "set_attributes"
-msgstr "set_attributes"
+#: C/combobox.js.page:239(link)
+#, fuzzy
+#| msgid "GtkCellRendererPixbuf"
+msgid "Gtk.CellRendererPixbuf"
+msgstr "GtkCellRendererPixbuf"
 
-#: C/combobox.py.page:31(link)
-msgid "GtkCellLayout"
+#: C/comboboxtext.js.page:7(title)
+#, fuzzy
+#| msgid "ComboBoxText"
+msgid "ComboBoxText (JavaScript)"
+msgstr "BoiteCombineeTexte"
+
+#: C/comboboxtext.js.page:19(desc)
+msgid "A text-only drop-down menu"
+msgstr "Un menu déroulant texte seul"
+
+#: C/comboboxtext.js.page:22(title)
+msgid "ComboBoxText"
+msgstr "BoiteCombineeTexte"
+
+#: C/comboboxtext.js.page:24(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 ""
+"Une BoiteCombinee est un menu déroulant. La différence entre une <link xref="
+"\"combobox.js\">BoiteCombinee</link> et une BoiteCombineeTexte est que cette "
+"dernière ne possède que des options texte de base, alors que la "
+"BoiteCombinee utilise un ListStore ou un TreeStore (qui sont de "
+"simples feuilles de calcul) pour afficher des éléments arborescents ou des "
+"images à côté de chaque choix."
+
+#: C/comboboxtext.js.page:25(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 ""
+"À moins que vous n'ayez besoin des fonctions supplémentaires d'une "
+"BoiteCombinee, ou si vous vous sentez à l'aise dans la manipulation des "
+"ListStore et TreeStore, il est préférable d'utiliser la "
+"simplicité d'une BoiteCombineeTexte chaque fois que possible."
+
+#: C/comboboxtext.js.page:82(title)
+msgid "Creating the ComboBoxText"
+msgstr "Création de la BoiteCombineeTexte"
+
+#: C/comboboxtext.js.page:96(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 ""
+"Après avoir créé la BoiteCombineeTexte, utilisons la méthode "
+"<file>append_text</file> pour lui ajouter des chaînes de texte. Comme les "
+"entrées d'un tableau, les chaînes ont chacune un nombre comme identifiant, "
+"en commençant par 0. Pour simplifier les choses, créons un tableau pour les "
+"entrées de la BoiteCombineeTexte et utilisons une boucle pour les ajouter "
+"dans l'ordre, comme ici."
+
+#: C/comboboxtext.js.page:97(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 ""
+"Après avoir garni la BoiteCombineeTexte, définissons sa première entrée pour "
+"qu'elle devienne active, nous pouvons ainsi voir la ligne « Select "
+"distribution » avant de cliquer dessus. Connectons ensuite son signal "
+"<file>changed</file> à la fonction _onComboChanged, pour qu'elle soit "
+"appelée à chaque fois que vous faites une nouvelle sélection dans le menu "
+"déroulant."
+
+#: C/comboboxtext.js.page:98(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 ""
+"Pour ajouter une entrée dans une BoiteCombineeTexte, utilisez la méthode "
+"<file>insert_text</file>. Pour utiliser une chaîne texte plutôt qu'un "
+"identifiant pour chaque entrée se référant à un nombre seul, utilisez les "
+"méthodes <file>append</file> et <file>insert</file>. Reportez-vous aux liens "
+"au bas de ce tutoriel pour de plus amples informations sur leur utilisation."
+
+#: C/comboboxtext.js.page:108(p)
+msgid ""
+"Finally, we add the ComboBoxText to the window, and tell the window to show "
+"itself and the widget inside it."
+msgstr ""
+"Enfin, ajoutons la BoiteCombineeTexte à la fenêtre et indiquons à la fenêtre "
+"de s'afficher avec ses éléments graphiques à l'intérieur."
+
+#: C/comboboxtext.js.page:122(p)
+msgid ""
+"We're going to create a pop-up <link xref=\"messagedialog.js\">MessageDialog,"
+"</link> which shows you a message based on which distro you select. First, "
+"we create the array of responses to use. Since the first string in our "
+"ComboBoxText is just the \"Select distribution\" message, we make the first "
+"string in our array blank."
+msgstr ""
+"Nous allons créer une <link xref=\"messagedialog.js"
+"\">BoiteDeDialogueDemessage</link> qui affiche un message en fonction de la "
+"distribution sélectionnée. Créons d'abord le tableau des réponses à "
+"utiliser. Comme la première chaîne de notre BoiteCombineeTexte est justement "
+"le message « Select distribution », laissons celle-ci vide."
+
+#: C/comboboxtext.js.page:146(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 ""
+"Avant d'afficher une BoiteDeDialogueDemessage, vérifions d'abord que vous "
+"n'avez pas choisi le message « Select distribution ». Ensuite, définissons "
+"son texte comme étant l'entrée dans le tableau qui correspond à l'entrée "
+"active de notre BoiteDeDialogueDemessage. Cela se fait avec la méthode "
+"<file>get_active</file>, qui renvoie l'identifiant numérique de votre "
+"sélection."
+
+#: C/comboboxtext.js.page:166(p)
+msgid ""
+"Finally, we create a new instance of the finished ComboBoxTextExample class, "
+"and set the application running."
 msgstr ""
+"Enfin, nous créons un nouvel exemple de la classe ComboBoxTextExample "
+"terminée et démarrons l'application."
+
+#: C/comboboxtext.js.page:182(link)
+msgid "Gtk.ComboBoxText"
+msgstr "Gtk.ComboBoxText"
 
 #. When image changes, this message 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:22(None) C/colorbutton.py.page:20(None)
-#, fuzzy
-#| msgid ""
-#| "@@image: 'media/spinbutton.png'; md5=993cbb7d9bd271a329727a926195712a"
+#: C/colorbutton.vala.page:23(None) C/colorbutton.py.page:21(None)
 msgid "@@image: 'media/colorbutton.png'; md5=904539d26fe367bf99f9a0961cfc9a03"
-msgstr "@@image: 'media/spinbutton.png'; md5=993cbb7d9bd271a329727a926195712a"
+msgstr "@@image: 'media/colorbutton.png'; md5=904539d26fe367bf99f9a0961cfc9a03"
+
+#: C/colorbutton.vala.page:7(title)
+#, fuzzy
+#| msgid "ColorButton"
+msgid "ColorButton (Vala)"
+msgstr "BoutonDeCouleur"
 
-#: C/colorbutton.vala.page:18(desc) C/colorbutton.py.page:16(desc)
+#: C/colorbutton.vala.page:19(desc) C/colorbutton.py.page:17(desc)
 msgid "A button to launch a color selection dialog"
-msgstr ""
+msgstr "Un bouton pour ouvrir une boîte de dialogue de sélection de couleur"
 
-#: C/colorbutton.vala.page:21(title) C/colorbutton.py.page:19(title)
-#, fuzzy
-#| msgid "Button"
+#: C/colorbutton.vala.page:22(title) C/colorbutton.py.page:20(title)
 msgid "ColorButton"
-msgstr "Bouton"
+msgstr "BoutonDeCouleur"
 
-#: C/colorbutton.vala.page:23(p)
+#: C/colorbutton.vala.page:24(p)
 msgid "RGB values of the selected color are shown in the label."
 msgstr ""
+"Les valeurs RVB de la couleur sélectionnée sont affichées dans cette "
+"étiquette."
 
-#: C/colorbutton.vala.page:30(link)
-#, fuzzy
-#| msgid "Gtk.ToolButton"
+#: C/colorbutton.vala.page:31(link)
 msgid "Gtk.ColorButton"
-msgstr "Gtk.ToolButton"
+msgstr "Gtk.ColorButton"
 
-#: C/colorbutton.vala.page:31(link)
+#: C/colorbutton.vala.page:32(link)
 msgid "Gdk.RGBA"
-msgstr ""
+msgstr "Gdk.RGBA"
 
-#: C/colorbutton.py.page:21(p)
+#: C/colorbutton.py.page:7(title)
+#, fuzzy
+#| msgid "ColorButton"
+msgid "ColorButton (Python)"
+msgstr "BoutonDeCouleur"
+
+#: C/colorbutton.py.page:22(p)
 msgid ""
 "This ColorButton launches a color selection dialog and prints in the "
 "terminal the RGB values of the color selected."
 msgstr ""
+"Ce BoutonDeCouleur ouvre une boîte de dialogue pour sélectionner une couleur "
+"et affiche dans le terminal les valeurs RVB de la couleur sélectionnée."
 
-#: C/colorbutton.py.page:28(link)
+#: C/colorbutton.py.page:32(title)
 #, fuzzy
-#| msgid "Gtk.ToolButton"
+#| msgid "Useful methods for a Button widget"
+msgid "Useful methods for a ColorButton widget"
+msgstr "Méthode utiles pour un élément graphique Bouton"
+
+#: C/colorbutton.py.page:33(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 ""
+
+#: C/colorbutton.py.page:40(link)
 msgid "GtkColorButton"
-msgstr "Gtk.ToolButton"
+msgstr "GtkColorButton"
 
-#: C/colorbutton.py.page:29(link)
+#: C/colorbutton.py.page:41(link)
 msgid "GtkColorChooser"
-msgstr ""
+msgstr "GtkColorChooser"
 
-#: C/colorbutton.py.page:30(link)
+#: C/colorbutton.py.page:42(link)
 msgid "RGBA Colors"
-msgstr ""
+msgstr "Couleurs RVBA"
 
 #. When image changes, this message 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:20(None) C/checkbutton.py.page:20(None)
-#: C/checkbutton.js.page:20(None) C/checkbutton.c.page:20(None)
+#: 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:16(desc)
+#: C/checkbutton.vala.page:7(title)
+#, fuzzy
+#| msgid "CheckButton"
+msgid "CheckButton (Vala)"
+msgstr "CaseAcocher"
+
+#: C/checkbutton.vala.page:17(desc)
 msgid "Create widgets with a disrete toggle button"
-msgstr "Créer des éléments graphiques avec un bouton de basculement discret"
+msgstr "Créer des éléments graphiques avec un bouton d'inversion discret"
 
-#: C/checkbutton.vala.page:19(title) C/checkbutton.py.page:19(title)
-#: C/checkbutton.js.page:19(title) C/checkbutton.c.page:19(title)
+#: 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"
+msgstr "CaseAcocher"
 
-#: C/checkbutton.vala.page:21(p) C/checkbutton.py.page:21(p)
-#: C/checkbutton.c.page:21(p)
+#: 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 "Ce CheckButton bascule le titre."
+msgstr "Cette CaseAcocher inverse le titre."
 
-#: C/checkbutton.vala.page:28(link) C/checkbutton.js.page:138(link)
+#: C/checkbutton.vala.page:29(link) C/checkbutton.js.page:139(link)
 msgid "Gtk.CheckButton"
 msgstr "Gtk.CheckButton"
 
-#: C/checkbutton.py.page:16(desc)
+#: C/checkbutton.py.page:7(title)
+#, fuzzy
+#| msgid "CheckButton"
+msgid "CheckButton (Python)"
+msgstr "CaseAcocher"
+
+#: C/checkbutton.py.page:18(desc)
 msgid "A toggle button in a window"
 msgstr "Un bouton de basculement dans une fenêtre"
 
-#: C/checkbutton.py.page:31(link) C/checkbutton.c.page:28(link)
+#: C/checkbutton.py.page:32(p)
+msgid ""
+"We could also create the CheckButton with <code>button = Gtk.CheckButton."
+"new_with_label(\"Show Title\")</code>."
+msgstr ""
+"Nous aurions pu aussi créer la CaseAcocher avec <code>button = Gtk."
+"CheckButton.new_with_label(\"Show Title\")</code>."
+
+#: C/checkbutton.py.page:37(title)
+msgid "Useful methods for a CheckButton widget"
+msgstr "Méthodes utiles pour un élément graphique CaseAcocher"
+
+#: C/checkbutton.py.page:49(link) C/checkbutton.c.page:29(link)
 msgid "GtkCheckButton"
 msgstr "GtkCheckButton"
 
-#: C/checkbutton.js.page:16(desc)
+#: C/checkbutton.js.page:7(title)
 #, fuzzy
-#| msgid "A button which can be connected to other widgets"
+#| msgid "CheckButton"
+msgid "CheckButton (JavaScript)"
+msgstr "CaseAcocher"
+
+#: C/checkbutton.js.page:17(desc)
 msgid "A box which can be checked or unchecked"
-msgstr "Un bouton qui peut être connecté à d'autres éléments graphiques."
+msgstr "Une case qui peut être cochée ou décochée"
 
-#: C/checkbutton.js.page:21(p)
+#: C/checkbutton.js.page:22(p)
 msgid ""
 "This application has a CheckButton. Whether the box is checked dictates "
 "whether the window's title bar shows anything."
 msgstr ""
+"Cette application possède une CaseAcocher. Selon que la case soit cochée ou "
+"non dicte l'affichage ou non de quelque chose dans la barre de titre de la "
+"fenêtre."
 
-#: C/checkbutton.js.page:22(p)
+#: C/checkbutton.js.page:23(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 ""
+"Une CaseAcocher envoie le signal d'inversion « toggled » quand elle cochée "
+"ou décochée. Pendant qu'elle est cochée, la valeur de la propriété "
+"« active » est sur vrai et quand elle ne l'est pas, elle est sur faux."
 
-#: C/checkbutton.js.page:65(p)
-#, fuzzy
-#| msgid ""
-#| "In this sample we used the following widget: <link href=\"http://www.";
-#| "roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Window.html\">Gtk.Window</link>"
+#: C/checkbutton.js.page:66(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 ""
-"Dans cet exemple, nous avons utilisé l'élément graphique suivant : <link "
-"href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Window.html\";>Gtk."
-"Window</link>"
+"Tout le code de cet exemple va dans la classe CheckButtonExample. Le code ci-"
+"dessus crée une <link href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/";
+"Gtk.Application.html\">Gtk.Application</link> pour nos éléments graphiques "
+"et la fenêtre qui les contient."
 
-#: C/checkbutton.js.page:79(p)
+#: C/checkbutton.js.page:80(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 ""
+"Mettons tout le code nécessaire à la création de l'interface utilisateur "
+"dans la fonction _buildUI. Créons maintenant une nouvelle <link href="
+"\"GtkApplicationWindow.js.page\">Gtk.ApplicationWindow</link> pour y mettre "
+"tous nos éléments graphiques."
 
-#: C/checkbutton.js.page:83(title)
-#, fuzzy
-#| msgid "Starting the fun"
+#: C/checkbutton.js.page:84(title)
 msgid "Creating the checkbutton"
-msgstr "Début du plaisir"
+msgstr "Création de la CaseAcocher"
 
-#: C/checkbutton.js.page:95(p)
+#: C/checkbutton.js.page:96(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 "
@@ -10639,18 +18308,28 @@ msgid ""
 "to be checked by default. Whenever the user checks or unchecks the box, we "
 "call the ._toggledCB function."
 msgstr ""
+"Ce code ne génère que la CaseAcocher. Pour créer l'étiquette à côté de la "
+"CaseAcocher, il faut donner à la CaseAcocher la propriété « label » et lui "
+"assigner une valeur de chaîne. Comme la CaseAcocher s'inverse selon que le "
+"titre de la fenêtre s'affiche ou non (et nous le mettons en position affiché "
+"pour commencer), il faut que la case soit cochée par défaut. Ensuite, à "
+"chaque fois que l'utilisateur coche ou décoche la case, cela appelle la "
+"fonction ._toggledCB."
 
-#: C/checkbutton.js.page:101(p)
+#: C/checkbutton.js.page:102(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 ""
+"Ce code termine la création de l'interface utilisateur en indiquant à la "
+"fenêtre de s'afficher toute seule avec tous ses éléments graphiques enfants "
+"(il n'y a que la CaseAcocher dans cet exemple)."
 
-#: C/checkbutton.js.page:105(title)
+#: C/checkbutton.js.page:106(title)
 msgid "Function which handles the checkbutton's toggling"
-msgstr ""
+msgstr "Fonction prenant en charge l'inversion de la CaseAcocher"
 
-#: C/checkbutton.js.page:119(p)
+#: C/checkbutton.js.page:120(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 "
@@ -10658,18 +18337,31 @@ msgid ""
 "(checked) or not afterwards. A simple if / else statement which calls the "
 "checkbutton's get_active() method will work for this."
 msgstr ""
+"Quand la CaseAcocher est décochée, nous voulons que le titre de la fenêtre "
+"disparaisse. Quand elle est cochée, nous voulons qu'elle réapparaisse. Pour "
+"savoir quel est son état, il nous faut la tester. C'est l'instruction if ou "
+"else qui va appeler la méthode get_active() de la CaseAcocher et qui fera ce "
+"travail."
 
-#: C/checkbutton.js.page:125(p)
+#: C/checkbutton.js.page:126(p)
 msgid ""
 "Finally, we create a new instance of the finished CheckButtonExample class, "
 "and set the application running."
 msgstr ""
+"Enfin, nous créons un nouvel exemple de la classe CheckButtonExample et "
+"démarrons l'application."
 
-#: C/checkbutton.c.page:12(email)
+#: C/checkbutton.c.page:7(title)
+#, fuzzy
+#| msgid "CheckButton"
+msgid "CheckButton (C)"
+msgstr "CaseAcocher"
+
+#: C/checkbutton.c.page:13(email)
 msgid "tiffany antpoolski gmail com"
 msgstr "tiffany antpoolski gmail com"
 
-#: C/checkbutton.c.page:16(desc)
+#: C/checkbutton.c.page:17(desc)
 msgid "Create widgets with a discrete ToggleButton"
 msgstr "Créer des éléments graphiques avec un bouton de basculement discret"
 
@@ -10683,61 +18375,247 @@ msgstr "Tutoriels, exemples de code et démonstrations de la plateforme en 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/button.vala.page:22(None) C/button.py.page:21(None)
-#: C/button.js.page:20(None) C/button.c.page:21(None)
+#: C/buttonbox.py.page:23(None)
+#, fuzzy
+#| msgid "@@image: 'media/toolbar.png'; md5=f0350855eedf6343952b72d6d906f738"
+msgid ""
+"@@image: 'media/buttonbox_calculator.png'; "
+"md5=ce0de08b7ac66f517290e33e6d33d508"
+msgstr "@@image: 'media/toolbar.png'; md5=f0350855eedf6343952b72d6d906f738"
+
+#: C/buttonbox.py.page:7(title)
+msgid "ButtonBox (Python)"
+msgstr ""
+
+#: C/buttonbox.py.page:18(desc)
+msgid "A container for arranging buttons"
+msgstr ""
+
+#: C/buttonbox.py.page:21(title)
+#, fuzzy
+#| msgid "Button"
+msgid "ButtonBox"
+msgstr "Bouton"
+
+#: C/buttonbox.py.page:24(p)
+msgid "A calculator - the buttons are enclosed in horizontal ButtonBoxes."
+msgstr ""
+
+#: C/buttonbox.py.page:34(title)
+#, fuzzy
+#| msgid "Useful methods for a Button widget"
+msgid "Uselful methods for a ButtonBox widget"
+msgstr "Méthode utiles pour un élément graphique Bouton"
+
+#: C/buttonbox.py.page:36(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 ""
+
+#: C/buttonbox.py.page:37(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 ""
+
+#: C/buttonbox.py.page:38(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 ""
+
+#: C/buttonbox.py.page:39(p)
+#, fuzzy
+#| msgid ""
+#| "<code>set_digits(digits)</code> sets the precision to be displayed by the "
+#| "spinbutton, up to 20 digits."
+msgid ""
+"<code>set_spacing(spacing)</code> sets the spacing, in pixels, between the "
+"buttons of the box."
+msgstr ""
+"La méthode <code>set_digits(caracteres)</code> définit la précision "
+"d'affichage du BoutonDactivité, jusqu'à 20 caractères."
+
+#: C/buttonbox.py.page:47(link)
+#, fuzzy
+#| msgid "GtkButton"
+msgid "GtkButtonBox"
+msgstr "GtkButton"
+
+#: C/buttonbox.py.page:48(link)
+#, fuzzy
+#| msgid "GtkButton"
+msgid "GtkBox"
+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/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/button.vala.page:17(desc) C/button.py.page:16(desc)
-#: C/button.c.page:16(desc)
+#: C/button.vala.page:7(title)
+#, fuzzy
+#| msgid "Button"
+msgid "Button (Vala)"
+msgstr "Bouton"
+
+#: 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 "Un élément graphique bouton qui émet un signal quand il est cliqué"
 
-#: C/button.vala.page:20(title) C/button.py.page:19(title)
+#: C/button.vala.page:21(title)
 msgid "Button widget"
 msgstr "Élément graphique bouton"
 
-#: C/button.vala.page:23(p) C/button.py.page:22(p)
+#: C/button.vala.page:24(p) C/button.py.page:24(p)
 msgid "A button widget connected to a simple callback function."
 msgstr "Un élément graphique bouton connecté à une fonction de rappel simple."
 
-#: C/button.vala.page:27(p)
-#, fuzzy
-#| msgid ""
-#| "In this sample we used the following widget: <link href=\"http://www.";
-#| "roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Window.html\">Gtk.Window</link>"
+#: C/button.vala.page:28(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 ""
-"Dans cet exemple, nous avons utilisé l'élément graphique suivant : <link "
-"href=\"http://www.roojs.com/seed/gir-1.2-gtk-3.0/gjs/Gtk.Window.html\";>Gtk."
-"Window</link>"
+"Dans cet exemple, nous avons utilisé le <link href=\"http://www.valadoc.org/";
+"gtk+-3.0/Gtk.Button.html\">Gtk.Button</link>"
 
-#: C/button.js.page:16(desc)
-msgid "A button which can be connected to other widgets"
-msgstr "Un bouton qui peut être connecté à d'autres éléments graphiques."
+#: C/button.py.page:7(title)
+msgid "Button (Python)"
+msgstr ""
 
-#: C/button.js.page:19(title)
+#: C/button.py.page:21(title) C/button.js.page:20(title)
+#: C/button.c.page:22(title)
 msgid "Button"
 msgstr "Bouton"
 
-#: C/button.js.page:21(p)
+#: C/button.py.page:33(title)
+msgid "Useful methods for a Button widget"
+msgstr "Méthode utiles pour un élément graphique Bouton"
+
+#: C/button.py.page:35(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>."
+msgstr ""
+"La méthode <code>button = Gtk.Button(label=« Cliquez moi »)</code> pourrait "
+"aussi servir à créer un bouton et définir le texte directement. Pour de plus "
+"amples informations sur cette fonction, rendez-vous <link xref=\"properties."
+"py\">ici</link>."
+
+#: C/button.py.page:37(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 ""
+"La méthode <code>set_relief(Gtk.ReliefStyle.NONE)</code> annule le style en "
+"relief des bordures du Gtk.Button - à l'opposé, <code>Gtk.ReliefStyle."
+"NORMAL</code> le rétablit."
+
+#: C/button.py.page:38(p)
+#, fuzzy
+#| msgid ""
+#| "If the label of the button is a <link href=\"http://developer.gnome.org/";
+#| "gtk3/3.4/gtk3-Stock-Items.html\">stock icon</link>, <code>set_use_stock"
+#| "(True)</code> sets the label as the name of the corresponding stock icon."
+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 ""
+"Si l'étiquette du bouton est issue de la <link href=\"http://developer.gnome.";
+"org/gtk3/3.4/gtk3-Stock-Items.html\">collection d'icônes</link>, la méthode "
+"<code>set_use_stock(True)</code> assigne l'étiquette comme étant le nom de "
+"l'icône correspondante de la collection."
+
+#: C/button.py.page:39(p)
+msgid ""
+"To set an image (e.g. a stock image) for the button <code>button</code>:"
+msgstr ""
+"Pour assigner une image (par ex. une image de la collection d'images) au "
+"bouton <code>button</code> :"
+
+#: C/button.py.page:40(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(p)
+msgid ""
+"You should not set a label for the button after this, otherwise it will show "
+"the label and not the image."
+msgstr ""
+"Vous ne devez plus assigner d'étiquette au bouton après cela, sinon il "
+"affichera l'étiquette au lieu de l'image."
+
+#: C/button.py.page:45(p)
+msgid ""
+"If we use <code>set_focus_on_click(False)</code> the button will not grab "
+"focus when it is clicked by the mouse. This could be useful in places like "
+"toolbars, so that the keyboard focus is not removed from the main area of "
+"the application."
+msgstr ""
+"La fonction <code>set_focus_on_click(False)</code> empêche le bouton de "
+"prendre le focus quand vous cliquez dessus avec la souris."
+
+#: C/button.js.page:7(title)
+#, fuzzy
+#| msgid "JavaScript"
+msgid "Button (JavaScript)"
+msgstr "JavaScript"
+
+#: C/button.js.page:17(desc)
+msgid "A button which can be connected to other widgets"
+msgstr "Un bouton qui peut être connecté à d'autres éléments graphiques."
+
+#: C/button.js.page:22(p)
 msgid "A button widget that changes its label when you click it."
 msgstr ""
-"Un élément graphique bouton qui change d'étiquette quand il est cliqué."
+"Un élément graphique Bouton qui change d'étiquette quand il est cliqué."
 
-#: C/button.c.page:19(title)
-msgid "Button Widget"
-msgstr "Élément graphique bouton"
+#: C/button.c.page:7(title)
+#, fuzzy
+#| msgid "Button"
+msgid "Button (C)"
+msgstr "Bouton"
 
-#: C/button.c.page:22(p)
-msgid "A button widget connected to a callback function"
-msgstr "Un élément graphique bouton connecté à une fonction de rappel"
+#: C/button.c.page:25(p)
+msgid ""
+"A button widget connected to a callback function that reverses its label "
+"when clicked."
+msgstr ""
+"Un élément graphique Bouton connecté à une fonction de rappel qui inverse "
+"son étiquette quand il est cliqué."
 
-#: C/button.c.page:33(link)
+#: C/button.c.page:36(link)
 msgid "Unicode Manipulation"
-msgstr "Manipulation unicode"
+msgstr "Manipulation Unicode"
 
 #: C/bug-filing.page:10(email)
 msgid "tiffany antopolski com"
@@ -10819,8 +18697,8 @@ msgid ""
 "click <gui>Commit</gui>."
 msgstr ""
 "Si vous demandez une nouvelle fonctionnalité, sélectionnez <gui>enhancement</"
-"gui> dans le menu <gui>Severity</gui>. Remplissez les sections « Summary » et "
-"« Description » et cliquez sur <gui>Commit</gui>."
+"gui> dans le menu <gui>Severity</gui>. Remplissez les sections « Summary » "
+"et « Description » et cliquez sur <gui>Commit</gui>."
 
 #: C/bug-filing.page:42(p)
 msgid ""
@@ -10833,8 +18711,13 @@ msgstr ""
 "contribution à l'amélioration des tutoriels du <app>Centre de développement "
 "GNOME</app> !"
 
-#: C/beginner.vala.page:11(desc) C/beginner.py.page:11(desc)
-#: C/beginner.js.page:15(desc) C/beginner.c.page:11(desc)
+#: C/beginner.vala.page:8(title)
+#, fuzzy
+#| msgid "0 Beginner's Tutorials"
+msgid "Beginner Tutorials (Vala)"
+msgstr "Tutoriels pour les débutants zéro"
+
+#: C/beginner.vala.page:12(desc) C/beginner.c.page:12(desc)
 msgid ""
 "A beginner's guide to GUI programming using GTK+, including code samples and "
 "practice exercises."
@@ -10842,12 +18725,11 @@ msgstr ""
 "Un guide pour débuter la programmation d'interfaces graphiques avec GTK+, "
 "incluant des exemples de code et des exercices pratiques."
 
-#: C/beginner.vala.page:18(title) C/beginner.py.page:18(title)
-#: C/beginner.c.page:19(title)
+#: C/beginner.vala.page:19(title) C/beginner.c.page:20(title)
 msgid "0 Beginner's Tutorials"
 msgstr "Tutoriels pour les débutants zéro"
 
-#: C/beginner.vala.page:20(p) C/beginner.py.page:22(p) C/beginner.c.page:21(p)
+#: 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 "
@@ -10857,258 +18739,287 @@ msgstr ""
 "toutes les bases de la programmation. Avant d'essayer de suivre ces "
 "tutoriels, vous devez maîtriser les concepts suivants :"
 
-#: C/beginner.vala.page:22(p) C/beginner.py.page:24(p) C/beginner.c.page:23(p)
+#: C/beginner.vala.page:23(p) C/beginner.c.page:24(p)
 msgid "Object oriented programming"
 msgstr "La programmation objet"
 
-#: C/beginner.vala.page:23(p)
+#: C/beginner.vala.page:24(p)
 msgid "The Vala programming language:"
 msgstr "Le language de programmation Vala :"
 
-#: C/beginner.vala.page:25(link)
+#: C/beginner.vala.page:26(link)
 msgid "The Vala Tutorial"
 msgstr "Le tutoriel Vala"
 
-#: C/beginner.vala.page:26(link)
+#: C/beginner.vala.page:27(link)
 msgid "Sample Vala code"
 msgstr "Exemple de code Vala"
 
-#: C/beginner.vala.page:31(p) C/beginner.py.page:28(p) C/beginner.c.page:28(p)
-msgid ""
-"By following these tutorials you will learn the basics of GUI programming "
-"using Gtk+."
-msgstr ""
-"En suivant ces tutoriels, vous allez apprendre les bases de la programmation "
-"d'interfaces utilisateurs avec GTK+."
-
-#: C/beginner.vala.page:35(title) C/beginner.py.page:32(title)
-#: C/beginner.js.page:30(title) C/beginner.c.page:32(title)
+#: C/beginner.vala.page:36(title) C/beginner.js.page:36(title)
+#: C/beginner.c.page:33(title)
 msgid "Tutorials"
 msgstr "Tutoriels"
 
-#: C/beginner.vala.page:39(title) C/beginner.py.page:36(title)
-#: C/beginner.js.page:34(title) C/beginner.c.page:36(title)
+#: 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 "Exemples de code"
 
-#: C/beginner.vala.page:40(p) C/beginner.py.page:38(p)
-#: C/beginner.js.page:36(p) C/beginner.c.page:37(p)
-msgid "To run the code samples:"
-msgstr "Pour lancer les exemples de code :"
-
-#: C/beginner.vala.page:44(p)
+#: C/beginner.vala.page:45(p)
 msgid "Copy and paste the code into <var>filename</var>.vala"
 msgstr "Copiez et collez le code dans <var>nomdufichier</var>.vala"
 
-#: C/beginner.vala.page:45(p) C/beginner.py.page:43(p) C/beginner.c.page:42(p)
-#: C/beginner.c.page:55(p)
-msgid "In the terminal type:"
-msgstr "Saisissez dans le terminal :"
-
-#: C/beginner.vala.page:46(screen)
+#: 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>nomdufichier</var>.vala"
 
-#: C/beginner.vala.page:47(screen) C/beginner.c.page:45(screen)
-#: C/beginner.c.page:59(screen)
+#: 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>nomdufichier</var>"
 
-#: C/beginner.vala.page:51(title) C/beginner.py.page:48(title)
-#: C/beginner.js.page:43(title) C/beginner.c.page:62(title)
+#: 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 "Fenêtres"
 
-#: C/beginner.vala.page:54(title) C/beginner.py.page:51(title)
-#: C/beginner.js.page:45(title) C/beginner.c.page:65(title)
+#: 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 "Affichage d'éléments graphiques"
+msgstr "Éléments graphiques d'affichage"
 
-#: C/beginner.vala.page:56(title) C/beginner.py.page:53(title)
-#: C/beginner.js.page:47(title) C/beginner.c.page:67(title)
+#: 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 "Boutons et bascules"
+msgstr "Boutons et inverseurs"
 
-#: C/beginner.vala.page:58(title) C/beginner.py.page:55(title)
-#: C/beginner.js.page:49(title) C/beginner.c.page:69(title)
+#: 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 "Entrée de données numériques et de texte"
 
-#: C/beginner.vala.page:60(title) C/beginner.py.page:57(title)
-#: C/beginner.js.page:51(title) C/beginner.c.page:71(title)
+#: 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 "Éditeur de texte multiligne"
 
-#: C/beginner.vala.page:62(title) C/beginner.py.page:59(title)
-#: C/beginner.js.page:53(title) C/beginner.c.page:73(title)
+#: 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 "Menu, boîte combinée et éléments graphiques de barre d'outils"
 
-#: C/beginner.vala.page:64(title) C/beginner.py.page:61(title)
-#: C/beginner.js.page:55(title) C/beginner.c.page:75(title)
+#: 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 "Élément graphique arborescent"
 
-#: C/beginner.vala.page:66(title) C/beginner.py.page:63(title)
-#: C/beginner.js.page:57(title) C/beginner.c.page:77(title)
+#: 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 "Sélecteurs"
 
-#: C/beginner.vala.page:67(title) C/beginner.py.page:64(title)
-#: C/beginner.js.page:58(title) C/beginner.c.page:78(title)
+#: 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 "Sélecteurs de fichiers"
 
-#: C/beginner.vala.page:69(title) C/beginner.py.page:66(title)
-#: C/beginner.js.page:60(title) C/beginner.c.page:80(title)
+#: 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 "Sélecteurs de polices"
 
-#: C/beginner.vala.page:71(title) C/beginner.py.page:68(title)
-#: C/beginner.js.page:62(title) C/beginner.c.page:82(title)
+#: 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 "Sélecteurs de couleurs"
 
-#: C/beginner.vala.page:74(title) C/beginner.py.page:71(title)
-#: C/beginner.js.page:65(title) C/beginner.c.page:85(title)
+#: 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 "Conteneurs d'agencement"
 
-#: C/beginner.vala.page:76(title) C/beginner.py.page:73(title)
-#: C/beginner.js.page:67(title) C/beginner.c.page:87(title)
-msgid "Ornaments"
-msgstr "Décorations"
-
-#: C/beginner.vala.page:78(title) C/beginner.py.page:75(title)
-#: C/beginner.js.page:69(title) C/beginner.c.page:89(title)
+#: 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 "Barre de défilement"
 
-#: C/beginner.vala.page:80(title) C/beginner.py.page:77(title)
-#: C/beginner.js.page:71(title) C/beginner.c.page:91(title)
+#: 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 "Divers"
 
-#: C/beginner.vala.page:85(title) C/beginner.py.page:82(title)
-#: C/beginner.js.page:76(title) C/beginner.c.page:96(title)
-msgid "Exercises"
-msgstr "Exercices"
+#: C/beginner.py.page:8(title)
+#, fuzzy
+#| msgid "Gtk Widget Sample Code and Tutorials"
+msgid "Gtk Widget Sample Code and Tutorials (Python)"
+msgstr "Exemple de code pour l'élément graphique Gtk et tutoriels"
 
-#: C/beginner.py.page:20(p)
+#: C/beginner.py.page:12(desc)
 msgid ""
-"If you have never programmed before, or are not familiar with the concepts "
-"of object oriented programming, you may need to learn a few basics first. "
-"The book <link href=\"http://learnpythonthehardway.org/book/\";>Learn Python "
-"the Hard Way</link> may be a better place for you to start. Once you master "
-"the basics, be sure to come back and check out these tutorials."
+"A guide to GUI programming using GTK+, including code samples and practice "
+"exercises."
 msgstr ""
-"Si vous n'avez jamais programmé auparavant, ou si vous n'êtes pas à l'aise "
-"avec le concept de programmation orienté sur les objets, il est préférable "
-"d'acquérir quelques bases avant toute chose. Vous pourriez par exemple "
-"commencer par lire le livre <link href=\"http://learnpythonthehardway.org/";
-"book/\">Learn Python the Hard Way</link>. Dès que vous maîtrisez les bases, "
-"n'oubliez pas de revenir consulter ces tutoriels."
+"Un guide pour la programmation d'interfaces graphiques avec GTK+, incluant "
+"des exemples de code et des exercices pratiques."
 
-#: C/beginner.py.page:25(p)
-msgid "The Python programming language."
-msgstr "Le language de programmation Python."
+#: C/beginner.py.page:19(title)
+msgid "Gtk Widget Sample Code and Tutorials"
+msgstr "Exemple de code pour l'élément graphique Gtk et tutoriels"
 
-#: C/beginner.py.page:42(p)
-msgid "Copy and paste the code into <var>filename</var>.py"
-msgstr "Copiez et collez le code dans <var>nomdufichier</var>.py"
+#: 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 ""
+"Si vous êtes débutant et que vous souhaitez un tutoriel pour vous guider pas "
+"à pas dans la découverte des possibilités de GTK+ 3, vous devriez consulter "
+"cette page <link xref=\"tutorial.py\"/>. Si vous recherchez un élément "
+"graphique en particulier, vous pouvez le trouver dans les sections ci-"
+"dessous."
 
-#: C/beginner.py.page:44(screen)
-#, no-wrap
-msgid "python <var>filename</var>.py"
-msgstr "python <var>nomdufichier</var>.py"
+#: C/beginner.js.page:15(desc)
+msgid ""
+"A beginner's guide to writing GNOME applications in JavaScript, including "
+"code samples and practice exercises."
+msgstr ""
+"Un guide pour débuter la programmation d'applications GNOME en JavaScript, y "
+"compris des exemples de code et des exercices pratiques."
 
 #: C/beginner.js.page:18(title)
-#, fuzzy
-#| msgid "0 Beginner's Tutorials and samples"
 msgid "0 Beginner's tutorials and samples"
-msgstr "0 Tutoriels pour les débutants et exemples"
+msgstr "Tutoriels pour les débutants zéro et exemples"
 
 #: 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."
+msgstr ""
+"JavaScript est l'un des langages de programmation les plus courants sur le "
+"Web. Il n'est cependant pas seulement réservé au Web. Même si vous n'avez "
+"que des notions de base en JavaScript, vous pouvez quand même programmer des "
+"applications complètes pour GNOME. <link href=\"https://live.gnome.org/";
+"GnomeDocuments\">GNOME Documents</link> est programmé en JavaScript, de même "
+"que <link href=\"https://live.gnome.org/GnomeShell/Tour\";>GNOME Shell</"
+"link>, la partie la plus basique de GNOME."
+
+#: 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 Shell est le bureau qui s'affiche quand vous cliquez sur « Activités » "
+"dans le coin supérieur gauche de votre écran. Il contrôle aussi l'horloge et "
+"toute la barre supérieure. En plus de vous guider dans la programmation "
+"d'applications GNOME, ces tutoriels vont aussi vous montrer comment utiliser "
+"JavaScript pour programmer des extensions pour GNOME Shell, ces extensions "
+"qui lui apportent de nouvelles fonctionnalités ou modifient son comportement."
+
+#: C/beginner.js.page:25(title)
+msgid "Getting Started"
+msgstr "Premiers pas"
+
+#: 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 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:"
+"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 ""
+"Ces tutoriels sont destinés à des personnes ayant déjà des connaissances en "
+"JavaScript et qui ont déjà installé GNOME comme interface de bureau sur leur "
+"ordinateur, mais qui n'ont encore jamais developpé d'application GNOME. Si "
+"vous n'avez encore aucune connaissance en JavaScript, ou si vous avez besoin "
+"d'aide pour installer GNOME, consultez d'abord ces ressources :"
 
-#: C/beginner.js.page:22(p)
+#: 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\";>Eloquent "
+"JavaScript</link> est un livre gratuit, sous licence Creative Commons et qui "
+"explique les bases de la programmation en JavaScript. Comme vous n'allez pas "
+"programmer en JavaScript pour le Web, il vous suffit de lire les chapitres "
+"de 1 à 10 approximativement."
 
-#: C/beginner.js.page:23(p)
+#: 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. If you're already "
-"using one of those distributions, you can install GNOME using its package "
-"manager, then log out and choose a GNOME session as you log back in."
+"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/\";>Obtenir GNOME</link> pour "
+"une distribution, comme Fedora, openSUSE ou Ubuntu. Chaque distribution "
+"possède ses propres règles pour l'obtention de GNOME."
 
-#: C/beginner.js.page:25(p)
+#: C/beginner.js.page:30(p)
 msgid ""
-"JavaScript is normally seen as a basic web scripting language, but despite "
-"its simplicity it's also a first-class language for writing GNOME "
-"applications with. Unlike with other platforms, GNOME applications written "
-"in JavaScript aren't web apps running on the desktop and using a limited set "
-"of features. In fact, <link href=\"https://live.gnome.org/GnomeShell/Tour";
-"\">GNOME Shell</link> itself is written in JavaScript, and you can use "
-"JavaScript to write your own extensions for it as well as full-featured "
-"applications."
+"<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\">Configurer Gedit</link> pour programmer des "
+"applications. Gedit est l'éditeur de texte de GNOME et parfois simplement "
+"appelé « éditeur de texte »."
 
-#: C/beginner.js.page:26(p)
+#: C/beginner.js.page:41(p)
 msgid ""
-"These tutorials will teach you the basics of how to do so, and show you how "
-"to find more detailed reference material for when you are ready to move on."
+"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 ""
+"Ces exemples montrent l'utilisation des éléments graphiques dans vos "
+"applications GNOME. Chacun d'eux fait la démonstration d'une application "
+"complète avec des exemples d'éléments graphiques. À la fin de chaque "
+"exemple, vous trouverez des liens pour de plus amples informations."
 
-#: C/beginner.js.page:35(p)
-msgid ""
-"These samples show how to use certain widgets and features in your GNOME "
-"applications. Each one demonstrates a complete application which showcases "
-"the featured widget, and may have step-by-step instructions which show how "
-"to build and customize it. Links at the end of each sample will take you to "
-"more detailed reference material, if you need it."
-msgstr ""
-
-#: C/beginner.js.page:38(p)
+#: C/beginner.js.page:44(p)
 msgid "Copy and paste the code into <var>filename</var>.js"
 msgstr "Copiez et collez le code dans <var>nomdufichier</var>.js"
 
-#: C/beginner.js.page:39(p)
+#: C/beginner.js.page:45(p)
 msgid "In the terminal, type:"
 msgstr "Saisissez dans le terminal :"
 
-#: C/beginner.js.page:40(screen)
+#: C/beginner.js.page:46(screen)
 #, no-wrap
 msgid "gjs <var>filename</var>.js"
 msgstr "gjs <var>nomdufichier</var>.js"
 
-#: C/beginner.c.page:24(p)
+#: C/beginner.c.page:8(title)
+#, fuzzy
+#| msgid "0 Beginner's Tutorials"
+msgid "Beginner's Tutorials (C)"
+msgstr "Tutoriels pour les débutants zéro"
+
+#: C/beginner.c.page:25(p)
 msgid "The C programming language"
 msgstr "Le language de programmation C"
 
-#: C/beginner.c.page:41(p)
+#: C/beginner.c.page:42(p)
 msgid "Copy and paste the code into <var>filename</var>.c"
 msgstr "Copiez et collez le code dans <var>nomdufichier</var>.c"
 
-#: C/beginner.c.page:43(screen)
+#: 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>nomdufichier</var>.c `pkg-config --cflags --libs gtk+-3.0` -o <var>nomdufichier</var>\n"
 
-#: C/beginner.c.page:49(p)
+#: 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+ "
@@ -11118,19 +19029,19 @@ msgstr ""
 "consultez <link href=\"http://developer.gnome.org/gtk3/3.4/gtk-compiling.html";
 "\">Compilation d'applications Gtk+ sur UNIX</link>."
 
-#: C/beginner.c.page:53(p)
+#: C/beginner.c.page:54(p)
 msgid "You can also use the Vala compiler to compile these samples:"
 msgstr ""
+"Vous pouvez aussi utiliser le compilateur vala pour construire ces exemples :"
 
-#: C/beginner.c.page:56(screen)
-#, fuzzy, no-wrap
-#| msgid "valac --pkg gtk+-3.0 <var>filename</var>.vala"
+#: 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>nomdufichier</var>.vala"
+msgstr "valac --pkg gtk+-3.0 <var>nom du fichier</var>.c"
 
-#: C/beginner.c.page:58(p)
+#: C/beginner.c.page:59(p)
 msgid "To run:"
-msgstr ""
+msgstr "To run:"
 
 #: C/audio-player.vala.page:9(desc)
 msgid "Coming soon..."
@@ -11142,61 +19053,984 @@ msgstr "3 Lecteur audio"
 
 #. When image changes, this message 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:28(None) C/aboutdialog.py.page:20(None)
-#: C/aboutdialog.js.page:19(None)
+#: 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"
 
-#: C/aboutdialog.vala.page:24(desc) C/aboutdialog.js.page:15(desc)
+#: C/aboutdialog.vala.page:7(title)
+#, fuzzy
+#| msgid "AboutDialog"
+msgid "AboutDialog (Vala)"
+msgstr "AboutDialog"
+
+#: C/aboutdialog.vala.page:25(desc) C/aboutdialog.js.page:16(desc)
+#: C/aboutdialog.c.page:19(desc)
 msgid "Display information about an application"
 msgstr "Afficher des informations à propos d'une application"
 
-#: C/aboutdialog.vala.page:27(title) C/aboutdialog.py.page:19(title)
-#: C/aboutdialog.js.page:18(title)
+#: C/aboutdialog.vala.page:28(title) C/aboutdialog.py.page:21(title)
+#: C/aboutdialog.js.page:19(title) C/aboutdialog.c.page:22(title)
 msgid "AboutDialog"
 msgstr "AboutDialog"
 
-#: C/aboutdialog.vala.page:29(p)
+#: C/aboutdialog.vala.page:30(p) C/aboutdialog.c.page:25(p)
 msgid "An AboutDialog example using Gtk.ApplicationWindow and Menu"
 msgstr "Un exemple AboutDialog utilisant Gtk.ApplicationWindow et Menu"
 
-#: C/aboutdialog.vala.page:39(link)
+#: C/aboutdialog.vala.page:40(link)
 msgid "set_default_size"
 msgstr "set_default_size"
 
-#: C/aboutdialog.py.page:16(desc)
+#: C/aboutdialog.py.page:7(title)
+#, fuzzy
+#| msgid "AboutDialog"
+msgid "AboutDialog (Python)"
+msgstr "AboutDialog"
+
+#: C/aboutdialog.py.page:18(desc)
 msgid "A window that displays information about an application"
 msgstr ""
 "Une boîte de dialogue qui affiche des informations à propos d'une application"
 
-#: C/aboutdialog.py.page:21(p)
+#: 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 ""
 "Un exemple AboutDialog utilisant Gtk.ApplicationWindow et Menu (le « about » "
-"s'affiche si « About » a été sélectionné dans le menu)."
+"s'affiche si « À propos » a été sélectionné dans le menu)."
+
+#: C/aboutdialog.py.page:35(title)
+msgid "Useful methods for an AboutDialog widget"
+msgstr "Méthodes utiles pour un élément graphique AboutDialog"
 
-#: C/aboutdialog.py.page:38(link)
+#: C/aboutdialog.py.page:45(link) C/aboutdialog.c.page:36(link)
 msgid "GtkAboutDialog"
 msgstr "GtkAboutDialog"
 
-#: C/aboutdialog.js.page:20(p)
+#: C/aboutdialog.js.page:6(title)
+#, fuzzy
+#| msgid "AboutDialog"
+msgid "AboutDialog (JavaScript)"
+msgstr "AboutDialog"
+
+#: 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 ""
 "Une boîte de dialogue qui affiche des informations sur une application ainsi "
-"sur ses auteurs. Celle-ci est activée en cliquant sur « About » dans le menu "
-"de l'application, ce qui est normalement son emplacement approprié."
+"que sur ses auteurs. Celle-ci est activée en cliquant sur « À propos » dans "
+"le menu de l'application, ce qui est normalement son emplacement approprié."
 
-#: C/aboutdialog.js.page:29(link)
+#: C/aboutdialog.js.page:30(link)
 msgid "Gtk.AboutDialog"
 msgstr "Gtk.AboutDialog"
 
+#: C/aboutdialog.c.page:7(title)
+#, fuzzy
+#| msgid "AboutDialog"
+msgid "AboutDialog (C)"
+msgstr "AboutDialog"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/03_getting_the_signal.js.page:36(None)
+#: C/03_getting_the_signal.js.page:352(None)
+#, fuzzy
+#| msgid "@@image: 'media/scale.png'; md5=462c52a53b773cb9e8c62c646bf88452"
+msgid ""
+"@@image: 'media/03_jssignal_01.png'; md5=8d6ecab185f4af4534cc255d62b58b8e"
+msgstr "@@image: 'media/scale.png'; md5=462c52a53b773cb9e8c62c646bf88452"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/03_getting_the_signal.js.page:156(None)
+#: C/03_getting_the_signal.js.page:358(None)
+#, fuzzy
+#| msgid "@@image: 'media/scale2.png'; md5=ae2ba0a6675f3d9cdcd961cdf32f1a5c"
+msgid ""
+"@@image: 'media/03_jssignal_02.png'; md5=ba941390fbafc4a0f653c8f70bca92c0"
+msgstr "@@image: 'media/scale2.png'; md5=ae2ba0a6675f3d9cdcd961cdf32f1a5c"
+
+#. When image changes, this message 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 ""
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/03_getting_the_signal.js.page:232(None)
+#: C/03_getting_the_signal.js.page:364(None)
+#, fuzzy
+#| msgid "@@image: 'media/scale2.png'; md5=ae2ba0a6675f3d9cdcd961cdf32f1a5c"
+msgid ""
+"@@image: 'media/03_jssignal_03.png'; md5=49ecf251b0bf57543c8d79a77b6f306d"
+msgstr "@@image: 'media/scale2.png'; md5=ae2ba0a6675f3d9cdcd961cdf32f1a5c"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/03_getting_the_signal.js.page:303(None)
+#: C/03_getting_the_signal.js.page:370(None)
+#, fuzzy
+#| msgid "@@image: 'media/scale.png'; md5=462c52a53b773cb9e8c62c646bf88452"
+msgid ""
+"@@image: 'media/03_jssignal_04.png'; md5=dfc5221ca15ca9fba7d3c76a73804e2d"
+msgstr "@@image: 'media/scale.png'; md5=462c52a53b773cb9e8c62c646bf88452"
+
+#: C/03_getting_the_signal.js.page:20(desc)
+#, fuzzy
+#| msgid "A button widget that changes its label when you click it."
+msgid "Create Buttons and other widgets that do things when you click on them."
+msgstr ""
+"Un élément graphique Bouton qui change d'étiquette quand il est cliqué."
+
+#: C/03_getting_the_signal.js.page:23(title)
+#, fuzzy
+#| msgid "Connecting the signals"
+msgid "3. Getting the Signal"
+msgstr "Connexion des signaux"
+
+#: 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 ""
+
+#: C/03_getting_the_signal.js.page:31(title)
+#, fuzzy
+#| msgid "A basic \"hello, world\" application"
+msgid "A basic application"
+msgstr "Une application basique « hello, world »"
+
+#: 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 ""
+
+#: 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 ""
+
+#: C/03_getting_the_signal.js.page:34(p)
+msgid "Here is an extremely basic example:"
+msgstr ""
+
+#: 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 ""
+
+#: 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 ""
+
+#: 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 ""
+
+#: 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 ""
+
+#: C/03_getting_the_signal.js.page:76(title)
+#, fuzzy
+#| msgid "Creating the buttons"
+msgid "Click the button"
+msgstr "Création des boutons"
+
+#: 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 ""
+
+#: C/03_getting_the_signal.js.page:84(p)
+msgid "First, we create the window itself:"
+msgstr ""
+
+#: 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 ""
+
+#: 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 ""
+
+#: 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 ""
+
+#: 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 ""
+
+#: C/03_getting_the_signal.js.page:130(p)
+msgid ""
+"Now, we write the _getACookie function. Whenever our Button sends out its "
+"\"clicked\" signal, the code in this function will run. In this case, all it "
+"does is increase the number of cookies by 1, and update the Label to show "
+"the new number of cookies. We do this using the Label's set_label method."
+msgstr ""
+
+#: C/03_getting_the_signal.js.page:131(p)
+msgid ""
+"Many widgets have the same properties and methods. Both Labels and Buttons, "
+"for instance, have a label property that says what text is inside them, and "
+"get_label and set_label methods that let you check what that text is and "
+"change it, respectively. So if you learn how one widget works, you'll also "
+"know how others like it work."
+msgstr ""
+
+#: C/03_getting_the_signal.js.page:144(p)
+msgid ""
+"Finally, we run the application, using the same kind of code as in our last "
+"tutorial."
+msgstr ""
+
+#: C/03_getting_the_signal.js.page:153(title)
+#, fuzzy
+#| msgid "Creating the switches"
+msgid "Flip the switch"
+msgstr "Création des interrupteurs"
+
+#: C/03_getting_the_signal.js.page:154(p)
+msgid ""
+"Buttons aren't the only input widgets in our Gtk+ toolbox. We can also use "
+"switches, like the one in this example. Switches don't have a label "
+"property, so we have to create a separate Label that says what it does to go "
+"next to it."
+msgstr ""
+
+#: C/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 ""
+
+#: C/03_getting_the_signal.js.page:162(p)
+msgid ""
+"You may have seen Switches like these in GNOME's accessibility menu, which "
+"let you turn features like large text and the on-screen keyboard on and off. "
+"In this case, the Switch controls our imaginary cookie dispenser. If the "
+"Switch is turned on, you can get cookies by clicking the \"Get a cookie\" "
+"Button. If it's turned off, clicking the Button won't do anything."
+msgstr ""
+
+#: C/03_getting_the_signal.js.page:163(p)
+msgid ""
+"You can get to the accessibility menu by clicking on the outline of a human, "
+"near your name in the upper-right corner of the screen."
+msgstr ""
+
+#: C/03_getting_the_signal.js.page:164(p)
+msgid "Here's how we create the Switch:"
+msgstr ""
+
+#: C/03_getting_the_signal.js.page:170(p)
+msgid ""
+"We don't actually need to connect the Switch to anything. All we need to do "
+"is write an if statement in our _getACookie function, to check to see if the "
+"Switch is turned on. If we wanted to make something happen as soon as you "
+"flip the Switch, though, we would connect its notify::active signal, like so:"
+msgstr ""
+
+#: C/03_getting_the_signal.js.page:176(p)
+msgid ""
+"A Switch is set to the off position by default. If we wanted the Switch to "
+"start out turned on, we would set the value of its active property to true "
+"when we create it."
+msgstr ""
+
+#: C/03_getting_the_signal.js.page:181(p)
+msgid ""
+"Let's just create it normally, though, and then create the Label that goes "
+"with it. We want the Switch and the Label to be kept right next to each "
+"other, so we'll create a Grid just for them, then put that Grid in our "
+"larger Grid that holds all the widgets inside it. Here's what the code looks "
+"like to create all that:"
+msgstr ""
+
+#: C/03_getting_the_signal.js.page:200(p)
+msgid "And now we arrange everything in the larger Grid like so."
+msgstr ""
+
+#: C/03_getting_the_signal.js.page:208(p)
+msgid ""
+"Now we change the _getACookie function so that it checks to see if the "
+"cookie dispenser is turned on. We do that by using the Switch's get_active "
+"method. It returns true if the Switch is turned on, and false if the Switch "
+"is turned off."
+msgstr ""
+
+#: C/03_getting_the_signal.js.page:209(p)
+msgid ""
+"When a method is used in an if statement like this, the code inside the if "
+"statement is executed if the method returns true."
+msgstr ""
+
+#: C/03_getting_the_signal.js.page:228(title)
+#, fuzzy
+#| msgid "Creating the radiobuttons"
+msgid "Tuning the radio"
+msgstr "Création des boutons de radio"
+
+#: 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 ""
+
+#: 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 ""
+
+#: 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 ""
+
+#: C/03_getting_the_signal.js.page:256(p)
+msgid ""
+"Next, we create a Grid for the RadioButtons. Remember, we don't have to "
+"arrange things in Grids in the same order that we create them in."
+msgstr ""
+
+#: C/03_getting_the_signal.js.page:265(p)
+msgid ""
+"Normally, the RadioButton that's selected by default is the one that's the "
+"name of the group. We want the first \"Not cookie\" button to be selected by "
+"default, though, so we use its set_active method."
+msgstr ""
+
+#: C/03_getting_the_signal.js.page:266(p)
+msgid "We could also set its active property to true when we create it."
+msgstr ""
+
+#: C/03_getting_the_signal.js.page:272(p)
+msgid "Now we arrange everything in our main Grid like usual ..."
+msgstr ""
+
+#: 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 ""
+
+#: C/03_getting_the_signal.js.page:299(title)
+msgid "Can you spell \"cookie\"?"
+msgstr ""
+
+#: 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 ""
+
+#: 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 ""
+
+#: C/03_getting_the_signal.js.page:305(p)
+msgid "After we change the window's name, we create the Entry widget."
+msgstr ""
+
+#: C/03_getting_the_signal.js.page:311(p)
+msgid "Next, we arrange everything in the Grid ..."
+msgstr ""
+
+#: C/03_getting_the_signal.js.page:319(p)
+msgid ""
+"And now we modify _getACookie's if statement again, using the Entry's "
+"get_text method to retrieve the text that you entered into it and see if you "
+"spelled \"cookie\" right. We don't care whether you capitalize \"cookie\" or "
+"not, so we use JavaScript's built-in toLowerCase method to change the "
+"Entry's text to all lower case inside the if statement."
+msgstr ""
+
+#: C/03_getting_the_signal.js.page:320(p)
+msgid ""
+"An Entry widget doesn't have a label property, which is a set text string "
+"that the user can't change. (You can't normally change the label on a "
+"Button, for instance.) Instead, it has a text property, which changes to "
+"match what the user types in."
+msgstr ""
+
+#: C/03_getting_the_signal.js.page:340(p)
+msgid ""
+"<link xref=\"04_popup_dialog_boxes.js\">Click here</link> to go on to the "
+"next tutorial. Or keep reading, if you'd like to see the complete code for "
+"each version of our cookie maker application."
+msgstr ""
+
+#: C/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 ""
+
+#: C/03_getting_the_signal.js.page:346(title)
+#, fuzzy
+#| msgid "Complete code sample"
+msgid "Complete code samples"
+msgstr "Exemple complet de code"
+
+#: C/03_getting_the_signal.js.page:351(title)
+#, fuzzy
+#| msgid "Code samples"
+msgid "Code sample with Button"
+msgstr "Exemples de code"
+
+#: C/03_getting_the_signal.js.page:357(title)
+#, fuzzy
+#| msgid "Code samples"
+msgid "Code sample with Switch"
+msgstr "Exemples de code"
+
+#: C/03_getting_the_signal.js.page:363(title)
+#, fuzzy
+#| msgid "Creating the radiobuttons"
+msgid "Code sample with RadioButton"
+msgstr "Création des boutons de radio"
+
+#: C/03_getting_the_signal.js.page:369(title)
+#, fuzzy
+#| msgid "Code samples"
+msgid "Code sample with Entry"
+msgstr "Exemples de 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/02_welcome_to_the_grid.js.page:94(None)
+#, fuzzy
+#| msgid "@@image: 'media/grid.png'; md5=27d45da115401127456a3b854dcfc5be"
+msgid "@@image: 'media/02_jsgrid_01.png'; md5=3fdc22d361cf801f71557fdc76ae5b49"
+msgstr "@@image: 'media/grid.png'; md5=27d45da115401127456a3b854dcfc5be"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/02_welcome_to_the_grid.js.page:149(None)
+#, fuzzy
+#| msgid "@@image: 'media/grid.png'; md5=27d45da115401127456a3b854dcfc5be"
+msgid "@@image: 'media/02_jsgrid_02.png'; md5=07db86b0043ba5c3c24a90d7322bd81e"
+msgstr "@@image: 'media/grid.png'; md5=27d45da115401127456a3b854dcfc5be"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/02_welcome_to_the_grid.js.page:166(None)
+#, fuzzy
+#| msgid ""
+#| "@@image: 'media/grid_simple.png'; md5=c806f2e69b30373d4d2e08b41d6cc1f6"
+msgid "@@image: 'media/02_jsgrid_03.png'; md5=817351e73c687d47253c56ed06b6629f"
+msgstr "@@image: 'media/grid_simple.png'; md5=c806f2e69b30373d4d2e08b41d6cc1f6"
+
+#. When image changes, this message 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)
+#, fuzzy
+#| msgid "@@image: 'media/glade_ui.png'; md5=baea74fe213bc12ea934f64f6977215a"
+msgid "@@image: 'media/02_jsgrid_04.png'; md5=eeaead27cee2851877fc3cfe66177f07"
+msgstr "@@image: 'media/glade_ui.png'; md5=baea74fe213bc12ea934f64f6977215a"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/02_welcome_to_the_grid.js.page:205(None)
+#, fuzzy
+#| msgid "@@image: 'media/grid.png'; md5=27d45da115401127456a3b854dcfc5be"
+msgid "@@image: 'media/02_jsgrid_05.png'; md5=a3ad12f432d5977fc1f66302ad5b7498"
+msgstr "@@image: 'media/grid.png'; md5=27d45da115401127456a3b854dcfc5be"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/02_welcome_to_the_grid.js.page:216(None)
+#, fuzzy
+#| msgid "@@image: 'media/grid.png'; md5=27d45da115401127456a3b854dcfc5be"
+msgid "@@image: 'media/02_jsgrid_06.png'; md5=450e48dbf6b8f5ce1c208e4812e1714b"
+msgstr "@@image: 'media/grid.png'; md5=27d45da115401127456a3b854dcfc5be"
+
+#. When image changes, this message will be marked fuzzy or untranslated for you.
+#. It doesn't matter what you translate it to: it's not used at all.
+#: C/02_welcome_to_the_grid.js.page:226(None)
+#, fuzzy
+#| msgid ""
+#| "@@image: 'media/grid_simple.png'; md5=c806f2e69b30373d4d2e08b41d6cc1f6"
+msgid "@@image: 'media/02_jsgrid_07.png'; md5=0b304d70728903fbb2601d55bf00fdb9"
+msgstr "@@image: 'media/grid_simple.png'; md5=c806f2e69b30373d4d2e08b41d6cc1f6"
+
+#. When image changes, this message 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)
+#, fuzzy
+#| msgid "@@image: 'media/grid.png'; md5=27d45da115401127456a3b854dcfc5be"
+msgid "@@image: 'media/02_jsgrid_08.png'; md5=78890beb47bd11360154b8ca4d50d1ff"
+msgstr "@@image: 'media/grid.png'; md5=27d45da115401127456a3b854dcfc5be"
+
+#: C/02_welcome_to_the_grid.js.page:19(desc)
+msgid "Learn how to lay out UI components, like Images and Labels."
+msgstr ""
+
+#: C/02_welcome_to_the_grid.js.page:22(title)
+msgid "2. Welcome to the Grid"
+msgstr ""
+
+#: C/02_welcome_to_the_grid.js.page:24(p)
+msgid ""
+"This tutorial will show you how to create basic widgets, or parts of the "
+"GNOME user interface, like Images and Labels. You'll then learn how to "
+"arrange them all in a Grid, which lets you put widgets exactly where you "
+"want them."
+msgstr ""
+
+#: C/02_welcome_to_the_grid.js.page:25(p)
+msgid ""
+"Have you taken <link xref=\"hellognome.js\">the first tutorial in this "
+"series</link> already? You'll want to do so before continuing."
+msgstr ""
+
+#: C/02_welcome_to_the_grid.js.page:31(title)
+msgid "Going native"
+msgstr ""
+
+#: C/02_welcome_to_the_grid.js.page:33(p)
+msgid ""
+"In the last tutorial, we created what was basically a GNOME window frame for "
+"a web app. All the GNOME-specific code we needed to learn revolved around "
+"putting the WebView -- the widget containing our application -- into an "
+"ApplicationWindow, and telling it to display. The application itself was "
+"written in HTML and JavaScript, just like most pages on the web."
+msgstr ""
+
+#: C/02_welcome_to_the_grid.js.page:34(p)
+msgid ""
+"This time, we're going to use only native GNOME widgets. A widget is just a "
+"thing, like a checkbox or picture, and GNOME has a wide variety of them to "
+"choose from. We call them \"native\" widgets to distinguish them from things "
+"like the button and header in the web app we wrote. Because instead of using "
+"web code, these are going to be 100 percent GNOME, using Gtk+."
+msgstr ""
+
+#: C/02_welcome_to_the_grid.js.page:35(p)
+msgid ""
+"Gtk+ stands for \"GIMP Toolkit.\" It's like a toolbox of widgets that you "
+"can reach into, while building your applications. It was originally written "
+"for <link href=\"http://www.gimp.org/\";>the GIMP,</link> which is a free "
+"software image editor."
+msgstr ""
+
+#: C/02_welcome_to_the_grid.js.page:39(title)
+#, fuzzy
+#| msgid "Setting up our image actors"
+msgid "Setting up our application"
+msgstr "Mise en place de nos acteurs image"
+
+#: 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 ""
+
+#: 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 ""
+
+#: C/02_welcome_to_the_grid.js.page:49(p)
+msgid "Speaking of which:"
+msgstr ""
+
+#: C/02_welcome_to_the_grid.js.page:73(p)
+msgid ""
+"This is the start of the application itself, and the _init function which "
+"creates it. It tells _buildUI to create an ApplicationWindow, which we're "
+"going to call _window, and it tells our window to present itself whenever "
+"needed."
+msgstr ""
+
+#: C/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 ""
+
+#: 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 ""
+
+#: C/02_welcome_to_the_grid.js.page:91(title)
+#, fuzzy
+#| msgid "Reacting to the clicks"
+msgid "Reaching into the Gtk+ toolbox"
+msgstr "Réaction aux clics"
+
+#: 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 ""
+
+#: 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 ""
+
+#: 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."
+msgstr ""
+
+#: 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 ""
+
+#: C/02_welcome_to_the_grid.js.page:109(p)
+msgid ""
+"Yes, it sounds redundant for a Label to have a label property, but it's not. "
+"Other widgets that contain text have a label property, so it's "
+"<em>consistent</em> for the Label widget to have one too."
+msgstr ""
+
+#: C/02_welcome_to_the_grid.js.page:110(p)
+msgid ""
+"We can't just add these widgets to our window in order, though, the same way "
+"HTML elements appear in the order you write them. That's because an "
+"ApplicationWindow can only contain one widget."
+msgstr ""
+
+#: C/02_welcome_to_the_grid.js.page:111(p)
+msgid ""
+"How do we get around that? By making that one widget a container widget, "
+"which can hold more than one widget and organize them inside it. Behold: The "
+"Grid."
+msgstr ""
+
+#: C/02_welcome_to_the_grid.js.page:117(p)
+msgid ""
+"We're not giving it any properties yet. Those will come later, as we learn "
+"how to use the Grid's powers. First, let's attach the Image and Label we "
+"made to our Grid."
+msgstr ""
+
+#: C/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 ""
+
+#: C/02_welcome_to_the_grid.js.page:126(p)
+msgid ""
+"The <em>first</em> number is what left-to-right position to put things in, "
+"starting from 0. Any widget that uses a 0 here goes all the way to the left."
+msgstr ""
+
+#: C/02_welcome_to_the_grid.js.page:127(p)
+msgid ""
+"The <em>second</em> number is what top-to-botton position to put a given "
+"widget in, starting from 0. The Label goes beneath the Image, so we give the "
+"Image a 0 and the Label a 1 here."
+msgstr ""
+
+#: C/02_welcome_to_the_grid.js.page:128(p)
+msgid ""
+"The <em>third</em> and <em>fourth</em> numbers are how many columns and rows "
+"a widget should take up. We'll see how these work in a minute."
+msgstr ""
+
+#: C/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 ""
+
+#: C/02_welcome_to_the_grid.js.page:146(p)
+#, fuzzy
+#| 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"
+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 ""
+"Pour lancer cette application, enregistrez-la d'abord sous le nom helloWorld."
+"js, puis ouvrez Terminal, allez dans le dossier où l'application est "
+"enregistrée et lancez"
+
+#: C/02_welcome_to_the_grid.js.page:147(screen)
+#, no-wrap
+msgid " <output style=\"prompt\">$ </output>gjs welcome_to_the_grid.js "
+msgstr ""
+
+#: C/02_welcome_to_the_grid.js.page:151(p)
+msgid ""
+"There we go! But wait. That doesn't look right. Why is the Label crammed up "
+"next to the Image like that? That doesn't look as nice, and it makes it "
+"harder to read. What can we do about this?"
+msgstr ""
+
+#: C/02_welcome_to_the_grid.js.page:155(title)
+#, fuzzy
+#| msgid "Creating the TreeView"
+msgid "Tweaking the Grid"
+msgstr "Création de la TreeView"
+
+#: 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 ""
+
+#: 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 ""
+
+#: 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 ""
+
+#: 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 ""
+
+#: 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 ""
+
+#: C/02_welcome_to_the_grid.js.page:180(title)
+msgid "Adding more widgets"
+msgstr ""
+
+#: C/02_welcome_to_the_grid.js.page:182(p)
+msgid ""
+"If 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/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 ""
+
+#: 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 ""
+
+#: C/02_welcome_to_the_grid.js.page:198(p)
+msgid "There are two things you should take note of, here."
+msgstr ""
+
+#: 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 ""
+
+#: 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 ""
+
+#: 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 ""
+
+#: C/02_welcome_to_the_grid.js.page:207(p)
+msgid "Second, we can set the Grid's column_homogenous property to true."
+msgstr ""
+
+#: C/02_welcome_to_the_grid.js.page:215(p)
+#, fuzzy
+#| msgid "Weatherapp.js file looks like this:"
+msgid "That makes it look something like this:"
+msgstr "Le fichier weatherapp.js ressemble à ceci :"
+
+#: C/02_welcome_to_the_grid.js.page:218(p)
+msgid ""
+"And third, we can set the Grid's column_spacing property, the same way we "
+"set its row_spacing."
+msgstr ""
+
+#: C/02_welcome_to_the_grid.js.page:225(p)
+#, fuzzy
+#| msgid "Weatherapp.js file looks like this:"
+msgid "That makes it look like this:"
+msgstr "Le fichier weatherapp.js ressemble à ceci :"
+
+#: C/02_welcome_to_the_grid.js.page:230(title)
+#, fuzzy
+#| msgid "Loading the images"
+msgid "Using stock images"
+msgstr "Chargement des images"
+
+#: C/02_welcome_to_the_grid.js.page:232(p)
+msgid ""
+"GNOME has a lot of stock images on hand already, that we can use if we don't "
+"feel like creating our own or if we want a universally-recognized icon. "
+"Here's how we create a stock image, compared to how we create a normal one:"
+msgstr ""
+
+#: C/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 ""
+
+#: C/02_welcome_to_the_grid.js.page:247(p)
+msgid "That gives us this, when we run it:"
+msgstr ""
+
+#: C/02_welcome_to_the_grid.js.page:250(p)
+msgid ""
+"That's what the stock \"About\" icon looks like. You can see a list of all "
+"the stock items starting with gtk-about in <link href=\"http://developer.";
+"gnome.org/gtk/2.24/gtk-Stock-Items.html#GTK-STOCK-ABOUT:CAPS\">GNOME's "
+"developer documentation.</link> It was written for C programmers, but you "
+"don't need to know C to use it; just look at the part in quotation marks, "
+"like \"gtk-about\", and copy that part to use the icon next to it."
+msgstr ""
+
+#: C/02_welcome_to_the_grid.js.page:251(p)
+msgid ""
+"We put single quotes around 'gtk-about' here because, unlike text strings "
+"that have double quotes around them, that part will never need to be "
+"translated into another language. In fact, if it <em>were</em> translated "
+"it'd break the icon, because its name is still \"gtk-about\" no matter which "
+"language you speak."
+msgstr ""
+
+#: C/02_welcome_to_the_grid.js.page:257(p)
+msgid ""
+"Before we go on to the next tutorial, let's try something a little different:"
+msgstr ""
+
+#: C/02_welcome_to_the_grid.js.page:269(p)
+msgid ""
+"That's right, we turned the Label into a Button just by changing the name! "
+"If you run the application and click on it, though, you'll find that it "
+"doesn't do anything. How do we make our Button do something? That's what "
+"we'll find out, in <link xref=\"getting_the_signal.js\">our next tutorial.</"
+"link>"
+msgstr ""
+
+#: C/02_welcome_to_the_grid.js.page:270(p)
+msgid ""
+"If you like, feel free to spend some time experimenting with Grids, Labels, "
+"and Images, including stock images."
+msgstr ""
+
+#: C/02_welcome_to_the_grid.js.page:271(p)
+msgid ""
+"One trick you can use to make more complex layouts is to nest Grids inside "
+"of each other. This lets you group together related widgets, and rearrange "
+"them easily. Take a look at the <link xref=\"radiobutton.js\">RadioButton</"
+"link> code sample if you'd like to see how this is done."
+msgstr ""
+
 #. Put one translator per line, in the form of NAME <EMAIL>, YEAR1, YEAR2
 #: C/index.page:0(None)
 msgid "translator-credits"
@@ -11206,18 +20040,3 @@ msgstr ""
 "Luc Pionchon <pionchon luc gmail com>, 2011\n"
 "Bruno Brouard <annoa b gmail com>, 2011-12"
 
-#~ msgid "A complete beginner's guide to GTK+ programming"
-#~ msgstr "Un guide complet pour débutant à la programmation GTK+"
-
-#~ msgid ""
-#~ "In these tutorials and samples we use JavaScript and GTK+. These "
-#~ "tutorials and samples expect you to be familiar with the syntax of "
-#~ "JavaScript. If you're not, read <link href=\"http://eloquentjavascript.";
-#~ "net/contents.html\">Eloquent JavaScript</link> or another guide, to learn "
-#~ "how to write JavaScript code."
-#~ msgstr ""
-#~ "Dans ces tutoriels et exemples, nous utilisons JavaScript et GTK+. Ces "
-#~ "tutoriels et exemples supposent que vous êtes familier avec la syntaxe de "
-#~ "JavaScript. Si ce n'est pas le cas, lisez <link href=\"http://";
-#~ "eloquentjavascript.net/contents.html\">Eloquent JavaScript</link> ou un "
-#~ "autre guide pour apprendre à écrire du code JavaScript."



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