[Debian-islamic-commits] [monajat] 02/12: Imported Upstream version 2.6.5

أحمد المحمودي (Ahmed El-Mahmoudy) aelmahmoudy at sabily.org
Sat Apr 12 17:06:04 UTC 2014


This is an automated email from the git hooks/post-receive script.

aelmahmoudy-guest pushed a commit to branch master
in repository monajat.

commit dd30f9eb3bd012003b6ce944728f17d1ddf67794
Author: أحمد المحمودي (Ahmed El-Mahmoudy) <aelmahmoudy at sabily.org>
Date:   Thu Apr 10 17:54:06 2014 +0200

    Imported Upstream version 2.6.5
---
 Makefile                                           |  100 ++
 TODO                                               |    4 +
 convert-from-old.py                                |   26 +-
 gen-mo.sh                                          |   12 -
 ...tostart.desktop => monajat-autostart.desktop.in |    7 +-
 monajat.spec                                       |  142 +-
 monajat/applet.py                                  | 1437 +++++++++++---------
 monajat/itl.py                                     |  513 +++----
 monajat/monajat.py                                 |  297 ++--
 monajat/sqlGenerator.py                            |   84 +-
 monajat/utils.py                                   |   66 +-
 po/Makefile                                        |   44 +
 po/POTFILES.am                                     |    3 +
 po/ar.po                                           |  103 +-
 po/az.po                                           |  110 +-
 po/bn.po                                           |  101 +-
 po/bs.po                                           |  189 +++
 po/de.po                                           |  110 +-
 po/en_GB.po                                        |  100 +-
 po/es.po                                           |  110 +-
 po/fa.po                                           |   99 +-
 po/fr.po                                           |   99 +-
 po/he.po                                           |   99 +-
 po/hu.po                                           |   99 +-
 po/id.po                                           |  118 +-
 po/jv.po                                           |  110 +-
 po/ku.po                                           |   99 +-
 po/monajat.pot                                     |  167 ---
 po/ms.po                                           |  112 +-
 po/nds.po                                          |  124 +-
 po/nl.po                                           |  110 +-
 po/pt.po                                           |  109 +-
 po/ru.po                                           |  110 +-
 po/sv.po                                           |  173 ++-
 po/tr.po                                           |  110 +-
 po/tt.po                                           |   99 +-
 screenlets/Monajat/MonajatScreenlet.py             |  544 ++++----
 setup.py                                           |   42 +-
 update-pot.sh                                      |   10 -
 39 files changed, 3497 insertions(+), 2494 deletions(-)

diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..18c8b01
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,100 @@
+APPNAME := monajat
+VERSION := $(shell awk '/Version:/ { print $$2 }' $(APPNAME).spec)
+DESTDIR = /
+DATADIR = $(DESTDIR)/usr/share
+DOCDIR = $(DATADIR)/doc/$(APPNAME)-$(VERSION)
+XDGDIR = $(DESTDIR)/etc/xdg
+SOURCES = $(wildcard *.desktop.in)
+TARGETS = ${SOURCES:.in=}
+
+ECHO := echo
+NAKE := make
+PYTHON := python2
+INSTALL := install
+INTLTOOL_MERGE := intltool-merge
+RM := $(shell which rm | egrep '/' | sed  's/\s//g')
+
+
+all: $(TARGETS) db
+
+icons:
+	@for i in 96 72 64 48 36 32 24 22 16; do \
+		convert -background none monajat-data/$(APPNAME).svg -resize $${i}x$${i} $(APPNAME)-$${i}.png; \
+	done
+db:
+	@$(PYTHON) gen-db.py
+		
+pos:
+	@$(MAKE) -C po all
+
+install: all
+	@$(ECHO) "*** Installing..."
+	@$(PYTHON) setup.py install -O2 --root $(DESTDIR)
+	@$(ECHO) "Copying: $(APPNAME)-autostart.desktop -> $(XDGDIR)/autostart/"
+	@$(INSTALL) -d $(XDGDIR)/autostart/
+	@$(INSTALL) -m 0644 $(APPNAME)-autostart.desktop $(XDGDIR)/autostart/
+	@$(INSTALL) -d $(DATADIR)
+	@cp -r screenlets $(DATADIR)
+	@$(INSTALL) -d $(DOCDIR)
+	@$(INSTALL) -d $(DATADIR)/icons/hicolor/scalable/apps;
+	@$(INSTALL) -m 0644 -D monajat-data/$(APPNAME).svg $(DATADIR)/icons/hicolor/scalable/apps/
+#	@for i in 96 72 64 48 36 32 24 22 16; do \
+#		$(INSTALL) -d $(DATADIR)/icons/hicolor/$${i}x$${i}/apps; \
+#		$(INSTALL) -m 0644 -D $(APPNAME)-$${i}.png $(DATADIR)/icons/hicolor/$${i}x$${i}/apps/$(APPNAME).png; \
+#	done
+	for i in README COPYING TODO NEWS; do\
+		$(ECHO) "Copying: $${i} -> $(DOCDIR)";\
+		$(INSTALL) -m 0644 -D $${i} $(DOCDIR)/$${i}; \
+	done
+
+uninstall:
+	@$(ECHO) "*** Uninstalling..."
+	@$(ECHO) "- Removing: $(XDGDIR)/autostart/$(APPNAME)-autostart.desktop"
+	@$(RM) -f $(XDGDIR)/autostart/$(APPNAME)-autostart.desktop
+	@$(ECHO) "- Removing: $(DOCDIR)"
+	@$(RM) -rf $(DOCDIR)
+	@$(ECHO) "- Removing: $(DESTDIR)/usr/share/locale/*/LC_MESSAGES/$(APPNAME).mo"
+	@$(RM) -f $(DESTDIR)/usr/share/locale/*/LC_MESSAGES/$(APPNAME).mo
+	@$(ECHO) "- Removing: $(DESTDIR)/usr/bin/$(APPNAME)"
+	@$(RM) -f $(DESTDIR)/usr/bin/$(APPNAME)
+	@$(ECHO) "- Removing: $(DESTDIR)/usr/lib/python*/site-packages/$(APPNAME)"
+	@$(RM) -rf $(DESTDIR)/usr/lib/python*/site-packages/$(APPNAME)
+	@$(ECHO) "- Removing: $(DESTDIR)/usr/lib/python*/site-packages/$(APPNAME)*"
+	@$(RM) -r $(DESTDIR)/usr/lib/python*/site-packages/$(APPNAME)*
+	@$(ECHO) "- Removing: $(DATADIR)/screenlets"
+	@$(RM) -rf $(DATADIR)/screenlets
+	@$(ECHO) "- Removing: $(DATADIR)/$(APPNAME)"
+	@$(RM) -rf $(DATADIR)/$(APPNAME)
+	@$(ECHO) "- Removing: $(DATADIR)/icons/hicolor/scalable/apps/$(APPNAME).svg"
+	@$(RM) -f $(DATADIR)/icons/hicolor/scalable/apps/$(APPNAME).svg
+	@$(ECHO) "- Removing: $(DATADIR)/icons/hicolor/*/apps/$(APPNAME).png"
+	@$(RM) -f $(DATADIR)/icons/hicolor/*/apps/$(APPNAME).png;
+	@$(ECHO) "- Removing: $(DESTDIR)/usr/bin/$(APPNAME)-*"
+	@$(RM) -f $(DESTDIR)/usr/bin/$(APPNAME)-*
+
+		
+%.desktop: %.desktop.in pos
+	@$(ECHO) "*** Generating Database..."
+	@$(INTLTOOL_MERGE) -d po $< $@
+
+clean_restor_pos:
+	@make clean
+	@$(ECHO) "*** Retoring pos..."
+	@git checkout po/* 2>/dev/null || :
+    
+clean:
+	@$(ECHO) "*** Cleaning..."
+	@$(MAKE) -C po clean
+	@$(ECHO) "- Removing: $(TARGETS)"
+	@$(RM) -f $(TARGETS)
+	@$(ECHO) "- Removing: locale build"
+	@$(RM) -rf locale build
+	@$(ECHO) "- Removing: *.pyc"
+	@$(RM) -f *.pyc
+	@$(ECHO) "- Removing: */*.pyc"
+	@$(RM) -f */*.pyc
+	@$(ECHO) "- Removing: $(APPNAME)-*.png"
+	@$(RM) -f $(APPNAME)-*.png
+	@$(ECHO) "- Removing: monajat-data/data.db"
+	@$(RM) -f monajat-data/data.db
+	
diff --git a/TODO b/TODO
index f8a2eea..b7e102d 100644
--- a/TODO
+++ b/TODO
@@ -1,3 +1,6 @@
+
+- rewrite monajat screenlets ( may use gtk3 + css )
+
 - display which city
 - if caps got buttons and html but no hyperlinks show a button to display reference
 - the phrase "it's merits" should be in the language choosed by user not desktop language - FIXMED
@@ -18,3 +21,4 @@
 - rematch the Hadith numbers with the one from the publisher we want to use.
 - put links to web sites having the full text of the hadith
 
+
diff --git a/convert-from-old.py b/convert-from-old.py
index 577bfd2..4674ace 100755
--- a/convert-from-old.py
+++ b/convert-from-old.py
@@ -13,22 +13,22 @@ tw=textwrap.TextWrapper()
 tw.break_on_hyphens=False
 
 for i in glob('doa/??/*.xml'):
-  fo=i[:-3].lower()+'txt'
-  lang=i[4:6]
-  r=os.path.basename(i)[0].upper()
-  n=digits_re.findall(i)
-  c=open(i,"rt").read().decode('utf-8').replace(u'\u200F','')
-  l="\n".join(map(lambda i: space_re.sub(' ',i).strip(),lines_re.findall(c))).strip()
-  # d is ignored because we want unified d
-  d=" ".join(map(lambda i: space_re.sub(' ',i).strip(),desc_re.findall(c))).strip()
+    fo=i[:-3].lower()+'txt'
+    lang=i[4:6]
+    r=os.path.basename(i)[0].upper()
+    n=digits_re.findall(i)
+    c=open(i,"rt").read().decode('utf-8').replace(u'\u200F','')
+    l="\n".join(map(lambda i: space_re.sub(' ',i).strip(),lines_re.findall(c))).strip()
+    # d is ignored because we want unified d
+    d=" ".join(map(lambda i: space_re.sub(' ',i).strip(),desc_re.findall(c))).strip()
 
-  t="\n".join(map(lambda p: tw.fill(p), l.split('\n\n')))
-  if n: D=':'.join(n)
-  else: D=d
-  o="""@lang=%s
+    t="\n".join(map(lambda p: tw.fill(p), l.split('\n\n')))
+    if n: D=':'.join(n)
+    else: D=d
+    o="""@lang=%s
 @ref=%s
 @id=%s
 @text
 %s""" % (lang,r,D,t)
-  open(fo,"wt").write(o.encode('utf-8'))
+    open(fo,"wt").write(o.encode('utf-8'))
 
diff --git a/gen-mo.sh b/gen-mo.sh
deleted file mode 100755
index ae163cf..0000000
--- a/gen-mo.sh
+++ /dev/null
@@ -1,12 +0,0 @@
-#! /bin/bash
-pushd po
-for i in *.po
-do
-po=$i
-msgmerge "$po" "monajat.pot" > "$po.tmp" && \
-mv "$po.tmp" "$po"
-mkdir -p "../locale/${po/.po/}/LC_MESSAGES/"
-msgfmt -o "../locale/${po/.po/}/LC_MESSAGES/monajat.mo" "$po"
-done
-popd
-
diff --git a/monajat-autostart.desktop b/monajat-autostart.desktop.in
similarity index 51%
rename from monajat-autostart.desktop
rename to monajat-autostart.desktop.in
index 974cfff..449344d 100644
--- a/monajat-autostart.desktop
+++ b/monajat-autostart.desktop.in
@@ -1,8 +1,7 @@
 [Desktop Entry]
-Name=Monajat Applet for supplications
-Name[ar]=بريمج مناجاة للأذكار
-Comment=Monajat in system tray icon
-Comment[ar]=بريمج مناجاة للأذكار
+Encoding=UTF-8
+_Name=Monajat Applet for supplications
+_Comment=Monajat in system tray icon
 Exec=/usr/bin/monajat-applet --auto
 Terminal=false
 Type=Application
diff --git a/monajat.spec b/monajat.spec
index 6528966..c245ba8 100644
--- a/monajat.spec
+++ b/monajat.spec
@@ -1,60 +1,73 @@
-Name: monajat
-Summary: Monajat Islamic Supplications
-URL: http://git.ojuba.org/cgit/monajat/about/
-Version: 2.6.3
-Release: 1%{?dist}
-Source0: http://git.ojuba.org/cgit/monajat/snapshot/%{name}-%{version}.tar.bz2
-License: GPLv2
-Group: System Environment/Base
-BuildArch: noarch
-BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
-BuildRequires: gettext
-BuildRequires: python, python-setuptools
+%global owner ojuba-org
+%global commit #Write commit number here
+
+Name:		monajat
+Summary:	Monajat Islamic Supplications
+URL:		http://ojuba.org
+Version:	2.6.5
+Release:	2%{?dist}
+Source:		https://github.com/%{owner}/%{name}/archive/%{commit}/%{name}-%{commit}.tar.gz
+License:	WAQFv2 and GPLv2
+Group:		System Environment/Base
+BuildArch:	noarch
+Requires:	python, libitl
+Requires:	libitl
+Requires:	pygobject3 >= 3.0.2
+BuildRequires:	gettext
+BuildRequires:	python
+BuildRequires:	python-setuptools
+BuildRequires:	python2-devel
 
 # /usr/share/gnome-shell/extensions/Monajat at ojuba.org
 
-%{!?python_sitelib: %define python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")}
-
 %description
 Monajat Islamic Supplications
 
 %package database
-Group: System Environment/Base
-Summary: Monajat Islamic Supplications database
-BuildArch: noarch
+Group:		System Environment/Base
+Summary:	Monajat Islamic Supplications database
+BuildArch:	noarch
+
 %description database
 Monajat Islamic Supplications
 
 This is the database used by monajat.
 
 
-%package python
-Group: System Environment/Base
-Summary: Monajat Islamic Supplications
-BuildArch: noarch
-Requires: python, %{name}-database, libitl
-%description python
+%package -n python-monajat
+Group:		System Environment/Base
+Summary:	Monajat Islamic Supplications
+BuildArch:	noarch
+Requires:	python
+Requires:	%{name}-database
+Requires:	libitl
+
+%description -n python-monajat
 Monajat Islamic Supplications
 
 This is the python monajat library needed by all monajat front ends
 
 %package applet
-Summary: Monajat Islamic Supplications for Desktop Tray Applet
-Group: System Environment/Base
-BuildArch: noarch
-Requires: %{name}-python
+Summary:	Monajat Islamic Supplications for Desktop Tray Applet
+Group:		System Environment/Base
+BuildArch:	noarch
+Requires:	python-monajat
 # TODO: is it better to say gnome-python2-extras ?
-Requires: pygtk2, notify-python, desktop-notification-daemon
+Requires:	pygtk2
+Requires:	notify-python
+Requires:	desktop-notification-daemon
+
 %description applet
 Monajat Islamic Supplications
 
 This package contains the Desktop Tray Applet
 
 %package mod
-Summary: Monajat Islamic Supplications for console
-Group: System Environment/Base
-BuildArch: noarch
-Requires: %{name}-python
+Summary:	Monajat Islamic Supplications for console
+Group:		System Environment/Base
+BuildArch:	noarch
+Requires:	python-monajat
+
 %description mod
 Monajat Islamic Supplications
 
@@ -62,60 +75,46 @@ This package contains a console application that can be used in issue message
 or in the profile
 
 %package screenlets
-Summary: Monajat Islamic Supplications for Screenlets
-Group: System Environment/Base
-BuildArch: noarch
-Requires: screenlets
-Requires: %{name}-python
+Summary:	Monajat Islamic Supplications for Screenlets
+Group:		System Environment/Base
+BuildArch:	noarch
+Requires:	screenlets
+Requires:	python-monajat
+
 %description screenlets
 Monajat Islamic Supplications
 
 This package contains screenlets version
 
 %prep
-%setup -q
+%setup -q -n %{name}-%{commit}
+
 %build
-./update-pot.sh
-./gen-mo.sh
+make %{?_smp_mflags}
 
 %install
-rm -rf $RPM_BUILD_ROOT
-
-# ./gen-db.py # should be done by setup.py
-
-%{__python} setup.py install \
-        --root=$RPM_BUILD_ROOT \
-        --optimize=2
-rm $RPM_BUILD_ROOT/%{python_sitelib}/%{name}/sql*.py*
-mkdir -p $RPM_BUILD_ROOT/%{_datadir}/icons/hicolor/scalable/apps/
-ln -s ../../../../%{name}/%{name}.svg $RPM_BUILD_ROOT/%{_datadir}/icons/hicolor/scalable/apps/%{name}.svg
-
-# install the screenlets
-mkdir -p $RPM_BUILD_ROOT/%{_datadir}/
-cp -r screenlets $RPM_BUILD_ROOT/%{_datadir}/
-
-%clean
-rm -rf $RPM_BUILD_ROOT
+%makeinstall DESTDIR=$RPM_BUILD_ROOT
 
 %files database
 %{_datadir}/%{name}/data.db
 
-%files python
-%doc README COPYING TODO
-%{python_sitelib}/%{name}/__init__.py*
-%{python_sitelib}/%{name}/%{name}.py*
-%{python_sitelib}/%{name}/itl.py*
-%{python_sitelib}/*.egg-info
+%files -n python-monajat
+%doc README COPYING TODO NEWS
+%{_defaultdocdir}/%{name}-%{version}/*
+%{python2_sitelib}/%{name}/*.py*
+%{python2_sitelib}/*.egg-info
 %{_datadir}/locale/*/*/*.mo
 
 %files applet
-%{python_sitelib}/%{name}/applet.py*
-%{python_sitelib}/%{name}/utils.py*
+#%{python2_sitelib}/%{name}/applet.py*
+#%{python2_sitelib}/%{name}/utils.py*
 %{_bindir}/%{name}-applet
 %{_datadir}/%{name}/cities.db
 %{_datadir}/%{name}/athan.ogg
 %{_datadir}/%{name}/%{name}.svg
+
 %{_datadir}/icons/hicolor/scalable/apps/%{name}.svg
+#%{_datadir}/icons/hicolor/*/apps/%{name}.png
 /etc/xdg/autostart/*
 
 %files mod
@@ -125,6 +124,18 @@ rm -rf $RPM_BUILD_ROOT
 %{_datadir}/screenlets/*
 
 %changelog
+* Sun Feb 16 2014 Mosaab Alzoubi <moceap at hotmail.com> - 2.6.5-2
+- General Revision.
+
+* Sat Jul 23 2011 Muayyad Saleh Alsadi <alsadi at ojuba.org> - 2.6.4-1
+- use notify object per notification
+- fix unicode
+- fix installation files
+- cities search fix
+- speed up search cities
+- port SoundPlayer to Gst
+- Port to gtk3
+
 * Sat Jul 23 2011 Muayyad Saleh Alsadi <alsadi at ojuba.org> - 2.6.0-1
 - play Athan audio file
 
@@ -151,4 +162,3 @@ rm -rf $RPM_BUILD_ROOT
 
 * Thu Aug 6 2009  Muayyad Saleh AlSadi <alsadi at ojuba.org> - 0.1.0-1
 - initial packing
-
diff --git a/monajat/applet.py b/monajat/applet.py
index bb5e750..2c49b6d 100644
--- a/monajat/applet.py
+++ b/monajat/applet.py
@@ -1,4 +1,5 @@
 # -*- coding: utf-8 -*-
+# -*- Mode: Python; py-indent-offset: 4 -*-
 import os, os.path
 import itl
 from monajat import Monajat
@@ -6,647 +7,853 @@ from utils import init_dbus
 import locale, gettext
 import re
 
-import glib
-import gtk
-import pynotify
+from gi.repository import Gtk, Gdk, Notify, Gst, GObject
 import cgi
 import math
 import json
 import time
-import gst
 
 # in gnome3 ['actions', 'action-icons', 'body', 'body-markup', 'icon-static', 'persistence']
 # in gnome2 ['actions', 'body', 'body-hyperlinks', 'body-markup', 'icon-static', 'sound']
 # "resident"
 
-class SoundPlayer:
-  def __init__(self, fn=None, change_play_status=None):
-    if not fn: fn=""
-    self.fn=fn
-    self.change_play_status=change_play_status
-    self.gst_player = gst.element_factory_make("playbin2", "player")
-    self.gst_player.set_property("uri", "file://" + fn)
-    bus = self.gst_player.get_bus()
-    bus.add_signal_watch()
-    bus.connect("message", self.on_message)
+class SoundPlayer(object):
+    def __init__(self, fn = "", change_play_status = None):
+        """ SoundPlayer Using gst """
+        self.fn = fn
+        self.change_play_status = change_play_status
+        Gst.init_check(None)
+        self.gst_player = Gst.ElementFactory.make("playbin", "Ojuba-SoundPlayer")
+        self.gst_player.set_property("uri", "file://" + fn)
+        bus = self.gst_player.get_bus()
+        bus.add_signal_watch()
+        #bus.connect("message", self.on_message)
+        bus.connect('message::eos', self.on_message)
+        bus.connect('message::error', self.on_message)
+        
+    def play(self):
+        fn = self.fn
+        if fn and os.path.isfile(fn):
+            self.gst_player.set_state(Gst.State.PLAYING)
     
-  def play(self):
-    fn=self.fn
-    if fn and os.path.isfile(fn):
-      self.gst_player.set_state(gst.STATE_PLAYING)
-  
-  def stop(self):
-    self.gst_player.set_state(gst.STATE_NULL)
-  
-  def set_filename(self,fn):
-    if not fn: fn=""
-    self.fn=fn
-    self.gst_player.set_property("uri", "file://" + fn)
+    def stop(self):
+        self.gst_player.set_state(Gst.State.NULL)
     
-  def on_message(self, bus, message):
-    t = message.type
-    # print t
-    if t == gst.MESSAGE_EOS:
-      if self.change_play_status: self.change_play_status()
-      self.gst_player.set_state(gst.STATE_NULL)
-    elif t == gst.MESSAGE_ERROR:
-      self.gst_player.set_state(gst.STATE_NULL)
-      err, debug = message.parse_error()
-      print "Error: %s" % err, debug
-
-normalize_tb={
+    def set_filename(self,fn):
+        if not fn or not os.path.isfile(fn):
+            return
+        self.fn = fn
+        self.gst_player.set_property("uri", "file://" + fn)
+        
+    def on_message(self, bus, message):
+        if message:
+            print message
+        self.gst_player.set_state(Gst.State.NULL)
+
+normalize_tb = {
 65: 97, 66: 98, 67: 99, 68: 100, 69: 101, 70: 102, 71: 103, 72: 104, 73: 105, 74: 106, 75: 107, 76: 108, 77: 109, 78: 110, 79: 111, 80: 112, 81: 113, 82: 114, 83: 115, 84: 116, 85: 117, 86: 118, 87: 119, 88: 120, 89: 121, 90: 122,
 1600: None, 1569: 1575, 1570: 1575, 1571: 1575, 1572: 1575, 1573: 1575, 1574: 1575,
-1577: 1607, # teh marboota ->  haa
+1577: 1607, # teh marboota ->    haa
 1611: None, 1612: None, 1613: None, 1614: None, 1615: None, 1616: None, 1617: None, 1618: None, 1609: 1575}
 
-
-class ConfigDlg(gtk.Dialog):
-  def __init__(self, applet):
-    gtk.Dialog.__init__(self)
-    self.applet=applet
-    self.m=applet.m
-    self.set_size_request(300,400)
-    self.set_resizable(False) # FIXME: reconsider this
-    self.connect('delete-event', lambda w,*a: w.hide() or True)
-    self.connect('response', lambda w,*a: w.hide() or True)
-    self.set_title(_('Monajat Configuration'))
-    self.add_button(_('Cancel'), gtk.RESPONSE_CANCEL)
-    self.add_button(_('Save'), gtk.RESPONSE_OK)
-    tabs=gtk.Notebook()
-    self.get_content_area().add(tabs)
-    vb=gtk.VBox()
-    tabs.append_page(vb, gtk.Label(_('Generic')))
-    self.auto_start = b = gtk.CheckButton(_("Auto start"))
-    self.auto_start.set_active(not os.path.exists(self.applet.skip_auto_fn))
-    vb.pack_start(b, False, False, 2)
-    self.show_merits = b = gtk.CheckButton(_("Show merits"))
-    self.show_merits.set_active(self.applet.conf['show_merits'])
-    vb.pack_start(b, False, False, 2)
-    hb = gtk.HBox()
-    vb.pack_start(hb, False, False, 2)
-    hb.pack_start(gtk.Label(_('Language:')), False, False, 2)
-    self.lang = b = gtk.combo_box_new_text()
-    hb.pack_start(b, False, False, 2)
-    selected = 0
-    for i,j in enumerate(self.applet.m.langs):
-      b.append_text(j)
-      if self.m.lang==j: selected=i
-    b.set_active(selected)
-    
-    hb = gtk.HBox()
-    vb.pack_start(hb, False, False, 2)
-    hb.pack_start(gtk.Label(_('Time:')), False, False, 2)
-    hb.pack_start(gtk.HBox(), True, True, 2)
-    self.timeout = b = gtk.SpinButton(gtk.Adjustment(5, 0, 90, 5, 5))
-    b.set_value(self.applet.conf['minutes'])
-    hb.pack_start(b, False, False, 2)
-    hb.pack_start(gtk.Label(_('minutes')), False, False, 2)
-
-    vb=gtk.VBox()
-    tabs.append_page(vb, gtk.Label(_('Location')))
-    
-    hb=gtk.HBox()
-    vb.pack_start(hb, False, False, 2)
-    e=gtk.Entry()
-    e.connect('activate', self._city_search_cb)
-    hb.pack_start(e, False, False, 2)
-    
-    s = gtk.TreeStore(str, bool, int, str) # label, is_city, id, normalized label
-    self.cities_tree=tree=gtk.TreeView(s)
-    col=gtk.TreeViewColumn('Location', gtk.CellRendererText(), text=0)
-    col.set_sizing(gtk.TREE_VIEW_COLUMN_AUTOSIZE)
-    tree.insert_column(col, -1)
-    tree.set_enable_search(True)
-    tree.set_search_column(3)
-    tree.set_headers_visible(False)
-    tree.set_tooltip_column(0)
-    
-    scroll=gtk.ScrolledWindow()
-    scroll.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_ALWAYS)
-    scroll.add(tree)
-    vb.pack_start(scroll, True, True, 2)
-
-    self.sound_player = SoundPlayer(self.applet.conf['athan_media_file'], self.change_play_status)
-    vb=gtk.VBox()
-    tabs.append_page(vb, gtk.Label(_('Notification')))
-    hb=gtk.HBox()
-    vb.pack_start(hb, False, True, 3)
-    hb.pack_start(gtk.Label(_('Sound:')), False, True, 2)
-    self.sound_file = b = gtk.FileChooserButton(_('Choose Athan media file'))
-    self.sound_file.set_filename(self.applet.conf['athan_media_file'])
-    ff=gtk.FileFilter()
-    ff.set_name(_('Sound Files'))
-    ff.add_pattern('*.ogg')
-    ff.add_pattern('*.mp3')
-    b.add_filter(ff)
-    ff=gtk.FileFilter()
-    ff.set_name(_('All files'))
-    ff.add_pattern('*')
-    b.add_filter(ff)
-    self.play_b=pb=gtk.Button(_('Play'))
-    pb.connect('clicked', self.play_cb)
-    hb.pack_end(pb, False, False, 2)
-    hb.pack_end(b, True, True, 5)
+def to_uincode(Str):
+    try:
+        Str = str(Str)
+    except UnicodeEncodeError:
+        pass
+    if type(Str) == unicode:
+        return Str.translate(normalize_tb)
+    else:
+        return Str.decode('utf-8').translate(normalize_tb)
+        
+class ConfigDlg(Gtk.Dialog):
+    def __init__(self, applet):
+        Gtk.Dialog.__init__(self)
+        self.applet = applet
+        self.m = applet.m
+        self.cities_ls = self.get_cities()
+        #self.set_size_request(300,400)
+        self.set_resizable(False) # FIXME: reconsider this
+        self.connect('delete-event', lambda w,*a: w.hide() or True)
+        self.connect('response', lambda w,*a: w.hide() or True)
+        self.set_title(_('Monajat Configuration'))
+        self.add_button(_('Cancel'), Gtk.ResponseType.CANCEL)
+        self.add_button(_('Save'), Gtk.ResponseType.OK)
+        tabs = Gtk.Notebook()
+        tabs.set_size_request(-1,350)
+        self.get_content_area().add(tabs)
+        vb = Gtk.VBox(False, 2)
+        tabs.append_page(vb, Gtk.Label(_('Generic')))
+        self.auto_start = b = Gtk.CheckButton(_("Auto start"))
+        self.auto_start.set_active(not os.path.exists(self.applet.skip_auto_fn))
+        vb.pack_start(b, False, False, 2)
+        self.show_merits = b = Gtk.CheckButton(_("Show merits"))
+        self.show_merits.set_active(self.applet.conf['show_merits'])
+        vb.pack_start(b, False, False, 2)
+        hb = Gtk.HBox()
+        vb.pack_start(hb, False, False, 2)
+        hb.pack_start(Gtk.Label(_('Language:')), False, False, 2)
+        self.lang = b = Gtk.ComboBoxText.new()
+        hb.pack_end(b, False, False, 2)
+        selected = 0
+        for i,j in enumerate(self.applet.m.langs):
+            b.append_text(j)
+            if self.m.lang == j:
+                selected=i
+        b.set_active(selected)
+        
+        hb = Gtk.HBox()
+        vb.pack_start(hb, False, False, 2)
+        hb.pack_start(Gtk.Label(_('Time:')), False, False, 2)
+        hb.pack_start(Gtk.HBox(), True, True, 2)
+        adj = Gtk.Adjustment(5, 0, 90, 5, 5)
+        self.timeout = b = Gtk.SpinButton()
+        b.set_adjustment(adj)
+        b.set_value(self.applet.conf['minutes'])
+        hb.pack_start(b, False, False, 2)
+        hb.pack_start(Gtk.Label(_('minutes')), False, False, 2)
+
+        vb = Gtk.VBox(False, 2)
+        tabs.append_page(vb, Gtk.Label(_('Location')))
+        
+        hb = Gtk.HBox()
+        hb.pack_start(Gtk.Label(_('Current city:')), False, False, 2)
+        vb.pack_start(hb, False, False, 6)
+        hb = Gtk.HBox()
+        vb.pack_start(hb, False, False, 2)
+        # read cuurent city full name
+        c = self.get_city('id', self.applet.conf['city_id'])
+        if c:
+            c = c[0]
+            self.user_city = c['name']
+        else:
+            c = {}
+            c['country'] = _('Please, Secify your city')
+            c['state'] = ''
+            c['name'] = ''
+            c['locale_name'] = ''
+            self.user_city = 'Makka'
+        # set locale_name='' instead of None
+        c['locale_name'] = c['locale_name'] or ''
+        cl = '%(country)s - %(state)s - %(name)s %(locale_name)s' % c
+        self.cur_city_l = l = Gtk.Entry()
+        l.set_editable(False)
+        l.set_text(cl)
+        hb.pack_start(l, True, True, 2)
+        
+        hb = Gtk.HBox()
+        hb.pack_start(Gtk.Label(_('Change city:')), False, False, 2)
+        vb.pack_start(hb, False, False, 8)
+        self.Search_e = e = Gtk.Entry()
+        e.connect('activate', self._city_search_cb)
+        hb.pack_start(e, True, True, 2)
+        
+        s = Gtk.TreeStore(str, bool, int, str) # label, is_city, id, normalized label
+        self.cities_tree = tree = Gtk.TreeView(s)
+        col = Gtk.TreeViewColumn('Location', Gtk.CellRendererText(), text=0)
+        col.set_sizing(Gtk.TreeViewColumnSizing.AUTOSIZE)
+        tree.insert_column(col, -1)
+        tree.set_enable_search(True)
+        tree.set_search_column(3)
+        tree.set_headers_visible(False)
+        tree.set_tooltip_column(0)
+        
+        scroll = Gtk.ScrolledWindow()
+        scroll.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.ALWAYS)
+        scroll.add(tree)
+        vb.pack_start(scroll, True, True, 2)
+        self.sound_player = SoundPlayer(self.applet.conf['athan_media_file'],
+                                        self.change_play_status)
+        vb = Gtk.VBox(False, 2)
+        tabs.append_page(vb, Gtk.Label(_('Notification')))
+        hb = Gtk.HBox()
+        vb.pack_start(hb, False, True, 3)
+        hb.pack_start(Gtk.Label(_('Sound:')), False, True, 2)
+        self.sound_file = b = Gtk.FileChooserButton(_('Choose Athan media file'))
+        
+        if os.path.isfile(self.applet.conf['athan_media_file']):
+            self.sound_file.set_filename(self.applet.conf['athan_media_file'])
+        ff = Gtk.FileFilter()
+        ff.set_name(_('Sound Files'))
+        ff.add_pattern('*.ogg')
+        ff.add_pattern('*.mp3')
+        b.add_filter(ff)
+        ff = Gtk.FileFilter()
+        ff.set_name(_('All files'))
+        ff.add_pattern('*')
+        b.add_filter(ff)
+        self.play_b = pb = Gtk.Button(_('Play'))
+        pb.connect('clicked', self.play_cb)
+        hb.pack_end(pb, False, False, 2)
+        hb.pack_end(b, True, True, 5)
+        
+        hb = Gtk.HBox()
+        vb.pack_start(hb, False, False, 3)
+        self.notify_before_b = b = Gtk.CheckButton(_("Notify before"))
+        adj = Gtk.Adjustment(5, 5, 20, 5, 5)
+        self.notify_before_t = t = Gtk.SpinButton()
+        t.set_adjustment(adj)
+        b.set_active(self.applet.conf['notify_before_min'] != 0)
+        t.set_value(self.applet.conf['notify_before_min'])
+        hb.pack_start(b,True,True,2)
+        hb.pack_start(t,False,False,2)
+        hb.pack_start(Gtk.Label(_('minutes')),False,False,2)
+        self._city_search_cb(self.Search_e, self.user_city)
+        #self._fill_cities()
+
+    def change_play_status(self, status = None):
+        if status == None:
+            status = self.sound_player.gst_player.get_state()
+        if status == Gst.State.PLAYING:
+            self.sound_file.set_sensitive(False)
+            self.play_b.set_property('label', _('Stop'))
+        else:
+            self.sound_file.set_sensitive(True)
+            self.play_b.set_property('label', _('Play'))
+
+    def play_cb(self, b):
+        fn = self.sound_file.get_filename()
+        if not fn:
+            fn = ''
+        if b.get_label() == _('Play'):
+            if not os.path.isfile(fn):
+                return
+            self.change_play_status(Gst.State.PLAYING)
+            self.sound_player.set_filename(fn)
+            self.sound_player.play()
+        else:
+            self.change_play_status(Gst.State.NULL)
+            self.sound_player.stop()
+
+    def get_cities(self):
+        rows = self.m.cities_c.execute('SELECT * FROM cities')
+        rows = map(lambda a: dict(a), rows.fetchall())
+        return rows
+        
+    def get_city(self, f='id', v=''):
+        '''
+            filter self.cities_ls
+        '''
+        return filter(lambda a: a[f] == v, self.cities_ls)
+        
+    def _city_search_cb(self, e, v = None):
+        e.modify_fg(Gtk.StateType.NORMAL, None)
+        if v:
+            txt = v
+        else:
+            txt = e.get_text().strip().lower()
+        txt = to_uincode(txt)
+        if self.user_city == txt:
+            self._search_cb(txt)
+            return
+        else:
+            self.user_city = txt
+        rows = filter(lambda a: txt in str(a['name']).lower() or \
+                                txt in to_uincode(a['locale_name']) or \
+                                txt in str(a['state']).lower() or \
+                                txt in str(a['country']).lower(), self.cities_ls)
+       
+        country, country_i = None, None
+        state, state_i = None, None
+        city_path = None
+        s = self.cities_tree.get_model()
+        s.clear()
+        for r in rows:
+            #r = dict(R)
+            if country != r['country']:
+                country_i = s.append(None,
+                                     (r['country'],
+                                     False,
+                                     0,
+                                     r['country'].lower().translate(normalize_tb)))
+            if state != r['state']:
+                state_i = s.append(country_i,(r['state'],
+                                   False,
+                                   0,
+                                   r['state'].lower().translate(normalize_tb)))
+            country = r['country']
+            state = r['state']
+            if r['locale_name']:
+                city = u'%s - %s' % (r['name'], r['locale_name'])
+            else:
+                city = r['name']
+            city_i = s.append(state_i,(city,
+                                      True,
+                                      r['id'],
+                                      city.lower().translate(normalize_tb)))
+        self._search_cb(txt)
     
-    hb = gtk.HBox()
-    vb.pack_start(hb, False, False, 3)
-    self.notify_before_b = b = gtk.CheckButton(_("Notify before"))
-    self.notify_before_t = t = gtk.SpinButton(gtk.Adjustment(5, 5, 20, 5, 5))
-    b.set_active(self.applet.conf['notify_before_min']!=0)
-    t.set_value(self.applet.conf['notify_before_min'])
-    hb.pack_start(b,True,True,2)
-    hb.pack_start(t,False,False,2)
-    hb.pack_start(gtk.Label(_('minutes')),False,False,2)
+    def _search_cb(self, txt):
+        # FIXME: if same as last successful search text don't update first_match_path
+        # FIXME: and if self.city_found same as first_match_path highlight in red
+        # we can use self.search_last_path to fix search
+        if type(txt) == unicode:
+            txt = txt.encode('utf-8')
+        e = self.Search_e
+        e.modify_fg(Gtk.StateType.NORMAL, None)
+        tree = self.cities_tree
+        store, p = tree.get_selection().get_selected_rows()
+        if p:
+            current = p[0]
+        else:
+            current = None
+        limit = None
+        def tree_walk_cb(model, path, i, *a):
+            if current and path <= current:
+                return False
+            if limit and path >= limit:
+                return True
+            f = txt in store.get_value(i, 3)
+            if f:
+                tree.expand_to_path(path)
+                tree.scroll_to_cell(path)
+                tree.get_selection().select_iter(i)
+                self.city_found = path
+                return True
+        self.city_found = None
+        store.foreach(tree_walk_cb, tree)
+        if not self.city_found:
+            limit = current
+            current = None
+            store.foreach(tree_walk_cb, tree)
+            if not self.city_found:
+                e.modify_fg(Gtk.StateType.NORMAL, Gdk.color_parse("#FF0000"))
+                
+    def _fill_cities(self):
+        # FIXME: rerwite one fuction for fill cities and search, to reduce time
+        tree = self.cities_tree
+        s = tree.get_model()
+        rows = self.m.cities_c.execute('SELECT * FROM cities')
+        country, country_i = None, None
+        state, state_i = None, None
+        city_path = None
+        for R in rows:
+            r = dict(R)
+            if country != r['country']:
+                country_i = s.append(None,
+                                     (r['country'],
+                                     False,
+                                     0,
+                                     r['country'].lower().translate(normalize_tb)))
+            if state != r['state']:
+                state_i = s.append(country_i,(r['state'],
+                                   False,
+                                   0,
+                                   r['state'].lower().translate(normalize_tb)))
+            country = r['country']
+            state = r['state']
+            if r['locale_name']:
+                city=u'%s - %s' % (r['name'], r['locale_name'])
+            else:
+                city=r['name']
+            city_i = s.append(state_i,(city,
+                                      True,
+                                      r['id'],
+                                      city.lower().translate(normalize_tb)))
+            if self.applet.conf.get('city_id',None) == r['id']:
+                city_path = s.get_path(city_i)
+        if city_path:
+            tree.expand_to_path(city_path)
+            tree.get_selection().select_path(city_path)
+            tree.scroll_to_cell(city_path)
+
+    def run(self, *a, **kw):
+        self.auto_start.set_active(not os.path.exists(self.applet.skip_auto_fn))
+        return Gtk.Dialog.run(self, *a, **kw)
+
+class applet(object):
+    locale_re = re.compile('^[a-z]+_[A-Z]+$', re.I)
+    skip_auto_fn = os.path.expanduser('~/.monajat-applet-skip-auto')
     
-    self._fill_cities()
+    def _init_locale(self, lang):
+        try:
+            l = locale.setlocale(locale.LC_MESSAGES, (lang, 'UTF-8'))
+        except:
+            pass
+        else:
+            if l:
+                os.environ['LC_MESSAGES'] = l
+            return
+        for l in locale.locale_alias.keys():
+            if not l.startswith(lang+'_') or not self.locale_re.match(l):
+                continue
+            l, c = l.split('_',1)
+            l = l + "_" + c.upper() + ".UTF-8"
+            try:
+                locale.setlocale(locale.LC_MESSAGES, l)
+            except locale.Error:
+                pass
+            else:
+                os.environ['LC_MESSAGES'] = l
+                return
+
+    def __init__(self):
+        self.conf_dlg = None
+        self.chngbody = time.time()
+        self.minutes_counter = 0
+        self.m = Monajat() # you may pass width like 20 chars
+        self.sound_player = SoundPlayer()
+        self.load_conf()
+        self.prayer_items = []
+        kw = self.conf_to_prayer_args()
+        self.prayer = itl.PrayerTimes(**kw)
+        self._init_locale(self.m.lang)
+        ld = os.path.join(self.m.get_prefix(), '..', 'locale')
+        gettext.install('monajat', ld, unicode=0)
+        self.ptnames = [_("Fajr"),
+                        _("Sunrise"),
+                        _("Dhuhr"),
+                        _("Asr"),
+                        _("Maghrib"),
+                        _("Isha'a")]
+        self.clip1 = Gtk.Clipboard.get(Gdk.SELECTION_CLIPBOARD)
+        self.clip2 = Gtk.Clipboard.get(Gdk.SELECTION_PRIMARY)
+        self.init_menu()
+        
+
+        self.statusicon = Gtk.StatusIcon ()
+        self.statusicon.connect('popup-menu',self.popup_cb)
+        self.statusicon.connect('activate',self.next_cb)
+        self.statusicon.set_title(_("Monajat"))
+        self.statusicon.set_from_file(os.path.join(self.m.get_prefix(),'monajat.svg'))
+        
+        Notify.init(_("Monajat"))
+        self.init_notify_cb()
+        print self.notifycaps
+        
+        self.notif_last_athan = -1
+        self.next_athan_delta = -1
+        self.next_athan_i = -1
+        self.last_athan = -1
+        self.last_time = 0
+        self.first_notif_done = False
+        self.start_time = time.time()
+        GObject.timeout_add(1, self.timer_cb)
+
+    def init_notify_cb(self):
+        self.notifycaps = Notify.get_server_caps ()
+        self.notify = Notify.Notification()
+        self.notify.set_property('icon-name', os.path.join(self.m.get_prefix(),'monajat.svg'))
+        self.notify.set_property('summary', _("Monajat") )
+        if 'actions' in self.notifycaps:
+            self.notify.add_action("previous", _("Back"), self.notify_cb, None)
+            self.notify.add_action("next", _("Forward"), self.notify_cb, None)
+            self.notify.add_action("copy", _("copy"), self.notify_cb, None)
+        
+    def show_notify_cb(self, body, *args):
+        self.notify.set_property('body', body )
+        self.notify.show()
+        
+    def config_cb(self, *a):
+        if self.conf_dlg == None:
+            self.conf_dlg = ConfigDlg(self)
+            self.conf_dlg.show_all()
+        r = self.conf_dlg.run()
+        if r == Gtk.ResponseType.OK:
+            self.save_auto_start()
+            self.save_conf()
+
+    def default_conf(self):
+        self.conf = {}
+        self.conf['show_merits'] = '1'
+        self.conf['lang'] = self.m.lang
+        self.conf['minutes'] = '10'
+        self.conf['athan_media_file'] = os.path.join(self.m.prefix, 'athan.ogg')
+        print self.conf['athan_media_file']
+        self.conf['notify_before_min'] = '10'
+
+    def conf_to_prayer_args(self):
+        kw = {}
+        if not self.conf.has_key('city_id'): return kw
+        c = self.m.cities_c
+        try:
+            c_id = int(self.conf['city_id'])
+        except ValueError:
+            return kw
+        except TypeError:
+            return kw
+        r = c.execute('SELECT * FROM cities AS c LEFT JOIN dst AS d ON d.i=dst_id WHERE c.id=?', (c_id,)).fetchone()
+        # set defaults to Makkah (14244)
+        if not r:
+            r = c.execute('SELECT * FROM cities AS c LEFT JOIN dst AS d ON d.i=dst_id WHERE c.id=?',
+                          (14244,)).fetchone()
+        kw = dict(r)
+        if "alt" not in kw or not kw["alt"]:
+            kw["alt"] = 0.0
+        kw["tz"] = kw["utc"]
+        # NOTE: get DST from machine local setting
+        kw["dst"] = time.localtime().tm_isdst
+        # FIXME: dst should have the following 3 options
+        # a. auto from system, b. auto from algorithm, c. specified to 0/1 by user
+        #dst=kw["dst_id"]
+        #if not dst: kw["dst"]=0
+        #else:
+        #    # FIXME: add DST logic here
+        #    kw["dst"]=1
+        print kw
+        #lat=21.43, lon=39.77, tz=3.0, dst=0, alt=0, pressure=1010, temp=10
+        return kw
+
+
+    def parse_conf(self, s):
+        self.default_conf()
+        l1 = map(lambda k: k.split('=',1),
+                 filter(lambda j: j,
+                 map(lambda i: i.strip(),s.splitlines())) )
+        l2 = map(lambda a: (a[0].strip(),a[1].strip()),filter(lambda j: len(j)==2,l1))
+        r = dict(l2)
+        self.conf.update(dict(l2))
+        return len(l1) == len(l2)
+
+    def load_conf(self):
+        s = ''
+        fn = os.path.expanduser('~/.monajat-applet.rc')
+        if os.path.exists(fn):
+            try:
+                s = open(fn,'rt').read()
+            except OSError:
+                pass
+        self.parse_conf(s)
+        if self.conf.has_key('city_id'):
+            # make sure city_id is set using the same db
+            if not self.conf.has_key('cities_db_ver') \
+               or self.conf['cities_db_ver'] != self.m.cities_db_ver:
+                   del self.conf['city_id']
+            # make sure it's integer
+            try:
+                c_id = int(self.conf['city_id'])
+            except ValueError:
+                self.conf['city_id'] =  14244
+            except TypeError:
+                self.conf['city_id'] = 14244
+            else:
+                self.conf['city_id'] = c_id
+        else:
+            # set default to makkah (14244)
+            self.conf['city_id'] = 14244
+        # set athan media file exists
+        self.sound_player.set_filename(self.conf['athan_media_file'])
+        # fix types
+        try:
+            self.conf['minutes'] = math.ceil(float(self.conf['minutes'])/5.0)*5
+        except ValueError:
+            self.conf['minutes'] = 0
+        try:
+            self.conf['show_merits'] = int(self.conf['show_merits']) 
+        except ValueError:
+            self.conf['show_merits'] = 1
+        try:
+            self.conf['notify_before_min'] = int(float(self.conf['notify_before_min']))
+        except ValueError:
+            self.conf['notify_before_min'] = 10
+        self.m.set_lang(self.conf['lang'])
+        self.m.clear()
+
+    def apply_conf(self):
+        kw = self.conf_to_prayer_args()
+        self.prayer = itl.PrayerTimes(**kw)
+        self.update_prayer()
+        self.sound_player.set_filename(self.conf['athan_media_file'])
+        self.m.clear()
+        self.m.set_lang(self.conf['lang'])
+        self.render_body(self.m.go_forward())
+
+    def save_conf(self):
+        self.conf['cities_db_ver'] = self.m.cities_db_ver
+        self.conf['show_merits'] = int(self.conf_dlg.show_merits.get_active())
+        self.conf['lang'] = self.conf_dlg.lang.get_active_text()
+        self.conf['minutes'] = int(self.conf_dlg.timeout.get_value())
+        self.conf['athan_media_file'] = self.conf_dlg.sound_file.get_filename()
+        self.conf['notify_before_min'] = int(self.conf_dlg.notify_before_b.get_active() \
+                                            and self.conf_dlg.notify_before_t.get_value())
+        m, p = self.conf_dlg.cities_tree.get_selection().get_selected_rows()
+        if p:
+            city_id = m[p[0]][2]
+            if city_id:
+                self.conf['city_id'] = city_id
+        print "** saving conf", self.conf
+        fn = os.path.expanduser('~/.monajat-applet.rc')
+        s = '\n'.join(map(lambda k: "%s=%s" % (k,str(self.conf[k])), self.conf.keys()))
+        try:
+            open(fn,'wt').write(s)
+        except OSError:
+            pass
+        self.apply_conf()
+
+    def athan_show_notif(self):
+        self.last_time = time.time()
+        self.first_notif_done = True
+        s = self.ptnames[self.last_athan]
+        self.show_notify_cb(_('''It's now time for %s prayer''') % s)
+        return True
 
-  def change_play_status(self, status=None):
-    if status==None: status=self.sound_player.gst_player.get_state()
-    if status==gst.STATE_PLAYING:
-      self.sound_file.set_sensitive(False)
-      self.play_b.set_property('label', _('Stop'))
-    else:
-      self.sound_file.set_sensitive(True)
-      self.play_b.set_property('label', _('Play'))
-
-  def play_cb(self, b):
-    fn=self.sound_file.get_filename()
-    if not fn: fn=''
-    if b.get_label() == _('Play'):
-      if not os.path.isfile(fn): return
-      self.change_play_status(gst.STATE_PLAYING)
-      self.sound_player.set_filename(fn)
-      self.sound_player.play()
-    else:
-      self.change_play_status(gst.STATE_NULL)
-      self.sound_player.stop()
-
-  def _city_search_cb(self, e):
-    # FIXME: if same as last successful search text don't update first_match_path
-    # FIXME: and if self.city_found same as first_match_path highlight in red
-    txt=e.get_text().strip().lower()
-    if type(txt)==unicode: txt=txt.translate(normalize_tb)
-    else: txt=txt.decode('utf-8').translate(normalize_tb)
-    e.modify_base(gtk.STATE_NORMAL, None)
-    tree=self.cities_tree
-    store, p=tree.get_selection().get_selected_rows()
-    if p: current=p[0]
-    else: current=None
-    limit=None
-    def tree_walk_cb(model, path, i):
-      if current and path<=current: return False
-      if limit and path>=limit: return True
-      if txt in store.get_value(i,3):
-        tree.expand_to_path(path)
-        tree.scroll_to_cell(path)
-        tree.get_selection().select_iter(i)
-        self.city_found=path
+    def athan_notif_cb(self):
+        i, t, dt = self.prayer.get_next_time_stamp()
+        if i < 0:
+            return False
+        dt = max(dt, 0)
+        i = i%6
+        self.next_athan_delta = dt
+        self.next_athan_i = i
+        if dt < 30 and i != self.last_athan:
+            print "it's time for prayer number:", i
+            self.last_athan = i
+            self.sound_player.play()
+            self.athan_show_notif()
+            return True
+        return False
+
+    def timer_cb(self, *args):
+        if not 'actions' in self.notifycaps:
+            self.init_notify_cb()
+            print self.notifycaps
+        dt = int(time.time()-self.last_time)
+        if self.prayer.update():
+            self.update_prayer()
+        if self.athan_notif_cb(): return True
+        if not self.first_notif_done:
+            if int(time.time()-self.start_time) >= 10:
+                self.next_cb()
+            return True
+        if self.conf['notify_before_min'] \
+           and self.next_athan_delta <= self.conf['notify_before_min']*60 \
+           and self.next_athan_i != self.notif_last_athan:
+               self.notif_last_athan = self.next_athan_i
+               self.next_cb()
+        elif self.conf['minutes'] and dt >= self.conf['minutes']*60:
+               self.next_cb()
         return True
-    self.city_found=None
-    store.foreach(tree_walk_cb)
-    if not self.city_found:
-      limit=current
-      current=None
-      store.foreach(tree_walk_cb)
-      if not self.city_found:
-        e.modify_base(gtk.STATE_NORMAL, gtk.gdk.color_parse("#FFCCCC"))
-    
-  def _fill_cities(self):
-    tree=self.cities_tree
-    s=tree.get_model()
-    rows=self.m.cities_c.execute('SELECT * FROM cities')
-    country, country_i = None, None
-    state, state_i=None, None
-    city_path=None
-    for R in rows:
-      r=dict(R)
-      if country!=r['country']:
-        country_i=s.append(None,(r['country'], False, 0, r['country'].lower().translate(normalize_tb)))
-      if state!=r['state']:
-        state_i=s.append(country_i,(r['state'], False, 0, r['state'].lower().translate(normalize_tb)))
-      country=r['country']
-      state=r['state']
-      if r['locale_name']: city=u'%s - %s' % (r['name'], r['locale_name'])
-      else: city=r['name']
-      city_i=s.append(state_i,(city, True, r['id'], city.lower().translate(normalize_tb)))
-      if self.applet.conf.get('city_id',None)==r['id']: city_path=s.get_path(city_i)
-    if city_path:
-      tree.expand_to_path(city_path)
-      tree.get_selection().select_path(city_path)
-      tree.scroll_to_cell(city_path)
-
-  def run(self, *a, **kw):
-    self.auto_start.set_active(not os.path.exists(self.applet.skip_auto_fn))
-    return gtk.Dialog.run(self, *a, **kw)
 
-class applet(object):
-  skip_auto_fn=os.path.expanduser('~/.monajat-applet-skip-auto')
-  def __init__(self):
-    self.conf_dlg=None
-    self.chngbody=time.time()
-    self.minutes_counter=0
-    self.m=Monajat() # you may pass width like 20 chars
-    self.sound_player=SoundPlayer()
-    self.load_conf()
-    self.prayer_items=[]
-    kw=self.conf_to_prayer_args()
-    self.prayer=itl.PrayerTimes(**kw)
-    try:
-      l=locale.setlocale(locale.LC_MESSAGES, (self.m.lang, 'UTF-8'))
-      if l: os.environ['LC_MESSAGES']=l
-    except locale.Error: pass
-    ld=os.path.join(self.m.get_prefix(),'..','locale')
-    gettext.install('monajat', ld, unicode=0)
-    self.ptnames=[_("Fajr"), _("Sunrise"), _("Dhuhr"), _("Asr"), _("Maghrib"), _("Isha'a")]
-    self.clip1=gtk.Clipboard(selection="CLIPBOARD")
-    self.clip2=gtk.Clipboard(selection="PRIMARY")
-    self.init_about_dialog()
-    self.init_menu()
-    #self.s=gtk.status_icon_new_from_file(os.path.join(self.m.get_prefix(),'monajat.svg'))
-    #self.s.connect('popup-menu',self.popup_cb)
-    #self.s.connect('activate',self.next_cb)
-    pynotify.init('MonajatApplet')
-    self.notifycaps = pynotify.get_server_caps ()
-    print self.notifycaps
-    self.notify=pynotify.Notification("MonajatApplet")
-    self.notify.set_property('icon-name','monajat')
-    self.notify.set_property('summary', _("Monajat") )
-    if 'actions' in self.notifycaps:
-      self.notify.add_action("previous", _("previous"), self.notify_cb)
-      self.notify.add_action("next", _("next"), self.notify_cb)
-      self.notify.add_action("copy", _("copy"), self.notify_cb)
-    # FIXME: maybe we should have notify object per notification
-    #self.notify.set_timeout(5000) # FIXME: commented out to fix https://bugs.launchpad.net/ubuntu/+source/monajat/+bug/844680
-    #self.notify.set_urgency(pynotify.URGENCY_LOW)
-    self.notify.set_hint('resident', True)
-    #self.notify.set_hint('transient', True)
-
-    self.statusicon = gtk.StatusIcon ()
-    #self.notify.attach_to_status_icon(self.statusicon)
-    self.statusicon.connect('popup-menu',self.popup_cb)
-    self.statusicon.connect('activate',self.next_cb)
-    self.statusicon.set_title(_("Monajat"))
-    self.statusicon.set_from_file(os.path.join(self.m.get_prefix(),'monajat.svg'))
-
-    self.notif_last_athan=-1
-    self.next_athan_delta=-1
-    self.next_athan_i=-1
-    self.last_athan=-1
-    self.last_time=0
-    self.first_notif_done=False
-    self.start_time=time.time()
-    glib.timeout_add_seconds(1, self.timer_cb)
-
-  def config_cb(self, *a):
-    if self.conf_dlg==None:
-      self.conf_dlg=ConfigDlg(self)
-      self.conf_dlg.show_all()
-    r=self.conf_dlg.run()
-    if r==gtk.RESPONSE_OK:
-      self.save_auto_start()
-      self.save_conf()
-
-  def default_conf(self):
-    self.conf={}
-    self.conf['show_merits']='1'
-    self.conf['lang']=self.m.lang
-    self.conf['minutes']='10'
-    self.conf['athan_media_file']=os.path.join(self.m.prefix, 'athan.ogg')
-    self.conf['notify_before_min']='10'
-
-  def conf_to_prayer_args(self):
-    kw={}
-    if not self.conf.has_key('city_id'): return kw
-    c=self.m.cities_c
-    try: c_id=int(self.conf['city_id'])
-    except ValueError: return kw
-    except TypeError: return kw
-    r=c.execute('SELECT * FROM cities AS c LEFT JOIN dst AS d ON d.i=dst_id WHERE c.id=?', (c_id,)).fetchone()
-    # FIXME: if not r: defaults to Makka
-    kw=dict(r)
-    if "alt" not in kw or not kw["alt"]: kw["alt"]=0.0
-    kw["tz"]=kw["utc"]
-    # NOTE: get DST from machine local setting
-    kw["dst"]=time.localtime().tm_isdst
-    # FIXME: dst should have the following 3 options
-    # a. auto from system, b. auto from algorithm, c. specified to 0/1 by user
-    #dst=kw["dst_id"]
-    #if not dst: kw["dst"]=0
-    #else:
-    #  # FIXME: add DST logic here
-    #  kw["dst"]=1
-    print kw
-    #lat=21.43, lon=39.77, tz=3.0, dst=0, alt=0, pressure=1010, temp=10
-    return kw
-
-
-  def parse_conf(self, s):
-    self.default_conf()
-    l1=map(lambda k: k.split('=',1), filter(lambda j: j,map(lambda i: i.strip(),s.splitlines())) )
-    l2=map(lambda a: (a[0].strip(),a[1].strip()),filter(lambda j: len(j)==2,l1))
-    r=dict(l2)
-    self.conf.update(dict(l2))
-    return len(l1)==len(l2)
-
-  def load_conf(self):
-    s=''
-    fn=os.path.expanduser('~/.monajat-applet.rc')
-    if os.path.exists(fn):
-      try: s=open(fn,'rt').read()
-      except OSError: pass
-    self.parse_conf(s)
-    if self.conf.has_key('city_id'):
-      # make sure city_id is set using the same db
-      if not self.conf.has_key('cities_db_ver') or \
-        self.conf['cities_db_ver']!=self.m.cities_db_ver:
-          del self.conf['city_id']
-      # make sure it's integer
-      try: c_id=int(self.conf['city_id'])
-      except ValueError: del self.conf['city_id']
-      except TypeError: del self.conf['city_id']
-      else: self.conf['city_id']=c_id
-    # set athan media file exists
-    self.sound_player.set_filename(self.conf['athan_media_file'])
-    # fix types
-    try: self.conf['minutes']=math.ceil(float(self.conf['minutes'])/5.0)*5
-    except ValueError: self.conf['minutes']=0
-    try: self.conf['show_merits']=int(self.conf['show_merits']) 
-    except ValueError: self.conf['show_merits']=1
-    try: self.conf['notify_before_min']=int(float(self.conf['notify_before_min']))
-    except ValueError: self.conf['notify_before_min']=10
-    self.m.set_lang(self.conf['lang'])
-    self.m.clear()
-
-  def apply_conf(self):
-    kw=self.conf_to_prayer_args()
-    self.prayer=itl.PrayerTimes(**kw)
-    self.update_prayer()
-    self.sound_player.set_filename(self.conf['athan_media_file'])
-    self.m.clear()
-    self.m.set_lang(self.conf['lang'])
-    self.render_body(self.m.go_forward())
-
-  def save_conf(self):
-    self.conf['cities_db_ver']=self.m.cities_db_ver
-    self.conf['show_merits']=int(self.conf_dlg.show_merits.get_active())
-    self.conf['lang']=self.conf_dlg.lang.get_active_text()
-    self.conf['minutes']=int(self.conf_dlg.timeout.get_value())
-    self.conf['athan_media_file']=self.conf_dlg.sound_file.get_filename()
-    self.conf['notify_before_min']=int(self.conf_dlg.notify_before_b.get_active() and self.conf_dlg.notify_before_t.get_value())
-    m, p=self.conf_dlg.cities_tree.get_selection().get_selected_rows()
-    if p:
-      city_id=m[p[0]][2]
-      if city_id: self.conf['city_id']=city_id
-    print "** saving conf", self.conf
-    fn=os.path.expanduser('~/.monajat-applet.rc')
-    s='\n'.join(map(lambda k: "%s=%s" % (k,str(self.conf[k])), self.conf.keys()))
-    try: open(fn,'wt').write(s)
-    except OSError: pass
-    self.apply_conf()
-
-  def athan_show_notif(self):
-    self.last_time=time.time()
-    self.first_notif_done=True
-    s=self.ptnames[self.last_athan]
-    self.notify.set_property('body', _('''It's now time for %s prayer''') % s)
-    self.notify.show()
-
-  def athan_notif_cb(self):
-    i, t, dt=self.prayer.get_next_time_stamp()
-    if i<0: return False
-    dt=max(dt, 0)
-    i=i%6
-    self.next_athan_delta=dt
-    self.next_athan_i=i
-    if dt<30 and i!=self.last_athan:
-      print "it's time for prayer number:", i
-      self.last_athan=i
-      self.sound_player.play()
-      self.athan_show_notif()
-      return True
-    return False
-
-  def timer_cb(self, *args):
-    dt=int(time.time()-self.last_time)
-    if self.prayer.update():
-      self.update_prayer()
-    if self.athan_notif_cb(): return True
-    if not self.first_notif_done:
-      if int(time.time()-self.start_time)>=10:
+    def fuzzy_delta(self):
+        if self.next_athan_i < 0 :
+            return ""
+        t = max(int(self.next_athan_delta), 0)
+        d = {"prayer" : self.ptnames[self.next_athan_i]}
+        d['hours'] = t/3600
+        t %= 3600
+        d['minutes'] = t/60
+        if d["hours"]:
+            if d["minutes"] < 5:
+                r = _("""%(hours)d hours till %(prayer)s prayer""") % d
+            else:
+                r = _("""%(hours)d hours and %(minutes)d minutes till %(prayer)s prayer""") % d
+        elif d["minutes"] >= 2:
+            r = _("""less than %(minutes)d minutes till %(prayer)s prayer""") % d
+        else:
+            r = _("""less than a minute till %(prayer)s prayer""") % d
+        if "body-markup" in self.notifycaps:
+            return "<b>%s</b>\n\n" % cgi.escape(r)
+        return "%s\n\n" % r
+
+    def body_to_str(self, body):
+        if type(body) == unicode:
+            return body.encode('utf-8')
+        return body
+        
+    def render_body(self, m):
+        merits = m['merits']
+        if not self.conf['show_merits']:
+            merits = None
+        if "body-markup" in self.notifycaps:
+            body = cgi.escape(m['text'])
+            if merits:
+                body = """{}\n\n<b>{}</b>: {}""".format(self.body_to_str(body),
+                                                        _("Its Merits"),
+                                                        self.body_to_str(cgi.escape(merits)))
+        else:
+            body = m['text']
+            if merits:
+                body = """{}\n\n** {} **: {}""".format(self.body_to_str(body),
+                                                       _("Its Merits"),
+                                                       self.body_to_str(merits))
+        if type(body) == unicode:
+                body = body.encode('utf-8')
+        if "body-hyperlinks" in self.notifycaps:
+            L = []
+            links = m.get('links',u'').split(u'\n')
+            for l in links:
+                ll = l.split(u'\t',1)
+                url = cgi.escape(ll[0])
+                if len(ll) > 1:
+                    t = cgi.escape(ll[1])
+                else:
+                    t = url
+                print url, t
+                L.append(u"""<a href='{}'>{}</a>""".format(url,t))
+            l = u"\n\n".join(L)
+            body += self.body_to_str("\n\n" + l)
+        # if we are close to time show it before supplication
+        if self.next_athan_delta >= 0 and self.next_athan_delta <= 600:
+            body = self.fuzzy_delta() + self.body_to_str(body)
+        else:
+            body = """{}\n\n{}""".format(self.body_to_str(body), self.fuzzy_delta())
+            #body = body + "\n\n" + self.fuzzy_delta()
+        #timeNP,isnear, istime = self.nextprayer_note(self.get_nextprayer(self.prayer.get_prayers()))
+        #if not isnear: body+=timeNP
+        #else: body=timeNP+body
+        self.show_notify_cb(body)
+        return body
+
+    def dbus_cb(self, *args):
+        self.minutes_counter = 1
         self.next_cb()
-      return True
-    if self.conf['notify_before_min'] and self.next_athan_delta<=self.conf['notify_before_min']*60 and self.next_athan_i!=self.notif_last_athan:
-      self.notif_last_athan=self.next_athan_i
-      self.next_cb()
-    elif self.conf['minutes'] and dt>=self.conf['minutes']*60:
-      self.next_cb()
-    return True
-
-  def hide_cb(self, w, *args): w.hide(); return True
-
-  def fuzzy_delta(self):
-    if self.next_athan_i<0: return ""
-    t=max(int(self.next_athan_delta),0)
-    d={"prayer":self.ptnames[self.next_athan_i]}
-    d['hours']=t/3600
-    t%=3600
-    d['minutes']=t/60
-    if d["hours"]:
-      if d["minutes"]<5:
-        r=_("""%(hours)d hours till %(prayer)s prayer""") % d
-      else:
-        r=_("""%(hours)d hours and %(minutes)d minutes till %(prayer)s prayer""") % d
-    elif d["minutes"]>=2:
-      r=_("""less than %(minutes)d minutes till %(prayer)s prayer""") % d
-    else:
-      r=_("""less than a minute till %(prayer)s prayer""") % d
-    if "body-markup" in self.notifycaps:
-      return "<b>%s</b>\n\n" % cgi.escape(r)
-    return "%s\n\n" % r
-
-  def render_body(self, m):
-    merits=m['merits']
-    if not self.conf['show_merits']: merits=None
-    if "body-markup" in self.notifycaps:
-      body=cgi.escape(m['text'])
-      if merits: body+="""\n\n<b>%s</b>: %s""" % (_("Its Merits"),cgi.escape(merits))
-    else:
-      body=m['text']
-      if merits: body+="""\n\n** %s **: %s""" % (_("Its Merits"),merits)
-    
-    if "body-hyperlinks" in self.notifycaps:
-      L=[]
-      links=m.get('links',u'').split(u'\n')
-      for l in links:
-        ll=l.split(u'\t',1)
-        url=cgi.escape(ll[0])
-        if len(ll)>1: t=cgi.escape(ll[1])
-        else: t=url
-        L.append(u"""<a href='%s'>%s</a>""" % (url,t))
-      l=u"\n\n".join(L)
-      body+=u"\n\n"+l
-    # if we are close to time show it before supplication
-    if self.next_athan_delta>=0 and self.next_athan_delta<=600:
-      body=self.fuzzy_delta()+body
-    else:
-      body=body+"\n\n"+self.fuzzy_delta()
-    #timeNP,isnear, istime = self.nextprayer_note(self.get_nextprayer(self.prayer.get_prayers()))
-    #if not isnear: body+=timeNP
-    #else: body=timeNP+body
-    self.notify.set_property('body', body)
-    return body
-
-  def dbus_cb(self, *args):
-    self.minutes_counter=1
-    self.next_cb()
-    return 0
-
-  def next_cb(self,*args):
-    self.last_time=time.time()
-    self.first_notif_done=True
-    try: self.notify.close()
-    except glib.GError: pass
-    self.render_body(self.m.go_forward())
-    self.notify.show()
-    return True
-
-  def prev_cb(self, *args):
-    self.last_time=time.time()
-    try: self.notify.close()
-    except glib.GError: pass
-    self.render_body(self.m.go_back())
-    self.notify.show()
-
-  def copy_cb(self,*args):
-    r=self.m.get_current()
-    self.clip1.set_text(r['text'])
-    self.clip2.set_text(r['text'])
-
-  def init_about_dialog(self):
-    # FIXME: please add more the authors
-    self.about_dlg=gtk.AboutDialog()
-    self.about_dlg.set_default_response(gtk.RESPONSE_CLOSE)
-    self.about_dlg.connect('delete-event', self.hide_cb)
-    self.about_dlg.connect('response', self.hide_cb)
-    try: self.about_dlg.set_program_name("Monajat")
-    except: pass
-    self.about_dlg.set_name(_("Monajat"))
-    #self.about_dlg.set_version(version)
-    self.about_dlg.set_copyright("Copyright © 2009 sabily.org")
-    self.about_dlg.set_comments(_("Monajat supplications"))
-    self.about_dlg.set_license("""\
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or
-    (at your option) any later version.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
+        return 0
+
+    def next_cb(self, *args):
+        self.last_time = time.time()
+        self.first_notif_done = True
+        self.render_body(self.m.go_forward())
+        return True
+
+    def prev_cb(self, *args):
+        self.first_notif_done = True
+        self.render_body(self.m.go_back())
+        return True
+
+    def copy_cb(self, *args):
+        r = self.m.get_current()
+        self.clip1.set_text(r['text'], -1)
+        self.clip2.set_text(r['text'], -1)
+
+    def show_about_dialog(self):
+        # FIXME: please add more the authors
+        dlg = Gtk.AboutDialog()
+        dlg.set_default_response(Gtk.ResponseType.CLOSE)
+        dlg.set_icon_from_file(os.path.join(self.m.get_prefix(),'monajat.svg'))
+        try:
+            dlg.set_program_name("Monajat")
+        except:
+            pass
+        dlg.set_name(_("Monajat"))
+        #dlg.set_version(version)
+        dlg.set_copyright("Copyright © 2009 sabily.org")
+        dlg.set_comments(_("Monajat supplications"))
+        dlg.set_license("""\
+        This program is free software; you can redistribute it and/or modify
+        it under the terms of the GNU General Public License as published by
+        the Free Software Foundation; either version 2 of the License, or
+        (at your option) any later version.
+
+        This program is distributed in the hope that it will be useful,
+        but WITHOUT ANY WARRANTY; without even the implied warranty of
+        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.    See the
+        GNU General Public License for more details.
 """)
-    self.about_dlg.set_website("https://launchpad.net/monajat")
-    self.about_dlg.set_website_label("Monajat web site")
-    self.about_dlg.set_authors(["Fadi al-katout <cutout33 at gmail.com>",
-                                "Muayyad Saleh Alsadi <alsadi at ojuba.org>",
-                                "Ehab El-Gedawy <ehabsas at gmail.com>",
-                                "Mahyuddin Susanto <udienz at ubuntu.com>",
-                                "عبدالرحيم دوبيلار <abdulrahiem at sabi.li>",
-                                "أحمد المحمودي (Ahmed El-Mahmoudy) <aelmahmoudy at sabily.org>"])
-  def save_auto_start(self):
-    b=self.conf_dlg.auto_start.get_active()
-    if b and os.path.exists(self.skip_auto_fn):
-      try: os.unlink(self.skip_auto_fn)
-      except OSError: pass
-    elif not b:
-      open(self.skip_auto_fn,'wt').close()
-  
-  def update_prayer(self):
-    if not self.prayer_items: return
-    pt=self.prayer.get_prayers()
-    j=0
-    ptn=list(self.ptnames)
-    ptn[1]=''
-    for p,t in zip(ptn, pt):
-      if not p: continue
-      i = gtk.MenuItem
-      self.prayer_items[j].set_label(u"%-10s %s" % (p, t.format(),))
-      j+=1
-  
-  def init_menu(self):
-    self.menu = gtk.Menu()
-    i = gtk.ImageMenuItem(gtk.STOCK_COPY)
-    i.set_always_show_image(True)
-    i.connect('activate', self.copy_cb)
-    self.menu.add(i)
-
-    i = gtk.ImageMenuItem(gtk.STOCK_GO_FORWARD)
-    i.set_always_show_image(True)
-    i.connect('activate', self.next_cb)
-    self.menu.add(i)
-
-    i = gtk.ImageMenuItem(gtk.STOCK_GO_BACK)
-    i.set_always_show_image(True)
-    i.connect('activate', self.prev_cb)
-    self.menu.add(i)
-
-    self.menu.add(gtk.SeparatorMenuItem())
-
-    self.prayer_items=[]
-    for j in range(5):
-      i = gtk.MenuItem("-")
-      self.prayer_items.append(i)
-      self.menu.add(i)
-    self.update_prayer()
-
-    self.menu.add(gtk.SeparatorMenuItem())
-    
-    i = gtk.MenuItem(_("Configure"))
-    i.connect('activate', self.config_cb)
-    self.menu.add(i)
+        dlg.set_website("https://launchpad.net/monajat")
+        dlg.set_website_label("Monajat web site")
+        dlg.set_authors(["Fadi al-katout <cutout33 at gmail.com>",
+                                                                "Muayyad Saleh Alsadi <alsadi at ojuba.org>",
+                                                                "Ehab El-Gedawy <ehabsas at gmail.com>",
+                                                                "Mahyuddin Susanto <udienz at ubuntu.com>",
+                                                                "عبدالرحيم دوبيلار <abdulrahiem at sabi.li>",
+                                                                "أحمد المحمودي (Ahmed El-Mahmoudy) <aelmahmoudy at sabily.org>"])
+        dlg.run()
+        dlg.destroy()
+        
+    def save_auto_start(self):
+        b = self.conf_dlg.auto_start.get_active()
+        if b and os.path.exists(self.skip_auto_fn):
+            try:
+                os.unlink(self.skip_auto_fn)
+            except OSError:
+                pass
+        elif not b:
+            open(self.skip_auto_fn,'wt').close()
     
-    self.menu.add(gtk.SeparatorMenuItem())
-
-    i = gtk.ImageMenuItem(gtk.STOCK_ABOUT)
-    i.set_always_show_image(True)
-    i.connect('activate', lambda *args: self.about_dlg.run())
-    self.menu.add(i)
+    def update_prayer(self):
+        if not self.prayer_items: return
+        pt = self.prayer.get_prayers()
+        j = 0
+        ptn = list(self.ptnames)
+        ptn[1] = ''
+        for p,t in zip(ptn, pt):
+            if not p: continue
+            i = Gtk.MenuItem
+            self.prayer_items[j].set_label("{: <15} {}".format(p, t.format(),))
+            j += 1
     
-    i = gtk.ImageMenuItem(gtk.STOCK_QUIT)
-    i.set_always_show_image(True)
-    i.connect('activate', gtk.main_quit)
-    self.menu.add(i)
-
-    self.menu.show_all()
-
-  def popup_cb(self, s, button, time):
-    self.menu.popup(None, None, gtk.status_icon_position_menu, button, time, s)
-
-  def time_set_cb(self, m, t):
-    self.conf['minutes']=t
-    self.minutes_counter=1
-    self.save_conf()
-
-  def lang_cb(self, m, l):
-    if not m.get_active(): return
-    self.m.set_lang(l)
-    self.save_conf()
-
-  def notify_cb(self,notify,action):
-    try: self.notify.close()
-    except glib.GError: pass
-    if action=="exit": gtk.main_quit()
-    elif action=="copy": self.copy_cb()
-    elif action=="next": self.next_cb()
-    elif action=="previous": self.prev_cb()
+    def init_menu(self):
+        self.menu = Gtk.Menu()
+        i = Gtk.ImageMenuItem.new_from_stock(Gtk.STOCK_COPY, None)
+        i.set_always_show_image(True)
+        i.connect('activate', self.copy_cb)
+        self.menu.add(i)
+
+        i = Gtk.ImageMenuItem.new_from_stock(Gtk.STOCK_GO_FORWARD, None)
+        i.set_always_show_image(True)
+        i.connect('activate', self.next_cb)
+        self.menu.add(i)
+
+        i = Gtk.ImageMenuItem.new_from_stock(Gtk.STOCK_GO_BACK, None)
+        i.set_always_show_image(True)
+        i.connect('activate', self.prev_cb)
+        self.menu.add(i)
+
+        self.menu.add(Gtk.SeparatorMenuItem.new())
+
+        self.prayer_items = []
+        for j in range(5):
+            i = Gtk.MenuItem("-")
+            self.prayer_items.append(i)
+            self.menu.add(i)
+        self.update_prayer()
+
+        self.menu.add(Gtk.SeparatorMenuItem.new())
+        
+        i = Gtk.MenuItem(_("Configure"))
+        i.connect('activate', self.config_cb)
+        self.menu.add(i)
+        
+        self.menu.add(Gtk.SeparatorMenuItem.new())
+
+        i = Gtk.ImageMenuItem.new_from_stock(Gtk.STOCK_ABOUT, None)
+        i.set_always_show_image(True)
+        i.connect('activate', lambda *args: self.show_about_dialog()) 
+        self.menu.add(i)
+        
+        i = Gtk.ImageMenuItem.new_from_stock(Gtk.STOCK_QUIT, None)
+        i.set_always_show_image(True)
+        i.connect('activate', Gtk.main_quit)
+        self.menu.add(i)
+
+        self.menu.show_all()
+
+    def popup_cb(self, s, button, time):
+
+        self.menu.popup(None,
+                        None,
+                        self.statusicon.position_menu,
+                        self.statusicon,
+                        3,
+                        Gtk.get_current_event_time())
+
+
+    def time_set_cb(self, m, t):
+        self.conf['minutes'] = t
+        self.minutes_counter = 1
+        self.save_conf()
+
+    def lang_cb(self, m, l):
+        if not m.get_active(): return
+        self.m.set_lang(l)
+        self.save_conf()
+
+    def notify_cb(self, notify, action, *a):
+        if action == "exit":
+            Gtk.main_quit()
+        elif action == "copy":
+            self.copy_cb()
+        elif action == "next":
+            self.next_cb()
+        elif action == "previous":
+            self.prev_cb()
 
 def applet_main():
-  gtk.window_set_default_icon_name('monajat')
-  a=applet()
-  init_dbus(a.dbus_cb)
-  gtk.main()
+    Gtk.Window.set_default_icon_name('monajat')
+    a = applet()
+    init_dbus(a.dbus_cb)
+    Gtk.main()
 
 if __name__ == "__main__":
-  applet_main()
+    applet_main()
 
diff --git a/monajat/itl.py b/monajat/itl.py
index 385f990..6770298 100644
--- a/monajat/itl.py
+++ b/monajat/itl.py
@@ -1,4 +1,5 @@
 # -*- coding: utf-8 -*-
+# -*- Mode: Python; py-indent-offset: 4 -*-
 """
 ITL binding for python
 """
@@ -6,289 +7,293 @@ import time
 from ctypes import *
 
 class Date(Structure):
-  """
-  This holds the current date info.
-  """
-  _fields_ = [
-    ('day', c_int),
-    ('month', c_int),
-    ('year', c_int),
-  ]
-  def update(self):
     """
-    return True if changed
+    This holds the current date info.
     """
-    d=time.localtime()
-    if d.tm_year==self.year and d.tm_mon==self.month and d.tm_mday==self.day: return False
-    self.day, self.month, self.year = d.tm_mday, d.tm_mon, d.tm_year
-    return True
+    _fields_ = [
+        ('day', c_int),
+        ('month', c_int),
+        ('year', c_int),
+    ]
+    def update(self):
+        """
+        return True if changed
+        """
+        try:
+            d = time.localtime()
+        except TypeError:
+            return False
+        if d.tm_year == self.year and d.tm_mon == self.month and d.tm_mday == self.day:
+            return False
+        self.day, self.month, self.year = d.tm_mday, d.tm_mon, d.tm_year
+        return True
 
 class Location(Structure):
-  """
-  This holds the location info. 
+    """
+    This holds the location info. 
 
-  degreeLong	- Longitude in decimal degree.
-  degreeLat	- Latitude in decimal degree.
-  gmtDiff	- GMT difference at regular time.
-  dst		- Daylight savings time switch (0 if not used).
-  			Setting this to 1 should add 1 hour to all the
-  			calculated prayer times
-  seaLevel	- Height above Sea level in meters
-  pressure	- Atmospheric pressure in millibars (the
-  			astronomical standard value is 1010)
-  temperature	- Temperature in Celsius degree (the astronomical
-  			standard value is 10)
-  """
-  _fields_ = [
-    ('degreeLong', c_double), # Longitude in decimal degree.
-    ('degreeLat', c_double),  # Latitude in decimal degree.
-    ('gmtDiff', c_double),    # GMT difference at regular time.
-    ('dst', c_int),           # Daylight savings time switch (0 if not used).
-                              # Setting this to 1 should add 1 hour to all the
-                              # calculated prayer times
-    ('seaLevel', c_double),   # Height above Sea level in meters
-    ('pressure', c_double),   # Atmospheric pressure in millibars (the
-                              # astronomical standard value is 1010)
-    ('temperature', c_double) # Temperature in Celsius degree (the astronomical
-                              # standard value is 10)
-  ]
+    degreeLong    - Longitude in decimal degree.
+    degreeLat    - Latitude in decimal degree.
+    gmtDiff    - GMT difference at regular time.
+    dst        - Daylight savings time switch (0 if not used).
+                Setting this to 1 should add 1 hour to all the
+                calculated prayer times
+    seaLevel    - Height above Sea level in meters
+    pressure    - Atmospheric pressure in millibars (the
+                astronomical standard value is 1010)
+    temperature    - Temperature in Celsius degree (the astronomical
+                standard value is 10)
+    """
+    _fields_ = [
+        ('degreeLong', c_double), # Longitude in decimal degree.
+        ('degreeLat', c_double),    # Latitude in decimal degree.
+        ('gmtDiff', c_double),        # GMT difference at regular time.
+        ('dst', c_int),                     # Daylight savings time switch (0 if not used).
+                                                            # Setting this to 1 should add 1 hour to all the
+                                                            # calculated prayer times
+        ('seaLevel', c_double),     # Height above Sea level in meters
+        ('pressure', c_double),     # Atmospheric pressure in millibars (the
+                                                            # astronomical standard value is 1010)
+        ('temperature', c_double) # Temperature in Celsius degree (the astronomical
+                                                            # standard value is 10)
+    ]
 
 class Method(Structure):
-  """
-  This structure holds the calculation method used. NOTE: Before explicitly
-  setting any of these values, it is more safe to default initialize them
-  by calling 'getMethod(0, &method)'
+    """
+    This structure holds the calculation method used. NOTE: Before explicitly
+    setting any of these values, it is more safe to default initialize them
+    by calling 'getMethod(0, &method)'
 
-        double fajrAng;     /* Fajr angle */
-        double ishaaAng;    /* Ishaa angle */
-        double imsaakAng;   /* The angle difference between Imsaak and Fajr (
-                               default is 1.5)*/
-        int fajrInv;        /* Fajr Interval is the amount of minutes between
-                               Fajr and Shurooq (0 if not used) */
-        int ishaaInv;       /* Ishaa Interval is the amount if minutes between
-                               Ishaa and Maghrib (0 if not used) */
-        int imsaakInv;      /* Imsaak Interval is the amount of minutes between
-                               Imsaak and Fajr. The default is 10 minutes before
-                               Fajr if Fajr Interval is set */
-        int round;          /* Method used for rounding seconds:
-                               0: No Rounding. "Prayer.seconds" is set to the
-                                  amount of computed seconds.
-                               1: Normal Rounding. If seconds are equal to
-                                  30 or above, add 1 minute. Sets
-                                  "Prayer.seconds" to zero.
-                               2: Special Rounding. Similar to normal rounding
-                                  but we always round down for Shurooq and
-                                  Imsaak times. (default)
-                               3: Aggressive Rounding. Similar to Special
-                                  Rounding but we add 1 minute if the seconds
-                                  value is equal to 1 second or more.  */
-        int mathhab;        /* Assr prayer shadow ratio:
-                               1: Shaf'i (default)
-                               2: Hanafi */
-        double nearestLat;  /* Latitude Used for the 'Nearest Latitude' extreme
-                               methods. The default is 48.5 */
-        int extreme;        /* Extreme latitude calculation method (see
-                               below) */
-        int offset;         /* Enable Offsets switch (set this to 1 to
-                               activate). This option allows you to add or
-                               subtract any amount of minutes to the daily
-                               computed prayer times based on values (in
-                               minutes) for each prayer in the offList array */     
-        double offList[6];  /* For Example: If you want to add 30 seconds to
-                               Maghrib and subtract 2 minutes from Ishaa:
-                                    offset = 1
-                                    offList[4] = 0.5
-                                    offList[5] = -2
-                               ..and than call getPrayerTimes as usual. */
-  --
-       Supported methods for Extreme Latitude calculations (Method.extreme) -
-       (see the file "./doc/method-info.txt" for details) :
-      
-       0:  none. if unable to calculate, leave as 99:99
-       1:  Nearest Latitude: All prayers Always
-       2:  Nearest Latitude: Fajr Ishaa Always
-       3:  Nearest Latitude: Fajr Ishaa if invalid
-       4:  Nearest Good Day: All prayers Always
-       5:  Nearest Good Day: Fajr Ishaa if invalid (default)
-       6:  1/7th of Night: Fajr Ishaa Always
-       7:  1/7th of Night: Fajr Ishaa if invalid
-       8:  1/7th of Day: Fajr Ishaa Always
-       9:  1/7th of Day: Fajr Ishaa if invalid
-       10: Half of the Night: Fajr Ishaa Always
-       11: Half of the Night: Fajr Ishaa if invalid
-       12: Minutes from Shorooq/Maghrib: Fajr Ishaa Always (e.g. Maghrib=Ishaa)
-       13: Minutes from Shorooq/Maghrib: Fajr Ishaa If invalid
-  --
-    /* This function is used to auto fill the Method structure with predefined
-       data. The supported auto-fill methods for calculations at normal
-       circumstances are:
-    
-      0: none. Set to default or 0
-      1: Egyptian General Authority of Survey
-      2: University of Islamic Sciences, Karachi (Shaf'i)
-      3: University of Islamic Sciences, Karachi (Hanafi)
-      4: Islamic Society of North America
-      5: Muslim World League (MWL)
-      6: Umm Al-Qurra, Saudi Arabia
-      7: Fixed Ishaa Interval (always 90)
-      8: Egyptian General Authority of Survey (Egypt)
-      (see the file "./doc/method-info.txt" for more details)
-    */
-  """
-  _fields_ = [
-    ('fajrAng', c_double),
-    ('ishaaAng', c_double),
-    ('imsaakAng', c_double),
-    ('fajrInv', c_int),
-    ('ishaaInv', c_int),
-    ('imsaakInv', c_int),
-    ('round', c_int),
-    ('mathhab', c_int),
-    ('nearestLat', c_double),
-    ('extreme', c_int),
-    ('offset', c_int),
-    ('offList', c_double*6),
-  ]
+                double fajrAng;         /* Fajr angle */
+                double ishaaAng;        /* Ishaa angle */
+                double imsaakAng;     /* The angle difference between Imsaak and Fajr (
+                                                             default is 1.5)*/
+                int fajrInv;                /* Fajr Interval is the amount of minutes between
+                                                             Fajr and Shurooq (0 if not used) */
+                int ishaaInv;             /* Ishaa Interval is the amount if minutes between
+                                                             Ishaa and Maghrib (0 if not used) */
+                int imsaakInv;            /* Imsaak Interval is the amount of minutes between
+                                                             Imsaak and Fajr. The default is 10 minutes before
+                                                             Fajr if Fajr Interval is set */
+                int round;                    /* Method used for rounding seconds:
+                                                             0: No Rounding. "Prayer.seconds" is set to the
+                                                                    amount of computed seconds.
+                                                             1: Normal Rounding. If seconds are equal to
+                                                                    30 or above, add 1 minute. Sets
+                                                                    "Prayer.seconds" to zero.
+                                                             2: Special Rounding. Similar to normal rounding
+                                                                    but we always round down for Shurooq and
+                                                                    Imsaak times. (default)
+                                                             3: Aggressive Rounding. Similar to Special
+                                                                    Rounding but we add 1 minute if the seconds
+                                                                    value is equal to 1 second or more.    */
+                int mathhab;                /* Assr prayer shadow ratio:
+                                                             1: Shaf'i (default)
+                                                             2: Hanafi */
+                double nearestLat;    /* Latitude Used for the 'Nearest Latitude' extreme
+                                                             methods. The default is 48.5 */
+                int extreme;                /* Extreme latitude calculation method (see
+                                                             below) */
+                int offset;                 /* Enable Offsets switch (set this to 1 to
+                                                             activate). This option allows you to add or
+                                                             subtract any amount of minutes to the daily
+                                                             computed prayer times based on values (in
+                                                             minutes) for each prayer in the offList array */         
+                double offList[6];    /* For Example: If you want to add 30 seconds to
+                                                             Maghrib and subtract 2 minutes from Ishaa:
+                                                                        offset = 1
+                                                                        offList[4] = 0.5
+                                                                        offList[5] = -2
+                                                             ..and than call getPrayerTimes as usual. */
+    --
+             Supported methods for Extreme Latitude calculations (Method.extreme) -
+             (see the file "./doc/method-info.txt" for details) :
+            
+             0:    none. if unable to calculate, leave as 99:99
+             1:    Nearest Latitude: All prayers Always
+             2:    Nearest Latitude: Fajr Ishaa Always
+             3:    Nearest Latitude: Fajr Ishaa if invalid
+             4:    Nearest Good Day: All prayers Always
+             5:    Nearest Good Day: Fajr Ishaa if invalid (default)
+             6:    1/7th of Night: Fajr Ishaa Always
+             7:    1/7th of Night: Fajr Ishaa if invalid
+             8:    1/7th of Day: Fajr Ishaa Always
+             9:    1/7th of Day: Fajr Ishaa if invalid
+             10: Half of the Night: Fajr Ishaa Always
+             11: Half of the Night: Fajr Ishaa if invalid
+             12: Minutes from Shorooq/Maghrib: Fajr Ishaa Always (e.g. Maghrib=Ishaa)
+             13: Minutes from Shorooq/Maghrib: Fajr Ishaa If invalid
+    --
+        /* This function is used to auto fill the Method structure with predefined
+             data. The supported auto-fill methods for calculations at normal
+             circumstances are:
+        
+            0: none. Set to default or 0
+            1: Egyptian General Authority of Survey
+            2: University of Islamic Sciences, Karachi (Shaf'i)
+            3: University of Islamic Sciences, Karachi (Hanafi)
+            4: Islamic Society of North America
+            5: Muslim World League (MWL)
+            6: Umm Al-Qurra, Saudi Arabia
+            7: Fixed Ishaa Interval (always 90)
+            8: Egyptian General Authority of Survey (Egypt)
+            (see the file "./doc/method-info.txt" for more details)
+        */
+    """
+    _fields_ = [
+        ('fajrAng', c_double),
+        ('ishaaAng', c_double),
+        ('imsaakAng', c_double),
+        ('fajrInv', c_int),
+        ('ishaaInv', c_int),
+        ('imsaakInv', c_int),
+        ('round', c_int),
+        ('mathhab', c_int),
+        ('nearestLat', c_double),
+        ('extreme', c_int),
+        ('offset', c_int),
+        ('offList', c_double*6),
+    ]
 
 class Prayer(Structure):
-  """
-    This structure holds the prayer time output for a single prayer. */
-        int hour;       /* prayer time hour */
-        int minute;     /* prayer time minute */
-        int second;     /* prayer time second */
-        int isExtreme;  /* Extreme calculation status. The 'getPrayerTimes'
-                           function sets this variable to 1 to indicate that
-                           this particular prayer time has been calculated
-                           through extreme latitude methods and NOT by
-                           conventional means of calculation. */ 
-  """
-  _fields_ = [
-    ('hour', c_int),
-    ('minute', c_int),
-    ('second', c_int),
-    ('isExtreme', c_int),
-  ]
-  def format(self, h=12):
-    if h!=12:
-      return "%02d:%02d" % (self.hour, self.minute,)
-    return "%02d:%02d %s" % ((self.hour % 12) or 12, self.minute, self.hour>=12 and "PM" or "AM")
+    """
+        This structure holds the prayer time output for a single prayer. */
+                int hour;             /* prayer time hour */
+                int minute;         /* prayer time minute */
+                int second;         /* prayer time second */
+                int isExtreme;    /* Extreme calculation status. The 'getPrayerTimes'
+                                                     function sets this variable to 1 to indicate that
+                                                     this particular prayer time has been calculated
+                                                     through extreme latitude methods and NOT by
+                                                     conventional means of calculation. */ 
+    """
+    _fields_ = [
+        ('hour', c_int),
+        ('minute', c_int),
+        ('second', c_int),
+        ('isExtreme', c_int),
+    ]
+    def format(self, h=12):
+        if h!=12:
+            return "%02d:%02d" % (self.hour, self.minute,)
+        return "%02d:%02d %s" % ((self.hour % 12) or 12, self.minute, self.hour>=12 and "PM" or "AM")
 
 try: itl=cdll.LoadLibrary("libitl.so.0")
 except OSError as e: raise e
 
 def getMethod(i, method=None):
-  """
-  returns the set method
-  """
-  if method==None:
-    method=Method()
-  itl.getMethod(7, pointer(method))
-  return method
+    """
+    returns the set method
+    """
+    if method==None:
+        method=Method()
+    itl.getMethod(7, pointer(method))
+    return method
 
 def getPrayerTimes(loc, method, date, ptList=None):
-  if ptList==None:
-    ptList=(Prayer*6)()
-  itl.getPrayerTimes(pointer(loc), pointer(method), pointer(date), pointer(ptList))
-  return ptList
+    if ptList==None:
+        ptList=(Prayer*6)()
+    itl.getPrayerTimes(pointer(loc), pointer(method), pointer(date), pointer(ptList))
+    return ptList
 
 
 
 class PrayerTimes:
-  def __init__(self, method_n=6, lat=21.43, lon=39.77, tz=3.0, dst=0, alt=0, pressure=1010, temp=10, **kw):
-    """
-    location defaults to Mecca
-    method defaults to Umm Al-Qurra
-    """
-    self.location=Location()
-    self.date=Date()
-    self.stamps=[]
-    self.stamp_date=Date()
-    self.method=Method()
-    self.ptList=(Prayer*6)()
-    self.location.degreeLong=lon
-    self.location.degreeLat=lat
-    self.location.gmtDiff=tz
-    self.location.dst=dst
-    print tz,dst
-    self.location.seaLevel = alt
-    self.location.pressure = pressure
-    self.location.temperature= temp
-    self.set_method(method_n)
-  
-  def set_location(self, lat=21.43, lon=39.77, tz=3.0, dst=0, alt=0, pressure=1010, temp=10):
-    self.location.degreeLong=lon
-    self.location.degreeLat=lat
-    self.location.gmtDiff=tz
-    self.location.dst=dst
-    self.location.seaLevel = alt
-    self.location.pressure = pressure
-    self.location.temperature= temp
-    # self.get_prayers(False) not needed as implied by next line
-    self.get_prayer_time_stamps(False)
+    def __init__(self, method_n=6, lat=21.43, lon=39.77, tz=3.0, dst=0, alt=0, pressure=1010, temp=10, **kw):
+        """
+        location defaults to Mecca
+        method defaults to Umm Al-Qurra
+        """
+        self.location=Location()
+        self.date=Date()
+        self.stamps=[]
+        self.stamp_date=Date()
+        self.method=Method()
+        self.ptList=(Prayer*6)()
+        self.location.degreeLong=lon
+        self.location.degreeLat=lat
+        self.location.gmtDiff=tz
+        self.location.dst=dst
+        print tz,dst
+        self.location.seaLevel = alt
+        self.location.pressure = pressure
+        self.location.temperature= temp
+        self.set_method(method_n)
+    
+    def set_location(self, lat=21.43, lon=39.77, tz=3.0, dst=0, alt=0, pressure=1010, temp=10):
+        self.location.degreeLong=lon
+        self.location.degreeLat=lat
+        self.location.gmtDiff=tz
+        self.location.dst=dst
+        self.location.seaLevel = alt
+        self.location.pressure = pressure
+        self.location.temperature= temp
+        # self.get_prayers(False) not needed as implied by next line
+        self.get_prayer_time_stamps(False)
 
-  def set_method(self, n):
-    getMethod(n, self.method)
-    self.get_prayers(False)
-    return self.method
+    def set_method(self, n):
+        getMethod(n, self.method)
+        self.get_prayers(False)
+        return self.method
 
-  def update(self):
-    if not self.date.update(): return False
-    self.get_prayers(False)
-    return True
+    def update(self):
+        if not self.date.update(): return False
+        self.get_prayers(False)
+        return True
 
-  def get_prayers(self, cache=True):
-    if cache and not self.date.update(): return self.ptList
-    return getPrayerTimes(self.location, self.method, self.date, self.ptList)
+    def get_prayers(self, cache=True):
+        if cache and not self.date.update(): return self.ptList
+        return getPrayerTimes(self.location, self.method, self.date, self.ptList)
 
-  def get_prayer_time_stamps(self, cache=True):
-    if cache and self.stamps and not self.stamp_date.update(): return self.stamps
-    t=int(time.time())
-    d=time.localtime()
-    t-=d.tm_hour*3600+d.tm_min*60+d.tm_sec
-    self.stamps=map(lambda p: t+p.hour*3600+p.minute*60+p.second, self.get_prayers(cache))
-    self.stamps.append(self.stamps[0]+86400)
-    return self.stamps
+    def get_prayer_time_stamps(self, cache=True):
+        if cache and self.stamps and not self.stamp_date.update(): return self.stamps
+        t=int(time.time())
+        d=time.localtime()
+        t-=d.tm_hour*3600+d.tm_min*60+d.tm_sec
+        self.stamps=map(lambda p: t+p.hour*3600+p.minute*60+p.second, self.get_prayers(cache))
+        self.stamps.append(self.stamps[0]+86400)
+        return self.stamps
 
-  def get_next_time_stamp(self, delta=0.0):
-    t=time.time()
-    l=self.get_prayer_time_stamps()
-    for i,j in enumerate(l):
-      if i==1: continue
-      if t-j<=delta: return i, j, j-t
-    return -1, -1, -1
+    def get_next_time_stamp(self, delta=0.0):
+        t=time.time()
+        l=self.get_prayer_time_stamps()
+        for i,j in enumerate(l):
+            if i==1: continue
+            if t-j<=delta: return i, j, j-t
+        return -1, -1, -1
 
-  def get_date_prayers(self, y, m, d, ptList=None):
-    date=Date()
-    date.day=d
-    date.month=m
-    date.year=y
-    return getPrayerTimes(self.location, self.method, date, ptList)
+    def get_date_prayers(self, y, m, d, ptList=None):
+        date=Date()
+        date.day=d
+        date.month=m
+        date.year=y
+        return getPrayerTimes(self.location, self.method, date, ptList)
 
 
 if __name__ == "__main__":
-    # high level examples for Mecca
-    pt=PrayerTimes()
-    for i in pt.get_prayers():
-      print i.hour, i.minute, i.second
-    # low level examples for Abu Dhabi
-    loc=Location()
-    date=Date()
-    # fill the Date structure
-    date.update()
-    # fill the location info. structure
-    loc.degreeLat = 24.4833
-    loc.degreeLong = 54.35
-    loc.gmtDiff = 4
-    loc.dst = 0
-    loc.seaLevel = 0
-    loc.pressure = 1010
-    loc.temperature= 10
-    # auto fill the method structure. Have a look at prayer.h for a
-    # list of supported methods
-    method=getMethod(7)
-    method.round = 0
-    ptList=getPrayerTimes(loc, method, date)
-    for i in ptList:
-      print i.hour, i.minute, i.second
+        # high level examples for Mecca
+        pt=PrayerTimes()
+        for i in pt.get_prayers():
+            print i.hour, i.minute, i.second
+        # low level examples for Abu Dhabi
+        loc=Location()
+        date=Date()
+        # fill the Date structure
+        date.update()
+        # fill the location info. structure
+        loc.degreeLat = 24.4833
+        loc.degreeLong = 54.35
+        loc.gmtDiff = 4
+        loc.dst = 0
+        loc.seaLevel = 0
+        loc.pressure = 1010
+        loc.temperature= 10
+        # auto fill the method structure. Have a look at prayer.h for a
+        # list of supported methods
+        method=getMethod(7)
+        method.round = 0
+        ptList=getPrayerTimes(loc, method, date)
+        for i in ptList:
+            print i.hour, i.minute, i.second
 
 
diff --git a/monajat/monajat.py b/monajat/monajat.py
index 9023aad..83b4273 100644
--- a/monajat/monajat.py
+++ b/monajat/monajat.py
@@ -1,4 +1,5 @@
 # -*- coding: utf-8 -*-
+# -*- Mode: Python; py-indent-offset: 4 -*-
 import locale
 try: locale.setlocale(locale.LC_ALL, '')
 except locale.Error: pass
@@ -9,47 +10,47 @@ import sqlite3
 from random import randint
 
 class HistoryEngine():
-  def __init__(self, size=10000):
-    self.size=size
-    self.stack=[]
-    self.i=-1
-
-  def get_current(self):
-    if self.i>=0: return self.stack[self.i]
-    else: return None
-
-  def clear(self):
-    self.i=-1
-    self.stack=[]
-
-  def go_back(self,n=1):
-    if self.i>n-1:
-      self.i-=n
-      return self.get_current()
-    return None
-
-  def go_forward(self,n=1):
-    if self.i<len(self.stack)-n:
-      self.i+=n
-      return self.get_current()
-    return None
-
-  def go_first(self):
-    if len(self.stack)>0:
-      self.i=0
-      return self.get_current()
-    return None
-
-  def go_last(self):
-    if len(self.stack)>0:
-      self.i=len(self.stack)-1
-      return self.get_current()
-    return None
-
-  def push(self,uid):
-    self.stack=self.stack[-self.size+1:]
-    self.stack.append(uid)
-    self.i=len(self.stack)-1
+    def __init__(self, size=10000):
+        self.size=size
+        self.stack=[]
+        self.i=-1
+
+    def get_current(self):
+        if self.i>=0: return self.stack[self.i]
+        else: return None
+
+    def clear(self):
+        self.i=-1
+        self.stack=[]
+
+    def go_back(self,n=1):
+        if self.i>n-1:
+            self.i-=n
+            return self.get_current()
+        return None
+
+    def go_forward(self,n=1):
+        if self.i<len(self.stack)-n:
+            self.i+=n
+            return self.get_current()
+        return None
+
+    def go_first(self):
+        if len(self.stack)>0:
+            self.i=0
+            return self.get_current()
+        return None
+
+    def go_last(self):
+        if len(self.stack)>0:
+            self.i=len(self.stack)-1
+            return self.get_current()
+        return None
+
+    def push(self,uid):
+        self.stack=self.stack[-self.size+1:]
+        self.stack.append(uid)
+        self.i=len(self.stack)-1
 
 
 SQL_GET_LANG_START="""SELECT rowid FROM monajat WHERE lang=? LIMIT 1"""
@@ -58,110 +59,110 @@ SQL_GET_LANGS="""SELECT DISTINCT lang FROM monajat"""
 SQL_GET="""SELECT rowid,* FROM monajat WHERE rowid=? LIMIT 1"""
 
 class Monajat (object):
-  def __init__(self, width=-1):
-    self.h=HistoryEngine()
-    self.tw=textwrap.TextWrapper()
-    self.tw.break_on_hyphens=False
-    self.width=width
-    if width!=-1:  self.tw.width=width
-
-    self.prefix=self.guess_prefix()
-    self.db=os.path.join(self.prefix,'data.db')
-    self.cn=sqlite3.connect(self.db)
-    self.c=self.cn.cursor()
-    self.langs=map(lambda a: a[0],self.c.execute(SQL_GET_LANGS).fetchall())
-    self.lang_boundary={}
-    for l in self.langs:
-      i=self.c.execute(SQL_GET_LANG_START, (l,)).fetchone()[0]
-      f=self.c.execute(SQL_GET_LANG_END, (l,)).fetchone()[0]
-      self.lang_boundary[l]=(i,f)
-    self.cn.row_factory=sqlite3.Row
-    self.c=self.cn.cursor()
-    self.fallback_lang='ar'
-    self.set_lang()
-    self.cities_db=os.path.join(self.prefix,'cities.db')
-    self.cities_cn=sqlite3.connect(self.cities_db)
-    self.cities_cn.row_factory=sqlite3.Row
-    self.cities_c=self.cities_cn.cursor()
-    r=self.cities_c.execute('select v from params where k=?', ('ver',)).fetchone()
-    print dict(r)
-    if r: self.cities_db_ver=r['v']
-    else: self.cities_db_ver='0'
-
-  def set_lang(self,lang=None):
-    self.h.go_last()
-    l=lang or self.guess_lang() or self.fallback_lang
-    if l not in self.langs: l=self.fallback_lang
-    self.lang=l
-
-  def guess_lang(self):
-    a=locale.getlocale(locale.LC_MESSAGES)
-    if a and a[0]: a=a[0].split('_')
-    else: return None
-    return a[0]
-
-  def guess_prefix(self):
-    b='monajat'
-    fallback_bin='/usr/bin/'
-    fallback_prefix=os.path.join(fallback_bin,'..','share',b)
-    e=os.path.realpath(os.path.dirname(sys.argv[0]) or fallback_bin)
-    d=os.path.join(e,'monajat-data')
-    if os.path.isdir(d): return d
-    else:
-      d=os.path.join(e,'..','share',b)
-      if os.path.isdir(d): return d
-      else: return fallback_prefix
-
-  def get_prefix(self):
-    return self.prefix
-
-  def text_warp(self,text):
-    l=text.split('\n\n')
-    if self.width==-1:
-      return "\n".join(map(lambda p: p.replace('\n',' '), l))
-    else:
-      return "\n".join(map(lambda p: self.tw.fill(p), l))
-
-  def get(self,uid=None, lang=None):
-    if not lang: lang=self.lang
-    if lang not in self.langs: raise IndexError
-    
-    i,f=self.lang_boundary[lang]
-    if not uid:
-      uid=randint(i,f)
-      self.h.push(uid)
-    r=dict(self.c.execute(SQL_GET, (uid,)).fetchone())
-    r['text']=self.text_warp(r['text'])
-    if r['merits']: r['merits']=self.text_warp(r['merits'])
-    return r
-
-  def get_current(self):
-    u=self.h.get_current()
-    if not u: return self.get()
-    return self.get(uid=u)
-
-  def go_forward(self):
-    u=self.h.go_forward()
-    r=self.get(uid=u)
-    return r
-
-  def go_back(self):
-    u=self.h.go_back()
-    if not u: return self.get_current()
-    r=self.get(uid=u)
-    return r
-
-  def go_first(self):
-    u=self.h.go_first()
-    if not u: return self.get_current()
-    r=self.get(uid=u)
-    return r
-
-  def go_last(self):
-    u=self.h.go_last()
-    if not u: return self.get_current()
-    r=self.get(uid=u)
-    return r
-
-  def clear(self):
-    self.h.clear()
+    def __init__(self, width=-1):
+        self.h=HistoryEngine()
+        self.tw=textwrap.TextWrapper()
+        self.tw.break_on_hyphens=False
+        self.width=width
+        if width!=-1:    self.tw.width=width
+
+        self.prefix=self.guess_prefix()
+        self.db=os.path.join(self.prefix,'data.db')
+        self.cn=sqlite3.connect(self.db)
+        self.c=self.cn.cursor()
+        self.langs=map(lambda a: a[0],self.c.execute(SQL_GET_LANGS).fetchall())
+        self.lang_boundary={}
+        for l in self.langs:
+            i=self.c.execute(SQL_GET_LANG_START, (l,)).fetchone()[0]
+            f=self.c.execute(SQL_GET_LANG_END, (l,)).fetchone()[0]
+            self.lang_boundary[l]=(i,f)
+        self.cn.row_factory=sqlite3.Row
+        self.c=self.cn.cursor()
+        self.fallback_lang='ar'
+        self.set_lang()
+        self.cities_db=os.path.join(self.prefix,'cities.db')
+        self.cities_cn=sqlite3.connect(self.cities_db)
+        self.cities_cn.row_factory=sqlite3.Row
+        self.cities_c=self.cities_cn.cursor()
+        r=self.cities_c.execute('select v from params where k=?', ('ver',)).fetchone()
+        print dict(r)
+        if r: self.cities_db_ver=r['v']
+        else: self.cities_db_ver='0'
+
+    def set_lang(self,lang=None):
+        self.h.go_last()
+        l=lang or self.guess_lang() or self.fallback_lang
+        if l not in self.langs: l=self.fallback_lang
+        self.lang=l
+
+    def guess_lang(self):
+        a=locale.getlocale(locale.LC_MESSAGES)
+        if a and a[0]: a=a[0].split('_')
+        else: return None
+        return a[0]
+
+    def guess_prefix(self):
+        b='monajat'
+        fallback_bin='/usr/bin/'
+        fallback_prefix=os.path.join(fallback_bin,'..','share',b)
+        e=os.path.realpath(os.path.dirname(sys.argv[0]) or fallback_bin)
+        d=os.path.join(e,'monajat-data')
+        if os.path.isdir(d): return d
+        else:
+            d=os.path.join(e,'..','share',b)
+            if os.path.isdir(d): return d
+            else: return fallback_prefix
+
+    def get_prefix(self):
+        return self.prefix
+
+    def text_warp(self,text):
+        l=text.split('\n\n')
+        if self.width==-1:
+            return "\n".join(map(lambda p: p.replace('\n',' '), l))
+        else:
+            return "\n".join(map(lambda p: self.tw.fill(p), l))
+
+    def get(self,uid=None, lang=None):
+        if not lang: lang=self.lang
+        if lang not in self.langs: raise IndexError
+        
+        i,f=self.lang_boundary[lang]
+        if not uid:
+            uid=randint(i,f)
+            self.h.push(uid)
+        r=dict(self.c.execute(SQL_GET, (uid,)).fetchone())
+        r['text']=self.text_warp(r['text'])
+        if r['merits']: r['merits']=self.text_warp(r['merits'])
+        return r
+
+    def get_current(self):
+        u=self.h.get_current()
+        if not u: return self.get()
+        return self.get(uid=u)
+
+    def go_forward(self):
+        u=self.h.go_forward()
+        r=self.get(uid=u)
+        return r
+
+    def go_back(self):
+        u=self.h.go_back()
+        if not u: return self.get_current()
+        r=self.get(uid=u)
+        return r
+
+    def go_first(self):
+        u=self.h.go_first()
+        if not u: return self.get_current()
+        r=self.get(uid=u)
+        return r
+
+    def go_last(self):
+        u=self.h.go_last()
+        if not u: return self.get_current()
+        r=self.get(uid=u)
+        return r
+
+    def clear(self):
+        self.h.clear()
diff --git a/monajat/sqlGenerator.py b/monajat/sqlGenerator.py
index eb68e17..8772435 100755
--- a/monajat/sqlGenerator.py
+++ b/monajat/sqlGenerator.py
@@ -4,20 +4,20 @@ import sqlite3
 from glob import glob
 
 clear_record={
-  'lang':None,'ref':None,'id':None,
-  'text':None, 'merits':None,
-  'links':None,'media':None
+    'lang':None,'ref':None,'id':None,
+    'text':None, 'merits':None,
+    'links':None,'media':None
 }
 
 SCHEMA="""
 CREATE TABLE "monajat" (
-	"lang" TEXT,
-	"ref" TEXT,
-	"id" TEXT,
-	"text" TEXT,
-	"merits" TEXT,
-	"links" TEXT,
-	"media" TEXT
+    "lang" TEXT,
+    "ref" TEXT,
+    "id" TEXT,
+    "text" TEXT,
+    "merits" TEXT,
+    "links" TEXT,
+    "media" TEXT
 );
 
 CREATE INDEX LangIndex on monajat (lang);
@@ -27,40 +27,40 @@ CREATE INDEX RefIndex on monajat (ref);
 SQL_ADD_ROW="""INSERT INTO monajat (lang, ref, id, text, merits, links, media) VALUES (:lang, :ref, :id, :text, :merits, :links, :media)"""
 
 def parse(f):
-  parsed=clear_record.copy()
-  a=map(lambda l: l.decode('utf-8').rstrip(),open(f,"rt").readlines())
-  key=None
-  for n,l in enumerate(a):
-    if l.startswith(u'@'):
-      if key: parsed[key]=u'\n'.join(values)
-      kv=l[1:].split(u'=',1)
-      key=kv[0].strip()
-      if len(kv)==2: values=[kv[1]]
-      else: values=[]
-    else:
-      if not key: raise SyntaxError, "error parsing file [%s] at line [%d]" % (f,n+1)
-      values.append(l.strip())
-  if key: parsed[key]=u'\n'.join(values)
-  return parsed
+    parsed=clear_record.copy()
+    a=map(lambda l: l.decode('utf-8').rstrip(),open(f,"rt").readlines())
+    key=None
+    for n,l in enumerate(a):
+        if l.startswith(u'@'):
+            if key: parsed[key]=u'\n'.join(values)
+            kv=l[1:].split(u'=',1)
+            key=kv[0].strip()
+            if len(kv)==2: values=[kv[1]]
+            else: values=[]
+        else:
+            if not key: raise SyntaxError, "error parsing file [%s] at line [%d]" % (f,n+1)
+            values.append(l.strip())
+    if key: parsed[key]=u'\n'.join(values)
+    return parsed
 
 def generate(prefix):
-  db=os.path.join(prefix,'data.db')
-  pat=os.path.join(prefix,'*','*.txt')
-  files=glob(pat)
-  files.sort()
-  try: os.unlink(db)
-  except OSError: pass
-  cn=sqlite3.connect(db, isolation_level=None)
-  c=cn.cursor()
-  c.executescript(SCHEMA)
-  c.execute('BEGIN TRANSACTION')
-  #for f in sys.argv[1:]:
-  for f in files:
-    print "adding [%s]..." % f
-    c.execute(SQL_ADD_ROW, parse(f))
-  c.execute('END TRANSACTION')
-  cn.commit()
+    db=os.path.join(prefix,'data.db')
+    pat=os.path.join(prefix,'*','*.txt')
+    files=glob(pat)
+    files.sort()
+    try: os.unlink(db)
+    except OSError: pass
+    cn=sqlite3.connect(db, isolation_level=None)
+    c=cn.cursor()
+    c.executescript(SCHEMA)
+    c.execute('BEGIN TRANSACTION')
+    #for f in sys.argv[1:]:
+    for f in files:
+        print "adding [%s]..." % f
+        c.execute(SQL_ADD_ROW, parse(f))
+    c.execute('END TRANSACTION')
+    cn.commit()
 
 if __name__ == "__main__":
-  generate('monajat-data')
+    generate('monajat-data')
 
diff --git a/monajat/utils.py b/monajat/utils.py
index ecef499..fcfdd40 100644
--- a/monajat/utils.py
+++ b/monajat/utils.py
@@ -1,42 +1,44 @@
+# -*- coding: utf-8 -*-
+# -*- Mode: Python; py-indent-offset: 4 -*-
 import sys
 bus, bus_name, bus_object=None,None,None
 try:
-  import dbus
-  import dbus.service
-  from dbus.mainloop.glib import DBusGMainLoop
+    import dbus
+    import dbus.service
+    from dbus.mainloop.glib import DBusGMainLoop
 
-  dbus_loop = DBusGMainLoop(set_as_default=True)
-  bus = dbus.SessionBus()
+    dbus_loop = DBusGMainLoop(set_as_default=True)
+    bus = dbus.SessionBus()
 except ImportError: pass
 
 def init_dbus(cb, interface="org.ojuba.Monajat"):
-  global bus_name, bus_object
-  if not bus: return
-  class Manager(dbus.service.Object):
-    def __init__(self, cb, bus, path):
-          dbus.service.Object.__init__(self,bus,path)
-          self.cb=cb
+    global bus_name, bus_object
+    if not bus: return
+    class Manager(dbus.service.Object):
+        def __init__(self, cb, bus, path):
+                    dbus.service.Object.__init__(self,bus,path)
+                    self.cb=cb
 
-    @dbus.service.method(interface, in_signature='as', out_signature='i')
-    def call(self,a):
-      return self.cb()
+        @dbus.service.method(interface, in_signature='as', out_signature='i')
+        def call(self,a):
+            return self.cb()
 
-  # values from /usr/include/dbus-1.0/dbus/dbus-shared.h
-  r=bus.request_name(interface, flags=0x4)
-  if r!=1:
-    print "Another process own this service, pass request to it: "
-    trials=0; appletbus=False
-    while(appletbus==False and trials<20):
-      print ".",
-      try:
-        appletbus=bus.get_object(interface,"/Manager"); break
-      except:
-        appletbus=False
-      time.sleep(1); trials+=1
-    print "*"
-    if appletbus: exit(appletbus.call(sys.argv[1:],dbus_interface=interface))
-    else: print "unable to connect"
-    exit(-1)
-  bus_name = dbus.service.BusName(interface, bus)
-  bus_object = Manager(cb, bus, '/Manager')
+    # values from /usr/include/dbus-1.0/dbus/dbus-shared.h
+    r=bus.request_name(interface, flags=0x4)
+    if r!=1:
+        print "Another process own this service, pass request to it: "
+        trials=0; appletbus=False
+        while(appletbus==False and trials<20):
+            print ".",
+            try:
+                appletbus=bus.get_object(interface,"/Manager"); break
+            except:
+                appletbus=False
+            time.sleep(1); trials+=1
+        print "*"
+        if appletbus: exit(appletbus.call(sys.argv[1:],dbus_interface=interface))
+        else: print "unable to connect"
+        exit(-1)
+    bus_name = dbus.service.BusName(interface, bus)
+    bus_object = Manager(cb, bus, '/Manager')
 
diff --git a/po/Makefile b/po/Makefile
new file mode 100644
index 0000000..63d8bb4
--- /dev/null
+++ b/po/Makefile
@@ -0,0 +1,44 @@
+APPNAME := monajat
+export APPNAME
+POFILES := $(wildcard *.po)
+MOFILES := $(patsubst %.po,%.mo,$(POFILES))
+CRE_POTFILESin := for i in $(shell cat POTFILES.am ); do echo ../$${i} | sed 's/\s/\n/g; s/\.\.\///g' ; done > POTFILES.in
+
+CAT := cat
+ECHO := echo
+MKDIR := mkdir
+MSGFMT := msgfmt
+INTLTOOL_UPDATE := intltool-update
+RM := $(shell which rm | egrep '/' | sed  's/\s*//g')
+MV := $(shell which mv | egrep '/' | sed  's/\s*//g')
+
+all: $(APPNAME).pot $(MOFILES)
+
+$(APPNAME).pot: 
+	@$(CRE_POTFILESin)
+	@$(ECHO) "*** Building $(APPNAME).pot: $(SOURCES)"
+	@$(CAT) POTFILES.in
+	@$(INTLTOOL_UPDATE) -g $(APPNAME) -p
+	
+%.mo: %.po
+	@$(ECHO) "- Merging translations into $*.mo"
+	@$(MSGFMT) $*.po -o $*.mo
+	@$(MKDIR) -p ../locale/$*/LC_MESSAGES/ || :
+	@$(ECHO) "- Moving: $*.mo -> ../locale/$*/LC_MESSAGES/$(APPNAME).mo"
+	@$(MV) $*.mo ../locale/$*/LC_MESSAGES/$(APPNAME).mo
+	@$(RM) -f *.tmp
+
+%.po: $(APPNAME).pot
+	@$(ECHO) "- Updating: $*.po"
+	@$(INTLTOOL_UPDATE) -g $(APPNAME) -d $*
+
+clean:
+	@$(ECHO) "*** Cleaning pos..."
+	@$(ECHO) "- Removing: $(APPNAME).pot"
+	@$(RM) -f $(APPNAME).pot
+	@$(ECHO) "- Removing: *.tmp"
+	@$(RM) -f *.tmp
+	@$(ECHO) "- Removing: *.mo"
+	@$(RM) -f *.mo
+	@$(ECHO) "- Removing: POTFILES.in"
+	@$(RM) -f POTFILES.in
diff --git a/po/POTFILES.am b/po/POTFILES.am
new file mode 100644
index 0000000..6d6322a
--- /dev/null
+++ b/po/POTFILES.am
@@ -0,0 +1,3 @@
+*.desktop.in
+monajat/*.py
+screenlets/Monajat/*.py
diff --git a/po/ar.po b/po/ar.po
index e63ac32..5ab7e3a 100644
--- a/po/ar.po
+++ b/po/ar.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: monajat 0.1.0\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-07-23 16:03+0300\n"
+"POT-Creation-Date: 2012-07-06 19:11+0200\n"
 "PO-Revision-Date: 2009-12-17 08:12+0000\n"
 "Last-Translator: Muayyad Alsadi <Unknown>\n"
 "Language-Team: Arabic <ar at li.org>\n"
@@ -18,151 +18,172 @@ msgstr ""
 "X-Launchpad-Export-Date: 2010-01-06 04:35+0000\n"
 "X-Generator: Launchpad (build Unknown)\n"
 
-#: monajat/applet.py:67
+#: ../monajat-autostart.desktop.in.h:1
+msgid "Monajat Applet for supplications"
+msgstr "بريمج مناجاة للأذكار"
+
+#: ../monajat-autostart.desktop.in.h:2
+msgid "Monajat in system tray icon"
+msgstr "بريمج مناجاة للأذكار"
+
+#: ../monajat/applet.py:80
 msgid "Monajat Configuration"
 msgstr "إعدادات مناجاة"
 
-#: monajat/applet.py:68
+#: ../monajat/applet.py:81
 msgid "Cancel"
 msgstr "إلغاء"
 
-#: monajat/applet.py:69
+#: ../monajat/applet.py:82
 msgid "Save"
 msgstr "حفظ"
 
-#: monajat/applet.py:73
+#: ../monajat/applet.py:87
 msgid "Generic"
 msgstr "عام"
 
-#: monajat/applet.py:74
+#: ../monajat/applet.py:88
 msgid "Auto start"
 msgstr "بدء تلقائي"
 
-#: monajat/applet.py:77
+#: ../monajat/applet.py:91
 msgid "Show merits"
 msgstr "إظهار فضائل الذكر"
 
-#: monajat/applet.py:82
+#: ../monajat/applet.py:96
 msgid "Language:"
 msgstr "اللغة:"
 
-#: monajat/applet.py:93
+#: ../monajat/applet.py:108
 msgid "Time:"
 msgstr "الوقت:"
 
-#: monajat/applet.py:98 monajat/applet.py:154
+#: ../monajat/applet.py:115 ../monajat/applet.py:201
 msgid "minutes"
 msgstr "دقيقة"
 
-#: monajat/applet.py:101
+#: ../monajat/applet.py:118
 msgid "Location"
 msgstr "الموقع"
 
-#: monajat/applet.py:126
+#: ../monajat/applet.py:121
+msgid "Current city:"
+msgstr ""
+
+#: ../monajat/applet.py:132
+msgid "Please, Secify your city"
+msgstr ""
+
+#: ../monajat/applet.py:146
+msgid "Change city:"
+msgstr ""
+
+#: ../monajat/applet.py:169
 msgid "Notification"
 msgstr "التنبيه"
 
-#: monajat/applet.py:129
+#: ../monajat/applet.py:172
 msgid "Sound:"
 msgstr "الصوت:"
 
-#: monajat/applet.py:130
+#: ../monajat/applet.py:173
 msgid "Choose Athan media file"
 msgstr "اختر ملف الأذان"
 
-#: monajat/applet.py:133
+#: ../monajat/applet.py:178
 msgid "Sound Files"
 msgstr "ملفات الصوت"
 
-#: monajat/applet.py:138
+#: ../monajat/applet.py:183
 msgid "All files"
 msgstr "كل الملفات"
 
-#: monajat/applet.py:141 monajat/applet.py:165 monajat/applet.py:170
+#: ../monajat/applet.py:186 ../monajat/applet.py:213 ../monajat/applet.py:219
 msgid "Play"
 msgstr "تشغيل"
 
-#: monajat/applet.py:148
+#: ../monajat/applet.py:193
 msgid "Notify before"
 msgstr "التنبيه قبل"
 
-#: monajat/applet.py:162
+#: ../monajat/applet.py:210
 msgid "Stop"
 msgstr "توقيف"
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:404
 msgid "Fajr"
 msgstr "الفجر"
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:405
 msgid "Sunrise"
 msgstr "الشروق"
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:406
 msgid "Dhuhr"
 msgstr "الظهر"
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:407
 msgid "Asr"
 msgstr "العصر"
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:408
 msgid "Maghrib"
 msgstr "المغرب"
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:409
 msgid "Isha'a"
 msgstr "العشاء"
 
-#: monajat/applet.py:268 monajat/applet.py:282 monajat/applet.py:522
+#: ../monajat/applet.py:420 ../monajat/applet.py:422 ../monajat/applet.py:437
+#: ../monajat/applet.py:724 ../screenlets/Monajat/MonajatScreenlet.py:239
 msgid "Monajat"
 msgstr "مناجاة"
 
-#: monajat/applet.py:270
-msgid "previous"
-msgstr "سابق"
+#: ../monajat/applet.py:424
+msgid "Back"
+msgstr "للخلف"
 
-#: monajat/applet.py:271
-msgid "next"
-msgstr "لاحق"
+#: ../monajat/applet.py:425
+msgid "Forward"
+msgstr "للأمام"
 
-#: monajat/applet.py:272
+#: ../monajat/applet.py:426
 msgid "copy"
 msgstr "نسخ"
 
-#: monajat/applet.py:405
+#: ../monajat/applet.py:589
 #, python-format
 msgid "It's now time for %s prayer"
 msgstr "حان الآن وقت أذان %s"
 
-#: monajat/applet.py:449
+#: ../monajat/applet.py:636
 #, python-format
 msgid "%(hours)d hours till %(prayer)s prayer"
 msgstr "بقي %(hours)d ساعة على أذان %(prayer)s"
 
-#: monajat/applet.py:451
+#: ../monajat/applet.py:638
 #, python-format
 msgid "%(hours)d hours and %(minutes)d minutes till %(prayer)s prayer"
 msgstr "بقي %(hours)d ساعة و %(minutes)d دقيقة على أذان %(prayer)s"
 
-#: monajat/applet.py:453
+#: ../monajat/applet.py:640
 #, python-format
 msgid "less than %(minutes)d minutes till %(prayer)s prayer"
 msgstr "بقي أقل من %(minutes)d دقيقة على أذان %(prayer)s"
 
-#: monajat/applet.py:455
+#: ../monajat/applet.py:642
 #, python-format
 msgid "less than a minute till %(prayer)s prayer"
 msgstr "بقي أقل من دقيقة على أذان %(prayer)s"
 
-#: monajat/applet.py:465 monajat/applet.py:468
+#: ../monajat/applet.py:654 ../monajat/applet.py:658
 msgid "Its Merits"
 msgstr "فضائله"
 
-#: monajat/applet.py:525
+#: ../monajat/applet.py:727
 msgid "Monajat supplications"
 msgstr "برنامج الأذكار مناجاة"
 
-#: monajat/applet.py:593
+#: ../monajat/applet.py:800
 msgid "Configure"
 msgstr "إعداد"
diff --git a/po/az.po b/po/az.po
index 30f3c00..959e2db 100644
--- a/po/az.po
+++ b/po/az.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: monajat\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-07-23 16:03+0300\n"
+"POT-Creation-Date: 2012-07-06 19:11+0200\n"
 "PO-Revision-Date: 2010-08-12 07:55+0000\n"
 "Last-Translator: Khanlar <Unknown>\n"
 "Language-Team: Azerbaijani <az at li.org>\n"
@@ -18,154 +18,182 @@ msgstr ""
 "X-Launchpad-Export-Date: 2010-08-13 05:52+0000\n"
 "X-Generator: Launchpad (build Unknown)\n"
 
-#: monajat/applet.py:67
+#: ../monajat-autostart.desktop.in.h:1
+#, fuzzy
+msgid "Monajat Applet for supplications"
+msgstr "Gizli dua yalvarışlar"
+
+#: ../monajat-autostart.desktop.in.h:2
+msgid "Monajat in system tray icon"
+msgstr ""
+
+#: ../monajat/applet.py:80
 #, fuzzy
 msgid "Monajat Configuration"
 msgstr "Gizli dua yalvarışlar"
 
-#: monajat/applet.py:68
+#: ../monajat/applet.py:81
 msgid "Cancel"
 msgstr ""
 
-#: monajat/applet.py:69
+#: ../monajat/applet.py:82
 msgid "Save"
 msgstr ""
 
-#: monajat/applet.py:73
+#: ../monajat/applet.py:87
 msgid "Generic"
 msgstr ""
 
-#: monajat/applet.py:74
+#: ../monajat/applet.py:88
 msgid "Auto start"
 msgstr ""
 
-#: monajat/applet.py:77
+#: ../monajat/applet.py:91
 msgid "Show merits"
 msgstr "Mahiyyəti göstərmək"
 
-#: monajat/applet.py:82
+#: ../monajat/applet.py:96
 #, fuzzy
 msgid "Language:"
 msgstr "Dil"
 
-#: monajat/applet.py:93
+#: ../monajat/applet.py:108
 msgid "Time:"
 msgstr ""
 
-#: monajat/applet.py:98 monajat/applet.py:154
+#: ../monajat/applet.py:115 ../monajat/applet.py:201
 #, fuzzy
 msgid "minutes"
 msgstr "Vaxt dəqiqtə"
 
-#: monajat/applet.py:101
+#: ../monajat/applet.py:118
 msgid "Location"
 msgstr ""
 
-#: monajat/applet.py:126
+#: ../monajat/applet.py:121
+msgid "Current city:"
+msgstr ""
+
+#: ../monajat/applet.py:132
+msgid "Please, Secify your city"
+msgstr ""
+
+#: ../monajat/applet.py:146
+msgid "Change city:"
+msgstr ""
+
+#: ../monajat/applet.py:169
 msgid "Notification"
 msgstr ""
 
-#: monajat/applet.py:129
+#: ../monajat/applet.py:172
 msgid "Sound:"
 msgstr ""
 
-#: monajat/applet.py:130
+#: ../monajat/applet.py:173
 msgid "Choose Athan media file"
 msgstr ""
 
-#: monajat/applet.py:133
+#: ../monajat/applet.py:178
 msgid "Sound Files"
 msgstr ""
 
-#: monajat/applet.py:138
+#: ../monajat/applet.py:183
 msgid "All files"
 msgstr ""
 
-#: monajat/applet.py:141 monajat/applet.py:165 monajat/applet.py:170
+#: ../monajat/applet.py:186 ../monajat/applet.py:213 ../monajat/applet.py:219
 msgid "Play"
 msgstr ""
 
-#: monajat/applet.py:148
+#: ../monajat/applet.py:193
 msgid "Notify before"
 msgstr ""
 
-#: monajat/applet.py:162
+#: ../monajat/applet.py:210
 msgid "Stop"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:404
 msgid "Fajr"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:405
 msgid "Sunrise"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:406
 msgid "Dhuhr"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:407
 msgid "Asr"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:408
 msgid "Maghrib"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:409
 msgid "Isha'a"
 msgstr ""
 
-#: monajat/applet.py:268 monajat/applet.py:282 monajat/applet.py:522
+#: ../monajat/applet.py:420 ../monajat/applet.py:422 ../monajat/applet.py:437
+#: ../monajat/applet.py:724 ../screenlets/Monajat/MonajatScreenlet.py:239
 msgid "Monajat"
 msgstr "Gizli dua"
 
-#: monajat/applet.py:270
-msgid "previous"
-msgstr "əvvəlki"
+#: ../monajat/applet.py:424
+msgid "Back"
+msgstr ""
 
-#: monajat/applet.py:271
-msgid "next"
-msgstr "sonrakı"
+#: ../monajat/applet.py:425
+msgid "Forward"
+msgstr ""
 
-#: monajat/applet.py:272
+#: ../monajat/applet.py:426
 msgid "copy"
 msgstr "surətini çıxarmaq"
 
-#: monajat/applet.py:405
+#: ../monajat/applet.py:589
 #, python-format
 msgid "It's now time for %s prayer"
 msgstr ""
 
-#: monajat/applet.py:449
+#: ../monajat/applet.py:636
 #, python-format
 msgid "%(hours)d hours till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:451
+#: ../monajat/applet.py:638
 #, python-format
 msgid "%(hours)d hours and %(minutes)d minutes till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:453
+#: ../monajat/applet.py:640
 #, python-format
 msgid "less than %(minutes)d minutes till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:455
+#: ../monajat/applet.py:642
 #, python-format
 msgid "less than a minute till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:465 monajat/applet.py:468
+#: ../monajat/applet.py:654 ../monajat/applet.py:658
 msgid "Its Merits"
 msgstr "Onun mahiyyəti"
 
-#: monajat/applet.py:525
+#: ../monajat/applet.py:727
 msgid "Monajat supplications"
 msgstr "Gizli dua yalvarışlar"
 
-#: monajat/applet.py:593
+#: ../monajat/applet.py:800
 msgid "Configure"
 msgstr ""
+
+#~ msgid "previous"
+#~ msgstr "əvvəlki"
+
+#~ msgid "next"
+#~ msgstr "sonrakı"
diff --git a/po/bn.po b/po/bn.po
index 3c8dfcb..69792cc 100644
--- a/po/bn.po
+++ b/po/bn.po
@@ -6,8 +6,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: monajat\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL at ADDRESS>\n"
-"POT-Creation-Date: 2009-08-13 16:06+0300\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2012-07-06 19:11+0200\n"
 "PO-Revision-Date: 2011-07-30 15:22+0000\n"
 "Last-Translator: himel <Unknown>\n"
 "Language-Team: Bengali <bn at li.org>\n"
@@ -18,152 +18,173 @@ msgstr ""
 "X-Launchpad-Export-Date: 2011-07-31 04:35+0000\n"
 "X-Generator: Launchpad (build 13405)\n"
 
-#: monajat/applet.py:67
+#: ../monajat-autostart.desktop.in.h:1
+msgid "Monajat Applet for supplications"
+msgstr ""
+
+#: ../monajat-autostart.desktop.in.h:2
+msgid "Monajat in system tray icon"
+msgstr ""
+
+#: ../monajat/applet.py:80
 msgid "Monajat Configuration"
 msgstr ""
 
-#: monajat/applet.py:68
+#: ../monajat/applet.py:81
 msgid "Cancel"
 msgstr ""
 
-#: monajat/applet.py:69
+#: ../monajat/applet.py:82
 msgid "Save"
 msgstr ""
 
-#: monajat/applet.py:73
+#: ../monajat/applet.py:87
 msgid "Generic"
 msgstr ""
 
-#: monajat/applet.py:74
+#: ../monajat/applet.py:88
 msgid "Auto start"
 msgstr ""
 
-#: monajat/applet.py:77
+#: ../monajat/applet.py:91
 msgid "Show merits"
 msgstr ""
 
-#: monajat/applet.py:82
+#: ../monajat/applet.py:96
 msgid "Language:"
 msgstr ""
 
-#: monajat/applet.py:93
+#: ../monajat/applet.py:108
 msgid "Time:"
 msgstr ""
 
-#: monajat/applet.py:98 monajat/applet.py:154
+#: ../monajat/applet.py:115 ../monajat/applet.py:201
 msgid "minutes"
 msgstr ""
 
-#: monajat/applet.py:101
+#: ../monajat/applet.py:118
 msgid "Location"
 msgstr ""
 
-#: monajat/applet.py:126
+#: ../monajat/applet.py:121
+msgid "Current city:"
+msgstr ""
+
+#: ../monajat/applet.py:132
+msgid "Please, Secify your city"
+msgstr ""
+
+#: ../monajat/applet.py:146
+msgid "Change city:"
+msgstr ""
+
+#: ../monajat/applet.py:169
 msgid "Notification"
 msgstr ""
 
-#: monajat/applet.py:129
+#: ../monajat/applet.py:172
 msgid "Sound:"
 msgstr ""
 
-#: monajat/applet.py:130
+#: ../monajat/applet.py:173
 msgid "Choose Athan media file"
 msgstr ""
 
-#: monajat/applet.py:133
+#: ../monajat/applet.py:178
 msgid "Sound Files"
 msgstr ""
 
-#: monajat/applet.py:138
+#: ../monajat/applet.py:183
 msgid "All files"
 msgstr ""
 
-#: monajat/applet.py:141 monajat/applet.py:165 monajat/applet.py:170
+#: ../monajat/applet.py:186 ../monajat/applet.py:213 ../monajat/applet.py:219
 msgid "Play"
 msgstr ""
 
-#: monajat/applet.py:148
+#: ../monajat/applet.py:193
 msgid "Notify before"
 msgstr ""
 
-#: monajat/applet.py:162
+#: ../monajat/applet.py:210
 msgid "Stop"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:404
 msgid "Fajr"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:405
 msgid "Sunrise"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:406
 msgid "Dhuhr"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:407
 msgid "Asr"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:408
 msgid "Maghrib"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:409
 msgid "Isha'a"
 msgstr ""
 
-#: monajat/applet.py:268 monajat/applet.py:282 monajat/applet.py:522
+#: ../monajat/applet.py:420 ../monajat/applet.py:422 ../monajat/applet.py:437
+#: ../monajat/applet.py:724 ../screenlets/Monajat/MonajatScreenlet.py:239
 msgid "Monajat"
 msgstr "মোনাজাত"
 
-#: monajat/applet.py:270
-msgid "previous"
+#: ../monajat/applet.py:424
+msgid "Back"
 msgstr ""
 
-#: monajat/applet.py:271
-msgid "next"
+#: ../monajat/applet.py:425
+msgid "Forward"
 msgstr ""
 
-#: monajat/applet.py:272
+#: ../monajat/applet.py:426
 msgid "copy"
 msgstr ""
 
-#: monajat/applet.py:405
+#: ../monajat/applet.py:589
 #, python-format
 msgid "It's now time for %s prayer"
 msgstr ""
 
-#: monajat/applet.py:449
+#: ../monajat/applet.py:636
 #, python-format
 msgid "%(hours)d hours till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:451
+#: ../monajat/applet.py:638
 #, python-format
 msgid "%(hours)d hours and %(minutes)d minutes till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:453
+#: ../monajat/applet.py:640
 #, python-format
 msgid "less than %(minutes)d minutes till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:455
+#: ../monajat/applet.py:642
 #, python-format
 msgid "less than a minute till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:465 monajat/applet.py:468
+#: ../monajat/applet.py:654 ../monajat/applet.py:658
 msgid "Its Merits"
 msgstr ""
 
-#: monajat/applet.py:525
+#: ../monajat/applet.py:727
 msgid "Monajat supplications"
 msgstr ""
 
-#: monajat/applet.py:593
+#: ../monajat/applet.py:800
 msgid "Configure"
 msgstr ""
 
diff --git a/po/bs.po b/po/bs.po
new file mode 100644
index 0000000..12f422e
--- /dev/null
+++ b/po/bs.po
@@ -0,0 +1,189 @@
+# Bosnian translation for monajat
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the monajat package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: monajat\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2012-07-06 19:11+0200\n"
+"PO-Revision-Date: 2011-11-27 19:13+0000\n"
+"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
+"Language-Team: Bosnian <bs at li.org>\n"
+"Language: bs\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-11-28 05:18+0000\n"
+"X-Generator: Launchpad (build 14381)\n"
+
+#: ../monajat-autostart.desktop.in.h:1
+msgid "Monajat Applet for supplications"
+msgstr ""
+
+#: ../monajat-autostart.desktop.in.h:2
+msgid "Monajat in system tray icon"
+msgstr ""
+
+#: ../monajat/applet.py:80
+msgid "Monajat Configuration"
+msgstr ""
+
+#: ../monajat/applet.py:81
+msgid "Cancel"
+msgstr ""
+
+#: ../monajat/applet.py:82
+msgid "Save"
+msgstr ""
+
+#: ../monajat/applet.py:87
+msgid "Generic"
+msgstr ""
+
+#: ../monajat/applet.py:88
+msgid "Auto start"
+msgstr ""
+
+#: ../monajat/applet.py:91
+msgid "Show merits"
+msgstr ""
+
+#: ../monajat/applet.py:96
+msgid "Language:"
+msgstr ""
+
+#: ../monajat/applet.py:108
+msgid "Time:"
+msgstr ""
+
+#: ../monajat/applet.py:115 ../monajat/applet.py:201
+msgid "minutes"
+msgstr ""
+
+#: ../monajat/applet.py:118
+msgid "Location"
+msgstr ""
+
+#: ../monajat/applet.py:121
+msgid "Current city:"
+msgstr ""
+
+#: ../monajat/applet.py:132
+msgid "Please, Secify your city"
+msgstr ""
+
+#: ../monajat/applet.py:146
+msgid "Change city:"
+msgstr ""
+
+#: ../monajat/applet.py:169
+msgid "Notification"
+msgstr ""
+
+#: ../monajat/applet.py:172
+msgid "Sound:"
+msgstr ""
+
+#: ../monajat/applet.py:173
+msgid "Choose Athan media file"
+msgstr ""
+
+#: ../monajat/applet.py:178
+msgid "Sound Files"
+msgstr ""
+
+#: ../monajat/applet.py:183
+msgid "All files"
+msgstr ""
+
+#: ../monajat/applet.py:186 ../monajat/applet.py:213 ../monajat/applet.py:219
+msgid "Play"
+msgstr ""
+
+#: ../monajat/applet.py:193
+msgid "Notify before"
+msgstr ""
+
+#: ../monajat/applet.py:210
+msgid "Stop"
+msgstr ""
+
+#: ../monajat/applet.py:404
+msgid "Fajr"
+msgstr ""
+
+#: ../monajat/applet.py:405
+msgid "Sunrise"
+msgstr ""
+
+#: ../monajat/applet.py:406
+msgid "Dhuhr"
+msgstr ""
+
+#: ../monajat/applet.py:407
+msgid "Asr"
+msgstr ""
+
+#: ../monajat/applet.py:408
+msgid "Maghrib"
+msgstr ""
+
+#: ../monajat/applet.py:409
+msgid "Isha'a"
+msgstr ""
+
+#: ../monajat/applet.py:420 ../monajat/applet.py:422 ../monajat/applet.py:437
+#: ../monajat/applet.py:724 ../screenlets/Monajat/MonajatScreenlet.py:239
+msgid "Monajat"
+msgstr ""
+
+#: ../monajat/applet.py:424
+msgid "Back"
+msgstr ""
+
+#: ../monajat/applet.py:425
+msgid "Forward"
+msgstr ""
+
+#: ../monajat/applet.py:426
+msgid "copy"
+msgstr ""
+
+#: ../monajat/applet.py:589
+#, python-format
+msgid "It's now time for %s prayer"
+msgstr ""
+
+#: ../monajat/applet.py:636
+#, python-format
+msgid "%(hours)d hours till %(prayer)s prayer"
+msgstr ""
+
+#: ../monajat/applet.py:638
+#, python-format
+msgid "%(hours)d hours and %(minutes)d minutes till %(prayer)s prayer"
+msgstr ""
+
+#: ../monajat/applet.py:640
+#, python-format
+msgid "less than %(minutes)d minutes till %(prayer)s prayer"
+msgstr ""
+
+#: ../monajat/applet.py:642
+#, python-format
+msgid "less than a minute till %(prayer)s prayer"
+msgstr ""
+
+#: ../monajat/applet.py:654 ../monajat/applet.py:658
+msgid "Its Merits"
+msgstr ""
+
+#: ../monajat/applet.py:727
+msgid "Monajat supplications"
+msgstr ""
+
+#: ../monajat/applet.py:800
+msgid "Configure"
+msgstr ""
diff --git a/po/de.po b/po/de.po
index c3e1213..33c609d 100644
--- a/po/de.po
+++ b/po/de.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: monajat\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-07-23 16:03+0300\n"
+"POT-Creation-Date: 2012-07-06 19:11+0200\n"
 "PO-Revision-Date: 2010-02-14 06:18+0000\n"
 "Last-Translator: Sabily Team <sabily.team at lists.launchpad.net>\n"
 "Language-Team: German <de at li.org>\n"
@@ -18,154 +18,182 @@ msgstr ""
 "X-Launchpad-Export-Date: 2010-02-15 04:46+0000\n"
 "X-Generator: Launchpad (build Unknown)\n"
 
-#: monajat/applet.py:67
+#: ../monajat-autostart.desktop.in.h:1
+#, fuzzy
+msgid "Monajat Applet for supplications"
+msgstr "Monajat Gebete"
+
+#: ../monajat-autostart.desktop.in.h:2
+msgid "Monajat in system tray icon"
+msgstr ""
+
+#: ../monajat/applet.py:80
 #, fuzzy
 msgid "Monajat Configuration"
 msgstr "Monajat Gebete"
 
-#: monajat/applet.py:68
+#: ../monajat/applet.py:81
 msgid "Cancel"
 msgstr ""
 
-#: monajat/applet.py:69
+#: ../monajat/applet.py:82
 msgid "Save"
 msgstr ""
 
-#: monajat/applet.py:73
+#: ../monajat/applet.py:87
 msgid "Generic"
 msgstr ""
 
-#: monajat/applet.py:74
+#: ../monajat/applet.py:88
 msgid "Auto start"
 msgstr ""
 
-#: monajat/applet.py:77
+#: ../monajat/applet.py:91
 msgid "Show merits"
 msgstr "Zeige Vorzüge"
 
-#: monajat/applet.py:82
+#: ../monajat/applet.py:96
 #, fuzzy
 msgid "Language:"
 msgstr "Sprache"
 
-#: monajat/applet.py:93
+#: ../monajat/applet.py:108
 msgid "Time:"
 msgstr ""
 
-#: monajat/applet.py:98 monajat/applet.py:154
+#: ../monajat/applet.py:115 ../monajat/applet.py:201
 #, fuzzy
 msgid "minutes"
 msgstr "Zeit in Minuten"
 
-#: monajat/applet.py:101
+#: ../monajat/applet.py:118
 msgid "Location"
 msgstr ""
 
-#: monajat/applet.py:126
+#: ../monajat/applet.py:121
+msgid "Current city:"
+msgstr ""
+
+#: ../monajat/applet.py:132
+msgid "Please, Secify your city"
+msgstr ""
+
+#: ../monajat/applet.py:146
+msgid "Change city:"
+msgstr ""
+
+#: ../monajat/applet.py:169
 msgid "Notification"
 msgstr ""
 
-#: monajat/applet.py:129
+#: ../monajat/applet.py:172
 msgid "Sound:"
 msgstr ""
 
-#: monajat/applet.py:130
+#: ../monajat/applet.py:173
 msgid "Choose Athan media file"
 msgstr ""
 
-#: monajat/applet.py:133
+#: ../monajat/applet.py:178
 msgid "Sound Files"
 msgstr ""
 
-#: monajat/applet.py:138
+#: ../monajat/applet.py:183
 msgid "All files"
 msgstr ""
 
-#: monajat/applet.py:141 monajat/applet.py:165 monajat/applet.py:170
+#: ../monajat/applet.py:186 ../monajat/applet.py:213 ../monajat/applet.py:219
 msgid "Play"
 msgstr ""
 
-#: monajat/applet.py:148
+#: ../monajat/applet.py:193
 msgid "Notify before"
 msgstr ""
 
-#: monajat/applet.py:162
+#: ../monajat/applet.py:210
 msgid "Stop"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:404
 msgid "Fajr"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:405
 msgid "Sunrise"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:406
 msgid "Dhuhr"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:407
 msgid "Asr"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:408
 msgid "Maghrib"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:409
 msgid "Isha'a"
 msgstr ""
 
-#: monajat/applet.py:268 monajat/applet.py:282 monajat/applet.py:522
+#: ../monajat/applet.py:420 ../monajat/applet.py:422 ../monajat/applet.py:437
+#: ../monajat/applet.py:724 ../screenlets/Monajat/MonajatScreenlet.py:239
 msgid "Monajat"
 msgstr "Monajat"
 
-#: monajat/applet.py:270
-msgid "previous"
-msgstr "Vorherige"
+#: ../monajat/applet.py:424
+msgid "Back"
+msgstr ""
 
-#: monajat/applet.py:271
-msgid "next"
-msgstr "Nächste"
+#: ../monajat/applet.py:425
+msgid "Forward"
+msgstr ""
 
-#: monajat/applet.py:272
+#: ../monajat/applet.py:426
 msgid "copy"
 msgstr "Kopieren"
 
-#: monajat/applet.py:405
+#: ../monajat/applet.py:589
 #, python-format
 msgid "It's now time for %s prayer"
 msgstr ""
 
-#: monajat/applet.py:449
+#: ../monajat/applet.py:636
 #, python-format
 msgid "%(hours)d hours till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:451
+#: ../monajat/applet.py:638
 #, python-format
 msgid "%(hours)d hours and %(minutes)d minutes till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:453
+#: ../monajat/applet.py:640
 #, python-format
 msgid "less than %(minutes)d minutes till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:455
+#: ../monajat/applet.py:642
 #, python-format
 msgid "less than a minute till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:465 monajat/applet.py:468
+#: ../monajat/applet.py:654 ../monajat/applet.py:658
 msgid "Its Merits"
 msgstr "Seine Vorzüge"
 
-#: monajat/applet.py:525
+#: ../monajat/applet.py:727
 msgid "Monajat supplications"
 msgstr "Monajat Gebete"
 
-#: monajat/applet.py:593
+#: ../monajat/applet.py:800
 msgid "Configure"
 msgstr ""
+
+#~ msgid "previous"
+#~ msgstr "Vorherige"
+
+#~ msgid "next"
+#~ msgstr "Nächste"
diff --git a/po/en_GB.po b/po/en_GB.po
index 5555b55..ff588bb 100644
--- a/po/en_GB.po
+++ b/po/en_GB.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: monajat\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-07-23 16:03+0300\n"
+"POT-Creation-Date: 2012-07-06 19:11+0200\n"
 "PO-Revision-Date: 2010-12-12 12:59+0000\n"
 "Last-Translator: Lewis Cawte <Unknown>\n"
 "Language-Team: English (United Kingdom) <en_GB at li.org>\n"
@@ -18,154 +18,176 @@ msgstr ""
 "X-Launchpad-Export-Date: 2010-12-13 04:56+0000\n"
 "X-Generator: Launchpad (build Unknown)\n"
 
-#: monajat/applet.py:67
+#: ../monajat-autostart.desktop.in.h:1
+#, fuzzy
+msgid "Monajat Applet for supplications"
+msgstr "Monajat supplications"
+
+#: ../monajat-autostart.desktop.in.h:2
+msgid "Monajat in system tray icon"
+msgstr ""
+
+#: ../monajat/applet.py:80
 #, fuzzy
 msgid "Monajat Configuration"
 msgstr "Monajat supplications"
 
-#: monajat/applet.py:68
+#: ../monajat/applet.py:81
 msgid "Cancel"
 msgstr ""
 
-#: monajat/applet.py:69
+#: ../monajat/applet.py:82
 msgid "Save"
 msgstr ""
 
-#: monajat/applet.py:73
+#: ../monajat/applet.py:87
 msgid "Generic"
 msgstr ""
 
-#: monajat/applet.py:74
+#: ../monajat/applet.py:88
 msgid "Auto start"
 msgstr ""
 
-#: monajat/applet.py:77
+#: ../monajat/applet.py:91
 msgid "Show merits"
 msgstr "Show merits"
 
-#: monajat/applet.py:82
+#: ../monajat/applet.py:96
 #, fuzzy
 msgid "Language:"
 msgstr "Language"
 
-#: monajat/applet.py:93
+#: ../monajat/applet.py:108
 msgid "Time:"
 msgstr ""
 
-#: monajat/applet.py:98 monajat/applet.py:154
+#: ../monajat/applet.py:115 ../monajat/applet.py:201
 #, fuzzy
 msgid "minutes"
 msgstr "Time in minutes"
 
-#: monajat/applet.py:101
+#: ../monajat/applet.py:118
 msgid "Location"
 msgstr ""
 
-#: monajat/applet.py:126
+#: ../monajat/applet.py:121
+msgid "Current city:"
+msgstr ""
+
+#: ../monajat/applet.py:132
+msgid "Please, Secify your city"
+msgstr ""
+
+#: ../monajat/applet.py:146
+msgid "Change city:"
+msgstr ""
+
+#: ../monajat/applet.py:169
 msgid "Notification"
 msgstr ""
 
-#: monajat/applet.py:129
+#: ../monajat/applet.py:172
 msgid "Sound:"
 msgstr ""
 
-#: monajat/applet.py:130
+#: ../monajat/applet.py:173
 msgid "Choose Athan media file"
 msgstr ""
 
-#: monajat/applet.py:133
+#: ../monajat/applet.py:178
 msgid "Sound Files"
 msgstr ""
 
-#: monajat/applet.py:138
+#: ../monajat/applet.py:183
 msgid "All files"
 msgstr ""
 
-#: monajat/applet.py:141 monajat/applet.py:165 monajat/applet.py:170
+#: ../monajat/applet.py:186 ../monajat/applet.py:213 ../monajat/applet.py:219
 msgid "Play"
 msgstr ""
 
-#: monajat/applet.py:148
+#: ../monajat/applet.py:193
 msgid "Notify before"
 msgstr ""
 
-#: monajat/applet.py:162
+#: ../monajat/applet.py:210
 msgid "Stop"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:404
 msgid "Fajr"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:405
 msgid "Sunrise"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:406
 msgid "Dhuhr"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:407
 msgid "Asr"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:408
 msgid "Maghrib"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:409
 msgid "Isha'a"
 msgstr ""
 
-#: monajat/applet.py:268 monajat/applet.py:282 monajat/applet.py:522
+#: ../monajat/applet.py:420 ../monajat/applet.py:422 ../monajat/applet.py:437
+#: ../monajat/applet.py:724 ../screenlets/Monajat/MonajatScreenlet.py:239
 msgid "Monajat"
 msgstr "Monajat"
 
-#: monajat/applet.py:270
-msgid "previous"
+#: ../monajat/applet.py:424
+msgid "Back"
 msgstr ""
 
-#: monajat/applet.py:271
-msgid "next"
+#: ../monajat/applet.py:425
+msgid "Forward"
 msgstr ""
 
-#: monajat/applet.py:272
+#: ../monajat/applet.py:426
 msgid "copy"
 msgstr ""
 
-#: monajat/applet.py:405
+#: ../monajat/applet.py:589
 #, python-format
 msgid "It's now time for %s prayer"
 msgstr ""
 
-#: monajat/applet.py:449
+#: ../monajat/applet.py:636
 #, python-format
 msgid "%(hours)d hours till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:451
+#: ../monajat/applet.py:638
 #, python-format
 msgid "%(hours)d hours and %(minutes)d minutes till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:453
+#: ../monajat/applet.py:640
 #, python-format
 msgid "less than %(minutes)d minutes till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:455
+#: ../monajat/applet.py:642
 #, python-format
 msgid "less than a minute till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:465 monajat/applet.py:468
+#: ../monajat/applet.py:654 ../monajat/applet.py:658
 msgid "Its Merits"
 msgstr "Its Merits"
 
-#: monajat/applet.py:525
+#: ../monajat/applet.py:727
 msgid "Monajat supplications"
 msgstr "Monajat supplications"
 
-#: monajat/applet.py:593
+#: ../monajat/applet.py:800
 msgid "Configure"
 msgstr ""
diff --git a/po/es.po b/po/es.po
index dc418b9..b095ac3 100644
--- a/po/es.po
+++ b/po/es.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: monajat\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-07-23 16:03+0300\n"
+"POT-Creation-Date: 2012-07-06 19:11+0200\n"
 "PO-Revision-Date: 2011-03-20 22:14+0000\n"
 "Last-Translator: hhlp <os390l at gmail.com>\n"
 "Language-Team: Spanish <es at li.org>\n"
@@ -18,158 +18,186 @@ msgstr ""
 "X-Launchpad-Export-Date: 2011-03-21 04:41+0000\n"
 "X-Generator: Launchpad (build 12559)\n"
 
-#: monajat/applet.py:67
+#: ../monajat-autostart.desktop.in.h:1
+#, fuzzy
+msgid "Monajat Applet for supplications"
+msgstr "Súplicas"
+
+#: ../monajat-autostart.desktop.in.h:2
+msgid "Monajat in system tray icon"
+msgstr ""
+
+#: ../monajat/applet.py:80
 #, fuzzy
 msgid "Monajat Configuration"
 msgstr "Súplicas"
 
-#: monajat/applet.py:68
+#: ../monajat/applet.py:81
 msgid "Cancel"
 msgstr "Cancelar"
 
-#: monajat/applet.py:69
+#: ../monajat/applet.py:82
 msgid "Save"
 msgstr "Guardar"
 
-#: monajat/applet.py:73
+#: ../monajat/applet.py:87
 msgid "Generic"
 msgstr ""
 
-#: monajat/applet.py:74
+#: ../monajat/applet.py:88
 msgid "Auto start"
 msgstr ""
 
-#: monajat/applet.py:77
+#: ../monajat/applet.py:91
 msgid "Show merits"
 msgstr "Mostrar méritos"
 
-#: monajat/applet.py:82
+#: ../monajat/applet.py:96
 #, fuzzy
 msgid "Language:"
 msgstr "Idioma:"
 
-#: monajat/applet.py:93
+#: ../monajat/applet.py:108
 msgid "Time:"
 msgstr ""
 
-#: monajat/applet.py:98 monajat/applet.py:154
+#: ../monajat/applet.py:115 ../monajat/applet.py:201
 #, fuzzy
 msgid "minutes"
 msgstr "Tiempo en minutos"
 
-#: monajat/applet.py:101
+#: ../monajat/applet.py:118
 msgid "Location"
 msgstr ""
 
-#: monajat/applet.py:126
+#: ../monajat/applet.py:121
+msgid "Current city:"
+msgstr ""
+
+#: ../monajat/applet.py:132
+msgid "Please, Secify your city"
+msgstr ""
+
+#: ../monajat/applet.py:146
+msgid "Change city:"
+msgstr ""
+
+#: ../monajat/applet.py:169
 msgid "Notification"
 msgstr ""
 
-#: monajat/applet.py:129
+#: ../monajat/applet.py:172
 msgid "Sound:"
 msgstr ""
 
-#: monajat/applet.py:130
+#: ../monajat/applet.py:173
 msgid "Choose Athan media file"
 msgstr ""
 
-#: monajat/applet.py:133
+#: ../monajat/applet.py:178
 msgid "Sound Files"
 msgstr ""
 
-#: monajat/applet.py:138
+#: ../monajat/applet.py:183
 msgid "All files"
 msgstr ""
 
-#: monajat/applet.py:141 monajat/applet.py:165 monajat/applet.py:170
+#: ../monajat/applet.py:186 ../monajat/applet.py:213 ../monajat/applet.py:219
 msgid "Play"
 msgstr ""
 
-#: monajat/applet.py:148
+#: ../monajat/applet.py:193
 msgid "Notify before"
 msgstr ""
 
-#: monajat/applet.py:162
+#: ../monajat/applet.py:210
 msgid "Stop"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:404
 msgid "Fajr"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:405
 msgid "Sunrise"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:406
 msgid "Dhuhr"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:407
 msgid "Asr"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:408
 msgid "Maghrib"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:409
 msgid "Isha'a"
 msgstr ""
 
-#: monajat/applet.py:268 monajat/applet.py:282 monajat/applet.py:522
+#: ../monajat/applet.py:420 ../monajat/applet.py:422 ../monajat/applet.py:437
+#: ../monajat/applet.py:724 ../screenlets/Monajat/MonajatScreenlet.py:239
 msgid "Monajat"
 msgstr "Monajat"
 
-#: monajat/applet.py:270
-msgid "previous"
-msgstr "anterior"
+#: ../monajat/applet.py:424
+msgid "Back"
+msgstr ""
 
-#: monajat/applet.py:271
-msgid "next"
-msgstr "siguiente"
+#: ../monajat/applet.py:425
+msgid "Forward"
+msgstr ""
 
-#: monajat/applet.py:272
+#: ../monajat/applet.py:426
 msgid "copy"
 msgstr "copiar"
 
-#: monajat/applet.py:405
+#: ../monajat/applet.py:589
 #, python-format
 msgid "It's now time for %s prayer"
 msgstr ""
 
-#: monajat/applet.py:449
+#: ../monajat/applet.py:636
 #, python-format
 msgid "%(hours)d hours till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:451
+#: ../monajat/applet.py:638
 #, python-format
 msgid "%(hours)d hours and %(minutes)d minutes till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:453
+#: ../monajat/applet.py:640
 #, python-format
 msgid "less than %(minutes)d minutes till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:455
+#: ../monajat/applet.py:642
 #, python-format
 msgid "less than a minute till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:465 monajat/applet.py:468
+#: ../monajat/applet.py:654 ../monajat/applet.py:658
 msgid "Its Merits"
 msgstr "Sus méritos"
 
-#: monajat/applet.py:525
+#: ../monajat/applet.py:727
 msgid "Monajat supplications"
 msgstr "Súplicas"
 
-#: monajat/applet.py:593
+#: ../monajat/applet.py:800
 msgid "Configure"
 msgstr ""
 
+#~ msgid "previous"
+#~ msgstr "anterior"
+
+#~ msgid "next"
+#~ msgstr "siguiente"
+
 #~ msgid "Language"
 #~ msgstr "Idioma"
 
diff --git a/po/fa.po b/po/fa.po
index 40ade59..6f85b62 100644
--- a/po/fa.po
+++ b/po/fa.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: monajat\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-07-23 16:03+0300\n"
+"POT-Creation-Date: 2012-07-06 19:11+0200\n"
 "PO-Revision-Date: 2009-11-24 23:44+0000\n"
 "Last-Translator: Launchpad Translations Administrators <rosetta at launchpad."
 "net>\n"
@@ -19,151 +19,172 @@ msgstr ""
 "X-Launchpad-Export-Date: 2010-01-06 04:35+0000\n"
 "X-Generator: Launchpad (build Unknown)\n"
 
-#: monajat/applet.py:67
+#: ../monajat-autostart.desktop.in.h:1
+msgid "Monajat Applet for supplications"
+msgstr ""
+
+#: ../monajat-autostart.desktop.in.h:2
+msgid "Monajat in system tray icon"
+msgstr ""
+
+#: ../monajat/applet.py:80
 msgid "Monajat Configuration"
 msgstr ""
 
-#: monajat/applet.py:68
+#: ../monajat/applet.py:81
 msgid "Cancel"
 msgstr ""
 
-#: monajat/applet.py:69
+#: ../monajat/applet.py:82
 msgid "Save"
 msgstr ""
 
-#: monajat/applet.py:73
+#: ../monajat/applet.py:87
 msgid "Generic"
 msgstr ""
 
-#: monajat/applet.py:74
+#: ../monajat/applet.py:88
 msgid "Auto start"
 msgstr ""
 
-#: monajat/applet.py:77
+#: ../monajat/applet.py:91
 msgid "Show merits"
 msgstr ""
 
-#: monajat/applet.py:82
+#: ../monajat/applet.py:96
 msgid "Language:"
 msgstr ""
 
-#: monajat/applet.py:93
+#: ../monajat/applet.py:108
 msgid "Time:"
 msgstr ""
 
-#: monajat/applet.py:98 monajat/applet.py:154
+#: ../monajat/applet.py:115 ../monajat/applet.py:201
 msgid "minutes"
 msgstr ""
 
-#: monajat/applet.py:101
+#: ../monajat/applet.py:118
 msgid "Location"
 msgstr ""
 
-#: monajat/applet.py:126
+#: ../monajat/applet.py:121
+msgid "Current city:"
+msgstr ""
+
+#: ../monajat/applet.py:132
+msgid "Please, Secify your city"
+msgstr ""
+
+#: ../monajat/applet.py:146
+msgid "Change city:"
+msgstr ""
+
+#: ../monajat/applet.py:169
 msgid "Notification"
 msgstr ""
 
-#: monajat/applet.py:129
+#: ../monajat/applet.py:172
 msgid "Sound:"
 msgstr ""
 
-#: monajat/applet.py:130
+#: ../monajat/applet.py:173
 msgid "Choose Athan media file"
 msgstr ""
 
-#: monajat/applet.py:133
+#: ../monajat/applet.py:178
 msgid "Sound Files"
 msgstr ""
 
-#: monajat/applet.py:138
+#: ../monajat/applet.py:183
 msgid "All files"
 msgstr ""
 
-#: monajat/applet.py:141 monajat/applet.py:165 monajat/applet.py:170
+#: ../monajat/applet.py:186 ../monajat/applet.py:213 ../monajat/applet.py:219
 msgid "Play"
 msgstr ""
 
-#: monajat/applet.py:148
+#: ../monajat/applet.py:193
 msgid "Notify before"
 msgstr ""
 
-#: monajat/applet.py:162
+#: ../monajat/applet.py:210
 msgid "Stop"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:404
 msgid "Fajr"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:405
 msgid "Sunrise"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:406
 msgid "Dhuhr"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:407
 msgid "Asr"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:408
 msgid "Maghrib"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:409
 msgid "Isha'a"
 msgstr ""
 
-#: monajat/applet.py:268 monajat/applet.py:282 monajat/applet.py:522
+#: ../monajat/applet.py:420 ../monajat/applet.py:422 ../monajat/applet.py:437
+#: ../monajat/applet.py:724 ../screenlets/Monajat/MonajatScreenlet.py:239
 msgid "Monajat"
 msgstr ""
 
-#: monajat/applet.py:270
-msgid "previous"
+#: ../monajat/applet.py:424
+msgid "Back"
 msgstr ""
 
-#: monajat/applet.py:271
-msgid "next"
+#: ../monajat/applet.py:425
+msgid "Forward"
 msgstr ""
 
-#: monajat/applet.py:272
+#: ../monajat/applet.py:426
 msgid "copy"
 msgstr ""
 
-#: monajat/applet.py:405
+#: ../monajat/applet.py:589
 #, python-format
 msgid "It's now time for %s prayer"
 msgstr ""
 
-#: monajat/applet.py:449
+#: ../monajat/applet.py:636
 #, python-format
 msgid "%(hours)d hours till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:451
+#: ../monajat/applet.py:638
 #, python-format
 msgid "%(hours)d hours and %(minutes)d minutes till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:453
+#: ../monajat/applet.py:640
 #, python-format
 msgid "less than %(minutes)d minutes till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:455
+#: ../monajat/applet.py:642
 #, python-format
 msgid "less than a minute till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:465 monajat/applet.py:468
+#: ../monajat/applet.py:654 ../monajat/applet.py:658
 msgid "Its Merits"
 msgstr ""
 
-#: monajat/applet.py:525
+#: ../monajat/applet.py:727
 msgid "Monajat supplications"
 msgstr ""
 
-#: monajat/applet.py:593
+#: ../monajat/applet.py:800
 msgid "Configure"
 msgstr ""
diff --git a/po/fr.po b/po/fr.po
index b4c01d7..beb669f 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: monajat\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-07-23 16:03+0300\n"
+"POT-Creation-Date: 2012-07-06 19:11+0200\n"
 "PO-Revision-Date: 2010-01-18 10:57+0000\n"
 "Last-Translator: Sabily Team <sabily.team at lists.launchpad.net>\n"
 "Language-Team: French <fr at li.org>\n"
@@ -18,151 +18,172 @@ msgstr ""
 "X-Launchpad-Export-Date: 2010-01-19 04:40+0000\n"
 "X-Generator: Launchpad (build Unknown)\n"
 
-#: monajat/applet.py:67
+#: ../monajat-autostart.desktop.in.h:1
+msgid "Monajat Applet for supplications"
+msgstr ""
+
+#: ../monajat-autostart.desktop.in.h:2
+msgid "Monajat in system tray icon"
+msgstr ""
+
+#: ../monajat/applet.py:80
 msgid "Monajat Configuration"
 msgstr ""
 
-#: monajat/applet.py:68
+#: ../monajat/applet.py:81
 msgid "Cancel"
 msgstr ""
 
-#: monajat/applet.py:69
+#: ../monajat/applet.py:82
 msgid "Save"
 msgstr ""
 
-#: monajat/applet.py:73
+#: ../monajat/applet.py:87
 msgid "Generic"
 msgstr ""
 
-#: monajat/applet.py:74
+#: ../monajat/applet.py:88
 msgid "Auto start"
 msgstr ""
 
-#: monajat/applet.py:77
+#: ../monajat/applet.py:91
 msgid "Show merits"
 msgstr ""
 
-#: monajat/applet.py:82
+#: ../monajat/applet.py:96
 msgid "Language:"
 msgstr ""
 
-#: monajat/applet.py:93
+#: ../monajat/applet.py:108
 msgid "Time:"
 msgstr ""
 
-#: monajat/applet.py:98 monajat/applet.py:154
+#: ../monajat/applet.py:115 ../monajat/applet.py:201
 msgid "minutes"
 msgstr ""
 
-#: monajat/applet.py:101
+#: ../monajat/applet.py:118
 msgid "Location"
 msgstr ""
 
-#: monajat/applet.py:126
+#: ../monajat/applet.py:121
+msgid "Current city:"
+msgstr ""
+
+#: ../monajat/applet.py:132
+msgid "Please, Secify your city"
+msgstr ""
+
+#: ../monajat/applet.py:146
+msgid "Change city:"
+msgstr ""
+
+#: ../monajat/applet.py:169
 msgid "Notification"
 msgstr ""
 
-#: monajat/applet.py:129
+#: ../monajat/applet.py:172
 msgid "Sound:"
 msgstr ""
 
-#: monajat/applet.py:130
+#: ../monajat/applet.py:173
 msgid "Choose Athan media file"
 msgstr ""
 
-#: monajat/applet.py:133
+#: ../monajat/applet.py:178
 msgid "Sound Files"
 msgstr ""
 
-#: monajat/applet.py:138
+#: ../monajat/applet.py:183
 msgid "All files"
 msgstr ""
 
-#: monajat/applet.py:141 monajat/applet.py:165 monajat/applet.py:170
+#: ../monajat/applet.py:186 ../monajat/applet.py:213 ../monajat/applet.py:219
 msgid "Play"
 msgstr ""
 
-#: monajat/applet.py:148
+#: ../monajat/applet.py:193
 msgid "Notify before"
 msgstr ""
 
-#: monajat/applet.py:162
+#: ../monajat/applet.py:210
 msgid "Stop"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:404
 msgid "Fajr"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:405
 msgid "Sunrise"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:406
 msgid "Dhuhr"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:407
 msgid "Asr"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:408
 msgid "Maghrib"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:409
 msgid "Isha'a"
 msgstr ""
 
-#: monajat/applet.py:268 monajat/applet.py:282 monajat/applet.py:522
+#: ../monajat/applet.py:420 ../monajat/applet.py:422 ../monajat/applet.py:437
+#: ../monajat/applet.py:724 ../screenlets/Monajat/MonajatScreenlet.py:239
 msgid "Monajat"
 msgstr "Monajat"
 
-#: monajat/applet.py:270
-msgid "previous"
+#: ../monajat/applet.py:424
+msgid "Back"
 msgstr ""
 
-#: monajat/applet.py:271
-msgid "next"
+#: ../monajat/applet.py:425
+msgid "Forward"
 msgstr ""
 
-#: monajat/applet.py:272
+#: ../monajat/applet.py:426
 msgid "copy"
 msgstr ""
 
-#: monajat/applet.py:405
+#: ../monajat/applet.py:589
 #, python-format
 msgid "It's now time for %s prayer"
 msgstr ""
 
-#: monajat/applet.py:449
+#: ../monajat/applet.py:636
 #, python-format
 msgid "%(hours)d hours till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:451
+#: ../monajat/applet.py:638
 #, python-format
 msgid "%(hours)d hours and %(minutes)d minutes till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:453
+#: ../monajat/applet.py:640
 #, python-format
 msgid "less than %(minutes)d minutes till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:455
+#: ../monajat/applet.py:642
 #, python-format
 msgid "less than a minute till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:465 monajat/applet.py:468
+#: ../monajat/applet.py:654 ../monajat/applet.py:658
 msgid "Its Merits"
 msgstr ""
 
-#: monajat/applet.py:525
+#: ../monajat/applet.py:727
 msgid "Monajat supplications"
 msgstr ""
 
-#: monajat/applet.py:593
+#: ../monajat/applet.py:800
 msgid "Configure"
 msgstr ""
diff --git a/po/he.po b/po/he.po
index 10dc3f1..1cdf79c 100644
--- a/po/he.po
+++ b/po/he.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: monajat\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-07-23 16:03+0300\n"
+"POT-Creation-Date: 2012-07-06 19:11+0200\n"
 "PO-Revision-Date: 2010-01-18 10:43+0000\n"
 "Last-Translator: Launchpad Translations Administrators <rosetta at launchpad."
 "net>\n"
@@ -19,151 +19,172 @@ msgstr ""
 "X-Launchpad-Export-Date: 2010-01-19 04:40+0000\n"
 "X-Generator: Launchpad (build Unknown)\n"
 
-#: monajat/applet.py:67
+#: ../monajat-autostart.desktop.in.h:1
+msgid "Monajat Applet for supplications"
+msgstr ""
+
+#: ../monajat-autostart.desktop.in.h:2
+msgid "Monajat in system tray icon"
+msgstr ""
+
+#: ../monajat/applet.py:80
 msgid "Monajat Configuration"
 msgstr ""
 
-#: monajat/applet.py:68
+#: ../monajat/applet.py:81
 msgid "Cancel"
 msgstr ""
 
-#: monajat/applet.py:69
+#: ../monajat/applet.py:82
 msgid "Save"
 msgstr ""
 
-#: monajat/applet.py:73
+#: ../monajat/applet.py:87
 msgid "Generic"
 msgstr ""
 
-#: monajat/applet.py:74
+#: ../monajat/applet.py:88
 msgid "Auto start"
 msgstr ""
 
-#: monajat/applet.py:77
+#: ../monajat/applet.py:91
 msgid "Show merits"
 msgstr ""
 
-#: monajat/applet.py:82
+#: ../monajat/applet.py:96
 msgid "Language:"
 msgstr ""
 
-#: monajat/applet.py:93
+#: ../monajat/applet.py:108
 msgid "Time:"
 msgstr ""
 
-#: monajat/applet.py:98 monajat/applet.py:154
+#: ../monajat/applet.py:115 ../monajat/applet.py:201
 msgid "minutes"
 msgstr ""
 
-#: monajat/applet.py:101
+#: ../monajat/applet.py:118
 msgid "Location"
 msgstr ""
 
-#: monajat/applet.py:126
+#: ../monajat/applet.py:121
+msgid "Current city:"
+msgstr ""
+
+#: ../monajat/applet.py:132
+msgid "Please, Secify your city"
+msgstr ""
+
+#: ../monajat/applet.py:146
+msgid "Change city:"
+msgstr ""
+
+#: ../monajat/applet.py:169
 msgid "Notification"
 msgstr ""
 
-#: monajat/applet.py:129
+#: ../monajat/applet.py:172
 msgid "Sound:"
 msgstr ""
 
-#: monajat/applet.py:130
+#: ../monajat/applet.py:173
 msgid "Choose Athan media file"
 msgstr ""
 
-#: monajat/applet.py:133
+#: ../monajat/applet.py:178
 msgid "Sound Files"
 msgstr ""
 
-#: monajat/applet.py:138
+#: ../monajat/applet.py:183
 msgid "All files"
 msgstr ""
 
-#: monajat/applet.py:141 monajat/applet.py:165 monajat/applet.py:170
+#: ../monajat/applet.py:186 ../monajat/applet.py:213 ../monajat/applet.py:219
 msgid "Play"
 msgstr ""
 
-#: monajat/applet.py:148
+#: ../monajat/applet.py:193
 msgid "Notify before"
 msgstr ""
 
-#: monajat/applet.py:162
+#: ../monajat/applet.py:210
 msgid "Stop"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:404
 msgid "Fajr"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:405
 msgid "Sunrise"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:406
 msgid "Dhuhr"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:407
 msgid "Asr"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:408
 msgid "Maghrib"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:409
 msgid "Isha'a"
 msgstr ""
 
-#: monajat/applet.py:268 monajat/applet.py:282 monajat/applet.py:522
+#: ../monajat/applet.py:420 ../monajat/applet.py:422 ../monajat/applet.py:437
+#: ../monajat/applet.py:724 ../screenlets/Monajat/MonajatScreenlet.py:239
 msgid "Monajat"
 msgstr "Monajat"
 
-#: monajat/applet.py:270
-msgid "previous"
+#: ../monajat/applet.py:424
+msgid "Back"
 msgstr ""
 
-#: monajat/applet.py:271
-msgid "next"
+#: ../monajat/applet.py:425
+msgid "Forward"
 msgstr ""
 
-#: monajat/applet.py:272
+#: ../monajat/applet.py:426
 msgid "copy"
 msgstr ""
 
-#: monajat/applet.py:405
+#: ../monajat/applet.py:589
 #, python-format
 msgid "It's now time for %s prayer"
 msgstr ""
 
-#: monajat/applet.py:449
+#: ../monajat/applet.py:636
 #, python-format
 msgid "%(hours)d hours till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:451
+#: ../monajat/applet.py:638
 #, python-format
 msgid "%(hours)d hours and %(minutes)d minutes till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:453
+#: ../monajat/applet.py:640
 #, python-format
 msgid "less than %(minutes)d minutes till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:455
+#: ../monajat/applet.py:642
 #, python-format
 msgid "less than a minute till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:465 monajat/applet.py:468
+#: ../monajat/applet.py:654 ../monajat/applet.py:658
 msgid "Its Merits"
 msgstr ""
 
-#: monajat/applet.py:525
+#: ../monajat/applet.py:727
 msgid "Monajat supplications"
 msgstr ""
 
-#: monajat/applet.py:593
+#: ../monajat/applet.py:800
 msgid "Configure"
 msgstr ""
diff --git a/po/hu.po b/po/hu.po
index b075471..d5d9981 100644
--- a/po/hu.po
+++ b/po/hu.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: monajat\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-07-23 16:03+0300\n"
+"POT-Creation-Date: 2012-07-06 19:11+0200\n"
 "PO-Revision-Date: 2011-02-20 22:39+0000\n"
 "Last-Translator: Launchpad Translations Administrators <rosetta at launchpad."
 "net>\n"
@@ -19,152 +19,173 @@ msgstr ""
 "X-Launchpad-Export-Date: 2011-02-21 04:47+0000\n"
 "X-Generator: Launchpad (build 12351)\n"
 
-#: monajat/applet.py:67
+#: ../monajat-autostart.desktop.in.h:1
+msgid "Monajat Applet for supplications"
+msgstr ""
+
+#: ../monajat-autostart.desktop.in.h:2
+msgid "Monajat in system tray icon"
+msgstr ""
+
+#: ../monajat/applet.py:80
 msgid "Monajat Configuration"
 msgstr ""
 
-#: monajat/applet.py:68
+#: ../monajat/applet.py:81
 msgid "Cancel"
 msgstr ""
 
-#: monajat/applet.py:69
+#: ../monajat/applet.py:82
 msgid "Save"
 msgstr ""
 
-#: monajat/applet.py:73
+#: ../monajat/applet.py:87
 msgid "Generic"
 msgstr ""
 
-#: monajat/applet.py:74
+#: ../monajat/applet.py:88
 msgid "Auto start"
 msgstr ""
 
-#: monajat/applet.py:77
+#: ../monajat/applet.py:91
 msgid "Show merits"
 msgstr ""
 
-#: monajat/applet.py:82
+#: ../monajat/applet.py:96
 msgid "Language:"
 msgstr ""
 
-#: monajat/applet.py:93
+#: ../monajat/applet.py:108
 msgid "Time:"
 msgstr ""
 
-#: monajat/applet.py:98 monajat/applet.py:154
+#: ../monajat/applet.py:115 ../monajat/applet.py:201
 msgid "minutes"
 msgstr ""
 
-#: monajat/applet.py:101
+#: ../monajat/applet.py:118
 msgid "Location"
 msgstr ""
 
-#: monajat/applet.py:126
+#: ../monajat/applet.py:121
+msgid "Current city:"
+msgstr ""
+
+#: ../monajat/applet.py:132
+msgid "Please, Secify your city"
+msgstr ""
+
+#: ../monajat/applet.py:146
+msgid "Change city:"
+msgstr ""
+
+#: ../monajat/applet.py:169
 msgid "Notification"
 msgstr ""
 
-#: monajat/applet.py:129
+#: ../monajat/applet.py:172
 msgid "Sound:"
 msgstr ""
 
-#: monajat/applet.py:130
+#: ../monajat/applet.py:173
 msgid "Choose Athan media file"
 msgstr ""
 
-#: monajat/applet.py:133
+#: ../monajat/applet.py:178
 msgid "Sound Files"
 msgstr ""
 
-#: monajat/applet.py:138
+#: ../monajat/applet.py:183
 msgid "All files"
 msgstr ""
 
-#: monajat/applet.py:141 monajat/applet.py:165 monajat/applet.py:170
+#: ../monajat/applet.py:186 ../monajat/applet.py:213 ../monajat/applet.py:219
 msgid "Play"
 msgstr ""
 
-#: monajat/applet.py:148
+#: ../monajat/applet.py:193
 msgid "Notify before"
 msgstr ""
 
-#: monajat/applet.py:162
+#: ../monajat/applet.py:210
 msgid "Stop"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:404
 msgid "Fajr"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:405
 msgid "Sunrise"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:406
 msgid "Dhuhr"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:407
 msgid "Asr"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:408
 msgid "Maghrib"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:409
 msgid "Isha'a"
 msgstr ""
 
-#: monajat/applet.py:268 monajat/applet.py:282 monajat/applet.py:522
+#: ../monajat/applet.py:420 ../monajat/applet.py:422 ../monajat/applet.py:437
+#: ../monajat/applet.py:724 ../screenlets/Monajat/MonajatScreenlet.py:239
 msgid "Monajat"
 msgstr ""
 
-#: monajat/applet.py:270
-msgid "previous"
+#: ../monajat/applet.py:424
+msgid "Back"
 msgstr ""
 
-#: monajat/applet.py:271
-msgid "next"
+#: ../monajat/applet.py:425
+msgid "Forward"
 msgstr ""
 
-#: monajat/applet.py:272
+#: ../monajat/applet.py:426
 msgid "copy"
 msgstr ""
 
-#: monajat/applet.py:405
+#: ../monajat/applet.py:589
 #, python-format
 msgid "It's now time for %s prayer"
 msgstr ""
 
-#: monajat/applet.py:449
+#: ../monajat/applet.py:636
 #, python-format
 msgid "%(hours)d hours till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:451
+#: ../monajat/applet.py:638
 #, python-format
 msgid "%(hours)d hours and %(minutes)d minutes till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:453
+#: ../monajat/applet.py:640
 #, python-format
 msgid "less than %(minutes)d minutes till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:455
+#: ../monajat/applet.py:642
 #, python-format
 msgid "less than a minute till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:465 monajat/applet.py:468
+#: ../monajat/applet.py:654 ../monajat/applet.py:658
 msgid "Its Merits"
 msgstr ""
 
-#: monajat/applet.py:525
+#: ../monajat/applet.py:727
 msgid "Monajat supplications"
 msgstr ""
 
-#: monajat/applet.py:593
+#: ../monajat/applet.py:800
 msgid "Configure"
 msgstr ""
 
diff --git a/po/id.po b/po/id.po
index 22af821..cebdfc9 100644
--- a/po/id.po
+++ b/po/id.po
@@ -7,165 +7,193 @@ msgid ""
 msgstr ""
 "Project-Id-Version: monajat\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-07-23 16:03+0300\n"
-"PO-Revision-Date: 2010-12-02 06:43+0000\n"
-"Last-Translator: Adi Nugroho <adi88nugroho at gmail.com>\n"
+"POT-Creation-Date: 2012-07-06 19:11+0200\n"
+"PO-Revision-Date: 2011-10-01 09:58+0000\n"
+"Last-Translator: Zen.I <Unknown>\n"
 "Language-Team: Indonesian <id at li.org>\n"
 "Language: id\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2010-12-03 05:02+0000\n"
-"X-Generator: Launchpad (build Unknown)\n"
+"X-Launchpad-Export-Date: 2011-10-02 04:47+0000\n"
+"X-Generator: Launchpad (build 14071)\n"
 
-#: monajat/applet.py:67
+#: ../monajat-autostart.desktop.in.h:1
+#, fuzzy
+msgid "Monajat Applet for supplications"
+msgstr "Doa dalam Munajat"
+
+#: ../monajat-autostart.desktop.in.h:2
+msgid "Monajat in system tray icon"
+msgstr ""
+
+#: ../monajat/applet.py:80
 #, fuzzy
 msgid "Monajat Configuration"
 msgstr "Doa dalam Munajat"
 
-#: monajat/applet.py:68
+#: ../monajat/applet.py:81
 msgid "Cancel"
 msgstr ""
 
-#: monajat/applet.py:69
+#: ../monajat/applet.py:82
 msgid "Save"
 msgstr ""
 
-#: monajat/applet.py:73
+#: ../monajat/applet.py:87
 msgid "Generic"
 msgstr ""
 
-#: monajat/applet.py:74
+#: ../monajat/applet.py:88
 msgid "Auto start"
 msgstr ""
 
-#: monajat/applet.py:77
+#: ../monajat/applet.py:91
 msgid "Show merits"
 msgstr "Menunjukkan manfaat"
 
-#: monajat/applet.py:82
+#: ../monajat/applet.py:96
 #, fuzzy
 msgid "Language:"
 msgstr "Bahasa"
 
-#: monajat/applet.py:93
+#: ../monajat/applet.py:108
 msgid "Time:"
 msgstr ""
 
-#: monajat/applet.py:98 monajat/applet.py:154
+#: ../monajat/applet.py:115 ../monajat/applet.py:201
 #, fuzzy
 msgid "minutes"
 msgstr "Waktu dalam menit"
 
-#: monajat/applet.py:101
+#: ../monajat/applet.py:118
 msgid "Location"
 msgstr ""
 
-#: monajat/applet.py:126
+#: ../monajat/applet.py:121
+msgid "Current city:"
+msgstr ""
+
+#: ../monajat/applet.py:132
+msgid "Please, Secify your city"
+msgstr ""
+
+#: ../monajat/applet.py:146
+msgid "Change city:"
+msgstr ""
+
+#: ../monajat/applet.py:169
 msgid "Notification"
 msgstr ""
 
-#: monajat/applet.py:129
+#: ../monajat/applet.py:172
 msgid "Sound:"
 msgstr ""
 
-#: monajat/applet.py:130
+#: ../monajat/applet.py:173
 msgid "Choose Athan media file"
 msgstr ""
 
-#: monajat/applet.py:133
+#: ../monajat/applet.py:178
 msgid "Sound Files"
 msgstr ""
 
-#: monajat/applet.py:138
+#: ../monajat/applet.py:183
 msgid "All files"
 msgstr ""
 
-#: monajat/applet.py:141 monajat/applet.py:165 monajat/applet.py:170
+#: ../monajat/applet.py:186 ../monajat/applet.py:213 ../monajat/applet.py:219
 msgid "Play"
 msgstr ""
 
-#: monajat/applet.py:148
+#: ../monajat/applet.py:193
 msgid "Notify before"
 msgstr ""
 
-#: monajat/applet.py:162
+#: ../monajat/applet.py:210
 msgid "Stop"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:404
 msgid "Fajr"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:405
 msgid "Sunrise"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:406
 msgid "Dhuhr"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:407
 msgid "Asr"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:408
 msgid "Maghrib"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:409
 msgid "Isha'a"
 msgstr ""
 
-#: monajat/applet.py:268 monajat/applet.py:282 monajat/applet.py:522
+#: ../monajat/applet.py:420 ../monajat/applet.py:422 ../monajat/applet.py:437
+#: ../monajat/applet.py:724 ../screenlets/Monajat/MonajatScreenlet.py:239
 msgid "Monajat"
 msgstr "Munajat"
 
-#: monajat/applet.py:270
-msgid "previous"
-msgstr "sebelumnya"
+#: ../monajat/applet.py:424
+msgid "Back"
+msgstr ""
 
-#: monajat/applet.py:271
-msgid "next"
-msgstr "berikutnya"
+#: ../monajat/applet.py:425
+msgid "Forward"
+msgstr ""
 
-#: monajat/applet.py:272
+#: ../monajat/applet.py:426
 msgid "copy"
 msgstr "salin"
 
-#: monajat/applet.py:405
+#: ../monajat/applet.py:589
 #, python-format
 msgid "It's now time for %s prayer"
 msgstr ""
 
-#: monajat/applet.py:449
+#: ../monajat/applet.py:636
 #, python-format
 msgid "%(hours)d hours till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:451
+#: ../monajat/applet.py:638
 #, python-format
 msgid "%(hours)d hours and %(minutes)d minutes till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:453
+#: ../monajat/applet.py:640
 #, python-format
 msgid "less than %(minutes)d minutes till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:455
+#: ../monajat/applet.py:642
 #, python-format
 msgid "less than a minute till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:465 monajat/applet.py:468
+#: ../monajat/applet.py:654 ../monajat/applet.py:658
 msgid "Its Merits"
 msgstr "Manfaat"
 
-#: monajat/applet.py:525
+#: ../monajat/applet.py:727
 msgid "Monajat supplications"
 msgstr "Doa dalam Munajat"
 
-#: monajat/applet.py:593
+#: ../monajat/applet.py:800
 msgid "Configure"
 msgstr ""
+
+#~ msgid "previous"
+#~ msgstr "sebelumnya"
+
+#~ msgid "next"
+#~ msgstr "lanjut"
diff --git a/po/jv.po b/po/jv.po
index cde4f99..49c988c 100644
--- a/po/jv.po
+++ b/po/jv.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: monajat\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-07-23 16:03+0300\n"
+"POT-Creation-Date: 2012-07-06 19:11+0200\n"
 "PO-Revision-Date: 2010-07-05 05:32+0000\n"
 "Last-Translator: Arief Setiadi Wibowo <q_thrynx at yahoo.com>\n"
 "Language-Team: Javanese <jv at li.org>\n"
@@ -18,154 +18,182 @@ msgstr ""
 "X-Launchpad-Export-Date: 2010-07-06 03:35+0000\n"
 "X-Generator: Launchpad (build Unknown)\n"
 
-#: monajat/applet.py:67
+#: ../monajat-autostart.desktop.in.h:1
+#, fuzzy
+msgid "Monajat Applet for supplications"
+msgstr "Donga munajat"
+
+#: ../monajat-autostart.desktop.in.h:2
+msgid "Monajat in system tray icon"
+msgstr ""
+
+#: ../monajat/applet.py:80
 #, fuzzy
 msgid "Monajat Configuration"
 msgstr "Donga munajat"
 
-#: monajat/applet.py:68
+#: ../monajat/applet.py:81
 msgid "Cancel"
 msgstr ""
 
-#: monajat/applet.py:69
+#: ../monajat/applet.py:82
 msgid "Save"
 msgstr ""
 
-#: monajat/applet.py:73
+#: ../monajat/applet.py:87
 msgid "Generic"
 msgstr ""
 
-#: monajat/applet.py:74
+#: ../monajat/applet.py:88
 msgid "Auto start"
 msgstr ""
 
-#: monajat/applet.py:77
+#: ../monajat/applet.py:91
 msgid "Show merits"
 msgstr "Tuduhake paedahe"
 
-#: monajat/applet.py:82
+#: ../monajat/applet.py:96
 #, fuzzy
 msgid "Language:"
 msgstr "Basa"
 
-#: monajat/applet.py:93
+#: ../monajat/applet.py:108
 msgid "Time:"
 msgstr ""
 
-#: monajat/applet.py:98 monajat/applet.py:154
+#: ../monajat/applet.py:115 ../monajat/applet.py:201
 #, fuzzy
 msgid "minutes"
 msgstr "Wektu ing itungan menit"
 
-#: monajat/applet.py:101
+#: ../monajat/applet.py:118
 msgid "Location"
 msgstr ""
 
-#: monajat/applet.py:126
+#: ../monajat/applet.py:121
+msgid "Current city:"
+msgstr ""
+
+#: ../monajat/applet.py:132
+msgid "Please, Secify your city"
+msgstr ""
+
+#: ../monajat/applet.py:146
+msgid "Change city:"
+msgstr ""
+
+#: ../monajat/applet.py:169
 msgid "Notification"
 msgstr ""
 
-#: monajat/applet.py:129
+#: ../monajat/applet.py:172
 msgid "Sound:"
 msgstr ""
 
-#: monajat/applet.py:130
+#: ../monajat/applet.py:173
 msgid "Choose Athan media file"
 msgstr ""
 
-#: monajat/applet.py:133
+#: ../monajat/applet.py:178
 msgid "Sound Files"
 msgstr ""
 
-#: monajat/applet.py:138
+#: ../monajat/applet.py:183
 msgid "All files"
 msgstr ""
 
-#: monajat/applet.py:141 monajat/applet.py:165 monajat/applet.py:170
+#: ../monajat/applet.py:186 ../monajat/applet.py:213 ../monajat/applet.py:219
 msgid "Play"
 msgstr ""
 
-#: monajat/applet.py:148
+#: ../monajat/applet.py:193
 msgid "Notify before"
 msgstr ""
 
-#: monajat/applet.py:162
+#: ../monajat/applet.py:210
 msgid "Stop"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:404
 msgid "Fajr"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:405
 msgid "Sunrise"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:406
 msgid "Dhuhr"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:407
 msgid "Asr"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:408
 msgid "Maghrib"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:409
 msgid "Isha'a"
 msgstr ""
 
-#: monajat/applet.py:268 monajat/applet.py:282 monajat/applet.py:522
+#: ../monajat/applet.py:420 ../monajat/applet.py:422 ../monajat/applet.py:437
+#: ../monajat/applet.py:724 ../screenlets/Monajat/MonajatScreenlet.py:239
 msgid "Monajat"
 msgstr "Munajat"
 
-#: monajat/applet.py:270
-msgid "previous"
-msgstr "sakdurunge"
+#: ../monajat/applet.py:424
+msgid "Back"
+msgstr ""
 
-#: monajat/applet.py:271
-msgid "next"
-msgstr "sakbanjure"
+#: ../monajat/applet.py:425
+msgid "Forward"
+msgstr ""
 
-#: monajat/applet.py:272
+#: ../monajat/applet.py:426
 msgid "copy"
 msgstr "salin"
 
-#: monajat/applet.py:405
+#: ../monajat/applet.py:589
 #, python-format
 msgid "It's now time for %s prayer"
 msgstr ""
 
-#: monajat/applet.py:449
+#: ../monajat/applet.py:636
 #, python-format
 msgid "%(hours)d hours till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:451
+#: ../monajat/applet.py:638
 #, python-format
 msgid "%(hours)d hours and %(minutes)d minutes till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:453
+#: ../monajat/applet.py:640
 #, python-format
 msgid "less than %(minutes)d minutes till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:455
+#: ../monajat/applet.py:642
 #, python-format
 msgid "less than a minute till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:465 monajat/applet.py:468
+#: ../monajat/applet.py:654 ../monajat/applet.py:658
 msgid "Its Merits"
 msgstr "Paedahe"
 
-#: monajat/applet.py:525
+#: ../monajat/applet.py:727
 msgid "Monajat supplications"
 msgstr "Donga munajat"
 
-#: monajat/applet.py:593
+#: ../monajat/applet.py:800
 msgid "Configure"
 msgstr ""
+
+#~ msgid "previous"
+#~ msgstr "sakdurunge"
+
+#~ msgid "next"
+#~ msgstr "sakbanjure"
diff --git a/po/ku.po b/po/ku.po
index 9657691..cbb4da1 100644
--- a/po/ku.po
+++ b/po/ku.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: monajat\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-07-23 16:03+0300\n"
+"POT-Creation-Date: 2012-07-06 19:11+0200\n"
 "PO-Revision-Date: 2010-01-18 10:46+0000\n"
 "Last-Translator: Sabily Team <sabily.team at lists.launchpad.net>\n"
 "Language-Team: Kurdish <ku at li.org>\n"
@@ -18,151 +18,172 @@ msgstr ""
 "X-Launchpad-Export-Date: 2010-01-19 04:40+0000\n"
 "X-Generator: Launchpad (build Unknown)\n"
 
-#: monajat/applet.py:67
+#: ../monajat-autostart.desktop.in.h:1
+msgid "Monajat Applet for supplications"
+msgstr ""
+
+#: ../monajat-autostart.desktop.in.h:2
+msgid "Monajat in system tray icon"
+msgstr ""
+
+#: ../monajat/applet.py:80
 msgid "Monajat Configuration"
 msgstr ""
 
-#: monajat/applet.py:68
+#: ../monajat/applet.py:81
 msgid "Cancel"
 msgstr ""
 
-#: monajat/applet.py:69
+#: ../monajat/applet.py:82
 msgid "Save"
 msgstr ""
 
-#: monajat/applet.py:73
+#: ../monajat/applet.py:87
 msgid "Generic"
 msgstr ""
 
-#: monajat/applet.py:74
+#: ../monajat/applet.py:88
 msgid "Auto start"
 msgstr ""
 
-#: monajat/applet.py:77
+#: ../monajat/applet.py:91
 msgid "Show merits"
 msgstr ""
 
-#: monajat/applet.py:82
+#: ../monajat/applet.py:96
 msgid "Language:"
 msgstr ""
 
-#: monajat/applet.py:93
+#: ../monajat/applet.py:108
 msgid "Time:"
 msgstr ""
 
-#: monajat/applet.py:98 monajat/applet.py:154
+#: ../monajat/applet.py:115 ../monajat/applet.py:201
 msgid "minutes"
 msgstr ""
 
-#: monajat/applet.py:101
+#: ../monajat/applet.py:118
 msgid "Location"
 msgstr ""
 
-#: monajat/applet.py:126
+#: ../monajat/applet.py:121
+msgid "Current city:"
+msgstr ""
+
+#: ../monajat/applet.py:132
+msgid "Please, Secify your city"
+msgstr ""
+
+#: ../monajat/applet.py:146
+msgid "Change city:"
+msgstr ""
+
+#: ../monajat/applet.py:169
 msgid "Notification"
 msgstr ""
 
-#: monajat/applet.py:129
+#: ../monajat/applet.py:172
 msgid "Sound:"
 msgstr ""
 
-#: monajat/applet.py:130
+#: ../monajat/applet.py:173
 msgid "Choose Athan media file"
 msgstr ""
 
-#: monajat/applet.py:133
+#: ../monajat/applet.py:178
 msgid "Sound Files"
 msgstr ""
 
-#: monajat/applet.py:138
+#: ../monajat/applet.py:183
 msgid "All files"
 msgstr ""
 
-#: monajat/applet.py:141 monajat/applet.py:165 monajat/applet.py:170
+#: ../monajat/applet.py:186 ../monajat/applet.py:213 ../monajat/applet.py:219
 msgid "Play"
 msgstr ""
 
-#: monajat/applet.py:148
+#: ../monajat/applet.py:193
 msgid "Notify before"
 msgstr ""
 
-#: monajat/applet.py:162
+#: ../monajat/applet.py:210
 msgid "Stop"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:404
 msgid "Fajr"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:405
 msgid "Sunrise"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:406
 msgid "Dhuhr"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:407
 msgid "Asr"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:408
 msgid "Maghrib"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:409
 msgid "Isha'a"
 msgstr ""
 
-#: monajat/applet.py:268 monajat/applet.py:282 monajat/applet.py:522
+#: ../monajat/applet.py:420 ../monajat/applet.py:422 ../monajat/applet.py:437
+#: ../monajat/applet.py:724 ../screenlets/Monajat/MonajatScreenlet.py:239
 msgid "Monajat"
 msgstr "Monajat"
 
-#: monajat/applet.py:270
-msgid "previous"
+#: ../monajat/applet.py:424
+msgid "Back"
 msgstr ""
 
-#: monajat/applet.py:271
-msgid "next"
+#: ../monajat/applet.py:425
+msgid "Forward"
 msgstr ""
 
-#: monajat/applet.py:272
+#: ../monajat/applet.py:426
 msgid "copy"
 msgstr ""
 
-#: monajat/applet.py:405
+#: ../monajat/applet.py:589
 #, python-format
 msgid "It's now time for %s prayer"
 msgstr ""
 
-#: monajat/applet.py:449
+#: ../monajat/applet.py:636
 #, python-format
 msgid "%(hours)d hours till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:451
+#: ../monajat/applet.py:638
 #, python-format
 msgid "%(hours)d hours and %(minutes)d minutes till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:453
+#: ../monajat/applet.py:640
 #, python-format
 msgid "less than %(minutes)d minutes till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:455
+#: ../monajat/applet.py:642
 #, python-format
 msgid "less than a minute till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:465 monajat/applet.py:468
+#: ../monajat/applet.py:654 ../monajat/applet.py:658
 msgid "Its Merits"
 msgstr ""
 
-#: monajat/applet.py:525
+#: ../monajat/applet.py:727
 msgid "Monajat supplications"
 msgstr ""
 
-#: monajat/applet.py:593
+#: ../monajat/applet.py:800
 msgid "Configure"
 msgstr ""
diff --git a/po/monajat.pot b/po/monajat.pot
deleted file mode 100644
index fa917a2..0000000
--- a/po/monajat.pot
+++ /dev/null
@@ -1,167 +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 at ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-07-23 16:03+0300\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"Language: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=CHARSET\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: monajat/applet.py:67
-msgid "Monajat Configuration"
-msgstr ""
-
-#: monajat/applet.py:68
-msgid "Cancel"
-msgstr ""
-
-#: monajat/applet.py:69
-msgid "Save"
-msgstr ""
-
-#: monajat/applet.py:73
-msgid "Generic"
-msgstr ""
-
-#: monajat/applet.py:74
-msgid "Auto start"
-msgstr ""
-
-#: monajat/applet.py:77
-msgid "Show merits"
-msgstr ""
-
-#: monajat/applet.py:82
-msgid "Language:"
-msgstr ""
-
-#: monajat/applet.py:93
-msgid "Time:"
-msgstr ""
-
-#: monajat/applet.py:98 monajat/applet.py:154
-msgid "minutes"
-msgstr ""
-
-#: monajat/applet.py:101
-msgid "Location"
-msgstr ""
-
-#: monajat/applet.py:126
-msgid "Notification"
-msgstr ""
-
-#: monajat/applet.py:129
-msgid "Sound:"
-msgstr ""
-
-#: monajat/applet.py:130
-msgid "Choose Athan media file"
-msgstr ""
-
-#: monajat/applet.py:133
-msgid "Sound Files"
-msgstr ""
-
-#: monajat/applet.py:138
-msgid "All files"
-msgstr ""
-
-#: monajat/applet.py:141 monajat/applet.py:165 monajat/applet.py:170
-msgid "Play"
-msgstr ""
-
-#: monajat/applet.py:148
-msgid "Notify before"
-msgstr ""
-
-#: monajat/applet.py:162
-msgid "Stop"
-msgstr ""
-
-#: monajat/applet.py:255
-msgid "Fajr"
-msgstr ""
-
-#: monajat/applet.py:255
-msgid "Sunrise"
-msgstr ""
-
-#: monajat/applet.py:255
-msgid "Dhuhr"
-msgstr ""
-
-#: monajat/applet.py:255
-msgid "Asr"
-msgstr ""
-
-#: monajat/applet.py:255
-msgid "Maghrib"
-msgstr ""
-
-#: monajat/applet.py:255
-msgid "Isha'a"
-msgstr ""
-
-#: monajat/applet.py:268 monajat/applet.py:282 monajat/applet.py:522
-msgid "Monajat"
-msgstr ""
-
-#: monajat/applet.py:270
-msgid "previous"
-msgstr ""
-
-#: monajat/applet.py:271
-msgid "next"
-msgstr ""
-
-#: monajat/applet.py:272
-msgid "copy"
-msgstr ""
-
-#: monajat/applet.py:405
-#, python-format
-msgid "It's now time for %s prayer"
-msgstr ""
-
-#: monajat/applet.py:449
-#, python-format
-msgid "%(hours)d hours till %(prayer)s prayer"
-msgstr ""
-
-#: monajat/applet.py:451
-#, python-format
-msgid "%(hours)d hours and %(minutes)d minutes till %(prayer)s prayer"
-msgstr ""
-
-#: monajat/applet.py:453
-#, python-format
-msgid "less than %(minutes)d minutes till %(prayer)s prayer"
-msgstr ""
-
-#: monajat/applet.py:455
-#, python-format
-msgid "less than a minute till %(prayer)s prayer"
-msgstr ""
-
-#: monajat/applet.py:465 monajat/applet.py:468
-msgid "Its Merits"
-msgstr ""
-
-#: monajat/applet.py:525
-msgid "Monajat supplications"
-msgstr ""
-
-#: monajat/applet.py:593
-msgid "Configure"
-msgstr ""
diff --git a/po/ms.po b/po/ms.po
index 17c4704..eb0081b 100644
--- a/po/ms.po
+++ b/po/ms.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: monajat\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-07-23 16:03+0300\n"
+"POT-Creation-Date: 2012-07-06 19:11+0200\n"
 "PO-Revision-Date: 2010-12-20 05:12+0000\n"
 "Last-Translator: Muhammad Syawal bin Halimun <Unknown>\n"
 "Language-Team: Malay <ms at li.org>\n"
@@ -18,154 +18,178 @@ msgstr ""
 "X-Launchpad-Export-Date: 2010-12-21 13:25+0000\n"
 "X-Generator: Launchpad (build Unknown)\n"
 
-#: monajat/applet.py:67
-#, fuzzy
+#: ../monajat-autostart.desktop.in.h:1
+msgid "Monajat Applet for supplications"
+msgstr "Doa dalam Monajat"
+
+#: ../monajat-autostart.desktop.in.h:2
+msgid "Monajat in system tray icon"
+msgstr ""
+
+#: ../monajat/applet.py:80
 msgid "Monajat Configuration"
 msgstr "Doa dalam Monajat"
 
-#: monajat/applet.py:68
+#: ../monajat/applet.py:81
 msgid "Cancel"
 msgstr ""
 
-#: monajat/applet.py:69
+#: ../monajat/applet.py:82
 msgid "Save"
 msgstr ""
 
-#: monajat/applet.py:73
+#: ../monajat/applet.py:87
 msgid "Generic"
 msgstr ""
 
-#: monajat/applet.py:74
+#: ../monajat/applet.py:88
 msgid "Auto start"
 msgstr ""
 
-#: monajat/applet.py:77
+#: ../monajat/applet.py:91
 msgid "Show merits"
 msgstr "Paparkan ciri"
 
-#: monajat/applet.py:82
-#, fuzzy
+#: ../monajat/applet.py:96
 msgid "Language:"
 msgstr "Bahasa"
 
-#: monajat/applet.py:93
+#: ../monajat/applet.py:108
 msgid "Time:"
 msgstr ""
 
-#: monajat/applet.py:98 monajat/applet.py:154
-#, fuzzy
+#: ../monajat/applet.py:115 ../monajat/applet.py:201
 msgid "minutes"
 msgstr "Masa dalam minit"
 
-#: monajat/applet.py:101
+#: ../monajat/applet.py:118
 msgid "Location"
 msgstr ""
 
-#: monajat/applet.py:126
+#: ../monajat/applet.py:121
+msgid "Current city:"
+msgstr ""
+
+#: ../monajat/applet.py:132
+msgid "Please, Secify your city"
+msgstr ""
+
+#: ../monajat/applet.py:146
+msgid "Change city:"
+msgstr ""
+
+#: ../monajat/applet.py:169
 msgid "Notification"
 msgstr ""
 
-#: monajat/applet.py:129
+#: ../monajat/applet.py:172
 msgid "Sound:"
 msgstr ""
 
-#: monajat/applet.py:130
+#: ../monajat/applet.py:173
 msgid "Choose Athan media file"
 msgstr ""
 
-#: monajat/applet.py:133
+#: ../monajat/applet.py:178
 msgid "Sound Files"
 msgstr ""
 
-#: monajat/applet.py:138
+#: ../monajat/applet.py:183
 msgid "All files"
 msgstr ""
 
-#: monajat/applet.py:141 monajat/applet.py:165 monajat/applet.py:170
+#: ../monajat/applet.py:186 ../monajat/applet.py:213 ../monajat/applet.py:219
 msgid "Play"
 msgstr ""
 
-#: monajat/applet.py:148
+#: ../monajat/applet.py:193
 msgid "Notify before"
 msgstr ""
 
-#: monajat/applet.py:162
+#: ../monajat/applet.py:210
 msgid "Stop"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:404
 msgid "Fajr"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:405
 msgid "Sunrise"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:406
 msgid "Dhuhr"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:407
 msgid "Asr"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:408
 msgid "Maghrib"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:409
 msgid "Isha'a"
 msgstr ""
 
-#: monajat/applet.py:268 monajat/applet.py:282 monajat/applet.py:522
+#: ../monajat/applet.py:420 ../monajat/applet.py:422 ../monajat/applet.py:437
+#: ../monajat/applet.py:724 ../screenlets/Monajat/MonajatScreenlet.py:239
 msgid "Monajat"
 msgstr "Monajat"
 
-#: monajat/applet.py:270
-msgid "previous"
-msgstr "sebelumnya"
+#: ../monajat/applet.py:424
+msgid "Back"
+msgstr ""
 
-#: monajat/applet.py:271
-msgid "next"
-msgstr "seterusnya"
+#: ../monajat/applet.py:425
+msgid "Forward"
+msgstr ""
 
-#: monajat/applet.py:272
+#: ../monajat/applet.py:426
 msgid "copy"
 msgstr "salin"
 
-#: monajat/applet.py:405
+#: ../monajat/applet.py:589
 #, python-format
 msgid "It's now time for %s prayer"
 msgstr ""
 
-#: monajat/applet.py:449
+#: ../monajat/applet.py:636
 #, python-format
 msgid "%(hours)d hours till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:451
+#: ../monajat/applet.py:638
 #, python-format
 msgid "%(hours)d hours and %(minutes)d minutes till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:453
+#: ../monajat/applet.py:640
 #, python-format
 msgid "less than %(minutes)d minutes till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:455
+#: ../monajat/applet.py:642
 #, python-format
 msgid "less than a minute till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:465 monajat/applet.py:468
+#: ../monajat/applet.py:654 ../monajat/applet.py:658
 msgid "Its Merits"
 msgstr "Ciri"
 
-#: monajat/applet.py:525
+#: ../monajat/applet.py:727
 msgid "Monajat supplications"
 msgstr "Doa dalam Monajat"
 
-#: monajat/applet.py:593
+#: ../monajat/applet.py:800
 msgid "Configure"
 msgstr ""
+
+#~ msgid "previous"
+#~ msgstr "sebelumnya"
+
+#~ msgid "next"
+#~ msgstr "seterusnya"
diff --git a/po/nds.po b/po/nds.po
index fee8665..926e897 100644
--- a/po/nds.po
+++ b/po/nds.po
@@ -6,166 +6,194 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: monajat\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL at ADDRESS>\n"
-"POT-Creation-Date: 2009-08-13 16:06+0300\n"
-"PO-Revision-Date: 2011-08-21 09:38+0000\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2012-07-06 19:11+0200\n"
+"PO-Revision-Date: 2011-12-18 15:26+0000\n"
 "Last-Translator: Jens Dodenhoff <Unknown>\n"
 "Language-Team: Low German <nds at li.org>\n"
 "Language: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-08-22 04:35+0000\n"
-"X-Generator: Launchpad (build 13697)\n"
+"X-Launchpad-Export-Date: 2011-12-19 04:46+0000\n"
+"X-Generator: Launchpad (build 14525)\n"
 
-#: monajat/applet.py:67
+#: ../monajat-autostart.desktop.in.h:1
 #, fuzzy
+msgid "Monajat Applet for supplications"
+msgstr "Monajat Beden"
+
+#: ../monajat-autostart.desktop.in.h:2
+msgid "Monajat in system tray icon"
+msgstr ""
+
+#: ../monajat/applet.py:80
 msgid "Monajat Configuration"
 msgstr "Monajat Beede"
 
-#: monajat/applet.py:68
+#: ../monajat/applet.py:81
 msgid "Cancel"
 msgstr ""
 
-#: monajat/applet.py:69
+#: ../monajat/applet.py:82
 msgid "Save"
 msgstr ""
 
-#: monajat/applet.py:73
+#: ../monajat/applet.py:87
 msgid "Generic"
 msgstr ""
 
-#: monajat/applet.py:74
+#: ../monajat/applet.py:88
 msgid "Auto start"
 msgstr ""
 
-#: monajat/applet.py:77
+#: ../monajat/applet.py:91
 msgid "Show merits"
 msgstr "Opwies Bedüdens"
 
-#: monajat/applet.py:82
-#, fuzzy
+#: ../monajat/applet.py:96
 msgid "Language:"
 msgstr "Sprak"
 
-#: monajat/applet.py:93
+#: ../monajat/applet.py:108
 msgid "Time:"
 msgstr ""
 
-#: monajat/applet.py:98 monajat/applet.py:154
-#, fuzzy
+#: ../monajat/applet.py:115 ../monajat/applet.py:201
 msgid "minutes"
 msgstr "Tiet in Minuuten"
 
-#: monajat/applet.py:101
+#: ../monajat/applet.py:118
 msgid "Location"
 msgstr ""
 
-#: monajat/applet.py:126
+#: ../monajat/applet.py:121
+msgid "Current city:"
+msgstr ""
+
+#: ../monajat/applet.py:132
+msgid "Please, Secify your city"
+msgstr ""
+
+#: ../monajat/applet.py:146
+msgid "Change city:"
+msgstr ""
+
+#: ../monajat/applet.py:169
 msgid "Notification"
 msgstr ""
 
-#: monajat/applet.py:129
+#: ../monajat/applet.py:172
 msgid "Sound:"
 msgstr ""
 
-#: monajat/applet.py:130
+#: ../monajat/applet.py:173
 msgid "Choose Athan media file"
 msgstr ""
 
-#: monajat/applet.py:133
+#: ../monajat/applet.py:178
 msgid "Sound Files"
 msgstr ""
 
-#: monajat/applet.py:138
+#: ../monajat/applet.py:183
 msgid "All files"
 msgstr ""
 
-#: monajat/applet.py:141 monajat/applet.py:165 monajat/applet.py:170
+#: ../monajat/applet.py:186 ../monajat/applet.py:213 ../monajat/applet.py:219
 msgid "Play"
 msgstr ""
 
-#: monajat/applet.py:148
+#: ../monajat/applet.py:193
 msgid "Notify before"
 msgstr ""
 
-#: monajat/applet.py:162
+#: ../monajat/applet.py:210
 msgid "Stop"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:404
 msgid "Fajr"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:405
 msgid "Sunrise"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:406
 msgid "Dhuhr"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:407
 msgid "Asr"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:408
 msgid "Maghrib"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:409
 msgid "Isha'a"
 msgstr ""
 
-#: monajat/applet.py:268 monajat/applet.py:282 monajat/applet.py:522
+#: ../monajat/applet.py:420 ../monajat/applet.py:422 ../monajat/applet.py:437
+#: ../monajat/applet.py:724 ../screenlets/Monajat/MonajatScreenlet.py:239
 msgid "Monajat"
 msgstr "Monajat"
 
-#: monajat/applet.py:270
-msgid "previous"
-msgstr "Torüg"
+#: ../monajat/applet.py:424
+msgid "Back"
+msgstr ""
 
-#: monajat/applet.py:271
-msgid "next"
-msgstr "Wieder"
+#: ../monajat/applet.py:425
+msgid "Forward"
+msgstr ""
 
-#: monajat/applet.py:272
+#: ../monajat/applet.py:426
 msgid "copy"
 msgstr "Koperen"
 
-#: monajat/applet.py:405
+#: ../monajat/applet.py:589
 #, python-format
 msgid "It's now time for %s prayer"
 msgstr ""
 
-#: monajat/applet.py:449
+#: ../monajat/applet.py:636
 #, python-format
 msgid "%(hours)d hours till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:451
+#: ../monajat/applet.py:638
 #, python-format
 msgid "%(hours)d hours and %(minutes)d minutes till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:453
+#: ../monajat/applet.py:640
 #, python-format
 msgid "less than %(minutes)d minutes till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:455
+#: ../monajat/applet.py:642
 #, python-format
 msgid "less than a minute till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:465 monajat/applet.py:468
+#: ../monajat/applet.py:654 ../monajat/applet.py:658
 msgid "Its Merits"
-msgstr "Sien Bedüden"
+msgstr "Sien Döögd"
 
-#: monajat/applet.py:525
+#: ../monajat/applet.py:727
 msgid "Monajat supplications"
 msgstr "Monajat Beden"
 
-#: monajat/applet.py:593
+#: ../monajat/applet.py:800
 msgid "Configure"
 msgstr ""
+
+#~ msgid "previous"
+#~ msgstr "Verleden"
+
+#~ msgid "next"
+#~ msgstr "Nåkåmen"
+
+#~ msgid "Time in minutes"
+#~ msgstr "Tiet in Minuuten"
diff --git a/po/nl.po b/po/nl.po
index 6440631..2df3f26 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: monajat\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-07-23 16:03+0300\n"
+"POT-Creation-Date: 2012-07-06 19:11+0200\n"
 "PO-Revision-Date: 2010-11-04 17:38+0000\n"
 "Last-Translator: Yucel <Unknown>\n"
 "Language-Team: Dutch <nl at li.org>\n"
@@ -18,154 +18,182 @@ msgstr ""
 "X-Launchpad-Export-Date: 2010-11-05 04:45+0000\n"
 "X-Generator: Launchpad (build Unknown)\n"
 
-#: monajat/applet.py:67
+#: ../monajat-autostart.desktop.in.h:1
+#, fuzzy
+msgid "Monajat Applet for supplications"
+msgstr "Monajat smeekbeden"
+
+#: ../monajat-autostart.desktop.in.h:2
+msgid "Monajat in system tray icon"
+msgstr ""
+
+#: ../monajat/applet.py:80
 #, fuzzy
 msgid "Monajat Configuration"
 msgstr "Monajat smeekbeden"
 
-#: monajat/applet.py:68
+#: ../monajat/applet.py:81
 msgid "Cancel"
 msgstr ""
 
-#: monajat/applet.py:69
+#: ../monajat/applet.py:82
 msgid "Save"
 msgstr ""
 
-#: monajat/applet.py:73
+#: ../monajat/applet.py:87
 msgid "Generic"
 msgstr ""
 
-#: monajat/applet.py:74
+#: ../monajat/applet.py:88
 msgid "Auto start"
 msgstr ""
 
-#: monajat/applet.py:77
+#: ../monajat/applet.py:91
 msgid "Show merits"
 msgstr "Toon verdiensten"
 
-#: monajat/applet.py:82
+#: ../monajat/applet.py:96
 #, fuzzy
 msgid "Language:"
 msgstr "Taal"
 
-#: monajat/applet.py:93
+#: ../monajat/applet.py:108
 msgid "Time:"
 msgstr ""
 
-#: monajat/applet.py:98 monajat/applet.py:154
+#: ../monajat/applet.py:115 ../monajat/applet.py:201
 #, fuzzy
 msgid "minutes"
 msgstr "Tijd in minuten"
 
-#: monajat/applet.py:101
+#: ../monajat/applet.py:118
 msgid "Location"
 msgstr ""
 
-#: monajat/applet.py:126
+#: ../monajat/applet.py:121
+msgid "Current city:"
+msgstr ""
+
+#: ../monajat/applet.py:132
+msgid "Please, Secify your city"
+msgstr ""
+
+#: ../monajat/applet.py:146
+msgid "Change city:"
+msgstr ""
+
+#: ../monajat/applet.py:169
 msgid "Notification"
 msgstr ""
 
-#: monajat/applet.py:129
+#: ../monajat/applet.py:172
 msgid "Sound:"
 msgstr ""
 
-#: monajat/applet.py:130
+#: ../monajat/applet.py:173
 msgid "Choose Athan media file"
 msgstr ""
 
-#: monajat/applet.py:133
+#: ../monajat/applet.py:178
 msgid "Sound Files"
 msgstr ""
 
-#: monajat/applet.py:138
+#: ../monajat/applet.py:183
 msgid "All files"
 msgstr ""
 
-#: monajat/applet.py:141 monajat/applet.py:165 monajat/applet.py:170
+#: ../monajat/applet.py:186 ../monajat/applet.py:213 ../monajat/applet.py:219
 msgid "Play"
 msgstr ""
 
-#: monajat/applet.py:148
+#: ../monajat/applet.py:193
 msgid "Notify before"
 msgstr ""
 
-#: monajat/applet.py:162
+#: ../monajat/applet.py:210
 msgid "Stop"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:404
 msgid "Fajr"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:405
 msgid "Sunrise"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:406
 msgid "Dhuhr"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:407
 msgid "Asr"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:408
 msgid "Maghrib"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:409
 msgid "Isha'a"
 msgstr ""
 
-#: monajat/applet.py:268 monajat/applet.py:282 monajat/applet.py:522
+#: ../monajat/applet.py:420 ../monajat/applet.py:422 ../monajat/applet.py:437
+#: ../monajat/applet.py:724 ../screenlets/Monajat/MonajatScreenlet.py:239
 msgid "Monajat"
 msgstr "Monajat"
 
-#: monajat/applet.py:270
-msgid "previous"
-msgstr "vorige"
+#: ../monajat/applet.py:424
+msgid "Back"
+msgstr ""
 
-#: monajat/applet.py:271
-msgid "next"
-msgstr "volgende"
+#: ../monajat/applet.py:425
+msgid "Forward"
+msgstr ""
 
-#: monajat/applet.py:272
+#: ../monajat/applet.py:426
 msgid "copy"
 msgstr "kopiëren"
 
-#: monajat/applet.py:405
+#: ../monajat/applet.py:589
 #, python-format
 msgid "It's now time for %s prayer"
 msgstr ""
 
-#: monajat/applet.py:449
+#: ../monajat/applet.py:636
 #, python-format
 msgid "%(hours)d hours till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:451
+#: ../monajat/applet.py:638
 #, python-format
 msgid "%(hours)d hours and %(minutes)d minutes till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:453
+#: ../monajat/applet.py:640
 #, python-format
 msgid "less than %(minutes)d minutes till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:455
+#: ../monajat/applet.py:642
 #, python-format
 msgid "less than a minute till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:465 monajat/applet.py:468
+#: ../monajat/applet.py:654 ../monajat/applet.py:658
 msgid "Its Merits"
 msgstr "Zijn eigen Verdiensten"
 
-#: monajat/applet.py:525
+#: ../monajat/applet.py:727
 msgid "Monajat supplications"
 msgstr "Monajat smeekbeden"
 
-#: monajat/applet.py:593
+#: ../monajat/applet.py:800
 msgid "Configure"
 msgstr ""
+
+#~ msgid "previous"
+#~ msgstr "vorige"
+
+#~ msgid "next"
+#~ msgstr "volgende"
diff --git a/po/pt.po b/po/pt.po
index b8a6427..3a22a71 100644
--- a/po/pt.po
+++ b/po/pt.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: monajat\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-07-23 16:03+0300\n"
+"POT-Creation-Date: 2012-07-06 19:11+0200\n"
 "PO-Revision-Date: 2010-10-01 18:29+0000\n"
 "Last-Translator: Diogo Lavareda <diogolavareda9 at hotmail.com>\n"
 "Language-Team: Portuguese <pt at li.org>\n"
@@ -18,153 +18,180 @@ msgstr ""
 "X-Launchpad-Export-Date: 2010-10-02 04:58+0000\n"
 "X-Generator: Launchpad (build Unknown)\n"
 
-#: monajat/applet.py:67
+#: ../monajat-autostart.desktop.in.h:1
+msgid "Monajat Applet for supplications"
+msgstr ""
+
+#: ../monajat-autostart.desktop.in.h:2
+msgid "Monajat in system tray icon"
+msgstr ""
+
+#: ../monajat/applet.py:80
 msgid "Monajat Configuration"
 msgstr ""
 
-#: monajat/applet.py:68
+#: ../monajat/applet.py:81
 msgid "Cancel"
 msgstr ""
 
-#: monajat/applet.py:69
+#: ../monajat/applet.py:82
 msgid "Save"
 msgstr ""
 
-#: monajat/applet.py:73
+#: ../monajat/applet.py:87
 msgid "Generic"
 msgstr ""
 
-#: monajat/applet.py:74
+#: ../monajat/applet.py:88
 msgid "Auto start"
 msgstr ""
 
-#: monajat/applet.py:77
+#: ../monajat/applet.py:91
 msgid "Show merits"
 msgstr ""
 
-#: monajat/applet.py:82
+#: ../monajat/applet.py:96
 #, fuzzy
 msgid "Language:"
 msgstr "Idioma"
 
-#: monajat/applet.py:93
+#: ../monajat/applet.py:108
 msgid "Time:"
 msgstr ""
 
-#: monajat/applet.py:98 monajat/applet.py:154
+#: ../monajat/applet.py:115 ../monajat/applet.py:201
 #, fuzzy
 msgid "minutes"
 msgstr "Tempo em minutos"
 
-#: monajat/applet.py:101
+#: ../monajat/applet.py:118
 msgid "Location"
 msgstr ""
 
-#: monajat/applet.py:126
+#: ../monajat/applet.py:121
+msgid "Current city:"
+msgstr ""
+
+#: ../monajat/applet.py:132
+msgid "Please, Secify your city"
+msgstr ""
+
+#: ../monajat/applet.py:146
+msgid "Change city:"
+msgstr ""
+
+#: ../monajat/applet.py:169
 msgid "Notification"
 msgstr ""
 
-#: monajat/applet.py:129
+#: ../monajat/applet.py:172
 msgid "Sound:"
 msgstr ""
 
-#: monajat/applet.py:130
+#: ../monajat/applet.py:173
 msgid "Choose Athan media file"
 msgstr ""
 
-#: monajat/applet.py:133
+#: ../monajat/applet.py:178
 msgid "Sound Files"
 msgstr ""
 
-#: monajat/applet.py:138
+#: ../monajat/applet.py:183
 msgid "All files"
 msgstr ""
 
-#: monajat/applet.py:141 monajat/applet.py:165 monajat/applet.py:170
+#: ../monajat/applet.py:186 ../monajat/applet.py:213 ../monajat/applet.py:219
 msgid "Play"
 msgstr ""
 
-#: monajat/applet.py:148
+#: ../monajat/applet.py:193
 msgid "Notify before"
 msgstr ""
 
-#: monajat/applet.py:162
+#: ../monajat/applet.py:210
 msgid "Stop"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:404
 msgid "Fajr"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:405
 msgid "Sunrise"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:406
 msgid "Dhuhr"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:407
 msgid "Asr"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:408
 msgid "Maghrib"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:409
 msgid "Isha'a"
 msgstr ""
 
-#: monajat/applet.py:268 monajat/applet.py:282 monajat/applet.py:522
+#: ../monajat/applet.py:420 ../monajat/applet.py:422 ../monajat/applet.py:437
+#: ../monajat/applet.py:724 ../screenlets/Monajat/MonajatScreenlet.py:239
 msgid "Monajat"
 msgstr ""
 
-#: monajat/applet.py:270
-msgid "previous"
-msgstr "anterior"
+#: ../monajat/applet.py:424
+msgid "Back"
+msgstr ""
 
-#: monajat/applet.py:271
-msgid "next"
-msgstr "próximo"
+#: ../monajat/applet.py:425
+msgid "Forward"
+msgstr ""
 
-#: monajat/applet.py:272
+#: ../monajat/applet.py:426
 msgid "copy"
 msgstr "copiar"
 
-#: monajat/applet.py:405
+#: ../monajat/applet.py:589
 #, python-format
 msgid "It's now time for %s prayer"
 msgstr ""
 
-#: monajat/applet.py:449
+#: ../monajat/applet.py:636
 #, python-format
 msgid "%(hours)d hours till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:451
+#: ../monajat/applet.py:638
 #, python-format
 msgid "%(hours)d hours and %(minutes)d minutes till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:453
+#: ../monajat/applet.py:640
 #, python-format
 msgid "less than %(minutes)d minutes till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:455
+#: ../monajat/applet.py:642
 #, python-format
 msgid "less than a minute till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:465 monajat/applet.py:468
+#: ../monajat/applet.py:654 ../monajat/applet.py:658
 msgid "Its Merits"
 msgstr ""
 
-#: monajat/applet.py:525
+#: ../monajat/applet.py:727
 msgid "Monajat supplications"
 msgstr ""
 
-#: monajat/applet.py:593
+#: ../monajat/applet.py:800
 msgid "Configure"
 msgstr ""
+
+#~ msgid "previous"
+#~ msgstr "anterior"
+
+#~ msgid "next"
+#~ msgstr "próximo"
diff --git a/po/ru.po b/po/ru.po
index 1e6054a..5b4ce14 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: monajat\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-07-23 16:03+0300\n"
+"POT-Creation-Date: 2012-07-06 19:11+0200\n"
 "PO-Revision-Date: 2010-05-24 23:09+0000\n"
 "Last-Translator: Sabily Team <sabily.team at lists.launchpad.net>\n"
 "Language-Team: Russian <ru at li.org>\n"
@@ -18,154 +18,182 @@ msgstr ""
 "X-Launchpad-Export-Date: 2010-05-26 03:46+0000\n"
 "X-Generator: Launchpad (build Unknown)\n"
 
-#: monajat/applet.py:67
+#: ../monajat-autostart.desktop.in.h:1
+#, fuzzy
+msgid "Monajat Applet for supplications"
+msgstr "Молитвы"
+
+#: ../monajat-autostart.desktop.in.h:2
+msgid "Monajat in system tray icon"
+msgstr ""
+
+#: ../monajat/applet.py:80
 #, fuzzy
 msgid "Monajat Configuration"
 msgstr "Молитвы"
 
-#: monajat/applet.py:68
+#: ../monajat/applet.py:81
 msgid "Cancel"
 msgstr ""
 
-#: monajat/applet.py:69
+#: ../monajat/applet.py:82
 msgid "Save"
 msgstr ""
 
-#: monajat/applet.py:73
+#: ../monajat/applet.py:87
 msgid "Generic"
 msgstr ""
 
-#: monajat/applet.py:74
+#: ../monajat/applet.py:88
 msgid "Auto start"
 msgstr ""
 
-#: monajat/applet.py:77
+#: ../monajat/applet.py:91
 msgid "Show merits"
 msgstr "Показать достоинства"
 
-#: monajat/applet.py:82
+#: ../monajat/applet.py:96
 #, fuzzy
 msgid "Language:"
 msgstr "Язык"
 
-#: monajat/applet.py:93
+#: ../monajat/applet.py:108
 msgid "Time:"
 msgstr ""
 
-#: monajat/applet.py:98 monajat/applet.py:154
+#: ../monajat/applet.py:115 ../monajat/applet.py:201
 #, fuzzy
 msgid "minutes"
 msgstr "Время в минутах"
 
-#: monajat/applet.py:101
+#: ../monajat/applet.py:118
 msgid "Location"
 msgstr ""
 
-#: monajat/applet.py:126
+#: ../monajat/applet.py:121
+msgid "Current city:"
+msgstr ""
+
+#: ../monajat/applet.py:132
+msgid "Please, Secify your city"
+msgstr ""
+
+#: ../monajat/applet.py:146
+msgid "Change city:"
+msgstr ""
+
+#: ../monajat/applet.py:169
 msgid "Notification"
 msgstr ""
 
-#: monajat/applet.py:129
+#: ../monajat/applet.py:172
 msgid "Sound:"
 msgstr ""
 
-#: monajat/applet.py:130
+#: ../monajat/applet.py:173
 msgid "Choose Athan media file"
 msgstr ""
 
-#: monajat/applet.py:133
+#: ../monajat/applet.py:178
 msgid "Sound Files"
 msgstr ""
 
-#: monajat/applet.py:138
+#: ../monajat/applet.py:183
 msgid "All files"
 msgstr ""
 
-#: monajat/applet.py:141 monajat/applet.py:165 monajat/applet.py:170
+#: ../monajat/applet.py:186 ../monajat/applet.py:213 ../monajat/applet.py:219
 msgid "Play"
 msgstr ""
 
-#: monajat/applet.py:148
+#: ../monajat/applet.py:193
 msgid "Notify before"
 msgstr ""
 
-#: monajat/applet.py:162
+#: ../monajat/applet.py:210
 msgid "Stop"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:404
 msgid "Fajr"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:405
 msgid "Sunrise"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:406
 msgid "Dhuhr"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:407
 msgid "Asr"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:408
 msgid "Maghrib"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:409
 msgid "Isha'a"
 msgstr ""
 
-#: monajat/applet.py:268 monajat/applet.py:282 monajat/applet.py:522
+#: ../monajat/applet.py:420 ../monajat/applet.py:422 ../monajat/applet.py:437
+#: ../monajat/applet.py:724 ../screenlets/Monajat/MonajatScreenlet.py:239
 msgid "Monajat"
 msgstr "Сокровенные молитвы (Мунаджат)"
 
-#: monajat/applet.py:270
-msgid "previous"
-msgstr "предыдущая"
+#: ../monajat/applet.py:424
+msgid "Back"
+msgstr ""
 
-#: monajat/applet.py:271
-msgid "next"
-msgstr "cледующая"
+#: ../monajat/applet.py:425
+msgid "Forward"
+msgstr ""
 
-#: monajat/applet.py:272
+#: ../monajat/applet.py:426
 msgid "copy"
 msgstr "скопировать"
 
-#: monajat/applet.py:405
+#: ../monajat/applet.py:589
 #, python-format
 msgid "It's now time for %s prayer"
 msgstr ""
 
-#: monajat/applet.py:449
+#: ../monajat/applet.py:636
 #, python-format
 msgid "%(hours)d hours till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:451
+#: ../monajat/applet.py:638
 #, python-format
 msgid "%(hours)d hours and %(minutes)d minutes till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:453
+#: ../monajat/applet.py:640
 #, python-format
 msgid "less than %(minutes)d minutes till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:455
+#: ../monajat/applet.py:642
 #, python-format
 msgid "less than a minute till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:465 monajat/applet.py:468
+#: ../monajat/applet.py:654 ../monajat/applet.py:658
 msgid "Its Merits"
 msgstr "Его заслуги"
 
-#: monajat/applet.py:525
+#: ../monajat/applet.py:727
 msgid "Monajat supplications"
 msgstr "Молитвы"
 
-#: monajat/applet.py:593
+#: ../monajat/applet.py:800
 msgid "Configure"
 msgstr ""
+
+#~ msgid "previous"
+#~ msgstr "предыдущая"
+
+#~ msgid "next"
+#~ msgstr "cледующая"
diff --git a/po/sv.po b/po/sv.po
index b759060..5a243ca 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -6,49 +6,184 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: monajat\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL at ADDRESS>\n"
-"POT-Creation-Date: 2009-08-13 16:06+0300\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2012-07-06 19:11+0200\n"
 "PO-Revision-Date: 2011-09-05 22:50+0000\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: Swedish <sv at li.org>\n"
+"Language: sv\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-09-06 04:39+0000\n"
+"X-Launchpad-Export-Date: 2011-09-07 04:34+0000\n"
 "X-Generator: Launchpad (build 13861)\n"
 
-#: monajat/applet.py:31 monajat/applet.py:107
+#: ../monajat-autostart.desktop.in.h:1
+msgid "Monajat Applet for supplications"
+msgstr ""
+
+#: ../monajat-autostart.desktop.in.h:2
+msgid "Monajat in system tray icon"
+msgstr ""
+
+#: ../monajat/applet.py:80
+msgid "Monajat Configuration"
+msgstr ""
+
+#: ../monajat/applet.py:81
+msgid "Cancel"
+msgstr ""
+
+#: ../monajat/applet.py:82
+msgid "Save"
+msgstr ""
+
+#: ../monajat/applet.py:87
+msgid "Generic"
+msgstr ""
+
+#: ../monajat/applet.py:88
+msgid "Auto start"
+msgstr ""
+
+#: ../monajat/applet.py:91
+msgid "Show merits"
+msgstr ""
+
+#: ../monajat/applet.py:96
+msgid "Language:"
+msgstr ""
+
+#: ../monajat/applet.py:108
+msgid "Time:"
+msgstr ""
+
+#: ../monajat/applet.py:115 ../monajat/applet.py:201
+msgid "minutes"
+msgstr ""
+
+#: ../monajat/applet.py:118
+msgid "Location"
+msgstr ""
+
+#: ../monajat/applet.py:121
+msgid "Current city:"
+msgstr ""
+
+#: ../monajat/applet.py:132
+msgid "Please, Secify your city"
+msgstr ""
+
+#: ../monajat/applet.py:146
+msgid "Change city:"
+msgstr ""
+
+#: ../monajat/applet.py:169
+msgid "Notification"
+msgstr ""
+
+#: ../monajat/applet.py:172
+msgid "Sound:"
+msgstr ""
+
+#: ../monajat/applet.py:173
+msgid "Choose Athan media file"
+msgstr ""
+
+#: ../monajat/applet.py:178
+msgid "Sound Files"
+msgstr ""
+
+#: ../monajat/applet.py:183
+msgid "All files"
+msgstr ""
+
+#: ../monajat/applet.py:186 ../monajat/applet.py:213 ../monajat/applet.py:219
+msgid "Play"
+msgstr ""
+
+#: ../monajat/applet.py:193
+msgid "Notify before"
+msgstr ""
+
+#: ../monajat/applet.py:210
+msgid "Stop"
+msgstr ""
+
+#: ../monajat/applet.py:404
+msgid "Fajr"
+msgstr ""
+
+#: ../monajat/applet.py:405
+msgid "Sunrise"
+msgstr ""
+
+#: ../monajat/applet.py:406
+msgid "Dhuhr"
+msgstr ""
+
+#: ../monajat/applet.py:407
+msgid "Asr"
+msgstr ""
+
+#: ../monajat/applet.py:408
+msgid "Maghrib"
+msgstr ""
+
+#: ../monajat/applet.py:409
+msgid "Isha'a"
+msgstr ""
+
+#: ../monajat/applet.py:420 ../monajat/applet.py:422 ../monajat/applet.py:437
+#: ../monajat/applet.py:724 ../screenlets/Monajat/MonajatScreenlet.py:239
 msgid "Monajat"
 msgstr ""
 
-#: monajat/applet.py:33
-msgid "previous"
+#: ../monajat/applet.py:424
+msgid "Back"
 msgstr ""
 
-#: monajat/applet.py:34
-msgid "next"
+#: ../monajat/applet.py:425
+msgid "Forward"
 msgstr ""
 
-#: monajat/applet.py:35
+#: ../monajat/applet.py:426
 msgid "copy"
 msgstr ""
 
-#: monajat/applet.py:59 monajat/applet.py:62
-msgid "Its Merits"
+#: ../monajat/applet.py:589
+#, python-format
+msgid "It's now time for %s prayer"
 msgstr ""
 
-#: monajat/applet.py:110
-msgid "Monajat supplications"
+#: ../monajat/applet.py:636
+#, python-format
+msgid "%(hours)d hours till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:146
-msgid "Show merits"
+#: ../monajat/applet.py:638
+#, python-format
+msgid "%(hours)d hours and %(minutes)d minutes till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:158
-msgid "Language"
+#: ../monajat/applet.py:640
+#, python-format
+msgid "less than %(minutes)d minutes till %(prayer)s prayer"
+msgstr ""
+
+#: ../monajat/applet.py:642
+#, python-format
+msgid "less than a minute till %(prayer)s prayer"
+msgstr ""
+
+#: ../monajat/applet.py:654 ../monajat/applet.py:658
+msgid "Its Merits"
+msgstr ""
+
+#: ../monajat/applet.py:727
+msgid "Monajat supplications"
 msgstr ""
 
-#: monajat/applet.py:170
-msgid "Time in minutes"
+#: ../monajat/applet.py:800
+msgid "Configure"
 msgstr ""
diff --git a/po/tr.po b/po/tr.po
index 14cb788..7b13389 100644
--- a/po/tr.po
+++ b/po/tr.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: monajat\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-07-23 16:03+0300\n"
+"POT-Creation-Date: 2012-07-06 19:11+0200\n"
 "PO-Revision-Date: 2010-06-04 18:48+0000\n"
 "Last-Translator: Murat Bişkin <mbiskin at gmail.com>\n"
 "Language-Team: Turkish <tr at li.org>\n"
@@ -18,154 +18,182 @@ msgstr ""
 "X-Launchpad-Export-Date: 2010-06-05 03:31+0000\n"
 "X-Generator: Launchpad (build Unknown)\n"
 
-#: monajat/applet.py:67
+#: ../monajat-autostart.desktop.in.h:1
+#, fuzzy
+msgid "Monajat Applet for supplications"
+msgstr "Yakarış duaları"
+
+#: ../monajat-autostart.desktop.in.h:2
+msgid "Monajat in system tray icon"
+msgstr ""
+
+#: ../monajat/applet.py:80
 #, fuzzy
 msgid "Monajat Configuration"
 msgstr "Yakarış duaları"
 
-#: monajat/applet.py:68
+#: ../monajat/applet.py:81
 msgid "Cancel"
 msgstr ""
 
-#: monajat/applet.py:69
+#: ../monajat/applet.py:82
 msgid "Save"
 msgstr ""
 
-#: monajat/applet.py:73
+#: ../monajat/applet.py:87
 msgid "Generic"
 msgstr ""
 
-#: monajat/applet.py:74
+#: ../monajat/applet.py:88
 msgid "Auto start"
 msgstr ""
 
-#: monajat/applet.py:77
+#: ../monajat/applet.py:91
 msgid "Show merits"
 msgstr "Değerlendirmeleri göster"
 
-#: monajat/applet.py:82
+#: ../monajat/applet.py:96
 #, fuzzy
 msgid "Language:"
 msgstr "Dil"
 
-#: monajat/applet.py:93
+#: ../monajat/applet.py:108
 msgid "Time:"
 msgstr ""
 
-#: monajat/applet.py:98 monajat/applet.py:154
+#: ../monajat/applet.py:115 ../monajat/applet.py:201
 #, fuzzy
 msgid "minutes"
 msgstr "Dakika olarak"
 
-#: monajat/applet.py:101
+#: ../monajat/applet.py:118
 msgid "Location"
 msgstr ""
 
-#: monajat/applet.py:126
+#: ../monajat/applet.py:121
+msgid "Current city:"
+msgstr ""
+
+#: ../monajat/applet.py:132
+msgid "Please, Secify your city"
+msgstr ""
+
+#: ../monajat/applet.py:146
+msgid "Change city:"
+msgstr ""
+
+#: ../monajat/applet.py:169
 msgid "Notification"
 msgstr ""
 
-#: monajat/applet.py:129
+#: ../monajat/applet.py:172
 msgid "Sound:"
 msgstr ""
 
-#: monajat/applet.py:130
+#: ../monajat/applet.py:173
 msgid "Choose Athan media file"
 msgstr ""
 
-#: monajat/applet.py:133
+#: ../monajat/applet.py:178
 msgid "Sound Files"
 msgstr ""
 
-#: monajat/applet.py:138
+#: ../monajat/applet.py:183
 msgid "All files"
 msgstr ""
 
-#: monajat/applet.py:141 monajat/applet.py:165 monajat/applet.py:170
+#: ../monajat/applet.py:186 ../monajat/applet.py:213 ../monajat/applet.py:219
 msgid "Play"
 msgstr ""
 
-#: monajat/applet.py:148
+#: ../monajat/applet.py:193
 msgid "Notify before"
 msgstr ""
 
-#: monajat/applet.py:162
+#: ../monajat/applet.py:210
 msgid "Stop"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:404
 msgid "Fajr"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:405
 msgid "Sunrise"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:406
 msgid "Dhuhr"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:407
 msgid "Asr"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:408
 msgid "Maghrib"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:409
 msgid "Isha'a"
 msgstr ""
 
-#: monajat/applet.py:268 monajat/applet.py:282 monajat/applet.py:522
+#: ../monajat/applet.py:420 ../monajat/applet.py:422 ../monajat/applet.py:437
+#: ../monajat/applet.py:724 ../screenlets/Monajat/MonajatScreenlet.py:239
 msgid "Monajat"
 msgstr "Yakarış"
 
-#: monajat/applet.py:270
-msgid "previous"
-msgstr "önceki"
+#: ../monajat/applet.py:424
+msgid "Back"
+msgstr ""
 
-#: monajat/applet.py:271
-msgid "next"
-msgstr "sonraki"
+#: ../monajat/applet.py:425
+msgid "Forward"
+msgstr ""
 
-#: monajat/applet.py:272
+#: ../monajat/applet.py:426
 msgid "copy"
 msgstr "kopyala"
 
-#: monajat/applet.py:405
+#: ../monajat/applet.py:589
 #, python-format
 msgid "It's now time for %s prayer"
 msgstr ""
 
-#: monajat/applet.py:449
+#: ../monajat/applet.py:636
 #, python-format
 msgid "%(hours)d hours till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:451
+#: ../monajat/applet.py:638
 #, python-format
 msgid "%(hours)d hours and %(minutes)d minutes till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:453
+#: ../monajat/applet.py:640
 #, python-format
 msgid "less than %(minutes)d minutes till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:455
+#: ../monajat/applet.py:642
 #, python-format
 msgid "less than a minute till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:465 monajat/applet.py:468
+#: ../monajat/applet.py:654 ../monajat/applet.py:658
 msgid "Its Merits"
 msgstr "Değerlendirmeler"
 
-#: monajat/applet.py:525
+#: ../monajat/applet.py:727
 msgid "Monajat supplications"
 msgstr "Yakarış duaları"
 
-#: monajat/applet.py:593
+#: ../monajat/applet.py:800
 msgid "Configure"
 msgstr ""
+
+#~ msgid "previous"
+#~ msgstr "önceki"
+
+#~ msgid "next"
+#~ msgstr "sonraki"
diff --git a/po/tt.po b/po/tt.po
index 4a9c94b..cddee9d 100644
--- a/po/tt.po
+++ b/po/tt.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: monajat\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-07-23 16:03+0300\n"
+"POT-Creation-Date: 2012-07-06 19:11+0200\n"
 "PO-Revision-Date: 2011-05-05 09:55+0000\n"
 "Last-Translator: Ilnar Salimzyan <Unknown>\n"
 "Language-Team: Tatar <tt at li.org>\n"
@@ -18,154 +18,175 @@ msgstr ""
 "X-Launchpad-Export-Date: 2011-05-06 04:33+0000\n"
 "X-Generator: Launchpad (build 12959)\n"
 
-#: monajat/applet.py:67
+#: ../monajat-autostart.desktop.in.h:1
+msgid "Monajat Applet for supplications"
+msgstr ""
+
+#: ../monajat-autostart.desktop.in.h:2
+msgid "Monajat in system tray icon"
+msgstr ""
+
+#: ../monajat/applet.py:80
 msgid "Monajat Configuration"
 msgstr ""
 
-#: monajat/applet.py:68
+#: ../monajat/applet.py:81
 msgid "Cancel"
 msgstr ""
 
-#: monajat/applet.py:69
+#: ../monajat/applet.py:82
 msgid "Save"
 msgstr ""
 
-#: monajat/applet.py:73
+#: ../monajat/applet.py:87
 msgid "Generic"
 msgstr ""
 
-#: monajat/applet.py:74
+#: ../monajat/applet.py:88
 msgid "Auto start"
 msgstr ""
 
-#: monajat/applet.py:77
+#: ../monajat/applet.py:91
 msgid "Show merits"
 msgstr ""
 
-#: monajat/applet.py:82
+#: ../monajat/applet.py:96
 #, fuzzy
 msgid "Language:"
 msgstr "Тел"
 
-#: monajat/applet.py:93
+#: ../monajat/applet.py:108
 msgid "Time:"
 msgstr ""
 
-#: monajat/applet.py:98 monajat/applet.py:154
+#: ../monajat/applet.py:115 ../monajat/applet.py:201
 #, fuzzy
 msgid "minutes"
 msgstr "Вакыт арасы (минутларда)"
 
-#: monajat/applet.py:101
+#: ../monajat/applet.py:118
 msgid "Location"
 msgstr ""
 
-#: monajat/applet.py:126
+#: ../monajat/applet.py:121
+msgid "Current city:"
+msgstr ""
+
+#: ../monajat/applet.py:132
+msgid "Please, Secify your city"
+msgstr ""
+
+#: ../monajat/applet.py:146
+msgid "Change city:"
+msgstr ""
+
+#: ../monajat/applet.py:169
 msgid "Notification"
 msgstr ""
 
-#: monajat/applet.py:129
+#: ../monajat/applet.py:172
 msgid "Sound:"
 msgstr ""
 
-#: monajat/applet.py:130
+#: ../monajat/applet.py:173
 msgid "Choose Athan media file"
 msgstr ""
 
-#: monajat/applet.py:133
+#: ../monajat/applet.py:178
 msgid "Sound Files"
 msgstr ""
 
-#: monajat/applet.py:138
+#: ../monajat/applet.py:183
 msgid "All files"
 msgstr ""
 
-#: monajat/applet.py:141 monajat/applet.py:165 monajat/applet.py:170
+#: ../monajat/applet.py:186 ../monajat/applet.py:213 ../monajat/applet.py:219
 msgid "Play"
 msgstr ""
 
-#: monajat/applet.py:148
+#: ../monajat/applet.py:193
 msgid "Notify before"
 msgstr ""
 
-#: monajat/applet.py:162
+#: ../monajat/applet.py:210
 msgid "Stop"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:404
 msgid "Fajr"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:405
 msgid "Sunrise"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:406
 msgid "Dhuhr"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:407
 msgid "Asr"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:408
 msgid "Maghrib"
 msgstr ""
 
-#: monajat/applet.py:255
+#: ../monajat/applet.py:409
 msgid "Isha'a"
 msgstr ""
 
-#: monajat/applet.py:268 monajat/applet.py:282 monajat/applet.py:522
+#: ../monajat/applet.py:420 ../monajat/applet.py:422 ../monajat/applet.py:437
+#: ../monajat/applet.py:724 ../screenlets/Monajat/MonajatScreenlet.py:239
 msgid "Monajat"
 msgstr "Мөнәҗәт"
 
-#: monajat/applet.py:270
-msgid "previous"
+#: ../monajat/applet.py:424
+msgid "Back"
 msgstr ""
 
-#: monajat/applet.py:271
-msgid "next"
+#: ../monajat/applet.py:425
+msgid "Forward"
 msgstr ""
 
-#: monajat/applet.py:272
+#: ../monajat/applet.py:426
 msgid "copy"
 msgstr ""
 
-#: monajat/applet.py:405
+#: ../monajat/applet.py:589
 #, python-format
 msgid "It's now time for %s prayer"
 msgstr ""
 
-#: monajat/applet.py:449
+#: ../monajat/applet.py:636
 #, python-format
 msgid "%(hours)d hours till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:451
+#: ../monajat/applet.py:638
 #, python-format
 msgid "%(hours)d hours and %(minutes)d minutes till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:453
+#: ../monajat/applet.py:640
 #, python-format
 msgid "less than %(minutes)d minutes till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:455
+#: ../monajat/applet.py:642
 #, python-format
 msgid "less than a minute till %(prayer)s prayer"
 msgstr ""
 
-#: monajat/applet.py:465 monajat/applet.py:468
+#: ../monajat/applet.py:654 ../monajat/applet.py:658
 msgid "Its Merits"
 msgstr ""
 
-#: monajat/applet.py:525
+#: ../monajat/applet.py:727
 msgid "Monajat supplications"
 msgstr ""
 
-#: monajat/applet.py:593
+#: ../monajat/applet.py:800
 msgid "Configure"
 msgstr ""
 
diff --git a/screenlets/Monajat/MonajatScreenlet.py b/screenlets/Monajat/MonajatScreenlet.py
index 00133c3..53fb223 100755
--- a/screenlets/Monajat/MonajatScreenlet.py
+++ b/screenlets/Monajat/MonajatScreenlet.py
@@ -7,8 +7,8 @@
 # the terms and conditions of this license. 
 # Thank you for using free software!
 
-#  MonajatScreenlet (c) Muayyad Saleh Alsadi <alsadi at ojuba.org>
-#  based on ClearRssScreenlet (c) Whise <helder.fraga at hotmail.com>
+#    MonajatScreenlet (c) Muayyad Saleh Alsadi <alsadi at ojuba.org>
+#    based on ClearRssScreenlet (c) Whise <helder.fraga at hotmail.com>
 
 import gettext
 
@@ -25,297 +25,297 @@ import cgi
 
 is_manager = screenlets.utils.is_manager_running_me()
 try:
-	from monajat import monajat
+    from monajat import monajat
 except:
-	if not is_manager:
-		screenlets.show_message(None,"You don't have monajat installed!\nInstall monajat-python.")
-		sys.exit()
-	else:
-		print "You don't have monajat installed!\nInstall monajat-python."
-		sys.exit()
+    if not is_manager:
+        screenlets.show_message(None,"You don't have monajat installed!\nInstall monajat-python.")
+        sys.exit()
+    else:
+        print "You don't have monajat installed!\nInstall monajat-python."
+        sys.exit()
 
 class MonajatScreenlet(screenlets.Screenlet):
-	"""Monajat Screenlet for Islamic supplications"""
-	
-	__name__ = 'MonajatScreenlet'
-	__version__ = '0.1'
-	__author__ = 'Muayyad Saleh Alsadi <alsadi at ojuba.org>'
-	__desc__ = 'Screenlet for periodic Islamic supplications'
-	
-	#Internals
-	__timeout = None
-	scrol = 180
-	text_x = 10
-	text_y = 10
-	font = 'Sans 11' # TODO: make it sans
-	font_name = font.split(' ')[0]
-	rgba_color = (1, 1, 1, 0.9)
-	update_interval = 5
-	a = ''
-	__button_pressed = 1
-	p_layout = None
-	background_color = (0.65, 0.71, 0.34, 0.8)
-	__m=monajat.Monajat() # you may pass width like 20 chars
-	lang=__m.lang
+    """Monajat Screenlet for Islamic supplications"""
+    
+    __name__ = 'MonajatScreenlet'
+    __version__ = '0.1'
+    __author__ = 'Muayyad Saleh Alsadi <alsadi at ojuba.org>'
+    __desc__ = 'Screenlet for periodic Islamic supplications'
+    
+    #Internals
+    __timeout = None
+    scrol = 180
+    text_x = 10
+    text_y = 10
+    font = 'Sans 11' # TODO: make it sans
+    font_name = font.split(' ')[0]
+    rgba_color = (1, 1, 1, 0.9)
+    update_interval = 5
+    a = ''
+    __button_pressed = 1
+    p_layout = None
+    background_color = (0.65, 0.71, 0.34, 0.8)
+    __m=monajat.Monajat() # you may pass width like 20 chars
+    lang=__m.lang
 
-	def __init__(self, **keyword_args):
-		"""Create a Monajat instance"""
-		screenlets.Screenlet.__init__(self, width=200, height=200, 
-			uses_theme=True, **keyword_args)
-		self.__clip1=gtk.Clipboard(selection="CLIPBOARD")
-		self.__clip2=gtk.Clipboard(selection="PRIMARY")
-		self.theme_name = "default"
-		#self.add_menuitem("next", "next")
-		self.add_options_group('Monajat', 'Monajat settings:')
-		self.add_option(StringOption('Monajat', 'lang', self.lang, 
-			'Language', 'set text language', choices=self.__m.langs)) 
-		self.add_option(IntOption('Monajat', 'update_interval', 
-			self.update_interval, 'Update interval', 
-			'The interval for refreshing Monajat text (in minutes)', min=1, max=60))
-		self.add_option(FontOption('Monajat','font', 
-			self.font_name, 'Text Font', 
-			'Text font'))
-		self.add_option(ColorOption('Monajat', 'rgba_color', 
-			self.rgba_color, 'Default Color', 
-			'The default color of the text ...'))
-		self.add_option(ColorOption('Monajat','background_color', 
-			self.background_color, 'Back color (only with default theme)', 'only works with default theme'))
-		self.update_interval = self.update_interval
-		gobject.timeout_add(int(100), self.show_text)
-		
+    def __init__(self, **keyword_args):
+        """Create a Monajat instance"""
+        screenlets.Screenlet.__init__(self, width=200, height=200,
+                                      uses_theme=True, **keyword_args)
+        self.__clip1=gtk.Clipboard(selection="CLIPBOARD")
+        self.__clip2=gtk.Clipboard(selection="PRIMARY")
+        self.theme_name = "default"
+        #self.add_menuitem("next", "next")
+        self.add_options_group('Monajat', 'Monajat settings:')
+        self.add_option(StringOption('Monajat', 'lang', self.lang, 
+            'Language', 'set text language', choices=self.__m.langs)) 
+        self.add_option(IntOption('Monajat', 'update_interval', 
+            self.update_interval, 'Update interval', 
+            'The interval for refreshing Monajat text (in minutes)', min=1, max=60))
+        self.add_option(FontOption('Monajat','font', 
+            self.font_name, 'Text Font', 
+            'Text font'))
+        self.add_option(ColorOption('Monajat', 'rgba_color', 
+            self.rgba_color, 'Default Color', 
+            'The default color of the text ...'))
+        self.add_option(ColorOption('Monajat','background_color', 
+            self.background_color, 'Back color (only with default theme)', 'only works with default theme'))
+        self.update_interval = self.update_interval
+        gobject.timeout_add(int(100), self.show_text)
+        
 
-	def __setattr__(self, name, value):
-		screenlets.Screenlet.__setattr__(self, name, value)
-		if name in ('lang','text_x', 'text_y', 'font_name', 
-				'rgba_color', 'background_color'):
-			if self.window:
-				self.redraw_canvas()
-		if name == "update_interval":
-			if value > 0:
-				self.__dict__['update_interval'] = value
-				if self.__timeout:
-					gobject.source_remove(self.__timeout)
-				self.__timeout = gobject.timeout_add(int(value * 60000), self.timer_cb)
-			else:
-				self.__dict__['update_interval'] = 1
-				pass
-		if name == 'font': self.font_name = str(value).split(' ')[0]
+    def __setattr__(self, name, value):
+        screenlets.Screenlet.__setattr__(self, name, value)
+        if name in ('lang','text_x', 'text_y', 'font_name', 
+                'rgba_color', 'background_color'):
+            if self.window:
+                self.redraw_canvas()
+        if name == "update_interval":
+            if value > 0:
+                self.__dict__['update_interval'] = value
+                if self.__timeout:
+                    gobject.source_remove(self.__timeout)
+                self.__timeout = gobject.timeout_add(int(value * 60000), self.timer_cb)
+            else:
+                self.__dict__['update_interval'] = 1
+                pass
+        if name == 'font': self.font_name = str(value).split(' ')[0]
 
-	def net_menu_cb(self, m, url):
-		os.system('xdg-open "%s"' % url)
+    def net_menu_cb(self, m, url):
+        os.system('xdg-open "%s"' % url)
 
-	def create_net_menu(self):
-		mm = gtk.Menu()
-		links=self.__m.get_current().get('links',u'').split(u'\n')
-		for l in links:
-			ll=l.split(u'\t',1)
-			url=ll[0]
-			if len(ll)>1: t=cgi.escape(ll[1])
-			else: t=cgi.escape(url)
-			i= gtk.MenuItem(t)
-			i.connect("activate", self.net_menu_cb,url)
-			i.show()
-			mm.add(i)
-		self.net_menu.set_submenu(mm)
+    def create_net_menu(self):
+        mm = gtk.Menu()
+        links=self.__m.get_current().get('links',u'').split(u'\n')
+        for l in links:
+            ll=l.split(u'\t',1)
+            url=ll[0]
+            if len(ll)>1: t=cgi.escape(ll[1])
+            else: t=cgi.escape(url)
+            i= gtk.MenuItem(t)
+            i.connect("activate", self.net_menu_cb,url)
+            i.show()
+            mm.add(i)
+        self.net_menu.set_submenu(mm)
 
-	def on_init (self):
-		print "Screenlet has been initialized."
-		# add default menuitems
-		self.add_default_menuitems(screenlets.DefaultMenuItem.XML)
-		self.net_menu=self.add_menuitem('internet', 'More from internet')
-		self.create_net_menu()
-		self.add_submenuitem('lang', 'Language', self.__m.langs)
-		self.add_default_menuitems()
-		import locale
-		try:
-		  os.environ['LANG']=self.lang
-		  locale.setlocale(locale.LC_ALL, locale.getdefaultlocale(envvars=('LANG',))[0]+'.UTF-8')
-		except locale.Error: pass
-		if self.lang!=self.__m.lang:
-			self.__m.clear()
-			self.__m.set_lang(self.lang)
-		ld=os.path.join(self.__m.get_prefix(),'..','locale')
-		gettext.install('monajat', ld, unicode=0)
-		self.refresh_text()
+    def on_init (self):
+        print "Screenlet has been initialized."
+        # add default menuitems
+        self.add_default_menuitems(screenlets.DefaultMenuItem.XML)
+        self.net_menu=self.add_menuitem('internet', 'More from internet')
+        self.create_net_menu()
+        self.add_submenuitem('lang', 'Language', self.__m.langs)
+        self.add_default_menuitems()
+        import locale
+        try:
+            os.environ['LANG']=self.lang
+            locale.setlocale(locale.LC_ALL, locale.getdefaultlocale(envvars=('LANG',))[0]+'.UTF-8')
+        except locale.Error: pass
+        if self.lang!=self.__m.lang:
+            self.__m.clear()
+            self.__m.set_lang(self.lang)
+        ld=os.path.join(self.__m.get_prefix(),'..','locale')
+        gettext.install('monajat', ld, unicode=0)
+        self.refresh_text()
 
-	def menuitem_callback(self, widget, id):
-		screenlets.Screenlet.menuitem_callback(self, widget, id)
-		if id in self.__m.langs:
-			self.__m.set_lang(id)
-			self.lang=id
-			self.__m.go_forward()
-			self.refresh_text()
-		if id=="next":
-			if len(self.__m.get_current()['text'])> self.scrol:
-				self.scrol = self.scrol + 180
-			self.redraw_canvas()
-		if id=="prev":
-			if self.scrol > 180:
-				self.scrol = self.scrol - 180
-			self.redraw_canvas()
-		if id=="option_changed":
-			self.option_changed()
-		if id=="copy":
-			r=self.__m.get_current()['text']
-			self.__clip1.set_text(r)
-			self.__clip2.set_text(r)
-		if id=="refresh":
-			self.refresh_text()
-		if id=="prev_item":
-			self.scrol = 180
-			self.__m.go_back()
-			self.refresh_text()
-		if id=="next_item":
-			self.scrol = 180
-			self.__m.go_forward()
-			self.refresh_text()
+    def menuitem_callback(self, widget, id):
+        screenlets.Screenlet.menuitem_callback(self, widget, id)
+        if id in self.__m.langs:
+            self.__m.set_lang(id)
+            self.lang=id
+            self.__m.go_forward()
+            self.refresh_text()
+        if id=="next":
+            if len(self.__m.get_current()['text'])> self.scrol:
+                self.scrol = self.scrol + 180
+            self.redraw_canvas()
+        if id=="prev":
+            if self.scrol > 180:
+                self.scrol = self.scrol - 180
+            self.redraw_canvas()
+        if id=="option_changed":
+            self.option_changed()
+        if id=="copy":
+            r=self.__m.get_current()['text']
+            self.__clip1.set_text(r)
+            self.__clip2.set_text(r)
+        if id=="refresh":
+            self.refresh_text()
+        if id=="prev_item":
+            self.scrol = 180
+            self.__m.go_back()
+            self.refresh_text()
+        if id=="next_item":
+            self.scrol = 180
+            self.__m.go_forward()
+            self.refresh_text()
 
-	def on_mouse_down(self, event):
-		
-		if event.type == gtk.gdk.BUTTON_PRESS:
-			return self.detect_button(event.x, event.y)
-		else:
-			return True
-		return False
+    def on_mouse_down(self, event):
+        
+        if event.type == gtk.gdk.BUTTON_PRESS:
+            return self.detect_button(event.x, event.y)
+        else:
+            return True
+        return False
 
-	def on_mouse_up(self, event):
-		# do the active button's action
-		if self.__button_pressed:
-			if self.__button_pressed == 3:
-				if len(self.__m.get_current()['text'])> self.scrol:
-					self.scrol = self.scrol + 180
-					self.redraw_canvas()
-			elif self.__button_pressed == 2:
-				self.scrol = 180
-				self.redraw_canvas()
-			elif self.__button_pressed == 1:
-				if self.scrol > 180:
-					self.scrol = self.scrol - 180
-					self.redraw_canvas()
-			elif self.__button_pressed == 4:
-				self.scrol = 180
-				self.__m.go_forward()
-				self.redraw_canvas()
-			elif self.__button_pressed == 5:
-				r=self.__m.get_current()
-				self.__clip1.set_text(r['text'])
-				self.__clip2.set_text(r['text'])
-			elif self.__button_pressed == 6:
-				self.scrol = 180
-				self.__m.go_back()
-				self.redraw_canvas()
+    def on_mouse_up(self, event):
+        # do the active button's action
+        if self.__button_pressed:
+            if self.__button_pressed == 3:
+                if len(self.__m.get_current()['text'])> self.scrol:
+                    self.scrol = self.scrol + 180
+                    self.redraw_canvas()
+            elif self.__button_pressed == 2:
+                self.scrol = 180
+                self.redraw_canvas()
+            elif self.__button_pressed == 1:
+                if self.scrol > 180:
+                    self.scrol = self.scrol - 180
+                    self.redraw_canvas()
+            elif self.__button_pressed == 4:
+                self.scrol = 180
+                self.__m.go_forward()
+                self.redraw_canvas()
+            elif self.__button_pressed == 5:
+                r=self.__m.get_current()
+                self.__clip1.set_text(r['text'])
+                self.__clip2.set_text(r['text'])
+            elif self.__button_pressed == 6:
+                self.scrol = 180
+                self.__m.go_back()
+                self.redraw_canvas()
 
-			self.__button_pressed = 0
-			self.redraw_canvas()
-		return False
+            self.__button_pressed = 0
+            self.redraw_canvas()
+        return False
 
-	def detect_button(self, x, y):
-		x /= (self.scale)
-		y /= (self.scale)
-		button_det = 0
-		if y >= 183 and y <= 196.7:
-			if x >= 9 and x <= 62:
-				button_det = 4+int((x-9)/18)
-			elif x >= 135 and x <= 187:
-				button_det = 1+int((x-135)/18)
-			print button_det
+    def detect_button(self, x, y):
+        x /= (self.scale)
+        y /= (self.scale)
+        button_det = 0
+        if y >= 183 and y <= 196.7:
+            if x >= 9 and x <= 62:
+                button_det = 4+int((x-9)/18)
+            elif x >= 135 and x <= 187:
+                button_det = 1+int((x-135)/18)
+            print button_det
 
-		self.__button_pressed = button_det
-		if button_det:
-			self.redraw_canvas()
-			return True	# we must return boolean for Screenlet.button_press
-		else:
-			return False
+        self.__button_pressed = button_det
+        if button_det:
+            self.redraw_canvas()
+            return True    # we must return boolean for Screenlet.button_press
+        else:
+            return False
 
-	def on_draw(self, ctx):
-		ctx.scale(self.scale, self.scale)
+    def on_draw(self, ctx):
+        ctx.scale(self.scale, self.scale)
 
-		ctx.set_operator(cairo.OPERATOR_OVER)
-		if self.theme:
-			ctx.set_source_rgba(*self.background_color)
-			if self.theme_name == 'default':self.draw_rounded_rectangle(ctx,0,0,17,200,200)
-			self.theme.render(ctx,'background')
-		ctx.save()
-		try: name = _("Monajat")
-		except NameError: return # gettext is not loaded yet
-		self.bidi_dir=pango.ALIGN_CENTER
-		#self.bidi_dir=pango.ALIGN_LEFT
-		#if self.__m.lang in ['ar','fa']:
-		#	self.bidi_dir=pango.ALIGN_RIGHT
-		#if gtk.widget_get_default_direction()==gtk.TEXT_DIR_LTR:
-		#	self.bidi_dir=pango.ALIGN_LEFT
-		#else:
-		#	self.bidi_dir=pango.ALIGN_RIGHT
-		r=self.__m.get_current()
-		self.create_net_menu()
-		text = r['text']
-		om = '<span font_desc="'+self.font_name+'">'
-		cm = '</span>'
-		if len(text)> self.scrol:
-			self.a = '...>>>'
-		else:
-			self.a = ''
-		self.b = '\n'
-		if self.scale > 1 or self.scale <= 0.7:
-			self.b =''
-		text = self.strip_ml_tags(text)
-		ctx.set_source_rgba(*self.rgba_color)
-		t = "<b>" + name + "</b>" + "\n" + self.b + text[:self.scrol][self.scrol-180:] + self.a
-		self.draw_text(ctx, t , self.text_x, self.text_y, self.font_name, 9.5, (self.width - self.text_x) , self.bidi_dir)
-		ctx.fill()
-		ctx.restore()
-		
-	def on_draw_shape(self,ctx):
-		ctx.rectangle(0,0,self.width,self.height)
-		ctx.fill()
-		self.on_draw(ctx)
+        ctx.set_operator(cairo.OPERATOR_OVER)
+        if self.theme:
+            ctx.set_source_rgba(*self.background_color)
+            if self.theme_name == 'default':self.draw_rounded_rectangle(ctx,0,0,17,200,200)
+            self.theme.render(ctx,'background')
+        ctx.save()
+        try: name = _("Monajat")
+        except NameError: return # gettext is not loaded yet
+        self.bidi_dir=pango.ALIGN_CENTER
+        #self.bidi_dir=pango.ALIGN_LEFT
+        #if self.__m.lang in ['ar','fa']:
+        #    self.bidi_dir=pango.ALIGN_RIGHT
+        #if gtk.widget_get_default_direction()==gtk.TEXT_DIR_LTR:
+        #    self.bidi_dir=pango.ALIGN_LEFT
+        #else:
+        #    self.bidi_dir=pango.ALIGN_RIGHT
+        r=self.__m.get_current()
+        self.create_net_menu()
+        text = r['text']
+        om = '<span font_desc="'+self.font_name+'">'
+        cm = '</span>'
+        if len(text)> self.scrol:
+            self.a = '...>>>'
+        else:
+            self.a = ''
+        self.b = '\n'
+        if self.scale > 1 or self.scale <= 0.7:
+            self.b =''
+        text = self.strip_ml_tags(text)
+        ctx.set_source_rgba(*self.rgba_color)
+        t = "<b>" + name + "</b>" + "\n" + self.b + text[:self.scrol][self.scrol-180:] + self.a
+        self.draw_text(ctx, t , self.text_x, self.text_y, self.font_name, 9.5, (self.width - self.text_x) , self.bidi_dir)
+        ctx.fill()
+        ctx.restore()
+        
+    def on_draw_shape(self,ctx):
+        ctx.rectangle(0,0,self.width,self.height)
+        ctx.fill()
+        self.on_draw(ctx)
 
-	def strip_ml_tags(self,in_text):
-	
-		# convert in_text to a mutable object (e.g. list)
-		s_list = list(in_text)
-		i,j = 0,0
-	
-		while i < len(s_list):
-		# iterate until a left-angle bracket is found
-			if s_list[i] == '<':
-				while s_list[i] != '>':
-				
-					s_list.pop(i)
-				
-			# pops the right-angle bracket, too
-				s_list.pop(i)
-			else:
-				i=i+1
-			
-		# convert the list back into text
-		join_char=''
-		return join_char.join(s_list)
+    def strip_ml_tags(self,in_text):
+    
+        # convert in_text to a mutable object (e.g. list)
+        s_list = list(in_text)
+        i,j = 0,0
+    
+        while i < len(s_list):
+        # iterate until a left-angle bracket is found
+            if s_list[i] == '<':
+                while s_list[i] != '>':
+                
+                    s_list.pop(i)
+                
+            # pops the right-angle bracket, too
+                s_list.pop(i)
+            else:
+                i=i+1
+            
+        # convert the list back into text
+        join_char=''
+        return join_char.join(s_list)
 
-	def timer_cb(self):
-		"""Show a new supplication"""
-		self.__m.go_last()
-		self.__m.go_forward()
-		return self.refresh_text()
+    def timer_cb(self):
+        """Show a new supplication"""
+        self.__m.go_last()
+        self.__m.go_forward()
+        return self.refresh_text()
 
-	def refresh_text(self):
-		"""Redraw canvas to update the text, used by the timeout function"""
-		print("Refreshing text...")
-		self.scrol = 180
-		self.redraw_canvas()
-		print("Done!")
-		return True
-		
-	def show_text(self):
-		"""Show text on startup properly, return false to do it only once"""
-		print("Loading text...")
-		self.redraw_canvas()
-		print("Done!")
-		return False
+    def refresh_text(self):
+        """Redraw canvas to update the text, used by the timeout function"""
+        print("Refreshing text...")
+        self.scrol = 180
+        self.redraw_canvas()
+        print("Done!")
+        return True
+        
+    def show_text(self):
+        """Show text on startup properly, return false to do it only once"""
+        print("Loading text...")
+        self.redraw_canvas()
+        print("Done!")
+        return False
 
 # If the program is run directly or passed as an argument to the python
 # interpreter then create a Screenlet instance and show it
 if __name__ == "__main__":
-	import screenlets.session
-	screenlets.session.create_session(MonajatScreenlet)
+    import screenlets.session
+    screenlets.session.create_session(MonajatScreenlet)
 
diff --git a/setup.py b/setup.py
index 3472e3f..0d26a79 100644
--- a/setup.py
+++ b/setup.py
@@ -9,8 +9,8 @@ import os, sys
 locales=map(lambda i: ('share/'+i,[''+i+'/monajat.mo',]),glob('locale/*/LC_MESSAGES'))
 # data files
 data_files=[
-  ('share/monajat', ['monajat-data/data.db', 'monajat-data/cities.db', 'monajat-data/athan.ogg', 'monajat-data/monajat.svg'] ),
-  ('/etc/xdg/autostart',['monajat-autostart.desktop']),
+    ('share/monajat', ['monajat-data/data.db', 'monajat-data/cities.db', 'monajat-data/athan.ogg', 'monajat-data/monajat.svg'] ),
+    ('/etc/xdg/autostart',['monajat-autostart.desktop']),
 ]
 data_files.extend(locales)
 
@@ -18,29 +18,29 @@ from distutils.command.build import build
 from distutils.command.clean import clean
 
 class my_build(build):
-  def run(self):
-    build.run(self)
-    # generate data
-    import monajat.sqlGenerator
-    if not os.path.isfile('monajat-data/data.db'):
-      monajat.sqlGenerator.generate('monajat-data')
+    def run(self):
+        build.run(self)
+        # generate data
+        import monajat.sqlGenerator
+        if not os.path.isfile('monajat-data/data.db'):
+            monajat.sqlGenerator.generate('monajat-data')
 
 class my_clean(clean):
-  def run(self):
-    clean.run(self)
-    try: os.unlink('monajat-data/data.db')
-    except OSError: pass
+    def run(self):
+        clean.run(self)
+        try: os.unlink('monajat-data/data.db')
+        except OSError: pass
 
 # do the install
 setup (name='monajat', version='2.3.0',
-      description='Monajat Islamic Supplications',
-      author='Muayyad Saleh Alsadi',
-      author_email='sabily.team at lists.launchpad.net',
-      url='http://git.ojuba.org/cgit/monajat/about/',
-      license='GPLv2',
-      packages=['monajat'],
-      scripts=['monajat-applet', 'monajat-mod'],
-      cmdclass={'build': my_build, 'clean': my_clean},
-      data_files=data_files
+            description='Monajat Islamic Supplications',
+            author='Muayyad Saleh Alsadi',
+            author_email='sabily.team at lists.launchpad.net',
+            url='http://git.ojuba.org/cgit/monajat/about/',
+            license='GPLv2',
+            packages=['monajat'],
+            scripts=['monajat-applet', 'monajat-mod'],
+            cmdclass={'build': my_build, 'clean': my_clean},
+            data_files=data_files
 
 )
diff --git a/update-pot.sh b/update-pot.sh
deleted file mode 100755
index 376a16b..0000000
--- a/update-pot.sh
+++ /dev/null
@@ -1,10 +0,0 @@
-#! /bin/bash
-xgettext -o "po/monajat.pot" monajat/*.py
-pushd po
-for i in *.po
-do
-po=$i
-msgmerge "$po" "monajat.pot" > "$po.tmp" && \
-mv "$po.tmp" "$po"
-done
-popd

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-islamic/packages/monajat.git



More information about the Debian-islamic-commits mailing list