diff --git b/.flake8 a/.flake8
new file mode 100644
index 0000000..0146a5f
--- /dev/null
+++ a/.flake8
@@ -0,0 +1,6 @@
+[flake8]
+
+# E402 module level import not at top of file
+# gi.require_version() is required before later imports
+
+ignore = E402
diff --git b/MAINTAINERS a/MAINTAINERS
new file mode 100644
index 0000000..0f3a245
--- /dev/null
+++ a/MAINTAINERS
@@ -0,0 +1,14 @@
+Current maintainers
+-------------------
+
+Aleksey Lim <alsroot@member.fsf.org> http://github.com/alsroot (Journal)
+Tomeu Vizoso <tomeu@sugarlabs.org> http://github.com/tomeuv
+Gonzalo Odiard http://github.com/godiard
+Martin Abente Lahaye <tch@sugarlabs.org>http://github.com/tchx84
+Sam <sam@sam.today> http://github.com/samdroid-apps
+
+
+Past maintainers
+----------------
+
+Marco Pesenti Gritti <marcopg@sugarlabs.org>
diff --git b/autogen.sh a/autogen.sh
new file mode 100755
index 0000000..739e7f8
--- /dev/null
+++ a/autogen.sh
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+test -n "${srcdir}" || srcdir=`dirname "$0"`
+test -n "${srcdir}" || srcdir="$(pwd)"
+
+olddir="$(pwd)"
+cd "$srcdir"
+
+mkdir -p m4
+
+intltoolize --force
+autoreconf -i
+
+cd "$olddir"
+"$srcdir/configure" --enable-maintainer-mode "$@"
diff --git b/data/.gitignore a/data/.gitignore
new file mode 100644
index 0000000..09d75cd
--- /dev/null
+++ a/data/.gitignore
@@ -0,0 +1,3 @@
+*.gtkrc
+sugar.schemas
+org.sugarlabs.gschema.valid
diff --git b/docs/debian.md a/docs/debian.md
index 725b6a1..9183bb7 100644
--- b/docs/debian.md
+++ a/docs/debian.md
@@ -18,7 +18,7 @@ sudo apt install sucrose lightdm
 exec sudo reboot
 ```
 
--   in the graphical login screen, change from the default X session to Sugar,
+-   in the graphical login screen, [change from the default X session to Sugar](https://github.com/sugarlabs/sugar-docs/blob/master/src/sugar-logging-in.md),
 -   log in as the non-root user, which you will have created during install.
 
 Known bugs include;
@@ -41,7 +41,7 @@ sudo apt install sucrose lightdm
 exec sudo reboot
 ```
 
--   in the graphical login screen, change from the default X session to Sugar,
+-   in the graphical login screen, [change from the default X session to Sugar](https://github.com/sugarlabs/sugar-docs/blob/master/src/sugar-logging-in.md),
 -   log in as your non-root user, created during install.
 
 Known bugs include;
@@ -61,10 +61,9 @@ Packaging
 
 Packaging of Sugar on Debian is done by a team:
 
--   [pkg-sugar project](https://alioth.debian.org/projects/pkg-sugar/),
+-   [pkg-sugar-team project](https://salsa.debian.org/pkg-sugar-team),
 -   [pkg-sugar-devel mailing list](https://lists.alioth.debian.org/mailman/listinfo/pkg-sugar-devel),
--   [pkg-sugar-commit mailing list](https://lists.alioth.debian.org/mailman/listinfo/pkg-sugar-commit),
--   [pkg-sugar git repositories](https://anonscm.debian.org/cgit/pkg-sugar/),
+-   [pkg-sugar git repositories](https://salsa.debian.org/pkg-sugar-team/sugar)
 -   [package archive of Jonas Smedegaard](http://debian.jones.dk/pkg/sugar_/),
 
 Sucrose packages are usually updated in the unstable release. These packages migrate to the testing release after a while. You can see the current package versions [here](http://packages.debian.org/search?keywords=sugar&searchon=names&suite=all&section=all).
diff --git b/docs/development-environment.md a/docs/development-environment.md
index eb1914d..7bd61a4 100644
--- b/docs/development-environment.md
+++ a/docs/development-environment.md
@@ -26,7 +26,7 @@ See [downloads](http://people.sugarlabs.org/~quozl/sugar-live-build/) for the IS
 
 Once installed, Sugar Live Build can be used to make changes to Sugar, the toolkits, the demonstration activities, or to write new activities.
 
--   changes to Sugar or the toolkits can be done by editing files in the module source trees in `/usr/src`, followed by `sudo make install` for each changed module.
+-   changes to Sugar or the toolkits can be done by editing files in the module source trees in `/usr/src`, followed by per-module [install steps](https://github.com/sugarlabs/sugar-live-build/blob/master/src/config/hooks/normal/0900-sugar.hook.chroot#L42) for each changed module.  See [issue 442](https://github.com/sugarlabs/sugar-toolkit-gtk3/issues/442) for details.
 
 -   changes to demonstration activities can be done in the activity source trees in `/usr/src/sugar-activities`, and are immediately effective; just start a new instance of the activity in Sugar.
 
@@ -49,7 +49,7 @@ Install the `sucrose` package;
 
     sudo apt install sucrose
 
-Log out, then log in with the Sugar desktop selected.
+Log out, then [log in with the Sugar desktop selected](https://github.com/sugarlabs/sugar-docs/blob/master/src/sugar-logging-in.md).
 
 Once Sugar is installed, development of activities can begin.
 
@@ -144,7 +144,7 @@ Clone the Browse and Terminal activities;
     git clone https://github.com/sugarlabs/browse-activity.git Browse.activity
     git clone https://github.com/sugarlabs/terminal-activity.git Terminal.activity
 
-Log out and log in again with the Sugar desktop selected, or use the remote desktop feature described earlier on this page.
+Log out and [log in again with the Sugar desktop selected](https://github.com/sugarlabs/sugar-docs/blob/master/src/sugar-logging-in.md), or use the remote desktop feature described earlier on this page.
 
 After making changes in a Sugar module, repeat the `sudo make install` step, and log in again.
 
diff --git b/docs/fedora.md a/docs/fedora.md
index 4b50b8b..af3c3e9 100644
--- b/docs/fedora.md
+++ a/docs/fedora.md
@@ -12,7 +12,7 @@ Install Fedora. Then, in a Terminal, type:
 
     sudo dnf groupinstall sugar-desktop
 
-Then restart your computer. At the *Sign in* select the *Sugar* desktop.
+Then restart your computer. At the *Sign in* select the *Sugar* desktop (Fedora uses GDM by default, tutorial to login to Sugar using GDM can be viewed in [the Sugar Docs](https://github.com/sugarlabs/sugar-docs/blob/master/src/sugar-logging-in.md)).
 
 Using Sugar with another Desktop Environment
 --------------------------------------------
diff --git b/docs/ubuntu.md a/docs/ubuntu.md
index 34c5644..26661cd 100644
--- b/docs/ubuntu.md
+++ a/docs/ubuntu.md
@@ -14,7 +14,7 @@ Sugar 0.112 can be installed with the following commands:
     sudo apt install sucrose
 
 -   log out,
--   log in with the Sugar desktop selected,
+-   [log in with the Sugar desktop selected](https://github.com/sugarlabs/sugar-docs/blob/master/src/sugar-logging-in.md),
 
 Known Problems:
 
@@ -31,7 +31,7 @@ Sugar 0.112 is in the universe repository, and can be installed with the followi
     sudo apt install sucrose
 
 -   log out,
--   log in with the Sugar desktop selected,
+-   [log in with the Sugar desktop selected](https://github.com/sugarlabs/sugar-docs/blob/master/src/sugar-logging-in.md),
 
 Ubuntu 18.04 (Bionic Beaver) and 18.10 (Cosmic Cuttlefish)
 -------------------
@@ -44,7 +44,7 @@ Sugar 0.112 is in the universe repository, and can be installed with the followi
     sudo apt install sucrose
 
 -   log out,
--   log in with the Sugar desktop selected,
+-   [log in with the Sugar desktop selected](https://github.com/sugarlabs/sugar-docs/blob/master/src/sugar-logging-in.md),
 -   press the F3 key to switch to the home view, see below.
 
 Known problems
diff --git b/extensions/cpsection/language/view.py a/extensions/cpsection/language/view.py
index 39beda7..b2bb51e 100644
--- b/extensions/cpsection/language/view.py
+++ a/extensions/cpsection/language/view.py
@@ -486,6 +486,7 @@ class BlackLabel(PaletteMenuItem):
         self.set_label(text_label)
 
     def set_label(self, text_label):
+        text_label = GLib.markup_escape_text(text_label)
         text = '<span foreground="%s">' % style.COLOR_BLACK.get_html() + \
             text_label + '</span>'
         self.label.set_markup(text)
diff --git b/extensions/cpsection/modemconfiguration/model.py a/extensions/cpsection/modemconfiguration/model.py
index e2ba304..dfe0e20 100755
--- b/extensions/cpsection/modemconfiguration/model.py
+++ a/extensions/cpsection/modemconfiguration/model.py
@@ -318,8 +318,6 @@ class ServiceProviders(object):
         provider_name = self._settings.get_string(CONF_SP_PROVIDER)
         if not provider_name:
             provider_name = ''
-        else:
-            provider_name = provider_name.decode('utf-8')
 
         plan_idx = self._settings.get_int(CONF_SP_PLAN) or 0
 
diff --git b/po/en_US.po a/po/en_US.po
new file mode 100644
index 0000000..06414dd
--- /dev/null
+++ a/po/en_US.po
@@ -0,0 +1,2016 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-07-31 00:33-0400\n"
+"PO-Revision-Date: 2013-08-01 05:05+0200\n"
+"Last-Translator: Chris <cjl@laptop.org>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: en_US\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Pootle 2.0.5\n"
+
+#: ../extensions/cpsection/aboutme/__init__.py:24
+msgid "About Me"
+msgstr "About Me"
+
+#: ../extensions/cpsection/aboutme/model.py:48
+msgid "You must enter a name."
+msgstr "You must enter a name."
+
+#: ../extensions/cpsection/aboutme/model.py:75
+#, python-format
+msgid "stroke:   color=%s hue=%s"
+msgstr "stroke:   color=%s hue=%s"
+
+#: ../extensions/cpsection/aboutme/model.py:78
+#, python-format
+msgid "stroke:   %s"
+msgstr "stroke:   %s"
+
+#: ../extensions/cpsection/aboutme/model.py:80
+#, python-format
+msgid "fill:     color=%s hue=%s"
+msgstr "fill:     color=%s hue=%s"
+
+#: ../extensions/cpsection/aboutme/model.py:82
+#, python-format
+msgid "fill:     %s"
+msgstr "fill:     %s"
+
+#: ../extensions/cpsection/aboutme/model.py:94
+msgid "Error in specified color modifiers."
+msgstr "Error in specified color modifiers."
+
+#: ../extensions/cpsection/aboutme/model.py:97
+msgid "Error in specified colors."
+msgstr "Error in specified colors."
+
+#: ../extensions/cpsection/aboutme/view.py:212
+msgid "Click to change your color:"
+msgstr "Click to change your color:"
+
+#: ../extensions/cpsection/aboutcomputer/__init__.py:21
+msgid "About my Computer"
+msgstr "About my Computer"
+
+#: ../extensions/cpsection/aboutcomputer/model.py:42
+msgid "Not available"
+msgstr "Not available"
+
+#: ../extensions/cpsection/aboutcomputer/view.py:60
+msgid "Identity"
+msgstr "Identity"
+
+#: ../extensions/cpsection/aboutcomputer/view.py:69
+msgid "Serial Number:"
+msgstr "Serial Number:"
+
+#: ../extensions/cpsection/aboutcomputer/view.py:91
+msgid "Software"
+msgstr "Software"
+
+#: ../extensions/cpsection/aboutcomputer/view.py:100
+msgid "Build:"
+msgstr "Build:"
+
+#: ../extensions/cpsection/aboutcomputer/view.py:115
+msgid "Sugar:"
+msgstr "Sugar:"
+
+#: ../extensions/cpsection/aboutcomputer/view.py:130
+msgid "Firmware:"
+msgstr "Firmware:"
+
+#: ../extensions/cpsection/aboutcomputer/view.py:145
+msgid "Wireless Firmware:"
+msgstr "Wireless Firmware:"
+
+#: ../extensions/cpsection/aboutcomputer/view.py:168
+msgid "Copyright and License"
+msgstr "Copyright and License"
+
+#. TRANS: The word "Sugar" should not be translated.
+#: ../extensions/cpsection/aboutcomputer/view.py:187
+msgid ""
+"Sugar is the graphical user interface that you are looking at. Sugar is free "
+"software, covered by the GNU General Public License, and you are welcome to "
+"change it and/or distribute copies of it under certain conditions described "
+"therein."
+msgstr ""
+"Sugar is the graphical user interface that you are looking at. Sugar is free "
+"software, covered by the GNU General Public License, and you are welcome to "
+"change it and/or distribute copies of it under certain conditions described "
+"therein."
+
+#: ../extensions/cpsection/aboutcomputer/view.py:199
+msgid "Full license:"
+msgstr "Full license:"
+
+#: ../extensions/cpsection/background/__init__.py:21
+msgid "Background"
+msgstr "Background"
+
+#: ../extensions/cpsection/background/view.py:39
+msgid "Select a background:"
+msgstr "Select a background:"
+
+#: ../extensions/cpsection/background/view.py:46
+msgid "Clear background"
+msgstr "Clear background"
+
+#: ../extensions/cpsection/datetime/__init__.py:21
+msgid "Date & Time"
+msgstr "Date & Time"
+
+#: ../extensions/cpsection/datetime/model.py:92
+msgid "Error timezone does not exist."
+msgstr "Error timezone does not exist."
+
+#: ../extensions/cpsection/datetime/view.py:66 ../data/sugar.schemas.in.h:61
+msgid "Timezone"
+msgstr "Timezone"
+
+#: ../extensions/cpsection/frame/__init__.py:21
+msgid "Frame"
+msgstr "Frame"
+
+#: ../extensions/cpsection/frame/model.py:41
+#: ../extensions/cpsection/frame/model.py:66
+msgid "Value must be an integer."
+msgstr "Value must be an integer."
+
+#: ../extensions/cpsection/frame/view.py:27
+msgid "never"
+msgstr "never"
+
+#: ../extensions/cpsection/frame/view.py:28
+msgid "instantaneous"
+msgstr "instantaneous"
+
+#: ../extensions/cpsection/frame/view.py:29
+#, python-format
+msgid "%s seconds"
+msgstr "%s seconds"
+
+#: ../extensions/cpsection/frame/view.py:54
+msgid "Activation Delay"
+msgstr "Activation Delay"
+
+#: ../extensions/cpsection/frame/view.py:78
+msgid "Corner"
+msgstr "Corner"
+
+#: ../extensions/cpsection/frame/view.py:114
+msgid "Edge"
+msgstr "Edge"
+
+#: ../extensions/cpsection/keyboard/__init__.py:21
+#: ../extensions/cpsection/keyboard/view.py:38
+msgid "Keyboard"
+msgstr "Keyboard"
+
+#: ../extensions/cpsection/keyboard/view.py:240
+msgid "Keyboard Model"
+msgstr "Keyboard Model"
+
+#: ../extensions/cpsection/keyboard/view.py:301
+msgid "Key(s) to change layout"
+msgstr "Key(s) to change layout"
+
+#: ../extensions/cpsection/keyboard/view.py:369
+msgid "Keyboard Layout(s)"
+msgstr "Keyboard Layout(s)"
+
+#: ../extensions/cpsection/language/__init__.py:21
+#: ../extensions/cpsection/language/view.py:33
+msgid "Language"
+msgstr "Language"
+
+#: ../extensions/cpsection/language/model.py:30
+msgid "Could not access ~/.i18n. Create standard settings."
+msgstr "Could not access ~/.i18n. Create standard settings."
+
+#: ../extensions/cpsection/language/model.py:129
+#, python-format
+msgid "Language for code=%s could not be determined."
+msgstr "Language for code=%s could not be determined."
+
+#: ../extensions/cpsection/language/model.py:152
+#, python-format
+msgid "Sorry I do not speak '%s'."
+msgstr "Sorry I do not speak '%s'."
+
+#: ../extensions/cpsection/language/view.py:57
+msgid ""
+"Add languages in the order you prefer. If a translation is not available, "
+"the next in the list will be used."
+msgstr ""
+"Add languages in the order you prefer. If a translation is not available, "
+"the next in the list will be used."
+
+#: ../extensions/cpsection/modemconfiguration/__init__.py:21
+msgid "Modem Configuration"
+msgstr "Modem Configuration"
+
+#: ../extensions/cpsection/modemconfiguration/view.py:94
+msgid ""
+"You will need to provide the following information to set up a mobile "
+"broadband connection to a cellular (3G) network."
+msgstr ""
+"You will need to provide the following information to set up a mobile "
+"broadband connection to a cellular (3G) network."
+
+#: ../extensions/cpsection/modemconfiguration/view.py:117
+msgid "Country:"
+msgstr "Country:"
+
+#: ../extensions/cpsection/modemconfiguration/view.py:118
+msgid "Provider:"
+msgstr "Provider:"
+
+#: ../extensions/cpsection/modemconfiguration/view.py:119
+msgid "Plan:"
+msgstr "Plan:"
+
+#: ../extensions/cpsection/modemconfiguration/view.py:160
+msgid "Username:"
+msgstr "Username:"
+
+#: ../extensions/cpsection/modemconfiguration/view.py:167
+msgid "Password:"
+msgstr "Password:"
+
+#: ../extensions/cpsection/modemconfiguration/view.py:174
+msgid "Number:"
+msgstr "Number:"
+
+#: ../extensions/cpsection/modemconfiguration/view.py:181
+msgid "Access Point Name (APN):"
+msgstr "Access Point Name (APN):"
+
+#: ../extensions/cpsection/modemconfiguration/view.py:188
+msgid "Personal Identity Number (PIN):"
+msgstr "Personal Identity Number (PIN):"
+
+#: ../extensions/cpsection/modemconfiguration/model.py:161
+#, python-format
+msgid "Plan #%s"
+msgstr "Plan #%s"
+
+#: ../extensions/cpsection/modemconfiguration/model.py:291
+#, python-format
+msgid "Provider %s"
+msgstr "Provider %s"
+
+#: ../extensions/cpsection/network/__init__.py:21
+#: ../extensions/cpsection/network/view.py:30
+msgid "Network"
+msgstr "Network"
+
+#: ../extensions/cpsection/network/model.py:73
+msgid "State is unknown."
+msgstr "State is unknown."
+
+#: ../extensions/cpsection/network/model.py:101
+msgid "Error in specified radio argument use on/off."
+msgstr "Error in specified radio argument use on/off."
+
+#: ../extensions/cpsection/network/model.py:152
+msgid "Error in specified argument use 0/1."
+msgstr "Error in specified argument use 0/1."
+
+#: ../extensions/cpsection/network/view.py:68
+msgid "Wireless"
+msgstr "Wireless"
+
+#: ../extensions/cpsection/network/view.py:77
+msgid "Turn off the wireless radio to save battery life"
+msgstr "Turn off the wireless radio to save battery life"
+
+#: ../extensions/cpsection/network/view.py:90
+msgid "Radio"
+msgstr "Radio"
+
+#: ../extensions/cpsection/network/view.py:106
+msgid "Discard network history if you have trouble connecting to the network"
+msgstr "Discard network history if you have trouble connecting to the network"
+
+#: ../extensions/cpsection/network/view.py:115
+msgid "Discard network history"
+msgstr "Discard network history"
+
+#: ../extensions/cpsection/network/view.py:131
+msgid "Collaboration"
+msgstr "Collaboration"
+
+#: ../extensions/cpsection/network/view.py:139
+msgid ""
+"The server is the equivalent of what room you are in; people on the same "
+"server will be able to see each other, even when they aren't on the same "
+"network."
+msgstr ""
+"The server is the equivalent of what room you are in; people on the same "
+"server will be able to see each other, even when they aren't on the same "
+"network."
+
+#: ../extensions/cpsection/network/view.py:149
+msgid "Server:"
+msgstr "Server:"
+
+#: ../extensions/cpsection/power/__init__.py:21
+msgid "Power"
+msgstr "Power"
+
+#: ../extensions/cpsection/power/model.py:90
+msgid "Error in automatic pm argument, use on/off."
+msgstr "Error in automatic pm argument, use on/off."
+
+#: ../extensions/cpsection/power/view.py:45
+msgid "Power management"
+msgstr "Power management"
+
+#: ../extensions/cpsection/power/view.py:55 ../data/sugar.schemas.in.h:5
+msgid "Automatic power management (increases battery life)"
+msgstr "Automatic power management (increases battery life)"
+
+#: ../extensions/cpsection/updater/__init__.py:21
+msgid "Software Update"
+msgstr "Software Update"
+
+#: ../extensions/cpsection/updater/view.py:65
+msgid ""
+"Software updates correct errors, eliminate security vulnerabilities, and "
+"provide new features."
+msgstr ""
+"Software updates correct errors, eliminate security vulnerabilities, and "
+"provide new features."
+
+#: ../extensions/cpsection/updater/view.py:79
+msgid "Update in progress..."
+msgstr "Update in progress..."
+
+#: ../extensions/cpsection/updater/view.py:106
+msgid "Checking for updates..."
+msgstr "Checking for updates..."
+
+#: ../extensions/cpsection/updater/view.py:108
+msgid "Installing updates..."
+msgstr "Installing updates..."
+
+#: ../extensions/cpsection/updater/view.py:137
+#, python-format
+msgid "Checking %s..."
+msgstr "Checking %s..."
+
+#: ../extensions/cpsection/updater/view.py:139
+msgid "Looking for updates..."
+msgstr "Looking for updates..."
+
+#: ../extensions/cpsection/updater/view.py:141
+#, python-format
+msgid "Downloading %s..."
+msgstr "Downloading %s..."
+
+#: ../extensions/cpsection/updater/view.py:143
+#, python-format
+msgid "Updating %s..."
+msgstr "Updating %s..."
+
+#: ../extensions/cpsection/updater/view.py:153
+msgid "Your software is up-to-date"
+msgstr "Your software is up-to-date"
+
+#: ../extensions/cpsection/updater/view.py:155
+#, python-format
+msgid "You can install %s update"
+msgid_plural "You can install %s updates"
+msgstr[0] "You can install %s update"
+msgstr[1] "You can install %s updates"
+
+#: ../extensions/cpsection/updater/view.py:184
+#, python-format
+msgid "%s update was installed"
+msgid_plural "%s updates were installed"
+msgstr[0] "%s update was installed"
+msgstr[1] "%s updates were installed"
+
+#: ../extensions/cpsection/updater/view.py:266
+msgid "Install selected"
+msgstr "Install selected"
+
+#: ../extensions/cpsection/updater/view.py:284
+#, python-format
+msgid "Download size: %s"
+msgstr "Download size: %s"
+
+#: ../extensions/cpsection/updater/view.py:373
+#, python-format
+msgid "From version %(current)s to %(new)s (Size: %(size)s)"
+msgstr "From version %(current)s to %(new)s (Size: %(size)s)"
+
+#: ../extensions/cpsection/updater/view.py:380
+#, python-format
+msgid "Version %(version)s (Size: %(size)s)"
+msgstr "Version %(version)s (Size: %(size)s)"
+
+#. TRANS: download size is 0
+#: ../extensions/cpsection/updater/view.py:397
+msgid "None"
+msgstr "None"
+
+#. TRANS: download size of very small updates
+#: ../extensions/cpsection/updater/view.py:400
+msgid "1 KB"
+msgstr "1 KB"
+
+#. TRANS: download size of small updates, e.g. '250 KB'
+#: ../extensions/cpsection/updater/view.py:403
+#, python-format
+msgid "%.0f KB"
+msgstr "%.0f KB"
+
+#. TRANS: download size of updates, e.g. '2.3 MB'
+#: ../extensions/cpsection/updater/view.py:406
+#, python-format
+msgid "%.1f MB"
+msgstr "%.1f MB"
+
+#: ../extensions/cpsection/webaccount/__init__.py:24
+msgid "Configure your Web Services"
+msgstr "Configure your Web Services"
+
+#: ../extensions/cpsection/webaccount/view.py:42
+#, python-format
+msgid ""
+"No web services are installed.\n"
+"Please visit %s for more details."
+msgstr ""
+"No web services are installed.\n"
+"Please visit %s for more details."
+
+#: ../extensions/deviceicon/battery.py:71
+msgid "My Battery"
+msgstr "My Battery"
+
+#: ../extensions/deviceicon/battery.py:153
+msgid "Removed"
+msgstr "Removed"
+
+#: ../extensions/deviceicon/battery.py:156
+msgid "Charging"
+msgstr "Charging"
+
+#: ../extensions/deviceicon/battery.py:159
+msgid "Very little power remaining"
+msgstr "Very little power remaining"
+
+#. TRANS: do not translate %(hour)d:%(min).2d  it is a variable,
+#. only translate the word "remaining"
+#: ../extensions/deviceicon/battery.py:166
+#, python-format
+msgid "%(hour)d:%(min).2d remaining"
+msgstr "%(hour)d:%(min).2d remaining"
+
+#: ../extensions/deviceicon/battery.py:169
+msgid "Charged"
+msgstr "Charged"
+
+#: ../extensions/deviceicon/frame.py:56
+msgid "Show my keyboard"
+msgstr "Show my keyboard"
+
+#: ../extensions/deviceicon/network.py:50
+#, python-format
+msgid "IP address: %s"
+msgstr "IP address: %s"
+
+#: ../extensions/deviceicon/network.py:82
+#: ../extensions/deviceicon/network.py:298
+#: ../src/jarabe/desktop/networkviews.py:135
+#: ../src/jarabe/desktop/networkviews.py:509
+msgid "Disconnect"
+msgstr "Disconnect"
+
+#: ../extensions/deviceicon/network.py:107
+#: ../extensions/deviceicon/network.py:290
+#: ../src/jarabe/desktop/networkviews.py:251
+#: ../src/jarabe/desktop/networkviews.py:551
+#: ../src/jarabe/desktop/networkviews.py:693
+msgid "Connecting..."
+msgstr "Connecting..."
+
+#: ../extensions/deviceicon/network.py:112
+#: ../extensions/deviceicon/network.py:180
+#: ../src/jarabe/desktop/networkviews.py:258
+#: ../src/jarabe/desktop/networkviews.py:557
+#: ../src/jarabe/desktop/networkviews.py:699
+msgid "Connected"
+msgstr "Connected"
+
+#: ../extensions/deviceicon/network.py:125
+msgid "No wireless connection"
+msgstr "No wireless connection"
+
+#: ../extensions/deviceicon/network.py:139
+msgid "Channel"
+msgstr "Channel"
+
+#: ../extensions/deviceicon/network.py:154
+msgid "Wired Network"
+msgstr "Wired Network"
+
+#: ../extensions/deviceicon/network.py:183
+msgid "Speed"
+msgstr "Speed"
+
+#: ../extensions/deviceicon/network.py:208
+msgid "Wireless modem"
+msgstr "Wireless modem"
+
+#: ../extensions/deviceicon/network.py:276
+msgid "Please wait..."
+msgstr "Please wait..."
+
+#: ../extensions/deviceicon/network.py:281
+#: ../src/jarabe/desktop/networkviews.py:129
+#: ../src/jarabe/desktop/networkviews.py:503
+#: ../src/jarabe/desktop/networkviews.py:644
+msgid "Connect"
+msgstr "Connect"
+
+#: ../extensions/deviceicon/network.py:282
+msgid "Disconnected"
+msgstr "Disconnected"
+
+#: ../extensions/deviceicon/network.py:289
+#: ../src/jarabe/controlpanel/toolbar.py:121
+#: ../src/jarabe/desktop/keydialog.py:101
+#: ../src/jarabe/frame/activitiestray.py:625
+#: ../src/jarabe/frame/activitiestray.py:746
+#: ../src/jarabe/frame/activitiestray.py:778
+#: ../src/jarabe/journal/expandedentry.py:159
+#: ../src/jarabe/journal/journaltoolbox.py:480
+#: ../src/jarabe/journal/palettes.py:159
+msgid "Cancel"
+msgstr "Cancel"
+
+#: ../extensions/deviceicon/network.py:328
+msgid "Try connection again"
+msgstr "Try connection again"
+
+#: ../extensions/deviceicon/network.py:331
+#, python-format
+msgid "Error: %s"
+msgstr "Error: %s"
+
+#: ../extensions/deviceicon/network.py:335
+#, python-format
+msgid "Suggestion: %s"
+msgstr "Suggestion: %s"
+
+#: ../extensions/deviceicon/network.py:344
+#, python-format
+msgid "Connected for %s"
+msgstr "Connected for %s"
+
+#: ../extensions/deviceicon/network.py:350
+#: ../extensions/deviceicon/network.py:351
+#, python-format
+msgid "%d KB"
+msgstr "%d KB"
+
+#: ../extensions/deviceicon/network.py:356
+msgid "Check your PIN/PUK configuration."
+msgstr "Check your PIN/PUK configuration."
+
+#: ../extensions/deviceicon/network.py:359
+msgid "Check your Access Point Name (APN) configuration"
+msgstr "Check your Access Point Name (APN) configuration"
+
+#: ../extensions/deviceicon/network.py:363
+msgid "Check the Number configuration."
+msgstr "Check the Number configuration."
+
+#: ../extensions/deviceicon/network.py:365
+msgid "Check your configuration."
+msgstr "Check your configuration."
+
+#: ../extensions/deviceicon/network.py:621
+msgid "Mesh Network"
+msgstr "Mesh Network"
+
+#: ../extensions/deviceicon/network.py:668
+#, python-format
+msgid "Mesh Network %s"
+msgstr "Mesh Network %s"
+
+#: ../extensions/deviceicon/network.py:788
+msgid "No GSM connection available."
+msgstr "No GSM connection available."
+
+#: ../extensions/deviceicon/network.py:789
+msgid "Create a connection in the control panel."
+msgstr "Create a connection in the control panel."
+
+#: ../extensions/deviceicon/speech.py:52
+msgid "Speech"
+msgstr "Speech"
+
+#: ../extensions/deviceicon/speech.py:76
+#: ../extensions/deviceicon/speech.py:150
+#: ../extensions/deviceicon/speech.py:155
+msgid "Say selected text"
+msgstr "Say selected text"
+
+#: ../extensions/deviceicon/speech.py:83
+msgid "Stop playback"
+msgstr "Stop playback"
+
+#: ../extensions/deviceicon/speech.py:92
+msgid "Pitch"
+msgstr "Pitch"
+
+#: ../extensions/deviceicon/speech.py:107
+msgid "Rate"
+msgstr "Rate"
+
+#: ../extensions/deviceicon/speech.py:145
+msgid "Pause playback"
+msgstr "Pause playback"
+
+#: ../extensions/deviceicon/speaker.py:61
+msgid "My Speakers"
+msgstr "My Speakers"
+
+#: ../extensions/deviceicon/speaker.py:136
+msgid "Unmute"
+msgstr "Unmute"
+
+#: ../extensions/deviceicon/speaker.py:139
+msgid "Mute"
+msgstr "Mute"
+
+#: ../extensions/deviceicon/touchpad.py:38
+msgid "finger"
+msgstr "finger"
+
+#: ../extensions/deviceicon/touchpad.py:38
+msgid "stylus"
+msgstr "stylus"
+
+#: ../extensions/deviceicon/touchpad.py:64
+msgid "My touchpad"
+msgstr "My touchpad"
+
+#: ../extensions/deviceicon/volume.py:72 ../src/jarabe/view/palettes.py:184
+msgid "Show contents"
+msgstr "Show contents"
+
+#: ../extensions/globalkey/screenshot.py:61
+msgid "Mesh"
+msgstr "Mesh"
+
+#: ../extensions/globalkey/screenshot.py:63
+#: ../src/jarabe/desktop/homewindow.py:221
+#: ../src/jarabe/frame/zoomtoolbar.py:53
+msgid "Group"
+msgstr "Group"
+
+#: ../extensions/globalkey/screenshot.py:65
+#: ../src/jarabe/desktop/homewindow.py:214
+#: ../src/jarabe/desktop/viewtoolbar.py:73
+#: ../src/jarabe/frame/zoomtoolbar.py:57
+msgid "Home"
+msgstr "Home"
+
+#: ../extensions/globalkey/screenshot.py:71
+#: ../src/jarabe/frame/zoomtoolbar.py:62
+msgid "Activity"
+msgstr "Activity"
+
+#: ../extensions/globalkey/screenshot.py:74
+msgid "Screenshot"
+msgstr "Screenshot"
+
+#: ../extensions/globalkey/screenshot.py:76
+#, python-format
+msgid "Screenshot of \"%s\""
+msgstr "Screenshot of \"%s\""
+
+#: ../data/sugar.schemas.in.h:1
+msgid ""
+"\"disabled\" to ask nick on initialization; \"system\" to reuse UNIX account "
+"long name."
+msgstr ""
+"\"disabled\" to ask nick on initialization; \"system\" to reuse UNIX account "
+"long name."
+
+#: ../data/sugar.schemas.in.h:2
+msgid ""
+"A unix timestamp (seconds since epoch) of the last successful activity "
+"update."
+msgstr ""
+"A unix timestamp (seconds since epoch) of the last successful activity "
+"update."
+
+#: ../data/sugar.schemas.in.h:3
+msgid ""
+"Activity update backend module, followed by a period, followed by the class "
+"name."
+msgstr ""
+"Activity update backend module, followed by a period, followed by the class "
+"name."
+
+#: ../data/sugar.schemas.in.h:4
+msgid "Activity update backend."
+msgstr "Activity update backend."
+
+#: ../data/sugar.schemas.in.h:6
+msgid "Automatic update frequency."
+msgstr "Automatic update frequency."
+
+#: ../data/sugar.schemas.in.h:7
+msgid "Backup URL"
+msgstr "Backup URL"
+
+#: ../data/sugar.schemas.in.h:8
+msgid "Bundle IDs of protected activities"
+msgstr "Bundle IDs of protected activities"
+
+#: ../data/sugar.schemas.in.h:9
+msgid ""
+"Color for the XO icon that is used throughout the desktop. The string is "
+"composed of the stroke color and fill color, format is that of rgb colors. "
+"Example: #AC32FF,#9A5200"
+msgstr ""
+"Color for the XO icon that is used throughout the desktop. The string is "
+"composed of the stroke color and fill color, format is that of rgb colors. "
+"Example: #AC32FF,#9A5200"
+
+#: ../data/sugar.schemas.in.h:10
+msgid "Corner Delay"
+msgstr "Corner Delay"
+
+#: ../data/sugar.schemas.in.h:11
+msgid "Default font face"
+msgstr "Default font face"
+
+#: ../data/sugar.schemas.in.h:12
+msgid "Default font size"
+msgstr "Default font size"
+
+#: ../data/sugar.schemas.in.h:13
+msgid "Default nick"
+msgstr "Default nick"
+
+#: ../data/sugar.schemas.in.h:14
+msgid "Delay for the activation of the frame using the corners."
+msgstr "Delay for the activation of the frame using the corners."
+
+#: ../data/sugar.schemas.in.h:15
+msgid "Delay for the activation of the frame using the edges."
+msgstr "Delay for the activation of the frame using the edges."
+
+#: ../data/sugar.schemas.in.h:16
+msgid "Edge Delay"
+msgstr "Edge Delay"
+
+#: ../data/sugar.schemas.in.h:17
+msgid ""
+"Extreme power management (disables wireless radio, increases battery life)"
+msgstr ""
+"Extreme power management (disables wireless radio, increases battery life)"
+
+#: ../data/sugar.schemas.in.h:18
+msgid "Favorites Layout"
+msgstr "Favorites Layout"
+
+#: ../data/sugar.schemas.in.h:19
+msgid "Favorites resume mode"
+msgstr "Favorites resume mode"
+
+#: ../data/sugar.schemas.in.h:20
+msgid "Font face that is used throughout the desktop."
+msgstr "Font face that is used throughout the desktop."
+
+#: ../data/sugar.schemas.in.h:21
+msgid "Font size that is used throughout the desktop."
+msgstr "Font size that is used throughout the desktop."
+
+#: ../data/sugar.schemas.in.h:22
+msgid ""
+"Frequency of automatic activity updates, measured in days. 0 means disabled."
+msgstr ""
+"Frequency of automatic activity updates, measured in days. 0 means disabled."
+
+#: ../data/sugar.schemas.in.h:23
+msgid "GSM network APN (DEPRECATED/UNUSED)"
+msgstr "GSM network APN (DEPRECATED/UNUSED)"
+
+#: ../data/sugar.schemas.in.h:24
+msgid "GSM network PIN (DEPRECATED/UNUSED)"
+msgstr "GSM network PIN (DEPRECATED/UNUSED)"
+
+#: ../data/sugar.schemas.in.h:25
+msgid "GSM network PUK (DEPRECATED/UNUSED)"
+msgstr "GSM network PUK (DEPRECATED/UNUSED)"
+
+#: ../data/sugar.schemas.in.h:26
+msgid "GSM network access point name configuration (DEPRECATED/UNUSED)"
+msgstr "GSM network access point name configuration (DEPRECATED/UNUSED)"
+
+#: ../data/sugar.schemas.in.h:27
+msgid "GSM network number (DEPRECATED/UNUSED)"
+msgstr "GSM network number (DEPRECATED/UNUSED)"
+
+#: ../data/sugar.schemas.in.h:28
+msgid "GSM network password (DEPRECATED/UNUSED)"
+msgstr "GSM network password (DEPRECATED/UNUSED)"
+
+#: ../data/sugar.schemas.in.h:29
+msgid "GSM network password configuration (DEPRECATED/UNUSED)"
+msgstr "GSM network password configuration (DEPRECATED/UNUSED)"
+
+#: ../data/sugar.schemas.in.h:30
+msgid ""
+"GSM network personal identification number configuration (DEPRECATED/UNUSED)"
+msgstr ""
+"GSM network personal identification number configuration (DEPRECATED/UNUSED)"
+
+#: ../data/sugar.schemas.in.h:31
+msgid "GSM network personal unlock key configuration (DEPRECATED/UNUSED)"
+msgstr "GSM network personal unlock key configuration (DEPRECATED/UNUSED)"
+
+#: ../data/sugar.schemas.in.h:32
+msgid "GSM network telephone number configuration (DEPRECATED/UNUSED)"
+msgstr "GSM network telephone number configuration (DEPRECATED/UNUSED)"
+
+#: ../data/sugar.schemas.in.h:33
+msgid "GSM network username (DEPRECATED/UNUSED)"
+msgstr "GSM network username (DEPRECATED/UNUSED)"
+
+#: ../data/sugar.schemas.in.h:34
+msgid "GSM network username configuration (DEPRECATED/UNUSED)"
+msgstr "GSM network username configuration (DEPRECATED/UNUSED)"
+
+#: ../data/sugar.schemas.in.h:35
+msgid ""
+"If TRUE, Sugar will make us searchable for the other users of the Jabber "
+"server."
+msgstr ""
+"If TRUE, Sugar will make us searchable for the other users of the Jabber "
+"server."
+
+#: ../data/sugar.schemas.in.h:36
+msgid "If TRUE, Sugar will show a \"Log out\" option."
+msgstr "If TRUE, Sugar will show a \"Log out\" option."
+
+#: ../data/sugar.schemas.in.h:37
+msgid "If TRUE, Sugar will show a \"Restart\" option."
+msgstr "If TRUE, Sugar will show a \"Restart\" option."
+
+#: ../data/sugar.schemas.in.h:38
+msgid ""
+"If TRUE, Sugar will show default Ad-hoc networks for channel 1,6 and 11. If "
+"Sugar sees no \"known\" network when it starts, it does autoconnect to an Ad-"
+"hoc network."
+msgstr ""
+"If TRUE, Sugar will show default Ad-hoc networks for channel 1,6 and 11. If "
+"Sugar sees no \"known\" network when it starts, it does autoconnect to an Ad-"
+"hoc network."
+
+#: ../data/sugar.schemas.in.h:39
+msgid "Jabber Server"
+msgstr "Jabber Server"
+
+#: ../data/sugar.schemas.in.h:40
+msgid "Keyboard layouts"
+msgstr "Keyboard layouts"
+
+#: ../data/sugar.schemas.in.h:41
+msgid "Keyboard model"
+msgstr "Keyboard model"
+
+#: ../data/sugar.schemas.in.h:42
+msgid "Keyboard options"
+msgstr "Keyboard options"
+
+#: ../data/sugar.schemas.in.h:43
+msgid "Layout of the favorites view."
+msgstr "Layout of the favorites view."
+
+#: ../data/sugar.schemas.in.h:44
+msgid ""
+"List of keyboard layouts. Each entry should be in the form layout(variant)"
+msgstr ""
+"List of keyboard layouts. Each entry should be in the form layout(variant)"
+
+#: ../data/sugar.schemas.in.h:45
+msgid "List of keyboard options."
+msgstr "List of keyboard options."
+
+#: ../data/sugar.schemas.in.h:46
+msgid "Microformat update URL."
+msgstr "Microformat update URL."
+
+#: ../data/sugar.schemas.in.h:47
+msgid "Pitch value for the speech sugar service"
+msgstr "Pitch value for the speech sugar service"
+
+#: ../data/sugar.schemas.in.h:48
+msgid "Pitch value used by the speech service in Sugar"
+msgstr "Pitch value used by the speech service in Sugar"
+
+#: ../data/sugar.schemas.in.h:49
+msgid "Power Automatic"
+msgstr "Power Automatic"
+
+#: ../data/sugar.schemas.in.h:50
+msgid "Power Extreme"
+msgstr "Power Extreme"
+
+#: ../data/sugar.schemas.in.h:51
+msgid "Publish to Gadget"
+msgstr "Publish to Gadget"
+
+#: ../data/sugar.schemas.in.h:52
+msgid "Rate value for the speech sugar service"
+msgstr "Rate value for the speech sugar service"
+
+#: ../data/sugar.schemas.in.h:53
+msgid "Rate value used by the speech service in Sugar"
+msgstr "Rate value used by the speech service in Sugar"
+
+#: ../data/sugar.schemas.in.h:54
+msgid "Setting for muting the sound device."
+msgstr "Setting for muting the sound device."
+
+#: ../data/sugar.schemas.in.h:55
+msgid "Show Log out"
+msgstr "Show Log out"
+
+#: ../data/sugar.schemas.in.h:56
+msgid "Show Restart"
+msgstr "Show Restart"
+
+#: ../data/sugar.schemas.in.h:57
+msgid "Show Sugar Ad-hoc networks"
+msgstr "Show Sugar Ad-hoc networks"
+
+#: ../data/sugar.schemas.in.h:58
+msgid "Sound Muted"
+msgstr "Sound Muted"
+
+#: ../data/sugar.schemas.in.h:59
+msgid "The keyboard model to be used"
+msgstr "The keyboard model to be used"
+
+#: ../data/sugar.schemas.in.h:60
+msgid "Timestamp of last activity update."
+msgstr "Timestamp of last activity update."
+
+#: ../data/sugar.schemas.in.h:62
+msgid "Timezone setting for the system."
+msgstr "Timezone setting for the system."
+
+#: ../data/sugar.schemas.in.h:63
+msgid "URL of the jabber server to use."
+msgstr "URL of the jabber server to use."
+
+#: ../data/sugar.schemas.in.h:64
+msgid ""
+"URL used by the microformat update backend for activity update information."
+msgstr ""
+"URL used by the microformat update backend for activity update information."
+
+#: ../data/sugar.schemas.in.h:65
+msgid "URL where the backup is saved to."
+msgstr "URL where the backup is saved to."
+
+#: ../data/sugar.schemas.in.h:66
+msgid "User Color"
+msgstr "User Color"
+
+#: ../data/sugar.schemas.in.h:67
+msgid "User Name"
+msgstr "User Name"
+
+#: ../data/sugar.schemas.in.h:68
+msgid "User name that is used throughout the desktop."
+msgstr "User name that is used throughout the desktop."
+
+#: ../data/sugar.schemas.in.h:69
+msgid ""
+"Users will not be allowed to erase these activities through the list view."
+msgstr ""
+"Users will not be allowed to erase these activities through the list view."
+
+#: ../data/sugar.schemas.in.h:70
+msgid "Volume Level"
+msgstr "Volume Level"
+
+#: ../data/sugar.schemas.in.h:71
+msgid "Volume level for the sound device."
+msgstr "Volume level for the sound device."
+
+#: ../data/sugar.schemas.in.h:72
+msgid ""
+"When in resume mode, clicking on a favorite icon will cause the last entry "
+"for that activity to be resumed."
+msgstr ""
+"When in resume mode, clicking on a favorite icon will cause the last entry "
+"for that activity to be resumed."
+
+#: ../src/jarabe/controlpanel/cmd.py:28
+#, python-format
+msgid ""
+"sugar-control-panel: WARNING, found more than one option with the same name: "
+"%s module: %r"
+msgstr ""
+"sugar-control-panel: WARNING, found more than one option with the same name: "
+"%s module: %r"
+
+#: ../src/jarabe/controlpanel/cmd.py:30
+#, python-format
+msgid "sugar-control-panel: key=%s not an available option"
+msgstr "sugar-control-panel: key=%s not an available option"
+
+#: ../src/jarabe/controlpanel/cmd.py:31
+#, python-format
+msgid "sugar-control-panel: %s"
+msgstr "sugar-control-panel: %s"
+
+#. TRANS: Translators, there's a empty line at the end of this string,
+#. which must appear in the translated string (msgstr) as well.
+#: ../src/jarabe/controlpanel/cmd.py:38
+msgid ""
+"Usage: sugar-control-panel [ option ] key [ args ... ] \n"
+"    Control for the sugar environment. \n"
+"    Options: \n"
+"    -h           show this help message and exit \n"
+"    -l           list all the available options \n"
+"    -h key       show information about this key \n"
+"    -g key       get the current value of the key \n"
+"    -s key       set the current value for the key \n"
+"    -c key       clear the current value for the key \n"
+"    "
+msgstr ""
+"Usage: sugar-control-panel [ option ] key [ args ... ] \n"
+"    Control for the sugar environment. \n"
+"    Options: \n"
+"    -h           show this help message and exit \n"
+"    -l           list all the available options \n"
+"    -h key       show information about this key \n"
+"    -g key       get the current value of the key \n"
+"    -s key       set the current value for the key \n"
+"    -c key       clear the current value for the key \n"
+"    "
+
+#: ../src/jarabe/controlpanel/cmd.py:52
+msgid "To apply your changes you have to restart Sugar.\n"
+msgstr "To apply your changes you have to restart Sugar.\n"
+
+#: ../src/jarabe/controlpanel/gui.py:323 ../src/jarabe/journal/palettes.py:187
+#: ../src/jarabe/journal/palettes.py:350 ../src/jarabe/journal/palettes.py:410
+#: ../src/jarabe/journal/volumestoolbar.py:302
+msgid "Warning"
+msgstr "Warning"
+
+#: ../src/jarabe/controlpanel/gui.py:324
+#: ../src/jarabe/controlpanel/sectionview.py:41
+msgid "Changes require restart"
+msgstr "Changes require restart"
+
+#: ../src/jarabe/controlpanel/gui.py:328
+msgid "Cancel changes"
+msgstr "Cancel changes"
+
+#: ../src/jarabe/controlpanel/gui.py:333
+msgid "Later"
+msgstr "Later"
+
+#: ../src/jarabe/controlpanel/gui.py:337
+msgid "Restart now"
+msgstr "Restart now"
+
+#: ../src/jarabe/controlpanel/toolbar.py:56
+#: ../src/jarabe/desktop/viewtoolbar.py:129
+#: ../src/jarabe/journal/journaltoolbox.py:89
+#, python-format
+msgid "Search in %s"
+msgstr "Search in %s"
+
+#: ../src/jarabe/controlpanel/toolbar.py:56
+msgid "Settings"
+msgstr "Settings"
+
+#: ../src/jarabe/controlpanel/toolbar.py:65 ../src/jarabe/intro/window.py:211
+msgid "Done"
+msgstr "Done"
+
+#: ../src/jarabe/controlpanel/toolbar.py:127
+#: ../src/jarabe/desktop/favoritesview.py:374
+#: ../src/jarabe/desktop/keydialog.py:105
+msgid "Ok"
+msgstr "Ok"
+
+#: ../src/jarabe/desktop/activitieslist.py:282
+#, python-format
+msgid "Version %s"
+msgstr "Version %s"
+
+#: ../src/jarabe/desktop/activitieslist.py:385
+#: ../src/jarabe/journal/listview.py:475 ../src/jarabe/journal/iconview.py:299
+msgid "Clear search"
+msgstr "Clear search"
+
+#: ../src/jarabe/desktop/activitieslist.py:469
+msgid "No matching activities"
+msgstr "No matching activities"
+
+#: ../src/jarabe/desktop/activitieslist.py:505
+msgid "Confirm erase"
+msgstr "Confirm erase"
+
+#: ../src/jarabe/desktop/activitieslist.py:507
+#, python-format
+msgid "Confirm erase: Do you want to permanently erase %s?"
+msgstr "Confirm erase: Do you want to permanently erase %s?"
+
+#: ../src/jarabe/desktop/activitieslist.py:511
+#: ../src/jarabe/frame/clipboardmenu.py:65
+#: ../src/jarabe/view/viewsource.py:288
+msgid "Keep"
+msgstr "Keep"
+
+#: ../src/jarabe/desktop/activitieslist.py:514
+#: ../src/jarabe/desktop/activitieslist.py:578
+#: ../src/jarabe/journal/expandedentry.py:153
+#: ../src/jarabe/journal/journaltoolbox.py:443
+#: ../src/jarabe/journal/journaltoolbox.py:475
+#: ../src/jarabe/journal/journaltoolbox.py:689
+#: ../src/jarabe/journal/journaltoolbox.py:695
+#: ../src/jarabe/journal/palettes.py:132 ../src/jarabe/journal/palettes.py:154
+msgid "Erase"
+msgstr "Erase"
+
+#: ../src/jarabe/desktop/activitieslist.py:594
+msgid "Remove favorite"
+msgstr "Remove favorite"
+
+#: ../src/jarabe/desktop/activitieslist.py:598
+msgid "Make favorite"
+msgstr "Make favorite"
+
+#. TRANS: label for the freeform layout in the favorites view
+#: ../src/jarabe/desktop/favoriteslayout.py:199
+msgid "Freeform"
+msgstr "Freeform"
+
+#. TRANS: label for the ring layout in the favorites view
+#: ../src/jarabe/desktop/favoriteslayout.py:295
+msgid "Ring"
+msgstr "Ring"
+
+#. TRANS: label for the spiral layout in the favorites view
+#: ../src/jarabe/desktop/favoriteslayout.py:459
+msgid "Spiral"
+msgstr "Spiral"
+
+#. TRANS: label for the box layout in the favorites view
+#: ../src/jarabe/desktop/favoriteslayout.py:527
+msgid "Box"
+msgstr "Box"
+
+#. TRANS: label for the box layout in the favorites view
+#: ../src/jarabe/desktop/favoriteslayout.py:570
+msgid "Triangle"
+msgstr "Triangle"
+
+#: ../src/jarabe/desktop/favoritesview.py:365
+msgid "Registration Failed"
+msgstr "Registration Failed"
+
+#: ../src/jarabe/desktop/favoritesview.py:368
+msgid "Registration Successful"
+msgstr "Registration Successful"
+
+#: ../src/jarabe/desktop/favoritesview.py:369
+msgid "You are now registered with your school server."
+msgstr "You are now registered with your school server."
+
+#: ../src/jarabe/desktop/favoritesview.py:653
+msgid "Register"
+msgstr "Register"
+
+#: ../src/jarabe/desktop/favoritesview.py:656
+#: ../src/jarabe/desktop/favoritesview.py:672
+msgid "Register again"
+msgstr "Register again"
+
+#: ../src/jarabe/desktop/homewindow.py:228
+#: ../src/jarabe/frame/zoomtoolbar.py:49
+msgid "Neighborhood"
+msgstr "Neighborhood"
+
+#: ../src/jarabe/desktop/keydialog.py:94
+#, python-format
+msgid ""
+"A wireless encryption key is required for\n"
+" the wireless network '%s'."
+msgstr ""
+"A wireless encryption key is required for\n"
+" the wireless network '%s'."
+
+#: ../src/jarabe/desktop/keydialog.py:150
+msgid "Key Type:"
+msgstr "Key Type:"
+
+#: ../src/jarabe/desktop/keydialog.py:170
+msgid "Authentication Type:"
+msgstr "Authentication Type:"
+
+#: ../src/jarabe/desktop/keydialog.py:233
+msgid "WPA & WPA2 Personal"
+msgstr "WPA & WPA2 Personal"
+
+#: ../src/jarabe/desktop/keydialog.py:242
+msgid "Wireless Security:"
+msgstr "Wireless Security:"
+
+#. TRANS: Action label for resuming an activity.
+#: ../src/jarabe/desktop/meshbox.py:82
+#: ../src/jarabe/journal/journaltoolbox.py:548
+#: ../src/jarabe/journal/palettes.py:77 ../src/jarabe/view/palettes.py:96
+msgid "Resume"
+msgstr "Resume"
+
+#: ../src/jarabe/desktop/meshbox.py:89
+#: ../src/jarabe/frame/activitiestray.py:190
+msgid "Join"
+msgstr "Join"
+
+#: ../src/jarabe/desktop/networkviews.py:497
+#, python-format
+msgid "Ad-hoc Network %d"
+msgstr "Ad-hoc Network %d"
+
+#: ../src/jarabe/desktop/networkviews.py:639
+#, python-format
+msgid "Mesh Network %d"
+msgstr "Mesh Network %d"
+
+#: ../src/jarabe/desktop/schoolserver.py:144
+msgid "Cannot connect to the server."
+msgstr "Cannot connect to the server."
+
+#: ../src/jarabe/desktop/schoolserver.py:151
+msgid "The server could not complete the request."
+msgstr "The server could not complete the request."
+
+#: ../src/jarabe/desktop/viewtoolbar.py:95
+msgid "List view"
+msgstr "List view"
+
+#: ../src/jarabe/desktop/viewtoolbar.py:97
+#: ../src/jarabe/desktop/viewtoolbar.py:195
+#: ../src/jarabe/desktop/viewtoolbar.py:209
+#, python-format
+#, python-format,
+msgid "<Ctrl>%d"
+msgstr "<Ctrl>%d"
+
+#: ../src/jarabe/desktop/viewtoolbar.py:208
+#, python-format
+#, python-format,
+msgid "Favorites view %d"
+msgstr "Favorites view %d"
+
+#: ../src/jarabe/frame/activitiestray.py:195
+#: ../src/jarabe/frame/activitiestray.py:593
+msgid "Decline"
+msgstr "Decline"
+
+#: ../src/jarabe/frame/activitiestray.py:534
+#, python-format
+msgid "%dB"
+msgstr "%dB"
+
+#: ../src/jarabe/frame/activitiestray.py:536
+#, python-format
+msgid "%dKB"
+msgstr "%dKB"
+
+#: ../src/jarabe/frame/activitiestray.py:538
+#, python-format
+msgid "%dMB"
+msgstr "%dMB"
+
+#. TRANS: file transfer, bytes transferred, e.g. 128 of 1024
+#: ../src/jarabe/frame/activitiestray.py:556
+#, python-format
+msgid "%s of %s"
+msgstr "%s of %s"
+
+#: ../src/jarabe/frame/activitiestray.py:570
+#, python-format
+#, python-format,
+msgid "Transfer from %s"
+msgstr "Transfer from %s"
+
+#: ../src/jarabe/frame/activitiestray.py:585
+msgid "Accept"
+msgstr "Accept"
+
+#: ../src/jarabe/frame/activitiestray.py:653
+#: ../src/jarabe/frame/activitiestray.py:666
+#: ../src/jarabe/frame/activitiestray.py:807
+msgid "Dismiss"
+msgstr "Dismiss"
+
+#: ../src/jarabe/frame/activitiestray.py:680
+msgid "The other participant canceled the file transfer"
+msgstr "The other participant canceled the file transfer"
+
+#: ../src/jarabe/frame/activitiestray.py:730
+#, python-format
+#, python-format,
+msgid "Transfer to %s"
+msgstr "Transfer to %s"
+
+#: ../src/jarabe/frame/clipboardmenu.py:54
+msgctxt "Clipboard"
+msgid "Remove"
+msgstr "Remove"
+
+#: ../src/jarabe/frame/clipboardmenu.py:60
+#: ../src/jarabe/frame/clipboardmenu.py:83
+msgid "Open"
+msgstr "Open"
+
+#: ../src/jarabe/frame/clipboardmenu.py:88
+msgid "Open with"
+msgstr "Open with"
+
+#: ../src/jarabe/frame/clipboardobject.py:50
+#, python-format
+msgid "%s clipping"
+msgstr "%s clipping"
+
+#: ../src/jarabe/frame/zoomtoolbar.py:50
+msgid "F1"
+msgstr "F1"
+
+#: ../src/jarabe/frame/zoomtoolbar.py:54
+msgid "F2"
+msgstr "F2"
+
+#: ../src/jarabe/frame/zoomtoolbar.py:58
+msgid "F3"
+msgstr "F3"
+
+#: ../src/jarabe/frame/zoomtoolbar.py:63
+msgid "F4"
+msgstr "F4"
+
+#: ../src/jarabe/intro/window.py:106
+msgid "Name:"
+msgstr "Name:"
+
+#: ../src/jarabe/intro/window.py:136
+msgid "Click to change color:"
+msgstr "Click to change color:"
+
+#: ../src/jarabe/intro/window.py:200 ../src/jarabe/journal/detailview.py:95
+msgid "Back"
+msgstr "Back"
+
+#: ../src/jarabe/intro/window.py:214
+msgid "Next"
+msgstr "Next"
+
+#: ../src/jarabe/journal/expandedentry.py:155
+#: ../src/jarabe/journal/journaltoolbox.py:477
+#: ../src/jarabe/journal/palettes.py:156
+#, python-format
+msgid "Do you want to permanently erase \"%s\"?"
+msgstr "Do you want to permanently erase \"%s\"?"
+
+#: ../src/jarabe/journal/expandedentry.py:296
+#: ../src/jarabe/journal/listmodel.py:159 ../src/jarabe/journal/model.py:721
+#: ../src/jarabe/journal/palettes.py:70 ../src/jarabe/journal/palettes.py:597
+#: ../src/jarabe/journal/volumestoolbar.py:131
+#: ../src/jarabe/journal/iconmodel.py:110
+msgid "Untitled"
+msgstr "Untitled"
+
+#: ../src/jarabe/journal/expandedentry.py:367
+msgid "No preview"
+msgstr "No preview"
+
+#: ../src/jarabe/journal/expandedentry.py:382
+#, python-format
+msgid "Kind: %s"
+msgstr "Kind: %s"
+
+#: ../src/jarabe/journal/expandedentry.py:382
+#: ../src/jarabe/journal/listmodel.py:165
+#: ../src/jarabe/journal/listmodel.py:173
+msgid "Unknown"
+msgstr "Unknown"
+
+#: ../src/jarabe/journal/expandedentry.py:383
+#, python-format
+msgid "Date: %s"
+msgstr "Date: %s"
+
+#: ../src/jarabe/journal/expandedentry.py:384
+#, python-format
+msgid "Size: %s"
+msgstr "Size: %s"
+
+#: ../src/jarabe/journal/expandedentry.py:411
+#: ../src/jarabe/journal/misc.py:109
+msgid "No date"
+msgstr "No date"
+
+#: ../src/jarabe/journal/expandedentry.py:420
+msgid "Participants:"
+msgstr "Participants:"
+
+#: ../src/jarabe/journal/expandedentry.py:458
+msgid "Description:"
+msgstr "Description:"
+
+#: ../src/jarabe/journal/expandedentry.py:464
+msgid "Tags:"
+msgstr "Tags:"
+
+#: ../src/jarabe/journal/expandedentry.py:469
+msgid "Comments:"
+msgstr "Comments:"
+
+#: ../src/jarabe/journal/journalactivity.py:140
+#: ../src/jarabe/journal/journaltoolbox.py:89
+#: ../src/jarabe/journal/palettes.py:248
+#: ../src/jarabe/journal/volumestoolbar.py:363
+msgid "Journal"
+msgstr "Journal"
+
+#: ../src/jarabe/journal/journaltoolbox.py:98
+msgid "Favorite entries"
+msgstr "Favorite entries"
+
+#: ../src/jarabe/journal/journaltoolbox.py:134
+msgid "Anytime"
+msgstr "Anytime"
+
+#: ../src/jarabe/journal/journaltoolbox.py:136
+msgid "Today"
+msgstr "Today"
+
+#: ../src/jarabe/journal/journaltoolbox.py:138
+msgid "Since yesterday"
+msgstr "Since yesterday"
+
+#. TRANS: Filter entries modified during the last 7 days.
+#: ../src/jarabe/journal/journaltoolbox.py:140
+msgid "Past week"
+msgstr "Past week"
+
+#. TRANS: Filter entries modified during the last 30 days.
+#: ../src/jarabe/journal/journaltoolbox.py:142
+msgid "Past month"
+msgstr "Past month"
+
+#. TRANS: Filter entries modified during the last 356 days.
+#: ../src/jarabe/journal/journaltoolbox.py:144
+msgid "Past year"
+msgstr "Past year"
+
+#: ../src/jarabe/journal/journaltoolbox.py:151
+msgid "Anyone"
+msgstr "Anyone"
+
+#: ../src/jarabe/journal/journaltoolbox.py:153
+msgid "My friends"
+msgstr "My friends"
+
+#: ../src/jarabe/journal/journaltoolbox.py:154
+msgid "My class"
+msgstr "My class"
+
+#: ../src/jarabe/journal/journaltoolbox.py:327
+msgid "Anything"
+msgstr "Anything"
+
+#: ../src/jarabe/journal/journaltoolbox.py:419
+#: ../src/jarabe/journal/palettes.py:99
+msgid "Copy to"
+msgstr "Copy to"
+
+#: ../src/jarabe/journal/journaltoolbox.py:427
+#: ../src/jarabe/journal/palettes.py:110 ../src/jarabe/view/viewsource.py:282
+msgid "Duplicate"
+msgstr "Duplicate"
+
+#: ../src/jarabe/journal/journaltoolbox.py:433
+msgid "Refresh"
+msgstr "Refresh"
+
+#: ../src/jarabe/journal/journaltoolbox.py:470
+#: ../src/jarabe/journal/palettes.py:149 ../src/jarabe/journal/palettes.py:360
+#: ../src/jarabe/journal/volumestoolbar.py:310
+#, python-format
+msgid "Error while copying the entry. %s"
+msgstr "Error while copying the entry. %s"
+
+#: ../src/jarabe/journal/journaltoolbox.py:471
+#: ../src/jarabe/journal/palettes.py:150 ../src/jarabe/journal/palettes.py:361
+#: ../src/jarabe/journal/volumestoolbar.py:311
+msgid "Error"
+msgstr "Error"
+
+#. TRANS: Action label for starting an entry.
+#: ../src/jarabe/journal/journaltoolbox.py:551
+#: ../src/jarabe/journal/palettes.py:80
+msgid "Start"
+msgstr "Start"
+
+#: ../src/jarabe/journal/journaltoolbox.py:579
+msgid "Sort by date modified"
+msgstr "Sort by date modified"
+
+#: ../src/jarabe/journal/journaltoolbox.py:580
+msgid "Sort by date created"
+msgstr "Sort by date created"
+
+#: ../src/jarabe/journal/journaltoolbox.py:581
+msgid "Sort by size"
+msgstr "Sort by size"
+
+#: ../src/jarabe/journal/journaltoolbox.py:590
+msgid "Sort view"
+msgstr "Sort view"
+
+#: ../src/jarabe/journal/journaltoolbox.py:661
+msgid "Deselect all"
+msgstr "Deselect all"
+
+#: ../src/jarabe/journal/journaltoolbox.py:674
+msgid "Select all"
+msgstr "Select all"
+
+#: ../src/jarabe/journal/journaltoolbox.py:700
+#, python-format
+msgid "Do you want to erase %d entry?"
+msgid_plural "Do you want to erase %d entries?"
+msgstr[0] "Do you want to erase %d entry?"
+msgstr[1] "Do you want to erase %d entries?"
+
+#: ../src/jarabe/journal/journaltoolbox.py:714
+#: ../src/jarabe/journal/palettes.py:364
+msgid "Copy"
+msgstr "Copy"
+
+#. TRANS: Do not translate %(selected)d and %(total)d.
+#: ../src/jarabe/journal/journaltoolbox.py:759
+#, python-format
+msgid "Selected %(selected)d of %(total)d"
+msgstr "Selected %(selected)d of %(total)d"
+
+#: ../src/jarabe/journal/listview.py:387 ../src/jarabe/journal/iconview.py:211
+msgid "Your Journal is empty"
+msgstr "Your Journal is empty"
+
+#: ../src/jarabe/journal/listview.py:390 ../src/jarabe/journal/iconview.py:214
+msgid "Your documents folder is empty"
+msgstr "Your documents folder is empty"
+
+#: ../src/jarabe/journal/listview.py:392 ../src/jarabe/journal/iconview.py:216
+msgid "The device is empty"
+msgstr "The device is empty"
+
+#: ../src/jarabe/journal/listview.py:394 ../src/jarabe/journal/iconview.py:218
+msgid "No matching entries"
+msgstr "No matching entries"
+
+#: ../src/jarabe/journal/misc.py:252
+#, python-format
+msgid "Older Version Of %s Activity"
+msgstr "Older Version Of %s Activity"
+
+#: ../src/jarabe/journal/misc.py:253
+#, python-format
+msgid "Do you want to downgrade to version %s"
+msgstr "Do you want to downgrade to version %s"
+
+#: ../src/jarabe/journal/modalalert.py:65
+msgid "Your Journal is full"
+msgstr "Your Journal is full"
+
+#: ../src/jarabe/journal/modalalert.py:70
+msgid "Please delete some old Journal entries to make space for new ones."
+msgstr "Please delete some old Journal entries to make space for new ones."
+
+#: ../src/jarabe/journal/modalalert.py:84
+msgid "Show Journal"
+msgstr "Show Journal"
+
+#: ../src/jarabe/journal/objectchooser.py:170
+msgid "Choose an object"
+msgstr "Choose an object"
+
+#: ../src/jarabe/journal/objectchooser.py:175
+#, python-format
+msgid "Choose an object to open with %s activity"
+msgstr "Choose an object to open with %s activity"
+
+#: ../src/jarabe/journal/objectchooser.py:183
+#: ../src/jarabe/view/viewsource.py:418
+msgid "Close"
+msgstr "Close"
+
+#: ../src/jarabe/journal/palettes.py:78
+msgid "Resume with"
+msgstr "Resume with"
+
+#: ../src/jarabe/journal/palettes.py:81
+msgid "Start with"
+msgstr "Start with"
+
+#: ../src/jarabe/journal/palettes.py:94 ../src/jarabe/journal/palettes.py:489
+msgid "No activity to start entry"
+msgstr "No activity to start entry"
+
+#: ../src/jarabe/journal/palettes.py:118
+msgid "Send to"
+msgstr "Send to"
+
+#: ../src/jarabe/journal/palettes.py:127
+msgid "View Details"
+msgstr "View Details"
+
+#: ../src/jarabe/journal/palettes.py:186
+msgid "Entries without a file cannot be sent."
+msgstr "Entries without a file cannot be sent."
+
+#: ../src/jarabe/journal/palettes.py:260
+#: ../src/jarabe/journal/volumestoolbar.py:211
+msgid "Documents"
+msgstr "Documents"
+
+#: ../src/jarabe/journal/palettes.py:349 ../src/jarabe/journal/palettes.py:409
+#: ../src/jarabe/journal/volumestoolbar.py:301
+msgid "Entries without a file cannot be copied."
+msgstr "Entries without a file cannot be copied."
+
+#: ../src/jarabe/journal/palettes.py:369
+#, python-format
+msgid "Do you want to copy %d entry?"
+msgid_plural "Do you want to copy %d entries?"
+msgstr[0] "Do you want to copy %d entry?"
+msgstr[1] "Do you want to copy %d entries?"
+
+#: ../src/jarabe/journal/palettes.py:394
+msgid "Clipboard"
+msgstr "Clipboard"
+
+#: ../src/jarabe/journal/palettes.py:454
+msgid "No friends present"
+msgstr "No friends present"
+
+#: ../src/jarabe/journal/palettes.py:459
+msgid "No valid connection found"
+msgstr "No valid connection found"
+
+#: ../src/jarabe/journal/palettes.py:487
+msgid "No activity to resume entry"
+msgstr "No activity to resume entry"
+
+#: ../src/jarabe/journal/palettes.py:556 ../src/jarabe/view/palettes.py:110
+msgid "Stop"
+msgstr "Stop"
+
+#: ../src/jarabe/journal/palettes.py:561
+msgid "Continue"
+msgstr "Continue"
+
+#: ../src/jarabe/journal/palettes.py:598
+#, python-format
+msgid "%(index)d of %(total)d : %(object_title)s"
+msgstr "%(index)d of %(total)d : %(object_title)s"
+
+#: ../src/jarabe/journal/volumestoolbar.py:386
+#: ../src/jarabe/view/palettes.py:225 ../src/jarabe/view/palettes.py:292
+#, python-format
+msgid "%(free_space)d MB Free"
+msgstr "%(free_space)d MB Free"
+
+#: ../src/jarabe/model/network.py:214
+msgid "The reason for the device state change is unknown."
+msgstr "The reason for the device state change is unknown."
+
+#: ../src/jarabe/model/network.py:216
+msgid "The state change is normal."
+msgstr "The state change is normal."
+
+#: ../src/jarabe/model/network.py:218
+msgid "The device is now managed."
+msgstr "The device is now managed."
+
+#: ../src/jarabe/model/network.py:220
+msgid "The device is no longer managed."
+msgstr "The device is no longer managed."
+
+#: ../src/jarabe/model/network.py:222
+msgid "The device could not be readied for configuration."
+msgstr "The device could not be readied for configuration."
+
+#: ../src/jarabe/model/network.py:224
+msgid ""
+"IP configuration could not be reserved (no available address, timeout, etc)."
+msgstr ""
+"IP configuration could not be reserved (no available address, timeout, etc)."
+
+#: ../src/jarabe/model/network.py:227
+msgid "The IP configuration is no longer valid."
+msgstr "The IP configuration is no longer valid."
+
+#: ../src/jarabe/model/network.py:229
+msgid "Secrets were required, but not provided."
+msgstr "Secrets were required, but not provided."
+
+#: ../src/jarabe/model/network.py:231
+msgid ""
+"The 802.1X supplicant disconnected from the access point or authentication "
+"server."
+msgstr ""
+"The 802.1X supplicant disconnected from the access point or authentication "
+"server."
+
+#: ../src/jarabe/model/network.py:234
+msgid "Configuration of the 802.1X supplicant failed."
+msgstr "Configuration of the 802.1X supplicant failed."
+
+#: ../src/jarabe/model/network.py:236
+msgid "The 802.1X supplicant quit or failed unexpectedly."
+msgstr "The 802.1X supplicant quit or failed unexpectedly."
+
+#: ../src/jarabe/model/network.py:238
+msgid "The 802.1X supplicant took too long to authenticate."
+msgstr "The 802.1X supplicant took too long to authenticate."
+
+#: ../src/jarabe/model/network.py:240
+msgid "The PPP service failed to start within the allowed time."
+msgstr "The PPP service failed to start within the allowed time."
+
+#: ../src/jarabe/model/network.py:242
+msgid "The PPP service disconnected unexpectedly."
+msgstr "The PPP service disconnected unexpectedly."
+
+#: ../src/jarabe/model/network.py:244
+msgid "The PPP service quit or failed unexpectedly."
+msgstr "The PPP service quit or failed unexpectedly."
+
+#: ../src/jarabe/model/network.py:246
+msgid "The DHCP service failed to start within the allowed time."
+msgstr "The DHCP service failed to start within the allowed time."
+
+#: ../src/jarabe/model/network.py:248
+msgid "The DHCP service reported an unexpected error."
+msgstr "The DHCP service reported an unexpected error."
+
+#: ../src/jarabe/model/network.py:250
+msgid "The DHCP service quit or failed unexpectedly."
+msgstr "The DHCP service quit or failed unexpectedly."
+
+#: ../src/jarabe/model/network.py:252
+msgid "The shared connection service failed to start."
+msgstr "The shared connection service failed to start."
+
+#: ../src/jarabe/model/network.py:254
+msgid "The shared connection service quit or failed unexpectedly."
+msgstr "The shared connection service quit or failed unexpectedly."
+
+#: ../src/jarabe/model/network.py:257
+msgid "The AutoIP service failed to start."
+msgstr "The AutoIP service failed to start."
+
+#: ../src/jarabe/model/network.py:259
+msgid "The AutoIP service reported an unexpected error."
+msgstr "The AutoIP service reported an unexpected error."
+
+#: ../src/jarabe/model/network.py:261
+msgid "The AutoIP service quit or failed unexpectedly."
+msgstr "The AutoIP service quit or failed unexpectedly."
+
+#: ../src/jarabe/model/network.py:263
+msgid "Dialing failed because the line was busy."
+msgstr "Dialing failed because the line was busy."
+
+#: ../src/jarabe/model/network.py:265
+msgid "Dialing failed because there was no dial tone."
+msgstr "Dialing failed because there was no dial tone."
+
+#: ../src/jarabe/model/network.py:267
+msgid "Dialing failed because there was no carrier."
+msgstr "Dialing failed because there was no carrier."
+
+#: ../src/jarabe/model/network.py:269
+msgid "Dialing timed out."
+msgstr "Dialing timed out."
+
+#: ../src/jarabe/model/network.py:271
+msgid "Dialing failed."
+msgstr "Dialing failed."
+
+#: ../src/jarabe/model/network.py:273
+msgid "Modem initialization failed."
+msgstr "Modem initialization failed."
+
+#: ../src/jarabe/model/network.py:275
+msgid "Failed to select the specified GSM APN"
+msgstr "Failed to select the specified GSM APN"
+
+#: ../src/jarabe/model/network.py:277
+msgid "Not searching for networks."
+msgstr "Not searching for networks."
+
+#: ../src/jarabe/model/network.py:279
+msgid "Network registration was denied."
+msgstr "Network registration was denied."
+
+#: ../src/jarabe/model/network.py:281
+msgid "Network registration timed out."
+msgstr "Network registration timed out."
+
+#: ../src/jarabe/model/network.py:283
+msgid "Failed to register with the requested GSM network."
+msgstr "Failed to register with the requested GSM network."
+
+#: ../src/jarabe/model/network.py:285
+msgid "PIN check failed."
+msgstr "PIN check failed."
+
+#: ../src/jarabe/model/network.py:287
+msgid "Necessary firmware for the device may be missing."
+msgstr "Necessary firmware for the device may be missing."
+
+#: ../src/jarabe/model/network.py:289
+msgid "The device was removed."
+msgstr "The device was removed."
+
+#: ../src/jarabe/model/network.py:291
+msgid "NetworkManager went to sleep."
+msgstr "NetworkManager went to sleep."
+
+#: ../src/jarabe/model/network.py:293
+msgid "The device's active connection was removed or disappeared."
+msgstr "The device's active connection was removed or disappeared."
+
+#: ../src/jarabe/model/network.py:296
+msgid "A user or client requested the disconnection."
+msgstr "A user or client requested the disconnection."
+
+#: ../src/jarabe/model/network.py:298
+msgid "The device's carrier/link changed."
+msgstr "The device's carrier/link changed."
+
+#: ../src/jarabe/model/network.py:300
+msgid "The device's existing connection was assumed."
+msgstr "The device's existing connection was assumed."
+
+#: ../src/jarabe/model/network.py:302
+msgid "The supplicant is now available."
+msgstr "The supplicant is now available."
+
+#: ../src/jarabe/model/network.py:304
+msgid "The modem could not be found."
+msgstr "The modem could not be found."
+
+#: ../src/jarabe/model/network.py:306
+msgid "The Bluetooth connection failed or timed out."
+msgstr "The Bluetooth connection failed or timed out."
+
+#: ../src/jarabe/model/network.py:308
+msgid "Unused."
+msgstr "Unused."
+
+#: ../src/jarabe/view/buddymenu.py:72
+msgid "Remove friend"
+msgstr "Remove friend"
+
+#: ../src/jarabe/view/buddymenu.py:75
+msgid "Make friend"
+msgstr "Make friend"
+
+#: ../src/jarabe/view/buddymenu.py:91
+msgid "Shutdown"
+msgstr "Shutdown"
+
+#: ../src/jarabe/view/buddymenu.py:98
+msgid "Restart"
+msgstr "Restart"
+
+#: ../src/jarabe/view/buddymenu.py:104
+msgid "Logout"
+msgstr "Logout"
+
+#: ../src/jarabe/view/buddymenu.py:109
+msgid "My Settings"
+msgstr "My Settings"
+
+#: ../src/jarabe/view/buddymenu.py:149
+#, python-format
+msgid "Invite to %s"
+msgstr "Invite to %s"
+
+#: ../src/jarabe/view/launcher.py:144
+#, python-format
+msgid "<b>%s</b> failed to start."
+msgstr "<b>%s</b> failed to start."
+
+#: ../src/jarabe/view/palettes.py:51
+msgid "Starting..."
+msgstr "Starting..."
+
+#: ../src/jarabe/view/palettes.py:61
+msgid "Activity failed to start"
+msgstr "Activity failed to start"
+
+#. TODO: share-with, keep
+#: ../src/jarabe/view/palettes.py:102
+msgid "View Source"
+msgstr "View Source"
+
+#: ../src/jarabe/view/palettes.py:153
+msgid "Start new"
+msgstr "Start new"
+
+#: ../src/jarabe/view/palettes.py:241
+msgctxt "Volume"
+msgid "Remove"
+msgstr "Remove"
+
+#: ../src/jarabe/view/viewsource.py:271
+msgid "Instance Source"
+msgstr "Instance Source"
+
+#: ../src/jarabe/view/viewsource.py:320
+msgid "Source"
+msgstr "Source"
+
+#: ../src/jarabe/view/viewsource.py:382
+msgid "Activity Bundle Source"
+msgstr "Activity Bundle Source"
+
+#: ../src/jarabe/view/viewsource.py:401
+msgid "Sugar Toolkit Source"
+msgstr "Sugar Toolkit Source"
+
+#: ../src/jarabe/view/viewsource.py:408
+#, python-format
+#, python-format,
+msgid "View source: %s"
+msgstr "View source: %s"
+
+#: ../src/jarabe/view/viewsource.py:409
+#, python-format
+msgid "View source: %r"
+msgstr "View source: %r"
+
+#~ msgid "<Ctrl>1"
+#~ msgstr "<Ctrl>1"
+
+#~ msgid "Update your activities to ensure compatibility with your new software"
+#~ msgstr "Update your activities to ensure compatibility with your new software"
+
+#~ msgid "Check now"
+#~ msgstr "Check now"
+
+#~ msgid "Sugar in a window"
+#~ msgstr "Sugar in a window"
+
+#~ msgid "Software update"
+#~ msgstr "Software update"
+
+#~ msgid "Search"
+#~ msgstr "Search"
+
+#~ msgid "Additional directories which can contain updated translations."
+#~ msgstr "Additional directories which can contain updated translations."
+
+#~ msgid "Directory to search for translations"
+#~ msgstr "Directory to search for translations"
+
+#~ msgid "Error in extreme pm argument, use on/off."
+#~ msgstr "Error in extreme pm argument, use on/off."
diff --git b/po/kab.po a/po/kab.po
new file mode 100644
index 0000000..66c4bee
--- /dev/null
+++ a/po/kab.po
@@ -0,0 +1,2414 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2016-01-30 14:24+0000\n"
+"PO-Revision-Date: 2017-10-15 20:28+0000\n"
+"Last-Translator: Yacine-Bouklif <yacine_tizi2003@yahoo.fr>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: kab\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Pootle 2.5.1.1\n"
+"X-POOTLE-MTIME: 1508099328.000000\n"
+
+#: ../data/org.sugarlabs.gschema.xml.h:1
+msgid "Migrated to GSettings"
+msgstr "Yuneg ar GSettings"
+
+#: ../data/org.sugarlabs.gschema.xml.h:2
+msgid "This key shows whether or not GConf values were migrated to GSettings"
+msgstr ""
+"Tasarutt-agi teskan-d ma yella neɣ ala azalen n GConf unagen ar GSettings"
+
+#: ../data/org.sugarlabs.gschema.xml.h:3 ../data/sugar.schemas.in.h:11
+msgid "Backup URL"
+msgstr "Asekles n URL"
+
+#: ../data/org.sugarlabs.gschema.xml.h:4 ../data/sugar.schemas.in.h:12
+msgid "URL where the backup is saved to."
+msgstr "Tansa URL n usekles n uḥraz."
+
+#: ../data/org.sugarlabs.gschema.xml.h:5 ../data/sugar.schemas.in.h:31
+msgid "Show Log out"
+msgstr "Sken tuffɣa"
+
+#: ../data/org.sugarlabs.gschema.xml.h:6 ../data/sugar.schemas.in.h:32
+msgid "If TRUE, Sugar will show a \"Log out\" option."
+msgstr "Ma IH, Sugar ad d-yesken asefran \"Ffeɣ\"."
+
+#: ../data/org.sugarlabs.gschema.xml.h:7 ../data/sugar.schemas.in.h:33
+msgid "Show Restart"
+msgstr "Sken Ales Asenker"
+
+#: ../data/org.sugarlabs.gschema.xml.h:8 ../data/sugar.schemas.in.h:34
+msgid "If TRUE, Sugar will show a \"Restart\" option."
+msgstr "Ma IH, Sugar ad d-yesken asefran \"Ales Asenker\"."
+
+#: ../data/org.sugarlabs.gschema.xml.h:9 ../data/sugar.schemas.in.h:35
+msgid "Show Shutdown"
+msgstr "Sken Sens"
+
+#: ../data/org.sugarlabs.gschema.xml.h:10 ../data/sugar.schemas.in.h:36
+msgid "If TRUE, Sugar will show a \"Shutdown\" option."
+msgstr "Ma IH, Sugar ad d-yesken asefran \"Sens\"."
+
+#: ../data/org.sugarlabs.gschema.xml.h:11 ../data/sugar.schemas.in.h:37
+msgid "Show Register"
+msgstr "Sken ajerred"
+
+#: ../data/org.sugarlabs.gschema.xml.h:12 ../data/sugar.schemas.in.h:38
+msgid "If TRUE, Sugar will show a \"Register\" option in the buddy palette."
+msgstr "Ma IH, Sugar ad d-yesken asefran \"Ajerred\"."
+
+#: ../data/org.sugarlabs.gschema.xml.h:13 ../data/sugar.schemas.in.h:63
+msgid "Bundle IDs of protected activities"
+msgstr "Isulayen n iukemmes n irmuden yettwammestnen"
+
+#: ../data/org.sugarlabs.gschema.xml.h:14 ../data/sugar.schemas.in.h:64
+msgid ""
+"Users will not be allowed to erase these activities through the list view."
+msgstr "Iseqdacen ur ttwasirgen ara ad kksen irmuden-agi seg tmeẓri tabdart."
+
+#: ../data/org.sugarlabs.gschema.xml.h:15 ../data/sugar.schemas.in.h:79
+msgid "A limit to the number of simultaneously open activities."
+msgstr "Talast n umḍan n urmud yeldin akken."
+
+#: ../data/org.sugarlabs.gschema.xml.h:16 ../data/sugar.schemas.in.h:80
+msgid ""
+"This int is used to set a limit to the number of open activities. By default "
+"(0), there is no limit."
+msgstr ""
+"Umḍan-agi ummid yettwaseqdec i usbadu n talast n umḍan n irmuden yeldin. "
+"Azal amezwer d (0), ulac talast."
+
+#: ../data/org.sugarlabs.gschema.xml.h:17 ../data/sugar.schemas.in.h:1
+msgid "User Name"
+msgstr "Isem n useqdac"
+
+#: ../data/org.sugarlabs.gschema.xml.h:18 ../data/sugar.schemas.in.h:2
+msgid "User name that is used throughout the desktop."
+msgstr "Isem n useqdac yettwaseqdacen deg tnarit."
+
+#: ../data/org.sugarlabs.gschema.xml.h:19 ../data/sugar.schemas.in.h:3
+msgid "Default nick"
+msgstr "Meffer isem amezwer"
+
+#: ../data/org.sugarlabs.gschema.xml.h:20 ../data/sugar.schemas.in.h:4
+msgid ""
+"\"disabled\" to ask nick on initialization; \"system\" to reuse UNIX account "
+"long name."
+msgstr ""
+"\"yensa\" i usuter deg uwennez; \"anagraw\" i useqdec n yisem aɣezfan n "
+"umiḍan UNIX."
+
+#: ../data/org.sugarlabs.gschema.xml.h:21 ../data/sugar.schemas.in.h:5
+msgid "User Color"
+msgstr "Ini n useqdac"
+
+#: ../data/org.sugarlabs.gschema.xml.h:22 ../data/sugar.schemas.in.h:6
+msgid ""
+"Color for the XO icon that is used throughout the desktop. The string is "
+"composed of the stroke color and fill color, format is that of rgb colors. "
+"Example: #AC32FF,#9A5200"
+msgstr ""
+"Ini n tignit XO yettwaseqdacen deg tnarit. Azrir n isekkilen yegber initen n "
+"ujerriḍ akked tačcart. Amasal icudd ar yiniten rgb, Amedya: #AC32FF,#9A5200"
+
+#: ../data/org.sugarlabs.gschema.xml.h:23
+msgid "User Gender"
+msgstr "Tuzuft n useqdac"
+
+#: ../data/org.sugarlabs.gschema.xml.h:24
+msgid "Gender of the Sugar user, either male, female, or unassigned"
+msgstr "Tuzuft n useqdac n Sugar, amalay, unti, neɣ ulac"
+
+#: ../data/org.sugarlabs.gschema.xml.h:25
+msgid "User Birth Timestamp"
+msgstr "Azemzakudn tlalit n useqdac"
+
+#: ../data/org.sugarlabs.gschema.xml.h:26
+msgid "Birth timestamp (seconds since the epoch)"
+msgstr "Azemzakud n tlalit (tasinin deg epoch n unagraw)"
+
+#: ../data/org.sugarlabs.gschema.xml.h:27
+msgid "Group Label"
+msgstr "Tacreṭ n ugraw"
+
+#: ../data/org.sugarlabs.gschema.xml.h:28
+msgid "Label associated with age, e.g., '2nd Grade'"
+msgstr "Tacreṭ icudden ar tneɣrit n tɣuri, amedya 'Aseggas wis 2'"
+
+#: ../data/org.sugarlabs.gschema.xml.h:29
+msgid "Background image path"
+msgstr "Abrid n unekcum ar tugna n tugna n ugilal"
+
+#: ../data/org.sugarlabs.gschema.xml.h:30
+msgid "Path to the image to be used as a background."
+msgstr "Abrid n unekcum n tugna yettwaseqdacen d agilal."
+
+#: ../data/org.sugarlabs.gschema.xml.h:31
+msgid "Background alpha level"
+msgstr "Aswir n tefrawant n ubadu alpha i tugna n ugilal"
+
+#: ../data/org.sugarlabs.gschema.xml.h:32
+msgid "The opacity of the background image."
+msgstr "Aswir n tebrek n tugna n ugilal."
+
+#: ../data/org.sugarlabs.gschema.xml.h:33
+msgid "Mimetype registry"
+msgstr "Anaw MIME (azmam IANA)"
+
+#: ../data/org.sugarlabs.gschema.xml.h:34
+msgid "Consists of key-value pairs mimetypes and their corresponding activity"
+msgstr ""
+"Yettwammel s tyugiwin tasarutt-azalen n wanawen MIME akked irmuden-nsen "
+"imenṭaḍen"
+
+#: ../data/org.sugarlabs.gschema.xml.h:35 ../data/sugar.schemas.in.h:7
+msgid "Volume Level"
+msgstr "Aswir n ubleɣ"
+
+#: ../data/org.sugarlabs.gschema.xml.h:36 ../data/sugar.schemas.in.h:8
+msgid "Volume level for the sound device."
+msgstr "Aswir n ubleɣ n yibenk ameslaw."
+
+#: ../data/org.sugarlabs.gschema.xml.h:37 ../data/sugar.schemas.in.h:9
+msgid "Sound Muted"
+msgstr "Ameslaw yensa"
+
+#: ../data/org.sugarlabs.gschema.xml.h:38 ../data/sugar.schemas.in.h:10
+msgid "Setting for muting the sound device."
+msgstr "Aseggem n usexsi n yibenk ameslaw."
+
+#: ../data/org.sugarlabs.gschema.xml.h:39
+msgid "Brightness Level"
+msgstr "Aswir n ubruṛeq"
+
+#: ../data/org.sugarlabs.gschema.xml.h:40
+msgid "Brightness level for the computer screen."
+msgstr "Aswir n tafat n ugdil n uselkim."
+
+#: ../data/org.sugarlabs.gschema.xml.h:41
+#: ../extensions/cpsection/datetime/view.py:66 ../data/sugar.schemas.in.h:13
+msgid "Timezone"
+msgstr "Izdi usrig"
+
+#: ../data/org.sugarlabs.gschema.xml.h:42 ../data/sugar.schemas.in.h:14
+msgid "Timezone setting for the system."
+msgstr "Tawila n izḍi usrig n unagraw."
+
+#: ../data/org.sugarlabs.gschema.xml.h:43
+msgid "Home views"
+msgstr "Timeẓriyin tigejdanin"
+
+#: ../data/org.sugarlabs.gschema.xml.h:44
+msgid ""
+"List of home views, including the view icon, the favorite icon and the layout"
+msgstr ""
+"Tubdarin n tmeẓriyin tigejdanin, igebren timeẓri tabdart, timeẓri tanurift "
+"akked d tmeẓri anarag"
+
+#: ../data/org.sugarlabs.gschema.xml.h:45
+msgid "Launcher animation interval"
+msgstr "Azilal n umray n umsenker"
+
+#: ../data/org.sugarlabs.gschema.xml.h:46
+msgid ""
+"Delay in milliseconds between animation updates for launcher pulsing icon."
+msgstr "Tansagt s tmilisinin gar usmiren n imrayen i yiwen n umseker. "
+
+#: ../data/org.sugarlabs.gschema.xml.h:47 ../data/sugar.schemas.in.h:19
+msgid "Edge Delay"
+msgstr "Tanzagt n rrif"
+
+#: ../data/org.sugarlabs.gschema.xml.h:48 ../data/sugar.schemas.in.h:20
+msgid "Delay for the activation of the frame using the edges."
+msgstr "Tanzagt n tilmi iseqdacen lerryuf n tmeẓri."
+
+#: ../data/org.sugarlabs.gschema.xml.h:49 ../data/sugar.schemas.in.h:21
+msgid "Corner Delay"
+msgstr "Tanzagt n tiɣmert"
+
+#: ../data/org.sugarlabs.gschema.xml.h:50 ../data/sugar.schemas.in.h:22
+msgid "Delay for the activation of the frame using the corners."
+msgstr "Tanzagt n urmad n tilmi iseqdacen tiɣmar n tmeẓri"
+
+#: ../data/org.sugarlabs.gschema.xml.h:51
+msgid "Trigger Size"
+msgstr "Teɣzi n temnaḍt n urmad"
+
+#: ../data/org.sugarlabs.gschema.xml.h:52
+msgid "Size of the frame trigger area, in px from the corner/edge."
+msgstr ""
+
+#: ../data/org.sugarlabs.gschema.xml.h:53 ../data/sugar.schemas.in.h:23
+msgid "Jabber Server"
+msgstr ""
+
+#: ../data/org.sugarlabs.gschema.xml.h:54 ../data/sugar.schemas.in.h:24
+msgid "URL of the jabber server to use."
+msgstr ""
+
+#: ../data/org.sugarlabs.gschema.xml.h:55 ../data/sugar.schemas.in.h:29
+msgid "Publish to Gadget"
+msgstr ""
+
+#: ../data/org.sugarlabs.gschema.xml.h:56 ../data/sugar.schemas.in.h:30
+msgid ""
+"If TRUE, Sugar will make us searchable for the other users of the Jabber "
+"server."
+msgstr ""
+
+#: ../data/org.sugarlabs.gschema.xml.h:57
+msgid "Social Help Server"
+msgstr ""
+
+#: ../data/org.sugarlabs.gschema.xml.h:58
+msgid "URL of the social help server to use with protocol."
+msgstr ""
+
+#: ../data/org.sugarlabs.gschema.xml.h:59 ../data/sugar.schemas.in.h:25
+msgid "Power Automatic"
+msgstr ""
+
+#: ../data/org.sugarlabs.gschema.xml.h:60
+#: ../extensions/cpsection/power/view.py:55 ../data/sugar.schemas.in.h:26
+msgid "Automatic power management (increases battery life)"
+msgstr ""
+
+#: ../data/org.sugarlabs.gschema.xml.h:61 ../data/sugar.schemas.in.h:27
+msgid "Power Extreme"
+msgstr ""
+
+#: ../data/org.sugarlabs.gschema.xml.h:62 ../data/sugar.schemas.in.h:28
+msgid ""
+"Extreme power management (disables wireless radio, increases battery life)"
+msgstr ""
+
+#: ../data/org.sugarlabs.gschema.xml.h:63 ../data/sugar.schemas.in.h:39
+msgid "Keyboard layouts"
+msgstr ""
+
+#: ../data/org.sugarlabs.gschema.xml.h:64 ../data/sugar.schemas.in.h:40
+msgid ""
+"List of keyboard layouts. Each entry should be in the form layout(variant)"
+msgstr ""
+
+#: ../data/org.sugarlabs.gschema.xml.h:65 ../data/sugar.schemas.in.h:41
+msgid "Keyboard options"
+msgstr ""
+
+#: ../data/org.sugarlabs.gschema.xml.h:66 ../data/sugar.schemas.in.h:42
+msgid "List of keyboard options."
+msgstr ""
+
+#: ../data/org.sugarlabs.gschema.xml.h:67 ../data/sugar.schemas.in.h:43
+msgid "Keyboard model"
+msgstr ""
+
+#: ../data/org.sugarlabs.gschema.xml.h:68 ../data/sugar.schemas.in.h:44
+msgid "The keyboard model to be used"
+msgstr ""
+
+#: ../data/org.sugarlabs.gschema.xml.h:69 ../data/sugar.schemas.in.h:45
+msgid "Default font face"
+msgstr ""
+
+#: ../data/org.sugarlabs.gschema.xml.h:70 ../data/sugar.schemas.in.h:46
+msgid "Font face that is used throughout the desktop."
+msgstr ""
+
+#: ../data/org.sugarlabs.gschema.xml.h:71 ../data/sugar.schemas.in.h:47
+msgid "Default font size"
+msgstr "Tiddi n lexṣas"
+
+#: ../data/org.sugarlabs.gschema.xml.h:72 ../data/sugar.schemas.in.h:48
+msgid "Font size that is used throughout the desktop."
+msgstr ""
+
+#: ../data/org.sugarlabs.gschema.xml.h:73 ../data/sugar.schemas.in.h:61
+msgid "Show Sugar Ad-hoc networks"
+msgstr ""
+
+#: ../data/org.sugarlabs.gschema.xml.h:74 ../data/sugar.schemas.in.h:62
+msgid ""
+"If TRUE, Sugar will show default Ad-hoc networks for channel 1,6 and 11. If "
+"Sugar sees no \"known\" network when it starts, it does autoconnect to an Ad-"
+"hoc network."
+msgstr ""
+
+#: ../data/org.sugarlabs.gschema.xml.h:75
+msgid "Enable Ad-hoc autoconnect"
+msgstr ""
+
+#: ../data/org.sugarlabs.gschema.xml.h:76
+msgid "If TRUE, Sugar will autoconnect to Ad-hoc networks."
+msgstr ""
+
+#: ../data/org.sugarlabs.gschema.xml.h:77 ../data/sugar.schemas.in.h:49
+msgid "GSM network username (DEPRECATED/UNUSED)"
+msgstr ""
+
+#: ../data/org.sugarlabs.gschema.xml.h:78 ../data/sugar.schemas.in.h:50
+msgid "GSM network username configuration (DEPRECATED/UNUSED)"
+msgstr ""
+
+#: ../data/org.sugarlabs.gschema.xml.h:79 ../data/sugar.schemas.in.h:51
+msgid "GSM network password (DEPRECATED/UNUSED)"
+msgstr ""
+
+#: ../data/org.sugarlabs.gschema.xml.h:80 ../data/sugar.schemas.in.h:52
+msgid "GSM network password configuration (DEPRECATED/UNUSED)"
+msgstr ""
+
+#: ../data/org.sugarlabs.gschema.xml.h:81 ../data/sugar.schemas.in.h:53
+msgid "GSM network number (DEPRECATED/UNUSED)"
+msgstr ""
+
+#: ../data/org.sugarlabs.gschema.xml.h:82 ../data/sugar.schemas.in.h:54
+msgid "GSM network telephone number configuration (DEPRECATED/UNUSED)"
+msgstr ""
+
+#: ../data/org.sugarlabs.gschema.xml.h:83 ../data/sugar.schemas.in.h:55
+msgid "GSM network APN (DEPRECATED/UNUSED)"
+msgstr ""
+
+#: ../data/org.sugarlabs.gschema.xml.h:84 ../data/sugar.schemas.in.h:56
+msgid "GSM network access point name configuration (DEPRECATED/UNUSED)"
+msgstr ""
+
+#: ../data/org.sugarlabs.gschema.xml.h:85 ../data/sugar.schemas.in.h:57
+msgid "GSM network PIN (DEPRECATED/UNUSED)"
+msgstr ""
+
+#: ../data/org.sugarlabs.gschema.xml.h:86 ../data/sugar.schemas.in.h:58
+msgid ""
+"GSM network personal identification number configuration (DEPRECATED/UNUSED)"
+msgstr ""
+
+#: ../data/org.sugarlabs.gschema.xml.h:87 ../data/sugar.schemas.in.h:59
+msgid "GSM network PUK (DEPRECATED/UNUSED)"
+msgstr ""
+
+#: ../data/org.sugarlabs.gschema.xml.h:88 ../data/sugar.schemas.in.h:60
+msgid "GSM network personal unlock key configuration (DEPRECATED/UNUSED)"
+msgstr ""
+
+#: ../data/org.sugarlabs.gschema.xml.h:89
+msgid "TODO: add summary"
+msgstr ""
+
+#: ../data/org.sugarlabs.gschema.xml.h:90
+msgid "TODO: add description"
+msgstr ""
+
+#: ../data/org.sugarlabs.gschema.xml.h:91 ../data/sugar.schemas.in.h:65
+msgid "Pitch value for the speech sugar service"
+msgstr ""
+
+#: ../data/org.sugarlabs.gschema.xml.h:92 ../data/sugar.schemas.in.h:66
+msgid "Pitch value used by the speech service in Sugar"
+msgstr ""
+
+#: ../data/org.sugarlabs.gschema.xml.h:93 ../data/sugar.schemas.in.h:67
+msgid "Rate value for the speech sugar service"
+msgstr ""
+
+#: ../data/org.sugarlabs.gschema.xml.h:94 ../data/sugar.schemas.in.h:68
+msgid "Rate value used by the speech service in Sugar"
+msgstr ""
+
+#: ../data/org.sugarlabs.gschema.xml.h:95 ../data/sugar.schemas.in.h:69
+msgid "Activity update backend."
+msgstr ""
+
+#: ../data/org.sugarlabs.gschema.xml.h:96 ../data/sugar.schemas.in.h:70
+msgid ""
+"Activity update backend module, followed by a period, followed by the class "
+"name."
+msgstr ""
+
+#: ../data/org.sugarlabs.gschema.xml.h:97 ../data/sugar.schemas.in.h:71
+msgid "Microformat update URL."
+msgstr ""
+
+#: ../data/org.sugarlabs.gschema.xml.h:98 ../data/sugar.schemas.in.h:72
+msgid ""
+"URL used by the microformat update backend for activity update information."
+msgstr ""
+
+#: ../data/org.sugarlabs.gschema.xml.h:99 ../data/sugar.schemas.in.h:73
+msgid "Automatic update frequency."
+msgstr ""
+
+#: ../data/org.sugarlabs.gschema.xml.h:100 ../data/sugar.schemas.in.h:74
+msgid ""
+"Frequency of automatic activity updates, measured in days. 0 means disabled."
+msgstr ""
+
+#: ../data/org.sugarlabs.gschema.xml.h:101 ../data/sugar.schemas.in.h:75
+msgid "Timestamp of last activity update."
+msgstr ""
+
+#: ../data/org.sugarlabs.gschema.xml.h:102 ../data/sugar.schemas.in.h:76
+msgid ""
+"A unix timestamp (seconds since epoch) of the last successful activity "
+"update."
+msgstr ""
+
+#: ../data/org.sugarlabs.gschema.xml.h:103
+msgid "New ASLO update.json URL."
+msgstr ""
+
+#: ../data/org.sugarlabs.gschema.xml.h:104
+msgid "URL used by the new ASLO updater to download activity data."
+msgstr ""
+
+#: ../data/org.sugarlabs.gschema.xml.h:105 ../data/sugar.schemas.in.h:77
+msgid "A description of the hardware available to the user."
+msgstr ""
+
+#: ../data/org.sugarlabs.gschema.xml.h:106 ../data/sugar.schemas.in.h:78
+msgid "This string is displayed in the control panel, about computer section."
+msgstr ""
+
+#: ../extensions/cpsection/aboutme/__init__.py:23
+msgid "About Me"
+msgstr ""
+
+#: ../extensions/cpsection/aboutme/model.py:51
+msgid "You must enter a name."
+msgstr ""
+
+#: ../extensions/cpsection/aboutme/model.py:83
+#, python-format
+msgid "stroke:   color=%s hue=%s"
+msgstr ""
+
+#: ../extensions/cpsection/aboutme/model.py:86
+#, python-format
+msgid "stroke:   %s"
+msgstr ""
+
+#: ../extensions/cpsection/aboutme/model.py:88
+#, python-format
+msgid "fill:     color=%s hue=%s"
+msgstr ""
+
+#: ../extensions/cpsection/aboutme/model.py:90
+#, python-format
+msgid "fill:     %s"
+msgstr ""
+
+#: ../extensions/cpsection/aboutme/model.py:102
+msgid "Error in specified color modifiers."
+msgstr ""
+
+#: ../extensions/cpsection/aboutme/model.py:105
+msgid "Error in specified colors."
+msgstr ""
+
+#: ../extensions/cpsection/aboutme/view.py:243
+msgid "Click to change your color:"
+msgstr ""
+
+#: ../extensions/cpsection/aboutme/view.py:294
+#: ../src/jarabe/intro/window.py:203
+msgid "Select gender:"
+msgstr ""
+
+#: ../extensions/cpsection/aboutcomputer/__init__.py:21
+msgid "About my Computer"
+msgstr ""
+
+#: ../extensions/cpsection/aboutcomputer/model.py:37
+msgid "Not available"
+msgstr "Ulac"
+
+#: ../extensions/cpsection/aboutcomputer/view.py:76
+msgid "Identity"
+msgstr "Tamagit"
+
+#: ../extensions/cpsection/aboutcomputer/view.py:87
+msgid "Model:"
+msgstr ""
+
+#: ../extensions/cpsection/aboutcomputer/view.py:91
+msgid "Serial Number:"
+msgstr ""
+
+#: ../extensions/cpsection/aboutcomputer/view.py:103
+msgid "Software"
+msgstr "Aseɣẓan"
+
+#: ../extensions/cpsection/aboutcomputer/view.py:112
+msgid "Build:"
+msgstr ""
+
+#: ../extensions/cpsection/aboutcomputer/view.py:117
+msgid "Sugar:"
+msgstr ""
+
+#: ../extensions/cpsection/aboutcomputer/view.py:122
+msgid "Firmware:"
+msgstr ""
+
+#: ../extensions/cpsection/aboutcomputer/view.py:127
+msgid "Wireless Firmware:"
+msgstr ""
+
+#: ../extensions/cpsection/aboutcomputer/view.py:134
+#, python-format
+msgid "%d days ago"
+msgstr ""
+
+#: ../extensions/cpsection/aboutcomputer/view.py:136
+#: ../src/jarabe/journal/journaltoolbox.py:169
+msgid "Today"
+msgstr "Ass-a"
+
+#: ../extensions/cpsection/aboutcomputer/view.py:139
+msgid "Last system update:"
+msgstr ""
+
+#: ../extensions/cpsection/aboutcomputer/view.py:150
+msgid "Copyright and License"
+msgstr "Izerfan n umeskar d turagt"
+
+#. TRANS: The word "Sugar" should not be translated.
+#: ../extensions/cpsection/aboutcomputer/view.py:169
+msgid ""
+"Sugar is the graphical user interface that you are looking at. Sugar is free "
+"software, covered by the GNU General Public License, and you are welcome to "
+"change it and/or distribute copies of it under certain conditions described "
+"therein."
+msgstr ""
+
+#: ../extensions/cpsection/aboutcomputer/view.py:181
+msgid "Full license:"
+msgstr ""
+
+#: ../extensions/cpsection/background/__init__.py:21
+msgid "Background"
+msgstr "Agilal"
+
+#: ../extensions/cpsection/background/view.py:48
+msgid "Select a background:"
+msgstr "Fren agilal:"
+
+#: ../extensions/cpsection/background/view.py:57
+msgid "Clear background"
+msgstr "Sfeḍ agilal"
+
+#: ../extensions/cpsection/datetime/__init__.py:21
+msgid "Date & Time"
+msgstr "Azemz akked usrag"
+
+#: ../extensions/cpsection/datetime/model.py:100
+msgid "Error: timezone does not exist."
+msgstr "Tuccḍa: tamnaḍt tasragant ulac-itt."
+
+#: ../extensions/cpsection/frame/__init__.py:21
+msgid "Frame"
+msgstr "Akatar"
+
+#: ../extensions/cpsection/frame/view.py:26
+msgid "never"
+msgstr "werǧin"
+
+#: ../extensions/cpsection/frame/view.py:27
+msgid "instantaneous"
+msgstr ""
+
+#: ../extensions/cpsection/frame/view.py:28
+#, python-format
+msgid "%s seconds"
+msgstr ""
+
+#: ../extensions/cpsection/frame/view.py:52
+msgid "Activation Delay"
+msgstr ""
+
+#: ../extensions/cpsection/frame/view.py:68
+msgid "Activation Area"
+msgstr ""
+
+#: ../extensions/cpsection/frame/view.py:85
+msgid "Corner"
+msgstr ""
+
+#: ../extensions/cpsection/frame/view.py:104
+msgid "Edge"
+msgstr ""
+
+#: ../extensions/cpsection/frame/view.py:123
+msgid "Size"
+msgstr "Tiddi (bytes/octets)"
+
+#: ../extensions/cpsection/frame/view.py:221
+msgid "toolbar size"
+msgstr "Tiddi n tfeggagt n ifecka"
+
+#: ../extensions/cpsection/frame/view.py:226
+msgid "exact corner or edge"
+msgstr ""
+
+#: ../extensions/cpsection/frame/view.py:228
+msgid "exact corner"
+msgstr ""
+
+#: ../extensions/cpsection/frame/view.py:230
+msgid "exact edge"
+msgstr ""
+
+#: ../extensions/cpsection/frame/view.py:232
+msgid "ignored"
+msgstr "yettwanef"
+
+#. TRANS: px as in pixels
+#: ../extensions/cpsection/frame/view.py:235
+msgid "{}px"
+msgstr ""
+
+#: ../extensions/cpsection/keyboard/__init__.py:21
+#: ../extensions/cpsection/keyboard/view.py:38
+msgid "Keyboard"
+msgstr "Anasiw"
+
+#: ../extensions/cpsection/keyboard/view.py:240
+msgid "Keyboard Model"
+msgstr ""
+
+#: ../extensions/cpsection/keyboard/view.py:301
+msgid "Key(s) to change layout"
+msgstr ""
+
+#: ../extensions/cpsection/keyboard/view.py:369
+msgid "Keyboard Layout(s)"
+msgstr ""
+
+#: ../extensions/cpsection/language/__init__.py:21
+#: ../extensions/cpsection/language/view.py:39
+msgid "Language"
+msgstr "Tutlayt"
+
+#: ../extensions/cpsection/language/model.py:29
+msgid "Could not access ~/.i18n. Create standard settings."
+msgstr ""
+
+#: ../extensions/cpsection/language/model.py:156
+#, python-format
+msgid "Language for code=%s could not be determined."
+msgstr ""
+
+#: ../extensions/cpsection/language/model.py:179
+#, python-format
+msgid "Sorry I do not speak '%s'."
+msgstr ""
+
+#: ../extensions/cpsection/language/view.py:75
+msgid ""
+"Add languages in the order you prefer. If a translation is not available, "
+"the next in the list will be used."
+msgstr ""
+
+#: ../extensions/cpsection/language/view.py:383
+#, python-format
+msgid "Error writting language configuration (%s)"
+msgstr ""
+
+#: ../extensions/cpsection/modemconfiguration/__init__.py:21
+msgid "Modem"
+msgstr ""
+
+#: ../extensions/cpsection/modemconfiguration/view.py:94
+msgid ""
+"You will need to provide the following information to set up a mobile "
+"broadband connection to a cellular (3G) network."
+msgstr ""
+
+#: ../extensions/cpsection/modemconfiguration/view.py:117
+msgid "Country:"
+msgstr "Tamurt:"
+
+#: ../extensions/cpsection/modemconfiguration/view.py:118
+msgid "Provider:"
+msgstr ""
+
+#: ../extensions/cpsection/modemconfiguration/view.py:119
+msgid "Plan:"
+msgstr ""
+
+#: ../extensions/cpsection/modemconfiguration/view.py:160
+msgid "Username:"
+msgstr "Isem n wemseqdac:"
+
+#: ../extensions/cpsection/modemconfiguration/view.py:167
+msgid "Password:"
+msgstr "Awal n tbaḍnit:"
+
+#: ../extensions/cpsection/modemconfiguration/view.py:174
+msgid "Number:"
+msgstr ""
+
+#: ../extensions/cpsection/modemconfiguration/view.py:181
+msgid "Access Point Name (APN):"
+msgstr ""
+
+#: ../extensions/cpsection/modemconfiguration/view.py:188
+msgid "Personal Identity Number (PIN):"
+msgstr ""
+
+#: ../extensions/cpsection/modemconfiguration/model.py:162
+#, python-format
+msgid "Plan #%s"
+msgstr ""
+
+#: ../extensions/cpsection/modemconfiguration/model.py:292
+#, python-format
+msgid "Provider %s"
+msgstr ""
+
+#: ../extensions/cpsection/network/__init__.py:21
+#: ../extensions/cpsection/network/view.py:30
+msgid "Network"
+msgstr "Azeṭṭa"
+
+#: ../extensions/cpsection/network/model.py:88
+msgid "State is unknown."
+msgstr ""
+
+#: ../extensions/cpsection/network/model.py:104
+msgid "Error in specified radio argument use on/off."
+msgstr ""
+
+#: ../extensions/cpsection/network/model.py:197
+msgid "Error in specified argument use 0/1."
+msgstr ""
+
+#: ../extensions/cpsection/network/view.py:65
+msgid "Wireless"
+msgstr ""
+
+#: ../extensions/cpsection/network/view.py:73
+msgid "The wireless radio may be turned off to save battery life."
+msgstr ""
+
+#: ../extensions/cpsection/network/view.py:86
+msgid "Radio"
+msgstr ""
+
+#: ../extensions/cpsection/network/view.py:103
+msgid ""
+"Discard wireless connections if you have trouble connecting to the network"
+msgstr ""
+
+#: ../extensions/cpsection/network/view.py:113
+msgid "Discard wireless connections"
+msgstr ""
+
+#: ../extensions/cpsection/network/view.py:129
+msgid "Collaboration"
+msgstr ""
+
+#: ../extensions/cpsection/network/view.py:137
+msgid ""
+"The server is the equivalent of what room you are in; people on the same "
+"server will be able to see each other, even when they aren't on the same "
+"network."
+msgstr ""
+
+#: ../extensions/cpsection/network/view.py:147
+msgid "Server:"
+msgstr "Aqeddac:"
+
+#: ../extensions/cpsection/network/view.py:163
+msgid ""
+"Social Help is a forum that lets you connect with developers and discuss "
+"Sugar Activities.  Changing servers means discussions will happen in a "
+"different place with different people."
+msgstr ""
+
+#: ../extensions/cpsection/network/view.py:173
+msgid "Social Help Server:"
+msgstr ""
+
+#: ../extensions/cpsection/power/__init__.py:24
+msgid "Power"
+msgstr ""
+
+#: ../extensions/cpsection/power/model.py:90
+msgid "Error in automatic pm argument, use on/off."
+msgstr ""
+
+#: ../extensions/cpsection/power/view.py:45
+msgid "Power management"
+msgstr ""
+
+#: ../extensions/cpsection/updater/__init__.py:21
+msgid "Software Update"
+msgstr ""
+
+#: ../extensions/cpsection/updater/view.py:70
+msgid ""
+"Software updates correct errors, eliminate security vulnerabilities, and "
+"provide new features."
+msgstr ""
+
+#: ../extensions/cpsection/updater/view.py:84
+msgid "Update in progress..."
+msgstr ""
+
+#: ../extensions/cpsection/updater/view.py:119
+msgid "Checking for updates..."
+msgstr ""
+
+#: ../extensions/cpsection/updater/view.py:121
+msgid "Installing updates..."
+msgstr ""
+
+#: ../extensions/cpsection/updater/view.py:150
+#, python-format
+msgid "Checking %s..."
+msgstr ""
+
+#: ../extensions/cpsection/updater/view.py:152
+msgid "Looking for updates..."
+msgstr ""
+
+#: ../extensions/cpsection/updater/view.py:154
+#, python-format
+msgid "Downloading %s..."
+msgstr ""
+
+#: ../extensions/cpsection/updater/view.py:156
+#, python-format
+msgid "Updating %s..."
+msgstr "Amucceḍ %s..."
+
+#: ../extensions/cpsection/updater/view.py:166
+msgid "Your software is up-to-date"
+msgstr ""
+
+#: ../extensions/cpsection/updater/view.py:168
+#, python-format
+msgid "You can install %s update"
+msgid_plural "You can install %s updates"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../extensions/cpsection/updater/view.py:183
+msgid "Can't connect to the activity server"
+msgstr ""
+
+#: ../extensions/cpsection/updater/view.py:186
+msgid "Verify your connection to internet and try again, or try again later"
+msgstr ""
+
+#: ../extensions/cpsection/updater/view.py:206
+#, python-format
+msgid "%s update was installed"
+msgid_plural "%s updates were installed"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../extensions/cpsection/updater/view.py:288
+msgid "Install selected"
+msgstr ""
+
+#: ../extensions/cpsection/updater/view.py:307
+#, python-format
+msgid "Download size: %s"
+msgstr "Tiddi n usider: %s"
+
+#: ../extensions/cpsection/updater/view.py:399
+#, python-format
+msgid "From version %(current)s to %(new)s (Size: %(size)s)"
+msgstr ""
+
+#: ../extensions/cpsection/updater/view.py:406
+#, python-format
+msgid "Version %(version)s (Size: %(size)s)"
+msgstr ""
+
+#. TRANS: download size is 0
+#: ../extensions/cpsection/updater/view.py:423
+msgid "None"
+msgstr "Aucun"
+
+#. TRANS: download size of very small updates
+#: ../extensions/cpsection/updater/view.py:426
+msgid "1 KB"
+msgstr ""
+
+#. TRANS: download size of small updates, e.g. '250 KB'
+#: ../extensions/cpsection/updater/view.py:429
+#, python-format
+msgid "%.0f KB"
+msgstr ""
+
+#. TRANS: download size of updates, e.g. '2.3 MB'
+#: ../extensions/cpsection/updater/view.py:432
+#, python-format
+msgid "%.1f MB"
+msgstr "%.1f MAṬ"
+
+#: ../extensions/cpsection/webaccount/__init__.py:24
+msgid "Web Services"
+msgstr "Imeẓla Web"
+
+#: ../extensions/cpsection/webaccount/view.py:65
+#, python-format
+msgid ""
+"No web services are installed.\n"
+"Please visit %s for more details."
+msgstr ""
+
+#: ../extensions/deviceicon/audio.py:69
+msgid "My Audio"
+msgstr "Ameslaw-iw"
+
+#: ../extensions/deviceicon/audio.py:330
+msgid "Speaker"
+msgstr ""
+
+#: ../extensions/deviceicon/audio.py:331
+msgid "Microphone"
+msgstr "Asawaḍ"
+
+#: ../extensions/deviceicon/battery.py:69
+msgid "My Battery"
+msgstr ""
+
+#: ../extensions/deviceicon/battery.py:151
+msgid "Removed"
+msgstr ""
+
+#: ../extensions/deviceicon/battery.py:154
+msgid "Charging"
+msgstr "Asali"
+
+#: ../extensions/deviceicon/battery.py:157
+msgid "Very little power remaining"
+msgstr ""
+
+#. TRANS: do not translate %(hour)d:%(min).2d  it is a variable,
+#. only translate the word "remaining"
+#: ../extensions/deviceicon/battery.py:164
+#, python-format
+msgid "%(hour)d:%(min).2d remaining"
+msgstr ""
+
+#: ../extensions/deviceicon/battery.py:167
+msgid "Charged"
+msgstr "Yuli"
+
+#: ../extensions/deviceicon/display.py:187
+msgid "My Display"
+msgstr "Agdil-iw"
+
+#: ../extensions/deviceicon/display.py:189
+msgid "Take a screenshot"
+msgstr "Ṭṭef agdil"
+
+#: ../extensions/deviceicon/display.py:211
+msgid "Brightness"
+msgstr ""
+
+#: ../extensions/deviceicon/display.py:239
+msgid "Display"
+msgstr "Sken"
+
+#: ../extensions/deviceicon/frame.py:53
+msgid "Show my keyboard"
+msgstr "Sken anasiw-iw"
+
+#: ../extensions/deviceicon/network.py:48
+#, python-format
+msgid "IP address: %s"
+msgstr ""
+
+#: ../extensions/deviceicon/network.py:80
+#: ../extensions/deviceicon/network.py:297
+#: ../src/jarabe/desktop/networkviews.py:134
+#: ../src/jarabe/desktop/networkviews.py:510
+msgid "Disconnect"
+msgstr "Ffeɣ"
+
+#: ../extensions/deviceicon/network.py:106
+#: ../extensions/deviceicon/network.py:290
+#: ../src/jarabe/desktop/networkviews.py:250
+#: ../src/jarabe/desktop/networkviews.py:552
+#: ../src/jarabe/desktop/networkviews.py:696
+msgid "Connecting..."
+msgstr ""
+
+#: ../extensions/deviceicon/network.py:110
+#: ../extensions/deviceicon/network.py:181
+#: ../src/jarabe/desktop/networkviews.py:257
+#: ../src/jarabe/desktop/networkviews.py:558
+#: ../src/jarabe/desktop/networkviews.py:702
+msgid "Connected"
+msgstr "Iqqen"
+
+#: ../extensions/deviceicon/network.py:123
+msgid "No wireless connection"
+msgstr "Tuqqna war tinelli"
+
+#: ../extensions/deviceicon/network.py:137
+#: ../extensions/deviceicon/network.py:140
+msgid "Channel"
+msgstr ""
+
+#: ../extensions/deviceicon/network.py:138
+#: ../src/jarabe/journal/expandedentry.py:386
+#: ../src/jarabe/journal/listmodel.py:191
+#: ../src/jarabe/journal/listmodel.py:199
+msgid "Unknown"
+msgstr "Arussin"
+
+#: ../extensions/deviceicon/network.py:156
+msgid "Wired Network"
+msgstr "Aẓeṭṭa n tnelli"
+
+#: ../extensions/deviceicon/network.py:184
+msgid "Speed"
+msgstr ""
+
+#: ../extensions/deviceicon/network.py:209
+msgid "Wireless modem"
+msgstr "Atrar war tinelli"
+
+#: ../extensions/deviceicon/network.py:278
+msgid "Please wait..."
+msgstr "Ttxil-k arǧu..."
+
+#: ../extensions/deviceicon/network.py:282
+#: ../src/jarabe/desktop/networkviews.py:128
+#: ../src/jarabe/desktop/networkviews.py:504
+#: ../src/jarabe/desktop/networkviews.py:647
+msgid "Connect"
+msgstr "Qqen"
+
+#: ../extensions/deviceicon/network.py:283
+#, fuzzy
+msgid "Disconnected"
+msgstr "Yenser"
+
+#: ../extensions/deviceicon/network.py:289
+#: ../src/jarabe/controlpanel/toolbar.py:121
+#: ../src/jarabe/frame/activitiestray.py:693
+#: ../src/jarabe/frame/activitiestray.py:815
+#: ../src/jarabe/frame/activitiestray.py:848
+#: ../src/jarabe/journal/expandedentry.py:157
+#: ../src/jarabe/journal/journaltoolbox.py:587
+#: ../src/jarabe/journal/palettes.py:166
+msgid "Cancel"
+msgstr "Sesfex"
+
+#: ../extensions/deviceicon/network.py:327
+msgid "Try connection again"
+msgstr "Ɛreḍ tikelt nniḍen tuqqna"
+
+#: ../extensions/deviceicon/network.py:330
+#, python-format
+msgid "Error: %s"
+msgstr "Tuccḍa: %s"
+
+#: ../extensions/deviceicon/network.py:334
+#, python-format
+msgid "Suggestion: %s"
+msgstr "Asumer: %s"
+
+#: ../extensions/deviceicon/network.py:344
+#, python-format
+msgid "Connected for %s"
+msgstr "Iqqen ɣer %s"
+
+#: ../extensions/deviceicon/network.py:349
+#: ../extensions/deviceicon/network.py:350
+#, python-format
+msgid "%d KB"
+msgstr "%d KAṬ"
+
+#: ../extensions/deviceicon/network.py:355
+msgid "Check your PIN/PUK configuration."
+msgstr ""
+
+#: ../extensions/deviceicon/network.py:358
+msgid "Check your Access Point Name (APN) configuration"
+msgstr ""
+
+#: ../extensions/deviceicon/network.py:362
+msgid "Check the Number configuration."
+msgstr ""
+
+#: ../extensions/deviceicon/network.py:364
+msgid "Check your configuration."
+msgstr ""
+
+#: ../extensions/deviceicon/network.py:619
+msgid "Mesh Network"
+msgstr "Azeṭṭa Mesh"
+
+#: ../extensions/deviceicon/network.py:665
+#, python-format
+msgid "Mesh Network %s"
+msgstr ""
+
+#: ../extensions/deviceicon/network.py:782
+msgid "No GSM connection available."
+msgstr ""
+
+#: ../extensions/deviceicon/network.py:783
+msgid "Create a connection in My Settings."
+msgstr ""
+
+#: ../extensions/deviceicon/speech.py:49
+msgid "Speech"
+msgstr "Ameslay"
+
+#: ../extensions/deviceicon/speech.py:72
+#: ../extensions/deviceicon/speech.py:147
+#: ../extensions/deviceicon/speech.py:152
+msgid "Say selected text"
+msgstr ""
+
+#: ../extensions/deviceicon/speech.py:80
+msgid "Stop playback"
+msgstr ""
+
+#: ../extensions/deviceicon/speech.py:89
+msgid "Pitch"
+msgstr ""
+
+#: ../extensions/deviceicon/speech.py:104
+msgid "Rate"
+msgstr "Afmiḍi"
+
+#: ../extensions/deviceicon/speech.py:142
+msgid "Pause playback"
+msgstr ""
+
+#: ../extensions/deviceicon/touchpad.py:36
+msgid "finger"
+msgstr ""
+
+#: ../extensions/deviceicon/touchpad.py:36
+msgid "stylus"
+msgstr ""
+
+#: ../extensions/deviceicon/touchpad.py:61
+msgid "My touchpad"
+msgstr ""
+
+#: ../extensions/deviceicon/volume.py:62 ../src/jarabe/view/palettes.py:210
+msgid "Show contents"
+msgstr "Sken Igburen"
+
+#: ../data/sugar.schemas.in.h:15
+msgid "Favorites Layout"
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:16
+msgid "Layout of the favorites view."
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:17
+msgid "Favorites resume mode"
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:18
+msgid ""
+"When in resume mode, clicking on a favorite icon will cause the last entry "
+"for that activity to be resumed."
+msgstr ""
+
+#: ../src/jarabe/controlpanel/cmd.py:28
+#, python-format
+msgid ""
+"sugar-control-panel: WARNING, found more than one option with the same name: "
+"%s module: %r"
+msgstr ""
+
+#: ../src/jarabe/controlpanel/cmd.py:30
+#, python-format
+msgid "sugar-control-panel: key=%s not an available option"
+msgstr ""
+
+#: ../src/jarabe/controlpanel/cmd.py:31
+#, python-format
+msgid "sugar-control-panel: %s"
+msgstr ""
+
+#. TRANS: Translators, there's a empty line at the end of this string,
+#. which must appear in the translated string (msgstr) as well.
+#: ../src/jarabe/controlpanel/cmd.py:38
+msgid ""
+"Usage: sugar-control-panel [ option ] key [ args ... ] \n"
+"    Control for the sugar environment. \n"
+"    Options: \n"
+"    -h           show this help message and exit \n"
+"    -l           list all the available options \n"
+"    -h key       show information about this key \n"
+"    -g key       get the current value of the key \n"
+"    -s key       set the current value for the key \n"
+"    -c key       clear the current value for the key \n"
+"    "
+msgstr ""
+
+#: ../src/jarabe/controlpanel/cmd.py:52
+msgid ""
+"To apply your changes you have to restart Sugar.\n"
+"Hit ctrl+alt+erase on the keyboard to trigger a restart."
+msgstr ""
+
+#: ../src/jarabe/controlpanel/gui.py:373 ../src/jarabe/journal/palettes.py:194
+#: ../src/jarabe/journal/palettes.py:364 ../src/jarabe/journal/palettes.py:424
+#: ../src/jarabe/journal/volumestoolbar.py:304
+msgid "Warning"
+msgstr "Ɣur-k"
+
+#: ../src/jarabe/controlpanel/gui.py:374
+#: ../src/jarabe/controlpanel/sectionview.py:45
+msgid "Changes require restart"
+msgstr ""
+
+#: ../src/jarabe/controlpanel/gui.py:379
+msgid "Cancel changes"
+msgstr ""
+
+#: ../src/jarabe/controlpanel/gui.py:384
+msgid "Later"
+msgstr ""
+
+#: ../src/jarabe/controlpanel/gui.py:388
+msgid "Restart now"
+msgstr ""
+
+#: ../src/jarabe/controlpanel/gui.py:419 ../src/jarabe/view/buddymenu.py:137
+msgid "An activity is not responding."
+msgstr ""
+
+#: ../src/jarabe/controlpanel/gui.py:420 ../src/jarabe/view/buddymenu.py:138
+msgid "You may lose unsaved work if you continue."
+msgstr ""
+
+#: ../src/jarabe/controlpanel/toolbar.py:56
+#: ../src/jarabe/desktop/viewtoolbar.py:129
+#: ../src/jarabe/journal/journaltoolbox.py:94
+#, python-format
+msgid "Search in %s"
+msgstr "Nadi di %s"
+
+#: ../src/jarabe/controlpanel/toolbar.py:56
+msgid "Settings"
+msgstr "Iγewwaṛen"
+
+#: ../src/jarabe/controlpanel/toolbar.py:65 ../src/jarabe/intro/window.py:349
+msgid "Done"
+msgstr "Immed"
+
+#: ../src/jarabe/controlpanel/toolbar.py:127
+msgid "Ok"
+msgstr "Ih"
+
+#: ../src/jarabe/desktop/activitieslist.py:340
+#, python-format
+msgid "Version %s"
+msgstr "Lqem %s"
+
+#: ../src/jarabe/desktop/activitieslist.py:424
+#: ../src/jarabe/journal/listview.py:566 ../src/jarabe/journal/iconview.py:301
+msgid "Clear search"
+msgstr ""
+
+#: ../src/jarabe/desktop/activitieslist.py:510
+msgid "No matching activities"
+msgstr ""
+
+#: ../src/jarabe/desktop/activitieslist.py:546
+msgid "Confirm erase"
+msgstr ""
+
+#: ../src/jarabe/desktop/activitieslist.py:548
+#, python-format
+msgid "Confirm erase: Do you want to permanently erase %s?"
+msgstr ""
+
+#: ../src/jarabe/desktop/activitieslist.py:552
+#: ../src/jarabe/frame/clipboardmenu.py:65
+#: ../src/jarabe/view/viewsource.py:383
+msgid "Keep"
+msgstr "Eǧǧ"
+
+#: ../src/jarabe/desktop/activitieslist.py:555
+#: ../src/jarabe/desktop/activitieslist.py:625
+#: ../src/jarabe/journal/expandedentry.py:151
+#: ../src/jarabe/journal/journaltoolbox.py:545
+#: ../src/jarabe/journal/journaltoolbox.py:582
+#: ../src/jarabe/journal/journaltoolbox.py:806
+#: ../src/jarabe/journal/journaltoolbox.py:812
+#: ../src/jarabe/journal/palettes.py:138 ../src/jarabe/journal/palettes.py:161
+msgid "Erase"
+msgstr "Sfeḍ"
+
+#: ../src/jarabe/desktop/activitieslist.py:641
+msgid "Remove favorite"
+msgstr ""
+
+#: ../src/jarabe/desktop/activitieslist.py:645
+msgid "Make favorite"
+msgstr ""
+
+#. TRANS: label for the freeform layout in the favorites view
+#: ../src/jarabe/desktop/favoriteslayout.py:209
+msgid "Freeform"
+msgstr ""
+
+#. TRANS: label for the ring layout in the favorites view
+#: ../src/jarabe/desktop/favoriteslayout.py:305
+msgid "Ring"
+msgstr ""
+
+#. TRANS: label for the spiral layout in the favorites view
+#: ../src/jarabe/desktop/favoriteslayout.py:469
+msgid "Spiral"
+msgstr ""
+
+#. TRANS: label for the box layout in the favorites view
+#: ../src/jarabe/desktop/favoriteslayout.py:537
+msgid "Box"
+msgstr ""
+
+#. TRANS: label for the box layout in the favorites view
+#: ../src/jarabe/desktop/favoriteslayout.py:580
+msgid "Triangle"
+msgstr ""
+
+#: ../src/jarabe/desktop/favoritesview.py:376
+msgid "Registration"
+msgstr "Ajerred"
+
+#: ../src/jarabe/desktop/favoritesview.py:377
+msgid "Please wait, searching for your school server."
+msgstr ""
+
+#: ../src/jarabe/desktop/favoritesview.py:387
+msgid "Registration Failed"
+msgstr ""
+
+#: ../src/jarabe/desktop/favoritesview.py:390
+msgid "Registration Successful"
+msgstr ""
+
+#: ../src/jarabe/desktop/favoritesview.py:391
+msgid "You are now registered with your school server."
+msgstr ""
+
+#: ../src/jarabe/desktop/favoritesview.py:680
+msgid "Register"
+msgstr "Sekles"
+
+#: ../src/jarabe/desktop/favoritesview.py:682
+msgid "Register again"
+msgstr ""
+
+#: ../src/jarabe/desktop/homewindow.py:255
+#: ../src/jarabe/desktop/viewtoolbar.py:73
+#: ../src/jarabe/frame/zoomtoolbar.py:57 ../src/jarabe/model/screenshot.py:63
+#: ../src/jarabe/view/viewhelp.py:76
+msgid "Home"
+msgstr "Agejdan"
+
+#: ../src/jarabe/desktop/homewindow.py:262
+#: ../src/jarabe/frame/zoomtoolbar.py:53 ../src/jarabe/model/screenshot.py:61
+#: ../src/jarabe/view/viewhelp.py:73
+msgid "Group"
+msgstr "Agraw"
+
+#: ../src/jarabe/desktop/homewindow.py:269
+#: ../src/jarabe/frame/zoomtoolbar.py:49
+msgid "Neighborhood"
+msgstr "Anarag-iw"
+
+#: ../src/jarabe/desktop/keydialog.py:92
+#, python-format
+msgid ""
+"A wireless encryption key is required for\n"
+" the wireless network '%s'."
+msgstr ""
+
+#: ../src/jarabe/desktop/keydialog.py:141
+msgid "Key Type:"
+msgstr "Anaw n tsarutt:"
+
+#: ../src/jarabe/desktop/keydialog.py:161
+msgid "Authentication Type:"
+msgstr ""
+
+#: ../src/jarabe/desktop/keydialog.py:224
+msgid "WPA & WPA2 Personal"
+msgstr ""
+
+#: ../src/jarabe/desktop/keydialog.py:233
+msgid "Wireless Security:"
+msgstr ""
+
+#. TRANS: Action label for resuming an activity.
+#: ../src/jarabe/desktop/meshbox.py:82
+#: ../src/jarabe/journal/journaltoolbox.py:659
+#: ../src/jarabe/journal/palettes.py:83 ../src/jarabe/view/palettes.py:98
+msgid "Resume"
+msgstr ""
+
+#: ../src/jarabe/desktop/meshbox.py:89
+#: ../src/jarabe/frame/activitiestray.py:208
+msgid "Join"
+msgstr "Asemlil"
+
+#: ../src/jarabe/desktop/networkviews.py:499
+#, python-format
+msgid "Ad-hoc Network %d"
+msgstr ""
+
+#: ../src/jarabe/desktop/networkviews.py:643
+#, python-format
+msgid "Mesh Network %d"
+msgstr ""
+
+#: ../src/jarabe/desktop/schoolserver.py:144
+msgid "Cannot connect to the server."
+msgstr ""
+
+#: ../src/jarabe/desktop/schoolserver.py:151
+msgid "The server could not complete the request."
+msgstr ""
+
+#: ../src/jarabe/desktop/viewtoolbar.py:95
+msgid "List view"
+msgstr "Timeẓri n tebdart"
+
+#: ../src/jarabe/desktop/viewtoolbar.py:97
+#: ../src/jarabe/desktop/viewtoolbar.py:196
+#: ../src/jarabe/desktop/viewtoolbar.py:210
+#, python-format
+msgid "<Ctrl>%d"
+msgstr ""
+
+#: ../src/jarabe/frame/activitiestray.py:213
+#: ../src/jarabe/frame/activitiestray.py:657
+msgid "Decline"
+msgstr "Agwi"
+
+#: ../src/jarabe/frame/activitiestray.py:598
+#, python-format
+msgid "%dB"
+msgstr "%dAṬ"
+
+#: ../src/jarabe/frame/activitiestray.py:600
+#, python-format
+msgid "%dKB"
+msgstr "%dKAṬ"
+
+#: ../src/jarabe/frame/activitiestray.py:602
+#, python-format
+msgid "%dMB"
+msgstr "%dMAṬ"
+
+#. TRANS: file transfer, bytes transferred, e.g. 128 of 1024
+#: ../src/jarabe/frame/activitiestray.py:620
+#, python-format
+msgid "%s of %s"
+msgstr "%s, si  %s"
+
+#: ../src/jarabe/frame/activitiestray.py:634
+#, python-format
+msgid "Transfer from %s"
+msgstr ""
+
+#: ../src/jarabe/frame/activitiestray.py:648
+#: ../extensions/cpsection/backup/view.py:324
+msgid "Accept"
+msgstr "Qbel"
+
+#: ../src/jarabe/frame/activitiestray.py:722
+#: ../src/jarabe/frame/activitiestray.py:736
+#: ../src/jarabe/frame/activitiestray.py:878
+msgid "Dismiss"
+msgstr "Kkes"
+
+#: ../src/jarabe/frame/activitiestray.py:750
+msgid "The other participant canceled the file transfer"
+msgstr ""
+
+#: ../src/jarabe/frame/activitiestray.py:800
+#, python-format
+msgid "Transfer to %s"
+msgstr ""
+
+#: ../src/jarabe/frame/clipboardmenu.py:54
+msgctxt "Clipboard"
+msgid "Remove"
+msgstr "Kkes"
+
+#: ../src/jarabe/frame/clipboardmenu.py:60
+#: ../src/jarabe/frame/clipboardmenu.py:83
+msgid "Open"
+msgstr "Ldi"
+
+#: ../src/jarabe/frame/clipboardmenu.py:88
+msgid "Open with"
+msgstr "Ldi s"
+
+#: ../src/jarabe/frame/clipboardobject.py:50
+#, python-format
+msgid "%s clipping"
+msgstr ""
+
+#: ../src/jarabe/frame/zoomtoolbar.py:50
+msgid "F1"
+msgstr ""
+
+#: ../src/jarabe/frame/zoomtoolbar.py:54
+msgid "F2"
+msgstr ""
+
+#: ../src/jarabe/frame/zoomtoolbar.py:58
+msgid "F3"
+msgstr ""
+
+#: ../src/jarabe/frame/zoomtoolbar.py:62 ../src/jarabe/model/screenshot.py:69
+msgid "Activity"
+msgstr "Armud"
+
+#: ../src/jarabe/frame/zoomtoolbar.py:63
+msgid "F4"
+msgstr ""
+
+#: ../src/jarabe/intro/window.py:135
+msgid "Name:"
+msgstr "Isem :"
+
+#: ../src/jarabe/intro/window.py:174
+msgid "Click to change color:"
+msgstr ""
+
+#: ../src/jarabe/intro/window.py:337 ../src/jarabe/journal/detailview.py:95
+msgid "Back"
+msgstr "Uɣal"
+
+#: ../src/jarabe/intro/window.py:352
+msgid "Next"
+msgstr "Ar zdat"
+
+#: ../src/jarabe/intro/agepicker.py:38
+msgid "Select grade:"
+msgstr ""
+
+#: ../src/jarabe/intro/agepicker.py:39
+msgid "Preschool"
+msgstr ""
+
+#: ../src/jarabe/intro/agepicker.py:39
+msgid "Kindergarten"
+msgstr "Aɣerbaz n warrac"
+
+#: ../src/jarabe/intro/agepicker.py:39
+msgid "1st Grade"
+msgstr ""
+
+#: ../src/jarabe/intro/agepicker.py:40
+msgid "2nd Grade"
+msgstr ""
+
+#: ../src/jarabe/intro/agepicker.py:40
+msgid "3rd Grade"
+msgstr ""
+
+#: ../src/jarabe/intro/agepicker.py:40
+msgid "4th Grade"
+msgstr ""
+
+#: ../src/jarabe/intro/agepicker.py:41
+msgid "5th Grade"
+msgstr ""
+
+#: ../src/jarabe/intro/agepicker.py:41
+msgid "6th Grade"
+msgstr ""
+
+#: ../src/jarabe/intro/agepicker.py:41
+msgid "7th Grade"
+msgstr ""
+
+#: ../src/jarabe/intro/agepicker.py:42
+msgid "High School"
+msgstr ""
+
+#: ../src/jarabe/intro/agepicker.py:42
+msgid "Adult"
+msgstr ""
+
+#: ../src/jarabe/journal/expandedentry.py:153
+#: ../src/jarabe/journal/journaltoolbox.py:584
+#: ../src/jarabe/journal/palettes.py:163
+#, python-format
+msgid "Do you want to permanently erase \"%s\"?"
+msgstr ""
+
+#: ../src/jarabe/journal/expandedentry.py:296
+#: ../src/jarabe/journal/listmodel.py:185 ../src/jarabe/journal/model.py:794
+#: ../src/jarabe/journal/palettes.py:72 ../src/jarabe/journal/palettes.py:621
+#: ../src/jarabe/journal/volumestoolbar.py:134
+#: ../src/jarabe/journal/iconmodel.py:110
+msgid "Untitled"
+msgstr "War azwel"
+
+#: ../src/jarabe/journal/expandedentry.py:366
+msgid "No preview"
+msgstr "Ulac taskant"
+
+#: ../src/jarabe/journal/expandedentry.py:386
+#, python-format
+msgid "Kind: %s"
+msgstr ""
+
+#: ../src/jarabe/journal/expandedentry.py:387
+#, python-format
+msgid "Date: %s"
+msgstr "Azmez: %s"
+
+#: ../src/jarabe/journal/expandedentry.py:388
+#, python-format
+msgid "Size: %s"
+msgstr "Taɣzi : %s."
+
+#: ../src/jarabe/journal/expandedentry.py:412
+#: ../src/jarabe/journal/misc.py:131
+msgid "No date"
+msgstr "Ulac azemz"
+
+#: ../src/jarabe/journal/expandedentry.py:421
+msgid "Participants:"
+msgstr ""
+
+#: ../src/jarabe/journal/expandedentry.py:459
+msgid "Description:"
+msgstr "Aglam"
+
+#: ../src/jarabe/journal/expandedentry.py:465
+msgid "Tags:"
+msgstr "Ticraḍ:"
+
+#: ../src/jarabe/journal/expandedentry.py:470
+msgid "Comments:"
+msgstr "Iwenniten:"
+
+#: ../src/jarabe/journal/journalactivity.py:182
+#: ../src/jarabe/journal/journaltoolbox.py:94
+#: ../src/jarabe/journal/palettes.py:260
+#: ../src/jarabe/journal/volumestoolbar.py:349
+#: ../src/jarabe/view/viewhelp.py:79
+msgid "Journal"
+msgstr ""
+
+#: ../src/jarabe/journal/journaltoolbox.py:103
+msgid "Favorite entries"
+msgstr ""
+
+#. TRANS: Item on a palette that filters by entry type.
+#: ../src/jarabe/journal/journaltoolbox.py:112
+#: ../src/jarabe/journal/journaltoolbox.py:403
+#: ../src/jarabe/journal/journaltoolbox.py:479
+msgid "Anything"
+msgstr "Yal taɣawsa"
+
+#: ../src/jarabe/journal/journaltoolbox.py:118
+#: ../src/jarabe/journal/journaltoolbox.py:165
+#: ../src/jarabe/journal/journaltoolbox.py:483
+msgid "Anytime"
+msgstr ""
+
+#: ../src/jarabe/journal/journaltoolbox.py:172
+msgid "Since yesterday"
+msgstr ""
+
+#: ../src/jarabe/journal/journaltoolbox.py:175
+msgid "Past week"
+msgstr ""
+
+#: ../src/jarabe/journal/journaltoolbox.py:178
+msgid "Past month"
+msgstr "Aggur yezrin"
+
+#: ../src/jarabe/journal/journaltoolbox.py:181
+msgid "Past year"
+msgstr "Aseggas yezrin"
+
+#: ../src/jarabe/journal/journaltoolbox.py:521
+#: ../src/jarabe/journal/palettes.py:105
+msgid "Copy to"
+msgstr "Nɣel ar"
+
+#: ../src/jarabe/journal/journaltoolbox.py:529
+#: ../src/jarabe/journal/palettes.py:116 ../src/jarabe/view/viewsource.py:379
+msgid "Duplicate"
+msgstr "Sleg"
+
+#: ../src/jarabe/journal/journaltoolbox.py:535
+msgid "Refresh"
+msgstr "Sismeḍ"
+
+#: ../src/jarabe/journal/journaltoolbox.py:577
+#: ../src/jarabe/journal/palettes.py:156 ../src/jarabe/journal/palettes.py:374
+#: ../src/jarabe/journal/volumestoolbar.py:312
+#, python-format
+msgid "Error while copying the entry. %s"
+msgstr ""
+
+#: ../src/jarabe/journal/journaltoolbox.py:578
+#: ../src/jarabe/journal/palettes.py:157 ../src/jarabe/journal/palettes.py:375
+#: ../src/jarabe/journal/volumestoolbar.py:313
+msgid "Error"
+msgstr "Tuccḍa"
+
+#. TRANS: Action label for starting an entry.
+#: ../src/jarabe/journal/journaltoolbox.py:662
+#: ../src/jarabe/journal/palettes.py:86
+msgid "Start"
+msgstr "Exécuté le"
+
+#: ../src/jarabe/journal/journaltoolbox.py:682
+#: ../src/jarabe/journal/palettes.py:100 ../src/jarabe/journal/palettes.py:513
+msgid "No activity to start entry"
+msgstr ""
+
+#: ../src/jarabe/journal/journaltoolbox.py:700
+msgid "Sort view"
+msgstr "Smizzwer timeẓri"
+
+#: ../src/jarabe/journal/journaltoolbox.py:711
+msgid "Sort by date modified"
+msgstr ""
+
+#: ../src/jarabe/journal/journaltoolbox.py:712
+msgid "Sort by date created"
+msgstr ""
+
+#: ../src/jarabe/journal/journaltoolbox.py:713
+msgid "Sort by size"
+msgstr "Smizzwer s"
+
+#: ../src/jarabe/journal/journaltoolbox.py:778
+msgid "Deselect all"
+msgstr "Kkes afran i meṛṛa"
+
+#: ../src/jarabe/journal/journaltoolbox.py:791
+msgid "Select all"
+msgstr "Fren kulec"
+
+#: ../src/jarabe/journal/journaltoolbox.py:817
+#, python-format
+msgid "Do you want to erase %d entry?"
+msgid_plural "Do you want to erase %d entries?"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../src/jarabe/journal/journaltoolbox.py:831
+#: ../src/jarabe/journal/palettes.py:378
+msgid "Copy"
+msgstr "Nɣel"
+
+#. TRANS: Do not translate %(selected)d and %(total)d.
+#: ../src/jarabe/journal/journaltoolbox.py:882
+#, python-format
+msgid "Selected %(selected)d of %(total)d"
+msgstr ""
+
+#: ../src/jarabe/journal/journaltoolbox.py:917
+msgid "Select filter"
+msgstr ""
+
+#: ../src/jarabe/journal/listview.py:473 ../src/jarabe/journal/iconview.py:212
+msgid "Your Journal is empty"
+msgstr ""
+
+#: ../src/jarabe/journal/listview.py:476 ../src/jarabe/journal/iconview.py:215
+msgid "Your documents folder is empty"
+msgstr ""
+
+#: ../src/jarabe/journal/listview.py:478 ../src/jarabe/journal/iconview.py:217
+msgid "The device is empty"
+msgstr ""
+
+#: ../src/jarabe/journal/listview.py:480 ../src/jarabe/journal/iconview.py:220
+msgid "No matching entries"
+msgstr ""
+
+#: ../src/jarabe/journal/misc.py:313
+#, python-format
+msgid "Older Version Of %s Activity"
+msgstr ""
+
+#: ../src/jarabe/journal/misc.py:314
+#, python-format
+msgid "Do you want to downgrade to version %s"
+msgstr ""
+
+#: ../src/jarabe/journal/modalalert.py:63
+msgid "Your Journal is full"
+msgstr ""
+
+#: ../src/jarabe/journal/modalalert.py:68
+msgid "Please delete some old Journal entries to make space for new ones."
+msgstr ""
+
+#: ../src/jarabe/journal/modalalert.py:82
+msgid "Show Journal"
+msgstr ""
+
+#: ../src/jarabe/journal/objectchooser.py:171
+msgid "Choose an object"
+msgstr ""
+
+#: ../src/jarabe/journal/objectchooser.py:176
+#, python-format
+msgid "Choose an object to open with %s activity"
+msgstr ""
+
+#: ../src/jarabe/journal/objectchooser.py:184
+#: ../src/jarabe/view/viewhelp.py:335 ../src/jarabe/view/viewsource.py:579
+msgid "Close"
+msgstr "Mdel"
+
+#: ../src/jarabe/journal/palettes.py:84
+msgid "Resume with"
+msgstr ""
+
+#: ../src/jarabe/journal/palettes.py:87
+msgid "Start with"
+msgstr ""
+
+#: ../src/jarabe/journal/palettes.py:124
+msgid "Send to"
+msgstr ""
+
+#: ../src/jarabe/journal/palettes.py:133
+msgid "View Details"
+msgstr "Wali talqayt"
+
+#: ../src/jarabe/journal/palettes.py:193
+msgid "Entries without a file cannot be sent."
+msgstr ""
+
+#: ../src/jarabe/journal/palettes.py:272
+#: ../src/jarabe/journal/volumestoolbar.py:214
+msgid "Documents"
+msgstr ""
+
+#: ../src/jarabe/journal/palettes.py:363 ../src/jarabe/journal/palettes.py:423
+#: ../src/jarabe/journal/volumestoolbar.py:303
+msgid "Entries without a file cannot be copied."
+msgstr ""
+
+#: ../src/jarabe/journal/palettes.py:383
+#, python-format
+msgid "Do you want to copy %d entry?"
+msgid_plural "Do you want to copy %d entries?"
+msgstr[0] ""
+msgstr[1] ""
+
+#: ../src/jarabe/journal/palettes.py:408
+msgid "Clipboard"
+msgstr "Ɣef afus"
+
+#: ../src/jarabe/journal/palettes.py:478
+msgid "No friends present"
+msgstr ""
+
+#: ../src/jarabe/journal/palettes.py:483
+msgid "No valid connection found"
+msgstr ""
+
+#: ../src/jarabe/journal/palettes.py:511
+msgid "No activity to resume entry"
+msgstr ""
+
+#: ../src/jarabe/journal/palettes.py:580 ../src/jarabe/view/palettes.py:133
+msgid "Stop"
+msgstr "Seḥbes"
+
+#: ../src/jarabe/journal/palettes.py:585
+#: ../extensions/cpsection/backup/view.py:212
+#: ../extensions/cpsection/backup/view.py:265
+msgid "Continue"
+msgstr "Kemmel"
+
+#: ../src/jarabe/journal/palettes.py:622
+#, python-format
+msgid "%(index)d of %(total)d : %(object_title)s"
+msgstr ""
+
+#: ../src/jarabe/journal/volumestoolbar.py:375
+#: ../src/jarabe/view/palettes.py:251 ../src/jarabe/view/palettes.py:317
+#, python-format
+msgid "%(free_space)d MB Free"
+msgstr ""
+
+#: ../src/jarabe/model/desktop.py:85
+#, python-format
+msgid "Favorites view %d"
+msgstr ""
+
+#: ../src/jarabe/model/network.py:217
+msgid "The reason for the device state change is unknown."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:219
+msgid "The state change is normal."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:221
+msgid "The device is now managed."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:223
+msgid "The device is no longer managed."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:225
+msgid "The device could not be readied for configuration."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:227
+msgid ""
+"IP configuration could not be reserved (no available address, timeout, etc)."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:230
+msgid "The IP configuration is no longer valid."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:232
+msgid "Secrets were required, but not provided."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:234
+msgid ""
+"The 802.1X supplicant disconnected from the access point or authentication "
+"server."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:237
+msgid "Configuration of the 802.1X supplicant failed."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:239
+msgid "The 802.1X supplicant quit or failed unexpectedly."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:241
+msgid "The 802.1X supplicant took too long to authenticate."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:243
+msgid "The PPP service failed to start within the allowed time."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:245
+msgid "The PPP service disconnected unexpectedly."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:247
+msgid "The PPP service quit or failed unexpectedly."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:249
+msgid "The DHCP service failed to start within the allowed time."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:251
+msgid "The DHCP service reported an unexpected error."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:253
+msgid "The DHCP service quit or failed unexpectedly."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:255
+msgid "The shared connection service failed to start."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:257
+msgid "The shared connection service quit or failed unexpectedly."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:260
+msgid "The AutoIP service failed to start."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:262
+msgid "The AutoIP service reported an unexpected error."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:264
+msgid "The AutoIP service quit or failed unexpectedly."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:266
+msgid "Dialing failed because the line was busy."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:268
+msgid "Dialing failed because there was no dial tone."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:270
+msgid "Dialing failed because there was no carrier."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:272
+msgid "Dialing timed out."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:274
+msgid "Dialing failed."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:276
+msgid "Modem initialization failed."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:278
+msgid "Failed to select the specified GSM APN"
+msgstr ""
+
+#: ../src/jarabe/model/network.py:280
+msgid "Not searching for networks."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:282
+msgid "Network registration was denied."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:284
+msgid "Network registration timed out."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:286
+msgid "Failed to register with the requested GSM network."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:288
+msgid "PIN check failed."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:290
+msgid "Necessary firmware for the device may be missing."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:292
+msgid "The device was removed."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:294
+msgid "NetworkManager went to sleep."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:296
+msgid "The device's active connection was removed or disappeared."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:299
+msgid "A user or client requested the disconnection."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:301
+msgid "The device's carrier/link changed."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:303
+msgid "The device's existing connection was assumed."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:305
+msgid "The supplicant is now available."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:307
+msgid "The modem could not be found."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:309
+msgid "The Bluetooth connection failed or timed out."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:311
+msgid "Unused."
+msgstr ""
+
+#: ../src/jarabe/model/screenshot.py:59 ../src/jarabe/view/viewhelp.py:70
+msgid "Mesh"
+msgstr ""
+
+#: ../src/jarabe/model/screenshot.py:72
+msgid "Screenshot"
+msgstr "Tuṭṭfa n ugdil"
+
+#: ../src/jarabe/model/screenshot.py:74
+#, python-format
+msgid "Screenshot of \"%s\""
+msgstr ""
+
+#: ../src/jarabe/view/alerts.py:38 ../src/jarabe/view/alerts.py:48
+msgid "Activity launcher"
+msgstr ""
+
+#: ../src/jarabe/view/alerts.py:39
+#, python-format
+msgid "%s is already running. Please stop %s before launching it again."
+msgstr ""
+
+#: ../src/jarabe/view/alerts.py:49
+msgid ""
+"The maximum number of open activities has been reached. Please close an "
+"activity before launching a new one."
+msgstr ""
+
+#: ../src/jarabe/view/buddymenu.py:73
+msgid "Remove friend"
+msgstr ""
+
+#: ../src/jarabe/view/buddymenu.py:76
+msgid "Make friend"
+msgstr ""
+
+#: ../src/jarabe/view/buddymenu.py:108
+msgid "Shutdown"
+msgstr "Sexsi"
+
+#: ../src/jarabe/view/buddymenu.py:113
+msgid "Restart"
+msgstr "Ales tanekra"
+
+#: ../src/jarabe/view/buddymenu.py:119
+msgid "Logout"
+msgstr "Tuffɣa"
+
+#: ../src/jarabe/view/buddymenu.py:124
+msgid "My Settings"
+msgstr "Iɣewwaṛen-iw"
+
+#: ../src/jarabe/view/buddymenu.py:183
+#, python-format
+msgid "Invite to %s"
+msgstr ""
+
+#: ../src/jarabe/view/launcher.py:159
+#, python-format
+msgid "<b>%s</b> failed to start."
+msgstr ""
+
+#: ../src/jarabe/view/palettes.py:53
+msgid "Starting..."
+msgstr "Tanekra..."
+
+#: ../src/jarabe/view/palettes.py:63
+msgid "Activity failed to start"
+msgstr ""
+
+#. TODO: share-with, keep
+#: ../src/jarabe/view/palettes.py:105
+msgid "View Source"
+msgstr "Sken aɣbalu"
+
+#: ../src/jarabe/view/palettes.py:112
+msgid "View Help"
+msgstr "Wali asebter n tallelt"
+
+#: ../src/jarabe/view/palettes.py:179
+msgid "Start new"
+msgstr ""
+
+#: ../src/jarabe/view/palettes.py:266
+msgctxt "Volume"
+msgid "Remove"
+msgstr "Kkes"
+
+#: ../src/jarabe/view/viewhelp.py:304
+msgid "Help Manual"
+msgstr ""
+
+#: ../src/jarabe/view/viewhelp.py:318
+msgid "Social Help"
+msgstr ""
+
+#: ../src/jarabe/view/viewhelp.py:326
+#, python-format
+msgid "Help: %s"
+msgstr ""
+
+#: ../src/jarabe/view/viewsource.py:364
+msgid "Instance Source"
+msgstr ""
+
+#: ../src/jarabe/view/viewsource.py:392
+#, python-format
+msgid "Do you want to duplicate %s Activity?"
+msgstr ""
+
+#: ../src/jarabe/view/viewsource.py:394
+msgid "This may take a few minutes"
+msgstr ""
+
+#: ../src/jarabe/view/viewsource.py:408
+msgid "Duplicating activity..."
+msgstr ""
+
+#: ../src/jarabe/view/viewsource.py:447
+msgid "Duplicated"
+msgstr ""
+
+#: ../src/jarabe/view/viewsource.py:448
+msgid "The activity has been duplicated"
+msgstr ""
+
+#: ../src/jarabe/view/viewsource.py:462
+msgid "Duplicated activity already exists"
+msgstr ""
+
+#: ../src/jarabe/view/viewsource.py:463
+msgid "Delete your copy before trying to duplicate the activity again"
+msgstr ""
+
+#: ../src/jarabe/view/viewsource.py:478
+msgid "Source"
+msgstr "Aqbalu"
+
+#: ../src/jarabe/view/viewsource.py:542
+msgid "Activity Bundle Source"
+msgstr ""
+
+#: ../src/jarabe/view/viewsource.py:561
+msgid "Sugar Toolkit Source"
+msgstr ""
+
+#: ../src/jarabe/view/viewsource.py:568
+#, python-format
+msgid "View source: %s"
+msgstr ""
+
+#: ../src/jarabe/view/viewsource.py:569
+#, python-format
+msgid "View source: %r"
+msgstr ""
+
+#: ../src/jarabe/view/viewsource.py:809
+msgid "Please select a file in the left panel."
+msgstr ""
+
+#: ../extensions/cpsection/backup/__init__.py:22
+msgid "Backup"
+msgstr "Sekles"
+
+#: ../extensions/cpsection/backup/backends/volume.py:61
+#: ../extensions/cpsection/backup/backends/volume.py:171
+msgid "Please connect a device to continue"
+msgstr ""
+
+#: ../extensions/cpsection/backup/backends/volume.py:69
+#: ../extensions/cpsection/backup/backends/volume.py:178
+msgid "Select your volume"
+msgstr ""
+
+#: ../extensions/cpsection/backup/backends/volume.py:78
+msgid "Not enough space in volume"
+msgstr ""
+
+#: ../extensions/cpsection/backup/backends/volume.py:122
+#, python-format
+msgid "Backup from user %s"
+msgstr ""
+
+#: ../extensions/cpsection/backup/backends/volume.py:191
+msgid "No checkpoints found in the device"
+msgstr ""
+
+#: ../extensions/cpsection/backup/backends/volume.py:199
+msgid "Select your checkpoint"
+msgstr ""
+
+#: ../extensions/cpsection/backup/backends/volume.py:210
+msgid "Not enough space in disk"
+msgstr ""
+
+#: ../extensions/cpsection/backup/backends/volume.py:329
+msgid "Local Device Backup"
+msgstr ""
+
+#: ../extensions/cpsection/backup/view.py:133
+msgid "Save the contents of your Journal"
+msgstr ""
+
+#: ../extensions/cpsection/backup/view.py:141
+msgid "Restore the contents of your Journal"
+msgstr ""
+
+#: ../extensions/cpsection/backup/view.py:223
+msgid "Please close all the activities, and start again"
+msgstr ""
+
+#: ../extensions/cpsection/backup/view.py:229
+msgid "Select where you want create your backup"
+msgstr ""
+
+#: ../extensions/cpsection/backup/view.py:231
+msgid "Select where you want retrieve your restore"
+msgstr ""
+
+#: ../extensions/cpsection/backup/view.py:271
+msgid "Retry"
+msgstr "Ɛref̣ tikelt-nniḍen"
+
+#: ../extensions/cpsection/backup/view.py:290
+msgid "Starting backup..."
+msgstr "Asenker n uḥraz..."
+
+#: ../extensions/cpsection/backup/view.py:294
+msgid "Starting restore..."
+msgstr "Asenker n tririt..."
+
+#: ../extensions/cpsection/backup/view.py:321
+msgid ""
+"I want to restore the content of my Journal. In order to do this, my Journal "
+"will first be emptied of all its content; then the restored content will be "
+"added."
+msgstr ""
+
+#: ../extensions/cpsection/backup/view.py:327
+msgid "Confirm"
+msgstr "Sentem"
+
+#: ../extensions/cpsection/backup/view.py:365
+msgid "Operation started"
+msgstr "Tamhelt tebda"
+
+#: ../extensions/cpsection/backup/view.py:377
+msgid "Backup finished successfully"
+msgstr ""
+
+#: ../extensions/cpsection/backup/view.py:379
+msgid "Restore realized successfully."
+msgstr ""
+
+#: ../src/jarabe/frame/notification.py:62
+msgid "Clear notifications"
+msgstr "Sfeḍ ilɣa"
diff --git b/po/sr@latin.po a/po/sr@latin.po
new file mode 100644
index 0000000..669d03d
--- /dev/null
+++ a/po/sr@latin.po
@@ -0,0 +1,1935 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-07-31 00:33-0400\n"
+"PO-Revision-Date: 2013-06-18 20:00+0200\n"
+"Last-Translator: Chris <cjl@laptop.org>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: sr@latin\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"X-Generator: Pootle 2.0.5\n"
+
+#: ../extensions/cpsection/aboutme/__init__.py:24
+msgid "About Me"
+msgstr ""
+
+#: ../extensions/cpsection/aboutme/model.py:48
+msgid "You must enter a name."
+msgstr ""
+
+#: ../extensions/cpsection/aboutme/model.py:75
+#, python-format
+msgid "stroke:   color=%s hue=%s"
+msgstr ""
+
+#: ../extensions/cpsection/aboutme/model.py:78
+#, python-format
+msgid "stroke:   %s"
+msgstr ""
+
+#: ../extensions/cpsection/aboutme/model.py:80
+#, python-format
+msgid "fill:     color=%s hue=%s"
+msgstr ""
+
+#: ../extensions/cpsection/aboutme/model.py:82
+#, python-format
+msgid "fill:     %s"
+msgstr ""
+
+#: ../extensions/cpsection/aboutme/model.py:94
+msgid "Error in specified color modifiers."
+msgstr ""
+
+#: ../extensions/cpsection/aboutme/model.py:97
+msgid "Error in specified colors."
+msgstr ""
+
+#: ../extensions/cpsection/aboutme/view.py:212
+msgid "Click to change your color:"
+msgstr ""
+
+#: ../extensions/cpsection/aboutcomputer/__init__.py:21
+msgid "About my Computer"
+msgstr ""
+
+#: ../extensions/cpsection/aboutcomputer/model.py:42
+msgid "Not available"
+msgstr ""
+
+#: ../extensions/cpsection/aboutcomputer/view.py:60
+msgid "Identity"
+msgstr ""
+
+#: ../extensions/cpsection/aboutcomputer/view.py:69
+msgid "Serial Number:"
+msgstr ""
+
+#: ../extensions/cpsection/aboutcomputer/view.py:91
+msgid "Software"
+msgstr ""
+
+#: ../extensions/cpsection/aboutcomputer/view.py:100
+msgid "Build:"
+msgstr ""
+
+#: ../extensions/cpsection/aboutcomputer/view.py:115
+msgid "Sugar:"
+msgstr ""
+
+#: ../extensions/cpsection/aboutcomputer/view.py:130
+msgid "Firmware:"
+msgstr ""
+
+#: ../extensions/cpsection/aboutcomputer/view.py:145
+msgid "Wireless Firmware:"
+msgstr ""
+
+#: ../extensions/cpsection/aboutcomputer/view.py:168
+msgid "Copyright and License"
+msgstr ""
+
+#. TRANS: The word "Sugar" should not be translated.
+#: ../extensions/cpsection/aboutcomputer/view.py:187
+msgid ""
+"Sugar is the graphical user interface that you are looking at. Sugar is free "
+"software, covered by the GNU General Public License, and you are welcome to "
+"change it and/or distribute copies of it under certain conditions described "
+"therein."
+msgstr ""
+
+#: ../extensions/cpsection/aboutcomputer/view.py:199
+msgid "Full license:"
+msgstr ""
+
+#: ../extensions/cpsection/background/__init__.py:21
+msgid "Background"
+msgstr "Pozadina"
+
+#: ../extensions/cpsection/background/view.py:39
+msgid "Select a background:"
+msgstr ""
+
+#: ../extensions/cpsection/background/view.py:46
+msgid "Clear background"
+msgstr ""
+
+#: ../extensions/cpsection/datetime/__init__.py:21
+msgid "Date & Time"
+msgstr ""
+
+#: ../extensions/cpsection/datetime/model.py:92
+msgid "Error timezone does not exist."
+msgstr ""
+
+#: ../extensions/cpsection/datetime/view.py:66 ../data/sugar.schemas.in.h:61
+msgid "Timezone"
+msgstr ""
+
+#: ../extensions/cpsection/frame/__init__.py:21
+msgid "Frame"
+msgstr ""
+
+#: ../extensions/cpsection/frame/model.py:41
+#: ../extensions/cpsection/frame/model.py:66
+msgid "Value must be an integer."
+msgstr ""
+
+#: ../extensions/cpsection/frame/view.py:27
+msgid "never"
+msgstr ""
+
+#: ../extensions/cpsection/frame/view.py:28
+msgid "instantaneous"
+msgstr ""
+
+#: ../extensions/cpsection/frame/view.py:29
+#, python-format
+msgid "%s seconds"
+msgstr ""
+
+#: ../extensions/cpsection/frame/view.py:54
+msgid "Activation Delay"
+msgstr ""
+
+#: ../extensions/cpsection/frame/view.py:78
+msgid "Corner"
+msgstr ""
+
+#: ../extensions/cpsection/frame/view.py:114
+msgid "Edge"
+msgstr ""
+
+#: ../extensions/cpsection/keyboard/__init__.py:21
+#: ../extensions/cpsection/keyboard/view.py:38
+msgid "Keyboard"
+msgstr ""
+
+#: ../extensions/cpsection/keyboard/view.py:240
+msgid "Keyboard Model"
+msgstr ""
+
+#: ../extensions/cpsection/keyboard/view.py:301
+msgid "Key(s) to change layout"
+msgstr ""
+
+#: ../extensions/cpsection/keyboard/view.py:369
+msgid "Keyboard Layout(s)"
+msgstr ""
+
+#: ../extensions/cpsection/language/__init__.py:21
+#: ../extensions/cpsection/language/view.py:33
+msgid "Language"
+msgstr ""
+
+#: ../extensions/cpsection/language/model.py:30
+msgid "Could not access ~/.i18n. Create standard settings."
+msgstr ""
+
+#: ../extensions/cpsection/language/model.py:129
+#, python-format
+msgid "Language for code=%s could not be determined."
+msgstr ""
+
+#: ../extensions/cpsection/language/model.py:152
+#, python-format
+msgid "Sorry I do not speak '%s'."
+msgstr ""
+
+#: ../extensions/cpsection/language/view.py:57
+msgid ""
+"Add languages in the order you prefer. If a translation is not available, "
+"the next in the list will be used."
+msgstr ""
+
+#: ../extensions/cpsection/modemconfiguration/__init__.py:21
+msgid "Modem Configuration"
+msgstr ""
+
+#: ../extensions/cpsection/modemconfiguration/view.py:94
+msgid ""
+"You will need to provide the following information to set up a mobile "
+"broadband connection to a cellular (3G) network."
+msgstr ""
+
+#: ../extensions/cpsection/modemconfiguration/view.py:117
+msgid "Country:"
+msgstr ""
+
+#: ../extensions/cpsection/modemconfiguration/view.py:118
+msgid "Provider:"
+msgstr ""
+
+#: ../extensions/cpsection/modemconfiguration/view.py:119
+msgid "Plan:"
+msgstr ""
+
+#: ../extensions/cpsection/modemconfiguration/view.py:160
+msgid "Username:"
+msgstr ""
+
+#: ../extensions/cpsection/modemconfiguration/view.py:167
+msgid "Password:"
+msgstr ""
+
+#: ../extensions/cpsection/modemconfiguration/view.py:174
+msgid "Number:"
+msgstr ""
+
+#: ../extensions/cpsection/modemconfiguration/view.py:181
+msgid "Access Point Name (APN):"
+msgstr ""
+
+#: ../extensions/cpsection/modemconfiguration/view.py:188
+msgid "Personal Identity Number (PIN):"
+msgstr ""
+
+#: ../extensions/cpsection/modemconfiguration/model.py:161
+#, python-format
+msgid "Plan #%s"
+msgstr ""
+
+#: ../extensions/cpsection/modemconfiguration/model.py:291
+#, python-format
+msgid "Provider %s"
+msgstr ""
+
+#: ../extensions/cpsection/network/__init__.py:21
+#: ../extensions/cpsection/network/view.py:30
+msgid "Network"
+msgstr ""
+
+#: ../extensions/cpsection/network/model.py:73
+msgid "State is unknown."
+msgstr ""
+
+#: ../extensions/cpsection/network/model.py:101
+msgid "Error in specified radio argument use on/off."
+msgstr ""
+
+#: ../extensions/cpsection/network/model.py:152
+msgid "Error in specified argument use 0/1."
+msgstr ""
+
+#: ../extensions/cpsection/network/view.py:68
+msgid "Wireless"
+msgstr ""
+
+#: ../extensions/cpsection/network/view.py:77
+msgid "Turn off the wireless radio to save battery life"
+msgstr ""
+
+#: ../extensions/cpsection/network/view.py:90
+msgid "Radio"
+msgstr ""
+
+#: ../extensions/cpsection/network/view.py:106
+msgid "Discard network history if you have trouble connecting to the network"
+msgstr ""
+
+#: ../extensions/cpsection/network/view.py:115
+msgid "Discard network history"
+msgstr ""
+
+#: ../extensions/cpsection/network/view.py:131
+msgid "Collaboration"
+msgstr ""
+
+#: ../extensions/cpsection/network/view.py:139
+msgid ""
+"The server is the equivalent of what room you are in; people on the same "
+"server will be able to see each other, even when they aren't on the same "
+"network."
+msgstr ""
+
+#: ../extensions/cpsection/network/view.py:149
+msgid "Server:"
+msgstr ""
+
+#: ../extensions/cpsection/power/__init__.py:21
+msgid "Power"
+msgstr ""
+
+#: ../extensions/cpsection/power/model.py:90
+msgid "Error in automatic pm argument, use on/off."
+msgstr ""
+
+#: ../extensions/cpsection/power/view.py:45
+msgid "Power management"
+msgstr ""
+
+#: ../extensions/cpsection/power/view.py:55 ../data/sugar.schemas.in.h:5
+msgid "Automatic power management (increases battery life)"
+msgstr ""
+
+#: ../extensions/cpsection/updater/__init__.py:21
+msgid "Software Update"
+msgstr ""
+
+#: ../extensions/cpsection/updater/view.py:65
+msgid ""
+"Software updates correct errors, eliminate security vulnerabilities, and "
+"provide new features."
+msgstr ""
+
+#: ../extensions/cpsection/updater/view.py:79
+msgid "Update in progress..."
+msgstr ""
+
+#: ../extensions/cpsection/updater/view.py:106
+msgid "Checking for updates..."
+msgstr ""
+
+#: ../extensions/cpsection/updater/view.py:108
+msgid "Installing updates..."
+msgstr ""
+
+#: ../extensions/cpsection/updater/view.py:137
+#, python-format
+msgid "Checking %s..."
+msgstr ""
+
+#: ../extensions/cpsection/updater/view.py:139
+msgid "Looking for updates..."
+msgstr ""
+
+#: ../extensions/cpsection/updater/view.py:141
+#, python-format
+msgid "Downloading %s..."
+msgstr ""
+
+#: ../extensions/cpsection/updater/view.py:143
+#, python-format
+msgid "Updating %s..."
+msgstr ""
+
+#: ../extensions/cpsection/updater/view.py:153
+msgid "Your software is up-to-date"
+msgstr ""
+
+#: ../extensions/cpsection/updater/view.py:155
+#, python-format
+msgid "You can install %s update"
+msgid_plural "You can install %s updates"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+#: ../extensions/cpsection/updater/view.py:184
+#, python-format
+msgid "%s update was installed"
+msgid_plural "%s updates were installed"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+#: ../extensions/cpsection/updater/view.py:266
+msgid "Install selected"
+msgstr ""
+
+#: ../extensions/cpsection/updater/view.py:284
+#, python-format
+msgid "Download size: %s"
+msgstr ""
+
+#: ../extensions/cpsection/updater/view.py:373
+#, python-format
+msgid "From version %(current)s to %(new)s (Size: %(size)s)"
+msgstr ""
+
+#: ../extensions/cpsection/updater/view.py:380
+#, python-format
+msgid "Version %(version)s (Size: %(size)s)"
+msgstr ""
+
+#. TRANS: download size is 0
+#: ../extensions/cpsection/updater/view.py:397
+msgid "None"
+msgstr ""
+
+#. TRANS: download size of very small updates
+#: ../extensions/cpsection/updater/view.py:400
+msgid "1 KB"
+msgstr ""
+
+#. TRANS: download size of small updates, e.g. '250 KB'
+#: ../extensions/cpsection/updater/view.py:403
+#, python-format
+msgid "%.0f KB"
+msgstr ""
+
+#. TRANS: download size of updates, e.g. '2.3 MB'
+#: ../extensions/cpsection/updater/view.py:406
+#, python-format
+msgid "%.1f MB"
+msgstr ""
+
+#: ../extensions/cpsection/webaccount/__init__.py:24
+msgid "Configure your Web Services"
+msgstr ""
+
+#: ../extensions/cpsection/webaccount/view.py:42
+#, python-format
+msgid ""
+"No web services are installed.\n"
+"Please visit %s for more details."
+msgstr ""
+
+#: ../extensions/deviceicon/battery.py:71
+msgid "My Battery"
+msgstr ""
+
+#: ../extensions/deviceicon/battery.py:153
+msgid "Removed"
+msgstr ""
+
+#: ../extensions/deviceicon/battery.py:156
+msgid "Charging"
+msgstr ""
+
+#: ../extensions/deviceicon/battery.py:159
+msgid "Very little power remaining"
+msgstr ""
+
+#. TRANS: do not translate %(hour)d:%(min).2d  it is a variable,
+#. only translate the word "remaining"
+#: ../extensions/deviceicon/battery.py:166
+#, python-format
+msgid "%(hour)d:%(min).2d remaining"
+msgstr ""
+
+#: ../extensions/deviceicon/battery.py:169
+msgid "Charged"
+msgstr ""
+
+#: ../extensions/deviceicon/frame.py:56
+msgid "Show my keyboard"
+msgstr ""
+
+#: ../extensions/deviceicon/network.py:50
+#, python-format
+msgid "IP address: %s"
+msgstr ""
+
+#: ../extensions/deviceicon/network.py:82
+#: ../extensions/deviceicon/network.py:298
+#: ../src/jarabe/desktop/networkviews.py:135
+#: ../src/jarabe/desktop/networkviews.py:509
+msgid "Disconnect"
+msgstr ""
+
+#: ../extensions/deviceicon/network.py:107
+#: ../extensions/deviceicon/network.py:290
+#: ../src/jarabe/desktop/networkviews.py:251
+#: ../src/jarabe/desktop/networkviews.py:551
+#: ../src/jarabe/desktop/networkviews.py:693
+msgid "Connecting..."
+msgstr ""
+
+#: ../extensions/deviceicon/network.py:112
+#: ../extensions/deviceicon/network.py:180
+#: ../src/jarabe/desktop/networkviews.py:258
+#: ../src/jarabe/desktop/networkviews.py:557
+#: ../src/jarabe/desktop/networkviews.py:699
+msgid "Connected"
+msgstr ""
+
+#: ../extensions/deviceicon/network.py:125
+msgid "No wireless connection"
+msgstr ""
+
+#: ../extensions/deviceicon/network.py:139
+msgid "Channel"
+msgstr ""
+
+#: ../extensions/deviceicon/network.py:154
+msgid "Wired Network"
+msgstr ""
+
+#: ../extensions/deviceicon/network.py:183
+msgid "Speed"
+msgstr ""
+
+#: ../extensions/deviceicon/network.py:208
+msgid "Wireless modem"
+msgstr ""
+
+#: ../extensions/deviceicon/network.py:276
+msgid "Please wait..."
+msgstr ""
+
+#: ../extensions/deviceicon/network.py:281
+#: ../src/jarabe/desktop/networkviews.py:129
+#: ../src/jarabe/desktop/networkviews.py:503
+#: ../src/jarabe/desktop/networkviews.py:644
+msgid "Connect"
+msgstr ""
+
+#: ../extensions/deviceicon/network.py:282
+msgid "Disconnected"
+msgstr ""
+
+#: ../extensions/deviceicon/network.py:289
+#: ../src/jarabe/controlpanel/toolbar.py:121
+#: ../src/jarabe/desktop/keydialog.py:101
+#: ../src/jarabe/frame/activitiestray.py:625
+#: ../src/jarabe/frame/activitiestray.py:746
+#: ../src/jarabe/frame/activitiestray.py:778
+#: ../src/jarabe/journal/expandedentry.py:159
+#: ../src/jarabe/journal/journaltoolbox.py:480
+#: ../src/jarabe/journal/palettes.py:159
+msgid "Cancel"
+msgstr ""
+
+#: ../extensions/deviceicon/network.py:328
+msgid "Try connection again"
+msgstr ""
+
+#: ../extensions/deviceicon/network.py:331
+#, python-format
+msgid "Error: %s"
+msgstr ""
+
+#: ../extensions/deviceicon/network.py:335
+#, python-format
+msgid "Suggestion: %s"
+msgstr ""
+
+#: ../extensions/deviceicon/network.py:344
+#, python-format
+msgid "Connected for %s"
+msgstr ""
+
+#: ../extensions/deviceicon/network.py:350
+#: ../extensions/deviceicon/network.py:351
+#, python-format
+msgid "%d KB"
+msgstr ""
+
+#: ../extensions/deviceicon/network.py:356
+msgid "Check your PIN/PUK configuration."
+msgstr ""
+
+#: ../extensions/deviceicon/network.py:359
+msgid "Check your Access Point Name (APN) configuration"
+msgstr ""
+
+#: ../extensions/deviceicon/network.py:363
+msgid "Check the Number configuration."
+msgstr ""
+
+#: ../extensions/deviceicon/network.py:365
+msgid "Check your configuration."
+msgstr ""
+
+#: ../extensions/deviceicon/network.py:621
+msgid "Mesh Network"
+msgstr ""
+
+#: ../extensions/deviceicon/network.py:668
+#, python-format
+msgid "Mesh Network %s"
+msgstr ""
+
+#: ../extensions/deviceicon/network.py:788
+msgid "No GSM connection available."
+msgstr ""
+
+#: ../extensions/deviceicon/network.py:789
+msgid "Create a connection in the control panel."
+msgstr ""
+
+#: ../extensions/deviceicon/speech.py:52
+msgid "Speech"
+msgstr ""
+
+#: ../extensions/deviceicon/speech.py:76
+#: ../extensions/deviceicon/speech.py:150
+#: ../extensions/deviceicon/speech.py:155
+msgid "Say selected text"
+msgstr ""
+
+#: ../extensions/deviceicon/speech.py:83
+msgid "Stop playback"
+msgstr ""
+
+#: ../extensions/deviceicon/speech.py:92
+msgid "Pitch"
+msgstr ""
+
+#: ../extensions/deviceicon/speech.py:107
+msgid "Rate"
+msgstr ""
+
+#: ../extensions/deviceicon/speech.py:145
+msgid "Pause playback"
+msgstr ""
+
+#: ../extensions/deviceicon/speaker.py:61
+msgid "My Speakers"
+msgstr ""
+
+#: ../extensions/deviceicon/speaker.py:136
+msgid "Unmute"
+msgstr ""
+
+#: ../extensions/deviceicon/speaker.py:139
+msgid "Mute"
+msgstr ""
+
+#: ../extensions/deviceicon/touchpad.py:38
+msgid "finger"
+msgstr ""
+
+#: ../extensions/deviceicon/touchpad.py:38
+msgid "stylus"
+msgstr ""
+
+#: ../extensions/deviceicon/touchpad.py:64
+msgid "My touchpad"
+msgstr ""
+
+#: ../extensions/deviceicon/volume.py:72 ../src/jarabe/view/palettes.py:184
+msgid "Show contents"
+msgstr ""
+
+#: ../extensions/globalkey/screenshot.py:61
+msgid "Mesh"
+msgstr ""
+
+#: ../extensions/globalkey/screenshot.py:63
+#: ../src/jarabe/desktop/homewindow.py:221
+#: ../src/jarabe/frame/zoomtoolbar.py:53
+msgid "Group"
+msgstr ""
+
+#: ../extensions/globalkey/screenshot.py:65
+#: ../src/jarabe/desktop/homewindow.py:214
+#: ../src/jarabe/desktop/viewtoolbar.py:73
+#: ../src/jarabe/frame/zoomtoolbar.py:57
+msgid "Home"
+msgstr ""
+
+#: ../extensions/globalkey/screenshot.py:71
+#: ../src/jarabe/frame/zoomtoolbar.py:62
+msgid "Activity"
+msgstr ""
+
+#: ../extensions/globalkey/screenshot.py:74
+msgid "Screenshot"
+msgstr ""
+
+#: ../extensions/globalkey/screenshot.py:76
+#, python-format
+msgid "Screenshot of \"%s\""
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:1
+msgid ""
+"\"disabled\" to ask nick on initialization; \"system\" to reuse UNIX account "
+"long name."
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:2
+msgid ""
+"A unix timestamp (seconds since epoch) of the last successful activity "
+"update."
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:3
+msgid ""
+"Activity update backend module, followed by a period, followed by the class "
+"name."
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:4
+msgid "Activity update backend."
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:6
+msgid "Automatic update frequency."
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:7
+msgid "Backup URL"
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:8
+msgid "Bundle IDs of protected activities"
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:9
+msgid ""
+"Color for the XO icon that is used throughout the desktop. The string is "
+"composed of the stroke color and fill color, format is that of rgb colors. "
+"Example: #AC32FF,#9A5200"
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:10
+msgid "Corner Delay"
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:11
+msgid "Default font face"
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:12
+msgid "Default font size"
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:13
+msgid "Default nick"
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:14
+msgid "Delay for the activation of the frame using the corners."
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:15
+msgid "Delay for the activation of the frame using the edges."
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:16
+msgid "Edge Delay"
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:17
+msgid ""
+"Extreme power management (disables wireless radio, increases battery life)"
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:18
+msgid "Favorites Layout"
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:19
+msgid "Favorites resume mode"
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:20
+msgid "Font face that is used throughout the desktop."
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:21
+msgid "Font size that is used throughout the desktop."
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:22
+msgid ""
+"Frequency of automatic activity updates, measured in days. 0 means disabled."
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:23
+msgid "GSM network APN (DEPRECATED/UNUSED)"
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:24
+msgid "GSM network PIN (DEPRECATED/UNUSED)"
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:25
+msgid "GSM network PUK (DEPRECATED/UNUSED)"
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:26
+msgid "GSM network access point name configuration (DEPRECATED/UNUSED)"
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:27
+msgid "GSM network number (DEPRECATED/UNUSED)"
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:28
+msgid "GSM network password (DEPRECATED/UNUSED)"
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:29
+msgid "GSM network password configuration (DEPRECATED/UNUSED)"
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:30
+msgid ""
+"GSM network personal identification number configuration (DEPRECATED/UNUSED)"
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:31
+msgid "GSM network personal unlock key configuration (DEPRECATED/UNUSED)"
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:32
+msgid "GSM network telephone number configuration (DEPRECATED/UNUSED)"
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:33
+msgid "GSM network username (DEPRECATED/UNUSED)"
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:34
+msgid "GSM network username configuration (DEPRECATED/UNUSED)"
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:35
+msgid ""
+"If TRUE, Sugar will make us searchable for the other users of the Jabber "
+"server."
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:36
+msgid "If TRUE, Sugar will show a \"Log out\" option."
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:37
+msgid "If TRUE, Sugar will show a \"Restart\" option."
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:38
+msgid ""
+"If TRUE, Sugar will show default Ad-hoc networks for channel 1,6 and 11. If "
+"Sugar sees no \"known\" network when it starts, it does autoconnect to an Ad-"
+"hoc network."
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:39
+msgid "Jabber Server"
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:40
+msgid "Keyboard layouts"
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:41
+msgid "Keyboard model"
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:42
+msgid "Keyboard options"
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:43
+msgid "Layout of the favorites view."
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:44
+msgid ""
+"List of keyboard layouts. Each entry should be in the form layout(variant)"
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:45
+msgid "List of keyboard options."
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:46
+msgid "Microformat update URL."
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:47
+msgid "Pitch value for the speech sugar service"
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:48
+msgid "Pitch value used by the speech service in Sugar"
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:49
+msgid "Power Automatic"
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:50
+msgid "Power Extreme"
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:51
+msgid "Publish to Gadget"
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:52
+msgid "Rate value for the speech sugar service"
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:53
+msgid "Rate value used by the speech service in Sugar"
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:54
+msgid "Setting for muting the sound device."
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:55
+msgid "Show Log out"
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:56
+msgid "Show Restart"
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:57
+msgid "Show Sugar Ad-hoc networks"
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:58
+msgid "Sound Muted"
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:59
+msgid "The keyboard model to be used"
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:60
+msgid "Timestamp of last activity update."
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:62
+msgid "Timezone setting for the system."
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:63
+msgid "URL of the jabber server to use."
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:64
+msgid ""
+"URL used by the microformat update backend for activity update information."
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:65
+msgid "URL where the backup is saved to."
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:66
+msgid "User Color"
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:67
+msgid "User Name"
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:68
+msgid "User name that is used throughout the desktop."
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:69
+msgid ""
+"Users will not be allowed to erase these activities through the list view."
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:70
+msgid "Volume Level"
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:71
+msgid "Volume level for the sound device."
+msgstr ""
+
+#: ../data/sugar.schemas.in.h:72
+msgid ""
+"When in resume mode, clicking on a favorite icon will cause the last entry "
+"for that activity to be resumed."
+msgstr ""
+
+#: ../src/jarabe/controlpanel/cmd.py:28
+#, python-format
+msgid ""
+"sugar-control-panel: WARNING, found more than one option with the same name: "
+"%s module: %r"
+msgstr ""
+
+#: ../src/jarabe/controlpanel/cmd.py:30
+#, python-format
+msgid "sugar-control-panel: key=%s not an available option"
+msgstr ""
+
+#: ../src/jarabe/controlpanel/cmd.py:31
+#, python-format
+msgid "sugar-control-panel: %s"
+msgstr ""
+
+#. TRANS: Translators, there's a empty line at the end of this string,
+#. which must appear in the translated string (msgstr) as well.
+#: ../src/jarabe/controlpanel/cmd.py:38
+msgid ""
+"Usage: sugar-control-panel [ option ] key [ args ... ] \n"
+"    Control for the sugar environment. \n"
+"    Options: \n"
+"    -h           show this help message and exit \n"
+"    -l           list all the available options \n"
+"    -h key       show information about this key \n"
+"    -g key       get the current value of the key \n"
+"    -s key       set the current value for the key \n"
+"    -c key       clear the current value for the key \n"
+"    "
+msgstr ""
+
+#: ../src/jarabe/controlpanel/cmd.py:52
+msgid "To apply your changes you have to restart Sugar.\n"
+msgstr ""
+
+#: ../src/jarabe/controlpanel/gui.py:323 ../src/jarabe/journal/palettes.py:187
+#: ../src/jarabe/journal/palettes.py:350 ../src/jarabe/journal/palettes.py:410
+#: ../src/jarabe/journal/volumestoolbar.py:302
+msgid "Warning"
+msgstr ""
+
+#: ../src/jarabe/controlpanel/gui.py:324
+#: ../src/jarabe/controlpanel/sectionview.py:41
+msgid "Changes require restart"
+msgstr ""
+
+#: ../src/jarabe/controlpanel/gui.py:328
+msgid "Cancel changes"
+msgstr ""
+
+#: ../src/jarabe/controlpanel/gui.py:333
+msgid "Later"
+msgstr ""
+
+#: ../src/jarabe/controlpanel/gui.py:337
+msgid "Restart now"
+msgstr ""
+
+#: ../src/jarabe/controlpanel/toolbar.py:56
+#: ../src/jarabe/desktop/viewtoolbar.py:129
+#: ../src/jarabe/journal/journaltoolbox.py:89
+#, python-format
+msgid "Search in %s"
+msgstr ""
+
+#: ../src/jarabe/controlpanel/toolbar.py:56
+msgid "Settings"
+msgstr ""
+
+#: ../src/jarabe/controlpanel/toolbar.py:65 ../src/jarabe/intro/window.py:211
+msgid "Done"
+msgstr ""
+
+#: ../src/jarabe/controlpanel/toolbar.py:127
+#: ../src/jarabe/desktop/favoritesview.py:374
+#: ../src/jarabe/desktop/keydialog.py:105
+msgid "Ok"
+msgstr ""
+
+#: ../src/jarabe/desktop/activitieslist.py:282
+#, python-format
+msgid "Version %s"
+msgstr ""
+
+#: ../src/jarabe/desktop/activitieslist.py:385
+#: ../src/jarabe/journal/listview.py:475 ../src/jarabe/journal/iconview.py:299
+msgid "Clear search"
+msgstr ""
+
+#: ../src/jarabe/desktop/activitieslist.py:469
+msgid "No matching activities"
+msgstr ""
+
+#: ../src/jarabe/desktop/activitieslist.py:505
+msgid "Confirm erase"
+msgstr ""
+
+#: ../src/jarabe/desktop/activitieslist.py:507
+#, python-format
+msgid "Confirm erase: Do you want to permanently erase %s?"
+msgstr ""
+
+#: ../src/jarabe/desktop/activitieslist.py:511
+#: ../src/jarabe/frame/clipboardmenu.py:65
+#: ../src/jarabe/view/viewsource.py:288
+msgid "Keep"
+msgstr ""
+
+#: ../src/jarabe/desktop/activitieslist.py:514
+#: ../src/jarabe/desktop/activitieslist.py:578
+#: ../src/jarabe/journal/expandedentry.py:153
+#: ../src/jarabe/journal/journaltoolbox.py:443
+#: ../src/jarabe/journal/journaltoolbox.py:475
+#: ../src/jarabe/journal/journaltoolbox.py:689
+#: ../src/jarabe/journal/journaltoolbox.py:695
+#: ../src/jarabe/journal/palettes.py:132 ../src/jarabe/journal/palettes.py:154
+msgid "Erase"
+msgstr ""
+
+#: ../src/jarabe/desktop/activitieslist.py:594
+msgid "Remove favorite"
+msgstr ""
+
+#: ../src/jarabe/desktop/activitieslist.py:598
+msgid "Make favorite"
+msgstr ""
+
+#. TRANS: label for the freeform layout in the favorites view
+#: ../src/jarabe/desktop/favoriteslayout.py:199
+msgid "Freeform"
+msgstr ""
+
+#. TRANS: label for the ring layout in the favorites view
+#: ../src/jarabe/desktop/favoriteslayout.py:295
+msgid "Ring"
+msgstr ""
+
+#. TRANS: label for the spiral layout in the favorites view
+#: ../src/jarabe/desktop/favoriteslayout.py:459
+msgid "Spiral"
+msgstr ""
+
+#. TRANS: label for the box layout in the favorites view
+#: ../src/jarabe/desktop/favoriteslayout.py:527
+msgid "Box"
+msgstr ""
+
+#. TRANS: label for the box layout in the favorites view
+#: ../src/jarabe/desktop/favoriteslayout.py:570
+msgid "Triangle"
+msgstr ""
+
+#: ../src/jarabe/desktop/favoritesview.py:365
+msgid "Registration Failed"
+msgstr ""
+
+#: ../src/jarabe/desktop/favoritesview.py:368
+msgid "Registration Successful"
+msgstr ""
+
+#: ../src/jarabe/desktop/favoritesview.py:369
+msgid "You are now registered with your school server."
+msgstr ""
+
+#: ../src/jarabe/desktop/favoritesview.py:653
+msgid "Register"
+msgstr ""
+
+#: ../src/jarabe/desktop/favoritesview.py:656
+#: ../src/jarabe/desktop/favoritesview.py:672
+msgid "Register again"
+msgstr ""
+
+#: ../src/jarabe/desktop/homewindow.py:228
+#: ../src/jarabe/frame/zoomtoolbar.py:49
+msgid "Neighborhood"
+msgstr ""
+
+#: ../src/jarabe/desktop/keydialog.py:94
+#, python-format
+msgid ""
+"A wireless encryption key is required for\n"
+" the wireless network '%s'."
+msgstr ""
+
+#: ../src/jarabe/desktop/keydialog.py:150
+msgid "Key Type:"
+msgstr ""
+
+#: ../src/jarabe/desktop/keydialog.py:170
+msgid "Authentication Type:"
+msgstr ""
+
+#: ../src/jarabe/desktop/keydialog.py:233
+msgid "WPA & WPA2 Personal"
+msgstr ""
+
+#: ../src/jarabe/desktop/keydialog.py:242
+msgid "Wireless Security:"
+msgstr ""
+
+#. TRANS: Action label for resuming an activity.
+#: ../src/jarabe/desktop/meshbox.py:82
+#: ../src/jarabe/journal/journaltoolbox.py:548
+#: ../src/jarabe/journal/palettes.py:77 ../src/jarabe/view/palettes.py:96
+msgid "Resume"
+msgstr ""
+
+#: ../src/jarabe/desktop/meshbox.py:89
+#: ../src/jarabe/frame/activitiestray.py:190
+msgid "Join"
+msgstr ""
+
+#: ../src/jarabe/desktop/networkviews.py:497
+#, python-format
+msgid "Ad-hoc Network %d"
+msgstr ""
+
+#: ../src/jarabe/desktop/networkviews.py:639
+#, python-format
+msgid "Mesh Network %d"
+msgstr ""
+
+#: ../src/jarabe/desktop/schoolserver.py:144
+msgid "Cannot connect to the server."
+msgstr ""
+
+#: ../src/jarabe/desktop/schoolserver.py:151
+msgid "The server could not complete the request."
+msgstr ""
+
+#: ../src/jarabe/desktop/viewtoolbar.py:95
+msgid "List view"
+msgstr ""
+
+#: ../src/jarabe/desktop/viewtoolbar.py:97
+#: ../src/jarabe/desktop/viewtoolbar.py:195
+#: ../src/jarabe/desktop/viewtoolbar.py:209
+#, python-format
+msgid "<Ctrl>%d"
+msgstr ""
+
+#: ../src/jarabe/desktop/viewtoolbar.py:208
+#, python-format
+msgid "Favorites view %d"
+msgstr ""
+
+#: ../src/jarabe/frame/activitiestray.py:195
+#: ../src/jarabe/frame/activitiestray.py:593
+msgid "Decline"
+msgstr ""
+
+#: ../src/jarabe/frame/activitiestray.py:534
+#, python-format
+msgid "%dB"
+msgstr ""
+
+#: ../src/jarabe/frame/activitiestray.py:536
+#, python-format
+msgid "%dKB"
+msgstr ""
+
+#: ../src/jarabe/frame/activitiestray.py:538
+#, python-format
+msgid "%dMB"
+msgstr ""
+
+#. TRANS: file transfer, bytes transferred, e.g. 128 of 1024
+#: ../src/jarabe/frame/activitiestray.py:556
+#, python-format
+msgid "%s of %s"
+msgstr ""
+
+#: ../src/jarabe/frame/activitiestray.py:570
+#, python-format
+msgid "Transfer from %s"
+msgstr ""
+
+#: ../src/jarabe/frame/activitiestray.py:585
+msgid "Accept"
+msgstr ""
+
+#: ../src/jarabe/frame/activitiestray.py:653
+#: ../src/jarabe/frame/activitiestray.py:666
+#: ../src/jarabe/frame/activitiestray.py:807
+msgid "Dismiss"
+msgstr ""
+
+#: ../src/jarabe/frame/activitiestray.py:680
+msgid "The other participant canceled the file transfer"
+msgstr ""
+
+#: ../src/jarabe/frame/activitiestray.py:730
+#, python-format
+msgid "Transfer to %s"
+msgstr ""
+
+#: ../src/jarabe/frame/clipboardmenu.py:54
+msgctxt "Clipboard"
+msgid "Remove"
+msgstr ""
+
+#: ../src/jarabe/frame/clipboardmenu.py:60
+#: ../src/jarabe/frame/clipboardmenu.py:83
+msgid "Open"
+msgstr ""
+
+#: ../src/jarabe/frame/clipboardmenu.py:88
+msgid "Open with"
+msgstr ""
+
+#: ../src/jarabe/frame/clipboardobject.py:50
+#, python-format
+msgid "%s clipping"
+msgstr ""
+
+#: ../src/jarabe/frame/zoomtoolbar.py:50
+msgid "F1"
+msgstr ""
+
+#: ../src/jarabe/frame/zoomtoolbar.py:54
+msgid "F2"
+msgstr ""
+
+#: ../src/jarabe/frame/zoomtoolbar.py:58
+msgid "F3"
+msgstr ""
+
+#: ../src/jarabe/frame/zoomtoolbar.py:63
+msgid "F4"
+msgstr ""
+
+#: ../src/jarabe/intro/window.py:106
+msgid "Name:"
+msgstr ""
+
+#: ../src/jarabe/intro/window.py:136
+msgid "Click to change color:"
+msgstr ""
+
+#: ../src/jarabe/intro/window.py:200 ../src/jarabe/journal/detailview.py:95
+msgid "Back"
+msgstr ""
+
+#: ../src/jarabe/intro/window.py:214
+msgid "Next"
+msgstr ""
+
+#: ../src/jarabe/journal/expandedentry.py:155
+#: ../src/jarabe/journal/journaltoolbox.py:477
+#: ../src/jarabe/journal/palettes.py:156
+#, python-format
+msgid "Do you want to permanently erase \"%s\"?"
+msgstr ""
+
+#: ../src/jarabe/journal/expandedentry.py:296
+#: ../src/jarabe/journal/listmodel.py:159 ../src/jarabe/journal/model.py:721
+#: ../src/jarabe/journal/palettes.py:70 ../src/jarabe/journal/palettes.py:597
+#: ../src/jarabe/journal/volumestoolbar.py:131
+#: ../src/jarabe/journal/iconmodel.py:110
+msgid "Untitled"
+msgstr ""
+
+#: ../src/jarabe/journal/expandedentry.py:367
+msgid "No preview"
+msgstr ""
+
+#: ../src/jarabe/journal/expandedentry.py:382
+#, python-format
+msgid "Kind: %s"
+msgstr ""
+
+#: ../src/jarabe/journal/expandedentry.py:382
+#: ../src/jarabe/journal/listmodel.py:165
+#: ../src/jarabe/journal/listmodel.py:173
+msgid "Unknown"
+msgstr ""
+
+#: ../src/jarabe/journal/expandedentry.py:383
+#, python-format
+msgid "Date: %s"
+msgstr ""
+
+#: ../src/jarabe/journal/expandedentry.py:384
+#, python-format
+msgid "Size: %s"
+msgstr ""
+
+#: ../src/jarabe/journal/expandedentry.py:411
+#: ../src/jarabe/journal/misc.py:109
+msgid "No date"
+msgstr ""
+
+#: ../src/jarabe/journal/expandedentry.py:420
+msgid "Participants:"
+msgstr ""
+
+#: ../src/jarabe/journal/expandedentry.py:458
+msgid "Description:"
+msgstr ""
+
+#: ../src/jarabe/journal/expandedentry.py:464
+msgid "Tags:"
+msgstr ""
+
+#: ../src/jarabe/journal/expandedentry.py:469
+msgid "Comments:"
+msgstr ""
+
+#: ../src/jarabe/journal/journalactivity.py:140
+#: ../src/jarabe/journal/journaltoolbox.py:89
+#: ../src/jarabe/journal/palettes.py:248
+#: ../src/jarabe/journal/volumestoolbar.py:363
+msgid "Journal"
+msgstr ""
+
+#: ../src/jarabe/journal/journaltoolbox.py:98
+msgid "Favorite entries"
+msgstr ""
+
+#: ../src/jarabe/journal/journaltoolbox.py:134
+msgid "Anytime"
+msgstr ""
+
+#: ../src/jarabe/journal/journaltoolbox.py:136
+msgid "Today"
+msgstr ""
+
+#: ../src/jarabe/journal/journaltoolbox.py:138
+msgid "Since yesterday"
+msgstr ""
+
+#. TRANS: Filter entries modified during the last 7 days.
+#: ../src/jarabe/journal/journaltoolbox.py:140
+msgid "Past week"
+msgstr ""
+
+#. TRANS: Filter entries modified during the last 30 days.
+#: ../src/jarabe/journal/journaltoolbox.py:142
+msgid "Past month"
+msgstr ""
+
+#. TRANS: Filter entries modified during the last 356 days.
+#: ../src/jarabe/journal/journaltoolbox.py:144
+msgid "Past year"
+msgstr ""
+
+#: ../src/jarabe/journal/journaltoolbox.py:151
+msgid "Anyone"
+msgstr ""
+
+#: ../src/jarabe/journal/journaltoolbox.py:153
+msgid "My friends"
+msgstr ""
+
+#: ../src/jarabe/journal/journaltoolbox.py:154
+msgid "My class"
+msgstr ""
+
+#: ../src/jarabe/journal/journaltoolbox.py:327
+msgid "Anything"
+msgstr ""
+
+#: ../src/jarabe/journal/journaltoolbox.py:419
+#: ../src/jarabe/journal/palettes.py:99
+msgid "Copy to"
+msgstr ""
+
+#: ../src/jarabe/journal/journaltoolbox.py:427
+#: ../src/jarabe/journal/palettes.py:110 ../src/jarabe/view/viewsource.py:282
+msgid "Duplicate"
+msgstr ""
+
+#: ../src/jarabe/journal/journaltoolbox.py:433
+msgid "Refresh"
+msgstr ""
+
+#: ../src/jarabe/journal/journaltoolbox.py:470
+#: ../src/jarabe/journal/palettes.py:149 ../src/jarabe/journal/palettes.py:360
+#: ../src/jarabe/journal/volumestoolbar.py:310
+#, python-format
+msgid "Error while copying the entry. %s"
+msgstr ""
+
+#: ../src/jarabe/journal/journaltoolbox.py:471
+#: ../src/jarabe/journal/palettes.py:150 ../src/jarabe/journal/palettes.py:361
+#: ../src/jarabe/journal/volumestoolbar.py:311
+msgid "Error"
+msgstr ""
+
+#. TRANS: Action label for starting an entry.
+#: ../src/jarabe/journal/journaltoolbox.py:551
+#: ../src/jarabe/journal/palettes.py:80
+msgid "Start"
+msgstr ""
+
+#: ../src/jarabe/journal/journaltoolbox.py:579
+msgid "Sort by date modified"
+msgstr ""
+
+#: ../src/jarabe/journal/journaltoolbox.py:580
+msgid "Sort by date created"
+msgstr ""
+
+#: ../src/jarabe/journal/journaltoolbox.py:581
+msgid "Sort by size"
+msgstr ""
+
+#: ../src/jarabe/journal/journaltoolbox.py:590
+msgid "Sort view"
+msgstr ""
+
+#: ../src/jarabe/journal/journaltoolbox.py:661
+msgid "Deselect all"
+msgstr ""
+
+#: ../src/jarabe/journal/journaltoolbox.py:674
+msgid "Select all"
+msgstr ""
+
+#: ../src/jarabe/journal/journaltoolbox.py:700
+#, python-format
+msgid "Do you want to erase %d entry?"
+msgid_plural "Do you want to erase %d entries?"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+#: ../src/jarabe/journal/journaltoolbox.py:714
+#: ../src/jarabe/journal/palettes.py:364
+msgid "Copy"
+msgstr ""
+
+#. TRANS: Do not translate %(selected)d and %(total)d.
+#: ../src/jarabe/journal/journaltoolbox.py:759
+#, python-format
+msgid "Selected %(selected)d of %(total)d"
+msgstr ""
+
+#: ../src/jarabe/journal/listview.py:387 ../src/jarabe/journal/iconview.py:211
+msgid "Your Journal is empty"
+msgstr ""
+
+#: ../src/jarabe/journal/listview.py:390 ../src/jarabe/journal/iconview.py:214
+msgid "Your documents folder is empty"
+msgstr ""
+
+#: ../src/jarabe/journal/listview.py:392 ../src/jarabe/journal/iconview.py:216
+msgid "The device is empty"
+msgstr ""
+
+#: ../src/jarabe/journal/listview.py:394 ../src/jarabe/journal/iconview.py:218
+msgid "No matching entries"
+msgstr ""
+
+#: ../src/jarabe/journal/misc.py:252
+#, python-format
+msgid "Older Version Of %s Activity"
+msgstr ""
+
+#: ../src/jarabe/journal/misc.py:253
+#, python-format
+msgid "Do you want to downgrade to version %s"
+msgstr ""
+
+#: ../src/jarabe/journal/modalalert.py:65
+msgid "Your Journal is full"
+msgstr ""
+
+#: ../src/jarabe/journal/modalalert.py:70
+msgid "Please delete some old Journal entries to make space for new ones."
+msgstr ""
+
+#: ../src/jarabe/journal/modalalert.py:84
+msgid "Show Journal"
+msgstr ""
+
+#: ../src/jarabe/journal/objectchooser.py:170
+msgid "Choose an object"
+msgstr ""
+
+#: ../src/jarabe/journal/objectchooser.py:175
+#, python-format
+msgid "Choose an object to open with %s activity"
+msgstr ""
+
+#: ../src/jarabe/journal/objectchooser.py:183
+#: ../src/jarabe/view/viewsource.py:418
+msgid "Close"
+msgstr ""
+
+#: ../src/jarabe/journal/palettes.py:78
+msgid "Resume with"
+msgstr ""
+
+#: ../src/jarabe/journal/palettes.py:81
+msgid "Start with"
+msgstr ""
+
+#: ../src/jarabe/journal/palettes.py:94 ../src/jarabe/journal/palettes.py:489
+msgid "No activity to start entry"
+msgstr ""
+
+#: ../src/jarabe/journal/palettes.py:118
+msgid "Send to"
+msgstr ""
+
+#: ../src/jarabe/journal/palettes.py:127
+msgid "View Details"
+msgstr ""
+
+#: ../src/jarabe/journal/palettes.py:186
+msgid "Entries without a file cannot be sent."
+msgstr ""
+
+#: ../src/jarabe/journal/palettes.py:260
+#: ../src/jarabe/journal/volumestoolbar.py:211
+msgid "Documents"
+msgstr ""
+
+#: ../src/jarabe/journal/palettes.py:349 ../src/jarabe/journal/palettes.py:409
+#: ../src/jarabe/journal/volumestoolbar.py:301
+msgid "Entries without a file cannot be copied."
+msgstr ""
+
+#: ../src/jarabe/journal/palettes.py:369
+#, python-format
+msgid "Do you want to copy %d entry?"
+msgid_plural "Do you want to copy %d entries?"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
+#: ../src/jarabe/journal/palettes.py:394
+msgid "Clipboard"
+msgstr ""
+
+#: ../src/jarabe/journal/palettes.py:454
+msgid "No friends present"
+msgstr ""
+
+#: ../src/jarabe/journal/palettes.py:459
+msgid "No valid connection found"
+msgstr ""
+
+#: ../src/jarabe/journal/palettes.py:487
+msgid "No activity to resume entry"
+msgstr ""
+
+#: ../src/jarabe/journal/palettes.py:556 ../src/jarabe/view/palettes.py:110
+msgid "Stop"
+msgstr ""
+
+#: ../src/jarabe/journal/palettes.py:561
+msgid "Continue"
+msgstr ""
+
+#: ../src/jarabe/journal/palettes.py:598
+#, python-format
+msgid "%(index)d of %(total)d : %(object_title)s"
+msgstr ""
+
+#: ../src/jarabe/journal/volumestoolbar.py:386
+#: ../src/jarabe/view/palettes.py:225 ../src/jarabe/view/palettes.py:292
+#, python-format
+msgid "%(free_space)d MB Free"
+msgstr ""
+
+#: ../src/jarabe/model/network.py:214
+msgid "The reason for the device state change is unknown."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:216
+msgid "The state change is normal."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:218
+msgid "The device is now managed."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:220
+msgid "The device is no longer managed."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:222
+msgid "The device could not be readied for configuration."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:224
+msgid ""
+"IP configuration could not be reserved (no available address, timeout, etc)."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:227
+msgid "The IP configuration is no longer valid."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:229
+msgid "Secrets were required, but not provided."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:231
+msgid ""
+"The 802.1X supplicant disconnected from the access point or authentication "
+"server."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:234
+msgid "Configuration of the 802.1X supplicant failed."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:236
+msgid "The 802.1X supplicant quit or failed unexpectedly."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:238
+msgid "The 802.1X supplicant took too long to authenticate."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:240
+msgid "The PPP service failed to start within the allowed time."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:242
+msgid "The PPP service disconnected unexpectedly."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:244
+msgid "The PPP service quit or failed unexpectedly."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:246
+msgid "The DHCP service failed to start within the allowed time."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:248
+msgid "The DHCP service reported an unexpected error."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:250
+msgid "The DHCP service quit or failed unexpectedly."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:252
+msgid "The shared connection service failed to start."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:254
+msgid "The shared connection service quit or failed unexpectedly."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:257
+msgid "The AutoIP service failed to start."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:259
+msgid "The AutoIP service reported an unexpected error."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:261
+msgid "The AutoIP service quit or failed unexpectedly."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:263
+msgid "Dialing failed because the line was busy."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:265
+msgid "Dialing failed because there was no dial tone."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:267
+msgid "Dialing failed because there was no carrier."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:269
+msgid "Dialing timed out."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:271
+msgid "Dialing failed."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:273
+msgid "Modem initialization failed."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:275
+msgid "Failed to select the specified GSM APN"
+msgstr ""
+
+#: ../src/jarabe/model/network.py:277
+msgid "Not searching for networks."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:279
+msgid "Network registration was denied."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:281
+msgid "Network registration timed out."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:283
+msgid "Failed to register with the requested GSM network."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:285
+msgid "PIN check failed."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:287
+msgid "Necessary firmware for the device may be missing."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:289
+msgid "The device was removed."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:291
+msgid "NetworkManager went to sleep."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:293
+msgid "The device's active connection was removed or disappeared."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:296
+msgid "A user or client requested the disconnection."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:298
+msgid "The device's carrier/link changed."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:300
+msgid "The device's existing connection was assumed."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:302
+msgid "The supplicant is now available."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:304
+msgid "The modem could not be found."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:306
+msgid "The Bluetooth connection failed or timed out."
+msgstr ""
+
+#: ../src/jarabe/model/network.py:308
+msgid "Unused."
+msgstr ""
+
+#: ../src/jarabe/view/buddymenu.py:72
+msgid "Remove friend"
+msgstr ""
+
+#: ../src/jarabe/view/buddymenu.py:75
+msgid "Make friend"
+msgstr ""
+
+#: ../src/jarabe/view/buddymenu.py:91
+msgid "Shutdown"
+msgstr ""
+
+#: ../src/jarabe/view/buddymenu.py:98
+msgid "Restart"
+msgstr ""
+
+#: ../src/jarabe/view/buddymenu.py:104
+msgid "Logout"
+msgstr ""
+
+#: ../src/jarabe/view/buddymenu.py:109
+msgid "My Settings"
+msgstr ""
+
+#: ../src/jarabe/view/buddymenu.py:149
+#, python-format
+msgid "Invite to %s"
+msgstr ""
+
+#: ../src/jarabe/view/launcher.py:144
+#, python-format
+msgid "<b>%s</b> failed to start."
+msgstr ""
+
+#: ../src/jarabe/view/palettes.py:51
+msgid "Starting..."
+msgstr ""
+
+#: ../src/jarabe/view/palettes.py:61
+msgid "Activity failed to start"
+msgstr ""
+
+#. TODO: share-with, keep
+#: ../src/jarabe/view/palettes.py:102
+msgid "View Source"
+msgstr ""
+
+#: ../src/jarabe/view/palettes.py:153
+msgid "Start new"
+msgstr ""
+
+#: ../src/jarabe/view/palettes.py:241
+msgctxt "Volume"
+msgid "Remove"
+msgstr ""
+
+#: ../src/jarabe/view/viewsource.py:271
+msgid "Instance Source"
+msgstr ""
+
+#: ../src/jarabe/view/viewsource.py:320
+msgid "Source"
+msgstr ""
+
+#: ../src/jarabe/view/viewsource.py:382
+msgid "Activity Bundle Source"
+msgstr ""
+
+#: ../src/jarabe/view/viewsource.py:401
+msgid "Sugar Toolkit Source"
+msgstr ""
+
+#: ../src/jarabe/view/viewsource.py:408
+#, python-format
+msgid "View source: %s"
+msgstr ""
+
+#: ../src/jarabe/view/viewsource.py:409
+#, python-format
+msgid "View source: %r"
+msgstr ""
diff --git b/po/sugar.pot a/po/sugar.pot
new file mode 100644
index 0000000..3b96607
--- /dev/null
+++ a/po/sugar.pot
@@ -0,0 +1,1998 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2019-03-13 14:29+1100\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
+
+#: extensions/cpsection/aboutcomputer/__init__.py:20
+msgid "About my Computer"
+msgstr ""
+
+#: extensions/cpsection/aboutcomputer/model.py:36
+msgid "Not available"
+msgstr ""
+
+#: extensions/cpsection/aboutcomputer/view.py:76
+msgid "Identity"
+msgstr ""
+
+#: extensions/cpsection/aboutcomputer/view.py:87
+msgid "Model:"
+msgstr ""
+
+#: extensions/cpsection/aboutcomputer/view.py:91
+msgid "Serial Number:"
+msgstr ""
+
+#: extensions/cpsection/aboutcomputer/view.py:103
+msgid "Software"
+msgstr ""
+
+#: extensions/cpsection/aboutcomputer/view.py:112
+msgid "Build:"
+msgstr ""
+
+#: extensions/cpsection/aboutcomputer/view.py:117
+msgid "Sugar:"
+msgstr ""
+
+#: extensions/cpsection/aboutcomputer/view.py:122
+msgid "Firmware:"
+msgstr ""
+
+#: extensions/cpsection/aboutcomputer/view.py:127
+msgid "Wireless Firmware:"
+msgstr ""
+
+#: extensions/cpsection/aboutcomputer/view.py:134
+#, python-format
+msgid "%d days ago"
+msgstr ""
+
+#: extensions/cpsection/aboutcomputer/view.py:136
+#: src/jarabe/journal/journaltoolbox.py:178
+msgid "Today"
+msgstr ""
+
+#: extensions/cpsection/aboutcomputer/view.py:139
+msgid "Last system update:"
+msgstr ""
+
+#: extensions/cpsection/aboutcomputer/view.py:150
+msgid "Copyright and License"
+msgstr ""
+
+#. TRANS: The word "Sugar" should not be translated.
+#: extensions/cpsection/aboutcomputer/view.py:169
+msgid ""
+"Sugar is the graphical user interface that you are looking at. Sugar is free "
+"software, covered by the GNU General Public License, and you are welcome to "
+"change it and/or distribute copies of it under certain conditions described "
+"therein."
+msgstr ""
+
+#: extensions/cpsection/aboutcomputer/view.py:182
+msgid "Full license:"
+msgstr ""
+
+#: extensions/cpsection/aboutme/__init__.py:23
+msgid "About Me"
+msgstr ""
+
+#: extensions/cpsection/aboutme/model.py:50
+msgid "You must enter a name."
+msgstr ""
+
+#: extensions/cpsection/aboutme/model.py:96
+msgid "Error in specified color modifiers."
+msgstr ""
+
+#: extensions/cpsection/aboutme/model.py:99
+msgid "Error in specified colors."
+msgstr ""
+
+#: extensions/cpsection/aboutme/view.py:244
+msgid "Click to change your color:"
+msgstr ""
+
+#: extensions/cpsection/aboutme/view.py:295 src/jarabe/intro/window.py:195
+msgid "Select gender:"
+msgstr ""
+
+#: extensions/cpsection/background/__init__.py:21
+msgid "Background"
+msgstr ""
+
+#: extensions/cpsection/background/view.py:48
+msgid "Select a background:"
+msgstr ""
+
+#: extensions/cpsection/background/view.py:57
+msgid "Clear background"
+msgstr ""
+
+#: extensions/cpsection/backup/backends/volume.py:60
+#: extensions/cpsection/backup/backends/volume.py:170
+msgid "Please connect a device to continue"
+msgstr ""
+
+#: extensions/cpsection/backup/backends/volume.py:68
+#: extensions/cpsection/backup/backends/volume.py:177
+msgid "Select your volume"
+msgstr ""
+
+#: extensions/cpsection/backup/backends/volume.py:77
+msgid "Not enough space in volume"
+msgstr ""
+
+#: extensions/cpsection/backup/backends/volume.py:121
+#, python-format
+msgid "Backup from user %s"
+msgstr ""
+
+#: extensions/cpsection/backup/backends/volume.py:190
+msgid "No checkpoints found in the device"
+msgstr ""
+
+#: extensions/cpsection/backup/backends/volume.py:198
+msgid "Select your checkpoint"
+msgstr ""
+
+#: extensions/cpsection/backup/backends/volume.py:209
+msgid "Not enough space in disk"
+msgstr ""
+
+#: extensions/cpsection/backup/backends/volume.py:328
+msgid "Local Device Backup"
+msgstr ""
+
+#: extensions/cpsection/backup/__init__.py:21
+msgid "Backup"
+msgstr ""
+
+#: extensions/cpsection/backup/view.py:132
+msgid "Save the contents of your Journal"
+msgstr ""
+
+#: extensions/cpsection/backup/view.py:140
+msgid "Restore the contents of your Journal"
+msgstr ""
+
+#: extensions/cpsection/backup/view.py:211
+#: extensions/cpsection/backup/view.py:264 src/jarabe/journal/palettes.py:615
+msgid "Continue"
+msgstr ""
+
+#: extensions/cpsection/backup/view.py:222
+msgid "Please close all the activities, and start again"
+msgstr ""
+
+#: extensions/cpsection/backup/view.py:228
+msgid "Select where you want create your backup"
+msgstr ""
+
+#: extensions/cpsection/backup/view.py:230
+msgid "Select where you want retrieve your restore"
+msgstr ""
+
+#: extensions/cpsection/backup/view.py:270
+msgid "Retry"
+msgstr ""
+
+#: extensions/cpsection/backup/view.py:289
+msgid "Starting backup..."
+msgstr ""
+
+#: extensions/cpsection/backup/view.py:293
+msgid "Starting restore..."
+msgstr ""
+
+#: extensions/cpsection/backup/view.py:320
+msgid ""
+"I want to restore the content of my Journal. In order to do this, my Journal "
+"will first be emptied of all its content; then the restored content will be "
+"added."
+msgstr ""
+
+#: extensions/cpsection/backup/view.py:323
+#: src/jarabe/frame/activitiestray.py:657
+msgid "Accept"
+msgstr ""
+
+#: extensions/cpsection/backup/view.py:326
+msgid "Confirm"
+msgstr ""
+
+#: extensions/cpsection/backup/view.py:364
+msgid "Operation started"
+msgstr ""
+
+#: extensions/cpsection/backup/view.py:376
+msgid "Backup finished successfully"
+msgstr ""
+
+#: extensions/cpsection/backup/view.py:378
+msgid "Restore realized successfully."
+msgstr ""
+
+#: extensions/cpsection/datetime/__init__.py:21
+msgid "Date & Time"
+msgstr ""
+
+#: extensions/cpsection/datetime/model.py:99
+msgid "Error: timezone does not exist."
+msgstr ""
+
+#: extensions/cpsection/datetime/view.py:67
+msgid "Timezone"
+msgstr ""
+
+#: extensions/cpsection/frame/__init__.py:21
+msgid "Frame"
+msgstr ""
+
+#: extensions/cpsection/frame/view.py:26
+msgid "never"
+msgstr ""
+
+#: extensions/cpsection/frame/view.py:27
+msgid "instantaneous"
+msgstr ""
+
+#: extensions/cpsection/frame/view.py:28
+#, python-format
+msgid "%s seconds"
+msgstr ""
+
+#: extensions/cpsection/frame/view.py:52
+msgid "Activation Delay"
+msgstr ""
+
+#: extensions/cpsection/frame/view.py:68
+msgid "Activation Area"
+msgstr ""
+
+#: extensions/cpsection/frame/view.py:85
+msgid "Corner"
+msgstr ""
+
+#: extensions/cpsection/frame/view.py:104
+msgid "Edge"
+msgstr ""
+
+#: extensions/cpsection/frame/view.py:123
+msgid "Size"
+msgstr ""
+
+#: extensions/cpsection/frame/view.py:221
+msgid "toolbar size"
+msgstr ""
+
+#: extensions/cpsection/frame/view.py:226
+msgid "exact corner or edge"
+msgstr ""
+
+#: extensions/cpsection/frame/view.py:228
+msgid "exact corner"
+msgstr ""
+
+#: extensions/cpsection/frame/view.py:230
+msgid "exact edge"
+msgstr ""
+
+#: extensions/cpsection/frame/view.py:232
+msgid "ignored"
+msgstr ""
+
+#. TRANS: px as in pixels
+#: extensions/cpsection/frame/view.py:235
+msgid "{}px"
+msgstr ""
+
+#: extensions/cpsection/keyboard/__init__.py:21
+#: extensions/cpsection/keyboard/view.py:39
+msgid "Keyboard"
+msgstr ""
+
+#: extensions/cpsection/keyboard/view.py:241
+msgid "Keyboard Model"
+msgstr ""
+
+#: extensions/cpsection/keyboard/view.py:302
+msgid "Key(s) to change layout"
+msgstr ""
+
+#: extensions/cpsection/keyboard/view.py:370
+msgid "Keyboard Layout(s)"
+msgstr ""
+
+#: extensions/cpsection/language/__init__.py:21
+#: extensions/cpsection/language/view.py:44
+msgid "Language"
+msgstr ""
+
+#: extensions/cpsection/language/model.py:28
+msgid "Could not access ~/.i18n. Create standard settings."
+msgstr ""
+
+#: extensions/cpsection/language/model.py:150
+#, python-format
+msgid "Language for code=%s could not be determined."
+msgstr ""
+
+#: extensions/cpsection/language/model.py:173
+#, python-format
+msgid "Sorry I do not speak '%s'."
+msgstr ""
+
+#: extensions/cpsection/language/view.py:81
+msgid ""
+"Add languages in the order you prefer. If a translation is not available, "
+"the next in the list will be used."
+msgstr ""
+
+#: extensions/cpsection/language/view.py:400
+#, python-format
+msgid "Error writing language configuration (%s)"
+msgstr ""
+
+#: extensions/cpsection/modemconfiguration/__init__.py:20
+msgid "Modem"
+msgstr ""
+
+#: extensions/cpsection/modemconfiguration/model.py:161
+#, python-format
+msgid "Plan #%s"
+msgstr ""
+
+#: extensions/cpsection/modemconfiguration/model.py:291
+#, python-format
+msgid "Provider %s"
+msgstr ""
+
+#: extensions/cpsection/modemconfiguration/view.py:93
+msgid ""
+"You will need to provide the following information to set up a mobile "
+"broadband connection to a cellular (3G) network."
+msgstr ""
+
+#: extensions/cpsection/modemconfiguration/view.py:116
+msgid "Country:"
+msgstr ""
+
+#: extensions/cpsection/modemconfiguration/view.py:117
+msgid "Provider:"
+msgstr ""
+
+#: extensions/cpsection/modemconfiguration/view.py:118
+msgid "Plan:"
+msgstr ""
+
+#: extensions/cpsection/modemconfiguration/view.py:159
+#: extensions/cpsection/network/view.py:548
+msgid "Username:"
+msgstr ""
+
+#: extensions/cpsection/modemconfiguration/view.py:166
+#: extensions/cpsection/network/view.py:554
+msgid "Password:"
+msgstr ""
+
+#: extensions/cpsection/modemconfiguration/view.py:173
+msgid "Number:"
+msgstr ""
+
+#: extensions/cpsection/modemconfiguration/view.py:180
+msgid "Access Point Name (APN):"
+msgstr ""
+
+#: extensions/cpsection/modemconfiguration/view.py:187
+msgid "Personal Identity Number (PIN):"
+msgstr ""
+
+#: extensions/cpsection/network/__init__.py:20
+#: extensions/cpsection/network/view.py:36
+msgid "Network"
+msgstr ""
+
+#: extensions/cpsection/network/model.py:81
+msgid "State is unknown."
+msgstr ""
+
+#: extensions/cpsection/network/model.py:96
+msgid "Error in specified radio argument. Use on/off."
+msgstr ""
+
+#: extensions/cpsection/network/model.py:133
+msgid "Error in specified argument. Use 0/1."
+msgstr ""
+
+#: extensions/cpsection/network/view.py:321
+msgid "Wireless"
+msgstr ""
+
+#: extensions/cpsection/network/view.py:329
+msgid "The wireless radio may be turned off to save battery life."
+msgstr ""
+
+#: extensions/cpsection/network/view.py:342
+msgid "Radio"
+msgstr ""
+
+#: extensions/cpsection/network/view.py:359
+msgid ""
+"Discard wireless connections if you have trouble connecting to the network"
+msgstr ""
+
+#: extensions/cpsection/network/view.py:369
+msgid "Discard wireless connections"
+msgstr ""
+
+#: extensions/cpsection/network/view.py:385
+msgid "Collaboration"
+msgstr ""
+
+#: extensions/cpsection/network/view.py:393
+msgid ""
+"The server is the equivalent of what room you are in; people on the same "
+"server will be able to see each other, even when they aren't on the same "
+"network."
+msgstr ""
+
+#: extensions/cpsection/network/view.py:403
+msgid "Server:"
+msgstr ""
+
+#: extensions/cpsection/network/view.py:419
+msgid ""
+"Social Help is a forum that lets you connect with developers and discuss "
+"Sugar Activities.  Changing servers means discussions will happen in a "
+"different place with different people."
+msgstr ""
+
+#: extensions/cpsection/network/view.py:429
+msgid "Social Help Server:"
+msgstr ""
+
+#: extensions/cpsection/network/view.py:458
+msgid "Proxy"
+msgstr ""
+
+#: extensions/cpsection/network/view.py:470
+#: src/jarabe/journal/journaltoolbox.py:604 src/jarabe/journal/palettes.py:183
+#: src/jarabe/journal/palettes.py:404 src/jarabe/journal/volumestoolbar.py:312
+msgid "Error"
+msgstr ""
+
+#: extensions/cpsection/network/view.py:471
+msgid "Proxy settings cannot be verified"
+msgstr ""
+
+#: extensions/cpsection/network/view.py:507
+msgid "Method:"
+msgstr ""
+
+#: extensions/cpsection/network/view.py:514
+msgid "Configuration URL:"
+msgstr ""
+
+#: extensions/cpsection/network/view.py:522
+msgid ""
+"Web Proxy Autodiscovery is used when a Configuration URL is not provided. "
+"This is not recommended for untrusted public networks."
+msgstr ""
+
+#: extensions/cpsection/network/view.py:534
+msgid "HTTP Proxy:"
+msgstr ""
+
+#: extensions/cpsection/network/view.py:540
+msgid "Use authentication"
+msgstr ""
+
+#: extensions/cpsection/network/view.py:563
+msgid "HTTPS Proxy:"
+msgstr ""
+
+#: extensions/cpsection/network/view.py:572
+msgid "FTP Proxy:"
+msgstr ""
+
+#: extensions/cpsection/network/view.py:581
+msgid "SOCKS Proxy:"
+msgstr ""
+
+#: extensions/cpsection/network/view.py:588
+msgid "Ignore Hosts:"
+msgstr ""
+
+#: extensions/cpsection/network/view.py:645
+msgid "Please Wait!"
+msgstr ""
+
+#: extensions/cpsection/network/view.py:646
+msgid "Proxy settings are being verified."
+msgstr ""
+
+#: extensions/cpsection/network/view.py:663
+msgid "Error!"
+msgstr ""
+
+#: extensions/cpsection/network/view.py:664
+msgid ""
+"The following setting(s) seems to be incorrect and may break your internet "
+"connection"
+msgstr ""
+
+#: extensions/cpsection/network/view.py:670
+msgid "Break my internet"
+msgstr ""
+
+#: extensions/cpsection/network/view.py:674
+msgid "Reset"
+msgstr ""
+
+#: extensions/cpsection/network/view.py:692
+msgid "Proxy changes require restart"
+msgstr ""
+
+#: extensions/cpsection/power/__init__.py:24
+msgid "Power"
+msgstr ""
+
+#: extensions/cpsection/power/model.py:89
+msgid "Error in automatic pm argument, use on/off."
+msgstr ""
+
+#: extensions/cpsection/power/view.py:45
+msgid "Power management"
+msgstr ""
+
+#: extensions/cpsection/power/view.py:55
+msgid "Automatic power management (increases battery life)"
+msgstr ""
+
+#: extensions/cpsection/updater/__init__.py:21
+msgid "Software Update"
+msgstr ""
+
+#: extensions/cpsection/updater/view.py:70
+msgid ""
+"Software updates correct errors, eliminate security vulnerabilities, and "
+"provide new features."
+msgstr ""
+
+#: extensions/cpsection/updater/view.py:84
+msgid "Update in progress..."
+msgstr ""
+
+#: extensions/cpsection/updater/view.py:119
+msgid "Checking for updates..."
+msgstr ""
+
+#: extensions/cpsection/updater/view.py:121
+msgid "Installing updates..."
+msgstr ""
+
+#: extensions/cpsection/updater/view.py:150
+#, python-format
+msgid "Checking %s..."
+msgstr ""
+
+#: extensions/cpsection/updater/view.py:152
+msgid "Looking for updates..."
+msgstr ""
+
+#: extensions/cpsection/updater/view.py:154
+#, python-format
+msgid "Downloading %s..."
+msgstr ""
+
+#: extensions/cpsection/updater/view.py:156
+#, python-format
+msgid "Updating %s..."
+msgstr ""
+
+#: extensions/cpsection/updater/view.py:166
+msgid "Your software is up-to-date"
+msgstr ""
+
+#: extensions/cpsection/updater/view.py:168
+#, python-format
+msgid "You can install %s update"
+msgid_plural "You can install %s updates"
+msgstr[0] ""
+msgstr[1] ""
+
+#: extensions/cpsection/updater/view.py:183
+msgid "Can't connect to the activity server"
+msgstr ""
+
+#: extensions/cpsection/updater/view.py:186
+msgid "Verify your connection to internet and try again, or try again later"
+msgstr ""
+
+#: extensions/cpsection/updater/view.py:206
+#, python-format
+msgid "%s update was installed"
+msgid_plural "%s updates were installed"
+msgstr[0] ""
+msgstr[1] ""
+
+#: extensions/cpsection/updater/view.py:288
+msgid "Install selected"
+msgstr ""
+
+#: extensions/cpsection/updater/view.py:307
+#, python-format
+msgid "Download size: %s"
+msgstr ""
+
+#: extensions/cpsection/updater/view.py:399
+#, python-format
+msgid "From version %(current)s to %(new)s (Size: %(size)s)"
+msgstr ""
+
+#: extensions/cpsection/updater/view.py:406
+#, python-format
+msgid "Version %(version)s (Size: %(size)s)"
+msgstr ""
+
+#. TRANS: download size is 0
+#: extensions/cpsection/updater/view.py:423
+msgid "None"
+msgstr ""
+
+#. TRANS: download size of very small updates
+#: extensions/cpsection/updater/view.py:426
+msgid "1 KiB"
+msgstr ""
+
+#. TRANS: download size of small updates, e.g. '250 KiB'
+#: extensions/cpsection/updater/view.py:429
+#, python-format
+msgid "%.0f KiB"
+msgstr ""
+
+#. TRANS: download size of updates, e.g. '2.3 MiB'
+#: extensions/cpsection/updater/view.py:432
+#, python-format
+msgid "%.1f MiB"
+msgstr ""
+
+#: extensions/cpsection/webaccount/__init__.py:24
+msgid "Web Services"
+msgstr ""
+
+#: extensions/cpsection/webaccount/view.py:65
+#, python-format
+msgid ""
+"No web services are installed.\n"
+"Please visit %s for more details."
+msgstr ""
+
+#: extensions/deviceicon/audio.py:68
+msgid "My Audio"
+msgstr ""
+
+#: extensions/deviceicon/audio.py:330
+msgid "Speaker"
+msgstr ""
+
+#: extensions/deviceicon/audio.py:331
+msgid "Microphone"
+msgstr ""
+
+#: extensions/deviceicon/battery.py:78
+msgid "My Battery"
+msgstr ""
+
+#: extensions/deviceicon/battery.py:161
+msgid "Removed"
+msgstr ""
+
+#: extensions/deviceicon/battery.py:164
+msgid "Charging"
+msgstr ""
+
+#: extensions/deviceicon/battery.py:167
+msgid "Very little power remaining"
+msgstr ""
+
+#. TRANS: do not translate %(hour)d:%(min).2d  it is a variable,
+#. only translate the word "remaining"
+#: extensions/deviceicon/battery.py:174
+#, python-format
+msgid "%(hour)d:%(min).2d remaining"
+msgstr ""
+
+#: extensions/deviceicon/battery.py:177
+msgid "Charged"
+msgstr ""
+
+#: extensions/deviceicon/display.py:185
+msgid "My Display"
+msgstr ""
+
+#: extensions/deviceicon/display.py:187
+msgid "Take a screenshot"
+msgstr ""
+
+#: extensions/deviceicon/display.py:209
+msgid "Brightness"
+msgstr ""
+
+#: extensions/deviceicon/display.py:237
+msgid "Display"
+msgstr ""
+
+#: extensions/deviceicon/frame.py:53
+msgid "Show my keyboard"
+msgstr ""
+
+#: extensions/deviceicon/network.py:47
+#, python-format
+msgid "IP address: %s"
+msgstr ""
+
+#: extensions/deviceicon/network.py:96 extensions/deviceicon/network.py:311
+#: src/jarabe/desktop/networkviews.py:135
+#: src/jarabe/desktop/networkviews.py:538
+msgid "Disconnect"
+msgstr ""
+
+#: extensions/deviceicon/network.py:122 extensions/deviceicon/network.py:304
+#: src/jarabe/desktop/networkviews.py:275
+#: src/jarabe/desktop/networkviews.py:580
+#: src/jarabe/desktop/networkviews.py:725
+msgid "Connecting..."
+msgstr ""
+
+#: extensions/deviceicon/network.py:126 extensions/deviceicon/network.py:196
+#: src/jarabe/desktop/networkviews.py:282
+#: src/jarabe/desktop/networkviews.py:586
+#: src/jarabe/desktop/networkviews.py:731
+msgid "Connected"
+msgstr ""
+
+#: extensions/deviceicon/network.py:139
+msgid "No wireless connection"
+msgstr ""
+
+#: extensions/deviceicon/network.py:153 extensions/deviceicon/network.py:156
+msgid "Channel"
+msgstr ""
+
+#: extensions/deviceicon/network.py:154 src/jarabe/journal/expandedentry.py:408
+#: src/jarabe/journal/listmodel.py:189 src/jarabe/journal/listmodel.py:197
+msgid "Unknown"
+msgstr ""
+
+#: extensions/deviceicon/network.py:171
+msgid "Wired Network"
+msgstr ""
+
+#: extensions/deviceicon/network.py:199
+msgid "Speed"
+msgstr ""
+
+#: extensions/deviceicon/network.py:223
+msgid "Wireless modem"
+msgstr ""
+
+#: extensions/deviceicon/network.py:292
+msgid "Please wait..."
+msgstr ""
+
+#: extensions/deviceicon/network.py:296 src/jarabe/desktop/networkviews.py:129
+#: src/jarabe/desktop/networkviews.py:532
+#: src/jarabe/desktop/networkviews.py:676
+msgid "Connect"
+msgstr ""
+
+#: extensions/deviceicon/network.py:297
+msgid "Disconnected"
+msgstr ""
+
+#: extensions/deviceicon/network.py:303 src/jarabe/controlpanel/toolbar.py:122
+#: src/jarabe/frame/activitiestray.py:702
+#: src/jarabe/frame/activitiestray.py:824
+#: src/jarabe/frame/activitiestray.py:857
+#: src/jarabe/journal/expandedentry.py:160
+#: src/jarabe/journal/journaltoolbox.py:613 src/jarabe/journal/palettes.py:192
+msgid "Cancel"
+msgstr ""
+
+#: extensions/deviceicon/network.py:341
+msgid "Try connection again"
+msgstr ""
+
+#: extensions/deviceicon/network.py:344
+#, python-format
+msgid "Error: %s"
+msgstr ""
+
+#: extensions/deviceicon/network.py:348
+#, python-format
+msgid "Suggestion: %s"
+msgstr ""
+
+#: extensions/deviceicon/network.py:358
+#, python-format
+msgid "Connected for %s"
+msgstr ""
+
+#: extensions/deviceicon/network.py:361 extensions/deviceicon/network.py:362
+#: src/jarabe/frame/activitiestray.py:607
+#, python-format
+msgid "%d KiB"
+msgstr ""
+
+#: extensions/deviceicon/network.py:367
+msgid "Check your PIN/PUK configuration."
+msgstr ""
+
+#: extensions/deviceicon/network.py:370
+msgid "Check your Access Point Name (APN) configuration"
+msgstr ""
+
+#: extensions/deviceicon/network.py:374
+msgid "Check the Number configuration."
+msgstr ""
+
+#: extensions/deviceicon/network.py:376
+msgid "Check your configuration."
+msgstr ""
+
+#: extensions/deviceicon/network.py:633
+msgid "Mesh Network"
+msgstr ""
+
+#: extensions/deviceicon/network.py:679
+#, python-format
+msgid "Mesh Network %s"
+msgstr ""
+
+#: extensions/deviceicon/network.py:799
+msgid "No GSM connection available."
+msgstr ""
+
+#: extensions/deviceicon/network.py:800
+msgid "Create a connection in My Settings."
+msgstr ""
+
+#: extensions/deviceicon/speech.py:48
+msgid "Speech"
+msgstr ""
+
+#: extensions/deviceicon/speech.py:71 extensions/deviceicon/speech.py:146
+#: extensions/deviceicon/speech.py:151
+msgid "Say selected text"
+msgstr ""
+
+#: extensions/deviceicon/speech.py:79
+msgid "Stop playback"
+msgstr ""
+
+#: extensions/deviceicon/speech.py:88
+msgid "Pitch"
+msgstr ""
+
+#: extensions/deviceicon/speech.py:103
+msgid "Rate"
+msgstr ""
+
+#: extensions/deviceicon/speech.py:141
+msgid "Pause playback"
+msgstr ""
+
+#: extensions/deviceicon/touchpad.py:35
+msgid "finger"
+msgstr ""
+
+#: extensions/deviceicon/touchpad.py:35
+msgid "stylus"
+msgstr ""
+
+#: extensions/deviceicon/touchpad.py:60
+msgid "My touchpad"
+msgstr ""
+
+#: extensions/deviceicon/volume.py:61 src/jarabe/view/palettes.py:222
+msgid "Show contents"
+msgstr ""
+
+#: src/jarabe/controlpanel/cmd.py:27
+#, python-format
+msgid ""
+"sugar-control-panel: WARNING, found more than one option with the same name: "
+"%(key)s module: %(module)r"
+msgstr ""
+
+#: src/jarabe/controlpanel/cmd.py:30
+#, python-format
+msgid "sugar-control-panel: key=%s not an available option"
+msgstr ""
+
+#. TRANS: Translators, there's a empty line at the end of this string,
+#. which must appear in the translated string (msgstr) as well.
+#: src/jarabe/controlpanel/cmd.py:38
+msgid ""
+"Usage: sugar-control-panel [ option ] key [ args ... ] \n"
+"    Control for the sugar environment. \n"
+"    Options: \n"
+"    -h           show this help message and exit \n"
+"    -l           list all the available options \n"
+"    -h key       show information about this key \n"
+"    -g key       get the current value of the key \n"
+"    -s key       set the current value for the key \n"
+"    -c key       clear the current value for the key \n"
+"    "
+msgstr ""
+
+#: src/jarabe/controlpanel/cmd.py:52
+msgid ""
+"To apply your changes you have to restart Sugar.\n"
+"Hit ctrl+alt+erase on the keyboard to trigger a restart."
+msgstr ""
+
+#: src/jarabe/controlpanel/gui.py:397 src/jarabe/journal/palettes.py:224
+#: src/jarabe/journal/palettes.py:393 src/jarabe/journal/palettes.py:453
+#: src/jarabe/journal/volumestoolbar.py:303
+msgid "Warning"
+msgstr ""
+
+#: src/jarabe/controlpanel/gui.py:403
+msgid "Cancel changes"
+msgstr ""
+
+#: src/jarabe/controlpanel/gui.py:408
+msgid "Later"
+msgstr ""
+
+#: src/jarabe/controlpanel/gui.py:412
+msgid "Restart now"
+msgstr ""
+
+#: src/jarabe/controlpanel/gui.py:441 src/jarabe/view/buddymenu.py:138
+msgid "An activity is not responding."
+msgstr ""
+
+#: src/jarabe/controlpanel/gui.py:442 src/jarabe/view/buddymenu.py:139
+msgid "You may lose unsaved work if you continue."
+msgstr ""
+
+#: src/jarabe/controlpanel/sectionview.py:50
+msgid "Changes require restart"
+msgstr ""
+
+#: src/jarabe/controlpanel/toolbar.py:57 src/jarabe/desktop/viewtoolbar.py:129
+#: src/jarabe/journal/journaltoolbox.py:95
+#, python-format
+msgid "Search in %s"
+msgstr ""
+
+#: src/jarabe/controlpanel/toolbar.py:57
+msgid "Settings"
+msgstr ""
+
+#: src/jarabe/controlpanel/toolbar.py:66 src/jarabe/intro/window.py:349
+msgid "Done"
+msgstr ""
+
+#: src/jarabe/controlpanel/toolbar.py:128
+msgid "Ok"
+msgstr ""
+
+#: src/jarabe/desktop/activitieslist.py:413
+#, python-format
+msgid "Version %s"
+msgstr ""
+
+#: src/jarabe/desktop/activitieslist.py:498 src/jarabe/journal/iconview.py:300
+#: src/jarabe/journal/listview.py:610
+msgid "Clear search"
+msgstr ""
+
+#: src/jarabe/desktop/activitieslist.py:585
+msgid "No matching activities"
+msgstr ""
+
+#: src/jarabe/desktop/activitieslist.py:621
+msgid "Confirm erase"
+msgstr ""
+
+#: src/jarabe/desktop/activitieslist.py:623
+#, python-format
+msgid "Confirm erase: Do you want to permanently erase %s?"
+msgstr ""
+
+#: src/jarabe/desktop/activitieslist.py:627
+#: src/jarabe/frame/clipboardmenu.py:64 src/jarabe/view/viewsource.py:386
+msgid "Keep"
+msgstr ""
+
+#: src/jarabe/desktop/activitieslist.py:630
+#: src/jarabe/desktop/activitieslist.py:700
+#: src/jarabe/journal/expandedentry.py:154
+#: src/jarabe/journal/journaltoolbox.py:571
+#: src/jarabe/journal/journaltoolbox.py:608
+#: src/jarabe/journal/journaltoolbox.py:838
+#: src/jarabe/journal/journaltoolbox.py:844 src/jarabe/journal/palettes.py:155
+#: src/jarabe/journal/palettes.py:187
+msgid "Erase"
+msgstr ""
+
+#: src/jarabe/desktop/activitieslist.py:716
+msgid "Remove favorite"
+msgstr ""
+
+#: src/jarabe/desktop/activitieslist.py:720
+msgid "Make favorite"
+msgstr ""
+
+#. TRANS: label for the freeform layout in the favorites view
+#: src/jarabe/desktop/favoriteslayout.py:211
+msgid "Freeform"
+msgstr ""
+
+#. TRANS: label for the ring layout in the favorites view
+#: src/jarabe/desktop/favoriteslayout.py:305
+msgid "Ring"
+msgstr ""
+
+#. TRANS: label for the spiral layout in the favorites view
+#: src/jarabe/desktop/favoriteslayout.py:471
+msgid "Spiral"
+msgstr ""
+
+#. TRANS: label for the box layout in the favorites view
+#: src/jarabe/desktop/favoriteslayout.py:539
+msgid "Box"
+msgstr ""
+
+#. TRANS: label for the box layout in the favorites view
+#: src/jarabe/desktop/favoriteslayout.py:585
+msgid "Triangle"
+msgstr ""
+
+#: src/jarabe/desktop/favoritesview.py:381
+msgid "Registration"
+msgstr ""
+
+#: src/jarabe/desktop/favoritesview.py:382
+msgid "Please wait, searching for your school server."
+msgstr ""
+
+#: src/jarabe/desktop/favoritesview.py:392
+msgid "Registration Failed"
+msgstr ""
+
+#: src/jarabe/desktop/favoritesview.py:395
+msgid "Registration Successful"
+msgstr ""
+
+#: src/jarabe/desktop/favoritesview.py:396
+msgid "You are now registered with your school server."
+msgstr ""
+
+#: src/jarabe/desktop/favoritesview.py:688
+msgid "Register"
+msgstr ""
+
+#: src/jarabe/desktop/favoritesview.py:690
+msgid "Register again"
+msgstr ""
+
+#: src/jarabe/desktop/homewindow.py:277 src/jarabe/desktop/viewtoolbar.py:73
+#: src/jarabe/frame/zoomtoolbar.py:56 src/jarabe/model/screenshot.py:62
+#: src/jarabe/view/viewhelp.py:89
+msgid "Home"
+msgstr ""
+
+#: src/jarabe/desktop/homewindow.py:283 src/jarabe/frame/zoomtoolbar.py:52
+#: src/jarabe/model/screenshot.py:60 src/jarabe/view/viewhelp.py:86
+msgid "Group"
+msgstr ""
+
+#: src/jarabe/desktop/homewindow.py:289 src/jarabe/frame/zoomtoolbar.py:48
+msgid "Neighborhood"
+msgstr ""
+
+#: src/jarabe/desktop/keydialog.py:93
+#, python-format
+msgid ""
+"A wireless encryption key is required for\n"
+" the wireless network '%s'."
+msgstr ""
+
+#: src/jarabe/desktop/keydialog.py:109
+msgid "Show Password"
+msgstr ""
+
+#: src/jarabe/desktop/keydialog.py:153
+msgid "Key Type:"
+msgstr ""
+
+#: src/jarabe/desktop/keydialog.py:173
+msgid "Authentication Type:"
+msgstr ""
+
+#: src/jarabe/desktop/keydialog.py:237
+msgid "WPA & WPA2 Personal"
+msgstr ""
+
+#: src/jarabe/desktop/keydialog.py:246
+msgid "Wireless Security:"
+msgstr ""
+
+#. TRANS: Action label for resuming an activity.
+#: src/jarabe/desktop/meshbox.py:82 src/jarabe/journal/journaltoolbox.py:685
+#: src/jarabe/journal/palettes.py:87 src/jarabe/view/palettes.py:100
+msgid "Resume"
+msgstr ""
+
+#: src/jarabe/desktop/meshbox.py:89 src/jarabe/frame/activitiestray.py:208
+msgid "Join"
+msgstr ""
+
+#: src/jarabe/desktop/networkviews.py:142
+msgid "Forget"
+msgstr ""
+
+#: src/jarabe/desktop/networkviews.py:527
+#, python-format
+msgid "Ad-hoc Network %d"
+msgstr ""
+
+#: src/jarabe/desktop/networkviews.py:672
+#, python-format
+msgid "Mesh Network %d"
+msgstr ""
+
+#: src/jarabe/desktop/schoolserver.py:143
+msgid "Cannot connect to the server."
+msgstr ""
+
+#: src/jarabe/desktop/schoolserver.py:150
+msgid "The server could not complete the request."
+msgstr ""
+
+#: src/jarabe/desktop/viewtoolbar.py:95
+msgid "List view"
+msgstr ""
+
+#: src/jarabe/desktop/viewtoolbar.py:97 src/jarabe/desktop/viewtoolbar.py:196
+#: src/jarabe/desktop/viewtoolbar.py:210
+#, python-format
+msgid "<Ctrl>%d"
+msgstr ""
+
+#: src/jarabe/frame/activitiestray.py:213
+#: src/jarabe/frame/activitiestray.py:666
+msgid "Decline"
+msgstr ""
+
+#: src/jarabe/frame/activitiestray.py:605
+#, python-format
+msgid "%d B"
+msgstr ""
+
+#: src/jarabe/frame/activitiestray.py:609
+#, python-format
+msgid "%d MiB"
+msgstr ""
+
+#. TRANS: file transfer, bytes transferred, e.g. 128 of 1024
+#: src/jarabe/frame/activitiestray.py:628
+#, python-format
+msgid "%(transferred)s of %(total)s"
+msgstr ""
+
+#: src/jarabe/frame/activitiestray.py:643
+#, python-format
+msgid "Transfer from %s"
+msgstr ""
+
+#: src/jarabe/frame/activitiestray.py:731
+#: src/jarabe/frame/activitiestray.py:745
+#: src/jarabe/frame/activitiestray.py:887
+msgid "Dismiss"
+msgstr ""
+
+#: src/jarabe/frame/activitiestray.py:759
+msgid "The other participant canceled the file transfer"
+msgstr ""
+
+#: src/jarabe/frame/activitiestray.py:809
+#, python-format
+msgid "Transfer to %s"
+msgstr ""
+
+#: src/jarabe/frame/clipboardmenu.py:59 src/jarabe/frame/clipboardmenu.py:82
+#: src/jarabe/journal/palettes.py:104
+msgid "Open"
+msgstr ""
+
+#: src/jarabe/frame/clipboardmenu.py:87
+msgid "Open with"
+msgstr ""
+
+#: src/jarabe/frame/clipboardobject.py:49
+#, python-format
+msgid "%s clipping"
+msgstr ""
+
+#: src/jarabe/frame/notification.py:62
+msgid "Clear notifications"
+msgstr ""
+
+#: src/jarabe/frame/zoomtoolbar.py:49
+msgid "F1"
+msgstr ""
+
+#: src/jarabe/frame/zoomtoolbar.py:53
+msgid "F2"
+msgstr ""
+
+#: src/jarabe/frame/zoomtoolbar.py:57
+msgid "F3"
+msgstr ""
+
+#: src/jarabe/frame/zoomtoolbar.py:61 src/jarabe/model/screenshot.py:68
+msgid "Activity"
+msgstr ""
+
+#: src/jarabe/frame/zoomtoolbar.py:62
+msgid "F4"
+msgstr ""
+
+#: src/jarabe/intro/agepicker.py:38
+msgid "Select grade:"
+msgstr ""
+
+#: src/jarabe/intro/agepicker.py:39
+msgid "Preschool"
+msgstr ""
+
+#: src/jarabe/intro/agepicker.py:39
+msgid "Kindergarten"
+msgstr ""
+
+#: src/jarabe/intro/agepicker.py:39
+msgid "1st Grade"
+msgstr ""
+
+#: src/jarabe/intro/agepicker.py:40
+msgid "2nd Grade"
+msgstr ""
+
+#: src/jarabe/intro/agepicker.py:40
+msgid "3rd Grade"
+msgstr ""
+
+#: src/jarabe/intro/agepicker.py:40
+msgid "4th Grade"
+msgstr ""
+
+#: src/jarabe/intro/agepicker.py:41
+msgid "5th Grade"
+msgstr ""
+
+#: src/jarabe/intro/agepicker.py:41
+msgid "6th Grade"
+msgstr ""
+
+#: src/jarabe/intro/agepicker.py:41
+msgid "7th Grade"
+msgstr ""
+
+#: src/jarabe/intro/agepicker.py:42
+msgid "High School"
+msgstr ""
+
+#: src/jarabe/intro/agepicker.py:42
+msgid "Adult"
+msgstr ""
+
+#: src/jarabe/intro/window.py:125
+msgid "Name:"
+msgstr ""
+
+#: src/jarabe/intro/window.py:165
+msgid "Click to change color:"
+msgstr ""
+
+#: src/jarabe/intro/window.py:337 src/jarabe/journal/detailview.py:95
+#: src/jarabe/view/viewhelp.py:305
+msgid "Back"
+msgstr ""
+
+#: src/jarabe/intro/window.py:352
+msgid "Next"
+msgstr ""
+
+#: src/jarabe/journal/expandedentry.py:156
+#: src/jarabe/journal/journaltoolbox.py:610 src/jarabe/journal/palettes.py:189
+#, python-format
+msgid "Do you want to permanently erase \"%s\"?"
+msgstr ""
+
+#: src/jarabe/journal/expandedentry.py:332 src/jarabe/journal/iconmodel.py:109
+#: src/jarabe/journal/listmodel.py:183 src/jarabe/journal/model.py:797
+#: src/jarabe/journal/palettes.py:76 src/jarabe/journal/palettes.py:644
+#: src/jarabe/journal/volumestoolbar.py:133
+msgid "Untitled"
+msgstr ""
+
+#: src/jarabe/journal/expandedentry.py:388
+msgid "No preview"
+msgstr ""
+
+#: src/jarabe/journal/expandedentry.py:408
+#, python-format
+msgid "Kind: %s"
+msgstr ""
+
+#: src/jarabe/journal/expandedentry.py:409
+#, python-format
+msgid "Date: %s"
+msgstr ""
+
+#: src/jarabe/journal/expandedentry.py:410
+#, python-format
+msgid "Size: %s"
+msgstr ""
+
+#: src/jarabe/journal/expandedentry.py:434 src/jarabe/journal/misc.py:139
+msgid "No date"
+msgstr ""
+
+#: src/jarabe/journal/expandedentry.py:443
+msgid "Participants:"
+msgstr ""
+
+#: src/jarabe/journal/expandedentry.py:481
+#: src/jarabe/journal/projectview.py:110
+msgid "Description:"
+msgstr ""
+
+#: src/jarabe/journal/expandedentry.py:487
+msgid "Tags:"
+msgstr ""
+
+#: src/jarabe/journal/expandedentry.py:492
+msgid "Comments:"
+msgstr ""
+
+#: src/jarabe/journal/iconview.py:211 src/jarabe/journal/listview.py:512
+msgid "Your Journal is empty"
+msgstr ""
+
+#: src/jarabe/journal/iconview.py:214 src/jarabe/journal/listview.py:515
+msgid "Your documents folder is empty"
+msgstr ""
+
+#: src/jarabe/journal/iconview.py:216 src/jarabe/journal/listview.py:517
+msgid "The device is empty"
+msgstr ""
+
+#: src/jarabe/journal/iconview.py:219 src/jarabe/journal/listview.py:519
+msgid "No matching entries"
+msgstr ""
+
+#: src/jarabe/journal/journalactivity.py:197
+#: src/jarabe/journal/journaltoolbox.py:95
+#: src/jarabe/journal/journalwindow.py:32 src/jarabe/journal/palettes.py:289
+#: src/jarabe/journal/volumestoolbar.py:350 src/jarabe/view/viewhelp.py:92
+msgid "Journal"
+msgstr ""
+
+#: src/jarabe/journal/journalactivity.py:285
+msgid "Add new project"
+msgstr ""
+
+#: src/jarabe/journal/journalactivity.py:364
+#, python-format
+msgid "Choose an activity to start '%s' with"
+msgstr ""
+
+#: src/jarabe/journal/journaltoolbox.py:104
+msgid "Favorite entries"
+msgstr ""
+
+#: src/jarabe/journal/journaltoolbox.py:111
+msgid "Projects"
+msgstr ""
+
+#. TRANS: Item on a palette that filters by entry type.
+#: src/jarabe/journal/journaltoolbox.py:121
+#: src/jarabe/journal/journaltoolbox.py:415
+#: src/jarabe/journal/journaltoolbox.py:500
+msgid "Anything"
+msgstr ""
+
+#: src/jarabe/journal/journaltoolbox.py:127
+#: src/jarabe/journal/journaltoolbox.py:174
+#: src/jarabe/journal/journaltoolbox.py:504
+msgid "Anytime"
+msgstr ""
+
+#: src/jarabe/journal/journaltoolbox.py:181
+msgid "Since yesterday"
+msgstr ""
+
+#: src/jarabe/journal/journaltoolbox.py:184
+msgid "Past week"
+msgstr ""
+
+#: src/jarabe/journal/journaltoolbox.py:187
+msgid "Past month"
+msgstr ""
+
+#: src/jarabe/journal/journaltoolbox.py:190
+msgid "Past year"
+msgstr ""
+
+#: src/jarabe/journal/journaltoolbox.py:547 src/jarabe/journal/palettes.py:116
+msgid "Copy to"
+msgstr ""
+
+#: src/jarabe/journal/journaltoolbox.py:555 src/jarabe/journal/palettes.py:133
+#: src/jarabe/view/viewsource.py:382
+msgid "Duplicate"
+msgstr ""
+
+#: src/jarabe/journal/journaltoolbox.py:561
+msgid "Refresh"
+msgstr ""
+
+#: src/jarabe/journal/journaltoolbox.py:603 src/jarabe/journal/palettes.py:182
+#: src/jarabe/journal/palettes.py:403 src/jarabe/journal/volumestoolbar.py:311
+#, python-format
+msgid "Error while copying the entry. %s"
+msgstr ""
+
+#. TRANS: Action label for starting an entry.
+#: src/jarabe/journal/journaltoolbox.py:688 src/jarabe/journal/palettes.py:90
+msgid "Start"
+msgstr ""
+
+#: src/jarabe/journal/journaltoolbox.py:708 src/jarabe/journal/palettes.py:111
+#: src/jarabe/journal/palettes.py:542
+msgid "No activity to start entry"
+msgstr ""
+
+#: src/jarabe/journal/journaltoolbox.py:726
+msgid "Sort view"
+msgstr ""
+
+#: src/jarabe/journal/journaltoolbox.py:737
+msgid "Sort by date modified"
+msgstr ""
+
+#: src/jarabe/journal/journaltoolbox.py:738
+msgid "Sort by date created"
+msgstr ""
+
+#: src/jarabe/journal/journaltoolbox.py:739
+msgid "Sort by size"
+msgstr ""
+
+#: src/jarabe/journal/journaltoolbox.py:810
+msgid "Deselect all"
+msgstr ""
+
+#: src/jarabe/journal/journaltoolbox.py:823
+msgid "Select all"
+msgstr ""
+
+#: src/jarabe/journal/journaltoolbox.py:849
+#, python-format
+msgid "Do you want to erase %d entry?"
+msgid_plural "Do you want to erase %d entries?"
+msgstr[0] ""
+msgstr[1] ""
+
+#: src/jarabe/journal/journaltoolbox.py:863 src/jarabe/journal/palettes.py:407
+msgid "Copy"
+msgstr ""
+
+#. TRANS: Do not translate %(selected)d and %(total)d.
+#: src/jarabe/journal/journaltoolbox.py:914
+#, python-format
+msgid "Selected %(selected)d of %(total)d"
+msgstr ""
+
+#: src/jarabe/journal/journaltoolbox.py:949
+msgid "Select filter"
+msgstr ""
+
+#: src/jarabe/journal/journaltoolbox.py:1105
+msgid "Add New"
+msgstr ""
+
+#: src/jarabe/journal/journaltoolbox.py:1112
+msgid "Add new entry"
+msgstr ""
+
+#: src/jarabe/journal/listview.py:507
+msgid "Your project is empty"
+msgstr ""
+
+#: src/jarabe/journal/listview.py:521
+msgid "No Projects"
+msgstr ""
+
+#: src/jarabe/journal/misc.py:321
+#, python-format
+msgid "Older Version Of %s Activity"
+msgstr ""
+
+#: src/jarabe/journal/misc.py:322
+#, python-format
+msgid "Do you want to downgrade to version %s?"
+msgstr ""
+
+#: src/jarabe/journal/modalalert.py:62
+msgid "Your Journal is full"
+msgstr ""
+
+#: src/jarabe/journal/modalalert.py:67
+msgid "Please delete some old Journal entries to make space for new ones."
+msgstr ""
+
+#: src/jarabe/journal/modalalert.py:81
+msgid "Show Journal"
+msgstr ""
+
+#: src/jarabe/journal/objectchooser.py:170
+msgid "Choose an object"
+msgstr ""
+
+#: src/jarabe/journal/objectchooser.py:175
+#, python-format
+msgid "Choose an object to open with %s activity"
+msgstr ""
+
+#: src/jarabe/journal/objectchooser.py:183 src/jarabe/view/viewhelp.py:324
+#: src/jarabe/view/viewsource.py:582
+msgid "Close"
+msgstr ""
+
+#: src/jarabe/journal/palettes.py:88
+msgid "Resume with"
+msgstr ""
+
+#: src/jarabe/journal/palettes.py:91
+msgid "Start with"
+msgstr ""
+
+#: src/jarabe/journal/palettes.py:127
+msgid "Send to project..."
+msgstr ""
+
+#: src/jarabe/journal/palettes.py:141
+msgid "Send to"
+msgstr ""
+
+#: src/jarabe/journal/palettes.py:150
+msgid "View Details"
+msgstr ""
+
+#: src/jarabe/journal/palettes.py:223
+msgid "Entries without a file cannot be sent."
+msgstr ""
+
+#: src/jarabe/journal/palettes.py:301 src/jarabe/journal/volumestoolbar.py:213
+msgid "Documents"
+msgstr ""
+
+#: src/jarabe/journal/palettes.py:392 src/jarabe/journal/palettes.py:452
+#: src/jarabe/journal/volumestoolbar.py:302
+msgid "Entries without a file cannot be copied."
+msgstr ""
+
+#: src/jarabe/journal/palettes.py:412
+#, python-format
+msgid "Do you want to copy %d entry?"
+msgid_plural "Do you want to copy %d entries?"
+msgstr[0] ""
+msgstr[1] ""
+
+#: src/jarabe/journal/palettes.py:437
+msgid "Clipboard"
+msgstr ""
+
+#: src/jarabe/journal/palettes.py:507
+msgid "No friends present"
+msgstr ""
+
+#: src/jarabe/journal/palettes.py:512
+msgid "No valid connection found"
+msgstr ""
+
+#: src/jarabe/journal/palettes.py:540
+msgid "No activity to resume entry"
+msgstr ""
+
+#: src/jarabe/journal/palettes.py:610 src/jarabe/view/palettes.py:135
+msgid "Stop"
+msgstr ""
+
+#: src/jarabe/journal/palettes.py:645
+#, python-format
+msgid "%(index)d of %(total)d : %(object_title)s"
+msgstr ""
+
+#: src/jarabe/journal/volumestoolbar.py:376 src/jarabe/view/palettes.py:263
+#: src/jarabe/view/palettes.py:330
+#, python-format
+msgid "%(free_space)d MiB Free"
+msgstr ""
+
+#: src/jarabe/model/desktop.py:84
+#, python-format
+msgid "Favorites view %d"
+msgstr ""
+
+#: src/jarabe/model/network.py:216
+msgid "The reason for the device state change is unknown."
+msgstr ""
+
+#: src/jarabe/model/network.py:218
+msgid "The state change is normal."
+msgstr ""
+
+#: src/jarabe/model/network.py:220
+msgid "The device is now managed."
+msgstr ""
+
+#: src/jarabe/model/network.py:222
+msgid "The device is no longer managed."
+msgstr ""
+
+#: src/jarabe/model/network.py:224
+msgid "The device could not be readied for configuration."
+msgstr ""
+
+#: src/jarabe/model/network.py:226
+msgid ""
+"IP configuration could not be reserved (no available address, timeout, etc)."
+msgstr ""
+
+#: src/jarabe/model/network.py:229
+msgid "The IP configuration is no longer valid."
+msgstr ""
+
+#: src/jarabe/model/network.py:231
+msgid "Secrets were required, but not provided."
+msgstr ""
+
+#: src/jarabe/model/network.py:233
+msgid ""
+"The 802.1X supplicant disconnected from the access point or authentication "
+"server."
+msgstr ""
+
+#: src/jarabe/model/network.py:236
+msgid "Configuration of the 802.1X supplicant failed."
+msgstr ""
+
+#: src/jarabe/model/network.py:238
+msgid "The 802.1X supplicant quit or failed unexpectedly."
+msgstr ""
+
+#: src/jarabe/model/network.py:240
+msgid "The 802.1X supplicant took too long to authenticate."
+msgstr ""
+
+#: src/jarabe/model/network.py:242
+msgid "The PPP service failed to start within the allowed time."
+msgstr ""
+
+#: src/jarabe/model/network.py:244
+msgid "The PPP service disconnected unexpectedly."
+msgstr ""
+
+#: src/jarabe/model/network.py:246
+msgid "The PPP service quit or failed unexpectedly."
+msgstr ""
+
+#: src/jarabe/model/network.py:248
+msgid "The DHCP service failed to start within the allowed time."
+msgstr ""
+
+#: src/jarabe/model/network.py:250
+msgid "The DHCP service reported an unexpected error."
+msgstr ""
+
+#: src/jarabe/model/network.py:252
+msgid "The DHCP service quit or failed unexpectedly."
+msgstr ""
+
+#: src/jarabe/model/network.py:254
+msgid "The shared connection service failed to start."
+msgstr ""
+
+#: src/jarabe/model/network.py:256
+msgid "The shared connection service quit or failed unexpectedly."
+msgstr ""
+
+#: src/jarabe/model/network.py:259
+msgid "The AutoIP service failed to start."
+msgstr ""
+
+#: src/jarabe/model/network.py:261
+msgid "The AutoIP service reported an unexpected error."
+msgstr ""
+
+#: src/jarabe/model/network.py:263
+msgid "The AutoIP service quit or failed unexpectedly."
+msgstr ""
+
+#: src/jarabe/model/network.py:265
+msgid "Dialing failed because the line was busy."
+msgstr ""
+
+#: src/jarabe/model/network.py:267
+msgid "Dialing failed because there was no dial tone."
+msgstr ""
+
+#: src/jarabe/model/network.py:269
+msgid "Dialing failed because there was no carrier."
+msgstr ""
+
+#: src/jarabe/model/network.py:271
+msgid "Dialing timed out."
+msgstr ""
+
+#: src/jarabe/model/network.py:273
+msgid "Dialing failed."
+msgstr ""
+
+#: src/jarabe/model/network.py:275
+msgid "Modem initialization failed."
+msgstr ""
+
+#: src/jarabe/model/network.py:277
+msgid "Failed to select the specified GSM APN"
+msgstr ""
+
+#: src/jarabe/model/network.py:279
+msgid "Not searching for networks."
+msgstr ""
+
+#: src/jarabe/model/network.py:281
+msgid "Network registration was denied."
+msgstr ""
+
+#: src/jarabe/model/network.py:283
+msgid "Network registration timed out."
+msgstr ""
+
+#: src/jarabe/model/network.py:285
+msgid "Failed to register with the requested GSM network."
+msgstr ""
+
+#: src/jarabe/model/network.py:287
+msgid "PIN check failed."
+msgstr ""
+
+#: src/jarabe/model/network.py:289
+msgid "Necessary firmware for the device may be missing."
+msgstr ""
+
+#: src/jarabe/model/network.py:291
+msgid "The device was removed."
+msgstr ""
+
+#: src/jarabe/model/network.py:293
+msgid "NetworkManager went to sleep."
+msgstr ""
+
+#: src/jarabe/model/network.py:295
+msgid "The device's active connection was removed or disappeared."
+msgstr ""
+
+#: src/jarabe/model/network.py:298
+msgid "A user or client requested the disconnection."
+msgstr ""
+
+#: src/jarabe/model/network.py:300
+msgid "The device's carrier/link changed."
+msgstr ""
+
+#: src/jarabe/model/network.py:302
+msgid "The device's existing connection was assumed."
+msgstr ""
+
+#: src/jarabe/model/network.py:304
+msgid "The supplicant is now available."
+msgstr ""
+
+#: src/jarabe/model/network.py:306
+msgid "The modem could not be found."
+msgstr ""
+
+#: src/jarabe/model/network.py:308
+msgid "The Bluetooth connection failed or timed out."
+msgstr ""
+
+#: src/jarabe/model/network.py:310
+msgid "Unused."
+msgstr ""
+
+#: src/jarabe/model/screenshot.py:58 src/jarabe/view/viewhelp.py:83
+msgid "Mesh"
+msgstr ""
+
+#: src/jarabe/model/screenshot.py:71
+msgid "Screenshot"
+msgstr ""
+
+#: src/jarabe/model/screenshot.py:73
+#, python-format
+msgid "Screenshot of \"%s\""
+msgstr ""
+
+#: src/jarabe/view/alerts.py:37 src/jarabe/view/alerts.py:47
+msgid "Activity launcher"
+msgstr ""
+
+#: src/jarabe/view/alerts.py:38
+#, python-format
+msgid ""
+"%(activity)s is already running. Please stop %(activity)s before launching "
+"it again."
+msgstr ""
+
+#: src/jarabe/view/alerts.py:48
+msgid ""
+"The maximum number of open activities has been reached. Please close an "
+"activity before launching a new one."
+msgstr ""
+
+#: src/jarabe/view/buddymenu.py:74
+msgid "Remove friend"
+msgstr ""
+
+#: src/jarabe/view/buddymenu.py:77
+msgid "Make friend"
+msgstr ""
+
+#: src/jarabe/view/buddymenu.py:109
+msgid "Shutdown"
+msgstr ""
+
+#: src/jarabe/view/buddymenu.py:114
+msgid "Restart"
+msgstr ""
+
+#: src/jarabe/view/buddymenu.py:120
+msgid "Logout"
+msgstr ""
+
+#: src/jarabe/view/buddymenu.py:125
+msgid "My Settings"
+msgstr ""
+
+#: src/jarabe/view/buddymenu.py:188
+#, python-format
+msgid "Invite to %s"
+msgstr ""
+
+#: src/jarabe/view/launcher.py:158
+#, python-format
+msgid "<b>%s</b> failed to start."
+msgstr ""
+
+#: src/jarabe/view/palettes.py:55
+msgid "Starting..."
+msgstr ""
+
+#: src/jarabe/view/palettes.py:65
+msgid "Activity failed to start"
+msgstr ""
+
+#: src/jarabe/view/palettes.py:107
+msgid "View Source"
+msgstr ""
+
+#: src/jarabe/view/palettes.py:114
+msgid "View Help"
+msgstr ""
+
+#: src/jarabe/view/palettes.py:190
+msgid "Start new"
+msgstr ""
+
+#: src/jarabe/view/viewhelp.py:282
+msgid "Help Manual"
+msgstr ""
+
+#: src/jarabe/view/viewhelp.py:296
+msgid "Social Help"
+msgstr ""
+
+#: src/jarabe/view/viewhelp.py:310
+msgid "Forward"
+msgstr ""
+
+#: src/jarabe/view/viewhelp.py:315
+#, python-format
+msgid "Help: %s"
+msgstr ""
+
+#: src/jarabe/view/viewsource.py:367
+msgid "Instance Source"
+msgstr ""
+
+#: src/jarabe/view/viewsource.py:395
+#, python-format
+msgid "Do you want to duplicate %s Activity?"
+msgstr ""
+
+#: src/jarabe/view/viewsource.py:397
+msgid "This may take a few minutes"
+msgstr ""
+
+#: src/jarabe/view/viewsource.py:411
+msgid "Duplicating activity..."
+msgstr ""
+
+#: src/jarabe/view/viewsource.py:450
+msgid "Duplicated"
+msgstr ""
+
+#: src/jarabe/view/viewsource.py:451
+msgid "The activity has been duplicated"
+msgstr ""
+
+#: src/jarabe/view/viewsource.py:465
+msgid "Duplicated activity already exists"
+msgstr ""
+
+#: src/jarabe/view/viewsource.py:466
+msgid "Delete your copy before trying to duplicate the activity again"
+msgstr ""
+
+#: src/jarabe/view/viewsource.py:481
+msgid "Source"
+msgstr ""
+
+#: src/jarabe/view/viewsource.py:545
+msgid "Activity Bundle Source"
+msgstr ""
+
+#: src/jarabe/view/viewsource.py:564
+msgid "Sugar Toolkit Source"
+msgstr ""
+
+#: src/jarabe/view/viewsource.py:571
+#, python-format
+msgid "View source: %s"
+msgstr ""
+
+#: src/jarabe/view/viewsource.py:572
+#, python-format
+msgid "View source: %r"
+msgstr ""
+
+#: src/jarabe/view/viewsource.py:813
+msgid "Please select a file in the left panel."
+msgstr ""
diff --git b/src/jarabe/.gitignore a/src/jarabe/.gitignore
new file mode 100644
index 0000000..4acd06b
--- /dev/null
+++ a/src/jarabe/.gitignore
@@ -0,0 +1 @@
+config.py
diff --git b/src/jarabe/desktop/favoriteslayout.py a/src/jarabe/desktop/favoriteslayout.py
index 2d3e998..aaaf513 100644
--- b/src/jarabe/desktop/favoriteslayout.py
+++ a/src/jarabe/desktop/favoriteslayout.py
@@ -247,7 +247,7 @@ class RandomLayout(SpreadLayout):
                     x = min(x, allocation.width - child_requisition.width)
                     y = min(y, allocation.height - child_requisition.height)
                 elif hasattr(child, 'get_bundle_id'):
-                    name_hash = hashlib.md5(child.get_bundle_id().decode())
+                    name_hash = hashlib.md5(child.get_bundle_id().encode('utf-8'))
                     x = int(name_hash.hexdigest()[:5], 16) % \
                         (allocation.width - child_requisition.width)
                     y = int(name_hash.hexdigest()[-5:], 16) % \
diff --git b/src/jarabe/desktop/meshbox.py a/src/jarabe/desktop/meshbox.py
index da0a775..0127492 100644
--- b/src/jarabe/desktop/meshbox.py
+++ a/src/jarabe/desktop/meshbox.py
@@ -486,7 +486,7 @@ class MeshBox(ViewContainer):
         # if we have mesh hardware, ignore OLPC mesh networks that appear as
         # normal wifi networks
         if len(self._mesh) > 0 and ap.mode == network.NM_802_11_MODE_ADHOC \
-                and ap.ssid == 'olpc-mesh':
+                and ap.ssid == b'olpc-mesh':
             logging.debug('ignoring OLPC mesh IBSS')
             ap.disconnect()
             return
diff --git b/src/jarabe/desktop/networkviews.py a/src/jarabe/desktop/networkviews.py
index d63cf01..1bf6cc3 100644
--- b/src/jarabe/desktop/networkviews.py
+++ a/src/jarabe/desktop/networkviews.py
@@ -454,7 +454,7 @@ class WirelessNetworkView(EventPulsingIcon):
 
     def is_olpc_mesh(self):
         return self._mode == network.NM_802_11_MODE_ADHOC \
-            and self._ssid == 'olpc-mesh'
+            and self._ssid == b'olpc-mesh'
 
     def remove_all_aps(self):
         for ap in list(self._access_points.values()):
diff --git b/src/jarabe/journal/journalentrybundle.py a/src/jarabe/journal/journalentrybundle.py
index 0656b6a..233c899 100644
--- b/src/jarabe/journal/journalentrybundle.py
+++ a/src/jarabe/journal/journalentrybundle.py
@@ -87,7 +87,7 @@ class JournalEntryBundle(Bundle):
         preview_path = os.path.join(bundle_dir, 'preview', uid)
         if not os.path.exists(preview_path):
             return ''
-        f = open(preview_path, 'r')
+        f = open(preview_path, 'rb')
         try:
             preview_data = f.read()
         finally:
diff --git b/src/jarabe/model/buddy.py a/src/jarabe/model/buddy.py
index 6683a52..179d67e 100644
--- b/src/jarabe/model/buddy.py
+++ a/src/jarabe/model/buddy.py
@@ -57,6 +57,9 @@ class BaseBuddyModel(GObject.GObject):
         return self._key
 
     def set_key(self, key):
+        if isinstance(key, bytes):
+            key = key.decode('utf-8')
+
         self._key = key
 
     key = GObject.Property(type=object, getter=get_key, setter=set_key)
@@ -160,9 +163,8 @@ class OwnerBuddyModel(BaseBuddyModel):
         if CONNECTION_INTERFACE_BUDDY_INFO in connection:
             properties = {}
             if self.props.key is not None:
-                if isinstance(self.props.key, str):
-                    self.props.key = self.props.key.encode()
-                properties['key'] = dbus.ByteArray(self.props.key)
+                properties['key'] = dbus.ByteArray(
+                    self.props.key.encode('utf-8'))
             if self.props.color is not None:
                 properties['color'] = self.props.color.to_string()
 
diff --git b/src/jarabe/model/network.py a/src/jarabe/model/network.py
index a26b62d..edb6758 100644
--- b/src/jarabe/model/network.py
+++ a/src/jarabe/model/network.py
@@ -429,7 +429,7 @@ class OlpcMesh(object):
 
     def get_dict(self):
         ret = {
-            'ssid': dbus.ByteArray('olpc-mesh'),
+            'ssid': dbus.ByteArray(b'olpc-mesh'),
             'channel': self.channel,
         }
 
@@ -647,7 +647,7 @@ class AccessPoint(GObject.GObject):
         self._initialized = False
         self._bus = dbus.SystemBus()
 
-        self.ssid = ''
+        self.ssid = b''
         self.strength = 0
         self.flags = 0
         self.wpa_flags = 0
@@ -970,7 +970,7 @@ def _migrate_old_wifi_connections():
         try:
             settings = Settings()
             settings.connection.id = section
-            ssid = config.get(section, 'ssid')
+            ssid = config.get(section, 'ssid').encode()
             settings.wireless.ssid = dbus.ByteArray(ssid)
             config_uuid = config.get(section, 'uuid')
             settings.connection.uuid = config_uuid
diff --git b/src/jarabe/view/Makefile.am a/src/jarabe/view/Makefile.am
index da7fe1d..3aea66f 100644
--- b/src/jarabe/view/Makefile.am
+++ a/src/jarabe/view/Makefile.am
@@ -15,5 +15,4 @@ sugar_PYTHON =				\
 	tabbinghandler.py		\
 	viewsource.py			\
 	viewhelp.py			\
-	viewhelp_webkit1.py		\
 	viewhelp_webkit2.py
diff --git b/src/jarabe/view/viewhelp.py a/src/jarabe/view/viewhelp.py
index baf8af0..0cd9498 100644
--- b/src/jarabe/view/viewhelp.py
+++ a/src/jarabe/view/viewhelp.py
@@ -33,17 +33,7 @@ from sugar3.graphics.toolbutton import ToolButton
 from sugar3.graphics.radiotoolbutton import RadioToolButton
 from sugar3.bundle.activitybundle import get_bundle_instance
 from jarabe.model import shell
-
-
-try:
-    olpc_build = open('/boot/olpc_build', 'r').readline()
-except:
-    olpc_build = ''
-
-if olpc_build.startswith('13'):
-    from jarabe.view.viewhelp_webkit1 import Browser
-else:
-    from jarabe.view.viewhelp_webkit2 import Browser
+from jarabe.view.viewhelp_webkit2 import Browser
 
 
 _logger = logging.getLogger('ViewHelp')
diff --git b/tests/data/activity-1.xo a/tests/data/activity-1.xo
new file mode 100644
index 0000000..f7ae005
Binary files /dev/null and a/tests/data/activity-1.xo differ
diff --git b/tests/data/activity.svg a/tests/data/activity.svg
new file mode 100644
index 0000000..8da7c63
--- /dev/null
+++ a/tests/data/activity.svg
@@ -0,0 +1,26 @@
+<?xml version="1.0" ?><!DOCTYPE svg  PUBLIC '-//W3C//DTD SVG 1.1//EN'  'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd' [
+	<!ENTITY stroke_color "#010101">
+	<!ENTITY fill_color "#FFFFFF">
+]>
+<svg enable-background="new 0 0 55 55" height="55px" version="1.1" viewBox="0 0 55 55" width="55px" x="0px" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="0px">
+  <g display="block" id="activity-helloworld">
+    <path d="M9.263,48.396c0.682,1.152,6.027,0.059,8.246-1.463   c2.102-1.432,3.207-2.596,4.336-2.596c1.133,0,12.54,0.92,20.935-5.715c7.225-5.707,9.773-13.788,4.52-21.437   c-5.252-7.644-13.832-9.08-20.878-8.56C16.806,9.342,4.224,16.91,4.677,28.313c0.264,6.711,3.357,9.143,4.922,10.703   c1.562,1.566,4.545,1.566,2.992,5.588C11.981,46.183,8.753,47.522,9.263,48.396z" display="inline" fill="&fill_color;" stroke="&stroke_color;" stroke-width="3.5"/>
+  </g>
+  <circle cx="27.375" cy="27.5" r="19.903"
+     transform="matrix(0.6,0,0,0.6,10.95,11)"
+     id="circle4" fill="&fill_color;" stroke="&stroke_color;" stroke-width="3.5" display="inline" />
+  <g transform="matrix(0.6,0,0,0.6,10.95,11)" id="g6" style="display:inline">
+    <path d="m 27.376,7.598 c 0,0 -11.205,8.394 -11.205,19.976 0,11.583 11.205,19.829 11.205,19.829"
+       id="path8" fill="&fill_color;" stroke="&stroke_color;" stroke-width="3.5" />
+    <path d="m 27.376,7.598 c 0,0 11.066,9.141 11.066,19.976 0,10.839 -11.066,19.829 -11.066,19.829"
+       id="path10" fill="&fill_color;" stroke="&stroke_color;" stroke-width="3.5" />
+    <line x1="27.375999" x2="27.375999" y1="7.598" y2="47.402"
+       id="line12" fill="&fill_color;" stroke="&stroke_color;" stroke-width="3.5" />
+    <line x1="27.375999" x2="27.375999" y1="7.598" y2="47.402"
+       id="line14" fill="&fill_color;" stroke="&stroke_color;" stroke-width="3.5" />
+    <line x1="27.375999" x2="27.375999" y1="7.598" y2="47.402"
+       id="line16" fill="&fill_color;" stroke="&stroke_color;" stroke-width="3.5" />
+    <line x1="7.4720001" x2="47.278" y1="27.5" y2="27.5"
+       id="line18" fill="&fill_color;" stroke="&stroke_color;" stroke-width="3.5" />
+  </g>
+</svg>
diff --git b/tests/data/microformat.html a/tests/data/microformat.html
new file mode 100644
index 0000000..6fea175
--- /dev/null
+++ a/tests/data/microformat.html
@@ -0,0 +1,19 @@
+<span id="olpc-activity-group-name">activities</span>
+
+<div class="olpc-activity-info">
+<span class="olpc-activity-id" style="display:none;">org.sugarlabs.AbacusActivity</span>
+<span class="olpc-activity-url"><a href="http://download.sugarlabs.org/abacus-43.xo">Abacus</a></span>
+<span class="olpc-activity-version">43</span>
+</div>
+
+<div class="olpc-activity-info">
+<span class="olpc-activity-id" style="display:none;">org.sugarlabs.AbacusActivity</span>
+<span class="olpc-activity-url"><a href="http://download.sugarlabs.org/activities/4293/abacus-41.1.xo">Abacus</a></span>
+<span class="olpc-activity-version">41.1</span>
+</div>
+
+<div class="olpc-activity-info">
+<span class="olpc-activity-id" style="display:none;">org.laptop.WebActivity</span>
+<span class="olpc-activity-url"><a href="browse-149.xo">Browse</a></span>
+<span class="olpc-activity-version">149</span>
+</div>
diff --git b/tests/data/sample-1.xol a/tests/data/sample-1.xol
new file mode 100644
index 0000000..52f384d
Binary files /dev/null and a/tests/data/sample-1.xol differ
diff --git b/tests/data/test.txt a/tests/data/test.txt
new file mode 100644
index 0000000..ce01362
--- /dev/null
+++ a/tests/data/test.txt
@@ -0,0 +1 @@
+hello
diff --git b/tests/extensions/cpsection/__init__.py a/tests/extensions/cpsection/__init__.py
new file mode 100644
index 0000000..3ad9513
--- /dev/null
+++ a/tests/extensions/cpsection/__init__.py
@@ -0,0 +1,2 @@
+from pkgutil import extend_path
+__path__ = extend_path(__path__, __name__)
diff --git b/tests/extensions/cpsection/webaccount/__init__.py a/tests/extensions/cpsection/webaccount/__init__.py
new file mode 100644
index 0000000..3ad9513
--- /dev/null
+++ a/tests/extensions/cpsection/webaccount/__init__.py
@@ -0,0 +1,2 @@
+from pkgutil import extend_path
+__path__ = extend_path(__path__, __name__)
diff --git b/tests/extensions/cpsection/webaccount/services/__init__.py a/tests/extensions/cpsection/webaccount/services/__init__.py
new file mode 100644
index 0000000..3ad9513
--- /dev/null
+++ a/tests/extensions/cpsection/webaccount/services/__init__.py
@@ -0,0 +1,2 @@
+from pkgutil import extend_path
+__path__ = extend_path(__path__, __name__)
diff --git b/tests/extensions/cpsection/webaccount/services/mock/__init__.py a/tests/extensions/cpsection/webaccount/services/mock/__init__.py
new file mode 100644
index 0000000..3ad9513
--- /dev/null
+++ a/tests/extensions/cpsection/webaccount/services/mock/__init__.py
@@ -0,0 +1,2 @@
+from pkgutil import extend_path
+__path__ = extend_path(__path__, __name__)
diff --git b/tests/extensions/cpsection/webaccount/services/mock/service.py a/tests/extensions/cpsection/webaccount/services/mock/service.py
new file mode 100644
index 0000000..bd29dab
--- /dev/null
+++ a/tests/extensions/cpsection/webaccount/services/mock/service.py
@@ -0,0 +1,45 @@
+# Copyright (C) 2013, Walter Bender - Raul Gutierrez Segales
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+
+from gi.repository import Gtk
+
+from jarabe.webservice import accountsmanager
+
+from cpsection.webaccount.web_service import WebService
+
+_SERVICE_NAME = 'mock'
+
+
+class WebService(WebService):
+
+    def __init__(self):
+        self._account = accountsmanager.get_account(_SERVICE_NAME)
+
+    def get_icon_name(self):
+        return _SERVICE_NAME
+
+    def config_service_cb(self, widget, event, container):
+        label = Gtk.Label(_SERVICE_NAME)
+
+        for c in container.get_children():
+            container.remove(c)
+
+        container.add(label)
+        container.show_all()
+
+
+def get_service():
+    return WebService()
diff --git b/tests/extensions/cpsection/webaccount/web_service.py a/tests/extensions/cpsection/webaccount/web_service.py
new file mode 100644
index 0000000..998acb1
--- /dev/null
+++ a/tests/extensions/cpsection/webaccount/web_service.py
@@ -0,0 +1,22 @@
+# Copyright (C) 2013, Walter Bender - Raul Gutierrez Segales
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+
+class WebService():
+    def get_icon_name(self):
+        raise "Not implemented"
+
+    def config_service_cb(self, widget, event, container):
+        raise "Not implemented"
diff --git b/tests/extensions/webservice/__init__.py a/tests/extensions/webservice/__init__.py
new file mode 100644
index 0000000..3ad9513
--- /dev/null
+++ a/tests/extensions/webservice/__init__.py
@@ -0,0 +1,2 @@
+from pkgutil import extend_path
+__path__ = extend_path(__path__, __name__)
diff --git b/tests/extensions/webservice/mock/__init__.py a/tests/extensions/webservice/mock/__init__.py
new file mode 100644
index 0000000..3ad9513
--- /dev/null
+++ a/tests/extensions/webservice/mock/__init__.py
@@ -0,0 +1,2 @@
+from pkgutil import extend_path
+__path__ = extend_path(__path__, __name__)
diff --git b/tests/extensions/webservice/mock/account.py a/tests/extensions/webservice/mock/account.py
new file mode 100644
index 0000000..3f4520d
--- /dev/null
+++ a/tests/extensions/webservice/mock/account.py
@@ -0,0 +1,72 @@
+# Copyright (c) 2013 Walter Bender
+
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to deal
+# in the Software without restriction, including without limitation the rights
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+# copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+# THE SOFTWARE.
+
+import os
+
+from sugar3.graphics.menuitem import MenuItem
+from jarabe.webservice import account
+
+ACCOUNT_NAME = 'mock'
+
+
+class MockAccount(account.Account):
+    def __init__(self):
+        return
+
+    def get_description(self):
+        return ACCOUNT_NAME
+
+    def get_shared_journal_entry(self):
+        return MockSharedJournalEntry()
+
+    def get_token_state(self):
+        return int(os.environ["MOCK_ACCOUNT_STATE"])
+
+
+class MockSharedJournalEntry(account.SharedJournalEntry):
+    def __init__(self):
+        return
+
+    def get_share_menu(self, metadata):
+        share_menu = ShareMenu(metadata)
+        return share_menu
+
+    def get_refresh_menu(self):
+        refresh_menu = RefreshMenu()
+        return refresh_menu
+
+
+class ShareMenu(MenuItem):
+    def __init__(self, metadata):
+        MenuItem.__init__(self, text_label=ACCOUNT_NAME)
+        self.show()
+
+
+class RefreshMenu(MenuItem):
+    def __init__(self):
+        MenuItem.__init__(self, text_label=ACCOUNT_NAME)
+        self.show()
+
+    def set_metadata(self, metadata):
+        return
+
+
+def get_account():
+    return MockAccount()
diff --git b/tests/extensions/webservice/mock/icons/mock.svg a/tests/extensions/webservice/mock/icons/mock.svg
new file mode 100644
index 0000000..7a9434c
--- /dev/null
+++ a/tests/extensions/webservice/mock/icons/mock.svg
@@ -0,0 +1,25 @@
+<?xml version="1.0" ?><!-- Generator: Adobe Illustrator 13.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 14948)  --><!DOCTYPE svg  PUBLIC '-//W3C//DTD SVG 1.1//EN'  'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd' [
+	<!ENTITY stroke_color "#A0A0A0">
+	<!ENTITY fill_color "#282828">
+]><svg enable-background="new 0 0 55.125 55" height="55px" id="Layer_1" version="1.1" viewBox="0 0 55 55" width="55px" x="0px" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="0px">
+  <rect
+     width="54"
+     height="54"
+     ry="3.5"
+     x="0.5"
+     y="0.5"
+     style="fill:&fill_color;;fill-opacity:1;fill-rule:nonzero;stroke:#FFFFFF;stroke-width:1.0;stroke-opacity:1" />
+  <rect
+     width="46.25"
+     height="7.75"
+     ry="0"
+     x="4.5"
+     y="42"
+     style="fill:&stroke_color;;fill-opacity:1;fill-rule:nonzero;stroke:none" />
+<text>
+  <tspan
+     x="6"
+     y="45"
+     id="tspan2839"
+     style="font-size:44px;font-style:normal;font-variant:normal;font-weight:bold;fill:#ffffff;font-family:DejaVu Sans;">M</tspan></text>
+</svg>
diff --git b/tests/extensions/webservice/mock/mock/__init__.py a/tests/extensions/webservice/mock/mock/__init__.py
new file mode 100644
index 0000000..3ad9513
--- /dev/null
+++ a/tests/extensions/webservice/mock/mock/__init__.py
@@ -0,0 +1,2 @@
+from pkgutil import extend_path
+__path__ = extend_path(__path__, __name__)
diff --git b/tests/extensions/webservice/mock/mock/mock.py a/tests/extensions/webservice/mock/mock/mock.py
new file mode 100644
index 0000000..e69de29
diff --git b/tests/test_activitieslist.py a/tests/test_activitieslist.py
new file mode 100644
index 0000000..722424f
--- /dev/null
+++ a/tests/test_activitieslist.py
@@ -0,0 +1,27 @@
+# Copyright (C) 2013, Daniel Narvaez
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+from sugar3.test import unittest
+from sugar3.test import uitree
+
+
+class TestActivitiesList(unittest.UITestCase):
+    def test_activity_list_palette(self):
+        with self.run_view("activitieslist"):
+            root = uitree.get_root()
+
+            for name in ["Make favorite", "Erase", "Start new"]:
+                node = root.find_child(name=name, role_name="label")
+                self.assertIsNotNone(node)
diff --git b/tests/test_backup.py a/tests/test_backup.py
new file mode 100644
index 0000000..0fe832c
--- /dev/null
+++ a/tests/test_backup.py
@@ -0,0 +1,47 @@
+# Copyright (C) 2014, Gonzalo Odiard
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+import unittest
+import sys
+
+from jarabe import config
+
+# we need import from the extensions path
+sys.path.append(config.ext_path)
+
+from cpsection.backup.backupmanager import BackupManager
+from cpsection.backup.backends.backend_tools import Backend
+
+
+class TestBackup(unittest.TestCase):
+
+    def setUp(self):
+        self.manager = BackupManager()
+        self._backends = self.manager.get_backends()
+
+    def test_get_backend(self):
+        self.assertTrue(len(self._backends) > 0)
+
+    def test_backend_backup_restore(self):
+        for backend in self._backends:
+            # verify the backend have the methods needed
+            self.assertIsInstance(backend.get_name(), str)
+
+            self.assertIsInstance(backend.get_backup(), Backend)
+
+            self.assertIsInstance(backend.get_restore(), Backend)
+
+    def test_need_stop_activities(self):
+        self.assertFalse(self.manager.need_stop_activities())
diff --git b/tests/test_bundleregistry.py a/tests/test_bundleregistry.py
new file mode 100644
index 0000000..743d40c
--- /dev/null
+++ a/tests/test_bundleregistry.py
@@ -0,0 +1,60 @@
+# Copyright (C) 2013, One Laptop per Child
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+import shutil
+import tempfile
+import unittest
+import os
+
+from jarabe.model import bundleregistry
+from sugar3.bundle.helpers import bundle_from_archive
+
+tests_dir = os.getcwd()
+data_dir = os.path.join(tests_dir, "data")
+base_dir = os.path.dirname(tests_dir)
+
+os.environ["SUGAR_MIME_DEFAULTS"] = \
+    os.path.join(base_dir, "data", "mime.defaults")
+
+
+class TestBundleRegistry(unittest.TestCase):
+    def setUp(self):
+        activities_path = tempfile.mkdtemp()
+        library_path = tempfile.mkdtemp()
+        os.environ['SUGAR_ACTIVITIES_PATH'] = activities_path
+        os.environ['SUGAR_LIBRARY_PATH'] = library_path
+
+    def tearDown(self):
+        activities_path = os.environ.pop('SUGAR_ACTIVITIES_PATH', None)
+        if activities_path:
+            shutil.rmtree(activities_path)
+
+        library_path = os.environ.pop('SUGAR_LIBRARY_PATH', None)
+        if library_path:
+            shutil.rmtree(library_path)
+
+    def test_install_content(self):
+        registry = bundleregistry.get_registry()
+        bundle = bundle_from_archive(os.path.join(data_dir, 'sample-1.xol'))
+        registry.install(bundle)
+        installed_bundle = registry.get_bundle("org.sugarlabs.samplecontent")
+        self.assertIsNotNone(installed_bundle)
+
+    def test_install_activity(self):
+        registry = bundleregistry.get_registry()
+        bundle = bundle_from_archive(os.path.join(data_dir, 'activity-1.xo'))
+        registry.install(bundle)
+        installed_bundle = registry.get_bundle("org.sugarlabs.MyActivity")
+        self.assertIsNotNone(installed_bundle)
diff --git b/tests/test_desktop_config.py a/tests/test_desktop_config.py
new file mode 100644
index 0000000..d561262
--- /dev/null
+++ a/tests/test_desktop_config.py
@@ -0,0 +1,77 @@
+# Copyright (C) 2013, Walter Bender
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+from sugar3.test import unittest
+
+from gi.repository import Gio
+from gi.repository import GLib
+
+from jarabe.model import desktop
+
+_DESKTOP_CONF_DIR = 'org.sugarlabs.desktop'
+_HOMEVIEWS_KEY = 'homeviews'
+
+_VIEW_ICONS = [{'layout': 'box-layout', 'view-icon': 'view-radial',
+                'favorite-icon': 'emblem-locked'}]
+_MOCK_LIST = [{'layout': 'box-layout', 'view-icon': 'view-radial',
+               'favorite-icon': 'emblem-locked'},
+              {'layout': 'ring-layout', 'view-icon': 'view-box',
+               'favorite-icon': 'emblem-favorite'}]
+
+
+class TestDesktopConfig(unittest.UITestCase):
+
+    def setUp(self):
+        self.target = []
+
+        settings = Gio.Settings.new(_DESKTOP_CONF_DIR)
+        self._save_homeviews = settings.get_value(_HOMEVIEWS_KEY)
+
+        self.model = desktop.get_model()
+        self.model.connect('desktop-view-icons-changed',
+                           self.__desktop_view_icons_changed_cb)
+
+    def __desktop_view_icons_changed_cb(self, model):
+        number_of_views = desktop.get_number_of_views()
+        self.assertTrue(number_of_views == len(self.target))
+
+        view_icons = desktop.get_view_icons()
+        self.assertTrue(len(view_icons) == len(self.target))
+
+        right_view_icons = [view['view-icon'] for view in self.target]
+        for i in range(len(view_icons)):
+            self.assertTrue(view_icons[i] in right_view_icons)
+
+        favorite_icons = desktop.get_favorite_icons()
+        self.assertTrue(len(favorite_icons) >= len(self.target))
+
+    def test_unset_views(self):
+        self.target = _VIEW_ICONS
+        with self.run_view("gtk_main"):
+            settings = Gio.Settings.new(_DESKTOP_CONF_DIR)
+            variant = GLib.Variant('aa{ss}', self.target)
+            settings.set_value(_HOMEVIEWS_KEY, variant)
+
+    def test_set_views(self):
+        self.target = _MOCK_LIST
+        with self.run_view("gtk_main"):
+            settings = Gio.Settings.new(_DESKTOP_CONF_DIR)
+            variant = GLib.Variant('aa{ss}', self.target)
+            settings.set_value(_HOMEVIEWS_KEY, variant)
+
+    def tearDown(self):
+        self.target = self._save_homeviews.unpack()
+        settings = Gio.Settings.new(_DESKTOP_CONF_DIR)
+        settings.set_value(_HOMEVIEWS_KEY, self._save_homeviews)
diff --git b/tests/test_downloader.py a/tests/test_downloader.py
new file mode 100644
index 0000000..7e661ce
--- /dev/null
+++ a/tests/test_downloader.py
@@ -0,0 +1,89 @@
+# Copyright (C) 2013, One Laptop per Child
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+import os
+import unittest
+import threading
+import http.server
+import socketserver
+
+from gi.repository import Gtk
+
+from sugar3 import env
+from jarabe.util.downloader import Downloader
+
+profile_data_dir = os.path.join(env.get_profile_path(), 'data')
+if not os.path.isdir(profile_data_dir):
+    os.makedirs(profile_data_dir)
+
+tests_dir = os.getcwd()
+data_dir = os.path.join(tests_dir, "data")
+
+
+class TestDownloader(unittest.TestCase):
+    def setUp(self):
+        handler = http.server.SimpleHTTPRequestHandler
+        self._server = socketserver.TCPServer(("", 0), handler)
+        self._port = self._server.server_address[1]
+        self._server_thread = threading.Thread(target=self._run_http_server)
+        self._server_thread.daemon = True
+        self._server_thread.start()
+
+    def tearDown(self):
+        self._server.shutdown()
+        self._server_thread.join()
+
+    def _run_http_server(self):
+        self._server.serve_forever()
+
+    def download_complete_cb(self, downloader, result):
+        self._complete = True
+        self._result = result
+
+    def test_download_to_temp(self):
+        downloader = Downloader("http://0.0.0.0:%d/data/test.txt" % self._port)
+        self._complete = False
+        downloader.connect('complete', self.download_complete_cb)
+        downloader.download_to_temp()
+
+        while not self._complete:
+            Gtk.main_iteration()
+
+        self.assertIsNone(self._result)
+        path = downloader.get_local_file_path()
+        text = open(path, "r").read()
+        self.assertEqual("hello\n", text)
+
+    def test_download(self):
+        downloader = Downloader("http://0.0.0.0:%d/data/test.txt" % self._port)
+        self._complete = False
+        downloader.connect('complete', self.download_complete_cb)
+        downloader.download()
+
+        while not self._complete:
+            Gtk.main_iteration()
+
+        self.assertEqual("hello\n", self._result.get_data())
+
+    def test_get_size(self):
+        downloader = Downloader("http://0.0.0.0:%d/data/test.txt" % self._port)
+        self._complete = False
+        downloader.connect('complete', self.download_complete_cb)
+        downloader.get_size()
+
+        while not self._complete:
+            Gtk.main_iteration()
+
+        self.assertEqual(6, self._result)
diff --git b/tests/test_journaltoolbox.py a/tests/test_journaltoolbox.py
new file mode 100644
index 0000000..3631638
--- /dev/null
+++ a/tests/test_journaltoolbox.py
@@ -0,0 +1,31 @@
+# Copyright (C) 2012, Daniel Narvaez
+# Copyright (C) 2013, Walter Bender
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+from sugar3.test import unittest
+from sugar3.test import uitree
+
+ACCOUNT_NAME = 'mock'
+
+
+class TestDetailToolBox(unittest.UITestCase):
+
+    def test_detail_toolbox(self):
+        with self.run_view("journal_detailstoolbox"):
+            root = uitree.get_root()
+
+            for name in ['Clipboard', ACCOUNT_NAME]:
+                node = root.find_child(name=name, role_name='menu item')
+                self.assertIsNotNone(node)
diff --git b/tests/test_microformat.py a/tests/test_microformat.py
new file mode 100644
index 0000000..4ce3ebe
--- /dev/null
+++ a/tests/test_microformat.py
@@ -0,0 +1,52 @@
+# Copyright (C) 2013, One Laptop per Child
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+import unittest
+import os
+
+from sugar3.bundle.bundleversion import NormalizedVersion
+
+from jarabe.model.update.microformat import _UpdateHTMLParser
+from jarabe.model.update.microformat import MetadataLookup
+
+tests_dir = os.getcwd()
+data_dir = os.path.join(tests_dir, "data")
+
+
+class TestMicroformat(unittest.TestCase):
+    def test_html_parser(self):
+        parser = _UpdateHTMLParser("http://www.sugarlabs.org")
+        fd = open(os.path.join(data_dir, "microformat.html"), "r")
+        parser.feed(fd.read())
+        parser.close()
+
+        results = parser.results
+        self.assertIn('org.sugarlabs.AbacusActivity', list(results.keys()))
+        self.assertIn('org.laptop.WebActivity', list(results.keys()))
+
+        # test that we picked the newest version
+        version, url = results['org.sugarlabs.AbacusActivity']
+        self.assertEqual(NormalizedVersion("43"), version)
+        self.assertEqual("http://download.sugarlabs.org/abacus-43.xo", url)
+
+        # test resolve relative url
+        version, url = results['org.laptop.WebActivity']
+        self.assertEqual("http://www.sugarlabs.org/browse-149.xo", url)
+
+    def test_zip_name_lookup(self):
+        fd = open(os.path.join(data_dir, "activity-1.xo"))
+        lookup = MetadataLookup(None)
+        name = lookup._name_from_fd(fd)
+        self.assertEqual("My Activity", name)
diff --git b/tests/test_modemconfiguration.py a/tests/test_modemconfiguration.py
new file mode 100644
index 0000000..b8b61e5
--- /dev/null
+++ a/tests/test_modemconfiguration.py
@@ -0,0 +1,188 @@
+# -*- encoding: utf-8 -*-
+# Copyright (C) 2013, Miguel González
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+import unittest
+from xml.etree.cElementTree import ElementTree
+
+from mock import patch
+
+from cpsection.modemconfiguration.model import CountryCodeParser, \
+    ServiceProvidersParser, ServiceProviders, PROVIDERS_PATH
+from cpsection.modemconfiguration.model import CONF_SP_COUNTRY, \
+    CONF_SP_PROVIDER, CONF_SP_PLAN
+
+
+class CountryCodeParserTest(unittest.TestCase):
+    def test_get_country(self):
+        self.assertEqual(CountryCodeParser().get('ad'), 'Andorra')
+        self.assertEqual(CountryCodeParser().get('es'), 'Spain')
+        self.assertEqual(CountryCodeParser().get('zw'), 'Zimbabwe')
+
+    def test_raise_if_not_found(self):
+        with self.assertRaises(KeyError):
+            CountryCodeParser().get('xx')
+
+
+class ServiceProvidersParserTest(unittest.TestCase):
+    def setUp(self):
+        self.tree = ElementTree(file=PROVIDERS_PATH)
+        self.countries_from_xml = self.tree.findall('country')
+        self.db = ServiceProvidersParser()
+        self.countries_from_class = self.db.get_countries()
+
+    def test_get_countries(self):
+        for country in self.countries_from_class:
+            self.assertEqual(country.tag, 'country')
+
+    def test_get_country_idx_by_code(self):
+        for idx, country in enumerate(self.countries_from_class):
+            country_code = country.attrib['code']
+            country_idx = self.db.get_country_idx_by_code(country_code)
+            self.assertEqual(idx, country_idx)
+
+    def test_get_country_name_by_idx(self):
+        for idx, country in enumerate(self.countries_from_class):
+            country_code = country.attrib['code']
+            self.assertEqual(
+                CountryCodeParser().get(country_code),
+                self.db.get_country_name_by_idx(idx)
+            )
+
+    def test_get_providers(self):
+        for country_idx, country in enumerate(self.countries_from_class):
+            providers = self.db.get_providers(country_idx)
+            for provider in providers:
+                self.assertEqual(provider.tag, 'provider')
+                self.assertIsNotNone(provider.find('.//gsm'))
+
+    def test_get_plans(self):
+        for country_idx, country in enumerate(self.countries_from_class):
+            providers = self.db.get_providers(country_idx)
+            for provider_idx, provider in enumerate(providers):
+                plans = self.db.get_plans(country_idx, provider_idx)
+                for plan in plans:
+                    self.assertEqual(plan.tag, 'apn')
+
+    def get_providers(self, country_xml):
+        """Given a country element find all provider with a gsm tag."""
+        idx = 0
+        for provider in country_xml.findall('provider'):
+            if provider.find('.//gsm'):
+                yield idx, provider
+                idx = idx + 1
+
+    def get_plans(self, provider_xml):
+        """Given a provider element find all apn elements."""
+        for idx, plan in enumerate(provider_xml.findall('.//apn')):
+            yield idx, plan
+
+    def test_get_some_specific_values(self):
+        for country in self.countries_from_xml:
+            country_code = country.attrib['code']
+            country_idx = self.db.get_country_idx_by_code(country_code)
+
+            for provider_idx, provider in self.get_providers(country):
+                plans_from_class = self.db.get_plans(country_idx,
+                                                     provider_idx)
+
+                for plan_idx, plan in self.get_plans(provider):
+                    plan_from_class = plans_from_class[plan_idx]
+                    self.assertEqual(plan.attrib['value'],
+                                     plan_from_class.attrib['value'])
+
+
+class ServiceProvidersTest(unittest.TestCase):
+    def setUp(self):
+        self.db = ServiceProviders()
+        self.countries = self.db.get_countries()
+
+    def test_go_trough_all_combo_options(self):
+        # Traverse countries
+        for country in self.countries:
+            # Check if country is stored
+            self.db.set_country(country.idx)
+            new_country = self.db.get_country()
+            self.assertEqual(country.code, new_country.code)
+
+            # Traverse providers for country
+            providers = self.db.get_providers()
+            for provider in providers:
+                # Check if provider is stored
+                self.db.set_provider(provider.idx)
+                new_provider = self.db.get_provider()
+                self.assertEqual(provider.name, new_provider.name)
+
+                # Traverse plans for provider
+                plans = self.db.get_plans()
+                for plan in plans:
+                    # Check if plan is stored
+                    self.db.set_plan(plan.idx)
+                    new_plan = self.db.get_plan()
+                    self.assertEqual(plan.name, new_plan.name)
+
+                    # Check if selection is permanently stored
+                    db2 = ServiceProviders()
+                    country2 = db2.get_country()
+                    provider2 = db2.get_provider()
+                    plan2 = db2.get_plan()
+                    self.assertEqual(country2.idx, country.idx)
+                    self.assertEqual(provider2.idx, provider.idx)
+                    self.assertEqual(plan2.idx, plan.idx)
+
+
+class FakeConfClient(object):
+
+    def __init__(self, **kwargs):
+        self.store = {
+            CONF_SP_COUNTRY: None,
+            CONF_SP_PROVIDER: None,
+            CONF_SP_PLAN: None,
+        }
+        self.store.update(kwargs)
+
+    def get_string(self, key):
+        return self.store[key]
+
+    def set_string(self, key, value):
+        self.store[key] = value
+        return
+
+    def get_int(self, key):
+        return self.store[key]
+
+    def set_int(self, key, value):
+        self.store[key] = value
+        return
+
+
+class ServiceProvidersGuessCountryTest(unittest.TestCase):
+    def setUp(self):
+        # patch Gio.Settings to use a fake client
+        conf_patcher = patch('gi.repository.Gio.Settings')
+        conf_mock = conf_patcher.start()
+        conf_mock.return_value = FakeConfClient(CONF_SP_COUNTRY=None)
+        self.addCleanup(conf_patcher.stop)
+
+    def test_guess_country(self):
+        LOCALE = ('hi_IN', 'UTF-8')
+        default_country_code = LOCALE[0][3:5].lower()
+
+        with patch('locale.getdefaultlocale') as locale_mock:
+            locale_mock.return_value = LOCALE
+
+            db = ServiceProviders()
+            country = db.get_country()
+            self.assertEqual(country.code, default_country_code)
diff --git b/tests/test_user_profile.py a/tests/test_user_profile.py
new file mode 100644
index 0000000..f9950de
--- /dev/null
+++ a/tests/test_user_profile.py
@@ -0,0 +1,62 @@
+# -*- coding: utf-8 -*-
+# Copyright (C) 2014, Ignacio Rodriguez
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+import unittest
+
+from cpsection.aboutme import model
+from jarabe.intro.agepicker import AGES
+from jarabe.intro.genderpicker import GENDERS
+
+TEST_NICKS = ['Ajay Garg', 'Aleksey Lim',
+              'Bernie H. Innocenti', 'Daniel Narvaez',
+              'Emil Dudev', 'Gonzalo Odiard',
+              'Ignacio Rodríguez', 'Jorge Alberto Gómez López',
+              'Sai Vineet', 'Sam Parkinson',
+              'Sascha Silbe', 'Walter Bender']
+
+TEST_COLORS = [['#FF8F00', '#FF2B34'],
+               ['#00A0FF', '#008009'],
+               ['#BCCEFF', '#F8E800'],
+               ['#FF2B34', '#7F00BF'],
+               ['#FF2B34', '#5E008C'],
+               ['#BCCDFF', '#AC32FF'],
+               ['#00EA11', '#9A5200'],
+               ['#A700FF', '#FF8F00'],
+               ['#00EA11', '#7F00BF'],
+               ['#8BFF7A', '#F8E800'],
+               ['#00A0FF', '#5E008C'],
+               ['#7F00BF', '#AC32FF']]
+
+
+class TestUserProfile(unittest.TestCase):
+    def test_user_gender_age(self):
+        for gender in GENDERS:
+            for age in AGES:
+                model.set_gender(gender)
+                model.set_age(age)
+                self.assertEqual(model.get_age(), age)
+                self.assertEqual(model.get_gender(), gender)
+
+    def test_user_nick(self):
+        for nick in TEST_NICKS:
+            model.set_nick(nick)
+            self.assertEqual(model.get_nick(), nick)
+
+    def test_user_color(self):
+        for new_color in TEST_COLORS:
+            new_color = "%s,%s" % (new_color[0], new_color[1])
+            model.set_color_xo(new_color)
+            self.assertEqual(model.get_color(), new_color)
diff --git b/tests/test_webaccount.py a/tests/test_webaccount.py
new file mode 100644
index 0000000..7c4681a
--- /dev/null
+++ a/tests/test_webaccount.py
@@ -0,0 +1,31 @@
+# Copyright (C) 2012, Daniel Narvaez
+# Copyright (C) 2013, Walter Bender
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+from sugar3.test import unittest
+from sugar3.test import uitree
+
+ACCOUNT_NAME = 'mock'
+
+
+class TestWebAccount(unittest.UITestCase):
+
+    def test_webaccount(self):
+        with self.run_view("webaccount"):
+            root = uitree.get_root()
+
+            for name in [ACCOUNT_NAME]:
+                node = root.find_child(name=name, role_name='label')
+                self.assertIsNotNone(node)
diff --git b/tests/test_webservice.py a/tests/test_webservice.py
new file mode 100644
index 0000000..56de599
--- /dev/null
+++ a/tests/test_webservice.py
@@ -0,0 +1,114 @@
+# Copyright (C) 2013, Walter Bender
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+import os
+import sys
+import unittest
+
+from gi.repository import Gtk
+
+from jarabe import config
+from jarabe.webservice.account import Account
+from jarabe.webservice import accountsmanager
+
+ACCOUNT_NAME = 'mock'
+
+tests_dir = os.getcwd()
+extension_dir = os.path.join(tests_dir, 'extensions')
+web_extension_dir = os.path.join(extension_dir, 'webservice')
+
+
+class TestWebAccounts(unittest.TestCase):
+    def setUp(self):
+        os.environ["MOCK_ACCOUNT_STATE"] = str(Account.STATE_NONE)
+        self.save_ext_path = config.ext_path
+        config.ext_path = extension_dir
+        sys.path.append(config.ext_path)
+
+    def test_get_description(self):
+        accounts = accountsmanager.get_all_accounts()
+        found_mock_account = False
+        for account in accounts:
+            if account.get_description() == ACCOUNT_NAME:
+                found_mock_account = True
+                break
+        self.assertTrue(found_mock_account)
+
+    def test_icon_theme(self):
+        icon_theme = Gtk.IconTheme.get_default()
+        icon_search_path = icon_theme.get_search_path()
+        icon_path = os.path.join(web_extension_dir, ACCOUNT_NAME, 'icons')
+        self.assertTrue(icon_path in icon_search_path)
+
+    def test_get_webaccount_services(self):
+        services = accountsmanager.get_webaccount_services()
+        self.assertTrue(len(services) > 0)
+
+    def test_get_all_accounts(self):
+        accounts = accountsmanager.get_all_accounts()
+        self.assertTrue(len(accounts) > 0)
+
+    def test_get_account(self):
+        account = accountsmanager.get_account('mock')
+        self.assertIsNotNone(account)
+
+    def test_get_service(self):
+        account = accountsmanager.get_service('mock')
+        self.assertIsNotNone(account)
+
+    def test_get_configured_accounts(self):
+        os.environ["MOCK_ACCOUNT_STATE"] = str(Account.STATE_VALID)
+        accounts = accountsmanager.get_configured_accounts()
+        count = len(accounts)
+        self.assertTrue(count > 0)
+
+        self.assertTrue(accountsmanager.has_configured_accounts())
+
+        os.environ["MOCK_ACCOUNT_STATE"] = str(Account.STATE_NONE)
+        accounts = accountsmanager.get_configured_accounts()
+        self.assertTrue(len(accounts) == count - 1)
+
+        os.environ["MOCK_ACCOUNT_STATE"] = str(Account.STATE_EXPIRED)
+        accounts = accountsmanager.get_configured_accounts()
+        self.assertTrue(len(accounts) == count)
+
+    def test_get_active_accounts(self):
+        os.environ["MOCK_ACCOUNT_STATE"] = str(Account.STATE_VALID)
+        accounts = accountsmanager.get_active_accounts()
+        count = len(accounts)
+        self.assertTrue(count > 0)
+
+        os.environ["MOCK_ACCOUNT_STATE"] = str(Account.STATE_EXPIRED)
+        accounts = accountsmanager.get_active_accounts()
+        self.assertTrue(len(accounts) == count - 1)
+
+    def test_share_menu(self):
+        accounts = accountsmanager.get_all_accounts()
+        for account in accounts:
+            shared_journal_entry = account.get_shared_journal_entry()
+            share_menu = shared_journal_entry.get_share_menu(
+                {'account': 'mock'})
+            self.assertIsNotNone(share_menu)
+
+    def test_refresh_menu(self):
+        accounts = accountsmanager.get_all_accounts()
+        for account in accounts:
+            shared_journal_entry = account.get_shared_journal_entry()
+            refresh_menu = shared_journal_entry.get_refresh_menu()
+            self.assertIsNotNone(refresh_menu)
+
+    def tearDown(self):
+        sys.path.remove(config.ext_path)
+        config.ext_path = self.save_ext_path
diff --git b/tests/views/activitieslist.py a/tests/views/activitieslist.py
new file mode 100644
index 0000000..e954b47
--- /dev/null
+++ a/tests/views/activitieslist.py
@@ -0,0 +1,59 @@
+# Copyright (C) 2013, Daniel Narvaez
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+import os
+
+from gi.repository import Gtk
+from dbus.mainloop.glib import DBusGMainLoop
+DBusGMainLoop(set_as_default=True)
+
+from jarabe.desktop.activitieslist import ActivityListPalette
+
+
+tests_dir = os.getcwd()
+base_dir = os.path.dirname(tests_dir)
+data_dir = os.path.join(tests_dir, "data")
+
+
+class MockActivityInfo:
+    def get_bundle_id(self):
+        return "mock"
+
+    def get_activity_version(self):
+        return 1
+
+    def get_is_favorite(self):
+        return False
+
+    def get_icon(self):
+        return os.path.join(data_dir, "activity.svg")
+
+    def get_name(self):
+        return "mock"
+
+    def get_path(self):
+        return "mock"
+
+    def is_user_activity(self):
+        return True
+
+
+os.environ["SUGAR_MIME_DEFAULTS"] = \
+    os.path.join(base_dir, "data", "mime.defaults")
+
+palette = ActivityListPalette(MockActivityInfo())
+palette.popup()
+
+Gtk.main()
diff --git b/tests/views/gtk_main.py a/tests/views/gtk_main.py
new file mode 100644
index 0000000..2dc088d
--- /dev/null
+++ a/tests/views/gtk_main.py
@@ -0,0 +1,18 @@
+# Copyright (C) 2013, Walter Bender
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+from gi.repository import Gtk
+
+Gtk.main()
diff --git b/tests/views/journal_detailstoolbox.py a/tests/views/journal_detailstoolbox.py
new file mode 100644
index 0000000..77e4fee
--- /dev/null
+++ a/tests/views/journal_detailstoolbox.py
@@ -0,0 +1,54 @@
+# Copyright (C) 2013, Walter Bender
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+import os
+import sys
+
+from gi.repository import Gtk
+from dbus.mainloop.glib import DBusGMainLoop
+DBusGMainLoop(set_as_default=True)
+
+from jarabe import config
+from jarabe.journal.journaltoolbox import DetailToolbox
+from jarabe.journal.journalwindow import JournalWindow
+from jarabe.webservice.account import Account
+
+ACCOUNT_NAME = 'mock'
+
+
+class JournalMock(JournalWindow):
+    def get_mount_point(self):
+        return '/'
+
+
+tests_dir = os.getcwd()
+extension_dir = os.path.join(tests_dir, 'extensions')
+
+os.environ["MOCK_ACCOUNT_STATE"] = str(Account.STATE_VALID)
+config.ext_path = extension_dir
+sys.path.append(config.ext_path)
+
+window = Gtk.Window()
+
+toolbox = DetailToolbox(JournalMock())
+toolbox.show()
+
+window.add(toolbox)
+window.show()
+
+toolbox.set_metadata({'mountpoint': '/', 'uid': '', 'title': 'mock'})
+toolbox._copy.palette.popup(immediate=True)
+
+Gtk.main()
diff --git b/tests/views/webaccount.py a/tests/views/webaccount.py
new file mode 100644
index 0000000..f40ebb6
--- /dev/null
+++ a/tests/views/webaccount.py
@@ -0,0 +1,46 @@
+# Copyright (C) 2013, Walter Bender
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+import os
+import sys
+
+from gi.repository import Gtk
+
+from jarabe import config
+from jarabe.webservice.account import Account
+from jarabe.webservice import accountsmanager
+
+ACCOUNT_NAME = 'mock'
+
+tests_dir = os.getcwd()
+extension_dir = os.path.join(tests_dir, 'extensions')
+
+os.environ["MOCK_ACCOUNT_STATE"] = str(Account.STATE_VALID)
+config.ext_path = extension_dir
+sys.path.append(config.ext_path)
+
+window = Gtk.Window()
+box = Gtk.HBox()
+box.show()
+window.add(box)
+
+services = accountsmanager.get_webaccount_services()
+for service in services:
+    if service.get_icon_name() == ACCOUNT_NAME:
+        service.config_service_cb(None, None, box)
+
+window.show()
+
+Gtk.main()
