diff --git a/PKG-INFO b/PKG-INFO new file mode 100644 index 0000000..190f03a --- /dev/null +++ b/PKG-INFO @@ -0,0 +1,10 @@ +Metadata-Version: 1.0 +Name: service-manager +Version: 3.0.0 +Summary: Service Manager +Home-page: http://developer.pardus.org.tr/projects/service-manager +Author: Pardus Developers +Author-email: bugs@pardus.org.tr +License: GPL +Description: UNKNOWN +Platform: UNKNOWN diff --git a/README b/README new file mode 100644 index 0000000..fcb2d01 --- /dev/null +++ b/README @@ -0,0 +1,6 @@ +Service Manager +--------------- + + Service Manager is a Kde application for managing system services. + It uses COMAR as configuration backend. + diff --git a/applied-patches/pds.patch b/applied-patches/pds.patch new file mode 100644 index 0000000..112e7b4 --- /dev/null +++ b/applied-patches/pds.patch @@ -0,0 +1,433 @@ +diff -Nuar service-manager-3.0.0.orig//setup.py service-manager-3.0.0/setup.py +--- service-manager-3.0.0.orig//setup.py 2011-03-21 11:09:29.708000015 +0200 ++++ service-manager-3.0.0/setup.py 2011-03-21 11:10:08.152000017 +0200 +@@ -26,6 +26,12 @@ + from distutils.command.install import install + + PROJECT = about.appName ++FOR_KDE_4=False ++ ++if 'kde4' in sys.argv: ++ sys.argv.remove('kde4') ++ FOR_KDE_4=True ++ print 'UI files will be created for KDE 4.. ' + + def makeDirs(directory): + if not os.path.exists(directory): +@@ -47,8 +53,14 @@ + + # Collect UI files + filelist = [] +- for filename in glob.glob1("ui", "*.ui"): +- os.system("pykde4uic -o ui/ui_%s.py ui/%s" % (filename.split(".")[0], filename)) ++ # UI files for kde4 ++ if FOR_KDE_4: ++ for filename in glob.glob1("ui", "*.ui"): ++ os.system("pykde4uic -o ui/ui_%s.py ui/%s" % (filename.split(".")[0], filename)) ++ #UI files for pure-qt ++ else : ++ for filename in glob.glob1("ui", "*.ui"): ++ os.system("pyuic4 -o ui/ui_%s.py ui/%s -g %s" % (filename.split(".")[0], filename, PROJECT)) + + # Collect headers for desktop files + for filename in glob.glob("data/*.desktop.in"): +@@ -104,8 +116,15 @@ + os.system("intltool-merge -d po %s %s" % (filename, filename[:-3])) + + print "Generating UIs..." +- for filename in glob.glob1("ui", "*.ui"): +- os.system("pykde4uic -o build/servicemanager/ui_%s.py ui/%s" % (filename.split(".")[0], filename)) ++ # Collect UI for kde4 ++ if FOR_KDE_4: ++ for filename in glob.glob1("ui", "*.ui"): ++ os.system("pykde4uic -o build/servicemanager/ui_%s.py ui/%s" % (filename.split(".")[0], filename)) ++ # Collect UI for pure-qt ++ else: ++ for filename in glob.glob1("ui", "*.ui"): ++ os.system("pyuic4 -o build/servicemanager/ui_%s.py ui/%s -g %s" % (filename.split(".")[0], filename, PROJECT)) ++ + + print "Generating RCs..." + for filename in glob.glob1("data", "*.qrc"): +@@ -128,9 +147,13 @@ + bin_dir = "/usr/bin" + + locale_dir = os.path.join(root_dir, "locale") +- apps_dir = os.path.join(root_dir, "applications/kde4") +- services_dir = os.path.join(root_dir, "kde4/services") +- project_dir = os.path.join(root_dir, "kde4/apps", PROJECT) ++ if FOR_KDE_4: ++ apps_dir = os.path.join(root_dir, "applications/kde4") ++ services_dir = os.path.join(root_dir, "kde4/services") ++ project_dir = os.path.join(root_dir, "kde4/apps", PROJECT) ++ else: ++ apps_dir = os.path.join(root_dir, "applications") ++ project_dir = os.path.join(root_dir, PROJECT) + + # Make directories + print "Making directories..." +@@ -138,13 +161,15 @@ + makeDirs(locale_dir) + makeDirs(apps_dir) + makeDirs(project_dir) +- makeDirs(services_dir) ++ if FOR_KDE_4: ++ makeDirs(services_dir) + + # Install desktop files + print "Installing desktop files..." + + shutil.copy("data/%s.desktop" % PROJECT, apps_dir) +- shutil.copy("data/kcm_%s.desktop" % PROJECT, services_dir) ++ if FOR_KDE_4: ++ shutil.copy("data/kcm_%s.desktop" % PROJECT, services_dir) + shutil.rmtree('build/data') + + # Install codes +@@ -192,14 +217,19 @@ + bin_dir = "/usr/bin" + + locale_dir = os.path.join(root_dir, "locale") +- apps_dir = os.path.join(root_dir, "applications/kde4") +- services_dir = os.path.join(root_dir, "kde4/services") +- project_dir = os.path.join(root_dir, "kde4/apps", PROJECT) ++ if FOR_KDE_4: ++ apps_dir = os.path.join(root_dir, "applications/kde4") ++ services_dir = os.path.join(root_dir, "kde4/services") ++ project_dir = os.path.join(root_dir, "kde4/apps", PROJECT) ++ else: ++ apps_dir = os.path.join(root_dir, "applications") ++ project_dir = os.path.join(root_dir, PROJECT) + + print 'Uninstalling ...' + remove(project_dir) + remove(apps_dir +"/%s.desktop" % PROJECT) +- remove(services_dir +"/kcm_%s.desktop" % PROJECT) ++ if FOR_KDE_4: ++ remove(services_dir +"/kcm_%s.desktop" % PROJECT) + for filename in glob.glob1('po', '*.po'): + lang = filename.rsplit(".", 1)[0] + remove(os.path.join(locale_dir, "%s/LC_MESSAGES" % lang, "%s.mo" % PROJECT)) +diff -Nuar service-manager-3.0.0.orig//src/servicemanager/about.py service-manager-3.0.0/src/servicemanager/about.py +--- service-manager-3.0.0.orig//src/servicemanager/about.py 2011-03-21 11:09:29.711000015 +0200 ++++ service-manager-3.0.0/src/servicemanager/about.py 2011-03-21 11:10:08.152000017 +0200 +@@ -11,29 +11,35 @@ + # Please read the COPYING file. + # + +-# PyKDE4 Stuff +-from PyKDE4.kdecore import KAboutData, ki18n, ki18nc +- +-PACKAGE = "Service Manager" ++# PDS Stuff ++import context as ctx + + # Application Data ++PACKAGE = "Service Manager" + appName = "service-manager" + modName = "servicemanager" +-programName = ki18n(PACKAGE) + version = "3.0.0" +-description = ki18n(PACKAGE) +-license = KAboutData.License_GPL +-copyright = ki18n("(c) 2009-2010 TUBITAK/UEKAE") +-text = ki18n(None) + homePage = "http://developer.pardus.org.tr/projects/service-manager" + bugEmail = "bugs@pardus.org.tr" ++icon = "flag-yellow" + catalog = appName +-aboutData = KAboutData(appName, catalog, programName, version, description, license, copyright, text, homePage, bugEmail) + +-# Authors +-aboutData.addAuthor(ki18n("Gökmen Göksel"), ki18n("Current Maintainer")) +-aboutData.addAuthor(ki18n("Bahadır Kandemir"), ki18n("COMAR Author")) +-aboutData.setTranslator(ki18nc("NAME OF TRANSLATORS", "Your names"), ki18nc("EMAIL OF TRANSLATORS", "Your emails")) ++if ctx.Pds.session == ctx.pds.Kde4: ++ ++ # PyKDE4 Stuff ++ from PyKDE4.kdecore import KAboutData, ki18n, ki18nc ++ ++ programName = ki18n(PACKAGE) ++ description = ki18n(PACKAGE) ++ license = KAboutData.License_GPL ++ copyright = ki18n("(c) 2009-2010 TUBITAK/UEKAE") ++ text = ki18n(None) ++ aboutData = KAboutData(appName, catalog, programName, version, description, license, copyright, text, homePage, bugEmail) ++ ++ # Authors ++ aboutData.addAuthor(ki18n("Gökmen Göksel"), ki18n("Current Maintainer")) ++ aboutData.addAuthor(ki18n("Bahadır Kandemir"), ki18n("COMAR Author")) ++ aboutData.setTranslator(ki18nc("NAME OF TRANSLATORS", "Your names"), ki18nc("EMAIL OF TRANSLATORS", "Your emails")) + +-# Use this if icon name is different than appName +-aboutData.setProgramIconName("flag-yellow") ++ # Use this if icon name is different than appName ++ aboutData.setProgramIconName(icon) +diff -Nuar service-manager-3.0.0.orig//src/servicemanager/base.py service-manager-3.0.0/src/servicemanager/base.py +--- service-manager-3.0.0.orig//src/servicemanager/base.py 2011-03-21 11:09:29.712000015 +0200 ++++ service-manager-3.0.0/src/servicemanager/base.py 2011-03-21 11:10:08.157000017 +0200 +@@ -20,16 +20,18 @@ + from PyQt5.QtWidgets import QMessageBox + from PyQt5.QtCore import * + +-# PyKDE4 Stuff +-from PyKDE4.kdeui import * +-from PyKDE4.kdecore import * +- + # Application Stuff + from servicemanager.backend import ServiceIface +-from servicemanager.about import aboutData + from servicemanager.ui_main import Ui_mainManager + from servicemanager.widgets import ServiceItemWidget, ServiceItem + ++# Pds vs KDE ++import servicemanager.context as ctx ++if ctx.Pds.session == ctx.pds.Kde4: ++ from PyKDE4.kdecore import i18n ++else: ++ from servicemanager.context import i18n ++ + class MainManager(QtWidgets.QWidget): + def __init__(self, parent, standAlone=True): + QtWidgets.QWidget.__init__(self, parent) +diff -Nuar service-manager-3.0.0.orig//src/servicemanager/context.py service-manager-3.0.0/src/servicemanager/context.py +--- service-manager-3.0.0.orig//src/servicemanager/context.py 1970-01-01 02:00:00.000000000 +0200 ++++ service-manager-3.0.0/src/servicemanager/context.py 2011-03-21 11:10:08.161000017 +0200 +@@ -0,0 +1,29 @@ ++#!/usr/bin/python ++# -*- coding: utf-8 -*- ++ ++import pds ++import traceback ++from time import time ++from pds.qiconloader import QIconLoader ++ ++Pds = pds.Pds('service-manager', debug = False) ++# Force to use Default Session for testing ++# Pds.session = pds.DefaultDe ++# print 'Current session is : %s %s' % (Pds.session.Name, Pds.session.Version) ++ ++i18n = Pds.i18n ++KIconLoader = QIconLoader(Pds, forceCache=True) ++KIcon = KIconLoader.icon ++ ++time_counter = 0 ++start_time = time() ++last_time = time() ++ ++def _time(): ++ global last_time, time_counter ++ trace = list(traceback.extract_stack()) ++ diff = time() - start_time ++ print ('%s ::: %s:%s' % (time_counter, trace[-2][0].split('/')[-1], trace[-2][1])), diff, diff - last_time ++ last_time = diff ++ time_counter += 1 ++ +diff -Nuar service-manager-3.0.0.orig//src/servicemanager/widgets.py service-manager-3.0.0/src/servicemanager/widgets.py +--- service-manager-3.0.0.orig//src/servicemanager/widgets.py 2011-03-21 11:09:29.712000015 +0200 ++++ service-manager-3.0.0/src/servicemanager/widgets.py 2011-03-21 11:10:08.163000017 +0200 +@@ -15,10 +15,13 @@ + from PyQt5 import QtWidgets + from PyQt5.QtCore import * + +-# KDE Stuff +-from PyKDE4 import kdeui +-from PyKDE4.kdecore import i18n +-from PyKDE4.kdecore import KGlobal ++# Pds vs KDE ++import servicemanager.context as ctx ++if ctx.Pds.session == ctx.pds.Kde4: ++ from PyKDE4.kdeui import KIcon ++ from PyKDE4.kdecore import i18n ++else: ++ from servicemanager.context import KIcon, i18n + + # Application Stuff + from servicemanager.ui_item import Ui_ServiceItemWidget +@@ -31,6 +34,7 @@ + # Python Stuff + import time + import textwrap ++import locale + + # Pisi Stuff + import pisi +@@ -60,10 +64,10 @@ + + self.toggleButtons() + +- self.ui.buttonStart.setIcon(kdeui.KIcon("media-playback-start")) +- self.ui.buttonStop.setIcon(kdeui.KIcon("media-playback-stop")) +- self.ui.buttonReload.setIcon(kdeui.KIcon("view-refresh")) +- self.ui.buttonInfo.setIcon(kdeui.KIcon("dialog-information")) ++ self.ui.buttonStart.setIcon(KIcon("media-playback-start")) ++ self.ui.buttonStop.setIcon(KIcon("media-playback-stop")) ++ self.ui.buttonReload.setIcon(KIcon("view-refresh")) ++ self.ui.buttonInfo.setIcon(KIcon("dialog-information")) + + self.toggled = False + self.root = parent +@@ -100,7 +104,7 @@ + self.ui.buttonStop.setEnabled(self.running) + self.ui.buttonReload.setEnabled(self.running) + +- self.ui.labelStatus.setPixmap(kdeui.KIcon(icon).pixmap(32, 32)) ++ self.ui.labelStatus.setPixmap(KIcon(icon).pixmap(32, 32)) + self.showStatus() + self.runningAtStart = False + if state in ('on', 'stopped'): +@@ -161,7 +165,7 @@ + try: + # TODO add a package map for known services + service = service.replace('_','-') +- lang = str(KGlobal.locale().language()) ++ lang = str(locale.getdefaultlocale()[0].split("_")[0]) + desc = pisi.api.info_name(service)[0].package.description + if desc.has_key(lang): + return unicode(desc[lang]) +@@ -178,7 +182,7 @@ + self.ui = Ui_InfoWidget() + self.ui.setupUi(self) + self.ui.buttonHide.clicked.connect(self.hideDescription) +- self.ui.buttonHide.setIcon(kdeui.KIcon("dialog-close")) ++ self.ui.buttonHide.setIcon(KIcon("dialog-close")) + + self._animation = 2 + self._duration = 500 +diff -Nuar service-manager-3.0.0.orig//src/service-manager.py service-manager-3.0.0/src/service-manager.py +--- service-manager-3.0.0.orig//src/service-manager.py 2011-03-21 11:09:29.712000015 +0200 ++++ service-manager-3.0.0/src/service-manager.py 2011-03-21 11:33:38.407000038 +0200 +@@ -13,46 +13,72 @@ + + # System + import sys +- + import dbus + ++# Pds Stuff ++import servicemanager.context as ctx ++ ++# Application Stuff ++import servicemanager.about as about ++ + # Qt Stuff + from PyQt5.QtCore import SIGNAL + +-# PyKDE4 Stuff +-from PyKDE4.kdeui import * +-from PyKDE4.kdecore import * +- +-def CreatePlugin(widget_parent, parent, component_data): +- from servicemanager.kcmodule import ServiceManager +- return ServiceManager(component_data, parent) ++# Enable plugin if session is Kde4 ++if ctx.Pds.session == ctx.pds.Kde4: ++ def CreatePlugin(widget_parent, parent, component_data): ++ from servicemanager.kcmodule import ServiceManager ++ return ServiceManager(component_data, parent) + + if __name__ == '__main__': + +- # Service Manager +- from servicemanager.standalone import ServiceManager +- +- # Application Stuff +- from servicemanager.about import aboutData +- +- # Set Command-line arguments +- KCmdLineArgs.init(sys.argv, aboutData) +- +- # Create a Kapplitcation instance +- app = KApplication() +- + # DBUS MainLoop + if not dbus.get_default_main_loop(): + from dbus.mainloop.qt import DBusQtMainLoop + DBusQtMainLoop(set_as_default = True) + +- # Create Main Widget +- mainWindow = ServiceManager(None, 'service-manager') +- mainWindow.show() ++ # Pds vs KDE ++ if ctx.Pds.session == ctx.pds.Kde4: ++ ++ # PyKDE4 Stuff ++ from PyKDE4.kdeui import * ++ from PyKDE4.kdecore import * ++ ++ # Application Stuff ++ from servicemanager.standalone import ServiceManager ++ from servicemanager.about import aboutData ++ ++ # Set Command-line arguments ++ KCmdLineArgs.init(sys.argv, aboutData) ++ ++ # Create a Kapplitcation instance ++ app = KApplication() ++ ++ # Create Main Widget ++ mainWindow = ServiceManager(None, aboutData.appName) ++ mainWindow.show() ++ ++ else: ++ ++ # Application Stuff ++ from servicemanager.base import MainManager ++ ++ # Pds Stuff ++ from pds.quniqueapp import QUniqueApplication ++ from servicemanager.context import KIcon, i18n ++ ++ # Create a QUniqueApllication instance ++ app = QUniqueApplication(sys.argv, catalog=about.appName) ++ ++ # Create Main Widget and make some settings ++ mainWindow = MainManager(None) ++ mainWindow.show() ++ mainWindow.resize(640, 480) ++ mainWindow.setWindowTitle(i18n(about.PACKAGE)) ++ mainWindow.setWindowIcon(KIcon(about.icon)) + + # Create connection for lastWindowClosed signal to quit app + app.lastWindowClosed.connect(app.quit) + +- # Run the application ++ # Run the applications + app.exec_() +- +diff -Nuar service-manager-3.0.0.orig//ui/main.ui service-manager-3.0.0/ui/main.ui +--- service-manager-3.0.0.orig//ui/main.ui 2011-03-21 11:09:29.703000015 +0200 ++++ service-manager-3.0.0/ui/main.ui 2011-03-21 11:10:08.165000017 +0200 +@@ -17,16 +17,10 @@ + + + +- +- +- false +- +- ++ ++ + type service name to search... + +- +- true +- + + + +@@ -106,13 +100,6 @@ + + + +- +- +- KLineEdit +- QLineEdit +-
klineedit.h
+-
+-
+ + + diff --git a/data/flag-yellow.png b/data/flag-yellow.png new file mode 100644 index 0000000..1306f8e Binary files /dev/null and b/data/flag-yellow.png differ diff --git a/data/kcm_service-manager.desktop b/data/kcm_service-manager.desktop new file mode 100644 index 0000000..776852b --- /dev/null +++ b/data/kcm_service-manager.desktop @@ -0,0 +1,39 @@ +[Desktop Entry] +Exec=kcmshell4 kcm_service-manager +Icon=flag-yellow +Type=Service +ServiceTypes=KCModule + +X-KDE-FactoryName=servicemanager +X-KDE-Library=kpythonpluginfactory +X-KDE-ParentApp=kcontrol +X-KDE-PluginKeyword=service-manager/service-manager.py +X-KDE-System-Settings-Parent-Category=system-administration +X-KDE-Weight=70 + +Name=Service Manager +Name[az]=Servis İdarəçisi +Name[da]=Tjeneste håndtering +Name[de]=Dienste +Name[es]=Administrador de servicios +Name[fr]=Gestionnaire de services +Name[hu]=Szolgáltatás kezelő +Name[it]=Gestore dei servizi +Name[nl]=Dienstbeheer +Name[pt_BR]=Gerenciador de Serviço +Name[ru]=Менеджер служб +Name[sv]=Tjänstehanteraren +Name[tr]=Servis Yöneticisi +Comment=An application for managing system services. +Comment[az]=Sistem xidmətləri idarəçilik tətbiqi +Comment[de]=Verwaltung der System-Dienste. +Comment[es]=Programa para gerenciar los servicios del sistema +Comment[fr]=Une application de gestion des services du système. +Comment[hu]=Rendszerszolgáltatás kezelő alkalmazás. +Comment[it]=Un applicazione per la gestione dei servizi sel sistema. +Comment[nl]=Een toepassing voor het beheren van systeemdiensten. +Comment[pt_BR]=Um aplicativo para gerenciar os Serviços do Sistema +Comment[ru]=Приложение для управления системными службами. +Comment[sv]=Ett program för hantering av systemtjänster. +Comment[tr]=Sistem servisleri yönetim uygulaması. +X-KDE-Keywords=python service managers diff --git a/data/service-manager.desktop b/data/service-manager.desktop new file mode 100644 index 0000000..bf12178 --- /dev/null +++ b/data/service-manager.desktop @@ -0,0 +1,44 @@ +[Desktop Entry] +Name=Service Manager +Name[az]=Servis İdarəçisi +Name[da]=Tjeneste håndtering +Name[de]=Dienste +Name[es]=Administrador de servicios +Name[fr]=Gestionnaire de services +Name[hu]=Szolgáltatás kezelő +Name[it]=Gestore dei servizi +Name[nl]=Dienstbeheer +Name[pt_BR]=Gerenciador de Serviço +Name[ru]=Менеджер служб +Name[sv]=Tjänstehanteraren +Name[tr]=Servis Yöneticisi +GenericName=Service Manager +GenericName[az]=Servis İdarəçisi +GenericName[da]=Tjeneste håndtering +GenericName[de]=Dienste +GenericName[es]=Administrador de servicios +GenericName[fr]=Gestionnaire de services +GenericName[hu]=Szolgáltatás kezelő +GenericName[it]=Gestore dei servizi +GenericName[nl]=Dienstbeheer +GenericName[pt_BR]=Gerenciador de Serviço +GenericName[ru]=Менеджер служб +GenericName[sv]=Tjänstehanteraren +GenericName[tr]=Servis Yöneticisi +Comment=An application for managing system services. +Comment[az]=Sistem xidmətləri idarəçilik tətbiqi +Comment[de]=Verwaltung der System-Dienste. +Comment[es]=Programa para gerenciar los servicios del sistema +Comment[fr]=Une application de gestion des services du système. +Comment[hu]=Rendszerszolgáltatás kezelő alkalmazás. +Comment[it]=Un applicazione per la gestione dei servizi sel sistema. +Comment[nl]=Een toepassing voor het beheren van systeemdiensten. +Comment[pt_BR]=Um aplicativo para gerenciar os Serviços do Sistema +Comment[ru]=Приложение для управления системными службами. +Comment[sv]=Ett program för hantering av systemtjänster. +Comment[tr]=Sistem servisleri yönetim uygulaması. +Exec=service-manager +Icon=flag-yellow +Type=Application +Categories=Qt;KDE;System; +NotShowIn=KDE; diff --git a/help/en/main_help.html b/help/en/main_help.html new file mode 100644 index 0000000..e69de29 diff --git a/help/en/main_help.rst b/help/en/main_help.rst new file mode 100644 index 0000000..5bacfae --- /dev/null +++ b/help/en/main_help.rst @@ -0,0 +1,38 @@ +Service Manager +--------------- + +**Service Manager** is the Pardus Project you can use to manage services's status and their start options. A service's status may be running or stopped and its start option can be set as 'Run on startup' or not. If a service is running, it can serve something related to its job otherwise it is stopped and serves nothing. + + +Listing And Searching Services +------------------------------ + +When you open the Service Manager you see a list in the center and bottom of the window. This list is used for to display services on the system. Initially, Service Manager lists all Servers, no matter if they are stopped or running, on the system. If you want to list only running services on your system select 'Running Services' from the combo box at the right side of the top of the window. You also select and list System Services, Startup Services, All Services from this check box. +There is a text box at the left side of the top of the list. You can search a specific service by typing the name of it there. + + +Starting a Service +------------------ + +You can understand if a service is running or stopped by looking the icon for that service near the name of it on the list. If the icon is a red flag it is stopped otherwise its icon is a green flag and this means the service is runnig. +In order to start a service move your mouse on it on the list and when the mouse comes over it a group of widgets appears on the right side of the item. You can start the service by clicking the 'Start' (first) button. Pardus asks for root password to start service, enter it. Now the service is started, you can see how its flag icon turns red to green. +Once a service is started it starts to serve its job. + +Stopping a Service +------------------ + +You can understand if a service is running or stopped by looking the icon for that service near the name of it on the list. If the icon is a red flag it is stopped otherwise its icon is a green flag and this means the service is runnig. +In order to stop a service move your mouse on it on the list and when the mouse comes over it a group of widgets appears on the right side of the item. You can stop the service by clicking the 'Stop' (third) button. Pardus asks for root password to stop service, enter it. Now the service is stopped, you can see how its flag icon turns green to red. + + +Restarting a Service +-------------------- + +In order to restart a service move your mouse on it on the list and when the mouse comes over it a group of widgets appears on the right side of the item. You can restart the service by clicking the 'Restart' (second) button. Pardus asks for root password to restart service, enter it. Now the service is restarted. + + +Starting Services Automatically at Startup +------------------------------------------ + +Some services starts automatically when the system starts. We call this as 'auto start' property of a service. +In order to set a service's auto start property move your mouse on it on the list and when the mouse comes over it a group of widgets appears on the right side of the item. You can add auto start property to a service by checking the 'Run on startup'check box. Pardus asks for root password to add this property to the service, enter it. Once a service has gained the auto start property it starts automatically after first reboot. You can remove auto start propert by unchecking the check box. diff --git a/help/help.css b/help/help.css new file mode 100644 index 0000000..8476dd4 --- /dev/null +++ b/help/help.css @@ -0,0 +1,62 @@ + body { + width: 96%; + margin-right: 10px; + margin-left: 10px; + padding-right: 0pt; + padding-left: 0pt; + font-size: 9pt ! important; + padding-top: 0pt ! important; + padding-bottom: 0pt ! important; + margin-bottom: 10px ! important; + margin-top: 10px ! important; + text-align: justify ! important; + font-family: "Bitstream Vera Sans",sans-serif ! important; + background-color:#FEFEFE; + } + + ul, li { + padding-left:1px; + margin-left:1px; + } + + b, strong { + color: rgb(27, 87, 177); + } + + h1 { + border: 0.5px solid rgb(204, 204, 204); + padding: 1px 3px; + font-family: "Bitstream Vera Sans",Arial,sans-serif; + font-weight: bold; + vertical-align: bottom; + color: rgb(27, 87, 177); + width: 100%; + font-size: large; + background-color: rgb(240, 240, 240); + } + + h2 { + padding: 0pt; + font-family: "Bitstream Vera Sans",Arial,sans-serif; + font-size: medium; + font-weight: bold; + vertical-align: bottom; + background-color: rgb(255, 255, 255); + color: rgb(27, 87, 177); + width: 95%; + } + + h3 { + font-size: medium; + background-color: rgb(48, 48, 48); + color: rgb(27, 87, 177); + } + + hr { + border-style: none none solid; + border-color: rgb(204, 204, 204); + border-width: 0pt 0pt 1px; + text-align: center; + } + + diff --git a/help/tr/main_help.html b/help/tr/main_help.html new file mode 100644 index 0000000..e69de29 diff --git a/help/tr/main_help.rst b/help/tr/main_help.rst new file mode 100644 index 0000000..88bb169 --- /dev/null +++ b/help/tr/main_help.rst @@ -0,0 +1,40 @@ +Servis Yöneticisi +----------------- + +**Service Yöneticisi** sisteminizdeki servislerin durumunu ve servislerin otomatik olarak başlamasının ayarlarını yapabileceğiniz Pardus uygulamasıdır. Bir servisin durumu çalışıyor ya da durmuş olabilir ve otomatik başlama ayarı da etkinleştirilmiş ya da etkisizleştirilmiş olabilir. Eğer bir servis çalışıyorsa, yaptığı iş ile alakalı bir şeyler sunar eğer durmuş ise hiçbir şey sunmaz. + + +Servis Listeleme ve Arama +------------------------- + +Servis Yöneticisini açtığınız anda listenin ortasını ve alt kısmını kaplamış bir liste görürsünüz. Bu liste sistemdeki servisleri listelemek için kullanılır. Başlangıçta Servis Yöneticisi sistemdeki tüm Sunucuları, çalışır ya da durmuş halde olan, listeler. Eğer sadece sistemdeki çalışır halde olan servisleri listelemek istiyorsanız listenin sağ üst köşesindeki listeden 'Çalışan Servisler'i seçin. Bundan başka seçip listeleyebileceğiniz seçenekler arasında Sistem servisleri, Açılış Servisleri ve Tüm Servisler vardır. +Listenin sol üst köşesinde bir metin kutusu vardır. Buraya bir servis ismi yazarak sistemdeki servisler içinde arayıp durumunu görebilir ve düzenleme yapabilirsiniz. + + +Bir Servisin Başlatılması +------------------------- + +Bir servisin çalışıyor ya da durmuş durumda olduğunu anlamak için listedeki, adının sol tarafında bulunan ikona bakarız. Eğer ikon yeşil ise servis çalışıyor demektir. Kırmızı bayrak ikonu ise servisin durmuş olduğunu belirtir. +Bir servisi başlatmak için fare imlecini listedeki servis adının üzerine getiriniz. İmleç ögenin üzerine gelince ögenin sağ tarafında bir grup widget ortaya çıkar. İlk sırada bulunan 'Başlat' butonuna tıklayarak servisi başlatabilirsiniz. Pardus sizden root şifresi isteyecektir, root şifresini girin. Eğer kimlik denetimi başarılı olmuşsa servis başlatılacaktır. Servis adının yanındaki bayrağın nasıl kırmızıdan yeşile döndüğünü görebilirsiniz. +Bir servis başlatıldığında yapması gereken işi sunmaya başlar. + + +Bir Servisin Durdurulması +------------------------- + +Bir servisin çalışıyor ya da durmuş durumda olduğunu anlamak için listedeki, adının sol tarafında bulunan ikona bakarız. Eğer ikon yeşil ise servis çalışıyor demektir. Kırmızı bayrak ikonu ise servisin durmuş olduğunu belirtir. +Bir servisi durdurmak için fare imlecini listedeki servis adının üzerine getiriniz. İmleç ögenin üzerine gelince ögenin sağ tarafında bir grup widget ortaya çıkar. Üçüncü sırada bulunan 'Durdur' butonuna tıklayarak servisi durdurabilirsiniz. Pardus sizden root şifresi isteyecektir, root şifresini girin. Eğer kimlik denetimi başarılı olmuşsa servis durdurulacaktır. Servis adının yanındaki bayrağın nasıl yeşilden kırmızıya döndüğünü görebilirsiniz. + + +Bir Servisin Yeniden Başlatılması +---------------------------------- + +Bir servisi yeniden başlatmak için fare imlecini listedeki servis adının üzerine getiriniz. İmleç ögenin üzerine gelince ögenin sağ tarafında bir grup widget ortaya çıkar. İkinci sırada bulunan 'Yeniden Başlat' butonuna tıklayarak servisi yeniden başlatabilirsiniz. Pardus sizden root şifresi isteyecektir, root şifresini girin. Eğer kimlik denetimi başarılı olmuşsa servis yeniden başlatılacaktır. + + +Servislerin Otomatik Olarak Başlaması +------------------------------------- + +Bazı servisler sistem başladığında otomatik olarak çalışmaya başlar. Buna servisin 'Otomatik Başlama' özelliği diyoruz. +Bir servise otomatik başlama özelliği eklemek için fare imlecini listedeki servis adının üzerine getiriniz. İmleç ögenin üzerine gelince ögenin sağ tarafında bir grup widget ortaya çıkar. Dördüncü sırada bulunan 'Açılışta Çalıştır' onay kutusuna tıklayarak servise otomatik başlama özelliği verebilirsiniz. Artık sisteminizin ilk yeninden başlatılmasından itibaren servisiniz otomatik olarak başlayacaktır. Verdiğiniz bu özelliği geri almak için de onay kutusundaki işareti kaldırın. + diff --git a/po/az.po b/po/az.po new file mode 100644 index 0000000..75b7465 --- /dev/null +++ b/po/az.po @@ -0,0 +1,139 @@ +# 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 , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: 1.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-01-10 08:20+0200\n" +"PO-Revision-Date: 2011-01-10 08:22+0200\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: data/kcm_service-manager.desktop.in.h:1 data/service-manager.desktop.in.h:1 +msgid "An application for managing system services." +msgstr "Sistem xidmətləri idarəçilik tətbiqi" + +#: data/kcm_service-manager.desktop.in.h:2 data/service-manager.desktop.in.h:2 +msgid "Service Manager" +msgstr "Servis İdarəçisi" + +#: src/servicemanager/about.py:26 +msgid "(c) 2009-2010 TUBITAK/UEKAE" +msgstr "(c) 2009-2010 TUBITAK/UEKAE" + +#: src/servicemanager/about.py:34 +msgid "Current Maintainer" +msgstr "İndiki İnkişaf etdirici" + +#: src/servicemanager/about.py:34 +msgid "Gökmen Göksel" +msgstr "Gökmen Göksel" + +#: src/servicemanager/about.py:35 +msgid "Bahadır Kandemir" +msgstr "Bahadır Kandemir" + +#: src/servicemanager/about.py:35 +msgid "COMAR Author" +msgstr "COMAR Yazıçısı" + +#: src/servicemanager/about.py:36 +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "barish.kutsal@gmail.com" + +#: src/servicemanager/about.py:36 +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Barış Kutsal" + +#: src/servicemanager/base.py:96 +msgid "Authentication Error" +msgstr "" + +#: src/servicemanager/base.py:97 +msgid "You are not authorized for this operation." +msgstr "" + +#: src/servicemanager/base.py:99 +msgid "Error" +msgstr "" + +#: src/servicemanager/base.py:100 +msgid "An exception occurred." +msgstr "" + +#: src/servicemanager/widgets.py:171 ui/ui_info.py:53 +msgid "Service information is not available" +msgstr "" + +#: ui/ui_info.py:52 ui/ui_item.py:127 ui/ui_main.py:61 +msgid "Form" +msgstr "Form" + +#: ui/ui_info.py:54 +msgid "Hide Information" +msgstr "" + +#: ui/ui_item.py:128 +msgid "serviceName" +msgstr "Servis Adı" + +#: ui/ui_item.py:129 +msgid "serviceDesc" +msgstr "Servis Açıqlması" + +#: ui/ui_item.py:130 +msgid "Start service" +msgstr "Servisi Başlat" + +#: ui/ui_item.py:131 +msgid "Reload service" +msgstr "Servisi yenidən başlat" + +#: ui/ui_item.py:132 +msgid "Run on start" +msgstr "Açılışda işlət" + +#: ui/ui_item.py:133 +msgid "Stop service" +msgstr "Servisi Dayandır" + +#: ui/ui_item.py:134 +msgid "More Information" +msgstr "" + +#: ui/ui_main.py:62 +msgid "type service name to search..." +msgstr "Axtarılacaq servisin adını yazın..." + +#: ui/ui_main.py:63 +msgid "Servers" +msgstr "Serverlər" + +#: ui/ui_main.py:64 +msgid "System Services" +msgstr "Sistem Servisləri" + +#: ui/ui_main.py:65 +msgid "Startup Services" +msgstr "Açılış Servisləri" + +#: ui/ui_main.py:66 +msgid "Running Services" +msgstr "Çalışan Servislər" + +#: ui/ui_main.py:67 +msgid "All Services" +msgstr "Bütün ServislərCOMAR Yazıçısı" + +#: ui/ui_main.py:68 +msgid "Getting service info... %p%" +msgstr "Servis məlumatı gətirilir... %p%" diff --git a/po/da.po b/po/da.po new file mode 100644 index 0000000..9aa91fe --- /dev/null +++ b/po/da.po @@ -0,0 +1,142 @@ +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Peter Lyberth , 2009. +msgid "" +msgstr "" +"Project-Id-Version: da\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-01-10 08:20+0200\n" +"PO-Revision-Date: 2009-09-08 11:43+0200\n" +"Last-Translator: Peter Lyberth \n" +"Language-Team: Danish \n" +"Language: da\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 0.3\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: data/kcm_service-manager.desktop.in.h:1 data/service-manager.desktop.in.h:1 +msgid "An application for managing system services." +msgstr "" + +#: data/kcm_service-manager.desktop.in.h:2 data/service-manager.desktop.in.h:2 +msgid "Service Manager" +msgstr "Tjeneste håndtering" + +#: src/servicemanager/about.py:26 +#, fuzzy +msgid "(c) 2009-2010 TUBITAK/UEKAE" +msgstr "(c) 2009 TUBITAK/UEKAE" + +#: src/servicemanager/about.py:34 +msgid "Current Maintainer" +msgstr "Nuværende vedligeholder" + +#: src/servicemanager/about.py:34 +#, fuzzy +msgid "Gökmen Göksel" +msgstr "Gökmen GÖKSEL" + +#: src/servicemanager/about.py:35 +msgid "Bahadır Kandemir" +msgstr "Bahadır Kandemir" + +#: src/servicemanager/about.py:35 +msgid "COMAR Author" +msgstr "COMAR udvikler" + +#: src/servicemanager/about.py:36 +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "" + +#: src/servicemanager/about.py:36 +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "" + +#: src/servicemanager/base.py:96 +msgid "Authentication Error" +msgstr "" + +#: src/servicemanager/base.py:97 +msgid "You are not authorized for this operation." +msgstr "" + +#: src/servicemanager/base.py:99 +msgid "Error" +msgstr "" + +#: src/servicemanager/base.py:100 +msgid "An exception occurred." +msgstr "" + +#: src/servicemanager/widgets.py:171 ui/ui_info.py:53 +msgid "Service information is not available" +msgstr "" + +#: ui/ui_info.py:52 ui/ui_item.py:127 ui/ui_main.py:61 +msgid "Form" +msgstr "Form" + +#: ui/ui_info.py:54 +msgid "Hide Information" +msgstr "" + +#: ui/ui_item.py:128 +msgid "serviceName" +msgstr "serviceName" + +#: ui/ui_item.py:129 +msgid "serviceDesc" +msgstr "serviceDesc" + +#: ui/ui_item.py:130 +msgid "Start service" +msgstr "Start tjeneste" + +#: ui/ui_item.py:131 +msgid "Reload service" +msgstr "Genindlæs tjeneste" + +#: ui/ui_item.py:132 +msgid "Run on start" +msgstr "Kør ved opstart" + +#: ui/ui_item.py:133 +msgid "Stop service" +msgstr "Stop tjeneste" + +#: ui/ui_item.py:134 +msgid "More Information" +msgstr "" + +#: ui/ui_main.py:62 +msgid "type service name to search..." +msgstr "instast navn på tjeneste for at søge" + +#: ui/ui_main.py:63 +msgid "Servers" +msgstr "Servere" + +#: ui/ui_main.py:64 +msgid "System Services" +msgstr "System tjenester" + +#: ui/ui_main.py:65 +msgid "Startup Services" +msgstr "Opstarts tjenester" + +#: ui/ui_main.py:66 +msgid "Running Services" +msgstr "Kørende tjenester" + +#: ui/ui_main.py:67 +msgid "All Services" +msgstr "Alle tjenester" + +#: ui/ui_main.py:68 +msgid "Getting service info... %p%" +msgstr "Modtager information om tjeneste... %p%" diff --git a/po/de.po b/po/de.po new file mode 100644 index 0000000..2178251 --- /dev/null +++ b/po/de.po @@ -0,0 +1,143 @@ +# translation of de.po to German +# Service Manager +# Copyright (C) 2009 TUBITAK/UEAKE +# This file is distributed under the same license as the Service Manager package. +# Gökmen Göksel +# +# Klemens Häckel , 2009. +msgid "" +msgstr "" +"Project-Id-Version: de\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-01-10 08:20+0200\n" +"PO-Revision-Date: 2009-06-27 20:30-0400\n" +"Last-Translator: Klemens Häckel \n" +"Language-Team: German \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: de\n" +"X-Generator: KBabel 1.11.4\n" + +#: data/kcm_service-manager.desktop.in.h:1 data/service-manager.desktop.in.h:1 +msgid "An application for managing system services." +msgstr "Verwaltung der System-Dienste." + +#: data/kcm_service-manager.desktop.in.h:2 data/service-manager.desktop.in.h:2 +msgid "Service Manager" +msgstr "Dienste" + +#: src/servicemanager/about.py:26 +msgid "(c) 2009-2010 TUBITAK/UEKAE" +msgstr "(c) 2009-2010 TUBITAK/UEKAE" + +#: src/servicemanager/about.py:34 +msgid "Gökmen Göksel" +msgstr "Gökmen Göksel" + +#: src/servicemanager/about.py:34 +msgid "Current Maintainer" +msgstr "Aktueller Betreuer" + +#: src/servicemanager/about.py:35 +msgid "Bahadır Kandemir" +msgstr "Bahadır Kandemir" + +#: src/servicemanager/about.py:35 +msgid "COMAR Author" +msgstr "Autor von COMAR" + +#: src/servicemanager/about.py:36 +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Stefan Wilhelm" + +#: src/servicemanager/about.py:36 +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "sw@pardususer.de" + +#: src/servicemanager/base.py:96 +msgid "Authentication Error" +msgstr "Authentifikationsfehler" + +#: src/servicemanager/base.py:97 +msgid "You are not authorized for this operation." +msgstr "Sie sind für diese Aktion nicht bevollmächtigt." + +#: src/servicemanager/base.py:99 +msgid "Error" +msgstr "Fehler" + +#: src/servicemanager/base.py:100 +msgid "An exception occurred." +msgstr "Ein Ausnahmefall ist eingetreten." + +#: src/servicemanager/widgets.py:171 ui/ui_info.py:53 +msgid "Service information is not available" +msgstr "Information über Dienst ist nicht verfügbar" + +#: ui/ui_info.py:52 ui/ui_item.py:127 ui/ui_main.py:61 +msgid "Form" +msgstr "Form" + +#: ui/ui_info.py:54 +msgid "Hide Information" +msgstr "Verberge Information" + +#: ui/ui_item.py:128 +msgid "serviceName" +msgstr "serviceName" + +#: ui/ui_item.py:129 +msgid "serviceDesc" +msgstr "serviceDesc" + +#: ui/ui_item.py:130 +msgid "Start service" +msgstr "Dienst starten" + +#: ui/ui_item.py:131 +msgid "Reload service" +msgstr "Dienst neu starten" + +#: ui/ui_item.py:132 +msgid "Run on start" +msgstr "Automatisch starten" + +#: ui/ui_item.py:133 +msgid "Stop service" +msgstr "Dienst anhalten" + +#: ui/ui_item.py:134 +msgid "More Information" +msgstr "Mehr Information" + +#: ui/ui_main.py:62 +msgid "type service name to search..." +msgstr "Schreiben Sie den Namen des Dienstes den Sie suchen..." + +#: ui/ui_main.py:63 +msgid "Servers" +msgstr "Server" + +#: ui/ui_main.py:64 +msgid "System Services" +msgstr "Systemdienste" + +#: ui/ui_main.py:65 +msgid "Startup Services" +msgstr "Automatische Dienste" + +#: ui/ui_main.py:66 +msgid "Running Services" +msgstr "Aktive Dienste" + +#: ui/ui_main.py:67 +msgid "All Services" +msgstr "Alle Dienste" + +# Zweifel - singular/plural ? wahrscheinlich Singular.. +#: ui/ui_main.py:68 +msgid "Getting service info... %p%" +msgstr "Erhalte Dienste Info... %p%" diff --git a/po/es.po b/po/es.po new file mode 100644 index 0000000..8eb8faa --- /dev/null +++ b/po/es.po @@ -0,0 +1,142 @@ +# translation of es.po to spanish +# Service Manager +# Copyright (C) 2009 TUBITAK/UEAKE +# This file is distributed under the same license as the Service Manager package. +# Gökmen Göksel +# +# Klemens Häckel , 2009. +msgid "" +msgstr "" +"Project-Id-Version: es\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-01-10 08:20+0200\n" +"PO-Revision-Date: 2011-01-10 08:20+0200\n" +"Last-Translator: Klemens Häckel \n" +"Language-Team: spanish \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" + +#: data/kcm_service-manager.desktop.in.h:1 data/service-manager.desktop.in.h:1 +msgid "An application for managing system services." +msgstr "Programa para gerenciar los servicios del sistema" + +#: data/kcm_service-manager.desktop.in.h:2 data/service-manager.desktop.in.h:2 +msgid "Service Manager" +msgstr "Administrador de servicios" + +#: src/servicemanager/about.py:26 +msgid "(c) 2009-2010 TUBITAK/UEKAE" +msgstr "" + +#: src/servicemanager/about.py:34 +msgid "Current Maintainer" +msgstr "Mantenedor actual" + +#: src/servicemanager/about.py:34 +msgid "Gökmen Göksel" +msgstr "" + +#: src/servicemanager/about.py:35 +msgid "Bahadır Kandemir" +msgstr "" + +#: src/servicemanager/about.py:35 +msgid "COMAR Author" +msgstr "Autor de COMAR" + +#: src/servicemanager/about.py:36 +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "click3d (at) linuxmail.org" + +#: src/servicemanager/about.py:36 +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Klemens Häckel" + +#: src/servicemanager/base.py:96 +msgid "Authentication Error" +msgstr "Error de Autenticación" + +#: src/servicemanager/base.py:97 +msgid "You are not authorized for this operation." +msgstr "No está autorizado para esta operación" + +#: src/servicemanager/base.py:99 +msgid "Error" +msgstr "Error" + +#: src/servicemanager/base.py:100 +msgid "An exception occurred." +msgstr "Ocurrió un error" + +#: src/servicemanager/widgets.py:171 ui/ui_info.py:53 +msgid "Service information is not available" +msgstr "Información del servicio no disponible" + +#: ui/ui_info.py:52 ui/ui_item.py:127 ui/ui_main.py:61 +msgid "Form" +msgstr "" + +#: ui/ui_info.py:54 +msgid "Hide Information" +msgstr "Ocultar Información" + +#: ui/ui_item.py:128 +msgid "serviceName" +msgstr "" + +#: ui/ui_item.py:129 +msgid "serviceDesc" +msgstr "" + +#: ui/ui_item.py:130 +msgid "Start service" +msgstr "Iniciar Servicio" + +#: ui/ui_item.py:131 +msgid "Reload service" +msgstr "Reiniciar servicio" + +#: ui/ui_item.py:132 +msgid "Run on start" +msgstr "Iniciar automáticamente con el arranque del sistema" + +#: ui/ui_item.py:133 +msgid "Stop service" +msgstr "Parar servicio" + +#: ui/ui_item.py:134 +msgid "More Information" +msgstr "Más Información" + +#: ui/ui_main.py:62 +msgid "type service name to search..." +msgstr "Escriba el nombre de servicio a buscar..." + +#: ui/ui_main.py:63 +msgid "Servers" +msgstr "Servidores" + +#: ui/ui_main.py:64 +msgid "System Services" +msgstr "Servicios del sistema" + +#: ui/ui_main.py:65 +msgid "Startup Services" +msgstr "Servicios que inician automáticamente" + +#: ui/ui_main.py:66 +msgid "Running Services" +msgstr "Servicios activos" + +#: ui/ui_main.py:67 +msgid "All Services" +msgstr "Todos los servicios" + +#: ui/ui_main.py:68 +msgid "Getting service info... %p%" +msgstr "Recibiendo información sobre los servicios... %p%" diff --git a/po/fr.po b/po/fr.po new file mode 100644 index 0000000..1176a11 --- /dev/null +++ b/po/fr.po @@ -0,0 +1,140 @@ +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Philippe Svetoslavsky , 2009. +msgid "" +msgstr "" +"Project-Id-Version: service-manager\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-01-10 08:20+0200\n" +"PO-Revision-Date: 2011-01-10 08:20+0200\n" +"Last-Translator: Philippe Svetoslavsky \n" +"Language-Team: French \n" +"Language: fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Generator: Lokalize 0.3\n" + +#: data/kcm_service-manager.desktop.in.h:1 data/service-manager.desktop.in.h:1 +msgid "An application for managing system services." +msgstr "Une application de gestion des services du système." + +#: data/kcm_service-manager.desktop.in.h:2 data/service-manager.desktop.in.h:2 +msgid "Service Manager" +msgstr "Gestionnaire de services" + +#: src/servicemanager/about.py:26 +msgid "(c) 2009-2010 TUBITAK/UEKAE" +msgstr "(c) 2009-2010 TUBITAK/UEKAE" + +#: src/servicemanager/about.py:34 +msgid "Current Maintainer" +msgstr "Mainteneur actuel" + +#: src/servicemanager/about.py:34 +msgid "Gökmen Göksel" +msgstr "Gökmen Göksel" + +#: src/servicemanager/about.py:35 +msgid "Bahadır Kandemir" +msgstr "Bahadır Kandemir" + +#: src/servicemanager/about.py:35 +msgid "COMAR Author" +msgstr "Auteur de COMAR" + +#: src/servicemanager/about.py:36 +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "Votre courriel" + +#: src/servicemanager/about.py:36 +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Votre nom" + +#: src/servicemanager/base.py:96 +msgid "Authentication Error" +msgstr "Erreur d'authentification" + +#: src/servicemanager/base.py:97 +msgid "You are not authorized for this operation." +msgstr "Cette opération vous est interdite." + +#: src/servicemanager/base.py:99 +msgid "Error" +msgstr "Erreur" + +#: src/servicemanager/base.py:100 +msgid "An exception occurred." +msgstr "Une exception s'est produite." + +#: src/servicemanager/widgets.py:171 ui/ui_info.py:53 +msgid "Service information is not available" +msgstr "L'information sur le service n'est pas disponible" + +#: ui/ui_info.py:52 ui/ui_item.py:127 ui/ui_main.py:61 +msgid "Form" +msgstr "Formulaire" + +#: ui/ui_info.py:54 +msgid "Hide Information" +msgstr "Masquer l'information" + +#: ui/ui_item.py:128 +msgid "serviceName" +msgstr "serviceName" + +#: ui/ui_item.py:129 +msgid "serviceDesc" +msgstr "serviceDesc" + +#: ui/ui_item.py:130 +msgid "Start service" +msgstr "Démarrer le service" + +#: ui/ui_item.py:131 +msgid "Reload service" +msgstr "Recharger le service" + +#: ui/ui_item.py:132 +msgid "Run on start" +msgstr "Lancer au démarrage" + +#: ui/ui_item.py:133 +msgid "Stop service" +msgstr "Arrêter le service" + +#: ui/ui_item.py:134 +msgid "More Information" +msgstr "Plus d'informations" + +#: ui/ui_main.py:62 +msgid "type service name to search..." +msgstr "Tapez le nom du service désiré..." + +#: ui/ui_main.py:63 +msgid "Servers" +msgstr "Serveurs" + +#: ui/ui_main.py:64 +msgid "System Services" +msgstr "Services du système" + +#: ui/ui_main.py:65 +msgid "Startup Services" +msgstr "Services de démarrage" + +#: ui/ui_main.py:66 +msgid "Running Services" +msgstr "Services activés" + +#: ui/ui_main.py:67 +msgid "All Services" +msgstr "Tous les services" + +#: ui/ui_main.py:68 +msgid "Getting service info... %p%" +msgstr "Obtention d'information sur le service... %p%" diff --git a/po/hu.po b/po/hu.po new file mode 100644 index 0000000..facdbac --- /dev/null +++ b/po/hu.po @@ -0,0 +1,141 @@ +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Daniel Kovács , 2010. +# Attila Siposs , 2010. +msgid "" +msgstr "" +"Project-Id-Version: hu\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-01-10 08:20+0200\n" +"PO-Revision-Date: 2011-01-10 08:21+0200\n" +"Last-Translator: Attila Siposs \n" +"Language-Team: Hungarian \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 1.0\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: data/kcm_service-manager.desktop.in.h:1 data/service-manager.desktop.in.h:1 +msgid "An application for managing system services." +msgstr "Rendszerszolgáltatás kezelő alkalmazás." + +#: data/kcm_service-manager.desktop.in.h:2 data/service-manager.desktop.in.h:2 +msgid "Service Manager" +msgstr "Szolgáltatás kezelő" + +#: src/servicemanager/about.py:26 +msgid "(c) 2009-2010 TUBITAK/UEKAE" +msgstr "(c) 2009-2010 TUBITAK/UEKAE" + +#: src/servicemanager/about.py:34 +msgid "Current Maintainer" +msgstr "Aktuális karbantartó" + +#: src/servicemanager/about.py:34 +msgid "Gökmen Göksel" +msgstr "Gökmen Göksel" + +#: src/servicemanager/about.py:35 +msgid "Bahadır Kandemir" +msgstr "Bahadır Kandemir" + +#: src/servicemanager/about.py:35 +msgid "COMAR Author" +msgstr "COMAR szerző" + +#: src/servicemanager/about.py:36 +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "bicskas9323@gmail.com, sipiatti@gmail.com" + +#: src/servicemanager/about.py:36 +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Daniel Kovács, Attila Siposs" + +#: src/servicemanager/base.py:96 +msgid "Authentication Error" +msgstr "Jogosultsági hiba" + +#: src/servicemanager/base.py:97 +msgid "You are not authorized for this operation." +msgstr "Nincs jogosultsága a művelet végrehajtásához." + +#: src/servicemanager/base.py:99 +msgid "Error" +msgstr "Hiba" + +#: src/servicemanager/base.py:100 +msgid "An exception occurred." +msgstr "Kivétel történt." + +#: src/servicemanager/widgets.py:171 ui/ui_info.py:53 +msgid "Service information is not available" +msgstr "Szolgáltatás információ nem áll rendelkezésre" + +#: ui/ui_info.py:52 ui/ui_item.py:127 ui/ui_main.py:61 +msgid "Form" +msgstr "Űrlap" + +#: ui/ui_info.py:54 +msgid "Hide Information" +msgstr "Infórmációk elrejtése" + +#: ui/ui_item.py:128 +msgid "serviceName" +msgstr "szolgáltatásNév" + +#: ui/ui_item.py:129 +msgid "serviceDesc" +msgstr "szolgáltatásLeírás" + +#: ui/ui_item.py:130 +msgid "Start service" +msgstr "Szolgáltatás indítása" + +#: ui/ui_item.py:131 +msgid "Reload service" +msgstr "Szolgáltatás újratöltése" + +#: ui/ui_item.py:132 +msgid "Run on start" +msgstr "Rendszerindításkor induljon" + +#: ui/ui_item.py:133 +msgid "Stop service" +msgstr "Szolgáltatás leállítása" + +#: ui/ui_item.py:134 +msgid "More Information" +msgstr "További információ" + +#: ui/ui_main.py:62 +msgid "type service name to search..." +msgstr "gépelje be a szolgáltatás nevét a kereséshez..." + +#: ui/ui_main.py:63 +msgid "Servers" +msgstr "Kiszolgálók" + +#: ui/ui_main.py:64 +msgid "System Services" +msgstr "Rendszerszolgáltatások" + +#: ui/ui_main.py:65 +msgid "Startup Services" +msgstr "Rendszerindítási szolgáltatások" + +#: ui/ui_main.py:66 +msgid "Running Services" +msgstr "Futó szolgáltatások" + +#: ui/ui_main.py:67 +msgid "All Services" +msgstr "Minden szolgáltatás" + +#: ui/ui_main.py:68 +msgid "Getting service info... %p%" +msgstr "Szolgáltatás információk lekérése... %p%" diff --git a/po/it.po b/po/it.po new file mode 100644 index 0000000..7638bb6 --- /dev/null +++ b/po/it.po @@ -0,0 +1,140 @@ +# translation of it.po to Italian +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Siciliano Davide , 2009. +msgid "" +msgstr "" +"Project-Id-Version: it\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-01-10 08:20+0200\n" +"PO-Revision-Date: 2011-01-10 08:20+0200\n" +"Last-Translator: Siciliano Davide \n" +"Language-Team: Italian \n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" + +#: data/kcm_service-manager.desktop.in.h:1 data/service-manager.desktop.in.h:1 +msgid "An application for managing system services." +msgstr "Un applicazione per la gestione dei servizi sel sistema." + +#: data/kcm_service-manager.desktop.in.h:2 data/service-manager.desktop.in.h:2 +msgid "Service Manager" +msgstr "Gestore dei servizi" + +#: src/servicemanager/about.py:26 +msgid "(c) 2009-2010 TUBITAK/UEKAE" +msgstr "(c) 2009-2010 TUBITAK/UEKAE" + +#: src/servicemanager/about.py:34 +msgid "Current Maintainer" +msgstr "Mantainer corrente" + +#: src/servicemanager/about.py:34 +msgid "Gökmen Göksel" +msgstr "Gökmen Göksel" + +#: src/servicemanager/about.py:35 +msgid "Bahadır Kandemir" +msgstr "Bahadır Kandemir" + +#: src/servicemanager/about.py:35 +msgid "COMAR Author" +msgstr "Autore di COMAR" + +#: src/servicemanager/about.py:36 +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "edivad95@gmail.com" + +#: src/servicemanager/about.py:36 +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Davide Siciliano" + +#: src/servicemanager/base.py:96 +msgid "Authentication Error" +msgstr "Errore di Autenticazione" + +#: src/servicemanager/base.py:97 +msgid "You are not authorized for this operation." +msgstr "Non sei autorizzato per questa operazione." + +#: src/servicemanager/base.py:99 +msgid "Error" +msgstr "Errore" + +#: src/servicemanager/base.py:100 +msgid "An exception occurred." +msgstr "Si è verificata un'eccezione." + +#: src/servicemanager/widgets.py:171 ui/ui_info.py:53 +msgid "Service information is not available" +msgstr "Informazioni di servizio non sono disponibili" + +#: ui/ui_info.py:52 ui/ui_item.py:127 ui/ui_main.py:61 +msgid "Form" +msgstr "Forma" + +#: ui/ui_info.py:54 +msgid "Hide Information" +msgstr "Nascondi Informazioni" + +#: ui/ui_item.py:128 +msgid "serviceName" +msgstr "Nome del Servizio" + +#: ui/ui_item.py:129 +msgid "serviceDesc" +msgstr "Descrizione del Servizio" + +#: ui/ui_item.py:130 +msgid "Start service" +msgstr "Avvia servizio" + +#: ui/ui_item.py:131 +msgid "Reload service" +msgstr "Riavvia servizio" + +#: ui/ui_item.py:132 +msgid "Run on start" +msgstr "Esegui all'avvio" + +#: ui/ui_item.py:133 +msgid "Stop service" +msgstr "Ferma servizio" + +#: ui/ui_item.py:134 +msgid "More Information" +msgstr "Ulteriori Informazioni" + +#: ui/ui_main.py:62 +msgid "type service name to search..." +msgstr "scrivi il nome del servizio che vuoi cercare..." + +#: ui/ui_main.py:63 +msgid "Servers" +msgstr "Servers" + +#: ui/ui_main.py:64 +msgid "System Services" +msgstr "Servizi di sistema" + +#: ui/ui_main.py:65 +msgid "Startup Services" +msgstr "Servizi di avvio" + +#: ui/ui_main.py:66 +msgid "Running Services" +msgstr "Servizi in esecuzione" + +#: ui/ui_main.py:67 +msgid "All Services" +msgstr "Tutti i servizi" + +#: ui/ui_main.py:68 +msgid "Getting service info... %p%" +msgstr "Reperimento informazioni servizio... %p%" diff --git a/po/nl.po b/po/nl.po new file mode 100644 index 0000000..d2a0985 --- /dev/null +++ b/po/nl.po @@ -0,0 +1,143 @@ +# translation of nl.po to Nederlands +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Antoon Tolboom , 2009, 2010. +# Stefan Gronewold , 2014. +msgid "" +msgstr "" +"Project-Id-Version: nl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-01-10 08:20+0200\n" +"PO-Revision-Date: 2014-07-30 18:17+0200\n" +"Last-Translator: Stefan Gronewold \n" +"Language-Team: Dutch \n" +"Language: nl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 1.5\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: data/kcm_service-manager.desktop.in.h:1 data/service-manager.desktop.in.h:1 +msgid "An application for managing system services." +msgstr "Een toepassing voor het beheren van systeemdiensten." + +#: data/kcm_service-manager.desktop.in.h:2 data/service-manager.desktop.in.h:2 +msgid "Service Manager" +msgstr "Dienstbeheer" + +#: src/servicemanager/about.py:26 +msgid "(c) 2009-2010 TUBITAK/UEKAE" +msgstr "(c) 2009-2010 TUBITAK/UEKAE" + +#: src/servicemanager/about.py:34 +msgid "Current Maintainer" +msgstr "Huidige onderhouder" + +#: src/servicemanager/about.py:34 +msgid "Gökmen Göksel" +msgstr "Gökmen Göksel" + +#: src/servicemanager/about.py:35 +msgid "Bahadır Kandemir" +msgstr "Bahadır Kandemir" + +#: src/servicemanager/about.py:35 +msgid "COMAR Author" +msgstr "COMAR-auteur" + +#: src/servicemanager/about.py:36 +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "atolboo@gmail.com, groni@pisilinux.org" + +#: src/servicemanager/about.py:36 +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Antoon Tolboom, Stefan Gronewold" + +#: src/servicemanager/base.py:96 +msgid "Authentication Error" +msgstr "Authenticatiefout" + +#: src/servicemanager/base.py:97 +msgid "You are not authorized for this operation." +msgstr "U bent niet geautoriseerd voor deze bewerking." + +#: src/servicemanager/base.py:99 +msgid "Error" +msgstr "Fout" + +#: src/servicemanager/base.py:100 +msgid "An exception occurred." +msgstr "Onbehandelde fout opgetreden." + +#: src/servicemanager/widgets.py:171 ui/ui_info.py:53 +msgid "Service information is not available" +msgstr "Dienstinformatie is niet aanwezig" + +#: ui/ui_info.py:52 ui/ui_item.py:127 ui/ui_main.py:61 +msgid "Form" +msgstr "Form" + +#: ui/ui_info.py:54 +msgid "Hide Information" +msgstr "Informatie verbergen" + +#: ui/ui_item.py:128 +msgid "serviceName" +msgstr "dienstnaam" + +#: ui/ui_item.py:129 +msgid "serviceDesc" +msgstr "dienstbeschrijving" + +#: ui/ui_item.py:130 +msgid "Start service" +msgstr "Dienst starten" + +#: ui/ui_item.py:131 +msgid "Reload service" +msgstr "Dienst herladen" + +#: ui/ui_item.py:132 +msgid "Run on start" +msgstr "Bij opstarten uitvoeren" + +#: ui/ui_item.py:133 +msgid "Stop service" +msgstr "Dienst stoppen" + +#: ui/ui_item.py:134 +msgid "More Information" +msgstr "Meer informatie" + +#: ui/ui_main.py:62 +msgid "type service name to search..." +msgstr "type dienstnaam om te zoeken..." + +#: ui/ui_main.py:63 +msgid "Servers" +msgstr "Servers" + +#: ui/ui_main.py:64 +msgid "System Services" +msgstr "Systeemdiensten" + +#: ui/ui_main.py:65 +msgid "Startup Services" +msgstr "Opstartdiensten" + +#: ui/ui_main.py:66 +msgid "Running Services" +msgstr "Actieve diensten" + +#: ui/ui_main.py:67 +msgid "All Services" +msgstr "Alle diensten" + +#: ui/ui_main.py:68 +msgid "Getting service info... %p%" +msgstr "Dienstinformatie wordt opgehaald... %p%" + diff --git a/po/pt_BR.po b/po/pt_BR.po new file mode 100644 index 0000000..e72b75b --- /dev/null +++ b/po/pt_BR.po @@ -0,0 +1,139 @@ +# Translation of pt_BR.po to Brazilian Portuguese +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Diogo Lima , 2010. +msgid "" +msgstr "" +"Project-Id-Version: pt_BR\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-01-10 08:20+0200\n" +"PO-Revision-Date: 2011-01-10 08:21+0200\n" +"Last-Translator: Diogo Lima \n" +"Language-Team: Brazilian Portuguese \n" +"Language: pt_BR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: data/kcm_service-manager.desktop.in.h:1 data/service-manager.desktop.in.h:1 +msgid "An application for managing system services." +msgstr "Um aplicativo para gerenciar os Serviços do Sistema" + +#: data/kcm_service-manager.desktop.in.h:2 data/service-manager.desktop.in.h:2 +msgid "Service Manager" +msgstr "Gerenciador de Serviço" + +#: src/servicemanager/about.py:26 +msgid "(c) 2009-2010 TUBITAK/UEKAE" +msgstr "(c) 2009 TUBITAK/UEKAE" + +#: src/servicemanager/about.py:34 +msgid "Current Maintainer" +msgstr "Mantenedor Atual" + +#: src/servicemanager/about.py:34 +msgid "Gökmen Göksel" +msgstr "Gökmen Göksel" + +#: src/servicemanager/about.py:35 +msgid "Bahadır Kandemir" +msgstr "Bahadır Kandemir" + +#: src/servicemanager/about.py:35 +msgid "COMAR Author" +msgstr "Autor do COMAR" + +#: src/servicemanager/about.py:36 +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "Seus emails" + +#: src/servicemanager/about.py:36 +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Seus nomes" + +#: src/servicemanager/base.py:96 +msgid "Authentication Error" +msgstr "Erro de Autenticação" + +#: src/servicemanager/base.py:97 +msgid "You are not authorized for this operation." +msgstr "Você não é autorizado para esta operação." + +#: src/servicemanager/base.py:99 +msgid "Error" +msgstr "Erro" + +#: src/servicemanager/base.py:100 +msgid "An exception occurred." +msgstr "Ocorreu uma exceção." + +#: src/servicemanager/widgets.py:171 ui/ui_info.py:53 +msgid "Service information is not available" +msgstr "Serviço de informações não está disponível" + +#: ui/ui_info.py:52 ui/ui_item.py:127 ui/ui_main.py:61 +msgid "Form" +msgstr "Form" + +#: ui/ui_info.py:54 +msgid "Hide Information" +msgstr "Ocultar informação" + +#: ui/ui_item.py:128 +msgid "serviceName" +msgstr "serviceName" + +#: ui/ui_item.py:129 +msgid "serviceDesc" +msgstr "serviceDesc" + +#: ui/ui_item.py:130 +msgid "Start service" +msgstr "Iniciar serviço" + +#: ui/ui_item.py:131 +msgid "Reload service" +msgstr "Reiniciar serviço" + +#: ui/ui_item.py:132 +msgid "Run on start" +msgstr "Executar na inicialização do sistema" + +#: ui/ui_item.py:133 +msgid "Stop service" +msgstr "Parar serviço" + +#: ui/ui_item.py:134 +msgid "More Information" +msgstr "Mais informações" + +#: ui/ui_main.py:62 +msgid "type service name to search..." +msgstr "digite o nome do serviço para buscar..." + +#: ui/ui_main.py:63 +msgid "Servers" +msgstr "Servers" + +#: ui/ui_main.py:64 +msgid "System Services" +msgstr "Serviços do Sistema" + +#: ui/ui_main.py:65 +msgid "Startup Services" +msgstr "Serviços de Inicialização" + +#: ui/ui_main.py:66 +msgid "Running Services" +msgstr "Serviços em Execução" + +#: ui/ui_main.py:67 +msgid "All Services" +msgstr "Todos os Serviços" + +#: ui/ui_main.py:68 +msgid "Getting service info... %p%" +msgstr "Pegando informação do serviço... %p%" diff --git a/po/ru.po b/po/ru.po new file mode 100644 index 0000000..c7b9746 --- /dev/null +++ b/po/ru.po @@ -0,0 +1,139 @@ +# 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 , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: 1.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-01-10 08:20+0200\n" +"PO-Revision-Date: 2011-01-10 08:23+0200\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: data/kcm_service-manager.desktop.in.h:1 data/service-manager.desktop.in.h:1 +msgid "An application for managing system services." +msgstr "Приложение для управления системными службами." + +#: data/kcm_service-manager.desktop.in.h:2 data/service-manager.desktop.in.h:2 +msgid "Service Manager" +msgstr "Менеджер служб" + +#: src/servicemanager/about.py:26 +msgid "(c) 2009-2010 TUBITAK/UEKAE" +msgstr "(c) 2009-2010 TUBITAK/UEKAE" + +#: src/servicemanager/about.py:34 +msgid "Current Maintainer" +msgstr "Current Maintainer" + +#: src/servicemanager/about.py:34 +msgid "Gökmen Göksel" +msgstr "Gökmen Göksel" + +#: src/servicemanager/about.py:35 +msgid "Bahadır Kandemir" +msgstr "Bahadır Kandemir" + +#: src/servicemanager/about.py:35 +msgid "COMAR Author" +msgstr "COMAR Author" + +#: src/servicemanager/about.py:36 +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "zag@vspu.ru, tribunal2000@gmail.com" + +#: src/servicemanager/about.py:36 +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Ясыров Василий (zaG), Семенов Николай (Tribunal)" + +#: src/servicemanager/base.py:96 +msgid "Authentication Error" +msgstr "Ошибка идентификации" + +#: src/servicemanager/base.py:97 +msgid "You are not authorized for this operation." +msgstr "Вы не авторизованы для данной операции" + +#: src/servicemanager/base.py:99 +msgid "Error" +msgstr "Ошибка" + +#: src/servicemanager/base.py:100 +msgid "An exception occurred." +msgstr "Исключение" + +#: src/servicemanager/widgets.py:171 ui/ui_info.py:53 +msgid "Service information is not available" +msgstr "Информация о сервисе не доступна" + +#: ui/ui_info.py:52 ui/ui_item.py:127 ui/ui_main.py:61 +msgid "Form" +msgstr "Форма" + +#: ui/ui_info.py:54 +msgid "Hide Information" +msgstr "Спрятать информацию" + +#: ui/ui_item.py:128 +msgid "serviceName" +msgstr "Имя службы" + +#: ui/ui_item.py:129 +msgid "serviceDesc" +msgstr "Описание службы" + +#: ui/ui_item.py:130 +msgid "Start service" +msgstr "Запуск службы" + +#: ui/ui_item.py:131 +msgid "Reload service" +msgstr "Перезагрузк службы" + +#: ui/ui_item.py:132 +msgid "Run on start" +msgstr "Запускать автоматически" + +#: ui/ui_item.py:133 +msgid "Stop service" +msgstr "Остановка службы" + +#: ui/ui_item.py:134 +msgid "More Information" +msgstr "Больше информации" + +#: ui/ui_main.py:62 +msgid "type service name to search..." +msgstr "введите имя службы для поиска ..." + +#: ui/ui_main.py:63 +msgid "Servers" +msgstr "Серверы" + +#: ui/ui_main.py:64 +msgid "System Services" +msgstr "Системные службы" + +#: ui/ui_main.py:65 +msgid "Startup Services" +msgstr "Запущенные службы" + +#: ui/ui_main.py:66 +msgid "Running Services" +msgstr "Запущенные службы" + +#: ui/ui_main.py:67 +msgid "All Services" +msgstr "Все службы" + +#: ui/ui_main.py:68 +msgid "Getting service info... %p%" +msgstr "Информация о службе ... %p%" diff --git a/po/service-manager.pot b/po/service-manager.pot new file mode 100644 index 0000000..27c5b33 --- /dev/null +++ b/po/service-manager.pot @@ -0,0 +1,140 @@ +# 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 , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-01-10 08:20+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: data/kcm_service-manager.desktop.in.h:1 data/service-manager.desktop.in.h:1 +msgid "An application for managing system services." +msgstr "" + +#: data/kcm_service-manager.desktop.in.h:2 data/service-manager.desktop.in.h:2 +msgid "Service Manager" +msgstr "" + +#: src/servicemanager/about.py:26 +msgid "(c) 2009-2010 TUBITAK/UEKAE" +msgstr "" + +#: src/servicemanager/about.py:34 +msgid "Gökmen Göksel" +msgstr "" + +#: src/servicemanager/about.py:34 +msgid "Current Maintainer" +msgstr "" + +#: src/servicemanager/about.py:35 +msgid "Bahadır Kandemir" +msgstr "" + +#: src/servicemanager/about.py:35 +msgid "COMAR Author" +msgstr "" + +#: src/servicemanager/about.py:36 +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "" + +#: src/servicemanager/about.py:36 +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "" + +#: src/servicemanager/base.py:96 +msgid "Authentication Error" +msgstr "" + +#: src/servicemanager/base.py:97 +msgid "You are not authorized for this operation." +msgstr "" + +#: src/servicemanager/base.py:99 +msgid "Error" +msgstr "" + +#: src/servicemanager/base.py:100 +msgid "An exception occurred." +msgstr "" + +#: src/servicemanager/widgets.py:171 ui/ui_info.py:53 +msgid "Service information is not available" +msgstr "" + +#: ui/ui_info.py:52 ui/ui_item.py:127 ui/ui_main.py:61 +msgid "Form" +msgstr "" + +#: ui/ui_info.py:54 +msgid "Hide Information" +msgstr "" + +#: ui/ui_item.py:128 +msgid "serviceName" +msgstr "" + +#: ui/ui_item.py:129 +msgid "serviceDesc" +msgstr "" + +#: ui/ui_item.py:130 +msgid "Start service" +msgstr "" + +#: ui/ui_item.py:131 +msgid "Reload service" +msgstr "" + +#: ui/ui_item.py:132 +msgid "Run on start" +msgstr "" + +#: ui/ui_item.py:133 +msgid "Stop service" +msgstr "" + +#: ui/ui_item.py:134 +msgid "More Information" +msgstr "" + +#: ui/ui_main.py:62 +msgid "type service name to search..." +msgstr "" + +#: ui/ui_main.py:63 +msgid "Servers" +msgstr "" + +#: ui/ui_main.py:64 +msgid "System Services" +msgstr "" + +#: ui/ui_main.py:65 +msgid "Startup Services" +msgstr "" + +#: ui/ui_main.py:66 +msgid "Running Services" +msgstr "" + +#: ui/ui_main.py:67 +msgid "All Services" +msgstr "" + +#: ui/ui_main.py:68 +msgid "Getting service info... %p%" +msgstr "" diff --git a/po/sv.po b/po/sv.po new file mode 100644 index 0000000..366a222 --- /dev/null +++ b/po/sv.po @@ -0,0 +1,140 @@ +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Patrik Karlsson , 2009. +msgid "" +msgstr "" +"Project-Id-Version: service-manager\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-01-10 08:20+0200\n" +"PO-Revision-Date: 2011-01-10 08:21+0200\n" +"Last-Translator: Patrik Karlsson \n" +"Language-Team: Swedish \n" +"Language: sv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Lokalize 0.3\n" + +#: data/kcm_service-manager.desktop.in.h:1 data/service-manager.desktop.in.h:1 +msgid "An application for managing system services." +msgstr "Ett program för hantering av systemtjänster." + +#: data/kcm_service-manager.desktop.in.h:2 data/service-manager.desktop.in.h:2 +msgid "Service Manager" +msgstr "Tjänstehanteraren" + +#: src/servicemanager/about.py:26 +msgid "(c) 2009-2010 TUBITAK/UEKAE" +msgstr "(c) 2009-2010 TUBITAK/UEKAE" + +#: src/servicemanager/about.py:34 +msgid "Current Maintainer" +msgstr "Nuvarande utvecklare" + +#: src/servicemanager/about.py:34 +msgid "Gökmen Göksel" +msgstr "Gökmen Göksel" + +#: src/servicemanager/about.py:35 +msgid "Bahadır Kandemir" +msgstr "Bahadır Kandemir" + +#: src/servicemanager/about.py:35 +msgid "COMAR Author" +msgstr "COMAR-utvecklare" + +#: src/servicemanager/about.py:36 +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "patrik@trixon.se" + +#: src/servicemanager/about.py:36 +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Patrik Karlsson" + +#: src/servicemanager/base.py:96 +msgid "Authentication Error" +msgstr "Autentiseringsfel" + +#: src/servicemanager/base.py:97 +msgid "You are not authorized for this operation." +msgstr "Du saknar behörighet för denna åtgärd." + +#: src/servicemanager/base.py:99 +msgid "Error" +msgstr "Fel" + +#: src/servicemanager/base.py:100 +msgid "An exception occurred." +msgstr "Ett undantag uppstod." + +#: src/servicemanager/widgets.py:171 ui/ui_info.py:53 +msgid "Service information is not available" +msgstr "Tjänsteinformation är inte tillgänglig." + +#: ui/ui_info.py:52 ui/ui_item.py:127 ui/ui_main.py:61 +msgid "Form" +msgstr "Form" + +#: ui/ui_info.py:54 +msgid "Hide Information" +msgstr "Dölj information" + +#: ui/ui_item.py:128 +msgid "serviceName" +msgstr "serviceName" + +#: ui/ui_item.py:129 +msgid "serviceDesc" +msgstr "serviceDesc" + +#: ui/ui_item.py:130 +msgid "Start service" +msgstr "Starta tjänst" + +#: ui/ui_item.py:131 +msgid "Reload service" +msgstr "Starta om tjänst" + +#: ui/ui_item.py:132 +msgid "Run on start" +msgstr "Kör vid uppstart" + +#: ui/ui_item.py:133 +msgid "Stop service" +msgstr "Stoppa tjänst" + +#: ui/ui_item.py:134 +msgid "More Information" +msgstr "Mer information" + +#: ui/ui_main.py:62 +msgid "type service name to search..." +msgstr "Sök" + +#: ui/ui_main.py:63 +msgid "Servers" +msgstr "Servrar" + +#: ui/ui_main.py:64 +msgid "System Services" +msgstr "Systemtjänster" + +#: ui/ui_main.py:65 +msgid "Startup Services" +msgstr "Tjänster som körs vid uppstart" + +#: ui/ui_main.py:66 +msgid "Running Services" +msgstr "Tjänster som körs" + +#: ui/ui_main.py:67 +msgid "All Services" +msgstr "Alla tjänster" + +#: ui/ui_main.py:68 +msgid "Getting service info... %p%" +msgstr "Hämtar information om tjänster... %p%" diff --git a/po/tr.po b/po/tr.po new file mode 100644 index 0000000..7bb5bb9 --- /dev/null +++ b/po/tr.po @@ -0,0 +1,142 @@ +# Service Manager +# Copyright (C) 2009 TUBITAK/UEAKE +# This file is distributed under the same license as the Service Manager package. +# Gökmen Göksel +# +# Necmettin Begiter , 2009. +msgid "" +msgstr "" +"Project-Id-Version: 2.0.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-01-10 08:20+0200\n" +"PO-Revision-Date: 2011-01-10 08:21+0200\n" +"Last-Translator: Necmettin Begiter \n" +"Language-Team: Turkish \n" +"Language: tr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Lokalize 0.3\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: data/kcm_service-manager.desktop.in.h:1 data/service-manager.desktop.in.h:1 +msgid "An application for managing system services." +msgstr "Sistem servisleri yönetim uygulaması." + +#: data/kcm_service-manager.desktop.in.h:2 data/service-manager.desktop.in.h:2 +msgid "Service Manager" +msgstr "Servis Yöneticisi" + +#: src/servicemanager/about.py:26 +msgid "(c) 2009-2010 TUBITAK/UEKAE" +msgstr "(c) 2009-2010 TÜBİTAK/UEKAE" + +#: src/servicemanager/about.py:34 +msgid "Current Maintainer" +msgstr "Şimdiki Geliştirici" + +#: src/servicemanager/about.py:34 +msgid "Gökmen Göksel" +msgstr "Gökmen Göksel" + +#: src/servicemanager/about.py:35 +msgid "Bahadır Kandemir" +msgstr "Bahadır Kandemir" + +#: src/servicemanager/about.py:35 +msgid "COMAR Author" +msgstr "COMAR Yazarı" + +#: src/servicemanager/about.py:36 +msgctxt "EMAIL OF TRANSLATORS" +msgid "Your emails" +msgstr "gokmen@pardus.org.tr, necmetting.begiter@gmail.com" + +#: src/servicemanager/about.py:36 +msgctxt "NAME OF TRANSLATORS" +msgid "Your names" +msgstr "Gökmen Göksel, Necmettin Begiter" + +#: src/servicemanager/base.py:96 +msgid "Authentication Error" +msgstr "Yetkilendirme Hatası" + +#: src/servicemanager/base.py:97 +msgid "You are not authorized for this operation." +msgstr "Bu işlemi yapmak için yetkili değilsiniz." + +#: src/servicemanager/base.py:99 +msgid "Error" +msgstr "Hata" + +#: src/servicemanager/base.py:100 +msgid "An exception occurred." +msgstr "Bir hata meydana geldi." + +#: src/servicemanager/widgets.py:171 ui/ui_info.py:53 +msgid "Service information is not available" +msgstr "Servis bilgisi mevcut değil" + +#: ui/ui_info.py:52 ui/ui_item.py:127 ui/ui_main.py:61 +msgid "Form" +msgstr "Form" + +#: ui/ui_info.py:54 +msgid "Hide Information" +msgstr "Bilgiyi Gizle" + +#: ui/ui_item.py:128 +msgid "serviceName" +msgstr "servisİsmi" + +#: ui/ui_item.py:129 +msgid "serviceDesc" +msgstr "servisAçıklaması" + +#: ui/ui_item.py:130 +msgid "Start service" +msgstr "Servisi başlat" + +#: ui/ui_item.py:131 +msgid "Reload service" +msgstr "Servisi yeniden başlat" + +#: ui/ui_item.py:132 +msgid "Run on start" +msgstr "Açılışta çalıştır" + +#: ui/ui_item.py:133 +msgid "Stop service" +msgstr "Servisi durdur" + +#: ui/ui_item.py:134 +msgid "More Information" +msgstr "Daha Fazla Bilgi" + +#: ui/ui_main.py:62 +msgid "type service name to search..." +msgstr "aranacak servis ismini yazın" + +#: ui/ui_main.py:63 +msgid "Servers" +msgstr "Sunucular" + +#: ui/ui_main.py:64 +msgid "System Services" +msgstr "Sistem Servisleri" + +#: ui/ui_main.py:65 +msgid "Startup Services" +msgstr "Açılış Servisleri" + +#: ui/ui_main.py:66 +msgid "Running Services" +msgstr "Çalışan Servisler" + +#: ui/ui_main.py:67 +msgid "All Services" +msgstr "Tüm Servisler" + +#: ui/ui_main.py:68 +msgid "Getting service info... %p%" +msgstr "Servis bilgisi getiriliyor... % %p" diff --git a/setup.py b/setup.py new file mode 100755 index 0000000..42adb93 --- /dev/null +++ b/setup.py @@ -0,0 +1,274 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Copyright (C) 2006-2010 TUBITAK/UEKAE +# +# 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. +# +# Please read the COPYING file. +# + +import os +import sys +import glob +import shutil +import tempfile + +from src.servicemanager import about + +from distutils.core import setup +from distutils.cmd import Command +from distutils.command.build import build +from distutils.command.clean import clean +from distutils.command.install import install + +PROJECT = about.appName +FOR_KDE_4=False + +if 'kde4' in sys.argv: + sys.argv.remove('kde4') + FOR_KDE_4=True + print 'UI files will be created for KDE 4.. ' + +def makeDirs(directory): + if not os.path.exists(directory): + try: + os.makedirs(directory) + except OSError: + pass + +def remove(path): + if os.path.exists(path): + print ' removing: ', path + if os.path.isdir(path): + shutil.rmtree(path) + else: + os.unlink(path) + +def update_messages(): + files = tempfile.mkstemp()[1] + + # Collect UI files + filelist = [] + # UI files for kde4 + if FOR_KDE_4: + for filename in glob.glob1("ui", "*.ui"): + os.system("pykde4uic -o ui/ui_%s.py ui/%s" % (filename.split(".")[0], filename)) + #UI files for pure-qt + else : + for filename in glob.glob1("ui", "*.ui"): + os.system("py2uic5 -o ui/ui_%s.py ui/%s" % (filename.split(".")[0], filename))#, PROJECT)) + + # Collect headers for desktop files + for filename in glob.glob("data/*.desktop.in"): + os.system("intltool-extract --type=gettext/ini %s" % filename) + + filelist = os.popen("find data src ui -name '*.h' -o -name '*.py'").read().strip().split("\n") + filelist.sort() + with open(files, "w") as _files: + _files.write("\n".join(filelist)) + + # Generate POT file + os.system("xgettext --default-domain=%s \ + --keyword=_ \ + --keyword=N_ \ + --keyword=i18n \ + --keyword=ki18n \ + --kde \ + -ci18n -ki18n:1 -ki18nc:1c,2 -ki18np:1,2 -ki18ncp:1c,2,3 -ktr2i18n:1 \ + -kI18N_NOOP:1 -kI18N_NOOP2:1c,2 -kaliasLocale -kki18n:1 -kki18nc:1c,2 \ + -kki18np:1,2 -kki18ncp:1c,2,3 \ + --files-from=%s \ + -o po/%s.pot" % (PROJECT, files, PROJECT)) + + # Update PO files + for item in glob.glob1("po", "*.po"): + print "Updating .. ", item + os.system("msgmerge --update --no-wrap --sort-by-file po/%s po/%s.pot" % (item, PROJECT)) + + # Cleanup + os.unlink(files) + for f in [_f for _f in filelist if _f.startswith("ui/") or _f.endswith(".h")]: + try: + os.unlink(f) + except OSError: + pass + + +class Build(build): + def run(self): + # Clear all + os.system("rm -rf build") + + # Copy codes + print "Copying PYs..." + os.system("cp -R src/ build/") + + # Copy icons + print "Copying Images..." + os.system("cp -R data/ build/") + + print "Generating .desktop files..." + for filename in glob.glob("data/*.desktop.in"): + os.system("intltool-merge -d po %s %s" % (filename, filename[:-3])) + + print "Generating UIs..." + # Collect UI for kde4 + if FOR_KDE_4: + for filename in glob.glob1("ui", "*.ui"): + os.system("pykde4uic -o build/servicemanager/ui_%s.py ui/%s" % (filename.split(".")[0], filename)) + # Collect UI for pure-qt + else: + for filename in glob.glob1("ui", "*.ui"): + os.system("py2uic5 -o build/servicemanager/ui_%s.py ui/%s" % (filename.split(".")[0], filename))#, PROJECT)) + + + print "Generating RCs..." + for filename in glob.glob1("data", "*.qrc"): + os.system("py2rcc5 data/%s -o build/%s_rc.py" % (filename, filename.split(".")[0])) + +class Install(install): + def run(self): + install.run(self) + def rst2doc(lang): + if os.path.exists(os.path.join('help', lang)): + for doc in ('main_help', 'preferences_help'): + if os.path.exists(os.path.join('help', lang,'%s.rst' % doc)): + os.system("rst2html --stylesheet help/help.css help/%s/%s.rst > help/%s/%s.html" % (lang, doc, lang, doc)) + + if self.root: + root_dir = "%s/usr/share" % self.root + bin_dir = os.path.join(self.root, "usr/bin") + else: + root_dir = "/usr/share" + bin_dir = "/usr/bin" + + locale_dir = os.path.join(root_dir, "locale") + if FOR_KDE_4: + apps_dir = os.path.join(root_dir, "applications/kde4") + services_dir = os.path.join(root_dir, "kde4/services") + project_dir = os.path.join(root_dir, "kde4/apps", PROJECT) + else: + apps_dir = os.path.join(root_dir, "applications") + project_dir = os.path.join(root_dir, PROJECT) + + # Make directories + print "Making directories..." + pixmap_dir="/usr/share/pixmap" + makeDirs(bin_dir) + makeDirs(locale_dir) + makeDirs(apps_dir) + makeDirs(pixmap_dir) + makeDirs(project_dir) + if FOR_KDE_4: + makeDirs(services_dir) + + # Install desktop files + print "Installing desktop files..." + + shutil.copy("data/%s.desktop" % PROJECT, apps_dir) + + shutil.copy("data/flag-yellow.png" , pixmap_dir) #% PROJECT + + if FOR_KDE_4: + shutil.copy("data/kcm_%s.desktop" % PROJECT, services_dir) + shutil.rmtree('build/data') + + # Install codes + print "Installing codes..." + os.system("cp -R build/* %s/" % project_dir) + + # Install locales + print "Installing locales..." + for filename in glob.glob1("po", "*.po"): + lang = filename.rsplit(".", 1)[0] + rst2doc(lang) + os.system("msgfmt po/%s.po -o po/%s.mo" % (lang, lang)) + makeDirs(os.path.join(locale_dir, "%s/LC_MESSAGES" % lang)) + shutil.copy("po/%s.mo" % lang, os.path.join(locale_dir, "%s/LC_MESSAGES" % lang, "%s.mo" % PROJECT)) + rst2doc('en') + if os.path.exists("help"): + print "Installing help files..." + os.system("cp -R help %s/" % project_dir) + + # Rename + # print "Renaming application.py..." + # shutil.move(os.path.join(project_dir, "main.py"), os.path.join(project_dir, "%s.py" % PROJECT)) + + # Modes + print "Changing file modes..." + os.chmod(os.path.join(project_dir, "%s.py" % PROJECT), 0755) + + # Symlink + try: + if self.root: + os.symlink(os.path.join(project_dir.replace(self.root, ""), "%s.py" % PROJECT), os.path.join(bin_dir, PROJECT)) + else: + os.symlink(os.path.join(project_dir, "%s.py" % PROJECT), os.path.join(bin_dir, PROJECT)) + except OSError: + pass + +class Uninstall(Command): + user_options = [] + def initialize_options(self): + pass + def finalize_options(self): + pass + def run(self): + root_dir = "/usr/share" + bin_dir = "/usr/bin" + + locale_dir = os.path.join(root_dir, "locale") + if FOR_KDE_4: + apps_dir = os.path.join(root_dir, "applications/kde4") + services_dir = os.path.join(root_dir, "kde4/services") + project_dir = os.path.join(root_dir, "kde4/apps", PROJECT) + else: + apps_dir = os.path.join(root_dir, "applications") + project_dir = os.path.join(root_dir, PROJECT) + + print 'Uninstalling ...' + remove(project_dir) + remove(apps_dir +"/%s.desktop" % PROJECT) + if FOR_KDE_4: + remove(services_dir +"/kcm_%s.desktop" % PROJECT) + for filename in glob.glob1('po', '*.po'): + lang = filename.rsplit(".", 1)[0] + remove(os.path.join(locale_dir, "%s/LC_MESSAGES" % lang, "%s.mo" % PROJECT)) + +class Clean(clean): + def run(self): + print 'Cleaning ...' + os.system('find -name *.pyc|xargs rm -rvf') + os.system('find -name *.mo|xargs rm -rvf') + for dirs in ('build', 'dist'): + if os.path.exists(dirs): + print ' removing: ', dirs + shutil.rmtree(dirs) + clean.run(self) + +if "update_messages" in sys.argv: + update_messages() + sys.exit(0) + +setup( + name = PROJECT, + version = about.version, + description = unicode(about.PACKAGE), + license = unicode('GPL'), + author = "Pisi Linux Developers", + author_email = about.bugEmail, + url = about.homePage, + packages = [''], + package_dir = {'': ''}, + data_files = [], + cmdclass = { + 'build': Build, + 'install': Install, + 'uninstall':Uninstall, + 'clean':Clean + } +) diff --git a/src/__init__.py b/src/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/service-manager.py b/src/service-manager.py new file mode 100644 index 0000000..24811e5 --- /dev/null +++ b/src/service-manager.py @@ -0,0 +1,84 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Copyright (C) 2008-2009, TUBITAK/UEKAE +# +# 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. +# +# Please read the COPYING file. +# + +# System +import sys +import dbus + +# Pds Stuff +import servicemanager.context as ctx + +# Application Stuff +import servicemanager.about as about + +# Qt Stuff +from PyQt5.QtCore import pyqtSignal + +# Enable plugin if session is Kde4 +if ctx.Pds.session == ctx.pds.Kde4: + def CreatePlugin(widget_parent, parent, component_data): + from servicemanager.kcmodule import ServiceManager + return ServiceManager(component_data, parent) + +if __name__ == '__main__': + + # DBUS MainLoop + if not dbus.get_default_main_loop(): + from dbus.mainloop.pyqt5 import DBusQtMainLoop + DBusQtMainLoop(set_as_default = True) + + # Pds vs KDE + if ctx.Pds.session == ctx.pds.Kde4: + + # PyKDE4 Stuff + from PyKDE4.kdeui import * + from PyKDE4.kdecore import * + + # Application Stuff + from servicemanager.standalone import ServiceManager + from servicemanager.about import aboutData + + # Set Command-line arguments + KCmdLineArgs.init(sys.argv, aboutData) + + # Create a Kapplitcation instance + app = KApplication() + + # Create Main Widget + mainWindow = ServiceManager(None, aboutData.appName) + mainWindow.show() + + else: + + # Application Stuff + from servicemanager.base import MainManager + + # Pds Stuff + from pds.quniqueapp import QUniqueApplication + from servicemanager.context import KIcon, i18n + + # Create a QUniqueApllication instance + app = QUniqueApplication(sys.argv, catalog=about.appName) + + # Create Main Widget and make some settings + mainWindow = MainManager(None) + mainWindow.show() + mainWindow.resize(640, 480) + mainWindow.setWindowTitle(i18n(about.PACKAGE)) + mainWindow.setWindowIcon(KIcon(about.icon)) + + # Create connection for lastWindowClosed signal to quit app + app.lastWindowClosed.connect(app.quit) + + # Run the applications + app.exec_() diff --git a/src/servicemanager/__init__.py b/src/servicemanager/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/servicemanager/about.py b/src/servicemanager/about.py new file mode 100644 index 0000000..0364c72 --- /dev/null +++ b/src/servicemanager/about.py @@ -0,0 +1,45 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Copyright (C) 2009-2010 TUBITAK/UEKAE +# +# 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. +# +# Please read the COPYING file. +# + +# PDS Stuff +import context as ctx + +# Application Data +PACKAGE = "Service Manager" +appName = "service-manager" +modName = "servicemanager" +version = "3.0.0" +homePage = "http://developer.pardus.org.tr/projects/service-manager" +bugEmail = "bugs@pardus.org.tr" +icon = "flag-yellow" +catalog = appName + +if ctx.Pds.session == ctx.pds.Kde4: + + # PyKDE4 Stuff + from PyKDE4.kdecore import KAboutData, ki18n, ki18nc + + programName = ki18n(PACKAGE) + description = ki18n(PACKAGE) + license = KAboutData.License_GPL + copyright = ki18n("(c) 2009-2010 TUBITAK/UEKAE") + text = ki18n(None) + aboutData = KAboutData(appName, catalog, programName, version, description, license, copyright, text, homePage, bugEmail) + + # Authors + aboutData.addAuthor(ki18n("Gökmen Göksel"), ki18n("Current Maintainer")) + aboutData.addAuthor(ki18n("Bahadır Kandemir"), ki18n("COMAR Author")) + aboutData.setTranslator(ki18nc("NAME OF TRANSLATORS", "Your names"), ki18nc("EMAIL OF TRANSLATORS", "Your emails")) + + # Use this if icon name is different than appName + aboutData.setProgramIconName(icon) diff --git a/src/servicemanager/backend.py b/src/servicemanager/backend.py new file mode 100644 index 0000000..0266665 --- /dev/null +++ b/src/servicemanager/backend.py @@ -0,0 +1,54 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Copyright (C) 2009, TUBITAK/UEKAE +# +# 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. +# +# Please read the COPYING file. +# + +import comar + +class ServiceIface: + """ Service Interface """ + + def __init__(self, handler): + self.link = comar.Link() + self.link.setLocale() + self.link.useAgent() + self.handler = handler + + def services(self, func=None): + if func: + self.link.System.Service.info( async=func ) + else: + return list(self.link.System.Service) + + def start(self, service): + self.link.System.Service[service].start( async=self.handler ) + + def stop(self, service): + self.link.System.Service[service].stop( async=self.handler ) + + def restart(self, service): + # some services does not have reload method in their service + # scripts, so it should be fixed in Comar itself. + def handler(package, exception, args): + if not exception: + self.link.System.Service[service].start(async=self.handler) + self.link.System.Service[service].stop(async=handler) + + def setEnable(self, service, state): + states = {True:'on', False:'off'} + self.link.System.Service[service].setState(states[state], async = self.handler) + + def info(self, service): + return self.link.System.Service[service].info() + + def listen(self, func): + self.link.listenSignals("System.Service", func) + diff --git a/src/servicemanager/base.py b/src/servicemanager/base.py new file mode 100644 index 0000000..65c73d5 --- /dev/null +++ b/src/servicemanager/base.py @@ -0,0 +1,168 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Copyright (C) 2009, TUBITAK/UEKAE +# +# 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. +# +# Please read the COPYING file. +# + +# System +import sys +import comar + +# Qt Stuff +from PyQt5 import QtWidgets +from PyQt5.QtWidgets import QMessageBox +from PyQt5.QtCore import * + +# Application Stuff +from servicemanager.backend import ServiceIface +from servicemanager.ui_main import Ui_mainManager +from servicemanager.widgets import ServiceItemWidget, ServiceItem + +# Pds vs KDE +import servicemanager.context as ctx +if ctx.Pds.session == ctx.pds.Kde5: + #from PyKDE4.kdecore import i18n + #pykde yok + pass +else: + from servicemanager.context import i18n + +class MainManager(QtWidgets.QWidget): + def __init__(self, parent, standAlone=True): + QtWidgets.QWidget.__init__(self, parent) + + # Create the ui + self.ui = Ui_mainManager() + + if standAlone: + self.ui.setupUi(self) + else: + self.ui.setupUi(parent) + + # Call Comar + self.iface = ServiceIface(self.exceptionHandler) + self.widgets = {} + + # Fill service list + self.services = self.iface.services() + self.services.sort() + for service in self.services: + item = ServiceItem(service, self.ui.listServices) + item.setFlags(Qt.NoItemFlags | Qt.ItemIsEnabled) + item.setSizeHint(QSize(38,48)) + self.widgets[service] = ServiceItemWidget(service, self, item) + self.ui.listServices.setItemWidget(item, self.widgets[service]) + self.infoCount = 0 + self.piece = 100/len(self.services) + + # Update service status and follow Comar for state changes + self.getServices() + + # search line, we may use model view for correct filtering + self.ui.lineSearch.textChanged[str].connect(self.doSearch) + self.ui.filterBox.currentIndexChanged[int].connect(self.filterServices) + + def hiddenListWorkaround(self): + """ + Workaround for hidden list items + """ + size = self.size() + size += QSize(1,1) + QTimer.singleShot(1, lambda: self.resize(size)) + size -= QSize(1,1) + QTimer.singleShot(5, lambda: self.resize(size)) + + def doSearch(self, text): + for service in self.services: + if service.find(text) >= 0 or unicode(self.widgets[service].desc).lower().find(unicode(text).lower()) >= 0: + self.widgets[service].item.setHidden(False) + else: + self.widgets[service].item.setHidden(True) + if text == '': + self.filterServices(self.ui.filterBox.currentIndex()) + + self.hiddenListWorkaround() + + def isLocal(self, service): + return self.widgets[service].type == 'local' + + def showFail(self, exception): + + exception = unicode(exception) + if exception.startswith('tr.org.pardus.comar.Comar.PolicyKit'): + errorTitle = i18n("Authentication Error") + errorMessage = i18n("You are not authorized for this operation.") + else: + errorTitle = i18n("Error") + errorMessage = i18n("An exception occurred.") + messageBox = QMessageBox(errorTitle, errorMessage, QMessageBox.Critical, QMessageBox.Ok, 0, 0) + + if not exception.startswith('tr.org.pardus.comar.Comar.PolicyKit'): + messageBox.setDetailedText(unicode(exception)) + + messageBox.exec_() + + def filterServices(self, filterBy): + Servers, SystemServices, StartupServices, RunningServices, AllServices = range(5) + for service in self.services: + if filterBy == Servers: + if not self.isLocal(service): + self.widgets[service].item.setHidden(False) + else: + self.widgets[service].item.setHidden(True) + elif filterBy == SystemServices: + if self.isLocal(service): + self.widgets[service].item.setHidden(False) + else: + self.widgets[service].item.setHidden(True) + elif filterBy == StartupServices: + if self.widgets[service].runningAtStart: + self.widgets[service].item.setHidden(False) + else: + self.widgets[service].item.setHidden(True) + elif filterBy == RunningServices: + if self.widgets[service].running: + self.widgets[service].item.setHidden(False) + else: + self.widgets[service].item.setHidden(True) + elif filterBy == AllServices: + self.widgets[service].item.setHidden(False) + + self.hiddenListWorkaround() + + def handleServices(self, package, exception, results): + # Handle request and fill the listServices in the ui + if not exception: + self.widgets[package].updateService(results, True) + self.infoCount += 1 + self.ui.progress.setValue(self.ui.progress.value() + self.piece) + if self.infoCount == len(self.services): + self.ui.progress.hide() + self.ui.listServices.setEnabled(True) + self.filterServices(self.ui.filterBox.currentIndex()) + self.doSearch(self.ui.lineSearch.text()) + + def getServices(self): + self.iface.services(self.handleServices) + self.iface.listen(self.handler) + + def handler(self, package, signal, args): + # print "COMAR :", args, signal, package + self.widgets[package].setState(args[1]) + self.filterServices(self.ui.filterBox.currentIndex()) + self.doSearch(self.ui.lineSearch.text()) + + def exceptionHandler(self, package, exception, args): + if exception: + if package in self.widgets: + self.widgets[package].showStatus() + self.widgets[package].switchToOld() + self.showFail(exception) + diff --git a/src/servicemanager/context.py b/src/servicemanager/context.py new file mode 100644 index 0000000..b0adc55 --- /dev/null +++ b/src/servicemanager/context.py @@ -0,0 +1,29 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +import pds +import traceback +from time import time +from pds.qiconloader import QIconLoader + +Pds = pds.Pds('service-manager', debug = False) +# Force to use Default Session for testing +# Pds.session = pds.DefaultDe +# print 'Current session is : %s %s' % (Pds.session.Name, Pds.session.Version) + +i18n = Pds.i18n +KIconLoader = QIconLoader(Pds, forceCache=True) +KIcon = KIconLoader.icon + +time_counter = 0 +start_time = time() +last_time = time() + +def _time(): + global last_time, time_counter + trace = list(traceback.extract_stack()) + diff = time() - start_time + print ('%s ::: %s:%s' % (time_counter, trace[-2][0].split('/')[-1], trace[-2][1])), diff, diff - last_time + last_time = diff + time_counter += 1 + diff --git a/src/servicemanager/kcmodule.py b/src/servicemanager/kcmodule.py new file mode 100644 index 0000000..3d9c4e8 --- /dev/null +++ b/src/servicemanager/kcmodule.py @@ -0,0 +1,36 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Copyright (C) 2009, TUBITAK/UEKAE +# +# 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. +# +# Please read the COPYING file. +# + +# PyKDE4 Stuff +from PyKDE4.kdeui import * +from PyKDE4.kdecore import * + +# DBUS +import dbus + +# Service Manager +from servicemanager.base import MainManager + +class ServiceManager(KCModule): + def __init__(self, component_data, parent): + KCModule.__init__(self, component_data, parent) + + # This is very important for translations when running as kcm_module + KGlobal.locale().insertCatalog("service-manager") + + if not dbus.get_default_main_loop(): + from dbus.mainloop.qt import DBusQtMainLoop + DBusQtMainLoop(set_as_default = True) + + MainManager(self, standAlone = False) + diff --git a/src/servicemanager/standalone.py b/src/servicemanager/standalone.py new file mode 100644 index 0000000..280feed --- /dev/null +++ b/src/servicemanager/standalone.py @@ -0,0 +1,31 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Copyright (C) 2009, TUBITAK/UEKAE +# +# 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. +# +# Please read the COPYING file. +# + +# PyKDE4 Stuff +from PyKDE4.kdeui import * +from PyKDE4.kdecore import KGlobal + +# Service Manager +from servicemanager.base import MainManager + +class ServiceManager(KMainWindow): + def __init__ (self, *args): + KMainWindow.__init__(self) + self.setWindowIcon(KIcon("flag-yellow")) + + # This is very important for translations when running as kcm_module + KGlobal.locale().insertCatalog("service-manager") + + self.resize (640, 480) + self.setCentralWidget(MainManager(self)) + diff --git a/src/servicemanager/widgets.py b/src/servicemanager/widgets.py new file mode 100644 index 0000000..78d415e --- /dev/null +++ b/src/servicemanager/widgets.py @@ -0,0 +1,206 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# +# Copyright (C) 2009, TUBITAK/UEKAE +# +# 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. +# +# Please read the COPYING file. +# + +# Qt Stuff +from PyQt5 import QtWidgets +from PyQt5.QtCore import * + +# Pds vs KDE +import servicemanager.context as ctx +if ctx.Pds.session == ctx.pds.Kde4: + from PyKDE4.kdeui import KIcon + from PyKDE4.kdecore import i18n +else: + from servicemanager.context import KIcon, i18n + +# Application Stuff +from servicemanager.ui_item import Ui_ServiceItemWidget +from servicemanager.ui_info import Ui_InfoWidget + +# PDS Stuff +from pds.gui import * +from pds.qprogressindicator import QProgressIndicator + +# Python Stuff +import time +import textwrap +import locale + +# Pisi Stuff +import pisi + +class ServiceItem(QtWidgets.QListWidgetItem): + + def __init__(self, package, parent): + QtWidgets.QListWidgetItem.__init__(self, parent) + + self.package = package + +class ServiceItemWidget(QtWidgets.QWidget): + + def __init__(self, package, parent, item): + QtWidgets.QWidget.__init__(self, None) + + self.ui = Ui_ServiceItemWidget() + self.ui.setupUi(self) + + self.busy = QProgressIndicator(self) + self.busy.setMinimumSize(QtCore.QSize(32, 32)) + self.ui.mainLayout.insertWidget(0, self.busy) + self.ui.spacer.hide() + self.busy.hide() + + self.ui.labelName.setText(package) + + self.toggleButtons() + + self.ui.buttonStart.setIcon(KIcon("media-playback-start")) + self.ui.buttonStop.setIcon(KIcon("media-playback-stop")) + self.ui.buttonReload.setIcon(KIcon("view-refresh")) + self.ui.buttonInfo.setIcon(KIcon("dialog-information")) + + self.toggled = False + self.root = parent + self.iface = parent.iface + self.item = item + self.package = package + self.info = ServiceItemInfo(self) + + self.type = None + self.desc = None + self.ui.buttonStart.clicked.connect(self.setService) + self.ui.buttonStop.clicked.connect(self.setService) + self.ui.buttonReload.clicked.connect(self.setService) + self.ui.checkStart.clicked.connect(self.setService) + self.ui.buttonInfo.clicked.connect(self.info.showDescription) + + def updateService(self, data, firstRun): + self.type, self.desc, serviceState = data + self.setState(serviceState, firstRun) + self.ui.labelDesc.setText(self.desc) + + def setState(self, state, firstRun=False): + if not firstRun: + # There is a raise condition, FIXME in System.Service + time.sleep(1) + state = self.iface.info(self.package)[2] + if state in ('on', 'started', 'conditional_started'): + self.running = True + icon = 'flag-green' + else: + self.running = False + icon = 'flag-black' + + self.ui.buttonStop.setEnabled(self.running) + self.ui.buttonReload.setEnabled(self.running) + + self.ui.labelStatus.setPixmap(KIcon(icon).pixmap(32, 32)) + self.showStatus() + self.runningAtStart = False + if state in ('on', 'stopped'): + self.runningAtStart = True + elif state in ('off', 'started', 'conditional_started'): + self.runningAtStart = False + self.ui.checkStart.setChecked(self.runningAtStart) + self._last_state = self.ui.checkStart.isChecked() + # print self.package, state + + def setService(self): + try: + self.showBusy() + self._last_state = not self.ui.checkStart.isChecked() + if self.sender() == self.ui.buttonStart: + self.iface.start(self.package) + elif self.sender() == self.ui.buttonStop: + self.iface.stop(self.package) + elif self.sender() == self.ui.buttonReload: + self.iface.restart(self.package) + elif self.sender() == self.ui.checkStart: + self.iface.setEnable(self.package, self.ui.checkStart.isChecked()) + except Exception, msg: + self.showStatus() + self.root.showFail(msg) + + def switchToOld(self): + self.ui.checkStart.setChecked(self._last_state) + + def showStatus(self): + self.busy.hide() + self.ui.spacer.hide() + self.ui.labelStatus.show() + + def showBusy(self): + self.busy.busy() + self.ui.spacer.show() + self.ui.labelStatus.hide() + + def enterEvent(self, event): + if not self.toggled: + self.toggleButtons(True) + self.toggled = True + + def leaveEvent(self, event): + if self.toggled: + self.toggleButtons() + self.toggled = False + + def toggleButtons(self, toggle=False): + self.ui.buttonStart.setVisible(toggle) + self.ui.buttonReload.setVisible(toggle) + self.ui.buttonStop.setVisible(toggle) + self.ui.buttonInfo.setVisible(toggle) + self.ui.checkStart.setVisible(toggle) + +def getDescription(service): + try: + # TODO add a package map for known services + service = service.replace('_','-') + lang = str(locale.getdefaultlocale()[0].split("_")[0]) + desc = pisi.api.info_name(service)[0].package.description + if desc.has_key(lang): + return unicode(desc[lang]) + return unicode(desc['en']) + except Exception, msg: + # print "ERROR:", msg + return unicode(i18n('Service information is not available')) + +class ServiceItemInfo(PAbstractBox): + + def __init__(self, parent): + PAbstractBox.__init__(self, parent) + + self.ui = Ui_InfoWidget() + self.ui.setupUi(self) + self.ui.buttonHide.clicked.connect(self.hideDescription) + self.ui.buttonHide.setIcon(KIcon("dialog-close")) + + self._animation = 2 + self._duration = 500 + + self.enableOverlay() + self.hide() + + def showDescription(self): + self.resize(self.parentWidget().size()) + desc = getDescription(self.parentWidget().package) + self.ui.description.setText(desc) + self.ui.description.setToolTip('\n'.join(textwrap.wrap(desc))) + self.animate(start = MIDLEFT, stop = MIDCENTER) + QtWidgets.qApp.processEvents() + + def hideDescription(self): + if self.isVisible(): + self.animate(start = MIDCENTER, + stop = MIDRIGHT, + direction = OUT) + diff --git a/ui/info.ui b/ui/info.ui new file mode 100644 index 0000000..078d16e --- /dev/null +++ b/ui/info.ui @@ -0,0 +1,77 @@ + + + InfoWidget + + + + 0 + 0 + 341 + 48 + + + + + 0 + 48 + + + + Form + + + + 8 + + + 8 + + + + + + 0 + 0 + + + + QLabel#description { color:white; } + + + Service information is not available + + + true + + + + + + + + 0 + 0 + + + + + 36 + 16777215 + + + + Hide Information + + + + + + true + + + + + + + + diff --git a/ui/item.ui b/ui/item.ui new file mode 100644 index 0000000..6c20d29 --- /dev/null +++ b/ui/item.ui @@ -0,0 +1,246 @@ + + + ServiceItemWidget + + + + 0 + 0 + 632 + 48 + + + + + 0 + 48 + + + + Form + + + + 0 + + + + + + 4 + 0 + + + + + 4 + 16777215 + + + + + + + + + 0 + 0 + + + + + 36 + 0 + + + + + + + icons/stopped.png + + + + + + + 0 + + + QLayout::SetNoConstraint + + + 0 + + + + + + 12 + 50 + false + + + + serviceName + + + + + + + + 8 + + + + color:gray; + + + serviceDesc + + + + + + + + + Qt::Horizontal + + + + 308 + 20 + + + + + + + + + + + 0 + 0 + + + + + 36 + 16777215 + + + + Start service + + + + + + + :/data/start.png:/data/start.png + + + true + + + + + + + + 0 + 0 + + + + + 36 + 16777215 + + + + Reload service + + + + + + + :/data/reload.png:/data/reload.png + + + true + + + + + + + Run on start + + + + + + + + 0 + 0 + + + + + 36 + 16777215 + + + + Stop service + + + + + + + :/data/stop.png:/data/stop.png + + + true + + + + + + + + 0 + 0 + + + + + 36 + 16777215 + + + + More Information + + + + + + true + + + + + + + + + + diff --git a/ui/main.ui b/ui/main.ui new file mode 100644 index 0000000..b2de08c --- /dev/null +++ b/ui/main.ui @@ -0,0 +1,105 @@ + + + mainManager + + + + 0 + 0 + 480 + 379 + + + + Form + + + + + + + + type service name to search... + + + + + + + + Servers + + + + + System Services + + + + + Startup Services + + + + + Running Services + + + + + All Services + + + + + + + + + + false + + + + 50 + false + + + + + + + QAbstractItemView::NoEditTriggers + + + true + + + + 32 + 32 + + + + QAbstractItemView::ScrollPerItem + + + + + + + 0 + + + true + + + Getting service info... %p% + + + + + + + +