10097 lines
277 KiB
Diff
10097 lines
277 KiB
Diff
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§ion=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()
|