diff options
-rw-r--r-- | AUTHORS | 14 | ||||
-rw-r--r-- | Makefile.am | 13 | ||||
-rw-r--r-- | README | 25 | ||||
-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-x | autogen.sh | 6 | ||||
-rw-r--r-- | configure.ac | 49 | ||||
-rw-r--r-- | data/icons/message-bubble.svg | 70 | ||||
-rw-r--r-- | data/icons/tutortool.svg | 72 | ||||
-rw-r--r-- | m4/gnome-compiler-flags.m4 | 141 | ||||
-rw-r--r-- | m4/python.m4 | 62 | ||||
-rw-r--r-- | po/POTFILES.in | 6 | ||||
-rw-r--r-- | po/POTFILES.skip | 6 | ||||
-rw-r--r-- | po/af.po | 153 | ||||
-rw-r--r-- | po/am.po | 153 | ||||
-rw-r--r-- | po/ar.po | 564 | ||||
-rw-r--r-- | po/ay.po | 153 | ||||
-rw-r--r-- | po/bg.po | 153 | ||||
-rw-r--r-- | po/bi.po | 153 | ||||
-rw-r--r-- | po/bn.po | 153 | ||||
-rw-r--r-- | po/bn_IN.po | 153 | ||||
-rw-r--r-- | po/ca.po | 153 | ||||
-rw-r--r-- | po/cs.po | 160 | ||||
-rw-r--r-- | po/de.po | 152 | ||||
-rw-r--r-- | po/dz.po | 153 | ||||
-rw-r--r-- | po/el.po | 153 | ||||
-rw-r--r-- | po/en.po | 153 | ||||
-rw-r--r-- | po/es.po | 630 | ||||
-rw-r--r-- | po/fa.po | 153 | ||||
-rw-r--r-- | po/fa_AF.po | 153 | ||||
-rw-r--r-- | po/ff.po | 153 | ||||
-rw-r--r-- | po/fr.po | 189 | ||||
-rw-r--r-- | po/gu.po | 153 | ||||
-rw-r--r-- | po/ha.po | 153 | ||||
-rw-r--r-- | po/he.po | 153 | ||||
-rw-r--r-- | po/hi.po | 153 | ||||
-rw-r--r-- | po/ht.po | 153 | ||||
-rw-r--r-- | po/hu.po | 153 | ||||
-rw-r--r-- | po/ig.po | 153 | ||||
-rw-r--r-- | po/is.po | 153 | ||||
-rw-r--r-- | po/it.po | 194 | ||||
-rw-r--r-- | po/ja.po | 149 | ||||
-rw-r--r-- | po/km.po | 153 | ||||
-rw-r--r-- | po/ko.po | 153 | ||||
-rw-r--r-- | po/mk.po | 153 | ||||
-rw-r--r-- | po/ml.po | 153 | ||||
-rw-r--r-- | po/mn.po | 190 | ||||
-rw-r--r-- | po/mr.po | 152 | ||||
-rw-r--r-- | po/mvo.po | 153 | ||||
-rw-r--r-- | po/nb.po | 152 | ||||
-rw-r--r-- | po/ne.po | 154 | ||||
-rw-r--r-- | po/nl.po | 189 | ||||
-rw-r--r-- | po/pa.po | 153 | ||||
-rw-r--r-- | po/pap.po | 153 | ||||
-rw-r--r-- | po/pis.po | 153 | ||||
-rw-r--r-- | po/pl.po | 153 | ||||
-rw-r--r-- | po/ps.po | 153 | ||||
-rw-r--r-- | po/pseudo.po | 153 | ||||
-rw-r--r-- | po/pt.po | 153 | ||||
-rw-r--r-- | po/pt_BR.po | 153 | ||||
-rw-r--r-- | po/qu.po | 153 | ||||
-rw-r--r-- | po/ro.po | 153 | ||||
-rw-r--r-- | po/ru.po | 161 | ||||
-rw-r--r-- | po/rw.po | 154 | ||||
-rw-r--r-- | po/sd.po | 153 | ||||
-rw-r--r-- | po/si.po | 152 | ||||
-rw-r--r-- | po/sk.po | 160 | ||||
-rw-r--r-- | po/sl.po | 202 | ||||
-rw-r--r-- | po/sugar-toolkit.pot | 154 | ||||
-rw-r--r-- | po/sv.po | 152 | ||||
-rw-r--r-- | po/sw.po | 152 | ||||
-rw-r--r-- | po/te.po | 154 | ||||
-rw-r--r-- | po/th.po | 153 | ||||
-rw-r--r-- | po/tpi.po | 153 | ||||
-rw-r--r-- | po/tr.po | 153 | ||||
-rw-r--r-- | po/ur.po | 152 | ||||
-rw-r--r-- | po/vi.po | 153 | ||||
-rw-r--r-- | po/wa.po | 153 | ||||
-rw-r--r-- | po/yo.po | 153 | ||||
-rw-r--r-- | po/zh_CN.po | 153 | ||||
-rw-r--r-- | po/zh_TW.po | 146 | ||||
-rw-r--r-- | setup.cfg | 8 | ||||
-rwxr-xr-x | setup.py | 65 | ||||
-rw-r--r-- | src/Makefile.am | 1 | ||||
-rw-r--r-- | src/sugar/Makefile.am | 87 | ||||
-rw-r--r-- | src/sugar/_sugarext.defs | 416 | ||||
-rw-r--r-- | src/sugar/_sugarext.override | 81 | ||||
-rw-r--r-- | src/sugar/_sugarextmodule.c | 50 | ||||
-rw-r--r-- | src/sugar/acme-volume-alsa.c | 317 | ||||
-rw-r--r-- | src/sugar/acme-volume-alsa.h | 47 | ||||
-rw-r--r-- | src/sugar/acme-volume.c | 127 | ||||
-rw-r--r-- | src/sugar/acme-volume.h | 63 | ||||
-rw-r--r-- | src/sugar/activity/Makefile.am | 10 | ||||
-rw-r--r-- | src/sugar/activity/__init__.py | 55 | ||||
-rw-r--r-- | src/sugar/activity/activityfactory.py | 343 | ||||
-rw-r--r-- | src/sugar/activity/activityhandle.py | 70 | ||||
-rw-r--r-- | src/sugar/activity/activityservice.py | 82 | ||||
-rw-r--r-- | src/sugar/activity/bundlebuilder.py | 398 | ||||
-rw-r--r-- | src/sugar/activity/main.py | 140 | ||||
-rw-r--r-- | src/sugar/activity/namingalert.py | 320 | ||||
-rw-r--r-- | src/sugar/bundle/Makefile.am | 6 | ||||
-rw-r--r-- | src/sugar/bundle/__init__.py | 16 | ||||
-rw-r--r-- | src/sugar/bundle/activitybundle.py | 375 | ||||
-rw-r--r-- | src/sugar/bundle/bundle.py | 199 | ||||
-rw-r--r-- | src/sugar/bundle/contentbundle.py | 220 | ||||
-rw-r--r-- | src/sugar/datastore/Makefile.am | 5 | ||||
-rw-r--r-- | src/sugar/datastore/__init__.py | 16 | ||||
-rw-r--r-- | src/sugar/datastore/datastore.py | 254 | ||||
-rw-r--r-- | src/sugar/datastore/dbus_helpers.py | 104 | ||||
-rw-r--r-- | src/sugar/eggaccelerators.c | 702 | ||||
-rw-r--r-- | src/sugar/eggaccelerators.h | 89 | ||||
-rw-r--r-- | src/sugar/eggdesktopfile.c | 1437 | ||||
-rw-r--r-- | src/sugar/eggdesktopfile.h | 156 | ||||
-rw-r--r-- | src/sugar/eggsmclient-private.h | 56 | ||||
-rw-r--r-- | src/sugar/eggsmclient-xsmp.c | 1359 | ||||
-rw-r--r-- | src/sugar/eggsmclient.c | 392 | ||||
-rw-r--r-- | src/sugar/eggsmclient.h | 112 | ||||
-rw-r--r-- | src/sugar/env.py | 60 | ||||
-rw-r--r-- | src/sugar/graphics/Makefile.am | 27 | ||||
-rw-r--r-- | src/sugar/graphics/__init__.py | 18 | ||||
-rw-r--r-- | src/sugar/graphics/alert.py | 436 | ||||
-rw-r--r-- | src/sugar/graphics/animator.py | 148 | ||||
-rw-r--r-- | src/sugar/graphics/canvastextview.py | 39 | ||||
-rw-r--r-- | src/sugar/graphics/colorbutton.py | 526 | ||||
-rw-r--r-- | src/sugar/graphics/combobox.py | 168 | ||||
-rw-r--r-- | src/sugar/graphics/entry.py | 39 | ||||
-rw-r--r-- | src/sugar/graphics/icon.py | 872 | ||||
-rw-r--r-- | src/sugar/graphics/iconentry.py | 106 | ||||
-rw-r--r-- | src/sugar/graphics/menuitem.py | 94 | ||||
-rw-r--r-- | src/sugar/graphics/notebook.py | 150 | ||||
-rw-r--r-- | src/sugar/graphics/objectchooser.py | 130 | ||||
-rw-r--r-- | src/sugar/graphics/palette.py | 1124 | ||||
-rw-r--r-- | src/sugar/graphics/palettegroup.py | 95 | ||||
-rw-r--r-- | src/sugar/graphics/panel.py | 27 | ||||
-rw-r--r-- | src/sugar/graphics/radiotoolbutton.py | 180 | ||||
-rw-r--r-- | src/sugar/graphics/roundbox.py | 70 | ||||
-rw-r--r-- | src/sugar/graphics/style.py | 133 | ||||
-rw-r--r-- | src/sugar/graphics/toggletoolbutton.py | 89 | ||||
-rw-r--r-- | src/sugar/graphics/toolbox.py | 102 | ||||
-rw-r--r-- | src/sugar/graphics/toolbutton.py | 158 | ||||
-rw-r--r-- | src/sugar/graphics/toolcombobox.py | 63 | ||||
-rw-r--r-- | src/sugar/graphics/tray.py | 461 | ||||
-rw-r--r-- | src/sugar/graphics/xocolor.py | 259 | ||||
-rw-r--r-- | src/sugar/gsm-app.c | 396 | ||||
-rw-r--r-- | src/sugar/gsm-app.h | 70 | ||||
-rw-r--r-- | src/sugar/gsm-client-xsmp.c | 828 | ||||
-rw-r--r-- | src/sugar/gsm-client-xsmp.h | 70 | ||||
-rw-r--r-- | src/sugar/gsm-client.c | 251 | ||||
-rw-r--r-- | src/sugar/gsm-client.h | 111 | ||||
-rw-r--r-- | src/sugar/gsm-session.c | 497 | ||||
-rw-r--r-- | src/sugar/gsm-session.h | 95 | ||||
-rw-r--r-- | src/sugar/gsm-xsmp.c | 535 | ||||
-rw-r--r-- | src/sugar/gsm-xsmp.h | 29 | ||||
-rw-r--r-- | src/sugar/network.py | 297 | ||||
-rw-r--r-- | src/sugar/presence/Makefile.am | 9 | ||||
-rw-r--r-- | src/sugar/presence/__init__.py | 24 | ||||
-rw-r--r-- | src/sugar/presence/activity.py | 410 | ||||
-rw-r--r-- | src/sugar/presence/buddy.py | 239 | ||||
-rw-r--r-- | src/sugar/presence/presenceservice.py | 609 | ||||
-rw-r--r-- | src/sugar/presence/sugartubeconn.py | 63 | ||||
-rw-r--r-- | src/sugar/presence/test_presence.txt | 26 | ||||
-rw-r--r-- | src/sugar/presence/tubeconn.py | 114 | ||||
-rw-r--r-- | src/sugar/profile.py | 216 | ||||
-rw-r--r-- | src/sugar/session.py | 50 | ||||
-rw-r--r-- | src/sugar/sexy-icon-entry.c | 984 | ||||
-rw-r--r-- | src/sugar/sexy-icon-entry.h | 104 | ||||
-rw-r--r-- | src/sugar/sugar-address-entry.c | 576 | ||||
-rw-r--r-- | src/sugar/sugar-address-entry.h | 54 | ||||
-rw-r--r-- | src/sugar/sugar-grid.c | 120 | ||||
-rw-r--r-- | src/sugar/sugar-grid.h | 63 | ||||
-rw-r--r-- | src/sugar/sugar-key-grabber.c | 265 | ||||
-rw-r--r-- | src/sugar/sugar-key-grabber.h | 69 | ||||
-rw-r--r-- | src/sugar/sugar-marshal.list | 1 | ||||
-rw-r--r-- | src/sugar/sugar-menu.c | 63 | ||||
-rw-r--r-- | src/sugar/sugar-menu.h | 57 | ||||
-rw-r--r-- | src/sugar/tutorius/temp.py | 1 | ||||
-rw-r--r-- | src/sugar/util.py | 293 | ||||
-rw-r--r-- | src/sugar/wm.py | 46 | ||||
-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.py | 55 | ||||
-rw-r--r-- | tests/graphics/hipposcalability.py | 50 | ||||
-rw-r--r-- | tests/graphics/iconcache.py | 69 | ||||
-rw-r--r-- | tests/graphics/iconwidget.py | 87 | ||||
-rw-r--r-- | tests/graphics/ticket2855.py | 59 | ||||
-rw-r--r-- | tests/graphics/ticket2999.py | 38 | ||||
-rw-r--r-- | tests/graphics/ticket3000.py | 48 | ||||
-rw-r--r-- | tests/graphics/toolbarpalettes.py | 65 | ||||
-rw-r--r-- | tests/graphics/tray.py | 82 | ||||
-rw-r--r-- | tests/gtkutilstests.py (renamed from src/sugar/tutorius/tests/gtkutilstests.py) | 0 | ||||
-rw-r--r-- | tests/lib/runall.py | 28 | ||||
-rw-r--r-- | tests/lib/test_mime.py | 81 | ||||
-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-x | tests/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 @@ -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 "<Control>a" or "<Shift><Alt>F1" or - * "<Release>z" (the last one is for key release). The parser - * is fairly liberal and allows lower or upper case, and also - * abbreviations such as "<Ctl>" and "<Ctrl>". - * - * 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 "<Control>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 |