Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--AUTHORS14
-rw-r--r--Makefile.am13
-rw-r--r--README25
-rw-r--r--addons/Makefile.am (renamed from src/sugar/tutorius/addons/Makefile.am)0
-rw-r--r--addons/__init__.py (copied from src/sugar/tutorius/__init__.py)0
-rw-r--r--addons/bubblemessage.py (renamed from src/sugar/tutorius/addons/bubblemessage.py)0
-rw-r--r--addons/dialogmessage.py (renamed from src/sugar/tutorius/addons/dialogmessage.py)0
-rw-r--r--addons/gtkwidgeteventfilter.py (renamed from src/sugar/tutorius/addons/gtkwidgeteventfilter.py)0
-rwxr-xr-xautogen.sh6
-rw-r--r--configure.ac49
-rw-r--r--data/icons/message-bubble.svg70
-rw-r--r--data/icons/tutortool.svg72
-rw-r--r--m4/gnome-compiler-flags.m4141
-rw-r--r--m4/python.m462
-rw-r--r--po/POTFILES.in6
-rw-r--r--po/POTFILES.skip6
-rw-r--r--po/af.po153
-rw-r--r--po/am.po153
-rw-r--r--po/ar.po564
-rw-r--r--po/ay.po153
-rw-r--r--po/bg.po153
-rw-r--r--po/bi.po153
-rw-r--r--po/bn.po153
-rw-r--r--po/bn_IN.po153
-rw-r--r--po/ca.po153
-rw-r--r--po/cs.po160
-rw-r--r--po/de.po152
-rw-r--r--po/dz.po153
-rw-r--r--po/el.po153
-rw-r--r--po/en.po153
-rw-r--r--po/es.po630
-rw-r--r--po/fa.po153
-rw-r--r--po/fa_AF.po153
-rw-r--r--po/ff.po153
-rw-r--r--po/fr.po189
-rw-r--r--po/gu.po153
-rw-r--r--po/ha.po153
-rw-r--r--po/he.po153
-rw-r--r--po/hi.po153
-rw-r--r--po/ht.po153
-rw-r--r--po/hu.po153
-rw-r--r--po/ig.po153
-rw-r--r--po/is.po153
-rw-r--r--po/it.po194
-rw-r--r--po/ja.po149
-rw-r--r--po/km.po153
-rw-r--r--po/ko.po153
-rw-r--r--po/mk.po153
-rw-r--r--po/ml.po153
-rw-r--r--po/mn.po190
-rw-r--r--po/mr.po152
-rw-r--r--po/mvo.po153
-rw-r--r--po/nb.po152
-rw-r--r--po/ne.po154
-rw-r--r--po/nl.po189
-rw-r--r--po/pa.po153
-rw-r--r--po/pap.po153
-rw-r--r--po/pis.po153
-rw-r--r--po/pl.po153
-rw-r--r--po/ps.po153
-rw-r--r--po/pseudo.po153
-rw-r--r--po/pt.po153
-rw-r--r--po/pt_BR.po153
-rw-r--r--po/qu.po153
-rw-r--r--po/ro.po153
-rw-r--r--po/ru.po161
-rw-r--r--po/rw.po154
-rw-r--r--po/sd.po153
-rw-r--r--po/si.po152
-rw-r--r--po/sk.po160
-rw-r--r--po/sl.po202
-rw-r--r--po/sugar-toolkit.pot154
-rw-r--r--po/sv.po152
-rw-r--r--po/sw.po152
-rw-r--r--po/te.po154
-rw-r--r--po/th.po153
-rw-r--r--po/tpi.po153
-rw-r--r--po/tr.po153
-rw-r--r--po/ur.po152
-rw-r--r--po/vi.po153
-rw-r--r--po/wa.po153
-rw-r--r--po/yo.po153
-rw-r--r--po/zh_CN.po153
-rw-r--r--po/zh_TW.po146
-rw-r--r--setup.cfg8
-rwxr-xr-xsetup.py65
-rw-r--r--src/Makefile.am1
-rw-r--r--src/sugar/Makefile.am87
-rw-r--r--src/sugar/_sugarext.defs416
-rw-r--r--src/sugar/_sugarext.override81
-rw-r--r--src/sugar/_sugarextmodule.c50
-rw-r--r--src/sugar/acme-volume-alsa.c317
-rw-r--r--src/sugar/acme-volume-alsa.h47
-rw-r--r--src/sugar/acme-volume.c127
-rw-r--r--src/sugar/acme-volume.h63
-rw-r--r--src/sugar/activity/Makefile.am10
-rw-r--r--src/sugar/activity/__init__.py55
-rw-r--r--src/sugar/activity/activityfactory.py343
-rw-r--r--src/sugar/activity/activityhandle.py70
-rw-r--r--src/sugar/activity/activityservice.py82
-rw-r--r--src/sugar/activity/bundlebuilder.py398
-rw-r--r--src/sugar/activity/main.py140
-rw-r--r--src/sugar/activity/namingalert.py320
-rw-r--r--src/sugar/bundle/Makefile.am6
-rw-r--r--src/sugar/bundle/__init__.py16
-rw-r--r--src/sugar/bundle/activitybundle.py375
-rw-r--r--src/sugar/bundle/bundle.py199
-rw-r--r--src/sugar/bundle/contentbundle.py220
-rw-r--r--src/sugar/datastore/Makefile.am5
-rw-r--r--src/sugar/datastore/__init__.py16
-rw-r--r--src/sugar/datastore/datastore.py254
-rw-r--r--src/sugar/datastore/dbus_helpers.py104
-rw-r--r--src/sugar/eggaccelerators.c702
-rw-r--r--src/sugar/eggaccelerators.h89
-rw-r--r--src/sugar/eggdesktopfile.c1437
-rw-r--r--src/sugar/eggdesktopfile.h156
-rw-r--r--src/sugar/eggsmclient-private.h56
-rw-r--r--src/sugar/eggsmclient-xsmp.c1359
-rw-r--r--src/sugar/eggsmclient.c392
-rw-r--r--src/sugar/eggsmclient.h112
-rw-r--r--src/sugar/env.py60
-rw-r--r--src/sugar/graphics/Makefile.am27
-rw-r--r--src/sugar/graphics/__init__.py18
-rw-r--r--src/sugar/graphics/alert.py436
-rw-r--r--src/sugar/graphics/animator.py148
-rw-r--r--src/sugar/graphics/canvastextview.py39
-rw-r--r--src/sugar/graphics/colorbutton.py526
-rw-r--r--src/sugar/graphics/combobox.py168
-rw-r--r--src/sugar/graphics/entry.py39
-rw-r--r--src/sugar/graphics/icon.py872
-rw-r--r--src/sugar/graphics/iconentry.py106
-rw-r--r--src/sugar/graphics/menuitem.py94
-rw-r--r--src/sugar/graphics/notebook.py150
-rw-r--r--src/sugar/graphics/objectchooser.py130
-rw-r--r--src/sugar/graphics/palette.py1124
-rw-r--r--src/sugar/graphics/palettegroup.py95
-rw-r--r--src/sugar/graphics/panel.py27
-rw-r--r--src/sugar/graphics/radiotoolbutton.py180
-rw-r--r--src/sugar/graphics/roundbox.py70
-rw-r--r--src/sugar/graphics/style.py133
-rw-r--r--src/sugar/graphics/toggletoolbutton.py89
-rw-r--r--src/sugar/graphics/toolbox.py102
-rw-r--r--src/sugar/graphics/toolbutton.py158
-rw-r--r--src/sugar/graphics/toolcombobox.py63
-rw-r--r--src/sugar/graphics/tray.py461
-rw-r--r--src/sugar/graphics/xocolor.py259
-rw-r--r--src/sugar/gsm-app.c396
-rw-r--r--src/sugar/gsm-app.h70
-rw-r--r--src/sugar/gsm-client-xsmp.c828
-rw-r--r--src/sugar/gsm-client-xsmp.h70
-rw-r--r--src/sugar/gsm-client.c251
-rw-r--r--src/sugar/gsm-client.h111
-rw-r--r--src/sugar/gsm-session.c497
-rw-r--r--src/sugar/gsm-session.h95
-rw-r--r--src/sugar/gsm-xsmp.c535
-rw-r--r--src/sugar/gsm-xsmp.h29
-rw-r--r--src/sugar/network.py297
-rw-r--r--src/sugar/presence/Makefile.am9
-rw-r--r--src/sugar/presence/__init__.py24
-rw-r--r--src/sugar/presence/activity.py410
-rw-r--r--src/sugar/presence/buddy.py239
-rw-r--r--src/sugar/presence/presenceservice.py609
-rw-r--r--src/sugar/presence/sugartubeconn.py63
-rw-r--r--src/sugar/presence/test_presence.txt26
-rw-r--r--src/sugar/presence/tubeconn.py114
-rw-r--r--src/sugar/profile.py216
-rw-r--r--src/sugar/session.py50
-rw-r--r--src/sugar/sexy-icon-entry.c984
-rw-r--r--src/sugar/sexy-icon-entry.h104
-rw-r--r--src/sugar/sugar-address-entry.c576
-rw-r--r--src/sugar/sugar-address-entry.h54
-rw-r--r--src/sugar/sugar-grid.c120
-rw-r--r--src/sugar/sugar-grid.h63
-rw-r--r--src/sugar/sugar-key-grabber.c265
-rw-r--r--src/sugar/sugar-key-grabber.h69
-rw-r--r--src/sugar/sugar-marshal.list1
-rw-r--r--src/sugar/sugar-menu.c63
-rw-r--r--src/sugar/sugar-menu.h57
-rw-r--r--src/sugar/tutorius/temp.py1
-rw-r--r--src/sugar/util.py293
-rw-r--r--src/sugar/wm.py46
-rw-r--r--tests/actiontests.py (renamed from src/sugar/tutorius/tests/actiontests.py)0
-rw-r--r--tests/bundlertests.py (renamed from src/sugar/tutorius/tests/bundlertests.py)0
-rw-r--r--tests/constraintstests.py (renamed from src/sugar/tutorius/tests/constraintstests.py)0
-rw-r--r--tests/coretests.py (renamed from src/sugar/tutorius/tests/coretests.py)0
-rw-r--r--tests/filterstests.py (renamed from src/sugar/tutorius/tests/filterstests.py)0
-rw-r--r--tests/graphics/common.py55
-rw-r--r--tests/graphics/hipposcalability.py50
-rw-r--r--tests/graphics/iconcache.py69
-rw-r--r--tests/graphics/iconwidget.py87
-rw-r--r--tests/graphics/ticket2855.py59
-rw-r--r--tests/graphics/ticket2999.py38
-rw-r--r--tests/graphics/ticket3000.py48
-rw-r--r--tests/graphics/toolbarpalettes.py65
-rw-r--r--tests/graphics/tray.py82
-rw-r--r--tests/gtkutilstests.py (renamed from src/sugar/tutorius/tests/gtkutilstests.py)0
-rw-r--r--tests/lib/runall.py28
-rw-r--r--tests/lib/test_mime.py81
-rw-r--r--tests/linear_creatortests.py (renamed from src/sugar/tutorius/tests/linear_creatortests.py)0
-rw-r--r--tests/overlaytests.py (renamed from src/sugar/tutorius/tests/overlaytests.py)0
-rw-r--r--tests/propertiestests.py (renamed from src/sugar/tutorius/tests/propertiestests.py)0
-rwxr-xr-xtests/run-tests.py (renamed from src/sugar/tutorius/tests/run-tests.py)0
-rw-r--r--tests/serializertests.py (renamed from src/sugar/tutorius/tests/serializertests.py)0
-rw-r--r--tests/servicestests.py (renamed from src/sugar/tutorius/tests/servicestests.py)0
-rw-r--r--tests/uamtests.py (renamed from src/sugar/tutorius/tests/uamtests.py)0
-rw-r--r--toolkitfix/__init__.py (renamed from src/sugar/tutorius/addons/__init__.py)0
-rw-r--r--toolkitfix/activity/__init__.py (renamed from po/ChangeLog)0
-rw-r--r--toolkitfix/activity/activity.py (renamed from src/sugar/activity/activity.py)44
-rw-r--r--toolkitfix/graphics/__init__.py (renamed from src/sugar/activity/__init__py)0
-rw-r--r--toolkitfix/graphics/window.py (renamed from src/sugar/graphics/window.py)2
-rw-r--r--tutorius/Makefile.am (renamed from src/sugar/tutorius/Makefile.am)0
-rw-r--r--tutorius/__init__.py (renamed from src/sugar/tutorius/__init__.py)0
-rw-r--r--tutorius/actions.py (renamed from src/sugar/tutorius/actions.py)0
-rw-r--r--tutorius/addon.py (renamed from src/sugar/tutorius/addon.py)0
-rw-r--r--tutorius/bundler.py (renamed from src/sugar/tutorius/bundler.py)0
-rw-r--r--tutorius/constraints.py (renamed from src/sugar/tutorius/constraints.py)0
-rw-r--r--tutorius/core.py (renamed from src/sugar/tutorius/core.py)0
-rw-r--r--tutorius/creator.py (renamed from src/sugar/tutorius/creator.py)2
-rw-r--r--tutorius/dialog.py (renamed from src/sugar/tutorius/dialog.py)0
-rw-r--r--tutorius/editor.py (renamed from src/sugar/tutorius/editor.py)0
-rw-r--r--tutorius/filters.py (renamed from src/sugar/tutorius/filters.py)0
-rw-r--r--tutorius/gtkutils.py (renamed from src/sugar/tutorius/gtkutils.py)0
-rw-r--r--tutorius/linear_creator.py (renamed from src/sugar/tutorius/linear_creator.py)0
-rw-r--r--tutorius/overlayer.py (renamed from src/sugar/tutorius/overlayer.py)0
-rw-r--r--tutorius/properties.py (renamed from src/sugar/tutorius/properties.py)0
-rw-r--r--tutorius/services.py (renamed from src/sugar/tutorius/services.py)0
-rw-r--r--tutorius/testwin.py (renamed from src/sugar/tutorius/testwin.py)0
-rw-r--r--tutorius/textbubble.py (renamed from src/sugar/tutorius/textbubble.py)0
-rw-r--r--tutorius/uam/Makefile.am (renamed from src/sugar/tutorius/uam/Makefile.am)0
-rw-r--r--tutorius/uam/__init__.py (renamed from src/sugar/tutorius/uam/__init__.py)0
-rw-r--r--tutorius/uam/gobjectparser.py (renamed from src/sugar/tutorius/uam/gobjectparser.py)0
-rw-r--r--tutorius/uam/gtkparser.py (renamed from src/sugar/tutorius/uam/gtkparser.py)0
232 files changed, 263 insertions, 33797 deletions
diff --git a/AUTHORS b/AUTHORS
deleted file mode 100644
index 8cd5dac..0000000
--- a/AUTHORS
+++ /dev/null
@@ -1,14 +0,0 @@
-Marco Pesenti Gritti <mpg@redhat.com>
-Dan Williams <dcbw@redhat.com>
-Tomeu Vizoso <tomeu@tomeuvizoso.net>
-Dan Winship <dwinship@redhat.com>
-Benjamin Berg <benjamin@sipsolutions.net>
-Eduardo Silva <edsiper@gmail.com>
-Simon Schampijer <simon@schampijer.de>
-Bert Freudenberg <bert@freudenbergs.de>
-Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
-Dafydd Harries <daf@rhydd.org>
-John (J5) Palmieri <johnp@redhat.com>
-Morgan Collett <morgan.collett@gmail.com>
-Simon McVittie <simon.mcvittie@collabora.co.uk>
-Owen Williams <owen@ywwg.com>
diff --git a/Makefile.am b/Makefile.am
deleted file mode 100644
index b62b8cc..0000000
--- a/Makefile.am
+++ /dev/null
@@ -1,13 +0,0 @@
-ACLOCAL_AMFLAGS = -I m4
-
-DISTCLEANFILES = \
- intltool-extract \
- intltool-merge \
- intltool-update
-
-EXTRA_DIST = \
- intltool-merge.in \
- intltool-update.in \
- intltool-extract.in
-
-SUBDIRS = src po
diff --git a/README b/README
index 0c5cbce..64b2376 100644
--- a/README
+++ b/README
@@ -1,3 +1,22 @@
-Sugar is the core of the OLPC Human Interface. The toolkit provides
-a set of widgets to build HIG compliant applications and interfaces
-to interact with system services like presence and the datastore.
+Tutorius is currently built around the sugar-toolkit.
+
+Requirements:
+
+ To run you need a recent build of sugar. We recommand builds from
+ sugar-jhbuild, but a distro packaged build may be fine too.
+ Note however that some sugar files will need to be overwritten,
+ so you may wish to use a separate build.
+
+Installation
+
+ 1. Edit the setup.cfg file to point to your sugar installation prefix.
+ 2. Run: python setup.py build
+ 3. Run: python setup.py install
+ 4. Start sugar and enjoy!
+
+--
+The Tutorius Team
+site: http://tutorius.org/
+bugs: https://bugs.launchpad.net/tutorius
+mailing list: sugar-narratives@googlegroups.com
+
diff --git a/src/sugar/tutorius/addons/Makefile.am b/addons/Makefile.am
index 3d1d18a..3d1d18a 100644
--- a/src/sugar/tutorius/addons/Makefile.am
+++ b/addons/Makefile.am
diff --git a/src/sugar/tutorius/__init__.py b/addons/__init__.py
index e69de29..e69de29 100644
--- a/src/sugar/tutorius/__init__.py
+++ b/addons/__init__.py
diff --git a/src/sugar/tutorius/addons/bubblemessage.py b/addons/bubblemessage.py
index a859ef8..a859ef8 100644
--- a/src/sugar/tutorius/addons/bubblemessage.py
+++ b/addons/bubblemessage.py
diff --git a/src/sugar/tutorius/addons/dialogmessage.py b/addons/dialogmessage.py
index 22a223b..22a223b 100644
--- a/src/sugar/tutorius/addons/dialogmessage.py
+++ b/addons/dialogmessage.py
diff --git a/src/sugar/tutorius/addons/gtkwidgeteventfilter.py b/addons/gtkwidgeteventfilter.py
index cbfb00c..cbfb00c 100644
--- a/src/sugar/tutorius/addons/gtkwidgeteventfilter.py
+++ b/addons/gtkwidgeteventfilter.py
diff --git a/autogen.sh b/autogen.sh
deleted file mode 100755
index 3d12f8f..0000000
--- a/autogen.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-export ACLOCAL="aclocal -I m4"
-
-intltoolize
-autoreconf -i
-./configure "$@"
diff --git a/configure.ac b/configure.ac
deleted file mode 100644
index d9315a3..0000000
--- a/configure.ac
+++ /dev/null
@@ -1,49 +0,0 @@
-AC_INIT([sugar-toolkit],[0.83.4],[],[sugar-toolkit])
-
-AC_PREREQ([2.59])
-
-AC_CONFIG_MACRO_DIR([m4])
-AC_CONFIG_SRCDIR([configure.ac])
-
-AM_INIT_AUTOMAKE([1.9 foreign dist-bzip2 no-dist-gzip])
-
-AC_DISABLE_STATIC
-AC_PROG_LIBTOOL
-
-GNOME_COMPILE_WARNINGS(maximum)
-
-AC_PATH_PROG([GLIB_GENMARSHAL], [glib-genmarshal])
-
-AM_PATH_PYTHON
-AM_CHECK_PYTHON_HEADERS(,[AC_MSG_ERROR(could not find Python headers)])
-
-AC_PATH_PROG(PYGTK_CODEGEN, pygtk-codegen-2.0, no)
-
-PKG_CHECK_MODULES(EXT, pygtk-2.0 gtk+-2.0 sm ice alsa)
-
-PYGTK_DEFSDIR=`$PKG_CONFIG --variable=defsdir pygtk-2.0`
-AC_SUBST(PYGTK_DEFSDIR)
-
-# Setup GETTEXT
-#
-ALL_LINGUAS="af am ar ay bg bn bn_IN ca de dz el en es fa fa_AF ff fr gu ha hi ht ig is it ja km ko mk ml mn mr mvo nb ne nl pa pap pis pl ps pt pt_BR qu ro ru rw sd si sl te th tpi tr ur vi yo zh_CN zh_TW"
-GETTEXT_PACKAGE=sugar-toolkit
-AC_PROG_INTLTOOL([0.33])
-AC_SUBST(GETTEXT_PACKAGE)
-AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE", [Gettext package])
-AM_GLIB_GNU_GETTEXT
-
-AC_OUTPUT([
-Makefile
-src/Makefile
-src/sugar/Makefile
-src/sugar/activity/Makefile
-src/sugar/bundle/Makefile
-src/sugar/graphics/Makefile
-src/sugar/presence/Makefile
-src/sugar/tutorius/Makefile
-src/sugar/tutorius/uam/Makefile
-src/sugar/tutorius/addons/Makefile
-src/sugar/datastore/Makefile
-po/Makefile.in
-])
diff --git a/data/icons/message-bubble.svg b/data/icons/message-bubble.svg
new file mode 100644
index 0000000..c81e5bd
--- /dev/null
+++ b/data/icons/message-bubble.svg
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="64px"
+ height="64px"
+ id="svg2383"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ sodipodi:docname="message-bubble.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <defs
+ id="defs2385">
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 32 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="64 : 32 : 1"
+ inkscape:persp3d-origin="32 : 21.333333 : 1"
+ id="perspective2391" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="5.5"
+ inkscape:cx="36.007299"
+ inkscape:cy="32"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ inkscape:document-units="px"
+ inkscape:grid-bbox="true"
+ inkscape:window-width="897"
+ inkscape:window-height="707"
+ inkscape:window-x="507"
+ inkscape:window-y="117" />
+ <metadata
+ id="metadata2388">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ id="layer1"
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer">
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 21.809659,11.622159 C 15.363113,11.622159 10.184659,16.831862 10.184659,23.278409 L 10.184659,31.997159 C 10.184659,38.443705 15.363112,43.622158 21.809659,43.622159 L 26.215909,43.622159 C 22.132918,47.565767 16.903409,52.372159 16.903409,52.372159 L 32.153409,43.622159 L 40.559659,43.622159 C 47.006205,43.622159 52.18466,38.443704 52.184659,31.997159 L 52.184659,23.278409 C 52.184659,16.831863 47.006206,11.622159 40.559659,11.622159 L 21.809659,11.622159 z"
+ id="rect2393" />
+ <path
+ style="font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:100%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Arial;-inkscape-font-specification:Arial"
+ d="M 18.334695,35.209134 C 20.335566,29.99905 22.336438,24.788967 24.337309,19.578881 C 25.080083,19.578881 25.822858,19.578881 26.565632,19.578881 C 28.697999,24.788967 30.830367,29.99905 32.962734,35.209134 C 32.177313,35.209134 31.391891,35.209134 30.606468,35.209134 C 29.998744,33.631183 29.39102,32.05323 28.783294,30.475279 C 26.604727,30.475279 24.426157,30.475279 22.247588,30.475279 C 21.675403,32.05323 21.103218,33.631183 20.531033,35.209134 C 19.79892,35.209134 19.066808,35.209134 18.334695,35.209134 z M 22.844653,28.790708 C 24.610963,28.790708 26.377274,28.790708 28.143585,28.790708 C 27.219735,26.27132 26.184464,23.789975 25.403493,21.220804 C 24.864464,23.838474 23.731381,26.28082 22.844653,28.790708 z M 41.780074,33.812434 C 39.898302,35.586767 36.502561,36.237616 34.508367,34.321703 C 32.817426,32.512901 34.101276,29.343387 36.491803,28.971958 C 38.110672,28.434938 40.551516,28.852191 41.628136,27.700541 C 41.994258,25.510211 39.389059,24.83162 37.723242,25.338945 C 36.074545,25.287768 36.544241,27.96543 34.963841,27.238474 C 33.265135,27.462167 34.637954,25.426944 35.239701,24.825177 C 37.094305,23.379343 39.831041,23.302574 41.957988,24.153483 C 43.935866,25.062763 43.516039,27.442288 43.5606,29.230197 C 43.658101,31.226333 43.23926,33.363188 44.168326,35.209134 C 43.500183,35.209134 42.832042,35.209134 42.1639,35.209134 C 41.946384,34.774037 41.831491,34.294111 41.780074,33.812434 z M 41.620146,29.526375 C 39.958489,30.300731 37.963327,29.980103 36.377186,30.899089 C 34.647917,32.477691 37.062735,34.634842 38.86689,33.894231 C 40.636665,33.691112 41.834554,31.957797 41.620146,30.230057 C 41.620146,29.995497 41.620146,29.760935 41.620146,29.526375 z"
+ id="flowRoot3171" />
+ </g>
+</svg>
diff --git a/data/icons/tutortool.svg b/data/icons/tutortool.svg
new file mode 100644
index 0000000..3965f85
--- /dev/null
+++ b/data/icons/tutortool.svg
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="32px"
+ height="32px"
+ id="svg2393"
+ sodipodi:version="0.32"
+ inkscape:version="0.46"
+ sodipodi:docname="tutortool.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <defs
+ id="defs2395">
+ <inkscape:perspective
+ sodipodi:type="inkscape:persp3d"
+ inkscape:vp_x="0 : 16 : 1"
+ inkscape:vp_y="0 : 1000 : 0"
+ inkscape:vp_z="32 : 16 : 1"
+ inkscape:persp3d-origin="16 : 10.666667 : 1"
+ id="perspective2401" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="11.197802"
+ inkscape:cx="20.137915"
+ inkscape:cy="16"
+ inkscape:current-layer="layer1"
+ showgrid="true"
+ inkscape:grid-bbox="true"
+ inkscape:document-units="px"
+ inkscape:window-width="1057"
+ inkscape:window-height="675"
+ inkscape:window-x="1480"
+ inkscape:window-y="62" />
+ <metadata
+ id="metadata2398">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <g
+ id="layer1"
+ inkscape:label="Layer 1"
+ inkscape:groupmode="layer">
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 21.343473,15.032385 C 21.343473,18.680244 17.602739,21.640825 12.993621,21.640825 C 11.841341,21.640825 8.8679679,23.241853 5.9044454,23.800334 C 8.8349369,21.411807 7.845937,20.302616 7.0902753,19.704552 C 5.578952,18.508425 4.6437685,16.856314 4.6437685,15.032385 C 4.6437685,11.384526 8.3845024,8.4239446 12.993621,8.4239446 C 17.602739,8.4239446 21.343473,11.384526 21.343473,15.032385 z"
+ id="path2403"
+ sodipodi:nodetypes="cscsssc" />
+ <path
+ style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:round;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ d="M 27.505397,17.532875 C 27.505397,18.863851 26.780255,20.069444 25.608373,20.942294 C 25.022432,21.378719 24.682019,22.178474 26.318696,24.387278 C 23.140734,22.360656 21.924391,22.35525 21.030912,22.35525 C 17.456997,22.35525 14.556428,20.194826 14.556428,17.532875 C 14.556428,14.870924 17.456997,12.7105 21.030912,12.7105 C 24.604828,12.7105 27.505397,14.870924 27.505397,17.532875 z"
+ id="path3175"
+ sodipodi:nodetypes="cccsssc" />
+ </g>
+</svg>
diff --git a/m4/gnome-compiler-flags.m4 b/m4/gnome-compiler-flags.m4
deleted file mode 100644
index b9db2fd..0000000
--- a/m4/gnome-compiler-flags.m4
+++ /dev/null
@@ -1,141 +0,0 @@
-dnl GNOME_COMPILE_WARNINGS
-dnl Turn on many useful compiler warnings
-dnl For now, only works on GCC
-AC_DEFUN([GNOME_COMPILE_WARNINGS],[
- dnl ******************************
- dnl More compiler warnings
- dnl ******************************
-
- AC_ARG_ENABLE(compile-warnings,
- AC_HELP_STRING([--enable-compile-warnings=@<:@no/minimum/yes/maximum/error@:>@],
- [Turn on compiler warnings]),,
- [enable_compile_warnings="m4_default([$1],[yes])"])
-
- warnCFLAGS=
- if test "x$GCC" != xyes; then
- enable_compile_warnings=no
- fi
-
- warning_flags=
- realsave_CFLAGS="$CFLAGS"
-
- case "$enable_compile_warnings" in
- no)
- warning_flags=
- ;;
- minimum)
- warning_flags="-Wall"
- ;;
- yes)
- warning_flags="-Wall -Wmissing-prototypes"
- ;;
- maximum|error)
- warning_flags="-Wall -Wmissing-prototypes -Wnested-externs -Wpointer-arith"
- CFLAGS="$warning_flags $CFLAGS"
- for option in -Wno-sign-compare; do
- SAVE_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS $option"
- AC_MSG_CHECKING([whether gcc understands $option])
- AC_TRY_COMPILE([], [],
- has_option=yes,
- has_option=no,)
- CFLAGS="$SAVE_CFLAGS"
- AC_MSG_RESULT($has_option)
- if test $has_option = yes; then
- warning_flags="$warning_flags $option"
- fi
- unset has_option
- unset SAVE_CFLAGS
- done
- unset option
- if test "$enable_compile_warnings" = "error" ; then
- warning_flags="$warning_flags -Werror"
- fi
- ;;
- *)
- AC_MSG_ERROR(Unknown argument '$enable_compile_warnings' to --enable-compile-warnings)
- ;;
- esac
- CFLAGS="$realsave_CFLAGS"
- AC_MSG_CHECKING(what warning flags to pass to the C compiler)
- AC_MSG_RESULT($warning_flags)
-
- AC_ARG_ENABLE(iso-c,
- AC_HELP_STRING([--enable-iso-c],
- [Try to warn if code is not ISO C ]),,
- [enable_iso_c=no])
-
- AC_MSG_CHECKING(what language compliance flags to pass to the C compiler)
- complCFLAGS=
- if test "x$enable_iso_c" != "xno"; then
- if test "x$GCC" = "xyes"; then
- case " $CFLAGS " in
- *[\ \ ]-ansi[\ \ ]*) ;;
- *) complCFLAGS="$complCFLAGS -ansi" ;;
- esac
- case " $CFLAGS " in
- *[\ \ ]-pedantic[\ \ ]*) ;;
- *) complCFLAGS="$complCFLAGS -pedantic" ;;
- esac
- fi
- fi
- AC_MSG_RESULT($complCFLAGS)
-
- WARN_CFLAGS="$warning_flags $complCFLAGS"
- AC_SUBST(WARN_CFLAGS)
-])
-
-dnl For C++, do basically the same thing.
-
-AC_DEFUN([GNOME_CXX_WARNINGS],[
- AC_ARG_ENABLE(cxx-warnings,
- AC_HELP_STRING([--enable-cxx-warnings=@<:@no/minimum/yes@:>@]
- [Turn on compiler warnings.]),,
- [enable_cxx_warnings="m4_default([$1],[minimum])"])
-
- AC_MSG_CHECKING(what warning flags to pass to the C++ compiler)
- warnCXXFLAGS=
- if test "x$GXX" != xyes; then
- enable_cxx_warnings=no
- fi
- if test "x$enable_cxx_warnings" != "xno"; then
- if test "x$GXX" = "xyes"; then
- case " $CXXFLAGS " in
- *[\ \ ]-Wall[\ \ ]*) ;;
- *) warnCXXFLAGS="-Wall -Wno-unused" ;;
- esac
-
- ## -W is not all that useful. And it cannot be controlled
- ## with individual -Wno-xxx flags, unlike -Wall
- if test "x$enable_cxx_warnings" = "xyes"; then
- warnCXXFLAGS="$warnCXXFLAGS -Wshadow -Woverloaded-virtual"
- fi
- fi
- fi
- AC_MSG_RESULT($warnCXXFLAGS)
-
- AC_ARG_ENABLE(iso-cxx,
- AC_HELP_STRING([--enable-iso-cxx],
- [Try to warn if code is not ISO C++ ]),,
- [enable_iso_cxx=no])
-
- AC_MSG_CHECKING(what language compliance flags to pass to the C++ compiler)
- complCXXFLAGS=
- if test "x$enable_iso_cxx" != "xno"; then
- if test "x$GXX" = "xyes"; then
- case " $CXXFLAGS " in
- *[\ \ ]-ansi[\ \ ]*) ;;
- *) complCXXFLAGS="$complCXXFLAGS -ansi" ;;
- esac
-
- case " $CXXFLAGS " in
- *[\ \ ]-pedantic[\ \ ]*) ;;
- *) complCXXFLAGS="$complCXXFLAGS -pedantic" ;;
- esac
- fi
- fi
- AC_MSG_RESULT($complCXXFLAGS)
-
- WARN_CXXFLAGS="$CXXFLAGS $warnCXXFLAGS $complCXXFLAGS"
- AC_SUBST(WARN_CXXFLAGS)
-])
diff --git a/m4/python.m4 b/m4/python.m4
deleted file mode 100644
index e1c5266..0000000
--- a/m4/python.m4
+++ /dev/null
@@ -1,62 +0,0 @@
-## this one is commonly used with AM_PATH_PYTHONDIR ...
-dnl AM_CHECK_PYMOD(MODNAME [,SYMBOL [,ACTION-IF-FOUND [,ACTION-IF-NOT-FOUND]]])
-dnl Check if a module containing a given symbol is visible to python.
-AC_DEFUN([AM_CHECK_PYMOD],
-[AC_REQUIRE([AM_PATH_PYTHON])
-py_mod_var=`echo $1['_']$2 | sed 'y%./+-%__p_%'`
-AC_MSG_CHECKING(for ifelse([$2],[],,[$2 in ])python module $1)
-AC_CACHE_VAL(py_cv_mod_$py_mod_var, [
-ifelse([$2],[], [prog="
-import sys
-try:
- import $1
-except ImportError:
- sys.exit(1)
-except:
- sys.exit(0)
-sys.exit(0)"], [prog="
-import $1
-$1.$2"])
-if $PYTHON -c "$prog" 1>&AC_FD_CC 2>&AC_FD_CC
- then
- eval "py_cv_mod_$py_mod_var=yes"
- else
- eval "py_cv_mod_$py_mod_var=no"
- fi
-])
-py_val=`eval "echo \`echo '$py_cv_mod_'$py_mod_var\`"`
-if test "x$py_val" != xno; then
- AC_MSG_RESULT(yes)
- ifelse([$3], [],, [$3
-])dnl
-else
- AC_MSG_RESULT(no)
- ifelse([$4], [],, [$4
-])dnl
-fi
-])
-
-dnl a macro to check for ability to create python extensions
-dnl AM_CHECK_PYTHON_HEADERS([ACTION-IF-POSSIBLE], [ACTION-IF-NOT-POSSIBLE])
-dnl function also defines PYTHON_INCLUDES
-AC_DEFUN([AM_CHECK_PYTHON_HEADERS],
-[AC_REQUIRE([AM_PATH_PYTHON])
-AC_MSG_CHECKING(for headers required to compile python extensions)
-dnl deduce PYTHON_INCLUDES
-py_prefix=`$PYTHON -c "import sys; print sys.prefix"`
-py_exec_prefix=`$PYTHON -c "import sys; print sys.exec_prefix"`
-PYTHON_INCLUDES="-I${py_prefix}/include/python${PYTHON_VERSION}"
-if test "$py_prefix" != "$py_exec_prefix"; then
- PYTHON_INCLUDES="$PYTHON_INCLUDES -I${py_exec_prefix}/include/python${PYTHON_VERSION}"
-fi
-AC_SUBST(PYTHON_INCLUDES)
-dnl check if the headers exist:
-save_CPPFLAGS="$CPPFLAGS"
-CPPFLAGS="$CPPFLAGS $PYTHON_INCLUDES"
-AC_TRY_CPP([#include <Python.h>],dnl
-[AC_MSG_RESULT(found)
-$1],dnl
-[AC_MSG_RESULT(not found)
-$2])
-CPPFLAGS="$save_CPPFLAGS"
-])
diff --git a/po/POTFILES.in b/po/POTFILES.in
deleted file mode 100644
index 488cb27..0000000
--- a/po/POTFILES.in
+++ /dev/null
@@ -1,6 +0,0 @@
-src/sugar/activity/activity.py
-src/sugar/activity/namingalert.py
-src/sugar/graphics/alert.py
-src/sugar/graphics/colorbutton.py
-src/sugar/graphics/objectchooser.py
-src/sugar/util.py
diff --git a/po/POTFILES.skip b/po/POTFILES.skip
deleted file mode 100644
index a656b5a..0000000
--- a/po/POTFILES.skip
+++ /dev/null
@@ -1,6 +0,0 @@
-# We don't care about these string, they are in code which we don't really
-# use and is there solely to not diverge too much from the "upstream"
-# versions of these files.
-src/sugar/eggdesktopfile.c
-src/sugar/eggsmclient.c
-src/sugar/gsm-xsmp.c
diff --git a/po/af.po b/po/af.po
deleted file mode 100644
index 93a56e3..0000000
--- a/po/af.po
+++ /dev/null
@@ -1,153 +0,0 @@
-# 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: 2008-06-24 00:07+0530\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"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Translate Toolkit 1.1.1rc4\n"
-
-#: ../src/sugar/activity/activity.py:120
-msgid "Share with:"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:122
-msgid "Private"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:123
-msgid "My Neighborhood"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:130
-msgid "Keep"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:136
-msgid "Stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:251
-msgid "Undo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:256
-msgid "Redo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:266
-msgid "Copy"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:271
-msgid "Paste"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:297
-msgid "Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:469
-#, python-format
-msgid "%s Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:856
-msgid "Keep error"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:857
-msgid "Keep error: all changes will be lost"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:860
-msgid "Don't stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:863
-msgid "Stop anyway"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:166 ../src/sugar/graphics/alert.py:209
-msgid "Cancel"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:170 ../src/sugar/graphics/alert.py:247
-msgid "Ok"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:219
-msgid "Continue"
-msgstr ""
-
-#: ../src/sugar/util.py:181
-msgid " and "
-msgstr ""
-
-#: ../src/sugar/util.py:182
-msgid ", "
-msgstr ""
-
-#. TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#: ../src/sugar/util.py:185
-msgid "Seconds ago"
-msgstr ""
-
-#. TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-#. "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#: ../src/sugar/util.py:189
-#, python-format
-msgid "%s ago"
-msgstr ""
-
-#. TRANS: Relative dates (eg. 1 month and 5 days).
-#: ../src/sugar/util.py:202
-#, python-format
-msgid "%d year"
-msgid_plural "%d years"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:203
-#, python-format
-msgid "%d month"
-msgid_plural "%d months"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:204
-#, python-format
-msgid "%d week"
-msgid_plural "%d weeks"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:205
-#, python-format
-msgid "%d day"
-msgid_plural "%d days"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:206
-#, python-format
-msgid "%d hour"
-msgid_plural "%d hours"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:207
-#, python-format
-msgid "%d minute"
-msgid_plural "%d minutes"
-msgstr[0] ""
-msgstr[1] ""
diff --git a/po/am.po b/po/am.po
deleted file mode 100644
index 93a56e3..0000000
--- a/po/am.po
+++ /dev/null
@@ -1,153 +0,0 @@
-# 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: 2008-06-24 00:07+0530\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"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Translate Toolkit 1.1.1rc4\n"
-
-#: ../src/sugar/activity/activity.py:120
-msgid "Share with:"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:122
-msgid "Private"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:123
-msgid "My Neighborhood"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:130
-msgid "Keep"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:136
-msgid "Stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:251
-msgid "Undo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:256
-msgid "Redo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:266
-msgid "Copy"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:271
-msgid "Paste"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:297
-msgid "Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:469
-#, python-format
-msgid "%s Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:856
-msgid "Keep error"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:857
-msgid "Keep error: all changes will be lost"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:860
-msgid "Don't stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:863
-msgid "Stop anyway"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:166 ../src/sugar/graphics/alert.py:209
-msgid "Cancel"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:170 ../src/sugar/graphics/alert.py:247
-msgid "Ok"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:219
-msgid "Continue"
-msgstr ""
-
-#: ../src/sugar/util.py:181
-msgid " and "
-msgstr ""
-
-#: ../src/sugar/util.py:182
-msgid ", "
-msgstr ""
-
-#. TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#: ../src/sugar/util.py:185
-msgid "Seconds ago"
-msgstr ""
-
-#. TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-#. "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#: ../src/sugar/util.py:189
-#, python-format
-msgid "%s ago"
-msgstr ""
-
-#. TRANS: Relative dates (eg. 1 month and 5 days).
-#: ../src/sugar/util.py:202
-#, python-format
-msgid "%d year"
-msgid_plural "%d years"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:203
-#, python-format
-msgid "%d month"
-msgid_plural "%d months"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:204
-#, python-format
-msgid "%d week"
-msgid_plural "%d weeks"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:205
-#, python-format
-msgid "%d day"
-msgid_plural "%d days"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:206
-#, python-format
-msgid "%d hour"
-msgid_plural "%d hours"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:207
-#, python-format
-msgid "%d minute"
-msgid_plural "%d minutes"
-msgstr[0] ""
-msgstr[1] ""
diff --git a/po/ar.po b/po/ar.po
deleted file mode 100644
index f4e9b3e..0000000
--- a/po/ar.po
+++ /dev/null
@@ -1,564 +0,0 @@
-# translation of sugar.po to Arabic
-# Khaled Hosny <khaledhosny@eglug.org>, 2007, 2008.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-msgid ""
-msgstr ""
-"Project-Id-Version: sugar\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-06-24 00:07+0530\n"
-"PO-Revision-Date: 2008-08-07 17:03-0400\n"
-"Last-Translator: Khaled Hosny <khaledhosny@eglug.org>\n"
-"Language-Team: Arabic <doc@arabeyes.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n>=3 && "
-"n<=10 ? 3 : n>=11 && n<=99 ? 4 : 5;\n"
-"X-Generator: Pootle 1.1.0rc2\n"
-"Nplurals=6; Plural=N==0 ? 0: n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 "
-": n%100>=11 && n%100<=99 ? 4 : 5;\n"
-
-#: ../src/sugar/activity/activity.py:120
-msgid "Share with:"
-msgstr "شارِك مع:"
-
-#: ../src/sugar/activity/activity.py:122
-msgid "Private"
-msgstr "خاص"
-
-#: ../src/sugar/activity/activity.py:123
-msgid "My Neighborhood"
-msgstr "جِوارِي"
-
-# self._stop_item = MenuItem(_('Stop download'), 'stock-close')
-# TODO: Implement stopping downloads
-# self._stop_item.connect('activate', self._stop_item_activate_cb)
-# self.append_menu_item(self._stop_item)
-#: ../src/sugar/activity/activity.py:130
-msgid "Keep"
-msgstr "احفظ"
-
-#: ../src/sugar/activity/activity.py:136
-msgid "Stop"
-msgstr "قف"
-
-#: ../src/sugar/activity/activity.py:251
-msgid "Undo"
-msgstr "تراجع"
-
-#: ../src/sugar/activity/activity.py:256
-msgid "Redo"
-msgstr "أعِد"
-
-#: ../src/sugar/activity/activity.py:266
-msgid "Copy"
-msgstr "انسخ"
-
-#: ../src/sugar/activity/activity.py:271
-msgid "Paste"
-msgstr "الصق"
-
-#: ../src/sugar/activity/activity.py:297
-msgid "Activity"
-msgstr "النشاط"
-
-#: ../src/sugar/activity/activity.py:469
-#, python-format
-msgid "%s Activity"
-msgstr "نشاط %s"
-
-#: ../src/sugar/activity/activity.py:856
-msgid "Keep error"
-msgstr "خطأ في الحفظ"
-
-#: ../src/sugar/activity/activity.py:857
-msgid "Keep error: all changes will be lost"
-msgstr "خطأ في الحفظ: ستُفقد كل التغييرات"
-
-#: ../src/sugar/activity/activity.py:860
-msgid "Don't stop"
-msgstr "لا تتوقف"
-
-#: ../src/sugar/activity/activity.py:863
-msgid "Stop anyway"
-msgstr "توقف على أي حال"
-
-#: ../src/sugar/graphics/alert.py:166 ../src/sugar/graphics/alert.py:209
-msgid "Cancel"
-msgstr "ألغِ"
-
-#: ../src/sugar/graphics/alert.py:170 ../src/sugar/graphics/alert.py:247
-msgid "Ok"
-msgstr "حسنا"
-
-#: ../src/sugar/graphics/alert.py:219
-msgid "Continue"
-msgstr "واصِل"
-
-#: ../src/sugar/util.py:181
-msgid " and "
-msgstr " و "
-
-#: ../src/sugar/util.py:182
-msgid ", "
-msgstr " و "
-
-#. TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#: ../src/sugar/util.py:185
-msgid "Seconds ago"
-msgstr "منذ بضعة ثوان"
-
-#. TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-#. "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#: ../src/sugar/util.py:189
-#, python-format
-msgid "%s ago"
-msgstr "منذ %s"
-
-#. TRANS: Relative dates (eg. 1 month and 5 days).
-#: ../src/sugar/util.py:202
-#, python-format
-msgid "%d year"
-msgid_plural "%d years"
-msgstr[0] "%d سنة"
-msgstr[1] "%.sسنة"
-msgstr[2] "%.sسنتين"
-msgstr[3] "%d سنوات"
-msgstr[4] "%d سنة"
-msgstr[5] "%d سنة"
-
-#: ../src/sugar/util.py:203
-#, python-format
-msgid "%d month"
-msgid_plural "%d months"
-msgstr[0] "%d شهر"
-msgstr[1] "%.0sشهر"
-msgstr[2] "%.0sشهرين"
-msgstr[3] "%d شهور"
-msgstr[4] "%d شهرا"
-msgstr[5] "%d شهر"
-
-#: ../src/sugar/util.py:204
-#, python-format
-msgid "%d week"
-msgid_plural "%d weeks"
-msgstr[0] "%d أسبوع"
-msgstr[1] "%.0sأسبوع"
-msgstr[2] "%.0sأسبوعين"
-msgstr[3] "%d أسابيع"
-msgstr[4] "%d أسبوعا"
-msgstr[5] "%d أسبوع"
-
-#: ../src/sugar/util.py:205
-#, python-format
-msgid "%d day"
-msgid_plural "%d days"
-msgstr[0] "%d يوم"
-msgstr[1] "%.0sيوم"
-msgstr[2] "%.0sيومين"
-msgstr[3] "%d أيام"
-msgstr[4] "%d يوما"
-msgstr[5] "%d يوم"
-
-#: ../src/sugar/util.py:206
-#, python-format
-msgid "%d hour"
-msgid_plural "%d hours"
-msgstr[0] "%d ساعة"
-msgstr[1] "%.0sساعة"
-msgstr[2] "%.0sساعتين"
-msgstr[3] "%d ساعات"
-msgstr[4] "%d ساعة"
-msgstr[5] "%d ساعة"
-
-#: ../src/sugar/util.py:207
-#, python-format
-msgid "%d minute"
-msgid_plural "%d minutes"
-msgstr[0] "%d دقيقة"
-msgstr[1] "%.0sدقيقة"
-msgstr[2] "%.0sدقيقتين"
-msgstr[3] "%d دقائق"
-msgstr[4] "%d دقيقة"
-msgstr[5] "%d دقيقة"
-
-#~ msgid "Name:"
-#~ msgstr "الاسم:"
-
-#~ msgid "Click to change color:"
-#~ msgstr "انقر لتغيير اللون:"
-
-#~ msgid "Back"
-#~ msgstr "السابق"
-
-#~ msgid "Done"
-#~ msgstr "تمّ"
-
-#~ msgid "Next"
-#~ msgstr "التالي"
-
-#~ msgid "Remove friend"
-#~ msgstr "أزل صديق"
-
-#~ msgid "Make friend"
-#~ msgstr "اصنع صديق"
-
-#~ msgid "Invite to %s"
-#~ msgstr "ادعُ إلى %s"
-
-#~ msgid "Remove"
-#~ msgstr "أزل"
-
-#~ msgid "Open"
-#~ msgstr "افتح"
-
-#~ msgid "Open with"
-#~ msgstr "افتح باستخدام"
-
-#~ msgid "Clipboard object: %s."
-#~ msgstr "عنصر الحافظة: %s."
-
-#~ msgid "Key Type:"
-#~ msgstr "نوع المفتاح:"
-
-#~ msgid "Authentication Type:"
-#~ msgstr "نوع الاستيثاق:"
-
-#~ msgid "Encryption Type:"
-#~ msgstr "نوع التعمية:"
-
-#~ msgid "Screenshot"
-#~ msgstr "لقطة شاشة"
-
-#~ msgid "List view"
-#~ msgstr "منظور القائمة"
-
-#~ msgid "<Ctrl>L"
-#~ msgstr "<Ctrl>ق"
-
-#~ msgid "<Ctrl>R"
-#~ msgstr "<Ctrl>ح"
-
-#~ msgid "Connect"
-#~ msgstr "اتصل"
-
-#~ msgid "Disconnect"
-#~ msgstr "اقطع الاتصال"
-
-# Only show disconnect when there's a mesh device, because mesh takes
-# priority over the normal wireless device. NM doesn't have a "disconnect"
-# method for a device either (for various reasons) so this doesn't
-# have a good mapping
-#~ msgid "Disconnecting..."
-#~ msgstr "يجري قطع الاتصال..."
-
-#~ msgid "Connecting..."
-#~ msgstr "يجري الاتصال..."
-
-# TODO: show the channel number
-#~ msgid "Connected"
-#~ msgstr "مُتّصل"
-
-#~ msgid "Mesh Network"
-#~ msgstr "شبكة عُروِيّة"
-
-# Only show disconnect when there's a mesh device, because mesh takes
-# priority over the normal wireless device. NM doesn't have a "disconnect"
-# method for a device either (for various reasons) so this doesn't
-# have a good mapping
-#~ msgid "Disconnect..."
-#~ msgstr "افصِل..."
-
-#~ msgid "Resume"
-#~ msgstr "استكمل"
-
-#~ msgid "Join"
-#~ msgstr "التحق"
-
-#~ msgid "My Battery"
-#~ msgstr "بطاريتي"
-
-#~ msgid "Charging"
-#~ msgstr "يشحن"
-
-#~ msgid "Very little power remaining"
-#~ msgstr "بقي القليل جدا من الطاقة"
-
-#~ msgid "%(hour)d:%(min).2d remaining"
-#~ msgstr "باقي %(hour)d:%(min).2d"
-
-#~ msgid "Charged"
-#~ msgstr "مشحون"
-
-#~ msgid "My Speakers"
-#~ msgstr "سماعاتي"
-
-#~ msgid "Unmute"
-#~ msgstr "افتح"
-
-#~ msgid "Mute"
-#~ msgstr "أصمِت"
-
-#~ msgid "Disconnected"
-#~ msgstr "مفصول"
-
-#~ msgid "Channel"
-#~ msgstr "قناة"
-
-#~ msgid "Neighborhood"
-#~ msgstr "الجِوَار"
-
-#~ msgid "Group"
-#~ msgstr "المجموعة"
-
-#~ msgid "Home"
-#~ msgstr "المنزل"
-
-#~ msgid "To apply your changes you have to restart sugar.\n"
-#~ msgstr "تحتاج لإعادة تشغيل «سُكّر» لتُطبق التغييرات.\n"
-
-#~ msgid "Warning"
-#~ msgstr "تحذير"
-
-#~ msgid "Cancel changes"
-#~ msgstr "ألغِ التغييرات"
-
-#~ msgid "Later"
-#~ msgstr "لاحقا"
-
-#~ msgid "You must enter a name."
-#~ msgstr "يجب أن تُدخِل اسما."
-
-#~ msgid "stroke: color=%s hue=%s"
-#~ msgstr "الحواف: اللون=%s التشبع=%s"
-
-#~ msgid "stroke: %s"
-#~ msgstr "الحواف: %s"
-
-#~ msgid "fill: color=%s hue=%s"
-#~ msgstr "الملء: اللون=%s التشبع=%s"
-
-#~ msgid "fill: %s"
-#~ msgstr "الملء: %s"
-
-#~ msgid "Error in specified color modifiers."
-#~ msgstr "خطأ في مُغيّرات الألوان المحددة."
-
-#~ msgid "Error in specified colors."
-#~ msgstr "خطأ في الألوان المحددة."
-
-#~ msgid "Not available"
-#~ msgstr "غير مُتاح"
-
-#~ msgid "Error timezone does not exist."
-#~ msgstr "خطأ: المنطقة الزمنية لا وجود لها."
-
-#, fuzzy
-#~ msgid "Value must be an integer."
-#~ msgstr "يجب أن تكون القيمة عددا صحيحا."
-
-#~ msgid "Could not access ~/.i18n. Create standard settings."
-#~ msgstr "تعذّر الوصول إلى ‭~/.i18n‬. سأنشئ إعدادات قياسية."
-
-#~ msgid "Language for code=%s could not be determined."
-#~ msgstr "لا يمكن تحديد لغة الرمز=%s."
-
-#~ msgid "Sorry I do not speak '%s'."
-#~ msgstr "آسف، لا أتحدث '%s'."
-
-#~ msgid "You must enter a server."
-#~ msgstr "يجب أن تُدخِل خادوما."
-
-#~ msgid "State is unknown."
-#~ msgstr "الحالة مجهولة."
-
-#~ msgid "Error in specified radio argument use on/off."
-#~ msgstr "خطأ في معامل الإذاعة المحدد، استخدم مُفعّل/مُعطّل."
-
-#~ msgid "About Me"
-#~ msgstr "عنّي"
-
-#~ msgid "Click to change your color:"
-#~ msgstr "انقر لتغيير اللون:"
-
-#~ msgid "About my XO"
-#~ msgstr "عن حاسوبي"
-
-#~ msgid "Identity"
-#~ msgstr "المعرّف"
-
-#~ msgid "Serial Number:"
-#~ msgstr "الرقم التسلسلي"
-
-#~ msgid "Software"
-#~ msgstr "البرمجيات"
-
-#~ msgid "Build:"
-#~ msgstr "البناء:"
-
-#~ msgid "Firmware:"
-#~ msgstr "البرمجيات الثابتة (Firmware):"
-
-#~ msgid "Date & Time"
-#~ msgstr "التاريخ والوقت"
-
-#~ msgid "Timezone"
-#~ msgstr "المنطقة الزمنية"
-
-#~ msgid "Frame"
-#~ msgstr "الإطار"
-
-#~ msgid "never"
-#~ msgstr "أبدا"
-
-#~ msgid "instantaneous"
-#~ msgstr "آني"
-
-#, fuzzy
-#~ msgid "%s seconds"
-#~ msgstr "%d ثوان"
-
-#~ msgid "Language"
-#~ msgstr "اللغة"
-
-#~ msgid "Network"
-#~ msgstr "الشبكة"
-
-#~ msgid "Wireless"
-#~ msgstr "اللاسلكي"
-
-#~ msgid "Radio:"
-#~ msgstr "الإذاعة:"
-
-#~ msgid "Mesh"
-#~ msgstr "الشبكة العروية"
-
-#~ msgid "Server:"
-#~ msgstr "الخادوم"
-
-#~ msgid "Connected to a School Mesh Portal"
-#~ msgstr "اتصل ببوابة شبكة مدرسة"
-
-#~ msgid "Looking for a School Mesh Portal..."
-#~ msgstr "يبحث عن بوابة شبكة مدرسة..."
-
-#~ msgid "Connected to an XO Mesh Portal"
-#~ msgstr "اتصل ببوابة شبكة XO"
-
-#~ msgid "Looking for an XO Mesh Portal..."
-#~ msgstr "يبحث عن بوابة شبكة XO..."
-
-#~ msgid "Connected to a Simple Mesh"
-#~ msgstr "اتصل بشبكة بسيطة"
-
-#~ msgid "Starting a Simple Mesh"
-#~ msgstr "يبدأ شبكة بسيطة"
-
-#~ msgid "Unknown Mesh"
-#~ msgstr "شبكة مجهولة"
-
-#~ msgid "Decline"
-#~ msgstr "ارفض"
-
-#~ msgid "Control Panel"
-#~ msgstr "لوحة التحكم"
-
-#~ msgid "Restart"
-#~ msgstr "أعد التشغيل"
-
-#~ msgid "Shutdown"
-#~ msgstr "أطفئ"
-
-#~ msgid "Register"
-#~ msgstr "سجّل"
-
-#~ msgid "Starting..."
-#~ msgstr "يبدأ..."
-
-#~ msgid "Start"
-#~ msgstr "ابدأ"
-
-#~ msgid "Show contents"
-#~ msgstr "أظهر المحتويات"
-
-#~ msgid "%(free_space)d MB Free"
-#~ msgstr "%(free_space)d م.بايت خالية"
-
-#~ msgid "Ring view"
-#~ msgstr "منظور الحلقة"
-
-#~ msgid "Remove from ring"
-#~ msgstr "أزِل من الحلقة"
-
-#~ msgid "Add to ring"
-#~ msgstr "أضِف للحلقة"
-
-#~ msgid "Changes require a sugar restart to take effect."
-#~ msgstr "يتطلب نفاذ التغييرات إعادة تشغيل «سُكّر»."
-
-#~ msgid "Changes require restart to take effect"
-#~ msgstr "يتطلب نفاذ التغييرات إعادة التشغيل."
-
-#~ msgid "Delay in milliseconds:"
-#~ msgstr "التأخير بالملي ثانية:"
-
-#~ msgid "Hot Corners"
-#~ msgstr "الزوايا النشطة"
-
-#~ msgid "Warm Edges"
-#~ msgstr "الحواف المتفاعلة"
-
-#~ msgid "off"
-#~ msgstr "معطّل"
-
-#~ msgid "on"
-#~ msgstr "مفعّل"
-
-#~ msgid "Permission denied. You need to be root to run this method."
-#~ msgstr "الصلاحية ممنوعة. تحتاج أن تكون الجذر لتشغل الوظيفة المطلوبة."
-
-#~ msgid "Error in reading timezone"
-#~ msgstr "خطأ في قراءة المنطقة الزمنية"
-
-#~ msgid "Error copying timezone (from %s): %s"
-#~ msgstr "خطأ في نسخ المنطقة الزمنية (من %s): %s"
-
-#~ msgid "Changing permission of timezone: %s"
-#~ msgstr "يجري تغيير صلاحيات المنطقة الزمنية: %s"
-
-#~ msgid "About this XO"
-#~ msgstr "عَنْ XO هذا"
-
-#~ msgid "Add to journal"
-#~ msgstr "أضِف إلى اليوميات"
-
-#~ msgid "Reboot"
-#~ msgstr "أعِد التشغيل"
-
-#~ msgid "My Battery life"
-#~ msgstr "عمر بطاريتي"
-
-#~ msgid "Battery charging"
-#~ msgstr "البطاريّة تشحن"
-
-#~ msgid "Battery discharging"
-#~ msgstr "البطاريّة تُفرّغ"
-
-#~ msgid "Battery fully charged"
-#~ msgstr "البطارية مشحونة تماما"
-
-#~ msgid "Invite"
-#~ msgstr "ادعُ"
-
-#~ msgid "Text"
-#~ msgstr "نص"
-
-#~ msgid "Image"
-#~ msgstr "صورة"
-
-#~ msgid "OK"
-#~ msgstr "حسنا"
-
-#~ msgid "%d second"
-#~ msgstr "%d ثانية"
diff --git a/po/ay.po b/po/ay.po
deleted file mode 100644
index 93a56e3..0000000
--- a/po/ay.po
+++ /dev/null
@@ -1,153 +0,0 @@
-# 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: 2008-06-24 00:07+0530\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"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Translate Toolkit 1.1.1rc4\n"
-
-#: ../src/sugar/activity/activity.py:120
-msgid "Share with:"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:122
-msgid "Private"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:123
-msgid "My Neighborhood"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:130
-msgid "Keep"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:136
-msgid "Stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:251
-msgid "Undo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:256
-msgid "Redo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:266
-msgid "Copy"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:271
-msgid "Paste"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:297
-msgid "Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:469
-#, python-format
-msgid "%s Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:856
-msgid "Keep error"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:857
-msgid "Keep error: all changes will be lost"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:860
-msgid "Don't stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:863
-msgid "Stop anyway"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:166 ../src/sugar/graphics/alert.py:209
-msgid "Cancel"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:170 ../src/sugar/graphics/alert.py:247
-msgid "Ok"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:219
-msgid "Continue"
-msgstr ""
-
-#: ../src/sugar/util.py:181
-msgid " and "
-msgstr ""
-
-#: ../src/sugar/util.py:182
-msgid ", "
-msgstr ""
-
-#. TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#: ../src/sugar/util.py:185
-msgid "Seconds ago"
-msgstr ""
-
-#. TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-#. "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#: ../src/sugar/util.py:189
-#, python-format
-msgid "%s ago"
-msgstr ""
-
-#. TRANS: Relative dates (eg. 1 month and 5 days).
-#: ../src/sugar/util.py:202
-#, python-format
-msgid "%d year"
-msgid_plural "%d years"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:203
-#, python-format
-msgid "%d month"
-msgid_plural "%d months"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:204
-#, python-format
-msgid "%d week"
-msgid_plural "%d weeks"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:205
-#, python-format
-msgid "%d day"
-msgid_plural "%d days"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:206
-#, python-format
-msgid "%d hour"
-msgid_plural "%d hours"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:207
-#, python-format
-msgid "%d minute"
-msgid_plural "%d minutes"
-msgstr[0] ""
-msgstr[1] ""
diff --git a/po/bg.po b/po/bg.po
deleted file mode 100644
index 93a56e3..0000000
--- a/po/bg.po
+++ /dev/null
@@ -1,153 +0,0 @@
-# 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: 2008-06-24 00:07+0530\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"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Translate Toolkit 1.1.1rc4\n"
-
-#: ../src/sugar/activity/activity.py:120
-msgid "Share with:"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:122
-msgid "Private"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:123
-msgid "My Neighborhood"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:130
-msgid "Keep"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:136
-msgid "Stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:251
-msgid "Undo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:256
-msgid "Redo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:266
-msgid "Copy"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:271
-msgid "Paste"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:297
-msgid "Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:469
-#, python-format
-msgid "%s Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:856
-msgid "Keep error"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:857
-msgid "Keep error: all changes will be lost"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:860
-msgid "Don't stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:863
-msgid "Stop anyway"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:166 ../src/sugar/graphics/alert.py:209
-msgid "Cancel"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:170 ../src/sugar/graphics/alert.py:247
-msgid "Ok"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:219
-msgid "Continue"
-msgstr ""
-
-#: ../src/sugar/util.py:181
-msgid " and "
-msgstr ""
-
-#: ../src/sugar/util.py:182
-msgid ", "
-msgstr ""
-
-#. TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#: ../src/sugar/util.py:185
-msgid "Seconds ago"
-msgstr ""
-
-#. TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-#. "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#: ../src/sugar/util.py:189
-#, python-format
-msgid "%s ago"
-msgstr ""
-
-#. TRANS: Relative dates (eg. 1 month and 5 days).
-#: ../src/sugar/util.py:202
-#, python-format
-msgid "%d year"
-msgid_plural "%d years"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:203
-#, python-format
-msgid "%d month"
-msgid_plural "%d months"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:204
-#, python-format
-msgid "%d week"
-msgid_plural "%d weeks"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:205
-#, python-format
-msgid "%d day"
-msgid_plural "%d days"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:206
-#, python-format
-msgid "%d hour"
-msgid_plural "%d hours"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:207
-#, python-format
-msgid "%d minute"
-msgid_plural "%d minutes"
-msgstr[0] ""
-msgstr[1] ""
diff --git a/po/bi.po b/po/bi.po
deleted file mode 100644
index 93a56e3..0000000
--- a/po/bi.po
+++ /dev/null
@@ -1,153 +0,0 @@
-# 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: 2008-06-24 00:07+0530\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"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Translate Toolkit 1.1.1rc4\n"
-
-#: ../src/sugar/activity/activity.py:120
-msgid "Share with:"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:122
-msgid "Private"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:123
-msgid "My Neighborhood"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:130
-msgid "Keep"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:136
-msgid "Stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:251
-msgid "Undo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:256
-msgid "Redo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:266
-msgid "Copy"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:271
-msgid "Paste"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:297
-msgid "Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:469
-#, python-format
-msgid "%s Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:856
-msgid "Keep error"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:857
-msgid "Keep error: all changes will be lost"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:860
-msgid "Don't stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:863
-msgid "Stop anyway"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:166 ../src/sugar/graphics/alert.py:209
-msgid "Cancel"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:170 ../src/sugar/graphics/alert.py:247
-msgid "Ok"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:219
-msgid "Continue"
-msgstr ""
-
-#: ../src/sugar/util.py:181
-msgid " and "
-msgstr ""
-
-#: ../src/sugar/util.py:182
-msgid ", "
-msgstr ""
-
-#. TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#: ../src/sugar/util.py:185
-msgid "Seconds ago"
-msgstr ""
-
-#. TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-#. "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#: ../src/sugar/util.py:189
-#, python-format
-msgid "%s ago"
-msgstr ""
-
-#. TRANS: Relative dates (eg. 1 month and 5 days).
-#: ../src/sugar/util.py:202
-#, python-format
-msgid "%d year"
-msgid_plural "%d years"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:203
-#, python-format
-msgid "%d month"
-msgid_plural "%d months"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:204
-#, python-format
-msgid "%d week"
-msgid_plural "%d weeks"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:205
-#, python-format
-msgid "%d day"
-msgid_plural "%d days"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:206
-#, python-format
-msgid "%d hour"
-msgid_plural "%d hours"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:207
-#, python-format
-msgid "%d minute"
-msgid_plural "%d minutes"
-msgstr[0] ""
-msgstr[1] ""
diff --git a/po/bn.po b/po/bn.po
deleted file mode 100644
index 93a56e3..0000000
--- a/po/bn.po
+++ /dev/null
@@ -1,153 +0,0 @@
-# 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: 2008-06-24 00:07+0530\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"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Translate Toolkit 1.1.1rc4\n"
-
-#: ../src/sugar/activity/activity.py:120
-msgid "Share with:"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:122
-msgid "Private"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:123
-msgid "My Neighborhood"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:130
-msgid "Keep"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:136
-msgid "Stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:251
-msgid "Undo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:256
-msgid "Redo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:266
-msgid "Copy"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:271
-msgid "Paste"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:297
-msgid "Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:469
-#, python-format
-msgid "%s Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:856
-msgid "Keep error"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:857
-msgid "Keep error: all changes will be lost"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:860
-msgid "Don't stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:863
-msgid "Stop anyway"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:166 ../src/sugar/graphics/alert.py:209
-msgid "Cancel"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:170 ../src/sugar/graphics/alert.py:247
-msgid "Ok"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:219
-msgid "Continue"
-msgstr ""
-
-#: ../src/sugar/util.py:181
-msgid " and "
-msgstr ""
-
-#: ../src/sugar/util.py:182
-msgid ", "
-msgstr ""
-
-#. TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#: ../src/sugar/util.py:185
-msgid "Seconds ago"
-msgstr ""
-
-#. TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-#. "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#: ../src/sugar/util.py:189
-#, python-format
-msgid "%s ago"
-msgstr ""
-
-#. TRANS: Relative dates (eg. 1 month and 5 days).
-#: ../src/sugar/util.py:202
-#, python-format
-msgid "%d year"
-msgid_plural "%d years"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:203
-#, python-format
-msgid "%d month"
-msgid_plural "%d months"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:204
-#, python-format
-msgid "%d week"
-msgid_plural "%d weeks"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:205
-#, python-format
-msgid "%d day"
-msgid_plural "%d days"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:206
-#, python-format
-msgid "%d hour"
-msgid_plural "%d hours"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:207
-#, python-format
-msgid "%d minute"
-msgid_plural "%d minutes"
-msgstr[0] ""
-msgstr[1] ""
diff --git a/po/bn_IN.po b/po/bn_IN.po
deleted file mode 100644
index 93a56e3..0000000
--- a/po/bn_IN.po
+++ /dev/null
@@ -1,153 +0,0 @@
-# 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: 2008-06-24 00:07+0530\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"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Translate Toolkit 1.1.1rc4\n"
-
-#: ../src/sugar/activity/activity.py:120
-msgid "Share with:"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:122
-msgid "Private"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:123
-msgid "My Neighborhood"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:130
-msgid "Keep"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:136
-msgid "Stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:251
-msgid "Undo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:256
-msgid "Redo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:266
-msgid "Copy"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:271
-msgid "Paste"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:297
-msgid "Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:469
-#, python-format
-msgid "%s Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:856
-msgid "Keep error"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:857
-msgid "Keep error: all changes will be lost"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:860
-msgid "Don't stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:863
-msgid "Stop anyway"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:166 ../src/sugar/graphics/alert.py:209
-msgid "Cancel"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:170 ../src/sugar/graphics/alert.py:247
-msgid "Ok"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:219
-msgid "Continue"
-msgstr ""
-
-#: ../src/sugar/util.py:181
-msgid " and "
-msgstr ""
-
-#: ../src/sugar/util.py:182
-msgid ", "
-msgstr ""
-
-#. TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#: ../src/sugar/util.py:185
-msgid "Seconds ago"
-msgstr ""
-
-#. TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-#. "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#: ../src/sugar/util.py:189
-#, python-format
-msgid "%s ago"
-msgstr ""
-
-#. TRANS: Relative dates (eg. 1 month and 5 days).
-#: ../src/sugar/util.py:202
-#, python-format
-msgid "%d year"
-msgid_plural "%d years"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:203
-#, python-format
-msgid "%d month"
-msgid_plural "%d months"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:204
-#, python-format
-msgid "%d week"
-msgid_plural "%d weeks"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:205
-#, python-format
-msgid "%d day"
-msgid_plural "%d days"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:206
-#, python-format
-msgid "%d hour"
-msgid_plural "%d hours"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:207
-#, python-format
-msgid "%d minute"
-msgid_plural "%d minutes"
-msgstr[0] ""
-msgstr[1] ""
diff --git a/po/ca.po b/po/ca.po
deleted file mode 100644
index 93a56e3..0000000
--- a/po/ca.po
+++ /dev/null
@@ -1,153 +0,0 @@
-# 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: 2008-06-24 00:07+0530\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"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Translate Toolkit 1.1.1rc4\n"
-
-#: ../src/sugar/activity/activity.py:120
-msgid "Share with:"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:122
-msgid "Private"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:123
-msgid "My Neighborhood"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:130
-msgid "Keep"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:136
-msgid "Stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:251
-msgid "Undo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:256
-msgid "Redo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:266
-msgid "Copy"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:271
-msgid "Paste"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:297
-msgid "Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:469
-#, python-format
-msgid "%s Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:856
-msgid "Keep error"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:857
-msgid "Keep error: all changes will be lost"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:860
-msgid "Don't stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:863
-msgid "Stop anyway"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:166 ../src/sugar/graphics/alert.py:209
-msgid "Cancel"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:170 ../src/sugar/graphics/alert.py:247
-msgid "Ok"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:219
-msgid "Continue"
-msgstr ""
-
-#: ../src/sugar/util.py:181
-msgid " and "
-msgstr ""
-
-#: ../src/sugar/util.py:182
-msgid ", "
-msgstr ""
-
-#. TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#: ../src/sugar/util.py:185
-msgid "Seconds ago"
-msgstr ""
-
-#. TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-#. "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#: ../src/sugar/util.py:189
-#, python-format
-msgid "%s ago"
-msgstr ""
-
-#. TRANS: Relative dates (eg. 1 month and 5 days).
-#: ../src/sugar/util.py:202
-#, python-format
-msgid "%d year"
-msgid_plural "%d years"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:203
-#, python-format
-msgid "%d month"
-msgid_plural "%d months"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:204
-#, python-format
-msgid "%d week"
-msgid_plural "%d weeks"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:205
-#, python-format
-msgid "%d day"
-msgid_plural "%d days"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:206
-#, python-format
-msgid "%d hour"
-msgid_plural "%d hours"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:207
-#, python-format
-msgid "%d minute"
-msgid_plural "%d minutes"
-msgstr[0] ""
-msgstr[1] ""
diff --git a/po/cs.po b/po/cs.po
deleted file mode 100644
index bf097b4..0000000
--- a/po/cs.po
+++ /dev/null
@@ -1,160 +0,0 @@
-# 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: 2008-06-24 00:07+0530\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"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
-"X-Generator: Translate Toolkit 1.1.1rc4\n"
-
-#: ../src/sugar/activity/activity.py:120
-msgid "Share with:"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:122
-msgid "Private"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:123
-msgid "My Neighborhood"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:130
-msgid "Keep"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:136
-msgid "Stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:251
-msgid "Undo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:256
-msgid "Redo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:266
-msgid "Copy"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:271
-msgid "Paste"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:297
-msgid "Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:469
-#, python-format
-msgid "%s Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:856
-msgid "Keep error"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:857
-msgid "Keep error: all changes will be lost"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:860
-msgid "Don't stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:863
-msgid "Stop anyway"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:166 ../src/sugar/graphics/alert.py:209
-msgid "Cancel"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:170 ../src/sugar/graphics/alert.py:247
-msgid "Ok"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:219
-msgid "Continue"
-msgstr ""
-
-#: ../src/sugar/util.py:181
-msgid " and "
-msgstr ""
-
-#: ../src/sugar/util.py:182
-msgid ", "
-msgstr ""
-
-#. TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#: ../src/sugar/util.py:185
-msgid "Seconds ago"
-msgstr ""
-
-#. TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-#. "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#: ../src/sugar/util.py:189
-#, python-format
-msgid "%s ago"
-msgstr ""
-
-#. TRANS: Relative dates (eg. 1 month and 5 days).
-#: ../src/sugar/util.py:202
-#, python-format
-msgid "%d year"
-msgid_plural "%d years"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-
-#: ../src/sugar/util.py:203
-#, python-format
-msgid "%d month"
-msgid_plural "%d months"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-
-#: ../src/sugar/util.py:204
-#, python-format
-msgid "%d week"
-msgid_plural "%d weeks"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-
-#: ../src/sugar/util.py:205
-#, python-format
-msgid "%d day"
-msgid_plural "%d days"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-
-#: ../src/sugar/util.py:206
-#, python-format
-msgid "%d hour"
-msgid_plural "%d hours"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-
-#: ../src/sugar/util.py:207
-#, python-format
-msgid "%d minute"
-msgid_plural "%d minutes"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
diff --git a/po/de.po b/po/de.po
deleted file mode 100644
index 1fb7f11..0000000
--- a/po/de.po
+++ /dev/null
@@ -1,152 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# Markus Schlager <m.slg@gmx.de>, 2008.
-msgid ""
-msgstr ""
-"Project-Id-Version: sugar-toolkit\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-06-24 00:07+0530\n"
-"PO-Revision-Date: 2008-09-19 10:32-0400\n"
-"Last-Translator: Markus Schlager <m.slg@gmx.de>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Pootle 1.1.0rc2\n"
-
-#: ../src/sugar/activity/activity.py:120
-msgid "Share with:"
-msgstr "Teilen mit:"
-
-#: ../src/sugar/activity/activity.py:122
-msgid "Private"
-msgstr "Privat"
-
-#: ../src/sugar/activity/activity.py:123
-msgid "My Neighborhood"
-msgstr "Meine Umgebung"
-
-#: ../src/sugar/activity/activity.py:130
-msgid "Keep"
-msgstr "Behalten"
-
-#: ../src/sugar/activity/activity.py:136
-msgid "Stop"
-msgstr "Stopp"
-
-#: ../src/sugar/activity/activity.py:251
-msgid "Undo"
-msgstr "Rückgängig"
-
-#: ../src/sugar/activity/activity.py:256
-msgid "Redo"
-msgstr "Wiederholen"
-
-#: ../src/sugar/activity/activity.py:266
-msgid "Copy"
-msgstr "Kopieren"
-
-#: ../src/sugar/activity/activity.py:271
-msgid "Paste"
-msgstr "Einfügen"
-
-#: ../src/sugar/activity/activity.py:297
-msgid "Activity"
-msgstr "Aktivität"
-
-#: ../src/sugar/activity/activity.py:469
-#, python-format
-msgid "%s Activity"
-msgstr "%s Aktivität"
-
-#: ../src/sugar/activity/activity.py:856
-msgid "Keep error"
-msgstr "Fehler beim Speichern"
-
-#: ../src/sugar/activity/activity.py:857
-msgid "Keep error: all changes will be lost"
-msgstr "Fehler beim Speichern: Alle Änderungen gehen verloren"
-
-#: ../src/sugar/activity/activity.py:860
-msgid "Don't stop"
-msgstr "Nicht stoppen"
-
-#: ../src/sugar/activity/activity.py:863
-msgid "Stop anyway"
-msgstr "Trotzdem stoppen"
-
-#: ../src/sugar/graphics/alert.py:166 ../src/sugar/graphics/alert.py:209
-msgid "Cancel"
-msgstr "Abbrechen"
-
-#: ../src/sugar/graphics/alert.py:170 ../src/sugar/graphics/alert.py:247
-msgid "Ok"
-msgstr "Ok"
-
-#: ../src/sugar/graphics/alert.py:219
-msgid "Continue"
-msgstr "Weitermachen"
-
-#: ../src/sugar/util.py:181
-msgid " and "
-msgstr " und "
-
-#: ../src/sugar/util.py:182
-msgid ", "
-msgstr ", "
-
-#. TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#: ../src/sugar/util.py:185
-msgid "Seconds ago"
-msgstr "vor Sekunden"
-
-#. TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-#. "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#: ../src/sugar/util.py:189
-#, python-format
-msgid "%s ago"
-msgstr "vor %s"
-
-#. TRANS: Relative dates (eg. 1 month and 5 days).
-#: ../src/sugar/util.py:202
-#, python-format
-msgid "%d year"
-msgid_plural "%d years"
-msgstr[0] "%d Jahr"
-msgstr[1] "%d Jahre"
-
-#: ../src/sugar/util.py:203
-#, python-format
-msgid "%d month"
-msgid_plural "%d months"
-msgstr[0] "%d Monat"
-msgstr[1] "%d Monate"
-
-#: ../src/sugar/util.py:204
-#, python-format
-msgid "%d week"
-msgid_plural "%d weeks"
-msgstr[0] "%d Woche"
-msgstr[1] "%d Wochen"
-
-#: ../src/sugar/util.py:205
-#, python-format
-msgid "%d day"
-msgid_plural "%d days"
-msgstr[0] "%d Tag"
-msgstr[1] "%d Tage"
-
-#: ../src/sugar/util.py:206
-#, python-format
-msgid "%d hour"
-msgid_plural "%d hours"
-msgstr[0] "%d Stunde"
-msgstr[1] "%d Stunden"
-
-#: ../src/sugar/util.py:207
-#, python-format
-msgid "%d minute"
-msgid_plural "%d minutes"
-msgstr[0] "%d Minute"
-msgstr[1] "%d Minuten"
diff --git a/po/dz.po b/po/dz.po
deleted file mode 100644
index 93a56e3..0000000
--- a/po/dz.po
+++ /dev/null
@@ -1,153 +0,0 @@
-# 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: 2008-06-24 00:07+0530\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"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Translate Toolkit 1.1.1rc4\n"
-
-#: ../src/sugar/activity/activity.py:120
-msgid "Share with:"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:122
-msgid "Private"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:123
-msgid "My Neighborhood"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:130
-msgid "Keep"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:136
-msgid "Stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:251
-msgid "Undo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:256
-msgid "Redo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:266
-msgid "Copy"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:271
-msgid "Paste"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:297
-msgid "Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:469
-#, python-format
-msgid "%s Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:856
-msgid "Keep error"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:857
-msgid "Keep error: all changes will be lost"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:860
-msgid "Don't stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:863
-msgid "Stop anyway"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:166 ../src/sugar/graphics/alert.py:209
-msgid "Cancel"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:170 ../src/sugar/graphics/alert.py:247
-msgid "Ok"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:219
-msgid "Continue"
-msgstr ""
-
-#: ../src/sugar/util.py:181
-msgid " and "
-msgstr ""
-
-#: ../src/sugar/util.py:182
-msgid ", "
-msgstr ""
-
-#. TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#: ../src/sugar/util.py:185
-msgid "Seconds ago"
-msgstr ""
-
-#. TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-#. "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#: ../src/sugar/util.py:189
-#, python-format
-msgid "%s ago"
-msgstr ""
-
-#. TRANS: Relative dates (eg. 1 month and 5 days).
-#: ../src/sugar/util.py:202
-#, python-format
-msgid "%d year"
-msgid_plural "%d years"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:203
-#, python-format
-msgid "%d month"
-msgid_plural "%d months"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:204
-#, python-format
-msgid "%d week"
-msgid_plural "%d weeks"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:205
-#, python-format
-msgid "%d day"
-msgid_plural "%d days"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:206
-#, python-format
-msgid "%d hour"
-msgid_plural "%d hours"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:207
-#, python-format
-msgid "%d minute"
-msgid_plural "%d minutes"
-msgstr[0] ""
-msgstr[1] ""
diff --git a/po/el.po b/po/el.po
deleted file mode 100644
index 93a56e3..0000000
--- a/po/el.po
+++ /dev/null
@@ -1,153 +0,0 @@
-# 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: 2008-06-24 00:07+0530\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"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Translate Toolkit 1.1.1rc4\n"
-
-#: ../src/sugar/activity/activity.py:120
-msgid "Share with:"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:122
-msgid "Private"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:123
-msgid "My Neighborhood"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:130
-msgid "Keep"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:136
-msgid "Stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:251
-msgid "Undo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:256
-msgid "Redo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:266
-msgid "Copy"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:271
-msgid "Paste"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:297
-msgid "Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:469
-#, python-format
-msgid "%s Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:856
-msgid "Keep error"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:857
-msgid "Keep error: all changes will be lost"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:860
-msgid "Don't stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:863
-msgid "Stop anyway"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:166 ../src/sugar/graphics/alert.py:209
-msgid "Cancel"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:170 ../src/sugar/graphics/alert.py:247
-msgid "Ok"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:219
-msgid "Continue"
-msgstr ""
-
-#: ../src/sugar/util.py:181
-msgid " and "
-msgstr ""
-
-#: ../src/sugar/util.py:182
-msgid ", "
-msgstr ""
-
-#. TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#: ../src/sugar/util.py:185
-msgid "Seconds ago"
-msgstr ""
-
-#. TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-#. "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#: ../src/sugar/util.py:189
-#, python-format
-msgid "%s ago"
-msgstr ""
-
-#. TRANS: Relative dates (eg. 1 month and 5 days).
-#: ../src/sugar/util.py:202
-#, python-format
-msgid "%d year"
-msgid_plural "%d years"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:203
-#, python-format
-msgid "%d month"
-msgid_plural "%d months"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:204
-#, python-format
-msgid "%d week"
-msgid_plural "%d weeks"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:205
-#, python-format
-msgid "%d day"
-msgid_plural "%d days"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:206
-#, python-format
-msgid "%d hour"
-msgid_plural "%d hours"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:207
-#, python-format
-msgid "%d minute"
-msgid_plural "%d minutes"
-msgstr[0] ""
-msgstr[1] ""
diff --git a/po/en.po b/po/en.po
deleted file mode 100644
index 93a56e3..0000000
--- a/po/en.po
+++ /dev/null
@@ -1,153 +0,0 @@
-# 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: 2008-06-24 00:07+0530\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"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Translate Toolkit 1.1.1rc4\n"
-
-#: ../src/sugar/activity/activity.py:120
-msgid "Share with:"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:122
-msgid "Private"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:123
-msgid "My Neighborhood"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:130
-msgid "Keep"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:136
-msgid "Stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:251
-msgid "Undo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:256
-msgid "Redo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:266
-msgid "Copy"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:271
-msgid "Paste"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:297
-msgid "Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:469
-#, python-format
-msgid "%s Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:856
-msgid "Keep error"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:857
-msgid "Keep error: all changes will be lost"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:860
-msgid "Don't stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:863
-msgid "Stop anyway"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:166 ../src/sugar/graphics/alert.py:209
-msgid "Cancel"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:170 ../src/sugar/graphics/alert.py:247
-msgid "Ok"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:219
-msgid "Continue"
-msgstr ""
-
-#: ../src/sugar/util.py:181
-msgid " and "
-msgstr ""
-
-#: ../src/sugar/util.py:182
-msgid ", "
-msgstr ""
-
-#. TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#: ../src/sugar/util.py:185
-msgid "Seconds ago"
-msgstr ""
-
-#. TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-#. "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#: ../src/sugar/util.py:189
-#, python-format
-msgid "%s ago"
-msgstr ""
-
-#. TRANS: Relative dates (eg. 1 month and 5 days).
-#: ../src/sugar/util.py:202
-#, python-format
-msgid "%d year"
-msgid_plural "%d years"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:203
-#, python-format
-msgid "%d month"
-msgid_plural "%d months"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:204
-#, python-format
-msgid "%d week"
-msgid_plural "%d weeks"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:205
-#, python-format
-msgid "%d day"
-msgid_plural "%d days"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:206
-#, python-format
-msgid "%d hour"
-msgid_plural "%d hours"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:207
-#, python-format
-msgid "%d minute"
-msgid_plural "%d minutes"
-msgstr[0] ""
-msgstr[1] ""
diff --git a/po/es.po b/po/es.po
deleted file mode 100644
index 0a9126f..0000000
--- a/po/es.po
+++ /dev/null
@@ -1,630 +0,0 @@
-# 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: olpc-sugar\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-06-24 00:07+0530\n"
-"PO-Revision-Date: 2008-07-20 14:39-0400\n"
-"Last-Translator: Chema Q <jameson.quinn@gmail.com>\n"
-"Language-Team: Fedora Spanish <fedora-trans-es@redhat.com>\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 1.1.0rc2\n"
-"X-Poedit-Language: Spanish\n"
-"X-Poedit-SourceCharset: utf-8\n"
-"X-Poedit-Basepath: .\n"
-
-#: ../src/sugar/activity/activity.py:120
-msgid "Share with:"
-msgstr "Compartir con:"
-
-#: ../src/sugar/activity/activity.py:122
-msgid "Private"
-msgstr "Privado"
-
-#: ../src/sugar/activity/activity.py:123
-msgid "My Neighborhood"
-msgstr "Mi Vecindario"
-
-# self._stop_item = MenuItem(_('Stop download'), 'stock-close')
-# TODO: Implement stopping downloads
-# self._stop_item.connect('activate', self._stop_item_activate_cb)
-# self.append_menu_item(self._stop_item)
-#: ../src/sugar/activity/activity.py:130
-msgid "Keep"
-msgstr "Guardar"
-
-#: ../src/sugar/activity/activity.py:136
-msgid "Stop"
-msgstr "Parar"
-
-#: ../src/sugar/activity/activity.py:251
-msgid "Undo"
-msgstr "Deshacer"
-
-#: ../src/sugar/activity/activity.py:256
-msgid "Redo"
-msgstr "Rehacer"
-
-#: ../src/sugar/activity/activity.py:266
-msgid "Copy"
-msgstr "Copiar"
-
-#: ../src/sugar/activity/activity.py:271
-msgid "Paste"
-msgstr "Pegar"
-
-#: ../src/sugar/activity/activity.py:297
-msgid "Activity"
-msgstr "Actividad"
-
-#: ../src/sugar/activity/activity.py:469
-#, python-format
-msgid "%s Activity"
-msgstr "Actividad %s"
-
-#: ../src/sugar/activity/activity.py:856
-msgid "Keep error"
-msgstr "Error al guardar"
-
-#: ../src/sugar/activity/activity.py:857
-msgid "Keep error: all changes will be lost"
-msgstr "Error al guardar: todos los cambios se perderán"
-
-#: ../src/sugar/activity/activity.py:860
-msgid "Don't stop"
-msgstr "No detener"
-
-#: ../src/sugar/activity/activity.py:863
-msgid "Stop anyway"
-msgstr "Detener de todas formas"
-
-#: ../src/sugar/graphics/alert.py:166 ../src/sugar/graphics/alert.py:209
-msgid "Cancel"
-msgstr "Cancelar"
-
-#: ../src/sugar/graphics/alert.py:170 ../src/sugar/graphics/alert.py:247
-msgid "Ok"
-msgstr "Ok"
-
-#: ../src/sugar/graphics/alert.py:219
-msgid "Continue"
-msgstr "Continuar"
-
-#: ../src/sugar/util.py:181
-msgid " and "
-msgstr " y "
-
-#: ../src/sugar/util.py:182
-msgid ", "
-msgstr ", "
-
-#. TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#: ../src/sugar/util.py:185
-msgid "Seconds ago"
-msgstr "Segundos atrás"
-
-# I used an expression, not a literal translation, but I think it's OK.
-#. TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-#. "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#: ../src/sugar/util.py:189
-#, python-format
-msgid "%s ago"
-msgstr "%s atrás"
-
-# No entiendo porque colocaron el plural igual que el singular.
-# Traduction: I don't know why somebody wrote the same for plural and singular traduction.
-#. TRANS: Relative dates (eg. 1 month and 5 days).
-#: ../src/sugar/util.py:202
-#, python-format
-msgid "%d year"
-msgid_plural "%d years"
-msgstr[0] "%d año"
-msgstr[1] "%d años"
-
-#: ../src/sugar/util.py:203
-#, python-format
-msgid "%d month"
-msgid_plural "%d months"
-msgstr[0] "%d mes"
-msgstr[1] "%d meses"
-
-#: ../src/sugar/util.py:204
-#, python-format
-msgid "%d week"
-msgid_plural "%d weeks"
-msgstr[0] "%d semana"
-msgstr[1] "%d semanas"
-
-#: ../src/sugar/util.py:205
-#, python-format
-msgid "%d day"
-msgid_plural "%d days"
-msgstr[0] "%d día"
-msgstr[1] "%d días"
-
-#: ../src/sugar/util.py:206
-#, python-format
-msgid "%d hour"
-msgid_plural "%d hours"
-msgstr[0] "%d hora"
-msgstr[1] "%d horas"
-
-#: ../src/sugar/util.py:207
-#, python-format
-msgid "%d minute"
-msgid_plural "%d minutes"
-msgstr[0] "%d minuto"
-msgstr[1] "%d minutos"
-
-#~ msgid "Name:"
-#~ msgstr "Nombre:"
-
-#~ msgid "Click to change color:"
-#~ msgstr "Clic para cambiar de color:"
-
-#~ msgid "Back"
-#~ msgstr "Atrás"
-
-#~ msgid "Done"
-#~ msgstr "Hecho"
-
-#~ msgid "Next"
-#~ msgstr "Siguiente"
-
-#~ msgid "Remove friend"
-#~ msgstr "Eliminar amigo"
-
-#~ msgid "Make friend"
-#~ msgstr "Agregar amigo"
-
-#~ msgid "Invite to %s"
-#~ msgstr "invitar a %s"
-
-#~ msgid "Remove"
-#~ msgstr "Eliminar"
-
-#~ msgid "Open"
-#~ msgstr "Abrir"
-
-#~ msgid "Open with"
-#~ msgstr "Abrir con"
-
-#~ msgid "Clipboard object: %s."
-#~ msgstr "Objeto de portapapel: %s."
-
-#~ msgid "Key Type:"
-#~ msgstr "Tipo de Tecla"
-
-#~ msgid "Authentication Type:"
-#~ msgstr "Tipo de Autenticación:"
-
-#~ msgid "Encryption Type:"
-#~ msgstr "Tipo de Encriptación:"
-
-#~ msgid "Screenshot"
-#~ msgstr "Captura de pantalla"
-
-#~ msgid "List view"
-#~ msgstr "Vista en lista"
-
-#~ msgid "<Ctrl>L"
-#~ msgstr "<Ctrl>L"
-
-#~ msgid "<Ctrl>R"
-#~ msgstr "<Ctrl>R"
-
-#~ msgid "Connect"
-#~ msgstr "Conectar"
-
-#~ msgid "Disconnect"
-#~ msgstr "Desconectar"
-
-# Only show disconnect when there's a mesh device, because mesh takes
-# priority over the normal wireless device. NM doesn't have a "disconnect"
-# method for a device either (for various reasons) so this doesn't
-# have a good mapping
-#, fuzzy
-#~ msgid "Disconnecting..."
-#~ msgstr "Desconectando..."
-
-#~ msgid "Connecting..."
-#~ msgstr "Conectando..."
-
-# TODO: show the channel number
-#~ msgid "Connected"
-#~ msgstr "Conectado"
-
-#~ msgid "Mesh Network"
-#~ msgstr "Red Malla"
-
-# Only show disconnect when there's a mesh device, because mesh takes
-# priority over the normal wireless device. NM doesn't have a "disconnect"
-# method for a device either (for various reasons) so this doesn't
-# have a good mapping
-#~ msgid "Disconnect..."
-#~ msgstr "Desconectando..."
-
-#~ msgid "Resume"
-#~ msgstr "Resumir"
-
-#~ msgid "Join"
-#~ msgstr "Unirse"
-
-#~ msgid "My Battery"
-#~ msgstr "Mi batería"
-
-#~ msgid "Charging"
-#~ msgstr "Cargando"
-
-#~ msgid "Very little power remaining"
-#~ msgstr "Queda muy poca batería"
-
-#~ msgid "%(hour)d:%(min).2d remaining"
-#~ msgstr "Quedan %(hour)d:%(min).2d"
-
-#~ msgid "Charged"
-#~ msgstr "Cargada"
-
-#~ msgid "My Speakers"
-#~ msgstr "Mis parlantes"
-
-# la traducción la tome del AlsaMixer de Gnome.
-#, fuzzy
-#~ msgid "Unmute"
-#~ msgstr "Dar voz"
-
-#~ msgid "Mute"
-#~ msgstr "Silenciar"
-
-#~ msgid "Disconnected"
-#~ msgstr "Desconectado"
-
-#~ msgid "Channel"
-#~ msgstr "Canal"
-
-#~ msgid "Neighborhood"
-#~ msgstr "Vecindario"
-
-#~ msgid "Group"
-#~ msgstr "Grupo"
-
-#~ msgid "Home"
-#~ msgstr "Hogar"
-
-#~ msgid ""
-#~ "sugar-control-panel: WARNING, found more than one option with the same "
-#~ "name: %s module: %r"
-#~ msgstr ""
-#~ "sugar-control-panel: ADVERTENCIA, hay más de una opción con el mismo "
-#~ "nombre: %s módulo: %r"
-
-#~ msgid "sugar-control-panel: key=%s not an available option"
-#~ msgstr "sugar-control-panel: clave=%s no es una opción disponible"
-
-#~ msgid "sugar-control-panel: %s"
-#~ msgstr "sugar-control-panel: %s"
-
-#~ 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"
-#~ " "
-#~ msgstr ""
-#~ "Uso: sugar-control-panel [opción] clave [args ...] \n"
-#~ " Control para el ambiente de sugar. \n"
-#~ " Opciones: \n"
-#~ " -h muestra este mensaje de ayuda y sale \n"
-#~ " -l enumera todas las opciones disponibles \n"
-#~ " -h clave muestra la información sobre esta clave \n"
-#~ " -g clave obtiene el valor actual de la clave \n"
-#~ " -s clave establece el valor actual para la clave \n"
-#~ " "
-
-#~ msgid "To apply your changes you have to restart sugar.\n"
-#~ msgstr "Para aplicar sus cambios tiene que reiniciar sugar.\n"
-
-#~ msgid "Changes require restart"
-#~ msgstr "Los cambios requieren reiniciar"
-
-#~ msgid "Warning"
-#~ msgstr "Advertencia"
-
-#~ msgid "Cancel changes"
-#~ msgstr "Cancelar cambios"
-
-#~ msgid "Later"
-#~ msgstr "Después"
-
-#~ msgid "Restart now"
-#~ msgstr "Reiniciar ahora"
-
-#~ msgid "You must enter a name."
-#~ msgstr "Debe ingresar un nombre."
-
-#~ msgid "stroke: color=%s hue=%s"
-#~ msgstr "Borde: color=%s tonalidad=%s"
-
-#~ msgid "stroke: %s"
-#~ msgstr "Borde: %s"
-
-#~ msgid "fill: color=%s hue=%s"
-#~ msgstr "relleno: color=%s tonalidad=%s"
-
-#~ msgid "fill: %s"
-#~ msgstr "relleno: %s"
-
-#~ msgid "Error in specified color modifiers."
-#~ msgstr "Error en modificadores de color especificados."
-
-#~ msgid "Error in specified colors."
-#~ msgstr "Error en colores especificados."
-
-#~ msgid "Not available"
-#~ msgstr "No disponible"
-
-#~ msgid "Error timezone does not exist."
-#~ msgstr "Error, zona horaria no existe."
-
-#, fuzzy
-#~ msgid "Value must be an integer."
-#~ msgstr "El valor debe ser un entero."
-
-#, fuzzy
-#~ msgid "Could not access ~/.i18n. Create standard settings."
-#~ msgstr "No se puede acceder a ~/.i18n. Crear ajustes estándar."
-
-#~ msgid "Language for code=%s could not be determined."
-#~ msgstr "El lenguaje del código=%s no pudo ser determinado."
-
-#~ msgid "Sorry I do not speak '%s'."
-#~ msgstr "Lo siento yo no hablo '%s'."
-
-#~ msgid "You must enter a server."
-#~ msgstr "Debe ingresar un servidor"
-
-#~ msgid "State is unknown."
-#~ msgstr "Estado desconocido."
-
-#~ msgid "Error in specified radio argument use on/off."
-#~ msgstr "Error en argumento especificado de radio use on/off."
-
-#~ msgid "About Me"
-#~ msgstr "Acerca de mí."
-
-#, fuzzy
-#~ msgid "Click to change your color:"
-#~ msgstr "Clic para cambiar de color:"
-
-#~ msgid "About my XO"
-#~ msgstr "Acerca de mi XO"
-
-#~ msgid "Identity"
-#~ msgstr "Identidad"
-
-#~ msgid "Serial Number:"
-#~ msgstr "Número de Serie:"
-
-#~ msgid "Software"
-#~ msgstr "Software"
-
-#, fuzzy
-#~ msgid "Build:"
-#~ msgstr "Ensamble"
-
-#~ msgid "Firmware:"
-#~ msgstr "Firmware"
-
-#~ msgid "Date & Time"
-#~ msgstr "Fecha y Hora"
-
-#~ msgid "Timezone"
-#~ msgstr "Zona horaria"
-
-#~ msgid "Frame"
-#~ msgstr "Cuadro"
-
-#~ msgid "never"
-#~ msgstr "nunca"
-
-#~ msgid "instantaneous"
-#~ msgstr "instantáneo"
-
-#, fuzzy
-#~ msgid "%s seconds"
-#~ msgstr "%s segundos"
-
-#~ msgid "Activation Delay"
-#~ msgstr "Activación del retraso"
-
-#~ msgid "Corner"
-#~ msgstr "Esquina"
-
-#~ msgid "Edge"
-#~ msgstr "Borde"
-
-#~ msgid "Language"
-#~ msgstr "Idioma"
-
-#~ msgid "Network"
-#~ msgstr "Red"
-
-#~ msgid "Wireless"
-#~ msgstr "Inalámbrica"
-
-#~ msgid "Radio:"
-#~ msgstr "Radio:"
-
-#~ msgid "Mesh"
-#~ msgstr "Malla"
-
-#~ msgid "Server:"
-#~ msgstr "Servidor:"
-
-#, fuzzy
-#~ msgid "Connected to a School Mesh Portal"
-#~ msgstr "Conectado a un portal malla de colegio"
-
-# "portal malla de colegio", en Castellano de España suena fatal... ¿Realmente se quiere decir malla?
-#, fuzzy
-#~ msgid "Looking for a School Mesh Portal..."
-#~ msgstr "Buscando un portal malla de colegio..."
-
-#, fuzzy
-#~ msgid "Connected to an XO Mesh Portal"
-#~ msgstr "Conectado a un portal malla XO"
-
-#, fuzzy
-#~ msgid "Looking for an XO Mesh Portal..."
-#~ msgstr "Buscando un portal malla XO..."
-
-#, fuzzy
-#~ msgid "Connected to a Simple Mesh"
-#~ msgstr "Conectado a una Malla Simple"
-
-#, fuzzy
-#~ msgid "Starting a Simple Mesh"
-#~ msgstr "Empezando una Malla Simple"
-
-#, fuzzy
-#~ msgid "Unknown Mesh"
-#~ msgstr "Malla Desconocida"
-
-#~ msgid "Decline"
-#~ msgstr "Rechazar"
-
-#~ msgid "Control Panel"
-#~ msgstr "Panel de Control"
-
-#~ msgid "Restart"
-#~ msgstr "Reiniciar"
-
-#~ msgid "Shutdown"
-#~ msgstr "Apagar"
-
-#~ msgid "Register"
-#~ msgstr "Registro"
-
-#~ msgid "Starting..."
-#~ msgstr "Iniciando..."
-
-#~ msgid "Start"
-#~ msgstr "Iniciar"
-
-#~ msgid "Show contents"
-#~ msgstr "Mostrar contenidos"
-
-#~ msgid "%(free_space)d MB Free"
-#~ msgstr "%(free_space)d MB libres"
-
-#, fuzzy
-#~ msgid "Ring view"
-#~ msgstr "Vista de llamada"
-
-#~ msgid "Remove from ring"
-#~ msgstr "Eliminar del anillo"
-
-#~ msgid "Add to ring"
-#~ msgstr "Agregar al anillo"
-
-#~ msgid "Changes require a sugar restart to take effect."
-#~ msgstr "Los cambios requieren reiniciar sugar para ser efectivos."
-
-#~ msgid "Changes require restart to take effect"
-#~ msgstr "Los cambios requieren reiniciar para ser efectivos"
-
-#~ msgid "Delay in milliseconds:"
-#~ msgstr "Retraso en milisegundos:"
-
-#~ msgid "Hot Corners"
-#~ msgstr "Esquinas Activas"
-
-#~ msgid "Warm Edges"
-#~ msgstr "Bordes Activos"
-
-#~ msgid "off"
-#~ msgstr "apagado"
-
-#~ msgid "on"
-#~ msgstr "encendido"
-
-#~ msgid "Permission denied. You need to be root to run this method."
-#~ msgstr ""
-#~ "permiso denegado. Usted necesita ser root para ejecutar este método."
-
-#~ msgid "Error in reading timezone"
-#~ msgstr "Error en la lectura de la zona horaria"
-
-#~ msgid "Error copying timezone (from %s): %s"
-#~ msgstr "Error copiando zona horaria (desde %s): %s"
-
-#~ msgid "Changing permission of timezone: %s"
-#~ msgstr "Cambiando permisos de zona horaria: %s"
-
-#~ msgid "About this XO"
-#~ msgstr "Acerca de este XO"
-
-#~ msgid "Add to journal"
-#~ msgstr "Agregar al diario"
-
-#~ msgid "Reboot"
-#~ msgstr "Reiniciar"
-
-#~ msgid "My Battery life"
-#~ msgstr "Carga de mi batería"
-
-#~ msgid "Battery charging"
-#~ msgstr "Batería cargándose"
-
-#~ msgid "Battery discharging"
-#~ msgstr "Batería descargandose"
-
-#~ msgid "Battery fully charged"
-#~ msgstr "Batería totalmente cargada"
-
-#~ msgid "Invite"
-#~ msgstr "Invitar"
-
-#~ msgid "Text"
-#~ msgstr "Texto"
-
-#~ msgid "Image"
-#~ msgstr "Imagen"
-
-#~ msgid "Audio"
-#~ msgstr "Audio"
-
-#~ msgid "Video"
-#~ msgstr "Video"
-
-#~ msgid "Etoys project"
-#~ msgstr "Proyecto Etoys"
-
-#~ msgid "Link"
-#~ msgstr "Enlace"
-
-#~ msgid ""
-#~ "Text snippetWeb PagePDF fileMS Word fileRTF fileAbiword fileSqueak "
-#~ "projectOpenOffice text fileObjectPick a buddy pictureMy Picture:My Color:"
-#~ "Stop downloadCloseNo optionsSend"
-#~ msgstr ""
-#~ "Recorte de textoPágina webArchivo PDFArchivo MS-WordArchivo RTFArchivo "
-#~ "AbiwordProyecto de SqueakArchivo de texto de OpenOfficeObjetoElegir la "
-#~ "imagen de amigoMi imagen:Mi color:Interrumpir la bajadaCerrarNinguna "
-#~ "opciónEnviar"
-
-#~ msgid "OK"
-#~ msgstr "OK"
-
-#~ msgid "%d second"
-#~ msgstr "%d segundo"
diff --git a/po/fa.po b/po/fa.po
deleted file mode 100644
index 93a56e3..0000000
--- a/po/fa.po
+++ /dev/null
@@ -1,153 +0,0 @@
-# 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: 2008-06-24 00:07+0530\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"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Translate Toolkit 1.1.1rc4\n"
-
-#: ../src/sugar/activity/activity.py:120
-msgid "Share with:"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:122
-msgid "Private"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:123
-msgid "My Neighborhood"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:130
-msgid "Keep"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:136
-msgid "Stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:251
-msgid "Undo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:256
-msgid "Redo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:266
-msgid "Copy"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:271
-msgid "Paste"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:297
-msgid "Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:469
-#, python-format
-msgid "%s Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:856
-msgid "Keep error"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:857
-msgid "Keep error: all changes will be lost"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:860
-msgid "Don't stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:863
-msgid "Stop anyway"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:166 ../src/sugar/graphics/alert.py:209
-msgid "Cancel"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:170 ../src/sugar/graphics/alert.py:247
-msgid "Ok"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:219
-msgid "Continue"
-msgstr ""
-
-#: ../src/sugar/util.py:181
-msgid " and "
-msgstr ""
-
-#: ../src/sugar/util.py:182
-msgid ", "
-msgstr ""
-
-#. TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#: ../src/sugar/util.py:185
-msgid "Seconds ago"
-msgstr ""
-
-#. TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-#. "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#: ../src/sugar/util.py:189
-#, python-format
-msgid "%s ago"
-msgstr ""
-
-#. TRANS: Relative dates (eg. 1 month and 5 days).
-#: ../src/sugar/util.py:202
-#, python-format
-msgid "%d year"
-msgid_plural "%d years"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:203
-#, python-format
-msgid "%d month"
-msgid_plural "%d months"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:204
-#, python-format
-msgid "%d week"
-msgid_plural "%d weeks"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:205
-#, python-format
-msgid "%d day"
-msgid_plural "%d days"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:206
-#, python-format
-msgid "%d hour"
-msgid_plural "%d hours"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:207
-#, python-format
-msgid "%d minute"
-msgid_plural "%d minutes"
-msgstr[0] ""
-msgstr[1] ""
diff --git a/po/fa_AF.po b/po/fa_AF.po
deleted file mode 100644
index 93a56e3..0000000
--- a/po/fa_AF.po
+++ /dev/null
@@ -1,153 +0,0 @@
-# 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: 2008-06-24 00:07+0530\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"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Translate Toolkit 1.1.1rc4\n"
-
-#: ../src/sugar/activity/activity.py:120
-msgid "Share with:"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:122
-msgid "Private"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:123
-msgid "My Neighborhood"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:130
-msgid "Keep"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:136
-msgid "Stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:251
-msgid "Undo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:256
-msgid "Redo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:266
-msgid "Copy"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:271
-msgid "Paste"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:297
-msgid "Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:469
-#, python-format
-msgid "%s Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:856
-msgid "Keep error"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:857
-msgid "Keep error: all changes will be lost"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:860
-msgid "Don't stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:863
-msgid "Stop anyway"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:166 ../src/sugar/graphics/alert.py:209
-msgid "Cancel"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:170 ../src/sugar/graphics/alert.py:247
-msgid "Ok"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:219
-msgid "Continue"
-msgstr ""
-
-#: ../src/sugar/util.py:181
-msgid " and "
-msgstr ""
-
-#: ../src/sugar/util.py:182
-msgid ", "
-msgstr ""
-
-#. TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#: ../src/sugar/util.py:185
-msgid "Seconds ago"
-msgstr ""
-
-#. TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-#. "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#: ../src/sugar/util.py:189
-#, python-format
-msgid "%s ago"
-msgstr ""
-
-#. TRANS: Relative dates (eg. 1 month and 5 days).
-#: ../src/sugar/util.py:202
-#, python-format
-msgid "%d year"
-msgid_plural "%d years"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:203
-#, python-format
-msgid "%d month"
-msgid_plural "%d months"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:204
-#, python-format
-msgid "%d week"
-msgid_plural "%d weeks"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:205
-#, python-format
-msgid "%d day"
-msgid_plural "%d days"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:206
-#, python-format
-msgid "%d hour"
-msgid_plural "%d hours"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:207
-#, python-format
-msgid "%d minute"
-msgid_plural "%d minutes"
-msgstr[0] ""
-msgstr[1] ""
diff --git a/po/ff.po b/po/ff.po
deleted file mode 100644
index 93a56e3..0000000
--- a/po/ff.po
+++ /dev/null
@@ -1,153 +0,0 @@
-# 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: 2008-06-24 00:07+0530\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"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Translate Toolkit 1.1.1rc4\n"
-
-#: ../src/sugar/activity/activity.py:120
-msgid "Share with:"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:122
-msgid "Private"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:123
-msgid "My Neighborhood"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:130
-msgid "Keep"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:136
-msgid "Stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:251
-msgid "Undo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:256
-msgid "Redo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:266
-msgid "Copy"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:271
-msgid "Paste"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:297
-msgid "Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:469
-#, python-format
-msgid "%s Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:856
-msgid "Keep error"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:857
-msgid "Keep error: all changes will be lost"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:860
-msgid "Don't stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:863
-msgid "Stop anyway"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:166 ../src/sugar/graphics/alert.py:209
-msgid "Cancel"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:170 ../src/sugar/graphics/alert.py:247
-msgid "Ok"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:219
-msgid "Continue"
-msgstr ""
-
-#: ../src/sugar/util.py:181
-msgid " and "
-msgstr ""
-
-#: ../src/sugar/util.py:182
-msgid ", "
-msgstr ""
-
-#. TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#: ../src/sugar/util.py:185
-msgid "Seconds ago"
-msgstr ""
-
-#. TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-#. "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#: ../src/sugar/util.py:189
-#, python-format
-msgid "%s ago"
-msgstr ""
-
-#. TRANS: Relative dates (eg. 1 month and 5 days).
-#: ../src/sugar/util.py:202
-#, python-format
-msgid "%d year"
-msgid_plural "%d years"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:203
-#, python-format
-msgid "%d month"
-msgid_plural "%d months"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:204
-#, python-format
-msgid "%d week"
-msgid_plural "%d weeks"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:205
-#, python-format
-msgid "%d day"
-msgid_plural "%d days"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:206
-#, python-format
-msgid "%d hour"
-msgid_plural "%d hours"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:207
-#, python-format
-msgid "%d minute"
-msgid_plural "%d minutes"
-msgstr[0] ""
-msgstr[1] ""
diff --git a/po/fr.po b/po/fr.po
deleted file mode 100644
index d60935b..0000000
--- a/po/fr.po
+++ /dev/null
@@ -1,189 +0,0 @@
-# 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: 2009-01-20 00:31-0500\n"
-"PO-Revision-Date: 2009-01-27 16:47-0500\n"
-"Last-Translator: samy boutayeb <s.boutayeb@free.fr>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Pootle 1.1.0rc2\n"
-
-#: ../src/sugar/activity/activity.py:123
-msgid "Share with:"
-msgstr "Partager avec:"
-
-#: ../src/sugar/activity/activity.py:125
-msgid "Private"
-msgstr "Privé"
-
-#: ../src/sugar/activity/activity.py:126
-msgid "My Neighborhood"
-msgstr "Mon voisinage"
-
-#: ../src/sugar/activity/activity.py:133
-#: ../src/sugar/activity/namingalert.py:65
-msgid "Keep"
-msgstr "Conserver"
-
-#: ../src/sugar/activity/activity.py:144
-msgid "Stop"
-msgstr "Arrêter"
-
-#: ../src/sugar/activity/activity.py:258
-msgid "Undo"
-msgstr "Annuler"
-
-#: ../src/sugar/activity/activity.py:263
-msgid "Redo"
-msgstr "Répéter"
-
-#: ../src/sugar/activity/activity.py:273
-msgid "Copy"
-msgstr "Copier"
-
-#: ../src/sugar/activity/activity.py:278
-msgid "Paste"
-msgstr "Coller"
-
-#: ../src/sugar/activity/activity.py:304
-msgid "Activity"
-msgstr "Activité"
-
-#: ../src/sugar/activity/activity.py:542
-#, python-format
-msgid "%s Activity"
-msgstr "Activité %s"
-
-#: ../src/sugar/activity/activity.py:910
-msgid "Keep error"
-msgstr "Erreur d'enregistrement"
-
-#: ../src/sugar/activity/activity.py:911
-msgid "Keep error: all changes will be lost"
-msgstr "Erreur d'enregistrement : toutes les modifications seront perdues"
-
-#: ../src/sugar/activity/activity.py:914
-msgid "Don't stop"
-msgstr "Ne pas arrêter"
-
-#: ../src/sugar/activity/activity.py:917
-msgid "Stop anyway"
-msgstr "Arrêter quand même"
-
-#: ../src/sugar/activity/namingalert.py:60
-msgid "Name this entry"
-msgstr "Donner un nom à cette entrée"
-
-#: ../src/sugar/activity/namingalert.py:248
-msgid "Untitled"
-msgstr "Sans titre"
-
-#: ../src/sugar/activity/namingalert.py:255
-msgid "Description:"
-msgstr "Description :"
-
-#: ../src/sugar/activity/namingalert.py:279
-msgid "Tags:"
-msgstr "Étiquettes :"
-
-#: ../src/sugar/graphics/alert.py:288 ../src/sugar/graphics/alert.py:367
-msgid "Cancel"
-msgstr "Annuler"
-
-#: ../src/sugar/graphics/alert.py:292 ../src/sugar/graphics/alert.py:426
-msgid "Ok"
-msgstr "Ok"
-
-#: ../src/sugar/graphics/alert.py:377
-msgid "Continue"
-msgstr "Continuer"
-
-#: ../src/sugar/graphics/colorbutton.py:49
-msgid "Choose a color"
-msgstr "Choisir une couleur"
-
-#: ../src/sugar/graphics/colorbutton.py:262
-msgid "Red"
-msgstr "Rouge"
-
-#: ../src/sugar/graphics/colorbutton.py:264
-msgid "Green"
-msgstr "Vert"
-
-#: ../src/sugar/graphics/colorbutton.py:266
-msgid "Blue"
-msgstr "Bleu"
-
-#: ../src/sugar/util.py:194
-msgid " and "
-msgstr " et "
-
-#: ../src/sugar/util.py:195
-msgid ", "
-msgstr ", "
-
-# TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#. TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#: ../src/sugar/util.py:198
-msgid "Seconds ago"
-msgstr "A l'instant"
-
-# TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-# "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#. TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-#. "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#: ../src/sugar/util.py:202
-#, python-format
-msgid "%s ago"
-msgstr "il y a %s"
-
-# TRANS: Relative dates (eg. 1 month and 5 days).
-#. TRANS: Relative dates (eg. 1 month and 5 days).
-#: ../src/sugar/util.py:215
-#, python-format
-msgid "%d year"
-msgid_plural "%d years"
-msgstr[0] "%d an"
-msgstr[1] "%d ans"
-
-#: ../src/sugar/util.py:216
-#, python-format
-msgid "%d month"
-msgid_plural "%d months"
-msgstr[0] "%d mois"
-msgstr[1] "%d mois"
-
-#: ../src/sugar/util.py:217
-#, python-format
-msgid "%d week"
-msgid_plural "%d weeks"
-msgstr[0] "%d semaine"
-msgstr[1] "%d semaines"
-
-#: ../src/sugar/util.py:218
-#, python-format
-msgid "%d day"
-msgid_plural "%d days"
-msgstr[0] "%d jour"
-msgstr[1] "%d jours"
-
-#: ../src/sugar/util.py:219
-#, python-format
-msgid "%d hour"
-msgid_plural "%d hours"
-msgstr[0] "%d heure"
-msgstr[1] "%d heures"
-
-#: ../src/sugar/util.py:220
-#, python-format
-msgid "%d minute"
-msgid_plural "%d minutes"
-msgstr[0] "%d minute"
-msgstr[1] "%d minutes"
diff --git a/po/gu.po b/po/gu.po
deleted file mode 100644
index 93a56e3..0000000
--- a/po/gu.po
+++ /dev/null
@@ -1,153 +0,0 @@
-# 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: 2008-06-24 00:07+0530\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"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Translate Toolkit 1.1.1rc4\n"
-
-#: ../src/sugar/activity/activity.py:120
-msgid "Share with:"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:122
-msgid "Private"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:123
-msgid "My Neighborhood"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:130
-msgid "Keep"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:136
-msgid "Stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:251
-msgid "Undo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:256
-msgid "Redo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:266
-msgid "Copy"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:271
-msgid "Paste"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:297
-msgid "Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:469
-#, python-format
-msgid "%s Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:856
-msgid "Keep error"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:857
-msgid "Keep error: all changes will be lost"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:860
-msgid "Don't stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:863
-msgid "Stop anyway"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:166 ../src/sugar/graphics/alert.py:209
-msgid "Cancel"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:170 ../src/sugar/graphics/alert.py:247
-msgid "Ok"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:219
-msgid "Continue"
-msgstr ""
-
-#: ../src/sugar/util.py:181
-msgid " and "
-msgstr ""
-
-#: ../src/sugar/util.py:182
-msgid ", "
-msgstr ""
-
-#. TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#: ../src/sugar/util.py:185
-msgid "Seconds ago"
-msgstr ""
-
-#. TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-#. "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#: ../src/sugar/util.py:189
-#, python-format
-msgid "%s ago"
-msgstr ""
-
-#. TRANS: Relative dates (eg. 1 month and 5 days).
-#: ../src/sugar/util.py:202
-#, python-format
-msgid "%d year"
-msgid_plural "%d years"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:203
-#, python-format
-msgid "%d month"
-msgid_plural "%d months"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:204
-#, python-format
-msgid "%d week"
-msgid_plural "%d weeks"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:205
-#, python-format
-msgid "%d day"
-msgid_plural "%d days"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:206
-#, python-format
-msgid "%d hour"
-msgid_plural "%d hours"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:207
-#, python-format
-msgid "%d minute"
-msgid_plural "%d minutes"
-msgstr[0] ""
-msgstr[1] ""
diff --git a/po/ha.po b/po/ha.po
deleted file mode 100644
index 93a56e3..0000000
--- a/po/ha.po
+++ /dev/null
@@ -1,153 +0,0 @@
-# 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: 2008-06-24 00:07+0530\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"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Translate Toolkit 1.1.1rc4\n"
-
-#: ../src/sugar/activity/activity.py:120
-msgid "Share with:"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:122
-msgid "Private"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:123
-msgid "My Neighborhood"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:130
-msgid "Keep"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:136
-msgid "Stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:251
-msgid "Undo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:256
-msgid "Redo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:266
-msgid "Copy"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:271
-msgid "Paste"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:297
-msgid "Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:469
-#, python-format
-msgid "%s Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:856
-msgid "Keep error"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:857
-msgid "Keep error: all changes will be lost"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:860
-msgid "Don't stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:863
-msgid "Stop anyway"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:166 ../src/sugar/graphics/alert.py:209
-msgid "Cancel"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:170 ../src/sugar/graphics/alert.py:247
-msgid "Ok"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:219
-msgid "Continue"
-msgstr ""
-
-#: ../src/sugar/util.py:181
-msgid " and "
-msgstr ""
-
-#: ../src/sugar/util.py:182
-msgid ", "
-msgstr ""
-
-#. TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#: ../src/sugar/util.py:185
-msgid "Seconds ago"
-msgstr ""
-
-#. TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-#. "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#: ../src/sugar/util.py:189
-#, python-format
-msgid "%s ago"
-msgstr ""
-
-#. TRANS: Relative dates (eg. 1 month and 5 days).
-#: ../src/sugar/util.py:202
-#, python-format
-msgid "%d year"
-msgid_plural "%d years"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:203
-#, python-format
-msgid "%d month"
-msgid_plural "%d months"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:204
-#, python-format
-msgid "%d week"
-msgid_plural "%d weeks"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:205
-#, python-format
-msgid "%d day"
-msgid_plural "%d days"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:206
-#, python-format
-msgid "%d hour"
-msgid_plural "%d hours"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:207
-#, python-format
-msgid "%d minute"
-msgid_plural "%d minutes"
-msgstr[0] ""
-msgstr[1] ""
diff --git a/po/he.po b/po/he.po
deleted file mode 100644
index 93a56e3..0000000
--- a/po/he.po
+++ /dev/null
@@ -1,153 +0,0 @@
-# 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: 2008-06-24 00:07+0530\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"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Translate Toolkit 1.1.1rc4\n"
-
-#: ../src/sugar/activity/activity.py:120
-msgid "Share with:"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:122
-msgid "Private"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:123
-msgid "My Neighborhood"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:130
-msgid "Keep"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:136
-msgid "Stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:251
-msgid "Undo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:256
-msgid "Redo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:266
-msgid "Copy"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:271
-msgid "Paste"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:297
-msgid "Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:469
-#, python-format
-msgid "%s Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:856
-msgid "Keep error"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:857
-msgid "Keep error: all changes will be lost"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:860
-msgid "Don't stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:863
-msgid "Stop anyway"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:166 ../src/sugar/graphics/alert.py:209
-msgid "Cancel"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:170 ../src/sugar/graphics/alert.py:247
-msgid "Ok"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:219
-msgid "Continue"
-msgstr ""
-
-#: ../src/sugar/util.py:181
-msgid " and "
-msgstr ""
-
-#: ../src/sugar/util.py:182
-msgid ", "
-msgstr ""
-
-#. TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#: ../src/sugar/util.py:185
-msgid "Seconds ago"
-msgstr ""
-
-#. TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-#. "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#: ../src/sugar/util.py:189
-#, python-format
-msgid "%s ago"
-msgstr ""
-
-#. TRANS: Relative dates (eg. 1 month and 5 days).
-#: ../src/sugar/util.py:202
-#, python-format
-msgid "%d year"
-msgid_plural "%d years"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:203
-#, python-format
-msgid "%d month"
-msgid_plural "%d months"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:204
-#, python-format
-msgid "%d week"
-msgid_plural "%d weeks"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:205
-#, python-format
-msgid "%d day"
-msgid_plural "%d days"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:206
-#, python-format
-msgid "%d hour"
-msgid_plural "%d hours"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:207
-#, python-format
-msgid "%d minute"
-msgid_plural "%d minutes"
-msgstr[0] ""
-msgstr[1] ""
diff --git a/po/hi.po b/po/hi.po
deleted file mode 100644
index 93a56e3..0000000
--- a/po/hi.po
+++ /dev/null
@@ -1,153 +0,0 @@
-# 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: 2008-06-24 00:07+0530\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"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Translate Toolkit 1.1.1rc4\n"
-
-#: ../src/sugar/activity/activity.py:120
-msgid "Share with:"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:122
-msgid "Private"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:123
-msgid "My Neighborhood"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:130
-msgid "Keep"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:136
-msgid "Stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:251
-msgid "Undo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:256
-msgid "Redo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:266
-msgid "Copy"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:271
-msgid "Paste"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:297
-msgid "Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:469
-#, python-format
-msgid "%s Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:856
-msgid "Keep error"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:857
-msgid "Keep error: all changes will be lost"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:860
-msgid "Don't stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:863
-msgid "Stop anyway"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:166 ../src/sugar/graphics/alert.py:209
-msgid "Cancel"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:170 ../src/sugar/graphics/alert.py:247
-msgid "Ok"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:219
-msgid "Continue"
-msgstr ""
-
-#: ../src/sugar/util.py:181
-msgid " and "
-msgstr ""
-
-#: ../src/sugar/util.py:182
-msgid ", "
-msgstr ""
-
-#. TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#: ../src/sugar/util.py:185
-msgid "Seconds ago"
-msgstr ""
-
-#. TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-#. "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#: ../src/sugar/util.py:189
-#, python-format
-msgid "%s ago"
-msgstr ""
-
-#. TRANS: Relative dates (eg. 1 month and 5 days).
-#: ../src/sugar/util.py:202
-#, python-format
-msgid "%d year"
-msgid_plural "%d years"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:203
-#, python-format
-msgid "%d month"
-msgid_plural "%d months"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:204
-#, python-format
-msgid "%d week"
-msgid_plural "%d weeks"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:205
-#, python-format
-msgid "%d day"
-msgid_plural "%d days"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:206
-#, python-format
-msgid "%d hour"
-msgid_plural "%d hours"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:207
-#, python-format
-msgid "%d minute"
-msgid_plural "%d minutes"
-msgstr[0] ""
-msgstr[1] ""
diff --git a/po/ht.po b/po/ht.po
deleted file mode 100644
index 93a56e3..0000000
--- a/po/ht.po
+++ /dev/null
@@ -1,153 +0,0 @@
-# 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: 2008-06-24 00:07+0530\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"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Translate Toolkit 1.1.1rc4\n"
-
-#: ../src/sugar/activity/activity.py:120
-msgid "Share with:"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:122
-msgid "Private"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:123
-msgid "My Neighborhood"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:130
-msgid "Keep"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:136
-msgid "Stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:251
-msgid "Undo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:256
-msgid "Redo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:266
-msgid "Copy"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:271
-msgid "Paste"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:297
-msgid "Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:469
-#, python-format
-msgid "%s Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:856
-msgid "Keep error"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:857
-msgid "Keep error: all changes will be lost"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:860
-msgid "Don't stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:863
-msgid "Stop anyway"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:166 ../src/sugar/graphics/alert.py:209
-msgid "Cancel"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:170 ../src/sugar/graphics/alert.py:247
-msgid "Ok"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:219
-msgid "Continue"
-msgstr ""
-
-#: ../src/sugar/util.py:181
-msgid " and "
-msgstr ""
-
-#: ../src/sugar/util.py:182
-msgid ", "
-msgstr ""
-
-#. TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#: ../src/sugar/util.py:185
-msgid "Seconds ago"
-msgstr ""
-
-#. TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-#. "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#: ../src/sugar/util.py:189
-#, python-format
-msgid "%s ago"
-msgstr ""
-
-#. TRANS: Relative dates (eg. 1 month and 5 days).
-#: ../src/sugar/util.py:202
-#, python-format
-msgid "%d year"
-msgid_plural "%d years"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:203
-#, python-format
-msgid "%d month"
-msgid_plural "%d months"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:204
-#, python-format
-msgid "%d week"
-msgid_plural "%d weeks"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:205
-#, python-format
-msgid "%d day"
-msgid_plural "%d days"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:206
-#, python-format
-msgid "%d hour"
-msgid_plural "%d hours"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:207
-#, python-format
-msgid "%d minute"
-msgid_plural "%d minutes"
-msgstr[0] ""
-msgstr[1] ""
diff --git a/po/hu.po b/po/hu.po
deleted file mode 100644
index 93a56e3..0000000
--- a/po/hu.po
+++ /dev/null
@@ -1,153 +0,0 @@
-# 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: 2008-06-24 00:07+0530\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"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Translate Toolkit 1.1.1rc4\n"
-
-#: ../src/sugar/activity/activity.py:120
-msgid "Share with:"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:122
-msgid "Private"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:123
-msgid "My Neighborhood"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:130
-msgid "Keep"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:136
-msgid "Stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:251
-msgid "Undo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:256
-msgid "Redo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:266
-msgid "Copy"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:271
-msgid "Paste"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:297
-msgid "Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:469
-#, python-format
-msgid "%s Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:856
-msgid "Keep error"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:857
-msgid "Keep error: all changes will be lost"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:860
-msgid "Don't stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:863
-msgid "Stop anyway"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:166 ../src/sugar/graphics/alert.py:209
-msgid "Cancel"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:170 ../src/sugar/graphics/alert.py:247
-msgid "Ok"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:219
-msgid "Continue"
-msgstr ""
-
-#: ../src/sugar/util.py:181
-msgid " and "
-msgstr ""
-
-#: ../src/sugar/util.py:182
-msgid ", "
-msgstr ""
-
-#. TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#: ../src/sugar/util.py:185
-msgid "Seconds ago"
-msgstr ""
-
-#. TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-#. "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#: ../src/sugar/util.py:189
-#, python-format
-msgid "%s ago"
-msgstr ""
-
-#. TRANS: Relative dates (eg. 1 month and 5 days).
-#: ../src/sugar/util.py:202
-#, python-format
-msgid "%d year"
-msgid_plural "%d years"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:203
-#, python-format
-msgid "%d month"
-msgid_plural "%d months"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:204
-#, python-format
-msgid "%d week"
-msgid_plural "%d weeks"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:205
-#, python-format
-msgid "%d day"
-msgid_plural "%d days"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:206
-#, python-format
-msgid "%d hour"
-msgid_plural "%d hours"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:207
-#, python-format
-msgid "%d minute"
-msgid_plural "%d minutes"
-msgstr[0] ""
-msgstr[1] ""
diff --git a/po/ig.po b/po/ig.po
deleted file mode 100644
index 93a56e3..0000000
--- a/po/ig.po
+++ /dev/null
@@ -1,153 +0,0 @@
-# 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: 2008-06-24 00:07+0530\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"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Translate Toolkit 1.1.1rc4\n"
-
-#: ../src/sugar/activity/activity.py:120
-msgid "Share with:"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:122
-msgid "Private"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:123
-msgid "My Neighborhood"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:130
-msgid "Keep"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:136
-msgid "Stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:251
-msgid "Undo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:256
-msgid "Redo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:266
-msgid "Copy"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:271
-msgid "Paste"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:297
-msgid "Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:469
-#, python-format
-msgid "%s Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:856
-msgid "Keep error"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:857
-msgid "Keep error: all changes will be lost"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:860
-msgid "Don't stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:863
-msgid "Stop anyway"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:166 ../src/sugar/graphics/alert.py:209
-msgid "Cancel"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:170 ../src/sugar/graphics/alert.py:247
-msgid "Ok"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:219
-msgid "Continue"
-msgstr ""
-
-#: ../src/sugar/util.py:181
-msgid " and "
-msgstr ""
-
-#: ../src/sugar/util.py:182
-msgid ", "
-msgstr ""
-
-#. TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#: ../src/sugar/util.py:185
-msgid "Seconds ago"
-msgstr ""
-
-#. TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-#. "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#: ../src/sugar/util.py:189
-#, python-format
-msgid "%s ago"
-msgstr ""
-
-#. TRANS: Relative dates (eg. 1 month and 5 days).
-#: ../src/sugar/util.py:202
-#, python-format
-msgid "%d year"
-msgid_plural "%d years"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:203
-#, python-format
-msgid "%d month"
-msgid_plural "%d months"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:204
-#, python-format
-msgid "%d week"
-msgid_plural "%d weeks"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:205
-#, python-format
-msgid "%d day"
-msgid_plural "%d days"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:206
-#, python-format
-msgid "%d hour"
-msgid_plural "%d hours"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:207
-#, python-format
-msgid "%d minute"
-msgid_plural "%d minutes"
-msgstr[0] ""
-msgstr[1] ""
diff --git a/po/is.po b/po/is.po
deleted file mode 100644
index 93a56e3..0000000
--- a/po/is.po
+++ /dev/null
@@ -1,153 +0,0 @@
-# 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: 2008-06-24 00:07+0530\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"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Translate Toolkit 1.1.1rc4\n"
-
-#: ../src/sugar/activity/activity.py:120
-msgid "Share with:"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:122
-msgid "Private"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:123
-msgid "My Neighborhood"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:130
-msgid "Keep"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:136
-msgid "Stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:251
-msgid "Undo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:256
-msgid "Redo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:266
-msgid "Copy"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:271
-msgid "Paste"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:297
-msgid "Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:469
-#, python-format
-msgid "%s Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:856
-msgid "Keep error"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:857
-msgid "Keep error: all changes will be lost"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:860
-msgid "Don't stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:863
-msgid "Stop anyway"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:166 ../src/sugar/graphics/alert.py:209
-msgid "Cancel"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:170 ../src/sugar/graphics/alert.py:247
-msgid "Ok"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:219
-msgid "Continue"
-msgstr ""
-
-#: ../src/sugar/util.py:181
-msgid " and "
-msgstr ""
-
-#: ../src/sugar/util.py:182
-msgid ", "
-msgstr ""
-
-#. TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#: ../src/sugar/util.py:185
-msgid "Seconds ago"
-msgstr ""
-
-#. TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-#. "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#: ../src/sugar/util.py:189
-#, python-format
-msgid "%s ago"
-msgstr ""
-
-#. TRANS: Relative dates (eg. 1 month and 5 days).
-#: ../src/sugar/util.py:202
-#, python-format
-msgid "%d year"
-msgid_plural "%d years"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:203
-#, python-format
-msgid "%d month"
-msgid_plural "%d months"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:204
-#, python-format
-msgid "%d week"
-msgid_plural "%d weeks"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:205
-#, python-format
-msgid "%d day"
-msgid_plural "%d days"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:206
-#, python-format
-msgid "%d hour"
-msgid_plural "%d hours"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:207
-#, python-format
-msgid "%d minute"
-msgid_plural "%d minutes"
-msgstr[0] ""
-msgstr[1] ""
diff --git a/po/it.po b/po/it.po
deleted file mode 100644
index b829f1b..0000000
--- a/po/it.po
+++ /dev/null
@@ -1,194 +0,0 @@
-# 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: 2009-01-20 00:31-0500\n"
-"PO-Revision-Date: 2009-01-29 16:32-0500\n"
-"Last-Translator: Carlo Falciola <cfalciola@yahoo.it>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Pootle 1.1.0rc2\n"
-
-#: ../src/sugar/activity/activity.py:123
-msgid "Share with:"
-msgstr "Condividi con:"
-
-#: ../src/sugar/activity/activity.py:125
-msgid "Private"
-msgstr "Privato"
-
-#: ../src/sugar/activity/activity.py:126
-msgid "My Neighborhood"
-msgstr "I miei vicini"
-
-#: ../src/sugar/activity/activity.py:133
-#: ../src/sugar/activity/namingalert.py:65
-msgid "Keep"
-msgstr "Memorizza"
-
-#: ../src/sugar/activity/activity.py:144
-msgid "Stop"
-msgstr "Chiudi"
-
-#: ../src/sugar/activity/activity.py:258
-msgid "Undo"
-msgstr "Annulla"
-
-#: ../src/sugar/activity/activity.py:263
-msgid "Redo"
-msgstr "Ripeti"
-
-#: ../src/sugar/activity/activity.py:273
-msgid "Copy"
-msgstr "Copia"
-
-#: ../src/sugar/activity/activity.py:278
-msgid "Paste"
-msgstr "Incolla"
-
-#: ../src/sugar/activity/activity.py:304
-msgid "Activity"
-msgstr "Attività"
-
-#: ../src/sugar/activity/activity.py:542
-#, python-format
-msgid "%s Activity"
-msgstr "Attività %s "
-
-#: ../src/sugar/activity/activity.py:910
-msgid "Keep error"
-msgstr "Errore di memorizzazione"
-
-#: ../src/sugar/activity/activity.py:911
-msgid "Keep error: all changes will be lost"
-msgstr "Errore di memorizzazione: tutte le modifiche saranno perse"
-
-#: ../src/sugar/activity/activity.py:914
-msgid "Don't stop"
-msgstr "Non Fermare"
-
-#: ../src/sugar/activity/activity.py:917
-msgid "Stop anyway"
-msgstr "Ferma comunque"
-
-#: ../src/sugar/activity/namingalert.py:60
-msgid "Name this entry"
-msgstr "Dai un nome a questo oggetto"
-
-#: ../src/sugar/activity/namingalert.py:248
-msgid "Untitled"
-msgstr "Senza nome"
-
-#: ../src/sugar/activity/namingalert.py:255
-msgid "Description:"
-msgstr "Descrizione:"
-
-#: ../src/sugar/activity/namingalert.py:279
-msgid "Tags:"
-msgstr "Etichette:"
-
-#: ../src/sugar/graphics/alert.py:288 ../src/sugar/graphics/alert.py:367
-msgid "Cancel"
-msgstr "Cancella"
-
-#: ../src/sugar/graphics/alert.py:292 ../src/sugar/graphics/alert.py:426
-msgid "Ok"
-msgstr "Ok"
-
-#: ../src/sugar/graphics/alert.py:377
-msgid "Continue"
-msgstr "Continua"
-
-#: ../src/sugar/graphics/colorbutton.py:49
-msgid "Choose a color"
-msgstr "Scegli un colore"
-
-#: ../src/sugar/graphics/colorbutton.py:262
-msgid "Red"
-msgstr "Rosso"
-
-#: ../src/sugar/graphics/colorbutton.py:264
-msgid "Green"
-msgstr "Verde"
-
-#: ../src/sugar/graphics/colorbutton.py:266
-msgid "Blue"
-msgstr "Blu"
-
-#: ../src/sugar/util.py:194
-msgid " and "
-msgstr " e "
-
-#: ../src/sugar/util.py:195
-msgid ", "
-msgstr ", "
-
-# TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#. TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#: ../src/sugar/util.py:198
-msgid "Seconds ago"
-msgstr "Pochi secondi fa"
-
-# TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-# "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#. TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-#. "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#: ../src/sugar/util.py:202
-#, python-format
-msgid "%s ago"
-msgstr "%s fa"
-
-# True if Plural Form 1 means Singular.... (cf 2008_06_23)
-# TRANS: Relative dates (eg. 1 month and 5 days).
-#. TRANS: Relative dates (eg. 1 month and 5 days).
-#: ../src/sugar/util.py:215
-#, python-format
-msgid "%d year"
-msgid_plural "%d years"
-msgstr[0] "%d anno"
-msgstr[1] "%d anni"
-
-# True if Plural Form 1 means Singular.... (cf 2008_06_23)
-#: ../src/sugar/util.py:216
-#, python-format
-msgid "%d month"
-msgid_plural "%d months"
-msgstr[0] "%d mese"
-msgstr[1] "%d mesi"
-
-# True if Plural Form 1 means Singular.... (cf 2008_06_23)
-#: ../src/sugar/util.py:217
-#, python-format
-msgid "%d week"
-msgid_plural "%d weeks"
-msgstr[0] "%d settimana"
-msgstr[1] "%d settimane"
-
-# True if Plural Form 1 means Singular.... (cf 2008_06_23)
-#: ../src/sugar/util.py:218
-#, python-format
-msgid "%d day"
-msgid_plural "%d days"
-msgstr[0] "%d giorno"
-msgstr[1] "%d giorni"
-
-# True if Plural Form 1 means Singular.... (cf 2008_06_23)
-#: ../src/sugar/util.py:219
-#, python-format
-msgid "%d hour"
-msgid_plural "%d hours"
-msgstr[0] "%d ora"
-msgstr[1] "%d ore"
-
-#: ../src/sugar/util.py:220
-#, python-format
-msgid "%d minute"
-msgid_plural "%d minutes"
-msgstr[0] "%d minuto"
-msgstr[1] "%d minuti"
diff --git a/po/ja.po b/po/ja.po
deleted file mode 100644
index 29ffda2..0000000
--- a/po/ja.po
+++ /dev/null
@@ -1,149 +0,0 @@
-# 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: 2008-06-24 00:07+0530\n"
-"PO-Revision-Date: 2008-10-10 12:45+0530\n"
-"Last-Translator: \n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Pootle 1.1.0rc2\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-
-#: ../src/sugar/activity/activity.py:120
-msgid "Share with:"
-msgstr "次の人と共有:"
-
-#: ../src/sugar/activity/activity.py:122
-msgid "Private"
-msgstr "(共有しない)"
-
-#: ../src/sugar/activity/activity.py:123
-msgid "My Neighborhood"
-msgstr "私のお隣さん"
-
-#: ../src/sugar/activity/activity.py:130
-msgid "Keep"
-msgstr "ジャーナルに保存"
-
-#: ../src/sugar/activity/activity.py:136
-msgid "Stop"
-msgstr "停止"
-
-#: ../src/sugar/activity/activity.py:251
-msgid "Undo"
-msgstr "元に戻す"
-
-#: ../src/sugar/activity/activity.py:256
-msgid "Redo"
-msgstr "やり直し"
-
-#: ../src/sugar/activity/activity.py:266
-msgid "Copy"
-msgstr "コピー"
-
-#: ../src/sugar/activity/activity.py:271
-msgid "Paste"
-msgstr "貼り付け"
-
-#: ../src/sugar/activity/activity.py:297
-msgid "Activity"
-msgstr "アクティビティ"
-
-#: ../src/sugar/activity/activity.py:469
-#, python-format
-msgid "%s Activity"
-msgstr "%s アクティビティ"
-
-#: ../src/sugar/activity/activity.py:856
-msgid "Keep error"
-msgstr "保存エラー"
-
-#: ../src/sugar/activity/activity.py:857
-msgid "Keep error: all changes will be lost"
-msgstr "保存エラー: 全ての変更は失われてしまいます"
-
-#: ../src/sugar/activity/activity.py:860
-msgid "Don't stop"
-msgstr "やめない"
-
-#: ../src/sugar/activity/activity.py:863
-msgid "Stop anyway"
-msgstr "とにかくやめる"
-
-#: ../src/sugar/graphics/alert.py:166
-#: ../src/sugar/graphics/alert.py:209
-msgid "Cancel"
-msgstr "中止"
-
-#: ../src/sugar/graphics/alert.py:170
-#: ../src/sugar/graphics/alert.py:247
-msgid "Ok"
-msgstr "了解"
-
-#: ../src/sugar/graphics/alert.py:219
-msgid "Continue"
-msgstr "続ける"
-
-#: ../src/sugar/util.py:181
-msgid " and "
-msgstr " そして "
-
-#: ../src/sugar/util.py:182
-msgid ", "
-msgstr ", "
-
-#. TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#: ../src/sugar/util.py:185
-msgid "Seconds ago"
-msgstr "ちょっと前"
-
-#. TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-#. "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#: ../src/sugar/util.py:189
-#, python-format
-msgid "%s ago"
-msgstr "%s前"
-
-#. TRANS: Relative dates (eg. 1 month and 5 days).
-#: ../src/sugar/util.py:202
-#, python-format
-msgid "%d year"
-msgid_plural "%d years"
-msgstr[0] "%d 年"
-
-#: ../src/sugar/util.py:203
-#, python-format
-msgid "%d month"
-msgid_plural "%d months"
-msgstr[0] "%d 月"
-
-#: ../src/sugar/util.py:204
-#, python-format
-msgid "%d week"
-msgid_plural "%d weeks"
-msgstr[0] "%d 週"
-
-#: ../src/sugar/util.py:205
-#, python-format
-msgid "%d day"
-msgid_plural "%d days"
-msgstr[0] "%d 日"
-
-#: ../src/sugar/util.py:206
-#, python-format
-msgid "%d hour"
-msgid_plural "%d hours"
-msgstr[0] "%d 時間"
-
-#: ../src/sugar/util.py:207
-#, python-format
-msgid "%d minute"
-msgid_plural "%d minutes"
-msgstr[0] "%d 分"
-
diff --git a/po/km.po b/po/km.po
deleted file mode 100644
index 93a56e3..0000000
--- a/po/km.po
+++ /dev/null
@@ -1,153 +0,0 @@
-# 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: 2008-06-24 00:07+0530\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"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Translate Toolkit 1.1.1rc4\n"
-
-#: ../src/sugar/activity/activity.py:120
-msgid "Share with:"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:122
-msgid "Private"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:123
-msgid "My Neighborhood"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:130
-msgid "Keep"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:136
-msgid "Stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:251
-msgid "Undo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:256
-msgid "Redo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:266
-msgid "Copy"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:271
-msgid "Paste"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:297
-msgid "Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:469
-#, python-format
-msgid "%s Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:856
-msgid "Keep error"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:857
-msgid "Keep error: all changes will be lost"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:860
-msgid "Don't stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:863
-msgid "Stop anyway"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:166 ../src/sugar/graphics/alert.py:209
-msgid "Cancel"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:170 ../src/sugar/graphics/alert.py:247
-msgid "Ok"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:219
-msgid "Continue"
-msgstr ""
-
-#: ../src/sugar/util.py:181
-msgid " and "
-msgstr ""
-
-#: ../src/sugar/util.py:182
-msgid ", "
-msgstr ""
-
-#. TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#: ../src/sugar/util.py:185
-msgid "Seconds ago"
-msgstr ""
-
-#. TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-#. "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#: ../src/sugar/util.py:189
-#, python-format
-msgid "%s ago"
-msgstr ""
-
-#. TRANS: Relative dates (eg. 1 month and 5 days).
-#: ../src/sugar/util.py:202
-#, python-format
-msgid "%d year"
-msgid_plural "%d years"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:203
-#, python-format
-msgid "%d month"
-msgid_plural "%d months"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:204
-#, python-format
-msgid "%d week"
-msgid_plural "%d weeks"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:205
-#, python-format
-msgid "%d day"
-msgid_plural "%d days"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:206
-#, python-format
-msgid "%d hour"
-msgid_plural "%d hours"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:207
-#, python-format
-msgid "%d minute"
-msgid_plural "%d minutes"
-msgstr[0] ""
-msgstr[1] ""
diff --git a/po/ko.po b/po/ko.po
deleted file mode 100644
index 93a56e3..0000000
--- a/po/ko.po
+++ /dev/null
@@ -1,153 +0,0 @@
-# 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: 2008-06-24 00:07+0530\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"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Translate Toolkit 1.1.1rc4\n"
-
-#: ../src/sugar/activity/activity.py:120
-msgid "Share with:"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:122
-msgid "Private"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:123
-msgid "My Neighborhood"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:130
-msgid "Keep"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:136
-msgid "Stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:251
-msgid "Undo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:256
-msgid "Redo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:266
-msgid "Copy"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:271
-msgid "Paste"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:297
-msgid "Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:469
-#, python-format
-msgid "%s Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:856
-msgid "Keep error"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:857
-msgid "Keep error: all changes will be lost"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:860
-msgid "Don't stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:863
-msgid "Stop anyway"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:166 ../src/sugar/graphics/alert.py:209
-msgid "Cancel"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:170 ../src/sugar/graphics/alert.py:247
-msgid "Ok"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:219
-msgid "Continue"
-msgstr ""
-
-#: ../src/sugar/util.py:181
-msgid " and "
-msgstr ""
-
-#: ../src/sugar/util.py:182
-msgid ", "
-msgstr ""
-
-#. TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#: ../src/sugar/util.py:185
-msgid "Seconds ago"
-msgstr ""
-
-#. TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-#. "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#: ../src/sugar/util.py:189
-#, python-format
-msgid "%s ago"
-msgstr ""
-
-#. TRANS: Relative dates (eg. 1 month and 5 days).
-#: ../src/sugar/util.py:202
-#, python-format
-msgid "%d year"
-msgid_plural "%d years"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:203
-#, python-format
-msgid "%d month"
-msgid_plural "%d months"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:204
-#, python-format
-msgid "%d week"
-msgid_plural "%d weeks"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:205
-#, python-format
-msgid "%d day"
-msgid_plural "%d days"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:206
-#, python-format
-msgid "%d hour"
-msgid_plural "%d hours"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:207
-#, python-format
-msgid "%d minute"
-msgid_plural "%d minutes"
-msgstr[0] ""
-msgstr[1] ""
diff --git a/po/mk.po b/po/mk.po
deleted file mode 100644
index 93a56e3..0000000
--- a/po/mk.po
+++ /dev/null
@@ -1,153 +0,0 @@
-# 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: 2008-06-24 00:07+0530\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"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Translate Toolkit 1.1.1rc4\n"
-
-#: ../src/sugar/activity/activity.py:120
-msgid "Share with:"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:122
-msgid "Private"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:123
-msgid "My Neighborhood"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:130
-msgid "Keep"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:136
-msgid "Stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:251
-msgid "Undo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:256
-msgid "Redo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:266
-msgid "Copy"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:271
-msgid "Paste"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:297
-msgid "Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:469
-#, python-format
-msgid "%s Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:856
-msgid "Keep error"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:857
-msgid "Keep error: all changes will be lost"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:860
-msgid "Don't stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:863
-msgid "Stop anyway"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:166 ../src/sugar/graphics/alert.py:209
-msgid "Cancel"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:170 ../src/sugar/graphics/alert.py:247
-msgid "Ok"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:219
-msgid "Continue"
-msgstr ""
-
-#: ../src/sugar/util.py:181
-msgid " and "
-msgstr ""
-
-#: ../src/sugar/util.py:182
-msgid ", "
-msgstr ""
-
-#. TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#: ../src/sugar/util.py:185
-msgid "Seconds ago"
-msgstr ""
-
-#. TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-#. "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#: ../src/sugar/util.py:189
-#, python-format
-msgid "%s ago"
-msgstr ""
-
-#. TRANS: Relative dates (eg. 1 month and 5 days).
-#: ../src/sugar/util.py:202
-#, python-format
-msgid "%d year"
-msgid_plural "%d years"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:203
-#, python-format
-msgid "%d month"
-msgid_plural "%d months"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:204
-#, python-format
-msgid "%d week"
-msgid_plural "%d weeks"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:205
-#, python-format
-msgid "%d day"
-msgid_plural "%d days"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:206
-#, python-format
-msgid "%d hour"
-msgid_plural "%d hours"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:207
-#, python-format
-msgid "%d minute"
-msgid_plural "%d minutes"
-msgstr[0] ""
-msgstr[1] ""
diff --git a/po/ml.po b/po/ml.po
deleted file mode 100644
index 93a56e3..0000000
--- a/po/ml.po
+++ /dev/null
@@ -1,153 +0,0 @@
-# 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: 2008-06-24 00:07+0530\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"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Translate Toolkit 1.1.1rc4\n"
-
-#: ../src/sugar/activity/activity.py:120
-msgid "Share with:"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:122
-msgid "Private"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:123
-msgid "My Neighborhood"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:130
-msgid "Keep"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:136
-msgid "Stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:251
-msgid "Undo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:256
-msgid "Redo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:266
-msgid "Copy"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:271
-msgid "Paste"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:297
-msgid "Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:469
-#, python-format
-msgid "%s Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:856
-msgid "Keep error"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:857
-msgid "Keep error: all changes will be lost"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:860
-msgid "Don't stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:863
-msgid "Stop anyway"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:166 ../src/sugar/graphics/alert.py:209
-msgid "Cancel"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:170 ../src/sugar/graphics/alert.py:247
-msgid "Ok"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:219
-msgid "Continue"
-msgstr ""
-
-#: ../src/sugar/util.py:181
-msgid " and "
-msgstr ""
-
-#: ../src/sugar/util.py:182
-msgid ", "
-msgstr ""
-
-#. TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#: ../src/sugar/util.py:185
-msgid "Seconds ago"
-msgstr ""
-
-#. TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-#. "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#: ../src/sugar/util.py:189
-#, python-format
-msgid "%s ago"
-msgstr ""
-
-#. TRANS: Relative dates (eg. 1 month and 5 days).
-#: ../src/sugar/util.py:202
-#, python-format
-msgid "%d year"
-msgid_plural "%d years"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:203
-#, python-format
-msgid "%d month"
-msgid_plural "%d months"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:204
-#, python-format
-msgid "%d week"
-msgid_plural "%d weeks"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:205
-#, python-format
-msgid "%d day"
-msgid_plural "%d days"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:206
-#, python-format
-msgid "%d hour"
-msgid_plural "%d hours"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:207
-#, python-format
-msgid "%d minute"
-msgid_plural "%d minutes"
-msgstr[0] ""
-msgstr[1] ""
diff --git a/po/mn.po b/po/mn.po
deleted file mode 100644
index 45d4018..0000000
--- a/po/mn.po
+++ /dev/null
@@ -1,190 +0,0 @@
-# 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: 2009-01-20 00:31-0500\n"
-"PO-Revision-Date: 2008-06-27 06:28-0400\n"
-"Last-Translator: Odontsetseg Bat-Erdene <obat-erdene@suffolk.edu>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Pootle 1.1.0rc2\n"
-
-#: ../src/sugar/activity/activity.py:123
-msgid "Share with:"
-msgstr "Хуваалцах:"
-
-#: ../src/sugar/activity/activity.py:125
-msgid "Private"
-msgstr "Хувийн"
-
-#: ../src/sugar/activity/activity.py:126
-msgid "My Neighborhood"
-msgstr "Миний Хөршүүд"
-
-#: ../src/sugar/activity/activity.py:133
-#: ../src/sugar/activity/namingalert.py:65
-msgid "Keep"
-msgstr "Хадгалах"
-
-#: ../src/sugar/activity/activity.py:144
-msgid "Stop"
-msgstr "Хаах"
-
-#: ../src/sugar/activity/activity.py:258
-msgid "Undo"
-msgstr "Буцаах"
-
-#: ../src/sugar/activity/activity.py:263
-msgid "Redo"
-msgstr "Давтах"
-
-#: ../src/sugar/activity/activity.py:273
-msgid "Copy"
-msgstr "Хуулах"
-
-#: ../src/sugar/activity/activity.py:278
-msgid "Paste"
-msgstr "Тавих"
-
-#: ../src/sugar/activity/activity.py:304
-msgid "Activity"
-msgstr "Үйл ажиллагаа"
-
-#: ../src/sugar/activity/activity.py:542
-#, python-format
-msgid "%s Activity"
-msgstr "%s үйл ажиллагаа"
-
-#: ../src/sugar/activity/activity.py:910
-msgid "Keep error"
-msgstr "Хадгалахын алдаа "
-
-#: ../src/sugar/activity/activity.py:911
-msgid "Keep error: all changes will be lost"
-msgstr "Хадгалахын алдаа: бүх өөрчлөлтүүд устгагдана"
-
-#: ../src/sugar/activity/activity.py:914
-msgid "Don't stop"
-msgstr "Бүү хаа"
-
-#: ../src/sugar/activity/activity.py:917
-msgid "Stop anyway"
-msgstr "Ямар ч нөхцөлд хаах"
-
-#: ../src/sugar/activity/namingalert.py:60
-msgid "Name this entry"
-msgstr ""
-
-#: ../src/sugar/activity/namingalert.py:248
-msgid "Untitled"
-msgstr ""
-
-#: ../src/sugar/activity/namingalert.py:255
-msgid "Description:"
-msgstr ""
-
-#: ../src/sugar/activity/namingalert.py:279
-msgid "Tags:"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:288 ../src/sugar/graphics/alert.py:367
-msgid "Cancel"
-msgstr "Болих"
-
-#: ../src/sugar/graphics/alert.py:292 ../src/sugar/graphics/alert.py:426
-msgid "Ok"
-msgstr "Тийм"
-
-#: ../src/sugar/graphics/alert.py:377
-msgid "Continue"
-msgstr "Үргэлжлүүлэх"
-
-#: ../src/sugar/graphics/colorbutton.py:49
-msgid "Choose a color"
-msgstr ""
-
-#: ../src/sugar/graphics/colorbutton.py:262
-#, fuzzy
-msgid "Red"
-msgstr "Давтах"
-
-#: ../src/sugar/graphics/colorbutton.py:264
-msgid "Green"
-msgstr ""
-
-#: ../src/sugar/graphics/colorbutton.py:266
-msgid "Blue"
-msgstr ""
-
-#: ../src/sugar/util.py:194
-msgid " and "
-msgstr " ба_"
-
-#: ../src/sugar/util.py:195
-msgid ", "
-msgstr " ,_"
-
-# TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#. TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#: ../src/sugar/util.py:198
-msgid "Seconds ago"
-msgstr "Секундын өмнө"
-
-# TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-# "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#. TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-#. "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#: ../src/sugar/util.py:202
-#, python-format
-msgid "%s ago"
-msgstr "%s-ын өмнө"
-
-# TRANS: Relative dates (eg. 1 month and 5 days).
-#. TRANS: Relative dates (eg. 1 month and 5 days).
-#: ../src/sugar/util.py:215
-#, python-format
-msgid "%d year"
-msgid_plural "%d years"
-msgstr[0] "%d жил"
-msgstr[1] "%d жил"
-
-#: ../src/sugar/util.py:216
-#, python-format
-msgid "%d month"
-msgid_plural "%d months"
-msgstr[0] "%d сар"
-msgstr[1] "%d сар"
-
-#: ../src/sugar/util.py:217
-#, python-format
-msgid "%d week"
-msgid_plural "%d weeks"
-msgstr[0] "%d долоо хоног"
-msgstr[1] "%d долоо хоног"
-
-#: ../src/sugar/util.py:218
-#, python-format
-msgid "%d day"
-msgid_plural "%d days"
-msgstr[0] "%d хоног"
-msgstr[1] "%d хоног"
-
-#: ../src/sugar/util.py:219
-#, python-format
-msgid "%d hour"
-msgid_plural "%d hours"
-msgstr[0] "%d цаг"
-msgstr[1] "%d цаг"
-
-#: ../src/sugar/util.py:220
-#, python-format
-msgid "%d minute"
-msgid_plural "%d minutes"
-msgstr[0] "%d минут"
-msgstr[1] "%d минут"
diff --git a/po/mr.po b/po/mr.po
deleted file mode 100644
index aee6e3b..0000000
--- a/po/mr.po
+++ /dev/null
@@ -1,152 +0,0 @@
-# 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: 2008-06-24 00:07+0530\n"
-"PO-Revision-Date: 2008-07-07 03:13-0400\n"
-"Last-Translator: Sandesh Patil <patil.sandesh@gmail.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Pootle 1.1.0rc2\n"
-
-#: ../src/sugar/activity/activity.py:120
-msgid "Share with:"
-msgstr "बरोबर वाटा :"
-
-#: ../src/sugar/activity/activity.py:122
-msgid "Private"
-msgstr "खासगी"
-
-#: ../src/sugar/activity/activity.py:123
-msgid "My Neighborhood"
-msgstr "माझे शेजार"
-
-#: ../src/sugar/activity/activity.py:130
-msgid "Keep"
-msgstr "संभाला"
-
-#: ../src/sugar/activity/activity.py:136
-msgid "Stop"
-msgstr "थांबा"
-
-#: ../src/sugar/activity/activity.py:251
-msgid "Undo"
-msgstr "केलेल्या गोष्टीवर बोला फिरवने "
-
-#: ../src/sugar/activity/activity.py:256
-msgid "Redo"
-msgstr "परत करा"
-
-#: ../src/sugar/activity/activity.py:266
-msgid "Copy"
-msgstr "नक्कल"
-
-#: ../src/sugar/activity/activity.py:271
-msgid "Paste"
-msgstr "छापणे"
-
-#: ../src/sugar/activity/activity.py:297
-msgid "Activity"
-msgstr "क्रिया"
-
-#: ../src/sugar/activity/activity.py:469
-#, python-format
-msgid "%s Activity"
-msgstr "%s क्रिया"
-
-#: ../src/sugar/activity/activity.py:856
-msgid "Keep error"
-msgstr "चुक संभाला "
-
-#: ../src/sugar/activity/activity.py:857
-msgid "Keep error: all changes will be lost"
-msgstr "चुक संभाला : सगळ्या सुधारणा नष्ट होतील"
-
-#: ../src/sugar/activity/activity.py:860
-msgid "Don't stop"
-msgstr "थांबू नका"
-
-#: ../src/sugar/activity/activity.py:863
-msgid "Stop anyway"
-msgstr "कसेही थांबा "
-
-#: ../src/sugar/graphics/alert.py:166 ../src/sugar/graphics/alert.py:209
-msgid "Cancel"
-msgstr "रद्द करणे "
-
-#: ../src/sugar/graphics/alert.py:170 ../src/sugar/graphics/alert.py:247
-msgid "Ok"
-msgstr "ठीक"
-
-#: ../src/sugar/graphics/alert.py:219
-msgid "Continue"
-msgstr "चालू ठेवा"
-
-#: ../src/sugar/util.py:181
-msgid " and "
-msgstr "आणि"
-
-#: ../src/sugar/util.py:182
-msgid ", "
-msgstr ",_"
-
-#. TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#: ../src/sugar/util.py:185
-msgid "Seconds ago"
-msgstr "काही सेकंदांपूर्वी"
-
-#. TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-#. "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#: ../src/sugar/util.py:189
-#, python-format
-msgid "%s ago"
-msgstr "%s पूर्वी"
-
-#. TRANS: Relative dates (eg. 1 month and 5 days).
-#: ../src/sugar/util.py:202
-#, python-format
-msgid "%d year"
-msgid_plural "%d years"
-msgstr[0] "%d वर्ष"
-msgstr[1] "%d वर्षे"
-
-#: ../src/sugar/util.py:203
-#, python-format
-msgid "%d month"
-msgid_plural "%d months"
-msgstr[0] "%d महिना"
-msgstr[1] "%d महिने"
-
-#: ../src/sugar/util.py:204
-#, python-format
-msgid "%d week"
-msgid_plural "%d weeks"
-msgstr[0] "%d आठवडा"
-msgstr[1] "%d आठवडे"
-
-#: ../src/sugar/util.py:205
-#, python-format
-msgid "%d day"
-msgid_plural "%d days"
-msgstr[0] "%d दिवस"
-msgstr[1] "%d दिवस"
-
-#: ../src/sugar/util.py:206
-#, python-format
-msgid "%d hour"
-msgid_plural "%d hours"
-msgstr[0] "%d तास"
-msgstr[1] "%d तास"
-
-#: ../src/sugar/util.py:207
-#, python-format
-msgid "%d minute"
-msgid_plural "%d minutes"
-msgstr[0] "%d मिनिट "
-msgstr[1] "%d मिनिटे"
diff --git a/po/mvo.po b/po/mvo.po
deleted file mode 100644
index 93a56e3..0000000
--- a/po/mvo.po
+++ /dev/null
@@ -1,153 +0,0 @@
-# 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: 2008-06-24 00:07+0530\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"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Translate Toolkit 1.1.1rc4\n"
-
-#: ../src/sugar/activity/activity.py:120
-msgid "Share with:"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:122
-msgid "Private"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:123
-msgid "My Neighborhood"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:130
-msgid "Keep"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:136
-msgid "Stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:251
-msgid "Undo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:256
-msgid "Redo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:266
-msgid "Copy"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:271
-msgid "Paste"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:297
-msgid "Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:469
-#, python-format
-msgid "%s Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:856
-msgid "Keep error"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:857
-msgid "Keep error: all changes will be lost"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:860
-msgid "Don't stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:863
-msgid "Stop anyway"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:166 ../src/sugar/graphics/alert.py:209
-msgid "Cancel"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:170 ../src/sugar/graphics/alert.py:247
-msgid "Ok"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:219
-msgid "Continue"
-msgstr ""
-
-#: ../src/sugar/util.py:181
-msgid " and "
-msgstr ""
-
-#: ../src/sugar/util.py:182
-msgid ", "
-msgstr ""
-
-#. TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#: ../src/sugar/util.py:185
-msgid "Seconds ago"
-msgstr ""
-
-#. TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-#. "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#: ../src/sugar/util.py:189
-#, python-format
-msgid "%s ago"
-msgstr ""
-
-#. TRANS: Relative dates (eg. 1 month and 5 days).
-#: ../src/sugar/util.py:202
-#, python-format
-msgid "%d year"
-msgid_plural "%d years"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:203
-#, python-format
-msgid "%d month"
-msgid_plural "%d months"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:204
-#, python-format
-msgid "%d week"
-msgid_plural "%d weeks"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:205
-#, python-format
-msgid "%d day"
-msgid_plural "%d days"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:206
-#, python-format
-msgid "%d hour"
-msgid_plural "%d hours"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:207
-#, python-format
-msgid "%d minute"
-msgid_plural "%d minutes"
-msgstr[0] ""
-msgstr[1] ""
diff --git a/po/nb.po b/po/nb.po
deleted file mode 100644
index 3e958e1..0000000
--- a/po/nb.po
+++ /dev/null
@@ -1,152 +0,0 @@
-# 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: 2008-06-24 00:07+0530\n"
-"PO-Revision-Date: 2008-07-22 21:04+0100\n"
-"Last-Translator: Kent Dahl <kentda@pvv.org>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Translate Toolkit 1.1.1rc4\n"
-
-#: ../src/sugar/activity/activity.py:120
-msgid "Share with:"
-msgstr "Del med:"
-
-#: ../src/sugar/activity/activity.py:122
-msgid "Private"
-msgstr "Privat"
-
-#: ../src/sugar/activity/activity.py:123
-msgid "My Neighborhood"
-msgstr "Mitt Nabolag"
-
-#: ../src/sugar/activity/activity.py:130
-msgid "Keep"
-msgstr "Behold"
-
-#: ../src/sugar/activity/activity.py:136
-msgid "Stop"
-msgstr "Stans"
-
-#: ../src/sugar/activity/activity.py:251
-msgid "Undo"
-msgstr "Gjøre om"
-
-#: ../src/sugar/activity/activity.py:256
-msgid "Redo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:266
-msgid "Copy"
-msgstr "Kopier"
-
-#: ../src/sugar/activity/activity.py:271
-msgid "Paste"
-msgstr "Lim inn"
-
-#: ../src/sugar/activity/activity.py:297
-msgid "Activity"
-msgstr "Lek"
-
-#: ../src/sugar/activity/activity.py:469
-#, python-format
-msgid "%s Activity"
-msgstr "%s Lek"
-
-#: ../src/sugar/activity/activity.py:856
-msgid "Keep error"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:857
-msgid "Keep error: all changes will be lost"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:860
-msgid "Don't stop"
-msgstr "Ikke stans"
-
-#: ../src/sugar/activity/activity.py:863
-msgid "Stop anyway"
-msgstr "Stans uansett"
-
-#: ../src/sugar/graphics/alert.py:166 ../src/sugar/graphics/alert.py:209
-msgid "Cancel"
-msgstr "Avbryt"
-
-#: ../src/sugar/graphics/alert.py:170 ../src/sugar/graphics/alert.py:247
-msgid "Ok"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:219
-msgid "Continue"
-msgstr "Fortsett"
-
-#: ../src/sugar/util.py:181
-msgid " and "
-msgstr " og "
-
-#: ../src/sugar/util.py:182
-msgid ", "
-msgstr ", "
-
-#. TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#: ../src/sugar/util.py:185
-msgid "Seconds ago"
-msgstr "For noen sekunder siden"
-
-#. TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-#. "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#: ../src/sugar/util.py:189
-#, python-format
-msgid "%s ago"
-msgstr "%s siden"
-
-#. TRANS: Relative dates (eg. 1 month and 5 days).
-#: ../src/sugar/util.py:202
-#, python-format
-msgid "%d year"
-msgid_plural "%d years"
-msgstr[0] "%d år"
-msgstr[1] "%d år"
-
-#: ../src/sugar/util.py:203
-#, python-format
-msgid "%d month"
-msgid_plural "%d months"
-msgstr[0] "%d måned"
-msgstr[1] "%d måneder"
-
-#: ../src/sugar/util.py:204
-#, python-format
-msgid "%d week"
-msgid_plural "%d weeks"
-msgstr[0] "%d uke"
-msgstr[1] "%d uker"
-
-#: ../src/sugar/util.py:205
-#, python-format
-msgid "%d day"
-msgid_plural "%d days"
-msgstr[0] "%d dag"
-msgstr[1] "%d dager"
-
-#: ../src/sugar/util.py:206
-#, python-format
-msgid "%d hour"
-msgid_plural "%d hours"
-msgstr[0] "%d time"
-msgstr[1] "%d timer"
-
-#: ../src/sugar/util.py:207
-#, python-format
-msgid "%d minute"
-msgid_plural "%d minutes"
-msgstr[0] "%d minutt"
-msgstr[1] "%d minutter"
diff --git a/po/ne.po b/po/ne.po
deleted file mode 100644
index 42719d5..0000000
--- a/po/ne.po
+++ /dev/null
@@ -1,154 +0,0 @@
-# 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: 2008-06-24 00:07+0530\n"
-"PO-Revision-Date: 2008-07-31 03:41-0400\n"
-"Last-Translator: Bibek Kafle <oxese.eax@gmail.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Pootle 1.1.0rc2\n"
-
-#: ../src/sugar/activity/activity.py:120
-msgid "Share with:"
-msgstr ":संग बाँड"
-
-#: ../src/sugar/activity/activity.py:122
-msgid "Private"
-msgstr "गुप्त"
-
-#: ../src/sugar/activity/activity.py:123
-msgid "My Neighborhood"
-msgstr "मेरो छिमेक"
-
-#: ../src/sugar/activity/activity.py:130
-msgid "Keep"
-msgstr "राख"
-
-#: ../src/sugar/activity/activity.py:136
-msgid "Stop"
-msgstr "रोक"
-
-#: ../src/sugar/activity/activity.py:251
-msgid "Undo"
-msgstr "सच्याउ"
-
-#: ../src/sugar/activity/activity.py:256
-msgid "Redo"
-msgstr "पुन: सच्याउ"
-
-#: ../src/sugar/activity/activity.py:266
-msgid "Copy"
-msgstr "नकल गर"
-
-#: ../src/sugar/activity/activity.py:271
-msgid "Paste"
-msgstr "टाँस"
-
-#: ../src/sugar/activity/activity.py:297
-msgid "Activity"
-msgstr "क्रियाकलाप"
-
-#: ../src/sugar/activity/activity.py:469
-#, python-format
-msgid "%s Activity"
-msgstr "%ऽ कृयाकलाप"
-
-#: ../src/sugar/activity/activity.py:856
-msgid "Keep error"
-msgstr "गलती राख"
-
-#: ../src/sugar/activity/activity.py:857
-msgid "Keep error: all changes will be lost"
-msgstr "गलती राख: सबै परिवर्तनहरु हराँउछन्"
-
-#: ../src/sugar/activity/activity.py:860
-msgid "Don't stop"
-msgstr "नरोक"
-
-#: ../src/sugar/activity/activity.py:863
-msgid "Stop anyway"
-msgstr "त्यैपनी रोक"
-
-#: ../src/sugar/graphics/alert.py:166 ../src/sugar/graphics/alert.py:209
-msgid "Cancel"
-msgstr "भैगो"
-
-#: ../src/sugar/graphics/alert.py:170 ../src/sugar/graphics/alert.py:247
-msgid "Ok"
-msgstr "हुन्छ"
-
-#: ../src/sugar/graphics/alert.py:219
-#, fuzzy
-msgid "Continue"
-msgstr "गरिराख"
-
-#: ../src/sugar/util.py:181
-msgid " and "
-msgstr "॒र"
-
-#: ../src/sugar/util.py:182
-msgid ", "
-msgstr ","
-
-#. TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#: ../src/sugar/util.py:185
-#, fuzzy
-msgid "Seconds ago"
-msgstr "केही बेर अगी"
-
-#. TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-#. "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#: ../src/sugar/util.py:189
-#, python-format
-msgid "%s ago"
-msgstr "%s अगी"
-
-#. TRANS: Relative dates (eg. 1 month and 5 days).
-#: ../src/sugar/util.py:202
-#, python-format
-msgid "%d year"
-msgid_plural "%d years"
-msgstr[0] "%d वर्ष"
-msgstr[1] "%d वर्ष"
-
-#: ../src/sugar/util.py:203
-#, python-format
-msgid "%d month"
-msgid_plural "%d months"
-msgstr[0] "%d महिना"
-msgstr[1] "%d महिना"
-
-#: ../src/sugar/util.py:204
-#, python-format
-msgid "%d week"
-msgid_plural "%d weeks"
-msgstr[0] "%d हप्ता"
-msgstr[1] "%d हप्ता"
-
-#: ../src/sugar/util.py:205
-#, python-format
-msgid "%d day"
-msgid_plural "%d days"
-msgstr[0] "%d दिन"
-msgstr[1] "%d दिन"
-
-#: ../src/sugar/util.py:206
-#, python-format
-msgid "%d hour"
-msgid_plural "%d hours"
-msgstr[0] "%d घन्टा"
-msgstr[1] "%d घन्टा"
-
-#: ../src/sugar/util.py:207
-#, python-format
-msgid "%d minute"
-msgid_plural "%d minutes"
-msgstr[0] "%d मिनेट"
-msgstr[1] "%d मिनेट"
diff --git a/po/nl.po b/po/nl.po
deleted file mode 100644
index 1e5493c..0000000
--- a/po/nl.po
+++ /dev/null
@@ -1,189 +0,0 @@
-# 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: 2009-01-20 00:31-0500\n"
-"PO-Revision-Date: 2009-01-28 15:04-0500\n"
-"Last-Translator: Myckel Habets <myckel@sdf.lonestar.org>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Pootle 1.1.0rc2\n"
-
-#: ../src/sugar/activity/activity.py:123
-msgid "Share with:"
-msgstr "Delen met:"
-
-#: ../src/sugar/activity/activity.py:125
-msgid "Private"
-msgstr "Privé"
-
-#: ../src/sugar/activity/activity.py:126
-msgid "My Neighborhood"
-msgstr "Mijn omgeving"
-
-#: ../src/sugar/activity/activity.py:133
-#: ../src/sugar/activity/namingalert.py:65
-msgid "Keep"
-msgstr "Behouden"
-
-#: ../src/sugar/activity/activity.py:144
-msgid "Stop"
-msgstr "Stop"
-
-#: ../src/sugar/activity/activity.py:258
-msgid "Undo"
-msgstr "Ongedaan maken"
-
-#: ../src/sugar/activity/activity.py:263
-msgid "Redo"
-msgstr "Herhalen"
-
-#: ../src/sugar/activity/activity.py:273
-msgid "Copy"
-msgstr "Kopiëren"
-
-#: ../src/sugar/activity/activity.py:278
-msgid "Paste"
-msgstr "Plakken"
-
-#: ../src/sugar/activity/activity.py:304
-msgid "Activity"
-msgstr "Activiteit"
-
-#: ../src/sugar/activity/activity.py:542
-#, python-format
-msgid "%s Activity"
-msgstr "%s activiteit"
-
-#: ../src/sugar/activity/activity.py:910
-msgid "Keep error"
-msgstr "Bewaarfout"
-
-#: ../src/sugar/activity/activity.py:911
-msgid "Keep error: all changes will be lost"
-msgstr "Bewaarfout: alle veranderingen zijn verloren gegaan"
-
-#: ../src/sugar/activity/activity.py:914
-msgid "Don't stop"
-msgstr "Niet stoppen"
-
-#: ../src/sugar/activity/activity.py:917
-msgid "Stop anyway"
-msgstr "Toch stoppen"
-
-#: ../src/sugar/activity/namingalert.py:60
-msgid "Name this entry"
-msgstr "Benoem deze ingang"
-
-#: ../src/sugar/activity/namingalert.py:248
-msgid "Untitled"
-msgstr "Naamloos"
-
-#: ../src/sugar/activity/namingalert.py:255
-msgid "Description:"
-msgstr "Beschrijving:"
-
-#: ../src/sugar/activity/namingalert.py:279
-msgid "Tags:"
-msgstr "Labels:"
-
-#: ../src/sugar/graphics/alert.py:288 ../src/sugar/graphics/alert.py:367
-msgid "Cancel"
-msgstr "Annuleren"
-
-#: ../src/sugar/graphics/alert.py:292 ../src/sugar/graphics/alert.py:426
-msgid "Ok"
-msgstr "Ok"
-
-#: ../src/sugar/graphics/alert.py:377
-msgid "Continue"
-msgstr "Doorgaan"
-
-#: ../src/sugar/graphics/colorbutton.py:49
-msgid "Choose a color"
-msgstr "Kies een kleur"
-
-#: ../src/sugar/graphics/colorbutton.py:262
-msgid "Red"
-msgstr "Rood"
-
-#: ../src/sugar/graphics/colorbutton.py:264
-msgid "Green"
-msgstr "Groen"
-
-#: ../src/sugar/graphics/colorbutton.py:266
-msgid "Blue"
-msgstr "Blauw"
-
-#: ../src/sugar/util.py:194
-msgid " and "
-msgstr " en "
-
-#: ../src/sugar/util.py:195
-msgid ", "
-msgstr ", "
-
-# TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#. TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#: ../src/sugar/util.py:198
-msgid "Seconds ago"
-msgstr "Seconden geleden"
-
-# TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-# "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#. TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-#. "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#: ../src/sugar/util.py:202
-#, python-format
-msgid "%s ago"
-msgstr "%s geleden"
-
-# TRANS: Relative dates (eg. 1 month and 5 days).
-#. TRANS: Relative dates (eg. 1 month and 5 days).
-#: ../src/sugar/util.py:215
-#, python-format
-msgid "%d year"
-msgid_plural "%d years"
-msgstr[0] "%d jaar"
-msgstr[1] "%d jaren"
-
-#: ../src/sugar/util.py:216
-#, python-format
-msgid "%d month"
-msgid_plural "%d months"
-msgstr[0] "%d maand"
-msgstr[1] "%d maanden"
-
-#: ../src/sugar/util.py:217
-#, python-format
-msgid "%d week"
-msgid_plural "%d weeks"
-msgstr[0] "%d week"
-msgstr[1] "%d weken"
-
-#: ../src/sugar/util.py:218
-#, python-format
-msgid "%d day"
-msgid_plural "%d days"
-msgstr[0] "%d dag"
-msgstr[1] "%d dagen"
-
-#: ../src/sugar/util.py:219
-#, python-format
-msgid "%d hour"
-msgid_plural "%d hours"
-msgstr[0] "%d uur"
-msgstr[1] "%d uren"
-
-#: ../src/sugar/util.py:220
-#, python-format
-msgid "%d minute"
-msgid_plural "%d minutes"
-msgstr[0] "%d minuut"
-msgstr[1] "%d minuten"
diff --git a/po/pa.po b/po/pa.po
deleted file mode 100644
index 93a56e3..0000000
--- a/po/pa.po
+++ /dev/null
@@ -1,153 +0,0 @@
-# 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: 2008-06-24 00:07+0530\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"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Translate Toolkit 1.1.1rc4\n"
-
-#: ../src/sugar/activity/activity.py:120
-msgid "Share with:"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:122
-msgid "Private"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:123
-msgid "My Neighborhood"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:130
-msgid "Keep"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:136
-msgid "Stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:251
-msgid "Undo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:256
-msgid "Redo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:266
-msgid "Copy"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:271
-msgid "Paste"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:297
-msgid "Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:469
-#, python-format
-msgid "%s Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:856
-msgid "Keep error"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:857
-msgid "Keep error: all changes will be lost"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:860
-msgid "Don't stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:863
-msgid "Stop anyway"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:166 ../src/sugar/graphics/alert.py:209
-msgid "Cancel"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:170 ../src/sugar/graphics/alert.py:247
-msgid "Ok"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:219
-msgid "Continue"
-msgstr ""
-
-#: ../src/sugar/util.py:181
-msgid " and "
-msgstr ""
-
-#: ../src/sugar/util.py:182
-msgid ", "
-msgstr ""
-
-#. TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#: ../src/sugar/util.py:185
-msgid "Seconds ago"
-msgstr ""
-
-#. TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-#. "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#: ../src/sugar/util.py:189
-#, python-format
-msgid "%s ago"
-msgstr ""
-
-#. TRANS: Relative dates (eg. 1 month and 5 days).
-#: ../src/sugar/util.py:202
-#, python-format
-msgid "%d year"
-msgid_plural "%d years"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:203
-#, python-format
-msgid "%d month"
-msgid_plural "%d months"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:204
-#, python-format
-msgid "%d week"
-msgid_plural "%d weeks"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:205
-#, python-format
-msgid "%d day"
-msgid_plural "%d days"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:206
-#, python-format
-msgid "%d hour"
-msgid_plural "%d hours"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:207
-#, python-format
-msgid "%d minute"
-msgid_plural "%d minutes"
-msgstr[0] ""
-msgstr[1] ""
diff --git a/po/pap.po b/po/pap.po
deleted file mode 100644
index 93a56e3..0000000
--- a/po/pap.po
+++ /dev/null
@@ -1,153 +0,0 @@
-# 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: 2008-06-24 00:07+0530\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"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Translate Toolkit 1.1.1rc4\n"
-
-#: ../src/sugar/activity/activity.py:120
-msgid "Share with:"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:122
-msgid "Private"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:123
-msgid "My Neighborhood"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:130
-msgid "Keep"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:136
-msgid "Stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:251
-msgid "Undo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:256
-msgid "Redo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:266
-msgid "Copy"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:271
-msgid "Paste"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:297
-msgid "Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:469
-#, python-format
-msgid "%s Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:856
-msgid "Keep error"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:857
-msgid "Keep error: all changes will be lost"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:860
-msgid "Don't stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:863
-msgid "Stop anyway"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:166 ../src/sugar/graphics/alert.py:209
-msgid "Cancel"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:170 ../src/sugar/graphics/alert.py:247
-msgid "Ok"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:219
-msgid "Continue"
-msgstr ""
-
-#: ../src/sugar/util.py:181
-msgid " and "
-msgstr ""
-
-#: ../src/sugar/util.py:182
-msgid ", "
-msgstr ""
-
-#. TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#: ../src/sugar/util.py:185
-msgid "Seconds ago"
-msgstr ""
-
-#. TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-#. "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#: ../src/sugar/util.py:189
-#, python-format
-msgid "%s ago"
-msgstr ""
-
-#. TRANS: Relative dates (eg. 1 month and 5 days).
-#: ../src/sugar/util.py:202
-#, python-format
-msgid "%d year"
-msgid_plural "%d years"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:203
-#, python-format
-msgid "%d month"
-msgid_plural "%d months"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:204
-#, python-format
-msgid "%d week"
-msgid_plural "%d weeks"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:205
-#, python-format
-msgid "%d day"
-msgid_plural "%d days"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:206
-#, python-format
-msgid "%d hour"
-msgid_plural "%d hours"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:207
-#, python-format
-msgid "%d minute"
-msgid_plural "%d minutes"
-msgstr[0] ""
-msgstr[1] ""
diff --git a/po/pis.po b/po/pis.po
deleted file mode 100644
index 93a56e3..0000000
--- a/po/pis.po
+++ /dev/null
@@ -1,153 +0,0 @@
-# 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: 2008-06-24 00:07+0530\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"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Translate Toolkit 1.1.1rc4\n"
-
-#: ../src/sugar/activity/activity.py:120
-msgid "Share with:"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:122
-msgid "Private"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:123
-msgid "My Neighborhood"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:130
-msgid "Keep"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:136
-msgid "Stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:251
-msgid "Undo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:256
-msgid "Redo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:266
-msgid "Copy"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:271
-msgid "Paste"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:297
-msgid "Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:469
-#, python-format
-msgid "%s Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:856
-msgid "Keep error"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:857
-msgid "Keep error: all changes will be lost"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:860
-msgid "Don't stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:863
-msgid "Stop anyway"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:166 ../src/sugar/graphics/alert.py:209
-msgid "Cancel"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:170 ../src/sugar/graphics/alert.py:247
-msgid "Ok"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:219
-msgid "Continue"
-msgstr ""
-
-#: ../src/sugar/util.py:181
-msgid " and "
-msgstr ""
-
-#: ../src/sugar/util.py:182
-msgid ", "
-msgstr ""
-
-#. TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#: ../src/sugar/util.py:185
-msgid "Seconds ago"
-msgstr ""
-
-#. TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-#. "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#: ../src/sugar/util.py:189
-#, python-format
-msgid "%s ago"
-msgstr ""
-
-#. TRANS: Relative dates (eg. 1 month and 5 days).
-#: ../src/sugar/util.py:202
-#, python-format
-msgid "%d year"
-msgid_plural "%d years"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:203
-#, python-format
-msgid "%d month"
-msgid_plural "%d months"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:204
-#, python-format
-msgid "%d week"
-msgid_plural "%d weeks"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:205
-#, python-format
-msgid "%d day"
-msgid_plural "%d days"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:206
-#, python-format
-msgid "%d hour"
-msgid_plural "%d hours"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:207
-#, python-format
-msgid "%d minute"
-msgid_plural "%d minutes"
-msgstr[0] ""
-msgstr[1] ""
diff --git a/po/pl.po b/po/pl.po
deleted file mode 100644
index 93a56e3..0000000
--- a/po/pl.po
+++ /dev/null
@@ -1,153 +0,0 @@
-# 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: 2008-06-24 00:07+0530\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"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Translate Toolkit 1.1.1rc4\n"
-
-#: ../src/sugar/activity/activity.py:120
-msgid "Share with:"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:122
-msgid "Private"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:123
-msgid "My Neighborhood"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:130
-msgid "Keep"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:136
-msgid "Stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:251
-msgid "Undo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:256
-msgid "Redo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:266
-msgid "Copy"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:271
-msgid "Paste"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:297
-msgid "Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:469
-#, python-format
-msgid "%s Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:856
-msgid "Keep error"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:857
-msgid "Keep error: all changes will be lost"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:860
-msgid "Don't stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:863
-msgid "Stop anyway"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:166 ../src/sugar/graphics/alert.py:209
-msgid "Cancel"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:170 ../src/sugar/graphics/alert.py:247
-msgid "Ok"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:219
-msgid "Continue"
-msgstr ""
-
-#: ../src/sugar/util.py:181
-msgid " and "
-msgstr ""
-
-#: ../src/sugar/util.py:182
-msgid ", "
-msgstr ""
-
-#. TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#: ../src/sugar/util.py:185
-msgid "Seconds ago"
-msgstr ""
-
-#. TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-#. "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#: ../src/sugar/util.py:189
-#, python-format
-msgid "%s ago"
-msgstr ""
-
-#. TRANS: Relative dates (eg. 1 month and 5 days).
-#: ../src/sugar/util.py:202
-#, python-format
-msgid "%d year"
-msgid_plural "%d years"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:203
-#, python-format
-msgid "%d month"
-msgid_plural "%d months"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:204
-#, python-format
-msgid "%d week"
-msgid_plural "%d weeks"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:205
-#, python-format
-msgid "%d day"
-msgid_plural "%d days"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:206
-#, python-format
-msgid "%d hour"
-msgid_plural "%d hours"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:207
-#, python-format
-msgid "%d minute"
-msgid_plural "%d minutes"
-msgstr[0] ""
-msgstr[1] ""
diff --git a/po/ps.po b/po/ps.po
deleted file mode 100644
index 93a56e3..0000000
--- a/po/ps.po
+++ /dev/null
@@ -1,153 +0,0 @@
-# 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: 2008-06-24 00:07+0530\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"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Translate Toolkit 1.1.1rc4\n"
-
-#: ../src/sugar/activity/activity.py:120
-msgid "Share with:"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:122
-msgid "Private"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:123
-msgid "My Neighborhood"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:130
-msgid "Keep"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:136
-msgid "Stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:251
-msgid "Undo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:256
-msgid "Redo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:266
-msgid "Copy"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:271
-msgid "Paste"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:297
-msgid "Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:469
-#, python-format
-msgid "%s Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:856
-msgid "Keep error"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:857
-msgid "Keep error: all changes will be lost"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:860
-msgid "Don't stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:863
-msgid "Stop anyway"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:166 ../src/sugar/graphics/alert.py:209
-msgid "Cancel"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:170 ../src/sugar/graphics/alert.py:247
-msgid "Ok"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:219
-msgid "Continue"
-msgstr ""
-
-#: ../src/sugar/util.py:181
-msgid " and "
-msgstr ""
-
-#: ../src/sugar/util.py:182
-msgid ", "
-msgstr ""
-
-#. TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#: ../src/sugar/util.py:185
-msgid "Seconds ago"
-msgstr ""
-
-#. TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-#. "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#: ../src/sugar/util.py:189
-#, python-format
-msgid "%s ago"
-msgstr ""
-
-#. TRANS: Relative dates (eg. 1 month and 5 days).
-#: ../src/sugar/util.py:202
-#, python-format
-msgid "%d year"
-msgid_plural "%d years"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:203
-#, python-format
-msgid "%d month"
-msgid_plural "%d months"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:204
-#, python-format
-msgid "%d week"
-msgid_plural "%d weeks"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:205
-#, python-format
-msgid "%d day"
-msgid_plural "%d days"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:206
-#, python-format
-msgid "%d hour"
-msgid_plural "%d hours"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:207
-#, python-format
-msgid "%d minute"
-msgid_plural "%d minutes"
-msgstr[0] ""
-msgstr[1] ""
diff --git a/po/pseudo.po b/po/pseudo.po
deleted file mode 100644
index 93a56e3..0000000
--- a/po/pseudo.po
+++ /dev/null
@@ -1,153 +0,0 @@
-# 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: 2008-06-24 00:07+0530\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"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Translate Toolkit 1.1.1rc4\n"
-
-#: ../src/sugar/activity/activity.py:120
-msgid "Share with:"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:122
-msgid "Private"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:123
-msgid "My Neighborhood"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:130
-msgid "Keep"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:136
-msgid "Stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:251
-msgid "Undo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:256
-msgid "Redo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:266
-msgid "Copy"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:271
-msgid "Paste"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:297
-msgid "Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:469
-#, python-format
-msgid "%s Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:856
-msgid "Keep error"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:857
-msgid "Keep error: all changes will be lost"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:860
-msgid "Don't stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:863
-msgid "Stop anyway"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:166 ../src/sugar/graphics/alert.py:209
-msgid "Cancel"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:170 ../src/sugar/graphics/alert.py:247
-msgid "Ok"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:219
-msgid "Continue"
-msgstr ""
-
-#: ../src/sugar/util.py:181
-msgid " and "
-msgstr ""
-
-#: ../src/sugar/util.py:182
-msgid ", "
-msgstr ""
-
-#. TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#: ../src/sugar/util.py:185
-msgid "Seconds ago"
-msgstr ""
-
-#. TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-#. "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#: ../src/sugar/util.py:189
-#, python-format
-msgid "%s ago"
-msgstr ""
-
-#. TRANS: Relative dates (eg. 1 month and 5 days).
-#: ../src/sugar/util.py:202
-#, python-format
-msgid "%d year"
-msgid_plural "%d years"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:203
-#, python-format
-msgid "%d month"
-msgid_plural "%d months"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:204
-#, python-format
-msgid "%d week"
-msgid_plural "%d weeks"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:205
-#, python-format
-msgid "%d day"
-msgid_plural "%d days"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:206
-#, python-format
-msgid "%d hour"
-msgid_plural "%d hours"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:207
-#, python-format
-msgid "%d minute"
-msgid_plural "%d minutes"
-msgstr[0] ""
-msgstr[1] ""
diff --git a/po/pt.po b/po/pt.po
deleted file mode 100644
index dc1c4d9..0000000
--- a/po/pt.po
+++ /dev/null
@@ -1,153 +0,0 @@
-# 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: 2008-06-24 00:07+0530\n"
-"PO-Revision-Date: 2008-08-25 17:58-0400\n"
-"Last-Translator: Eduardo H. Silva <HoboPrimate@gmail.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\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 1.1.0rc2\n"
-
-#: ../src/sugar/activity/activity.py:120
-msgid "Share with:"
-msgstr "Partilhar com:"
-
-#: ../src/sugar/activity/activity.py:122
-msgid "Private"
-msgstr "Privado"
-
-#: ../src/sugar/activity/activity.py:123
-msgid "My Neighborhood"
-msgstr "Minha Vizinhança"
-
-#: ../src/sugar/activity/activity.py:130
-msgid "Keep"
-msgstr "Guardar"
-
-#: ../src/sugar/activity/activity.py:136
-msgid "Stop"
-msgstr "Parar"
-
-#: ../src/sugar/activity/activity.py:251
-msgid "Undo"
-msgstr "Desfazer"
-
-#: ../src/sugar/activity/activity.py:256
-msgid "Redo"
-msgstr "Refazer"
-
-#: ../src/sugar/activity/activity.py:266
-msgid "Copy"
-msgstr "Copiar"
-
-#: ../src/sugar/activity/activity.py:271
-msgid "Paste"
-msgstr "Colar"
-
-#: ../src/sugar/activity/activity.py:297
-msgid "Activity"
-msgstr "Actividade"
-
-#: ../src/sugar/activity/activity.py:469
-#, python-format
-msgid "%s Activity"
-msgstr "Actividade %s"
-
-#: ../src/sugar/activity/activity.py:856
-msgid "Keep error"
-msgstr "Erro ao guardar"
-
-#: ../src/sugar/activity/activity.py:857
-msgid "Keep error: all changes will be lost"
-msgstr "Erro ao guardar: todas as mudanças serão perdidas"
-
-#: ../src/sugar/activity/activity.py:860
-msgid "Don't stop"
-msgstr "Não parar"
-
-#: ../src/sugar/activity/activity.py:863
-msgid "Stop anyway"
-msgstr "Parar mesmo assim"
-
-#: ../src/sugar/graphics/alert.py:166 ../src/sugar/graphics/alert.py:209
-msgid "Cancel"
-msgstr "Cancelar"
-
-#: ../src/sugar/graphics/alert.py:170 ../src/sugar/graphics/alert.py:247
-msgid "Ok"
-msgstr "Ok"
-
-#: ../src/sugar/graphics/alert.py:219
-msgid "Continue"
-msgstr "Continuar"
-
-#: ../src/sugar/util.py:181
-msgid " and "
-msgstr " e "
-
-#: ../src/sugar/util.py:182
-msgid ", "
-msgstr ", "
-
-#. TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#: ../src/sugar/util.py:185
-msgid "Seconds ago"
-msgstr "Segundos atrás"
-
-#. TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-#. "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#: ../src/sugar/util.py:189
-#, python-format
-msgid "%s ago"
-msgstr "%s atrás"
-
-#. TRANS: Relative dates (eg. 1 month and 5 days).
-#: ../src/sugar/util.py:202
-#, python-format
-msgid "%d year"
-msgid_plural "%d years"
-msgstr[0] "%d ano"
-msgstr[1] "%d anos"
-
-#: ../src/sugar/util.py:203
-#, python-format
-msgid "%d month"
-msgid_plural "%d months"
-msgstr[0] "%d mês"
-msgstr[1] "%d meses"
-
-#: ../src/sugar/util.py:204
-#, python-format
-msgid "%d week"
-msgid_plural "%d weeks"
-msgstr[0] "%d semana"
-msgstr[1] "%d semanas"
-
-#: ../src/sugar/util.py:205
-#, python-format
-msgid "%d day"
-msgid_plural "%d days"
-msgstr[0] "%d dia"
-msgstr[1] "%d dias"
-
-#: ../src/sugar/util.py:206
-#, python-format
-msgid "%d hour"
-msgid_plural "%d hours"
-msgstr[0] "%d hora"
-msgstr[1] "%d horas"
-
-#: ../src/sugar/util.py:207
-#, python-format
-msgid "%d minute"
-msgid_plural "%d minutes"
-msgstr[0] "%d minuto"
-msgstr[1] "%d minutos"
diff --git a/po/pt_BR.po b/po/pt_BR.po
deleted file mode 100644
index 93a56e3..0000000
--- a/po/pt_BR.po
+++ /dev/null
@@ -1,153 +0,0 @@
-# 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: 2008-06-24 00:07+0530\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"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Translate Toolkit 1.1.1rc4\n"
-
-#: ../src/sugar/activity/activity.py:120
-msgid "Share with:"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:122
-msgid "Private"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:123
-msgid "My Neighborhood"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:130
-msgid "Keep"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:136
-msgid "Stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:251
-msgid "Undo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:256
-msgid "Redo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:266
-msgid "Copy"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:271
-msgid "Paste"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:297
-msgid "Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:469
-#, python-format
-msgid "%s Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:856
-msgid "Keep error"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:857
-msgid "Keep error: all changes will be lost"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:860
-msgid "Don't stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:863
-msgid "Stop anyway"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:166 ../src/sugar/graphics/alert.py:209
-msgid "Cancel"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:170 ../src/sugar/graphics/alert.py:247
-msgid "Ok"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:219
-msgid "Continue"
-msgstr ""
-
-#: ../src/sugar/util.py:181
-msgid " and "
-msgstr ""
-
-#: ../src/sugar/util.py:182
-msgid ", "
-msgstr ""
-
-#. TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#: ../src/sugar/util.py:185
-msgid "Seconds ago"
-msgstr ""
-
-#. TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-#. "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#: ../src/sugar/util.py:189
-#, python-format
-msgid "%s ago"
-msgstr ""
-
-#. TRANS: Relative dates (eg. 1 month and 5 days).
-#: ../src/sugar/util.py:202
-#, python-format
-msgid "%d year"
-msgid_plural "%d years"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:203
-#, python-format
-msgid "%d month"
-msgid_plural "%d months"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:204
-#, python-format
-msgid "%d week"
-msgid_plural "%d weeks"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:205
-#, python-format
-msgid "%d day"
-msgid_plural "%d days"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:206
-#, python-format
-msgid "%d hour"
-msgid_plural "%d hours"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:207
-#, python-format
-msgid "%d minute"
-msgid_plural "%d minutes"
-msgstr[0] ""
-msgstr[1] ""
diff --git a/po/qu.po b/po/qu.po
deleted file mode 100644
index 93a56e3..0000000
--- a/po/qu.po
+++ /dev/null
@@ -1,153 +0,0 @@
-# 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: 2008-06-24 00:07+0530\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"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Translate Toolkit 1.1.1rc4\n"
-
-#: ../src/sugar/activity/activity.py:120
-msgid "Share with:"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:122
-msgid "Private"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:123
-msgid "My Neighborhood"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:130
-msgid "Keep"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:136
-msgid "Stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:251
-msgid "Undo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:256
-msgid "Redo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:266
-msgid "Copy"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:271
-msgid "Paste"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:297
-msgid "Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:469
-#, python-format
-msgid "%s Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:856
-msgid "Keep error"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:857
-msgid "Keep error: all changes will be lost"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:860
-msgid "Don't stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:863
-msgid "Stop anyway"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:166 ../src/sugar/graphics/alert.py:209
-msgid "Cancel"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:170 ../src/sugar/graphics/alert.py:247
-msgid "Ok"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:219
-msgid "Continue"
-msgstr ""
-
-#: ../src/sugar/util.py:181
-msgid " and "
-msgstr ""
-
-#: ../src/sugar/util.py:182
-msgid ", "
-msgstr ""
-
-#. TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#: ../src/sugar/util.py:185
-msgid "Seconds ago"
-msgstr ""
-
-#. TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-#. "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#: ../src/sugar/util.py:189
-#, python-format
-msgid "%s ago"
-msgstr ""
-
-#. TRANS: Relative dates (eg. 1 month and 5 days).
-#: ../src/sugar/util.py:202
-#, python-format
-msgid "%d year"
-msgid_plural "%d years"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:203
-#, python-format
-msgid "%d month"
-msgid_plural "%d months"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:204
-#, python-format
-msgid "%d week"
-msgid_plural "%d weeks"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:205
-#, python-format
-msgid "%d day"
-msgid_plural "%d days"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:206
-#, python-format
-msgid "%d hour"
-msgid_plural "%d hours"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:207
-#, python-format
-msgid "%d minute"
-msgid_plural "%d minutes"
-msgstr[0] ""
-msgstr[1] ""
diff --git a/po/ro.po b/po/ro.po
deleted file mode 100644
index 93a56e3..0000000
--- a/po/ro.po
+++ /dev/null
@@ -1,153 +0,0 @@
-# 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: 2008-06-24 00:07+0530\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"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Translate Toolkit 1.1.1rc4\n"
-
-#: ../src/sugar/activity/activity.py:120
-msgid "Share with:"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:122
-msgid "Private"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:123
-msgid "My Neighborhood"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:130
-msgid "Keep"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:136
-msgid "Stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:251
-msgid "Undo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:256
-msgid "Redo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:266
-msgid "Copy"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:271
-msgid "Paste"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:297
-msgid "Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:469
-#, python-format
-msgid "%s Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:856
-msgid "Keep error"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:857
-msgid "Keep error: all changes will be lost"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:860
-msgid "Don't stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:863
-msgid "Stop anyway"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:166 ../src/sugar/graphics/alert.py:209
-msgid "Cancel"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:170 ../src/sugar/graphics/alert.py:247
-msgid "Ok"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:219
-msgid "Continue"
-msgstr ""
-
-#: ../src/sugar/util.py:181
-msgid " and "
-msgstr ""
-
-#: ../src/sugar/util.py:182
-msgid ", "
-msgstr ""
-
-#. TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#: ../src/sugar/util.py:185
-msgid "Seconds ago"
-msgstr ""
-
-#. TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-#. "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#: ../src/sugar/util.py:189
-#, python-format
-msgid "%s ago"
-msgstr ""
-
-#. TRANS: Relative dates (eg. 1 month and 5 days).
-#: ../src/sugar/util.py:202
-#, python-format
-msgid "%d year"
-msgid_plural "%d years"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:203
-#, python-format
-msgid "%d month"
-msgid_plural "%d months"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:204
-#, python-format
-msgid "%d week"
-msgid_plural "%d weeks"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:205
-#, python-format
-msgid "%d day"
-msgid_plural "%d days"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:206
-#, python-format
-msgid "%d hour"
-msgid_plural "%d hours"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:207
-#, python-format
-msgid "%d minute"
-msgid_plural "%d minutes"
-msgstr[0] ""
-msgstr[1] ""
diff --git a/po/ru.po b/po/ru.po
deleted file mode 100644
index c86e0fb..0000000
--- a/po/ru.po
+++ /dev/null
@@ -1,161 +0,0 @@
-# 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: 2008-06-24 00:07+0530\n"
-"PO-Revision-Date: 2008-09-08 11:53-0400\n"
-"Last-Translator: Kirill Krinkin <homebox@pisem.net>\n"
-"Language-Team: LANGUAGE <LL@li.org>\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 1.1.0rc2\n"
-
-#: ../src/sugar/activity/activity.py:120
-msgid "Share with:"
-msgstr "Использовать совместно с:"
-
-#: ../src/sugar/activity/activity.py:122
-msgid "Private"
-msgstr "Персонально"
-
-#: ../src/sugar/activity/activity.py:123
-msgid "My Neighborhood"
-msgstr "Мои соседи"
-
-#: ../src/sugar/activity/activity.py:130
-msgid "Keep"
-msgstr "Хранить"
-
-#: ../src/sugar/activity/activity.py:136
-msgid "Stop"
-msgstr "Стоп"
-
-#: ../src/sugar/activity/activity.py:251
-msgid "Undo"
-msgstr "Откат"
-
-#: ../src/sugar/activity/activity.py:256
-msgid "Redo"
-msgstr "Повтор"
-
-#: ../src/sugar/activity/activity.py:266
-msgid "Copy"
-msgstr "Копировать"
-
-#: ../src/sugar/activity/activity.py:271
-msgid "Paste"
-msgstr "Вставить"
-
-#: ../src/sugar/activity/activity.py:297
-msgid "Activity"
-msgstr "Активность"
-
-#: ../src/sugar/activity/activity.py:469
-#, python-format
-msgid "%s Activity"
-msgstr "Активность %s"
-
-#: ../src/sugar/activity/activity.py:856
-msgid "Keep error"
-msgstr "Ошибка хранения"
-
-#: ../src/sugar/activity/activity.py:857
-msgid "Keep error: all changes will be lost"
-msgstr "Ошибка хранения: все изменения будут потеряны"
-
-#: ../src/sugar/activity/activity.py:860
-msgid "Don't stop"
-msgstr "Не останавливаться"
-
-#: ../src/sugar/activity/activity.py:863
-msgid "Stop anyway"
-msgstr "Остановить в любом случае"
-
-#: ../src/sugar/graphics/alert.py:166 ../src/sugar/graphics/alert.py:209
-msgid "Cancel"
-msgstr "Отмена"
-
-#: ../src/sugar/graphics/alert.py:170 ../src/sugar/graphics/alert.py:247
-msgid "Ok"
-msgstr "Ok"
-
-#: ../src/sugar/graphics/alert.py:219
-msgid "Continue"
-msgstr "Продолжить"
-
-# требует проверки! что там в исходном коде?
-#: ../src/sugar/util.py:181
-msgid " and "
-msgstr "_and_"
-
-# требует проверки! что там в исходном коде?
-#: ../src/sugar/util.py:182
-msgid ", "
-msgstr ",_"
-
-#. TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#: ../src/sugar/util.py:185
-msgid "Seconds ago"
-msgstr "Секунд назад"
-
-#. TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-#. "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#: ../src/sugar/util.py:189
-#, python-format
-msgid "%s ago"
-msgstr "%s назад"
-
-#. TRANS: Relative dates (eg. 1 month and 5 days).
-#: ../src/sugar/util.py:202
-#, python-format
-msgid "%d year"
-msgid_plural "%d years"
-msgstr[0] "%d год"
-msgstr[1] "%d года"
-msgstr[2] "%d лет"
-
-#: ../src/sugar/util.py:203
-#, python-format
-msgid "%d month"
-msgid_plural "%d months"
-msgstr[0] "%d месяц"
-msgstr[1] "%d месяца"
-msgstr[2] "%d месяцев"
-
-#: ../src/sugar/util.py:204
-#, python-format
-msgid "%d week"
-msgid_plural "%d weeks"
-msgstr[0] "%d неделя"
-msgstr[1] "%d недели"
-msgstr[2] "%d недель"
-
-#: ../src/sugar/util.py:205
-#, python-format
-msgid "%d day"
-msgid_plural "%d days"
-msgstr[0] "%d день"
-msgstr[1] "%d дня"
-msgstr[2] "%d дней"
-
-#: ../src/sugar/util.py:206
-#, python-format
-msgid "%d hour"
-msgid_plural "%d hours"
-msgstr[0] "%d час"
-msgstr[1] "%d часа"
-msgstr[2] "%d часов"
-
-#: ../src/sugar/util.py:207
-#, python-format
-msgid "%d minute"
-msgid_plural "%d minutes"
-msgstr[0] "%d минута"
-msgstr[1] "%d минуты"
-msgstr[2] "%d минут"
diff --git a/po/rw.po b/po/rw.po
deleted file mode 100644
index 567ed5b..0000000
--- a/po/rw.po
+++ /dev/null
@@ -1,154 +0,0 @@
-# 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: 2008-06-24 00:07+0530\n"
-"PO-Revision-Date: 2008-08-06 03:42-0400\n"
-"Last-Translator: Carine Umutesi <carine.umutesi@rita.rw>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Pootle 1.1.0rc2\n"
-
-#: ../src/sugar/activity/activity.py:120
-msgid "Share with:"
-msgstr "Gusangira na:"
-
-#: ../src/sugar/activity/activity.py:122
-msgid "Private"
-msgstr "Byihariye"
-
-#: ../src/sugar/activity/activity.py:123
-msgid "My Neighborhood"
-msgstr "Guturana kwanjye"
-
-#: ../src/sugar/activity/activity.py:130
-msgid "Keep"
-msgstr "Gumana"
-
-#: ../src/sugar/activity/activity.py:136
-msgid "Stop"
-msgstr "Hagarika"
-
-#: ../src/sugar/activity/activity.py:251
-msgid "Undo"
-msgstr "Subiramo"
-
-#: ../src/sugar/activity/activity.py:256
-msgid "Redo"
-msgstr "Gukuraho icyariho"
-
-#: ../src/sugar/activity/activity.py:266
-msgid "Copy"
-msgstr "Gukoporora"
-
-#: ../src/sugar/activity/activity.py:271
-msgid "Paste"
-msgstr "Omeka"
-
-#: ../src/sugar/activity/activity.py:297
-msgid "Activity"
-msgstr "Igikorwa"
-
-#: ../src/sugar/activity/activity.py:469
-#, python-format
-msgid "%s Activity"
-msgstr "%s Igikorwa"
-
-#: ../src/sugar/activity/activity.py:856
-msgid "Keep error"
-msgstr "Gumana ikosa"
-
-#: ../src/sugar/activity/activity.py:857
-msgid "Keep error: all changes will be lost"
-msgstr "Gumana ikosa:impinduka zose zirabura"
-
-#: ../src/sugar/activity/activity.py:860
-msgid "Don't stop"
-msgstr "Ntuhagarare"
-
-#: ../src/sugar/activity/activity.py:863
-msgid "Stop anyway"
-msgstr "Hagarara muburyo bwose"
-
-#: ../src/sugar/graphics/alert.py:166
-#: ../src/sugar/graphics/alert.py:209
-msgid "Cancel"
-msgstr "Kuraho"
-
-#: ../src/sugar/graphics/alert.py:170
-#: ../src/sugar/graphics/alert.py:247
-msgid "Ok"
-msgstr "Nibyo"
-
-#: ../src/sugar/graphics/alert.py:219
-msgid "Continue"
-msgstr "Komeza"
-
-#: ../src/sugar/util.py:181
-msgid " and "
-msgstr " na "
-
-#: ../src/sugar/util.py:182
-msgid ", "
-msgstr ", "
-
-#. TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#: ../src/sugar/util.py:185
-msgid "Seconds ago"
-msgstr "Amasegonda ashize"
-
-#. TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-#. "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#: ../src/sugar/util.py:189
-#, python-format
-msgid "%s ago"
-msgstr "%s ashize"
-
-#. TRANS: Relative dates (eg. 1 month and 5 days).
-#: ../src/sugar/util.py:202
-#, python-format
-msgid "%d year"
-msgid_plural "%d years"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:203
-#, python-format
-msgid "%d month"
-msgid_plural "%d months"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:204
-#, python-format
-msgid "%d week"
-msgid_plural "%d weeks"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:205
-#, python-format
-msgid "%d day"
-msgid_plural "%d days"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:206
-#, python-format
-msgid "%d hour"
-msgid_plural "%d hours"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:207
-#, python-format
-msgid "%d minute"
-msgid_plural "%d minutes"
-msgstr[0] ""
-msgstr[1] ""
diff --git a/po/sd.po b/po/sd.po
deleted file mode 100644
index 93a56e3..0000000
--- a/po/sd.po
+++ /dev/null
@@ -1,153 +0,0 @@
-# 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: 2008-06-24 00:07+0530\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"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Translate Toolkit 1.1.1rc4\n"
-
-#: ../src/sugar/activity/activity.py:120
-msgid "Share with:"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:122
-msgid "Private"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:123
-msgid "My Neighborhood"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:130
-msgid "Keep"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:136
-msgid "Stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:251
-msgid "Undo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:256
-msgid "Redo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:266
-msgid "Copy"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:271
-msgid "Paste"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:297
-msgid "Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:469
-#, python-format
-msgid "%s Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:856
-msgid "Keep error"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:857
-msgid "Keep error: all changes will be lost"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:860
-msgid "Don't stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:863
-msgid "Stop anyway"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:166 ../src/sugar/graphics/alert.py:209
-msgid "Cancel"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:170 ../src/sugar/graphics/alert.py:247
-msgid "Ok"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:219
-msgid "Continue"
-msgstr ""
-
-#: ../src/sugar/util.py:181
-msgid " and "
-msgstr ""
-
-#: ../src/sugar/util.py:182
-msgid ", "
-msgstr ""
-
-#. TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#: ../src/sugar/util.py:185
-msgid "Seconds ago"
-msgstr ""
-
-#. TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-#. "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#: ../src/sugar/util.py:189
-#, python-format
-msgid "%s ago"
-msgstr ""
-
-#. TRANS: Relative dates (eg. 1 month and 5 days).
-#: ../src/sugar/util.py:202
-#, python-format
-msgid "%d year"
-msgid_plural "%d years"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:203
-#, python-format
-msgid "%d month"
-msgid_plural "%d months"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:204
-#, python-format
-msgid "%d week"
-msgid_plural "%d weeks"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:205
-#, python-format
-msgid "%d day"
-msgid_plural "%d days"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:206
-#, python-format
-msgid "%d hour"
-msgid_plural "%d hours"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:207
-#, python-format
-msgid "%d minute"
-msgid_plural "%d minutes"
-msgstr[0] ""
-msgstr[1] ""
diff --git a/po/si.po b/po/si.po
deleted file mode 100644
index c6892fb..0000000
--- a/po/si.po
+++ /dev/null
@@ -1,152 +0,0 @@
-# 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: 2008-06-24 00:07+0530\n"
-"PO-Revision-Date: 2008-07-18 06:59-0400\n"
-"Last-Translator: Rashan Anushka <rashan.uoc@gmail.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Pootle 1.1.0rc2\n"
-
-#: ../src/sugar/activity/activity.py:120
-msgid "Share with:"
-msgstr "බෙදාගත යුත්තේ:"
-
-#: ../src/sugar/activity/activity.py:122
-msgid "Private"
-msgstr "පුද්ගලික"
-
-#: ../src/sugar/activity/activity.py:123
-msgid "My Neighborhood"
-msgstr "මගේ වටපිටාව"
-
-#: ../src/sugar/activity/activity.py:130
-msgid "Keep"
-msgstr "තබාගන්න"
-
-#: ../src/sugar/activity/activity.py:136
-msgid "Stop"
-msgstr "නවත්වන්න"
-
-#: ../src/sugar/activity/activity.py:251
-msgid "Undo"
-msgstr "නිශ්ප්‍රභ කරන්න"
-
-#: ../src/sugar/activity/activity.py:256
-msgid "Redo"
-msgstr "යළි කරන්න"
-
-#: ../src/sugar/activity/activity.py:266
-msgid "Copy"
-msgstr "පිටපත් කරන්න"
-
-#: ../src/sugar/activity/activity.py:271
-msgid "Paste"
-msgstr "අලවන්න"
-
-#: ../src/sugar/activity/activity.py:297
-msgid "Activity"
-msgstr "ක්‍රියාකාරකම"
-
-#: ../src/sugar/activity/activity.py:469
-#, python-format
-msgid "%s Activity"
-msgstr "%s ක්‍රියාකාරකම"
-
-#: ../src/sugar/activity/activity.py:856
-msgid "Keep error"
-msgstr "දෝශය තබාගන්න"
-
-#: ../src/sugar/activity/activity.py:857
-msgid "Keep error: all changes will be lost"
-msgstr "දෝශය තබාගන්න: සියළු වෙනස්කිරීම් නැතිවනු ඇත"
-
-#: ../src/sugar/activity/activity.py:860
-msgid "Don't stop"
-msgstr "නවත්වන්න එපා"
-
-#: ../src/sugar/activity/activity.py:863
-msgid "Stop anyway"
-msgstr "කෙසේ හෝ නවත්වන්න"
-
-#: ../src/sugar/graphics/alert.py:166 ../src/sugar/graphics/alert.py:209
-msgid "Cancel"
-msgstr "අවලංගු කරන්න"
-
-#: ../src/sugar/graphics/alert.py:170 ../src/sugar/graphics/alert.py:247
-msgid "Ok"
-msgstr "හරි"
-
-#: ../src/sugar/graphics/alert.py:219
-msgid "Continue"
-msgstr "පවත්වාගෙන යන්න"
-
-#: ../src/sugar/util.py:181
-msgid " and "
-msgstr " හා "
-
-#: ../src/sugar/util.py:182
-msgid ", "
-msgstr ", "
-
-#. TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#: ../src/sugar/util.py:185
-msgid "Seconds ago"
-msgstr "තත්පර කිහිපයකට පෙර"
-
-#. TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-#. "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#: ../src/sugar/util.py:189
-#, python-format
-msgid "%s ago"
-msgstr "%s ට පෙර"
-
-#. TRANS: Relative dates (eg. 1 month and 5 days).
-#: ../src/sugar/util.py:202
-#, python-format
-msgid "%d year"
-msgid_plural "%d years"
-msgstr[0] "අවුරුද්දයි"
-msgstr[1] "අවුරුදු %d "
-
-#: ../src/sugar/util.py:203
-#, python-format
-msgid "%d month"
-msgid_plural "%d months"
-msgstr[0] "මාසයයි"
-msgstr[1] "මාස %d"
-
-#: ../src/sugar/util.py:204
-#, python-format
-msgid "%d week"
-msgid_plural "%d weeks"
-msgstr[0] "සතියයි"
-msgstr[1] "සති %d"
-
-#: ../src/sugar/util.py:205
-#, python-format
-msgid "%d day"
-msgid_plural "%d days"
-msgstr[0] "දවසයි"
-msgstr[1] "දවස් %d"
-
-#: ../src/sugar/util.py:206
-#, python-format
-msgid "%d hour"
-msgid_plural "%d hours"
-msgstr[0] "පැයයි"
-msgstr[1] "පැය %d"
-
-#: ../src/sugar/util.py:207
-#, python-format
-msgid "%d minute"
-msgid_plural "%d minutes"
-msgstr[0] "මිනිත්තුවයි"
-msgstr[1] "මිනිත්තු %d"
diff --git a/po/sk.po b/po/sk.po
deleted file mode 100644
index bf097b4..0000000
--- a/po/sk.po
+++ /dev/null
@@ -1,160 +0,0 @@
-# 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: 2008-06-24 00:07+0530\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"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
-"X-Generator: Translate Toolkit 1.1.1rc4\n"
-
-#: ../src/sugar/activity/activity.py:120
-msgid "Share with:"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:122
-msgid "Private"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:123
-msgid "My Neighborhood"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:130
-msgid "Keep"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:136
-msgid "Stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:251
-msgid "Undo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:256
-msgid "Redo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:266
-msgid "Copy"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:271
-msgid "Paste"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:297
-msgid "Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:469
-#, python-format
-msgid "%s Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:856
-msgid "Keep error"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:857
-msgid "Keep error: all changes will be lost"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:860
-msgid "Don't stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:863
-msgid "Stop anyway"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:166 ../src/sugar/graphics/alert.py:209
-msgid "Cancel"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:170 ../src/sugar/graphics/alert.py:247
-msgid "Ok"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:219
-msgid "Continue"
-msgstr ""
-
-#: ../src/sugar/util.py:181
-msgid " and "
-msgstr ""
-
-#: ../src/sugar/util.py:182
-msgid ", "
-msgstr ""
-
-#. TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#: ../src/sugar/util.py:185
-msgid "Seconds ago"
-msgstr ""
-
-#. TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-#. "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#: ../src/sugar/util.py:189
-#, python-format
-msgid "%s ago"
-msgstr ""
-
-#. TRANS: Relative dates (eg. 1 month and 5 days).
-#: ../src/sugar/util.py:202
-#, python-format
-msgid "%d year"
-msgid_plural "%d years"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-
-#: ../src/sugar/util.py:203
-#, python-format
-msgid "%d month"
-msgid_plural "%d months"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-
-#: ../src/sugar/util.py:204
-#, python-format
-msgid "%d week"
-msgid_plural "%d weeks"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-
-#: ../src/sugar/util.py:205
-#, python-format
-msgid "%d day"
-msgid_plural "%d days"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-
-#: ../src/sugar/util.py:206
-#, python-format
-msgid "%d hour"
-msgid_plural "%d hours"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-
-#: ../src/sugar/util.py:207
-#, python-format
-msgid "%d minute"
-msgid_plural "%d minutes"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
diff --git a/po/sl.po b/po/sl.po
deleted file mode 100644
index a7c0405..0000000
--- a/po/sl.po
+++ /dev/null
@@ -1,202 +0,0 @@
-# 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: 2009-01-20 00:31-0500\n"
-"PO-Revision-Date: 2008-07-11 00:46-0400\n"
-"Last-Translator: Denis Oštir <denis.ostir@gmail.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Pootle 1.1.0rc2\n"
-
-#: ../src/sugar/activity/activity.py:123
-msgid "Share with:"
-msgstr "Deli z:"
-
-#: ../src/sugar/activity/activity.py:125
-msgid "Private"
-msgstr "Zasebno"
-
-#: ../src/sugar/activity/activity.py:126
-msgid "My Neighborhood"
-msgstr "Moja soseščina"
-
-#: ../src/sugar/activity/activity.py:133
-#: ../src/sugar/activity/namingalert.py:65
-msgid "Keep"
-msgstr "Obdrži"
-
-#: ../src/sugar/activity/activity.py:144
-msgid "Stop"
-msgstr "Ustavi"
-
-#: ../src/sugar/activity/activity.py:258
-msgid "Undo"
-msgstr "Razveljavi"
-
-#: ../src/sugar/activity/activity.py:263
-msgid "Redo"
-msgstr "Ponovi"
-
-#: ../src/sugar/activity/activity.py:273
-msgid "Copy"
-msgstr "Kopiraj"
-
-#: ../src/sugar/activity/activity.py:278
-msgid "Paste"
-msgstr "Prilepi"
-
-#: ../src/sugar/activity/activity.py:304
-msgid "Activity"
-msgstr "Aktivnost"
-
-#: ../src/sugar/activity/activity.py:542
-#, python-format
-msgid "%s Activity"
-msgstr "%s aktivnost"
-
-#: ../src/sugar/activity/activity.py:910
-msgid "Keep error"
-msgstr "Napaka pri shranjevanju"
-
-#: ../src/sugar/activity/activity.py:911
-msgid "Keep error: all changes will be lost"
-msgstr "Napaka pri shranjevanju: vse spremembe bodo izgubljene"
-
-#: ../src/sugar/activity/activity.py:914
-msgid "Don't stop"
-msgstr "Ne ustavi"
-
-#: ../src/sugar/activity/activity.py:917
-msgid "Stop anyway"
-msgstr "Vseeno ustavi"
-
-#: ../src/sugar/activity/namingalert.py:60
-msgid "Name this entry"
-msgstr ""
-
-#: ../src/sugar/activity/namingalert.py:248
-msgid "Untitled"
-msgstr ""
-
-#: ../src/sugar/activity/namingalert.py:255
-msgid "Description:"
-msgstr ""
-
-#: ../src/sugar/activity/namingalert.py:279
-msgid "Tags:"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:288 ../src/sugar/graphics/alert.py:367
-msgid "Cancel"
-msgstr "Prekliči"
-
-#: ../src/sugar/graphics/alert.py:292 ../src/sugar/graphics/alert.py:426
-msgid "Ok"
-msgstr "V redu"
-
-#: ../src/sugar/graphics/alert.py:377
-msgid "Continue"
-msgstr "Nadaljuj"
-
-#: ../src/sugar/graphics/colorbutton.py:49
-msgid "Choose a color"
-msgstr ""
-
-#: ../src/sugar/graphics/colorbutton.py:262
-#, fuzzy
-msgid "Red"
-msgstr "Ponovi"
-
-#: ../src/sugar/graphics/colorbutton.py:264
-msgid "Green"
-msgstr ""
-
-#: ../src/sugar/graphics/colorbutton.py:266
-msgid "Blue"
-msgstr ""
-
-#: ../src/sugar/util.py:194
-msgid " and "
-msgstr " in "
-
-#: ../src/sugar/util.py:195
-msgid ", "
-msgstr ", "
-
-# TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#. TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#: ../src/sugar/util.py:198
-msgid "Seconds ago"
-msgstr "pred nekaj sekundami"
-
-# TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-# "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#. TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-#. "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#: ../src/sugar/util.py:202
-#, python-format
-msgid "%s ago"
-msgstr "%s nazaj"
-
-# TRANS: Relative dates (eg. 1 month and 5 days).
-#. TRANS: Relative dates (eg. 1 month and 5 days).
-#: ../src/sugar/util.py:215
-#, python-format
-msgid "%d year"
-msgid_plural "%d years"
-msgstr[0] "%d leto"
-msgstr[1] "%d leti"
-msgstr[2] "%d let"
-msgstr[3] ""
-
-#: ../src/sugar/util.py:216
-#, python-format
-msgid "%d month"
-msgid_plural "%d months"
-msgstr[0] "%d mesec"
-msgstr[1] "%d meseca"
-msgstr[2] "%d mesecev"
-msgstr[3] ""
-
-#: ../src/sugar/util.py:217
-#, python-format
-msgid "%d week"
-msgid_plural "%d weeks"
-msgstr[0] "%d teden"
-msgstr[1] "%d tedna"
-msgstr[2] "%d tedni"
-msgstr[3] "%d tednov"
-
-#: ../src/sugar/util.py:218
-#, python-format
-msgid "%d day"
-msgid_plural "%d days"
-msgstr[0] "%d dan"
-msgstr[1] "%d dni"
-msgstr[2] ""
-msgstr[3] ""
-
-#: ../src/sugar/util.py:219
-#, python-format
-msgid "%d hour"
-msgid_plural "%d hours"
-msgstr[0] "%d ura"
-msgstr[1] "%d uri"
-msgstr[2] "%d ure"
-msgstr[3] "%d ur"
-
-#: ../src/sugar/util.py:220
-#, python-format
-msgid "%d minute"
-msgid_plural "%d minutes"
-msgstr[0] "%d minuta"
-msgstr[1] "%d minuti"
-msgstr[2] "%d minute"
-msgstr[3] "%d minut"
diff --git a/po/sugar-toolkit.pot b/po/sugar-toolkit.pot
deleted file mode 100644
index aad88d1..0000000
--- a/po/sugar-toolkit.pot
+++ /dev/null
@@ -1,154 +0,0 @@
-# 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: 2008-06-24 00:07+0530\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"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=CHARSET\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
-
-#: ../src/sugar/activity/activity.py:120
-msgid "Share with:"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:122
-msgid "Private"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:123
-msgid "My Neighborhood"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:130
-msgid "Keep"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:136
-msgid "Stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:251
-msgid "Undo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:256
-msgid "Redo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:266
-msgid "Copy"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:271
-msgid "Paste"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:297
-msgid "Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:469
-#, python-format
-msgid "%s Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:856
-msgid "Keep error"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:857
-msgid "Keep error: all changes will be lost"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:860
-msgid "Don't stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:863
-msgid "Stop anyway"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:166 ../src/sugar/graphics/alert.py:209
-msgid "Cancel"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:170 ../src/sugar/graphics/alert.py:247
-msgid "Ok"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:219
-msgid "Continue"
-msgstr ""
-
-#: ../src/sugar/util.py:181
-msgid " and "
-msgstr ""
-
-#: ../src/sugar/util.py:182
-msgid ", "
-msgstr ""
-
-#. TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#: ../src/sugar/util.py:185
-msgid "Seconds ago"
-msgstr ""
-
-#. TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-#. "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#: ../src/sugar/util.py:189
-#, python-format
-msgid "%s ago"
-msgstr ""
-
-#. TRANS: Relative dates (eg. 1 month and 5 days).
-#: ../src/sugar/util.py:202
-#, python-format
-msgid "%d year"
-msgid_plural "%d years"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:203
-#, python-format
-msgid "%d month"
-msgid_plural "%d months"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:204
-#, python-format
-msgid "%d week"
-msgid_plural "%d weeks"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:205
-#, python-format
-msgid "%d day"
-msgid_plural "%d days"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:206
-#, python-format
-msgid "%d hour"
-msgid_plural "%d hours"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:207
-#, python-format
-msgid "%d minute"
-msgid_plural "%d minutes"
-msgstr[0] ""
-msgstr[1] ""
diff --git a/po/sv.po b/po/sv.po
deleted file mode 100644
index c0cc91c..0000000
--- a/po/sv.po
+++ /dev/null
@@ -1,152 +0,0 @@
-# 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: 2008-06-24 00:07+0530\n"
-"PO-Revision-Date: 2008-10-08 05:46-0400\n"
-"Last-Translator: Mattias Ohlsson <mattias_oh@yahoo.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Translate Toolkit 1.1.1rc4\n"
-
-#: ../src/sugar/activity/activity.py:120
-msgid "Share with:"
-msgstr "Dela med:"
-
-#: ../src/sugar/activity/activity.py:122
-msgid "Private"
-msgstr "Mig själv"
-
-#: ../src/sugar/activity/activity.py:123
-msgid "My Neighborhood"
-msgstr "Mina grannar"
-
-#: ../src/sugar/activity/activity.py:130
-msgid "Keep"
-msgstr "Spara"
-
-#: ../src/sugar/activity/activity.py:136
-msgid "Stop"
-msgstr "Avsluta"
-
-#: ../src/sugar/activity/activity.py:251
-msgid "Undo"
-msgstr "Ångra"
-
-#: ../src/sugar/activity/activity.py:256
-msgid "Redo"
-msgstr "Återställ"
-
-#: ../src/sugar/activity/activity.py:266
-msgid "Copy"
-msgstr "Kopiera"
-
-#: ../src/sugar/activity/activity.py:271
-msgid "Paste"
-msgstr "Klistra in"
-
-#: ../src/sugar/activity/activity.py:297
-msgid "Activity"
-msgstr "Aktivitet"
-
-#: ../src/sugar/activity/activity.py:469
-#, python-format
-msgid "%s Activity"
-msgstr "(%s)aktivitet"
-
-#: ../src/sugar/activity/activity.py:856
-msgid "Keep error"
-msgstr "Sparfel"
-
-#: ../src/sugar/activity/activity.py:857
-msgid "Keep error: all changes will be lost"
-msgstr "Sparfel: alla ändringar kommer att förloras"
-
-#: ../src/sugar/activity/activity.py:860
-msgid "Don't stop"
-msgstr "Avsluta inte"
-
-#: ../src/sugar/activity/activity.py:863
-msgid "Stop anyway"
-msgstr "Stäng utan att spara"
-
-#: ../src/sugar/graphics/alert.py:166 ../src/sugar/graphics/alert.py:209
-msgid "Cancel"
-msgstr "Avbryt"
-
-#: ../src/sugar/graphics/alert.py:170 ../src/sugar/graphics/alert.py:247
-msgid "Ok"
-msgstr "Ok"
-
-#: ../src/sugar/graphics/alert.py:219
-msgid "Continue"
-msgstr "Fortsätt"
-
-#: ../src/sugar/util.py:181
-msgid " and "
-msgstr " och "
-
-#: ../src/sugar/util.py:182
-msgid ", "
-msgstr ", "
-
-#. TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#: ../src/sugar/util.py:185
-msgid "Seconds ago"
-msgstr "sekunder sedan"
-
-#. TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-#. "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#: ../src/sugar/util.py:189
-#, python-format
-msgid "%s ago"
-msgstr "%s gammalt"
-
-#. TRANS: Relative dates (eg. 1 month and 5 days).
-#: ../src/sugar/util.py:202
-#, python-format
-msgid "%d year"
-msgid_plural "%d years"
-msgstr[0] "%d år"
-msgstr[1] "%d år"
-
-#: ../src/sugar/util.py:203
-#, python-format
-msgid "%d month"
-msgid_plural "%d months"
-msgstr[0] "%d månad"
-msgstr[1] "%d månader"
-
-#: ../src/sugar/util.py:204
-#, python-format
-msgid "%d week"
-msgid_plural "%d weeks"
-msgstr[0] "%d vecka"
-msgstr[1] "%d veckor"
-
-#: ../src/sugar/util.py:205
-#, python-format
-msgid "%d day"
-msgid_plural "%d days"
-msgstr[0] "%d dag"
-msgstr[1] "%d dagar"
-
-#: ../src/sugar/util.py:206
-#, python-format
-msgid "%d hour"
-msgid_plural "%d hours"
-msgstr[0] "%d timme"
-msgstr[1] "%d timmar"
-
-#: ../src/sugar/util.py:207
-#, python-format
-msgid "%d minute"
-msgid_plural "%d minutes"
-msgstr[0] "%d minut"
-msgstr[1] "%d minuter"
diff --git a/po/sw.po b/po/sw.po
deleted file mode 100644
index 2c06ab5..0000000
--- a/po/sw.po
+++ /dev/null
@@ -1,152 +0,0 @@
-# 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: 2008-06-24 00:07+0530\n"
-"PO-Revision-Date: 2008-11-21 14:10-0500\n"
-"Last-Translator: Fanuel Kalugendo <fanosbert@yahoo.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Pootle 1.1.0rc2\n"
-
-#: ../src/sugar/activity/activity.py:120
-msgid "Share with:"
-msgstr "Shirikina pamoja"
-
-#: ../src/sugar/activity/activity.py:122
-msgid "Private"
-msgstr "Binafsi"
-
-#: ../src/sugar/activity/activity.py:123
-msgid "My Neighborhood"
-msgstr "Jirani yangu"
-
-#: ../src/sugar/activity/activity.py:130
-msgid "Keep"
-msgstr "Hifadhi/ibakishe"
-
-#: ../src/sugar/activity/activity.py:136
-msgid "Stop"
-msgstr "Simama"
-
-#: ../src/sugar/activity/activity.py:251
-msgid "Undo"
-msgstr "rudi kabla"
-
-#: ../src/sugar/activity/activity.py:256
-msgid "Redo"
-msgstr "Rudia kufanya"
-
-#: ../src/sugar/activity/activity.py:266
-msgid "Copy"
-msgstr "nakili"
-
-#: ../src/sugar/activity/activity.py:271
-msgid "Paste"
-msgstr "bandika"
-
-#: ../src/sugar/activity/activity.py:297
-msgid "Activity"
-msgstr "Kazi"
-
-#: ../src/sugar/activity/activity.py:469
-#, python-format
-msgid "%s Activity"
-msgstr "%s Kazi"
-
-#: ../src/sugar/activity/activity.py:856
-msgid "Keep error"
-msgstr "hifadhi kosa"
-
-#: ../src/sugar/activity/activity.py:857
-msgid "Keep error: all changes will be lost"
-msgstr "hifadhi kosa: mabadiliko yote yatapotea"
-
-#: ../src/sugar/activity/activity.py:860
-msgid "Don't stop"
-msgstr "Usisimame"
-
-#: ../src/sugar/activity/activity.py:863
-msgid "Stop anyway"
-msgstr "Simama hata hiyo"
-
-#: ../src/sugar/graphics/alert.py:166 ../src/sugar/graphics/alert.py:209
-msgid "Cancel"
-msgstr "Ghahiri"
-
-#: ../src/sugar/graphics/alert.py:170 ../src/sugar/graphics/alert.py:247
-msgid "Ok"
-msgstr "Sawa"
-
-#: ../src/sugar/graphics/alert.py:219
-msgid "Continue"
-msgstr "Endelea"
-
-#: ../src/sugar/util.py:181
-msgid " and "
-msgstr "na_"
-
-#: ../src/sugar/util.py:182
-msgid ", "
-msgstr ",_"
-
-#. TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#: ../src/sugar/util.py:185
-msgid "Seconds ago"
-msgstr "Dakika zilizopita"
-
-#. TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-#. "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#: ../src/sugar/util.py:189
-#, python-format
-msgid "%s ago"
-msgstr "%s zilizopita"
-
-#. TRANS: Relative dates (eg. 1 month and 5 days).
-#: ../src/sugar/util.py:202
-#, python-format
-msgid "%d year"
-msgid_plural "%d years"
-msgstr[0] "%d mwaka"
-msgstr[1] "%d miaka"
-
-#: ../src/sugar/util.py:203
-#, python-format
-msgid "%d month"
-msgid_plural "%d months"
-msgstr[0] "%d mwezi"
-msgstr[1] "%d miezi"
-
-#: ../src/sugar/util.py:204
-#, python-format
-msgid "%d week"
-msgid_plural "%d weeks"
-msgstr[0] "%d wiki"
-msgstr[1] "%d wiki"
-
-#: ../src/sugar/util.py:205
-#, python-format
-msgid "%d day"
-msgid_plural "%d days"
-msgstr[0] "%d siku"
-msgstr[1] "%d siku"
-
-#: ../src/sugar/util.py:206
-#, python-format
-msgid "%d hour"
-msgid_plural "%d hours"
-msgstr[0] "%d saa"
-msgstr[1] "%d masaa"
-
-#: ../src/sugar/util.py:207
-#, python-format
-msgid "%d minute"
-msgid_plural "%d minutes"
-msgstr[0] "%d dakika"
-msgstr[1] "%d dakika"
diff --git a/po/te.po b/po/te.po
deleted file mode 100644
index bc632b1..0000000
--- a/po/te.po
+++ /dev/null
@@ -1,154 +0,0 @@
-# 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: 2008-06-24 00:07+0530\n"
-"PO-Revision-Date: 2008-07-24 12:55+0100\n"
-"Last-Translator: Satyanarayana Murthy Saladi <saladism@gmail.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Translate Toolkit 1.1.1rc4\n"
-
-#: ../src/sugar/activity/activity.py:120
-msgid "Share with:"
-msgstr "తో పంచుకో:"
-
-#: ../src/sugar/activity/activity.py:122
-msgid "Private"
-msgstr "సొంతం"
-
-#: ../src/sugar/activity/activity.py:123
-msgid "My Neighborhood"
-msgstr "నా చుట్టుపక్కలవారు"
-
-#: ../src/sugar/activity/activity.py:130
-msgid "Keep"
-msgstr "ఉంచు"
-
-#: ../src/sugar/activity/activity.py:136
-msgid "Stop"
-msgstr "ఆపు"
-
-#: ../src/sugar/activity/activity.py:251
-msgid "Undo"
-msgstr "చివరిది రద్దుచేయి"
-
-#: ../src/sugar/activity/activity.py:256
-msgid "Redo"
-msgstr "చివరిది తిరిగిచేయి"
-
-#: ../src/sugar/activity/activity.py:266
-msgid "Copy"
-msgstr "నకలు"
-
-#: ../src/sugar/activity/activity.py:271
-msgid "Paste"
-msgstr "అతికించు"
-
-#: ../src/sugar/activity/activity.py:297
-msgid "Activity"
-msgstr "వ్యాపకం"
-
-#: ../src/sugar/activity/activity.py:469
-#, python-format
-msgid "%s Activity"
-msgstr "%s వ్యాపకం"
-
-#: ../src/sugar/activity/activity.py:856
-msgid "Keep error"
-msgstr "పొరబాటు జరిగింది"
-
-#: ../src/sugar/activity/activity.py:857
-msgid "Keep error: all changes will be lost"
-msgstr "పొరబాటు జరిగింది : అన్ని మార్పులూ పోతాయి"
-
-#: ../src/sugar/activity/activity.py:860
-msgid "Don't stop"
-msgstr "ఆపవద్దు"
-
-#: ../src/sugar/activity/activity.py:863
-msgid "Stop anyway"
-msgstr "ఏదేమైనా ఆపువేయి"
-
-#: ../src/sugar/graphics/alert.py:166
-#: ../src/sugar/graphics/alert.py:209
-msgid "Cancel"
-msgstr "రద్దు చేయి"
-
-#: ../src/sugar/graphics/alert.py:170
-#: ../src/sugar/graphics/alert.py:247
-msgid "Ok"
-msgstr "సరి"
-
-#: ../src/sugar/graphics/alert.py:219
-msgid "Continue"
-msgstr "సాగించు"
-
-#: ../src/sugar/util.py:181
-msgid " and "
-msgstr "మరియు"
-
-#: ../src/sugar/util.py:182
-msgid ", "
-msgstr ", "
-
-#. TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#: ../src/sugar/util.py:185
-msgid "Seconds ago"
-msgstr "సెకనులు ముందు"
-
-#. TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-#. "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#: ../src/sugar/util.py:189
-#, python-format
-msgid "%s ago"
-msgstr "%s ముందు"
-
-#. TRANS: Relative dates (eg. 1 month and 5 days).
-#: ../src/sugar/util.py:202
-#, python-format
-msgid "%d year"
-msgid_plural "%d years"
-msgstr[0] "%d సంవత్సరము"
-msgstr[1] ""
-
-#: ../src/sugar/util.py:203
-#, python-format
-msgid "%d month"
-msgid_plural "%d months"
-msgstr[0] "%d నెల"
-msgstr[1] ""
-
-#: ../src/sugar/util.py:204
-#, python-format
-msgid "%d week"
-msgid_plural "%d weeks"
-msgstr[0] "%d వారము"
-msgstr[1] ""
-
-#: ../src/sugar/util.py:205
-#, python-format
-msgid "%d day"
-msgid_plural "%d days"
-msgstr[0] "%d రోజు"
-msgstr[1] ""
-
-#: ../src/sugar/util.py:206
-#, python-format
-msgid "%d hour"
-msgid_plural "%d hours"
-msgstr[0] "%d గంట"
-msgstr[1] ""
-
-#: ../src/sugar/util.py:207
-#, python-format
-msgid "%d minute"
-msgid_plural "%d minutes"
-msgstr[0] "%d నిమిషము "
-msgstr[1] ""
diff --git a/po/th.po b/po/th.po
deleted file mode 100644
index 93a56e3..0000000
--- a/po/th.po
+++ /dev/null
@@ -1,153 +0,0 @@
-# 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: 2008-06-24 00:07+0530\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"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Translate Toolkit 1.1.1rc4\n"
-
-#: ../src/sugar/activity/activity.py:120
-msgid "Share with:"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:122
-msgid "Private"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:123
-msgid "My Neighborhood"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:130
-msgid "Keep"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:136
-msgid "Stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:251
-msgid "Undo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:256
-msgid "Redo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:266
-msgid "Copy"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:271
-msgid "Paste"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:297
-msgid "Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:469
-#, python-format
-msgid "%s Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:856
-msgid "Keep error"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:857
-msgid "Keep error: all changes will be lost"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:860
-msgid "Don't stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:863
-msgid "Stop anyway"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:166 ../src/sugar/graphics/alert.py:209
-msgid "Cancel"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:170 ../src/sugar/graphics/alert.py:247
-msgid "Ok"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:219
-msgid "Continue"
-msgstr ""
-
-#: ../src/sugar/util.py:181
-msgid " and "
-msgstr ""
-
-#: ../src/sugar/util.py:182
-msgid ", "
-msgstr ""
-
-#. TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#: ../src/sugar/util.py:185
-msgid "Seconds ago"
-msgstr ""
-
-#. TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-#. "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#: ../src/sugar/util.py:189
-#, python-format
-msgid "%s ago"
-msgstr ""
-
-#. TRANS: Relative dates (eg. 1 month and 5 days).
-#: ../src/sugar/util.py:202
-#, python-format
-msgid "%d year"
-msgid_plural "%d years"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:203
-#, python-format
-msgid "%d month"
-msgid_plural "%d months"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:204
-#, python-format
-msgid "%d week"
-msgid_plural "%d weeks"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:205
-#, python-format
-msgid "%d day"
-msgid_plural "%d days"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:206
-#, python-format
-msgid "%d hour"
-msgid_plural "%d hours"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:207
-#, python-format
-msgid "%d minute"
-msgid_plural "%d minutes"
-msgstr[0] ""
-msgstr[1] ""
diff --git a/po/tpi.po b/po/tpi.po
deleted file mode 100644
index 93a56e3..0000000
--- a/po/tpi.po
+++ /dev/null
@@ -1,153 +0,0 @@
-# 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: 2008-06-24 00:07+0530\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"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Translate Toolkit 1.1.1rc4\n"
-
-#: ../src/sugar/activity/activity.py:120
-msgid "Share with:"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:122
-msgid "Private"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:123
-msgid "My Neighborhood"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:130
-msgid "Keep"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:136
-msgid "Stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:251
-msgid "Undo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:256
-msgid "Redo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:266
-msgid "Copy"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:271
-msgid "Paste"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:297
-msgid "Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:469
-#, python-format
-msgid "%s Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:856
-msgid "Keep error"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:857
-msgid "Keep error: all changes will be lost"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:860
-msgid "Don't stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:863
-msgid "Stop anyway"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:166 ../src/sugar/graphics/alert.py:209
-msgid "Cancel"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:170 ../src/sugar/graphics/alert.py:247
-msgid "Ok"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:219
-msgid "Continue"
-msgstr ""
-
-#: ../src/sugar/util.py:181
-msgid " and "
-msgstr ""
-
-#: ../src/sugar/util.py:182
-msgid ", "
-msgstr ""
-
-#. TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#: ../src/sugar/util.py:185
-msgid "Seconds ago"
-msgstr ""
-
-#. TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-#. "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#: ../src/sugar/util.py:189
-#, python-format
-msgid "%s ago"
-msgstr ""
-
-#. TRANS: Relative dates (eg. 1 month and 5 days).
-#: ../src/sugar/util.py:202
-#, python-format
-msgid "%d year"
-msgid_plural "%d years"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:203
-#, python-format
-msgid "%d month"
-msgid_plural "%d months"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:204
-#, python-format
-msgid "%d week"
-msgid_plural "%d weeks"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:205
-#, python-format
-msgid "%d day"
-msgid_plural "%d days"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:206
-#, python-format
-msgid "%d hour"
-msgid_plural "%d hours"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:207
-#, python-format
-msgid "%d minute"
-msgid_plural "%d minutes"
-msgstr[0] ""
-msgstr[1] ""
diff --git a/po/tr.po b/po/tr.po
deleted file mode 100644
index 7cd7da5..0000000
--- a/po/tr.po
+++ /dev/null
@@ -1,153 +0,0 @@
-# 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: 2008-06-24 00:07+0530\n"
-"PO-Revision-Date: 2008-09-26 09:52-0400\n"
-"Last-Translator: abdullah kocabas <abdullah.kocabas@abcdizustu.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\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 1.1.0rc2\n"
-
-#: ../src/sugar/activity/activity.py:120
-msgid "Share with:"
-msgstr "Paylaş"
-
-#: ../src/sugar/activity/activity.py:122
-msgid "Private"
-msgstr "Özel"
-
-#: ../src/sugar/activity/activity.py:123
-msgid "My Neighborhood"
-msgstr "Komşularım"
-
-#: ../src/sugar/activity/activity.py:130
-msgid "Keep"
-msgstr "Kaydet"
-
-#: ../src/sugar/activity/activity.py:136
-msgid "Stop"
-msgstr "Durdur"
-
-#: ../src/sugar/activity/activity.py:251
-msgid "Undo"
-msgstr "Geri Al"
-
-#: ../src/sugar/activity/activity.py:256
-msgid "Redo"
-msgstr "Yinele"
-
-#: ../src/sugar/activity/activity.py:266
-msgid "Copy"
-msgstr "Kopyala"
-
-#: ../src/sugar/activity/activity.py:271
-msgid "Paste"
-msgstr "Yapıştır"
-
-#: ../src/sugar/activity/activity.py:297
-msgid "Activity"
-msgstr "Aktivite"
-
-#: ../src/sugar/activity/activity.py:469
-#, python-format
-msgid "%s Activity"
-msgstr "%s Aktivite"
-
-#: ../src/sugar/activity/activity.py:856
-msgid "Keep error"
-msgstr "Kayıt Hatası"
-
-#: ../src/sugar/activity/activity.py:857
-msgid "Keep error: all changes will be lost"
-msgstr "Kayıt Hatası: tüm değişiklikler kaybedilecek"
-
-#: ../src/sugar/activity/activity.py:860
-msgid "Don't stop"
-msgstr "Durdurma"
-
-#: ../src/sugar/activity/activity.py:863
-msgid "Stop anyway"
-msgstr "Durdur"
-
-#: ../src/sugar/graphics/alert.py:166 ../src/sugar/graphics/alert.py:209
-msgid "Cancel"
-msgstr "İptal"
-
-#: ../src/sugar/graphics/alert.py:170 ../src/sugar/graphics/alert.py:247
-msgid "Ok"
-msgstr "Tamam"
-
-#: ../src/sugar/graphics/alert.py:219
-msgid "Continue"
-msgstr "Devam Et"
-
-#: ../src/sugar/util.py:181
-msgid " and "
-msgstr "ve"
-
-#: ../src/sugar/util.py:182
-msgid ", "
-msgstr ",_"
-
-#. TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#: ../src/sugar/util.py:185
-msgid "Seconds ago"
-msgstr "Saniye Önce"
-
-#. TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-#. "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#: ../src/sugar/util.py:189
-#, python-format
-msgid "%s ago"
-msgstr "%s önce"
-
-#. TRANS: Relative dates (eg. 1 month and 5 days).
-#: ../src/sugar/util.py:202
-#, python-format
-msgid "%d year"
-msgid_plural "%d years"
-msgstr[0] "%d yıl"
-msgstr[1] "%d yıllar"
-
-#: ../src/sugar/util.py:203
-#, python-format
-msgid "%d month"
-msgid_plural "%d months"
-msgstr[0] "%d ay"
-msgstr[1] "%d aylar"
-
-#: ../src/sugar/util.py:204
-#, python-format
-msgid "%d week"
-msgid_plural "%d weeks"
-msgstr[0] "%d hafta"
-msgstr[1] "%d haftalar"
-
-#: ../src/sugar/util.py:205
-#, python-format
-msgid "%d day"
-msgid_plural "%d days"
-msgstr[0] "%d gün"
-msgstr[1] "%d günler"
-
-#: ../src/sugar/util.py:206
-#, python-format
-msgid "%d hour"
-msgid_plural "%d hours"
-msgstr[0] "%d saat"
-msgstr[1] "%d saatler"
-
-#: ../src/sugar/util.py:207
-#, python-format
-msgid "%d minute"
-msgid_plural "%d minutes"
-msgstr[0] "%d dakika"
-msgstr[1] "%d dakikalar"
diff --git a/po/ur.po b/po/ur.po
deleted file mode 100644
index 66ec1ce..0000000
--- a/po/ur.po
+++ /dev/null
@@ -1,152 +0,0 @@
-# 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: 2008-06-24 00:07+0530\n"
-"PO-Revision-Date: 2008-07-08 04:38-0400\n"
-"Last-Translator: salman minhas <sulmanminhas@gmail.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Pootle 1.1.0rc2\n"
-
-#: ../src/sugar/activity/activity.py:120
-msgid "Share with:"
-msgstr "کے ساتھہ ‎‎‎شئر کريں:"
-
-#: ../src/sugar/activity/activity.py:122
-msgid "Private"
-msgstr "پرايويٹ"
-
-#: ../src/sugar/activity/activity.py:123
-msgid "My Neighborhood"
-msgstr "ميرا گردونواح"
-
-#: ../src/sugar/activity/activity.py:130
-msgid "Keep"
-msgstr "رکھيں"
-
-#: ../src/sugar/activity/activity.py:136
-msgid "Stop"
-msgstr "روکيں"
-
-#: ../src/sugar/activity/activity.py:251
-msgid "Undo"
-msgstr "کلعدم کريں"
-
-#: ../src/sugar/activity/activity.py:256
-msgid "Redo"
-msgstr "دوبارہ کريں"
-
-#: ../src/sugar/activity/activity.py:266
-msgid "Copy"
-msgstr "کاپی"
-
-#: ../src/sugar/activity/activity.py:271
-msgid "Paste"
-msgstr "جوڑيں"
-
-#: ../src/sugar/activity/activity.py:297
-msgid "Activity"
-msgstr "سرگرمی"
-
-#: ../src/sugar/activity/activity.py:469
-#, python-format
-msgid "%s Activity"
-msgstr "%sسرگرمی"
-
-#: ../src/sugar/activity/activity.py:856
-msgid "Keep error"
-msgstr "غلطی رکھيں"
-
-#: ../src/sugar/activity/activity.py:857
-msgid "Keep error: all changes will be lost"
-msgstr "غلطی رکھيں: تمام تبديلياں ختم ہو سکتی ہیں"
-
-#: ../src/sugar/activity/activity.py:860
-msgid "Don't stop"
-msgstr "مت رکيں"
-
-#: ../src/sugar/activity/activity.py:863
-msgid "Stop anyway"
-msgstr "رک جائيں"
-
-#: ../src/sugar/graphics/alert.py:166 ../src/sugar/graphics/alert.py:209
-msgid "Cancel"
-msgstr "منسوخ کريں"
-
-#: ../src/sugar/graphics/alert.py:170 ../src/sugar/graphics/alert.py:247
-msgid "Ok"
-msgstr "ٹھيک ہے"
-
-#: ../src/sugar/graphics/alert.py:219
-msgid "Continue"
-msgstr "جاری رکھيں"
-
-#: ../src/sugar/util.py:181
-msgid " and "
-msgstr " اور "
-
-#: ../src/sugar/util.py:182
-msgid ", "
-msgstr "، "
-
-#. TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#: ../src/sugar/util.py:185
-msgid "Seconds ago"
-msgstr "سيکنڈ پہلے"
-
-#. TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-#. "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#: ../src/sugar/util.py:189
-#, python-format
-msgid "%s ago"
-msgstr "%s پہلے"
-
-#. TRANS: Relative dates (eg. 1 month and 5 days).
-#: ../src/sugar/util.py:202
-#, python-format
-msgid "%d year"
-msgid_plural "%d years"
-msgstr[0] "%dسال"
-msgstr[1] "%dسال"
-
-#: ../src/sugar/util.py:203
-#, python-format
-msgid "%d month"
-msgid_plural "%d months"
-msgstr[0] "%dمہينہ"
-msgstr[1] "%d مہينے"
-
-#: ../src/sugar/util.py:204
-#, python-format
-msgid "%d week"
-msgid_plural "%d weeks"
-msgstr[0] "%d ہفتہ"
-msgstr[1] "%d ہفتے"
-
-#: ../src/sugar/util.py:205
-#, python-format
-msgid "%d day"
-msgid_plural "%d days"
-msgstr[0] "%d دن"
-msgstr[1] "%s دن"
-
-#: ../src/sugar/util.py:206
-#, python-format
-msgid "%d hour"
-msgid_plural "%d hours"
-msgstr[0] "%d گھنٹہ"
-msgstr[1] "%d گھنٹے"
-
-#: ../src/sugar/util.py:207
-#, python-format
-msgid "%d minute"
-msgid_plural "%d minutes"
-msgstr[0] "%d منٹ"
-msgstr[1] "%d منٹ"
diff --git a/po/vi.po b/po/vi.po
deleted file mode 100644
index 93a56e3..0000000
--- a/po/vi.po
+++ /dev/null
@@ -1,153 +0,0 @@
-# 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: 2008-06-24 00:07+0530\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"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Translate Toolkit 1.1.1rc4\n"
-
-#: ../src/sugar/activity/activity.py:120
-msgid "Share with:"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:122
-msgid "Private"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:123
-msgid "My Neighborhood"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:130
-msgid "Keep"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:136
-msgid "Stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:251
-msgid "Undo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:256
-msgid "Redo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:266
-msgid "Copy"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:271
-msgid "Paste"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:297
-msgid "Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:469
-#, python-format
-msgid "%s Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:856
-msgid "Keep error"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:857
-msgid "Keep error: all changes will be lost"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:860
-msgid "Don't stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:863
-msgid "Stop anyway"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:166 ../src/sugar/graphics/alert.py:209
-msgid "Cancel"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:170 ../src/sugar/graphics/alert.py:247
-msgid "Ok"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:219
-msgid "Continue"
-msgstr ""
-
-#: ../src/sugar/util.py:181
-msgid " and "
-msgstr ""
-
-#: ../src/sugar/util.py:182
-msgid ", "
-msgstr ""
-
-#. TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#: ../src/sugar/util.py:185
-msgid "Seconds ago"
-msgstr ""
-
-#. TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-#. "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#: ../src/sugar/util.py:189
-#, python-format
-msgid "%s ago"
-msgstr ""
-
-#. TRANS: Relative dates (eg. 1 month and 5 days).
-#: ../src/sugar/util.py:202
-#, python-format
-msgid "%d year"
-msgid_plural "%d years"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:203
-#, python-format
-msgid "%d month"
-msgid_plural "%d months"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:204
-#, python-format
-msgid "%d week"
-msgid_plural "%d weeks"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:205
-#, python-format
-msgid "%d day"
-msgid_plural "%d days"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:206
-#, python-format
-msgid "%d hour"
-msgid_plural "%d hours"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:207
-#, python-format
-msgid "%d minute"
-msgid_plural "%d minutes"
-msgstr[0] ""
-msgstr[1] ""
diff --git a/po/wa.po b/po/wa.po
deleted file mode 100644
index 93a56e3..0000000
--- a/po/wa.po
+++ /dev/null
@@ -1,153 +0,0 @@
-# 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: 2008-06-24 00:07+0530\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"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Translate Toolkit 1.1.1rc4\n"
-
-#: ../src/sugar/activity/activity.py:120
-msgid "Share with:"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:122
-msgid "Private"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:123
-msgid "My Neighborhood"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:130
-msgid "Keep"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:136
-msgid "Stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:251
-msgid "Undo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:256
-msgid "Redo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:266
-msgid "Copy"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:271
-msgid "Paste"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:297
-msgid "Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:469
-#, python-format
-msgid "%s Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:856
-msgid "Keep error"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:857
-msgid "Keep error: all changes will be lost"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:860
-msgid "Don't stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:863
-msgid "Stop anyway"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:166 ../src/sugar/graphics/alert.py:209
-msgid "Cancel"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:170 ../src/sugar/graphics/alert.py:247
-msgid "Ok"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:219
-msgid "Continue"
-msgstr ""
-
-#: ../src/sugar/util.py:181
-msgid " and "
-msgstr ""
-
-#: ../src/sugar/util.py:182
-msgid ", "
-msgstr ""
-
-#. TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#: ../src/sugar/util.py:185
-msgid "Seconds ago"
-msgstr ""
-
-#. TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-#. "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#: ../src/sugar/util.py:189
-#, python-format
-msgid "%s ago"
-msgstr ""
-
-#. TRANS: Relative dates (eg. 1 month and 5 days).
-#: ../src/sugar/util.py:202
-#, python-format
-msgid "%d year"
-msgid_plural "%d years"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:203
-#, python-format
-msgid "%d month"
-msgid_plural "%d months"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:204
-#, python-format
-msgid "%d week"
-msgid_plural "%d weeks"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:205
-#, python-format
-msgid "%d day"
-msgid_plural "%d days"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:206
-#, python-format
-msgid "%d hour"
-msgid_plural "%d hours"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:207
-#, python-format
-msgid "%d minute"
-msgid_plural "%d minutes"
-msgstr[0] ""
-msgstr[1] ""
diff --git a/po/yo.po b/po/yo.po
deleted file mode 100644
index 93a56e3..0000000
--- a/po/yo.po
+++ /dev/null
@@ -1,153 +0,0 @@
-# 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: 2008-06-24 00:07+0530\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"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Translate Toolkit 1.1.1rc4\n"
-
-#: ../src/sugar/activity/activity.py:120
-msgid "Share with:"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:122
-msgid "Private"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:123
-msgid "My Neighborhood"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:130
-msgid "Keep"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:136
-msgid "Stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:251
-msgid "Undo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:256
-msgid "Redo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:266
-msgid "Copy"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:271
-msgid "Paste"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:297
-msgid "Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:469
-#, python-format
-msgid "%s Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:856
-msgid "Keep error"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:857
-msgid "Keep error: all changes will be lost"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:860
-msgid "Don't stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:863
-msgid "Stop anyway"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:166 ../src/sugar/graphics/alert.py:209
-msgid "Cancel"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:170 ../src/sugar/graphics/alert.py:247
-msgid "Ok"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:219
-msgid "Continue"
-msgstr ""
-
-#: ../src/sugar/util.py:181
-msgid " and "
-msgstr ""
-
-#: ../src/sugar/util.py:182
-msgid ", "
-msgstr ""
-
-#. TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#: ../src/sugar/util.py:185
-msgid "Seconds ago"
-msgstr ""
-
-#. TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-#. "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#: ../src/sugar/util.py:189
-#, python-format
-msgid "%s ago"
-msgstr ""
-
-#. TRANS: Relative dates (eg. 1 month and 5 days).
-#: ../src/sugar/util.py:202
-#, python-format
-msgid "%d year"
-msgid_plural "%d years"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:203
-#, python-format
-msgid "%d month"
-msgid_plural "%d months"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:204
-#, python-format
-msgid "%d week"
-msgid_plural "%d weeks"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:205
-#, python-format
-msgid "%d day"
-msgid_plural "%d days"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:206
-#, python-format
-msgid "%d hour"
-msgid_plural "%d hours"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:207
-#, python-format
-msgid "%d minute"
-msgid_plural "%d minutes"
-msgstr[0] ""
-msgstr[1] ""
diff --git a/po/zh_CN.po b/po/zh_CN.po
deleted file mode 100644
index 93a56e3..0000000
--- a/po/zh_CN.po
+++ /dev/null
@@ -1,153 +0,0 @@
-# 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: 2008-06-24 00:07+0530\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"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Translate Toolkit 1.1.1rc4\n"
-
-#: ../src/sugar/activity/activity.py:120
-msgid "Share with:"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:122
-msgid "Private"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:123
-msgid "My Neighborhood"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:130
-msgid "Keep"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:136
-msgid "Stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:251
-msgid "Undo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:256
-msgid "Redo"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:266
-msgid "Copy"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:271
-msgid "Paste"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:297
-msgid "Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:469
-#, python-format
-msgid "%s Activity"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:856
-msgid "Keep error"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:857
-msgid "Keep error: all changes will be lost"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:860
-msgid "Don't stop"
-msgstr ""
-
-#: ../src/sugar/activity/activity.py:863
-msgid "Stop anyway"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:166 ../src/sugar/graphics/alert.py:209
-msgid "Cancel"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:170 ../src/sugar/graphics/alert.py:247
-msgid "Ok"
-msgstr ""
-
-#: ../src/sugar/graphics/alert.py:219
-msgid "Continue"
-msgstr ""
-
-#: ../src/sugar/util.py:181
-msgid " and "
-msgstr ""
-
-#: ../src/sugar/util.py:182
-msgid ", "
-msgstr ""
-
-#. TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#: ../src/sugar/util.py:185
-msgid "Seconds ago"
-msgstr ""
-
-#. TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-#. "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#: ../src/sugar/util.py:189
-#, python-format
-msgid "%s ago"
-msgstr ""
-
-#. TRANS: Relative dates (eg. 1 month and 5 days).
-#: ../src/sugar/util.py:202
-#, python-format
-msgid "%d year"
-msgid_plural "%d years"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:203
-#, python-format
-msgid "%d month"
-msgid_plural "%d months"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:204
-#, python-format
-msgid "%d week"
-msgid_plural "%d weeks"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:205
-#, python-format
-msgid "%d day"
-msgid_plural "%d days"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:206
-#, python-format
-msgid "%d hour"
-msgid_plural "%d hours"
-msgstr[0] ""
-msgstr[1] ""
-
-#: ../src/sugar/util.py:207
-#, python-format
-msgid "%d minute"
-msgid_plural "%d minutes"
-msgstr[0] ""
-msgstr[1] ""
diff --git a/po/zh_TW.po b/po/zh_TW.po
deleted file mode 100644
index ab47f70..0000000
--- a/po/zh_TW.po
+++ /dev/null
@@ -1,146 +0,0 @@
-# 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: 2008-06-24 00:07+0530\n"
-"PO-Revision-Date: 2008-08-06 07:24-0400\n"
-"Last-Translator: Yuan Chao <yuanchao@gmail.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Pootle 1.1.0rc2\n"
-
-#: ../src/sugar/activity/activity.py:120
-msgid "Share with:"
-msgstr "分享給:"
-
-#: ../src/sugar/activity/activity.py:122
-msgid "Private"
-msgstr "私人"
-
-#: ../src/sugar/activity/activity.py:123
-msgid "My Neighborhood"
-msgstr "我的鄰居"
-
-#: ../src/sugar/activity/activity.py:130
-msgid "Keep"
-msgstr "保存"
-
-#: ../src/sugar/activity/activity.py:136
-msgid "Stop"
-msgstr "停止"
-
-#: ../src/sugar/activity/activity.py:251
-msgid "Undo"
-msgstr "復原"
-
-#: ../src/sugar/activity/activity.py:256
-msgid "Redo"
-msgstr "取消復原"
-
-#: ../src/sugar/activity/activity.py:266
-msgid "Copy"
-msgstr "複製"
-
-#: ../src/sugar/activity/activity.py:271
-msgid "Paste"
-msgstr "貼上"
-
-#: ../src/sugar/activity/activity.py:297
-msgid "Activity"
-msgstr "活動"
-
-#: ../src/sugar/activity/activity.py:469
-#, python-format
-msgid "%s Activity"
-msgstr "%s 活動"
-
-#: ../src/sugar/activity/activity.py:856
-msgid "Keep error"
-msgstr "保存時發生錯誤"
-
-#: ../src/sugar/activity/activity.py:857
-msgid "Keep error: all changes will be lost"
-msgstr "保存時發生錯誤:所作的變動將遺失"
-
-#: ../src/sugar/activity/activity.py:860
-msgid "Don't stop"
-msgstr "不停止"
-
-#: ../src/sugar/activity/activity.py:863
-msgid "Stop anyway"
-msgstr "確定停止"
-
-#: ../src/sugar/graphics/alert.py:166 ../src/sugar/graphics/alert.py:209
-msgid "Cancel"
-msgstr "取消"
-
-#: ../src/sugar/graphics/alert.py:170 ../src/sugar/graphics/alert.py:247
-msgid "Ok"
-msgstr "確定"
-
-#: ../src/sugar/graphics/alert.py:219
-msgid "Continue"
-msgstr "繼續"
-
-#: ../src/sugar/util.py:181
-msgid " and "
-msgstr " 和 "
-
-#: ../src/sugar/util.py:182
-msgid ", "
-msgstr ", "
-
-#. TRANS: Indicating something that just happened, eg. "just now", "moments ago"
-#: ../src/sugar/util.py:185
-msgid "Seconds ago"
-msgstr "秒鐘前"
-
-#. TRANS: Indicating time passed, eg. "[10 day, 5 hours] ago",
-#. "[2 minutes] in the past", or "[3 years, 1 month] earlier"
-#: ../src/sugar/util.py:189
-#, python-format
-msgid "%s ago"
-msgstr "%s 前"
-
-#. TRANS: Relative dates (eg. 1 month and 5 days).
-#: ../src/sugar/util.py:202
-#, python-format
-msgid "%d year"
-msgid_plural "%d years"
-msgstr[0] "%d 年"
-
-#: ../src/sugar/util.py:203
-#, python-format
-msgid "%d month"
-msgid_plural "%d months"
-msgstr[0] "%d 個月"
-
-#: ../src/sugar/util.py:204
-#, python-format
-msgid "%d week"
-msgid_plural "%d weeks"
-msgstr[0] "%d 週"
-
-#: ../src/sugar/util.py:205
-#, python-format
-msgid "%d day"
-msgid_plural "%d days"
-msgstr[0] "%d 天"
-
-#: ../src/sugar/util.py:206
-#, python-format
-msgid "%d hour"
-msgid_plural "%d hours"
-msgstr[0] "%d 小時"
-
-#: ../src/sugar/util.py:207
-#, python-format
-msgid "%d minute"
-msgid_plural "%d minutes"
-msgstr[0] "%d 分鐘"
diff --git a/setup.cfg b/setup.cfg
new file mode 100644
index 0000000..e33c680
--- /dev/null
+++ b/setup.cfg
@@ -0,0 +1,8 @@
+[install]
+# enter absolute path path
+prefix=/home/simpoir/Source/sugar-jhbuild/install/
+force=1
+
+[test]
+# same as above
+prefix=/home/simpoir/Source/sugar-jhbuild/install/
diff --git a/setup.py b/setup.py
new file mode 100755
index 0000000..6518a61
--- /dev/null
+++ b/setup.py
@@ -0,0 +1,65 @@
+#!/usr/bin/env python
+
+from distutils.core import setup, Command
+from os.path import splitext, basename, join as pjoin, walk
+import os, sys
+import glob
+
+class TestCommand(Command):
+ user_options = [('coverage',
+ None,
+ 'enable code coverage reporting'),
+ ('prefix=',
+ 'p',
+ 'set sugar installation prefix, for dependency loading'),]
+ description = 'runs tests from the test directory'
+
+ def initialize_options(self):
+ self._dir = os.getcwd()
+ self.coverage = False
+ self.prefix = None
+
+ def finalize_options(self):
+ if not self.prefix:
+ print
+ sys.exit(1)
+
+ def run(self):
+ '''
+ Finds all the tests modules in tests/, and runs them.
+ '''
+ testfiles = [ ]
+ for t in glob.glob(pjoin(self._dir, 'tests', '*.py')):
+ if not t.endswith('__init__.py'):
+ testfiles.append('.'.join(
+ ['tests', splitext(basename(t))[0]])
+ )
+
+ tests = TestLoader().loadTestsFromNames(testfiles)
+ t = TextTestRunner(verbosity = 1)
+ t.run(tests)
+
+setup(name='Tutorius',
+ version='0.0',
+ description='Interactive tutor and Tutorial creator',
+ maintainer='Simon Poirier',
+ maintainer_email='simpoir@gmail.com',
+ author='Tutorius team',
+ author_email='sugar-narratives@googlegroups.com',
+ url='http://tutorius.org',
+ license='GPLv3',
+ packages=[
+ 'sugar.tutorius',
+ 'sugar.tutorius.addons',
+ 'sugar.graphics',
+ 'sugar.activity',
+ ],
+ package_dir={'sugar': 'toolkitfix',
+ 'sugar.tutorius': 'tutorius',
+ 'sugar.tutorius.addons': 'addons',
+ },
+ cmdclass = {'test': TestCommand},
+ data_files=[('share/icons/sugar/scalable/actions', glob.glob('data/icons/*.svg')),]
+ )
+
+# vim: set et sw=4 sts=4 ts=4:
diff --git a/src/Makefile.am b/src/Makefile.am
deleted file mode 100644
index 4fa44db..0000000
--- a/src/Makefile.am
+++ /dev/null
@@ -1 +0,0 @@
-SUBDIRS = sugar
diff --git a/src/sugar/Makefile.am b/src/sugar/Makefile.am
deleted file mode 100644
index c3eeeaf..0000000
--- a/src/sugar/Makefile.am
+++ /dev/null
@@ -1,87 +0,0 @@
-SUBDIRS = activity bundle graphics presence datastore tutorius
-
-sugardir = $(pythondir)/sugar
-sugar_PYTHON = \
- env.py \
- network.py \
- profile.py \
- session.py \
- util.py \
- wm.py
-
-pkgpyexecdir = $(pythondir)/sugar
-
-pkgpyexec_LTLIBRARIES = _sugarext.la
-
-_sugarext_la_CFLAGS = \
- -DHAVE_ALSA \
- $(WARN_CFLAGS) \
- $(EXT_CFLAGS) \
- $(PYTHON_INCLUDES)
-
-_sugarext_la_LDFLAGS = -module -avoid-version
-_sugarext_la_LIBADD = $(EXT_LIBS) -lSM -lICE
-
-_sugarext_la_SOURCES = \
- $(BUILT_SOURCES) \
- _sugarextmodule.c \
- acme-volume.h \
- acme-volume.c \
- acme-volume-alsa.h \
- acme-volume-alsa.c \
- gsm-app.h \
- gsm-app.c \
- gsm-client.h \
- gsm-client.c \
- gsm-client-xsmp.h \
- gsm-client-xsmp.c \
- gsm-xsmp.h \
- gsm-xsmp.c \
- gsm-session.h \
- gsm-session.c \
- eggaccelerators.c \
- eggaccelerators.h \
- eggdesktopfile.h \
- eggdesktopfile.c \
- eggsmclient.h \
- eggsmclient.c \
- eggsmclient-private.h \
- eggsmclient-xsmp.c \
- sexy-icon-entry.h \
- sexy-icon-entry.c \
- sugar-address-entry.c \
- sugar-address-entry.h \
- sugar-grid.c \
- sugar-grid.h \
- sugar-key-grabber.c \
- sugar-key-grabber.h \
- sugar-menu.h \
- sugar-menu.c
-
-BUILT_SOURCES = \
- _sugarext.c \
- sugar-marshal.c \
- sugar-marshal.h
-
-_sugarext.c: _sugarext.defs _sugarext.override
-
-.defs.c:
- (cd $(srcdir)\
- && $(PYGTK_CODEGEN) \
- --register $(PYGTK_DEFSDIR)/gdk-types.defs \
- --register $(PYGTK_DEFSDIR)/gtk-types.defs \
- --override $*.override \
- --prefix py$* $*.defs) > gen-$*.c \
- && cp gen-$*.c $*.c \
- && rm -f gen-$*.c
-
-sugar-marshal.c: sugar-marshal.list
- $(GLIB_GENMARSHAL) --prefix=sugar_marshal \
- $(srcdir)/sugar-marshal.list --header --body > sugar-marshal.c
-
-sugar-marshal.h: sugar-marshal.list
- $(GLIB_GENMARSHAL) --prefix=sugar_marshal \
- $(srcdir)/sugar-marshal.list --header > sugar-marshal.h
-
-CLEANFILES = $(BUILT_SOURCES)
-EXTRA_DIST = sugar-marshal.list _sugarext.defs _sugarext.override
diff --git a/src/sugar/_sugarext.defs b/src/sugar/_sugarext.defs
deleted file mode 100644
index a6befa4..0000000
--- a/src/sugar/_sugarext.defs
+++ /dev/null
@@ -1,416 +0,0 @@
-;; -*- scheme -*-
-; object definitions
-
-(define-object AddressEntry
- (in-module "Sugar")
- (parent "GtkEntry")
- (c-name "SugarAddressEntry")
- (gtype-id "SUGAR_TYPE_ADDRESS_ENTRY")
-)
-
-(define-object KeyGrabber
- (in-module "Sugar")
- (parent "GObject")
- (c-name "SugarKeyGrabber")
- (gtype-id "SUGAR_TYPE_KEY_GRABBER")
-)
-
-(define-object Menu
- (in-module "Sugar")
- (parent "GtkMenu")
- (c-name "SugarMenu")
- (gtype-id "SUGAR_TYPE_MENU")
-)
-
-(define-object Grid
- (in-module "Sugar")
- (parent "GObject")
- (c-name "SugarGrid")
- (gtype-id "SUGAR_TYPE_GRID")
-)
-
-(define-object IconEntry
- (in-module "Sexy")
- (parent "GtkEntry")
- (c-name "SexyIconEntry")
- (gtype-id "SEXY_TYPE_ICON_ENTRY")
-)
-
-(define-object SMClientXSMP
- (in-module "Egg")
- (parent "EggSMClient")
- (c-name "EggSMClientXSMP")
- (gtype-id "EGG_TYPE_SM_CLIENT_XSMP")
-)
-
-(define-object SMClient
- (in-module "Egg")
- (parent "GObject")
- (c-name "EggSMClient")
- (gtype-id "EGG_TYPE_SM_CLIENT")
-)
-
-(define-object Session
- (in-module "Gsm")
- (parent "GObject")
- (c-name "GsmSession")
- (gtype-id "GSM_TYPE_SESSION")
-)
-
-(define-object Volume
- (in-module "Acme")
- (parent "GObject")
- (c-name "AcmeVolume")
- (gtype-id "ACME_TYPE_VOLUME")
-)
-
-(define-object VolumeAlsa
- (in-module "Acme")
- (parent "AcmeVolume")
- (c-name "AcmeVolumeAlsa")
- (gtype-id "ACME_TYPE_VOLUME_ALSA")
-)
-
-;; Enumerations and flags ...
-
-(define-enum IconEntryPosition
- (in-module "Sexy")
- (c-name "SexyIconEntryPosition")
- (gtype-id "SEXY_TYPE_ICON_ENTRY_POSITION")
- (values
- '("primary" "SEXY_ICON_ENTRY_PRIMARY")
- '("secondary" "SEXY_ICON_ENTRY_SECONDARY")
- )
-)
-
-;; From sugar-menu.h
-
-(define-method set_active
- (of-object "SugarMenu")
- (c-name "sugar_menu_set_active")
- (return-type "none")
- (parameters
- '("gboolean" "active")
- )
-)
-
-(define-method embed
- (of-object "SugarMenu")
- (c-name "sugar_menu_embed")
- (return-type "none")
- (parameters
- '("GtkContainer" "container")
- )
-)
-
-(define-method unembed
- (of-object "SugarMenu")
- (c-name "sugar_menu_unembed")
- (return-type "none")
-)
-
-;; From sugar-grid.h
-
-(define-method setup
- (of-object "SugarGrid")
- (c-name "sugar_grid_setup")
- (return-type "none")
- (parameters
- '("gint" "width")
- '("gint" "height")
- )
-)
-
-(define-method add_weight
- (of-object "SugarGrid")
- (c-name "sugar_grid_add_weight")
- (return-type "none")
- (parameters
- '("GdkRectangle*" "rect")
- )
-)
-
-(define-method remove_weight
- (of-object "SugarGrid")
- (c-name "sugar_grid_remove_weight")
- (return-type "none")
- (parameters
- '("GdkRectangle*" "rect")
- )
-)
-
-(define-method compute_weight
- (of-object "SugarGrid")
- (c-name "sugar_grid_compute_weight")
- (return-type "guint")
- (parameters
- '("GdkRectangle*" "rect")
- )
-)
-
-;; From sugar-key-grabber.h
-
-(define-function sugar_key_grabber_get_type
- (c-name "sugar_key_grabber_get_type")
- (return-type "GType")
-)
-
-(define-method grab_keys
- (of-object "SugarKeyGrabber")
- (c-name "sugar_key_grabber_grab_keys")
- (return-type "none")
- (parameters
- '("const-char*[]" "keys")
- )
-)
-
-(define-method get_key
- (of-object "SugarKeyGrabber")
- (c-name "sugar_key_grabber_get_key")
- (return-type "char*")
- (parameters
- '("guint" "keycode")
- '("guint" "state")
- )
-)
-
-(define-method is_modifier
- (of-object "SugarKeyGrabber")
- (c-name "sugar_key_grabber_is_modifier")
- (return-type "gboolean")
- (parameters
- '("guint" "keycode")
- '("guint" "mask" (default "-1"))
- )
-)
-
-;; From sexy-icon-entry.h
-
-(define-function sexy_icon_entry_get_type
- (c-name "sexy_icon_entry_get_type")
- (return-type "GType")
-)
-
-(define-function sexy_icon_entry_new
- (c-name "sexy_icon_entry_new")
- (is-constructor-of "SexyIconEntry")
- (return-type "GtkWidget*")
-)
-
-(define-method set_icon
- (of-object "SexyIconEntry")
- (c-name "sexy_icon_entry_set_icon")
- (return-type "none")
- (parameters
- '("SexyIconEntryPosition" "position")
- '("GtkImage*" "icon" (null-ok))
- )
-)
-
-(define-method set_icon_highlight
- (of-object "SexyIconEntry")
- (c-name "sexy_icon_entry_set_icon_highlight")
- (return-type "none")
- (parameters
- '("SexyIconEntryPosition" "position")
- '("gboolean" "highlight")
- )
-)
-
-(define-method get_icon
- (of-object "SexyIconEntry")
- (c-name "sexy_icon_entry_get_icon")
- (return-type "GtkImage*")
- (parameters
- '("SexyIconEntryPosition" "position")
- )
-)
-
-(define-method get_icon_highlight
- (of-object "SexyIconEntry")
- (c-name "sexy_icon_entry_get_icon_highlight")
- (return-type "gboolean")
- (parameters
- '("SexyIconEntryPosition" "position")
- )
-)
-
-(define-method add_clear_button
- (of-object "SexyIconEntry")
- (c-name "sexy_icon_entry_add_clear_button")
- (return-type "none")
-)
-
-;; From eggsmclient.h
-
-(define-function egg_sm_client_get_type
- (c-name "egg_sm_client_get_type")
- (return-type "GType")
-)
-
-(define-function egg_sm_client_get_option_group
- (c-name "egg_sm_client_get_option_group")
- (return-type "GOptionGroup*")
-)
-
-(define-method is_resumed
- (of-object "EggSMClient")
- (c-name "egg_sm_client_is_resumed")
- (return-type "gboolean")
-)
-
-(define-method get_state_file
- (of-object "EggSMClient")
- (c-name "egg_sm_client_get_state_file")
- (return-type "GKeyFile*")
-)
-
-(define-method set_restart_command
- (of-object "EggSMClient")
- (c-name "egg_sm_client_set_restart_command")
- (return-type "none")
- (parameters
- '("int" "argc")
- '("const-char**" "argv")
- )
-)
-
-(define-method startup
- (of-object "EggSMClient")
- (c-name "egg_sm_client_startup")
- (return-type "none")
-)
-
-(define-method will_quit
- (of-object "EggSMClient")
- (c-name "egg_sm_client_will_quit")
- (return-type "none")
- (parameters
- '("gboolean" "will_quit")
- )
-)
-
-(define-function egg_sm_client_end_session
- (c-name "egg_sm_client_end_session")
- (return-type "gboolean")
- (parameters
- '("EggSMClientEndStyle" "style")
- '("gboolean" "request_confirmation")
- )
-)
-
-;; From xsmp.h
-
-(define-function xsmp_init
- (c-name "gsm_xsmp_init")
- (return-type "char*")
-)
-
-(define-function xsmp_run
- (c-name "gsm_xsmp_run")
- (return-type "none")
-)
-
-(define-function xsmp_shutdown
- (c-name "gsm_xsmp_shutdown")
- (return-type "none")
-)
-
-;; From session.h
-
-(define-method set_name
- (of-object "GsmSession")
- (c-name "gsm_session_set_name")
- (return-type "none")
- (parameters
- '("const-char*" "name")
- )
-)
-
-(define-method start
- (of-object "GsmSession")
- (c-name "gsm_session_start")
- (return-type "none")
-)
-
-(define-method get_phase
- (of-object "GsmSession")
- (c-name "gsm_session_get_phase")
- (return-type "GsmSessionPhase")
-)
-
-(define-method initiate_shutdown
- (of-object "GsmSession")
- (c-name "gsm_session_initiate_shutdown")
- (return-type "none")
-)
-
-(define-method register_client
- (of-object "GsmSession")
- (c-name "gsm_session_register_client")
- (return-type "char*")
- (parameters
- '("GsmClient*" "client")
- '("const-char*" "previous_id")
- )
-)
-
-(define-function session_create_global
- (c-name "gsm_session_create_global")
- (return-type "GsmSession*")
-)
-
-;; From acme-volume.h
-
-(define-function acme_volume_get_type
- (c-name "acme_volume_get_type")
- (return-type "GType")
-)
-
-(define-method get_volume
- (of-object "AcmeVolume")
- (c-name "acme_volume_get_volume")
- (return-type "int")
-)
-
-(define-method set_volume
- (of-object "AcmeVolume")
- (c-name "acme_volume_set_volume")
- (return-type "none")
- (parameters
- '("int" "val")
- )
-)
-
-(define-method get_mute
- (of-object "AcmeVolume")
- (c-name "acme_volume_get_mute")
- (return-type "gboolean")
-)
-
-(define-method set_mute
- (of-object "AcmeVolume")
- (c-name "acme_volume_set_mute")
- (return-type "none")
- (parameters
- '("gboolean" "val")
- )
-)
-
-(define-method mute_toggle
- (of-object "AcmeVolume")
- (c-name "acme_volume_mute_toggle")
- (return-type "none")
-)
-
-(define-method get_threshold
- (of-object "AcmeVolume")
- (c-name "acme_volume_get_threshold")
- (return-type "int")
-)
-
-(define-function acme_volume_new
- (c-name "acme_volume_new")
- (is-constructor-of "AcmeVolume")
- (return-type "AcmeVolume*")
-)
diff --git a/src/sugar/_sugarext.override b/src/sugar/_sugarext.override
deleted file mode 100644
index 6b768bb..0000000
--- a/src/sugar/_sugarext.override
+++ /dev/null
@@ -1,81 +0,0 @@
-/* -*- Mode: C; c-basic-offset: 4 -*- */
-%%
-headers
-#include <Python.h>
-
-#include "pygobject.h"
-#include "sugar-address-entry.h"
-#include "sugar-grid.h"
-#include "sugar-key-grabber.h"
-#include "sugar-menu.h"
-#include "sexy-icon-entry.h"
-#include "gsm-session.h"
-#include "gsm-xsmp.h"
-#include "acme-volume-alsa.h"
-
-#include "eggsmclient.h"
-#include "eggsmclient-private.h"
-
-#include <pygtk/pygtk.h>
-#include <glib.h>
-
-%%
-modulename sugar._sugarext
-%%
-import gobject.GObject as PyGObject_Type
-import gtk.Widget as PyGtkWidget_Type
-import gtk.Entry as PyGtkEntry_Type
-import gtk.Menu as PyGtkMenu_Type
-import gtk.Container as PyGtkContainer_Type
-import gtk.gdk.Window as PyGdkWindow_Type
-import gtk.Image as PyGtkImage_Type
-%%
-ignore-glob
- *_get_type
- _*
-%%
-override sugar_key_grabber_grab_keys kwargs
-static PyObject *
-_wrap_sugar_key_grabber_grab_keys(PyGObject *self, PyObject *args, PyObject *kwargs)
-{
- static char *kwlist[] = { "key", NULL };
- PyObject *py_keys;
- char **keys;
- int i, len;
-
- if (!PyArg_ParseTupleAndKeywords(args,kwargs,
- "O:SugarKeyGrabber.grab_keys",
- kwlist, &py_keys))
- return NULL;
-
- if (!PySequence_Check(py_keys) || (len = PySequence_Size(py_keys)) < 0) {
- PyErr_SetString(PyExc_ValueError,
- "keys should be a sequence of strings");
- return NULL;
- }
-
- keys = g_new(char*, len + 1);
- for (i = 0; i < len; i++) {
- PyObject *item = PySequence_GetItem(py_keys, i);
- if (!item) {
- g_free(keys);
- return NULL;
- }
- if (!PyString_Check(item)) {
- PyErr_SetString(PyExc_TypeError, "key must be a string");
- g_free(keys);
- Py_DECREF(item);
- return NULL;
- }
- keys[i] = PyString_AsString(item);
- Py_DECREF(item);
- }
- keys[len] = NULL;
-
- sugar_key_grabber_grab_keys (SUGAR_KEY_GRABBER(self->obj), (const char**) keys);
-
- Py_INCREF(Py_None);
- return Py_None;
-}
-
-%%
diff --git a/src/sugar/_sugarextmodule.c b/src/sugar/_sugarextmodule.c
deleted file mode 100644
index 1bb8545..0000000
--- a/src/sugar/_sugarextmodule.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright (C) 2006-2007, Red Hat, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library 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
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-/* include this first, before NO_IMPORT_PYGOBJECT is defined */
-#include <pygobject.h>
-#include <pygtk/pygtk.h>
-
-extern PyMethodDef py_sugarext_functions[];
-
-void py_sugarext_register_classes (PyObject *d);
-void py_sugarext_add_constants (PyObject *module, const gchar *strip_prefix);
-
-DL_EXPORT(void)
-init_sugarext(void)
-{
- PyObject *m, *d;
-
- init_pygobject();
- init_pygtk();
-
- m = Py_InitModule("_sugarext", py_sugarext_functions);
- d = PyModule_GetDict(m);
-
- py_sugarext_register_classes(d);
- py_sugarext_add_constants(m, "SEXY_");
-
- if (PyErr_Occurred ()) {
- Py_FatalError ("can't initialise module _sugarext");
- }
-}
diff --git a/src/sugar/acme-volume-alsa.c b/src/sugar/acme-volume-alsa.c
deleted file mode 100644
index 42bbf4e..0000000
--- a/src/sugar/acme-volume-alsa.c
+++ /dev/null
@@ -1,317 +0,0 @@
-/* acme-volume-alsa.c
-
- Copyright (C) 2002, 2003 Bastien Nocera
-
- The Gnome Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The Gnome Library 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the Gnome Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
-
- Author: Bastien Nocera <hadess@hadess.net>
- */
-
-#ifdef HAVE_CONFIG
-#include "config.h"
-#endif
-
-#include "acme-volume-alsa.h"
-
-#include <alsa/asoundlib.h>
-
-#ifndef DEFAULT_CARD
-#define DEFAULT_CARD "default"
-#endif
-
-#undef LOG
-#ifdef LOG
-#define D(x...) g_message (x)
-#else
-#define D(x...)
-#endif
-
-#define ROUND(x) ((x - (int)x > 0.5) ? x+1 : x)
-
-struct AcmeVolumeAlsaPrivate
-{
- long pmin, pmax;
- gboolean has_mute, has_master;
- snd_mixer_t *handle;
- snd_mixer_elem_t *elem;
- int saved_volume;
- guint timer_id;
-};
-
-static int acme_volume_alsa_get_volume (AcmeVolume *self);
-static void acme_volume_alsa_set_volume (AcmeVolume *self, int val);
-static gboolean acme_volume_alsa_open (AcmeVolumeAlsa *self);
-static void acme_volume_alsa_close (AcmeVolumeAlsa *self);
-static gboolean acme_volume_alsa_close_real (AcmeVolumeAlsa *self);
-
-G_DEFINE_TYPE (AcmeVolumeAlsa, acme_volume_alsa, ACME_TYPE_VOLUME)
-
-static void
-acme_volume_alsa_finalize (GObject *object)
-{
- AcmeVolumeAlsa *self;
-
- self = ACME_VOLUME_ALSA (object);
-
- if (self->_priv)
- {
- if (self->_priv->timer_id != 0)
- {
- g_source_remove (self->_priv->timer_id);
- self->_priv->timer_id = 0;
- }
-
- acme_volume_alsa_close_real (self);
- g_free (self->_priv);
- self->_priv = NULL;
- }
-
- G_OBJECT_CLASS (acme_volume_alsa_parent_class)->finalize (object);
-}
-
-static void
-acme_volume_alsa_set_mute (AcmeVolume *vol, gboolean val)
-{
- AcmeVolumeAlsa *self = (AcmeVolumeAlsa *) vol;
-
- if (acme_volume_alsa_open (self) == FALSE)
- return;
-
- /* If we have a hardware mute */
- if (self->_priv->has_mute)
- {
- snd_mixer_selem_set_playback_switch_all
- (self->_priv->elem, !val);
- acme_volume_alsa_close (self);
- return;
- }
-
- acme_volume_alsa_close (self);
-
- /* If we don't */
- if (val == TRUE)
- {
- self->_priv->saved_volume = acme_volume_alsa_get_volume (vol);
- acme_volume_alsa_set_volume (vol, 0);
- } else {
- if (self->_priv->saved_volume != -1)
- acme_volume_alsa_set_volume (vol,
- self->_priv->saved_volume);
- }
-}
-
-static gboolean
-acme_volume_alsa_get_mute (AcmeVolume *vol)
-{
- AcmeVolumeAlsa *self = (AcmeVolumeAlsa *) vol;
- int ival;
-
- if (acme_volume_alsa_open (self) == FALSE)
- return FALSE;
-
- if (self->_priv->has_mute)
- {
- snd_mixer_selem_get_playback_switch(self->_priv->elem,
- SND_MIXER_SCHN_FRONT_LEFT, &ival);
-
- acme_volume_alsa_close (self);
-
- return !ival;
- } else {
- acme_volume_alsa_close (self);
-
- return (acme_volume_alsa_get_volume (vol) == 0);
- }
-}
-
-static int
-acme_volume_alsa_get_volume (AcmeVolume *vol)
-{
- AcmeVolumeAlsa *self = (AcmeVolumeAlsa *) vol;
- long lval, rval;
- int tmp;
- float alsa_vol;
-
- if (acme_volume_alsa_open (self) == FALSE)
- return 0;
-
- snd_mixer_selem_get_playback_volume(self->_priv->elem,
- SND_MIXER_SCHN_FRONT_LEFT, &lval);
- snd_mixer_selem_get_playback_volume(self->_priv->elem,
- SND_MIXER_SCHN_FRONT_RIGHT, &rval);
-
- acme_volume_alsa_close (self);
-
- alsa_vol = (lval + rval) / 2;
- alsa_vol = alsa_vol * 100 / (self->_priv->pmax - self->_priv->pmin);
- tmp = ROUND (alsa_vol);
-
- return tmp;
-}
-
-static void
-acme_volume_alsa_set_volume (AcmeVolume *vol, int val)
-{
- AcmeVolumeAlsa *self = (AcmeVolumeAlsa *) vol;
- float volume;
- int tmp;
-
- if (acme_volume_alsa_open (self) == FALSE)
- return;
-
- volume = (float) val / 100 * (self->_priv->pmax - self->_priv->pmin);
- volume = CLAMP (volume, self->_priv->pmin, self->_priv->pmax);
- tmp = ROUND (volume);
-
- snd_mixer_selem_set_playback_volume_all (self->_priv->elem, tmp);
-
- acme_volume_alsa_close (self);
-}
-
-static int
-acme_volume_alsa_get_threshold (AcmeVolume *vol)
-{
- AcmeVolumeAlsa *self = (AcmeVolumeAlsa *) vol;
- int steps;
-
- if (acme_volume_alsa_open (self) == FALSE)
- return 1;
-
- acme_volume_alsa_close (self);
-
- steps = self->_priv->pmax - self->_priv->pmin;
- return (steps > 0) ? 100 / steps + 1 : 1;
-}
-
-static gboolean
-acme_volume_alsa_close_real (AcmeVolumeAlsa *self)
-{
- if (self->_priv == NULL)
- return FALSE;
-
- if (self->_priv->handle != NULL)
- {
- snd_mixer_detach (self->_priv->handle, DEFAULT_CARD);
- snd_mixer_free (self->_priv->handle);
- self->_priv->handle = NULL;
- self->_priv->elem = NULL;
- }
-
- self->_priv->timer_id = 0;
-
- return FALSE;
-}
-
-static gboolean
-acme_volume_alsa_open (AcmeVolumeAlsa *self)
-{
- snd_mixer_selem_id_t *sid;
- snd_mixer_t *handle;
- snd_mixer_elem_t *elem;
-
- if (self->_priv->timer_id != 0)
- {
- g_source_remove (self->_priv->timer_id);
- self->_priv->timer_id = 0;
- return TRUE;
- }
-
- /* open the mixer */
- if (snd_mixer_open (&handle, 0) < 0)
- {
- D("snd_mixer_open");
- return FALSE;
- }
- /* attach the handle to the default card */
- if (snd_mixer_attach (handle, DEFAULT_CARD) <0)
- {
- D("snd_mixer_attach");
- goto bail;
- }
- /* ? */
- if (snd_mixer_selem_register (handle, NULL, NULL) < 0)
- {
- D("snd_mixer_selem_register");
- goto bail;
- }
- if (snd_mixer_load (handle) < 0)
- {
- D("snd_mixer_load");
- goto bail;
- }
-
- snd_mixer_selem_id_alloca (&sid);
- snd_mixer_selem_id_set_name (sid, "Master");
- elem = snd_mixer_find_selem (handle, sid);
- if (!elem)
- {
- snd_mixer_selem_id_alloca (&sid);
- snd_mixer_selem_id_set_name (sid, "PCM");
- elem = snd_mixer_find_selem (handle, sid);
- if (!elem)
- {
- D("snd_mixer_find_selem");
- goto bail;
- }
- }
-
- if (!snd_mixer_selem_has_playback_volume (elem))
- {
- D("snd_mixer_selem_has_playback_volume");
- goto bail;
- }
-
- snd_mixer_selem_get_playback_volume_range (elem,
- &(self->_priv->pmin),
- &(self->_priv->pmax));
-
- self->_priv->has_mute = snd_mixer_selem_has_playback_switch (elem);
- self->_priv->handle = handle;
- self->_priv->elem = elem;
-
- return TRUE;
-
-bail:
- acme_volume_alsa_close_real (self);
- return FALSE;
-}
-
-static void
-acme_volume_alsa_close (AcmeVolumeAlsa *self)
-{
- self->_priv->timer_id = g_timeout_add_seconds (4,
- (GSourceFunc) acme_volume_alsa_close_real, self);
-}
-
-static void
-acme_volume_alsa_init (AcmeVolumeAlsa *self)
-{
- self->_priv = g_new0 (AcmeVolumeAlsaPrivate, 1);
-}
-
-static void
-acme_volume_alsa_class_init (AcmeVolumeAlsaClass *klass)
-{
- AcmeVolumeClass *volume_class = ACME_VOLUME_CLASS (klass);
- G_OBJECT_CLASS (klass)->finalize = acme_volume_alsa_finalize;
-
- volume_class->set_volume = acme_volume_alsa_set_volume;
- volume_class->get_volume = acme_volume_alsa_get_volume;
- volume_class->set_mute = acme_volume_alsa_set_mute;
- volume_class->get_mute = acme_volume_alsa_get_mute;
- volume_class->get_threshold = acme_volume_alsa_get_threshold;
-}
-
diff --git a/src/sugar/acme-volume-alsa.h b/src/sugar/acme-volume-alsa.h
deleted file mode 100644
index b179a24..0000000
--- a/src/sugar/acme-volume-alsa.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/* acme-volume-alsa.h
-
- Copyright (C) 2002, 2003 Bastien Nocera
-
- The Gnome Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The Gnome Library 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the Gnome Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
-
- Author: Bastien Nocera <hadess@hadess.net>
- */
-
-#include <glib.h>
-#include <glib-object.h>
-#include "acme-volume.h"
-
-#define ACME_TYPE_VOLUME_ALSA (acme_volume_alsa_get_type ())
-#define ACME_VOLUME_ALSA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ACME_TYPE_VOLUME_ALSA, AcmeVolumeAlsa))
-#define ACME_VOLUME_ALSA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ACME_TYPE_VOLUME_ALSA, AcmeVolumeAlsaClass))
-#define ACME_IS_VOLUME_ALSA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ACME_TYPE_VOLUME_ALSA))
-#define ACME_VOLUME_ALSA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ACME_TYPE_VOLUME_ALSA, AcmeVolumeAlsaClass))
-
-typedef struct AcmeVolumeAlsa AcmeVolumeAlsa;
-typedef struct AcmeVolumeAlsaClass AcmeVolumeAlsaClass;
-typedef struct AcmeVolumeAlsaPrivate AcmeVolumeAlsaPrivate;
-
-struct AcmeVolumeAlsa {
- AcmeVolume parent;
- AcmeVolumeAlsaPrivate *_priv;
-};
-
-struct AcmeVolumeAlsaClass {
- AcmeVolumeClass parent;
-};
-
-GType acme_volume_alsa_get_type (void);
-
diff --git a/src/sugar/acme-volume.c b/src/sugar/acme-volume.c
deleted file mode 100644
index 09ae1d2..0000000
--- a/src/sugar/acme-volume.c
+++ /dev/null
@@ -1,127 +0,0 @@
-/* acme-volume.c
-
- Copyright (C) 2002, 2003 Bastien Nocera
-
- The Gnome Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The Gnome Library 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the Gnome Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
-
- Author: Bastien Nocera <hadess@hadess.net>
- */
-
-#ifdef HAVE_CONFIG
-#include "config.h"
-#endif
-#include "acme-volume.h"
-#ifdef HAVE_OSS
-#include "acme-volume-oss.h"
-#endif
-#ifdef HAVE_ALSA
-#include "acme-volume-alsa.h"
-#endif
-#ifdef HAVE_GSTREAMER
-#include "acme-volume-gstreamer.h"
-#endif
-
-G_DEFINE_TYPE (AcmeVolume, acme_volume, G_TYPE_OBJECT)
-
-static void
-acme_volume_class_init (AcmeVolumeClass *klass)
-{
-}
-
-static void
-acme_volume_init (AcmeVolume *vol)
-{
-}
-
-int
-acme_volume_get_volume (AcmeVolume *self)
-{
- g_return_val_if_fail (self != NULL, 0);
- g_return_val_if_fail (ACME_IS_VOLUME (self), 0);
-
- return ACME_VOLUME_GET_CLASS (self)->get_volume (self);
-}
-
-void
-acme_volume_set_volume (AcmeVolume *self, int val)
-{
- g_return_if_fail (self != NULL);
- g_return_if_fail (ACME_IS_VOLUME (self));
-
- ACME_VOLUME_GET_CLASS (self)->set_volume (self, val);
-}
-
-gboolean
-acme_volume_get_mute (AcmeVolume *self)
-{
- g_return_val_if_fail (self != NULL, FALSE);
- g_return_val_if_fail (ACME_IS_VOLUME (self), FALSE);
-
- return ACME_VOLUME_GET_CLASS (self)->get_mute (self);
-}
-
-void
-acme_volume_set_mute (AcmeVolume *self, gboolean val)
-{
- g_return_if_fail (self != NULL);
- g_return_if_fail (ACME_IS_VOLUME (self));
-
- ACME_VOLUME_GET_CLASS (self)->set_mute (self, val);
-}
-
-void
-acme_volume_mute_toggle (AcmeVolume *self)
-{
- gboolean muted;
-
- g_return_if_fail (self != NULL);
- g_return_if_fail (ACME_IS_VOLUME (self));
-
- muted = ACME_VOLUME_GET_CLASS (self)->get_mute (self);
- ACME_VOLUME_GET_CLASS (self)->set_mute (self, !muted);
-}
-
-int
-acme_volume_get_threshold (AcmeVolume *self)
-{
- g_return_val_if_fail (self != NULL, 0);
- g_return_val_if_fail (ACME_IS_VOLUME (self), 0);
-
- return ACME_VOLUME_GET_CLASS (self)->get_threshold (self);
-}
-
-AcmeVolume *acme_volume_new (void)
-{
- AcmeVolume *vol;
-
-#ifdef HAVE_GSTREAMER
- vol = ACME_VOLUME (g_object_new (acme_volume_gstreamer_get_type (), NULL));
- return vol;
-#endif
-#ifdef HAVE_ALSA
- vol = ACME_VOLUME (g_object_new (acme_volume_alsa_get_type (), NULL));
- if (vol != NULL && ACME_VOLUME_ALSA (vol)->_priv != NULL)
- return vol;
- if (ACME_VOLUME_ALSA (vol)->_priv == NULL)
- g_object_unref (vol);
-#endif
-#ifdef HAVE_OSS
- vol = ACME_VOLUME (g_object_new (acme_volume_oss_get_type (), NULL));
- return vol;
-#endif
- return NULL;
-}
-
diff --git a/src/sugar/acme-volume.h b/src/sugar/acme-volume.h
deleted file mode 100644
index ec5ee3d..0000000
--- a/src/sugar/acme-volume.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/* acme-volume.h
-
- Copyright (C) 2002, 2003 Bastien Nocera
-
- The Gnome Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Library General Public License as
- published by the Free Software Foundation; either version 2 of the
- License, or (at your option) any later version.
-
- The Gnome Library 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
- Library General Public License for more details.
-
- You should have received a copy of the GNU Library General Public
- License along with the Gnome Library; see the file COPYING.LIB. If not,
- write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA.
-
- Author: Bastien Nocera <hadess@hadess.net>
- */
-
-#ifndef _ACME_VOLUME_H
-#define _ACME_VOLUME_H
-
-#include <glib.h>
-#include <glib-object.h>
-
-G_BEGIN_DECLS
-
-#define ACME_TYPE_VOLUME (acme_volume_get_type ())
-#define ACME_VOLUME(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ACME_TYPE_VOLUME, AcmeVolume))
-#define ACME_VOLUME_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ACME_TYPE_VOLUME, AcmeVolumeClass))
-#define ACME_IS_VOLUME(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ACME_TYPE_VOLUME))
-#define ACME_VOLUME_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ACME_TYPE_VOLUME, AcmeVolumeClass))
-
-typedef struct {
- GObject parent;
-} AcmeVolume;
-
-typedef struct {
- GObjectClass parent;
-
- void (* set_volume) (AcmeVolume *self, int val);
- int (* get_volume) (AcmeVolume *self);
- void (* set_mute) (AcmeVolume *self, gboolean val);
- int (* get_mute) (AcmeVolume *self);
- int (* get_threshold) (AcmeVolume *self);
-} AcmeVolumeClass;
-
-GType acme_volume_get_type (void);
-int acme_volume_get_volume (AcmeVolume *self);
-void acme_volume_set_volume (AcmeVolume *self, int val);
-gboolean acme_volume_get_mute (AcmeVolume *self);
-void acme_volume_set_mute (AcmeVolume *self,
- gboolean val);
-void acme_volume_mute_toggle (AcmeVolume *self);
-int acme_volume_get_threshold (AcmeVolume *self);
-AcmeVolume *acme_volume_new (void);
-
-G_END_DECLS
-
-#endif /* _ACME_VOLUME_H */
diff --git a/src/sugar/activity/Makefile.am b/src/sugar/activity/Makefile.am
deleted file mode 100644
index 91f6ea8..0000000
--- a/src/sugar/activity/Makefile.am
+++ /dev/null
@@ -1,10 +0,0 @@
-sugardir = $(pythondir)/sugar/activity
-sugar_PYTHON = \
- __init__.py \
- activity.py \
- activityfactory.py \
- activityhandle.py \
- activityservice.py \
- bundlebuilder.py \
- main.py \
- namingalert.py \ No newline at end of file
diff --git a/src/sugar/activity/__init__.py b/src/sugar/activity/__init__.py
deleted file mode 100644
index 8d3ef2b..0000000
--- a/src/sugar/activity/__init__.py
+++ /dev/null
@@ -1,55 +0,0 @@
-# Copyright (C) 2006-2007, Red Hat, Inc.
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2 of the License, or (at your option) any later version.
-#
-# This library 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
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the
-# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-# Boston, MA 02111-1307, USA.
-
-"""Activity implementation code for Sugar-based activities
-
-Each activity within the OLPC environment must provide two
-dbus services. The first, patterned after the
-
- sugar.activity.activityfactory.ActivityFactory
-
-class is responsible for providing a "create" method which
-takes a small dictionary with values corresponding to a
-
- sugar.activity.activityhandle.ActivityHandle
-
-describing an individual instance of the activity.
-
-Each activity so registered is described by a
-
- sugar.activity.bundle.Bundle
-
-instance, which parses a specially formatted activity.info
-file (stored in the activity directory's ./activity
-subdirectory). The
-
- sugar.activity.bundlebuilder
-
-module provides facilities for the standard setup.py module
-which produces and registers bundles from activity source
-directories.
-
-Once instantiated by the ActivityFactory's create method,
-each activity must provide an introspection API patterned
-after the
-
- sugar.activity.activityservice.ActivityService
-
-class. This class allows for querying the ID of the root
-window, requesting sharing across the network, and basic
-"what type of application are you" queries.
-"""
diff --git a/src/sugar/activity/activityfactory.py b/src/sugar/activity/activityfactory.py
deleted file mode 100644
index e92314d..0000000
--- a/src/sugar/activity/activityfactory.py
+++ /dev/null
@@ -1,343 +0,0 @@
-# Copyright (C) 2006-2007 Red Hat, Inc.
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2 of the License, or (at your option) any later version.
-#
-# This library 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
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the
-# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-# Boston, MA 02111-1307, USA.
-
-"""Shell side object which manages request to start activity
-
-UNSTABLE. Activities are currently not allowed to run other activities so at
-the moment there is no reason to stabilize this API.
-"""
-
-import logging
-
-import dbus
-import gobject
-
-from sugar.presence import presenceservice
-from sugar.activity.activityhandle import ActivityHandle
-from sugar import util
-from sugar import env
-
-from errno import EEXIST, ENOSPC
-
-import os
-
-_SHELL_SERVICE = "org.laptop.Shell"
-_SHELL_PATH = "/org/laptop/Shell"
-_SHELL_IFACE = "org.laptop.Shell"
-
-_DS_SERVICE = "org.laptop.sugar.DataStore"
-_DS_INTERFACE = "org.laptop.sugar.DataStore"
-_DS_PATH = "/org/laptop/sugar/DataStore"
-
-_ACTIVITY_FACTORY_INTERFACE = "org.laptop.ActivityFactory"
-
-_RAINBOW_SERVICE_NAME = "org.laptop.security.Rainbow"
-_RAINBOW_ACTIVITY_FACTORY_PATH = "/"
-_RAINBOW_ACTIVITY_FACTORY_INTERFACE = "org.laptop.security.Rainbow"
-
-# helper method to close all filedescriptors
-# borrowed from subprocess.py
-try:
- MAXFD = os.sysconf("SC_OPEN_MAX")
-except ValueError:
- MAXFD = 256
-def _close_fds():
- for i in xrange(3, MAXFD):
- try:
- os.close(i)
- # pylint: disable-msg=W0704
- except Exception:
- pass
-
-def create_activity_id():
- """Generate a new, unique ID for this activity"""
- pservice = presenceservice.get_instance()
-
- # create a new unique activity ID
- i = 0
- act_id = None
- while i < 10:
- act_id = util.unique_id()
- i += 1
-
- # check through network activities
- found = False
- activities = pservice.get_activities()
- for act in activities:
- if act_id == act.props.id:
- found = True
- break
- if not found:
- return act_id
- raise RuntimeError("Cannot generate unique activity id.")
-
-def get_environment(activity):
- environ = os.environ.copy()
-
- bin_path = os.path.join(activity.get_path(), 'bin')
-
- activity_root = env.get_profile_path(activity.get_bundle_id())
- if not os.path.exists(activity_root):
- os.mkdir(activity_root)
-
- data_dir = os.path.join(activity_root, 'instance')
- if not os.path.exists(data_dir):
- os.mkdir(data_dir)
-
- data_dir = os.path.join(activity_root, 'data')
- if not os.path.exists(data_dir):
- os.mkdir(data_dir)
-
- tmp_dir = os.path.join(activity_root, 'tmp')
- if not os.path.exists(tmp_dir):
- os.mkdir(tmp_dir)
-
- environ['SUGAR_BUNDLE_PATH'] = activity.get_path()
- environ['SUGAR_BUNDLE_ID'] = activity.get_bundle_id()
- environ['SUGAR_ACTIVITY_ROOT'] = activity_root
- environ['PATH'] = bin_path + ':' + environ['PATH']
- #environ['RAINBOW_STRACE_LOG'] = '1'
-
- if activity.get_path().startswith(env.get_user_activities_path()):
- environ['SUGAR_LOCALEDIR'] = os.path.join(activity.get_path(), 'locale')
-
- if activity.get_bundle_id() in [ 'org.laptop.WebActivity',
- 'org.laptop.GmailActivity',
- 'org.laptop.WikiBrowseActivity'
- ]:
- environ['RAINBOW_CONSTANT_UID'] = 'yes'
-
- return environ
-
-def get_command(activity, activity_id=None, object_id=None, uri=None):
- if not activity_id:
- activity_id = create_activity_id()
-
- command = activity.get_command().split(' ')
- command.extend(['-b', activity.get_bundle_id()])
- command.extend(['-a', activity_id])
-
- if object_id is not None:
- command.extend(['-o', object_id])
- if uri is not None:
- command.extend(['-u', uri])
-
- # if the command is in $BUNDLE_ROOT/bin, execute the absolute path so there
- # is no need to mangle with the shell's PATH
- if '/' not in command[0]:
- bin_path = os.path.join(activity.get_path(), 'bin')
- absolute_path = os.path.join(bin_path, command[0])
- if os.path.exists(absolute_path):
- command[0] = absolute_path
-
- logging.debug('launching: %r' % command)
-
- return command
-
-def open_log_file(activity):
- i = 1
- while True:
- path = env.get_logs_path('%s-%s.log' % (activity.get_bundle_id(), i))
- try:
- fd = os.open(path, os.O_EXCL | os.O_CREAT \
- | os.O_SYNC | os.O_WRONLY, 0644)
- f = os.fdopen(fd, 'w', 0)
- return (path, f)
- except OSError, e:
- if e.errno == EEXIST:
- i += 1
- elif e.errno == ENOSPC:
- # not the end of the world; let's try to keep going.
- return ('/dev/null', open('/dev/null','w'))
- else:
- raise e
-
-class ActivityCreationHandler(gobject.GObject):
- """Sugar-side activity creation interface
-
- This object uses a dbus method on the ActivityFactory
- service to create the new activity. It generates
- GObject events in response to the success/failure of
- activity startup using callbacks to the service's
- create call.
- """
-
- def __init__(self, bundle, handle):
- """Initialise the handler
-
- bundle -- the ActivityBundle to launch
- activity_handle -- stores the values which are to
- be passed to the service to uniquely identify
- the activity to be created and the sharing
- service that may or may not be connected with it
-
- sugar.activity.activityhandle.ActivityHandle instance
-
- calls the "create" method on the service for this
- particular activity type and registers the
- _reply_handler and _error_handler methods on that
- call's results.
-
- The specific service which creates new instances of this
- particular type of activity is created during the activity
- registration process in shell bundle registry which creates
- service definition files for each registered bundle type.
-
- If the file '/etc/olpc-security' exists, then activity launching
- will be delegated to the prototype 'Rainbow' security service.
- """
- gobject.GObject.__init__(self)
-
- self._bundle = bundle
- self._service_name = bundle.get_bundle_id()
- self._handle = handle
-
- self._use_rainbow = os.path.exists('/etc/olpc-security')
- if self._service_name in [ 'org.laptop.JournalActivity',
- 'org.laptop.Terminal',
- 'org.laptop.Log',
- 'org.laptop.Analyze'
- ]:
- self._use_rainbow = False
-
- bus = dbus.SessionBus()
-
- bus_object = bus.get_object(_SHELL_SERVICE, _SHELL_PATH)
- self._shell = dbus.Interface(bus_object, _SHELL_IFACE)
-
- if handle.activity_id is not None and \
- handle.object_id is None:
- datastore = dbus.Interface(
- bus.get_object(_DS_SERVICE, _DS_PATH), _DS_INTERFACE)
- datastore.find({ 'activity_id': self._handle.activity_id }, [],
- reply_handler=self._find_object_reply_handler,
- error_handler=self._find_object_error_handler,
- byte_arrays=True)
- else:
- self._launch_activity()
-
- def _launch_activity(self):
- if self._handle.activity_id != None:
- self._shell.ActivateActivity(self._handle.activity_id,
- reply_handler=self._activate_reply_handler,
- error_handler=self._activate_error_handler)
- else:
- self._create_activity()
-
- def _create_activity(self):
- if self._handle.activity_id is None:
- self._handle.activity_id = create_activity_id()
-
- self._shell.NotifyLaunch(
- self._service_name, self._handle.activity_id,
- reply_handler=self._no_reply_handler,
- error_handler=self._notify_launch_error_handler)
-
- environ = get_environment(self._bundle)
- (log_path, log_file) = open_log_file(self._bundle)
- command = get_command(self._bundle, self._handle.activity_id,
- self._handle.object_id,
- self._handle.uri)
-
- if not self._use_rainbow:
- # use gobject spawn functionality, so that zombies are
- # automatically reaped by the gobject event loop.
- def child_setup():
- # clone logfile.fileno() onto stdout/stderr
- os.dup2(log_file.fileno(), 1)
- os.dup2(log_file.fileno(), 2)
- # close all other fds
- _close_fds()
- # we need to sanitize and str-ize the various bits which
- # dbus gives us.
- gobject.spawn_async([str(s) for s in command],
- envp=['%s=%s' % (k, str(v))
- for k, v in environ.items()],
- working_directory=str(self._bundle.get_path()),
- child_setup=child_setup,
- flags=(gobject.SPAWN_SEARCH_PATH |
- gobject.SPAWN_LEAVE_DESCRIPTORS_OPEN))
- log_file.close()
- else:
- log_file.close()
- system_bus = dbus.SystemBus()
- factory = system_bus.get_object(_RAINBOW_SERVICE_NAME,
- _RAINBOW_ACTIVITY_FACTORY_PATH)
- factory.CreateActivity(
- log_path,
- environ,
- command,
- environ['SUGAR_BUNDLE_PATH'],
- environ['SUGAR_BUNDLE_ID'],
- timeout=30,
- reply_handler=self._create_reply_handler,
- error_handler=self._create_error_handler,
- dbus_interface=_RAINBOW_ACTIVITY_FACTORY_INTERFACE)
-
- def _no_reply_handler(self, *args):
- pass
-
- def _notify_launch_failure_error_handler(self, err):
- logging.error('Notify launch failure failed %s' % err)
-
- def _notify_launch_error_handler(self, err):
- logging.debug('Notify launch failed %s' % err)
-
- def _activate_reply_handler(self, activated):
- if not activated:
- self._create_activity()
-
- def _activate_error_handler(self, err):
- logging.error("Activity activation request failed %s" % err)
-
- def _create_reply_handler(self):
- logging.debug("Activity created %s (%s)." %
- (self._handle.activity_id, self._service_name))
-
- def _create_error_handler(self, err):
- logging.error("Couldn't create activity %s (%s): %s" %
- (self._handle.activity_id, self._service_name, err))
- self._shell.NotifyLaunchFailure(
- self._handle.activity_id, reply_handler=self._no_reply_handler,
- error_handler=self._notify_launch_failure_error_handler)
-
- def _find_object_reply_handler(self, jobjects, count):
- if count > 0:
- if count > 1:
- logging.debug("Multiple objects has the same activity_id.")
- self._handle.object_id = jobjects[0]['uid']
- self._create_activity()
-
- def _find_object_error_handler(self, err):
- logging.error("Datastore find failed %s" % err)
- self._create_activity()
-
-def create(bundle, activity_handle=None):
- """Create a new activity from its name."""
- if not activity_handle:
- activity_handle = ActivityHandle()
- return ActivityCreationHandler(bundle, activity_handle)
-
-def create_with_uri(bundle, uri):
- """Create a new activity and pass the uri as handle."""
- activity_handle = ActivityHandle(uri=uri)
- return ActivityCreationHandler(bundle, activity_handle)
-
-def create_with_object_id(bundle, object_id):
- """Create a new activity and pass the object id as handle."""
- activity_handle = ActivityHandle(object_id=object_id)
- return ActivityCreationHandler(bundle, activity_handle)
diff --git a/src/sugar/activity/activityhandle.py b/src/sugar/activity/activityhandle.py
deleted file mode 100644
index f255fd5..0000000
--- a/src/sugar/activity/activityhandle.py
+++ /dev/null
@@ -1,70 +0,0 @@
-# Copyright (C) 2006-2007 Red Hat, Inc.
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2 of the License, or (at your option) any later version.
-#
-# This library 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
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the
-# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-# Boston, MA 02111-1307, USA.
-
-"""
-STABLE.
-"""
-
-class ActivityHandle(object):
- """Data structure storing simple activity metadata"""
- def __init__(
- self, activity_id=None, object_id=None, uri=None
- ):
- """Initialise the handle from activity_id
-
- activity_id -- unique id for the activity to be
- created
- object_id -- identity of the journal object
- associated with the activity. It was used by
- the journal prototype implementation, might
- change when we do the real one.
-
- When you resume an activity from the journal
- the object_id will be passed in. It's optional
- since new activities does not have an
- associated object (yet).
-
- XXX Not clear how this relates to the activity
- id yet, i.e. not sure we really need both. TBF
- uri -- URI associated with the activity. Used when
- opening an external file or resource in the
- activity, rather than a journal object
- (downloads stored on the file system for
- example or web pages)
- """
- self.activity_id = activity_id
- self.object_id = object_id
- self.uri = uri
-
- def get_dict(self):
- """Retrieve our settings as a dictionary"""
- result = { 'activity_id' : self.activity_id }
- if self.object_id:
- result['object_id'] = self.object_id
- if self.uri:
- result['uri'] = self.uri
-
- return result
-
-def create_from_dict(handle_dict):
- """Create a handle from a dictionary of parameters"""
- result = ActivityHandle(
- handle_dict['activity_id'],
- object_id = handle_dict.get('object_id'),
- uri = handle_dict.get('uri'),
- )
- return result
diff --git a/src/sugar/activity/activityservice.py b/src/sugar/activity/activityservice.py
deleted file mode 100644
index ff806f3..0000000
--- a/src/sugar/activity/activityservice.py
+++ /dev/null
@@ -1,82 +0,0 @@
-# Copyright (C) 2006-2007 Red Hat, Inc.
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2 of the License, or (at your option) any later version.
-#
-# This library 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
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the
-# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-# Boston, MA 02111-1307, USA.
-
-"""
-UNSTABLE. It should really be internal to the Activity class.
-"""
-
-import logging
-
-import dbus
-import dbus.service
-
-_ACTIVITY_SERVICE_NAME = "org.laptop.Activity"
-_ACTIVITY_SERVICE_PATH = "/org/laptop/Activity"
-_ACTIVITY_INTERFACE = "org.laptop.Activity"
-
-class ActivityService(dbus.service.Object):
- """Base dbus service object that each Activity uses to export dbus methods.
-
- The dbus service is separate from the actual Activity object so that we can
- tightly control what stuff passes through the dbus python bindings."""
-
- def __init__(self, activity):
- """Initialise the service for the given activity
-
- activity -- sugar.activity.activity.Activity instance
-
- Creates dbus services that use the instance's activity_id
- as discriminants among all active services
- of this type. That is, the services are all available
- as names/paths derived from the instance's activity_id.
-
- The various methods exposed on dbus are just forwarded
- to the client Activity object's equally-named methods.
- """
- activity.realize()
-
- activity_id = activity.get_id()
- service_name = _ACTIVITY_SERVICE_NAME + activity_id
- object_path = _ACTIVITY_SERVICE_PATH + "/" + activity_id
-
- bus = dbus.SessionBus()
- bus_name = dbus.service.BusName(service_name, bus=bus)
- dbus.service.Object.__init__(self, bus_name, object_path)
-
- self._activity = activity
-
- @dbus.service.method(_ACTIVITY_INTERFACE)
- def SetActive(self, active):
- logging.debug('ActivityService.set_active: %s.' % active)
- self._activity.props.active = active
-
- @dbus.service.method(_ACTIVITY_INTERFACE)
- def Invite(self, buddy_key):
- self._activity.invite(buddy_key)
-
- @dbus.service.method(_ACTIVITY_INTERFACE)
- def HandleViewSource(self):
- self._activity.handle_view_source()
-
- @dbus.service.method(_ACTIVITY_INTERFACE,
- async_callbacks=('async_cb', 'async_err_cb'))
- def GetDocumentPath(self, async_cb, async_err_cb):
- try:
- self._activity.get_document_path(async_cb, async_err_cb)
- except Exception, e:
- async_err_cb(e)
-
diff --git a/src/sugar/activity/bundlebuilder.py b/src/sugar/activity/bundlebuilder.py
deleted file mode 100644
index ab3679b..0000000
--- a/src/sugar/activity/bundlebuilder.py
+++ /dev/null
@@ -1,398 +0,0 @@
-# Copyright (C) 2008 Red Hat, Inc.
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2 of the License, or (at your option) any later version.
-#
-# This library 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
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the
-# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-# Boston, MA 02111-1307, USA.
-
-"""
-STABLE.
-"""
-
-import os
-import sys
-import zipfile
-import tarfile
-import shutil
-import subprocess
-import re
-import gettext
-from optparse import OptionParser
-import logging
-from fnmatch import fnmatch
-
-from sugar import env
-from sugar.bundle.activitybundle import ActivityBundle
-
-IGNORE_DIRS = ['dist', '.git']
-IGNORE_FILES = ['.gitignore', 'MANIFEST', '*.pyc', '*~', '*.bak', 'pseudo.po']
-
-def list_files(base_dir, ignore_dirs=None, ignore_files=None):
- result = []
-
- for root, dirs, files in os.walk(base_dir):
- if ignore_files:
- for pattern in ignore_files:
- files = [f for f in files if not fnmatch(f, pattern)]
-
- rel_path = root[len(base_dir) + 1:]
- for f in files:
- result.append(os.path.join(rel_path, f))
-
- if ignore_dirs and root == base_dir:
- for ignore in ignore_dirs:
- if ignore in dirs:
- dirs.remove(ignore)
-
- return result
-
-class Config(object):
- def __init__(self, source_dir=None, dist_dir = None, dist_name = None):
- self.source_dir = source_dir or os.getcwd()
- self.dist_dir = dist_dir or os.path.join(self.source_dir, 'dist')
- self.dist_name = dist_name
- self.bundle = None
- self.version = None
- self.activity_name = None
- self.bundle_id = None
- self.bundle_name = None
- self.bundle_root_dir = None
- self.tar_root_dir = None
- self.xo_name = None
- self.tar_name = None
-
- self.update()
-
- def update(self):
- self.bundle = bundle = ActivityBundle(self.source_dir)
- self.version = bundle.get_activity_version()
- self.activity_name = bundle.get_name()
- self.bundle_id = bundle.get_bundle_id()
- self.bundle_name = reduce(lambda x, y:x+y, self.activity_name.split())
- self.bundle_root_dir = self.bundle_name + '.activity'
- self.tar_root_dir = '%s-%d' % (self.bundle_name, self.version)
-
- if self.dist_name:
- self.xo_name = self.tar_name = self.dist_name
- else:
- self.xo_name = '%s-%d.xo' % (self.bundle_name, self.version)
- self.tar_name = '%s-%d.tar.bz2' % (self.bundle_name, self.version)
-
-class Builder(object):
- def __init__(self, config):
- self.config = config
-
- def build(self):
- self.build_locale()
-
- def build_locale(self):
- po_dir = os.path.join(self.config.source_dir, 'po')
-
- if not self.config.bundle.is_dir(po_dir):
- logging.warn("Missing po/ dir, cannot build_locale")
- return
-
- locale_dir = os.path.join(self.config.source_dir, 'locale')
-
- if os.path.exists(locale_dir):
- shutil.rmtree(locale_dir)
-
- for f in os.listdir(po_dir):
- if not f.endswith('.po') or f == 'pseudo.po':
- continue
-
- file_name = os.path.join(po_dir, f)
- lang = f[:-3]
-
- localedir = os.path.join(self.config.source_dir, 'locale', lang)
- mo_path = os.path.join(localedir, 'LC_MESSAGES')
- if not os.path.isdir(mo_path):
- os.makedirs(mo_path)
-
- mo_file = os.path.join(mo_path, "%s.mo" % self.config.bundle_id)
- args = ["msgfmt", "--output-file=%s" % mo_file, file_name]
- retcode = subprocess.call(args)
- if retcode:
- print 'ERROR - msgfmt failed with return code %i.' % retcode
-
- cat = gettext.GNUTranslations(open(mo_file, 'r'))
- translated_name = cat.gettext(self.config.activity_name)
- linfo_file = os.path.join(localedir, 'activity.linfo')
- f = open(linfo_file, 'w')
- f.write('[Activity]\nname = %s\n' % translated_name)
- f.close()
-
- def get_files(self):
- files = self.config.bundle.get_files()
-
- if not files:
- logging.error('No files found, fixing the MANIFEST.')
- self.fix_manifest()
- files = self.config.bundle.get_files()
-
- return files
-
- def check_manifest(self):
- missing_files = []
-
- allfiles = list_files(self.config.source_dir,
- IGNORE_DIRS, IGNORE_FILES)
- for path in allfiles:
- if path not in self.config.bundle.manifest:
- missing_files.append(path)
-
- return missing_files
-
- def fix_manifest(self):
- self.build()
-
- manifest = self.config.bundle.manifest
-
- for path in self.check_manifest():
- manifest.append(path)
-
- f = open(os.path.join(self.config.source_dir, "MANIFEST"), "wb")
- for line in manifest:
- f.write(line + "\n")
-
-class Packager(object):
- def __init__(self, config):
- self.config = config
- self.package_path = None
-
- if not os.path.exists(self.config.dist_dir):
- os.mkdir(self.config.dist_dir)
-
-class XOPackager(Packager):
- def __init__(self, builder):
- Packager.__init__(self, builder.config)
-
- self.builder = builder
- self.package_path = os.path.join(self.config.dist_dir,
- self.config.xo_name)
-
- def package(self):
- bundle_zip = zipfile.ZipFile(self.package_path, 'w',
- zipfile.ZIP_DEFLATED)
-
- missing_files = self.builder.check_manifest()
- if missing_files:
- logging.warn('These files are not included in the manifest ' \
- 'and will not be present in the bundle:\n\n' +
- '\n'.join(missing_files) +
- '\n\nUse fix_manifest if you want to add them.')
-
- for f in self.builder.get_files():
- bundle_zip.write(os.path.join(self.config.source_dir, f),
- os.path.join(self.config.bundle_root_dir, f))
-
- bundle_zip.close()
-
-class SourcePackager(Packager):
- def __init__(self, config):
- Packager.__init__(self, config)
- self.package_path = os.path.join(self.config.dist_dir,
- self.config.tar_name)
-
- def get_files(self):
- git_ls = subprocess.Popen('git-ls-files', stdout=subprocess.PIPE,
- cwd=self.config.source_dir)
- if git_ls.wait():
- # Fall back to filtered list
- return list_files(self.config.source_dir,
- IGNORE_DIRS, IGNORE_FILES)
-
- return [path.strip() for path in git_ls.stdout.readlines()]
-
- def package(self):
- tar = tarfile.open(self.package_path, 'w:bz2')
- for f in self.get_files():
- tar.add(os.path.join(self.config.source_dir, f),
- os.path.join(self.config.tar_root_dir, f))
- tar.close()
-
-class Installer(object):
- IGNORES = [ 'po/*', 'MANIFEST', 'AUTHORS' ]
-
- def __init__(self, builder):
- self.config = builder.config
- self.builder = builder
-
- def should_ignore(self, f):
- for pattern in self.IGNORES:
- if fnmatch(f, pattern):
- return True
- return False
-
- def install(self, prefix):
- self.builder.build()
-
- activity_path = os.path.join(prefix, 'share', 'sugar', 'activities',
- self.config.bundle_root_dir)
-
- source_to_dest = {}
- for f in self.builder.get_files():
- if self.should_ignore(f):
- pass
- elif f.startswith('locale/') and f.endswith('.mo'):
- source_to_dest[f] = os.path.join(prefix, 'share', f)
- else:
- source_to_dest[f] = os.path.join(activity_path, f)
-
- for source, dest in source_to_dest.items():
- print 'Install %s to %s.' % (source, dest)
-
- path = os.path.dirname(dest)
- if not os.path.exists(path):
- os.makedirs(path)
-
- shutil.copy(source, dest)
-
-def cmd_dev(config, args):
- '''Setup for development'''
-
- if args:
- print 'Usage: %prog dev'
- return
-
- bundle_path = env.get_user_activities_path()
- if not os.path.isdir(bundle_path):
- os.mkdir(bundle_path)
- bundle_path = os.path.join(bundle_path, config.bundle_root_dir)
- try:
- os.symlink(config.source_dir, bundle_path)
- except OSError:
- if os.path.islink(bundle_path):
- print 'ERROR - The bundle has been already setup for development.'
- else:
- print 'ERROR - A bundle with the same name is already installed.'
-
-def cmd_dist_xo(config, args):
- '''Create a xo bundle package'''
-
- if args:
- print 'Usage: %prog dist_xo'
- return
-
- packager = XOPackager(Builder(config))
- packager.package()
-
-def cmd_fix_manifest(config, args):
- '''Add missing files to the manifest'''
-
- if args:
- print 'Usage: %prog fix_manifest'
- return
-
- builder = Builder(config)
- builder.fix_manifest()
-
-def cmd_dist_source(config, args):
- '''Create a tar source package'''
-
- if args:
- print 'Usage: %prog dist_source'
- return
-
- packager = SourcePackager(config)
- packager.package()
-
-def cmd_install(config, args):
- '''Install the activity in the system'''
-
- parser = OptionParser(usage='usage: %prog install [options]')
- parser.add_option('--prefix', dest='prefix', default=sys.prefix,
- help='Prefix to install files to')
- (suboptions, subargs) = parser.parse_args(args)
- if subargs:
- parser.print_help()
- return
-
- installer = Installer(Builder(config))
- installer.install(suboptions.prefix)
-
-def cmd_genpot(config, args):
- '''Generate the gettext pot file'''
-
- if args:
- print 'Usage: %prog genpot'
- return
-
- po_path = os.path.join(config.source_dir, 'po')
- if not os.path.isdir(po_path):
- os.mkdir(po_path)
-
- python_files = []
- for root_dummy, dirs_dummy, files in os.walk(config.source_dir):
- for file_name in files:
- if file_name.endswith('.py'):
- python_files.append(file_name)
-
- # First write out a stub .pot file containing just the translated
- # activity name, then have xgettext merge the rest of the
- # translations into that. (We can't just append the activity name
- # to the end of the .pot file afterwards, because that might
- # create a duplicate msgid.)
- pot_file = os.path.join('po', '%s.pot' % config.bundle_name)
- escaped_name = re.sub('([\\\\"])', '\\\\\\1', config.activity_name)
- f = open(pot_file, 'w')
- f.write('#: activity/activity.info:2\n')
- f.write('msgid "%s"\n' % escaped_name)
- f.write('msgstr ""\n')
- f.close()
-
- args = [ 'xgettext', '--join-existing', '--language=Python',
- '--keyword=_', '--add-comments=TRANS:', '--output=%s' % pot_file ]
-
- args += python_files
- retcode = subprocess.call(args)
- if retcode:
- print 'ERROR - xgettext failed with return code %i.' % retcode
-
-def cmd_build(config, args):
- '''Build generated files'''
-
- if args:
- print 'Usage: %prog build'
- return
-
- builder = Builder(config)
- builder.build()
-
-def print_commands():
- print 'Available commands:\n'
-
- for name, func in globals().items():
- if name.startswith('cmd_'):
- print "%-20s %s" % (name.replace('cmd_', ''), func.__doc__)
-
- print '\n(Type "./setup.py <command> --help" for help about a ' \
- 'particular command\'s options.'
-
-def start(bundle_name=None):
- if bundle_name:
- logging.warn("bundle_name deprecated, now comes from activity.info")
-
- parser = OptionParser(usage='[action] [options]')
- parser.disable_interspersed_args()
- (options_, args) = parser.parse_args()
-
- config = Config()
-
- try:
- globals()['cmd_' + args[0]](config, args[1:])
- except (KeyError, IndexError):
- print_commands()
-
-if __name__ == '__main__':
- start()
diff --git a/src/sugar/activity/main.py b/src/sugar/activity/main.py
deleted file mode 100644
index 0295bf9..0000000
--- a/src/sugar/activity/main.py
+++ /dev/null
@@ -1,140 +0,0 @@
-# Copyright (C) 2008 Red Hat, Inc.
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2 of the License, or (at your option) any later version.
-#
-# This library 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
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the
-# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-# Boston, MA 02111-1307, USA.
-
-import os
-import sys
-import gettext
-from optparse import OptionParser
-
-import gtk
-import dbus
-import dbus.service
-import dbus.glib
-
-from sugar.activity import activityhandle
-from sugar.bundle.activitybundle import ActivityBundle
-from sugar import logger
-
-def create_activity_instance(constructor, handle):
- activity = constructor(handle)
- activity.show()
-
-def get_single_process_name(bundle_id):
- return bundle_id
-
-def get_single_process_path(bundle_id):
- return '/' + bundle_id.replace('.', '/')
-
-class SingleProcess(dbus.service.Object):
- def __init__(self, name_service, constructor):
- self.constructor = constructor
-
- bus = dbus.SessionBus()
- bus_name = dbus.service.BusName(name_service, bus=bus)
- object_path = get_single_process_path(name_service)
- dbus.service.Object.__init__(self, bus_name, object_path)
-
- @dbus.service.method("org.laptop.SingleProcess", in_signature="a{ss}")
- def create(self, handle_dict):
- handle = activityhandle.create_from_dict(handle_dict)
- create_activity_instance(self.constructor, handle)
-
-def main():
- parser = OptionParser()
- parser.add_option("-b", "--bundle-id", dest="bundle_id",
- help="identifier of the activity bundle")
- parser.add_option("-a", "--activity-id", dest="activity_id",
- help="identifier of the activity instance")
- parser.add_option("-o", "--object-id", dest="object_id",
- help="identifier of the associated datastore object")
- parser.add_option("-u", "--uri", dest="uri",
- help="URI to load")
- parser.add_option('-s', '--single-process', dest='single_process',
- action='store_true',
- help='start all the instances in the same process')
- (options, args) = parser.parse_args()
-
- logger.start()
-
- if 'SUGAR_BUNDLE_PATH' not in os.environ:
- print 'SUGAR_BUNDLE_PATH is not defined in the environment.'
- sys.exit(1)
-
- if len(args) == 0:
- print 'A python class must be specified as first argument.'
- sys.exit(1)
-
- bundle_path = os.environ['SUGAR_BUNDLE_PATH']
- sys.path.append(bundle_path)
-
- bundle = ActivityBundle(bundle_path)
-
- os.environ['SUGAR_BUNDLE_ID'] = bundle.get_bundle_id()
- os.environ['SUGAR_BUNDLE_NAME'] = bundle.get_name()
- os.environ['SUGAR_BUNDLE_VERSION'] = str(bundle.get_activity_version())
-
- gtk.icon_theme_get_default().append_search_path(bundle.get_icons_path())
-
- locale_path = None
- if 'SUGAR_LOCALEDIR' in os.environ:
- locale_path = os.environ['SUGAR_LOCALEDIR']
-
- gettext.bindtextdomain(bundle.get_bundle_id(), locale_path)
- gettext.textdomain(bundle.get_bundle_id())
-
- splitted_module = args[0].rsplit('.', 1)
- module_name = splitted_module[0]
- class_name = splitted_module[1]
-
- module = __import__(module_name)
- for comp in module_name.split('.')[1:]:
- module = getattr(module, comp)
-
- activity_constructor = getattr(module, class_name)
- activity_handle = activityhandle.ActivityHandle(
- activity_id=options.activity_id,
- object_id=options.object_id, uri=options.uri)
-
- if options.single_process is True:
- sessionbus = dbus.SessionBus()
-
- service_name = get_single_process_name(options.bundle_id)
- service_path = get_single_process_path(options.bundle_id)
-
- bus_object = sessionbus.get_object(
- 'org.freedesktop.DBus', '/org/freedesktop/DBus')
- try:
- name = bus_object.GetNameOwner(
- service_name, dbus_interface='org.freedesktop.DBus')
- except dbus.DBusException:
- name = None
-
- if not name:
- SingleProcess(service_name, activity_constructor)
- else:
- single_process = sessionbus.get_object(service_name, service_path)
- single_process.create(activity_handle.get_dict())
-
- print 'Created %s in a single process.' % service_name
- sys.exit(0)
-
- if hasattr(module, 'start'):
- module.start()
-
- create_activity_instance(activity_constructor, activity_handle)
-
- gtk.main()
diff --git a/src/sugar/activity/namingalert.py b/src/sugar/activity/namingalert.py
deleted file mode 100644
index 724d76a..0000000
--- a/src/sugar/activity/namingalert.py
+++ /dev/null
@@ -1,320 +0,0 @@
-# Copyright (C) 2009 One Laptop Per Child
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2 of the License, or (at your option) any later version.
-#
-# This library 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
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the
-# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-# Boston, MA 02111-1307, USA.
-
-import gettext
-
-import gtk
-import gobject
-import hippo
-import gconf
-
-from sugar.graphics import style
-from sugar.graphics.icon import Icon
-from sugar.graphics.xocolor import XoColor
-from sugar.graphics.icon import CanvasIcon
-from sugar.graphics.entry import CanvasEntry
-from sugar.graphics.toolbutton import ToolButton
-from sugar.graphics.canvastextview import CanvasTextView
-
-from sugar.bundle.activitybundle import ActivityBundle
-
-_ = lambda msg: gettext.dgettext('sugar-toolkit', msg)
-
-class NamingToolbar(gtk.Toolbar):
- """ Toolbar of the naming alert
- """
- __gtype_name__ = 'SugarNamingToolbar'
-
- __gsignals__ = {
- 'keep-clicked': (gobject.SIGNAL_RUN_FIRST,
- gobject.TYPE_NONE,
- ([]))
- }
- def __init__(self):
- gtk.Toolbar.__init__(self)
-
- client = gconf.client_get_default()
- color = XoColor(client.get_string('/desktop/sugar/user/color'))
- icon = Icon()
- icon.set_from_icon_name('activity-journal',
- gtk.ICON_SIZE_LARGE_TOOLBAR)
- icon.props.xo_color = color
- self._add_widget(icon)
-
- self._add_separator()
-
- self._title = gtk.Label(_('Name this entry'))
- self._add_widget(self._title)
-
- self._add_separator(True)
-
- self._keep_button = ToolButton('dialog-ok', tooltip=_('Keep'))
- self._keep_button.props.accelerator = 'Return'
- self._keep_button.connect('clicked', self.__keep_button_clicked_cb)
- self.insert(self._keep_button, -1)
- self._keep_button.show()
-
- def _add_separator(self, expand=False):
- separator = gtk.SeparatorToolItem()
- separator.props.draw = False
- if expand:
- separator.set_expand(True)
- else:
- separator.set_size_request(style.DEFAULT_SPACING, -1)
- self.insert(separator, -1)
- separator.show()
-
- def _add_widget(self, widget, expand=False):
- tool_item = gtk.ToolItem()
- tool_item.set_expand(expand)
-
- tool_item.add(widget)
- widget.show()
-
- self.insert(tool_item, -1)
- tool_item.show()
-
- def __keep_button_clicked_cb(self, widget, data=None):
- self.emit('keep-clicked')
-
-class FavoriteIcon(CanvasIcon):
- def __init__(self, favorite):
- CanvasIcon.__init__(self, icon_name='emblem-favorite',
- box_width=style.GRID_CELL_SIZE * 3 / 5,
- size=style.SMALL_ICON_SIZE)
- self._favorite = None
- self.set_favorite(favorite)
- self.connect('button-release-event', self.__release_event_cb)
- self.connect('motion-notify-event', self.__motion_notify_event_cb)
-
- def set_favorite(self, favorite):
- if favorite == self._favorite:
- return
-
- self._favorite = favorite
- if favorite:
- client = gconf.client_get_default()
- color = XoColor(client.get_string('/desktop/sugar/user/color'))
- self.props.xo_color = color
- else:
- self.props.stroke_color = style.COLOR_BUTTON_GREY.get_svg()
- self.props.fill_color = style.COLOR_WHITE.get_svg()
-
- def get_favorite(self):
- return self._favorite
-
- favorite = gobject.property(
- type=bool, default=False, getter=get_favorite, setter=set_favorite)
-
- def __release_event_cb(self, icon, event):
- self.props.favorite = not self.props.favorite
-
- def __motion_notify_event_cb(self, icon, event):
- if not self._favorite:
- if event.detail == hippo.MOTION_DETAIL_ENTER:
- icon.props.fill_color = style.COLOR_BUTTON_GREY.get_svg()
- elif event.detail == hippo.MOTION_DETAIL_LEAVE:
- icon.props.fill_color = style.COLOR_TRANSPARENT.get_svg()
-
-class NamingAlert(gtk.Window):
- __gtype_name__ = 'SugarNamingAlert'
-
- def __init__(self, activity, bundle_path):
- gtk.Window.__init__(self)
-
- self._bundle_path = bundle_path
- self._favorite_icon = None
- self._title = None
- self._description = None
- self._tags = None
-
- accel_group = gtk.AccelGroup()
- self.set_data('sugar-accel-group', accel_group)
- self.add_accel_group(accel_group)
-
- self.set_border_width(style.LINE_WIDTH)
- offset = style.GRID_CELL_SIZE
- width = gtk.gdk.screen_width() - offset * 2
- height = gtk.gdk.screen_height() - offset * 2
- self.set_size_request(width, height)
- self.set_position(gtk.WIN_POS_CENTER_ALWAYS)
- self.set_decorated(False)
- self.set_resizable(False)
- self.set_modal(True)
- self.connect('realize', self.__realize_cb)
-
- self._activity = activity
-
- vbox = gtk.VBox()
- self.add(vbox)
- vbox.show()
-
- toolbar = NamingToolbar()
- toolbar.connect('keep-clicked', self.__keep_cb)
- vbox.pack_start(toolbar, False)
- toolbar.show()
-
- canvas = hippo.Canvas()
- self._root = hippo.CanvasBox()
- self._root.props.background_color = style.COLOR_WHITE.get_int()
- canvas.set_root(self._root)
- vbox.pack_start(canvas)
- canvas.show()
-
- body = self._create_body()
- self._root.append(body, hippo.PACK_EXPAND)
-
- widget = self._title.get_property('widget')
- widget.grab_focus()
-
- def _create_body(self):
- body = hippo.CanvasBox()
- body.props.orientation = hippo.ORIENTATION_VERTICAL
- body.props.background_color = style.COLOR_WHITE.get_int()
- body.props.padding_top = style.DEFAULT_SPACING * 3
-
- header = hippo.CanvasBox(orientation=hippo.ORIENTATION_HORIZONTAL,
- padding=style.DEFAULT_PADDING,
- padding_right=style.GRID_CELL_SIZE,
- spacing=style.DEFAULT_SPACING)
- body.append(header)
-
- descriptions = hippo.CanvasBox(orientation=hippo.ORIENTATION_HORIZONTAL,
- spacing=style.DEFAULT_SPACING * 3,
- padding_left=style.GRID_CELL_SIZE,
- padding_right=style.GRID_CELL_SIZE,
- padding_top=style.DEFAULT_SPACING * 3)
-
- body.append(descriptions, hippo.PACK_EXPAND)
-
- first_column = hippo.CanvasBox(orientation=hippo.ORIENTATION_VERTICAL,
- spacing=style.DEFAULT_SPACING)
- descriptions.append(first_column)
-
- second_column = hippo.CanvasBox(orientation=hippo.ORIENTATION_VERTICAL,
- spacing=style.DEFAULT_SPACING)
- descriptions.append(second_column, hippo.PACK_EXPAND)
-
- self._favorite_icon = self._create_favorite_icon()
- header.append(self._favorite_icon)
-
- activity_icon = self._create_activity_icon()
- header.append(activity_icon)
-
- self._title = self._create_title()
- header.append(self._title, hippo.PACK_EXPAND)
-
- if gtk.widget_get_default_direction() == gtk.TEXT_DIR_RTL:
- header.reverse()
-
- description_box, self._description = self._create_description()
- second_column.append(description_box)
-
- tags_box, self._tags = self._create_tags()
- second_column.append(tags_box)
-
- return body
-
- def _create_favorite_icon(self):
- favorite_icon = FavoriteIcon(False)
- return favorite_icon
-
- def _create_activity_icon(self):
- activity_bundle = ActivityBundle(self._bundle_path)
- activity_icon = CanvasIcon(file_name=activity_bundle.get_icon())
- if self._activity.metadata.has_key('icon-color') and \
- self._activity.metadata['icon-color']:
- activity_icon.props.xo_color = XoColor( \
- self._activity.metadata['icon-color'])
- return activity_icon
-
- def _create_title(self):
- title = CanvasEntry()
- title.set_background(style.COLOR_WHITE.get_html())
- title.props.text = self._activity.metadata.get('title', _('Untitled'))
- return title
-
- def _create_description(self):
- vbox = hippo.CanvasBox()
- vbox.props.spacing = style.DEFAULT_SPACING
-
- text = hippo.CanvasText(text=_('Description:'),
- font_desc=style.FONT_NORMAL.get_pango_desc())
- text.props.color = style.COLOR_BUTTON_GREY.get_int()
-
- if gtk.widget_get_default_direction() == gtk.TEXT_DIR_RTL:
- text.props.xalign = hippo.ALIGNMENT_END
- else:
- text.props.xalign = hippo.ALIGNMENT_START
-
- vbox.append(text)
-
- description = self._activity.metadata.get('description', '')
- text_view = CanvasTextView(description,
- box_height=style.GRID_CELL_SIZE * 2)
- vbox.append(text_view, hippo.PACK_EXPAND)
-
- text_view.text_view_widget.props.accepts_tab = False
-
- return vbox, text_view
-
- def _create_tags(self):
- vbox = hippo.CanvasBox()
- vbox.props.spacing = style.DEFAULT_SPACING
-
- text = hippo.CanvasText(text=_('Tags:'),
- font_desc=style.FONT_NORMAL.get_pango_desc())
- text.props.color = style.COLOR_BUTTON_GREY.get_int()
-
- if gtk.widget_get_default_direction() == gtk.TEXT_DIR_RTL:
- text.props.xalign = hippo.ALIGNMENT_END
- else:
- text.props.xalign = hippo.ALIGNMENT_START
-
- vbox.append(text)
-
- tags = self._activity.metadata.get('tags', '')
- text_view = CanvasTextView(tags, box_height=style.GRID_CELL_SIZE * 2)
- vbox.append(text_view, hippo.PACK_EXPAND)
-
- text_view.text_view_widget.props.accepts_tab = False
-
- return vbox, text_view
-
- def __realize_cb(self, widget):
- self.window.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_DIALOG)
- self.window.set_accept_focus(True)
-
- def __keep_cb(self, widget):
- is_favorite = self._favorite_icon.get_favorite()
- if is_favorite:
- self._activity.metadata['keep'] = 1
- else:
- self._activity.metadata['keep'] = 0
-
- self._activity.metadata['title'] = self._title.props.text
-
- new_tags = self._tags.text_view_widget.props.buffer.props.text
- self._activity.metadata['tags'] = new_tags
-
- new_description = \
- self._description.text_view_widget.props.buffer.props.text
- self._activity.metadata['description'] = new_description
-
- self._activity.metadata['title_set_by_user'] = '1'
- self._activity.close()
- self.destroy()
diff --git a/src/sugar/bundle/Makefile.am b/src/sugar/bundle/Makefile.am
deleted file mode 100644
index f1af791..0000000
--- a/src/sugar/bundle/Makefile.am
+++ /dev/null
@@ -1,6 +0,0 @@
-sugardir = $(pythondir)/sugar/bundle
-sugar_PYTHON = \
- __init__.py \
- bundle.py \
- activitybundle.py \
- contentbundle.py
diff --git a/src/sugar/bundle/__init__.py b/src/sugar/bundle/__init__.py
deleted file mode 100644
index 85ebced..0000000
--- a/src/sugar/bundle/__init__.py
+++ /dev/null
@@ -1,16 +0,0 @@
-# Copyright (C) 2006-2007, Red Hat, Inc.
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2 of the License, or (at your option) any later version.
-#
-# This library 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
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the
-# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-# Boston, MA 02111-1307, USA.
diff --git a/src/sugar/bundle/activitybundle.py b/src/sugar/bundle/activitybundle.py
deleted file mode 100644
index eb35307..0000000
--- a/src/sugar/bundle/activitybundle.py
+++ /dev/null
@@ -1,375 +0,0 @@
-# Copyright (C) 2007, Red Hat, Inc.
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2 of the License, or (at your option) any later version.
-#
-# This library 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
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the
-# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-# Boston, MA 02111-1307, USA.
-
-"""Sugar activity bundles
-
-UNSTABLE.
-"""
-
-from ConfigParser import ConfigParser
-import locale
-import os
-import tempfile
-import logging
-
-from sugar import env
-from sugar import util
-from sugar.bundle.bundle import Bundle, \
- MalformedBundleException, NotInstalledException
-
-class ActivityBundle(Bundle):
- """A Sugar activity bundle
-
- See http://wiki.laptop.org/go/Activity_bundles for details
- """
-
- MIME_TYPE = 'application/vnd.olpc-sugar'
- DEPRECATED_MIME_TYPE = 'application/vnd.olpc-x-sugar'
-
- _zipped_extension = '.xo'
- _unzipped_extension = '.activity'
- _infodir = 'activity'
-
- def __init__(self, path):
- Bundle.__init__(self, path)
- self.activity_class = None
- self.bundle_exec = None
-
- self._name = None
- self._icon = None
- self._bundle_id = None
- self._mime_types = None
- self._show_launcher = True
- self._activity_version = 0
- self._installation_time = os.stat(path).st_mtime
- self._manifest = None
-
- info_file = self.get_file('activity/activity.info')
- if info_file is None:
- raise MalformedBundleException('No activity.info file')
- self._parse_info(info_file)
-
- linfo_file = self._get_linfo_file()
- if linfo_file:
- self._parse_linfo(linfo_file)
-
- def _get_manifest(self):
- if self._manifest is None:
- self._manifest = self._read_manifest()
- return self._manifest
-
- manifest = property(_get_manifest, None, None,
- "NOTICE: this property is potentially quite slow, so better make sure "
- "that it's not called at performance-critical points like shell or "
- "activity startup.")
-
- def _raw_manifest(self):
- f = self.get_file("MANIFEST")
- if not f:
- logging.warning("Activity directory lacks a MANIFEST file.")
- return []
-
- ret = [line.strip() for line in f.readlines()]
- f.close()
- return ret
-
- def _read_manifest(self):
- """return a list with the lines in MANIFEST, with invalid lines replaced
- by empty lines.
-
- Since absolute order carries information on file history, it should
- be preserved. For instance, when renaming a file, you should leave
- the new name on the same line as the old one.
- """
- logging.debug('STARTUP: Reading manifest')
- lines = self._raw_manifest()
-
- # Remove trailing newlines, they do not help keep absolute position.
- while lines and lines[-1] == "":
- lines = lines[:-1]
-
- for num, line in enumerate(lines):
- if not line:
- continue
-
- # Remove duplicates
- if line in lines[0:num]:
- lines[num] = ""
- logging.warning("Bundle %s: duplicate entry in MANIFEST: %s"
- % (self._name,line))
- continue
-
- # Remove MANIFEST
- if line == "MANIFEST":
- lines[num] = ""
- logging.warning("Bundle %s: MANIFEST includes itself: %s"
- % (self._name,line))
-
- # Remove invalid files
- if not self.is_file(line):
- lines[num] = ""
- logging.warning("Bundle %s: invalid entry in MANIFEST: %s"
- % (self._name,line))
-
- return lines
-
- def get_files(self, manifest = None):
- files = [line for line in (manifest or self.manifest) if line]
-
- if self.is_file('MANIFEST'):
- files.append('MANIFEST')
-
- return files
-
- def _parse_info(self, info_file):
- cp = ConfigParser()
- cp.readfp(info_file)
-
- section = 'Activity'
-
- if cp.has_option(section, 'bundle_id'):
- self._bundle_id = cp.get(section, 'bundle_id')
- # FIXME deprecated
- elif cp.has_option(section, 'service_name'):
- self._bundle_id = cp.get(section, 'service_name')
- else:
- raise MalformedBundleException(
- 'Activity bundle %s does not specify a bundle id' %
- self._path)
-
- if cp.has_option(section, 'name'):
- self._name = cp.get(section, 'name')
- else:
- raise MalformedBundleException(
- 'Activity bundle %s does not specify a name' % self._path)
-
- # FIXME class is deprecated
- if cp.has_option(section, 'class'):
- self.activity_class = cp.get(section, 'class')
- elif cp.has_option(section, 'exec'):
- self.bundle_exec = cp.get(section, 'exec')
- else:
- raise MalformedBundleException(
- 'Activity bundle %s must specify either class or exec' %
- self._path)
-
- if cp.has_option(section, 'mime_types'):
- mime_list = cp.get(section, 'mime_types').strip(';')
- self._mime_types = [ mime.strip() for mime in mime_list.split(';') ]
-
- if cp.has_option(section, 'show_launcher'):
- if cp.get(section, 'show_launcher') == 'no':
- self._show_launcher = False
-
- if cp.has_option(section, 'icon'):
- self._icon = cp.get(section, 'icon')
-
- if cp.has_option(section, 'activity_version'):
- version = cp.get(section, 'activity_version')
- try:
- self._activity_version = int(version)
- except ValueError:
- raise MalformedBundleException(
- 'Activity bundle %s has invalid version number %s' %
- (self._path, version))
-
- def _get_linfo_file(self):
- lang = locale.getdefaultlocale()[0]
- if not lang:
- return None
-
- linfo_path = os.path.join('locale', lang, 'activity.linfo')
- linfo_file = self.get_file(linfo_path)
- if linfo_file is not None:
- return linfo_file
-
- linfo_path = os.path.join('locale', lang[:2], 'activity.linfo')
- linfo_file = self.get_file(linfo_path)
- if linfo_file is not None:
- return linfo_file
-
- return None
-
- def _parse_linfo(self, linfo_file):
- cp = ConfigParser()
- cp.readfp(linfo_file)
-
- section = 'Activity'
-
- if cp.has_option(section, 'name'):
- self._name = cp.get(section, 'name')
-
- def get_locale_path(self):
- """Get the locale path inside the (installed) activity bundle."""
- if self._zip_file is not None:
- raise NotInstalledException
- return os.path.join(self._path, 'locale')
-
- def get_icons_path(self):
- """Get the icons path inside the (installed) activity bundle."""
- if self._zip_file is not None:
- raise NotInstalledException
- return os.path.join(self._path, 'icons')
-
- def get_path(self):
- """Get the activity bundle path."""
- return self._path
-
- def get_name(self):
- """Get the activity user visible name."""
- return self._name
-
- def get_installation_time(self):
- """Get a timestamp representing the time at which this activity was
- installed."""
- return self._installation_time
-
- def get_bundle_id(self):
- """Get the activity bundle id"""
- return self._bundle_id
-
- # FIXME: this should return the icon data, not a filename, so that
- # we don't need to create a temp file in the zip case
- def get_icon(self):
- """Get the activity icon name"""
- icon_path = os.path.join('activity', self._icon + '.svg')
- if self._zip_file is None:
- return os.path.join(self._path, icon_path)
- else:
- icon_data = self.get_file(icon_path).read()
- temp_file, temp_file_path = tempfile.mkstemp(self._icon)
- os.write(temp_file, icon_data)
- os.close(temp_file)
- return util.TempFilePath(temp_file_path)
-
- def get_activity_version(self):
- """Get the activity version"""
- return self._activity_version
-
- def get_command(self):
- """Get the command to execute to launch the activity factory"""
- if self.bundle_exec:
- command = os.path.expandvars(self.bundle_exec)
- else:
- command = 'sugar-activity ' + self.activity_class
-
- return command
-
- def get_mime_types(self):
- """Get the MIME types supported by the activity"""
- return self._mime_types
-
- def get_show_launcher(self):
- """Get whether there should be a visible launcher for the activity"""
- return self._show_launcher
-
- def install(self, install_dir=None, strict_manifest=False):
- if install_dir is None:
- install_dir = env.get_user_activities_path()
-
- self._unzip(install_dir)
-
- install_path = os.path.join(install_dir, self._zip_root_dir)
-
- # List installed files
- manifestfiles = self.get_files(self._raw_manifest())
- paths = []
- for root, dirs_, files in os.walk(install_path):
- rel_path = root[len(install_path) + 1:]
- for f in files:
- paths.append(os.path.join(rel_path, f))
-
- # Check the list against the MANIFEST
- for path in paths:
- if path in manifestfiles:
- manifestfiles.remove(path)
- elif path != "MANIFEST":
- logging.warning("Bundle %s: %s not in MANIFEST"%
- (self._name,path))
- if strict_manifest:
- os.remove(os.path.join(install_path, path))
-
- # Is anything in MANIFEST left over after accounting for all files?
- if manifestfiles:
- err = ("Bundle %s: files in MANIFEST not included: %s"%
- (self._name,str(manifestfiles)))
- if strict_manifest:
- raise MalformedBundleException(err)
- else:
- logging.warning(err)
-
- xdg_data_home = os.getenv('XDG_DATA_HOME',
- os.path.expanduser('~/.local/share'))
-
- mime_path = os.path.join(install_path, 'activity', 'mimetypes.xml')
- if os.path.isfile(mime_path):
- mime_dir = os.path.join(xdg_data_home, 'mime')
- mime_pkg_dir = os.path.join(mime_dir, 'packages')
- if not os.path.isdir(mime_pkg_dir):
- os.makedirs(mime_pkg_dir)
- installed_mime_path = os.path.join(mime_pkg_dir,
- '%s.xml' % self._bundle_id)
- os.symlink(mime_path, installed_mime_path)
- os.spawnlp(os.P_WAIT, 'update-mime-database',
- 'update-mime-database', mime_dir)
-
- mime_types = self.get_mime_types()
- if mime_types is not None:
- installed_icons_dir = os.path.join(xdg_data_home,
- 'icons/sugar/scalable/mimetypes')
- if not os.path.isdir(installed_icons_dir):
- os.makedirs(installed_icons_dir)
-
- for mime_type in mime_types:
- mime_icon_base = os.path.join(install_path, 'activity',
- mime_type.replace('/', '-'))
- svg_file = mime_icon_base + '.svg'
- info_file = mime_icon_base + '.icon'
- if os.path.isfile(svg_file):
- os.symlink(svg_file,
- os.path.join(installed_icons_dir,
- os.path.basename(svg_file)))
- if os.path.isfile(info_file):
- os.symlink(info_file,
- os.path.join(installed_icons_dir,
- os.path.basename(info_file)))
- return install_path
-
- def uninstall(self, install_path, force=False):
- xdg_data_home = os.getenv('XDG_DATA_HOME',
- os.path.expanduser('~/.local/share'))
-
- mime_dir = os.path.join(xdg_data_home, 'mime')
- installed_mime_path = os.path.join(mime_dir, 'packages',
- '%s.xml' % self._bundle_id)
- if os.path.exists(installed_mime_path):
- os.remove(installed_mime_path)
- os.spawnlp(os.P_WAIT, 'update-mime-database',
- 'update-mime-database', mime_dir)
-
- mime_types = self.get_mime_types()
- if mime_types is not None:
- installed_icons_dir = os.path.join(xdg_data_home,
- 'icons/sugar/scalable/mimetypes')
- if os.path.isdir(installed_icons_dir):
- for f in os.listdir(installed_icons_dir):
- path = os.path.join(installed_icons_dir, f)
- if os.path.islink(path) and \
- os.readlink(path).startswith(install_path):
- os.remove(path)
-
- self._uninstall(install_path)
diff --git a/src/sugar/bundle/bundle.py b/src/sugar/bundle/bundle.py
deleted file mode 100644
index a1b2686..0000000
--- a/src/sugar/bundle/bundle.py
+++ /dev/null
@@ -1,199 +0,0 @@
-# Copyright (C) 2007, Red Hat, Inc.
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2 of the License, or (at your option) any later version.
-#
-# This library 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
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the
-# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-# Boston, MA 02111-1307, USA.
-
-"""Sugar bundle file handler
-
-UNSTABLE.
-"""
-
-import os
-import logging
-import shutil
-import StringIO
-import zipfile
-
-class AlreadyInstalledException(Exception):
- pass
-
-class NotInstalledException(Exception):
- pass
-
-class InvalidPathException(Exception):
- pass
-
-class ZipExtractException(Exception):
- pass
-
-class RegistrationException(Exception):
- pass
-
-class MalformedBundleException(Exception):
- pass
-
-class Bundle(object):
- """A Sugar activity, content module, etc.
-
- The bundle itself may be either a zip file or a directory
- hierarchy, with metadata about the bundle stored various files
- inside it.
-
- This is an abstract base class. See ActivityBundle and
- ContentBundle for more details on those bundle types.
- """
-
- _zipped_extension = None
- _unzipped_extension = None
-
- def __init__(self, path):
- self._path = path
- self._zip_root_dir = None
-
- if os.path.isdir(self._path):
- self._zip_file = None
- else:
- self._zip_file = zipfile.ZipFile(self._path)
- self._check_zip_bundle()
-
- # manifest = self._get_file(self._infodir + '/contents')
- # if manifest is None:
- # raise MalformedBundleException('No manifest file')
- #
- # signature = self._get_file(self._infodir + '/contents.sig')
- # if signature is None:
- # raise MalformedBundleException('No signature file')
-
- def __del__(self):
- if self._zip_file is not None:
- self._zip_file.close()
-
- def _check_zip_bundle(self):
- file_names = self._zip_file.namelist()
- if len(file_names) == 0:
- raise MalformedBundleException('Empty zip file')
-
- if file_names[0] == 'mimetype':
- del file_names[0]
-
- self._zip_root_dir = file_names[0].split('/')[0]
- if self._zip_root_dir.startswith('.'):
- raise MalformedBundleException(
- 'root directory starts with .')
- if self._unzipped_extension is not None:
- (name_, ext) = os.path.splitext(self._zip_root_dir)
- if ext != self._unzipped_extension:
- raise MalformedBundleException(
- 'All files in the bundle must be inside a single ' +
- 'directory whose name ends with "%s"' %
- self._unzipped_extension)
-
- for file_name in file_names:
- if not file_name.startswith(self._zip_root_dir):
- raise MalformedBundleException(
- 'All files in the bundle must be inside a single ' +
- 'top-level directory')
-
- def get_file(self, filename):
- f = None
-
- if self._zip_file is None:
- path = os.path.join(self._path, filename)
- try:
- f = open(path,"rb")
- except IOError:
- return None
- else:
- path = os.path.join(self._zip_root_dir, filename)
- try:
- data = self._zip_file.read(path)
- f = StringIO.StringIO(data)
- except KeyError:
- logging.debug('%s not found.' % filename)
-
- return f
-
- def is_file(self, filename):
- if self._zip_file is None:
- path = os.path.join(self._path, filename)
- return os.path.isfile(path)
- else:
- path = os.path.join(self._zip_root_dir, filename)
- try:
- self._zip_file.getinfo(path)
- except KeyError:
- return False
-
- return True
-
- def is_dir(self, filename):
- if self._zip_file is None:
- path = os.path.join(self._path, filename)
- return os.path.isdir(path)
- else:
- path = os.path.join(self._zip_root_dir, filename, "")
- for f in self._zip_file.namelist():
- if f.startswith(path):
- return True
- return False
-
- def get_path(self):
- """Get the bundle path."""
- return self._path
-
- def _unzip(self, install_dir):
- if self._zip_file is None:
- raise AlreadyInstalledException
-
- if not os.path.isdir(install_dir):
- os.mkdir(install_dir, 0775)
-
- # zipfile provides API that in theory would let us do this
- # correctly by hand, but handling all the oddities of
- # Windows/UNIX mappings, extension attributes, deprecated
- # features, etc makes it impractical.
- # FIXME: use manifest
- if os.spawnlp(os.P_WAIT, 'unzip', 'unzip', '-o', self._path,
- '-x', 'mimetype', '-d', install_dir):
- # clean up install dir after failure
- shutil.rmtree(os.path.join(install_dir, self._zip_root_dir),
- ignore_errors=True)
- # indicate failure.
- raise ZipExtractException
-
- def _zip(self, bundle_path):
- if self._zip_file is not None:
- raise NotInstalledException
-
- raise NotImplementedError
-
- def _uninstall(self, install_path):
- if not os.path.isdir(install_path):
- raise InvalidPathException
- if self._unzipped_extension is not None:
- (name_, ext) = os.path.splitext(install_path)
- if ext != self._unzipped_extension:
- raise InvalidPathException
-
- for root, dirs, files in os.walk(install_path, topdown=False):
- for name in files:
- os.remove(os.path.join(root, name))
- for name in dirs:
- path = os.path.join(root, name)
- if os.path.islink(path):
- os.remove(path)
- else:
- os.rmdir(path)
- os.rmdir(install_path)
diff --git a/src/sugar/bundle/contentbundle.py b/src/sugar/bundle/contentbundle.py
deleted file mode 100644
index a95ed61..0000000
--- a/src/sugar/bundle/contentbundle.py
+++ /dev/null
@@ -1,220 +0,0 @@
-# Copyright (C) 2007, Red Hat, Inc.
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2 of the License, or (at your option) any later version.
-#
-# This library 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
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the
-# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-# Boston, MA 02111-1307, USA.
-
-"""Sugar content bundles
-
-UNSTABLE.
-"""
-
-from ConfigParser import ConfigParser
-import os
-import urllib
-
-from sugar import env
-from sugar.bundle.bundle import Bundle, NotInstalledException, \
- MalformedBundleException
-
-class ContentBundle(Bundle):
- """A Sugar content bundle
-
- See http://wiki.laptop.org/go/Content_bundles for details
- """
-
- MIME_TYPE = 'application/vnd.olpc-content'
-
- _zipped_extension = '.xol'
- _unzipped_extension = None
- _infodir = 'library'
-
- def __init__(self, path):
- Bundle.__init__(self, path)
-
- self._locale = None
- self._l10n = None
- self._category = None
- self._name = None
- self._subcategory = None
- self._category_class = None
- self._category_icon = None
- self._library_version = None
- self._bundle_class = None
- self._activity_start = None
-
- info_file = self.get_file('library/library.info')
- if info_file is None:
- raise MalformedBundleException('No library.info file')
- self._parse_info(info_file)
-
- if (self.get_file('index.html') is None and
- self.get_file('library/library.xml') is None):
- raise MalformedBundleException(
- 'Content bundle %s has neither index.html nor library.xml' %
- self._path)
-
- def _parse_info(self, info_file):
- cp = ConfigParser()
- cp.readfp(info_file)
-
- section = 'Library'
-
- if cp.has_option(section, 'host_version'):
- version = cp.get(section, 'host_version')
- try:
- if int(version) != 1:
- raise MalformedBundleException(
- 'Content bundle %s has unknown host_version number %s' %
- (self._path, version))
- except ValueError:
- raise MalformedBundleException(
- 'Content bundle %s has invalid host_version number %s' %
- (self._path, version))
-
- if cp.has_option(section, 'name'):
- self._name = cp.get(section, 'name')
- else:
- raise MalformedBundleException(
- 'Content bundle %s does not specify a name' % self._path)
-
- if cp.has_option(section, 'library_version'):
- version = cp.get(section, 'library_version')
- try:
- self._library_version = int(version)
- except ValueError:
- raise MalformedBundleException(
- 'Content bundle %s has invalid version number %s' %
- (self._path, version))
-
- if cp.has_option(section, 'l10n'):
- l10n = cp.get(section, 'l10n')
- if l10n == 'true':
- self._l10n = True
- elif l10n == 'false':
- self._l10n = False
- else:
- raise MalformedBundleException(
- 'Content bundle %s has invalid l10n key "%s"' %
- (self._path, l10n))
- else:
- raise MalformedBundleException(
- 'Content bundle %s does not specify if it is localized' %
- self._path)
-
- if cp.has_option(section, 'locale'):
- self._locale = cp.get(section, 'locale')
- else:
- raise MalformedBundleException(
- 'Content bundle %s does not specify a locale' % self._path)
-
- if cp.has_option(section, 'category'):
- self._category = cp.get(section, 'category')
- else:
- raise MalformedBundleException(
- 'Content bundle %s does not specify a category' % self._path)
-
- if cp.has_option(section, 'category_icon'):
- self._category_icon = cp.get(section, 'category_icon')
- else:
- self._category_icon = None
-
- if cp.has_option(section, 'category_class'):
- self._category_class = cp.get(section, 'category_class')
- else:
- self._category_class = None
-
- if cp.has_option(section, 'subcategory'):
- self._subcategory = cp.get(section, 'subcategory')
- else:
- self._subcategory = None
-
- if cp.has_option(section, 'bundle_class'):
- self._bundle_class = cp.get(section, 'bundle_class')
- else:
- self._bundle_class = None
-
- if cp.has_option(section, 'activity_start'):
- self._activity_start = cp.get(section, 'activity_start')
- else:
- self._activity_start = 'index.html'
-
- def get_name(self):
- return self._name
-
- def get_library_version(self):
- return self._library_version
-
- def get_l10n(self):
- return self._l10n
-
- def get_locale(self):
- return self._locale
-
- def get_category(self):
- return self._category
-
- def get_category_icon(self):
- return self._category_icon
-
- def get_category_class(self):
- return self._category_class
-
- def get_subcategory(self):
- return self._subcategory
-
- def get_bundle_class(self):
- return self._bundle_class
-
- def get_activity_start(self):
- return self._activity_start
-
- def _run_indexer(self):
- xdg_data_dirs = os.getenv('XDG_DATA_DIRS',
- '/usr/local/share/:/usr/share/')
- for path in xdg_data_dirs.split(':'):
- indexer = os.path.join(path, 'library-common', 'make_index.py')
- if os.path.exists(indexer):
- os.spawnlp(os.P_WAIT, 'python', 'python', indexer)
-
- def get_root_dir(self):
- return os.path.join(env.get_user_library_path(), self._zip_root_dir)
-
- def get_start_path(self):
- return os.path.join(self.get_root_dir(), self._activity_start)
-
- def get_start_uri(self):
- return "file://" + urllib.pathname2url(self.get_start_path())
-
- def is_installed(self):
- if self._zip_file is None:
- return True
- elif os.path.isdir(self.get_root_dir()):
- return True
- else:
- return False
-
- def install(self):
- self._unzip(env.get_user_library_path())
- self._run_indexer()
-
- def uninstall(self):
- if self._zip_file is None:
- if not self.is_installed():
- raise NotInstalledException
- install_dir = self._path
- else:
- install_dir = os.path.join(self.get_root_dir())
- self._uninstall(install_dir)
- self._run_indexer()
diff --git a/src/sugar/datastore/Makefile.am b/src/sugar/datastore/Makefile.am
deleted file mode 100644
index a5f16b7..0000000
--- a/src/sugar/datastore/Makefile.am
+++ /dev/null
@@ -1,5 +0,0 @@
-sugardir = $(pythondir)/sugar/datastore
-sugar_PYTHON = \
- __init__.py \
- dbus_helpers.py \
- datastore.py
diff --git a/src/sugar/datastore/__init__.py b/src/sugar/datastore/__init__.py
deleted file mode 100644
index bdb658b..0000000
--- a/src/sugar/datastore/__init__.py
+++ /dev/null
@@ -1,16 +0,0 @@
-# Copyright (C) 2007, One Laptop Per Child
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2 of the License, or (at your option) any later version.
-#
-# This library 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
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the
-# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-# Boston, MA 02111-1307, USA.
diff --git a/src/sugar/datastore/datastore.py b/src/sugar/datastore/datastore.py
deleted file mode 100644
index 80d5936..0000000
--- a/src/sugar/datastore/datastore.py
+++ /dev/null
@@ -1,254 +0,0 @@
-# Copyright (C) 2007, One Laptop Per Child
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2 of the License, or (at your option) any later version.
-#
-# This library 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
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the
-# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-# Boston, MA 02111-1307, USA.
-
-"""
-STABLE.
-"""
-
-import logging
-import time
-from datetime import datetime
-import os
-
-import gobject
-
-from sugar.datastore import dbus_helpers
-from sugar import mime
-
-class DSMetadata(gobject.GObject):
- __gsignals__ = {
- 'updated': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
- ([]))
- }
-
- def __init__(self, props=None):
- gobject.GObject.__init__(self)
- if not props:
- self._props = {}
- else:
- self._props = props
-
- default_keys = ['activity', 'activity_id',
- 'mime_type', 'title_set_by_user']
- for key in default_keys:
- if not self._props.has_key(key):
- self._props[key] = ''
-
- def __getitem__(self, key):
- return self._props[key]
-
- def __setitem__(self, key, value):
- if not self._props.has_key(key) or self._props[key] != value:
- self._props[key] = value
- self.emit('updated')
-
- def __delitem__(self, key):
- del self._props[key]
-
- def __contains__(self, key):
- return self._props.__contains__(key)
-
- def has_key(self, key):
- return self._props.has_key(key)
-
- def keys(self):
- return self._props.keys()
-
- def get_dictionary(self):
- return self._props
-
- def copy(self):
- return DSMetadata(self._props.copy())
-
- def get(self, key, default=None):
- if self._props.has_key(key):
- return self._props[key]
- else:
- return default
-
-class DSObject(object):
- def __init__(self, object_id, metadata=None, file_path=None):
- self.object_id = object_id
- self._metadata = metadata
- self._file_path = file_path
- self._destroyed = False
- self._owns_file = False
-
- def get_metadata(self):
- if self._metadata is None and not self.object_id is None:
- metadata = DSMetadata(dbus_helpers.get_properties(self.object_id))
- self._metadata = metadata
- return self._metadata
-
- def set_metadata(self, metadata):
- if self._metadata != metadata:
- self._metadata = metadata
-
- metadata = property(get_metadata, set_metadata)
-
- def get_file_path(self, fetch=True):
- if fetch and self._file_path is None and not self.object_id is None:
- self.set_file_path(dbus_helpers.get_filename(self.object_id))
- self._owns_file = True
- return self._file_path
-
- def set_file_path(self, file_path):
- if self._file_path != file_path:
- if self._file_path and self._owns_file:
- if os.path.isfile(self._file_path):
- os.remove(self._file_path)
- self._owns_file = False
- self._file_path = file_path
-
- file_path = property(get_file_path, set_file_path)
-
- def destroy(self):
- if self._destroyed:
- logging.warning('This DSObject has already been destroyed!.')
- return
- self._destroyed = True
- if self._file_path and self._owns_file:
- if os.path.isfile(self._file_path):
- os.remove(self._file_path)
- self._owns_file = False
- self._file_path = None
-
- def __del__(self):
- if not self._destroyed:
- logging.warning('DSObject was deleted without cleaning up first. ' \
- 'Call DSObject.destroy() before disposing it.')
- self.destroy()
-
- def copy(self):
- return DSObject(None, self._metadata.copy(), self._file_path)
-
-def get(object_id):
- logging.debug('datastore.get')
- metadata = dbus_helpers.get_properties(object_id)
-
- ds_object = DSObject(object_id, DSMetadata(metadata), None)
- # TODO: register the object for updates
- return ds_object
-
-def create():
- metadata = DSMetadata()
- metadata['mtime'] = datetime.now().isoformat()
- metadata['timestamp'] = int(time.time())
- return DSObject(object_id=None, metadata=metadata, file_path=None)
-
-def write(ds_object, update_mtime=True, transfer_ownership=False,
- reply_handler=None, error_handler=None, timeout=-1):
- logging.debug('datastore.write')
-
- properties = ds_object.metadata.get_dictionary().copy()
-
- if update_mtime:
- properties['mtime'] = datetime.now().isoformat()
- properties['timestamp'] = int(time.time())
-
- file_path = ds_object.get_file_path(fetch=False)
- if file_path is None:
- file_path = ''
-
- # FIXME: this func will be sync for creates regardless of the handlers
- # supplied. This is very bad API, need to decide what to do here.
- if ds_object.object_id:
- dbus_helpers.update(ds_object.object_id,
- properties,
- file_path,
- transfer_ownership,
- reply_handler=reply_handler,
- error_handler=error_handler,
- timeout=timeout)
- else:
- if reply_handler or error_handler:
- logging.warning('datastore.write() cannot currently be called' \
- 'async for creates, see ticket 3071')
- ds_object.object_id = dbus_helpers.create(properties,
- file_path,
- transfer_ownership)
- ds_object.metadata['uid'] = ds_object.object_id
- # TODO: register the object for updates
- logging.debug('Written object %s to the datastore.' % ds_object.object_id)
-
-def delete(object_id):
- logging.debug('datastore.delete')
- dbus_helpers.delete(object_id)
-
-def find(query, sorting=None, limit=None, offset=None, properties=None,
- reply_handler=None, error_handler=None):
-
- query = query.copy()
-
- if properties is None:
- properties = []
-
- if sorting:
- query['order_by'] = sorting
- if limit:
- query['limit'] = limit
- if offset:
- query['offset'] = offset
-
- props_list, total_count = dbus_helpers.find(query, properties,
- reply_handler, error_handler)
-
- objects = []
- for props in props_list:
- object_id = props['uid']
- del props['uid']
-
- ds_object = DSObject(object_id, DSMetadata(props), None)
- objects.append(ds_object)
-
- return objects, total_count
-
-def copy(jobject, mount_point):
-
- new_jobject = jobject.copy()
- new_jobject.metadata['mountpoint'] = mount_point
-
- if jobject.metadata.has_key('title'):
- filename = jobject.metadata['title']
-
- if jobject.metadata.has_key('mime_type'):
- mime_type = jobject.metadata['mime_type']
- extension = mime.get_primary_extension(mime_type)
- if extension:
- filename += '.' + extension
-
- new_jobject.metadata['suggested_filename'] = filename
-
- # this will cause the file be retrieved from the DS
- new_jobject.file_path = jobject.file_path
-
- write(new_jobject)
-
-def mount(uri, options, timeout=-1):
- return dbus_helpers.mount(uri, options, timeout=timeout)
-
-def unmount(mount_point_id):
- dbus_helpers.unmount(mount_point_id)
-
-def mounts():
- return dbus_helpers.mounts()
-
-def complete_indexing():
- return dbus_helpers.complete_indexing()
-
-def get_unique_values(key):
- return dbus_helpers.get_unique_values(key)
diff --git a/src/sugar/datastore/dbus_helpers.py b/src/sugar/datastore/dbus_helpers.py
deleted file mode 100644
index 9115382..0000000
--- a/src/sugar/datastore/dbus_helpers.py
+++ /dev/null
@@ -1,104 +0,0 @@
-# Copyright (C) 2006-2007 Red Hat, Inc.
-# Copyright (C) 2007, One Laptop Per Child
-#
-# This library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2 of the License, or (at your option) any later version.
-#
-# This library 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
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with this library; if not, write to the
-# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-# Boston, MA 02111-1307, USA.
-
-"""
-UNSTABLE. Should be internal to the datastore module.
-"""
-
-import logging
-
-import dbus
-import dbus.glib
-
-DS_DBUS_SERVICE = "org.laptop.sugar.DataStore"
-DS_DBUS_INTERFACE = "org.laptop.sugar.DataStore"
-DS_DBUS_PATH = "/org/laptop/sugar/DataStore"
-
-_data_store = None
-
-def _get_data_store():
- global _data_store
-
- if not _data_store:
- _bus = dbus.SessionBus()
- _data_store = dbus.Interface(_bus.get_object(DS_DBUS_SERVICE,
- DS_DBUS_PATH),
- DS_DBUS_INTERFACE)
- return _data_store
-
-def create(properties, filename, transfer_ownership=False):
- object_id = _get_data_store().create(dbus.Dictionary(properties), filename,
- transfer_ownership)
- logging.debug('dbus_helpers.create: ' + object_id)
- return object_id
-
-def update(uid, properties, filename, transfer_ownership=False,
- reply_handler=None, error_handler=None, timeout=-1):
- debug_props = properties.copy()
- if debug_props.has_key("preview"):
- debug_props["preview"] = "<omitted>"
- logging.debug('dbus_helpers.update: %s, %s, %s, %s' %
- (uid, filename, debug_props, transfer_ownership))
- if reply_handler and error_handler:
- _get_data_store().update(uid, dbus.Dictionary(properties), filename,
- transfer_ownership,
- reply_handler=reply_handler,
- error_handler=error_handler,
- timeout=timeout)
- else:
- _get_data_store().update(uid, dbus.Dictionary(properties),
- filename, transfer_ownership)
-
-def delete(uid):
- logging.debug('dbus_helpers.delete: %r' % uid)
- _get_data_store().delete(uid)
-
-def get_properties(uid):
- logging.debug('dbus_helpers.get_properties: %s' % uid)
- return _get_data_store().get_properties(uid, byte_arrays=True)
-
-def get_filename(uid):
- filename = _get_data_store().get_filename(uid)
- logging.debug('dbus_helpers.get_filename: %s, %s' % (uid, filename))
- return filename
-
-def find(query, properties, reply_handler, error_handler):
- logging.debug('dbus_helpers.find: %r %r' % (query, properties))
- if reply_handler and error_handler:
- return _get_data_store().find(query, properties,
- reply_handler=reply_handler, error_handler=error_handler,
- byte_arrays=True)
- else:
- return _get_data_store().find(query, properties, byte_arrays=True)
-
-def mount(uri, options, timeout=-1):
- return _get_data_store().mount(uri, options, timeout=timeout)
-
-def unmount(mount_point_id):
- _get_data_store().unmount(mount_point_id)
-
-def mounts():
- return _get_data_store().mounts()
-
-def get_unique_values(key):
- return _get_data_store().get_uniquevaluesfor(
- key, dbus.Dictionary({}, signature='ss'))
-
-def complete_indexing():
- return _get_data_store().complete_indexing()
-
diff --git a/src/sugar/eggaccelerators.c b/src/sugar/eggaccelerators.c
deleted file mode 100644
index 0a39d51..0000000
--- a/src/sugar/eggaccelerators.c
+++ /dev/null
@@ -1,702 +0,0 @@
-/* eggaccelerators.c
- * Copyright (C) 2002 Red Hat, Inc.; Copyright 1998, 2001 Tim Janik
- * Developed by Havoc Pennington, Tim Janik
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library 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
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include "eggaccelerators.h"
-
-#include <stdlib.h>
-#include <string.h>
-#include <gdk/gdkx.h>
-#include <gdk/gdkkeysyms.h>
-
-enum
-{
- EGG_MODMAP_ENTRY_SHIFT = 0,
- EGG_MODMAP_ENTRY_LOCK = 1,
- EGG_MODMAP_ENTRY_CONTROL = 2,
- EGG_MODMAP_ENTRY_MOD1 = 3,
- EGG_MODMAP_ENTRY_MOD2 = 4,
- EGG_MODMAP_ENTRY_MOD3 = 5,
- EGG_MODMAP_ENTRY_MOD4 = 6,
- EGG_MODMAP_ENTRY_MOD5 = 7,
- EGG_MODMAP_ENTRY_LAST = 8
-};
-
-#define MODMAP_ENTRY_TO_MODIFIER(x) (1 << (x))
-
-typedef struct
-{
- EggVirtualModifierType mapping[EGG_MODMAP_ENTRY_LAST];
-
-} EggModmap;
-
-const EggModmap* egg_keymap_get_modmap (GdkKeymap *keymap);
-
-static inline gboolean
-is_alt (const gchar *string)
-{
- return ((string[0] == '<') &&
- (string[1] == 'a' || string[1] == 'A') &&
- (string[2] == 'l' || string[2] == 'L') &&
- (string[3] == 't' || string[3] == 'T') &&
- (string[4] == '>'));
-}
-
-static inline gboolean
-is_ctl (const gchar *string)
-{
- return ((string[0] == '<') &&
- (string[1] == 'c' || string[1] == 'C') &&
- (string[2] == 't' || string[2] == 'T') &&
- (string[3] == 'l' || string[3] == 'L') &&
- (string[4] == '>'));
-}
-
-static inline gboolean
-is_modx (const gchar *string)
-{
- return ((string[0] == '<') &&
- (string[1] == 'm' || string[1] == 'M') &&
- (string[2] == 'o' || string[2] == 'O') &&
- (string[3] == 'd' || string[3] == 'D') &&
- (string[4] >= '1' && string[4] <= '5') &&
- (string[5] == '>'));
-}
-
-static inline gboolean
-is_ctrl (const gchar *string)
-{
- return ((string[0] == '<') &&
- (string[1] == 'c' || string[1] == 'C') &&
- (string[2] == 't' || string[2] == 'T') &&
- (string[3] == 'r' || string[3] == 'R') &&
- (string[4] == 'l' || string[4] == 'L') &&
- (string[5] == '>'));
-}
-
-static inline gboolean
-is_shft (const gchar *string)
-{
- return ((string[0] == '<') &&
- (string[1] == 's' || string[1] == 'S') &&
- (string[2] == 'h' || string[2] == 'H') &&
- (string[3] == 'f' || string[3] == 'F') &&
- (string[4] == 't' || string[4] == 'T') &&
- (string[5] == '>'));
-}
-
-static inline gboolean
-is_shift (const gchar *string)
-{
- return ((string[0] == '<') &&
- (string[1] == 's' || string[1] == 'S') &&
- (string[2] == 'h' || string[2] == 'H') &&
- (string[3] == 'i' || string[3] == 'I') &&
- (string[4] == 'f' || string[4] == 'F') &&
- (string[5] == 't' || string[5] == 'T') &&
- (string[6] == '>'));
-}
-
-static inline gboolean
-is_control (const gchar *string)
-{
- return ((string[0] == '<') &&
- (string[1] == 'c' || string[1] == 'C') &&
- (string[2] == 'o' || string[2] == 'O') &&
- (string[3] == 'n' || string[3] == 'N') &&
- (string[4] == 't' || string[4] == 'T') &&
- (string[5] == 'r' || string[5] == 'R') &&
- (string[6] == 'o' || string[6] == 'O') &&
- (string[7] == 'l' || string[7] == 'L') &&
- (string[8] == '>'));
-}
-
-static inline gboolean
-is_release (const gchar *string)
-{
- return ((string[0] == '<') &&
- (string[1] == 'r' || string[1] == 'R') &&
- (string[2] == 'e' || string[2] == 'E') &&
- (string[3] == 'l' || string[3] == 'L') &&
- (string[4] == 'e' || string[4] == 'E') &&
- (string[5] == 'a' || string[5] == 'A') &&
- (string[6] == 's' || string[6] == 'S') &&
- (string[7] == 'e' || string[7] == 'E') &&
- (string[8] == '>'));
-}
-
-static inline gboolean
-is_meta (const gchar *string)
-{
- return ((string[0] == '<') &&
- (string[1] == 'm' || string[1] == 'M') &&
- (string[2] == 'e' || string[2] == 'E') &&
- (string[3] == 't' || string[3] == 'T') &&
- (string[4] == 'a' || string[4] == 'A') &&
- (string[5] == '>'));
-}
-
-static inline gboolean
-is_super (const gchar *string)
-{
- return ((string[0] == '<') &&
- (string[1] == 's' || string[1] == 'S') &&
- (string[2] == 'u' || string[2] == 'U') &&
- (string[3] == 'p' || string[3] == 'P') &&
- (string[4] == 'e' || string[4] == 'E') &&
- (string[5] == 'r' || string[5] == 'R') &&
- (string[6] == '>'));
-}
-
-static inline gboolean
-is_hyper (const gchar *string)
-{
- return ((string[0] == '<') &&
- (string[1] == 'h' || string[1] == 'H') &&
- (string[2] == 'y' || string[2] == 'Y') &&
- (string[3] == 'p' || string[3] == 'P') &&
- (string[4] == 'e' || string[4] == 'E') &&
- (string[5] == 'r' || string[5] == 'R') &&
- (string[6] == '>'));
-}
-
-static inline gboolean
-is_keycode (const gchar *string)
-{
- return ((string[0] == '0') &&
- (string[1] == 'x'));
-}
-
-/**
- * egg_accelerator_parse_virtual:
- * @accelerator: string representing an accelerator
- * @accelerator_key: return location for accelerator keyval
- * @accelerator_mods: return location for accelerator modifier mask
- *
- * Parses a string representing a virtual accelerator. The format
- * looks like "&lt;Control&gt;a" or "&lt;Shift&gt;&lt;Alt&gt;F1" or
- * "&lt;Release&gt;z" (the last one is for key release). The parser
- * is fairly liberal and allows lower or upper case, and also
- * abbreviations such as "&lt;Ctl&gt;" and "&lt;Ctrl&gt;".
- *
- * If the parse fails, @accelerator_key and @accelerator_mods will
- * be set to 0 (zero) and %FALSE will be returned. If the string contains
- * only modifiers, @accelerator_key will be set to 0 but %TRUE will be
- * returned.
- *
- * The virtual vs. concrete accelerator distinction is a relic of
- * how the X Window System works; there are modifiers Mod2-Mod5 that
- * can represent various keyboard keys (numlock, meta, hyper, etc.),
- * the virtual modifier represents the keyboard key, the concrete
- * modifier the actual Mod2-Mod5 bits in the key press event.
- *
- * Returns: %TRUE on success.
- */
-gboolean
-egg_accelerator_parse_virtual (const gchar *accelerator,
- guint *accelerator_key,
- guint *keycode,
- EggVirtualModifierType *accelerator_mods)
-{
- guint keyval;
- GdkModifierType mods;
- gint len;
- gboolean bad_keyval;
-
- if (accelerator_key)
- *accelerator_key = 0;
- if (accelerator_mods)
- *accelerator_mods = 0;
- if (keycode)
- *keycode = 0;
-
- g_return_val_if_fail (accelerator != NULL, FALSE);
-
- bad_keyval = FALSE;
-
- keyval = 0;
- mods = 0;
- len = strlen (accelerator);
- while (len)
- {
- if (*accelerator == '<')
- {
- if (len >= 9 && is_release (accelerator))
- {
- accelerator += 9;
- len -= 9;
- mods |= EGG_VIRTUAL_RELEASE_MASK;
- }
- else if (len >= 9 && is_control (accelerator))
- {
- accelerator += 9;
- len -= 9;
- mods |= EGG_VIRTUAL_CONTROL_MASK;
- }
- else if (len >= 7 && is_shift (accelerator))
- {
- accelerator += 7;
- len -= 7;
- mods |= EGG_VIRTUAL_SHIFT_MASK;
- }
- else if (len >= 6 && is_shft (accelerator))
- {
- accelerator += 6;
- len -= 6;
- mods |= EGG_VIRTUAL_SHIFT_MASK;
- }
- else if (len >= 6 && is_ctrl (accelerator))
- {
- accelerator += 6;
- len -= 6;
- mods |= EGG_VIRTUAL_CONTROL_MASK;
- }
- else if (len >= 6 && is_modx (accelerator))
- {
- static const guint mod_vals[] = {
- EGG_VIRTUAL_ALT_MASK, EGG_VIRTUAL_MOD2_MASK, EGG_VIRTUAL_MOD3_MASK,
- EGG_VIRTUAL_MOD4_MASK, EGG_VIRTUAL_MOD5_MASK
- };
-
- len -= 6;
- accelerator += 4;
- mods |= mod_vals[*accelerator - '1'];
- accelerator += 2;
- }
- else if (len >= 5 && is_ctl (accelerator))
- {
- accelerator += 5;
- len -= 5;
- mods |= EGG_VIRTUAL_CONTROL_MASK;
- }
- else if (len >= 5 && is_alt (accelerator))
- {
- accelerator += 5;
- len -= 5;
- mods |= EGG_VIRTUAL_ALT_MASK;
- }
- else if (len >= 6 && is_meta (accelerator))
- {
- accelerator += 6;
- len -= 6;
- mods |= EGG_VIRTUAL_META_MASK;
- }
- else if (len >= 7 && is_hyper (accelerator))
- {
- accelerator += 7;
- len -= 7;
- mods |= EGG_VIRTUAL_HYPER_MASK;
- }
- else if (len >= 7 && is_super (accelerator))
- {
- accelerator += 7;
- len -= 7;
- mods |= EGG_VIRTUAL_SUPER_MASK;
- }
- else
- {
- gchar last_ch;
-
- last_ch = *accelerator;
- while (last_ch && last_ch != '>')
- {
- last_ch = *accelerator;
- accelerator += 1;
- len -= 1;
- }
- }
- }
- else
- {
- keyval = gdk_keyval_from_name (accelerator);
-
- if (keyval == 0)
- {
- /* If keyval is 0, than maybe it's a keycode. Check for 0x## */
- if (len >= 4 && is_keycode (accelerator))
- {
- char keystring[5];
- gchar *endptr;
- gint tmp_keycode;
-
- memcpy (keystring, accelerator, 4);
- keystring [4] = '\000';
-
- tmp_keycode = strtol (keystring, &endptr, 16);
-
- if (endptr == NULL || *endptr != '\000')
- {
- bad_keyval = TRUE;
- }
- else if (keycode != NULL)
- {
- *keycode = tmp_keycode;
- /* 0x00 is an invalid keycode too. */
- if (*keycode == 0)
- bad_keyval = TRUE;
- }
- }
- } else if (keycode != NULL)
- *keycode = XKeysymToKeycode (GDK_DISPLAY(), keyval);
-
- accelerator += len;
- len -= len;
- }
- }
-
- if (accelerator_key)
- *accelerator_key = gdk_keyval_to_lower (keyval);
- if (accelerator_mods)
- *accelerator_mods = mods;
-
- return !bad_keyval;
-}
-
-
-/**
- * egg_virtual_accelerator_name:
- * @accelerator_key: accelerator keyval
- * @accelerator_mods: accelerator modifier mask
- * @returns: a newly-allocated accelerator name
- *
- * Converts an accelerator keyval and modifier mask
- * into a string parseable by egg_accelerator_parse_virtual().
- * For example, if you pass in #GDK_q and #EGG_VIRTUAL_CONTROL_MASK,
- * this function returns "&lt;Control&gt;q".
- *
- * The caller of this function must free the returned string.
- */
-gchar*
-egg_virtual_accelerator_name (guint accelerator_key,
- guint keycode,
- EggVirtualModifierType accelerator_mods)
-{
- static const gchar text_release[] = "<Release>";
- static const gchar text_shift[] = "<Shift>";
- static const gchar text_control[] = "<Control>";
- static const gchar text_mod1[] = "<Alt>";
- static const gchar text_mod2[] = "<Mod2>";
- static const gchar text_mod3[] = "<Mod3>";
- static const gchar text_mod4[] = "<Mod4>";
- static const gchar text_mod5[] = "<Mod5>";
- static const gchar text_meta[] = "<Meta>";
- static const gchar text_super[] = "<Super>";
- static const gchar text_hyper[] = "<Hyper>";
- guint l;
- gchar *keyval_name;
- gchar *accelerator;
-
- accelerator_mods &= EGG_VIRTUAL_MODIFIER_MASK;
-
- if (!accelerator_key)
- {
- keyval_name = g_strdup_printf ("0x%02x", keycode);
- }
- else
- {
- keyval_name = gdk_keyval_name (gdk_keyval_to_lower (accelerator_key));
- if (!keyval_name)
- keyval_name = "";
- }
-
- l = 0;
- if (accelerator_mods & EGG_VIRTUAL_RELEASE_MASK)
- l += sizeof (text_release) - 1;
- if (accelerator_mods & EGG_VIRTUAL_SHIFT_MASK)
- l += sizeof (text_shift) - 1;
- if (accelerator_mods & EGG_VIRTUAL_CONTROL_MASK)
- l += sizeof (text_control) - 1;
- if (accelerator_mods & EGG_VIRTUAL_ALT_MASK)
- l += sizeof (text_mod1) - 1;
- if (accelerator_mods & EGG_VIRTUAL_MOD2_MASK)
- l += sizeof (text_mod2) - 1;
- if (accelerator_mods & EGG_VIRTUAL_MOD3_MASK)
- l += sizeof (text_mod3) - 1;
- if (accelerator_mods & EGG_VIRTUAL_MOD4_MASK)
- l += sizeof (text_mod4) - 1;
- if (accelerator_mods & EGG_VIRTUAL_MOD5_MASK)
- l += sizeof (text_mod5) - 1;
- if (accelerator_mods & EGG_VIRTUAL_META_MASK)
- l += sizeof (text_meta) - 1;
- if (accelerator_mods & EGG_VIRTUAL_HYPER_MASK)
- l += sizeof (text_hyper) - 1;
- if (accelerator_mods & EGG_VIRTUAL_SUPER_MASK)
- l += sizeof (text_super) - 1;
- l += strlen (keyval_name);
-
- accelerator = g_new (gchar, l + 1);
-
- l = 0;
- accelerator[l] = 0;
- if (accelerator_mods & EGG_VIRTUAL_RELEASE_MASK)
- {
- strcpy (accelerator + l, text_release);
- l += sizeof (text_release) - 1;
- }
- if (accelerator_mods & EGG_VIRTUAL_SHIFT_MASK)
- {
- strcpy (accelerator + l, text_shift);
- l += sizeof (text_shift) - 1;
- }
- if (accelerator_mods & EGG_VIRTUAL_CONTROL_MASK)
- {
- strcpy (accelerator + l, text_control);
- l += sizeof (text_control) - 1;
- }
- if (accelerator_mods & EGG_VIRTUAL_ALT_MASK)
- {
- strcpy (accelerator + l, text_mod1);
- l += sizeof (text_mod1) - 1;
- }
- if (accelerator_mods & EGG_VIRTUAL_MOD2_MASK)
- {
- strcpy (accelerator + l, text_mod2);
- l += sizeof (text_mod2) - 1;
- }
- if (accelerator_mods & EGG_VIRTUAL_MOD3_MASK)
- {
- strcpy (accelerator + l, text_mod3);
- l += sizeof (text_mod3) - 1;
- }
- if (accelerator_mods & EGG_VIRTUAL_MOD4_MASK)
- {
- strcpy (accelerator + l, text_mod4);
- l += sizeof (text_mod4) - 1;
- }
- if (accelerator_mods & EGG_VIRTUAL_MOD5_MASK)
- {
- strcpy (accelerator + l, text_mod5);
- l += sizeof (text_mod5) - 1;
- }
- if (accelerator_mods & EGG_VIRTUAL_META_MASK)
- {
- strcpy (accelerator + l, text_meta);
- l += sizeof (text_meta) - 1;
- }
- if (accelerator_mods & EGG_VIRTUAL_HYPER_MASK)
- {
- strcpy (accelerator + l, text_hyper);
- l += sizeof (text_hyper) - 1;
- }
- if (accelerator_mods & EGG_VIRTUAL_SUPER_MASK)
- {
- strcpy (accelerator + l, text_super);
- l += sizeof (text_super) - 1;
- }
-
- strcpy (accelerator + l, keyval_name);
-
- return accelerator;
-}
-
-void
-egg_keymap_resolve_virtual_modifiers (GdkKeymap *keymap,
- EggVirtualModifierType virtual_mods,
- GdkModifierType *concrete_mods)
-{
- GdkModifierType concrete;
- int i;
- const EggModmap *modmap;
-
- g_return_if_fail (GDK_IS_KEYMAP (keymap));
- g_return_if_fail (concrete_mods != NULL);
-
- modmap = egg_keymap_get_modmap (keymap);
-
- /* Not so sure about this algorithm. */
-
- concrete = 0;
- i = 0;
- while (i < EGG_MODMAP_ENTRY_LAST)
- {
- if (modmap->mapping[i] & virtual_mods)
- concrete |= (1 << i);
-
- ++i;
- }
-
- *concrete_mods = concrete;
-}
-
-void
-egg_keymap_virtualize_modifiers (GdkKeymap *keymap,
- GdkModifierType concrete_mods,
- EggVirtualModifierType *virtual_mods)
-{
- GdkModifierType virtual;
- int i;
- const EggModmap *modmap;
-
- g_return_if_fail (GDK_IS_KEYMAP (keymap));
- g_return_if_fail (virtual_mods != NULL);
-
- modmap = egg_keymap_get_modmap (keymap);
-
- /* Not so sure about this algorithm. */
-
- virtual = 0;
- i = 0;
- while (i < EGG_MODMAP_ENTRY_LAST)
- {
- if ((1 << i) & concrete_mods)
- {
- EggVirtualModifierType cleaned;
-
- cleaned = modmap->mapping[i] & ~(EGG_VIRTUAL_MOD2_MASK |
- EGG_VIRTUAL_MOD3_MASK |
- EGG_VIRTUAL_MOD4_MASK |
- EGG_VIRTUAL_MOD5_MASK);
-
- if (cleaned != 0)
- {
- virtual |= cleaned;
- }
- else
- {
- /* Rather than dropping mod2->mod5 if not bound,
- * go ahead and use the concrete names
- */
- virtual |= modmap->mapping[i];
- }
- }
-
- ++i;
- }
-
- *virtual_mods = virtual;
-}
-
-static void
-reload_modmap (GdkKeymap *keymap,
- EggModmap *modmap)
-{
- XModifierKeymap *xmodmap;
- int map_size;
- int i;
-
- /* FIXME multihead */
- xmodmap = XGetModifierMapping (gdk_x11_get_default_xdisplay ());
-
- memset (modmap->mapping, 0, sizeof (modmap->mapping));
-
- /* there are 8 modifiers, and the first 3 are shift, shift lock,
- * and control
- */
- map_size = 8 * xmodmap->max_keypermod;
- i = 3 * xmodmap->max_keypermod;
- while (i < map_size)
- {
- /* get the key code at this point in the map,
- * see if its keysym is one we're interested in
- */
- int keycode = xmodmap->modifiermap[i];
- GdkKeymapKey *keys;
- guint *keyvals;
- int n_entries;
- int j;
- EggVirtualModifierType mask;
-
- keys = NULL;
- keyvals = NULL;
- n_entries = 0;
-
- gdk_keymap_get_entries_for_keycode (keymap,
- keycode,
- &keys, &keyvals, &n_entries);
-
- mask = 0;
- j = 0;
- while (j < n_entries)
- {
- if (keyvals[j] == GDK_Num_Lock)
- mask |= EGG_VIRTUAL_NUM_LOCK_MASK;
- else if (keyvals[j] == GDK_Scroll_Lock)
- mask |= EGG_VIRTUAL_SCROLL_LOCK_MASK;
- else if (keyvals[j] == GDK_Meta_L ||
- keyvals[j] == GDK_Meta_R)
- mask |= EGG_VIRTUAL_META_MASK;
- else if (keyvals[j] == GDK_Hyper_L ||
- keyvals[j] == GDK_Hyper_R)
- mask |= EGG_VIRTUAL_HYPER_MASK;
- else if (keyvals[j] == GDK_Super_L ||
- keyvals[j] == GDK_Super_R)
- mask |= EGG_VIRTUAL_SUPER_MASK;
- else if (keyvals[j] == GDK_Mode_switch)
- mask |= EGG_VIRTUAL_MODE_SWITCH_MASK;
-
- ++j;
- }
-
- /* Mod1Mask is 1 << 3 for example, i.e. the
- * fourth modifier, i / keyspermod is the modifier
- * index
- */
- modmap->mapping[i/xmodmap->max_keypermod] |= mask;
-
- g_free (keyvals);
- g_free (keys);
-
- ++i;
- }
-
- /* Add in the not-really-virtual fixed entries */
- modmap->mapping[EGG_MODMAP_ENTRY_SHIFT] |= EGG_VIRTUAL_SHIFT_MASK;
- modmap->mapping[EGG_MODMAP_ENTRY_CONTROL] |= EGG_VIRTUAL_CONTROL_MASK;
- modmap->mapping[EGG_MODMAP_ENTRY_LOCK] |= EGG_VIRTUAL_LOCK_MASK;
- modmap->mapping[EGG_MODMAP_ENTRY_MOD1] |= EGG_VIRTUAL_ALT_MASK;
- modmap->mapping[EGG_MODMAP_ENTRY_MOD2] |= EGG_VIRTUAL_MOD2_MASK;
- modmap->mapping[EGG_MODMAP_ENTRY_MOD3] |= EGG_VIRTUAL_MOD3_MASK;
- modmap->mapping[EGG_MODMAP_ENTRY_MOD4] |= EGG_VIRTUAL_MOD4_MASK;
- modmap->mapping[EGG_MODMAP_ENTRY_MOD5] |= EGG_VIRTUAL_MOD5_MASK;
-
- XFreeModifiermap (xmodmap);
-}
-
-const EggModmap*
-egg_keymap_get_modmap (GdkKeymap *keymap)
-{
- EggModmap *modmap;
-
- /* This is all a hack, much simpler when we can just
- * modify GDK directly.
- */
-
- modmap = g_object_get_data (G_OBJECT (keymap),
- "egg-modmap");
-
- if (modmap == NULL)
- {
- modmap = g_new0 (EggModmap, 1);
-
- /* FIXME modify keymap change events with an event filter
- * and force a reload if we get one
- */
-
- reload_modmap (keymap, modmap);
-
- g_object_set_data_full (G_OBJECT (keymap),
- "egg-modmap",
- modmap,
- g_free);
- }
-
- g_assert (modmap != NULL);
-
- return modmap;
-}
diff --git a/src/sugar/eggaccelerators.h b/src/sugar/eggaccelerators.h
deleted file mode 100644
index d2276d2..0000000
--- a/src/sugar/eggaccelerators.h
+++ /dev/null
@@ -1,89 +0,0 @@
-/* eggaccelerators.h
- * Copyright (C) 2002 Red Hat, Inc.
- * Developed by Havoc Pennington
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library 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
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __EGG_ACCELERATORS_H__
-#define __EGG_ACCELERATORS_H__
-
-#include <gtk/gtkaccelgroup.h>
-#include <gdk/gdk.h>
-
-G_BEGIN_DECLS
-
-/* Where a value is also in GdkModifierType we coincide,
- * otherwise we don't overlap.
- */
-typedef enum
-{
- EGG_VIRTUAL_SHIFT_MASK = 1 << 0,
- EGG_VIRTUAL_LOCK_MASK = 1 << 1,
- EGG_VIRTUAL_CONTROL_MASK = 1 << 2,
-
- EGG_VIRTUAL_ALT_MASK = 1 << 3, /* fixed as Mod1 */
-
- EGG_VIRTUAL_MOD2_MASK = 1 << 4,
- EGG_VIRTUAL_MOD3_MASK = 1 << 5,
- EGG_VIRTUAL_MOD4_MASK = 1 << 6,
- EGG_VIRTUAL_MOD5_MASK = 1 << 7,
-
-#if 0
- GDK_BUTTON1_MASK = 1 << 8,
- GDK_BUTTON2_MASK = 1 << 9,
- GDK_BUTTON3_MASK = 1 << 10,
- GDK_BUTTON4_MASK = 1 << 11,
- GDK_BUTTON5_MASK = 1 << 12,
- /* 13, 14 are used by Xkb for the keyboard group */
-#endif
-
- EGG_VIRTUAL_META_MASK = 1 << 24,
- EGG_VIRTUAL_SUPER_MASK = 1 << 25,
- EGG_VIRTUAL_HYPER_MASK = 1 << 26,
- EGG_VIRTUAL_MODE_SWITCH_MASK = 1 << 27,
- EGG_VIRTUAL_NUM_LOCK_MASK = 1 << 28,
- EGG_VIRTUAL_SCROLL_LOCK_MASK = 1 << 29,
-
- /* Also in GdkModifierType */
- EGG_VIRTUAL_RELEASE_MASK = 1 << 30,
-
- /* 28-31 24-27 20-23 16-19 12-15 8-11 4-7 0-3
- * 7 f 0 0 0 0 f f
- */
- EGG_VIRTUAL_MODIFIER_MASK = 0x7f0000ff
-
-} EggVirtualModifierType;
-
-gboolean egg_accelerator_parse_virtual (const gchar *accelerator,
- guint *accelerator_key,
- guint *keycode,
- EggVirtualModifierType *accelerator_mods);
-void egg_keymap_resolve_virtual_modifiers (GdkKeymap *keymap,
- EggVirtualModifierType virtual_mods,
- GdkModifierType *concrete_mods);
-void egg_keymap_virtualize_modifiers (GdkKeymap *keymap,
- GdkModifierType concrete_mods,
- EggVirtualModifierType *virtual_mods);
-
-gchar* egg_virtual_accelerator_name (guint accelerator_key,
- guint keycode,
- EggVirtualModifierType accelerator_mods);
-
-G_END_DECLS
-
-
-#endif /* __EGG_ACCELERATORS_H__ */
diff --git a/src/sugar/eggdesktopfile.c b/src/sugar/eggdesktopfile.c
deleted file mode 100644
index eb28b9d..0000000
--- a/src/sugar/eggdesktopfile.c
+++ /dev/null
@@ -1,1437 +0,0 @@
-/* eggdesktopfile.c - Freedesktop.Org Desktop Files
- * Copyright (C) 2007 Novell, Inc.
- *
- * Based on gnome-desktop-item.c
- * Copyright (C) 1999, 2000 Red Hat Inc.
- * Copyright (C) 2001 George Lebl
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This library 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
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; see the file COPYING.LIB. If not,
- * write to the Free Software Foundation, Inc., 59 Temple Place -
- * Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "eggdesktopfile.h"
-
-#include <string.h>
-#include <unistd.h>
-
-#include <glib/gi18n.h>
-#include <gdk/gdk.h>
-#include <gtk/gtkwindow.h>
-#include <gdk/gdkx.h>
-
-struct EggDesktopFile {
- GKeyFile *key_file;
- char *source;
-
- char *name, *icon;
- EggDesktopFileType type;
- char document_code;
-};
-
-/**
- * egg_desktop_file_new:
- * @desktop_file_path: path to a Freedesktop-style Desktop file
- * @error: error pointer
- *
- * Creates a new #EggDesktopFile for @desktop_file.
- *
- * Return value: the new #EggDesktopFile, or %NULL on error.
- **/
-EggDesktopFile *
-egg_desktop_file_new (const char *desktop_file_path, GError **error)
-{
- GKeyFile *key_file;
-
- key_file = g_key_file_new ();
- if (!g_key_file_load_from_file (key_file, desktop_file_path, 0, error))
- {
- g_key_file_free (key_file);
- return NULL;
- }
-
- return egg_desktop_file_new_from_key_file (key_file, desktop_file_path,
- error);
-}
-
-/**
- * egg_desktop_file_new_from_data_dirs:
- * @desktop_file_path: relative path to a Freedesktop-style Desktop file
- * @error: error pointer
- *
- * Looks for @desktop_file_path in the paths returned from
- * g_get_user_data_dir() and g_get_system_data_dirs(), and creates
- * a new #EggDesktopFile from it.
- *
- * Return value: the new #EggDesktopFile, or %NULL on error.
- **/
-EggDesktopFile *
-egg_desktop_file_new_from_data_dirs (const char *desktop_file_path,
- GError **error)
-{
- EggDesktopFile *desktop_file;
- GKeyFile *key_file;
- char *full_path;
-
- key_file = g_key_file_new ();
- if (!g_key_file_load_from_data_dirs (key_file, desktop_file_path,
- &full_path, 0, error))
- {
- g_key_file_free (key_file);
- return NULL;
- }
-
- desktop_file = egg_desktop_file_new_from_key_file (key_file,
- full_path,
- error);
- g_free (full_path);
- return desktop_file;
-}
-
-/**
- * egg_desktop_file_new_from_key_file:
- * @key_file: a #GKeyFile representing a desktop file
- * @source: the path or URI that @key_file was loaded from, or %NULL
- * @error: error pointer
- *
- * Creates a new #EggDesktopFile for @key_file. Assumes ownership of
- * @key_file (on success or failure); you should consider @key_file to
- * be freed after calling this function.
- *
- * Return value: the new #EggDesktopFile, or %NULL on error.
- **/
-EggDesktopFile *
-egg_desktop_file_new_from_key_file (GKeyFile *key_file,
- const char *source,
- GError **error)
-{
- EggDesktopFile *desktop_file;
- char *version, *type;
-
- if (!g_key_file_has_group (key_file, EGG_DESKTOP_FILE_GROUP))
- {
- g_set_error (error, EGG_DESKTOP_FILE_ERROR,
- EGG_DESKTOP_FILE_ERROR_INVALID,
- _("File is not a valid .desktop file"));
- g_key_file_free (key_file);
- return NULL;
- }
-
- version = g_key_file_get_value (key_file, EGG_DESKTOP_FILE_GROUP,
- EGG_DESKTOP_FILE_KEY_VERSION,
- NULL);
- if (version)
- {
- double version_num;
- char *end;
-
- version_num = g_ascii_strtod (version, &end);
- if (*end)
- {
- g_warning ("Invalid Version string '%s' in %s",
- version, source ? source : "(unknown)");
- }
- else if (version_num > 1.0)
- {
- g_set_error (error, EGG_DESKTOP_FILE_ERROR,
- EGG_DESKTOP_FILE_ERROR_INVALID,
- _("Unrecognized desktop file Version '%s'"), version);
- g_free (version);
- g_key_file_free (key_file);
- return NULL;
- }
- else
- g_free (version);
- }
-
- desktop_file = g_new0 (EggDesktopFile, 1);
- desktop_file->key_file = key_file;
-
- if (g_path_is_absolute (source))
- desktop_file->source = g_filename_to_uri (source, NULL, NULL);
- else
- desktop_file->source = g_strdup (source);
-
- desktop_file->name = g_key_file_get_string (key_file, EGG_DESKTOP_FILE_GROUP,
- EGG_DESKTOP_FILE_KEY_NAME, error);
- if (!desktop_file->name)
- {
- egg_desktop_file_free (desktop_file);
- return NULL;
- }
-
- type = g_key_file_get_string (key_file, EGG_DESKTOP_FILE_GROUP,
- EGG_DESKTOP_FILE_KEY_TYPE, error);
- if (!type)
- {
- egg_desktop_file_free (desktop_file);
- return NULL;
- }
-
- if (!strcmp (type, "Application"))
- {
- char *exec, *p;
-
- desktop_file->type = EGG_DESKTOP_FILE_TYPE_APPLICATION;
-
- exec = g_key_file_get_string (key_file,
- EGG_DESKTOP_FILE_GROUP,
- EGG_DESKTOP_FILE_KEY_EXEC,
- error);
- if (!exec)
- {
- egg_desktop_file_free (desktop_file);
- return NULL;
- }
-
- /* See if it takes paths or URIs or neither */
- for (p = exec; *p; p++)
- {
- if (*p == '%')
- {
- if (p[1] == '\0' || strchr ("FfUu", p[1]))
- {
- desktop_file->document_code = p[1];
- break;
- }
- p++;
- }
- }
-
- g_free (exec);
- }
- else if (!strcmp (type, "Link"))
- {
- char *url;
-
- desktop_file->type = EGG_DESKTOP_FILE_TYPE_LINK;
-
- url = g_key_file_get_string (key_file,
- EGG_DESKTOP_FILE_GROUP,
- EGG_DESKTOP_FILE_KEY_URL,
- error);
- if (!url)
- {
- egg_desktop_file_free (desktop_file);
- return NULL;
- }
- g_free (url);
- }
- else if (!strcmp (type, "Directory"))
- desktop_file->type = EGG_DESKTOP_FILE_TYPE_DIRECTORY;
- else
- desktop_file->type = EGG_DESKTOP_FILE_TYPE_UNRECOGNIZED;
-
- g_free (type);
-
- /* Check the Icon key */
- desktop_file->icon = g_key_file_get_string (key_file,
- EGG_DESKTOP_FILE_GROUP,
- EGG_DESKTOP_FILE_KEY_ICON,
- NULL);
- if (desktop_file->icon && !g_path_is_absolute (desktop_file->icon))
- {
- char *ext;
-
- /* Lots of .desktop files still get this wrong */
- ext = strrchr (desktop_file->icon, '.');
- if (ext && (!strcmp (ext, ".png") ||
- !strcmp (ext, ".xpm") ||
- !strcmp (ext, ".svg")))
- {
- g_warning ("Desktop file '%s' has malformed Icon key '%s'"
- "(should not include extension)",
- source ? source : "(unknown)",
- desktop_file->icon);
- *ext = '\0';
- }
- }
-
- return desktop_file;
-}
-
-/**
- * egg_desktop_file_free:
- * @desktop_file: an #EggDesktopFile
- *
- * Frees @desktop_file.
- **/
-void
-egg_desktop_file_free (EggDesktopFile *desktop_file)
-{
- g_key_file_free (desktop_file->key_file);
- g_free (desktop_file->source);
- g_free (desktop_file->name);
- g_free (desktop_file->icon);
- g_free (desktop_file);
-}
-
-/**
- * egg_desktop_file_get_source:
- * @desktop_file: an #EggDesktopFile
- *
- * Gets the URI that @desktop_file was loaded from.
- *
- * Return value: @desktop_file's source URI
- **/
-const char *
-egg_desktop_file_get_source (EggDesktopFile *desktop_file)
-{
- return desktop_file->source;
-}
-
-/**
- * egg_desktop_file_get_desktop_file_type:
- * @desktop_file: an #EggDesktopFile
- *
- * Gets the desktop file type of @desktop_file.
- *
- * Return value: @desktop_file's type
- **/
-EggDesktopFileType
-egg_desktop_file_get_desktop_file_type (EggDesktopFile *desktop_file)
-{
- return desktop_file->type;
-}
-
-/**
- * egg_desktop_file_get_name:
- * @desktop_file: an #EggDesktopFile
- *
- * Gets the (localized) value of @desktop_file's "Name" key.
- *
- * Return value: the application/link name
- **/
-const char *
-egg_desktop_file_get_name (EggDesktopFile *desktop_file)
-{
- return desktop_file->name;
-}
-
-/**
- * egg_desktop_file_get_icon:
- * @desktop_file: an #EggDesktopFile
- *
- * Gets the value of @desktop_file's "Icon" key.
- *
- * If the icon string is a full path (that is, if g_path_is_absolute()
- * returns %TRUE when called on it), it points to a file containing an
- * unthemed icon. If the icon string is not a full path, it is the
- * name of a themed icon, which can be looked up with %GtkIconTheme,
- * or passed directly to a theme-aware widget like %GtkImage or
- * %GtkCellRendererPixbuf.
- *
- * Return value: the icon path or name
- **/
-const char *
-egg_desktop_file_get_icon (EggDesktopFile *desktop_file)
-{
- return desktop_file->icon;
-}
-
-gboolean
-egg_desktop_file_has_key (EggDesktopFile *desktop_file,
- const char *key,
- GError **error)
-{
- return g_key_file_has_key (desktop_file->key_file,
- EGG_DESKTOP_FILE_GROUP, key,
- error);
-}
-
-char *
-egg_desktop_file_get_string (EggDesktopFile *desktop_file,
- const char *key,
- GError **error)
-{
- return g_key_file_get_string (desktop_file->key_file,
- EGG_DESKTOP_FILE_GROUP, key,
- error);
-}
-
-char *
-egg_desktop_file_get_locale_string (EggDesktopFile *desktop_file,
- const char *key,
- const char *locale,
- GError **error)
-{
- return g_key_file_get_locale_string (desktop_file->key_file,
- EGG_DESKTOP_FILE_GROUP, key, locale,
- error);
-}
-
-gboolean
-egg_desktop_file_get_boolean (EggDesktopFile *desktop_file,
- const char *key,
- GError **error)
-{
- return g_key_file_get_boolean (desktop_file->key_file,
- EGG_DESKTOP_FILE_GROUP, key,
- error);
-}
-
-double
-egg_desktop_file_get_numeric (EggDesktopFile *desktop_file,
- const char *key,
- GError **error)
-{
-#if 0
- return g_key_file_get_double (desktop_file->key_file,
- EGG_DESKTOP_FILE_GROUP, key,
- error);
-#else
- return 0.0;
-#endif
-}
-
-char **
-egg_desktop_file_get_string_list (EggDesktopFile *desktop_file,
- const char *key,
- gsize *length,
- GError **error)
-{
- return g_key_file_get_string_list (desktop_file->key_file,
- EGG_DESKTOP_FILE_GROUP, key, length,
- error);
-}
-
-char **
-egg_desktop_file_get_locale_string_list (EggDesktopFile *desktop_file,
- const char *key,
- const char *locale,
- gsize *length,
- GError **error)
-{
- return g_key_file_get_locale_string_list (desktop_file->key_file,
- EGG_DESKTOP_FILE_GROUP, key,
- locale, length,
- error);
-}
-
-/**
- * egg_desktop_file_can_launch:
- * @desktop_file: an #EggDesktopFile
- * @desktop_environment: the name of the running desktop environment,
- * or %NULL
- *
- * Tests if @desktop_file can/should be launched in the current
- * environment. If @desktop_environment is non-%NULL, @desktop_file's
- * "OnlyShowIn" and "NotShowIn" keys are checked to make sure that
- * this desktop_file is appropriate for the named environment.
- *
- * Furthermore, if @desktop_file has type
- * %EGG_DESKTOP_FILE_TYPE_APPLICATION, its "TryExec" key (if any) is
- * also checked, to make sure the binary it points to exists.
- *
- * egg_desktop_file_can_launch() does NOT check the value of the
- * "Hidden" key.
- *
- * Return value: %TRUE if @desktop_file can be launched
- **/
-gboolean
-egg_desktop_file_can_launch (EggDesktopFile *desktop_file,
- const char *desktop_environment)
-{
- char *try_exec, *found_program;
- char **only_show_in, **not_show_in;
- gboolean found;
- int i;
-
- if (desktop_file->type != EGG_DESKTOP_FILE_TYPE_APPLICATION &&
- desktop_file->type != EGG_DESKTOP_FILE_TYPE_LINK)
- return FALSE;
-
- if (desktop_environment)
- {
- only_show_in = g_key_file_get_string_list (desktop_file->key_file,
- EGG_DESKTOP_FILE_GROUP,
- EGG_DESKTOP_FILE_KEY_ONLY_SHOW_IN,
- NULL, NULL);
- if (only_show_in)
- {
- for (i = 0, found = FALSE; only_show_in[i] && !found; i++)
- {
- if (!strcmp (only_show_in[i], desktop_environment))
- found = TRUE;
- }
-
- g_strfreev (only_show_in);
-
- if (!found)
- return FALSE;
- }
-
- not_show_in = g_key_file_get_string_list (desktop_file->key_file,
- EGG_DESKTOP_FILE_GROUP,
- EGG_DESKTOP_FILE_KEY_NOT_SHOW_IN,
- NULL, NULL);
- if (not_show_in)
- {
- for (i = 0, found = FALSE; not_show_in[i] && !found; i++)
- {
- if (!strcmp (not_show_in[i], desktop_environment))
- found = TRUE;
- }
-
- g_strfreev (not_show_in);
-
- if (found)
- return FALSE;
- }
- }
-
- if (desktop_file->type == EGG_DESKTOP_FILE_TYPE_APPLICATION)
- {
- try_exec = g_key_file_get_string (desktop_file->key_file,
- EGG_DESKTOP_FILE_GROUP,
- EGG_DESKTOP_FILE_KEY_TRY_EXEC,
- NULL);
- if (try_exec)
- {
- found_program = g_find_program_in_path (try_exec);
- g_free (try_exec);
-
- if (!found_program)
- return FALSE;
- g_free (found_program);
- }
- }
-
- return TRUE;
-}
-
-/**
- * egg_desktop_file_accepts_documents:
- * @desktop_file: an #EggDesktopFile
- *
- * Tests if @desktop_file represents an application that can accept
- * documents on the command line.
- *
- * Return value: %TRUE or %FALSE
- **/
-gboolean
-egg_desktop_file_accepts_documents (EggDesktopFile *desktop_file)
-{
- return desktop_file->document_code != 0;
-}
-
-/**
- * egg_desktop_file_accepts_multiple:
- * @desktop_file: an #EggDesktopFile
- *
- * Tests if @desktop_file can accept multiple documents at once.
- *
- * If this returns %FALSE, you can still pass multiple documents to
- * egg_desktop_file_launch(), but that will result in multiple copies
- * of the application being launched. See egg_desktop_file_launch()
- * for more details.
- *
- * Return value: %TRUE or %FALSE
- **/
-gboolean
-egg_desktop_file_accepts_multiple (EggDesktopFile *desktop_file)
-{
- return (desktop_file->document_code == 'F' ||
- desktop_file->document_code == 'U');
-}
-
-/**
- * egg_desktop_file_accepts_uris:
- * @desktop_file: an #EggDesktopFile
- *
- * Tests if @desktop_file can accept (non-"file:") URIs as documents to
- * open.
- *
- * Return value: %TRUE or %FALSE
- **/
-gboolean
-egg_desktop_file_accepts_uris (EggDesktopFile *desktop_file)
-{
- return (desktop_file->document_code == 'U' ||
- desktop_file->document_code == 'u');
-}
-
-static void
-append_quoted_word (GString *str,
- const char *s,
- gboolean in_single_quotes,
- gboolean in_double_quotes)
-{
- const char *p;
-
- if (!in_single_quotes && !in_double_quotes)
- g_string_append_c (str, '\'');
- else if (!in_single_quotes && in_double_quotes)
- g_string_append (str, "\"'");
-
- if (!strchr (s, '\''))
- g_string_append (str, s);
- else
- {
- for (p = s; *p != '\0'; p++)
- {
- if (*p == '\'')
- g_string_append (str, "'\\''");
- else
- g_string_append_c (str, *p);
- }
- }
-
- if (!in_single_quotes && !in_double_quotes)
- g_string_append_c (str, '\'');
- else if (!in_single_quotes && in_double_quotes)
- g_string_append (str, "'\"");
-}
-
-static void
-do_percent_subst (EggDesktopFile *desktop_file,
- char code,
- GString *str,
- GSList **documents,
- gboolean in_single_quotes,
- gboolean in_double_quotes)
-{
- GSList *d;
- char *doc;
-
- switch (code)
- {
- case '%':
- g_string_append_c (str, '%');
- break;
-
- case 'F':
- case 'U':
- for (d = *documents; d; d = d->next)
- {
- doc = d->data;
- g_string_append (str, " ");
- append_quoted_word (str, doc, in_single_quotes, in_double_quotes);
- }
- *documents = NULL;
- break;
-
- case 'f':
- case 'u':
- if (*documents)
- {
- doc = (*documents)->data;
- g_string_append (str, " ");
- append_quoted_word (str, doc, in_single_quotes, in_double_quotes);
- *documents = (*documents)->next;
- }
- break;
-
- case 'i':
- if (desktop_file->icon)
- {
- g_string_append (str, "--icon ");
- append_quoted_word (str, desktop_file->icon,
- in_single_quotes, in_double_quotes);
- }
- break;
-
- case 'c':
- if (desktop_file->name)
- {
- append_quoted_word (str, desktop_file->name,
- in_single_quotes, in_double_quotes);
- }
- break;
-
- case 'k':
- if (desktop_file->source)
- {
- append_quoted_word (str, desktop_file->source,
- in_single_quotes, in_double_quotes);
- }
- break;
-
- case 'D':
- case 'N':
- case 'd':
- case 'n':
- case 'v':
- case 'm':
- /* Deprecated; skip */
- break;
-
- default:
- g_warning ("Unrecognized %%-code '%%%c' in Exec", code);
- break;
- }
-}
-
-static char *
-parse_exec (EggDesktopFile *desktop_file,
- GSList **documents,
- GError **error)
-{
- char *exec, *p, *command;
- gboolean escape, single_quot, double_quot;
- GString *gs;
-
- exec = g_key_file_get_string (desktop_file->key_file,
- EGG_DESKTOP_FILE_GROUP,
- EGG_DESKTOP_FILE_KEY_EXEC,
- error);
- if (!exec)
- return NULL;
-
- /* Build the command */
- gs = g_string_new (NULL);
- escape = single_quot = double_quot = FALSE;
-
- for (p = exec; *p != '\0'; p++)
- {
- if (escape)
- {
- escape = FALSE;
- g_string_append_c (gs, *p);
- }
- else if (*p == '\\')
- {
- if (!single_quot)
- escape = TRUE;
- g_string_append_c (gs, *p);
- }
- else if (*p == '\'')
- {
- g_string_append_c (gs, *p);
- if (!single_quot && !double_quot)
- single_quot = TRUE;
- else if (single_quot)
- single_quot = FALSE;
- }
- else if (*p == '"')
- {
- g_string_append_c (gs, *p);
- if (!single_quot && !double_quot)
- double_quot = TRUE;
- else if (double_quot)
- double_quot = FALSE;
- }
- else if (*p == '%' && p[1])
- {
- do_percent_subst (desktop_file, p[1], gs, documents,
- single_quot, double_quot);
- p++;
- }
- else
- g_string_append_c (gs, *p);
- }
-
- g_free (exec);
- command = g_string_free (gs, FALSE);
-
- /* Prepend "xdg-terminal " if needed (FIXME: use gvfs) */
- if (g_key_file_has_key (desktop_file->key_file,
- EGG_DESKTOP_FILE_GROUP,
- EGG_DESKTOP_FILE_KEY_TERMINAL,
- NULL))
- {
- GError *terminal_error = NULL;
- gboolean use_terminal =
- g_key_file_get_boolean (desktop_file->key_file,
- EGG_DESKTOP_FILE_GROUP,
- EGG_DESKTOP_FILE_KEY_TERMINAL,
- &terminal_error);
- if (terminal_error)
- {
- g_free (command);
- g_propagate_error (error, terminal_error);
- return NULL;
- }
-
- if (use_terminal)
- {
- gs = g_string_new ("xdg-terminal ");
- append_quoted_word (gs, command, FALSE, FALSE);
- g_free (command);
- command = g_string_free (gs, FALSE);
- }
- }
-
- return command;
-}
-
-static GSList *
-translate_document_list (EggDesktopFile *desktop_file, GSList *documents)
-{
- gboolean accepts_uris = egg_desktop_file_accepts_uris (desktop_file);
- GSList *ret, *d;
-
- for (d = documents, ret = NULL; d; d = d->next)
- {
- const char *document = d->data;
- gboolean is_uri = !g_path_is_absolute (document);
- char *translated;
-
- if (accepts_uris)
- {
- if (is_uri)
- translated = g_strdup (document);
- else
- translated = g_filename_to_uri (document, NULL, NULL);
- }
- else
- {
- if (is_uri)
- translated = g_filename_from_uri (document, NULL, NULL);
- else
- translated = g_strdup (document);
- }
-
- if (translated)
- ret = g_slist_prepend (ret, translated);
- }
-
- return g_slist_reverse (ret);
-}
-
-static void
-free_document_list (GSList *documents)
-{
- GSList *d;
-
- for (d = documents; d; d = d->next)
- g_free (d->data);
- g_slist_free (documents);
-}
-
-/**
- * egg_desktop_file_parse_exec:
- * @desktop_file: a #EggDesktopFile
- * @documents: a list of document paths or URIs
- * @error: error pointer
- *
- * Parses @desktop_file's Exec key, inserting @documents into it, and
- * returns the result.
- *
- * If @documents contains non-file: URIs and @desktop_file does not
- * accept URIs, those URIs will be ignored. Likewise, if @documents
- * contains more elements than @desktop_file accepts, the extra
- * documents will be ignored.
- *
- * Return value: the parsed Exec string
- **/
-char *
-egg_desktop_file_parse_exec (EggDesktopFile *desktop_file,
- GSList *documents,
- GError **error)
-{
- GSList *translated, *docs;
- char *command;
-
- docs = translated = translate_document_list (desktop_file, documents);
- command = parse_exec (desktop_file, &docs, error);
- free_document_list (translated);
-
- return command;
-}
-
-static gboolean
-parse_link (EggDesktopFile *desktop_file,
- EggDesktopFile **app_desktop_file,
- GSList **documents,
- GError **error)
-{
- char *url;
- GKeyFile *key_file;
-
- url = g_key_file_get_string (desktop_file->key_file,
- EGG_DESKTOP_FILE_GROUP,
- EGG_DESKTOP_FILE_KEY_URL,
- error);
- if (!url)
- return FALSE;
- *documents = g_slist_prepend (NULL, url);
-
- /* FIXME: use gvfs */
- key_file = g_key_file_new ();
- g_key_file_set_string (key_file, EGG_DESKTOP_FILE_GROUP,
- EGG_DESKTOP_FILE_KEY_NAME,
- "xdg-open");
- g_key_file_set_string (key_file, EGG_DESKTOP_FILE_GROUP,
- EGG_DESKTOP_FILE_KEY_TYPE,
- "Application");
- g_key_file_set_string (key_file, EGG_DESKTOP_FILE_GROUP,
- EGG_DESKTOP_FILE_KEY_EXEC,
- "xdg-open %u");
- *app_desktop_file = egg_desktop_file_new_from_key_file (key_file, NULL, NULL);
- return TRUE;
-}
-
-#ifdef HAVE_GDK_X11_DISPLAY_BROADCAST_STARTUP_MESSAGE
-static char *
-start_startup_notification (GdkDisplay *display,
- EggDesktopFile *desktop_file,
- const char *argv0,
- int screen,
- int workspace,
- guint32 launch_time)
-{
- static int sequence = 0;
- char *startup_id;
- char *description, *wmclass;
- char *screen_str, *workspace_str;
-
- if (g_key_file_has_key (desktop_file->key_file,
- EGG_DESKTOP_FILE_GROUP,
- EGG_DESKTOP_FILE_KEY_STARTUP_NOTIFY,
- NULL))
- {
- if (!g_key_file_get_boolean (desktop_file->key_file,
- EGG_DESKTOP_FILE_GROUP,
- EGG_DESKTOP_FILE_KEY_STARTUP_NOTIFY,
- NULL))
- return NULL;
- wmclass = NULL;
- }
- else
- {
- wmclass = g_key_file_get_string (desktop_file->key_file,
- EGG_DESKTOP_FILE_GROUP,
- EGG_DESKTOP_FILE_KEY_STARTUP_WM_CLASS,
- NULL);
- if (!wmclass)
- return NULL;
- }
-
- if (launch_time == (guint32)-1)
- launch_time = gdk_x11_display_get_user_time (display);
- startup_id = g_strdup_printf ("%s-%lu-%s-%s-%d_TIME%lu",
- g_get_prgname (),
- (unsigned long)getpid (),
- g_get_host_name (),
- argv0,
- sequence++,
- (unsigned long)launch_time);
-
- description = g_strdup_printf (_("Starting %s"), desktop_file->name);
- screen_str = g_strdup_printf ("%d", screen);
- workspace_str = workspace == -1 ? NULL : g_strdup_printf ("%d", workspace);
-
- gdk_x11_display_broadcast_startup_message (display, "new",
- "ID", startup_id,
- "NAME", desktop_file->name,
- "SCREEN", screen_str,
- "BIN", argv0,
- "ICON", desktop_file->icon,
- "DESKTOP", workspace_str,
- "DESCRIPTION", description,
- "WMCLASS", wmclass,
- NULL);
-
- g_free (description);
- g_free (wmclass);
- g_free (screen_str);
- g_free (workspace_str);
-
- return startup_id;
-}
-
-static void
-end_startup_notification (GdkDisplay *display,
- const char *startup_id)
-{
- gdk_x11_display_broadcast_startup_message (display, "remove",
- "ID", startup_id,
- NULL);
-}
-
-#define EGG_DESKTOP_FILE_SN_TIMEOUT_LENGTH 30 /* seconds */
-
-typedef struct {
- GdkDisplay *display;
- char *startup_id;
-} StartupNotificationData;
-
-static gboolean
-startup_notification_timeout (gpointer data)
-{
- StartupNotificationData *sn_data = data;
-
- end_startup_notification (sn_data->display, sn_data->startup_id);
- g_object_unref (sn_data->display);
- g_free (sn_data->startup_id);
- g_free (sn_data);
-
- return FALSE;
-}
-
-static void
-set_startup_notification_timeout (GdkDisplay *display,
- const char *startup_id)
-{
- StartupNotificationData *sn_data;
-
- sn_data = g_new (StartupNotificationData, 1);
- sn_data->display = g_object_ref (display);
- sn_data->startup_id = g_strdup (startup_id);
-
- g_timeout_add_seconds (EGG_DESKTOP_FILE_SN_TIMEOUT_LENGTH,
- startup_notification_timeout, sn_data);
-}
-#endif /* HAVE_GDK_X11_DISPLAY_BROADCAST_STARTUP_MESSAGE */
-
-extern char **environ;
-
-static GPtrArray *
-array_putenv (GPtrArray *env, char *variable)
-{
- int i, keylen;
-
- if (!env)
- {
- env = g_ptr_array_new ();
-
- for (i = 0; environ[i]; i++)
- g_ptr_array_add (env, g_strdup (environ[i]));
- }
-
- keylen = strcspn (variable, "=");
-
- /* Remove old value of key */
- for (i = 0; i < env->len; i++)
- {
- char *envvar = env->pdata[i];
-
- if (!strncmp (envvar, variable, keylen) && envvar[keylen] == '=')
- {
- g_free (envvar);
- g_ptr_array_remove_index_fast (env, i);
- break;
- }
- }
-
- /* Add new value */
- g_ptr_array_add (env, g_strdup (variable));
-
- return env;
-}
-
-static gboolean
-egg_desktop_file_launchv (EggDesktopFile *desktop_file,
- GSList *documents, va_list args,
- GError **error)
-{
- EggDesktopFileLaunchOption option;
- GSList *translated_documents = NULL, *docs;
- char *command, **argv;
- int argc, i, screen_num;
- gboolean success, current_success;
- GdkDisplay *display;
- char *startup_id;
-
- GPtrArray *env = NULL;
- char **variables = NULL;
- GdkScreen *screen = NULL;
- int workspace = -1;
- const char *directory = NULL;
- guint32 launch_time = (guint32)-1;
- GSpawnFlags flags = G_SPAWN_SEARCH_PATH;
- GSpawnChildSetupFunc setup_func = NULL;
- gpointer setup_data = NULL;
-
- GPid *ret_pid = NULL;
- int *ret_stdin = NULL, *ret_stdout = NULL, *ret_stderr = NULL;
- char **ret_startup_id = NULL;
-
- if (documents && desktop_file->document_code == 0)
- {
- g_set_error (error, EGG_DESKTOP_FILE_ERROR,
- EGG_DESKTOP_FILE_ERROR_NOT_LAUNCHABLE,
- _("Application does not accept documents on command line"));
- return FALSE;
- }
-
- /* Read the options: technically it's incorrect for the caller to
- * NULL-terminate the list of options (rather than 0-terminating
- * it), but NULL-terminating lets us use G_GNUC_NULL_TERMINATED,
- * it's more consistent with other glib/gtk methods, and it will
- * work as long as sizeof (int) <= sizeof (NULL), and NULL is
- * represented as 0. (Which is true everywhere we care about.)
- */
- while ((option = va_arg (args, EggDesktopFileLaunchOption)))
- {
- switch (option)
- {
- case EGG_DESKTOP_FILE_LAUNCH_CLEARENV:
- if (env)
- g_ptr_array_free (env, TRUE);
- env = g_ptr_array_new ();
- break;
- case EGG_DESKTOP_FILE_LAUNCH_PUTENV:
- variables = va_arg (args, char **);
- for (i = 0; variables[i]; i++)
- env = array_putenv (env, variables[i]);
- break;
-
- case EGG_DESKTOP_FILE_LAUNCH_SCREEN:
- screen = va_arg (args, GdkScreen *);
- break;
- case EGG_DESKTOP_FILE_LAUNCH_WORKSPACE:
- workspace = va_arg (args, int);
- break;
-
- case EGG_DESKTOP_FILE_LAUNCH_DIRECTORY:
- directory = va_arg (args, const char *);
- break;
- case EGG_DESKTOP_FILE_LAUNCH_TIME:
- launch_time = va_arg (args, guint32);
- break;
- case EGG_DESKTOP_FILE_LAUNCH_FLAGS:
- flags |= va_arg (args, GSpawnFlags);
- /* Make sure they didn't set any flags that don't make sense. */
- flags &= ~G_SPAWN_FILE_AND_ARGV_ZERO;
- break;
- case EGG_DESKTOP_FILE_LAUNCH_SETUP_FUNC:
- setup_func = va_arg (args, GSpawnChildSetupFunc);
- setup_data = va_arg (args, gpointer);
- break;
-
- case EGG_DESKTOP_FILE_LAUNCH_RETURN_PID:
- ret_pid = va_arg (args, GPid *);
- break;
- case EGG_DESKTOP_FILE_LAUNCH_RETURN_STDIN_PIPE:
- ret_stdin = va_arg (args, int *);
- break;
- case EGG_DESKTOP_FILE_LAUNCH_RETURN_STDOUT_PIPE:
- ret_stdout = va_arg (args, int *);
- break;
- case EGG_DESKTOP_FILE_LAUNCH_RETURN_STDERR_PIPE:
- ret_stderr = va_arg (args, int *);
- break;
- case EGG_DESKTOP_FILE_LAUNCH_RETURN_STARTUP_ID:
- ret_startup_id = va_arg (args, char **);
- break;
-
- default:
- g_set_error (error, EGG_DESKTOP_FILE_ERROR,
- EGG_DESKTOP_FILE_ERROR_UNRECOGNIZED_OPTION,
- _("Unrecognized launch option: %d"),
- GPOINTER_TO_INT (option));
- success = FALSE;
- goto out;
- }
- }
-
- if (screen)
- {
- char *display_name = gdk_screen_make_display_name (screen);
- char *display_env = g_strdup_printf ("DISPLAY=%s", display_name);
- env = array_putenv (env, display_env);
- g_free (display_name);
- g_free (display_env);
-
- display = gdk_screen_get_display (screen);
- }
- else
- {
- display = gdk_display_get_default ();
- screen = gdk_display_get_default_screen (display);
- }
- screen_num = gdk_screen_get_number (screen);
-
- translated_documents = translate_document_list (desktop_file, documents);
- docs = translated_documents;
-
- success = FALSE;
-
- do
- {
- command = parse_exec (desktop_file, &docs, error);
- if (!command)
- goto out;
-
- if (!g_shell_parse_argv (command, &argc, &argv, error))
- {
- g_free (command);
- goto out;
- }
- g_free (command);
-
-#ifdef HAVE_GDK_X11_DISPLAY_BROADCAST_STARTUP_MESSAGE
- startup_id = start_startup_notification (display, desktop_file,
- argv[0], screen_num,
- workspace, launch_time);
- if (startup_id)
- {
- char *startup_id_env = g_strdup_printf ("DESKTOP_STARTUP_ID=%s",
- startup_id);
- env = array_putenv (env, startup_id_env);
- g_free (startup_id_env);
- }
-#else
- startup_id = NULL;
-#endif /* HAVE_GDK_X11_DISPLAY_BROADCAST_STARTUP_MESSAGE */
-
- if (env != NULL)
- {
- /* Add NULL item in the end of array */
- g_ptr_array_add (env, NULL);
- }
-
- current_success =
- g_spawn_async_with_pipes (directory,
- argv,
- env ? (char **)(env->pdata) : NULL,
- flags,
- setup_func, setup_data,
- ret_pid,
- ret_stdin, ret_stdout, ret_stderr,
- error);
- g_strfreev (argv);
-
- if (startup_id)
- {
-#ifdef HAVE_GDK_X11_DISPLAY_BROADCAST_STARTUP_MESSAGE
- if (current_success)
- {
- set_startup_notification_timeout (display, startup_id);
-
- if (ret_startup_id)
- *ret_startup_id = startup_id;
- else
- g_free (startup_id);
- }
- else
-#endif /* HAVE_GDK_X11_DISPLAY_BROADCAST_STARTUP_MESSAGE */
- g_free (startup_id);
- }
- else if (ret_startup_id)
- *ret_startup_id = NULL;
-
- if (current_success)
- {
- /* If we successfully launch any instances of the app, make
- * sure we return TRUE and don't set @error.
- */
- success = TRUE;
- error = NULL;
-
- /* Also, only set the output params on the first one */
- ret_pid = NULL;
- ret_stdin = ret_stdout = ret_stderr = NULL;
- ret_startup_id = NULL;
- }
- }
- while (docs && current_success);
-
- out:
- if (env)
- {
- g_ptr_array_free (env, TRUE);
- }
- free_document_list (translated_documents);
-
- return success;
-}
-
-/**
- * egg_desktop_file_launch:
- * @desktop_file: an #EggDesktopFile
- * @documents: a list of URIs or paths to documents to open
- * @error: error pointer
- * @...: additional options
- *
- * Launches @desktop_file with the given arguments. Additional options
- * can be specified as follows:
- *
- * %EGG_DESKTOP_FILE_LAUNCH_CLEARENV: (no arguments)
- * clears the environment in the child process
- * %EGG_DESKTOP_FILE_LAUNCH_PUTENV: (char **variables)
- * adds the NAME=VALUE strings in the given %NULL-terminated
- * array to the child process's environment
- * %EGG_DESKTOP_FILE_LAUNCH_SCREEN: (GdkScreen *screen)
- * causes the application to be launched on the given screen
- * %EGG_DESKTOP_FILE_LAUNCH_WORKSPACE: (int workspace)
- * causes the application to be launched on the given workspace
- * %EGG_DESKTOP_FILE_LAUNCH_DIRECTORY: (char *dir)
- * causes the application to be launched in the given directory
- * %EGG_DESKTOP_FILE_LAUNCH_TIME: (guint32 launch_time)
- * sets the "launch time" for the application. If the user
- * interacts with another window after @launch_time but before
- * the launched application creates its first window, the window
- * manager may choose to not give focus to the new application.
- * Passing 0 for @launch_time will explicitly request that the
- * application not receive focus.
- * %EGG_DESKTOP_FILE_LAUNCH_FLAGS (GSpawnFlags flags)
- * Sets additional #GSpawnFlags to use. See g_spawn_async() for
- * more details.
- * %EGG_DESKTOP_FILE_LAUNCH_SETUP_FUNC (GSpawnChildSetupFunc, gpointer)
- * Sets the child setup callback and the data to pass to it.
- * (See g_spawn_async() for more details.)
- *
- * %EGG_DESKTOP_FILE_LAUNCH_RETURN_PID (GPid **pid)
- * On a successful launch, sets *@pid to the PID of the launched
- * application.
- * %EGG_DESKTOP_FILE_LAUNCH_RETURN_STARTUP_ID (char **startup_id)
- * On a successful launch, sets *@startup_id to the Startup
- * Notification "startup id" of the launched application.
- * %EGG_DESKTOP_FILE_LAUNCH_RETURN_STDIN_PIPE (int *fd)
- * On a successful launch, sets *@fd to the file descriptor of
- * a pipe connected to the application's stdin.
- * %EGG_DESKTOP_FILE_LAUNCH_RETURN_STDOUT_PIPE (int *fd)
- * On a successful launch, sets *@fd to the file descriptor of
- * a pipe connected to the application's stdout.
- * %EGG_DESKTOP_FILE_LAUNCH_RETURN_STDERR_PIPE (int *fd)
- * On a successful launch, sets *@fd to the file descriptor of
- * a pipe connected to the application's stderr.
- *
- * The options should be terminated with a single %NULL.
- *
- * If @documents contains multiple documents, but
- * egg_desktop_file_accepts_multiple() returns %FALSE for
- * @desktop_file, then egg_desktop_file_launch() will actually launch
- * multiple instances of the application. In that case, the return
- * value (as well as any values passed via
- * %EGG_DESKTOP_FILE_LAUNCH_RETURN_PID, etc) will only reflect the
- * first instance of the application that was launched (but the
- * %EGG_DESKTOP_FILE_LAUNCH_SETUP_FUNC will be called for each
- * instance).
- *
- * Return value: %TRUE if the application was successfully launched.
- **/
-gboolean
-egg_desktop_file_launch (EggDesktopFile *desktop_file,
- GSList *documents, GError **error,
- ...)
-{
- va_list args;
- gboolean success;
- EggDesktopFile *app_desktop_file;
-
- switch (desktop_file->type)
- {
- case EGG_DESKTOP_FILE_TYPE_APPLICATION:
- va_start (args, error);
- success = egg_desktop_file_launchv (desktop_file, documents,
- args, error);
- va_end (args);
- break;
-
- case EGG_DESKTOP_FILE_TYPE_LINK:
- if (documents)
- {
- g_set_error (error, EGG_DESKTOP_FILE_ERROR,
- EGG_DESKTOP_FILE_ERROR_NOT_LAUNCHABLE,
- _("Can't pass document URIs to a 'Type=Link' desktop entry"));
- return FALSE;
- }
-
- if (!parse_link (desktop_file, &app_desktop_file, &documents, error))
- return FALSE;
-
- va_start (args, error);
- success = egg_desktop_file_launchv (app_desktop_file, documents,
- args, error);
- va_end (args);
-
- egg_desktop_file_free (app_desktop_file);
- free_document_list (documents);
- break;
-
- default:
- g_set_error (error, EGG_DESKTOP_FILE_ERROR,
- EGG_DESKTOP_FILE_ERROR_NOT_LAUNCHABLE,
- _("Not a launchable item"));
- success = FALSE;
- break;
- }
-
- return success;
-}
-
-
-GQuark
-egg_desktop_file_error_quark (void)
-{
- return g_quark_from_static_string ("egg-desktop_file-error-quark");
-}
-
-
-G_LOCK_DEFINE_STATIC (egg_desktop_file);
-static EggDesktopFile *egg_desktop_file;
-
-/**
- * egg_set_desktop_file:
- * @desktop_file_path: path to the application's desktop file
- *
- * Creates an #EggDesktopFile for the application from the data at
- * @desktop_file_path. This will also call g_set_application_name()
- * with the localized application name from the desktop file, and
- * gtk_window_set_default_icon_name() or
- * gtk_window_set_default_icon_from_file() with the application's
- * icon. Other code may use additional information from the desktop
- * file.
- *
- * Note that for thread safety reasons, this function can only
- * be called once.
- **/
-void
-egg_set_desktop_file (const char *desktop_file_path)
-{
- GError *error = NULL;
-
- G_LOCK (egg_desktop_file);
- if (egg_desktop_file)
- egg_desktop_file_free (egg_desktop_file);
-
- egg_desktop_file = egg_desktop_file_new (desktop_file_path, &error);
- if (error)
- {
- g_warning ("Could not load desktop file '%s': %s",
- desktop_file_path, error->message);
- g_error_free (error);
- }
-
- /* Set localized application name and default window icon */
- if (egg_desktop_file->name)
- g_set_application_name (egg_desktop_file->name);
- if (egg_desktop_file->icon)
- {
- if (g_path_is_absolute (egg_desktop_file->icon))
- gtk_window_set_default_icon_from_file (egg_desktop_file->icon, NULL);
- else
- gtk_window_set_default_icon_name (egg_desktop_file->icon);
- }
-
- G_UNLOCK (egg_desktop_file);
-}
-
-/**
- * egg_get_desktop_file:
- *
- * Gets the application's #EggDesktopFile, as set by
- * egg_set_desktop_file().
- *
- * Return value: the #EggDesktopFile, or %NULL if it hasn't been set.
- **/
-EggDesktopFile *
-egg_get_desktop_file (void)
-{
- EggDesktopFile *retval;
-
- G_LOCK (egg_desktop_file);
- retval = egg_desktop_file;
- G_UNLOCK (egg_desktop_file);
-
- return retval;
-}
diff --git a/src/sugar/eggdesktopfile.h b/src/sugar/eggdesktopfile.h
deleted file mode 100644
index 270aec8..0000000
--- a/src/sugar/eggdesktopfile.h
+++ /dev/null
@@ -1,156 +0,0 @@
-/* eggdesktopfile.h - Freedesktop.Org Desktop Files
- * Copyright (C) 2007 Novell, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This library 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
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; see the file COPYING.LIB. If not,
- * write to the Free Software Foundation, Inc., 59 Temple Place -
- * Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#ifndef __EGG_DESKTOP_FILE_H__
-#define __EGG_DESKTOP_FILE_H__
-
-#include <glib.h>
-
-G_BEGIN_DECLS
-
-typedef struct EggDesktopFile EggDesktopFile;
-
-typedef enum {
- EGG_DESKTOP_FILE_TYPE_UNRECOGNIZED,
-
- EGG_DESKTOP_FILE_TYPE_APPLICATION,
- EGG_DESKTOP_FILE_TYPE_LINK,
- EGG_DESKTOP_FILE_TYPE_DIRECTORY,
-} EggDesktopFileType;
-
-EggDesktopFile *egg_desktop_file_new (const char *desktop_file_path,
- GError **error);
-
-EggDesktopFile *egg_desktop_file_new_from_data_dirs (const char *desktop_file_path,
- GError **error);
-EggDesktopFile *egg_desktop_file_new_from_key_file (GKeyFile *key_file,
- const char *source,
- GError **error);
-
-void egg_desktop_file_free (EggDesktopFile *desktop_file);
-
-const char *egg_desktop_file_get_source (EggDesktopFile *desktop_file) G_GNUC_PURE;
-
-EggDesktopFileType egg_desktop_file_get_desktop_file_type (EggDesktopFile *desktop_file) G_GNUC_PURE;
-
-const char *egg_desktop_file_get_name (EggDesktopFile *desktop_file) G_GNUC_PURE;
-const char *egg_desktop_file_get_icon (EggDesktopFile *desktop_file) G_GNUC_PURE;
-
-gboolean egg_desktop_file_can_launch (EggDesktopFile *desktop_file,
- const char *desktop_environment);
-
-gboolean egg_desktop_file_accepts_documents (EggDesktopFile *desktop_file);
-gboolean egg_desktop_file_accepts_multiple (EggDesktopFile *desktop_file);
-gboolean egg_desktop_file_accepts_uris (EggDesktopFile *desktop_file);
-
-char *egg_desktop_file_parse_exec (EggDesktopFile *desktop_file,
- GSList *documents,
- GError **error);
-
-gboolean egg_desktop_file_launch (EggDesktopFile *desktop_file,
- GSList *documents,
- GError **error,
- ...) G_GNUC_NULL_TERMINATED;
-
-typedef enum {
- EGG_DESKTOP_FILE_LAUNCH_CLEARENV = 1,
- EGG_DESKTOP_FILE_LAUNCH_PUTENV,
- EGG_DESKTOP_FILE_LAUNCH_SCREEN,
- EGG_DESKTOP_FILE_LAUNCH_WORKSPACE,
- EGG_DESKTOP_FILE_LAUNCH_DIRECTORY,
- EGG_DESKTOP_FILE_LAUNCH_TIME,
- EGG_DESKTOP_FILE_LAUNCH_FLAGS,
- EGG_DESKTOP_FILE_LAUNCH_SETUP_FUNC,
- EGG_DESKTOP_FILE_LAUNCH_RETURN_PID,
- EGG_DESKTOP_FILE_LAUNCH_RETURN_STDIN_PIPE,
- EGG_DESKTOP_FILE_LAUNCH_RETURN_STDOUT_PIPE,
- EGG_DESKTOP_FILE_LAUNCH_RETURN_STDERR_PIPE,
- EGG_DESKTOP_FILE_LAUNCH_RETURN_STARTUP_ID
-} EggDesktopFileLaunchOption;
-
-/* Standard Keys */
-#define EGG_DESKTOP_FILE_GROUP "Desktop Entry"
-
-#define EGG_DESKTOP_FILE_KEY_TYPE "Type"
-#define EGG_DESKTOP_FILE_KEY_VERSION "Version"
-#define EGG_DESKTOP_FILE_KEY_NAME "Name"
-#define EGG_DESKTOP_FILE_KEY_GENERIC_NAME "GenericName"
-#define EGG_DESKTOP_FILE_KEY_NO_DISPLAY "NoDisplay"
-#define EGG_DESKTOP_FILE_KEY_COMMENT "Comment"
-#define EGG_DESKTOP_FILE_KEY_ICON "Icon"
-#define EGG_DESKTOP_FILE_KEY_HIDDEN "Hidden"
-#define EGG_DESKTOP_FILE_KEY_ONLY_SHOW_IN "OnlyShowIn"
-#define EGG_DESKTOP_FILE_KEY_NOT_SHOW_IN "NotShowIn"
-#define EGG_DESKTOP_FILE_KEY_TRY_EXEC "TryExec"
-#define EGG_DESKTOP_FILE_KEY_EXEC "Exec"
-#define EGG_DESKTOP_FILE_KEY_PATH "Path"
-#define EGG_DESKTOP_FILE_KEY_TERMINAL "Terminal"
-#define EGG_DESKTOP_FILE_KEY_MIME_TYPE "MimeType"
-#define EGG_DESKTOP_FILE_KEY_CATEGORIES "Categories"
-#define EGG_DESKTOP_FILE_KEY_STARTUP_NOTIFY "StartupNotify"
-#define EGG_DESKTOP_FILE_KEY_STARTUP_WM_CLASS "StartupWMClass"
-#define EGG_DESKTOP_FILE_KEY_URL "URL"
-
-/* Accessors */
-gboolean egg_desktop_file_has_key (EggDesktopFile *desktop_file,
- const char *key,
- GError **error);
-char *egg_desktop_file_get_string (EggDesktopFile *desktop_file,
- const char *key,
- GError **error) G_GNUC_MALLOC;
-char *egg_desktop_file_get_locale_string (EggDesktopFile *desktop_file,
- const char *key,
- const char *locale,
- GError **error) G_GNUC_MALLOC;
-gboolean egg_desktop_file_get_boolean (EggDesktopFile *desktop_file,
- const char *key,
- GError **error);
-double egg_desktop_file_get_numeric (EggDesktopFile *desktop_file,
- const char *key,
- GError **error);
-char **egg_desktop_file_get_string_list (EggDesktopFile *desktop_file,
- const char *key,
- gsize *length,
- GError **error) G_GNUC_MALLOC;
-char **egg_desktop_file_get_locale_string_list (EggDesktopFile *desktop_file,
- const char *key,
- const char *locale,
- gsize *length,
- GError **error) G_GNUC_MALLOC;
-
-
-/* Errors */
-#define EGG_DESKTOP_FILE_ERROR egg_desktop_file_error_quark()
-
-GQuark egg_desktop_file_error_quark (void);
-
-typedef enum {
- EGG_DESKTOP_FILE_ERROR_INVALID,
- EGG_DESKTOP_FILE_ERROR_NOT_LAUNCHABLE,
- EGG_DESKTOP_FILE_ERROR_UNRECOGNIZED_OPTION,
-} EggDesktopFileError;
-
-/* Global application desktop file */
-void egg_set_desktop_file (const char *desktop_file_path);
-EggDesktopFile *egg_get_desktop_file (void);
-
-
-G_END_DECLS
-
-#endif /* __EGG_DESKTOP_FILE_H__ */
diff --git a/src/sugar/eggsmclient-private.h b/src/sugar/eggsmclient-private.h
deleted file mode 100644
index d2958c9..0000000
--- a/src/sugar/eggsmclient-private.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/* eggsmclient-private.h
- * Copyright (C) 2007 Novell, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library 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
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __EGG_SM_CLIENT_PRIVATE_H__
-#define __EGG_SM_CLIENT_PRIVATE_H__
-
-#include <gdkconfig.h>
-#include "eggsmclient.h"
-
-G_BEGIN_DECLS
-
-#define EGG_SM_CLIENT_BACKEND_XSMP
-
-GKeyFile *egg_sm_client_save_state (EggSMClient *client);
-void egg_sm_client_quit_requested (EggSMClient *client);
-void egg_sm_client_quit_cancelled (EggSMClient *client);
-void egg_sm_client_quit (EggSMClient *client);
-
-#if defined (GDK_WINDOWING_X11)
-# ifdef EGG_SM_CLIENT_BACKEND_XSMP
-#define EGG_TYPE_SM_CLIENT_XSMP (egg_sm_client_xsmp_get_type ())
-GType egg_sm_client_xsmp_get_type (void);
-EggSMClient *egg_sm_client_xsmp_new (void);
-# endif
-# ifdef EGG_SM_CLIENT_BACKEND_DBUS
-GType egg_sm_client_dbus_get_type (void);
-EggSMClient *egg_sm_client_dbus_new (void);
-# endif
-#elif defined (GDK_WINDOWING_WIN32)
-GType egg_sm_client_win32_get_type (void);
-EggSMClient *egg_sm_client_win32_new (void);
-#elif defined (GDK_WINDOWING_QUARTZ)
-GType egg_sm_client_osx_get_type (void);
-EggSMClient *egg_sm_client_osx_new (void);
-#endif
-
-G_END_DECLS
-
-
-#endif /* __EGG_SM_CLIENT_PRIVATE_H__ */
diff --git a/src/sugar/eggsmclient-xsmp.c b/src/sugar/eggsmclient-xsmp.c
deleted file mode 100644
index 13eb5d5..0000000
--- a/src/sugar/eggsmclient-xsmp.c
+++ /dev/null
@@ -1,1359 +0,0 @@
-/*
- * Copyright (C) 2007 Novell, Inc.
- *
- * Inspired by various other pieces of code including GsmClient (C)
- * 2001 Havoc Pennington, GnomeClient (C) 1998 Carsten Schaar, and twm
- * session code (C) 1998 The Open Group.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library 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
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "eggsmclient.h"
-#include "eggsmclient-private.h"
-
-#include "eggdesktopfile.h"
-
-#include <errno.h>
-#include <fcntl.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <X11/SM/SMlib.h>
-
-#include <gdk/gdk.h>
-
-#define EGG_TYPE_SM_CLIENT_XSMP (egg_sm_client_xsmp_get_type ())
-#define EGG_SM_CLIENT_XSMP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), EGG_TYPE_SM_CLIENT_XSMP, EggSMClientXSMP))
-#define EGG_SM_CLIENT_XSMP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EGG_TYPE_SM_CLIENT_XSMP, EggSMClientXSMPClass))
-#define EGG_IS_SM_CLIENT_XSMP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EGG_TYPE_SM_CLIENT_XSMP))
-#define EGG_IS_SM_CLIENT_XSMP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EGG_TYPE_SM_CLIENT_XSMP))
-#define EGG_SM_CLIENT_XSMP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), EGG_TYPE_SM_CLIENT_XSMP, EggSMClientXSMPClass))
-
-typedef struct _EggSMClientXSMP EggSMClientXSMP;
-typedef struct _EggSMClientXSMPClass EggSMClientXSMPClass;
-
-/* These mostly correspond to the similarly-named states in section
- * 9.1 of the XSMP spec. Some of the states there aren't represented
- * here, because we don't need them. SHUTDOWN_CANCELLED is slightly
- * different from the spec; we use it when the client is IDLE after a
- * ShutdownCancelled message, but the application is still interacting
- * and doesn't know the shutdown has been cancelled yet.
- */
-typedef enum
-{
- XSMP_STATE_START,
- XSMP_STATE_IDLE,
- XSMP_STATE_SAVE_YOURSELF,
- XSMP_STATE_INTERACT_REQUEST,
- XSMP_STATE_INTERACT,
- XSMP_STATE_SAVE_YOURSELF_DONE,
- XSMP_STATE_SHUTDOWN_CANCELLED,
- XSMP_STATE_CONNECTION_CLOSED,
-} EggSMClientXSMPState;
-
-static const char *state_names[] = {
- "start",
- "idle",
- "save-yourself",
- "interact-request",
- "interact",
- "save-yourself-done",
- "shutdown-cancelled",
- "connection-closed"
-};
-
-#define EGG_SM_CLIENT_XSMP_STATE(xsmp) (state_names[(xsmp)->state])
-
-struct _EggSMClientXSMP
-{
- EggSMClient parent;
-
- SmcConn connection;
- char *client_id;
-
- EggSMClientXSMPState state;
- char **restart_command;
- gboolean set_restart_command;
- int restart_style;
-
- guint idle;
-
- /* Current SaveYourself state */
- guint expecting_initial_save_yourself : 1;
- guint need_save_state : 1;
- guint need_quit_requested : 1;
- guint interact_errors : 1;
- guint shutting_down : 1;
-
- /* Todo list */
- guint waiting_to_emit_quit : 1;
- guint waiting_to_emit_quit_cancelled : 1;
- guint waiting_to_save_myself : 1;
-
-};
-
-struct _EggSMClientXSMPClass
-{
- EggSMClientClass parent_class;
-
-};
-
-static void sm_client_xsmp_startup (EggSMClient *client,
- const char *client_id);
-static void sm_client_xsmp_set_restart_command (EggSMClient *client,
- int argc,
- const char **argv);
-static void sm_client_xsmp_will_quit (EggSMClient *client,
- gboolean will_quit);
-static gboolean sm_client_xsmp_end_session (EggSMClient *client,
- EggSMClientEndStyle style,
- gboolean request_confirmation);
-
-static void xsmp_save_yourself (SmcConn smc_conn,
- SmPointer client_data,
- int save_style,
- Bool shutdown,
- int interact_style,
- Bool fast);
-static void xsmp_die (SmcConn smc_conn,
- SmPointer client_data);
-static void xsmp_save_complete (SmcConn smc_conn,
- SmPointer client_data);
-static void xsmp_shutdown_cancelled (SmcConn smc_conn,
- SmPointer client_data);
-static void xsmp_interact (SmcConn smc_conn,
- SmPointer client_data);
-
-static SmProp *array_prop (const char *name,
- ...);
-static SmProp *ptrarray_prop (const char *name,
- GPtrArray *values);
-static SmProp *string_prop (const char *name,
- const char *value);
-static SmProp *card8_prop (const char *name,
- unsigned char value);
-
-static void set_properties (EggSMClientXSMP *xsmp, ...);
-static void delete_properties (EggSMClientXSMP *xsmp, ...);
-
-static GPtrArray *generate_command (char **restart_command,
- const char *client_id,
- const char *state_file);
-
-static void save_state (EggSMClientXSMP *xsmp);
-static void do_save_yourself (EggSMClientXSMP *xsmp);
-static void update_pending_events (EggSMClientXSMP *xsmp);
-
-static void ice_init (void);
-static gboolean process_ice_messages (IceConn ice_conn);
-static void smc_error_handler (SmcConn smc_conn,
- Bool swap,
- int offending_minor_opcode,
- unsigned long offending_sequence,
- int error_class,
- int severity,
- SmPointer values);
-
-G_DEFINE_TYPE (EggSMClientXSMP, egg_sm_client_xsmp, EGG_TYPE_SM_CLIENT)
-
-static void
-egg_sm_client_xsmp_init (EggSMClientXSMP *xsmp)
-{
- xsmp->state = XSMP_STATE_CONNECTION_CLOSED;
- xsmp->connection = NULL;
- xsmp->restart_style = SmRestartIfRunning;
- xsmp->client_id = NULL;
-}
-
-static void
-egg_sm_client_xsmp_class_init (EggSMClientXSMPClass *klass)
-{
- EggSMClientClass *sm_client_class = EGG_SM_CLIENT_CLASS (klass);
-
- sm_client_class->startup = sm_client_xsmp_startup;
- sm_client_class->set_restart_command = sm_client_xsmp_set_restart_command;
- sm_client_class->will_quit = sm_client_xsmp_will_quit;
- sm_client_class->end_session = sm_client_xsmp_end_session;
-}
-
-EggSMClient *
-egg_sm_client_xsmp_new (void)
-{
- if (!g_getenv ("SESSION_MANAGER"))
- return NULL;
-
- return g_object_new (EGG_TYPE_SM_CLIENT_XSMP, NULL);
-}
-
-static gboolean
-sm_client_xsmp_connect (gpointer user_data)
-{
- EggSMClientXSMP *xsmp = user_data;
- SmcCallbacks callbacks;
- char *client_id;
- char error_string_ret[256];
- char pid_str[64];
- EggDesktopFile *desktop_file;
- GPtrArray *clone, *restart;
-
- g_source_remove (xsmp->idle);
- xsmp->idle = 0;
-
- ice_init ();
- SmcSetErrorHandler (smc_error_handler);
-
- callbacks.save_yourself.callback = xsmp_save_yourself;
- callbacks.die.callback = xsmp_die;
- callbacks.save_complete.callback = xsmp_save_complete;
- callbacks.shutdown_cancelled.callback = xsmp_shutdown_cancelled;
-
- callbacks.save_yourself.client_data = xsmp;
- callbacks.die.client_data = xsmp;
- callbacks.save_complete.client_data = xsmp;
- callbacks.shutdown_cancelled.client_data = xsmp;
-
- client_id = NULL;
- error_string_ret[0] = '\0';
- xsmp->connection =
- SmcOpenConnection (NULL, xsmp, SmProtoMajor, SmProtoMinor,
- SmcSaveYourselfProcMask | SmcDieProcMask |
- SmcSaveCompleteProcMask |
- SmcShutdownCancelledProcMask,
- &callbacks,
- //xsmp->client_id, &client_id,
- NULL, &client_id,
- sizeof (error_string_ret), error_string_ret);
-
- if (!xsmp->connection)
- {
- g_warning ("Failed to connect to the session manager: %s\n",
- error_string_ret[0] ?
- error_string_ret : "no error message given");
- xsmp->state = XSMP_STATE_CONNECTION_CLOSED;
- return FALSE;
- }
-
- /* We expect a pointless initial SaveYourself if either (a) we
- * didn't have an initial client ID, or (b) we DID have an initial
- * client ID, but the server rejected it and gave us a new one.
- */
- if (!xsmp->client_id ||
- (client_id && strcmp (xsmp->client_id, client_id) != 0))
- xsmp->expecting_initial_save_yourself = TRUE;
-
- if (client_id)
- {
- g_free (xsmp->client_id);
- xsmp->client_id = g_strdup (client_id);
- free (client_id);
-
- gdk_threads_enter ();
- gdk_set_sm_client_id (xsmp->client_id);
- gdk_threads_leave ();
-
- g_debug ("Got client ID \"%s\"", xsmp->client_id);
- }
-
- /* Parse info out of desktop file */
- desktop_file = egg_get_desktop_file ();
- if (desktop_file)
- {
- GError *err = NULL;
- char *cmdline, **argv;
- int argc;
-
- if (xsmp->restart_style == SmRestartIfRunning)
- {
- if (egg_desktop_file_get_boolean (desktop_file,
- "X-GNOME-AutoRestart", NULL))
- xsmp->restart_style = SmRestartImmediately;
- }
-
- if (!xsmp->set_restart_command)
- {
- cmdline = egg_desktop_file_parse_exec (desktop_file, NULL, &err);
- if (cmdline && g_shell_parse_argv (cmdline, &argc, &argv, &err))
- {
- egg_sm_client_set_restart_command (EGG_SM_CLIENT (xsmp),
- argc, (const char **)argv);
- g_strfreev (argv);
- }
- else
- {
- g_warning ("Could not parse Exec line in desktop file: %s",
- err->message);
- g_error_free (err);
- }
- }
- }
-
- if (!xsmp->set_restart_command)
- xsmp->restart_command = g_strsplit (g_get_prgname (), " ", -1);
-
- clone = generate_command (xsmp->restart_command, NULL, NULL);
- restart = generate_command (xsmp->restart_command, xsmp->client_id, NULL);
-
- g_debug ("Setting initial properties");
-
- /* Program, CloneCommand, RestartCommand, and UserID are required.
- * ProcessID isn't required, but the SM may be able to do something
- * useful with it.
- */
- g_snprintf (pid_str, sizeof (pid_str), "%lu", (gulong) getpid ());
- set_properties (xsmp,
- string_prop (SmProgram, g_ge