[gnome-devel-docs] Update Swedish translation



commit cd3f65229e6b26f0304fa5ccde4cda2607e7ae48
Author: Anders Jonsson <anders jonsson norsjovallen se>
Date:   Fri Mar 26 14:36:05 2021 +0000

    Update Swedish translation

 platform-demos/sv/sv.po | 4543 ++++++++++++++++++++++++++++++++++++++++++++---
 1 file changed, 4324 insertions(+), 219 deletions(-)
---
diff --git a/platform-demos/sv/sv.po b/platform-demos/sv/sv.po
index 39fd59bf..4a289e53 100644
--- a/platform-demos/sv/sv.po
+++ b/platform-demos/sv/sv.po
@@ -7,8 +7,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: platform-demos\n"
-"POT-Creation-Date: 2021-02-19 21:52+0000\n"
-"PO-Revision-Date: 2021-03-13 22:36+0100\n"
+"POT-Creation-Date: 2021-03-13 21:51+0000\n"
+"PO-Revision-Date: 2021-03-26 15:34+0100\n"
 "Last-Translator: Anders Jonsson <anders jonsson norsjovallen se>\n"
 "Language-Team: Svenska <tp-sv listor tp-sv se>\n"
 "Language: sv\n"
@@ -23,6 +23,7 @@ msgctxt "_"
 msgid "translator-credits"
 msgstr ""
 "Sebastian Rasmussen <sebras gmail com>, 2019\n"
+"Anders Jonsson <anders jonsson norsjovallen se>, 2021\n"
 "\n"
 "Skicka synpunkter på översättningen till\n"
 "<tp-sv listor tp-sv se>."
@@ -1304,7 +1305,7 @@ msgstr ""
 "        this.application.connect('startup', this._onStartup.bind(this));\n"
 "    }\n"
 "\n"
-"    // Återanropsfunktion för ”activate”-signal visar fönstret när den aktiveras\n"
+"    // Återanropsfunktion för ”activate”-signal, visar fönstret när den aktiveras\n"
 "    _onActivate() {\n"
 "        this._window.present();\n"
 "    }\n"
@@ -2256,12 +2257,12 @@ msgstr ""
 "        this.application.connect('startup', this._onStartup.bind(this));\n"
 "    }\n"
 "\n"
-"    // Återanropsfunktion för ”activate”-signal visar fönstret när den aktiveras\n"
+"    // Återanropsfunktion för ”activate”-signal, visar fönstret när den aktiveras\n"
 "    _onActivate() {\n"
 "        this._window.present();\n"
 "    }\n"
 "\n"
-"    // Återanropsfunktion för ”startup”-signalen, bygger användargränssnittet\n"
+"    // Återanropsfunktion för ”startup”-signal bygger användargränssnittet\n"
 "    _onStartup() {\n"
 "        this._buildUI();\n"
 "    }\n"
@@ -2452,12 +2453,12 @@ msgstr ""
 "        this.application.connect('startup', this._onStartup.bind(this));\n"
 "    }\n"
 "\n"
-"    // Återanropsfunktion för ”activate”-signal visar fönstret när den aktiveras\n"
+"    // Återanropsfunktion för ”activate”-signal, visar fönstret när den aktiveras\n"
 "    _onActivate() {\n"
 "        this._window.present();\n"
 "    }\n"
 "\n"
-"    // Återanropsfunktion för ”startup”-signalen, bygger användargränssnittet\n"
+"    // Återanropsfunktion för ”startup”-signal bygger användargränssnittet\n"
 "    _onStartup() {\n"
 "        this._buildUI();\n"
 "    }\n"
@@ -2672,12 +2673,12 @@ msgstr ""
 "        this.application.connect('startup', this._onStartup.bind(this));\n"
 "    }\n"
 "\n"
-"    // Återanropsfunktion för ”activate”-signal visar fönstret när den aktiveras\n"
+"    // Återanropsfunktion för ”activate”-signal, visar fönstret när den aktiveras\n"
 "    _onActivate() {\n"
 "        this._window.present();\n"
 "    }\n"
 "\n"
-"    // Återanropsfunktion för ”startup”-signalen, bygger användargränssnittet\n"
+"    // Återanropsfunktion för ”startup”-signal bygger användargränssnittet\n"
 "    _onStartup() {\n"
 "        this._buildUI();\n"
 "    }\n"
@@ -2880,12 +2881,12 @@ msgstr ""
 "        this.application.connect('startup', this._onStartup.bind(this));\n"
 "    }\n"
 "\n"
-"    // Återanropsfunktion för ”activate”-signal visar fönstret när den aktiveras\n"
+"    // Återanropsfunktion för ”activate”-signal, visar fönstret när den aktiveras\n"
 "    _onActivate() {\n"
 "        this._window.present();\n"
 "    }\n"
 "\n"
-"    // Återanropsfunktion för ”startup”-signalen, bygger användargränssnittet\n"
+"    // Återanropsfunktion för ”startup”-signal bygger användargränssnittet\n"
 "    _onStartup() {\n"
 "        this._buildUI();\n"
 "    }\n"
@@ -4052,12 +4053,12 @@ msgstr ""
 "/* Detta är programmet */\n"
 "public class Application : Gtk.Application {\n"
 "\n"
-"\t/* Här åsidosätter vi aktiveringssignalen för GLib.Application */\n"
+"\t/* Här åsidosätter vi ”activate”-signalen för GLib.Application */\n"
 "\tprotected override void activate () {\n"
 "\t\tnew Window (this);\n"
 "\t}\n"
 "\n"
-"\t/* Här åsidosätter vi uppstartssignalen för GLib.Application */\n"
+"\t/* Här åsidosätter vi ”startup”-signalen för GLib.Application */\n"
 "\tprotected override void startup () {\n"
 "\n"
 "\t\tbase.startup ();\n"
@@ -4273,12 +4274,12 @@ msgstr "Visningskomponenter"
 #. (itstool) path: section/title
 #: C/beginner.js.page:59 C/beginner.py.page:36 C/beginner.vala.page:63 C/c.page:123
 msgid "Buttons and toggles"
-msgstr ""
+msgstr "Knappar och brytare"
 
 #. (itstool) path: section/title
 #: C/beginner.js.page:61 C/beginner.py.page:38 C/beginner.vala.page:65 C/c.page:125
 msgid "Numeric and text data entry"
-msgstr ""
+msgstr "Inmatning av numeriska data och text"
 
 #. (itstool) path: section/title
 #: C/beginner.js.page:63 C/beginner.py.page:40 C/beginner.vala.page:67 C/c.page:127
@@ -4288,7 +4289,7 @@ msgstr "Textredigerare med flera rader"
 #. (itstool) path: section/title
 #: C/beginner.js.page:65 C/beginner.py.page:42 C/beginner.vala.page:69 C/c.page:129
 msgid "Menu, combo box and toolbar widgets"
-msgstr ""
+msgstr "Komponenter för meny, kombinationsruta och verktygsfält"
 
 #. (itstool) path: section/title
 #: C/beginner.js.page:67 C/beginner.py.page:44 C/beginner.vala.page:71 C/c.page:131
@@ -4573,7 +4574,7 @@ msgstr ""
 "\n"
 "  /*Skapa ett fönster med en titel och en standardstorlek*/\n"
 "  window = gtk_application_window_new (app);\n"
-"  gtk_window_set_title (GTK_WINDOW (window), \"GNOME Knapp\");\n"
+"  gtk_window_set_title (GTK_WINDOW (window), \"GNOME Button\");\n"
 "  gtk_window_set_default_size (GTK_WINDOW (window), 250, 50);\n"
 "\n"
 "  /*Skapa en knapp med en etikett och lägg till den till fönstret*/\n"
@@ -4731,7 +4732,7 @@ msgstr ""
 "        this._window.present ();\n"
 "    }\n"
 "\n"
-"    // Återanropsfunktion för ”startup”-signalen, initierar menyer och bygger användargränssnittet\n"
+"    // Återanropsfunktion för ”startup”-signal initierar menyer och bygger användargränssnittet\n"
 "    _onStartup() {\n"
 "        this._buildUI();\n"
 "    }\n"
@@ -4742,7 +4743,7 @@ msgstr ""
 "        // Skapa programfönstret\n"
 "            this._window = new Gtk.ApplicationWindow  ({ application: this.application,\n"
 "                                                              window_position: Gtk.WindowPosition.CENTER,\n"
-"                                                              title: \"GNOME Knapp\",\n"
+"                                                              title: \"GNOME Button\",\n"
 "                                                              default_height: 50,\n"
 "                                                              default_width: 250 });\n"
 "\n"
@@ -4829,6 +4830,47 @@ msgid ""
 "exit_status = app.run(sys.argv)\n"
 "sys.exit(exit_status)\n"
 msgstr ""
+"from gi.repository import Gtk\n"
+"import sys\n"
+"\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    # ett fönster\n"
+"\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"GNOME Button\", application=app)\n"
+"        self.set_default_size(250, 50)\n"
+"\n"
+"        # en knapp\n"
+"        button = Gtk.Button()\n"
+"        # med en etikett\n"
+"        button.set_label(\"Klicka på mig\")\n"
+"        # anslut ”clicked”-signalen som utges av knappen\n"
+"        # till återanropsfunktionen do_clicked\n"
+"        button.connect(\"clicked\", self.do_clicked)\n"
+"        # lägg till knappen till fönstret\n"
+"        self.add(button)\n"
+"\n"
+"    # återanropsfunktion ansluten till knappens signal ”clicked”\n"
+"    def do_clicked(self, button):\n"
+"        print(\"Du klickade på mig!\")\n"
+"\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
 
 #. (itstool) path: section/title
 #: C/button.py.page:36
@@ -4852,6 +4894,8 @@ msgid ""
 "<code>set_relief(Gtk.ReliefStyle.NONE)</code> sets to none the relief style of the edges of the Gtk.Button 
- as "
 "opposed to <code>Gtk.ReliefStyle.NORMAL</code>."
 msgstr ""
+"<code>set_relief(Gtk.ReliefStyle.NONE)</code> ställer reliefstilen på kanterna för vår Gtk.Button till 
ingen - "
+"till skillnad från <code>Gtk.ReliefStyle.NORMAL</code>."
 
 #. (itstool) path: item/p
 #: C/button.py.page:40
@@ -4859,11 +4903,14 @@ 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 ""
+"Om etiketten för knappen är en <link href=\"http://developer.gnome.org/gtk3/unstable/gtk3-Stock-Items.html";
+"\">standardikon</link> så ställer <code>set_use_stock(True)</code> in etiketten som namnet på motsvarande "
+"standardikon."
 
 #. (itstool) path: item/p
 #: C/button.py.page:41
 msgid "To set an image (e.g. a stock image) for the button <code>button</code>:"
-msgstr ""
+msgstr "För att ställa in en bild (t.ex. en standardbild) för knappen <code>button</code>:"
 
 #. (itstool) path: item/code
 #: C/button.py.page:42
@@ -4882,7 +4929,7 @@ msgstr ""
 #. (itstool) path: item/p
 #: C/button.py.page:46
 msgid "You should not set a label for the button after this, otherwise it will show the label and not the 
image."
-msgstr ""
+msgstr "Du bör inte ställa in en etikett för knappen efter detta, då kommer den visa etiketten och inte 
bilden."
 
 #. (itstool) path: item/p
 #: C/button.py.page:47
@@ -4891,6 +4938,9 @@ msgid ""
 "This could be useful in places like toolbars, so that the keyboard focus is not removed from the main area 
of the "
 "application."
 msgstr ""
+"Om vi använder <code>set_focus_on_click(False)</code> kommer knappen inte fånga fokus när den klickas på 
med "
+"musen. Detta kan vara användbart i platser som verktygsfält, så att tangentbordsfokus inte tas bort från "
+"programmets huvudområde."
 
 #. (itstool) path: item/p
 #: C/button.py.page:55
@@ -4962,6 +5012,49 @@ msgid ""
 "\treturn new MyApplication ().run (args);\n"
 "}\n"
 msgstr ""
+"\n"
+"/* Ett fönster i programmet */\n"
+"public class MyWindow : Gtk.ApplicationWindow {\n"
+"\n"
+"\t/* Fönstrets konstruktor */\n"
+"\tinternal MyWindow (MyApplication app) {\n"
+"\t\tObject (application: app, title: \"GNOME Button\");\n"
+"\n"
+"\t\tvar button = new Gtk.Button.with_label (\"Klicka på mig\");\n"
+"\t\tbutton.clicked.connect (this.reverse_label);\n"
+"\t\tbutton.show ();\n"
+"\n"
+"\t\tthis.window_position = Gtk.WindowPosition.CENTER;\n"
+"\t\tthis.set_default_size (250,50);\n"
+"\t\tthis.add (button);\n"
+"\t}\n"
+"\n"
+"\t/* Återanropsfunktionen som är ansluten\n"
+"\t * till knappens ”clicked”-signal.\n"
+"\t */\n"
+"\tvoid reverse_label (Gtk.Button button) {\n"
+"\t\tbutton.label = button.label.reverse ();\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* Det här är programmet. */\n"
+"public class MyApplication : Gtk.Application {\n"
+"\n"
+"\t/* Det här är konstruktorn */\n"
+"\tinternal MyApplication () {\n"
+"\t\tObject (application_id: \"org.example.MyApplication\");\n"
+"\t}\n"
+"\n"
+"\t/* Åsidosätt ”activate”-signalen för GLib.Application */\n"
+"\tprotected override void activate () {\n"
+"\t\tnew MyWindow (this).show ();\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* main skapar och kör programmet */\n"
+"public int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
 
 #. (itstool) path: page/p
 #: C/button.vala.page:29
@@ -5008,7 +5101,7 @@ msgstr "external ref='media/buttonbox_calculator.png' md5='ce0de08b7ac66f517290e
 #. (itstool) path: page/p
 #: C/buttonbox.js.page:25 C/buttonbox.py.page:26
 msgid "A calculator - the buttons are enclosed in horizontal ButtonBoxes."
-msgstr ""
+msgstr "En kalkylator - knapparna infogas i horisontella ButtonBoxar."
 
 #. (itstool) path: section/code
 #: C/buttonbox.js.page:31
@@ -5197,6 +5290,188 @@ msgid ""
 "let app = new ButtonBoxExample();\n"
 "app.application.run (ARGV);\n"
 msgstr ""
+"#!/usr/bin/gjs\n"
+"\n"
+"imports.gi.versions.Gtk = '3.0';\n"
+"\n"
+"const GObject = imports.gi.GObject;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"\n"
+"class ButtonBoxExample {\n"
+"\n"
+"    // Skapa programmet i sig\n"
+"    constructor() {\n"
+"        this.application = new Gtk.Application({\n"
+"            application_id: 'org.example.jsbuttonbox'\n"
+"        });\n"
+"\n"
+"        // Anslut ”activate”- och ”startup”-signaler till återanropsfunktionerna\n"
+"        this.application.connect('activate', this._onActivate.bind(this));\n"
+"        this.application.connect('startup', this._onStartup.bind(this));\n"
+"    }\n"
+"\n"
+"    // Återanropsfunktion för ”activate”-signal visar fönster när den aktiveras\n"
+"    _onActivate() {\n"
+"        this.window.present();\n"
+"    }\n"
+"\n"
+"    // Återanropsfunktion för ”startup”-signal bygger användargränssnittet\n"
+"    _onStartup() {\n"
+"        this._buildUI();\n"
+"    }\n"
+"\n"
+"    // Bygg programmets användargränssnitt\n"
+"    _buildUI() {\n"
+"        // Skapa programfönstret\n"
+"        this.window = new Gtk.ApplicationWindow  ({ application: this.application,\n"
+"                                                    window_position: Gtk.WindowPosition.CENTER,\n"
+"                                                    title: \"Kalkylator\",\n"
+"                                                    default_width: 350,\n"
+"                                                    default_height: 200,\n"
+"                                                    border_width: 10 });\n"
+"        this.entry = new Gtk.Entry();\n"
+"        this.entry.set_text('0');\n"
+"        // högerjusterad text\n"
+"        this.entry.set_alignment(1);\n"
+"        // texten i fältet kan inte ändras genom att skriva i det\n"
+"        this.entry.set_can_focus(false);\n"
+"\n"
+"        // ett rutnät\n"
+"        this.grid = new Gtk.Grid();\n"
+"        this.grid.set_row_spacing(5);\n"
+"        \n"
+"        // för att fästa fältet\n"
+"        this.grid.attach(this.entry, 0, 0, 1, 1);\n"
+"        \n"
+"        // etiketterna för knapparna\n"
+"        this.buttons = [ 7, 8, 9, '/', 4, 5, 6, '*', 1, 2, 3, '-', 'C', 0, '=', '+' ];\n"
+"        \n"
+"        // varje rad är en ButtonBox, fäst till rutnätet            \n"
+"        for (let i = 0; i &lt; 4; i++) {\n"
+"            this.hbox = Gtk.ButtonBox.new(Gtk.Orientation.HORIZONTAL);\n"
+"            this.hbox.set_spacing(5);\n"
+"            this.grid.attach(this.hbox, 0, i + 1, 1, 1);\n"
+"            // varje ButtonBox har 4 knappar, anslutna till återanropsfunktionen\n"
+"            for (let j= 0; j &lt; 4; j++) {\n"
+"                this.button = new Gtk.Button();\n"
+"                this.buttonLabel = (this.buttons[i * 4 + j].toString());\n"
+"                this.button.set_label(this.buttonLabel);\n"
+"                this.button.set_can_focus(false);\n"
+"                this.button.connect(\"clicked\", this._buttonClicked.bind(this));\n"
+"                this.hbox.add(this.button);\n"
+"            }\n"
+"        }\n"
+"            \n"
+"        // några variabler för beräkningarna\n"
+"        this.firstNumber = 0;\n"
+"        this.secondNumber = 0;\n"
+"        this.counter = 0;\n"
+"        this.operation = \"\";\n"
+"\n"
+"        // lägg till rutnätet till fönstret\n"
+"        this.window.add(this.grid);\n"
+"        this.window.show_all();\n"
+"    }\n"
+"\n"
+"    // återanropsfunktion för alla knapparna\n"
+"    _buttonClicked(button) {\n"
+"        this.button = button;\n"
+"        // för operationerna\n"
+"        if (this.button.get_label() == '+') {\n"
+"            this.counter += 1 \n"
+"            if (this.counter &gt; 1)\n"
+"                this._doOperation();\n"
+"            this.entry.set_text('0');\n"
+"            this.operation = \"plus\";\n"
+"        }\n"
+"\n"
+"        else if (this.button.get_label() == '-') {\n"
+"            this.counter += 1;\n"
+"            if (this.counter &gt; 1)\n"
+"                this._doOperation();\n"
+"            this.entry.set_text('0');\n"
+"            this.operation = \"minus\";\n"
+"        }\n"
+"\n"
+"        else if (this.button.get_label() == '*') {\n"
+"            this.counter += 1; \n"
+"            if (this.counter &gt; 1)\n"
+"                this._doOperation();\n"
+"            this.entry.set_text('0');\n"
+"            this.operation = \"multiplication\";\n"
+"        }\n"
+"\n"
+"        else if (this.button.get_label() == '/') {\n"
+"            this.counter += 1 \n"
+"            if (this.counter &gt; 1)\n"
+"                this._doOperation();\n"
+"            this.entry.set_text('0');\n"
+"            this.operation = \"division\";\n"
+"        }\n"
+"\n"
+"        // för =\n"
+"        else if (this.button.get_label() == '=') {\n"
+"            this._doOperation();\n"
+"            this.entry.set_text(this.firstNumber.toString());\n"
+"            this.counter = 1;\n"
+"        }\n"
+"\n"
+"        // för avbryt (C)\n"
+"        else if (this.button.get_label() == 'C') {\n"
+"            this.firstNumber = 0;\n"
+"            this.secondNumber = 0;\n"
+"            this.counter = 0;\n"
+"            this.entry.set_text('0');\n"
+"            this.operation = \"\";\n"
+"        }\n"
+"\n"
+"        // för en sifferknapp\n"
+"        else {\n"
+"            this.newDigit = parseInt(this.button.get_label());\n"
+"            if (this.entry.get_text() == \"error\")\n"
+"                this.number = 0;\n"
+"            else\n"
+"                this.number = parseInt(this.entry.get_text());\n"
+"            this.number = this.number * 10 + this.newDigit;            \n"
+"            if (this.counter == 0)\n"
+"                this.firstNumber = this.number;\n"
+"            else\n"
+"                this.secondNumber = this.number;\n"
+"            this.entry.set_text(this.number.toString());\n"
+"        }\n"
+"     }\n"
+"\n"
+"     _doOperation() {\n"
+"        if (this.operation == \"plus\") {\n"
+"           this.firstNumber += this.secondNumber;\n"
+"        } else if (this.operation == \"minus\") {\n"
+"            this.firstNumber -= this.secondNumber;\n"
+"        } else if (this.operation == \"multiplication\") {\n"
+"            this.firstNumber *= this.secondNumber;\n"
+"        } else if (this.operation == \"division\") {\n"
+"            if (this.secondNumber != 0) {\n"
+"                this.firstNumber /= this.secondNumber;\n"
+"            } else {\n"
+"                this.firstNumber = 0; \n"
+"                this.secondNumber = 0;\n"
+"                this.counter = 0; \n"
+"                this.entry.set_text(\"error\");\n"
+"                this.operation = \"\";\n"
+"\n"
+"                return\n"
+"            }\n"
+"        } else {\n"
+"            this.firstNumber = 0;\n"
+"            this.secondNumber = 0;\n"
+"            this.counter = 0;\n"
+"            this.entry.set_text(\"error\");\n"
+"        }\n"
+"    }\n"
+"};\n"
+"\n"
+"// Kör programmet\n"
+"let app = new ButtonBoxExample();\n"
+"app.application.run (ARGV);\n"
 
 #. (itstool) path: item/p
 #: C/buttonbox.js.page:38
@@ -5380,6 +5655,152 @@ msgid ""
 "exit_status = app.run(sys.argv)\n"
 "sys.exit(exit_status)\n"
 msgstr ""
+"from gi.repository import Gtk\n"
+"import sys\n"
+"\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"Kalkylator\", application=app)\n"
+"        self.set_default_size(350, 200)\n"
+"        self.set_border_width(10)\n"
+"\n"
+"        # ett fält\n"
+"        self.entry = Gtk.Entry()\n"
+"        # med en initial text\n"
+"        self.entry.set_text('0')\n"
+"        # text högerjusterad\n"
+"        self.entry.set_alignment(1)\n"
+"        # texten i fältet kan inte ändras genom att skriva i det\n"
+"        self.entry.set_can_focus(False)\n"
+"\n"
+"        # ett rutnät\n"
+"        grid = Gtk.Grid()\n"
+"        grid.set_row_spacing(5)\n"
+"\n"
+"        # för att fästa rutnätet\n"
+"        grid.attach(self.entry, 0, 0, 1, 1)\n"
+"\n"
+"        # etiketterna för knapparna\n"
+"        buttons = [7, 8, 9, '/',\n"
+"                   4, 5, 6, '*',\n"
+"                   1, 2, 3, '-',\n"
+"                   'C', 0, '=', '+']\n"
+"\n"
+"        # varje rad är en ButtonBox, fäst vid rutnätet\n"
+"        for i in range(4):\n"
+"            hbox = Gtk.ButtonBox.new(Gtk.Orientation.HORIZONTAL)\n"
+"            hbox.set_spacing(5)\n"
+"            grid.attach(hbox, 0, i + 1, 1, 1)\n"
+"            # varje ButtonBox har 4 knappar, anslutna till återanropsfunktionen\n"
+"            for j in range(4):\n"
+"                button = Gtk.Button(label=buttons[i * 4 + j])\n"
+"                button.set_can_focus(False)\n"
+"                button.connect(\"clicked\", self.button_clicked)\n"
+"                hbox.add(button)\n"
+"\n"
+"        # några variabler för beräkningarna\n"
+"        self.first_number = 0\n"
+"        self.second_number = 0\n"
+"        self.counter = 0\n"
+"        self.operation = \"\"\n"
+"\n"
+"        # lägg till rutnätet till fönstret\n"
+"        self.add(grid)\n"
+"\n"
+"    # återanropsfunktion för alla knapparna\n"
+"    def button_clicked(self, button):\n"
+"        # för operationerna\n"
+"        if button.get_label() == '+':\n"
+"            self.counter += 1\n"
+"            if self.counter &gt; 1:\n"
+"                self.do_operation()\n"
+"            self.entry.set_text('0')\n"
+"            self.operation = \"plus\"\n"
+"        elif button.get_label() == '-':\n"
+"            self.counter += 1\n"
+"            if self.counter &gt; 1:\n"
+"                self.do_operation()\n"
+"            self.entry.set_text('0')\n"
+"            self.operation = \"minus\"\n"
+"        elif button.get_label() == '*':\n"
+"            self.counter += 1\n"
+"            if self.counter &gt; 1:\n"
+"                self.do_operation()\n"
+"            self.entry.set_text('0')\n"
+"            self.operation = \"multiplication\"\n"
+"        elif button.get_label() == '/':\n"
+"            self.counter += 1\n"
+"            if self.counter &gt; 1:\n"
+"                self.do_operation()\n"
+"            self.entry.set_text('0')\n"
+"            self.operation = \"division\"\n"
+"        # för =\n"
+"        elif button.get_label() == '=':\n"
+"            self.do_operation()\n"
+"            self.entry.set_text(str(self.first_number))\n"
+"            self.counter = 1\n"
+"        # för avbryt (C)\n"
+"        elif button.get_label() == 'C':\n"
+"            self.first_number = 0\n"
+"            self.second_number = 0\n"
+"            self.counter = 0\n"
+"            self.entry.set_text('')\n"
+"            self.operation = \"\"\n"
+"        # för en sifferknapp\n"
+"        else:\n"
+"            new_digit = int(button.get_label())\n"
+"            if self.entry.get_text() == 'error':\n"
+"                number = 0\n"
+"            else:\n"
+"                number = int(self.entry.get_text())\n"
+"            number = number * 10 + new_digit\n"
+"            if self.counter == 0:\n"
+"                self.first_number = number\n"
+"            else:\n"
+"                self.second_number = number\n"
+"            self.entry.set_text(str(number))\n"
+"\n"
+"    def do_operation(self):\n"
+"        if self.operation == \"plus\":\n"
+"            self.first_number += self.second_number\n"
+"        elif self.operation == \"minus\":\n"
+"            self.first_number -= self.second_number\n"
+"        elif self.operation == \"multiplication\":\n"
+"            self.first_number *= self.second_number\n"
+"        elif self.operation == \"division\":\n"
+"            try:\n"
+"                self.first_number /= self.second_number\n"
+"            except ZeroDivisionError:\n"
+"                self.first_number = 0\n"
+"                self.second_number = 0\n"
+"                self.counter = 0\n"
+"                self.entry.set_text('error')\n"
+"                self.operation = \"\"\n"
+"                return\n"
+"        else:\n"
+"            self.first_number = 0\n"
+"            self.second_number = 0\n"
+"            self.counter = 0\n"
+"            self.entry.set_text('error')\n"
+"\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
 
 #. (itstool) path: section/title
 #: C/buttonbox.py.page:36
@@ -5395,6 +5816,11 @@ msgid ""
 "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 ""
+"Layouten för ButtonBoxen ställs in med <code>set_layout(layout)</code>, där <code>layout</code> kan vara 
<code>Gtk."
+"ButtonBoxStyle.SPREAD</code> (knappar fördelas jämnt över rutan), <code>Gtk.ButtonBoxStyle.EDGE</code> 
(knappar "
+"placeras i rutans kanter), <code>Gtk.ButtonBoxStyle.START</code> (knappar grupperas mot starten på rutan), "
+"<code>Gtk.ButtonBoxStyle.END</code> (knappar grupperas mot slutet på rutan), 
<code>Gtk.ButtonBoxStyle.CENTER</"
+"code> (knappar centreras i rutan)."
 
 #. (itstool) path: item/p
 #: C/buttonbox.py.page:39
@@ -5413,11 +5839,13 @@ msgid ""
 "<code>set_child_non_homogeneous(button, is_non_homogeneous)</code> sets whether the child is exempted from "
 "homogeneous sizing. Default value is <code>False</code>."
 msgstr ""
+"<code>set_child_non_homogeneous(button, is_non_homogeneous)</code> ställer in huruvida barnet undantas från 
"
+"homogen omformning. Standardvärdet är <code>False</code>."
 
 #. (itstool) path: item/p
 #: C/buttonbox.py.page:41
 msgid "<code>set_spacing(spacing)</code> sets the spacing, in pixels, between the buttons of the box."
-msgstr ""
+msgstr "<code>set_spacing(utrymme)</code> ställer in utrymmet, i bildpunkter, mellan rutans knappar."
 
 #. (itstool) path: item/p
 #: C/buttonbox.py.page:49
@@ -5490,6 +5918,9 @@ msgid ""
 "your GNOME application. GNOME also recommends a specific coding style and conventions which this section 
will "
 "elaborate further upon."
 msgstr ""
+"Förutom förutsättningarna som nämnts ovan har flera verktyg utvecklats för att hjälpa dig vidare i att 
utveckla "
+"ditt GNOME-program. GNOME rekommenderar även en specifik kodstil och konventioner som detta avsnitt kommer 
gå in "
+"närmare på."
 
 #. (itstool) path: section/title
 #: C/c.page:52
@@ -5508,6 +5939,9 @@ msgid ""
 "example <link href=\"https://wiki.gnome.org/Apps/Builder\";>Builder</link> or <link 
href=\"https://wiki.gnome.org/";
 "Apps/Anjuta\">Anjuta</link>."
 msgstr ""
+"Ett GNOME-IDE (Integrated Development Environment, Integrerad utvecklingsmiljö). Ett IDE kan hjälpa dig med 
att "
+"skriva och felsöka C-kod, till exempel <link href=\"https://wiki.gnome.org/Apps/Builder\";>Builder</link> 
eller "
+"<link href=\"https://wiki.gnome.org/Apps/Anjuta\";>Anjuta</link>."
 
 #. (itstool) path: item/p
 #: C/c.page:66
@@ -5538,11 +5972,14 @@ msgid ""
 "Indent_style#GNU_style\">GNU style</link> of indentation. The tutorials and code examples presented are 
following "
 "this convention and you are recommended to do so too."
 msgstr ""
+"De flesta program i GNOME-projektet är skrivna i <link 
href=\"http://en.wikipedia.org/wiki/Indent_style#GNU_style";
+"\">GNU-stilen</link> för indentering. Handledningarna och kodexemplen som presenteras följer denna 
konvention och "
+"du rekommenderas att också göra det."
 
 #. (itstool) path: section/title
 #: C/c.page:89
 msgid "Executing Code"
-msgstr ""
+msgstr "Köra kod"
 
 #. (itstool) path: item/p
 #: C/c.page:95
@@ -5561,11 +5998,13 @@ msgid ""
 "For more information about compiling GTK+ programs see <link 
href=\"http://developer.gnome.org/gtk3/3.4/gtk-";
 "compiling.html\">Compiling GTK+ Applications on UNIX</link>."
 msgstr ""
+"För mer information om att kompilera GTK+-program, se <link href=\"http://developer.gnome.org/gtk3/3.4/gtk-";
+"compiling.html\">Kompilera GTK+-program i UNIX</link>."
 
 #. (itstool) path: section/title
 #: C/c.page:117
 msgid "Widget Code Examples"
-msgstr ""
+msgstr "Kodexempel för gränssnittskomponenter"
 
 #. (itstool) path: info/title
 #: C/checkbutton.c.page:8
@@ -5576,7 +6015,7 @@ msgstr "CheckButton (C)"
 #. (itstool) path: info/desc
 #: C/checkbutton.c.page:18
 msgid "Create widgets with a discrete ToggleButton"
-msgstr ""
+msgstr "Skapa komponenter med en diskret ToggleButton"
 
 #. (itstool) path: page/title
 #: C/checkbutton.c.page:21 C/checkbutton.js.page:21 C/checkbutton.py.page:22 C/checkbutton.vala.page:21
@@ -5596,7 +6035,7 @@ msgstr "external ref='media/checkbutton.png' md5='7921a6812c87dd2b3781f4fad241e8
 #. (itstool) path: page/p
 #: C/checkbutton.c.page:23 C/checkbutton.py.page:24 C/checkbutton.vala.page:23
 msgid "This CheckButton toggles the title."
-msgstr ""
+msgstr "Denna CheckButton visar/döljer titeln."
 
 #. (itstool) path: page/code
 #: C/checkbutton.c.page:25
@@ -5649,6 +6088,52 @@ msgid ""
 "  return status;\n"
 "}\n"
 msgstr ""
+"#include &lt;gtk/gtk.h&gt;\n"
+"\n"
+"/* signalhanterare för ”toggled”-signalen för vår CheckButton */\n"
+"static void\n"
+"toggled_cb (GtkToggleButton *toggle_button,\n"
+"            gpointer         user_data)\n"
+"{\n"
+"  GtkWindow *window = user_data;\n"
+"\n"
+"  if (gtk_toggle_button_get_active (toggle_button))\n"
+"      gtk_window_set_title (window, \"CheckButton-exempel\");\n"
+"  else\n"
+"      gtk_window_set_title (window, \"\");\n"
+"}\n"
+"\n"
+"static void\n"
+"activate (GtkApplication *app,\n"
+"          gpointer        user_data)\n"
+"{\n"
+"  GtkWidget *window;\n"
+"  GtkWidget *checkbutton;\n"
+"\n"
+"  window = gtk_application_window_new (app);\n"
+"  gtk_window_set_title (GTK_WINDOW (window), \"CheckButton-exempel\");\n"
+"  gtk_window_set_default_size (GTK_WINDOW (window), 300, 100);\n"
+"\n"
+"  checkbutton = gtk_check_button_new_with_label (\"Visa titel\");\n"
+"  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton), TRUE);\n"
+"  g_signal_connect (GTK_TOGGLE_BUTTON (checkbutton), \"toggled\", G_CALLBACK (toggled_cb), window);\n"
+"  gtk_container_add (GTK_CONTAINER (window), checkbutton);\n"
+"  gtk_widget_show_all (window);\n"
+"}\n"
+"\n"
+"int\n"
+"main (int argc, char **argv)\n"
+"{\n"
+"  GtkApplication *app;\n"
+"  int status;\n"
+"\n"
+"  app = gtk_application_new (\"org.example.checkbutton\", G_APPLICATION_FLAGS_NONE);\n"
+"  g_signal_connect (app, \"activate\", G_CALLBACK (activate), NULL);\n"
+"  status = g_application_run (G_APPLICATION (app), argc, argv);\n"
+"  g_object_unref (app);\n"
+"\n"
+"  return status;\n"
+"}\n"
 
 #. (itstool) path: item/p
 #: C/checkbutton.c.page:30
@@ -5664,7 +6149,7 @@ msgstr "CheckButton (Javascript)"
 #. (itstool) path: info/desc
 #: C/checkbutton.js.page:18
 msgid "A box which can be checked or unchecked"
-msgstr ""
+msgstr "En ruta som kan vara ikryssad eller inte"
 
 #. (itstool) path: page/p
 #: C/checkbutton.js.page:23
@@ -5672,6 +6157,7 @@ msgid ""
 "This application has a CheckButton. Whether the box is checked dictates whether the window's title bar 
shows "
 "anything."
 msgstr ""
+"Detta program har en CheckButton. huruvida rutan är ikryssad bestämmer huruvida fönstrets namnlist visar 
något."
 
 #. (itstool) path: page/p
 #: C/checkbutton.js.page:24
@@ -5679,6 +6165,8 @@ 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 ""
+"En CheckButton skickar signalen ”toggled” när den kryssas i eller kryssas ur. Då den är ikryssad är 
egenskapen "
+"”active” true (sant). Då den inte är det så har ”active” värdet false (falskt)."
 
 #. (itstool) path: section/title
 #: C/checkbutton.js.page:28 C/comboboxtext.js.page:30 C/combobox.js.page:33 C/guitar-tuner.js.page:55
@@ -5754,6 +6242,29 @@ msgid ""
 "        this._buildUI ();\n"
 "    }\n"
 msgstr ""
+"\n"
+"class CheckButtonExample {\n"
+"    // Skapa programmet i sig\n"
+"    constructor() {\n"
+"        this.application = new Gtk.Application({\n"
+"            application_id: 'org.example.jscheckbutton',\n"
+"            flags: Gio.ApplicationFlags.FLAGS_NONE\n"
+"        });\n"
+"\n"
+"    // Anslut ”activate”- och ”startup”-signaler till återanropsfunktionerna\n"
+"    this.application.connect('activate', this._onActivate.bind(this));\n"
+"    this.application.connect('startup', this._onStartup.bind(this));\n"
+"    }\n"
+"\n"
+"    // Återanropsfunktion för ”activate”-signal, visar fönstret när den aktiveras\n"
+"    _onActivate() {\n"
+"        this._window.present();\n"
+"    }\n"
+"\n"
+"    // Återanropsfunktion för ”startup”-signal bygger användargränssnittet\n"
+"    _onStartup() {\n"
+"        this._buildUI ();\n"
+"    }\n"
 
 #. (itstool) path: section/p
 #: C/checkbutton.js.page:66
@@ -5782,7 +6293,20 @@ msgid ""
 "            border_width: 10,\n"
 "            title: \"CheckButton Example\"});\n"
 msgstr ""
+"\n"
+"    // Bygg programmets användargränssnitt\n"
+"    _buildUI() {\n"
+"\n"
+"        // Skapa programfönstret\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            default_height: 100,\n"
+"            default_width: 300,\n"
+"            border_width: 10,\n"
+"            title: \"CheckButton-exempel\"});\n"
 
+# TODO: wrong link. Should be "GtkApplicationWindow.js" without ".page".
 #. (itstool) path: section/p
 #: C/checkbutton.js.page:80
 msgid ""
@@ -5790,11 +6314,14 @@ msgid ""
 "creating a new <link href=\"GtkApplicationWindow.js.page\">Gtk.ApplicationWindow</link> to put all our 
widgets "
 "into."
 msgstr ""
+"_buildUI-funktionen är var vi stoppar all kod för att skapa programmets användargränssnitt. Det första 
steget är "
+"att skapa ett nytt <link href=\"GtkApplicationWindow.js.page\">Gtk.ApplicationWindow</link> att stoppa alla 
våra "
+"komponenter i."
 
 #. (itstool) path: section/title
 #: C/checkbutton.js.page:84
 msgid "Creating the checkbutton"
-msgstr ""
+msgstr "Skapa kryssrutan"
 
 #. (itstool) path: section/code
 #: C/checkbutton.js.page:85
@@ -5811,6 +6338,16 @@ msgid ""
 "        // Connect the button to a function that does something when it's toggled\n"
 "        this._button.connect (\"toggled\", this._toggledCB.bind(this));\n"
 msgstr ""
+"\n"
+"        // Skapa kryssrutan\n"
+"        this._button = new Gtk.CheckButton ({label: \"Visa titel\"});\n"
+"        this._window.add (this._button);\n"
+"\n"
+"        // Låt kryssrutan vara ikryssad som standard\n"
+"        this._button.set_active (true);\n"
+"\n"
+"        // Anslut knappen till en funktion som gör något då den växlar tillstånd\n"
+"        this._button.connect (\"toggled\", this._toggledCB.bind(this));\n"
 
 #. (itstool) path: section/p
 #: C/checkbutton.js.page:96
@@ -5820,6 +6357,10 @@ msgid ""
 "is on or off, and the window title will be on to start with, we want the box to be checked by default. 
Whenever "
 "the user checks or unchecks the box, we call the _toggledCB function."
 msgstr ""
+"Denna kod skapar själva kryssrutan. Etiketten intill kryssrutan skapas genom att ge kryssrutan egenskapen 
”label” "
+"och tilldela den ett strängvärde. Då denna kryssruta växlar huruvida fönstertiteln är på eller av, och "
+"fönstertiteln kommer vara på till en början, så vill vi att rutan ska vara ikryssad som standard. Närhelst "
+"användaren kryssar i eller kryssar ur rutan anropar vi funktionen _toggledCB."
 
 #. (itstool) path: section/code
 #: C/checkbutton.js.page:97
@@ -5841,11 +6382,13 @@ 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 ""
+"Denna kod slutför skapandet av användargränssnittet, genom att säga till fönstret att visa sig själv och 
alla "
+"barnkomponenter (vilket bara är kryssrutan i det här fallet)."
 
 #. (itstool) path: section/title
 #: C/checkbutton.js.page:106
 msgid "Function which handles the checkbutton's toggling"
-msgstr ""
+msgstr "Funktion som hanterar kryssrutans växlande av tillstånd"
 
 #. (itstool) path: section/code
 #: C/checkbutton.js.page:107
@@ -5864,6 +6407,18 @@ msgid ""
 "\n"
 "};\n"
 msgstr ""
+"\n"
+"    _toggledCB() {\n"
+"\n"
+"        // Få fönstertiteln att visas eller försvinna då kryssrutan växlar tillstånd\n"
+"        if (this._button.get_active() == true)\n"
+"            this._window.set_title (\"CheckButton-exempel\");\n"
+"        else\n"
+"            this._window.set_title (\"\");\n"
+"\n"
+"    }\n"
+"\n"
+"};\n"
 
 #. (itstool) path: section/p
 #: C/checkbutton.js.page:120
@@ -5873,6 +6428,10 @@ msgid ""
 "or not afterwards. A simple if / else statement which calls the checkbutton's get_active() method will work 
for "
 "this."
 msgstr ""
+"Om kryssrutan växlas från på till av vill vi att fönstertiteln ska försvinna. Om den växlas från av till på 
vill "
+"vi att den ska dyka upp igen. Vi kan se vilken väg den växlades genom att testa för att se om den är aktiv "
+"(ikryssad) eller inte efteråt. En enkel if / else-sats som anropar kryssrutans get_active()-metod kommer 
fungera "
+"för detta."
 
 #. (itstool) path: section/code
 #: C/checkbutton.js.page:121
@@ -5970,13 +6529,85 @@ msgid ""
 "let app = new CheckButtonExample ();\n"
 "app.application.run (ARGV);\n"
 msgstr ""
+"#!/usr/bin/gjs\n"
+"\n"
+"imports.gi.versions.Gtk = '3.0';\n"
+"\n"
+"const Gio = imports.gi.Gio;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"\n"
+"class CheckButtonExample {\n"
+"\n"
+"    // Skapa programmet i sig\n"
+"    constructor() {\n"
+"        this.application = new Gtk.Application({\n"
+"            application_id: 'org.example.jscheckbutton',\n"
+"            flags: Gio.ApplicationFlags.FLAGS_NONE\n"
+"        });\n"
+"\n"
+"        // Anslut ”activate”- och ”startup”-signaler till återanropsfunktionerna\n"
+"        this.application.connect('activate', this._onActivate.bind(this));\n"
+"        this.application.connect('startup', this._onStartup.bind(this));\n"
+"    }\n"
+"\n"
+"    // Återanropsfunktion för ”activate”-signal, visar fönstret när den aktiveras\n"
+"    _onActivate() {\n"
+"        this._window.present();\n"
+"    }\n"
+"\n"
+"    // Återanropsfunktion för ”startup”-signal bygger användargränssnittet\n"
+"    _onStartup() {\n"
+"        this._buildUI();\n"
+"    }\n"
+"\n"
+"    // Bygg programmets användargränssnitt\n"
+"    _buildUI() {\n"
+"\n"
+"        // Skapa programfönstret\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            default_height: 100,\n"
+"            default_width: 300,\n"
+"            border_width: 10,\n"
+"            title: \"CheckButton-exempel\"});\n"
+"\n"
+"        // Skapa kryssrutan\n"
+"        this._button = new Gtk.CheckButton ({label: \"Visa titel\"});\n"
+"        this._window.add (this._button);\n"
+"\n"
+"        // Låt kryssrutan vara ikryssad som standard\n"
+"        this._button.set_active (true);\n"
+"\n"
+"        // Anslut kryssrutan till en funktion som gör något då den växlar tillstånd\n"
+"        this._button.connect (\"toggled\", this._toggledCB.bind(this));\n"
+"\n"
+"        // Visa fönstret och alla barnkomponenter\n"
+"        this._window.show_all();\n"
+"    }\n"
+"\n"
+"    _toggledCB() {\n"
+"\n"
+"        // Få fönstertieln att visas eller försvinna då kryssrutan växlar tillstånd\n"
+"        if (this._button.get_active() == true)\n"
+"            this._window.set_title (\"CheckButton-exempel\");\n"
+"        else\n"
+"            this._window.set_title (\"\");\n"
+"\n"
+"    }\n"
+"\n"
+"};\n"
+"\n"
+"// Kör programmet\n"
+"let app = new CheckButtonExample ();\n"
+"app.application.run (ARGV);\n"
 
 #. (itstool) path: section/title
 #: C/checkbutton.js.page:135 C/comboboxtext.js.page:176 C/combobox.js.page:233 C/messagedialog.js.page:189
 #: C/radiobutton.js.page:274 C/scale.js.page:208 C/spinbutton.js.page:199 C/statusbar.js.page:221
 #: C/switch.js.page:264 C/textview.js.page:248 C/togglebutton.js.page:153 
C/treeview_simple_liststore.js.page:272
 msgid "In-depth documentation"
-msgstr ""
+msgstr "Djupgående dokumentation"
 
 #. (itstool) path: item/p
 #: C/checkbutton.js.page:139
@@ -5992,7 +6623,7 @@ msgstr "CheckButton (Python)"
 #. (itstool) path: info/desc
 #: C/checkbutton.py.page:19
 msgid "A toggle button in a window"
-msgstr ""
+msgstr "En växlingsknapp i ett fönster"
 
 #. (itstool) path: section/code
 #: C/checkbutton.py.page:31
@@ -6050,6 +6681,57 @@ msgid ""
 "exit_status = app.run(sys.argv)\n"
 "sys.exit(exit_status)\n"
 msgstr ""
+"from gi.repository import Gtk\n"
+"import sys\n"
+"\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    # a window\n"
+"\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"CheckButton-exempel\", application=app)\n"
+"        self.set_default_size(300, 100)\n"
+"        self.set_border_width(10)\n"
+"\n"
+"        # en ny kryssruta\n"
+"        button = Gtk.CheckButton()\n"
+"        #  med en etikett\n"
+"        button.set_label(\"Visa titel\")\n"
+"        # anslut signalen ”toggled” som utges av kryssrutan\n"
+"        # med återanropsfunktionen toggled_cb\n"
+"        button.connect(\"toggled\", self.toggled_cb)\n"
+"        # som standard är kryssrutan aktiv\n"
+"        button.set_active(True)\n"
+"\n"
+"        # lägg till kryssrutan till fönstret\n"
+"        self.add(button)\n"
+"\n"
+"    # återanropsfunktion\n"
+"    def toggled_cb(self, button):\n"
+"        # om växlingsknappen är aktiv, ställ in fönstrets titel\n"
+"        # till \"Checkbutton-exempel\"\n"
+"        if button.get_active():\n"
+"            self.set_title(\"CheckButton-exempel\")\n"
+"        # ställ annars in den till \"\" (tom sträng)\n"
+"        else:\n"
+"            self.set_title(\"\")\n"
+"\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
 
 #. (itstool) path: section/title
 #: C/checkbutton.py.page:36
@@ -6086,7 +6768,7 @@ msgstr "CheckButton (Vala)"
 #. (itstool) path: info/desc
 #: C/checkbutton.vala.page:18
 msgid "Create widgets with a discrete toggle button"
-msgstr ""
+msgstr "Skapa komponenter med en diskret växlingsknapp"
 
 #. (itstool) path: page/code
 #: C/checkbutton.vala.page:25
@@ -6145,6 +6827,58 @@ msgid ""
 "\treturn new MyApplication ().run (args);\n"
 "}\n"
 msgstr ""
+"/* Ett fönster i programmet */\n"
+"class MyWindow : Gtk.ApplicationWindow {\n"
+"\n"
+"\t/* Konstruktorn */\n"
+"\tinternal MyWindow (MyApplication app) {\n"
+"\t\tObject (application: app, title: \"CheckButton-exempel\");\n"
+"\n"
+"\t\tthis.set_default_size (300, 100);\n"
+"\t\tthis.border_width = 10;\n"
+"\n"
+"\t\tvar checkbutton = new Gtk.CheckButton.with_label (\"Visa titel\");\n"
+"\n"
+"\t\t/* Anslut kryssrutan till\n"
+"\t\t * återanropsfunktionen (även kallad signalhanterare).\n"
+"\t\t */\n"
+"\t\tcheckbutton.toggled.connect (this.toggled_cb);\n"
+"\n"
+"\t\t/* Lägger till knappen till detta fönster */\n"
+"\t\tthis.add (checkbutton);\n"
+"\n"
+"\t\tcheckbutton.set_active (true);\n"
+"\t\tcheckbutton.show ();\n"
+"\t}\n"
+"\n"
+"\t/* Signalhanteraren för kryssrutans ”toggled”-signal. */\n"
+"\tvoid toggled_cb (Gtk.ToggleButton checkbutton) {\n"
+"\t\tif (checkbutton.get_active())\n"
+"\t\t\tthis.set_title (\"CheckButton-exempel\");\n"
+"\t\telse\n"
+"\t\t\tthis.set_title (\"\");\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* Det här är programmet */\n"
+"class MyApplication : Gtk.Application {\n"
+"\n"
+"\t/* Konstruktorn */\n"
+"\tinternal MyApplication () {\n"
+"\t\tObject (application_id: \"org.example.checkbutton\");\n"
+"\t}\n"
+"\n"
+"\t/* Åsidosätt ”activate”-signalen för GLib.Application */\n"
+"\tprotected override void activate () {\n"
+"\t\tnew MyWindow (this).show ();\n"
+"\t}\n"
+"\n"
+"}\n"
+"\n"
+"/* main skapar och kör programmet */\n"
+"int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
 
 #. (itstool) path: item/p
 #: C/checkbutton.vala.page:30
@@ -6256,6 +6990,74 @@ msgid ""
 "let app = new ColorbuttonExample ();\n"
 "app.application.run (ARGV);\n"
 msgstr ""
+"#!/usr/bin/gjs\n"
+"\n"
+"imports.gi.versions.Gdk = '3.0';\n"
+"imports.gi.versions.Gtk = '3.0';\n"
+"\n"
+"const Gdk = imports.gi.Gdk;\n"
+"const GObject = imports.gi.GObject;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"\n"
+"class ColorbuttonExample {\n"
+"\n"
+"    // Skapa programmet i sig\n"
+"    constructor() {\n"
+"        this.application = new Gtk.Application ({ application_id: 'org.example.jscolorbutton' });\n"
+"\n"
+"        // Anslut ”activate”- och ”startup”-signaler till återanropsfunktionerna\n"
+"        this.application.connect('activate', this._onActivate.bind(this));\n"
+"        this.application.connect('startup', this._onStartup.bind(this));\n"
+"    }\n"
+"\n"
+"    // Återanropsfunktion för ”activate”-signal visar fönster när den aktiveras\n"
+"    _onActivate() {\n"
+"        this.window.present();\n"
+"    }\n"
+"\n"
+"    // Återanropsfunktion för ”startup”-signal bygger användargränssnittet\n"
+"    _onStartup() {\n"
+"        this._buildUI();\n"
+"    }\n"
+"\n"
+"    // Bygg programmets användargränssnitt\n"
+"    _buildUI() {\n"
+"\n"
+"        // Skapa programfönstret\n"
+"        this.window = new Gtk.ApplicationWindow ({ application: this.application,\n"
+"                                                   window_position: Gtk.WindowPosition.CENTER,\n"
+"                                                   title: \"ColorButton\",\n"
+"                                                   default_width: 150,\n"
+"                                                   default_height: 50,\n"
+"                                                   border_width: 10 });\n"
+"\n"
+"        this.button = new Gtk.ColorButton();\n"
+"        this.color = new Gdk.RGBA();\n"
+"        this.color.red = 0.0;\n"
+"        this.color.green = 0.0;\n"
+"        this.color.blue = 1.0;\n"
+"        this.color.alpha = 0.5;\n"
+"        this.button.set_rgba(this.color);\n"
+"        this.button.connect(\"color-set\", this.onColorChosen.bind(this));\n"
+"        this.label = new Gtk.Label();\n"
+"        this.label.set_text(\"Klicka för att välja en färg\");\n"
+"\n"
+"        let grid = new Gtk.Grid();\n"
+"        grid.attach(this.button, 0, 0, 2, 1);\n"
+"        grid.attach(this.label, 0, 1, 2, 1);\n"
+"        this.window.add(grid);\n"
+"        this.window.show_all();\n"
+"    }\n"
+"\n"
+"    onColorChosen() {\n"
+"        let colorName = this.color.to_string();\n"
+"        this.label.set_text(\"Du valde färgen \" + colorName);\n"
+"    }\n"
+"};\n"
+"\n"
+"// Kör programmet\n"
+"let app = new ColorbuttonExample ();\n"
+"app.application.run (ARGV);\n"
 
 #. (itstool) path: item/p
 #: C/colorbutton.js.page:36
@@ -6346,6 +7148,8 @@ msgid ""
 "<code>set_color(color)</code>, where the <code>color</code> is defined as in the example, sets the color of 
the "
 "ColorButton, which by default is black. <code>get_color()</code> returns the color."
 msgstr ""
+"<code>set_color(color)</code>, där <code>color</code> definieras som i exemplet, ställer in färgen för vår "
+"ColorButton, vilken som standard är svart. <code>get_color()</code> returnerar färgen."
 
 #. (itstool) path: section/p
 #: C/colorbutton.py.page:36
@@ -6377,11 +7181,11 @@ msgstr "ColorButton (Vala)"
 #. (itstool) path: page/p
 #: C/colorbutton.vala.page:25
 msgid "RGB values of the selected color are shown in the label."
-msgstr ""
+msgstr "RGB-värden för den valda färgen visas i etiketten."
 
 #. (itstool) path: page/code
 #: C/colorbutton.vala.page:27
-#, no-wrap
+#, fuzzy, no-wrap
 msgid ""
 "/* This is the application. */\n"
 "public class MyApplication : Gtk.Application {\n"
@@ -6423,6 +7227,45 @@ msgid ""
 "\treturn new MyApplication ().run (args);\n"
 "}\n"
 msgstr ""
+"/* Det här är programmet. */\n"
+"public class MyApplication : Gtk.Application {\n"
+"\tGtk.Label label;\n"
+"\n"
+"\t/* Åsidosätt ”activate”-signalen för GLib.Application. */\n"
+"\tprotected override void activate () {\n"
+"\t\t/* Skapa fönstret för detta program och visa det. */\n"
+"\t\tvar window = new Gtk.ApplicationWindow (this);\n"
+"\t\twindow.title = \"ColorButton\";\n"
+"\t\twindow.set_default_size (150, 50);\n"
+"\t\twindow.set_border_width (10);\n"
+"\n"
+"\t\t/* Skapa en ny ColorButton med standardvärde blue. */\n"
+"\t\tvar blue = Gdk.RGBA ();\n"
+"\t\tblue.parse (\"blue\");\n"
+"\t\tvar colorbutton = new Gtk.ColorButton.with_rgba (blue);\n"
+"\n"
+"\t\tlabel = new Gtk.Label (\"Klicka för att välja en färg\");\n"
+"\n"
+"\t\tvar grid = new Gtk.Grid ();\n"
+"\t\tgrid.attach (colorbutton, 0, 0, 1, 1);\n"
+"\t\tgrid.attach_next_to (label, colorbutton, Gtk.PositionType.BOTTOM, 1, 1);\n"
+"\n"
+"\t\tcolorbutton.color_set.connect (this.on_color_set);\n"
+"\n"
+"\t\twindow.add (grid);\n"
+"\t\twindow.show_all ();\n"
+"\t}\n"
+"\n"
+"\tvoid on_color_set (Gtk.ColorButton button) {\n"
+"\t\tvar color =  button.get_rgba ();\n"
+"\t\tlabel.set_text (\"RGBA: \" + color.to_string());\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* main skapar och kör programmet. */\n"
+"public int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
 
 #. (itstool) path: item/p
 #: C/colorbutton.vala.page:32
@@ -6462,12 +7305,17 @@ msgstr "external ref='media/combobox.png' md5='ab9e91bc1a58fe866cb00dd52159251d'
 
 #. (itstool) path: page/p
 #: C/comboboxtext.js.page:25
+#, fuzzy
 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 ""
+"En ComboBox är en rullgardinsmeny. Skillnaden mellan en <link xref=\"combobox.js\">ComboBox</link> och en "
+"ComboBoxText är att en ComboBoxText bara har grundläggande textalternativ, medan en fullständig ComboBox 
använder "
+"en ListStore eller TreeStore (vilka i princip är kalkylblad) för att visa saker som förgreningsalternativ, 
eller "
+"bilder för varje val."
 
 #. (itstool) path: note/p
 #: C/comboboxtext.js.page:26
@@ -6475,6 +7323,8 @@ 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 ""
+"Om du inte behöver de extra funktionerna hos en fullständig ComboBox, eller inte är bekväm med att jobba 
med "
+"ListStore och TreeStore, så kan du finna det mycket enklare att använda en ComboBoxText närhelst möjligt."
 
 #. (itstool) path: section/code
 #: C/comboboxtext.js.page:31 C/textview.js.page:39
@@ -6520,6 +7370,29 @@ msgid ""
 "        this._buildUI ();\n"
 "    },\n"
 msgstr ""
+"\n"
+"const ComboBoxTextExample = new Lang.Class ({\n"
+"    Name: 'ComboBoxText-exempel',\n"
+"\n"
+"    // Skapa programmet i sig\n"
+"    _init: function () {\n"
+"        this.application = new Gtk.Application ({\n"
+"            application_id: 'org.example.jscomboboxtext'});\n"
+"\n"
+"        // Anslut ”activate”- och ”startup”-signaler till återanropsfunktionerna\n"
+"        this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"        this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Återanropsfunktion för ”activate”-signal visar fönster när den aktiveras\n"
+"    _onActivate: function () {\n"
+"        this._window.present ();\n"
+"    },\n"
+"\n"
+"    // Återanropsfunktion för ”startup”-signal bygger användargränssnittet\n"
+"    _onStartup: function () {\n"
+"        this._buildUI ();\n"
+"    },\n"
 
 #. (itstool) path: section/p
 #: C/comboboxtext.js.page:66 C/messagedialog.js.page:70
@@ -6548,6 +7421,17 @@ msgid ""
 "            default_width: 200,\n"
 "            border_width: 10 });\n"
 msgstr ""
+"\n"
+"    // Bygg programmets användargränssnitt\n"
+"    _buildUI: function () {\n"
+"\n"
+"        // Skapa programfönstret\n"
+"        this._window = new Gtk.ApplicationWindow  ({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            title: \"Välkommen till GNOME\",\n"
+"            default_width: 200,\n"
+"            border_width: 10 });\n"
 
 #. (itstool) path: section/p
 #: C/comboboxtext.js.page:79 C/combobox.js.page:83 C/messagedialog.js.page:84 C/radiobutton.js.page:79
@@ -6557,11 +7441,14 @@ msgid ""
 "The _buildUI function is where we put all the code to create the application's user interface. The first 
step is "
 "creating a new <link xref=\"GtkApplicationWindow.js\">Gtk.ApplicationWindow</link> to put all our widgets 
into."
 msgstr ""
+"_buildUI-funktionen är var vi stoppar all kod för att skapa programmets användargränssnitt. Det första 
steget är "
+"att skapa ett nytt <link xref=\"GtkApplicationWindow.js\">Gtk.ApplicationWindow</link> att stoppa alla våra 
"
+"komponenter i."
 
 #. (itstool) path: section/title
 #: C/comboboxtext.js.page:83
 msgid "Creating the ComboBoxText"
-msgstr ""
+msgstr "Skapa vår ComboBoxText"
 
 #. (itstool) path: section/code
 #: C/comboboxtext.js.page:84
@@ -6580,6 +7467,18 @@ msgid ""
 "        // Connect the combobox's 'changed' signal to our callback function\n"
 "        this._comboBoxText.connect ('changed', Lang.bind (this, this._onComboChanged));\n"
 msgstr ""
+"\n"
+"        // Skapa kombinationsrutan\n"
+"        this._comboBoxText = new Gtk.ComboBoxText();\n"
+"\n"
+"        // Fyll kombinationsrutan\n"
+"        let distros = [\"Välj distribution\", \"Fedora\", \"Mint\", \"Suse\"];\n"
+"        for (let i = 0; i &lt; distros.length; i++)\n"
+"            this._comboBoxText.append_text (distros[i]);\n"
+"        this._comboBoxText.set_active (0);\n"
+"\n"
+"        // Anslut kombinationsrutans ”changed”-signal till vår återanropsfunktion\n"
+"        this._comboBoxText.connect ('changed', Lang.bind (this, this._onComboChanged));\n"
 
 #. (itstool) path: section/p
 #: C/comboboxtext.js.page:97
@@ -6617,6 +7516,13 @@ msgid ""
 "        this._window.show_all();\n"
 "    },\n"
 msgstr ""
+"\n"
+"        // Lägg till kombinationsrutan till fönstret\n"
+"        this._window.add (this._comboBoxText);\n"
+"\n"
+"        // Visa fönstret och alla barnkomponenter\n"
+"        this._window.show_all();\n"
+"    },\n"
 
 #. (itstool) path: section/p
 #: C/comboboxtext.js.page:109
@@ -6626,7 +7532,7 @@ msgstr ""
 #. (itstool) path: section/title
 #: C/comboboxtext.js.page:113 C/combobox.js.page:170 C/radiobutton.js.page:181
 msgid "Function which handles your selection"
-msgstr ""
+msgstr "Funktion som hanterar ditt val"
 
 #. (itstool) path: section/code
 #: C/comboboxtext.js.page:114
@@ -6641,6 +7547,14 @@ msgid ""
 "            \"Mint is a popular distro based on Ubuntu.\",\n"
 "            \"SUSE is a name shared by two separate distros.\"];\n"
 msgstr ""
+"\n"
+"    _onComboChanged: function () {\n"
+"\n"
+"        // Svaren som vi kommer använda för vår meddelandedialog\n"
+"        let responses = [\"\",\n"
+"            \"Fedora är en gemenskapsdistribution sponsrad av Red Hat.\",\n"
+"            \"Mint är en populär distribution baserad på Ubuntu.\",\n"
+"            \"SUSE är ett namn som delas av två olika distributioner.\"];\n"
 
 #. (itstool) path: section/p
 #: C/comboboxtext.js.page:123
@@ -6712,6 +7626,14 @@ msgid ""
 "\n"
 "});\n"
 msgstr ""
+"\n"
+"    _onDialogResponse: function () {\n"
+"\n"
+"        this._popUp.destroy ();\n"
+"\n"
+"    }\n"
+"\n"
+"});\n"
 
 #. (itstool) path: section/p
 #: C/comboboxtext.js.page:160 C/combobox.js.page:217
@@ -7060,6 +7982,28 @@ msgid ""
 "        this._buildUI ();\n"
 "    }\n"
 msgstr ""
+"\n"
+"class ComboBoxExample {\n"
+"\n"
+"    // Skapa programmet i sig\n"
+"    constructor() {\n"
+"        this.application = new Gtk.Application ({\n"
+"            application_id: 'org.example.jscombobox'});\n"
+"\n"
+"        // Anslut ”activate”- och ”startup”-signaler till återanropsfunktionerna\n"
+"        this.application.connect('activate', this._onActivate.bind(this));\n"
+"        this.application.connect('startup', this._onStartup.bind(this));\n"
+"    }\n"
+"\n"
+"    // Återanropsfunktion för ”activate”-signal visar fönster när den aktiveras\n"
+"    _onActivate() {\n"
+"        this._window.present ();\n"
+"    }\n"
+"\n"
+"    // Återanropsfunktion för ”startup”-signal bygger användargränssnittet\n"
+"    _onStartup() {\n"
+"        this._buildUI ();\n"
+"    }\n"
 
 #. (itstool) path: section/p
 #: C/combobox.js.page:70
@@ -7087,11 +8031,22 @@ msgid ""
 "            default_width: 200,\n"
 "            border_width: 10 });\n"
 msgstr ""
+"\n"
+"    // Bygg programmets användargränssnitt\n"
+"    _buildUI() {\n"
+"\n"
+"        // Skapa programfönstret\n"
+"        this._window = new Gtk.ApplicationWindow  ({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            title: \"Välkommen till GNOME\",\n"
+"            default_width: 200,\n"
+"            border_width: 10 });\n"
 
 #. (itstool) path: section/title
 #: C/combobox.js.page:87 C/treeview_simple_liststore.js.page:94
 msgid "Creating the ListStore"
-msgstr ""
+msgstr "Skapa vår ListStore"
 
 #. (itstool) path: section/code
 #: C/combobox.js.page:88
@@ -7112,6 +8067,9 @@ msgid ""
 "We're giving it two columns, both strings, because one of them will contain the names of <link 
href=\"https://";
 "developer.gnome.org/gtk3/3.4/gtk3-Stock-Items.html\">stock Gtk icons</link>."
 msgstr ""
+"Denna ListStore fungerar som den som användes i <link 
xref=\"treeview_simple_liststore.js\">TreeView</link>-"
+"exemplet. Vi ger den två kolumner, båda strängar, eftersom en av dem kommer innehålla namnen på <link href="
+"\"https://developer.gnome.org/gtk3/3.4/gtk3-Stock-Items.html\";>Gtk-standardikoner</link>."
 
 #. (itstool) path: section/p
 #: C/combobox.js.page:96
@@ -7122,18 +8080,19 @@ msgstr ""
 
 #. (itstool) path: item/p
 #: C/combobox.js.page:98 C/treeview_simple_liststore.js.page:107
+#, fuzzy
 msgid "<file>GObject.TYPE_BOOLEAN</file> -- True or false"
-msgstr ""
+msgstr "<file>GObject.TYPE_BOOLEAN</file> -- True eller false"
 
 #. (itstool) path: item/p
 #: C/combobox.js.page:99 C/treeview_simple_liststore.js.page:108
 msgid "<file>GObject.TYPE_FLOAT</file> -- A floating point number (one with a decimal point)"
-msgstr ""
+msgstr "<file>GObject.TYPE_FLOAT</file> -- Ett flyttal (ett med decimaltecken)"
 
 #. (itstool) path: item/p
 #: C/combobox.js.page:100 C/treeview_simple_liststore.js.page:109
 msgid "<file>GObject.TYPE_STRING</file> -- A string of letters and numbers"
-msgstr ""
+msgstr "<file>GObject.TYPE_STRING</file> -- En sträng med bokstäver och siffror"
 
 #. (itstool) path: note/p
 #: C/combobox.js.page:102 C/treeview_simple_liststore.js.page:113
@@ -7176,6 +8135,8 @@ msgstr ""
 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 ""
+"”Välj” är egentligen inte ett alternativ utan mer en inbjudan att klicka på vår ComboBox, så den behöver 
ingen "
+"ikon."
 
 #. (itstool) path: section/title
 #: C/combobox.js.page:125
@@ -7191,6 +8152,10 @@ msgid ""
 "        this._comboBox = new Gtk.ComboBox({\n"
 "            model: this._listStore});\n"
 msgstr ""
+"\n"
+"        // Skapa kombinationsrutan\n"
+"        this._comboBox = new Gtk.ComboBox({\n"
+"            model: this._listStore});\n"
 
 #. (itstool) path: section/p
 #: C/combobox.js.page:131
@@ -7254,6 +8219,12 @@ msgid ""
 "        // Connect the combobox's 'changed' signal to our callback function\n"
 "        this._comboBox.connect ('changed', this._onComboChanged.bind(this));\n"
 msgstr ""
+"\n"
+"        // Ställ in den första raden i kombinationsrutan att vara aktiv vid uppstart\n"
+"        this._comboBox.set_active (0);\n"
+"\n"
+"        // Anslut kombinationsrutans ”changed”-signal till vår återanropsfunktion\n"
+"        this._comboBox.connect ('changed', this._onComboChanged.bind(this));\n"
 
 #. (itstool) path: section/p
 #: C/combobox.js.page:156
@@ -7276,6 +8247,13 @@ msgid ""
 "        this._window.show_all();\n"
 "    }\n"
 msgstr ""
+"\n"
+"        // Lägg till kombinationsrutan till fönstret\n"
+"        this._window.add (this._comboBox);\n"
+"\n"
+"        // Visa fönstret och alla barnkomponenter\n"
+"        this._window.show_all();\n"
+"    },\n"
 
 #. (itstool) path: section/p
 #: C/combobox.js.page:166
@@ -7695,6 +8673,8 @@ msgid ""
 "<link href=\"https://gitlab.gnome.org/GNOME/pygobject/blob/master/gi/overrides/Gtk.py\";>pygobject - Python "
 "bindings for GObject Introspection</link>"
 msgstr ""
+"<link href=\"https://gitlab.gnome.org/GNOME/pygobject/blob/master/gi/overrides/Gtk.py\";>pygobject - Python-"
+"bindningar för GObject Introspection</link>"
 
 #. (itstool) path: info/title
 #: C/combobox.vala.page:8 C/combobox_multicolumn.vala.page:8
@@ -7914,7 +8894,7 @@ msgstr ""
 #. (itstool) path: item/p
 #: C/combobox_multicolumn.py.page:48 C/combobox_multicolumn.vala.page:42 C/toolbar.py.page:58
 msgid "<link href=\"http://developer.gnome.org/gtk3/unstable/gtk3-Stock-Items.html\";>Stock Items</link>"
-msgstr ""
+msgstr "<link href=\"http://developer.gnome.org/gtk3/unstable/gtk3-Stock-Items.html\";>Standardobjekt</link>"
 
 #. (itstool) path: section/code
 #: C/combobox_multicolumn.vala.page:30
@@ -8538,7 +9518,7 @@ msgstr "Entry (C)"
 #. (itstool) path: info/desc
 #: C/entry.c.page:18 C/entry.py.page:25 C/entry.vala.page:18
 msgid "A single line text entry field"
-msgstr ""
+msgstr "Ett textinmatningsfält med en rad"
 
 #. (itstool) path: page/title
 #: C/entry.c.page:21 C/entry.js.page:21 C/entry.py.page:28 C/entry.vala.page:21
@@ -8625,6 +9605,66 @@ msgid ""
 "  return status;\n"
 "}\n"
 msgstr ""
+"\n"
+"#include &lt;gtk/gtk.h&gt;\n"
+"\n"
+"\n"
+"\n"
+"/*Detta är återanropsfunktionen. Det är en hanterarfunktion som \n"
+"reagerar på signalen. I detta fall kommer den fånga textinmatningen \n"
+"från inmatningsrutan och skriva ut en rad till användaren.*/\n"
+"static void\n"
+"on_activate (GtkEntry *entry,\n"
+"             gpointer  user_data)\n"
+"{\n"
+"  const char *name;\n"
+"  name = gtk_entry_get_text (entry);\n"
+"\n"
+"  g_print (\"\\nHej %s!\\n\\n\", name);\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"static void\n"
+"activate (GtkApplication *app,\n"
+"          gpointer        user_data)\n"
+"{\n"
+"  GtkWidget *window;\n"
+"  GtkWidget *entry_box;\n"
+"\n"
+"  /*Skapa ett fönster med en titel, en standardstorlek, \n"
+"  och en inställd kantbredd*/\n"
+"  window = gtk_application_window_new (app);\n"
+"  gtk_window_set_title (GTK_WINDOW (window), \"Vad heter du?\");\n"
+"  gtk_window_set_default_size (GTK_WINDOW (window), 300, 100);\n"
+"  gtk_container_set_border_width (GTK_CONTAINER (window), 10);\n"
+"\n"
+"  /*Skapa en ny inmatningsruta, och lägg till den till fönstret*/\n"
+"  entry_box = gtk_entry_new ();\n"
+"  gtk_container_add (GTK_CONTAINER (window), entry_box);\n"
+"\n"
+"  /*Ansluter ”activate”-signal till återanropet*/\n"
+"  g_signal_connect (GTK_ENTRY (entry_box), \"activate\", \n"
+"                    G_CALLBACK (on_activate), NULL);\n"
+"\n"
+"  gtk_widget_show_all (window);\n"
+"}\n"
+"\n"
+"\n"
+"\n"
+"int\n"
+"main (int argc, char **argv)\n"
+"{\n"
+"  GtkApplication *app;\n"
+"  int status;\n"
+"\n"
+"  app = gtk_application_new (\"org.gtk.example\", G_APPLICATION_FLAGS_NONE);\n"
+"  g_signal_connect (app, \"activate\", G_CALLBACK (activate), NULL);\n"
+"  status = g_application_run (G_APPLICATION (app), argc, argv);\n"
+"  g_object_unref (app);\n"
+"\n"
+"  return status;\n"
+"}\n"
 
 #. (itstool) path: info/title
 #: C/entry.js.page:8
@@ -8635,7 +9675,7 @@ msgstr "Entry (Javascript)"
 #. (itstool) path: info/desc
 #: C/entry.js.page:18
 msgid "A single-line text entry field"
-msgstr ""
+msgstr "Ett textinmatningsfält med en rad"
 
 #. (itstool) path: page/p
 #: C/entry.js.page:23
@@ -8729,6 +9769,88 @@ msgid ""
 "let app = new EntryExample ();\n"
 "app.application.run (ARGV);\n"
 msgstr ""
+"#!/usr/bin/gjs\n"
+"\n"
+"imports.gi.versions.Gtk = '3.0';\n"
+"\n"
+"const Gio = imports.gi.Gio;\n"
+"const GLib = imports.gi.GLib;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"\n"
+"class EntryExample {\n"
+"\n"
+"    // Skapa programmet i sig\n"
+"    constructor() {\n"
+"        this.application = new Gtk.Application({\n"
+"            application_id: 'org.example.jsentry',\n"
+"            flags: Gio.ApplicationFlags.FLAGS_NONE\n"
+"        });\n"
+"\n"
+"        // Anslut ”activate”- och ”startup”-signaler till återanropsfunktionerna\n"
+"        this.application.connect('activate', this._onActivate.bind(this));\n"
+"        this.application.connect('startup', this._onStartup.bind(this));\n"
+"    }\n"
+"\n"
+"    // Återanropsfunktion för ”activate”-signal visar fönster när den aktiveras\n"
+"    _onActivate() {\n"
+"        this._window.present();\n"
+"    }\n"
+"\n"
+"    // Återanropsfunktion för ”startup”-signal bygger användargränssnittet\n"
+"    _onStartup() {\n"
+"        this._buildUI();\n"
+"    }\n"
+"\n"
+"    // Bygg programmets användargränssnitt\n"
+"    _buildUI() {\n"
+"\n"
+"        // Skapa programfönstret\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            default_height: 100,\n"
+"            default_width: 300,\n"
+"            border_width: 10,\n"
+"            title: \"Vad heter du?\"});\n"
+"\n"
+"        // Skapa textinmatningsrutan\n"
+"        this.entry = new Gtk.Entry ();\n"
+"        this._window.add(this.entry);\n"
+"\n"
+"        // Anslut textinmatningsrutan till en funktion som svarar på det du skriver in\n"
+"        this.entry.connect(\"activate\", this._hello.bind(this));\n"
+"\n"
+"        // Visa fönstret och alla barnkomponenter\n"
+"        this._window.show_all();\n"
+"    }\n"
+"\n"
+"    _hello() {\n"
+"\n"
+"        // Skapa en poppuppdialog som hälsar personen som skriver in sitt namn\n"
+"        this._greeter = new Gtk.MessageDialog ({\n"
+"            transient_for: this._window,\n"
+"            modal: true,\n"
+"            text: \"Hej \" + this.entry.get_text() + \"!\",\n"
+"            message_type: Gtk.MessageType.OTHER,\n"
+"            buttons: Gtk.ButtonsType.OK,\n"
+"        });\n"
+"\n"
+"        // Visa poppuppdialogen\n"
+"        this._greeter.show();\n"
+"\n"
+"        // Bind OK-knappen till funktionen som stänger poppuppen\n"
+"        this._greeter.connect (\"response\", this._okClicked.bind(this));\n"
+"    }\n"
+"\n"
+"    _okClicked() {\n"
+"        this._greeter.destroy();\n"
+"    }\n"
+"\n"
+"};\n"
+"\n"
+"// Kör programmet\n"
+"let app = new EntryExample ();\n"
+"app.application.run (ARGV);\n"
 
 #. (itstool) path: item/p
 #: C/entry.js.page:32
@@ -8806,6 +9928,49 @@ msgid ""
 "exit_status = app.run(sys.argv)\n"
 "sys.exit(exit_status)\n"
 msgstr ""
+"from gi.repository import Gtk\n"
+"import sys\n"
+"\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"Vad heter du?\", application=app)\n"
+"        self.set_default_size(300, 100)\n"
+"        self.set_border_width(10)\n"
+"\n"
+"        # en enradsinmatning\n"
+"        name_box = Gtk.Entry()\n"
+"        # utger en signal när Returknappen trycks ned, ansluten till\n"
+"        # återanropsfunktionen cb_activate\n"
+"        name_box.connect(\"activate\", self.cb_activate)\n"
+"\n"
+"        # lägg till vår Gtk.Entry till fönstret\n"
+"        self.add(name_box)\n"
+"\n"
+"    # innehållet i inmatningen används för att skriva i terminalen\n"
+"    def cb_activate(self, entry):\n"
+"        # hämta komponentens innehåll\n"
+"        name = entry.get_text()\n"
+"        # skriv ut det på ett vänligt sätt i terminalen\n"
+"        print(\"Hej \" + name + \"!\")\n"
+"\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
 
 #. (itstool) path: section/title
 #: C/entry.py.page:40
@@ -8842,11 +10007,14 @@ msgid ""
 "<code>get_text()</code> and <code>set_text(\"some text\")</code> can be used to get and set the content for 
the "
 "entry."
 msgstr ""
+"<code>get_text()</code> och <code>set_text(\"lite text\")</code> kan användas för att få samt ställa in 
innehållet "
+"för inmatningsrutan."
 
+# Bara självförklarande på engelska.
 #. (itstool) path: item/p
 #: C/entry.py.page:45
 msgid "<code>get_text_length()</code> is self-explanatory."
-msgstr ""
+msgstr "<code>get_text_length()</code> ger textens längd."
 
 #. (itstool) path: item/p
 #: C/entry.py.page:46
@@ -8887,6 +10055,8 @@ msgid ""
 "<code>set_placeholder_text(\"some text\")</code> sets the text to be displayed in the entry when it is 
empty and "
 "unfocused."
 msgstr ""
+"<code>set_placeholder_text(\"lite text\")</code> ställer in texten som ska visas i inmatningsrutan då den 
är tom "
+"och ofokuserad."
 
 #. (itstool) path: item/p
 #: C/entry.py.page:52
@@ -8896,7 +10066,7 @@ msgstr ""
 #. (itstool) path: item/p
 #: C/entry.py.page:53
 msgid "If we have <code>set_editable(False)</code> the user cannot edit the text in the widget."
-msgstr ""
+msgstr "Om vi har <code>set_editable(False)</code> så kan användaren inte redigera texten i komponenten."
 
 #. (itstool) path: item/p
 #: C/entry.py.page:54
@@ -8998,6 +10168,57 @@ msgid ""
 "\treturn new MyApplication ().run (args);\n"
 "}\n"
 msgstr ""
+"/* Ett fönster i programmet. */\n"
+"class MyWindow : Gtk.ApplicationWindow {\n"
+"\n"
+"\t/* Konstruktor */\n"
+"\tinternal MyWindow (MyApplication app) {\n"
+"\t\tObject (application: app, title: \"Vad heter du?\");\n"
+"\n"
+"\t\tvar name_box = new Gtk.Entry ();\n"
+"\n"
+"\t\t/* Anslut till signalhanteraren. */\n"
+"\t\tname_box.activate.connect (this.on_activate);\n"
+"\t\tname_box.show ();\n"
+"\n"
+"\t\tthis.set_default_size (300, 100);\n"
+"\t\tthis.border_width = 10;\n"
+"\n"
+"\t\t/* Lägg till name_box till detta fönster. */\n"
+"\t\tthis.add (name_box);\n"
+"\t}\n"
+"\n"
+"\t/* Signalhanterare (även kallad återanropsfunktion) för\n"
+"\t * ”activate”-signalen för en Gtk.Entry.\n"
+"\t */\n"
+"\tvoid on_activate (Gtk.Entry entry) {\n"
+"\t\tname = entry.get_text ();\n"
+"\t\tprint (\"\\nHej \" + name + \"!\\n\\n\");\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* Det här är programmet. */\n"
+"class MyApplication : Gtk.Application {\n"
+"\n"
+"\t/* Konstruktor för programmet. */\n"
+"\tinternal MyApplication () {\n"
+"\t\tObject (application_id: \"org.example.MyApplication\");\n"
+"\t}\n"
+"\n"
+"\t/* Åsidosätt ”activate”-signalen för GLib.Application. */\n"
+"\tprotected override void activate () {\n"
+"\n"
+"\t\t/* Skapa ett nytt fönster för detta program\n"
+"\t\t * och visa det. */\n"
+"\t\tnew MyWindow (this).show ();\n"
+"\t}\n"
+"\n"
+"}\n"
+"\n"
+"/* main-funktionen skapar och kör programmet. */\n"
+"int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
 
 #. (itstool) path: item/p
 #: C/entry.vala.page:30
@@ -9036,6 +10257,8 @@ msgid ""
 "This FileChooserDialog saves a text document, which can be opened or written from scratch in a TextView 
(see "
 "below)."
 msgstr ""
+"Denna FileChooserDialog sparar ett textdokument, vilket kan öppnas eller skrivas från grunden i en TextView 
(se "
+"nedan)."
 
 #. (itstool) path: page/media
 #. This is a reference to an external file such as an image or video. When
@@ -9050,12 +10273,12 @@ msgstr "external ref='media/filechooserdialog_menu.png' md5='8a75f04127a70eba0ed
 #. (itstool) path: page/p
 #: C/filechooserdialog.py.page:29
 msgid "It is also possible to call a FileChooserDialog to open a new document."
-msgstr ""
+msgstr "Det är också möjligt att anropa en FileChooserDialog för att öppna ett nytt dokument."
 
 #. (itstool) path: section/title
 #: C/filechooserdialog.py.page:34
 msgid "Steps to recreate the example"
-msgstr ""
+msgstr "Steg för att återskapa exemplet"
 
 #. (itstool) path: item/p
 #: C/filechooserdialog.py.page:36
@@ -9063,13 +10286,18 @@ 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 ""
+"Skapa en .ui-fil för att beskriva en programmeny med objekten ”Nytt”, ”Öppna”, ”Spara”, ”Spara som” och 
”Avsluta”. "
+"Detta kan göras med Glade eller i en textredigerare. Se <link xref=\"#xml\"/>"
 
 #. (itstool) path: item/p
 #: C/filechooserdialog.py.page:37
+#, fuzzy
 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 ""
+"Skapa ett Python-program för en Gtk.TextView med en Gtk.Buffer <code>self.buffer</code>, och en 
<code>self.file</"
+"code> vilken kommer att vara en Gio.File och som vi initialt sätter som <code>None</code>."
 
 #. (itstool) path: item/p
 #: C/filechooserdialog.py.page:38
@@ -9077,6 +10305,8 @@ 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 ""
+"I detta program, skapa också åtgärderna som motsvarar objekten i programmenyn, anslut dem till "
+"återanropsfunktioner, och importera menyn i metoden <code>do_startup()</code> med en Gtk.Builder."
 
 #. (itstool) path: item/p
 #: C/filechooserdialog.py.page:39
@@ -9110,16 +10340,16 @@ msgstr ""
 #. (itstool) path: item/p
 #: C/filechooserdialog.py.page:43
 msgid "Finally, the method <code>save_to_file()</code>: see <link xref=\"#code\"/>, lines 146 - 175."
-msgstr ""
+msgstr "Slutligen har vi metoden <code>save_to_file()</code>: se <link xref=\"#code\"/>, raderna 146 - 175."
 
 #. (itstool) path: section/title
 #: C/filechooserdialog.py.page:48
 msgid "XML file which creates the app-menu"
-msgstr ""
+msgstr "XML-fil som skapar programmenyn"
 
 #. (itstool) path: section/code
 #: C/filechooserdialog.py.page:49 C/filechooserdialog.vala.page:30
-#, no-wrap
+#, fuzzy, no-wrap
 msgid ""
 "&lt;?xml version=\"1.0\"?&gt;\n"
 "&lt;interface&gt;\n"
@@ -9153,6 +10383,37 @@ msgid ""
 "  &lt;/menu&gt;\n"
 "&lt;/interface&gt;\n"
 msgstr ""
+"&lt;?xml version=\"1.0\"?&gt;\n"
+"&lt;interface&gt;\n"
+"  &lt;menu id=\"appmenu\"&gt;\n"
+"    &lt;section&gt;\n"
+"      &lt;item&gt;\n"
+"        &lt;attribute name=\"label\"&gt;Nytt&lt;/attribute&gt;\n"
+"        &lt;attribute name=\"action\"&gt;win.new&lt;/attribute&gt;\n"
+"      &lt;/item&gt;\n"
+"      &lt;item&gt;\n"
+"        &lt;attribute name=\"label\"&gt;Öppna&lt;/attribute&gt;\n"
+"        &lt;attribute name=\"action\"&gt;win.open&lt;/attribute&gt;\n"
+"      &lt;/item&gt;\n"
+"    &lt;/section&gt;\n"
+"    &lt;section&gt;\n"
+"      &lt;item&gt;\n"
+"        &lt;attribute name=\"label\"&gt;Spara&lt;/attribute&gt;\n"
+"        &lt;attribute name=\"action\"&gt;win.save&lt;/attribute&gt;\n"
+"      &lt;/item&gt;\n"
+"      &lt;item&gt;\n"
+"        &lt;attribute name=\"label\"&gt;Spara som…&lt;/attribute&gt;\n"
+"        &lt;attribute name=\"action\"&gt;win.save-as&lt;/attribute&gt;\n"
+"      &lt;/item&gt;\n"
+"    &lt;/section&gt;\n"
+"    &lt;section&gt;\n"
+"      &lt;item&gt;\n"
+"        &lt;attribute name=\"label\"&gt;Avsluta&lt;/attribute&gt;\n"
+"        &lt;attribute name=\"action\"&gt;app.quit&lt;/attribute&gt;\n"
+"      &lt;/item&gt;\n"
+"    &lt;/section&gt;\n"
+"  &lt;/menu&gt;\n"
+"&lt;/interface&gt;\n"
 
 #. (itstool) path: section/code
 #: C/filechooserdialog.py.page:54
@@ -9395,12 +10656,12 @@ msgstr ""
 #. (itstool) path: section/p
 #: C/filechooserdialog.py.page:60
 msgid "Besides the methods used in the <link xref=\"#code\"/>, we have:"
-msgstr ""
+msgstr "Förutom metoderna som används i <link xref=\"#code\"/>, så har vi:"
 
 #. (itstool) path: item/p
 #: C/filechooserdialog.py.page:62
 msgid "<code>set_show_hidden(True)</code> is used to display hidden files and folders."
-msgstr ""
+msgstr "<code>set_show_hidden(True)</code> används för att visa dolda filer och mappar."
 
 #. (itstool) path: item/p
 #: C/filechooserdialog.py.page:63
@@ -9408,6 +10669,8 @@ msgid ""
 "<code>set_select_multiple(True)</code> sets that multiple files can be selected. This is only relevant if 
the mode "
 "is <code>Gtk.FileChooserAction.OPEN</code> or <code>Gtk.FileChooserAction.SELECT_FOLDER</code>."
 msgstr ""
+"<code>set_select_multiple(True)</code> ställer in att flera filer kan väljas. Detta är endast relevant om 
läget är "
+"<code>Gtk.FileChooserAction.OPEN</code> eller <code>Gtk.FileChooserAction.SELECT_FOLDER</code>."
 
 #. (itstool) path: item/p
 #: C/filechooserdialog.py.page:64
@@ -9493,7 +10756,7 @@ msgstr ""
 #. (itstool) path: section/title
 #: C/filechooserdialog.vala.page:29
 msgid "XML UI file which creates the app-menu"
-msgstr ""
+msgstr "XML-användargränssnittsfil som skapar programmenyn"
 
 #. (itstool) path: section/title
 #: C/filechooserdialog.vala.page:32
@@ -9823,6 +11086,66 @@ msgid ""
 "let app = new FontChooserWidgetExample();\n"
 "app.application.run (ARGV);\n"
 msgstr ""
+"//!/usr/bin/gjs\n"
+"\n"
+"imports.gi.versions.Gtk = '3.0';\n"
+"const Gtk = imports.gi.Gtk;\n"
+"\n"
+"class FontChooserWidgetExample {\n"
+"\n"
+"    // Skapa programmet i sig\n"
+"    constructor() {\n"
+"        this.application = new Gtk.Application({ application_id: 'org.example.fontchooserwidget' });\n"
+"\n"
+"        // Anslut ”activate”- och ”startup”-signaler till återanropsfunktionerna\n"
+"        this.application.connect('activate', this._onActivate.bind(this));\n"
+"        this.application.connect('startup', this._onStartup.bind(this));\n"
+"    }\n"
+"\n"
+"    // Återanropsfunktion för ”activate”-signal visar fönster när den aktiveras\n"
+"    _onActivate() {\n"
+"        this.window.present();\n"
+"    }\n"
+"\n"
+"    // Återanropsfunktion för ”startup”-signal bygger användargränssnittet\n"
+"    _onStartup() {\n"
+"        this._buildUI();\n"
+"    }\n"
+"\n"
+"    // Bygg programmets användargränssnitt\n"
+"    _buildUI() {\n"
+"        // Skapa programfönstret\n"
+"        this.window = new Gtk.ApplicationWindow  ({ application: this.application,\n"
+"                                                    window_position: Gtk.WindowPosition.CENTER,\n"
+"                                                    title: \"FontChooserWidget\",\n"
+"                                                    default_width: 200,\n"
+"                                                    default_height: 200,\n"
+"                                                    border_width: 10 });\n"
+"\n"
+"        this.fontChooser = new Gtk.FontChooserWidget();\n"
+"        // ett standardtypsnitt\n"
+"        this.fontChooser.set_font(\"Sans\");\n"
+"        // en text för att förhandsvisa typsnittet\n"
+"        this.fontChooser.set_preview_text(\"Detta är ett exempel på förhandsvisningstext!\");\n"
+"\n"
+"        // anslut signal från typsnittsväljaren till återanropsfunktionen\n"
+"        this.fontChooser.connect(\"notify::font\", this._fontCb.bind(this));\n"
+"\n"
+"        // lägg till typsnittsväljaren till fönstret\n"
+"        this.window.add(this.fontChooser);\n"
+"        this.window.show_all();\n"
+"   }\n"
+"\n"
+"     // återanropsfunktion:\n"
+"     _fontCb() {\n"
+"        // skriv i terminalen\n"
+"        print(\"Du valde typsnittet \" + this.fontChooser.get_font());\n"
+"    }\n"
+"};\n"
+"\n"
+"// Kör programmet\n"
+"let app = new FontChooserWidgetExample();\n"
+"app.application.run (ARGV);\n"
 
 #. (itstool) path: item/p
 #: C/fontchooserwidget.js.page:37 C/fontchooserwidget.py.page:47
@@ -9885,6 +11208,50 @@ msgid ""
 "exit_status = app.run(sys.argv)\n"
 "sys.exit(exit_status)\n"
 msgstr ""
+"from gi.repository import Gtk\n"
+"import sys\n"
+"\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"FontChooserWidget\", application=app)\n"
+"\n"
+"        # en typsnittsväljare\n"
+"        self.font_chooser = Gtk.FontChooserWidget()\n"
+"        # ett standardtypsnitt\n"
+"        self.font_chooser.set_font(\"Sans\")\n"
+"        # en text för att förhandsvisa typsnittet\n"
+"        self.font_chooser.set_preview_text(\n"
+"            \"Detta är ett exempel på förhandsvisningstext!\")\n"
+"\n"
+"        # anslut signal från typsnittsväljaren till återanropsfunktionen\n"
+"        self.font_chooser.connect(\"notify::font\", self.font_cb)\n"
+"\n"
+"        # lägg till typsnittsväljaren till fönstret\n"
+"        self.add(self.font_chooser)\n"
+"\n"
+"    # återanropsfunktion:\n"
+"    def font_cb(self, event, user_data):\n"
+"        # skriv i terminalen\n"
+"        print(\"Du valde typsnittet \" + self.font_chooser.get_font())\n"
+"\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
 
 #. (itstool) path: section/title
 #: C/fontchooserwidget.py.page:35
@@ -9908,16 +11275,18 @@ 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 ""
+"För att ställa in typsnittet som initialt är valt, använd <code>set_font(font)</code> (där 
<code>font</code> är "
+"typsnittsnamnet) eller <code>set_font_desc(font)</code> (där <code>font</code> är dess 
PangoFontDescription)."
 
 #. (itstool) path: item/p
 #: C/fontchooserwidget.py.page:39
 msgid "To get the selected font use <code>get_font()</code> or <code>get_font_desc()</code>."
-msgstr ""
+msgstr "För att få det valda typsnittet, använd <code>get_font()</code> eller <code>get_font_desc()</code>."
 
 #. (itstool) path: item/p
 #: C/fontchooserwidget.py.page:40
 msgid "To change the text which is shown in the preview area, use <code>set_preview_text()</code>."
-msgstr ""
+msgstr "För att ändra texten som visas i förhandsvisningsområdet, använd <code>set_preview_text()</code>."
 
 #. (itstool) path: info/title
 #: C/fontchooserwidget.vala.page:8
@@ -10084,6 +11453,74 @@ msgid ""
 "  return status;\n"
 "}\n"
 msgstr ""
+"\n"
+"#include &lt;gtk/gtk.h&gt;\n"
+"\n"
+"static void\n"
+"new_window (GSimpleAction *action,\n"
+"            GVariant      *parameter,\n"
+"            gpointer       user_data)\n"
+"{\n"
+"  g_print (\"Detta gör ingenting. Det är bara en demonstration.\\n\");\n"
+"}\n"
+"\n"
+"static void\n"
+"quit (GSimpleAction *action,\n"
+"      GVariant      *parameter,\n"
+"      gpointer       user_data)\n"
+"{\n"
+"  GApplication *application = user_data;\n"
+"\n"
+"  g_application_quit (application);\n"
+"}\n"
+"\n"
+"static void\n"
+"startup (GtkApplication *application,\n"
+"         gpointer        user_data)\n"
+"{\n"
+"  static const GActionEntry actions[] = {\n"
+"    { \"new\", new_window },\n"
+"    { \"quit\", quit }\n"
+"  };\n"
+"\n"
+"  GMenu *menu;\n"
+"\n"
+"  g_action_map_add_action_entries (G_ACTION_MAP (application), actions, G_N_ELEMENTS (actions), 
application);\n"
+"\n"
+"  menu = g_menu_new ();\n"
+"  g_menu_append (menu, \"Nytt\", \"app.new\");\n"
+"  g_menu_append (menu, \"Avsluta\", \"app.quit\");\n"
+"  gtk_application_set_app_menu (application, G_MENU_MODEL (menu));\n"
+"  g_object_unref (menu);\n"
+"}\n"
+"\n"
+"static void\n"
+"activate (GtkApplication *app,\n"
+"          gpointer        user_data)\n"
+"{\n"
+"  GtkWidget *window;\n"
+"\n"
+"  window = gtk_application_window_new (app);\n"
+"\n"
+"  gtk_window_set_application (GTK_WINDOW (window), GTK_APPLICATION (app));\n"
+"  gtk_window_set_title (GTK_WINDOW (window), \"Hej GNOME\");\n"
+"\n"
+"  gtk_widget_show_all (GTK_WIDGET (window));\n"
+"}\n"
+"\n"
+"int\n"
+"main (int argc, char **argv)\n"
+"{\n"
+"  GtkApplication *app;\n"
+"  int status;\n"
+"\n"
+"  app = gtk_application_new (\"org.gtk.example\",G_APPLICATION_FLAGS_NONE);\n"
+"  g_signal_connect (app, \"startup\", G_CALLBACK (startup), NULL);\n"
+"  g_signal_connect (app, \"activate\", G_CALLBACK (activate), NULL);\n"
+"  status = g_application_run (G_APPLICATION (app), argc, argv);\n"
+"  g_object_unref (app);\n"
+"  return status;\n"
+"}\n"
 
 #. (itstool) path: info/title
 #: C/gmenu.js.page:8
@@ -10288,7 +11725,6 @@ msgstr "Användbara metoder för en GSimpleAction och en GMenu"
 
 #. (itstool) path: section/p
 #: C/gmenu.py.page:44
-#, fuzzy
 msgid ""
 "In line 33 the signal <code>\"activate\"</code> from the action <code>new_action</code> (not the menu!) is "
 "connected to the callback function <code>new_cb()</code> using 
<code><var>action</var>.connect(<var>signal</var>, "
@@ -10666,7 +12102,7 @@ msgstr "En knappkomponent ansluten till en förloppsindikator, inuti ett rutnät
 
 #. (itstool) path: page/code
 #: C/grid.js.page:29
-#, fuzzy, no-wrap
+#, no-wrap
 msgid ""
 "#!/usr/bin/gjs\n"
 "\n"
@@ -10771,7 +12207,7 @@ msgstr ""
 "        this._buildUI();\n"
 "    }\n"
 "\n"
-"    // Build the application's UI\n"
+"    // Bygg programmets användargränssnitt\n"
 "    _buildUI() {\n"
 "\n"
 "        // Skapa programfönstret\n"
@@ -10784,19 +12220,19 @@ msgstr ""
 "\n"
 "        // Skapa komponenterna i rutnätet\n"
 "        this.progressBar = new Gtk.ProgressBar ();\n"
-"        this.Button = new Gtk.Button ({ label: \"Button\" });\n"
+"        this.Button = new Gtk.Button ({ label: \"Knapp\" });\n"
 "        this.Button.connect (\"clicked\", this._clickHandler.bind(this));\n"
 "\n"
-"        // Assemble the grid\n"
+"        // Sätt ihop rutnätet\n"
 "        this._window.add (this.Grid);\n"
 "        this.Grid.attach (this.Button, 1, 1, 1, 1);\n"
 "        this.Grid.attach_next_to (this.progressBar, this.Button, Gtk.PositionType.BOTTOM, 1, 1);\n"
 "\n"
-"                // Show the window and all child widgets\n"
+"                // Visa fönstret och alla barnkomponenter\n"
 "                this._window.show_all();\n"
 "    }\n"
 "\n"
-"    // Here's the function that says what happens when the button is clicked\n"
+"    // Här är funktionen som säger vad som händer när knappen klickas på\n"
 "    _clickHandler() {\n"
 "        this.progressBar.pulse ();\n"
 "    }\n"
@@ -10841,7 +12277,7 @@ msgstr "Några etiketter i ett rutnät."
 
 #. (itstool) path: section/code
 #: C/grid.py.page:38
-#, no-wrap
+#, fuzzy, no-wrap
 msgid ""
 "from gi.repository import Gtk\n"
 "import sys\n"
@@ -10889,6 +12325,51 @@ msgid ""
 "exit_status = app.run(sys.argv)\n"
 "sys.exit(exit_status)\n"
 msgstr ""
+"from gi.repository import Gtk\n"
+"import sys\n"
+"\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"Grid-exempel\", application=app)\n"
+"\n"
+"        # tre etiketter\n"
+"        label_top_left = Gtk.Label(label=\"Detta är övre vänster\")\n"
+"        label_top_right = Gtk.Label(label=\"Detta är övre höger\")\n"
+"        label_bottom = Gtk.Label(label=\"Detta är botten\")\n"
+"\n"
+"        # ett rutnät\n"
+"        grid = Gtk.Grid()\n"
+"\n"
+"        # lite utrymme mellan rutnätets kolumner\n"
+"        grid.set_column_spacing(20)\n"
+"\n"
+"        # i rutnätet:\n"
+"        # attach the first label in the top left corner\n"
+"        grid.attach(label_top_left, 0, 0, 1, 1)\n"
+"        # attach the second label\n"
+"        grid.attach(label_top_right, 1, 0, 1, 1)\n"
+"        # attach the third label below the first label\n"
+"        grid.attach_next_to(\n"
+"            label_bottom, label_top_left, Gtk.PositionType.BOTTOM, 2, 1)\n"
+"\n"
+"        # lägg till rutnätet till fönstret\n"
+"        self.add(grid)\n"
+"\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
 
 #. (itstool) path: section/title
 #: C/grid.py.page:42
@@ -11003,6 +12484,46 @@ msgid ""
 "\treturn new MyApplication ().run (args);\n"
 "}\n"
 msgstr ""
+"public class MyWindow : Gtk.ApplicationWindow {\n"
+"\n"
+"\tGtk.Widget progress_bar;\n"
+"\n"
+"\tinternal MyWindow (MyApplication app) {\n"
+"\t\tObject (application: app, title: \"Grid-exempel\");\n"
+"\t\tvar grid = new Gtk.Grid();\n"
+"\t\tprogress_bar = new Gtk.ProgressBar ();\n"
+"\t\tprogress_bar.show ();\n"
+"\n"
+"\t\tvar button = new Gtk.Button.with_label (\"Knapp\");\n"
+"\t\tbutton.clicked.connect (on_button_click);\n"
+"\t\tbutton.show ();\n"
+"\n"
+"\t\tthis.add(grid);\n"
+"\t\tgrid.attach(button, 0, 1, 1, 1);\n"
+"\t\tgrid.attach_next_to (progress_bar, button, Gtk.PositionType.BOTTOM, 1, 1);\n"
+"\t\tgrid.show ();\n"
+"\t}\n"
+"\n"
+"\tvoid on_button_click (Gtk.Button button) {\n"
+"\t\t(progress_bar as Gtk.ProgressBar).pulse ();\n"
+"\t}\n"
+"}\n"
+"\n"
+"public class MyApplication : Gtk.Application {\n"
+"\tprotected override void activate () {\n"
+"\n"
+"\t\tnew MyWindow (this).show ();\n"
+"\t}\n"
+"\n"
+"\tinternal MyApplication () {\n"
+"\t\tObject (application_id: \"org.example.MyApplication\");\n"
+"\n"
+"\t}\n"
+"}\n"
+"\n"
+"public int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
 
 #. (itstool) path: item/p
 #: C/grid.vala.page:32
@@ -11176,6 +12697,56 @@ msgid ""
 "let app = new Application ();\n"
 "app.application.run (ARGV);\n"
 msgstr ""
+"\n"
+"#!/usr/bin/gjs\n"
+"\n"
+"imports.gi.versions.Gtk = '3.0';\n"
+"\n"
+"const Gio = imports.gi.Gio;\n"
+"const GLib = imports.gi.GLib;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"\n"
+"class Application {\n"
+"\n"
+"    //skapa programmet\n"
+"    constructor() {\n"
+"        this.application = new Gtk.Application ({\n"
+"            application_id: 'org.example.myapp',\n"
+"            flags: Gio.ApplicationFlags.FLAGS_NONE\n"
+"        });\n"
+"\n"
+"       //anslut ”activate”- och ”startup”-signaler till återanropsfunktionerna\n"
+"       this.application.connect('activate', this._onActivate.bind(this));\n"
+"       this.application.connect('startup', this._onStartup.bind(this));\n"
+"    }\n"
+"\n"
+"    //skapa användargränssnittet (i detta fall bara vårt ApplicationWindow\n"
+"    _buildUI() {\n"
+"        this._window = new Gtk.ApplicationWindow({ application: this.application,\n"
+"                                                   window_position: Gtk.WindowPosition.CENTER,\n"
+"                                                   title: \"Välkommen till GNOME\" });\n"
+"\n"
+"        //att avkommentera raden nedan kommer ändra fönsterstorleken\n"
+"        //this._window.set_default_size(600, 400);\n"
+"\n"
+"        //visa fönstret och alla barnkomponenter (ingen i detta fall)\n"
+"        this._window.show_all();\n"
+"    }\n"
+"\n"
+"    //återanropsfunktion för ”activate”-signal\n"
+"    _onActivate() {\n"
+"        this._window.present();\n"
+"    }\n"
+"\n"
+"    //återanropsfunktion för ”startup”-signal\n"
+"    _onStartup() {\n"
+"        this._buildUI();\n"
+"    }\n"
+"};\n"
+"\n"
+"//kör programmet\n"
+"let app = new Application ();\n"
+"app.application.run (ARGV);\n"
 
 #. (itstool) path: info/title
 #: C/GtkApplicationWindow.py.page:8
@@ -11185,8 +12756,9 @@ msgstr "ApplicationWindow (Python)"
 
 #. (itstool) path: page/p
 #: C/GtkApplicationWindow.py.page:30
+#, fuzzy
 msgid "The simplest GtkApplication Window which can support <link xref=\"gmenu.py\"/>."
-msgstr ""
+msgstr "Det enklaste GtkApplication-fönstret som har stöd för <link xref=\"gmenu.py\"/>."
 
 #. (itstool) path: section/code
 #: C/GtkApplicationWindow.py.page:37
@@ -11244,6 +12816,9 @@ 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> ställer in standardstorleken för fönstret till en bredd på 
<code>200</"
+"code> och en höjd på <code>100</code>; om vi istället för ett positivt tal skickar med <code>-1</code> får 
vi "
+"standardstorleken."
 
 #. (itstool) path: item/p
 #: C/GtkApplicationWindow.py.page:45 C/window.py.page:55
@@ -11252,6 +12827,9 @@ msgid ""
 "WindowPosition.NONE, Gtk.WindowPosition.MOUSE, Gtk.WindowPosition.CENTER_ALWAYS, Gtk.WindowPosition."
 "CENTER_ON_PARENT</code>."
 msgstr ""
+"<code>set_position(Gtk.WindowPosition.CENTER)</code> centrerar fönstret. Andra alternativ är <code>Gtk."
+"WindowPosition.NONE, Gtk.WindowPosition.MOUSE, Gtk.WindowPosition.CENTER_ALWAYS, Gtk.WindowPosition."
+"CENTER_ON_PARENT</code>."
 
 #. (itstool) path: info/title
 #: C/GtkApplicationWindow.vala.page:8
@@ -11285,6 +12863,22 @@ msgid ""
 "\treturn new MyApplication ().run (args);\n"
 "}\n"
 msgstr ""
+"\n"
+"/* Det här är programmet. */\n"
+"public class MyApplication : Gtk.Application {\n"
+"\t/* Åsidosätt ”activate”-signalen för GLib.Application. */\n"
+"\tprotected override void activate () {\n"
+"\t\t/* Skapa fönstret för detta program och visa det. */\n"
+"\t\tvar window = new Gtk.ApplicationWindow (this);\n"
+"\t\twindow.title = \"Välkommen till GNOME\";\n"
+"\t\twindow.show ();\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* main skapar och kör programmet. */\n"
+"public int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
 
 #. (itstool) path: item/p
 #: C/GtkApplicationWindow.vala.page:31 C/label.vala.page:31
@@ -11334,9 +12928,8 @@ msgstr "Konfigurerar ett grundläggande projekt i Anjuta"
 
 #. (itstool) path: item/p
 #: C/guitar-tuner.c.page:35 C/guitar-tuner.cpp.page:33 C/guitar-tuner.py.page:40
-#, fuzzy
 msgid "Create a simple GUI with Anjuta's UI designer"
-msgstr "Skapar ett enkelt grafiskt användargränssnitt (GUI) med Anjutas UI-designer"
+msgstr "Skapar ett enkelt grafiskt användargränssnitt med Anjutas användargränssnittsdesigner"
 
 #. (itstool) path: item/p
 #: C/guitar-tuner.c.page:36 C/guitar-tuner.cpp.page:34 C/guitar-tuner.py.page:41
@@ -11349,10 +12942,10 @@ msgstr "Använder GStreamer för att spela upp ljud"
 msgid "You'll need the following to be able to follow this tutorial:"
 msgstr "Du behöver följande för att kunna följa denna handledning:"
 
+# TODO: dead link
 #. (itstool) path: item/p
 #: C/guitar-tuner.c.page:40 C/guitar-tuner.cpp.page:38 C/guitar-tuner.py.page:45 C/image-viewer.js.page:41
 #: C/image-viewer.py.page:41 C/magic-mirror.vala.page:41
-#, fuzzy
 msgid "An installed copy of the <link xref=\"getting-ready\">Anjuta IDE</link>"
 msgstr "En installerad kopia av den <link xref=\"getting-ready\">integrerade utvecklingsmiljön Anjuta</link>"
 
@@ -11415,13 +13008,18 @@ msgid ""
 "Make sure that <gui>Configure external packages</gui> is switched <gui>ON</gui>. On the next page, select "
 "<em>gstreamer-0.10</em> from the list to include the GStreamer library in your project."
 msgstr ""
+"Säkerställ att <gui>Konfigurera externa paket</gui> är i läget <gui>PÅ</gui>. På nästa sida, välj "
+"<em>gstreamer-0.10</em> från listan för att inkludera GStreamer-biblioteket i ditt projekt."
 
+# TODO: Seems to be <gui>Project</gui> or <gui>Files</gui>
 #. (itstool) path: item/p
 #: C/guitar-tuner.c.page:62 C/image-viewer.c.page:57 C/photo-wall.c.page:71
 msgid ""
 "Click <gui>Apply</gui> and the project will be created for you. Open <file>src/main.c</file> from the "
 "<gui>Project</gui> or <gui>File</gui> tabs. You should see some code which starts with the lines:"
 msgstr ""
+"Klicka på <gui>Verkställ</gui> så kommer projektet skapas åt dig. Öppna <file>src/main.c</file> från 
flikarna "
+"<gui>Projekt</gui> eller <gui>Filer</gui>. Du bör se kod som börjar med raderna:"
 
 #. (itstool) path: item/code
 #: C/guitar-tuner.c.page:63 C/image-viewer.c.page:58 C/photo-wall.c.page:72
@@ -11599,7 +13197,7 @@ msgstr ""
 
 #. (itstool) path: section/code
 #: C/guitar-tuner.c.page:131
-#, no-wrap
+#, fuzzy, no-wrap
 msgid ""
 "\n"
 "void on_button_clicked (GtkWidget* button, gpointer user_data)\n"
@@ -11607,6 +13205,11 @@ msgid ""
 "\n"
 "}"
 msgstr ""
+"\n"
+"void on_button_clicked (GtkWidget* button, gpointer user_data)\n"
+"{\n"
+"\n"
+"}"
 
 #. (itstool) path: section/p
 #: C/guitar-tuner.c.page:136
@@ -11621,12 +13224,13 @@ msgstr ""
 #: C/guitar-tuner.c.page:137 C/guitar-tuner.py.page:136
 msgid "For now, we'll leave the signal handler empty while we work on writing the code to produce sounds."
 msgstr ""
+"För tillfället kommer vi lämna signalhanteraren tom medan vi arbetar med att skriva koden för att skapa 
ljud."
 
 #. (itstool) path: section/title
 #: C/guitar-tuner.c.page:141 C/guitar-tuner.cpp.page:118 C/guitar-tuner.js.page:39 C/guitar-tuner.py.page:140
 #: C/guitar-tuner.vala.page:131
 msgid "GStreamer pipelines"
-msgstr ""
+msgstr "GStreamer-rörledningar"
 
 #. (itstool) path: section/p
 #: C/guitar-tuner.c.page:142 C/guitar-tuner.js.page:40 C/guitar-tuner.py.page:141
@@ -11666,12 +13270,12 @@ msgstr "external ref='media/guitar-tuner-pipeline.png' md5='5adc952909d92af5dae6
 #: C/guitar-tuner.c.page:146 C/guitar-tuner.cpp.page:124 C/guitar-tuner.js.page:44 C/guitar-tuner.py.page:145
 #: C/guitar-tuner.vala.page:136
 msgid "An example GStreamer pipeline."
-msgstr ""
+msgstr "Exempel på en GStreamer-rörledning."
 
 #. (itstool) path: section/title
 #: C/guitar-tuner.c.page:151 C/guitar-tuner.py.page:150 C/guitar-tuner.vala.page:141
 msgid "Set up the pipeline"
-msgstr ""
+msgstr "Konfigurera rörledningen"
 
 #. (itstool) path: section/p
 #: C/guitar-tuner.c.page:152 C/guitar-tuner.cpp.page:135 C/guitar-tuner.py.page:151
@@ -11699,6 +13303,8 @@ msgid ""
 "This includes the GStreamer library. You also need to add a line to initialize GStreamer; put the following 
code "
 "on the line above the <code>gtk_init</code> call in the <code>main</code> function:"
 msgstr ""
+"Detta inkluderar GStreamer-biblioteket. Du behöver också lägga till en rad för att initiera GStreamer; 
stoppa in "
+"följande kod på raden ovanför <code>gtk_init</code>-anropen i <code>main</code>-funktionen:"
 
 #. (itstool) path: section/code
 #: C/guitar-tuner.c.page:157
@@ -11711,6 +13317,8 @@ msgstr "gst_init (&amp;argc, &amp;argv);"
 msgid ""
 "Then, copy the following function into <file>main.c</file> above the empty <code>on_button_clicked</code> 
function:"
 msgstr ""
+"Kopiera sedan in följande funktion i <file>main.c</file>, ovanför den tomma funktionen 
<code>on_button_clicked</"
+"code>:"
 
 #. (itstool) path: section/code
 #: C/guitar-tuner.c.page:159
@@ -11812,6 +13420,17 @@ msgid ""
 "\treturn FALSE;\n"
 "}"
 msgstr ""
+"\n"
+"#define LENGTH 500 /* Uppspelningslängd i ms */\n"
+"\n"
+"static gboolean\n"
+"pipeline_stop (GstElement* pipeline)\n"
+"{\n"
+"\tgst_element_set_state (pipeline, GST_STATE_NULL);\n"
+"\tg_object_unref (pipeline);\n"
+"\n"
+"\treturn FALSE;\n"
+"}"
 
 #. (itstool) path: section/p
 #: C/guitar-tuner.c.page:215
@@ -11823,7 +13442,7 @@ msgstr ""
 #. (itstool) path: section/title
 #: C/guitar-tuner.c.page:219 C/guitar-tuner.py.page:208
 msgid "Define the tones"
-msgstr ""
+msgstr "Definiera tonerna"
 
 #. (itstool) path: section/p
 #: C/guitar-tuner.c.page:220
@@ -11831,10 +13450,12 @@ msgid ""
 "We want to play the correct sound when the user clicks a button. First of all, we need to know the 
frequencies for "
 "the six guitar strings, which are defined (at the top of <file>main.c</file>) as follows:"
 msgstr ""
+"Vi vill spela rätt ljud när användaren klickar på en knapp. Först av allt behöver vi veta frekvenserna för 
de sex "
+"gitarrsträngarna, vilka är definierade (högst upp i <file>main.c</file>) enligt följande:"
 
 #. (itstool) path: section/code
 #: C/guitar-tuner.c.page:221
-#, no-wrap
+#, fuzzy, no-wrap
 msgid ""
 "\n"
 "/* Frequencies of the strings */\n"
@@ -11845,6 +13466,14 @@ msgid ""
 "#define NOTE_B 987.77\n"
 "#define NOTE_e 1318.5"
 msgstr ""
+"\n"
+"/* Strängarnas frekvenser */\n"
+"#define NOTE_E 329.63\n"
+"#define NOTE_A 440\n"
+"#define NOTE_D 587.33\n"
+"#define NOTE_G 783.99\n"
+"#define NOTE_B 987.77\n"
+"#define NOTE_e 1318.5"
 
 #. (itstool) path: section/p
 #: C/guitar-tuner.c.page:229 C/guitar-tuner.py.page:222
@@ -12019,13 +13648,19 @@ msgid ""
 "Make sure that <gui>Configure external packages</gui> is selected. On the next page, select 
<em>gstreamermm-0.10</"
 "em> from the list to include the GStreamermm library in your project."
 msgstr ""
+"Säkerställ att <gui>Konfigurera externa paket</gui> är valt. På nästa sida, välj <em>gstreamermm-0.10</em> 
från "
+"listan för att inkludera GStreamermm-biblioteket i ditt projekt."
 
+# TODO: Finished -> Apply ?
+# <gui>File</gui> -> <gui>Files</gui>
 #. (itstool) path: item/p
 #: C/guitar-tuner.cpp.page:60
 msgid ""
 "Click <gui>Finished</gui> and the project will be created for you. Open <file>src/main.cc</file> from the "
 "<gui>Project</gui> or <gui>File</gui> tabs. You should see some code which starts with the lines:"
 msgstr ""
+"Klicka på <gui>Färdig</gui> så kommer projektet skapas åt dig. Öppna <file>src/main.cc</file> från flikarna 
"
+"<gui>Projekt</gui> eller <gui>Filer</gui>. Du bör se kod som börjar med raderna:"
 
 #. (itstool) path: item/code
 #: C/guitar-tuner.cpp.page:61
@@ -12357,7 +13992,7 @@ msgstr ""
 #. (itstool) path: item/p
 #: C/guitar-tuner.js.page:25
 msgid "<link xref=\"#gstreamer\">GStreamer pipelines</link>"
-msgstr ""
+msgstr "<link xref=\"#gstreamer\">GStreamer-rörledningar</link>"
 
 #. (itstool) path: item/p
 #: C/guitar-tuner.js.page:26 C/weatherAppMain.js.page:23
@@ -12439,6 +14074,11 @@ msgid ""
 "\n"
 "const Mainloop = imports.mainloop;"
 msgstr ""
+"\n"
+"var Gtk = imports.gi.Gtk;\n"
+"var Gst = imports.gi.Gst;\n"
+"\n"
+"const Mainloop = imports.mainloop;"
 
 #. (itstool) path: section/p
 #: C/guitar-tuner.js.page:61
@@ -12470,6 +14110,16 @@ msgid ""
 "guitarwindow.show();\n"
 "Gtk.main();"
 msgstr ""
+"\n"
+"Gtk.init(null, 0);\n"
+"Gst.init(null, 0);\n"
+"\n"
+"var guitarwindow = new Gtk.Window({type: Gtk.WindowType.TOPLEVEL, border_width: 100});\n"
+"guitarwindow.title = \"Gitarrstämmare\";\n"
+"guitarwindow.connect(\"destroy\", function(){Gtk.main_quit()});\n"
+"\n"
+"guitarwindow.show();\n"
+"Gtk.main();"
 
 #. (itstool) path: section/p
 #: C/guitar-tuner.js.page:75
@@ -12737,13 +14387,13 @@ msgstr "Köra programmet från Terminal"
 #. (itstool) path: section/p
 #: C/guitar-tuner.js.page:238
 msgid "To run this application open Terminal, go to the folder where your application is stored and then run"
-msgstr ""
+msgstr "För att köra detta program, öppna Terminal, gå till mappen där ditt program lagrats och kör sedan"
 
 #. (itstool) path: section/screen
 #: C/guitar-tuner.js.page:238
 #, no-wrap
 msgid " <output style=\"prompt\">$ </output><input> GJS_PATH=`pwd` gjs guitarTuner.js</input> "
-msgstr ""
+msgstr " <output style=\"prompt\">$ </output><input> GJS_PATH=`pwd` gjs guitarTuner.js</input> "
 
 #. (itstool) path: section/p
 #: C/guitar-tuner.js.page:243
@@ -12774,12 +14424,15 @@ msgstr ""
 "Välj <gui>PyGTK (automake)</gui> från fliken <gui>Python</gui>, klicka på <gui>Fortsätt</gui>, och fyll i 
dina "
 "detaljer på de nästkommande sidorna. Använd <file>guitar-tuner</file> som projektnamn och katalog."
 
+# TODO: Seems to be <gui>Project</gui> or <gui>Files</gui>
 #. (itstool) path: item/p
 #: C/guitar-tuner.py.page:63
 msgid ""
 "Click <gui>Apply</gui> and the project will be created for you. Open <file>src/guitar_tuner.py</file> from 
the "
 "<gui>Project</gui> or <gui>File</gui> tabs. You should see some code which starts with the lines:"
 msgstr ""
+"Klicka på <gui>Verkställ</gui> så kommer projektet skapas åt dig. Öppna <file>src/guitar_tuner.py</file> 
från "
+"flikarna <gui>Projekt</gui> eller <gui>Filer</gui>. Du bör se kod som börjar med raderna:"
 
 #. (itstool) path: item/code
 #: C/guitar-tuner.py.page:64
@@ -12805,12 +14458,15 @@ msgid ""
 "and shows it. More details are given below; skip this list if you understand the basics:"
 msgstr ""
 
+# TODO: remove *include the* ?
 #. (itstool) path: item/p
 #: C/guitar-tuner.py.page:77
 msgid ""
 "The <code>import</code> lines at the top include the tell Python to load the user interface and system 
libraries "
 "needed."
 msgstr ""
+"<code>import</code>-raderna högst upp säger till Python att läsa in användargränssnittsbiblioteken och "
+"systembiblioteken som behövs."
 
 #. (itstool) path: item/p
 #: C/guitar-tuner.py.page:81
@@ -12825,6 +14481,8 @@ msgid ""
 "Connecting signals is how you define what happens when you push a button, or when some other event happens. 
Here, "
 "the <code>destroy</code> method is called (and quits the app) when you close the window."
 msgstr ""
+"Att ansluta signaler är hur du definierar vad som händer när du trycker på en knapp, eller när någon annan "
+"händelse inträffar. Här anropas funktionen <code>destroy</code> (och avslutar programmet) när du stänger 
fönstret."
 
 #. (itstool) path: item/p
 #: C/guitar-tuner.py.page:87
@@ -12879,13 +14537,13 @@ msgstr ""
 #. (itstool) path: section/p
 #: C/guitar-tuner.py.page:153
 msgid "Change the import line in <file>guitar_tuner.py</file>, just at the beginning to :"
-msgstr ""
+msgstr "Ändra importraden just i början av <file>guitar_tuner.py</file> till:"
 
 #. (itstool) path: section/code
 #: C/guitar-tuner.py.page:154
 #, no-wrap
 msgid "from gi.repository import Gtk, Gst, GObject "
-msgstr ""
+msgstr "from gi.repository import Gtk, Gst, GObject "
 
 # TODO:initialized
 #. (itstool) path: section/p
@@ -12894,6 +14552,8 @@ msgid ""
 "The <code>Gst</code> includes the GStreamer library. You also need to initialise GStreamer properly which 
is done "
 "in the <code>main()</code> method with this call added above the <code>app = GUI()</code> line:"
 msgstr ""
+"<code>Gst</code> inkluderar GStreamer-biblioteket. Du behöver också initiera GStreamer ordentligt vilket 
görs i "
+"<code>main()</code>-metoden med detta anrop tillagt ovanför raden <code>app = GUI()</code>:"
 
 #. (itstool) path: section/code
 #: C/guitar-tuner.py.page:158
@@ -12982,6 +14642,10 @@ msgid ""
 "\tpipeline.set_state(Gst.State.NULL)\n"
 "\treturn False\n"
 msgstr ""
+"\n"
+"def pipeline_stop(self, pipeline):\n"
+"\tpipeline.set_state(Gst.State.NULL)\n"
+"\treturn False\n"
 
 #. (itstool) path: section/p
 #: C/guitar-tuner.py.page:199
@@ -13003,7 +14667,7 @@ msgstr ""
 #. (itstool) path: section/p
 #: C/guitar-tuner.py.page:204
 msgid "The call to <code>pipeline.set_state</code> stops the playback of the pipeline."
-msgstr ""
+msgstr "Anropet till <code>pipeline.set_state</code> stoppar uppspelningen av rörledningen."
 
 #. (itstool) path: section/p
 #: C/guitar-tuner.py.page:209
@@ -13095,15 +14759,18 @@ msgid ""
 "learn how to:"
 msgstr ""
 
+# TODO: dead link
 #. (itstool) path: item/p
 #: C/guitar-tuner.vala.page:37
 msgid "Set up a basic project using the <link xref=\"getting-ready\">Anjuta IDE</link>."
 msgstr ""
+"Konfigurerar ett grundläggande projekt med den <link xref=\"getting-ready\">integrerade utvecklingsmiljön 
Anjuta</"
+"link>."
 
 #. (itstool) path: item/p
 #: C/guitar-tuner.vala.page:38
 msgid "Create a simple GUI with <app>Anjuta</app>'s UI designer."
-msgstr ""
+msgstr "Skapar ett enkelt grafiskt användargränssnitt med <app>Anjuta</app>s användargränssnittsdesigner."
 
 #. (itstool) path: item/p
 #: C/guitar-tuner.vala.page:39
@@ -13155,6 +14822,9 @@ msgid ""
 "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 ""
+"Säkerställ att <gui>Konfigurera externa paket</gui> är i läget <gui>PÅ</gui>. På nästa sida, välj <link 
href="
+"\"http://valadoc.org/gstreamer-0.10/index.htm\";><em>gstreamer-0.10</em></link> från listan för att 
inkludera "
+"GStreamer-biblioteket i ditt projekt. Klicka på <gui>Fortsätt</gui>"
 
 #. (itstool) path: item/p
 #: C/guitar-tuner.vala.page:65
@@ -13163,6 +14833,9 @@ msgid ""
 "tab, open <file>src/guitar_tuner.vala</file> by double-clicking on it. You should see some code which 
starts with "
 "the lines:"
 msgstr ""
+"Klicka på <gui>Verkställ</gui> så kommer projektet skapas åt dig. Öppna <file>src/guitar_tuner.vala</file> 
från "
+"flikarna <gui>Projekt</gui> eller <gui>Filer</gui> genom att dubbelklicka på den. Du bör se kod som börjar 
med "
+"raderna:"
 
 #. (itstool) path: item/code
 #: C/guitar-tuner.vala.page:66 C/magic-mirror.vala.page:70
@@ -13186,7 +14859,7 @@ msgstr ""
 #. (itstool) path: item/p
 #: C/guitar-tuner.vala.page:79 C/magic-mirror.vala.page:82
 msgid "The two <code>using</code> lines import namespaces so we don't have to name them explicitly."
-msgstr ""
+msgstr "De två <code>using</code>-raderna importerar namnrymder så vi inte behöver namnge dem explicit."
 
 #. (itstool) path: item/p
 #: C/guitar-tuner.vala.page:82
@@ -13203,6 +14876,9 @@ msgid ""
 "Connecting signals is how you define what happens when you push a button, or when some other event happens. 
Here, "
 "the <code>on_destroy</code> function is called (and quits the app) when you close the window."
 msgstr ""
+"Att ansluta signaler är hur du definierar vad som händer när du trycker på en knapp, eller när någon annan "
+"händelse inträffar. Här anropas funktionen <code>on_destroy</code> (och avslutar programmet) när du stänger 
"
+"fönstret."
 
 #. (itstool) path: item/p
 #: C/guitar-tuner.vala.page:88
@@ -13321,7 +14997,7 @@ msgstr ""
 #: C/guitar-tuner.vala.page:145
 #, no-wrap
 msgid "Gst.init (ref args);"
-msgstr ""
+msgstr "Gst.init (ref args);"
 
 #. (itstool) path: section/p
 #: C/guitar-tuner.vala.page:146
@@ -13456,6 +15132,9 @@ msgid ""
 "\"><code>Gtk.Widget</code></link> that called the function (in our case, always a <link 
href=\"http://valadoc.org/";
 "gtk+-3.0/Gtk.Button.html\"><code>Gtk.Button</code></link>)."
 msgstr ""
+"Denna signalhanterare har endast ett argument: den <link href=\"http://valadoc.org/gtk+-3.0/Gtk.Widget.html";
+"\"><code>Gtk.Widget</code></link> som anropade funktionen (i vårt fall alltid en <link 
href=\"http://valadoc.org/";
+"gtk+-3.0/Gtk.Button.html\"><code>Gtk.Button</code></link>)."
 
 #. (itstool) path: section/title
 #: C/guitar-tuner.vala.page:219
@@ -14029,7 +15708,6 @@ msgstr ""
 
 #. (itstool) path: section/p
 #: C/hellognome.js.page:167
-#, fuzzy
 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 "
@@ -14067,7 +15745,6 @@ msgstr "Köra ditt GNOME-program"
 
 #. (itstool) path: section/p
 #: C/hellognome.js.page:179
-#, fuzzy
 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 "
@@ -14078,7 +15755,7 @@ msgstr ""
 "Nu då vi skapat vårt första GNOME-program så är det dags att testa det! Du behöver inte kompilera ditt 
program "
 "eller installera någon speciell programvara för detta, GNOME har gjs inbyggt för att låta det köra 
GNOME-skalet. "
 "Spara bara <file>hellognome.html</file> och vårt faktiska program, <file>hellognome.js</file>, till en 
katalog som "
-"du kan komma åt med terminalen. (De öppnas vanligen till din hemkatalog, den som namngivits av ditt 
användarnamn.) "
+"du kan komma åt med terminalen. (De öppnas vanligen i din hemkatalog, den som har ditt användarnamn som 
namn.) "
 "Öppna efter det en terminal, gå dit, och skriv:"
 
 #. (itstool) path: section/screen
@@ -15953,6 +17630,63 @@ msgid ""
 "let app = new ImageExample ();\n"
 "app.application.run (ARGV);\n"
 msgstr ""
+"#!/usr/bin/gjs\n"
+"\n"
+"imports.gi.versions.Gtk = '3.0';\n"
+"\n"
+"const Gio = imports.gi.Gio;\n"
+"const GLib = imports.gi.GLib;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"\n"
+"class ImageExample {\n"
+"\n"
+"    /* Skapa programmet i sig\n"
+"       Denna standardkod behövs för att bygga alla GTK+-program. */\n"
+"    constructor() {\n"
+"        this.application = new Gtk.Application ({\n"
+"            application_id: 'org.example.jsimage',\n"
+"            flags: Gio.ApplicationFlags.FLAGS_NONE\n"
+"        });\n"
+"\n"
+"        // Anslut ”activate”- och ”startup”-signaler till återanropsfunktionerna\n"
+"        this.application.connect('activate', this._onActivate.bind(this));\n"
+"        this.application.connect('startup', this._onStartup.bind(this));\n"
+"    }\n"
+"\n"
+"    // Återanropsfunktion för ”activate”-signal visar fönster när den aktiveras\n"
+"    _onActivate() {\n"
+"        this._window.present();\n"
+"    }\n"
+"\n"
+"    // Återanropsfunktion för ”startup”-signal initierar menyer och bygger användargränssnittet\n"
+"    _onStartup() {\n"
+"        this._buildUI();\n"
+"    }\n"
+"\n"
+"    // Bygg programmets användargränssnitt\n"
+"    _buildUI() {\n"
+"\n"
+"        // Skapa programfönstret\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            title: \"Välkommen till GNOME\",\n"
+"            default_height: 300,\n"
+"            default_width: 300\n"
+"        });\n"
+"\n"
+"        // Skapa etiketten\n"
+"        this.jsimage = new Gtk.Image ({file: \"gnome-image.png\"});\n"
+"        this._window.add (this.jsimage);\n"
+"\n"
+"        // Visa fönstret och alla barnkomponenter\n"
+"        this._window.show_all();\n"
+"    }\n"
+"};\n"
+"\n"
+"// Kör programmet\n"
+"let app = new ImageExample ();\n"
+"app.application.run (ARGV);\n"
 
 #. (itstool) path: item/p
 #: C/image.js.page:34
@@ -16026,6 +17760,43 @@ msgid ""
 "\n"
 "  "
 msgstr ""
+"\n"
+"  from gi.repository import Gtk\n"
+"import sys\n"
+"\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    # create a window\n"
+"\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"Välkommen till GNOME\", application=app)\n"
+"        self.set_default_size(300, 300)\n"
+"\n"
+"        # skapa en bild\n"
+"        image = Gtk.Image()\n"
+"        # ställ in bildens innehåll till filen filnamn.png\n"
+"        image.set_from_file(\"gnome-image.png\")\n"
+"        # lägg till bilden till fönstret\n"
+"        self.add(image)\n"
+"\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
+"\n"
+"  "
 
 #. (itstool) path: section/p
 #: C/image.py.page:47
@@ -16033,6 +17804,8 @@ 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 ""
+"Ett annat sätt att få det som vi har i exemplet är att skapa bilden som en instans av en annan klass och 
lägga "
+"till den i instansen av <code>MyWindow</code> i metoden <code>do_activate(self)</code>:"
 
 #. (itstool) path: section/code
 #: C/image.py.page:51
@@ -16064,6 +17837,31 @@ msgid ""
 "        win.show_all()\n"
 "  "
 msgstr ""
+"\n"
+"    # en klass för att skapa ett fönster\n"
+"    class MyWindow(Gtk.ApplicationWindow):\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"Välkommen till GNOME\", application=app)\n"
+"        self.set_default_size(300, 300)\n"
+"\n"
+"    # en klass för att skapa en bild\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"
+"        # skapa en instans av MyWindow\n"
+"        win = MyWindow(self)\n"
+"        # skapa en instans av MyImage och lägg till den till fönstret\n"
+"        win.add(MyImage())\n"
+"        # visa fönstret och allt som finns i det\n"
+"        win.show_all()\n"
+"  "
 
 #. (itstool) path: note/p
 #: C/image.py.page:78
@@ -16071,6 +17869,9 @@ msgid ""
 "To use this code snippet, you will need to add the code that imports <code>Gtk</code> and 
<code>GdkPixbuf</code> "
 "from <code>gi.repository</code> and lines that instantiate the <code>MyApplication</code> window."
 msgstr ""
+"För att använda denna kodsnutt kommer du behöva lägga till koden som importerar <code>Gtk</code> och "
+"<code>GdkPixbuf</code> från <code>gi.repository</code> och rader som instansierar 
<code>MyApplication</code>-"
+"fönstret."
 
 #. (itstool) path: section/title
 #: C/image.py.page:85
@@ -16083,7 +17884,10 @@ msgid ""
 "To load an image over a network use <code>set_from_pixbuf(pixbuf)</code>, where <code>pixbuf</code> is a 
<link "
 "href=\"https://developer.gnome.org/gdk-pixbuf/unstable/index.html\";> GdkPixbuf</link>."
 msgstr ""
+"För att läsa in en bild över ett nätverk, använd <code>set_from_pixbuf(pixbuf)</code>, där 
<code>pixbuf</code> är "
+"en <link href=\"https://developer.gnome.org/gdk-pixbuf/unstable/index.html\";> GdkPixbuf</link>."
 
+# TODO: amd -> and
 #. (itstool) path: item/code
 #: C/image.py.page:93
 #, no-wrap
@@ -16270,6 +18074,9 @@ msgid ""
 "tutorial. Check the <link xref=\"guitar-tuner.c\">Guitar-Tuner</link> tutorial if you want to learn how to 
use the "
 "interface builder."
 msgstr ""
+"Säkerställ att <gui>Använd GtkBuilder för användargränssnitt</gui> är inaktiverat då vi kommer skapa "
+"användargränssnittet manuellt i denna handledning. Se handledningen <link 
xref=\"guitar-tuner.c\">Gitarrstämmare</"
+"link> om du vill lära dig hur du använder gränssnittsbyggaren."
 
 #. (itstool) path: section/p
 #: C/image-viewer.c.page:67
@@ -16285,6 +18092,8 @@ msgid ""
 "The <code>create_window</code> function creates a new (empty) window and connects a signal to exit the 
application "
 "when that window is closed."
 msgstr ""
+"Funktionen <code>create_window</code> skapar ett nytt (tomt) fönster och ansluter en signal för att avsluta 
"
+"programmet då det fönstret stängs."
 
 #. (itstool) path: section/title
 #: C/image-viewer.c.page:90 C/image-viewer.cpp.page:87 C/image-viewer.vala.page:139
@@ -16298,6 +18107,9 @@ msgid ""
 "that can contain other widgets and even other containers. Here we will use the simplest available 
container, a "
 "<code>GtkBox</code>:"
 msgstr ""
+"Nu kommer vi blåsa liv i det tomma fönstret. GTK organiserar användargränssnittet med behållare av typ "
+"<code>GtkContainer</code> som kan innehålla andra komponenter och till och med andra behållare. Här kommer 
vi "
+"använda den enklaste tillgängliga behållaren, en <code>GtkBox</code>:"
 
 #. (itstool) path: section/code
 #: C/image-viewer.c.page:94
@@ -16336,6 +18148,38 @@ msgid ""
 "\treturn window;\n"
 "}\n"
 msgstr ""
+"\n"
+"static GtkWidget*\n"
+"create_window (void)\n"
+"{\n"
+"\tGtkWidget *window;\n"
+"\tGtkWidget *button;\n"
+"\tGtkWidget *image;\n"
+"\tGtkWidget *box;\n"
+"\n"
+"\t/* Konfigurera användargränssnittet */\n"
+"\twindow = gtk_window_new (GTK_WINDOW_TOPLEVEL);\n"
+"\tgtk_window_set_title (GTK_WINDOW (window), \"image-viewer-c\");\n"
+"\n"
+"\tbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 5);\n"
+"\tbutton = gtk_button_new_with_label (_(\"Öppna bild\"));\n"
+"\timage = gtk_image_new ();\n"
+"\n"
+"\tgtk_box_pack_start (GTK_BOX (box), image, TRUE, TRUE, 0);\n"
+"\tgtk_box_pack_start (GTK_BOX (box), button, FALSE, FALSE, 0);\n"
+"\n"
+"\tgtk_container_add (GTK_CONTAINER (window), box);\n"
+"\n"
+"\t/* Anslut signaler */\n"
+"\n"
+"\t/* Visa öppna-dialog då en fil öppnas */\n"
+"\tg_signal_connect (button, \"clicked\", G_CALLBACK (on_open_image), image);\n"
+"\n"
+"\t/* Avsluta då fönstret stängs */\n"
+"\tg_signal_connect (window, \"destroy\", G_CALLBACK (gtk_main_quit), NULL);\n"
+"\n"
+"\treturn window;\n"
+"}\n"
 
 #. (itstool) path: item/p
 #: C/image-viewer.c.page:129
@@ -16367,7 +18211,7 @@ msgstr ""
 #. (itstool) path: item/p
 #: C/image-viewer.c.page:145
 msgid "The last <code>g_signal_connect()</code> makes sure that the application exits when the window is 
closed."
-msgstr ""
+msgstr "Den sista <code>g_signal_connect()</code> säkerställer att programmet avslutas när fönstret stängs."
 
 #. (itstool) path: item/p
 #: C/image-viewer.c.page:148
@@ -16387,6 +18231,8 @@ msgid ""
 "We will now define the signal handler for the <em>clicked</em> signal or the button we mentioned before. 
Add this "
 "code before the <code>create_window()</code> method."
 msgstr ""
+"Vi kommer nu definiera signalhanteraren för <em>clicked</em>-signalen eller knappen vi nämnde tidigare. 
Lägg till "
+"denna kod före <code>create_window()</code>-metoden."
 
 #. (itstool) path: section/code
 #: C/image-viewer.c.page:159
@@ -16425,11 +18271,43 @@ msgid ""
 "\tgtk_widget_destroy (dialog);\n"
 "}\n"
 msgstr ""
+"\n"
+"static void\n"
+"on_open_image (GtkButton* button, gpointer user_data)\n"
+"{\n"
+"\tGtkWidget *image = GTK_WIDGET (user_data);\n"
+"\tGtkWidget *toplevel = gtk_widget_get_toplevel (image);\n"
+"\tGtkFileFilter *filter = gtk_file_filter_new ();\n"
+"\tGtkWidget *dialog = gtk_file_chooser_dialog_new (_(\"Öppna bild\"),\n"
+"\t                                                 GTK_WINDOW (toplevel),\n"
+"\t                                                 GTK_FILE_CHOOSER_ACTION_OPEN,\n"
+"\t                                                 GTK_STOCK_OK, GTK_RESPONSE_ACCEPT,\n"
+"\t                                                 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,\n"
+"\t                                                 NULL);\n"
+"\n"
+"\tgtk_file_filter_add_pixbuf_formats (filter);\n"
+"\tgtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dialog),\n"
+"\t                             filter);\n"
+"\n"
+"\tswitch (gtk_dialog_run (GTK_DIALOG (dialog)))\n"
+"\t{\n"
+"\t\tcase GTK_RESPONSE_ACCEPT:\n"
+"\t\t{\n"
+"\t\t\tgchar *filename =\n"
+"\t\t\t\tgtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog));\n"
+"\t\t\tgtk_image_set_from_file (GTK_IMAGE (image), filename);\n"
+"\t\t\tbreak;\n"
+"\t\t}\n"
+"\t\tdefault:\n"
+"\t\t\tbreak;\n"
+"\t}\n"
+"\tgtk_widget_destroy (dialog);\n"
+"}\n"
 
 #. (itstool) path: section/p
 #: C/image-viewer.c.page:192 C/image-viewer.cpp.page:178 C/image-viewer.js.page:283 
C/image-viewer.py.page:197
 msgid "This is a bit more complicated than anything we've attempted so far, so let's break it down:"
-msgstr ""
+msgstr "Det här är lite mer komplicerat än något som vi försökt så här långt, så låt oss dela upp det:"
 
 #. (itstool) path: item/p
 #: C/image-viewer.c.page:194
@@ -16454,6 +18332,9 @@ msgid ""
 "Notice that we are using <em>stock</em> button names from Gtk, instead of manually typing \"Cancel\" or 
\"Open\". "
 "The advantage of using stock names is that the button labels will already be translated into the user's 
language."
 msgstr ""
+"Observera att vi använder <em>standard</em>knappnamn från Gtk, istället för att manuellt skriva in ”Avbryt” 
eller "
+"”Öppna”. Fördelen med att använda standardnamn är att knappetiketterna redan kommer vara översatta till "
+"användarens språk."
 
 #. (itstool) path: item/p
 #: C/image-viewer.c.page:207
@@ -16511,6 +18392,8 @@ msgid ""
 "Have the user select a directory rather than a file, and provide controls to cycle through all of the 
images in a "
 "directory."
 msgstr ""
+"Låt användaren välja en katalog snarare än en fil, och tillhandahåll kontroller för att gå igenom alla 
bilderna i "
+"en katalog."
 
 #. (itstool) path: item/p
 #: C/image-viewer.c.page:240 C/image-viewer.cpp.page:228 C/image-viewer.js.page:328 
C/image-viewer.py.page:242
@@ -16518,12 +18401,13 @@ msgstr ""
 msgid ""
 "Apply random filters and effects to the image when it is loaded and allow the user to save the modified 
image."
 msgstr ""
+"Tillämpa slumpmässiga filter och effekter till bilden då den läses in och låt användaren spara den ändrade 
bilden."
 
 #. (itstool) path: item/p
 #: C/image-viewer.c.page:241 C/image-viewer.cpp.page:229 C/image-viewer.js.page:329 
C/image-viewer.py.page:243
 #: C/image-viewer.vala.page:302
 msgid "<link href=\"http://www.gegl.org/api.html\";>GEGL</link> provides powerful image manipulation 
capabilities."
-msgstr ""
+msgstr "<link href=\"http://www.gegl.org/api.html\";>GEGL</link> har kraftfulla bildmanipuleringsförmågor."
 
 #. (itstool) path: item/p
 #: C/image-viewer.c.page:244 C/image-viewer.cpp.page:232 C/image-viewer.js.page:332 
C/image-viewer.py.page:246
@@ -16571,13 +18455,19 @@ msgid ""
 "tutorial. Check the <link xref=\"guitar-tuner.cpp\">Guitar-Tuner</link> tutorial if you want to learn how 
to use "
 "the interface builder."
 msgstr ""
+"Säkerställ att <gui>Använd GtkBuilder för användargränssnitt</gui> är inaktiverat då vi kommer skapa "
+"användargränssnittet manuellt i denna handledning. Se handledningen <link xref=\"guitar-tuner.cpp"
+"\">Gitarrstämmare</link> om du vill lära dig hur du använder gränssnittsbyggaren."
 
+# TODO: Seems to be <gui>Project</gui> or <gui>Files</gui>
 #. (itstool) path: item/p
 #: C/image-viewer.cpp.page:55
 msgid ""
 "Click <gui>Apply</gui> and the project will be created for you. Open <file>src/main.cc</file> from the "
 "<gui>Project</gui> or <gui>File</gui> tabs. You should see some code which starts with the lines:"
 msgstr ""
+"Klicka på <gui>Verkställ</gui> så kommer projektet skapas åt dig. Öppna <file>src/main.cc</file> från 
flikarna "
+"<gui>Projekt</gui> eller <gui>Filer</gui>. Du bör se kod som börjar med raderna:"
 
 #. (itstool) path: item/code
 #: C/image-viewer.cpp.page:56
@@ -16606,7 +18496,7 @@ msgstr ""
 #. (itstool) path: item/p
 #: C/image-viewer.cpp.page:73
 msgid "The <code>main</code> function creates a new (empty) window and sets the window title."
-msgstr ""
+msgstr "<code>main</code>-funktionen skapar ett nytt (tomt) fönster och ställer in fönstertiteln."
 
 #. (itstool) path: item/p
 #: C/image-viewer.cpp.page:76
@@ -16725,7 +18615,7 @@ msgstr ""
 
 #. (itstool) path: section/code
 #: C/image-viewer.cpp.page:146
-#, no-wrap
+#, fuzzy, no-wrap
 msgid ""
 "\n"
 "Gtk::Image* image = 0;\n"
@@ -16759,6 +18649,37 @@ msgid ""
 "\t}\n"
 "}\n"
 msgstr ""
+"\n"
+"Gtk::Image* image = 0;\n"
+"\n"
+"static void\n"
+"on_open_image ()\n"
+"{\n"
+"\tGtk::FileChooserDialog dialog(\"Öppna bild\",\n"
+"\t                              Gtk::FILE_CHOOSER_ACTION_OPEN);\n"
+"\tdialog.add_button (Gtk::Stock::OPEN,\n"
+"\t                   Gtk::RESPONSE_ACCEPT);\n"
+"\tdialog.add_button (Gtk::Stock::CANCEL,\n"
+"\t                   Gtk::RESPONSE_CANCEL);\n"
+"\n"
+"\tGlib::RefPtr&lt;Gtk::FileFilter&gt; filter =\n"
+"\t\tGtk::FileFilter::create();\n"
+"\tfilter-&gt;add_pixbuf_formats();\n"
+"\tfilter-&gt;set_name(\"Bilder\");\n"
+"\tdialog.add_filter (filter);\n"
+"\n"
+"\tconst int response = dialog.run();\n"
+"\tdialog.hide();\n"
+"\n"
+"\tswitch (response)\n"
+"\t{\n"
+"\t\tcase Gtk::RESPONSE_ACCEPT:\n"
+"\t\t\timage-&gt;set(dialog.get_filename());\n"
+"\t\t\tbreak;\n"
+"\t\tdefault:\n"
+"\t\t\tbreak;\n"
+"\t}\n"
+"}\n"
 
 #. (itstool) path: item/p
 #: C/image-viewer.cpp.page:181
@@ -16864,12 +18785,12 @@ msgstr "Skriver ett enkelt GTK-användargränssnitt i Javascript"
 #. (itstool) path: item/p
 #: C/image-viewer.js.page:35 C/image-viewer.py.page:35
 msgid "Deal with events by connecting signals to signal handlers"
-msgstr ""
+msgstr "Hanterar händelser genom att ansluta signaler till signalhanterare"
 
 #. (itstool) path: item/p
 #: C/image-viewer.js.page:36 C/image-viewer.py.page:36
 msgid "Lay out GTK user interfaces using containers"
-msgstr ""
+msgstr "Gör layouter för GTK-användargränssnitt genom att använda behållare"
 
 #. (itstool) path: item/p
 #: C/image-viewer.js.page:37 C/image-viewer.py.page:37
@@ -16878,7 +18799,6 @@ msgstr "Läser in och visar bildfiler"
 
 #. (itstool) path: item/p
 #: C/image-viewer.js.page:42
-#, fuzzy
 msgid "An installed copy of the <em>gjs</em> interpreter"
 msgstr "En installerad kopia av <em>gjs</em>-tolken"
 
@@ -16896,12 +18816,15 @@ msgstr ""
 "Välj <gui>Allmän Javascript</gui> från fliken <gui>JS</gui>, klicka på <gui>Framåt</gui>, och fyll i dina 
detaljer "
 "på de nästkommande sidorna. Använd <file>image-viewer</file> som projektnamn och katalog."
 
+# TODO: Seems to be <gui>Project</gui> or <gui>Files</gui>
 #. (itstool) path: item/p
 #: C/image-viewer.js.page:60
 msgid ""
 "Click <gui>Apply</gui> and the project will be created for you. Open <file>src/main.js</file> from the "
 "<gui>Project</gui> or <gui>File</gui> tabs. It contains very basic example code."
 msgstr ""
+"Klicka på <gui>Verkställ</gui> så kommer projektet skapas åt dig. Öppna <file>src/main.js</file> från 
flikarna "
+"<gui>Projekt</gui> eller <gui>Filer</gui>. Den innehåller väldigt enkel exempelkod."
 
 #. (itstool) path: section/title
 #: C/image-viewer.js.page:67
@@ -16915,6 +18838,9 @@ msgid ""
 "course, your very first contact with any programming language should be the Hello World program which can 
already "
 "be found in <file>main.js</file>:"
 msgstr ""
+"Låt oss innan vi börjar skriva bildvisaren ta reda på mer om hur Javascript används i GNOME. Din första 
kontakt "
+"med alla programmeringsspråk bör förstås vara Hej världen-programmet vilket redan kan hittas i 
<file>main.js</"
+"file>:"
 
 #. (itstool) path: section/code
 #: C/image-viewer.js.page:69
@@ -16929,6 +18855,9 @@ msgid ""
 "<code>print</code> is called with the argument <code>\"Hello world!\"</code>, which will be printed on the 
screen. "
 "Note that each line of code ends with a semicolon."
 msgstr ""
+"Detta bör se naturligt ut för dig om du är bekant med nästan vilket annat programmeringsspråk som helst. "
+"Funktionen <code>print</code> anropas med argumentet <code>\"Hej världen!\"</code>, vilket kommer att 
skrivas ut "
+"på skärmen. Observera att varje rad kod avslutas med ett semikolon."
 
 #. (itstool) path: section/title
 #: C/image-viewer.js.page:74
@@ -16967,6 +18896,28 @@ msgid ""
 "\n"
 "}"
 msgstr ""
+"\n"
+"function MyClass () {\n"
+"  this._init ();\n"
+"}\n"
+"\n"
+"MyClass.prototype = {\n"
+"\n"
+"  _init: function () {\n"
+"    this.propertyA = \"Det här är ett objekts fält\";\n"
+"    this.propertyB = 10;\n"
+"  },\n"
+"\n"
+"  aMethod: function (arg1, arg2) {\n"
+"    print (\"inuti aMethod: \" + arg1 + \" \" + arg2);\n"
+"  },\n"
+"\n"
+"  dumpProperties: function () {\n"
+"    print (this.propertyA);\n"
+"    print (this.propertyB);\n"
+"  }\n"
+"\n"
+"}"
 
 #. (itstool) path: section/p
 #: C/image-viewer.js.page:98
@@ -16980,6 +18931,9 @@ msgid ""
 "access any member of the class by using the <code>this</code> object; here, the constructor calls the 
class's "
 "<code>_init</code> method."
 msgstr ""
+"<code>function MyClass</code> är klassens konstruktor — dess namn måste matcha klassens namn. Du kan komma 
åt alla "
+"medlemmar i klassen genom att använda objektet <code>this</code>; här anropar konstruktorn klassens 
<code>_init</"
+"code>-metod."
 
 #. (itstool) path: item/p
 #: C/image-viewer.js.page:104
@@ -17038,6 +18992,11 @@ msgid ""
 "o.propertyA = \"Just changed its value!\";\n"
 "o.dumpProperties ();"
 msgstr ""
+"\n"
+"var o = new MyClass ();\n"
+"o.aMethod (\"Hej\", \"världen\");\n"
+"o.propertyA = \"Ändrade just dess värde!\";\n"
+"o.dumpProperties ();"
 
 #. (itstool) path: section/p
 #: C/image-viewer.js.page:125
@@ -17099,11 +19058,13 @@ msgid ""
 "The first line imports the Gtk namespace (that is, it includes the Gtk library). The libraries are provided 
by "
 "GObject Introspection (gi), which provides language bindings for many GNOME libraries."
 msgstr ""
+"Den första raden importerar Gtk-namnrymden (d.v.s. inkluderar Gtk-biblioteket). Biblioteken tillhandahålls 
av "
+"GObject Introspection (gi), vilket tillhandahåller språkbindningar för många GNOME-bibliotek."
 
 #. (itstool) path: item/p
 #: C/image-viewer.js.page:148
 msgid "<code>Gtk.init</code> initializes the Gtk library; this statement is mandatory for all Gtk programs."
-msgstr ""
+msgstr "<code>Gtk.init</code> initierar Gtk-biblioteket; denna sats är obligatorisk för alla Gtk-program."
 
 #. (itstool) path: item/p
 #: C/image-viewer.js.page:151
@@ -17112,6 +19073,9 @@ msgid ""
 "properties to the window's constructor by using the syntax <code>{property: value, property: value, 
...}</code>. "
 "In this case we are setting the title of the window."
 msgstr ""
+"Nästa rad skapar huvudfönstret genom att skapa ett nytt <code>Gtk.Window</code>-objekt. Du kan skicka flera 
"
+"egenskaper till fönstrets konstruktor genom att använda syntaxen <code>{egenskap: värde, egenskap: värde, 
…}</"
+"code>. I detta fall ställer vi in fönstrets titel."
 
 #. (itstool) path: item/p
 #: C/image-viewer.js.page:152
@@ -17146,6 +19110,8 @@ msgid ""
 "The proper way of doing Gtk programming is by using classes. Let's rewrite the simple code you just wrote 
using "
 "classes:"
 msgstr ""
+"Det korrekta sättet att programmera med Gtk är att använda klasser. Låt oss skriva om den enkla koden du 
just "
+"skrev med klasser:"
 
 #. (itstool) path: section/code
 #: C/image-viewer.js.page:163
@@ -17169,6 +19135,23 @@ msgid ""
 "var iv = new ImageViewer ();\n"
 "Gtk.main ();"
 msgstr ""
+"\n"
+"const Gtk = imports.gi.Gtk;\n"
+"\n"
+"function ImageViewer () {\n"
+"  this._init ();\n"
+"}\n"
+"\n"
+"ImageViewer.prototype = {\n"
+"  _init: function () {\n"
+"    this.window = new Gtk.Window ({title: \"Bildvisardemonstration\"});\n"
+"    this.window.show ();\n"
+"  }\n"
+"}\n"
+"\n"
+"Gtk.init (null, null);\n"
+"var iv = new ImageViewer ();\n"
+"Gtk.main ();"
 
 #. (itstool) path: section/p
 #: C/image-viewer.js.page:181
@@ -17208,6 +19191,12 @@ msgid ""
 "var b = new Gtk.Button ({label:\"Click me\"});\n"
 "b.connect (\"clicked\", button_clicked);"
 msgstr ""
+"\n"
+"function button_clicked () {\n"
+"  print (\"du klickade på mig!\");\n"
+"}\n"
+"var b = new Gtk.Button ({label:\"Klicka på mig\"});\n"
+"b.connect (\"clicked\", button_clicked);"
 
 #. (itstool) path: section/p
 #: C/image-viewer.js.page:194 C/image-viewer.py.page:127
@@ -17220,7 +19209,7 @@ msgstr ""
 #. (itstool) path: section/p
 #: C/image-viewer.js.page:195
 msgid "The syntax for connecting any signal to a function is:"
-msgstr ""
+msgstr "Syntax för att ansluta en godtycklig signal till en funktion är:"
 
 #. (itstool) path: section/code
 #: C/image-viewer.js.page:196
@@ -17229,6 +19218,8 @@ msgid ""
 "\n"
 "object.connect (&lt;signal_name&gt;, &lt;function_to_be_called&gt;);"
 msgstr ""
+"\n"
+"object.connect (&lt;signalnamn&gt;, &lt;funktion_att_anropa&gt;);"
 
 #. (itstool) path: section/p
 #: C/image-viewer.js.page:198
@@ -17236,6 +19227,8 @@ msgid ""
 "You can find signal definitions for any object in the <link href=\"https://developer.gnome.org/gtk3/stable/";
 "gtkobjects.html\">GTK class reference</link>."
 msgstr ""
+"Du kan hitta signaldefinitioner för alla objekt i <link 
href=\"https://developer.gnome.org/gtk3/stable/gtkobjects.";
+"html\">GTK-klassreferensen</link>."
 
 #. (itstool) path: note/p
 #: C/image-viewer.js.page:201
@@ -17249,6 +19242,8 @@ msgid ""
 "\n"
 "b.connect (\"clicked\", function () { print (\"you clicked me!\"); });"
 msgstr ""
+"\n"
+"b.connect (\"clicked\", function () { print (\"du klickade på mig!\"); });"
 
 #. (itstool) path: section/title
 #: C/image-viewer.js.page:209
@@ -17275,7 +19270,7 @@ msgstr ""
 #: C/image-viewer.js.page:212
 #, no-wrap
 msgid "this.window.connect (\"hide\", Gtk.main_quit);"
-msgstr ""
+msgstr "this.window.connect (\"hide\", Gtk.main_quit);"
 
 #. (itstool) path: section/p
 #: C/image-viewer.js.page:213
@@ -17289,7 +19284,7 @@ msgstr ""
 #. (itstool) path: section/title
 #: C/image-viewer.js.page:217 C/image-viewer.py.page:131
 msgid "Containers: Laying-out the user interface"
-msgstr ""
+msgstr "Behållare: göra en layout för användargränssnittet"
 
 #. (itstool) path: section/p
 #: C/image-viewer.js.page:218 C/image-viewer.py.page:132
@@ -17331,6 +19326,9 @@ msgid ""
 "var main_box = new Gtk.Box ({orientation: Gtk.Orientation.VERTICAL, spacing: 0});\n"
 "this.window.add (main_box);"
 msgstr ""
+"\n"
+"var main_box = new Gtk.Box ({orientation: Gtk.Orientation.VERTICAL, spacing: 0});\n"
+"this.window.add (main_box);"
 
 #. (itstool) path: section/p
 #: C/image-viewer.js.page:227
@@ -17351,7 +19349,7 @@ msgstr ""
 #. (itstool) path: section/title
 #: C/image-viewer.js.page:232 C/image-viewer.py.page:150
 msgid "Packing: Adding widgets to the container"
-msgstr ""
+msgstr "Packning: Lägga till komponenter till behållaren"
 
 #. (itstool) path: section/p
 #: C/image-viewer.js.page:233
@@ -17368,6 +19366,9 @@ msgid ""
 "this.image = new Gtk.Image ();\n"
 "main_box.pack_start (this.image, true, true, 0);"
 msgstr ""
+"\n"
+"this.image = new Gtk.Image ();\n"
+"main_box.pack_start (this.image, true, true, 0);"
 
 #. (itstool) path: section/p
 #: C/image-viewer.js.page:237
@@ -17409,7 +19410,7 @@ msgstr ""
 #. (itstool) path: section/p
 #: C/image-viewer.js.page:241 C/image-viewer.py.page:160
 msgid "Now insert these two lines, below the two you just added:"
-msgstr ""
+msgstr "Infoga nu dessa två rader under de två du just lade till:"
 
 #. (itstool) path: section/code
 #: C/image-viewer.js.page:242
@@ -17419,6 +19420,9 @@ msgid ""
 "var open_button = new Gtk.Button ({label: \"Open a picture...\"});\n"
 "main_box.pack_start (open_button, false, false, 0);"
 msgstr ""
+"\n"
+"var open_button = new Gtk.Button ({label: \"Öppna en bild…\"});\n"
+"main_box.pack_start (open_button, false, false, 0);"
 
 #. (itstool) path: section/p
 #: C/image-viewer.js.page:245
@@ -17434,13 +19438,13 @@ msgstr ""
 #. (itstool) path: section/p
 #: C/image-viewer.js.page:246
 msgid "Finally, we must change the <code>this.window.show ();</code> line to read:"
-msgstr ""
+msgstr "Slutligen måste vi ändra raden <code>this.window.show ();</code> så att den säger:"
 
 #. (itstool) path: section/code
 #: C/image-viewer.js.page:247
 #, no-wrap
 msgid "this.window.show_all ();"
-msgstr ""
+msgstr "this.window.show_all ();"
 
 #. (itstool) path: section/p
 #: C/image-viewer.js.page:248
@@ -17452,7 +19456,7 @@ msgstr ""
 #. (itstool) path: section/title
 #: C/image-viewer.js.page:252 C/image-viewer.py.page:169
 msgid "Loading the image: Connecting to the button's <code>clicked</code> signal"
-msgstr ""
+msgstr "Läsa in bilden: ansluta till knappens <code>clicked</code>-signal"
 
 #. (itstool) path: section/p
 #: C/image-viewer.js.page:253
@@ -17476,6 +19480,8 @@ msgid ""
 "\n"
 "open_button.connect (\"clicked\", Lang.bind (this, this._openClicked));"
 msgstr ""
+"\n"
+"open_button.connect (\"clicked\", Lang.bind (this, this._openClicked));"
 
 #. (itstool) path: section/p
 #: C/image-viewer.js.page:257
@@ -17495,7 +19501,7 @@ msgstr "const Lang = imports.lang;"
 #. (itstool) path: section/title
 #: C/image-viewer.js.page:262 C/image-viewer.py.page:180
 msgid "Loading the image: Writing the signal's callback"
-msgstr ""
+msgstr "Läsa in bilden: skriva signalens återanrop"
 
 #. (itstool) path: section/p
 #: C/image-viewer.js.page:263
@@ -17528,6 +19534,25 @@ msgid ""
 "    chooser.destroy ();\n"
 "  }"
 msgstr ""
+"\n"
+"  _openClicked: function () {\n"
+"    var chooser = new Gtk.FileChooserDialog ({title: \"Välj en bild\",\n"
+"                                              action: Gtk.FileChooserAction.OPEN,\n"
+"                                              transient_for: this.window,\n"
+"                                              modal: true});\n"
+"    chooser.add_button (Gtk.STOCK_CANCEL, 0);\n"
+"    chooser.add_button (Gtk.STOCK_OPEN, 1);\n"
+"    chooser.set_default_response (1);\n"
+"\n"
+"    var filter = new Gtk.FileFilter ();\n"
+"    filter.add_pixbuf_formats ();\n"
+"    chooser.filter = filter;\n"
+"\n"
+"    if (chooser.run () == 1)\n"
+"      this.image.file = chooser.get_filename ();\n"
+"\n"
+"    chooser.destroy ();\n"
+"  }"
 
 #. (itstool) path: item/p
 #: C/image-viewer.js.page:286
@@ -17639,18 +19664,24 @@ msgid ""
 "this example. For an example of using the interface designer, check the <link 
xref=\"guitar-tuner.py\">Guitar-"
 "Tuner demo</link>."
 msgstr ""
+"Se till att inaktivera <gui>Använd GtkBuilder för användargränssnitt</gui> då vi kommer bygga 
användargränssnittet "
+"manuellt i detta exempel. Se <link xref=\"guitar-tuner.py\">gitarrstämmardemonstrationen</link> för ett 
exempel på "
+"hur du använder gränssnittsbyggaren."
 
+# TODO: Seems to be <gui>Project</gui> or <gui>Files</gui>
 #. (itstool) path: item/p
 #: C/image-viewer.py.page:64
 msgid ""
 "Click <gui>Apply</gui> and the project will be created for you. Open <file>src/image_viewer.py</file> from 
the "
 "<gui>Project</gui> or <gui>File</gui> tabs. It contains very basic example code."
 msgstr ""
+"Klicka på <gui>Verkställ</gui> så kommer projektet skapas åt dig. Öppna <file>src/image_viewer.py</file> 
från "
+"flikarna <gui>Projekt</gui> eller <gui>Filer</gui>. Den innehåller grundläggande exempelkod."
 
 #. (itstool) path: section/p
 #: C/image-viewer.py.page:71
 msgid "Let's see what a very basic Gtk application looks like in Python:"
-msgstr ""
+msgstr "Låt oss se hur ett väldigt enkelt Gtk-program ser ut i Python:"
 
 #. (itstool) path: section/code
 #: C/image-viewer.py.page:72
@@ -17680,6 +19711,29 @@ msgid ""
 "\n"
 "  "
 msgstr ""
+"\n"
+"from gi.repository import Gtk, GdkPixbuf, Gdk\n"
+"import os, sys\n"
+"\n"
+"class GUI:\n"
+"\tdef __init__(self):\n"
+"\t\twindow = Gtk.Window()\n"
+"\t\twindow.set_title (\"Hej världen\")\n"
+"\t\twindow.connect_after('destroy', self.destroy)\n"
+"\n"
+"\t\twindow.show_all()\n"
+"\n"
+"\tdef destroy(window, self):\n"
+"\t\tGtk.main_quit()\n"
+"\n"
+"def main():\n"
+"\tapp = GUI()\n"
+"\tGtk.main()\n"
+"\n"
+"if __name__ == \"__main__\":\n"
+"    sys.exit(main())\n"
+"\n"
+"  "
 
 #. (itstool) path: item/p
 #: C/image-viewer.py.page:101
@@ -17699,7 +19753,7 @@ msgstr ""
 #. (itstool) path: item/p
 #: C/image-viewer.py.page:110
 msgid "The rest of the file does initialisation for Gtk and displays the GUI."
-msgstr ""
+msgstr "Resten av filen gör initiering för Gtk och visar det grafiska användargränssnittet."
 
 #. (itstool) path: section/p
 #: C/image-viewer.py.page:114
@@ -17707,6 +19761,8 @@ msgid ""
 "This code is ready to run, so try it using <guiseq><gui>Run</gui><gui>Execute</gui></guiseq>. It should 
show you "
 "an empty window."
 msgstr ""
+"Koden är redo att köras, så pröva den med <guiseq><gui>Kör</gui><gui>Kör</gui></guiseq>. Den kommer visa 
ett tomt "
+"fönster."
 
 #. (itstool) path: section/code
 #: C/image-viewer.py.page:121
@@ -17719,6 +19775,12 @@ msgid ""
 "b = new Gtk.Button (\"Click me\")\n"
 "b.connect_after ('clicked', button_clicked)"
 msgstr ""
+"\n"
+"def button_clicked () :\n"
+"  print \"Du klickade på mig!\"\n"
+"\n"
+"b = new Gtk.Button (\"Klicka på mig\")\n"
+"b.connect_after ('clicked', button_clicked)"
 
 #. (itstool) path: section/p
 #: C/image-viewer.py.page:137
@@ -17738,6 +19800,12 @@ msgid ""
 "window.add (box)\n"
 "\n"
 msgstr ""
+"\n"
+"box = Gtk.Box()\n"
+"box.set_spacing (5)\n"
+"box.set_orientation (Gtk.Orientation.VERTICAL)\n"
+"window.add (box)\n"
+"\n"
 
 #. (itstool) path: section/p
 #: C/image-viewer.py.page:145
@@ -17763,6 +19831,9 @@ msgid ""
 "self.image = Gtk.Image()\n"
 "box.pack_start (self.image, False, False, 0)"
 msgstr ""
+"\n"
+"self.image = Gtk.Image()\n"
+"box.pack_start (self.image, False, False, 0)"
 
 #. (itstool) path: section/p
 #: C/image-viewer.py.page:155
@@ -17792,6 +19863,9 @@ msgid ""
 "button = Gtk.Button (\"Open a picture...\")\n"
 "box.pack_start (button, False, False, 0)\n"
 msgstr ""
+"\n"
+"button = Gtk.Button (\"Öppna en bild…\")\n"
+"box.pack_start (button, False, False, 0)\n"
 
 #. (itstool) path: section/p
 #: C/image-viewer.py.page:165
@@ -17825,12 +19899,16 @@ msgid ""
 "\n"
 "button.connect_after('clicked', self.on_open_clicked)\n"
 msgstr ""
+"\n"
+"button.connect_after('clicked', self.on_open_clicked)\n"
 
 #. (itstool) path: section/p
 #: C/image-viewer.py.page:175
 msgid ""
 "This will connect the <code>clicked</code> signal to <code>on_open_clicked</code> method that we will 
define below."
 msgstr ""
+"Detta kommer ansluta <code>clicked</code>-signalen till metoden <code>on_open_clicked</code> som vi kommer "
+"definiera nedan."
 
 #. (itstool) path: section/p
 #: C/image-viewer.py.page:181
@@ -17859,6 +19937,21 @@ msgid ""
 "\n"
 "\tdialog.destroy()"
 msgstr ""
+"\n"
+"def on_open_clicked (self, button):\n"
+"\tdialog = Gtk.FileChooserDialog (\"Öppna bild\", button.get_toplevel(), Gtk.FileChooserAction.OPEN);\n"
+"\tdialog.add_button (Gtk.STOCK_CANCEL, 0)\n"
+"\tdialog.add_button (Gtk.STOCK_OK, 1)\n"
+"\tdialog.set_default_response(1)\n"
+"\n"
+"\tfilefilter = Gtk.FileFilter ()\n"
+"\tfilefilter.add_pixbuf_formats ()\n"
+"\tdialog.set_filter(filefilter)\n"
+"\n"
+"\tif dialog.run() == 1:\n"
+"\t\tself.image.set_from_file(dialog.get_filename())\n"
+"\n"
+"\tdialog.destroy()"
 
 #. (itstool) path: item/p
 #: C/image-viewer.py.page:200
@@ -17914,12 +20007,14 @@ msgstr "Philip Chimento"
 #. (itstool) path: synopsis/p
 #: C/image-viewer.vala.page:39
 msgid "In this tutorial you will create an application which opens and displays an image file. You will 
learn:"
-msgstr ""
+msgstr "I denna handledning kommer du skapa ett program som öppnar och visar en bildfil. Du kommer att lära 
dig:"
 
 #. (itstool) path: item/p
 #: C/image-viewer.vala.page:41
 msgid "How to set up a basic project using the <link xref=\"getting-ready\">Anjuta IDE</link>."
 msgstr ""
+"Hur du konfigurerar ett grundläggande projekt med den <link xref=\"getting-ready\">integrerade 
utvecklingsmiljön "
+"Anjuta</link>."
 
 #. (itstool) path: item/p
 #: C/image-viewer.vala.page:42
@@ -17927,11 +20022,14 @@ msgid ""
 "How to write a <link href=\"http://developer.gnome.org/platform-overview/stable/gtk\";>Gtk 
application</link> in "
 "Vala"
 msgstr ""
+"Hur du skriver ett <link 
href=\"http://developer.gnome.org/platform-overview/stable/gtk\";>Gtk-program</link> i Vala"
 
 #. (itstool) path: item/p
 #: C/image-viewer.vala.page:43
 msgid "Some basic concepts of <link href=\"http://developer.gnome.org/gobject/stable/\";>GObject</link> 
programming"
 msgstr ""
+"Några grundläggande koncept i <link href=\"http://developer.gnome.org/gobject/stable/\";>GObject</link>-"
+"programmering"
 
 #. (itstool) path: item/p
 #: C/image-viewer.vala.page:50
@@ -17939,6 +20037,8 @@ msgid ""
 "You may find the <link href=\"http://valadoc.org/gtk+-3.0/\";>gtk+-3.0</link> API Reference useful, although 
it is "
 "not necessary to follow the tutorial."
 msgstr ""
+"Du kan finna API-referensen för <link href=\"http://valadoc.org/gtk+-3.0/\";>gtk+-3.0</link> användbar, även 
om det "
+"inte är nödvändigt att följa handledningen."
 
 #. (itstool) path: item/p
 #: C/image-viewer.vala.page:66
@@ -17955,6 +20055,8 @@ msgid ""
 "Make sure that <gui>Use GtkBuilder for user interface</gui> is unchecked as we will create the UI manually 
in this "
 "tutorial."
 msgstr ""
+"Säkerställ att <gui>Använd GtkBuilder för användargränssnitt</gui> inte är ikryssad då vi kommer skapa "
+"användargränssnittet manuellt i denna handledning."
 
 #. (itstool) path: note/p
 #: C/image-viewer.vala.page:71
@@ -17962,6 +20064,8 @@ msgid ""
 "You will learn how to use the interface builder in the <link xref=\"guitar-tuner.vala\">Guitar-Tuner</link> 
"
 "tutorial."
 msgstr ""
+"Du kommer lära dig hur du använder gränssnittsbyggaren i handledningen <link xref=\"guitar-tuner.vala"
+"\">Gitarrstämmare</link>."
 
 #. (itstool) path: item/p
 #: C/image-viewer.vala.page:75
@@ -17969,6 +20073,8 @@ msgid ""
 "Click <gui>Continue</gui> then <gui>Apply</gui> and the project will be created for you. Open <file>src/"
 "image_viewer.vala</file> from the <gui>Project</gui> or <gui>File</gui> tabs. You will see this code:"
 msgstr ""
+"Klicka på <gui>Fortsätt</gui> sedan <gui>Verkställ</gui> så kommer projektet skapas åt dig. Öppna 
<file>src/"
+"image_viewer.vala</file> från flikarna <gui>Projekt</gui> eller <gui>Filer</gui>. Du kommer se denna kod:"
 
 #. (itstool) path: item/code
 #: C/image-viewer.vala.page:78
@@ -18005,6 +20111,36 @@ msgid ""
 "\t}\n"
 "}"
 msgstr ""
+"\n"
+"using GLib;\n"
+"using Gtk;\n"
+"\n"
+"public class Main : Object\n"
+"{\n"
+"\n"
+"\tpublic Main ()\n"
+"\t{\n"
+"\t\tWindow window = new Window();\n"
+"\t\twindow.set_title (\"Hej världen\");\n"
+"\t\twindow.show_all();\n"
+"\t\twindow.destroy.connect(on_destroy);\n"
+"\t}\n"
+"\n"
+"\tpublic void on_destroy (Widget window)\n"
+"\t{\n"
+"\t\tGtk.main_quit();\n"
+"\t}\n"
+"\n"
+"\tstatic int main (string[] args)\n"
+"\t{\n"
+"\t\tGtk.init (ref args);\n"
+"\t\tvar app = new Main ();\n"
+"\n"
+"\t\tGtk.main ();\n"
+"\n"
+"\t\treturn 0;\n"
+"\t}\n"
+"}"
 
 #. (itstool) path: section/p
 #: C/image-viewer.vala.page:114
@@ -18064,11 +20200,14 @@ msgid ""
 "private Window window;\n"
 "private Image image;\n"
 msgstr ""
+"\n"
+"private Window window;\n"
+"private Image image;\n"
 
 #. (itstool) path: section/p
 #: C/image-viewer.vala.page:150
 msgid "Now replace the current constructor with the one below:"
-msgstr ""
+msgstr "Ersätt nu den aktuella konstruktorn med den nedan:"
 
 #. (itstool) path: section/code
 #: C/image-viewer.vala.page:151
@@ -18097,6 +20236,28 @@ msgid ""
 "\twindow.destroy.connect (main_quit);\n"
 "}\n"
 msgstr ""
+"\n"
+"\n"
+"public Main () {\n"
+"\n"
+"\twindow = new Window ();\n"
+"\twindow.set_title (\"Bildvisare i Vala\");\n"
+"\n"
+"\t// Konfigurera användargränssnittet\n"
+"\tvar box = new Box (Orientation.VERTICAL, 5);\n"
+"\tvar button = new Button.with_label (\"Öppna bild\");\n"
+"\timage = new Image ();\n"
+"\n"
+"\tbox.pack_start (image, true, true, 0);\n"
+"\tbox.pack_start (button, false, false, 0);\n"
+"\twindow.add (box);\n"
+"\n"
+"\t// Visa öppna-dialog när en fil öppnas\n"
+"\tbutton.clicked.connect (on_open_image);\n"
+"\n"
+"\twindow.show_all ();\n"
+"\twindow.destroy.connect (main_quit);\n"
+"}\n"
 
 #. (itstool) path: item/p
 #: C/image-viewer.vala.page:176
@@ -18228,6 +20389,8 @@ msgid ""
 "\n"
 "        button.clicked.connect (on_open_image);\n"
 msgstr ""
+"\n"
+"        button.clicked.connect (on_open_image);\n"
 
 #. (itstool) path: item/p
 #: C/image-viewer.vala.page:248
@@ -18484,7 +20647,7 @@ msgstr "En etikett som kan innehålla text"
 #. (itstool) path: page/p
 #: C/label.js.page:23
 msgid "A label displaying a friendly message."
-msgstr ""
+msgstr "En etikett som visar ett vänligt meddelande."
 
 #. (itstool) path: page/code
 #: C/label.js.page:25
@@ -18550,6 +20713,65 @@ msgid ""
 "let app = new LabelExample ();\n"
 "app.application.run (ARGV);\n"
 msgstr ""
+"#!/usr/bin/gjs\n"
+"\n"
+"imports.gi.versions.Gtk = '3.0';\n"
+"\n"
+"const Gio = imports.gi.Gio;\n"
+"const GLib = imports.gi.GLib;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"\n"
+"class LabelExample {\n"
+"\n"
+"    /* Skapa programmet i sig\n"
+"       Denna standardkod behövs för att bygga alla GTK+-program. */\n"
+"    constructor() {\n"
+"        this.application = new Gtk.Application ({\n"
+"            application_id: 'org.example.jslabel',\n"
+"            flags: Gio.ApplicationFlags.FLAGS_NONE\n"
+"        });\n"
+"\n"
+"        // Anslut ”activate”- och ”startup”-signaler till återanropsfunktionerna\n"
+"        this.application.connect('activate', this._onActivate.bind(this));\n"
+"        this.application.connect('startup', this._onStartup.bind(this));\n"
+"    }\n"
+"\n"
+"    // Återanropsfunktion för ”activate”-signal visar fönster när den aktiveras\n"
+"    _onActivate() {\n"
+"        this._window.present();\n"
+"    }\n"
+"\n"
+"    // Återanropsfunktion för ”startup”-signal initierar menyer och bygger användargränssnittet\n"
+"    _onStartup() {\n"
+"        this._buildUI();\n"
+"    }\n"
+"\n"
+"    // Bygg programmets användargränssnitt\n"
+"    _buildUI() {\n"
+"\n"
+"        // Skapa programfönstret\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            title: \"Välkommen till GNOME\",\n"
+"            default_height: 100,\n"
+"            default_width: 200\n"
+"        });\n"
+"\n"
+"        // Skapa etiketten\n"
+"        this.label = new Gtk.Label({ label: \"Hej GNOME!\" });\n"
+"        this._window.add(this.label);\n"
+"\n"
+"        // Visa fönstret och alla barnkomponenter\n"
+"        this._window.show_all();\n"
+"    }\n"
+"\n"
+"\n"
+"};\n"
+"\n"
+"// Kör programmet\n"
+"let app = new LabelExample ();\n"
+"app.application.run (ARGV);\n"
 
 #. (itstool) path: item/p
 #: C/label.js.page:32
@@ -18565,7 +20787,7 @@ msgstr "Label (Python)"
 #. (itstool) path: info/desc
 #: C/label.py.page:27
 msgid "A widget that displays a small to medium amount of text"
-msgstr ""
+msgstr "En komponent som visar en liten till medelstor mängd text"
 
 #. (itstool) path: section/p
 #: C/label.py.page:41
@@ -18617,6 +20839,39 @@ msgid ""
 "        # show the window and everything on it\n"
 "        win.show_all()"
 msgstr ""
+"\n"
+"# en klass för att definiera ett fönster\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"Välkommen till GNOME\", application=app)\n"
+"        self.set_default_size(200, 100)\n"
+"\n"
+"# en klass för att definiera en etikett\n"
+"<e:hi>\n"
+"class MyLabel(Gtk.Label):\n"
+"    def __init__(self):\n"
+"        Gtk.Label.__init__(self)\n"
+"        self.set_text(\"Hej GNOME!\")\n"
+"</e:hi>\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        # skapa en instans av MyWindow\n"
+"        win = MyWindow(self)\n"
+"\n"
+"        # skapa en instans av MyLabel\n"
+"<e:hi>\n"
+"        label = MyLabel()\n"
+"</e:hi>\n"
+"        # och lägg till den till fönstret\n"
+"<e:hi>\n"
+"        win.add(label)\n"
+"</e:hi>\n"
+"        # visa fönstret och allt som finns i det\n"
+"        win.show_all()"
 
 #. (itstool) path: section/title
 #: C/label.py.page:82
@@ -19320,13 +21575,12 @@ msgstr ""
 
 #. (itstool) path: item/p
 #: C/magic-mirror.vala.page:60
-#, fuzzy
 msgid ""
 "Disable <gui>Use GtkBuilder for user interface</gui> as we will create the UI manually in this tutorial. 
Check the "
 "<link xref=\"guitar-tuner.vala\">Guitar-Tuner</link> tutorial using the interface builder."
 msgstr ""
 "Inaktivera <gui>Använd GtkBuilder för användargränssnitt</gui> då vi kommer skapa användargränssnittet 
manuellt i "
-"denna handledning. Se handledningen <link xref=\"guitar-tuner.vala\">Guitar-Tuner</link> för att se "
+"denna handledning. Se handledningen <link xref=\"guitar-tuner.vala\">Gitarrstämmare</link> för användning 
av "
 "gränssnittsbyggaren."
 
 #. (itstool) path: item/p
@@ -19335,13 +21589,18 @@ msgid ""
 "Make sure that <gui>Configure external packages</gui> is selected. On the next page, select 
<em>gstreamer-0.10</"
 "em> from the list to include the <app>GStreamer</app> library into your project."
 msgstr ""
+"Säkerställ att <gui>Konfigurera externa paket</gui> är valt. På nästa sida, välj <em>gstreamer-0.10</em> 
från "
+"listan för att inkludera <app>GStreamer</app>-biblioteket i ditt projekt."
 
+# TODO: Seems to be <gui>Project</gui> or <gui>Files</gui>
 #. (itstool) path: item/p
 #: C/magic-mirror.vala.page:69
 msgid ""
 "Click <gui>Apply</gui> and the project will be created for you. Open <file>src/magic_mirror.vala</file> 
from the "
 "<gui>Project</gui> or <gui>File</gui> tabs. You should see some code which starts with the lines:"
 msgstr ""
+"Klicka på <gui>Verkställ</gui> så kommer projektet skapas åt dig. Öppna <file>src/magic_mirror.vala</file> 
från "
+"flikarna <gui>Projekt</gui> eller <gui>Filer</gui>. Du bör se kod som börjar med raderna:"
 
 #. (itstool) path: section/p
 #: C/magic-mirror.vala.page:79
@@ -19481,11 +21740,13 @@ msgid ""
 "To find out more about the Vala programming language you might want to check out the <link 
href=\"http://live.";
 "gnome.org/Vala/Tutorial\">Vala Tutorial</link>."
 msgstr ""
+"För att lära dig mer om programmeringsspråket Vala kan du vilja ta en titt på <link 
href=\"http://live.gnome.org/";
+"Vala/Tutorial\">Vala-handledningen</link>."
 
 #. (itstool) path: section/title
 #: C/magic-mirror.vala.page:163
 msgid "Conclusion"
-msgstr ""
+msgstr "Avslutning"
 
 #. (itstool) path: section/p
 #: C/magic-mirror.vala.page:164
@@ -19504,7 +21765,7 @@ msgstr ""
 #. (itstool) path: info/desc
 #: C/menubar.c.page:20 C/menubar.py.page:25 C/menubar.vala.page:20
 msgid "A widget which holds GtkMenuItem widgets"
-msgstr ""
+msgstr "En komponent som håller GtkMenuItem-komponenter"
 
 #. (itstool) path: page/title
 #: C/menubar.c.page:23 C/menubar.vala.page:23
@@ -20003,7 +22264,7 @@ msgstr ""
 #. (itstool) path: section/title
 #: C/menubar.py.page:55 C/menubar.vala.page:51
 msgid "Add items to the menus"
-msgstr ""
+msgstr "Lägg till objekt till menyerna"
 
 #. (itstool) path: section/p
 #: C/menubar.py.page:56 C/menubar.vala.page:52
@@ -20109,6 +22370,11 @@ msgid ""
 "  &lt;attribute name=\"action\"&gt;app.new&lt;/attribute&gt;\n"
 "&lt;/item&gt;"
 msgstr ""
+"\n"
+"&lt;item&gt;\n"
+"  &lt;attribute name=\"label\"&gt;Ny&lt;/attribute&gt;\n"
+"  &lt;attribute name=\"action\"&gt;app.new&lt;/attribute&gt;\n"
+"&lt;/item&gt;"
 
 #. (itstool) path: section/p
 #: C/menubar.py.page:112
@@ -20135,7 +22401,7 @@ msgstr ""
 #. (itstool) path: section/p
 #: C/menubar.py.page:118
 msgid "See <link xref=\"signals-callbacks.py\"/> for a more detailed explanation of signals and callbacks."
-msgstr ""
+msgstr "Se <link xref=\"signals-callbacks.py\"/> för en mer detaljerad förklaring av signaler och återanrop."
 
 #. (itstool) path: section/title
 #: C/menubar.py.page:122 C/menubar.vala.page:139
@@ -20583,6 +22849,9 @@ msgid ""
 "link>, it is important that the strings in your application are translatable. To make a label translatable, 
simple "
 "set <code>translatable=\"yes\"</code>:"
 msgstr ""
+"Eftersom GNOME-program översätts till <link href=\"http://l10n.gnome.org/languages/\";>många språk</link> så 
är det "
+"viktigt att strängarna i ditt program går att översätta. För att göra en etikett översättningsbar, ställ 
helt "
+"enkelt in <code>translatable=\"yes\"</code>:"
 
 #. (itstool) path: section/code
 #: C/menubar.py.page:179
@@ -20653,7 +22922,7 @@ msgstr ""
 #. (itstool) path: section/p
 #: C/menubar.vala.page:45
 msgid "Now, compile the vala file, and run it. The application should look like the picture at the top of 
this page."
-msgstr ""
+msgstr "Kompilera nu vala-filen och kör den. Programmet bör se ut som bilden högst upp på denna sida."
 
 #. (itstool) path: section/p
 #: C/menubar.vala.page:80
@@ -20719,7 +22988,7 @@ msgstr ""
 #. (itstool) path: item/p
 #: C/menubar.vala.page:106
 msgid "Second, we create the callback functions the actions are connected to."
-msgstr ""
+msgstr "Sedan skapar vi återanropsfunktionerna som åtgärderna är anslutna till."
 
 #. (itstool) path: item/code
 #: C/menubar.vala.page:107
@@ -20740,7 +23009,7 @@ msgstr ""
 #. (itstool) path: item/p
 #: C/menubar.vala.page:118
 msgid "And lastly, we connect the menu items to the actions in the XML file by adding the \"action\" 
attribute:"
-msgstr ""
+msgstr "Slutligen ansluter vi menyobjekten till åtgärderna i XML-filen genom att lägga till attributet 
\"action\":"
 
 #. (itstool) path: item/code
 #: C/menubar.vala.page:119
@@ -21411,7 +23680,7 @@ msgstr ""
 #: C/message-board.c.page:8
 msgctxt "text"
 msgid "Message board (C)"
-msgstr ""
+msgstr "Anslagstavla (C)"
 
 #. (itstool) path: info/desc
 #: C/message-board.c.page:11
@@ -21421,7 +23690,7 @@ msgstr "Ett enkelt program som använder WebKitGTK+ och DOM."
 #. (itstool) path: page/title
 #: C/message-board.c.page:26
 msgid "Message board"
-msgstr ""
+msgstr "Anslagstavla"
 
 #. (itstool) path: item/p
 #: C/message-board.c.page:31
@@ -21461,6 +23730,9 @@ msgid ""
 "throughout GNOME, not just to view web pages on the Internet, but also to create rich user interfaces that 
can be "
 "easily styled with CSS."
 msgstr ""
+"GNOME-plattformen inkluderar WebKitGTK+, byggd på det kraftfulla HTML-ramverket WebKit. WebKit används runt 
om i "
+"GNOME, inte bara för att visa webbsidor på internet, utan också för att skapa rika användargränssnitt som 
lätt kan "
+"stilsättas med CSS."
 
 #. (itstool) path: section/p
 #: C/message-board.c.page:53
@@ -21469,6 +23741,9 @@ msgid ""
 "some text and have it added to a list of messages in HTML. Before you begin, you need to set up a project 
in "
 "Anjuta."
 msgstr ""
+"I denna handledning kommer du skapa en enkel anslagstavla med WebKit. Anslagstavlan kommer låta dig mata in 
lite "
+"text och lägga till den till en lista med meddelanden i HTML. Innan du börjar behöver du konfigurera ett 
projekt i "
+"Anjuta."
 
 #. (itstool) path: item/p
 #: C/message-board.c.page:59
@@ -21499,6 +23774,8 @@ msgid ""
 "Disable the <gui>Use GtkBuilder for user interface</gui> option as this tutorial builds the user-interface "
 "manually."
 msgstr ""
+"Inaktivera alternativet <gui>Använd GtkBuilder för användargränssnitt</gui> då denna handledning bygger "
+"användargränssnittet manuellt."
 
 #. (itstool) path: item/p
 #: C/message-board.c.page:69
@@ -21507,6 +23784,9 @@ msgid ""
 "<gui>Configure external packages</gui>. Click <gui>Continue</gui>. On the <gui>Configure external 
packages</gui> "
 "page, check <gui>webkitgtk-3.0</gui>."
 msgstr ""
+"Du behöver säga till Anjuta att du använder WebKitGTK+ för detta projekt. På sidan 
<gui>Projektalternativ</gui>, "
+"välj <gui>Konfigurera externa paket</gui>. Klicka på <gui>Fortsätt</gui>. På sidan <gui>Konfigurera externa 
paket</"
+"gui>, kryssa i <gui>webkitgtk-3.0</gui>."
 
 #. (itstool) path: section/p
 #: C/message-board.c.page:75
@@ -21516,6 +23796,10 @@ msgid ""
 "Since you are creating a WebKit project, you first need to include the WebKit headers. After the line that "
 "includes <code>gtk/gtk.h</code>, add the following line:"
 msgstr ""
+"Efter att du slutför guiden för nya projekt, öppna filen <file>src/main.js</file> från flikarna 
<gui>Projekt</gui> "
+"eller <gui>Filer</gui>. Anjuta kommer ha fyllt i denna med lite grundläggande GTK+-kod från sina mallar. 
Eftersom "
+"du skapar ett WebKit-projekt behöver du först inkludera WebKit-headerfilerna. Lägg till följande rad efter 
raden "
+"som inkluderar <code>gtk/gtk.h</code>:"
 
 #. (itstool) path: section/code
 #: C/message-board.c.page:82
@@ -21541,7 +23825,7 @@ msgstr ""
 #. (itstool) path: section/title
 #: C/message-board.c.page:96
 msgid "Lay out your window and web view"
-msgstr ""
+msgstr "Skapa en layout för ditt fönster och din webbvy"
 
 #. (itstool) path: section/p
 #: C/message-board.c.page:98
@@ -21716,7 +24000,7 @@ msgstr ""
 #. (itstool) path: section/title
 #: C/message-board.c.page:217
 msgid "Hook up signals"
-msgstr ""
+msgstr "Anslut signaler"
 
 #. (itstool) path: section/p
 #: C/message-board.c.page:219
@@ -21923,6 +24207,9 @@ msgid ""
 "manipulating its contents. To create a real application, you probably want to do a little bit more. Try 
adding "
 "features on your own. Here are a few ideas:"
 msgstr ""
+"Denna handledning visade dig hur du skapar ett enkelt program med GTK+ och WebKit, inklusive att visa ett 
dokument "
+"och manipulera dess innehåll. För att skapa ett riktigt program vill du förmodligen göra lite mer. Försök 
lägga "
+"till egen funktionalitet. Här är några idéer:"
 
 #. (itstool) path: item/p
 #: C/message-board.c.page:377
@@ -21931,6 +24218,9 @@ msgid ""
 "but increasingly more powerful. There is a wealth of CSS tutorials on the Internet, and just about 
everything you "
 "can do on the web, you can do in this application."
 msgstr ""
+"Om du är bekväm med CSS kan du försöka ändra stilen för meddelandevisningen. CSS är enkelt att komma igång 
med, "
+"men blir alltmer kraftfullt. Det finns en stor mängd CSS-handledningar på internet, och i princip allt du 
kan göra "
+"på webben kan du göra i detta program."
 
 #. (itstool) path: item/p
 #: C/message-board.c.page:383
@@ -21938,6 +24228,8 @@ msgid ""
 "Right now, you lose all your messages whenever you close the message board. Try saving the HTML contents 
after "
 "each post, and loading the saved file (if it exists) on startup."
 msgstr ""
+"För tillfället förlorar du alla dina meddelanden närhelst du stänger anslagstavlan. Försök att spara HTML-"
+"innehållet efter varje post, och läsa in den sparade filen (om den finns) vid uppstart."
 
 #. (itstool) path: item/p
 #: C/message-board.c.page:391
@@ -21946,6 +24238,9 @@ msgid ""
 "each message when it's posted. You'll probably want to create some additional child <code>div</code> 
elements with "
 "different classes that you can style in the CSS."
 msgstr ""
+"Om du behåller dina meddelanden länge kommer du börja fundera när du postade dem. Lägg till en tidsstämpel 
till "
+"varje meddelande då det postas. Du kommer troligen vilja skapa några <code>div</code>-barnelement med olika 
"
+"klasser som du kan stilsätta i din CSS."
 
 #. (itstool) path: item/p
 #: C/message-board.c.page:398
@@ -21955,6 +24250,11 @@ msgid ""
 "messages before them. Or you could add a link in each message to delete it. You could even override the 
context "
 "menu when you right-click on a message. These features involve exploring WebKit's DOM API more."
 msgstr ""
+"Detta program behåller meddelanden för alltid. Tänk på sätt som du skulle kunna låta användaren ta bort "
+"meddelanden. Kanske du vill att meddelanden ska försvinna automatiskt efter att de blivit för gamla, eller 
efter "
+"att det finns ett visst antal meddelanden före dem. Eller så skulle du kunna lägga till en länk i varje 
meddelande "
+"för att ta bort det. Du skulle till och med kunna åsidosätta snabbvalsmenyn då du högerklickar på ett 
meddelande. "
+"Dessa funktioner involverar att utforska WebKits DOM-API mera."
 
 #. (itstool) path: info/title
 #: C/messagedialog.c.page:8
@@ -21985,7 +24285,7 @@ msgstr "external ref='media/messagedialog.png' md5='1956288274018e2386d9cba96a21
 #. (itstool) path: page/p
 #: C/messagedialog.c.page:25 C/messagedialog.vala.page:23
 msgid "A modal message dialog which can cause the world to explode."
-msgstr ""
+msgstr "En modal meddelandedialog som kan få världen att explodera."
 
 #. (itstool) path: note/p
 #: C/messagedialog.c.page:26
@@ -22197,7 +24497,7 @@ msgstr "MessageDialog (Javascript)"
 #. (itstool) path: info/desc
 #: C/messagedialog.js.page:21
 msgid "A popup message attached to a window"
-msgstr ""
+msgstr "Ett poppuppmeddelande fäst vid ett fönster"
 
 #. (itstool) path: page/p
 #: C/messagedialog.js.page:26
@@ -22266,6 +24566,31 @@ msgid ""
 "        this._buildUI ();\n"
 "    },\n"
 msgstr ""
+"\n"
+"const MessageDialogExample = new Lang.Class ({\n"
+"    Name: 'MessageDialog-exempel',\n"
+"\n"
+"    // Skapa programmet i sig\n"
+"    _init: function () {\n"
+"        this.application = new Gtk.Application ({\n"
+"            application_id: 'org.example.jsmessagedialog',\n"
+"            flags: Gio.ApplicationFlags.FLAGS_NONE });\n"
+"\n"
+"        // Anslut ”activate”- och ”startup”-signaler till återanropsfunktionerna\n"
+"        this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"        this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Återanropsfunktion för ”activate”-signal visar fönster när den aktiveras\n"
+"    _onActivate: function () {\n"
+"        this._window.present ();\n"
+"    },\n"
+"\n"
+"    // Återanropsfunktion för ”startup”-signal initierar menyer och bygger användargränssnittet\n"
+"    _onStartup: function () {\n"
+"        this._initMenus();\n"
+"        this._buildUI ();\n"
+"    },\n"
 
 #. (itstool) path: note/p
 #: C/messagedialog.js.page:71 C/switch.js.page:76
@@ -22291,6 +24616,17 @@ msgid ""
 "            default_height: 200,\n"
 "            default_width: 400 });\n"
 msgstr ""
+"\n"
+"    // Bygg programmets användargränssnitt\n"
+"    _buildUI: function () {\n"
+"\n"
+"        // Skapa programfönstret\n"
+"        this._window = new Gtk.ApplicationWindow  ({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            title: \"Gtk.MessageDialog-exempel\",\n"
+"            default_height: 200,\n"
+"            default_width: 400 });\n"
 
 #. (itstool) path: section/code
 #: C/messagedialog.js.page:86
@@ -22302,6 +24638,11 @@ msgid ""
 "            label: \"This application goes boom! (Not really.)\"});\n"
 "        this._window.add (this.warningLabel);\n"
 msgstr ""
+"\n"
+"        // Skapa ett fånigt varningsmeddelande och lägg till det till fönstret\n"
+"        this.warningLabel = new Gtk.Label ({\n"
+"            label: \"Detta program sprängs! (Inte på riktigt.)\"});\n"
+"        this._window.add (this.warningLabel);\n"
 
 #. (itstool) path: section/p
 #: C/messagedialog.js.page:92
@@ -22313,7 +24654,7 @@ msgstr ""
 #. (itstool) path: section/title
 #: C/messagedialog.js.page:96
 msgid "Creating the application's menu"
-msgstr ""
+msgstr "Skapa programmets meny"
 
 #. (itstool) path: section/code
 #: C/messagedialog.js.page:97
@@ -22357,7 +24698,7 @@ msgstr ""
 #. (itstool) path: section/title
 #: C/messagedialog.js.page:126
 msgid "Creating the MessageDialog"
-msgstr ""
+msgstr "Skapa vår MessageDialog"
 
 #. (itstool) path: section/code
 #: C/messagedialog.js.page:127
@@ -22378,6 +24719,20 @@ msgid ""
 "        this._messageDialog.show();\n"
 "    },\n"
 msgstr ""
+"\n"
+"    _showMessageDialog: function () {\n"
+"\n"
+"        // Skapa en modal MessageDialog vars förälder är fönstret\n"
+"        this._messageDialog = new Gtk.MessageDialog ({\n"
+"            transient_for: this._window,\n"
+"            modal: true,\n"
+"            buttons: Gtk.ButtonsType.OK_CANCEL,\n"
+"            message_type: Gtk.MessageType.WARNING,\n"
+"            text: \"Denna åtgärd kommer få universum att sluta existera.\" });\n"
+"\n"
+"        this._messageDialog.connect ('response', Lang.bind(this, this._response_cb));\n"
+"        this._messageDialog.show();\n"
+"    },\n"
 
 #. (itstool) path: section/p
 #: C/messagedialog.js.page:142
@@ -22391,7 +24746,7 @@ msgstr ""
 #. (itstool) path: note/p
 #: C/messagedialog.js.page:143
 msgid "Here are some resources for making your own MessageDialogs:"
-msgstr ""
+msgstr "Här är några resurser för att göra dina egna MessageDialoger:"
 
 #. (itstool) path: item/p
 #: C/messagedialog.js.page:145
@@ -22593,7 +24948,7 @@ msgstr "MessageDialog (Python)"
 #. (itstool) path: page/p
 #: C/messagedialog.py.page:24
 msgid "A message dialog which prints messages on the terminal, depending on your choices."
-msgstr ""
+msgstr "En meddelandedialog som skriver ut meddelanden i terminalen, beroende på dina val."
 
 #. (itstool) path: section/code
 #: C/messagedialog.py.page:31
@@ -22727,7 +25082,7 @@ msgstr ""
 #. (itstool) path: item/p
 #: C/messagedialog.py.page:42
 msgid "We could substitute the default image of the MessageDialog with another image using"
-msgstr ""
+msgstr "Vi skulle kunna ersätta standardbilden för vår MessageDialog med en annan genom att använda"
 
 #. (itstool) path: item/code
 #: C/messagedialog.py.page:43
@@ -22739,7 +25094,13 @@ 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)"
 
+# TODO: GTK_STOCK_CAPS_LOCK_WARNING deprecated since GNOME 3.10
 #. (itstool) path: item/p
 #: C/messagedialog.py.page:48
 msgid ""
@@ -22747,6 +25108,9 @@ msgid ""
 "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 ""
+"där <code>Gtk.STOCK_CAPS_LOCK_WARNING</code> är någon bild från <link 
href=\"http://developer.gnome.org/gtk3/";
+"unstable/gtk3-Stock-Items.html\">standardobjekten</link>. Vi skulle också kunna ställa in valfri bild som i 
Image-"
+"komponenten, som <code>image.set_from_file(\"filnamn.png\")</code>."
 
 #. (itstool) path: item/p
 #: C/messagedialog.py.page:49
@@ -22754,6 +25118,8 @@ msgid ""
 "<code>format_secondary_text(\"some secondary message\")</code> sets a secondary message. The primary text 
becomes "
 "bold."
 msgstr ""
+"<code>format_secondary_text(\"något sekundärt meddelande\")</code> ställer in ett sekundärt meddelande. Den 
"
+"primära texten blir fet."
 
 #. (itstool) path: item/p
 #: C/messagedialog.py.page:59
@@ -23035,7 +25401,7 @@ msgstr ""
 #. (itstool) path: section/p
 #: C/model-view-controller.py.page:77
 msgid "The <code>Gtk.TreeViewColumn</code> is used to organize the vertical columns."
-msgstr ""
+msgstr "<code>Gtk.TreeViewColumn</code> används för att organisera de vertikala kolumnerna."
 
 #. (itstool) path: section/p
 #: C/model-view-controller.py.page:79
@@ -23429,8 +25795,9 @@ msgstr "external ref='media/paned.png' md5='8c7e1df065395c9aafcd65036a293d8a'"
 
 #. (itstool) path: page/p
 #: C/paned.c.page:23 C/paned.js.page:23 C/paned.py.page:24 C/paned.vala.page:23
+#, fuzzy
 msgid "Two images in two adjustable panes, horizontally aligned."
-msgstr ""
+msgstr "Två bilder i två justerbara paneler, ordnade horisontellt."
 
 #. (itstool) path: section/code
 #: C/paned.c.page:29
@@ -23527,6 +25894,8 @@ msgid ""
 "<link 
href=\"http://developer.gnome.org/gtk3/stable/gtk3-Standard-Enumerations.html#GtkOrientation\";>Standard "
 "Enumerations</link>"
 msgstr ""
+"<link href=\"http://developer.gnome.org/gtk3/stable/gtk3-Standard-Enumerations.html#GtkOrientation";
+"\">Standarduppräkningstyper</link>"
 
 #. (itstool) path: info/title
 #: C/paned.js.page:8
@@ -23599,6 +25968,66 @@ msgid ""
 "let app = new PanedExample();\n"
 "app.application.run (ARGV);\n"
 msgstr ""
+"#!/usr/bin/gjs\n"
+"\n"
+"imports.gi.versions.Gtk = '3.0';\n"
+"const Gtk = imports.gi.Gtk;\n"
+"\n"
+"class PanedExample {\n"
+"\n"
+"    // Skapa programmet i sig\n"
+"    constructor() {\n"
+"        this.application = new Gtk.Application({ application_id: 'org.example.panedexample' });\n"
+"\n"
+"       // Anslut ”activate”- och ”startup”-signaler till återanropsfunktionerna\n"
+"        this.application.connect('activate', this._onActivate.bind(this));\n"
+"        this.application.connect('startup', this._onStartup.bind(this));\n"
+"    }\n"
+"\n"
+"    // Återanropsfunktion för ”activate”-signal visar fönster när den aktiveras\n"
+"    _onActivate() {\n"
+"        this.window.present();\n"
+"    }\n"
+"\n"
+"    // Återanropsfunktion för ”startup”-signal bygger användargränssnittet\n"
+"    _onStartup() {\n"
+"        this._buildUI();\n"
+"    }\n"
+"\n"
+"    // Bygg programmets användargränssnitt\n"
+"    _buildUI() {\n"
+"        // Skapa programfönstret\n"
+"        this.window = new Gtk.ApplicationWindow  ({ application: this.application,\n"
+"                                                    window_position: Gtk.WindowPosition.CENTER,\n"
+"                                                    title: \"Paned-fönsterexempel\",\n"
+"                                                    default_width: 450,\n"
+"                                                    default_height: 350,\n"
+"                                                    border_width: 10 });\n"
+"\n"
+"        // en ny komponent med två justerbara paneler,\n"
+"        // en till vänster och en till höger\n"
+"        this.paned = Gtk.Paned.new(Gtk.Orientation.HORIZONTAL);\n"
+"\n"
+"        // två bilder\n"
+"        this.image1 = new Gtk.Image();\n"
+"        this.image1.set_from_file(\"gnome-image.png\");\n"
+"        this.image2 = new Gtk.Image();\n"
+"        this.image2.set_from_file(\"tux.png\");\n"
+"\n"
+"        // lägg till den första bilden till den vänstra panelen\n"
+"        this.paned.add1(this.image1);\n"
+"        // lägg till den andra bilden till den högra panelen\n"
+"        this.paned.add2(this.image2)\n"
+"\n"
+"        // lägg till panelerna till fönstret\n"
+"        this.window.add(this.paned)\n"
+"        this.window.show_all();\n"
+"    }\n"
+"};\n"
+"\n"
+"// Kör programmet\n"
+"let app = new PanedExample();\n"
+"app.application.run (ARGV);\n"
 
 #. (itstool) path: item/p
 #: C/paned.js.page:36
@@ -23665,6 +26094,50 @@ msgid ""
 "exit_status = app.run(sys.argv)\n"
 "sys.exit(exit_status)\n"
 msgstr ""
+"from gi.repository import Gtk\n"
+"import sys\n"
+"\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"Paned-exempel\", application=app)\n"
+"        self.set_default_size(450, 350)\n"
+"\n"
+"        # en ny komponent med två justerbara paneler,\n"
+"        # en till vänster och en till höger\n"
+"        paned = Gtk.Paned.new(Gtk.Orientation.HORIZONTAL)\n"
+"\n"
+"        # två bilder\n"
+"        image1 = Gtk.Image()\n"
+"        image1.set_from_file(\"gnome-image.png\")\n"
+"        image2 = Gtk.Image()\n"
+"        image2.set_from_file(\"tux.png\")\n"
+"\n"
+"        # lägg till den första bilden till den vänstra panelen\n"
+"        paned.add1(image1)\n"
+"        # lägg till den andra bilden till den högra panelen\n"
+"        paned.add2(image2)\n"
+"\n"
+"        # lägg till panelerna till fönstret\n"
+"        self.add(paned)\n"
+"\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
 
 #. (itstool) path: section/title
 #: C/paned.py.page:34
@@ -23673,11 +26146,15 @@ msgstr "Användbara metoder för en Paned-komponent"
 
 #. (itstool) path: section/p
 #: C/paned.py.page:35
+#, fuzzy
 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 ""
+"För att ha två vertikalt ordnade paneler, använd <code>Gtk.Orientation.VERTICAL</code> istället för 
<code>Gtk."
+"Orientation.HORIZONTAL</code>. Metoden <code>add1(widget1)</code> kommer lägga till <code>widget1</code> 
till den "
+"övre panelen, och <code>add2(widget2)</code> kommer lägga till <code>widget2</code> till den nedre panelen."
 
 #. (itstool) path: info/title
 #: C/paned.vala.page:8
@@ -23725,6 +26202,41 @@ msgid ""
 "\treturn new MyApplication ().run (args);\n"
 "}\n"
 msgstr ""
+"/* Det här är programmet. */\n"
+"public class MyApplication : Gtk.Application {\n"
+"\t/* Åsidosätt ”activate”-signalen för GLib.Application. */\n"
+"\tprotected override void activate () {\n"
+"\n"
+"\t\tvar window = new Gtk.ApplicationWindow (this);\n"
+"\t\twindow.title = \"Paned-exempel\";\n"
+"\t\twindow.set_default_size (450,350);\n"
+"\n"
+"\t\t// en ny komponent med två justerbara paneler,\n"
+"\t\t// en till vänster och en till höger\n"
+"\t\tvar paned = new Gtk.Paned (Gtk.Orientation.HORIZONTAL);\n"
+"\n"
+"\t\t/* två bilder */\n"
+"\t\tvar image1 = new Gtk.Image ();\n"
+"\t\timage1.set_from_file (\"gnome-image.png\");\n"
+"\t\tvar image2 = new Gtk.Image ();\n"
+"\t\timage2.set_from_file (\"tux.png\");\n"
+"\n"
+"\t\t/* lägg till den första bilden till den vänstra panelen */\n"
+"\t\tpaned.add1 (image1);\n"
+"\n"
+"\t\t/* lägg till den andra bilden till den högra panelen */\n"
+"\t\tpaned.add2 (image2);\n"
+"\n"
+"\t\t/* lägg till panelerna till fönstret */\n"
+"\t\twindow.add (paned);\n"
+"\t\twindow.show_all ();\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* main skapar och kör programmet. */\n"
+"public int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
 
 #. (itstool) path: item/p
 #: C/paned.vala.page:36
@@ -23770,7 +26282,7 @@ msgstr "Hur du placerar en bild i en <code>ClutterActor</code>"
 #. (itstool) path: item/p
 #: C/photo-wall.c.page:35
 msgid "How to do simple transitions using Clutter's animation framework"
-msgstr ""
+msgstr "Hur du gör enkla övergångar med Clutters animeringsramverk"
 
 #. (itstool) path: item/p
 #: C/photo-wall.c.page:36
@@ -23794,6 +26306,9 @@ msgid ""
 "demonstrates a small, but central, part of the Clutter library to create a simple but attractive image 
viewing "
 "program."
 msgstr ""
+"Clutter är ett bibliotek för att skapa dynamiska användargränssnitt med OpenGL för hårdvaruacceleration. 
Detta "
+"exempel demonstrerar en liten, men central, del av Clutter-biblioteket för att skapa ett enkelt men vackert 
"
+"bildvisningsprogram."
 
 #. (itstool) path: section/p
 #: C/photo-wall.c.page:46
@@ -23818,6 +26333,9 @@ msgid ""
 "Make sure that <gui>Use GtkBuilder for user interface</gui> is disabled as we will create the UI manually 
in this "
 "tutorial. Check the <link xref=\"guitar-tuner.c\">Guitar-Tuner</link> tutorial using the interface builder."
 msgstr ""
+"Säkerställ att <gui>Använd GtkBuilder för användargränssnitt</gui> är inaktiverat då vi kommer skapa "
+"användargränssnittet manuellt i denna handledning. Se handledningen <link 
xref=\"guitar-tuner.c\">Gitarrstämmare</"
+"link> för användning av gränssnittsbyggaren."
 
 #. (itstool) path: item/p
 #: C/photo-wall.c.page:67
@@ -23825,6 +26343,8 @@ msgid ""
 "Enable <gui>Configure external packages</gui>. On the next page, select <em>clutter-1.0</em> from the list 
to "
 "include the Clutter library in your project."
 msgstr ""
+"Aktivera <gui>Konfigurera externa paket</gui>. På nästa sida, välj <em>clutter-1.0</em> från listan för att 
"
+"inkludera Clutter-biblioteket i ditt projekt."
 
 #. (itstool) path: section/title
 #: C/photo-wall.c.page:80
@@ -23926,7 +26446,7 @@ msgstr ""
 #. (itstool) path: section/title
 #: C/photo-wall.c.page:119
 msgid "Jumping into the code"
-msgstr ""
+msgstr "Ett hopp in i koden"
 
 #. (itstool) path: section/p
 #: C/photo-wall.c.page:120
@@ -23938,7 +26458,7 @@ msgstr ""
 
 #. (itstool) path: section/code
 #: C/photo-wall.c.page:123
-#, no-wrap
+#, fuzzy, no-wrap
 msgid ""
 "\n"
 "int\n"
@@ -24002,6 +26522,67 @@ msgid ""
 "    return 0;\n"
 "}"
 msgstr ""
+"\n"
+"int\n"
+"main(int argc, char *argv[])\n"
+"{\n"
+"    ClutterColor stage_color = { 16, 16, 16, 255 };\n"
+"    ClutterActor *stage = NULL;\n"
+"\n"
+"    if (clutter_init (&amp;argc, &amp;argv) != CLUTTER_INIT_SUCCESS)\n"
+"        return 1;\n"
+"\n"
+"    stage = clutter_stage_new();\n"
+"    clutter_actor_set_size(stage, STAGE_WIDTH, STAGE_HEIGHT);\n"
+"    clutter_actor_set_background_color(stage, &amp;stage_color);\n"
+"    clutter_stage_set_title(CLUTTER_STAGE (stage), \"Fotovägg\");\n"
+"    g_signal_connect(stage, \"destroy\", G_CALLBACK(clutter_main_quit), NULL);\n"
+"\n"
+"    load_image_path_names();\n"
+"\n"
+"    guint row = 0;\n"
+"    guint col = 0;\n"
+"    for(row=0; row &lt; ROW_COUNT; ++row)\n"
+"    {\n"
+"        for(col=0; col &lt; COL_COUNT; ++col)\n"
+"        {\n"
+"            const char *img_path = g_ptr_array_index(img_paths, (row * COL_COUNT) + col);\n"
+"            GdkPixbuf *pixbuf = gdk_pixbuf_new_from_file_at_size(img_path, STAGE_HEIGHT, STAGE_HEIGHT, 
NULL);\n"
+"            ClutterContent *image = clutter_image_new ();\n"
+"            ClutterActor *actor = clutter_actor_new ();\n"
+"\n"
+"            if (pixbuf != NULL)\n"
+"            {\n"
+"                clutter_image_set_data(CLUTTER_IMAGE(image),\n"
+"                                       gdk_pixbuf_get_pixels(pixbuf),\n"
+"                                       gdk_pixbuf_get_has_alpha(pixbuf)\n"
+"                                           ? COGL_PIXEL_FORMAT_RGBA_8888\n"
+"                                           : COGL_PIXEL_FORMAT_RGB_888,\n"
+"                                       gdk_pixbuf_get_width(pixbuf),\n"
+"                                       gdk_pixbuf_get_height(pixbuf),\n"
+"                                       gdk_pixbuf_get_rowstride(pixbuf),\n"
+"                                       NULL);\n"
+"            }\n"
+"\n"
+"            clutter_actor_set_content(actor, image);\n"
+"            g_object_unref(image);\n"
+"            g_object_unref(pixbuf);\n"
+"\n"
+"            initialize_actor(actor, row, col);\n"
+"            clutter_actor_add_child(stage, actor);\n"
+"        }\n"
+"    }\n"
+"\n"
+"    /* Visa scenen. */\n"
+"    clutter_actor_show(stage);\n"
+"\n"
+"    /* Starta clutters main-loop. */\n"
+"    clutter_main();\n"
+"\n"
+"    g_ptr_array_unref(img_paths);\n"
+"\n"
+"    return 0;\n"
+"}"
 
 #. (itstool) path: item/p
 #: C/photo-wall.c.page:185
@@ -24014,6 +26595,8 @@ msgstr ""
 #: C/photo-wall.c.page:186
 msgid "Line 7: You must initialize Clutter. If you forget to do this, you will get very strange errors. Be 
warned."
 msgstr ""
+"Line 7: Du måste initiera Clutter. Om du glömmer att göra detta kommer du stöta på väldigt märkliga fel. 
Detta är "
+"en varning."
 
 #. (itstool) path: item/p
 #: C/photo-wall.c.page:187
@@ -24174,7 +26757,7 @@ msgstr "Läsa in bilderna"
 #. (itstool) path: section/p
 #: C/photo-wall.c.page:250
 msgid "Let's take a short break from Clutter to see how we can get the file names from our image directory."
-msgstr ""
+msgstr "Låt oss ta en kort rast från Clutter för att se hur vi kan få filnamnen från vår bildkatalog."
 
 #. (itstool) path: section/code
 #: C/photo-wall.c.page:251
@@ -24208,11 +26791,40 @@ msgid ""
 "    }\n"
 "}"
 msgstr ""
+"\n"
+"static void\n"
+"load_image_path_names()\n"
+"{\n"
+"    /* Säkerställ att vi kan komma åt katalogen. */\n"
+"    GError *error = NULL;\n"
+"    GDir *dir = g_dir_open(IMAGE_DIR_PATH, 0, &amp;error);\n"
+"    if(error)\n"
+"    {\n"
+"        g_warning(\"g_dir_open() failed with error: %s\\n\", error-&gt;message);\n"
+"        g_clear_error(&amp;error);\n"
+"        return;\n"
+"    }\n"
+"\n"
+"    img_paths = g_ptr_array_new_with_free_func (g_free);\n"
+"\n"
+"    const gchar *filename = g_dir_read_name(dir);\n"
+"    while(filename)\n"
+"    {\n"
+"        if(g_str_has_suffix(filename, \".jpg\") || g_str_has_suffix(filename, \".png\"))\n"
+"        {\n"
+"            gchar *path = g_build_filename(IMAGE_DIR_PATH, filename, NULL);\n"
+"            g_ptr_array_add (img_paths, path);\n"
+"        }\n"
+"        filename = g_dir_read_name(dir);\n"
+"    }\n"
+"}"
 
 #. (itstool) path: item/p
 #: C/photo-wall.c.page:279
 msgid "Lines 5 and 12: This opens our directory or, if an error occurred, returns after printing an error 
message."
 msgstr ""
+"Rad 5 och 12: Detta öppnar vår katalog eller, om ett fel uppstod, returnerar efter att ha skrivit ut ett "
+"felmeddelande."
 
 #. (itstool) path: item/p
 #: C/photo-wall.c.page:280
@@ -24268,11 +26880,13 @@ msgid ""
 "Line 9‒12: Now we connect the <code>button-press-event</code> to the <code>actor_clicked_cb</code> callback 
which "
 "we will look at next."
 msgstr ""
+"Rad 9‒12: Nu ansluter vi <code>button-press-event</code> till återanropet <code>actor_clicked_cb</code> som 
vi "
+"kommer ta en titt på härnäst."
 
 #. (itstool) path: section/p
 #: C/photo-wall.c.page:311
 msgid "At this point we've got a wall of images that are ready to be viewed."
-msgstr ""
+msgstr "Vid denna punkt har vi en vägg av bilder som är redo att tittas på."
 
 #. (itstool) path: section/title
 #: C/photo-wall.c.page:315
@@ -24470,7 +27084,7 @@ msgstr "ProgressBar (C)"
 #. (itstool) path: info/desc
 #: C/progressbar.c.page:19 C/progressbar.vala.page:18
 msgid "A widget which indicates progress visually"
-msgstr ""
+msgstr "En komponent som indikerar förlopp visuellt"
 
 #. (itstool) path: page/title
 #: C/progressbar.c.page:22 C/progressbar.js.page:20 C/progressbar.py.page:22 C/progressbar.vala.page:21
@@ -24490,7 +27104,7 @@ msgstr "external ref='media/progressbar_fill.ogv' md5='287763d1d3f4a328212ea2243
 #. (itstool) path: page/p
 #: C/progressbar.c.page:25 C/progressbar.vala.page:23
 msgid "This ProgressBar \"fills in\" by a fraction of the bar until it is full."
-msgstr ""
+msgstr "Denna ProgressBar ”fylls i” med en bråkdel av raden tills den är full."
 
 #. (itstool) path: page/code
 #: C/progressbar.c.page:27
@@ -24584,7 +27198,7 @@ msgstr "ProgressBar (Javascript)"
 #. (itstool) path: info/desc
 #: C/progressbar.js.page:17
 msgid "A bar which animates to indicate progress"
-msgstr ""
+msgstr "En rad som animeras för att indikera ett förlopp"
 
 #. (itstool) path: page/media
 #. This is a reference to an external file such as an image or video. When
@@ -24599,12 +27213,12 @@ msgstr "external ref='media/progressbar.ogv' md5='36deab3dd4b5be968828fa2ef416d6
 #. (itstool) path: div/p
 #: C/progressbar.js.page:25 C/progressbar.py.page:27
 msgid "Pressing any key stops and starts this ProgressBar."
-msgstr ""
+msgstr "Att trycka på valfri tangent stoppar och startar denna ProgressBar."
 
 #. (itstool) path: page/p
 #: C/progressbar.js.page:32 C/progressbar.py.page:34
 msgid "This ProgressBar is stopped and started by pressing any key."
-msgstr ""
+msgstr "Denna ProgressBar stoppas och startas genom att trycka på valfri tangent."
 
 #. (itstool) path: page/code
 #: C/progressbar.js.page:34
@@ -24705,7 +27319,7 @@ msgstr "ProgressBar (Python)"
 #. (itstool) path: info/desc
 #: C/progressbar.py.page:19
 msgid "A widget which indicates progress visually."
-msgstr ""
+msgstr "En komponent som indikerar förlopp visuellt."
 
 #. (itstool) path: section/code
 #: C/progressbar.py.page:41
@@ -24806,10 +27420,11 @@ msgid ""
 "link>"
 msgstr ""
 
+# TODO: dead link
 #. (itstool) path: item/p
 #: C/progressbar.py.page:59
 msgid "<link href=\"http://developer.gnome.org/gdk/stable/gdk-Keyboard-Handling\";>Gdk - Key Values</link>"
-msgstr ""
+msgstr "<link href=\"http://developer.gnome.org/gdk/stable/gdk-Keyboard-Handling\";>Gdk - 
Tangentvärden</link>"
 
 #. (itstool) path: info/title
 #: C/progressbar.vala.page:8
@@ -24908,7 +27523,7 @@ msgstr ""
 #. (itstool) path: section/p
 #: C/properties.py.page:44
 msgid "Alternatively, you can define these properties separately by using the method associated with it."
-msgstr ""
+msgstr "Alternativt kan du definiera dessa egenskaper separat genom att använda metoden som är associerad 
med det."
 
 #. (itstool) path: section/code
 #: C/properties.py.page:45
@@ -24932,6 +27547,8 @@ msgid ""
 "Once you have created such a label, you can get the text of the label with <code>label.get_label()</code>, 
and "
 "analogously for the other properties."
 msgstr ""
+"Då du skapat en sådan etikett kan du få texten för etiketten med <code>label.get_label()</code>, och på "
+"motsvarande sätt för de andra egenskaperna."
 
 #. (itstool) path: section/p
 #: C/properties.py.page:53
@@ -24973,7 +27590,7 @@ msgstr "RadioButton (C)"
 #. (itstool) path: info/desc
 #: C/radiobutton.c.page:20
 msgid "A choice from multiple checkbuttons"
-msgstr ""
+msgstr "Ett val från flera kryssrutor"
 
 #. (itstool) path: page/title
 #: C/radiobutton.c.page:23 C/radiobutton.js.page:21 C/radiobutton.py.page:23 C/radiobutton.vala.page:24
@@ -24993,7 +27610,7 @@ msgstr "external ref='media/radiobutton.png' md5='d115460280d8e41493dd98054b5822
 #. (itstool) path: page/p
 #: C/radiobutton.c.page:26
 msgid "These radiobuttons report their activity in the terminal."
-msgstr ""
+msgstr "Dessa radioknappar rapporterar sin aktivitet i terminalen."
 
 #. (itstool) path: page/code
 #: C/radiobutton.c.page:28
@@ -25171,6 +27788,31 @@ msgid ""
 "        this._buildUI ();\n"
 "    },\n"
 msgstr ""
+"\n"
+"const RadioButtonExample = new Lang.Class({\n"
+"    Name: 'RadioButton-exempel',\n"
+"\n"
+"    // Skapa programmet i sig\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application({\n"
+"            application_id: 'org.example.jsradiobutton',\n"
+"            flags: Gio.ApplicationFlags.FLAGS_NONE\n"
+"        });\n"
+"\n"
+"    // Anslut ”activate”- och ”startup”-signaler till återanropsfunktionerna\n"
+"    this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"    this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Återanropsfunktion för ”activate”-signal, visar fönstret när den aktiveras\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    // Återanropsfunktion för ”startup”-signal bygger användargränssnittet\n"
+"    _onStartup: function() {\n"
+"        this._buildUI ();\n"
+"    },\n"
 
 #. (itstool) path: section/p
 #: C/radiobutton.js.page:67 C/togglebutton.js.page:67
@@ -25197,6 +27839,16 @@ msgid ""
 "            border_width: 20,\n"
 "            title: \"Travel Planning\"});\n"
 msgstr ""
+"\n"
+"    // Bygg programmets användargränssnitt\n"
+"    _buildUI: function() {\n"
+"\n"
+"        // Skapa programfönstret\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            border_width: 20,\n"
+"            title: \"Reseplanering\"});\n"
 
 #. (itstool) path: section/title
 #: C/radiobutton.js.page:83
@@ -25211,6 +27863,9 @@ msgid ""
 "        // Create a label for the first group of buttons\n"
 "        this._placeLabel = new Gtk.Label ({label: \"Where would you like to travel to?\"});\n"
 msgstr ""
+"\n"
+"        // Skapa en etikett för den första gruppen knappar\n"
+"        this._placeLabel = new Gtk.Label ({label: \"Vart vill du resa?\"});\n"
 
 #. (itstool) path: section/p
 #: C/radiobutton.js.page:89
@@ -25234,6 +27889,15 @@ msgid ""
 "        this._place3 = Gtk.RadioButton.new_with_label_from_widget (this._place1, \"Antarctica\");\n"
 "        // this._place3.set_active (true);\n"
 msgstr ""
+"\n"
+"        // Skapa tre radioknappar på tre olika sätt\n"
+"        this._place1 = new Gtk.RadioButton ({label: \"Stranden\"});\n"
+"\n"
+"        this._place2 = Gtk.RadioButton.new_from_widget (this._place1);\n"
+"        this._place2.set_label (\"Månen\");\n"
+"\n"
+"        this._place3 = Gtk.RadioButton.new_with_label_from_widget (this._place1, \"Antarktis\");\n"
+"        // this._place3.set_active (true);\n"
 
 #. (itstool) path: section/p
 #: C/radiobutton.js.page:102
@@ -25265,11 +27929,19 @@ msgid ""
 "        this._thing2 = new Gtk.RadioButton ({label: \"Sunscreen\", group: this._thing1 });\n"
 "        this._thing3 = new Gtk.RadioButton ({label: \"A spacesuit\", group: this._thing1 });\n"
 msgstr ""
+"\n"
+"        // Skapa en etikett för den andra gruppen knappar\n"
+"        this._thingLabel = new Gtk.Label ({label: \"Och vad skulle du vilja ta med dig?\" });\n"
+"\n"
+"        // Skapa tre till radioknappar\n"
+"        this._thing1 = new Gtk.RadioButton ({label: \"Pingviner\" });\n"
+"        this._thing2 = new Gtk.RadioButton ({label: \"Sololja\", group: this._thing1 });\n"
+"        this._thing3 = new Gtk.RadioButton ({label: \"En rymddräkt\", group: this._thing1 });\n"
 
 #. (itstool) path: section/p
 #: C/radiobutton.js.page:114
 msgid "Here we create the label for the second group of buttons, and then create them all the same way."
-msgstr ""
+msgstr "Här skapar vi etiketten för den andra gruppen knappar, och skapar sedan dem alla på samma sätt."
 
 #. (itstool) path: section/title
 #: C/radiobutton.js.page:118 C/textview.js.page:132
@@ -25290,6 +27962,15 @@ msgid ""
 "        // Connect the button to the function which handles clicking it\n"
 "        this._okButton.connect ('clicked', Lang.bind (this, this._okClicked));\n"
 msgstr ""
+"\n"
+"        // Skapa en OK-standardknapp\n"
+"        this._okButton = new Gtk.Button ({\n"
+"            label: 'gtk-ok',\n"
+"            use_stock: 'true',\n"
+"            halign: Gtk.Align.END });\n"
+"\n"
+"        // Anslut knappen till funktionen som hanterar att klicka på den\n"
+"        this._okButton.connect ('clicked', Lang.bind (this, this._okClicked));\n"
 
 #. (itstool) path: section/p
 #: C/radiobutton.js.page:130
@@ -25297,6 +27978,8 @@ 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 ""
+"Denna kod skapar en <link xref=\"button.js\">Gtk.Button</link> och binder den till en funktion som kommer 
visa ett "
+"fånigt meddelande för folk när de klickar OK, beroende på vilken RadioButton som valts."
 
 #. (itstool) path: section/p
 #: C/radiobutton.js.page:131
@@ -25402,6 +28085,24 @@ msgid ""
 "\n"
 "    },\n"
 msgstr ""
+"\n"
+"    _okClicked: function () {\n"
+"\n"
+"        // Skapa en poppupp som visar ett fånigt meddelande\n"
+"        this._travel = new Gtk.MessageDialog ({\n"
+"            transient_for: this._window,\n"
+"            modal: true,\n"
+"            message_type: Gtk.MessageType.OTHER,\n"
+"            buttons: Gtk.ButtonsType.OK,\n"
+"            text: this._messageText() });\n"
+"\n"
+"        // Visa poppuppen\n"
+"        this._travel.show();\n"
+"\n"
+"        // Bind OK-knappen till funktionen som stänger poppuppen\n"
+"        this._travel.connect (\"response\", Lang.bind (this, this._clearTravelPopUp));\n"
+"\n"
+"    },\n"
 
 #. (itstool) path: section/p
 #: C/radiobutton.js.page:201
@@ -25482,6 +28183,14 @@ msgid ""
 "\n"
 "});\n"
 msgstr ""
+"\n"
+"    _clearTravelPopUp: function () {\n"
+"\n"
+"        this._travel.destroy();\n"
+"\n"
+"    }\n"
+"\n"
+"});\n"
 
 #. (itstool) path: section/p
 #: C/radiobutton.js.page:258
@@ -25829,6 +28538,8 @@ msgid ""
 "As seen in <link xref=\"properties.py\"/>, instead of <code>button1 = Gtk.RadioButton(label=\"Button 
1\")</code> "
 "we could create the button and label it with"
 msgstr ""
+"Som kan ses i <link xref=\"properties.py\"/>, skulle vi istället för <code>button1 = 
Gtk.RadioButton(label=\"Knapp "
+"1\")</code> kunna skapa knappen och etikettera den med"
 
 #. (itstool) path: section/code
 #: C/radiobutton.py.page:39
@@ -25838,6 +28549,9 @@ msgid ""
 "button1 = Gtk.RadioButton()\n"
 "button1.set_label(\"Button 1\")."
 msgstr ""
+"\n"
+"button1 = Gtk.RadioButton()\n"
+"button1.set_label(\"Knapp 1\")."
 
 #. (itstool) path: section/p
 #: C/radiobutton.py.page:42
@@ -25846,6 +28560,9 @@ msgid ""
 "\"Button 1\")</code> (the first argument is the group of the radiobuttons, which we can get with "
 "<code>get_group()</code>, the second argument is the label)."
 msgstr ""
+"Ännu ett annat sätt att skapa en ny RadioButton med en etikett är <code>button1 = Gtk.RadioButton."
+"new_with_label(None, \"Knapp 1\")</code> (det första argumentet är radioknapparnas grupp, vilken vi kan få 
med "
+"<code>get_group()</code>, det andra argumentet är etiketten)."
 
 #. (itstool) path: item/p
 #: C/radiobutton.py.page:51
@@ -26004,12 +28721,16 @@ msgstr ""
 "Välj <gui>Allmän Javascript</gui> från fliken <gui>JS</gui>, klicka på <gui>Framåt</gui>, och fyll i dina 
detaljer "
 "på de nästkommande sidorna. Använd <file>record-collection</file> som projektnamn och katalog."
 
+# TODO: Finished -> Apply ?
+# <gui>File</gui> -> <gui>Files</gui>
 #. (itstool) path: item/p
 #: C/record-collection.js.page:63
 msgid ""
 "Click <gui>Finished</gui> and the project will be created for you. Open <file>src/main.js</file> from the "
 "<gui>Project</gui> or <gui>File</gui> tabs. It contains very basic example code."
 msgstr ""
+"Klicka på <gui>Färdig</gui> så kommer projektet skapas åt dig. Öppna <file>src/main.js</file> från flikarna 
"
+"<gui>Projekt</gui> eller <gui>Filer</gui>. Den innehåller väldigt enkel exempelkod."
 
 #. (itstool) path: section/title
 #: C/record-collection.js.page:69
@@ -26106,6 +28827,8 @@ msgid ""
 "Lines 1‒4: Initial imports. Pay special attention to line 3, which tells Javascript to import the GDA 
library, our "
 "focus in this tutorial."
 msgstr ""
+"Rad 1‒4: Initiala importer. Var särskilt uppmärksam på rad 3, som säger till Javascript att importera GDA-"
+"biblioteket, vårt fokus i denna handledning."
 
 #. (itstool) path: item/p
 #: C/record-collection.js.page:104
@@ -26113,6 +28836,8 @@ msgid ""
 "Lines 6‒17: Define our <code>Demo</code> class. Pay special attention to lines 13‒15, where we call 3 
methods "
 "which will do the whole job. They will be detailed below."
 msgstr ""
+"Rad 6‒17: Definiera vår klass <code>Demo</code>. Var särskilt uppmärksam på rad 13‒15, där vi anropar tre 
metoder "
+"som gör hela jobbet. De kommer beskrivas i detalj nedan."
 
 #. (itstool) path: item/p
 #: C/record-collection.js.page:105
@@ -26130,6 +28855,8 @@ msgid ""
 "Let's take a look at the <code>setupWindow</code> method. It is responsible for creating the User Interface 
(UI). "
 "As UI is not our focus, we will explain only the relevant parts."
 msgstr ""
+"Låt oss ta en titt på metoden <code>setupWindow</code>. Den ansvarar för att skapa användargränssnittet 
(UI). Då "
+"UI inte är vårt fokus kommer vi endast förklara de relevanta delarna."
 
 #. (itstool) path: section/code
 #: C/record-collection.js.page:112
@@ -26203,7 +28930,7 @@ msgstr ""
 #. (itstool) path: item/p
 #: C/record-collection.js.page:164
 msgid "Line 39: Create the widget (<code>TextView</code>) where we will show the contents of the table."
-msgstr ""
+msgstr "Rad 39: Skapa komponenten (<code>TextView</code>) där vi kommer visa tabellens innehåll."
 
 #. (itstool) path: item/p
 #: C/record-collection.js.page:165
@@ -26220,7 +28947,7 @@ msgstr "Ansluta till och initiera databasen"
 #. (itstool) path: section/p
 #: C/record-collection.js.page:171
 msgid "The code which makes the connection to the database is in the <code>setupDatabase</code> method 
below:"
-msgstr ""
+msgstr "Koden som skapar anslutningen till databasen är i metoden <code>setupDatabase</code> nedan:"
 
 #. (itstool) path: section/code
 #: C/record-collection.js.page:174
@@ -26487,7 +29214,7 @@ msgstr ""
 #. (itstool) path: item/p
 #: C/record-collection.js.page:284
 msgid "Line 12: Finally, execute the SQL statement (<code>INSERT</code>)."
-msgstr ""
+msgstr "Rad 12: Exekvera slutligen SQL-satsen (<code>INSERT</code>)."
 
 #. (itstool) path: item/p
 #: C/record-collection.js.page:285
@@ -26565,7 +29292,7 @@ msgstr "ResponseType.DELETE_EVENT = -4"
 #. (itstool) path: item/p
 #: C/response-type.page:34
 msgid "Returned if the dialog is deleted"
-msgstr ""
+msgstr "Returneras om dialogrutan tas bort"
 
 #. (itstool) path: item/title
 #: C/response-type.page:37
@@ -26922,6 +29649,30 @@ msgid ""
 "        this._buildUI ();\n"
 "    },\n"
 msgstr ""
+"\n"
+"const ScaleExample = new Lang.Class({\n"
+"    Name: 'Scale-exempel',\n"
+"\n"
+"    // Skapa programmet i sig\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application({\n"
+"            application_id: 'org.example.jsscale'\n"
+"        });\n"
+"\n"
+"    // Anslut ”activate”- och ”startup”-signaler till återanropsfunktionerna\n"
+"    this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"    this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Återanropsfunktion för ”activate”-signal, visar fönstret när den aktiveras\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    // Återanropsfunktion för ”startup”-signal bygger användargränssnittet\n"
+"    _onStartup: function() {\n"
+"        this._buildUI ();\n"
+"    },\n"
 
 #. (itstool) path: section/p
 #: C/scale.js.page:66
@@ -26948,6 +29699,16 @@ msgid ""
 "            border_width: 20,\n"
 "            title: \"Birds on a Floe\"});\n"
 msgstr ""
+"\n"
+"    // Bygg programmets användargränssnitt\n"
+"    _buildUI: function() {\n"
+"\n"
+"        // Skapa programfönstret\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            border_width: 20,\n"
+"            title: \"Fåglar på ett isflak\"});\n"
 
 #. (itstool) path: section/title
 #: C/scale.js.page:82
@@ -27079,6 +29840,18 @@ msgid ""
 "        this._UIGrid.attach (this._hScale, 0, 1, 1, 1);\n"
 "        this._UIGrid.attach (this._vScale, 1, 0, 1, 1);\n"
 msgstr ""
+"\n"
+"        // Skapa ett rutnät att arrangera saker i\n"
+"        this._UIGrid = new Gtk.Grid ({\n"
+"            halign: Gtk.Align.CENTER,\n"
+"            valign: Gtk.Align.CENTER,\n"
+"            margin_top: 20,\n"
+"            margin_left: 20});\n"
+"\n"
+"        // Fäst allting till rutnätet\n"
+"        this._UIGrid.attach (this._label, 0, 0, 1, 1);\n"
+"        this._UIGrid.attach (this._hScale, 0, 1, 1, 1);\n"
+"        this._UIGrid.attach (this._vScale, 1, 0, 1, 1);\n"
 
 #. (itstool) path: section/p
 #: C/scale.js.page:149
@@ -27086,6 +29859,9 @@ 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 ""
+"Här skapar vi en <link xref=\"grid.js\">Grid</link> att stoppa allting i, och fäster sedan alla våra 
komponenter "
+"till den. Observera att här och på några av komponenterna själva använder vi marginaler för att få saker 
att hålla "
+"bra avstånd."
 
 #. (itstool) path: section/code
 #: C/scale.js.page:150
@@ -27099,11 +29875,20 @@ msgid ""
 "        this._window.show_all();\n"
 "    },\n"
 msgstr ""
+"\n"
+"        // Lägg till rutnätet till fönstret\n"
+"        this._window.add (this._comboBoxText);\n"
+"\n"
+"        // Visa fönstret och alla barnkomponenter\n"
+"        this._window.show_all();\n"
+"    },\n"
 
 #. (itstool) path: section/p
 #: C/scale.js.page:158
 msgid "Finally, we add the Grid to the window, then tell the window to show itself and all the widgets 
inside of it."
 msgstr ""
+"Slutligen lägger vi till vår Grid till fönstret, och säger sedan till fönstret att visa sig själv och alla "
+"komponenterna i det."
 
 #. (itstool) path: section/title
 #: C/scale.js.page:162
@@ -27507,6 +30292,8 @@ msgid ""
 "<link href=\"http://developer.gnome.org/gtk3/unstable/gtk3-Standard-Enumerations.html\";>Standard 
Enumerations</"
 "link>"
 msgstr ""
+"<link 
href=\"http://developer.gnome.org/gtk3/unstable/gtk3-Standard-Enumerations.html\";>Standarduppräkningstyper</"
+"link>"
 
 #. (itstool) path: info/title
 #: C/scale.vala.page:8
@@ -27601,7 +30388,7 @@ msgstr "ScrolledWindow (C)"
 #. (itstool) path: info/desc
 #: C/scrolledwindow.c.page:20 C/scrolledwindow.js.page:18 C/scrolledwindow.py.page:19 
C/scrolledwindow.vala.page:19
 msgid "Adds scrollbars to its child widget"
-msgstr ""
+msgstr "Lägger till rullningslister till sin barnkomponent"
 
 #. (itstool) path: page/title
 #: C/scrolledwindow.c.page:23 C/scrolledwindow.js.page:21 C/scrolledwindow.py.page:22 
C/scrolledwindow.vala.page:22
@@ -27621,7 +30408,7 @@ msgstr "external ref='media/scrolledwindow.png' md5='697bb3205d5c4fb0b4ea8db4358
 #. (itstool) path: page/p
 #: C/scrolledwindow.c.page:26 C/scrolledwindow.js.page:23 C/scrolledwindow.py.page:24 
C/scrolledwindow.vala.page:24
 msgid "An image in a scrolled window."
-msgstr ""
+msgstr "En bild i ett rullat fönster."
 
 #. (itstool) path: page/code
 #: C/scrolledwindow.c.page:28
@@ -27912,6 +30699,29 @@ msgid ""
 "\treturn new MyApplication ().run (args);\n"
 "}\n"
 msgstr ""
+"/* Det här är programmet. */\n"
+"public class MyApplication : Gtk.Application {\n"
+"\t/* Åsidosätt ”activate”-signalen för GLib.Application. */\n"
+"\tprotected override void activate () {\n"
+"\t\t/* Skapa fönstret för detta program. */\n"
+"\t\tvar window = new Gtk.ApplicationWindow (this);\n"
+"\t\twindow.title = \"ScrolledWindow-exempel\";\n"
+"\t\twindow.set_default_size (200, 200);\n"
+"\n"
+"\t\tvar scrolled_window = new Gtk.ScrolledWindow (null, null);\n"
+"\t\tscrolled_window.set_border_width (10);\n"
+"\t\tscrolled_window.add_with_viewport (new Gtk.Image.from_file (\"gnome-image.png\"));\n"
+"\t\tscrolled_window.set_policy (Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC);\n"
+"\n"
+"\t\twindow.add (scrolled_window);\n"
+"\t\twindow.show_all ();\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* main skapar och kör programmet. */\n"
+"public int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
 
 #. (itstool) path: item/p
 #: C/scrolledwindow.vala.page:31 C/textview.vala.page:37
@@ -27932,7 +30742,7 @@ msgstr "Separator (C)"
 #. (itstool) path: info/desc
 #: C/separator.c.page:19 C/separator.py.page:20 C/separator.vala.page:21
 msgid "A separator widget"
-msgstr ""
+msgstr "En avskiljarkomponent"
 
 #. (itstool) path: page/title
 #: C/separator.c.page:22 C/separator.py.page:23 C/separator.vala.page:24
@@ -27952,7 +30762,7 @@ msgstr "external ref='media/separator.png' md5='8769b27662ce5c77f99e9ce33751a21a
 #. (itstool) path: page/p
 #: C/separator.c.page:25 C/separator.py.page:26 C/separator.vala.page:27
 msgid "A horizontal and a vertical separator divide some labels."
-msgstr ""
+msgstr "En horisontell och en vertikal avskiljare delar på några etiketter."
 
 #. (itstool) path: section/code
 #: C/separator.c.page:31
@@ -28010,6 +30820,57 @@ msgid ""
 "  return status;\n"
 "}\n"
 msgstr ""
+"#include &lt;gtk/gtk.h&gt;\n"
+"\n"
+"static void\n"
+"activate (GtkApplication *app,\n"
+"          gpointer        user_data)\n"
+"{\n"
+"  GtkWidget *grid;\n"
+"  GtkWidget *window;\n"
+"  GtkWidget *label1;\n"
+"  GtkWidget *label2;\n"
+"  GtkWidget *label3;\n"
+"  GtkWidget *hseparator;\n"
+"  GtkWidget *vseparator;\n"
+"\n"
+"  window = gtk_application_window_new (app);\n"
+"  gtk_window_set_title (GTK_WINDOW (window), \"Separator-exempel\");\n"
+"\n"
+"  label1 = gtk_label_new (\"Nedan, en horisontell avskiljare.\");\n"
+"  label2 = gtk_label_new (\"Till höger, en vertikal avskiljare.\");\n"
+"  label3 = gtk_label_new (\"Till vänster, en vertikal avskiljare.\");\n"
+"\n"
+"  vseparator = gtk_separator_new (GTK_ORIENTATION_VERTICAL);\n"
+"  hseparator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL);\n"
+"\n"
+"  grid = gtk_grid_new ();\n"
+"\n"
+"  gtk_grid_attach (GTK_GRID (grid), label1, 0, 0, 3, 1);\n"
+"  gtk_grid_attach (GTK_GRID (grid), hseparator, 0, 1, 3, 1);\n"
+"  gtk_grid_attach (GTK_GRID (grid), label2, 0, 2, 1, 1);\n"
+"  gtk_grid_attach (GTK_GRID (grid), vseparator, 1, 2, 1, 1);\n"
+"  gtk_grid_attach (GTK_GRID (grid), label3, 2, 2, 1, 1);\n"
+"\n"
+"  gtk_grid_set_column_homogeneous (GTK_GRID (grid), TRUE);\n"
+"\n"
+"  gtk_container_add (GTK_CONTAINER (window), grid);\n"
+"\n"
+"  gtk_widget_show_all (window);\n"
+"}\n"
+"\n"
+"int\n"
+"main (int argc, char **argv)\n"
+"{\n"
+"  GtkApplication *app;\n"
+"  int status;\n"
+"\n"
+"  app = gtk_application_new (\"org.gtk.example\", G_APPLICATION_FLAGS_NONE);\n"
+"  g_signal_connect (app, \"activate\", G_CALLBACK (activate), NULL);\n"
+"  status = g_application_run (G_APPLICATION (app), argc, argv);\n"
+"  g_object_unref (app);\n"
+"  return status;\n"
+"}\n"
 
 #. (itstool) path: section/title
 #: C/separator.c.page:35 C/separator.py.page:36 C/separator.vala.page:37
@@ -28135,6 +30996,49 @@ msgid ""
 "\treturn app.run (args);\n"
 "}\n"
 msgstr ""
+"/* Det här är programmet. */\n"
+"public class Application : Gtk.Application {\n"
+"\n"
+"\tpublic Application () {\n"
+"\t\tObject (application_id: \"org.example.window\");\n"
+"\t}\n"
+"\n"
+"\t/* Åsidosätt ”activate”-signalen för GLib.Application,\n"
+"\t * vilken ärvs av Gtk.Application. */\n"
+"\tpublic override void activate () {\n"
+"\n"
+"\t\tvar window = new Gtk.Window ();\n"
+"\t\twindow.title = \"Separator-exempel\";\n"
+"\n"
+"\t\tvar label1 = new Gtk.Label (\"Nedan, en horisontell avskiljare.\");\n"
+"\t\tvar label2 = new Gtk.Label (\"Till höger, en vertikal avskiljare.\");\n"
+"\t\tvar label3 = new Gtk.Label (\"Till vänster, en vertikal avskiljare.\");\n"
+"\n"
+"\t\tvar hseparator = new Gtk.Separator (Gtk.Orientation.HORIZONTAL);\n"
+"\t\tvar vseparator = new Gtk.Separator (Gtk.Orientation.VERTICAL);\n"
+"\n"
+"\t\tvar grid = new Gtk.Grid();\n"
+"\n"
+"\t\tgrid.attach (label1, 0, 0, 3, 1);\n"
+"\t\tgrid.attach (hseparator, 0, 1, 3, 1);\n"
+"\t\tgrid.attach (label2, 0, 2, 1, 1);\n"
+"\t\tgrid.attach (vseparator, 1, 2, 1, 1);\n"
+"\t\tgrid.attach (label3, 2, 2, 1, 1);\n"
+"\n"
+"\t\tgrid.set_column_homogeneous(true);\n"
+"\n"
+"\t\twindow.add (grid);\n"
+"\t\tthis.add_window (window);\n"
+"\n"
+"\t\twindow.show_all ();\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* main-funktionen skapar programmet och kör det.*/\n"
+"int main (string[] args) {\n"
+"\tvar app = new Application ();\n"
+"\treturn app.run (args);\n"
+"}\n"
 
 #. (itstool) path: item/p
 #: C/separator.vala.page:41
@@ -28346,7 +31250,7 @@ msgstr "SpinButton (C)"
 #. (itstool) path: info/desc
 #: C/spinbutton.c.page:21
 msgid "Retrieve an integer or floating point number"
-msgstr ""
+msgstr "Erhåll ett heltal eller ett flyttal"
 
 #. (itstool) path: page/title
 #: C/spinbutton.c.page:24 C/spinbutton.js.page:24 C/spinbutton.py.page:23 C/spinbutton.vala.page:23
@@ -28366,7 +31270,7 @@ msgstr "external ref='media/spinbutton.png' md5='993cbb7d9bd271a329727a926195712
 #. (itstool) path: page/p
 #: C/spinbutton.c.page:27 C/spinbutton.py.page:25 C/spinbutton.vala.page:25
 msgid "Choose a number, by entering it or by clicking on the -/+ buttons!"
-msgstr ""
+msgstr "Välj ett tal genom att mata in det eller genom att klicka på knapparna -/+!"
 
 #. (itstool) path: page/code
 #: C/spinbutton.c.page:29
@@ -28483,7 +31387,7 @@ msgstr "SpinButton (Javascript)"
 #. (itstool) path: info/desc
 #: C/spinbutton.js.page:21
 msgid "A number entry field that has + and - buttons"
-msgstr ""
+msgstr "Ett talinmatningsfält som har knapparna + och -"
 
 #. (itstool) path: page/media
 #. This is a reference to an external file such as an image or video. When
@@ -28502,6 +31406,9 @@ msgid ""
 "accepts numbers, and which has plus and minus buttons to let you change the value without having to type 
anything "
 "in."
 msgstr ""
+"En SpinButton är inte relaterad till en <link xref=\"spinner.js\">Spinner</link>. Den är ett 
textinmatningsfält "
+"som bara accepterar tal, och som har plus- och minus-knappar för att låta dig ändra värdet utan att behöva 
skriva "
+"in något."
 
 #. (itstool) path: page/p
 #: C/spinbutton.js.page:27
@@ -28539,6 +31446,30 @@ msgid ""
 "        this._buildUI ();\n"
 "    },\n"
 msgstr ""
+"\n"
+"const SpinButtonExample = new Lang.Class({\n"
+"    Name: 'SpinButton-exempel',\n"
+"\n"
+"    // Skapa programmet i sig\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application({\n"
+"            application_id: 'org.example.jsspinbutton'\n"
+"        });\n"
+"\n"
+"    // Anslut ”activate”- och ”startup”-signaler till återanropsfunktionerna\n"
+"    this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"    this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Återanropsfunktion för ”activate”-signal, visar fönstret när den aktiveras\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    // Återanropsfunktion för ”startup”-signal bygger användargränssnittet\n"
+"    _onStartup: function() {\n"
+"        this._buildUI ();\n"
+"    },\n"
 
 #. (itstool) path: section/p
 #: C/spinbutton.js.page:69
@@ -28565,6 +31496,16 @@ msgid ""
 "            border_width: 20,\n"
 "            title: \"Kitten Feeder\"});\n"
 msgstr ""
+"\n"
+"    // Bygg programmets användargränssnitt\n"
+"    _buildUI: function() {\n"
+"\n"
+"        // Skapa programfönstret\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            border_width: 20,\n"
+"            title: \"Kattmatare\"});\n"
 
 #. (itstool) path: section/title
 #: C/spinbutton.js.page:85
@@ -28580,6 +31521,10 @@ msgid ""
 "        this._kittens = Gtk.SpinButton.new_with_range (1, 9001, 1);\n"
 "        this._kittens.connect (\"value-changed\", Lang.bind (this, this._newValue));\n"
 msgstr ""
+"\n"
+"        // Skapa den första stegningsrutan med en funktion\n"
+"        this._kittens = Gtk.SpinButton.new_with_range (1, 9001, 1);\n"
+"        this._kittens.connect (\"value-changed\", Lang.bind (this, this._newValue));\n"
 
 #. (itstool) path: section/p
 #: C/spinbutton.js.page:92
@@ -28616,6 +31561,21 @@ msgid ""
 "        // this._tuna.set_digits (1);\n"
 "        // this._tuna.set_wrap (true);\n"
 msgstr ""
+"\n"
+"        // Skapa en justering att använda för den andra stegningsrutan\n"
+"        this._adjustment = new Gtk.Adjustment ({\n"
+"            value: 1,\n"
+"            lower: 0,\n"
+"            upper: 9001,\n"
+"            step_increment: 1,\n"
+"            page_increment: 10 });\n"
+"\n"
+"        // skapa den andra stegningsrutan\n"
+"        this._tuna = new Gtk.SpinButton ({ adjustment: this._adjustment });\n"
+"        this._tuna.connect (\"value-changed\", Lang.bind (this, this._newValue));\n"
+"\n"
+"        // this._tuna.set_digits (1);\n"
+"        // this._tuna.set_wrap (true);\n"
 
 #. (itstool) path: section/p
 #: C/spinbutton.js.page:112
@@ -28638,12 +31598,12 @@ msgstr ""
 #. (itstool) path: note/p
 #: C/spinbutton.js.page:114
 msgid "For the kitties' sake, please don't use set_digits to allow a decimal number of kittens."
-msgstr ""
+msgstr "Var snäll mot kattungarna, använd inte set_digits så att decimalkatter är tillåtna."
 
 #. (itstool) path: section/title
 #: C/spinbutton.js.page:118
 msgid "Creating the rest of the UI"
-msgstr ""
+msgstr "Skapa resten av användargränssnittet"
 
 #. (itstool) path: section/code
 #: C/spinbutton.js.page:120
@@ -28696,13 +31656,38 @@ msgid ""
 "        this._mainGrid.attach (this._spinGrid, 0, 0, 1, 1);\n"
 "        this._mainGrid.attach (this._lastLabel, 0, 1, 1, 1);\n"
 msgstr ""
+"\n"
+"        // Skapa ett rutnät att stoppa stegningsrutorna och deras etiketter i\n"
+"        this._spinGrid = new Gtk.Grid ({\n"
+"            halign: Gtk.Align.CENTER,\n"
+"            valign: Gtk.Align.CENTER,\n"
+"            margin_bottom: 20 });\n"
+"\n"
+"        // Fäst allting vid rutnätet\n"
+"        this._spinGrid.attach (this._startLabel, 0, 0, 1, 1);\n"
+"        this._spinGrid.attach (this._kittens, 1, 0, 1, 1);\n"
+"        this._spinGrid.attach (this._kittenLabel, 2, 0, 1, 1);\n"
+"        this._spinGrid.attach (this._tuna, 3, 0, 1, 1);\n"
+"        this._spinGrid.attach (this._tunaLabel, 4, 0, 1, 1);\n"
+"\n"
+"        // Skapa ett huvudrutnät för att hålla det och den sista etiketten\n"
+"        this._mainGrid = new Gtk.Grid ({\n"
+"            halign: Gtk.Align.CENTER,\n"
+"            valign: Gtk.Align.CENTER });\n"
+"\n"
+"        // Fäst det mindre rutnätet och den sista etiketten vid huvudrutnätet\n"
+"        this._mainGrid.attach (this._spinGrid, 0, 0, 1, 1);\n"
+"        this._mainGrid.attach (this._lastLabel, 0, 1, 1, 1);\n"
 
 #. (itstool) path: section/p
 #: C/spinbutton.js.page:155
+#, fuzzy
 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 ""
+"Här använder vi <link xref=\"grid.js\">Grid</link>-komponenter för att hålla allt i ordning. En Grid håller 
"
+"etiketterna och SpinButton i ordning, medan nästa stoppar denna Grid överst och den slutgiltiga Labeln 
längst ner."
 
 #. (itstool) path: section/p
 #: C/spinbutton.js.page:156
@@ -28724,6 +31709,13 @@ msgid ""
 "        this._window.show_all();\n"
 "    },\n"
 msgstr ""
+"\n"
+"        // Lägg till huvudrutnätet till fönstret\n"
+"        this._window.add (this._mainGrid);\n"
+"\n"
+"        // Visa fönstret och alla barnkomponenter\n"
+"        this._window.show_all();\n"
+"    },\n"
 
 #. (itstool) path: section/p
 #: C/spinbutton.js.page:166 C/switch.js.page:154
@@ -28731,6 +31723,8 @@ 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 ""
+"Slutligen lägger vi till vår större Grid till fönstret, och säger sedan till fönstret att visa sig själv 
och alla "
+"komponenterna i det."
 
 #. (itstool) path: section/title
 #: C/spinbutton.js.page:170
@@ -28906,7 +31900,7 @@ msgstr "SpinButton (Python)"
 #. (itstool) path: info/desc
 #: C/spinbutton.py.page:20
 msgid "Retrieve an integer or floating-point number from the user."
-msgstr ""
+msgstr "Erhåll ett heltal eller ett flyttal från användaren."
 
 #. (itstool) path: section/code
 #: C/spinbutton.py.page:31
@@ -29002,20 +31996,24 @@ msgstr ""
 
 #. (itstool) path: item/p
 #: C/spinbutton.py.page:39
+#, fuzzy
 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 ""
+"Om du vill att stegningsrutans värde ska börja om från början då den överstigit maximum eller minimum, 
ställ in "
+"<code>set_wrap(True)</code>. Signalen <code>\"wrapped\"</code> skickas då detta händer."
 
 #. (itstool) path: item/p
 #: C/spinbutton.py.page:40
 msgid "<code>set_digits(digits)</code> sets the precision to be displayed by the spinbutton, up to 20 
digits."
 msgstr ""
+"<code>set_digits(siffror)</code> ställer in precisionen som ska visas av stegningsrutan, upp till 20 
siffror."
 
 #. (itstool) path: item/p
 #: C/spinbutton.py.page:41
 msgid "To get the value of the spinbutton as an integer, use <code>get_value_as_int()</code>."
-msgstr ""
+msgstr "För att få värdet hos stegningsrutan som ett heltal, använd <code>get_value_as_int()</code>."
 
 #. (itstool) path: item/p
 #: C/spinbutton.py.page:49
@@ -29031,7 +32029,7 @@ msgstr "SpinButton (Vala)"
 #. (itstool) path: info/desc
 #: C/spinbutton.vala.page:20
 msgid "Retrieve an integer or floating point number."
-msgstr ""
+msgstr "Erhåll ett heltal eller ett flyttal."
 
 #. (itstool) path: page/code
 #: C/spinbutton.vala.page:27
@@ -29073,6 +32071,41 @@ msgid ""
 "\treturn new MyApplication ().run (args);\n"
 "}\n"
 msgstr ""
+"/* Det här är programmet. */\n"
+"public class MyApplication : Gtk.Application {\n"
+"\tGtk.Label label;\n"
+"\n"
+"\t/* Åsidosätt ”activate”-signalen för GLib.Application. */\n"
+"\tprotected override void activate () {\n"
+"\t\tvar window = new Gtk.ApplicationWindow (this);\n"
+"\t\twindow.title = \"SpinButton-exempel\";\n"
+"\t\twindow.set_default_size (210, 70);\n"
+"\t\twindow.set_border_width (5);\n"
+"\n"
+"\t\tvar spinbutton = new Gtk.SpinButton.with_range (0, 100, 1);\n"
+"\t\tspinbutton.set_hexpand (true);\n"
+"\n"
+"\t\tlabel = new Gtk.Label (\"Välj ett tal\");\n"
+"\n"
+"\t\tvar grid = new Gtk.Grid ();\n"
+"\t\tgrid.attach (spinbutton, 0, 0, 1, 1);\n"
+"\t\tgrid.attach (label, 0, 1, 1, 1);\n"
+"\n"
+"\t\tspinbutton.value_changed.connect (this.value_changed_cb);\n"
+"\n"
+"\t\twindow.add (grid);\n"
+"\t\twindow.show_all ();\n"
+"\t}\n"
+"\n"
+"\tvoid value_changed_cb (Gtk.SpinButton spin) {\n"
+"\t\tlabel.set_text (\"Talet du valde är %.0f.\".printf (spin.get_value()));\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* main skapar och kör programmet. */\n"
+"public int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
 
 #. (itstool) path: item/p
 #: C/spinbutton.vala.page:32
@@ -29310,7 +32343,7 @@ msgstr ""
 #. (itstool) path: item/p
 #: C/spinner.js.page:30
 msgid "<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gdk.html\";>Gdk - Key Values</link>"
-msgstr ""
+msgstr "<link href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gdk.html\";>Gdk - Tangentvärden</link>"
 
 #. (itstool) path: item/p
 #: C/spinner.js.page:33 C/togglebutton.js.page:158
@@ -29397,10 +32430,11 @@ msgstr ""
 msgid "<link href=\"http://developer.gnome.org/gtk3/unstable/GtkSpinner.html\";>GtkSpinner</link>"
 msgstr "<link href=\"http://developer.gnome.org/gtk3/unstable/GtkSpinner.html\";>GtkSpinner</link>"
 
+# TODO: Dead link
 #. (itstool) path: item/p
 #: C/spinner.py.page:43
 msgid "<link href=\"http://developer.gnome.org/gdk/stable/gdk-Keyboard-Handling.html\";>Key Values</link>"
-msgstr ""
+msgstr "<link href=\"http://developer.gnome.org/gdk/stable/gdk-Keyboard-Handling.html\";>Tangentvärden</link>"
 
 #. (itstool) path: info/title
 #: C/spinner.vala.page:8
@@ -29751,6 +32785,31 @@ msgid ""
 "        this._buildUI ();\n"
 "    },\n"
 msgstr ""
+"\n"
+"const StatusbarExample = new Lang.Class({\n"
+"    Name: 'Statusbar-exempel',\n"
+"\n"
+"    // Skapa programmet i sig\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application({\n"
+"            application_id: 'org.example.jsstatusbar',\n"
+"            flags: Gio.ApplicationFlags.FLAGS_NONE\n"
+"        });\n"
+"\n"
+"    // Anslut ”activate”- och ”startup”-signaler till återanropsfunktionerna\n"
+"    this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"    this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Återanropsfunktion för ”activate”-signal, visar fönstret när den aktiveras\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    // Återanropsfunktion för ”startup”-signal bygger användargränssnittet\n"
+"    _onStartup: function() {\n"
+"        this._buildUI ();\n"
+"    },\n"
 
 #. (itstool) path: section/p
 #: C/statusbar.js.page:67
@@ -29782,9 +32841,27 @@ msgid ""
 "        this._panes = new Gtk.Paned ({\n"
 "            orientation: Gtk.Orientation.VERTICAL });\n"
 msgstr ""
+"\n"
+"    // Bygg programmets användargränssnitt\n"
+"    _buildUI: function() {\n"
+"\n"
+"        // Skapa programfönstret\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            default_height: 120,\n"
+"            default_width: 300,\n"
+"            title: \"Knappklickare\"});\n"
+"\n"
+"        // Skapa ett gränssnitt med paneler\n"
+"        this._panes = new Gtk.Paned ({\n"
+"            orientation: Gtk.Orientation.VERTICAL });\n"
 
+# TODO: wrong link. Should be
+# "GtkApplicationWindow.js" without ".page".
 #. (itstool) path: section/p
 #: C/statusbar.js.page:84
+#, fuzzy
 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 "
@@ -29792,6 +32869,11 @@ msgid ""
 "sections. This way the statusbar looks like those used in other applications, and it stays at the bottom of 
the "
 "window, even if the user resizes it."
 msgstr ""
+"_buildUI-funktionen är var vi stoppar all kod för att skapa programmets användargränssnitt. Det första 
steget är "
+"att skapa ett nytt <link href=\"GtkApplicationWindow.js.page\">Gtk.ApplicationWindow</link> att stoppa alla 
våra "
+"komponenter i. Nästa steg är att skapa ett vertikalt orienterat Gtk.Paned-gränssnitt, för att dela upp 
fönstret i "
+"två delar. På detta sätt ser statusraden ut som de som används i andra program, och stannar längst ner i 
fönstret "
+"även om användaren ändrar storlek på det."
 
 #. (itstool) path: section/title
 #: C/statusbar.js.page:88
@@ -29820,7 +32902,26 @@ msgid ""
 "            use_stock: true });\n"
 "        this._clearButton.connect (\"clicked\", Lang.bind (this, this._clear));\n"
 msgstr ""
+"\n"
+"        // Skapa huvudknappen\n"
+"        this._clickMe = new Gtk.Button ({\n"
+"            label: \"Klicka på mig!\" });\n"
+"        this._clickMe.connect (\"clicked\", Lang.bind (this, this._clicked));\n"
+"\n"
+"        // Skapa bakåtknappen\n"
+"        this._backButton = new Gtk.Button ({\n"
+"            label: \"gtk-go-back\",\n"
+"            use_stock: true });\n"
+"        this._backButton.connect (\"clicked\", Lang.bind (this, this._back));\n"
+"\n"
+"        // Skapa tömningsknappen\n"
+"        this._clearButton = new Gtk.Button ({\n"
+"            label: \"gtk-clear\",\n"
+"            use_stock: true });\n"
+"        this._clearButton.connect (\"clicked\", Lang.bind (this, this._clear));\n"
 
+# TODO: wrong link. Should be
+# "button.js" without ".page".
 #. (itstool) path: section/p
 #: C/statusbar.js.page:107
 msgid ""
@@ -29851,6 +32952,8 @@ msgid ""
 "        this._topFrame.add (this._grid);\n"
 msgstr ""
 
+# TODO: wrong link. Should be
+# "grid.js" and "paned.js" without ".page".
 #. (itstool) path: section/p
 #: C/statusbar.js.page:125
 msgid ""
@@ -29863,7 +32966,7 @@ msgstr ""
 #. (itstool) path: section/title
 #: C/statusbar.js.page:129
 msgid "Creating the statusbar"
-msgstr ""
+msgstr "Skapa statusraden"
 
 #. (itstool) path: section/code
 #: C/statusbar.js.page:130
@@ -29937,7 +33040,7 @@ msgstr ""
 #. (itstool) path: section/title
 #: C/statusbar.js.page:165
 msgid "Functions for interacting with the statusbar"
-msgstr ""
+msgstr "Funktioner för att interagera med statusraden"
 
 #. (itstool) path: section/code
 #: C/statusbar.js.page:166
@@ -30190,7 +33293,7 @@ msgstr "external ref='media/statusbar.png' md5='eb1aca55315d6cda57b12a5f36058ba8
 #. (itstool) path: page/p
 #: C/statusbar.py.page:25
 msgid "This statusbar tells you if you click the button or if you press any key (and which key)."
-msgstr ""
+msgstr "Denna statusrad säger till dig om du klickar på knappen eller trycker ner en tangent (och vilken 
tangent)."
 
 #. (itstool) path: section/code
 #: C/statusbar.py.page:32
@@ -30318,6 +33421,7 @@ msgstr "<link href=\"http://developer.gnome.org/gtk3/unstable/GtkStatusbar.html\
 #: C/statusbar.py.page:54
 msgid "<link href=\"https://developer.gnome.org/gdk3/stable/gdk3-Keyboard-Handling.html\";>Gdk - Key 
Values</link>"
 msgstr ""
+"<link href=\"https://developer.gnome.org/gdk3/stable/gdk3-Keyboard-Handling.html\";>Gdk - 
Tangentvärden</link>"
 
 #. (itstool) path: info/title
 #: C/statusbar.vala.page:8
@@ -30548,7 +33652,7 @@ msgstr ""
 #. (itstool) path: section/p
 #: C/strings.py.page:96
 msgid "Furthermore:"
-msgstr ""
+msgstr "Vidare skulle:"
 
 #. (itstool) path: section/code
 #: C/strings.py.page:98
@@ -30557,6 +33661,8 @@ msgid ""
 "\n"
 "&gt;&gt;&gt; txt == unicode_string"
 msgstr ""
+"\n"
+"&gt;&gt;&gt; txt == unicode_string"
 
 #. (itstool) path: section/p
 #: C/strings.py.page:101
@@ -30566,6 +33672,10 @@ msgid ""
 "get_text()</code> will always return a <code>str</code> instance; therefore, <code>txt</code> and "
 "<code>unicode_string</code> are not equal)."
 msgstr ""
+"returnera <code>False</code>, med varningen <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> "
+"kommer alltid returnera en <code>str</code>-instans; därför är <code>txt</code> och 
<code>unicode_string</code> "
+"inte lika)."
 
 #. (itstool) path: section/p
 #: C/strings.py.page:103
@@ -30596,6 +33706,8 @@ msgid ""
 "<link href=\"http://python-gtk-3-tutorial.readthedocs.org/en/latest/unicode.html\";>How To Deal With Strings 
- The "
 "Python GTK+ 3 Tutorial</link>"
 msgstr ""
+"<link href=\"http://python-gtk-3-tutorial.readthedocs.org/en/latest/unicode.html\";>Hur du hanterar strängar 
- GTK+ "
+"3-handledningen för Python</link>"
 
 #. (itstool) path: info/title
 #: C/switch.c.page:8
@@ -30636,7 +33748,7 @@ msgstr "external ref='media/switch_on.png' md5='95e8769f758c2d95ace0fa8ecf30b29d
 #. (itstool) path: page/p
 #: C/switch.c.page:25
 msgid "This switch toggles the title of the window."
-msgstr ""
+msgstr "Denna brytare växlar fönstrets titel."
 
 #. (itstool) path: page/code
 #: C/switch.c.page:27
@@ -30751,6 +33863,10 @@ msgid ""
 "\"https://live.gnome.org/TarynFox?action=AttachFile&amp;do=get&amp;target=Animal+Photos.zip\";>can be 
downloaded "
 "here</link>."
 msgstr ""
+"En Switch har två lägen, på och av. Detta exempel visar hur du kan använda flera brytare tillsammans för 
att styra "
+"vilken <link xref=\"image.js\">Image</link> som visas i fönstret. Bilderna som används i detta exempel 
<link href="
+"\"https://live.gnome.org/TarynFox?action=AttachFile&amp;do=get&amp;target=Animal+Photos.zip\";>kan hämtas 
här</"
+"link>."
 
 #. (itstool) path: note/p
 #: C/switch.js.page:24
@@ -30760,6 +33876,10 @@ msgid ""
 "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 ""
+"Fönstret kommer innehålla en ”trasig bild”-ikon istället för en bild om bildfiler med namnen 
<file>redfox.png</"
+"file>, <file>muteswan.png</file>, <file>fruitbat.png</file> och <file>gentoopenguin.png</file> inte finns i 
samma "
+"katalog. Du kan ändra koderna och bilderna som du vill, men de Creative Commons-licensierade fotona som 
används i "
+"detta exempel togs från följande källor och beskars till 640x425:"
 
 #. (itstool) path: item/p
 #: C/switch.js.page:26
@@ -30838,6 +33958,32 @@ msgid ""
 "        this._buildUI ();\n"
 "    },\n"
 msgstr ""
+"\n"
+"const SwitchExample = new Lang.Class({\n"
+"    Name: 'Switch-exempel',\n"
+"\n"
+"    // Skapa programmet i sig\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application({\n"
+"            application_id: 'org.example.jsswitch',\n"
+"            flags: Gio.ApplicationFlags.FLAGS_NONE\n"
+"        });\n"
+"\n"
+"    // Anslut ”activate”- och ”startup”-signaler till återanropsfunktionerna\n"
+"    this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"    this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Återanropsfunktion för ”activate”-signal, visar fönstret när den aktiveras\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    // Återanropsfunktion för ”startup”-signal skapar menyn och bygger användargränssnittet\n"
+"    _onStartup: function() {\n"
+"        this._initMenus();\n"
+"        this._buildUI ();\n"
+"    },\n"
 
 #. (itstool) path: section/p
 #: C/switch.js.page:75
@@ -30898,6 +34044,8 @@ 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 ""
+"Vi skapar först den <link xref=\"image.js\">Image</link> som brytarna kommer styra. Kom ihåg att en fil med 
namnet "
+"<file>redfox.png</file> behöver finnas i samma katalog som detta program."
 
 #. (itstool) path: section/code
 #: C/switch.js.page:100
@@ -30922,6 +34070,24 @@ msgid ""
 "        this._birdSwitch = new Gtk.Switch ({active: false});\n"
 "        this._birdSwitch.connect ('notify::active', Lang.bind (this, this._switchFlip));\n"
 msgstr ""
+"\n"
+"        // Skapa en etikett för den första brytaren\n"
+"        this._flyLabel = new Gtk.Label ({\n"
+"            label: \"Få den att flyga\",\n"
+"            margin_right: 30});\n"
+"\n"
+"        // Skapa den första brytaren och ställ in dess standardposition\n"
+"        this._flySwitch = new Gtk.Switch ({active: false});\n"
+"        this._flySwitch.connect ('notify::active', Lang.bind (this, this._switchFlip));\n"
+"\n"
+"        // Skapa en etikett för den andra brytaren\n"
+"        this._birdLabel = new Gtk.Label ({\n"
+"            label: \"Gör den till en fågel\",\n"
+"            margin_right: 30});\n"
+"\n"
+"        // Skapa den andra brytaren\n"
+"        this._birdSwitch = new Gtk.Switch ({active: false});\n"
+"        this._birdSwitch.connect ('notify::active', Lang.bind (this, this._switchFlip));\n"
 
 #. (itstool) path: section/p
 #: C/switch.js.page:120
@@ -30930,6 +34096,9 @@ msgid ""
 "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 ""
+"Vi använder en <link xref=\"label.js\">Label</link> för att märka varje Switch, och ger dem lite marginal 
till "
+"höger så de inte är ihopträngda just intill Switcharna. Efter det skapar vi Switcharna, och ställer in dem 
att "
+"vara avstängda som standard."
 
 #. (itstool) path: section/p
 #: C/switch.js.page:121
@@ -30939,6 +34108,10 @@ msgid ""
 "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 ""
+"Signalen som en brytare sänder ut när den slås på eller av kallas för notify::active. Efter att vi skapar 
varje "
+"brytare ansluter vi dess notify::active-signal till en funktion som kallas _switchFlip. Om du har flera 
brytare "
+"som gör olika saker, så kan du vilja ansluta dem till olika funktioner, men här används de båda för samma 
sak: att "
+"styra vilken bild som visas av _image."
 
 #. (itstool) path: section/code
 #: C/switch.js.page:123
@@ -30966,6 +34139,27 @@ msgid ""
 "        this._mainGrid.attach (this._image, 0, 0, 1, 1);\n"
 "        this._mainGrid.attach (this._UIGrid, 0, 1, 1, 1);\n"
 msgstr ""
+"\n"
+"        // Skapa ett rutnät för etiketterna och brytarna under bilden\n"
+"        this._UIGrid = new Gtk.Grid ({\n"
+"            halign: Gtk.Align.CENTER,\n"
+"            valign: Gtk.Align.CENTER,\n"
+"            margin_top: 20});\n"
+"\n"
+"        // Fäst etiketterna och brytarna vid det rutnätet\n"
+"        this._UIGrid.attach (this._flyLabel, 0, 0, 1, 1);\n"
+"        this._UIGrid.attach (this._flySwitch, 1, 0, 1, 1);\n"
+"        this._UIGrid.attach (this._birdLabel, 0, 1, 1, 1);\n"
+"        this._UIGrid.attach (this._birdSwitch, 1, 1, 1, 1);\n"
+"\n"
+"        // Skapa ett huvudrutnät att stoppa både användargränssnittet och bilden i\n"
+"        this._mainGrid = new Gtk.Grid ({\n"
+"            halign: Gtk.Align.CENTER,\n"
+"            valign: Gtk.Align.CENTER });\n"
+"\n"
+"        // Fäst bilden och användargränssnittsrutnätet vid huvudrutnätet\n"
+"        this._mainGrid.attach (this._image, 0, 0, 1, 1);\n"
+"        this._mainGrid.attach (this._UIGrid, 0, 1, 1, 1);\n"
 
 #. (itstool) path: section/p
 #: C/switch.js.page:145
@@ -30987,11 +34181,18 @@ msgid ""
 "        this._window.show_all();\n"
 "    },\n"
 msgstr ""
+"\n"
+"        // Lägg till huvudrutnätet till fönstret\n"
+"        this._window.add (this._mainGrid);\n"
+"\n"
+"        // Visa fönstret och alla barnkomponenter\n"
+"        this._window.show_all();\n"
+"    },\n"
 
 #. (itstool) path: section/title
 #: C/switch.js.page:158
 msgid "Function which handles the switches being flipped"
-msgstr ""
+msgstr "Funktion som hanterar att brytarna ändrar tillstånd"
 
 #. (itstool) path: section/code
 #: C/switch.js.page:160
@@ -31018,6 +34219,26 @@ msgid ""
 "\n"
 "    },\n"
 msgstr ""
+"\n"
+"    _switchFlip: function() {\n"
+"\n"
+"        // Ändra bilden beroende på vilka brytare som ändrar tillstånd\n"
+"        if (this._flySwitch.get_active()) {\n"
+"\n"
+"            if (this._birdSwitch.get_active()) this._image.set_from_file (\"muteswan.png\");\n"
+"\n"
+"            else this._image.set_from_file (\"fruitbat.png\");\n"
+"        }\n"
+"\n"
+"        else {\n"
+"\n"
+"            if (this._birdSwitch.get_active()) this._image.set_from_file (\"gentoopenguin.png\");\n"
+"\n"
+"            else this._image.set_from_file (\"redfox.png\");\n"
+"\n"
+"        }\n"
+"\n"
+"    },\n"
 
 #. (itstool) path: section/p
 #: C/switch.js.page:181
@@ -31393,6 +34614,66 @@ msgid ""
 "exit_status = app.run(sys.argv)\n"
 "sys.exit(exit_status)\n"
 msgstr ""
+"from gi.repository import Gtk\n"
+"import sys\n"
+"\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    # ett fönster\n"
+"\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"Switch-exempel\", application=app)\n"
+"        self.set_default_size(300, 100)\n"
+"        self.set_border_width(10)\n"
+"\n"
+"        # en brytare\n"
+"        switch = Gtk.Switch()\n"
+"        # påslagen som standard\n"
+"        switch.set_active(True)\n"
+"        # anslut signalen notify::active som utges av brytaren\n"
+"        # till återanropsfunktionen activate_cb\n"
+"        switch.connect(\"notify::active\", self.activate_cb)\n"
+"\n"
+"        # en etikett\n"
+"        label = Gtk.Label()\n"
+"        label.set_text(\"Titel\")\n"
+"\n"
+"        # ett rutnät för att allokera komponenterna\n"
+"        grid = Gtk.Grid()\n"
+"        grid.set_column_spacing(10)\n"
+"        grid.attach(label, 0, 0, 1, 1)\n"
+"        grid.attach(switch, 1, 0, 1, 1)\n"
+"\n"
+"        # lägg till rutnätet till fönstret\n"
+"        self.add(grid)\n"
+"\n"
+"    # Återanropsfunktion. Då signalen är notify::active\n"
+"    # behöver vi argumentet ”active”\n"
+"    def activate_cb(self, button, active):\n"
+"        # om knappen (d.v.s. brytaren) är aktiv, ställ in titeln\n"
+"        # på fönstret till \"Switch-exempel\"\n"
+"        if button.get_active():\n"
+"            self.set_title(\"Switch-exempel\")\n"
+"        # ställ annars in den till \"\" (tom sträng)\n"
+"        else:\n"
+"            self.set_title(\"\")\n"
+"\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
 
 #. (itstool) path: section/title
 #: C/switch.py.page:37
@@ -31424,7 +34705,7 @@ msgstr "Switch (Vala)"
 #. (itstool) path: page/p
 #: C/switch.vala.page:29
 msgid "This Switch toggles the title."
-msgstr ""
+msgstr "Denna Switch växlar titeln."
 
 #. (itstool) path: page/code
 #: C/switch.vala.page:31
@@ -31477,6 +34758,52 @@ msgid ""
 "\treturn new MyApplication ().run (args);\n"
 "}\n"
 msgstr ""
+"class MyWindow : Gtk.ApplicationWindow {\n"
+"\n"
+"\tinternal MyWindow (MyApplication app) {\n"
+"\t\tObject (application: app, title: \"Switch-exempel\");\n"
+"\n"
+"\t\tthis.set_default_size (300, 100);\n"
+"\t\tthis.border_width = 10;\n"
+"\n"
+"\t\tvar label = new Gtk.Label (\"Titel\");\n"
+"\t\tvar switcher = new Gtk.Switch ();\n"
+"\n"
+"\t\tswitcher.set_active (true);\n"
+"\n"
+"\t\tswitcher.notify[\"active\"].connect (switcher_cb);\n"
+"\n"
+"\t\tvar grid = new Gtk.Grid ();\n"
+"\t\tgrid.set_column_spacing (10);\n"
+"\t\tgrid.attach (label, 0, 0, 1, 1);\n"
+"\t\tgrid.attach (switcher, 1, 0, 1, 1);\n"
+"\n"
+"\t\tthis.add (grid);\n"
+"\t}\n"
+"\n"
+"\tvoid switcher_cb (Object switcher, ParamSpec pspec) {\n"
+"\t\tif ((switcher as Gtk.Switch).get_active())\n"
+"\t\t\tthis.set_title (\"Switch-exempel\");\n"
+"\t\telse\n"
+"\t\t\tthis.set_title (\"\");\n"
+"\t}\n"
+"}\n"
+"\n"
+"class MyApplication : Gtk.Application {\n"
+"\tprotected override void activate () {\n"
+"\n"
+"\t\tvar window = new MyWindow (this);\n"
+"\t\twindow.show_all (); //visa allting\n"
+"\t}\n"
+"\n"
+"\tinternal MyApplication () {\n"
+"\t\tObject (application_id: \"org.example.checkbutton\");\n"
+"\t}\n"
+"}\n"
+"\n"
+"int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
 
 #. (itstool) path: item/p
 #: C/switch.vala.page:36
@@ -31519,13 +34846,13 @@ msgstr ""
 msgid "If we write a long sentence, the text will wrap breaking lines between words."
 msgstr "Om vi skriver en lång mening kommer texten radbrytas mellan ord."
 
+# TODO: remove asterisk.
 #. (itstool) path: note/p
 #: C/textview.c.page:25
-#, fuzzy
 msgid ""
 "If we have a loooooooooooooooooooooooooooooooooooong (that was long) word, a* horizontal scrollbar will 
appear."
 msgstr ""
-"Om vi har ett låååååååååååååååååååååååååååååååååångt (det var långt) ord, så* kommer en horisontell 
rullningslist "
+"Om vi har ett låååååååååååååååååååååååååååååååååångt (det var långt) ord, så kommer en horisontell 
rullningslist "
 "att visas."
 
 #. (itstool) path: page/media
@@ -31663,6 +34990,8 @@ 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 ""
+"Längst ner är en <link 
href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.TextBuffer.html\";>TextBuffer</"
+"link>. Den innehåller själva texten."
 
 #. (itstool) path: item/p
 #: C/textview.js.page:30
@@ -31671,6 +35000,9 @@ msgid ""
 "\">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 ""
+"I mitten finns en <link 
href=\"http://www.roojs.org/seed/gir-1.2-gtk-3.0/gjs/Gtk.TextView.html\";>TextView</link>, "
+"som är en komponent som låter dig se och redigera texten i bufferten. Den ändrar automatiskt storlek på sig 
själv "
+"beroende på hur mycket text det är."
 
 #. (itstool) path: item/p
 #: C/textview.js.page:31
@@ -31696,6 +35028,9 @@ msgid ""
 "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 ""
+"Pingvinpopulationer i verkligheten minskar snabbt, eftersom klimatförändring smälter isen som de lever på 
och "
+"dödar fisken som de äter. Om du vill spela ett (aningen fånigt) GNOME-spel som är baserat på de premisserna 
kan du "
+"ta en titt på <link href=\"http://pingus.seul.org/\";>Pingus</link>."
 
 #. (itstool) path: section/code
 #: C/textview.js.page:50
@@ -31725,6 +35060,29 @@ msgid ""
 "        this._buildUI ();\n"
 "    },\n"
 msgstr ""
+"\n"
+"const TextViewExample = new Lang.Class ({\n"
+"    Name: 'TextView-exempel',\n"
+"\n"
+"    // Skapa programmet i sig\n"
+"    _init: function () {\n"
+"        this.application = new Gtk.Application ({\n"
+"            application_id: 'org.example.jstextview' });\n"
+"\n"
+"        // Anslut ”activate”- och ”startup”-signaler till återanropsfunktionerna\n"
+"        this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"        this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Återanropsfunktion för ”activate”-signal visar fönster när den aktiveras\n"
+"    _onActivate: function () {\n"
+"        this._window.present ();\n"
+"    },\n"
+"\n"
+"    // Återanropsfunktion för ”startup”-signal bygger användargränssnittet\n"
+"    _onStartup: function () {\n"
+"        this._buildUI ();\n"
+"    },\n"
 
 #. (itstool) path: section/p
 #: C/textview.js.page:74
@@ -31753,15 +35111,27 @@ msgid ""
 "            default_width: 440,\n"
 "            border_width: 20 });\n"
 msgstr ""
+"\n"
+"    // Bygg programmets användargränssnitt\n"
+"    _buildUI: function () {\n"
+"\n"
+"        // Skapa programfönstret\n"
+"        this._window = new Gtk.ApplicationWindow  ({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            title: \"Prata med en pingvin\",\n"
+"            default_height: 400,\n"
+"            default_width: 440,\n"
+"            border_width: 20 });\n"
 
 #. (itstool) path: section/title
 #: C/textview.js.page:92
 msgid "Creating the TextView"
-msgstr ""
+msgstr "Skapa vår TextView"
 
 #. (itstool) path: section/code
 #: C/textview.js.page:93
-#, no-wrap
+#, fuzzy, no-wrap
 msgid ""
 "\n"
 "        // Create a label for the penguin to talk to you\n"
@@ -31771,6 +35141,13 @@ msgid ""
 "            label: \"Squaaaak?\",\n"
 "            wrap: true });\n"
 msgstr ""
+"\n"
+"        // Skapa en etikett så pingvinen kan prata med dig\n"
+"        this._penguin = new Gtk.Label ({\n"
+"            height_request: 180,\n"
+"            width_request: 400,\n"
+"            label: \"Squaaaak?\",\n"
+"            wrap: true });\n"
 
 #. (itstool) path: section/p
 #: C/textview.js.page:102
@@ -31792,6 +35169,13 @@ msgid ""
 "            editable: true,\n"
 "            wrap_mode: Gtk.WrapMode.WORD });\n"
 msgstr ""
+"\n"
+"        // Skapa en textvy så att du kan prata med pingvinen\n"
+"        this.buffer = new Gtk.TextBuffer();\n"
+"        this._textView = new Gtk.TextView ({\n"
+"            buffer: this.buffer,\n"
+"            editable: true,\n"
+"            wrap_mode: Gtk.WrapMode.WORD });\n"
 
 #. (itstool) path: section/p
 #: C/textview.js.page:113
@@ -31849,11 +35233,20 @@ msgid ""
 "        this._grid.attach (this._penguin, 0, 0, 1, 1);\n"
 "        this._grid.attach (this._scrolled, 0, 1, 1, 1);\n"
 msgstr ""
+"\n"
+"        // Skapa ett rutnät att organisera dem i\n"
+"        this._grid = new Gtk.Grid ({\n"
+"            halign: Gtk.Align.CENTER,\n"
+"            valign: Gtk.Align.CENTER });\n"
+"\n"
+"        // Stoppa etiketten och textvyn i rutnätet, den ena ovanpå den andra\n"
+"        this._grid.attach (this._penguin, 0, 0, 1, 1);\n"
+"        this._grid.attach (this._scrolled, 0, 1, 1, 1);\n"
 
 #. (itstool) path: section/p
 #: C/textview.js.page:144
 msgid "The first <link xref=\"grid.js\">Grid</link> we create only has the Label and the ScrolledWindow 
inside it."
-msgstr ""
+msgstr "Den första <link xref=\"grid.js\">Grid</link> vi skapar har bara vår Label och vårt ScrolledWindow i 
sig."
 
 #. (itstool) path: section/code
 #: C/textview.js.page:146
@@ -31876,6 +35269,22 @@ msgid ""
 "        this._mainGrid.attach (this._grid, 0, 0, 1, 1);\n"
 "        this._mainGrid.attach (this._send, 0, 1, 1, 1);\n"
 msgstr ""
+"\n"
+"        // Skapa en knapp för att skicka ditt meddelande till pingvinen\n"
+"        this._send = new Gtk.Button ({\n"
+"            halign: Gtk.Align.END,\n"
+"            margin_top: 20,\n"
+"            label: \"Skicka\" });\n"
+"        this._send.connect ('clicked', Lang.bind (this, this._chat));\n"
+"\n"
+"        // Skapa ett rutnät som kommer ha det andra rutnätet överst och knappen nederst\n"
+"        this._mainGrid = new Gtk.Grid ({\n"
+"            halign: Gtk.Align.CENTER,\n"
+"            valign: Gtk.Align.CENTER });\n"
+"\n"
+"        // Lägg till det andra rutnätet och knappen till huvudrutnätet\n"
+"        this._mainGrid.attach (this._grid, 0, 0, 1, 1);\n"
+"        this._mainGrid.attach (this._send, 0, 1, 1, 1);\n"
 
 #. (itstool) path: section/p
 #: C/textview.js.page:163
@@ -31884,6 +35293,9 @@ msgid ""
 "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 ""
+"Vi skapar en <link xref=\"button.js\">Button</link> för att skicka ditt meddelande till pingvinen, och en 
ny Grid "
+"som har den andra överst och vår Button nederst. Denna Button har en marginal uppåt så att den inte trycks 
upp mot "
+"vårt ScrolledWindow."
 
 #. (itstool) path: section/code
 #: C/textview.js.page:165
@@ -31897,6 +35309,13 @@ msgid ""
 "        this._window.show_all();\n"
 "    },\n"
 msgstr ""
+"\n"
+"        // Fäst huvudrutnätet vid fönstret\n"
+"        this._window.add (this._mainGrid);\n"
+"\n"
+"        // Visa fönstret och alla barnkomponenter\n"
+"        this._window.show_all();\n"
+"    },\n"
 
 #. (itstool) path: section/p
 #: C/textview.js.page:174
@@ -31904,11 +35323,13 @@ 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 ""
+"Slutligen fäster vi vår huvud-Grid till fönstret, och säger sedan till fönstret och allting i det att bli 
synliga "
+"då programmet körs."
 
 #. (itstool) path: section/title
 #: C/textview.js.page:179
 msgid "Function which handles the penguin's response"
-msgstr ""
+msgstr "Funktion som hanterar pingvinens svar"
 
 #. (itstool) path: section/code
 #: C/textview.js.page:180
@@ -32550,7 +35971,7 @@ msgstr "ToggleButton (C)"
 #. (itstool) path: info/desc
 #: C/togglebutton.c.page:22 C/togglebutton.py.page:19 C/togglebutton.vala.page:21
 msgid "A button which retains state"
-msgstr ""
+msgstr "En knapp som behåller sitt tillstånd"
 
 #. (itstool) path: page/title
 #: C/togglebutton.c.page:25 C/togglebutton.js.page:21 C/togglebutton.py.page:22 C/togglebutton.vala.page:24
@@ -32570,7 +35991,7 @@ msgstr "external ref='media/togglebutton.png' md5='791e062613d4f9bd5936390b0aa18
 #. (itstool) path: page/p
 #: C/togglebutton.c.page:28 C/togglebutton.py.page:24 C/togglebutton.vala.page:26
 msgid "When this ToggleButton is in an active state, the spinner spins."
-msgstr ""
+msgstr "När denna ToggleButton är i aktivt läge så snurrar väntesnurran."
 
 #. (itstool) path: page/code
 #: C/togglebutton.c.page:30
@@ -32680,6 +36101,9 @@ msgid ""
 "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 ""
+"En ToggleButton är som en vanlig <link xref=\"button.js\">Button</link>, förutom att den förblir nedtryckt 
då du "
+"klickar på den. Du kan använda den som en av/på-brytare. för att styra saker som en <link xref=\"spinner.js"
+"\">Spinner</link> i detta exempel."
 
 #. (itstool) path: page/p
 #: C/togglebutton.js.page:24
@@ -32689,6 +36113,10 @@ msgid ""
 "popped out and vice-versa, it sends out the \"toggled\" signal, which you can connect to a function to do "
 "something."
 msgstr ""
+"get_active-metoden för en ToggleButton returnerar true om den är nedtryckt, och false om den inte är det. 
Dess "
+"set_active-metod används om du vill ändra dess tillstånd utan att behöva klicka på den. När den växlar 
tillstånd "
+"från nedtryckt till utstickande och tvärtom, så skickar den signalen ”toggled”, vilken du kan ansluta till 
en "
+"signal för att göra något."
 
 #. (itstool) path: section/code
 #: C/togglebutton.js.page:41
@@ -32720,6 +36148,31 @@ msgid ""
 "        this._buildUI ();\n"
 "    },\n"
 msgstr ""
+"\n"
+"const ToggleButtonExample = new Lang.Class({\n"
+"    Name: 'ToggleButton-exempel',\n"
+"\n"
+"    // Skapa programmet i sig\n"
+"    _init: function() {\n"
+"        this.application = new Gtk.Application({\n"
+"            application_id: 'org.example.jstogglebutton',\n"
+"            flags: Gio.ApplicationFlags.FLAGS_NONE\n"
+"        });\n"
+"\n"
+"    // Anslut ”activate”- och ”startup”-signaler till återanropsfunktionerna\n"
+"    this.application.connect('activate', Lang.bind(this, this._onActivate));\n"
+"    this.application.connect('startup', Lang.bind(this, this._onStartup));\n"
+"    },\n"
+"\n"
+"    // Återanropsfunktion för ”activate”-signal, visar fönstret när den aktiveras\n"
+"    _onActivate: function() {\n"
+"        this._window.present();\n"
+"    },\n"
+"\n"
+"    // Återanropsfunktion för ”startup”-signal bygger användargränssnittet\n"
+"    _onStartup: function() {\n"
+"        this._buildUI ();\n"
+"    },\n"
 
 #. (itstool) path: section/code
 #: C/togglebutton.js.page:68
@@ -32738,11 +36191,23 @@ msgid ""
 "            border_width: 30,\n"
 "            title: \"ToggleButton Example\"});\n"
 msgstr ""
+"\n"
+"    // Bygg programmets användargränssnitt\n"
+"    _buildUI: function() {\n"
+"\n"
+"        // Skapa programfönstret\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            default_height: 300,\n"
+"            default_width: 300,\n"
+"            border_width: 30,\n"
+"            title: \"ToggleButton-exempel\"});\n"
 
 #. (itstool) path: section/title
 #: C/togglebutton.js.page:85
 msgid "Creating the ToggleButton and other widgets"
-msgstr ""
+msgstr "Skapa vår ToggleButton och andra komponenter"
 
 #. (itstool) path: section/code
 #: C/togglebutton.js.page:86
@@ -32752,6 +36217,9 @@ msgid ""
 "        // Create the spinner that the button stops and starts\n"
 "        this._spinner = new Gtk.Spinner ({hexpand: true, vexpand: true});\n"
 msgstr ""
+"\n"
+"        // Skapa väntesnurran som knappen stoppar och startar\n"
+"        this._spinner = new Gtk.Spinner ({hexpand: true, vexpand: true});\n"
 
 #. (itstool) path: section/p
 #: C/togglebutton.js.page:91
@@ -32759,6 +36227,8 @@ 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 ""
+"Vi vill att denna <link xref=\"spinner.js\">Spinner</link> ska expanderas vertikalt och horisontellt så att 
den "
+"tar upp så mycket utrymme som möjligt i fönstret."
 
 #. (itstool) path: section/code
 #: C/togglebutton.js.page:93
@@ -32769,6 +36239,10 @@ msgid ""
 "        this._toggleButton = new Gtk.ToggleButton ({label: \"Start/Stop\"});\n"
 "        this._toggleButton.connect ('toggled', Lang.bind (this, this._onToggle));\n"
 msgstr ""
+"\n"
+"        // Skapa växlingsknappen som startar och stoppar väntesnurran\n"
+"        this._toggleButton = new Gtk.ToggleButton ({label: \"Starta/stoppa\"});\n"
+"        this._toggleButton.connect ('toggled', Lang.bind (this, this._onToggle));\n"
 
 #. (itstool) path: section/p
 #: C/togglebutton.js.page:99
@@ -32777,6 +36251,9 @@ msgid ""
 "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 ""
+"Att skapa en ToggleButton är mycket som att skapa en vanlig <link xref=\"button.js\">Button</link>. Den 
största "
+"skillnaden är att du hanterar en ”toggled”-signal istället för en ”clicked”-signal. Denna kod binder 
_onToggle-"
+"funktionen till den signalen, så att den anropas närhelst vår ToggleButton växlar tillstånd."
 
 #. (itstool) path: section/code
 #: C/togglebutton.js.page:101
@@ -32790,6 +36267,13 @@ msgid ""
 "        this._grid.attach (this._spinner, 0, 0, 1, 1);\n"
 "        this._grid.attach (this._toggleButton, 0, 1, 1, 1);\n"
 msgstr ""
+"\n"
+"        // Skapa ett rutnät och stoppa allting i det\n"
+"        this._grid = new Gtk.Grid ({\n"
+"            row_homogeneous: false,\n"
+"            row_spacing: 15});\n"
+"        this._grid.attach (this._spinner, 0, 0, 1, 1);\n"
+"        this._grid.attach (this._toggleButton, 0, 1, 1, 1);\n"
 
 #. (itstool) path: section/p
 #: C/togglebutton.js.page:109
@@ -32797,6 +36281,8 @@ 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 ""
+"Här skapar vi en enkel <link xref=\"grid.js\">Grid</link> för att organisera allting i, och fäster sedan 
vår "
+"Spinner och ToggleButton till den."
 
 #. (itstool) path: section/code
 #: C/togglebutton.js.page:111
@@ -32810,6 +36296,13 @@ msgid ""
 "        this._window.show_all();\n"
 "    },\n"
 msgstr ""
+"\n"
+"        // Lägg till rutnätet till fönstret\n"
+"        this._window.add (this._grid);\n"
+"\n"
+"        // Visa fönstret och alla barnkomponenter\n"
+"        this._window.show_all();\n"
+"    }.\n"
 
 #. (itstool) path: section/p
 #: C/togglebutton.js.page:119
@@ -32817,11 +36310,13 @@ 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 ""
+"Nu lägger vi till vår Grid till detta Window, och säger till fönstret att visa sig själv och sina 
barnkomponenter "
+"då programmet startas."
 
 #. (itstool) path: section/title
 #: C/togglebutton.js.page:123
 msgid "Making something happen when the ToggleButton is toggled"
-msgstr ""
+msgstr "Få något att hända när vår ToggleButton växlar tillstånd"
 
 #. (itstool) path: section/code
 #: C/togglebutton.js.page:125
@@ -32839,6 +36334,17 @@ msgid ""
 "\n"
 "});\n"
 msgstr ""
+"\n"
+"    _onToggle: function() {\n"
+"\n"
+"        // Starta eller stoppa väntesnurran\n"
+"        if (this._toggleButton.get_active ())\n"
+"            this._spinner.start ();\n"
+"        else this._spinner.stop ();\n"
+"\n"
+"    }\n"
+"\n"
+"});\n"
 
 #. (itstool) path: section/p
 #: C/togglebutton.js.page:137
@@ -32847,6 +36353,9 @@ msgid ""
 "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 ""
+"Närhelst någon klickar på knappen ser denna funktion vad dess tillstånd är efteråt med get_active, och 
startar "
+"eller stoppar väntesnurran enligt detta. Vi vill att den endast ska snurra när knappen är nedtryckt, så om "
+"get_active returnerar true startar vi väntesnurran. Annars säger vi till den att stoppa."
 
 #. (itstool) path: section/code
 #: C/togglebutton.js.page:139
@@ -32944,6 +36453,83 @@ msgid ""
 "let app = new ToggleButtonExample ();\n"
 "app.application.run (ARGV);\n"
 msgstr ""
+"#!/usr/bin/gjs\n"
+"\n"
+"imports.gi.versions.Gtk = '3.0';\n"
+"\n"
+"const Gio = imports.gi.Gio;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"\n"
+"class ToggleButtonExample {\n"
+"\n"
+"    // Skapa programmet i sig\n"
+"    constructor() {\n"
+"        this.application = new Gtk.Application({\n"
+"            application_id: 'org.example.jstogglebutton',\n"
+"            flags: Gio.ApplicationFlags.FLAGS_NONE\n"
+"        });\n"
+"\n"
+"        // Anslut ”activate”- och ”startup”-signaler till återanropsfunktionerna\n"
+"        this.application.connect('activate', this._onActivate.bind(this));\n"
+"        this.application.connect('startup', this._onStartup.bind(this));\n"
+"    }\n"
+"\n"
+"    // Återanropsfunktion för ”activate”-signal, visar fönstret när den aktiveras\n"
+"    _onActivate() {\n"
+"        this._window.present();\n"
+"    }\n"
+"\n"
+"    // Återanropsfunktion för ”startup”-signal bygger användargränssnittet\n"
+"    _onStartup() {\n"
+"        this._buildUI();\n"
+"    }\n"
+"\n"
+"    // Bygg programmets användargränssnitt\n"
+"    _buildUI() {\n"
+"\n"
+"        // Skapa programfönstret\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            default_height: 300,\n"
+"            default_width: 300,\n"
+"            border_width: 30,\n"
+"            title: \"ToggleButton-exempel\"});\n"
+"\n"
+"        // Skapa väntesnurran som knappen stoppar och startar\n"
+"        this._spinner = new Gtk.Spinner ({hexpand: true, vexpand: true});\n"
+"\n"
+"        // Skapa växlingsknappen som startar och stoppar väntesnurran\n"
+"        this._toggleButton = new Gtk.ToggleButton ({label: \"Starta/stoppa\"});\n"
+"        this._toggleButton.connect ('toggled', this._onToggle.bind(this));\n"
+"\n"
+"        // Skapa ett rutnät och stoppa allting i det\n"
+"        this._grid = new Gtk.Grid ({\n"
+"            row_homogeneous: false,\n"
+"            row_spacing: 15});\n"
+"        this._grid.attach (this._spinner, 0, 0, 1, 1);\n"
+"        this._grid.attach (this._toggleButton, 0, 1, 1, 1);\n"
+"\n"
+"        // Lägg till rutnätet till fönstret\n"
+"        this._window.add (this._grid);\n"
+"\n"
+"        // Visa fönstret och alla barnkomponenter\n"
+"        this._window.show_all();\n"
+"    }\n"
+"\n"
+"    _onToggle() {\n"
+"\n"
+"        // Starta eller stoppa väntesnurran\n"
+"        if (this._toggleButton.get_active ())\n"
+"            this._spinner.start ();\n"
+"        else this._spinner.stop ();\n"
+"\n"
+"    }\n"
+"};\n"
+"\n"
+"// Kör programmet\n"
+"let app = new ToggleButtonExample ();\n"
+"app.application.run (ARGV);\n"
 
 #. (itstool) path: item/p
 #: C/togglebutton.js.page:159
@@ -33022,6 +36608,67 @@ msgid ""
 "exit_status = app.run(sys.argv)\n"
 "sys.exit(exit_status)\n"
 msgstr ""
+"from gi.repository import Gtk\n"
+"import sys\n"
+"\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"    # a window\n"
+"\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(\n"
+"            self, title=\"ToggleButton-exempel\", application=app)\n"
+"        self.set_default_size(300, 300)\n"
+"        self.set_border_width(30)\n"
+"\n"
+"        # en väntesnurreanimering\n"
+"        self.spinner = Gtk.Spinner()\n"
+"        # med extra horisontellt utrymme\n"
+"        self.spinner.set_hexpand(True)\n"
+"        # med extra vertikalt utrymme\n"
+"        self.spinner.set_vexpand(True)\n"
+"\n"
+"        # en växlingsknapp\n"
+"        button = Gtk.ToggleButton.new_with_label(\"Starta/stoppa\")\n"
+"        # anslut signalen \"toggled\" som utges av växlingsknappen\n"
+"        # när dess tillstånd ändras till återanropsfunktionen toggled_cb\n"
+"        button.connect(\"toggled\", self.toggled_cb)\n"
+"\n"
+"        # ett rutnät för att allokera komponenterna\n"
+"        grid = Gtk.Grid()\n"
+"        grid.set_row_homogeneous(False)\n"
+"        grid.set_row_spacing(15)\n"
+"        grid.attach(self.spinner, 0, 0, 1, 1)\n"
+"        grid.attach(button, 0, 1, 1, 1)\n"
+"\n"
+"        # lägg till rutnätet till fönstret\n"
+"        self.add(grid)\n"
+"\n"
+"    # återanropsfunktion för signalen \"toggled\"\n"
+"    def toggled_cb(self, button):\n"
+"        # starta väntesnurran om växlingsknappen är aktiv\n"
+"        if button.get_active():\n"
+"            self.spinner.start()\n"
+"        # stoppa den annars\n"
+"        else:\n"
+"            self.spinner.stop()\n"
+"\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
 
 #. (itstool) path: section/title
 #: C/togglebutton.py.page:36
@@ -33110,6 +36757,61 @@ msgid ""
 "\treturn new MyApplication ().run (args);\n"
 "}\n"
 msgstr ""
+"public class MyWindow : Gtk.ApplicationWindow {\n"
+"\n"
+"\tGtk.Spinner spinner;\n"
+"\n"
+"\tinternal MyWindow (MyApplication app) {\n"
+"\t\tObject (application: app, title: \"ToggleButton-exempel\");\n"
+"\n"
+"\t\tthis.set_default_size (300, 300);\n"
+"\t\tthis.border_width = 30;\n"
+"\n"
+"\t\t/*Spinner*/\n"
+"\t\tspinner = new Gtk.Spinner ();\n"
+"\t\tspinner.set_hexpand (true);\n"
+"\t\tspinner.set_vexpand (true);\n"
+"\n"
+"\t\t/*ToggleButton*/\n"
+"\t\tvar togglebutton = new Gtk.ToggleButton.with_label (\"Starta/stoppa\");\n"
+"\t\ttogglebutton.toggled.connect (toggled_cb);\n"
+"\n"
+"\t\t/*Grid*/\n"
+"\t\tvar grid = new Gtk.Grid ();\n"
+"\t\tgrid.set_row_homogeneous (false);\n"
+"\t\tgrid.set_row_spacing (15);\n"
+"\t\tgrid.attach (spinner, 0, 0, 1, 1);\n"
+"\t\tgrid.attach (togglebutton, 0, 1, 1, 1);\n"
+"\n"
+"\t\tthis.add (grid);\n"
+"\t}\n"
+"\n"
+"\tvoid toggled_cb (Gtk.ToggleButton button) {\n"
+"\t\tif (button.get_active()) {\n"
+"\t\t\tspinner.start ();\n"
+"\t\t}\n"
+"\t\telse {\n"
+"\t\t\tspinner.stop ();\n"
+"\t\t}\n"
+"\t}\n"
+"}\n"
+"\n"
+"public class MyApplication : Gtk.Application {\n"
+"\n"
+"\tprotected override void activate () {\n"
+"\n"
+"\t\t//Visa allting\n"
+"\t\tnew MyWindow (this).show_all ();\n"
+"\t}\n"
+"\n"
+"\tinternal MyApplication () {\n"
+"\t\tObject (application_id: \"org.example.spinner\");\n"
+"\t}\n"
+"}\n"
+"\n"
+"public int main (string[] args) {\n"
+"\treturn new MyApplication ().run (args);\n"
+"}\n"
 
 #. (itstool) path: item/p
 #: C/togglebutton.vala.page:33
@@ -33125,7 +36827,7 @@ msgstr "Toolbar (C)"
 #. (itstool) path: info/desc
 #: C/toolbar.c.page:20 C/toolbar.vala.page:19 C/toolbar_builder.vala.page:20
 msgid "A bar of buttons"
-msgstr ""
+msgstr "En rad med knappar"
 
 #. (itstool) path: page/title
 #: C/toolbar.c.page:23 C/toolbar.js.page:21 C/toolbar.py.page:23 C/toolbar.vala.page:22
@@ -33149,6 +36851,8 @@ msgid ""
 "Toolbar can contain either text or stock icons. In this sample we use stock icons. This example has 
fullscreen "
 "functionality."
 msgstr ""
+"Toolbar kan innehålla antingen text eller standardikoner. I detta exempel använder vi standardikoner. Detta 
"
+"exempel har helskärmsfunktionalitet."
 
 #. (itstool) path: page/p
 #: C/toolbar.c.page:27
@@ -33403,6 +37107,7 @@ msgstr "Toolbar (Javascript)"
 msgid "A bar of tools"
 msgstr "En rad med verktyg"
 
+# TODO: the the -> to the
 #. (itstool) path: page/p
 #: C/toolbar.js.page:24 C/toolbar.vala.page:26
 msgid "This example uses SimpleActions (window and app). App actions can easily be added the the app menu."
@@ -33794,6 +37499,8 @@ 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 ""
+"<code>get_n_items()</code> returnerar antalet objekt i verktygsfältet; <code>get_nth_item(position)</code> "
+"returnerar objektet på positionen <code>position</code>."
 
 #. (itstool) path: item/p
 #: C/toolbar.py.page:44
@@ -33801,6 +37508,8 @@ 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 ""
+"Om verktygsfältet inte har plats för alla menyobjekt, och <code>set_show_arrow(True)</code>, så kommer 
objekten "
+"som inte har plats att visas via en överspillsmeny."
 
 #. (itstool) path: item/p
 #: C/toolbar.py.page:45
@@ -34012,12 +37721,12 @@ msgstr "<link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Stock.html\";>Gtk.Stock<
 #: C/toolbar_builder.py.page:8
 msgctxt "text"
 msgid "Toolbar created using Glade (Python)"
-msgstr ""
+msgstr "Toolbar skapad med Glade (Python)"
 
 #. (itstool) path: page/title
 #: C/toolbar_builder.py.page:36 C/toolbar_builder.vala.page:23
 msgid "Toolbar created using Glade"
-msgstr ""
+msgstr "Toolbar skapad med Glade"
 
 #. (itstool) path: page/p
 #: C/toolbar_builder.py.page:39
@@ -34025,6 +37734,8 @@ msgid ""
 "This example is similar to <link xref=\"toolbar.py\"/>, except we use Glade to create the toolbar in an XML 
.ui "
 "file."
 msgstr ""
+"Detta exempel liknar <link xref=\"toolbar.py\"/>, förutom att vi använder Glade för att skapa 
verktygsfältet i en "
+"XML .ui-fil."
 
 #. (itstool) path: section/title
 #: C/toolbar_builder.py.page:44
@@ -34035,12 +37746,12 @@ msgstr "Skapa verktygsfältet med Glade"
 #. (itstool) path: page/p
 #: C/toolbar_builder.py.page:45 C/toolbar_builder.vala.page:28
 msgid "To create the toolbar using the <link href=\"http://glade.gnome.org/\";>Glade Interface 
Designer</link>:"
-msgstr ""
+msgstr "För att skapa verktygsfältet med <link href=\"http://glade.gnome.org/\";>gränssnittsbyggaren 
Glade</link>:"
 
 #. (itstool) path: item/p
 #: C/toolbar_builder.py.page:49 C/toolbar_builder.vala.page:32
 msgid "Open Glade, and save the file as <file>toolbar_builder.ui</file>"
-msgstr ""
+msgstr "Öppna Glade, och spara filen som <file>toolbar_builder.ui</file>"
 
 #. (itstool) path: p/media
 #. This is a reference to an external file such as an image or video. When
@@ -34056,6 +37767,7 @@ msgstr "external ref='media/glade_ui.png' md5='baea74fe213bc12ea934f64f6977215a'
 #: C/toolbar_builder.py.page:50 C/toolbar_builder.vala.page:33
 msgid "<media type=\"image\" src=\"media/glade_ui.png\" width=\"900\"> Screenshot of Glade ui </media>"
 msgstr ""
+"<media type=\"image\" src=\"media/glade_ui.png\" width=\"900\"> Skärmbild av Glades användargränssnitt 
</media>"
 
 #. (itstool) path: item/p
 #: C/toolbar_builder.py.page:55 C/toolbar_builder.vala.page:38
@@ -34063,6 +37775,8 @@ 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 ""
+"Under <gui>Behållare</gui> på vänster sida, högerklicka på verktygsfältsikonen och välj <gui>Lägg till 
komponent "
+"som toppnivå</gui>."
 
 #. (itstool) path: p/media
 #. This is a reference to an external file such as an image or video. When
@@ -34078,13 +37792,18 @@ msgstr "external ref='media/glade_select_toolbar.png' md5='f7b5b224050b2e387eb04
 #: C/toolbar_builder.py.page:56 C/toolbar_builder.vala.page:39
 msgid "<media type=\"image\" src=\"media/glade_select_toolbar.png\"> Screenshot of toolbar icon in Glade ui 
</media>"
 msgstr ""
+"<media type=\"image\" src=\"media/glade_select_toolbar.png\"> Skärmbild av verktygsfältsikon i Glades "
+"användargränssnitt </media>"
 
 #. (itstool) path: item/p
 #: C/toolbar_builder.py.page:61 C/toolbar_builder.vala.page:44
+#, fuzzy
 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 ""
+"Under fliken <gui>Allmänt</gui> längst ner till höger, ändra <gui>Namn</gui> till <input>toolbar</input> 
och "
+"<gui>Visa pil</gui> till <gui>Nej</gui>."
 
 #. (itstool) path: p/media
 #. This is a reference to an external file such as an image or video. When
@@ -34099,12 +37818,12 @@ msgstr "external ref='media/glade_toolbar_general.png' md5='e31daba6e8a3e526aca8
 #. (itstool) path: item/p
 #: C/toolbar_builder.py.page:62 C/toolbar_builder.vala.page:45
 msgid "<media type=\"image\" src=\"media/glade_toolbar_general.png\"> Screenshot of General tab </media>"
-msgstr ""
+msgstr "<media type=\"image\" src=\"media/glade_toolbar_general.png\"> Skärmbild av fliken Allmänt </media>"
 
 #. (itstool) path: item/p
 #: C/toolbar_builder.py.page:67 C/toolbar_builder.vala.page:50
 msgid "Under the <gui>Common</gui> tab, set <gui>Horizontal Expand</gui> to <gui>Yes</gui>."
-msgstr ""
+msgstr "Under fliken <gui>Gemensamma</gui>, ställ in <gui>Vågrät expansion</gui> till <gui>Ja</gui>."
 
 #. (itstool) path: p/media
 #. This is a reference to an external file such as an image or video. When
@@ -34119,7 +37838,7 @@ msgstr "external ref='media/glade_toolbar_common.png' md5='d5ec6cc0218ca98e195db
 #. (itstool) path: item/p
 #: C/toolbar_builder.py.page:68 C/toolbar_builder.vala.page:51
 msgid "<media type=\"image\" src=\"media/glade_toolbar_common.png\"> Screenshot of Common tab </media>"
-msgstr ""
+msgstr "<media type=\"image\" src=\"media/glade_toolbar_common.png\"> Skärmbild av fliken Gemensam </media>"
 
 #. (itstool) path: item/p
 #: C/toolbar_builder.py.page:73 C/toolbar_builder.vala.page:56
@@ -34127,6 +37846,8 @@ 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 ""
+"Högerklicka på verktygsfältet i det övre högra hörnet och välj <gui>Redigera</gui>. Fönstret "
+"<gui>Verktygsfältsredigerare</gui> kommer visas."
 
 #. (itstool) path: p/media
 #. This is a reference to an external file such as an image or video. When
@@ -34144,23 +37865,28 @@ msgid ""
 "<media type=\"image\" src=\"media/glade_toolbar_edit.png\"> Screenshot of where to right click to edit 
toolbar. </"
 "media>"
 msgstr ""
+"<media type=\"image\" src=\"media/glade_toolbar_edit.png\"> Skärmbild av var högerklick ska ske för att 
redigera "
+"verktygsfält. </media>"
 
 #. (itstool) path: item/p
 #: C/toolbar_builder.py.page:79 C/toolbar_builder.vala.page:62
+#, fuzzy
 msgid ""
 "We want to add 5 ToolButtons: New, Open, Undo, Fullscreen and Leave Fullscreen. First, we will add the New "
 "ToolButton."
 msgstr ""
+"Vi vill lägga till 5 ToolButtons: Ny, Öppna, Ångra, Helskärm och Lämna helskärmsläge. Först kommer vi lägga 
till "
+"en ToolButton för Ny."
 
 #. (itstool) path: item/p
 #: C/toolbar_builder.py.page:82 C/toolbar_builder.vala.page:65
 msgid "Under <gui>Hierarchy</gui> tab, click <gui>Add</gui>."
-msgstr ""
+msgstr "Under fliken <gui>Hierarki</gui>, klicka på <gui>Lägg till</gui>."
 
 #. (itstool) path: item/p
 #: C/toolbar_builder.py.page:83 C/toolbar_builder.vala.page:66
 msgid "Change the name of the ToolItem to <input>new_button</input>."
-msgstr ""
+msgstr "Ändra namnet på detta ToolItem till <input>new_button</input>."
 
 #. (itstool) path: item/p
 #: C/toolbar_builder.py.page:84 C/toolbar_builder.vala.page:67
@@ -34168,16 +37894,18 @@ 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 ""
+"Rulla ner och ställ in <gui>Är viktig</gui> till <gui>Ja</gui>. Detta kommer få etiketten för vår 
ToolButton att "
+"visas när verktygsfältet visas."
 
 #. (itstool) path: item/p
 #: C/toolbar_builder.py.page:85 C/toolbar_builder.vala.page:68
 msgid "Enter the <gui>action name</gui>: <input>app.new</input>."
-msgstr ""
+msgstr "Ange <gui>Åtgärdsnamn</gui>et: <input>app.new</input>."
 
 #. (itstool) path: item/p
 #: C/toolbar_builder.py.page:86 C/toolbar_builder.vala.page:69
 msgid "Change the <gui>Label</gui> to <input>New</input>."
-msgstr ""
+msgstr "Ändra <gui>Etikett</gui> till <input>Ny</input>."
 
 #. (itstool) path: item/p
 #: C/toolbar_builder.py.page:87 C/toolbar_builder.vala.page:70
@@ -34214,7 +37942,7 @@ msgstr "open_button"
 #: C/toolbar_builder.py.page:126 C/toolbar_builder.vala.page:88 C/toolbar_builder.vala.page:95
 #: C/toolbar_builder.vala.page:102 C/toolbar_builder.vala.page:109
 msgid "Yes"
-msgstr ""
+msgstr "Ja"
 
 #. (itstool) path: td/p
 #: C/toolbar_builder.py.page:106 C/toolbar_builder.vala.page:89
@@ -34300,7 +38028,7 @@ msgstr "external ref='media/glade_toolbar_editor.png' md5='8af65241e5ca47d5494a7
 #. (itstool) path: item/p
 #: C/toolbar_builder.py.page:138 C/toolbar_builder.vala.page:121
 msgid "Close the <gui>Tool Bar Editor</gui>."
-msgstr ""
+msgstr "Stäng <gui>Verktygsfältsredigerare</gui>n."
 
 #. (itstool) path: item/p
 #: C/toolbar_builder.py.page:141
@@ -34649,7 +38377,7 @@ msgstr ""
 #: C/toolbar_builder.vala.page:8
 msgctxt "text"
 msgid "Toolbar created using Glade (Vala)"
-msgstr ""
+msgstr "Toolbar skapad med Glade (Vala)"
 
 #. (itstool) path: page/p
 #: C/toolbar_builder.vala.page:26
@@ -34785,7 +38513,7 @@ msgstr "Tooltip (C)"
 #. (itstool) path: info/desc
 #: C/tooltip.c.page:19 C/tooltip.js.page:19 C/tooltip.py.page:20 C/tooltip.vala.page:19
 msgid "Add tips to your widgets"
-msgstr ""
+msgstr "Lägg till inforutor till dina komponenter"
 
 #. (itstool) path: page/title
 #: C/tooltip.c.page:22 C/tooltip.js.page:22 C/tooltip.py.page:23 C/tooltip.vala.page:22
@@ -34805,7 +38533,7 @@ msgstr "external ref='media/tooltip.png' md5='41e35860a51e39cb48c71e57bb8fb1d0'"
 #. (itstool) path: page/p
 #: C/tooltip.c.page:24 C/tooltip.js.page:24 C/tooltip.py.page:25 C/tooltip.vala.page:24
 msgid "A toolbar with a tooltip (with an image) for a button."
-msgstr ""
+msgstr "Ett verktygsfält med en inforuta (med en bild) för en knapp."
 
 #. (itstool) path: note/p
 #: C/tooltip.c.page:26
@@ -35361,11 +39089,13 @@ msgid ""
 "<code>set_tooltip_text(text)</code> and <code>set_tooltip_markup(text)</code> can be used to add a tooltip 
of "
 "plain text (or text in the Pango Markup Language) to a widget."
 msgstr ""
+"<code>set_tooltip_text(text)</code> och <code>set_tooltip_markup(text)</code> kan användas för att lägga 
till en "
+"inforuta med vanlig text (eller text i märkspråket Pango) till en komponent."
 
 #. (itstool) path: section/p
 #: C/tooltip.py.page:39
 msgid "For more complex tooltips, for instance for a tooltip with an image:"
-msgstr ""
+msgstr "För mer komplexa inforutor, exempelvis för en inforuta med en bild:"
 
 #. (itstool) path: item/p
 #: C/tooltip.py.page:41
@@ -35373,9 +39103,13 @@ 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 ""
+"Ställ in egenskapen <code>\"has-tooltip\"</code> för komponenten till <code>True</code>; detta kommer få 
GTK+ att "
+"övervaka komponenten efter rörelse och relaterade händelser som behövs för att avgöra när och var en 
inforuta ska "
+"visas."
 
 #. (itstool) path: item/p
 #: C/tooltip.py.page:42
+#, fuzzy
 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 "
@@ -35384,13 +39118,22 @@ msgid ""
 "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 ""
+"Anslut till signalen <code>\"query-tooltip\"</code>. Denna signal kommer att skickas när en inforuta ska 
visas. "
+"Ett av argumenten som skickas till signalhanteraren är ett GtkTooltip-objekt. Detta är objektet som vi är 
på väg "
+"att visa som en inforuta, och kan manipuleras i ditt återanrop genom att använda funktioner som 
<code>set_icon()</"
+"code>. Det finns funktioner för att ställa in inforutans markup (<code>set_markup(text)</code>), ställa in 
en bild "
+"från en standardikon (<code>set_icon_from_stock(stock_id, storlek)</code>), eller till och med stoppa in en 
"
+"anpassad komponent (<code>set_custom(widget)</code>)."
 
+# TODO: to be show*n*
 #. (itstool) path: item/p
 #: C/tooltip.py.page:43
 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 ""
+"Returnera <code>True</code> från din query-tooltip-hanterare. Detta får inforutan att visas. Om du 
returnerar "
+"<code>False</code> kommer den inte att visas."
 
 #. (itstool) path: section/p
 #: C/tooltip.py.page:46
@@ -35402,12 +39145,14 @@ msgstr ""
 #. (itstool) path: item/p
 #: C/tooltip.py.page:48
 msgid "Set <code>\"has-tooltip\"</code> and connect to <code>\"query-tooltip\"</code> as before."
-msgstr ""
+msgstr "Ställ in <code>\"has-tooltip\"</code> och anslut till <code>\"query-tooltip\"</code> som tidigare."
 
 #. (itstool) path: item/p
 #: C/tooltip.py.page:49
 msgid "Use <code>set_tooltip_window()</code> on the widget to set a GtkWindow created by you as tooltip 
window."
 msgstr ""
+"Använd <code>set_tooltip_window()</code> på komponenten för att ställa in ett GtkWindow skapat av dig som "
+"inforutefönster."
 
 #. (itstool) path: item/p
 #: C/tooltip.py.page:50
@@ -36129,6 +39874,18 @@ msgid ""
 "            border_width: 20,\n"
 "            title: \"My Phone Book\"});\n"
 msgstr ""
+"\n"
+"    // Bygg programmets användargränssnitt\n"
+"    _buildUI: function() {\n"
+"\n"
+"        // Skapa programfönstret\n"
+"        this._window = new Gtk.ApplicationWindow({\n"
+"            application: this.application,\n"
+"            window_position: Gtk.WindowPosition.CENTER,\n"
+"            default_height: 250,\n"
+"            default_width: 100,\n"
+"            border_width: 20,\n"
+"            title: \"Min telefonkatalog\"});\n"
 
 #. (itstool) path: section/code
 #: C/treeview_simple_liststore.js.page:95
@@ -36244,7 +40001,7 @@ msgstr ""
 #. (itstool) path: section/title
 #: C/treeview_simple_liststore.js.page:148
 msgid "Creating the TreeView"
-msgstr ""
+msgstr "Skapa vår TreeView"
 
 #. (itstool) path: section/code
 #: C/treeview_simple_liststore.js.page:149
@@ -36274,6 +40031,11 @@ msgid ""
 "        let lastName = new Gtk.TreeViewColumn ({ title: \"Last Name\" });\n"
 "        let phone = new Gtk.TreeViewColumn ({ title: \"Phone Number\" });\n"
 msgstr ""
+"\n"
+"        // Skapa kolumnerna för adressboken\n"
+"        let firstName = new Gtk.TreeViewColumn ({ title: \"Förnamn\" });\n"
+"        let lastName = new Gtk.TreeViewColumn ({ title: \"Efternamn\" });\n"
+"        let phone = new Gtk.TreeViewColumn ({ title: \"Telefonnummer\" });\n"
 
 #. (itstool) path: section/p
 #: C/treeview_simple_liststore.js.page:163
@@ -36332,6 +40094,15 @@ msgid ""
 "        this._treeView.insert_column (lastName, 1);\n"
 "        this._treeView.insert_column (phone, 2);\n"
 msgstr ""
+"\n"
+"        firstName.add_attribute (bold, \"text\", 0);\n"
+"        lastName.add_attribute (normal, \"text\", 1);\n"
+"        phone.add_attribute (normal, \"text\", 2);\n"
+"\n"
+"        // Infoga kolumnerna i trädvyn\n"
+"        this._treeView.insert_column (firstName, 0);\n"
+"        this._treeView.insert_column (lastName, 1);\n"
+"        this._treeView.insert_column (phone, 2);\n"
 
 #. (itstool) path: section/p
 #: C/treeview_simple_liststore.js.page:191
@@ -36437,8 +40208,9 @@ msgstr ""
 
 #. (itstool) path: section/title
 #: C/treeview_simple_liststore.js.page:235
+#, fuzzy
 msgid "Function which handles a changed selection"
-msgstr ""
+msgstr "Funktion som hanterar ett ändrat val"
 
 #. (itstool) path: section/code
 #: C/treeview_simple_liststore.js.page:237
@@ -37108,6 +40880,12 @@ msgid ""
 "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 ""
+"Om du aldrig har programmerat förr, eller inte är bekant med koncepten i objektorienterad programmering, så 
kan du "
+"behöva lära dig lite grunder först. Boken <link href=\"http://learnpythonthehardway.org/book/\";>Learn 
Python the "
+"Hard Way</link> eller <link href=\"http://docs.python.org/tutorial/index.html\";>Python-handledningen</link> 
kan "
+"vara ett bättre ställe för dig att börja. Du kan också vara intresserad av <link 
href=\"http://python-gtk-3-";
+"tutorial.readthedocs.org/en/latest/index.html\">GTK+ 3-handledningen för Python</link>. Se till att komma 
tillbaka "
+"och ta en titt på de här handledningarna då du bemästrat grunderna."
 
 #. (itstool) path: section/title
 #: C/tutorial.py.page:42
@@ -37141,11 +40919,13 @@ msgid ""
 "After executing the code, you will either see the widget on your screen, or (if you have mistyped some of 
the "
 "code) you will see an error message that will help you identify the problem."
 msgstr ""
+"Efter att du kör koden kommer du antingen se komponenten på din skärm, eller (om du skrivit någon del av 
koden "
+"fel) så kommer du se ett felmeddelande som kommer hjälpa dig att identifiera felet."
 
 #. (itstool) path: section/title
 #: C/tutorial.py.page:55
 msgid "A path through the widgets (with some theory)"
-msgstr ""
+msgstr "En väg genom komponenterna (med lite teori)"
 
 #. (itstool) path: section/p
 #: C/tutorial.py.page:56
@@ -37153,6 +40933,8 @@ msgid ""
 "The tutorial will walk you through increasingly complex examples and programming theory, but you can also 
feel "
 "free to just go directly to the tutorial that is most helpful to you."
 msgstr ""
+"Handledningen kommer följa dig genom alltmer komplexa exempel och programmeringsteori, men känn dig även 
fri att "
+"bara gå direkt till den handledning som är till mest hjälp för dig."
 
 #. (itstool) path: steps/title
 #: C/tutorial.py.page:58
@@ -37177,7 +40959,7 @@ msgstr "Introduktion till egenskaper"
 #. (itstool) path: steps/title
 #: C/tutorial.py.page:75
 msgid "Grid, separator and scrolling"
-msgstr ""
+msgstr "Rutnät, avskiljare och rullning"
 
 #. (itstool) path: steps/title
 #: C/tutorial.py.page:82
@@ -37192,7 +40974,7 @@ msgstr "Andra visningskomponenter"
 #. (itstool) path: steps/title
 #: C/tutorial.py.page:102
 msgid "Entry widgets"
-msgstr ""
+msgstr "Inmatningskomponenter"
 
 #. (itstool) path: steps/title
 #: C/tutorial.py.page:108
@@ -37284,7 +41066,7 @@ msgstr "<link xref=\"#asynchronous\">Asynkrona anrop</link>"
 #. (itstool) path: item/p
 #: C/weatherApp.js.page:34
 msgid "<link xref=\"#main\">The main program file</link>"
-msgstr ""
+msgstr "<link xref=\"#main\">Huvudprogramfilen</link>"
 
 #. (itstool) path: item/p
 #: C/weatherApp.js.page:35
@@ -37322,6 +41104,13 @@ msgid ""
 "in relation to other widgets, so after the first widget is in place, placing widgets can be done in 
relation to "
 "any widget on the grid."
 msgstr ""
+"Att strukturera ett program för GNOME 3 betyder att du kommer använda <link 
href=\"http://developer.gnome.org/";
+"platform-overview/stable/gtk\">GTK+</link>. Den viktigaste saken att komma ihåg är att huvudfönstret endast 
kommer "
+"acceptera en komponent. Du måste planera din struktur enligt detta (detta exempel använder Gtk.Grid). En 
användbar "
+"metod är att rita ut huvudfönstret och placera varje komponent som behövs i den rutan. Genom att titta på 
en bild "
+"på ditt framtida program är det lättare att säga vad relationerna mellan komponenter är. Exempelvis så 
placerar "
+"Gtk.Grid dina komponenter i relation till andra komponenter, så efter att den första komponenten är på 
plats kan "
+"placering av komponenter göras i förhållande till någon annan komponent i rutnätet."
 
 #. (itstool) path: section/title
 #: C/weatherApp.js.page:48
@@ -37356,8 +41145,9 @@ msgstr "Programmets olika delar"
 #. (itstool) path: page/title
 #: C/weatherAppMain.js.page:19
 msgid "The main program file"
-msgstr ""
+msgstr "Huvudprogramfilen"
 
+# TODO: we'll
 #. (itstool) path: synopsis/p
 #: C/weatherAppMain.js.page:21
 msgid ""
@@ -37369,17 +41159,17 @@ msgstr ""
 #. (itstool) path: item/p
 #: C/weatherAppMain.js.page:26
 msgid "<link xref=\"#widgets\">Adding a grid and all the necessary widgets to it</link>"
-msgstr ""
+msgstr "<link xref=\"#widgets\">Lägga till ett rutnät och alla nödvändiga komponenter i det</link>"
 
 #. (itstool) path: item/p
 #: C/weatherAppMain.js.page:27
 msgid "<link xref=\"#asynccall\">Requesting the weather information asynchronously</link>"
-msgstr ""
+msgstr "<link xref=\"#asynccall\">Begära väderinformationen asynkront</link>"
 
 #. (itstool) path: item/p
 #: C/weatherAppMain.js.page:28
 msgid "<link xref=\"#connectingbuttons\">Connecting signals to button and entry</link>."
-msgstr ""
+msgstr "<link xref=\"#connectingbuttons\">Ansluta signaler till knapp och inmatning</link>."
 
 #. (itstool) path: item/p
 #: C/weatherAppMain.js.page:29
@@ -37436,7 +41226,7 @@ msgstr ""
 #. (itstool) path: section/title
 #: C/weatherAppMain.js.page:64
 msgid "Adding a grid and all the necessary widgets to it"
-msgstr ""
+msgstr "Lägga till ett rutnät och alla nödvändiga komponenter i det"
 
 #. (itstool) path: section/code
 #: C/weatherAppMain.js.page:65
@@ -37468,6 +41258,31 @@ msgid ""
 "grid.attach_next_to(button1,entry,1,1,1);\n"
 "grid.attach_next_to(weatherIcon,label2,1,1,1)\n"
 msgstr ""
+"\n"
+"var grid = new Gtk.Grid();\n"
+"weatherwindow.add(grid);\n"
+"\n"
+"//Vi initierar ikonen här, men bestämmer filen senare i geonames.js.\n"
+"var weatherIcon = new Gtk.Image();\n"
+"\n"
+"//Ställ in några etiketter till ditt fönster\n"
+"var label1 = new Gtk.Label({label: \"\"});\n"
+"var label2 = new Gtk.Label({label: \"Söker i himlen…\"});\n"
+"var label3 = new Gtk.Label({label: \"\"});\n"
+"\n"
+"var entry = new Gtk.Entry();\n"
+"entry.set_width_chars(4);\n"
+"entry.set_max_length(4);\n"
+"var label4 = new Gtk.Label({label: \"Ange ICAO-station för väder: \"});\n"
+"var button1 = new Gtk.Button({label: \"sök!\"});\n"
+"\n"
+"grid.attach(label4, 2, 1, 1, 1);\n"
+"grid.attach_next_to(label1,label4,3,1,1);\n"
+"grid.attach_next_to(label2,label1,3,1,1);\n"
+"grid.attach_next_to(label3,label2,3,1,1);\n"
+"grid.attach_next_to(entry,label4,1,1,1);\n"
+"grid.attach_next_to(button1,entry,1,1,1);\n"
+"grid.attach_next_to(weatherIcon,label2,1,1,1)\n"
 
 #. (itstool) path: section/p
 #: C/weatherAppMain.js.page:91
@@ -37484,7 +41299,7 @@ msgstr ""
 #. (itstool) path: section/title
 #: C/weatherAppMain.js.page:95
 msgid "Requesting the weather information asynchronously"
-msgstr ""
+msgstr "Begära väderinformationen asynkront"
 
 #. (itstool) path: section/code
 #: C/weatherAppMain.js.page:96
@@ -37516,6 +41331,7 @@ msgid ""
 "}\n"
 msgstr ""
 
+# TODO: The first thing
 #. (itstool) path: section/p
 #: C/weatherAppMain.js.page:121
 msgid ""
@@ -37530,7 +41346,7 @@ msgstr ""
 #. (itstool) path: section/title
 #: C/weatherAppMain.js.page:125
 msgid "Connecting signals to button and entry."
-msgstr ""
+msgstr "Ansluta signaler till knapp och inmatning."
 
 #. (itstool) path: section/code
 #: C/weatherAppMain.js.page:126
@@ -37549,6 +41365,18 @@ msgid ""
 "  getWeatherForStation();\n"
 "});"
 msgstr ""
+"\n"
+"entry.connect(\"key_press_event\", function(widget, event) {\n"
+"  if (entry.get_text().length === 4) {\n"
+"    // Nu räcker det\n"
+"    getWeatherForStation();\n"
+"  }\n"
+"  return false;\n"
+"});\n"
+"\n"
+"button1.connect(\"clicked\", function(){\n"
+"  getWeatherForStation();\n"
+"});"
 
 #. (itstool) path: section/p
 #: C/weatherAppMain.js.page:138
@@ -37947,7 +41775,7 @@ msgstr "<link xref=\"#geonamesimports\">Lokalt bibliotek för att erhålla vädr
 #. (itstool) path: item/p
 #: C/weatherGeonames.js.page:25
 msgid "<link xref=\"#geonamesfunction\">Creating function geoNames</link>"
-msgstr ""
+msgstr "<link xref=\"#geonamesfunction\">Skapa funktionen geoNames</link>"
 
 #. (itstool) path: item/p
 #: C/weatherGeonames.js.page:26
@@ -37989,6 +41817,8 @@ msgid ""
 "In the first lines we'll import and initialize the libraries we need to use in this local library. Soup 
handles "
 "all the requests we have to make with http."
 msgstr ""
+"I de första raderna kommer vi importera och initiera de bibliotek vi behöver använda i detta lokala 
bibliotek. "
+"Soup hanterar alla begäranden som vi behöver göra med http."
 
 #. (itstool) path: section/title
 #: C/weatherGeonames.js.page:43
@@ -38073,6 +41903,44 @@ msgid ""
 "    return \"weather-fog.svg\";\n"
 "}\n"
 msgstr ""
+"\n"
+"getWeather: function(callback) {\n"
+"    var request = Soup.Message.new('GET', 'http://api.geonames.org/weatherIcaoJSON?ICAO=' + this.station + 
'&amp;username=demo');\n"
+"    _httpSession.queue_message(request, function(_httpSession, message) {\n"
+"      if (message.status_code !== 200) {\n"
+"        callback(message.status_code, null);\n"
+"        return;\n"
+"      }\n"
+"      var weatherJSON = request.response_body.data;\n"
+"      var weather = JSON.parse(weatherJSON);\n"
+"      callback(null, weather);\n"
+"      });\n"
+"},\n"
+"\n"
+"getIcon: function(weather){\n"
+"    switch (weather.weatherObservation.weatherCondition){\n"
+"    case \"drizzle\":\n"
+"    case \"light showers rain\":\n"
+"    case \"light rain\":\n"
+"      return \"weather-showers-scattered.svg\";\n"
+"    case \"rain\":\n"
+"      return \"weather-showers.svg\";\n"
+"    case \"light snow\":\n"
+"    case \"snow grains\":\n"
+"      return \"weather-snow.svg\";\n"
+"    }\n"
+"    switch (weather.weatherObservation.clouds){\n"
+"      case \"few clouds\":\n"
+"      case \"scattered clouds\":\n"
+"        return \"weather-few-clouds.svg\";\n"
+"      case \"clear sky\":\n"
+"        return \"weather-clear.svg\"\n"
+"      case \"broken clouds\":\n"
+"      case \"overcast\":\n"
+"        return \"weather-overcast.svg\";\n"
+"    }\n"
+"    return \"weather-fog.svg\";\n"
+"}\n"
 
 #. (itstool) path: section/p
 #: C/weatherGeonames.js.page:97
@@ -38091,7 +41959,7 @@ msgstr "geonames.js"
 #. (itstool) path: section/p
 #: C/weatherGeonames.js.page:103
 msgid "Here is the entire code for our local library. The main program file calls this asynchronously."
-msgstr ""
+msgstr "Här är hela koden för vårt lokala bibliotek. Huvudprogramfilen anropar detta asynkront."
 
 #. (itstool) path: section/code
 #: C/weatherGeonames.js.page:104
@@ -38147,6 +42015,55 @@ msgid ""
 "}\n"
 "}  "
 msgstr ""
+"\n"
+"const Soup = imports.gi.Soup;\n"
+"const _httpSession = new Soup.SessionAsync();\n"
+"Soup.Session.prototype.add_feature.call(_httpSession, new Soup.ProxyResolverDefault());\n"
+"\n"
+"function GeoNames(station) {\n"
+"  this.station = station;\n"
+"}\n"
+"\n"
+"GeoNames.prototype = {\n"
+"  getWeather: function(callback) {\n"
+"    var request = Soup.Message.new('GET', 'http://api.geonames.org/weatherIcaoJSON?ICAO=' + this.station + 
'&amp;username=demo');\n"
+"    _httpSession.queue_message(request, function(_httpSession, message) {\n"
+"      if (message.status_code !== 200) {\n"
+"        callback(message.status_code, null);\n"
+"        return;\n"
+"      }\n"
+"      var weatherJSON = request.response_body.data;\n"
+"      var weather = JSON.parse(weatherJSON);\n"
+"      callback(null, weather);\n"
+"      });\n"
+"    },\n"
+"\n"
+"  getIcon: function(weather){\n"
+"    switch (weather.weatherObservation.weatherCondition){\n"
+"    case \"drizzle\":\n"
+"    case \"light showers rain\":\n"
+"    case \"light rain\":\n"
+"      return \"weather-showers-scattered.svg\";\n"
+"    case \"rain\":\n"
+"      return \"weather-showers.svg\";\n"
+"    case \"light snow\":\n"
+"    case \"snow grains\":\n"
+"      return \"weather-snow.svg\";\n"
+"    }\n"
+"    switch (weather.weatherObservation.clouds){\n"
+"      case \"few clouds\":\n"
+"      case \"scattered clouds\":\n"
+"        return \"weather-few-clouds.svg\";\n"
+"      case \"clear sky\":\n"
+"        return \"weather-clear.svg\"\n"
+"      case \"broken clouds\":\n"
+"      case \"overcast\":\n"
+"        return \"weather-overcast.svg\";\n"
+"    }\n"
+"    return \"weather-fog.svg\";\n"
+"    }\n"
+"}\n"
+"}  "
 
 #. (itstool) path: info/title
 #: C/widget_drawing.py.page:8
@@ -38157,7 +42074,7 @@ msgstr ""
 #. (itstool) path: info/desc
 #: C/widget_drawing.py.page:18
 msgid "A widget that uses the Cairo library to draw"
-msgstr ""
+msgstr "En komponent som använder Cairo-biblioteket för utritning"
 
 #. (itstool) path: page/title
 #: C/widget_drawing.py.page:21
@@ -38272,6 +42189,93 @@ msgid ""
 "exit_status = app.run(sys.argv)\n"
 "sys.exit(exit_status)\n"
 msgstr ""
+"from gi.repository import Gtk\n"
+"from gi.repository import cairo\n"
+"import sys\n"
+"import math\n"
+"\n"
+"\n"
+"class MyWindow(Gtk.ApplicationWindow):\n"
+"\n"
+"    def __init__(self, app):\n"
+"        Gtk.Window.__init__(self, title=\"Välj en vinkel\", application=app)\n"
+"        self.set_default_size(400, 400)\n"
+"        self.set_border_width(10)\n"
+"\n"
+"        # en standardvinkel\n"
+"        self.angle = 360\n"
+"\n"
+"        grid = Gtk.Grid()\n"
+"\n"
+"        # en stegningsruta som använder ett värde som vinkel\n"
+"        ad = Gtk.Adjustment(360, 0, 360, 1, 0, 0)\n"
+"        self.spin = Gtk.SpinButton(adjustment=ad, climb_rate=1, digits=0)\n"
+"        self.spin.connect(\"value-changed\", self.get_angle)\n"
+"\n"
+"        # en rityta för att rita vad vi vill\n"
+"        self.darea = Gtk.DrawingArea()\n"
+"        # som vi beskriver i metoden draw(), ansluten till signalen ”draw”\n"
+"        self.darea.connect(\"draw\", self.draw)\n"
+"        # vi måste begära en minsta storlek för ritytan, annars försvinner den\n"
+"        self.darea.set_size_request(300, 300)\n"
+"\n"
+"        grid.attach(self.spin, 0, 0, 1, 1)\n"
+"        grid.attach(self.darea, 0, 1, 1, 1)\n"
+"\n"
+"        self.add(grid)\n"
+"\n"
+"    # närhelst vi får en ny vinkel i stegningsrutan\n"
+"    def get_angle(self, event):\n"
+"        self.angle = self.spin.get_value_as_int()\n"
+"        # rita om det som finns i ritytan\n"
+"        self.darea.queue_draw()\n"
+"\n"
+"    def draw(self, darea, cr):\n"
+"        # en 10 bildpunkter bred linje\n"
+"        cr.set_line_width(10)\n"
+"        # röd\n"
+"        cr.set_source_rgba(0.5, 0.0, 0.0, 1.0)\n"
+"\n"
+"        # få bredden och höjden på ritytan\n"
+"        w = self.darea.get_allocated_width()\n"
+"        h = self.darea.get_allocated_height()\n"
+"\n"
+"        # gå till mitten på ritytan\n"
+"        # (translatera från övre vänstra hörnet till w/2, h/2)\n"
+"        cr.translate(w / 2, h / 2)\n"
+"        # rita en linje till (55, 0)\n"
+"        cr.line_to(55, 0)\n"
+"        # och gå tillbaka till (0, 0)\n"
+"        cr.line_to(0, 0)\n"
+"        # rita en båge centrerad i origo, 50 bildpunkter bred, från vinkel 0\n"
+"        # (i radianer) till vinkeln angiven av stegningsrutan (i grader)\n"
+"        cr.arc(0, 0, 50, 0, self.angle * (math.pi / 180))\n"
+"        # rita en linje tillbaka till origo\n"
+"        cr.line_to(0, 0)\n"
+"        # ritar banan, och behåller banan för framtida användning\n"
+"        cr.stroke_preserve()\n"
+"\n"
+"        # ställ in en färg\n"
+"        cr.set_source_rgba(0.0, 0.5, 0.5, 1.0)\n"
+"        # och använd den för att fylla banan (som vi hade behållit)\n"
+"        cr.fill()\n"
+"\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"\n"
+"    def __init__(self):\n"
+"        Gtk.Application.__init__(self)\n"
+"\n"
+"    def do_activate(self):\n"
+"        win = MyWindow(self)\n"
+"        win.show_all()\n"
+"\n"
+"    def do_startup(self):\n"
+"        Gtk.Application.do_startup(self)\n"
+"\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
 
 #. (itstool) path: item/p
 #: C/widget_drawing.py.page:39
@@ -38440,6 +42444,47 @@ msgid ""
 "let app = new Application ();\n"
 "app.application.run (ARGV);\n"
 msgstr ""
+"\n"
+"#!/usr/bin/gjs\n"
+"\n"
+"imports.gi.versions.Gtk = '3.0';\n"
+"\n"
+"const Gio = imports.gi.Gio;\n"
+"const GLib = imports.gi.GLib;\n"
+"const Gtk = imports.gi.Gtk;\n"
+"\n"
+"class Application {\n"
+"    //skapa programmet\n"
+"    constructor() {\n"
+"        this.application = new Gtk.Application({\n"
+"            application_id: 'org.example.myapp',\n"
+"            flags: Gio.ApplicationFlags.FLAGS_NONE\n"
+"        });\n"
+"\n"
+"       this.application.connect('activate', this._onActivate.bind(this));\n"
+"    }\n"
+"\n"
+"    //återanropsfunktion för ”activate”-signal\n"
+"    _onActivate() {\n"
+"        let myWindow = new Gtk.Window({type: Gtk.WindowType.TOPLEVEL});\n"
+"        myWindow.title = \"Välkommen till GNOME\";\n"
+"\n"
+"       /* Här är några sätt vi kan anpassa våra fönster.\n"
+"       Pröva att avkommentera dem eller ändra deras värden! */\n"
+"        //myWindow.set_default_size (400,200);\n"
+"        //myWindow.set_has_resize_grip (false);\n"
+"        //myWindow.set_opacity (0.5);\n"
+"        //myWindow.maximize ();\n"
+"\n"
+"        //visa fönstret och alla barnkomponenter (ingen i detta fall)\n"
+"        myWindow.show_all();\n"
+"        this.application.add_window(myWindow);\n"
+"    }\n"
+"};\n"
+"\n"
+"//kör programmet\n"
+"let app = new Application ();\n"
+"app.application.run (ARGV);\n"
 
 #. (itstool) path: page/p
 #: C/window.js.page:35
@@ -38491,6 +42536,25 @@ msgid ""
 "exit_status = app.run(sys.argv)\n"
 "sys.exit(exit_status)\n"
 msgstr ""
+"from gi.repository import Gtk\n"
+"import sys\n"
+"\n"
+"\n"
+"class MyApplication(Gtk.Application):\n"
+"\n"
+"    def do_activate(self):\n"
+"        # skapa ett Gtk.Window som tillhör programmet i sig\n"
+"        window = Gtk.Window(application=self)\n"
+"        # ställ in titeln\n"
+"        window.set_title(\"Välkommen till GNOME\")\n"
+"        # visa fönstret\n"
+"        window.show_all()\n"
+"\n"
+"# skapa och kör programmet, avsluta med värdet som returneras\n"
+"# av att köra programmet\n"
+"app = MyApplication()\n"
+"exit_status = app.run(sys.argv)\n"
+"sys.exit(exit_status)\n"
 
 #. (itstool) path: section/title
 #: C/window.py.page:52
@@ -38555,6 +42619,43 @@ msgid ""
 "\treturn app.run (args);\n"
 "}\n"
 msgstr ""
+"/*  Det här är programmet. */\n"
+"public class Application : Gtk.Application {\n"
+"\n"
+"\t/* Konstruktor */\n"
+"\tpublic Application () {\n"
+"\t\tObject (application_id: \"org.example.window\");\n"
+"\t}\n"
+"\n"
+"\t/* Åsidosätt ”activate”-signalen för GLib.Application,\n"
+"\t * vilken ärvs av Gtk.Application. */\n"
+"\tpublic override void activate () {\n"
+"\n"
+"\t\tvar window = new Gtk.Window ();\n"
+"\t\twindow.title = \"Välkommen till GNOME\";\n"
+"\n"
+"\t\t/* De följande tre raderna inkluderas här för att visa\n"
+"\t\t * dig sätt du kan justera toppnivåfönstret enligt dina\n"
+"\t\t * behov. Avkommentera dem för att se vad de gör.\n"
+"\t\t */\n"
+"\n"
+"\t\t//window.border_width = 10;\n"
+"\t\t//window.set_default_size (350, 70);\n"
+"\t\t//window.window_position = Gtk.WindowPosition.CENTER;\n"
+"\n"
+"\t\t/* Lägg till fönstret till detta program. */\n"
+"\t\tthis.add_window (window);\n"
+"\n"
+"\t\t/* Visa fönstret. */\n"
+"\t\twindow.show ();\n"
+"\t}\n"
+"}\n"
+"\n"
+"/* main-funktionen skapar programmet och kör det.*/\n"
+"int main (string[] args) {\n"
+"\tvar app = new Application ();\n"
+"\treturn app.run (args);\n"
+"}\n"
 
 #. (itstool) path: item/p
 #: C/window.vala.page:39
@@ -38565,6 +42666,7 @@ msgstr "Komponenten <link href=\"http://www.valadoc.org/gtk+-3.0/Gtk.Window.html
 #: C/window.vala.page:41
 msgid "The enum <link 
href=\"http://www.valadoc.org/gtk+-3.0/Gtk.WindowPosition.html\";>Gtk.WindowPosition</link>"
 msgstr ""
+"Uppräkningstypen <link 
href=\"http://www.valadoc.org/gtk+-3.0/Gtk.WindowPosition.html\";>Gtk.WindowPosition</link>"
 
 #. (itstool) path: item/p
 #: C/window.vala.page:43
@@ -38615,6 +42717,9 @@ msgid ""
 "<link href=\"https://developer.gnome.org/glib/stable/glib-The-Main-Event-Loop.html#GSource\";>GLib API 
reference</"
 "link>."
 msgstr ""
+"Denna artikel är en handledning i hur du skapar en anpassad <code>GSource</code>. För 
referensdokumentationen, se "
+"<link href=\"https://developer.gnome.org/glib/stable/glib-The-Main-Event-Loop.html#GSource\";>API-referensen 
för "
+"GLib</link>."
 
 #. (itstool) path: section/title
 #: C/custom-gsource.c.page:37
@@ -38780,7 +42885,7 @@ msgstr ""
 #. (itstool) path: section/title
 #: C/custom-gsource.c.page:169
 msgid "Callback Functions"
-msgstr ""
+msgstr "Återanropsfunktioner"
 
 #. (itstool) path: section/p
 #: C/custom-gsource.c.page:171


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