summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
l---------TRANSLATORS1
-rwxr-xr-xcreatepot.sh1
-rw-r--r--doc/NEWS6
-rw-r--r--doc/TRANSLATORS1
-rw-r--r--i18n/de.po758
-rw-r--r--i18n/it.po1164
-rw-r--r--i18n/messages.pot556
-rw-r--r--i18n/tr.po797
-rw-r--r--icons/better-package.svg146
-rw-r--r--plugins/etc_proposals.py2
-rw-r--r--plugins/exception.py2
-rw-r--r--plugins/gpytage.py2
-rw-r--r--plugins/new_version.py2
-rw-r--r--plugins/notify.py2
-rw-r--r--plugins/package_details.py2
-rw-r--r--plugins/reload_portage.py4
-rwxr-xr-xportato.py2
-rw-r--r--portato/__init__.py2
-rw-r--r--portato/backend/__init__.py2
-rw-r--r--portato/backend/exceptions.py2
-rw-r--r--portato/backend/flags.py2
-rw-r--r--portato/backend/package.py2
-rw-r--r--portato/backend/portage/__init__.py2
-rw-r--r--portato/backend/portage/package.py2
-rw-r--r--portato/backend/portage/package_22.py2
-rw-r--r--portato/backend/portage/sets.py4
-rw-r--r--portato/backend/portage/settings.py2
-rw-r--r--portato/backend/portage/settings_22.py2
-rw-r--r--portato/backend/portage/system.py4
-rw-r--r--portato/backend/portage/system_22.py2
-rw-r--r--portato/backend/system_interface.py2
-rw-r--r--portato/config_parser.py2
-rw-r--r--portato/constants.py2
-rw-r--r--portato/db/__init__.py98
-rw-r--r--portato/db/database.py37
-rw-r--r--portato/db/eix_sql.py9
-rw-r--r--portato/db/exceptions.py24
-rw-r--r--portato/db/hash.py5
-rw-r--r--portato/db/sql.py32
-rw-r--r--portato/dependency.py2
-rw-r--r--portato/eix/__init__.py2
-rw-r--r--portato/eix/exceptions.py2
-rw-r--r--portato/eix/parser.pyx6
-rw-r--r--portato/eix/py_parser.py2
-rw-r--r--portato/gui/__init__.py2
-rw-r--r--portato/gui/dialogs.py22
-rw-r--r--portato/gui/exception_handling.py6
-rw-r--r--portato/gui/exceptions.py2
-rw-r--r--portato/gui/queue.py2
-rw-r--r--portato/gui/session.py2
-rw-r--r--portato/gui/slots.py2
-rw-r--r--portato/gui/templates/AboutWindow.ui8
-rw-r--r--portato/gui/templates/MailInfoWindow.ui38
-rw-r--r--portato/gui/templates/MainWindow.menu7
-rw-r--r--portato/gui/templates/MainWindow.ui18
-rw-r--r--portato/gui/templates/PreferenceWindow.ui2
-rw-r--r--portato/gui/updater.py2
-rw-r--r--portato/gui/utils.py2
-rw-r--r--portato/gui/views.py2
-rw-r--r--portato/gui/windows/__init__.py2
-rw-r--r--portato/gui/windows/about.py15
-rw-r--r--portato/gui/windows/basic.py5
-rw-r--r--portato/gui/windows/mailinfo.py139
-rw-r--r--portato/gui/windows/main.py86
-rw-r--r--portato/gui/windows/pkglist.py2
-rw-r--r--portato/gui/windows/plugin.py2
-rw-r--r--portato/gui/windows/preference.py2
-rw-r--r--portato/gui/windows/search.py2
-rw-r--r--portato/gui/windows/splash.py2
-rw-r--r--portato/helper.py2
-rw-r--r--portato/ipc.pxd2
-rw-r--r--portato/ipc.pyx2
-rw-r--r--portato/listener.py2
-rw-r--r--portato/log.py12
-rw-r--r--portato/plugin.py2
-rw-r--r--portato/plugins/__init__.py2
-rw-r--r--portato/session.py134
-rw-r--r--portato/su.py2
-rw-r--r--portato/waiting_queue.py2
-rw-r--r--setup.py34
80 files changed, 3081 insertions, 1192 deletions
diff --git a/TRANSLATORS b/TRANSLATORS
new file mode 120000
index 0000000..d2e7d0b
--- /dev/null
+++ b/TRANSLATORS
@@ -0,0 +1 @@
+doc/TRANSLATORS \ No newline at end of file
diff --git a/createpot.sh b/createpot.sh
index dae69f9..ce921b8 100755
--- a/createpot.sh
+++ b/createpot.sh
@@ -4,5 +4,6 @@
# Thanks to porthole for inspiration ;)
xgettext -k_ -kN_ -L glade -o i18n/messages.pot $(find -name "*.ui")
+xgettext -k_ -kN_ -j -L glade -o i18n/messages.pot $(find -name "*.menu")
xgettext -k_ -kN_ -j --from-code=UTF-8 -o i18n/messages.pot $(find -name "*.py")
diff --git a/doc/NEWS b/doc/NEWS
index a5d3186..63ca566 100644
--- a/doc/NEWS
+++ b/doc/NEWS
@@ -1,8 +1,12 @@
-next:
+0.14:
- allow eix as backend DB
- use an internal messagequeue module instead of external shm
- show the list of world packages
+- allow to search descriptions
+- add an icon to signal the 'best' version for a package
+- added Italian translation (thx to Ponsi)
+- fix bugmail sending
0.13.1:
- fix segfault in GLib
diff --git a/doc/TRANSLATORS b/doc/TRANSLATORS
index e71914e..51b5110 100644
--- a/doc/TRANSLATORS
+++ b/doc/TRANSLATORS
@@ -1,5 +1,6 @@
Catalan: Roger Calvó
German: René 'Necoro' Neumann
+Italian: Ponsi
Polish: Tomasz Osiński
Portugese (Brazilian): Alberto Federman Neto
Spanish: Daniel Halens
diff --git a/i18n/de.po b/i18n/de.po
index 0a15bde..e8bb892 100644
--- a/i18n/de.po
+++ b/i18n/de.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Portato\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-08-31 22:04+0200\n"
-"PO-Revision-Date: 2009-08-31 22:05+0100\n"
+"POT-Creation-Date: 2010-04-09 23:55+0200\n"
+"PO-Revision-Date: 2010-04-10 00:06+0100\n"
"Last-Translator: René 'Necoro' Neumann <necoro@necoro.net>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
@@ -13,111 +13,112 @@ msgstr ""
"X-Poedit-Country: GERMANY\n"
"X-Poedit-SourceCharset: utf-8\n"
-#: portato/gui/templates/UpdateWindow.ui:6
-msgid "Updatable Packages"
-msgstr "Pakete mit Updates"
-
-#: portato/gui/templates/UpdateWindow.ui:48
+#: portato/gui/templates/PkgListWindow.ui:48
msgid "_Close"
msgstr "_Schließen"
-#: portato/gui/templates/UpdateWindow.ui:59
+#: portato/gui/templates/PkgListWindow.ui:64
+#: portato/gui/windows/pkglist.py:35
msgid "Select _All"
msgstr "_Alles auswählen"
-#: portato/gui/templates/UpdateWindow.ui:73
+#: portato/gui/templates/PkgListWindow.ui:80
msgid "_Install Selected"
msgstr "_Installiere ausgewählte"
+#: portato/gui/templates/PkgListWindow.ui:96
+msgid "_Uninstall Selected"
+msgstr "_Deinstalliere ausgewählte"
+
#: portato/gui/templates/PreferenceWindow.ui:12
msgid "Preferences"
msgstr "Einstellungen"
-#: portato/gui/templates/PreferenceWindow.ui:48
+#: portato/gui/templates/PreferenceWindow.ui:51
msgid "Debug"
msgstr "Debug"
-#: portato/gui/templates/PreferenceWindow.ui:61
+#: portato/gui/templates/PreferenceWindow.ui:64
msgid "Search while typing"
msgstr "Suche während des Tippens"
-#: portato/gui/templates/PreferenceWindow.ui:81
+#: portato/gui/templates/PreferenceWindow.ui:84
msgid "Browser command: "
msgstr "Browser-Befehl: "
-#: portato/gui/templates/PreferenceWindow.ui:108
-#: portato/gui/templates/PreferenceWindow.ui:717
+#: portato/gui/templates/PreferenceWindow.ui:111
+#: portato/gui/templates/PreferenceWindow.ui:725
msgid "<b>General Options</b>"
msgstr "<b>Allgemeine Optionen</b>"
-#: portato/gui/templates/PreferenceWindow.ui:142
+#: portato/gui/templates/PreferenceWindow.ui:146
msgid "Used database type"
msgstr "Benutzter Datenbank-Typ"
-#: portato/gui/templates/PreferenceWindow.ui:178
-#: portato/gui/templates/PluginWindow.ui:93
-#: portato/gui/templates/PluginWindow.ui:118
-#: portato/gui/templates/MainWindow.ui:369
-#: portato/gui/templates/MainWindow.ui:485
-#: portato/gui/templates/MainWindow.ui:598
-#: portato/gui/templates/MainWindow.ui:613
+#: portato/gui/templates/PreferenceWindow.ui:182
+#: portato/gui/templates/PluginWindow.ui:97
+#: portato/gui/templates/PluginWindow.ui:122
+#: portato/gui/templates/MainWindow.ui:190
+#: portato/gui/templates/MainWindow.ui:304
+#: portato/gui/templates/MainWindow.ui:417
+#: portato/gui/templates/MainWindow.ui:432
msgid "label"
msgstr ""
-#: portato/gui/templates/PreferenceWindow.ui:188
+#: portato/gui/templates/PreferenceWindow.ui:192
msgid "<b>Description</b>"
msgstr "<b>Beschreibung</b>"
-#: portato/gui/templates/PreferenceWindow.ui:204
+#: portato/gui/templates/PreferenceWindow.ui:208
msgid "<b>Database Options</b>"
msgstr "<b>Datenbankoptionen</b>"
-#: portato/gui/templates/PreferenceWindow.ui:226
-#: portato/gui/templates/MainWindow.ui:754
+#: portato/gui/templates/PreferenceWindow.ui:230
+#: portato/gui/templates/MainWindow.ui:582
msgid "General"
msgstr "Allgemein"
-#: portato/gui/templates/PreferenceWindow.ui:308
+#: portato/gui/templates/PreferenceWindow.ui:314
msgid "<b>Package sets to update</b>"
msgstr "<b>Paket-Sets für \"Update\"</b>"
-#: portato/gui/templates/PreferenceWindow.ui:324
+#: portato/gui/templates/PreferenceWindow.ui:330
msgid "<b>Update World Options</b>"
msgstr "<b>Optionen für \"update world\"</b>"
-#: portato/gui/templates/PreferenceWindow.ui:350
+#: portato/gui/templates/PreferenceWindow.ui:356
msgid "Sync command: "
msgstr "Sync-Befehl: "
-#: portato/gui/templates/PreferenceWindow.ui:372
+#: portato/gui/templates/PreferenceWindow.ui:378
msgid "<b>Sync Options</b>"
msgstr "<b>Syncoptionen</b>"
-#: portato/gui/templates/PreferenceWindow.ui:413
+#: portato/gui/templates/PreferenceWindow.ui:419
msgid "File name to use, if package.use is a directory: "
msgstr "Zu benutzender Dateiname, wenn package.use ein Verzeichnis ist:"
-#: portato/gui/templates/PreferenceWindow.ui:423
+#: portato/gui/templates/PreferenceWindow.ui:429
msgid "Add only exact version to package.use"
msgstr "Füge nur die exakte Paketversion zu package.keywords hinzu"
-#: portato/gui/templates/PreferenceWindow.ui:437
+#: portato/gui/templates/PreferenceWindow.ui:443
msgid "Add only exact version to package.keywords"
msgstr "Füge nur die exakte Paketversion zu package.keywords hinzu"
-#: portato/gui/templates/PreferenceWindow.ui:453
+#: portato/gui/templates/PreferenceWindow.ui:459
msgid "File name to use, if package.keywords is a directory: "
msgstr "Zu benutzender Dateiname, wenn package.keywords ein Verzeichnis ist:"
-#: portato/gui/templates/PreferenceWindow.ui:487
+#: portato/gui/templates/PreferenceWindow.ui:493
msgid "File name to use, if package.mask/package.unmask is a directory: "
msgstr "Zu benutzender Dateiname, wenn package.mask/package.unmask ein Verzeichnis ist:"
-#: portato/gui/templates/PreferenceWindow.ui:497
+#: portato/gui/templates/PreferenceWindow.ui:503
msgid "Add only exact version to package.mask/package.unmask"
msgstr "Füge nur die exakte Paketversion zu package.mask/package.unmask hinzu"
-#: portato/gui/templates/PreferenceWindow.ui:521
+#: portato/gui/templates/PreferenceWindow.ui:527
msgid ""
"<u>You may use the following placeholders:</u>\n"
"\n"
@@ -132,145 +133,145 @@ msgstr ""
"<i>$(cat)</i>: Kategorie\n"
"<i>$(cat-1)/$(cat-2)</i>: erster/zweiter Teil der Kategorie<i>$(version)</i>: Paketversion"
-#: portato/gui/templates/PreferenceWindow.ui:545
+#: portato/gui/templates/PreferenceWindow.ui:551
msgid "<u><i>Use-Flags</i></u>"
msgstr "<u><i>Use-Flags</i></u>"
-#: portato/gui/templates/PreferenceWindow.ui:560
+#: portato/gui/templates/PreferenceWindow.ui:566
msgid "<u><i>Testing Keywords</i></u>"
msgstr "<u><i>Testing Keywords</i></u>"
-#: portato/gui/templates/PreferenceWindow.ui:575
+#: portato/gui/templates/PreferenceWindow.ui:581
msgid "<u><i>Masking Keywords</i></u>"
msgstr "<u><i>Masking Keywords</i></u>"
-#: portato/gui/templates/PreferenceWindow.ui:601
+#: portato/gui/templates/PreferenceWindow.ui:607
msgid "<b>Use Flag and Keyword Options</b>"
msgstr "<b>Use-Flag- und Keyword-Optionen</b>"
-#: portato/gui/templates/PreferenceWindow.ui:619
+#: portato/gui/templates/PreferenceWindow.ui:625
msgid "Portage"
msgstr "Portage"
-#: portato/gui/templates/PreferenceWindow.ui:655
+#: portato/gui/templates/PreferenceWindow.ui:663
msgid "Enable systray"
msgstr "Aktiviere Systray"
-#: portato/gui/templates/PreferenceWindow.ui:669
+#: portato/gui/templates/PreferenceWindow.ui:677
msgid "Show emerge progress in window title"
msgstr "Zeige den Emerge Prozess im Fenstertitel"
-#: portato/gui/templates/PreferenceWindow.ui:683
+#: portato/gui/templates/PreferenceWindow.ui:691
msgid "Show emerge progress in console title"
msgstr "Zeige den Emerge Prozess im Konsolentitel"
-#: portato/gui/templates/PreferenceWindow.ui:697
+#: portato/gui/templates/PreferenceWindow.ui:705
msgid "Hide on minimization (only if systray is enabled)"
msgstr "Minimiere zu Systray"
-#: portato/gui/templates/PreferenceWindow.ui:755
+#: portato/gui/templates/PreferenceWindow.ui:764
msgid "Package Tabs"
msgstr "Pakettabs"
-#: portato/gui/templates/PreferenceWindow.ui:785
+#: portato/gui/templates/PreferenceWindow.ui:793
msgid "System Tabs"
msgstr "Systemtabs"
-#: portato/gui/templates/PreferenceWindow.ui:813
+#: portato/gui/templates/PreferenceWindow.ui:821
msgid "<b>Tab Options</b>"
msgstr "<b>Tab Optionen</b>"
-#: portato/gui/templates/PreferenceWindow.ui:841
+#: portato/gui/templates/PreferenceWindow.ui:850
msgid "Show slots in the version list"
msgstr "Zeige die Slots in der Versionsliste"
-#: portato/gui/templates/PreferenceWindow.ui:854
+#: portato/gui/templates/PreferenceWindow.ui:863
msgid "Collapse categories with same prefix"
msgstr "Fasse Kategorien mit gleichem Präfix zusammen"
-#: portato/gui/templates/PreferenceWindow.ui:875
+#: portato/gui/templates/PreferenceWindow.ui:884
msgid "<b>Package Options</b>"
msgstr "<b>Paketoptionen</b>"
-#: portato/gui/templates/PreferenceWindow.ui:911
+#: portato/gui/templates/PreferenceWindow.ui:921
msgid "Console Font"
msgstr "Schriftart in Konsole"
-#: portato/gui/templates/PreferenceWindow.ui:924
+#: portato/gui/templates/PreferenceWindow.ui:934
msgid "Chose a console font"
msgstr "Wähle eine Schriftart"
-#: portato/gui/templates/PreferenceWindow.ui:945
+#: portato/gui/templates/PreferenceWindow.ui:955
msgid "Maximum length of the console title"
msgstr "Maximale Länge des Konsolentitels"
-#: portato/gui/templates/PreferenceWindow.ui:978
+#: portato/gui/templates/PreferenceWindow.ui:988
msgid "<b>Console Options</b>"
msgstr "<b>Konsolenoptionen</b>"
-#: portato/gui/templates/PreferenceWindow.ui:1015
+#: portato/gui/templates/PreferenceWindow.ui:1026
msgid "Package Detail Background"
msgstr "Hintergrund der Paketbeschreibung"
-#: portato/gui/templates/PreferenceWindow.ui:1049
+#: portato/gui/templates/PreferenceWindow.ui:1060
msgid "Flag Placeholder Description Background"
msgstr "Hintergrund der Flag-Platzhalter-Beschreibung"
-#: portato/gui/templates/PreferenceWindow.ui:1080
+#: portato/gui/templates/PreferenceWindow.ui:1091
msgid "<b>Color Options</b>"
msgstr "<b>Farboptionen</b>"
-#: portato/gui/templates/PreferenceWindow.ui:1101
+#: portato/gui/templates/PreferenceWindow.ui:1112
msgid "Visual"
msgstr "Oberfläche"
-#: portato/gui/templates/PluginWindow.ui:7
+#: portato/gui/templates/PluginWindow.ui:8
msgid "Plugins"
msgstr "Plugins"
-#: portato/gui/templates/PluginWindow.ui:51
+#: portato/gui/templates/PluginWindow.ui:53
msgid "_Install dependencies"
msgstr "_Installiere Abhängigkeiten"
-#: portato/gui/templates/PluginWindow.ui:79
+#: portato/gui/templates/PluginWindow.ui:83
msgid "Needed dependencies"
msgstr "Abhängigkeiten"
-#: portato/gui/templates/PluginWindow.ui:104
+#: portato/gui/templates/PluginWindow.ui:108
msgid "<b>Author:</b>"
msgstr "<b>Autor:</b>"
-#: portato/gui/templates/PluginWindow.ui:139
-#: portato/gui/windows/update.py:47
-#: portato/gui/windows/main.py:825
+#: portato/gui/templates/PluginWindow.ui:141
+#: portato/gui/windows/pkglist.py:59
+#: portato/gui/windows/main.py:843
#: portato/gui/windows/plugin.py:27
msgid "Enabled"
msgstr "Aktiviert"
-#: portato/gui/templates/PluginWindow.ui:148
+#: portato/gui/templates/PluginWindow.ui:157
#: portato/gui/windows/plugin.py:27
msgid "Temporarily enabled"
msgstr "Aktiviert (temporär)"
-#: portato/gui/templates/PluginWindow.ui:159
+#: portato/gui/templates/PluginWindow.ui:172
#: portato/gui/windows/plugin.py:27
msgid "Temporarily disabled"
msgstr "Deaktiviert (temporär)"
-#: portato/gui/templates/PluginWindow.ui:171
+#: portato/gui/templates/PluginWindow.ui:188
#: portato/gui/windows/plugin.py:27
msgid "Disabled"
msgstr "Deaktiviert"
-#: portato/gui/templates/AboutWindow.ui:7
+#: portato/gui/templates/AboutWindow.ui:8
msgid "About Portato"
msgstr "Portato"
-#: portato/gui/templates/MailInfoWindow.ui:5
+#: portato/gui/templates/MailInfoWindow.ui:6
msgid "Send Bug Mail ..."
msgstr "Sende Bug-Email ..."
-#: portato/gui/templates/MailInfoWindow.ui:30
+#: portato/gui/templates/MailInfoWindow.ui:29
msgid ""
"<b><u>Additional Information</u></b>\n"
"\n"
@@ -280,15 +281,15 @@ msgstr ""
"\n"
"(alle optional)"
-#: portato/gui/templates/MailInfoWindow.ui:74
+#: portato/gui/templates/MailInfoWindow.ui:73
msgid "Email address:"
msgstr "Email-Adresse:"
-#: portato/gui/templates/MailInfoWindow.ui:89
+#: portato/gui/templates/MailInfoWindow.ui:88
msgid "Name:"
msgstr "Name:"
-#: portato/gui/templates/MailInfoWindow.ui:104
+#: portato/gui/templates/MailInfoWindow.ui:103
msgid ""
"Comments /\n"
"what did you do to hit the bug?"
@@ -296,201 +297,201 @@ msgstr ""
"Kommentare /\n"
"Vorgehensweise um den Bug zu erzeugen?"
-#: portato/gui/templates/MailInfoWindow.ui:141
-msgid "Attaches the logfile to the mail. This log only contains debug information."
-msgstr "Hängt die Logdatei an die Mail an. In der Datei sind nur Debug-Informationen enthalten."
-
-#: portato/gui/templates/MailInfoWindow.ui:142
-msgid "Attach _Logfile"
-msgstr "Hänge _Logdatei an"
+#: portato/gui/templates/MailInfoWindow.ui:160
+msgid "These files will be sent:"
+msgstr "Die folgenden Dateien werden geschickt:"
-#: portato/gui/templates/MailInfoWindow.ui:194
+#: portato/gui/templates/MailInfoWindow.ui:220
msgid "_Send"
msgstr "_Send"
-#: portato/gui/templates/SearchWindow.ui:7
+#: portato/gui/templates/SearchWindow.ui:8
msgid "Search Results"
msgstr "Ergebnisse"
-#: portato/gui/templates/MainWindow.ui:10
-msgid "Plu_gins"
-msgstr "Plu_gins"
-
-#: portato/gui/templates/MainWindow.ui:20
-msgid "_File"
-msgstr "_Datei"
-
-#: portato/gui/templates/MainWindow.ui:27
-msgid "_Preferences"
-msgstr "_Einstellungen"
-
-#: portato/gui/templates/MainWindow.ui:36
-msgid "Re_load Portage"
-msgstr "Aktua_lisiere Portage-Cache"
-
-#: portato/gui/templates/MainWindow.ui:52
-msgid "_Emerge"
-msgstr "_Emerge"
-
-#: portato/gui/templates/MainWindow.ui:59
-msgid "_Install"
-msgstr "_Installieren"
-
-#: portato/gui/templates/MainWindow.ui:68
-msgid "_Uninstall"
-msgstr "_Deinstallieren"
-
-#: portato/gui/templates/MainWindow.ui:76
-#: portato/gui/templates/MainWindow.ui:847
-msgid "Update _World"
-msgstr "Update _World"
-
-#: portato/gui/templates/MainWindow.ui:83
-msgid "Show Updatable P_ackages"
-msgstr "Zeige Pakete mit _Updates"
-
-#: portato/gui/templates/MainWindow.ui:90
-msgid "Show _Only Installed Packages"
-msgstr "_Zeige nur installierte Pakete"
-
-#: portato/gui/templates/MainWindow.ui:99
-msgid "_Sync"
-msgstr "_Sync"
-
-#: portato/gui/templates/MainWindow.ui:108
-msgid "Save _Flags"
-msgstr "Speichere _Flags"
-
-#: portato/gui/templates/MainWindow.ui:115
-msgid "Emerge _Paused"
-msgstr "Emerge _angehalten"
-
-#: portato/gui/templates/MainWindow.ui:124
-msgid "_Kill Emerge"
-msgstr "_Kill Emerge"
-
-#: portato/gui/templates/MainWindow.ui:133
-msgid "_Copy"
-msgstr "_Kopieren"
-
-#: portato/gui/templates/MainWindow.ui:140
-msgid "_?"
-msgstr "_?"
-
-#: portato/gui/templates/MainWindow.ui:147
-msgid "_About"
-msgstr "_Über"
-
-#: portato/gui/templates/MainWindow.ui:155
-msgid "_Plugins"
-msgstr "_Plugins"
-
-#: portato/gui/templates/MainWindow.ui:380
+#: portato/gui/templates/MainWindow.ui:204
msgid "Install onto system"
msgstr "Füge zum System hinzu"
-#: portato/gui/templates/MainWindow.ui:402
+#: portato/gui/templates/MainWindow.ui:226
msgid "Uninstall from system"
msgstr "Lösche vom System"
-#: portato/gui/templates/MainWindow.ui:424
+#: portato/gui/templates/MainWindow.ui:248
msgid "Revert changes"
msgstr "Änderungen rückgängig machen"
-#: portato/gui/templates/MainWindow.ui:501
+#: portato/gui/templates/MainWindow.ui:320
msgid "<b>License:</b>"
msgstr "<b>Lizenz:</b>"
-#: portato/gui/templates/MainWindow.ui:518
+#: portato/gui/templates/MainWindow.ui:337
msgid "<b>Installed, but not in portage anymore</b>"
msgstr "<b>Installiert, aber nicht mehr im Portage-Tree vorhanden</b>"
-#: portato/gui/templates/MainWindow.ui:533
+#: portato/gui/templates/MainWindow.ui:352
msgid "<span foreground='red'><b>MISSING KEYWORD</b></span>"
msgstr "<span foreground='red'><b>FEHLENDES KEYWORD</b></span>"
-#: portato/gui/templates/MainWindow.ui:565
+#: portato/gui/templates/MainWindow.ui:384
msgid "<b>Description:</b>"
msgstr "<b>Beschreibung:</b>"
-#: portato/gui/templates/MainWindow.ui:581
+#: portato/gui/templates/MainWindow.ui:400
msgid "<b>Overlay:</b>"
msgstr "<b>Overlay:</b>"
-#: portato/gui/templates/MainWindow.ui:629
+#: portato/gui/templates/MainWindow.ui:448
msgid "<b>Homepage:</b>"
msgstr "<b>Homepage:</b>"
-#: portato/gui/templates/MainWindow.ui:647
-#: portato/gui/windows/main.py:826
+#: portato/gui/templates/MainWindow.ui:462
+#: portato/gui/windows/main.py:844
msgid "Installed"
msgstr "Installiert"
-#: portato/gui/templates/MainWindow.ui:665
-#: portato/gui/windows/main.py:255
-#: portato/gui/windows/main.py:258
-#: portato/gui/windows/main.py:261
-#: portato/gui/windows/main.py:361
-#: portato/gui/windows/main.py:365
-#: portato/gui/windows/main.py:372
-#: portato/gui/windows/main.py:376
+#: portato/gui/templates/MainWindow.ui:481
+#: portato/gui/windows/main.py:256
+#: portato/gui/windows/main.py:259
+#: portato/gui/windows/main.py:262
+#: portato/gui/windows/main.py:362
+#: portato/gui/windows/main.py:366
+#: portato/gui/windows/main.py:373
+#: portato/gui/windows/main.py:377
msgid "Masked"
msgstr "Masked"
-#: portato/gui/templates/MainWindow.ui:697
-#: portato/gui/windows/main.py:271
-#: portato/gui/windows/main.py:274
-#: portato/gui/windows/main.py:334
-#: portato/gui/windows/main.py:338
+#: portato/gui/templates/MainWindow.ui:514
+#: portato/gui/windows/main.py:272
+#: portato/gui/windows/main.py:275
+#: portato/gui/windows/main.py:335
+#: portato/gui/windows/main.py:339
msgid "Testing"
msgstr "Testing"
-#: portato/gui/templates/MainWindow.ui:715
+#: portato/gui/templates/MainWindow.ui:537
msgid "<b>Use Flags:</b>"
msgstr "<b>Use Flags:</b>"
-#: portato/gui/templates/MainWindow.ui:776
+#: portato/gui/templates/MainWindow.ui:607
msgid "Use List"
msgstr "Use-Flag-Liste"
-#: portato/gui/templates/MainWindow.ui:813
+#: portato/gui/templates/MainWindow.ui:647
msgid "Execute the current selected queue"
msgstr "Führe die aktuell gewählte Queue aus"
-#: portato/gui/templates/MainWindow.ui:831
+#: portato/gui/templates/MainWindow.ui:668
msgid "E_xecute"
msgstr "_Ausführen"
-#: portato/gui/templates/MainWindow.ui:846
+#: portato/gui/templates/MainWindow.ui:687
+msgid "Update _World"
+msgstr "Update _World"
+
+#: portato/gui/templates/MainWindow.ui:691
msgid "Calculate the packages which will be installed during an \"update world\""
msgstr "Berechnet die Pakete, welche während eines \"update world\" installiert werden würden"
-#: portato/gui/templates/MainWindow.ui:858
-msgid "Remove the selected package from the queue"
-msgstr "Löscht das gewählte Paket aus der Queue"
-
-#: portato/gui/templates/MainWindow.ui:859
+#: portato/gui/templates/MainWindow.ui:703
msgid "_Remove"
msgstr "_Löschen"
-#: portato/gui/templates/MainWindow.ui:929
-#: portato/gui/windows/main.py:606
+#: portato/gui/templates/MainWindow.ui:707
+msgid "Remove the selected package from the queue"
+msgstr "Löscht das gewählte Paket aus der Queue"
+
+#: portato/gui/templates/MainWindow.ui:782
+#: portato/gui/windows/main.py:620
msgid "Queue"
msgstr "Queue"
-#: portato/gui/templates/MainWindow.ui:950
-#: portato/gui/windows/main.py:1206
-#: portato/gui/windows/main.py:1208
+#: portato/gui/templates/MainWindow.ui:806
+#: portato/gui/windows/main.py:1253
+#: portato/gui/windows/main.py:1255
msgid "Console"
msgstr "Konsole"
-#: portato/gui/templates/MainWindow.ui:981
+#: portato/gui/templates/MainWindow.ui:840
msgid "Log"
msgstr "Log"
+#: portato/gui/templates/MainWindow.menu:9
+#: portato/gui/templates/MainWindow.menu:161
+msgid "Plu_gins"
+msgstr "_Plugins"
+
+#: portato/gui/templates/MainWindow.menu:19
+msgid "_General"
+msgstr "All_gemein"
+
+#: portato/gui/templates/MainWindow.menu:26
+msgid "_Preferences"
+msgstr "_Einstellungen"
+
+#: portato/gui/templates/MainWindow.menu:35
+msgid "Re_load Portage"
+msgstr "_Aktualisiere Portage-Cache"
+
+#: portato/gui/templates/MainWindow.menu:51
+msgid "_Emerge"
+msgstr "_Emerge"
+
+#: portato/gui/templates/MainWindow.menu:58
+msgid "_Install"
+msgstr "_Installieren"
+
+#: portato/gui/templates/MainWindow.menu:67
+msgid "_Uninstall"
+msgstr "_Deinstallieren"
+
+#: portato/gui/templates/MainWindow.menu:75
+msgid "Up_date World"
+msgstr "Update _World"
+
+#: portato/gui/templates/MainWindow.menu:82
+msgid "Show Updatable P_ackages"
+msgstr "Zeige Pakete mit _Updates"
+
+#: portato/gui/templates/MainWindow.menu:89
+msgid "Show _World Packages"
+msgstr "Zeige _Pakete in \"World\""
+
+#: portato/gui/templates/MainWindow.menu:96
+msgid "Show _Only Installed Packages"
+msgstr "_Zeige nur installierte Pakete"
+
+#: portato/gui/templates/MainWindow.menu:105
+msgid "_Sync"
+msgstr "_Sync"
+
+#: portato/gui/templates/MainWindow.menu:114
+msgid "Save _Flags"
+msgstr "Speichere _Flags"
+
+#: portato/gui/templates/MainWindow.menu:121
+msgid "Emerge _Paused"
+msgstr "Emerge _angehalten"
+
+#: portato/gui/templates/MainWindow.menu:130
+msgid "_Kill Emerge"
+msgstr "_Kill Emerge"
+
+#: portato/gui/templates/MainWindow.menu:139
+msgid "_Copy"
+msgstr "_Kopieren"
+
+#: portato/gui/templates/MainWindow.menu:146
+msgid "_?"
+msgstr "_?"
+
+#: portato/gui/templates/MainWindow.menu:153
+msgid "_About"
+msgstr "_Über"
+
#: portato/gui/dialogs.py:17
msgid "Mail could not be sent"
-msgstr "Mail konnte nicht gesendet werden: %s"
+msgstr "Mail konnte nicht gesendet werden"
#: portato/gui/dialogs.py:18
#, python-format
@@ -498,61 +499,88 @@ msgid "The error was: %s"
msgstr "Der Fehler war: %s"
#: portato/gui/dialogs.py:24
+msgid "No email address given"
+msgstr "Keine Email-Adresse gegeben"
+
+#: portato/gui/dialogs.py:25
+msgid ""
+"You haven't specified an email address. Without it, it will not be possible for the developers to contact you for questions and thus it might be harder to fix the bug.\n"
+"\n"
+"Do you want to proceed nevertheless?"
+msgstr ""
+"Du hast keine Email-Adresse angegeben. Daher ist es nicht möglich, dass die Entwickler dich kontaktieren können und es kann daher sein, dass der Bug schwerer zu beseitigen ist.\n"
+"\n"
+"Trotzdem fortfahren?"
+
+#: portato/gui/dialogs.py:31
msgid "Do you really want to quit?"
msgstr "Wirklich beenden?"
-#: portato/gui/dialogs.py:25
+#: portato/gui/dialogs.py:32
msgid "There are some packages in the emerge queue and/or an emerge process is running."
msgstr "Es sind noch Pakete in der Emerge-Queue und/oder emerge läuft noch."
-#: portato/gui/dialogs.py:43
+#: portato/gui/dialogs.py:50
#, python-format
msgid "%(blocked)s is blocked by %(blocks)s."
msgstr "%(blocks)s blockiert %(blocked)s."
-#: portato/gui/dialogs.py:44
+#: portato/gui/dialogs.py:51
msgid "Please unmerge the blocking package."
msgstr "Bitte deinstalliere das blockierende Paket."
-#: portato/gui/dialogs.py:50
+#: portato/gui/dialogs.py:57
msgid "You are not root."
msgstr "Du bist nicht root."
-#: portato/gui/dialogs.py:56
+#: portato/gui/dialogs.py:63
#, python-format
msgid "%s seems to be masked."
msgstr "%s scheint maskiert zu sein."
-#: portato/gui/dialogs.py:57
+#: portato/gui/dialogs.py:64
msgid "Do you want to unmask it and its dependencies?"
msgstr "Soll das Paket und seine Abhängigkeiten demaskiert werden?"
-#: portato/gui/dialogs.py:63
+#: portato/gui/dialogs.py:70
msgid "Package not found!"
msgstr "Paket nicht gefunden!"
-#: portato/gui/dialogs.py:69
+#: portato/gui/dialogs.py:76
+#: portato/gui/dialogs.py:87
msgid "Do not show this dialog again."
msgstr "Diesen Dialog nicht wieder anzeigen."
-#: portato/gui/dialogs.py:70
+#: portato/gui/dialogs.py:77
#, python-format
msgid "Changed %s"
msgstr "%s wurde geändert"
-#: portato/gui/dialogs.py:71
+#: portato/gui/dialogs.py:78
msgid ""
"Portato will write these changes into the appropriate files.\n"
-"Please backup them if you think it is necessairy."
+"Please backup them if you think it is necessary."
msgstr ""
"Portato wird diese Änderungen speichern.\n"
"Bitte sichere die entsprechenden Dateien, wenn du es als notwendig erachtest."
-#: portato/gui/dialogs.py:80
+#: portato/gui/dialogs.py:88
+msgid "'Update World' may be giving errors"
+msgstr "'Update World' kann fehlerhaft sein"
+
+#: portato/gui/dialogs.py:89
+msgid ""
+"Due to the fast changing portage, 'update world' might not work correctly or even throw errors.\n"
+"This will be fixed (hopefully) in the next release."
+msgstr ""
+"Da sich Portage sehr schnell ändert, kann es sein, dass 'update world' nicht korrekt funktioniert. Es können sogar Fehler auftreten.\n"
+"Das wird hoffentlich mit dem nächsten Release besser."
+
+#: portato/gui/dialogs.py:98
msgid "You cannot remove dependencies. :)"
msgstr "Du kannst keine Abhängigkeiten löschen ;)."
-#: portato/gui/dialogs.py:86
+#: portato/gui/dialogs.py:104
msgid ""
"This is the updates queue. You cannot remove single elements.\n"
"Do you want to clear the whole queue instead?"
@@ -560,15 +588,15 @@ msgstr ""
"Das ist die Update-Queue. Aus dieser können keine einzelnen Pakete entfernt werden.\n"
"Soll stattdessen die komplette Queue entfernt werden?"
-#: portato/gui/dialogs.py:92
+#: portato/gui/dialogs.py:110
msgid "Do you really want to clear the whole queue?"
msgstr "Wirklich die gesamte Queue löschen?"
-#: portato/gui/dialogs.py:111
+#: portato/gui/dialogs.py:129
msgid "A prerequisite for starting Portato was not matched."
msgstr "Eine Vorbedingung um Portato zu starten ist nicht erfüllt."
-#: portato/gui/dialogs.py:115
+#: portato/gui/dialogs.py:133
msgid ""
"<b>Note</b>: On fresh Sabayon installs or its LiveDVD/-CD, there is no portage tree existing per default.\n"
"Please run <i>emerge --sync &amp;&amp; layman -S</i>."
@@ -576,8 +604,8 @@ msgstr ""
"<b>Hinweis</b>: Auf frisch installierten Sabayon-Systemen bzw. der Sabayon LiveDVD/-CD existiert standardmäßig kein Portage-Tree.\n"
"Bitte führe <i>emerge --sync &amp;&amp; layman -S</i> aus."
-#: portato/gui/dialogs.py:123
-#: portato/gui/windows/main.py:1255
+#: portato/gui/dialogs.py:141
+#: portato/gui/windows/main.py:1302
#, python-format
msgid "No versions of package '%s' found!"
msgstr "Keine Version vom Paket '%s' gefunden!"
@@ -597,7 +625,7 @@ msgid "No %(old)s language file installed. Disable highlighting."
msgstr "Keine \"%(old)s\" Syntaxdatei gefunden. Deaktiviere Hervorhebung."
#: portato/gui/views.py:130
-#: plugins/package_details.py:102
+#: plugins/package_details.py:108
#, python-format
msgid "Error: %s"
msgstr "Fehler: %s"
@@ -644,19 +672,32 @@ msgstr "Lade Backend"
msgid "Results"
msgstr "Ergebnisse"
-#: portato/gui/windows/mailinfo.py:83
-#, python-format
-msgid "An error occurred while sending. I think we were greylisted. The error: %s"
-msgstr "Während des Sendes trat ein Fehler auf. Wahrscheinlich wurden wir ge-greylistet. Der Fehler: %s"
+#: portato/gui/windows/pkglist.py:36
+msgid "Unselect _All"
+msgstr "_Alles abwählen"
-#: portato/gui/windows/mailinfo.py:84
-msgid "Retrying after waiting 60 seconds."
-msgstr "Wiederhole den Versuch nach einer 60s Pause."
-
-#: portato/gui/windows/update.py:48
+#: portato/gui/windows/pkglist.py:60
msgid "Package"
msgstr "Paket"
+#: portato/gui/windows/pkglist.py:147
+msgid "Updatable Packages"
+msgstr "Pakete mit Updates"
+
+#: portato/gui/windows/pkglist.py:151
+msgid "World Packages"
+msgstr "Pakete in \"World\""
+
+#: portato/gui/windows/mailinfo.py:144
+#, python-format
+msgid "Retrying after waiting %d seconds."
+msgstr "Wiederhole den Versuch nach einer %ds Pause."
+
+#: portato/gui/windows/mailinfo.py:157
+#, python-format
+msgid "An error occurred while sending. I think we were greylisted. The error: %s"
+msgstr "Während des Sendes trat ein Fehler auf. Wahrscheinlich wurden wir ge-greylistet. Der Fehler: %s"
+
#: portato/gui/windows/splash.py:35
#, python-format
msgid "... is starting up: %s"
@@ -683,116 +724,118 @@ msgid "Package Set"
msgstr "Paket-Set"
#: portato/gui/windows/preference.py:259
-#: portato/gui/windows/main.py:828
+#: portato/gui/windows/main.py:846
+#: portato/db/database.py:51
+#: portato/db/database.py:52
msgid "Description"
msgstr "Beschreibung"
-#: portato/gui/windows/main.py:141
+#: portato/gui/windows/main.py:142
msgid "<no description>"
msgstr "<keine Beschreibung>"
-#: portato/gui/windows/main.py:167
+#: portato/gui/windows/main.py:168
msgid "The first homepage part does not start with 'http' or 'ftp'."
msgstr "Der erste Teil der Homepage startet nicht mit 'http' oder 'ftp'."
-#: portato/gui/windows/main.py:171
+#: portato/gui/windows/main.py:172
msgid "Blank inside homepage."
msgstr "Leerzeichen innerhalb der Homepage-URL."
-#: portato/gui/windows/main.py:210
+#: portato/gui/windows/main.py:211
#, python-format
msgid "Package could not be found: %s"
msgstr "Paket konnte nicht gefunden werden: %s"
-#: portato/gui/windows/main.py:264
-#: portato/gui/windows/main.py:363
+#: portato/gui/windows/main.py:265
+#: portato/gui/windows/main.py:364
msgid "Masked by user"
msgstr "Vom Benutzer maskiert"
-#: portato/gui/windows/main.py:454
+#: portato/gui/windows/main.py:464
msgid "Loading Config"
msgstr "Lade Konfiguration"
-#: portato/gui/windows/main.py:466
+#: portato/gui/windows/main.py:476
msgid "Creating Database"
msgstr "Erstelle Datenbank"
-#: portato/gui/windows/main.py:470
+#: portato/gui/windows/main.py:480
msgid "Loading Plugins"
msgstr "Lade Plugins"
-#: portato/gui/windows/main.py:478
+#: portato/gui/windows/main.py:488
msgid "Building frontend"
msgstr "Erstelle Oberfläche"
-#: portato/gui/windows/main.py:544
+#: portato/gui/windows/main.py:554
msgid "Restoring Session"
msgstr "Lade Session"
-#: portato/gui/windows/main.py:554
+#: portato/gui/windows/main.py:564
msgid "Loading Plugin Widgets"
msgstr "Lade GUI-Elemente der Plugins"
-#: portato/gui/windows/main.py:557
+#: portato/gui/windows/main.py:567
msgid "Finishing startup"
msgstr "Erledige letzte Handgriffe :)"
-#: portato/gui/windows/main.py:609
+#: portato/gui/windows/main.py:623
msgid "Options"
msgstr "Optionen"
-#: portato/gui/windows/main.py:625
+#: portato/gui/windows/main.py:639
msgid "Categories"
msgstr "Kategorien"
-#: portato/gui/windows/main.py:684
+#: portato/gui/windows/main.py:698
msgid "Packages"
msgstr "Pakete"
-#: portato/gui/windows/main.py:719
+#: portato/gui/windows/main.py:733
#, python-format
msgid "Package '%s/%s' is disabled."
msgstr "Paket '%s/%s' wurde deaktiviert."
-#: portato/gui/windows/main.py:736
+#: portato/gui/windows/main.py:750
msgid "Versions"
msgstr "Versionen"
-#: portato/gui/windows/main.py:739
+#: portato/gui/windows/main.py:753
msgid "Slot"
msgstr "Slot"
-#: portato/gui/windows/main.py:827
+#: portato/gui/windows/main.py:845
msgid "Flag"
msgstr "Flag"
-#: portato/gui/windows/main.py:851
+#: portato/gui/windows/main.py:869
msgid "This is an expanded use flag and cannot be selected"
msgstr "Dies ist ein \"Expanded Use Flag\" und kann daher nicht ausgewählt werden."
-#: portato/gui/windows/main.py:889
+#: portato/gui/windows/main.py:927
#, python-format
msgid "Translating session from version %d to %d."
msgstr "Upgrade Session von Version %d auf Version %d."
-#: portato/gui/windows/main.py:892
+#: portato/gui/windows/main.py:930
#, python-format
msgid "Cannot translate session from version %d to %d."
msgstr "Kann Session nicht von Version %d nach %d upgraden."
-#: portato/gui/windows/main.py:1391
+#: portato/gui/windows/main.py:1438
msgid "use flags"
msgstr "Use Flags"
-#: portato/gui/windows/main.py:1403
+#: portato/gui/windows/main.py:1450
msgid "masking keywords"
msgstr "Masking Keywords"
-#: portato/gui/windows/main.py:1780
+#: portato/gui/windows/main.py:1858
msgid "The portage tree is not existing."
msgstr "Der Portage-Tree existiert nicht."
-#: portato/gui/windows/main.py:1784
+#: portato/gui/windows/main.py:1862
msgid "The portage tree seems to be empty."
msgstr "Der Portage-Tree scheint leer zu sein."
@@ -813,48 +856,62 @@ msgstr "Das aktuelle Sessionformat ist zu alt."
msgid "Current session format is newer than this version supports."
msgstr "Das aktuelle Sessionformat ist neuer, als diese Portato-Version unterstützt."
-#: portato/gui/utils.py:190
+#: portato/gui/utils.py:189
msgid "oneshot"
msgstr "oneshot"
-#: portato/gui/utils.py:195
+#: portato/gui/utils.py:194
#, python-format
msgid "updating from version %s"
msgstr "Update von Version %s"
-#: portato/gui/utils.py:197
+#: portato/gui/utils.py:196
msgid "updating"
msgstr "Update"
-#: portato/gui/utils.py:202
+#: portato/gui/utils.py:201
#, python-format
msgid "downgrading from version %s"
msgstr "Downgrade von Version %s"
-#: portato/gui/utils.py:204
+#: portato/gui/utils.py:203
msgid "downgrading"
msgstr "Downgrade"
-#: portato/gui/utils.py:208
+#: portato/gui/utils.py:207
msgid "IUSE changes:"
msgstr "IUSE Änderungen:"
-#: portato/gui/utils.py:226
+#: portato/gui/utils.py:225
msgid "(In Progress)"
msgstr "(In Bearbeitung)"
-#: portato/gui/utils.py:251
+#: portato/gui/utils.py:250
msgid "Install"
msgstr "Installieren"
-#: portato/gui/utils.py:262
+#: portato/gui/utils.py:261
msgid "Uninstall"
msgstr "Deinstallieren"
-#: portato/gui/utils.py:274
+#: portato/gui/utils.py:273
msgid "Update"
msgstr "Update"
+#: portato/eix/exceptions.py:26
+msgid "Unknown error."
+msgstr "Unbekannter Fehler."
+
+#: portato/eix/exceptions.py:37
+#, python-format
+msgid "End of file reached though it was not expected: '%s'"
+msgstr "Ende der Datei erreicht obwohl dies nicht erwartet wurde: '%s'"
+
+#: portato/eix/exceptions.py:45
+#, python-format
+msgid "Version '%s' is not supported."
+msgstr "Version '%s' wird nicht unterstützt."
+
#: portato/backend/flags.py:527
#, python-format
msgid "Conflicting values for masking status: %s"
@@ -865,17 +922,17 @@ msgstr "Konflikt beim Masking-Status: %s"
msgid "Line %(line)s in file %(file)s misses a keyword (e.g. '~x86')."
msgstr "In Zeile %(line)s in der Dateil %(file) fehlt ein Keyword (z.B. '~x86')."
-#: portato/backend/portage/system.py:258
+#: portato/backend/portage/system.py:280
#, python-format
msgid "No best match for %s. It seems not to be in the tree anymore."
msgstr "Es konnte kein bester Treffer für das Paket %s gefunden werden. Es scheint sich nicht mehr im Tree zu befinden."
-#: portato/backend/portage/system.py:316
+#: portato/backend/portage/system.py:338
#, python-format
msgid "Found a not installed dependency: %s."
msgstr "Nicht installierte Abhängigkeit gefunden: %s"
-#: portato/backend/portage/system.py:358
+#: portato/backend/portage/system.py:380
#, python-format
msgid "Bug? No best match could be found for '%(package)s'. Needed by: '%(cpv)s'."
msgstr "Es konnte kein bester Treffer für das Paket '%(package)s' ermittelt werden (gebraucht von '%(cpv)s'). Bug?"
@@ -885,15 +942,15 @@ msgstr "Es konnte kein bester Treffer für das Paket '%(package)s' ermittelt wer
msgid "BUG in flags.new_masking_status. It returns '%s'"
msgstr "BUG in flags.new_masking_status. Es gibt '%s' zurück."
-#: portato/__init__.py:53
+#: portato/__init__.py:54
msgid "do not fork off as root"
msgstr "erzeuge keinen Root-Prozess"
-#: portato/__init__.py:76
+#: portato/__init__.py:83
msgid "Starting Portato"
msgstr "Starte Portato"
-#: portato/__init__.py:121
+#: portato/__init__.py:125
msgid "No valid su command detected. Aborting."
msgstr "Kein valides 'su'-Kommande entdeckt. Breche ab..."
@@ -901,11 +958,11 @@ msgstr "Kein valides 'su'-Kommande entdeckt. Breche ab..."
msgid "Invalid dependency string"
msgstr "Ungültiger Dependency-String."
-#: portato/db/__init__.py:24
+#: portato/db/__init__.py:21
msgid "SQLite"
msgstr "SQLite"
-#: portato/db/__init__.py:24
+#: portato/db/__init__.py:21
msgid ""
"Uses an SQLite-database to store package information.\n"
"May take longer to generate at the first time, but has advantages if portato is re-started with an unchanged portage tree. Additionally it allows to use fast SQL expressions for fetching the data."
@@ -913,11 +970,11 @@ msgstr ""
"Verwendet eine SQLite-Datenbank um die Paketdaten zu speichern.\n"
"Es mag länger dauern, um die Datenbank das erste Mal zu erstellen - es zeigt seine Stärken, wenn Portato neugestartet wird, ohne dass sich der Portage-Tree verändert hat. Außerdem verwendet es schnelle SQL-Queries."
-#: portato/db/__init__.py:25
+#: portato/db/__init__.py:22
msgid "Hashmap"
msgstr "Hashtabelle"
-#: portato/db/__init__.py:25
+#: portato/db/__init__.py:22
msgid ""
"Uses an in-memory hashmap to store package information.\n"
"Has been used since at least version 0.3.3, but all information has to be regenerated on each startup."
@@ -925,53 +982,79 @@ msgstr ""
"Verwendet eine Hashtabelle, welche im Arbeitsspeicher liegt, um die Paketdaten zu speichern.\n"
"Wurde in allen Portato-Versionen seit 0.3.3 benutzt, aber alle Daten müssen bei jedem Start neu erzeugt werden."
-#: portato/db/__init__.py:40
-msgid "Cannot load SQLDatabase."
-msgstr "Kann SQL-Datenbank nicht laden."
+#: portato/db/__init__.py:23
+msgid "eix + SQLite"
+msgstr "eix + SQLite"
+
+#: portato/db/__init__.py:23
+msgid ""
+"Similar to SQLite, but now uses the eix database to get the package information.\n"
+"This should be much faster on startup, but requires that your eix database is always up-to-date.\n"
+"Additionally, this is the only database allowing searching in descriptions."
+msgstr ""
+"Diese Datenbank ist ähnlich wie die normale SQLite-Datenbank, aber benutzt nun eix um an die Paketinformationen zu kommen.\n"
+"Das ist bei weitem schneller beim Starten, setzt aber vorraus, dass die eix-Datenbank immer aktuell ist.\n"
+"Außerdem ist das der einzige Datenbanktyp der auch das Suchen in den Beschreibungen erlaubt."
#: portato/db/__init__.py:51
+#: portato/db/__init__.py:66
+#, python-format
+msgid "Cannot load %s."
+msgstr "Kann %s nicht laden."
+
+#: portato/db/__init__.py:72
#, python-format
msgid "Unknown database type: %s"
msgstr "Unbekannter Datenbanktyp: %s"
-#: portato/db/database.py:38
-msgid "ALL"
-msgstr "ALLE"
-
-#: portato/db/dict.py:94
+#: portato/db/hash.py:97
#, python-format
msgid "Catched KeyError => %s seems not to be an available category. Have you played with rsync-excludes?"
msgstr "Catched KeyError => %s scheint keine valide Kategorie zu sein. Hast du mit rsync-excludes gespielt?"
-#: portato/db/dict.py:149
+#: portato/db/hash.py:152
#, python-format
msgid "Error while compiling search expression: '%s'."
msgstr "Fehler beim erstellen des Suchausdrucks: '%s'."
-#: portato/db/sql.py:79
+#: portato/db/eix_sql.py:35
+#, python-format
+msgid "Cache file '%s' does not exist. Using default instead."
+msgstr "Cache '%s' existiert nicht, stattdessen wird die Vorgabe benutzt."
+
+#: portato/db/database.py:44
+msgid "ALL"
+msgstr "ALLE"
+
+#: portato/db/database.py:50
+#: portato/db/database.py:52
+msgid "Name"
+msgstr "Name"
+
+#: portato/db/sql.py:82
msgid "Cleaning database..."
msgstr "Leere Datenbank..."
-#: portato/db/sql.py:81
+#: portato/db/sql.py:84
msgid "Populating database..."
msgstr "Fülle Datenbank..."
-#: portato/session.py:67
+#: portato/session.py:66
#, python-format
msgid "Loading '%s' session from %s."
msgstr "Lade '%s'-Session von %s."
-#: portato/session.py:69
+#: portato/session.py:68
#, python-format
msgid "Loading session from %s."
msgstr "Lade Session von %s."
-#: portato/session.py:141
+#: portato/session.py:136
#, python-format
msgid "Saving '%s' session to %s."
msgstr "Schreibe '%s'-Session nach %s."
-#: portato/session.py:143
+#: portato/session.py:138
#, python-format
msgid "Saving session to %s."
msgstr "Schreibe Session nach %s."
@@ -981,133 +1064,166 @@ msgstr "Schreibe Session nach %s."
msgid "Unrecognized line in configuration: %s"
msgstr "Unbekannte Zeile in Konfiguration: %s"
-#: portato/listener.py:94
+#: portato/listener.py:85
msgid "Listener has not been started."
msgstr "Listener wurde nicht gestartet."
-#: portato/plugin.py:438
-#: portato/plugin.py:441
+#: portato/listener.py:94
+#, python-format
+msgid "An exception occured while accessing the message queue: %s"
+msgstr "Beim Zugriff auf die Message-Queue trat ein Fehler auf: %s"
+
+#: portato/plugin.py:446
+#: portato/plugin.py:449
#, python-format
-msgid "Loading plugin '%(plugin)s' failed: %(error)s"
+msgid "Loading plugin module '%(plugin)s' failed: %(error)s"
msgstr "Laden des Plugins '%(plugin)s' fehlgeschlagen: %(error)s"
-#: portato/plugin.py:451
+#: portato/plugin.py:459
+#, python-format
+msgid "Loading widgets plugin '%(plugin)s' failed: %(error)s"
+msgstr "Laden des Widget-Plugins '%(plugin)s' fehlgeschlagen: %(error)s"
+
+#: portato/plugin.py:462
+#, python-format
+msgid "Loading widgets of plugin '%(plugin)s' failed: %(error)s"
+msgstr "Laden der Widgets vom Plugin '%(plugin)s' fehlgeschlagen: %(error)s"
+
+#: portato/plugin.py:466
#, python-format
msgid "Widgets of plugin '%s' loaded."
msgstr "GUI-Elemente für Plugin '%s' geladen."
-#: portato/plugin.py:482
+#: portato/plugin.py:497
msgid "Plugin is disabled!"
msgstr "Plugin ist deaktiviert!"
-#: portato/plugin.py:484
+#: portato/plugin.py:499
msgid "Plugin has unresolved dependencies - disabled!"
msgstr "Das Plugin hat nicht erfüllte Abhängigkeiten - deaktiviert!"
-#: portato/plugin.py:488
+#: portato/plugin.py:503
#, python-format
msgid "Plugin '%s' loaded."
msgstr "Plugin '%s' geladen."
-#: portato/plugin.py:528
+#: portato/plugin.py:543
#, python-format
msgid "Overriding hook '%(hook)s' with plugin '%(plugin)s'."
msgstr "Überschreibe den Hook '%(hook)s' mit Plugin '%(plugin)s'."
-#: portato/plugin.py:586
+#: portato/plugin.py:601
#, python-format
msgid "For hook '%(hook)s' an override is already defined by plugin '%(plugin)s'!"
msgstr "Das Plugin '%(plugin)s' definiert bereits einen \"Override\" fürr den Hook '%(hook)s'!"
-#: portato/plugin.py:587
+#: portato/plugin.py:602
#, python-format
msgid "It is now replaced by the one from plugin '%s'!"
msgstr "Es wird ersetzt durch die Variante vom Plugin '%s'!"
-#: portato/plugin.py:620
+#: portato/plugin.py:635
#, python-format
msgid "Dependant '%(dep)s' for '%(hook)s' in plugin '%(plugin)s' not found! Adding nevertheless."
msgstr "Abhängigkeit %(dep)s' für '%(hook)s' im Plugin '%(plugin)s' nicht gefunden! Lade Plugin trotzdem."
-#: plugins/etc_proposals.py:34
+#: portato/plugin.py:704
+#: portato/plugin.py:707
+#, python-format
+msgid "Registrating plugin '%(plugin)s' failed: %(error)s"
+msgstr "Registrierung des Plugins '%(plugin)s' fehlgeschlagen: %(error)s"
+
+#: plugins/etc_proposals.py:32
msgid "Cannot start etc-proposals. Not root!"
msgstr "Kann etc-proposals nicht starten. Nur root kann das!"
-#: plugins/package_details.py:67
+#: plugins/package_details.py:73
msgid "Shows the Changelog of a package"
msgstr "Zeigt die Changelog eines Pakets"
-#: plugins/package_details.py:69
+#: plugins/package_details.py:75
msgid "Changelog"
msgstr "Changelog"
-#: plugins/package_details.py:79
+#: plugins/package_details.py:85
msgid "Shows the ebuild of a package"
msgstr "Zeigt den Ebuild eines Pakets"
-#: plugins/package_details.py:82
+#: plugins/package_details.py:88
msgid "Ebuild"
msgstr "Ebuild"
-#: plugins/package_details.py:89
+#: plugins/package_details.py:95
msgid "Shows the installed files of a package"
msgstr "Zeigt die installierten Dateien eines Pakets"
-#: plugins/package_details.py:91
+#: plugins/package_details.py:97
msgid "Files"
msgstr "Dateien"
-#: plugins/package_details.py:105
+#: plugins/package_details.py:111
msgid "Shows the dependencies of a package"
msgstr "Zeigt die Abhängigkeiten eines Pakets"
-#: plugins/package_details.py:107
+#: plugins/package_details.py:113
msgid "Dependencies"
msgstr "Abhängigkeiten"
-#: plugins/package_details.py:179
+#: plugins/package_details.py:185
#, python-format
msgid "If '%s' is disabled"
msgstr "Wenn '%s' deaktiviert ist"
-#: plugins/package_details.py:181
+#: plugins/package_details.py:187
#, python-format
msgid "If '%s' is enabled"
msgstr "Wenn '%s' aktiviert ist"
-#: plugins/package_details.py:187
+#: plugins/package_details.py:193
msgid "One of the following"
msgstr "Eins der folgenden"
-#: plugins/package_details.py:192
+#: plugins/package_details.py:198
msgid "All of the following"
msgstr "Alle folgenden"
-#: plugins/package_details.py:203
+#: plugins/package_details.py:209
msgid "Can't display dependencies: This package has an unsupported dependency string."
msgstr "Kann Abhängigkeiten nicht anzeigen: Format der Abhängigkeiten des Pakets wird nicht unterstützt."
-#: plugins/notify.py:24
+#: plugins/notify.py:23
msgid "Cannot import 'pynotify'."
msgstr "'pynotify' kann nicht importiert werden."
-#: plugins/notify.py:36
+#: plugins/notify.py:35
msgid "Notify called while process is still running!"
msgstr "\"Notify\" aufgerufen, während Emerge noch lief."
-#: plugins/notify.py:40
+#: plugins/notify.py:39
msgid "Emerge finished!"
msgstr "Emerge-Prozess erfolgreich beendet!"
-#: plugins/notify.py:44
+#: plugins/notify.py:43
msgid "Emerge failed!"
msgstr "Emerge fehlgeschlagen!"
-#: plugins/notify.py:45
+#: plugins/notify.py:44
#, python-format
msgid "Error Code: %d"
msgstr "Fehler-Code: %d"
+#~ msgid "Attach _Logfile"
+#~ msgstr "Hänge _Logdatei an"
+#~ msgid ""
+#~ "Attaches the logfile to the mail. This log only contains debug "
+#~ "information."
+#~ msgstr ""
+#~ "Hängt die Logdatei an die Mail an. In der Datei sind nur Debug-"
+#~ "Informationen enthalten."
+#~ msgid "_File"
+#~ msgstr "_Datei"
+#~ msgid "_Plugins"
+#~ msgstr "_Plugins"
#~ msgid "-L is deprecated"
#~ msgstr "-L ist veraltet"
#~ msgid ""
diff --git a/i18n/it.po b/i18n/it.po
new file mode 100644
index 0000000..9a91d86
--- /dev/null
+++ b/i18n/it.po
@@ -0,0 +1,1164 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: portato 0.13\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-08-31 22:12+0200\n"
+"PO-Revision-Date: \n"
+"Last-Translator: ponsi <lu69@inwind.it>\n"
+"Language-Team: <lu69@inwind.it>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Language: Italian\n"
+"X-Poedit-Country: ITALY\n"
+
+#: portato/gui/templates/UpdateWindow.ui:6
+msgid "Updatable Packages"
+msgstr "Pacchetti Aggiornabili"
+
+#: portato/gui/templates/UpdateWindow.ui:48
+msgid "_Close"
+msgstr "_Chiudi"
+
+#: portato/gui/templates/UpdateWindow.ui:59
+msgid "Select _All"
+msgstr "Seleziona_Tutto"
+
+#: portato/gui/templates/UpdateWindow.ui:73
+msgid "_Install Selected"
+msgstr "_Installa Selezionati"
+
+#: portato/gui/templates/PreferenceWindow.ui:12
+msgid "Preferences"
+msgstr "Preferenze"
+
+#: portato/gui/templates/PreferenceWindow.ui:48
+msgid "Debug"
+msgstr "Debug"
+
+#: portato/gui/templates/PreferenceWindow.ui:61
+msgid "Search while typing"
+msgstr "Ricerca durante la digitazione"
+
+#: portato/gui/templates/PreferenceWindow.ui:81
+msgid "Browser command: "
+msgstr "Comando browser:"
+
+#: portato/gui/templates/PreferenceWindow.ui:108
+#: portato/gui/templates/PreferenceWindow.ui:717
+msgid "<b>General Options</b>"
+msgstr "<b>Opzioni Generali</b>"
+
+#: portato/gui/templates/PreferenceWindow.ui:142
+msgid "Used database type"
+msgstr "Tipi di database usati"
+
+#: portato/gui/templates/PreferenceWindow.ui:178
+#: portato/gui/templates/PluginWindow.ui:93
+#: portato/gui/templates/PluginWindow.ui:118
+#: portato/gui/templates/MainWindow.ui:369
+#: portato/gui/templates/MainWindow.ui:485
+#: portato/gui/templates/MainWindow.ui:598
+#: portato/gui/templates/MainWindow.ui:613
+msgid "label"
+msgstr "etichetta"
+
+#: portato/gui/templates/PreferenceWindow.ui:188
+msgid "<b>Description</b>"
+msgstr "<b>Descrizione</b>"
+
+#: portato/gui/templates/PreferenceWindow.ui:204
+msgid "<b>Database Options</b>"
+msgstr "<b> Opzioni Database</b>"
+
+#: portato/gui/templates/PreferenceWindow.ui:226
+#: portato/gui/templates/MainWindow.ui:754
+msgid "General"
+msgstr "Generale"
+
+#: portato/gui/templates/PreferenceWindow.ui:308
+msgid "<b>Package sets to update</b>"
+msgstr "<b>Serie di pacchetti da aggiornare</b>"
+
+#: portato/gui/templates/PreferenceWindow.ui:324
+msgid "<b>Update World Options</b>"
+msgstr "<b>Opzioni 'Update World'</b>"
+
+#: portato/gui/templates/PreferenceWindow.ui:350
+msgid "Sync command: "
+msgstr "Comando 'Sync': "
+
+#: portato/gui/templates/PreferenceWindow.ui:372
+msgid "<b>Sync Options</b>"
+msgstr "<b>Opzioni 'Sync'</b>"
+
+#: portato/gui/templates/PreferenceWindow.ui:413
+msgid "File name to use, if package.use is a directory: "
+msgstr "Nome del file da usare, se 'package.use' è una directory:"
+
+#: portato/gui/templates/PreferenceWindow.ui:423
+msgid "Add only exact version to package.use"
+msgstr "Aggiungi solo l'esatta versione a 'package.use'"
+
+#: portato/gui/templates/PreferenceWindow.ui:437
+msgid "Add only exact version to package.keywords"
+msgstr "Aggiungi solo l'esatta versione a 'package.keywords'"
+
+#: portato/gui/templates/PreferenceWindow.ui:453
+msgid "File name to use, if package.keywords is a directory: "
+msgstr "Nome del file da usare, se 'package.keywords' è una directory:"
+
+#: portato/gui/templates/PreferenceWindow.ui:487
+msgid "File name to use, if package.mask/package.unmask is a directory: "
+msgstr "Nome del file da usare, se 'package.mask/package.unmask' è una directory:"
+
+#: portato/gui/templates/PreferenceWindow.ui:497
+msgid "Add only exact version to package.mask/package.unmask"
+msgstr "Aggiungi solo l'esatta versione a 'package.mask/package.unmask'"
+
+#: portato/gui/templates/PreferenceWindow.ui:521
+msgid ""
+"<u>You may use the following placeholders:</u>\n"
+"\n"
+"<i>$(pkg)</i>: package name\n"
+"<i>$(cat)</i>: category\n"
+"<i>$(cat-1)/$(cat-2)</i>: first/second part of the category\n"
+"<i>$(version)</i> : version of the package"
+msgstr ""
+"<u>Puoi usare i seguenti 'placeholders':</u>\n"
+"\n"
+"<i>$(pkg)</i>: nome pacchetto\n"
+"<i>$(cat)</i>: categoria\n"
+"<i>$(cat-1)/$(cat-2)</i>: prima/seconda parte della categoria\n"
+"<i>$(version)</i> : versione del pacchetto"
+
+#: portato/gui/templates/PreferenceWindow.ui:545
+msgid "<u><i>Use-Flags</i></u>"
+msgstr "<u><i>Use-Flags</i></u>"
+
+#: portato/gui/templates/PreferenceWindow.ui:560
+msgid "<u><i>Testing Keywords</i></u>"
+msgstr "<u><i>Keywords di prova</i></u>"
+
+#: portato/gui/templates/PreferenceWindow.ui:575
+msgid "<u><i>Masking Keywords</i></u>"
+msgstr "<u><i>Keywords di mascheramento</i></u>"
+
+#: portato/gui/templates/PreferenceWindow.ui:601
+msgid "<b>Use Flag and Keyword Options</b>"
+msgstr "<b>Opzioni di Use Flag e Keyword</b>"
+
+#: portato/gui/templates/PreferenceWindow.ui:619
+msgid "Portage"
+msgstr "Portage"
+
+#: portato/gui/templates/PreferenceWindow.ui:655
+msgid "Enable systray"
+msgstr "Abilita icona nella barra degli strumenti"
+
+#: portato/gui/templates/PreferenceWindow.ui:669
+msgid "Show emerge progress in window title"
+msgstr "Mostra l'avanzamento di emerge nel titolo della finestra"
+
+#: portato/gui/templates/PreferenceWindow.ui:683
+msgid "Show emerge progress in console title"
+msgstr "Mostra l'avanzamento di emerge nel titolo della console"
+
+#: portato/gui/templates/PreferenceWindow.ui:697
+msgid "Hide on minimization (only if systray is enabled)"
+msgstr "Nascondi se minimizzato (solo se è abilitata l'icona nella barra degli strumenti)"
+
+#: portato/gui/templates/PreferenceWindow.ui:755
+msgid "Package Tabs"
+msgstr "Tabs del pacchetto"
+
+#: portato/gui/templates/PreferenceWindow.ui:785
+msgid "System Tabs"
+msgstr "Tabs di sistema"
+
+#: portato/gui/templates/PreferenceWindow.ui:813
+msgid "<b>Tab Options</b>"
+msgstr "<b>Opzioni Tabs</b>"
+
+#: portato/gui/templates/PreferenceWindow.ui:841
+msgid "Show slots in the version list"
+msgstr "Mostra gli slot nella lista versioni"
+
+#: portato/gui/templates/PreferenceWindow.ui:854
+msgid "Collapse categories with same prefix"
+msgstr "Raggruppa le categorie con lo stesso prefisso."
+
+#: portato/gui/templates/PreferenceWindow.ui:875
+msgid "<b>Package Options</b>"
+msgstr "<b>Opzioni Pacchetto</b>"
+
+#: portato/gui/templates/PreferenceWindow.ui:911
+msgid "Console Font"
+msgstr "Carattere della Console"
+
+#: portato/gui/templates/PreferenceWindow.ui:924
+msgid "Chose a console font"
+msgstr "Scegli un carattere per la Console "
+
+#: portato/gui/templates/PreferenceWindow.ui:945
+msgid "Maximum length of the console title"
+msgstr "Lunghezza massima del titolo della console"
+
+#: portato/gui/templates/PreferenceWindow.ui:978
+msgid "<b>Console Options</b>"
+msgstr "<b>Opzioni Console</b>"
+
+#: portato/gui/templates/PreferenceWindow.ui:1015
+msgid "Package Detail Background"
+msgstr "Sfondo Dettegli Pacchetto"
+
+#: portato/gui/templates/PreferenceWindow.ui:1049
+msgid "Flag Placeholder Description Background"
+msgstr "Sfondo della descrizione dei 'Flag Placeholder'"
+
+#: portato/gui/templates/PreferenceWindow.ui:1080
+msgid "<b>Color Options</b>"
+msgstr "<b>Opzioni Colore</b>"
+
+#: portato/gui/templates/PreferenceWindow.ui:1101
+msgid "Visual"
+msgstr "Visuale"
+
+#: portato/gui/templates/PluginWindow.ui:7
+msgid "Plugins"
+msgstr "_Plugins"
+
+#: portato/gui/templates/PluginWindow.ui:51
+msgid "_Install dependencies"
+msgstr "Installa _dipendenze"
+
+#: portato/gui/templates/PluginWindow.ui:79
+msgid "Needed dependencies"
+msgstr "Calcolo delle dipendenze"
+
+#: portato/gui/templates/PluginWindow.ui:104
+msgid "<b>Author:</b>"
+msgstr "<b>Autore:</b>"
+
+#: portato/gui/templates/PluginWindow.ui:139
+#: portato/gui/windows/update.py:47
+#: portato/gui/windows/main.py:825
+#: portato/gui/windows/plugin.py:27
+msgid "Enabled"
+msgstr "Abilitato"
+
+#: portato/gui/templates/PluginWindow.ui:148
+#: portato/gui/windows/plugin.py:27
+msgid "Temporarily enabled"
+msgstr "Temporaneamente abilitato"
+
+#: portato/gui/templates/PluginWindow.ui:159
+#: portato/gui/windows/plugin.py:27
+msgid "Temporarily disabled"
+msgstr "Temporaneamente disabilitato"
+
+#: portato/gui/templates/PluginWindow.ui:171
+#: portato/gui/windows/plugin.py:27
+msgid "Disabled"
+msgstr "Disabilitato"
+
+#: portato/gui/templates/AboutWindow.ui:7
+msgid "About Portato"
+msgstr "Informazioni su Portato"
+
+#: portato/gui/templates/MailInfoWindow.ui:5
+msgid "Send Bug Mail ..."
+msgstr "Spedisci Bug Mail ..."
+
+#: portato/gui/templates/MailInfoWindow.ui:30
+msgid ""
+"<b><u>Additional Information</u></b>\n"
+"\n"
+"(all optional)"
+msgstr ""
+"<b><u>Informazioni Aggiuntive</u></b>\n"
+"\n"
+"(all optional)"
+
+#: portato/gui/templates/MailInfoWindow.ui:74
+msgid "Email address:"
+msgstr "Indirizzo email:"
+
+#: portato/gui/templates/MailInfoWindow.ui:89
+msgid "Name:"
+msgstr "Nome:"
+
+#: portato/gui/templates/MailInfoWindow.ui:104
+msgid ""
+"Comments /\n"
+"what did you do to hit the bug?"
+msgstr ""
+"Commenti /\n"
+"Come hai scoperto il bug?"
+
+#: portato/gui/templates/MailInfoWindow.ui:141
+msgid "Attaches the logfile to the mail. This log only contains debug information."
+msgstr "Allega il logfile alla mail. Questo log contiene solo informazioni per il debug."
+
+#: portato/gui/templates/MailInfoWindow.ui:142
+msgid "Attach _Logfile"
+msgstr "Allega _Logfile"
+
+#: portato/gui/templates/MailInfoWindow.ui:194
+msgid "_Send"
+msgstr "S_pedisci"
+
+#: portato/gui/templates/SearchWindow.ui:7
+msgid "Search Results"
+msgstr "Risultati ricerca"
+
+#: portato/gui/templates/MainWindow.ui:10
+msgid "Plu_gins"
+msgstr "Plu_gins"
+
+#: portato/gui/templates/MainWindow.ui:20
+msgid "_File"
+msgstr "_File"
+
+#: portato/gui/templates/MainWindow.ui:27
+msgid "_Preferences"
+msgstr "_Preferenze"
+
+#: portato/gui/templates/MainWindow.ui:36
+msgid "Re_load Portage"
+msgstr "Ri_carica Portage"
+
+#: portato/gui/templates/MainWindow.ui:52
+msgid "_Emerge"
+msgstr "_Emerge"
+
+#: portato/gui/templates/MainWindow.ui:59
+msgid "_Install"
+msgstr "_Installa"
+
+#: portato/gui/templates/MainWindow.ui:68
+msgid "_Uninstall"
+msgstr "_Disinstalla"
+
+#: portato/gui/templates/MainWindow.ui:76
+#: portato/gui/templates/MainWindow.ui:847
+msgid "Update _World"
+msgstr "Update _World"
+
+#: portato/gui/templates/MainWindow.ui:83
+msgid "Show Updatable P_ackages"
+msgstr "Mostra pacchetti aggiornabili"
+
+#: portato/gui/templates/MainWindow.ui:90
+msgid "Show _Only Installed Packages"
+msgstr "_Mostra solo pacchetti installati"
+
+#: portato/gui/templates/MainWindow.ui:99
+msgid "_Sync"
+msgstr "Sincronizza"
+
+#: portato/gui/templates/MainWindow.ui:108
+msgid "Save _Flags"
+msgstr "Salva _Flags"
+
+#: portato/gui/templates/MainWindow.ui:115
+msgid "Emerge _Paused"
+msgstr "Metti in _pausa Emerge"
+
+#: portato/gui/templates/MainWindow.ui:124
+msgid "_Kill Emerge"
+msgstr "_Annulla Emerge"
+
+#: portato/gui/templates/MainWindow.ui:133
+msgid "_Copy"
+msgstr "_Copia"
+
+#: portato/gui/templates/MainWindow.ui:140
+msgid "_?"
+msgstr "_?"
+
+#: portato/gui/templates/MainWindow.ui:147
+msgid "_About"
+msgstr "I_nformazioni"
+
+#: portato/gui/templates/MainWindow.ui:155
+msgid "_Plugins"
+msgstr "_Plugins"
+
+#: portato/gui/templates/MainWindow.ui:380
+msgid "Install onto system"
+msgstr "Installa nel sistema"
+
+#: portato/gui/templates/MainWindow.ui:402
+msgid "Uninstall from system"
+msgstr "Disinstalla dal sistema"
+
+#: portato/gui/templates/MainWindow.ui:424
+msgid "Revert changes"
+msgstr "Annulla le modifiche"
+
+#: portato/gui/templates/MainWindow.ui:501
+msgid "<b>License:</b>"
+msgstr "<b>Licenza:</b>"
+
+#: portato/gui/templates/MainWindow.ui:518
+msgid "<b>Installed, but not in portage anymore</b>"
+msgstr "<b>Installato, ma non presente in portage</b>"
+
+#: portato/gui/templates/MainWindow.ui:533
+msgid "<span foreground='red'><b>MISSING KEYWORD</b></span>"
+msgstr "<span foreground='red'><b>KEYWORD PERSA</b></span>"
+
+#: portato/gui/templates/MainWindow.ui:565
+msgid "<b>Description:</b>"
+msgstr "<b>Descrizione:</b>"
+
+#: portato/gui/templates/MainWindow.ui:581
+msgid "<b>Overlay:</b>"
+msgstr "<b>Overlay:</b>"
+
+#: portato/gui/templates/MainWindow.ui:629
+msgid "<b>Homepage:</b>"
+msgstr "<b>Homepage:</b>"
+
+#: portato/gui/templates/MainWindow.ui:647
+#: portato/gui/windows/main.py:826
+msgid "Installed"
+msgstr "Installato"
+
+#: portato/gui/templates/MainWindow.ui:665
+#: portato/gui/windows/main.py:255
+#: portato/gui/windows/main.py:258
+#: portato/gui/windows/main.py:261
+#: portato/gui/windows/main.py:361
+#: portato/gui/windows/main.py:365
+#: portato/gui/windows/main.py:372
+#: portato/gui/windows/main.py:376
+msgid "Masked"
+msgstr "Mascherato"
+
+#: portato/gui/templates/MainWindow.ui:697
+#: portato/gui/windows/main.py:271
+#: portato/gui/windows/main.py:274
+#: portato/gui/windows/main.py:334
+#: portato/gui/windows/main.py:338
+msgid "Testing"
+msgstr "In Prova"
+
+#: portato/gui/templates/MainWindow.ui:715
+msgid "<b>Use Flags:</b>"
+msgstr "<b>Use Flags:</b>"
+
+#: portato/gui/templates/MainWindow.ui:776
+msgid "Use List"
+msgstr "Lista USE"
+
+#: portato/gui/templates/MainWindow.ui:813
+msgid "Execute the current selected queue"
+msgstr "Esegui la coda attualmente selezionata"
+
+#: portato/gui/templates/MainWindow.ui:831
+msgid "E_xecute"
+msgstr "Ese_gui"
+
+#: portato/gui/templates/MainWindow.ui:846
+msgid "Calculate the packages which will be installed during an \"update world\""
+msgstr "Ricerca i pacchetti che saranno installati durante un \"Aggiorna Sistema\""
+
+#: portato/gui/templates/MainWindow.ui:858
+msgid "Remove the selected package from the queue"
+msgstr "Rimuovi dalla coda i pacchetti selezionati"
+
+#: portato/gui/templates/MainWindow.ui:859
+msgid "_Remove"
+msgstr "_Rimuovi"
+
+#: portato/gui/templates/MainWindow.ui:929
+#: portato/gui/windows/main.py:606
+msgid "Queue"
+msgstr "Coda"
+
+#: portato/gui/templates/MainWindow.ui:950
+#: portato/gui/windows/main.py:1206
+#: portato/gui/windows/main.py:1208
+msgid "Console"
+msgstr "Console"
+
+#: portato/gui/templates/MainWindow.ui:981
+msgid "Log"
+msgstr "Log"
+
+#: portato/gui/dialogs.py:17
+msgid "Mail could not be sent"
+msgstr "Non è stato possibile inviare l'email"
+
+#: portato/gui/dialogs.py:18
+#, python-format
+msgid "The error was: %s"
+msgstr "Si è verificato il seguente errore: %s"
+
+#: portato/gui/dialogs.py:24
+msgid "Do you really want to quit?"
+msgstr "Vuoi veramente uscire?"
+
+#: portato/gui/dialogs.py:25
+msgid "There are some packages in the emerge queue and/or an emerge process is running."
+msgstr "Ci sono alcuni pacchetti nella coda di emerge e/o un processo di emerge è in esecuzione."
+
+#: portato/gui/dialogs.py:43
+#, python-format
+msgid "%(blocked)s is blocked by %(blocks)s."
+msgstr "%(blocked)s è bloccato da %(blocks)s."
+
+#: portato/gui/dialogs.py:44
+msgid "Please unmerge the blocking package."
+msgstr "Per favore unmergi il pacchetto che crea il blocco."
+
+#: portato/gui/dialogs.py:50
+msgid "You are not root."
+msgstr "Non sei root"
+
+#: portato/gui/dialogs.py:56
+#, python-format
+msgid "%s seems to be masked."
+msgstr "%s sembra essere mascherato."
+
+#: portato/gui/dialogs.py:57
+msgid "Do you want to unmask it and its dependencies?"
+msgstr "Vuoi smascherare il file e le sue dipendenze?"
+
+#: portato/gui/dialogs.py:63
+msgid "Package not found!"
+msgstr "Pacchetto non trovato"
+
+#: portato/gui/dialogs.py:69
+msgid "Do not show this dialog again."
+msgstr "Non mostrare più questa finestra."
+
+#: portato/gui/dialogs.py:70
+#, python-format
+msgid "Changed %s"
+msgstr "Modificato %s"
+
+#: portato/gui/dialogs.py:71
+msgid ""
+"Portato will write these changes into the appropriate files.\n"
+"Please backup them if you think it is necessairy."
+msgstr ""
+"Portato scriverà queste modifiche negli appropriati files.\n"
+"Per favore, fanne una copia se pensi che sia necessario."
+
+#: portato/gui/dialogs.py:80
+msgid "You cannot remove dependencies. :)"
+msgstr "Non puoi rimuovere le dipendenze. :)"
+
+#: portato/gui/dialogs.py:86
+msgid ""
+"This is the updates queue. You cannot remove single elements.\n"
+"Do you want to clear the whole queue instead?"
+msgstr ""
+"Questa è la coda degli aggiornamenti. Non puoi rimuovere singoli elementi.\n"
+"Vuoi svuotare l'intera coda?"
+
+#: portato/gui/dialogs.py:92
+msgid "Do you really want to clear the whole queue?"
+msgstr "Vuoi realmente svuotare l'intera coda?"
+
+#: portato/gui/dialogs.py:111
+msgid "A prerequisite for starting Portato was not matched."
+msgstr "Non ci sono i prerequisiti per l'avvio di Portato."
+
+#: portato/gui/dialogs.py:115
+msgid ""
+"<b>Note</b>: On fresh Sabayon installs or its LiveDVD/-CD, there is no portage tree existing per default.\n"
+"Please run <i>emerge --sync &amp;&amp; layman -S</i>."
+msgstr ""
+"<b>Nota</b>: Nelle nuove installazioni di Sabayon o nel suo LiveDVD/-CD, il portage tree non esiste per default.\n"
+"Per favore esegui <i>emerge --sync &amp;&amp; layman -S</i>."
+
+#: portato/gui/dialogs.py:123
+#: portato/gui/windows/main.py:1255
+#, python-format
+msgid "No versions of package '%s' found!"
+msgstr "Non è stata trovata nessuna versione di '%s'!"
+
+#: portato/gui/views.py:85
+msgid "Package is not installed"
+msgstr "Il pacchetto non è installato"
+
+#: portato/gui/views.py:102
+#, python-format
+msgid "No %(old)s language file installed. Falling back to %(new)s."
+msgstr "Nessun file di lingua %(old)s installato. Torna al %(new)s."
+
+#: portato/gui/views.py:111
+#, python-format
+msgid "No %(old)s language file installed. Disable highlighting."
+msgstr "Nessun file di lingua %(old)s installato. Disabilita highlighting."
+
+#: portato/gui/views.py:130
+#: plugins/package_details.py:108
+#, python-format
+msgid "Error: %s"
+msgstr "Errore: %s"
+
+#: portato/gui/updater.py:100
+#, python-format
+msgid "No unmasked version of package '%s' found. Trying masked ones. This normally should not happen..."
+msgstr "Non è stata trovata nessuna versione smascherata del pacchetto '%s'. Prova quelle mascherate. Questo, normalmente, non dovrebbe succedere..."
+
+#: portato/gui/updater.py:104
+#, python-format
+msgid "Trying to remove package '%s' from queue which does not exist in system."
+msgstr "Difficile rimuovere dalla coda il pacchetto '%s' che non è presente nel sistema."
+
+#: portato/gui/exception_handling.py:30
+msgid "A programming error has been detected during the execution of this program."
+msgstr "E' stato rilevato un errore di programmazione durante l'esecuzione di questo programma."
+
+#: portato/gui/exception_handling.py:31
+msgid "Bug Detected"
+msgstr "E' stato rilevato un bug"
+
+#: portato/gui/exception_handling.py:32
+msgid "It probably isn't fatal, but should be reported to the developers nonetheless."
+msgstr "Probabilmente non è stato fatale, ma dovrebbe essere riferito agli sviluppatori."
+
+#: portato/gui/exception_handling.py:34
+msgid "Show Details"
+msgstr "Mostra dettagli"
+
+#: portato/gui/exception_handling.py:35
+msgid "Send..."
+msgstr "Invia..."
+
+#: portato/gui/exception_handling.py:74
+msgid "Save traceback..."
+msgstr "Salva traceback..."
+
+#: portato/gui/__init__.py:22
+msgid "Loading Backend"
+msgstr "Caricamento Backend"
+
+#: portato/gui/windows/search.py:57
+msgid "Results"
+msgstr "Risultati"
+
+#: portato/gui/windows/mailinfo.py:83
+#, python-format
+msgid "An error occurred while sending. I think we were greylisted. The error: %s"
+msgstr "Si è verificato un errore durante la spedizione. Errore: %s"
+
+#: portato/gui/windows/mailinfo.py:84
+msgid "Retrying after waiting 60 seconds."
+msgstr "Attendi 60 secondi e poi riprova."
+
+#: portato/gui/windows/update.py:48
+msgid "Package"
+msgstr "Pacchetto"
+
+#: portato/gui/windows/splash.py:35
+#, python-format
+msgid "... is starting up: %s"
+msgstr "...in avvio: %s"
+
+#: portato/gui/windows/preference.py:154
+msgid "Top"
+msgstr "In alto"
+
+#: portato/gui/windows/preference.py:154
+msgid "Bottom"
+msgstr "In basso"
+
+#: portato/gui/windows/preference.py:154
+msgid "Left"
+msgstr "A sinistra"
+
+#: portato/gui/windows/preference.py:154
+msgid "Right"
+msgstr "A destra"
+
+#: portato/gui/windows/preference.py:254
+msgid "Package Set"
+msgstr "Set Pacchetto"
+
+#: portato/gui/windows/preference.py:259
+#: portato/gui/windows/main.py:828
+msgid "Description"
+msgstr "Descrizione"
+
+#: portato/gui/windows/main.py:141
+msgid "<no description>"
+msgstr "<nessuna descrizione>"
+
+#: portato/gui/windows/main.py:167
+msgid "The first homepage part does not start with 'http' or 'ftp'."
+msgstr "La prima parte della homepage non si avvia con 'http' o 'ftp'."
+
+#: portato/gui/windows/main.py:171
+msgid "Blank inside homepage."
+msgstr "Spazio vuoto nella homepage."
+
+#: portato/gui/windows/main.py:210
+#, python-format
+msgid "Package could not be found: %s"
+msgstr "Impossibile trovare il pacchetto %s"
+
+#: portato/gui/windows/main.py:264
+#: portato/gui/windows/main.py:363
+msgid "Masked by user"
+msgstr "Mascherato dall'utente"
+
+#: portato/gui/windows/main.py:454
+msgid "Loading Config"
+msgstr "Caricamento Config"
+
+#: portato/gui/windows/main.py:466
+msgid "Creating Database"
+msgstr "Creazione database"
+
+#: portato/gui/windows/main.py:470
+msgid "Loading Plugins"
+msgstr "Caricamento Plugins"
+
+#: portato/gui/windows/main.py:478
+msgid "Building frontend"
+msgstr "Costruzione frontend"
+
+#: portato/gui/windows/main.py:544
+msgid "Restoring Session"
+msgstr "Ripristino sessione"
+
+#: portato/gui/windows/main.py:554
+msgid "Loading Plugin Widgets"
+msgstr "Caricamento Plugin Widgets"
+
+#: portato/gui/windows/main.py:557
+msgid "Finishing startup"
+msgstr "Completamento fase di avvio"
+
+#: portato/gui/windows/main.py:609
+msgid "Options"
+msgstr "Opzioni"
+
+#: portato/gui/windows/main.py:625
+msgid "Categories"
+msgstr "Categorie"
+
+#: portato/gui/windows/main.py:684
+msgid "Packages"
+msgstr "Pacchetti"
+
+#: portato/gui/windows/main.py:719
+#, python-format
+msgid "Package '%s/%s' is disabled."
+msgstr "Il pacchetto '%s/%s' è disabilitato."
+
+#: portato/gui/windows/main.py:736
+msgid "Versions"
+msgstr "Versioni"
+
+#: portato/gui/windows/main.py:739
+msgid "Slot"
+msgstr "Slot"
+
+#: portato/gui/windows/main.py:827
+msgid "Flag"
+msgstr "Flag"
+
+#: portato/gui/windows/main.py:851
+msgid "This is an expanded use flag and cannot be selected"
+msgstr "Questa è una USE flag estesa e non può essere selezionata"
+
+#: portato/gui/windows/main.py:889
+#, python-format
+msgid "Translating session from version %d to %d."
+msgstr "Trasferisci la sessione dalla versione %d alla %d."
+
+#: portato/gui/windows/main.py:892
+#, python-format
+msgid "Cannot translate session from version %d to %d."
+msgstr "Impossibile trasferire la sessione dalla versione %d alla %d."
+
+#: portato/gui/windows/main.py:1391
+msgid "use flags"
+msgstr "USE flag"
+
+#: portato/gui/windows/main.py:1403
+msgid "masking keywords"
+msgstr "Keywords di mascheramento"
+
+#: portato/gui/windows/main.py:1780
+msgid "The portage tree is not existing."
+msgstr "Il Portage Tree non esiste."
+
+#: portato/gui/windows/main.py:1784
+msgid "The portage tree seems to be empty."
+msgstr "Il Portage Tree sembra essere vuoto."
+
+#: portato/gui/session.py:21
+msgid "Version mismatch."
+msgstr "Versione non corrispondente."
+
+#: portato/gui/session.py:27
+#, python-format
+msgid "Got '%d' - expected '%d'."
+msgstr "Ricevuto '%d' - atteso '%d'."
+
+#: portato/gui/session.py:30
+msgid "Current session format is too old."
+msgstr "Il formato della sessione corrente è obsoleto."
+
+#: portato/gui/session.py:33
+msgid "Current session format is newer than this version supports."
+msgstr "Il formato della sessione corrente è più recente di quello supportato."
+
+#: portato/gui/utils.py:190
+msgid "oneshot"
+msgstr "oneshot"
+
+#: portato/gui/utils.py:195
+#, python-format
+msgid "updating from version %s"
+msgstr "aggiornamento dalla versione %s"
+
+#: portato/gui/utils.py:197
+msgid "updating"
+msgstr "Aggiornamento"
+
+#: portato/gui/utils.py:202
+#, python-format
+msgid "downgrading from version %s"
+msgstr "downgrade dalla versione %s"
+
+#: portato/gui/utils.py:204
+msgid "downgrading"
+msgstr "downgrade"
+
+#: portato/gui/utils.py:208
+msgid "IUSE changes:"
+msgstr "Modifiche IUSE:"
+
+#: portato/gui/utils.py:226
+msgid "(In Progress)"
+msgstr "(In corso)"
+
+#: portato/gui/utils.py:251
+msgid "Install"
+msgstr "Installa"
+
+#: portato/gui/utils.py:262
+msgid "Uninstall"
+msgstr "Disinstalla"
+
+#: portato/gui/utils.py:274
+msgid "Update"
+msgstr "Aggiorna"
+
+#: portato/eix/exceptions.py:26
+msgid "Unknown error."
+msgstr "Errore sconosciuto."
+
+#: portato/eix/exceptions.py:37
+#, python-format
+msgid "End of file reached though it was not expected: '%s'"
+msgstr "Sebbene non fosse previsto, è stata raggiunta la fine del file: '%s'"
+
+#: portato/eix/exceptions.py:45
+#, python-format
+msgid "Version '%s' is not supported."
+msgstr "La versione '%s' non è supportata."
+
+#: portato/backend/flags.py:527
+#, python-format
+msgid "Conflicting values for masking status: %s"
+msgstr "Valori in conflitto per lo stato di mascheramento: %s"
+
+#: portato/backend/flags.py:690
+#, python-format
+msgid "Line %(line)s in file %(file)s misses a keyword (e.g. '~x86')."
+msgstr "Nella linea %(line)s del file %(file)s manca una keyword (e.g. '~x86')."
+
+#: portato/backend/portage/system.py:258
+#, python-format
+msgid "No best match for %s. It seems not to be in the tree anymore."
+msgstr "Nessun miglior risultato per %s. Sembra non essere più nel Portage tree."
+
+#: portato/backend/portage/system.py:316
+#, python-format
+msgid "Found a not installed dependency: %s."
+msgstr "E' stata trovata una dipendenza non installata: %s."
+
+#: portato/backend/portage/system.py:358
+#, python-format
+msgid "Bug? No best match could be found for '%(package)s'. Needed by: '%(cpv)s'."
+msgstr "Bug? Nessun miglior risultato trovato per '%(package)s'. Necessario per: '%(cpv)s'."
+
+#: portato/backend/portage/package.py:129
+#, python-format
+msgid "BUG in flags.new_masking_status. It returns '%s'"
+msgstr "BUG in flags.new_masking_status. Restituisce '%s'"
+
+#: portato/__init__.py:50
+msgid "do not fork off as root"
+msgstr "Non diventare root"
+
+#: portato/__init__.py:79
+msgid "Starting Portato"
+msgstr "Avvio Portato"
+
+#: portato/__init__.py:121
+msgid "No valid su command detected. Aborting."
+msgstr "Comando su non valido. Annullato."
+
+#: portato/helper.py:70
+msgid "Invalid dependency string"
+msgstr "Stringa di dipendenza non valida"
+
+#: portato/db/__init__.py:24
+msgid "SQLite"
+msgstr "Sqlite"
+
+#: portato/db/__init__.py:24
+msgid ""
+"Uses an SQLite-database to store package information.\n"
+"May take longer to generate at the first time, but has advantages if portato is re-started with an unchanged portage tree. Additionally it allows to use fast SQL expressions for fetching the data."
+msgstr ""
+"Usa un database SQLite per memorizzare le informazioni del pacchetto.\n"
+"Può richiedere più tempo per essere creato la prima volta, ma è vantaggioso se Portato viene riavviato con lo stesso 'portage tree'. Inoltre permette di usare veloci espressioni SQL per il recupero dei dati."
+
+#: portato/db/__init__.py:25
+msgid "Hashmap"
+msgstr "Hashmap"
+
+#: portato/db/__init__.py:25
+msgid ""
+"Uses an in-memory hashmap to store package information.\n"
+"Has been used since at least version 0.3.3, but all information has to be regenerated on each startup."
+msgstr ""
+"Usa una 'hashmap' della memoria per memorizzare le informazioni del pacchetto.\n"
+"E' stata usata fino all'ultima versione 0.3.3, ma tutte le informazioni devono essere ricreate ad ogni riavvio."
+
+#: portato/db/__init__.py:26
+msgid "eix + SQLite"
+msgstr "eix + SQLite"
+
+#: portato/db/__init__.py:26
+msgid ""
+"Similar to SQLite, but now uses the eix database to get the package information.\n"
+"This should be much faster on startup, but requires that your eix database is always up-to-date."
+msgstr ""
+"Simile a SQLite, ma usa un database eix per le informazioni del pacchetto.\n"
+"Questo dovrebbe essere molto più veloce all'avvio, ma richiede che il tuo database eix sia sempre aggiornato."
+
+#: portato/db/__init__.py:41
+#: portato/db/__init__.py:56
+#, python-format
+msgid "Cannot load %s."
+msgstr "Impossibile caricare %s."
+
+#: portato/db/__init__.py:62
+#, python-format
+msgid "Unknown database type: %s"
+msgstr "Tipo di database sconosciuto: %s"
+
+#: portato/db/hash.py:94
+#, python-format
+msgid "Catched KeyError => %s seems not to be an available category. Have you played with rsync-excludes?"
+msgstr "Errore Chiave => %s non sembra essere una categoria disponibile. Hai giocato con rsync-excludes?"
+
+#: portato/db/hash.py:149
+#, python-format
+msgid "Error while compiling search expression: '%s'."
+msgstr "Errore durante la compilazione dell'espressione di ricerca: '%s'."
+
+#: portato/db/eix_sql.py:35
+#, python-format
+msgid "Cache file '%s' does not exist. Using default instead."
+msgstr "Il cache file '%s' non esiste. Uso quello di default."
+
+#: portato/db/database.py:38
+msgid "ALL"
+msgstr "TUTTO"
+
+#: portato/db/sql.py:79
+msgid "Cleaning database..."
+msgstr "Pulizia database..."
+
+#: portato/db/sql.py:81
+msgid "Populating database..."
+msgstr "Riempimento database"
+
+#: portato/session.py:67
+#, python-format
+msgid "Loading '%s' session from %s."
+msgstr "Caricamento sessione '%s' da %s."
+
+#: portato/session.py:69
+#, python-format
+msgid "Loading session from %s."
+msgstr "Caricamento sessione da %s."
+
+#: portato/session.py:141
+#, python-format
+msgid "Saving '%s' session to %s."
+msgstr "Salvataggio sessione '%s' in %s."
+
+#: portato/session.py:143
+#, python-format
+msgid "Saving session to %s."
+msgstr "Salvataggio sessione in %s."
+
+#: portato/config_parser.py:266
+#, python-format
+msgid "Unrecognized line in configuration: %s"
+msgstr "Linea non riconosciuta nella configurazione: %s"
+
+#: portato/listener.py:85
+msgid "Listener has not been started."
+msgstr "Listener non è stato avviato."
+
+#: portato/listener.py:94
+#, python-format
+msgid "An exception occured while accessing the message queue: %s"
+msgstr "Si è verificata un'eccezione durante l'accesso alla coda di messaggi: %s"
+
+#: portato/plugin.py:446
+#: portato/plugin.py:449
+#, python-format
+msgid "Loading plugin module '%(plugin)s' failed: %(error)s"
+msgstr "Il caricamento del modulo '%(plugin)s' è fallito: %(error)s"
+
+#: portato/plugin.py:459
+#, python-format
+msgid "Loading widgets plugin '%(plugin)s' failed: %(error)s"
+msgstr "Il caricamento del modulo '%(plugin)s' è fallito: %(error)s"
+
+#: portato/plugin.py:462
+#, python-format
+msgid "Loading widgets of plugin '%(plugin)s' failed: %(error)s"
+msgstr "Il caricamento del modulo '%(plugin)s' è fallito: %(error)s"
+
+#: portato/plugin.py:466
+#, python-format
+msgid "Widgets of plugin '%s' loaded."
+msgstr "Modulo di plugin '%s' loaded."
+
+#: portato/plugin.py:497
+msgid "Plugin is disabled!"
+msgstr "Il plugin è disabilitato!"
+
+#: portato/plugin.py:499
+msgid "Plugin has unresolved dependencies - disabled!"
+msgstr "Il plugin ha dipendenze non risolte - disabilitato!"
+
+#: portato/plugin.py:503
+#, python-format
+msgid "Plugin '%s' loaded."
+msgstr "Il plugin '%s' è stato caricato."
+
+#: portato/plugin.py:543
+#, python-format
+msgid "Overriding hook '%(hook)s' with plugin '%(plugin)s'."
+msgstr "Sto facendo l'override di '%(hook)s' con plugin '%(plugin)s'."
+
+#: portato/plugin.py:601
+#, python-format
+msgid "For hook '%(hook)s' an override is already defined by plugin '%(plugin)s'!"
+msgstr "Per '%(hook)s' un override è già definito dal plugin '%(plugin)s'!"
+
+#: portato/plugin.py:602
+#, python-format
+msgid "It is now replaced by the one from plugin '%s'!"
+msgstr "E' ora sostituito da quello del plugin '%s'!"
+
+#: portato/plugin.py:635
+#, python-format
+msgid "Dependant '%(dep)s' for '%(hook)s' in plugin '%(plugin)s' not found! Adding nevertheless."
+msgstr "Non è stata trovata la dipendenza '%(dep)s' per '%(hook)s' nel plugin '%(plugin)s'! Tuttavia è stato aggiunto ugualmente."
+
+#: portato/plugin.py:704
+#: portato/plugin.py:707
+#, python-format
+msgid "Registrating plugin '%(plugin)s' failed: %(error)s"
+msgstr "La registrazione del plugin '%(plugin)s' è fallita: %(error)s"
+
+#: plugins/etc_proposals.py:32
+msgid "Cannot start etc-proposals. Not root!"
+msgstr "Impossibile avviare etc-proposals. Non sei root!"
+
+#: plugins/package_details.py:73
+msgid "Shows the Changelog of a package"
+msgstr "Mostra il Changelog di un pacchetto"
+
+#: plugins/package_details.py:75
+msgid "Changelog"
+msgstr "Changelog"
+
+#: plugins/package_details.py:85
+msgid "Shows the ebuild of a package"
+msgstr "Mostra l'ebuild di un pacchetto"
+
+#: plugins/package_details.py:88
+msgid "Ebuild"
+msgstr "Ebuild"
+
+#: plugins/package_details.py:95
+msgid "Shows the installed files of a package"
+msgstr "Mostra i files di un pacchetto installati"
+
+#: plugins/package_details.py:97
+msgid "Files"
+msgstr "Files"
+
+#: plugins/package_details.py:111
+msgid "Shows the dependencies of a package"
+msgstr "Mostra le dipendenze di un pacchetto"
+
+#: plugins/package_details.py:113
+msgid "Dependencies"
+msgstr "Dipendenze"
+
+#: plugins/package_details.py:185
+#, python-format
+msgid "If '%s' is disabled"
+msgstr "Se '%s' è disabilitato"
+
+#: plugins/package_details.py:187
+#, python-format
+msgid "If '%s' is enabled"
+msgstr "Se '%s' è abilitato"
+
+#: plugins/package_details.py:193
+msgid "One of the following"
+msgstr "Uno dei seguenti"
+
+#: plugins/package_details.py:198
+msgid "All of the following"
+msgstr "Tutti i seguenti"
+
+#: plugins/package_details.py:209
+msgid "Can't display dependencies: This package has an unsupported dependency string."
+msgstr "Non posso mostrare le dipendenze. Questo pacchetto ha un stringa di dipendenze non supportata."
+
+#: plugins/notify.py:23
+msgid "Cannot import 'pynotify'."
+msgstr "Impossibile importare 'pynotify'."
+
+#: plugins/notify.py:35
+msgid "Notify called while process is still running!"
+msgstr "Una notifica è stata chiamata mentre il processo è ancora in corso!"
+
+#: plugins/notify.py:39
+msgid "Emerge finished!"
+msgstr "Emerge terminato!"
+
+#: plugins/notify.py:43
+msgid "Emerge failed!"
+msgstr "Emerge fallito!"
+
+#: plugins/notify.py:44
+#, python-format
+msgid "Error Code: %d"
+msgstr "Codice errore: %d"
+
diff --git a/i18n/messages.pot b/i18n/messages.pot
index f148ce2..ec2d7cb 100644
--- a/i18n/messages.pot
+++ b/i18n/messages.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-08-31 22:12+0200\n"
+"POT-Creation-Date: 2010-04-09 23:55+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -16,111 +16,111 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
-#: portato/gui/templates/UpdateWindow.ui:6
-msgid "Updatable Packages"
-msgstr ""
-
-#: portato/gui/templates/UpdateWindow.ui:48
+#: portato/gui/templates/PkgListWindow.ui:48
msgid "_Close"
msgstr ""
-#: portato/gui/templates/UpdateWindow.ui:59
+#: portato/gui/templates/PkgListWindow.ui:64 portato/gui/windows/pkglist.py:35
msgid "Select _All"
msgstr ""
-#: portato/gui/templates/UpdateWindow.ui:73
+#: portato/gui/templates/PkgListWindow.ui:80
msgid "_Install Selected"
msgstr ""
+#: portato/gui/templates/PkgListWindow.ui:96
+msgid "_Uninstall Selected"
+msgstr ""
+
#: portato/gui/templates/PreferenceWindow.ui:12
msgid "Preferences"
msgstr ""
-#: portato/gui/templates/PreferenceWindow.ui:48
+#: portato/gui/templates/PreferenceWindow.ui:51
msgid "Debug"
msgstr ""
-#: portato/gui/templates/PreferenceWindow.ui:61
+#: portato/gui/templates/PreferenceWindow.ui:64
msgid "Search while typing"
msgstr ""
-#: portato/gui/templates/PreferenceWindow.ui:81
+#: portato/gui/templates/PreferenceWindow.ui:84
msgid "Browser command: "
msgstr ""
-#: portato/gui/templates/PreferenceWindow.ui:108
-#: portato/gui/templates/PreferenceWindow.ui:717
+#: portato/gui/templates/PreferenceWindow.ui:111
+#: portato/gui/templates/PreferenceWindow.ui:725
msgid "<b>General Options</b>"
msgstr ""
-#: portato/gui/templates/PreferenceWindow.ui:142
+#: portato/gui/templates/PreferenceWindow.ui:146
msgid "Used database type"
msgstr ""
-#: portato/gui/templates/PreferenceWindow.ui:178
-#: portato/gui/templates/PluginWindow.ui:93
-#: portato/gui/templates/PluginWindow.ui:118
-#: portato/gui/templates/MainWindow.ui:369
-#: portato/gui/templates/MainWindow.ui:485
-#: portato/gui/templates/MainWindow.ui:598
-#: portato/gui/templates/MainWindow.ui:613
+#: portato/gui/templates/PreferenceWindow.ui:182
+#: portato/gui/templates/PluginWindow.ui:97
+#: portato/gui/templates/PluginWindow.ui:122
+#: portato/gui/templates/MainWindow.ui:190
+#: portato/gui/templates/MainWindow.ui:304
+#: portato/gui/templates/MainWindow.ui:417
+#: portato/gui/templates/MainWindow.ui:432
msgid "label"
msgstr ""
-#: portato/gui/templates/PreferenceWindow.ui:188
+#: portato/gui/templates/PreferenceWindow.ui:192
msgid "<b>Description</b>"
msgstr ""
-#: portato/gui/templates/PreferenceWindow.ui:204
+#: portato/gui/templates/PreferenceWindow.ui:208
msgid "<b>Database Options</b>"
msgstr ""
-#: portato/gui/templates/PreferenceWindow.ui:226
-#: portato/gui/templates/MainWindow.ui:754
+#: portato/gui/templates/PreferenceWindow.ui:230
+#: portato/gui/templates/MainWindow.ui:582
msgid "General"
msgstr ""
-#: portato/gui/templates/PreferenceWindow.ui:308
+#: portato/gui/templates/PreferenceWindow.ui:314
msgid "<b>Package sets to update</b>"
msgstr ""
-#: portato/gui/templates/PreferenceWindow.ui:324
+#: portato/gui/templates/PreferenceWindow.ui:330
msgid "<b>Update World Options</b>"
msgstr ""
-#: portato/gui/templates/PreferenceWindow.ui:350
+#: portato/gui/templates/PreferenceWindow.ui:356
msgid "Sync command: "
msgstr ""
-#: portato/gui/templates/PreferenceWindow.ui:372
+#: portato/gui/templates/PreferenceWindow.ui:378
msgid "<b>Sync Options</b>"
msgstr ""
-#: portato/gui/templates/PreferenceWindow.ui:413
+#: portato/gui/templates/PreferenceWindow.ui:419
msgid "File name to use, if package.use is a directory: "
msgstr ""
-#: portato/gui/templates/PreferenceWindow.ui:423
+#: portato/gui/templates/PreferenceWindow.ui:429
msgid "Add only exact version to package.use"
msgstr ""
-#: portato/gui/templates/PreferenceWindow.ui:437
+#: portato/gui/templates/PreferenceWindow.ui:443
msgid "Add only exact version to package.keywords"
msgstr ""
-#: portato/gui/templates/PreferenceWindow.ui:453
+#: portato/gui/templates/PreferenceWindow.ui:459
msgid "File name to use, if package.keywords is a directory: "
msgstr ""
-#: portato/gui/templates/PreferenceWindow.ui:487
+#: portato/gui/templates/PreferenceWindow.ui:493
msgid "File name to use, if package.mask/package.unmask is a directory: "
msgstr ""
-#: portato/gui/templates/PreferenceWindow.ui:497
+#: portato/gui/templates/PreferenceWindow.ui:503
msgid "Add only exact version to package.mask/package.unmask"
msgstr ""
-#: portato/gui/templates/PreferenceWindow.ui:521
+#: portato/gui/templates/PreferenceWindow.ui:527
msgid ""
"<u>You may use the following placeholders:</u>\n"
"\n"
@@ -130,343 +130,342 @@ msgid ""
"<i>$(version)</i> : version of the package"
msgstr ""
-#: portato/gui/templates/PreferenceWindow.ui:545
+#: portato/gui/templates/PreferenceWindow.ui:551
msgid "<u><i>Use-Flags</i></u>"
msgstr ""
-#: portato/gui/templates/PreferenceWindow.ui:560
+#: portato/gui/templates/PreferenceWindow.ui:566
msgid "<u><i>Testing Keywords</i></u>"
msgstr ""
-#: portato/gui/templates/PreferenceWindow.ui:575
+#: portato/gui/templates/PreferenceWindow.ui:581
msgid "<u><i>Masking Keywords</i></u>"
msgstr ""
-#: portato/gui/templates/PreferenceWindow.ui:601
+#: portato/gui/templates/PreferenceWindow.ui:607
msgid "<b>Use Flag and Keyword Options</b>"
msgstr ""
-#: portato/gui/templates/PreferenceWindow.ui:619
+#: portato/gui/templates/PreferenceWindow.ui:625
msgid "Portage"
msgstr ""
-#: portato/gui/templates/PreferenceWindow.ui:655
+#: portato/gui/templates/PreferenceWindow.ui:663
msgid "Enable systray"
msgstr ""
-#: portato/gui/templates/PreferenceWindow.ui:669
+#: portato/gui/templates/PreferenceWindow.ui:677
msgid "Show emerge progress in window title"
msgstr ""
-#: portato/gui/templates/PreferenceWindow.ui:683
+#: portato/gui/templates/PreferenceWindow.ui:691
msgid "Show emerge progress in console title"
msgstr ""
-#: portato/gui/templates/PreferenceWindow.ui:697
+#: portato/gui/templates/PreferenceWindow.ui:705
msgid "Hide on minimization (only if systray is enabled)"
msgstr ""
-#: portato/gui/templates/PreferenceWindow.ui:755
+#: portato/gui/templates/PreferenceWindow.ui:764
msgid "Package Tabs"
msgstr ""
-#: portato/gui/templates/PreferenceWindow.ui:785
+#: portato/gui/templates/PreferenceWindow.ui:793
msgid "System Tabs"
msgstr ""
-#: portato/gui/templates/PreferenceWindow.ui:813
+#: portato/gui/templates/PreferenceWindow.ui:821
msgid "<b>Tab Options</b>"
msgstr ""
-#: portato/gui/templates/PreferenceWindow.ui:841
+#: portato/gui/templates/PreferenceWindow.ui:850
msgid "Show slots in the version list"
msgstr ""
-#: portato/gui/templates/PreferenceWindow.ui:854
+#: portato/gui/templates/PreferenceWindow.ui:863
msgid "Collapse categories with same prefix"
msgstr ""
-#: portato/gui/templates/PreferenceWindow.ui:875
+#: portato/gui/templates/PreferenceWindow.ui:884
msgid "<b>Package Options</b>"
msgstr ""
-#: portato/gui/templates/PreferenceWindow.ui:911
+#: portato/gui/templates/PreferenceWindow.ui:921
msgid "Console Font"
msgstr ""
-#: portato/gui/templates/PreferenceWindow.ui:924
+#: portato/gui/templates/PreferenceWindow.ui:934
msgid "Chose a console font"
msgstr ""
-#: portato/gui/templates/PreferenceWindow.ui:945
+#: portato/gui/templates/PreferenceWindow.ui:955
msgid "Maximum length of the console title"
msgstr ""
-#: portato/gui/templates/PreferenceWindow.ui:978
+#: portato/gui/templates/PreferenceWindow.ui:988
msgid "<b>Console Options</b>"
msgstr ""
-#: portato/gui/templates/PreferenceWindow.ui:1015
+#: portato/gui/templates/PreferenceWindow.ui:1026
msgid "Package Detail Background"
msgstr ""
-#: portato/gui/templates/PreferenceWindow.ui:1049
+#: portato/gui/templates/PreferenceWindow.ui:1060
msgid "Flag Placeholder Description Background"
msgstr ""
-#: portato/gui/templates/PreferenceWindow.ui:1080
+#: portato/gui/templates/PreferenceWindow.ui:1091
msgid "<b>Color Options</b>"
msgstr ""
-#: portato/gui/templates/PreferenceWindow.ui:1101
+#: portato/gui/templates/PreferenceWindow.ui:1112
msgid "Visual"
msgstr ""
-#: portato/gui/templates/PluginWindow.ui:7
+#: portato/gui/templates/PluginWindow.ui:8
msgid "Plugins"
msgstr ""
-#: portato/gui/templates/PluginWindow.ui:51
+#: portato/gui/templates/PluginWindow.ui:53
msgid "_Install dependencies"
msgstr ""
-#: portato/gui/templates/PluginWindow.ui:79
+#: portato/gui/templates/PluginWindow.ui:83
msgid "Needed dependencies"
msgstr ""
-#: portato/gui/templates/PluginWindow.ui:104
+#: portato/gui/templates/PluginWindow.ui:108
msgid "<b>Author:</b>"
msgstr ""
-#: portato/gui/templates/PluginWindow.ui:139 portato/gui/windows/update.py:47
-#: portato/gui/windows/main.py:825 portato/gui/windows/plugin.py:27
+#: portato/gui/templates/PluginWindow.ui:141 portato/gui/windows/pkglist.py:59
+#: portato/gui/windows/main.py:843 portato/gui/windows/plugin.py:27
msgid "Enabled"
msgstr ""
-#: portato/gui/templates/PluginWindow.ui:148 portato/gui/windows/plugin.py:27
+#: portato/gui/templates/PluginWindow.ui:157 portato/gui/windows/plugin.py:27
msgid "Temporarily enabled"
msgstr ""
-#: portato/gui/templates/PluginWindow.ui:159 portato/gui/windows/plugin.py:27
+#: portato/gui/templates/PluginWindow.ui:172 portato/gui/windows/plugin.py:27
msgid "Temporarily disabled"
msgstr ""
-#: portato/gui/templates/PluginWindow.ui:171 portato/gui/windows/plugin.py:27
+#: portato/gui/templates/PluginWindow.ui:188 portato/gui/windows/plugin.py:27
msgid "Disabled"
msgstr ""
-#: portato/gui/templates/AboutWindow.ui:7
+#: portato/gui/templates/AboutWindow.ui:8
msgid "About Portato"
msgstr ""
-#: portato/gui/templates/MailInfoWindow.ui:5
+#: portato/gui/templates/MailInfoWindow.ui:6
msgid "Send Bug Mail ..."
msgstr ""
-#: portato/gui/templates/MailInfoWindow.ui:30
+#: portato/gui/templates/MailInfoWindow.ui:29
msgid ""
"<b><u>Additional Information</u></b>\n"
"\n"
"(all optional)"
msgstr ""
-#: portato/gui/templates/MailInfoWindow.ui:74
+#: portato/gui/templates/MailInfoWindow.ui:73
msgid "Email address:"
msgstr ""
-#: portato/gui/templates/MailInfoWindow.ui:89
+#: portato/gui/templates/MailInfoWindow.ui:88
msgid "Name:"
msgstr ""
-#: portato/gui/templates/MailInfoWindow.ui:104
+#: portato/gui/templates/MailInfoWindow.ui:103
msgid ""
"Comments /\n"
"what did you do to hit the bug?"
msgstr ""
-#: portato/gui/templates/MailInfoWindow.ui:141
-msgid ""
-"Attaches the logfile to the mail. This log only contains debug information."
-msgstr ""
-
-#: portato/gui/templates/MailInfoWindow.ui:142
-msgid "Attach _Logfile"
+#: portato/gui/templates/MailInfoWindow.ui:160
+msgid "These files will be sent:"
msgstr ""
-#: portato/gui/templates/MailInfoWindow.ui:194
+#: portato/gui/templates/MailInfoWindow.ui:220
msgid "_Send"
msgstr ""
-#: portato/gui/templates/SearchWindow.ui:7
+#: portato/gui/templates/SearchWindow.ui:8
msgid "Search Results"
msgstr ""
-#: portato/gui/templates/MainWindow.ui:10
-msgid "Plu_gins"
+#: portato/gui/templates/MainWindow.ui:204
+msgid "Install onto system"
msgstr ""
-#: portato/gui/templates/MainWindow.ui:20
-msgid "_File"
+#: portato/gui/templates/MainWindow.ui:226
+msgid "Uninstall from system"
msgstr ""
-#: portato/gui/templates/MainWindow.ui:27
-msgid "_Preferences"
+#: portato/gui/templates/MainWindow.ui:248
+msgid "Revert changes"
msgstr ""
-#: portato/gui/templates/MainWindow.ui:36
-msgid "Re_load Portage"
+#: portato/gui/templates/MainWindow.ui:320
+msgid "<b>License:</b>"
msgstr ""
-#: portato/gui/templates/MainWindow.ui:52
-msgid "_Emerge"
+#: portato/gui/templates/MainWindow.ui:337
+msgid "<b>Installed, but not in portage anymore</b>"
msgstr ""
-#: portato/gui/templates/MainWindow.ui:59
-msgid "_Install"
+#: portato/gui/templates/MainWindow.ui:352
+msgid "<span foreground='red'><b>MISSING KEYWORD</b></span>"
msgstr ""
-#: portato/gui/templates/MainWindow.ui:68
-msgid "_Uninstall"
+#: portato/gui/templates/MainWindow.ui:384
+msgid "<b>Description:</b>"
msgstr ""
-#: portato/gui/templates/MainWindow.ui:76
-#: portato/gui/templates/MainWindow.ui:847
-msgid "Update _World"
+#: portato/gui/templates/MainWindow.ui:400
+msgid "<b>Overlay:</b>"
msgstr ""
-#: portato/gui/templates/MainWindow.ui:83
-msgid "Show Updatable P_ackages"
+#: portato/gui/templates/MainWindow.ui:448
+msgid "<b>Homepage:</b>"
msgstr ""
-#: portato/gui/templates/MainWindow.ui:90
-msgid "Show _Only Installed Packages"
+#: portato/gui/templates/MainWindow.ui:462 portato/gui/windows/main.py:844
+msgid "Installed"
msgstr ""
-#: portato/gui/templates/MainWindow.ui:99
-msgid "_Sync"
+#: portato/gui/templates/MainWindow.ui:481 portato/gui/windows/main.py:256
+#: portato/gui/windows/main.py:259 portato/gui/windows/main.py:262
+#: portato/gui/windows/main.py:362 portato/gui/windows/main.py:366
+#: portato/gui/windows/main.py:373 portato/gui/windows/main.py:377
+msgid "Masked"
msgstr ""
-#: portato/gui/templates/MainWindow.ui:108
-msgid "Save _Flags"
+#: portato/gui/templates/MainWindow.ui:514 portato/gui/windows/main.py:272
+#: portato/gui/windows/main.py:275 portato/gui/windows/main.py:335
+#: portato/gui/windows/main.py:339
+msgid "Testing"
msgstr ""
-#: portato/gui/templates/MainWindow.ui:115
-msgid "Emerge _Paused"
+#: portato/gui/templates/MainWindow.ui:537
+msgid "<b>Use Flags:</b>"
msgstr ""
-#: portato/gui/templates/MainWindow.ui:124
-msgid "_Kill Emerge"
+#: portato/gui/templates/MainWindow.ui:607
+msgid "Use List"
msgstr ""
-#: portato/gui/templates/MainWindow.ui:133
-msgid "_Copy"
+#: portato/gui/templates/MainWindow.ui:647
+msgid "Execute the current selected queue"
msgstr ""
-#: portato/gui/templates/MainWindow.ui:140
-msgid "_?"
+#: portato/gui/templates/MainWindow.ui:668
+msgid "E_xecute"
msgstr ""
-#: portato/gui/templates/MainWindow.ui:147
-msgid "_About"
+#: portato/gui/templates/MainWindow.ui:687
+msgid "Update _World"
msgstr ""
-#: portato/gui/templates/MainWindow.ui:155
-msgid "_Plugins"
+#: portato/gui/templates/MainWindow.ui:691
+msgid ""
+"Calculate the packages which will be installed during an \"update world\""
msgstr ""
-#: portato/gui/templates/MainWindow.ui:380
-msgid "Install onto system"
+#: portato/gui/templates/MainWindow.ui:703
+msgid "_Remove"
msgstr ""
-#: portato/gui/templates/MainWindow.ui:402
-msgid "Uninstall from system"
+#: portato/gui/templates/MainWindow.ui:707
+msgid "Remove the selected package from the queue"
msgstr ""
-#: portato/gui/templates/MainWindow.ui:424
-msgid "Revert changes"
+#: portato/gui/templates/MainWindow.ui:782 portato/gui/windows/main.py:620
+msgid "Queue"
msgstr ""
-#: portato/gui/templates/MainWindow.ui:501
-msgid "<b>License:</b>"
+#: portato/gui/templates/MainWindow.ui:806 portato/gui/windows/main.py:1253
+#: portato/gui/windows/main.py:1255
+msgid "Console"
msgstr ""
-#: portato/gui/templates/MainWindow.ui:518
-msgid "<b>Installed, but not in portage anymore</b>"
+#: portato/gui/templates/MainWindow.ui:840
+msgid "Log"
msgstr ""
-#: portato/gui/templates/MainWindow.ui:533
-msgid "<span foreground='red'><b>MISSING KEYWORD</b></span>"
+#: portato/gui/templates/MainWindow.menu:9
+#: portato/gui/templates/MainWindow.menu:161
+msgid "Plu_gins"
msgstr ""
-#: portato/gui/templates/MainWindow.ui:565
-msgid "<b>Description:</b>"
+#: portato/gui/templates/MainWindow.menu:19
+msgid "_General"
msgstr ""
-#: portato/gui/templates/MainWindow.ui:581
-msgid "<b>Overlay:</b>"
+#: portato/gui/templates/MainWindow.menu:26
+msgid "_Preferences"
msgstr ""
-#: portato/gui/templates/MainWindow.ui:629
-msgid "<b>Homepage:</b>"
+#: portato/gui/templates/MainWindow.menu:35
+msgid "Re_load Portage"
msgstr ""
-#: portato/gui/templates/MainWindow.ui:647 portato/gui/windows/main.py:826
-msgid "Installed"
+#: portato/gui/templates/MainWindow.menu:51
+msgid "_Emerge"
msgstr ""
-#: portato/gui/templates/MainWindow.ui:665 portato/gui/windows/main.py:255
-#: portato/gui/windows/main.py:258 portato/gui/windows/main.py:261
-#: portato/gui/windows/main.py:361 portato/gui/windows/main.py:365
-#: portato/gui/windows/main.py:372 portato/gui/windows/main.py:376
-msgid "Masked"
+#: portato/gui/templates/MainWindow.menu:58
+msgid "_Install"
msgstr ""
-#: portato/gui/templates/MainWindow.ui:697 portato/gui/windows/main.py:271
-#: portato/gui/windows/main.py:274 portato/gui/windows/main.py:334
-#: portato/gui/windows/main.py:338
-msgid "Testing"
+#: portato/gui/templates/MainWindow.menu:67
+msgid "_Uninstall"
msgstr ""
-#: portato/gui/templates/MainWindow.ui:715
-msgid "<b>Use Flags:</b>"
+#: portato/gui/templates/MainWindow.menu:75
+msgid "Up_date World"
msgstr ""
-#: portato/gui/templates/MainWindow.ui:776
-msgid "Use List"
+#: portato/gui/templates/MainWindow.menu:82
+msgid "Show Updatable P_ackages"
msgstr ""
-#: portato/gui/templates/MainWindow.ui:813
-msgid "Execute the current selected queue"
+#: portato/gui/templates/MainWindow.menu:89
+msgid "Show _World Packages"
msgstr ""
-#: portato/gui/templates/MainWindow.ui:831
-msgid "E_xecute"
+#: portato/gui/templates/MainWindow.menu:96
+msgid "Show _Only Installed Packages"
msgstr ""
-#: portato/gui/templates/MainWindow.ui:846
-msgid ""
-"Calculate the packages which will be installed during an \"update world\""
+#: portato/gui/templates/MainWindow.menu:105
+msgid "_Sync"
msgstr ""
-#: portato/gui/templates/MainWindow.ui:858
-msgid "Remove the selected package from the queue"
+#: portato/gui/templates/MainWindow.menu:114
+msgid "Save _Flags"
msgstr ""
-#: portato/gui/templates/MainWindow.ui:859
-msgid "_Remove"
+#: portato/gui/templates/MainWindow.menu:121
+msgid "Emerge _Paused"
msgstr ""
-#: portato/gui/templates/MainWindow.ui:929 portato/gui/windows/main.py:606
-msgid "Queue"
+#: portato/gui/templates/MainWindow.menu:130
+msgid "_Kill Emerge"
msgstr ""
-#: portato/gui/templates/MainWindow.ui:950 portato/gui/windows/main.py:1206
-#: portato/gui/windows/main.py:1208
-msgid "Console"
+#: portato/gui/templates/MainWindow.menu:139
+msgid "_Copy"
msgstr ""
-#: portato/gui/templates/MainWindow.ui:981
-msgid "Log"
+#: portato/gui/templates/MainWindow.menu:146
+msgid "_?"
+msgstr ""
+
+#: portato/gui/templates/MainWindow.menu:153
+msgid "_About"
msgstr ""
#: portato/gui/dialogs.py:17
@@ -479,82 +478,106 @@ msgid "The error was: %s"
msgstr ""
#: portato/gui/dialogs.py:24
-msgid "Do you really want to quit?"
+msgid "No email address given"
msgstr ""
#: portato/gui/dialogs.py:25
msgid ""
+"You haven't specified an email address. Without it, it will not be possible "
+"for the developers to contact you for questions and thus it might be harder "
+"to fix the bug.\n"
+"\n"
+"Do you want to proceed nevertheless?"
+msgstr ""
+
+#: portato/gui/dialogs.py:31
+msgid "Do you really want to quit?"
+msgstr ""
+
+#: portato/gui/dialogs.py:32
+msgid ""
"There are some packages in the emerge queue and/or an emerge process is "
"running."
msgstr ""
-#: portato/gui/dialogs.py:43
+#: portato/gui/dialogs.py:50
#, python-format
msgid "%(blocked)s is blocked by %(blocks)s."
msgstr ""
-#: portato/gui/dialogs.py:44
+#: portato/gui/dialogs.py:51
msgid "Please unmerge the blocking package."
msgstr ""
-#: portato/gui/dialogs.py:50
+#: portato/gui/dialogs.py:57
msgid "You are not root."
msgstr ""
-#: portato/gui/dialogs.py:56
+#: portato/gui/dialogs.py:63
#, python-format
msgid "%s seems to be masked."
msgstr ""
-#: portato/gui/dialogs.py:57
+#: portato/gui/dialogs.py:64
msgid "Do you want to unmask it and its dependencies?"
msgstr ""
-#: portato/gui/dialogs.py:63
+#: portato/gui/dialogs.py:70
msgid "Package not found!"
msgstr ""
-#: portato/gui/dialogs.py:69
+#: portato/gui/dialogs.py:76 portato/gui/dialogs.py:87
msgid "Do not show this dialog again."
msgstr ""
-#: portato/gui/dialogs.py:70
+#: portato/gui/dialogs.py:77
#, python-format
msgid "Changed %s"
msgstr ""
-#: portato/gui/dialogs.py:71
+#: portato/gui/dialogs.py:78
msgid ""
"Portato will write these changes into the appropriate files.\n"
-"Please backup them if you think it is necessairy."
+"Please backup them if you think it is necessary."
+msgstr ""
+
+#: portato/gui/dialogs.py:88
+msgid "'Update World' may be giving errors"
+msgstr ""
+
+#: portato/gui/dialogs.py:89
+msgid ""
+"Due to the fast changing portage, 'update world' might not work correctly or "
+"even throw errors.\n"
+"This will be fixed (hopefully) in the next release."
msgstr ""
-#: portato/gui/dialogs.py:80
+#: portato/gui/dialogs.py:98
msgid "You cannot remove dependencies. :)"
msgstr ""
-#: portato/gui/dialogs.py:86
+#: portato/gui/dialogs.py:104
msgid ""
"This is the updates queue. You cannot remove single elements.\n"
"Do you want to clear the whole queue instead?"
msgstr ""
-#: portato/gui/dialogs.py:92
+#: portato/gui/dialogs.py:110
msgid "Do you really want to clear the whole queue?"
msgstr ""
-#: portato/gui/dialogs.py:111
+#: portato/gui/dialogs.py:129
msgid "A prerequisite for starting Portato was not matched."
msgstr ""
-#: portato/gui/dialogs.py:115
+#: portato/gui/dialogs.py:133
msgid ""
"<b>Note</b>: On fresh Sabayon installs or its LiveDVD/-CD, there is no "
"portage tree existing per default.\n"
"Please run <i>emerge --sync &amp;&amp; layman -S</i>."
msgstr ""
-#: portato/gui/dialogs.py:123 portato/gui/windows/main.py:1255
+#: portato/gui/dialogs.py:141 portato/gui/windows/main.py:1302
#, python-format
msgid "No versions of package '%s' found!"
msgstr ""
@@ -626,18 +649,31 @@ msgstr ""
msgid "Results"
msgstr ""
-#: portato/gui/windows/mailinfo.py:83
-#, python-format
-msgid ""
-"An error occurred while sending. I think we were greylisted. The error: %s"
+#: portato/gui/windows/pkglist.py:36
+msgid "Unselect _All"
+msgstr ""
+
+#: portato/gui/windows/pkglist.py:60
+msgid "Package"
msgstr ""
-#: portato/gui/windows/mailinfo.py:84
-msgid "Retrying after waiting 60 seconds."
+#: portato/gui/windows/pkglist.py:147
+msgid "Updatable Packages"
msgstr ""
-#: portato/gui/windows/update.py:48
-msgid "Package"
+#: portato/gui/windows/pkglist.py:151
+msgid "World Packages"
+msgstr ""
+
+#: portato/gui/windows/mailinfo.py:144
+#, python-format
+msgid "Retrying after waiting %d seconds."
+msgstr ""
+
+#: portato/gui/windows/mailinfo.py:157
+#, python-format
+msgid ""
+"An error occurred while sending. I think we were greylisted. The error: %s"
msgstr ""
#: portato/gui/windows/splash.py:35
@@ -665,115 +701,116 @@ msgstr ""
msgid "Package Set"
msgstr ""
-#: portato/gui/windows/preference.py:259 portato/gui/windows/main.py:828
+#: portato/gui/windows/preference.py:259 portato/gui/windows/main.py:846
+#: portato/db/database.py:51 portato/db/database.py:52
msgid "Description"
msgstr ""
-#: portato/gui/windows/main.py:141
+#: portato/gui/windows/main.py:142
msgid "<no description>"
msgstr ""
-#: portato/gui/windows/main.py:167
+#: portato/gui/windows/main.py:168
msgid "The first homepage part does not start with 'http' or 'ftp'."
msgstr ""
-#: portato/gui/windows/main.py:171
+#: portato/gui/windows/main.py:172
msgid "Blank inside homepage."
msgstr ""
-#: portato/gui/windows/main.py:210
+#: portato/gui/windows/main.py:211
#, python-format
msgid "Package could not be found: %s"
msgstr ""
-#: portato/gui/windows/main.py:264 portato/gui/windows/main.py:363
+#: portato/gui/windows/main.py:265 portato/gui/windows/main.py:364
msgid "Masked by user"
msgstr ""
-#: portato/gui/windows/main.py:454
+#: portato/gui/windows/main.py:464
msgid "Loading Config"
msgstr ""
-#: portato/gui/windows/main.py:466
+#: portato/gui/windows/main.py:476
msgid "Creating Database"
msgstr ""
-#: portato/gui/windows/main.py:470
+#: portato/gui/windows/main.py:480
msgid "Loading Plugins"
msgstr ""
-#: portato/gui/windows/main.py:478
+#: portato/gui/windows/main.py:488
msgid "Building frontend"
msgstr ""
-#: portato/gui/windows/main.py:544
+#: portato/gui/windows/main.py:554
msgid "Restoring Session"
msgstr ""
-#: portato/gui/windows/main.py:554
+#: portato/gui/windows/main.py:564
msgid "Loading Plugin Widgets"
msgstr ""
-#: portato/gui/windows/main.py:557
+#: portato/gui/windows/main.py:567
msgid "Finishing startup"
msgstr ""
-#: portato/gui/windows/main.py:609
+#: portato/gui/windows/main.py:623
msgid "Options"
msgstr ""
-#: portato/gui/windows/main.py:625
+#: portato/gui/windows/main.py:639
msgid "Categories"
msgstr ""
-#: portato/gui/windows/main.py:684
+#: portato/gui/windows/main.py:698
msgid "Packages"
msgstr ""
-#: portato/gui/windows/main.py:719
+#: portato/gui/windows/main.py:733
#, python-format
msgid "Package '%s/%s' is disabled."
msgstr ""
-#: portato/gui/windows/main.py:736
+#: portato/gui/windows/main.py:750
msgid "Versions"
msgstr ""
-#: portato/gui/windows/main.py:739
+#: portato/gui/windows/main.py:753
msgid "Slot"
msgstr ""
-#: portato/gui/windows/main.py:827
+#: portato/gui/windows/main.py:845
msgid "Flag"
msgstr ""
-#: portato/gui/windows/main.py:851
+#: portato/gui/windows/main.py:869
msgid "This is an expanded use flag and cannot be selected"
msgstr ""
-#: portato/gui/windows/main.py:889
+#: portato/gui/windows/main.py:927
#, python-format
msgid "Translating session from version %d to %d."
msgstr ""
-#: portato/gui/windows/main.py:892
+#: portato/gui/windows/main.py:930
#, python-format
msgid "Cannot translate session from version %d to %d."
msgstr ""
-#: portato/gui/windows/main.py:1391
+#: portato/gui/windows/main.py:1438
msgid "use flags"
msgstr ""
-#: portato/gui/windows/main.py:1403
+#: portato/gui/windows/main.py:1450
msgid "masking keywords"
msgstr ""
-#: portato/gui/windows/main.py:1780
+#: portato/gui/windows/main.py:1858
msgid "The portage tree is not existing."
msgstr ""
-#: portato/gui/windows/main.py:1784
+#: portato/gui/windows/main.py:1862
msgid "The portage tree seems to be empty."
msgstr ""
@@ -794,45 +831,45 @@ msgstr ""
msgid "Current session format is newer than this version supports."
msgstr ""
-#: portato/gui/utils.py:190
+#: portato/gui/utils.py:189
msgid "oneshot"
msgstr ""
-#: portato/gui/utils.py:195
+#: portato/gui/utils.py:194
#, python-format
msgid "updating from version %s"
msgstr ""
-#: portato/gui/utils.py:197
+#: portato/gui/utils.py:196
msgid "updating"
msgstr ""
-#: portato/gui/utils.py:202
+#: portato/gui/utils.py:201
#, python-format
msgid "downgrading from version %s"
msgstr ""
-#: portato/gui/utils.py:204
+#: portato/gui/utils.py:203
msgid "downgrading"
msgstr ""
-#: portato/gui/utils.py:208
+#: portato/gui/utils.py:207
msgid "IUSE changes:"
msgstr ""
-#: portato/gui/utils.py:226
+#: portato/gui/utils.py:225
msgid "(In Progress)"
msgstr ""
-#: portato/gui/utils.py:251
+#: portato/gui/utils.py:250
msgid "Install"
msgstr ""
-#: portato/gui/utils.py:262
+#: portato/gui/utils.py:261
msgid "Uninstall"
msgstr ""
-#: portato/gui/utils.py:274
+#: portato/gui/utils.py:273
msgid "Update"
msgstr ""
@@ -860,17 +897,17 @@ msgstr ""
msgid "Line %(line)s in file %(file)s misses a keyword (e.g. '~x86')."
msgstr ""
-#: portato/backend/portage/system.py:258
+#: portato/backend/portage/system.py:280
#, python-format
msgid "No best match for %s. It seems not to be in the tree anymore."
msgstr ""
-#: portato/backend/portage/system.py:316
+#: portato/backend/portage/system.py:338
#, python-format
msgid "Found a not installed dependency: %s."
msgstr ""
-#: portato/backend/portage/system.py:358
+#: portato/backend/portage/system.py:380
#, python-format
msgid ""
"Bug? No best match could be found for '%(package)s'. Needed by: '%(cpv)s'."
@@ -881,15 +918,15 @@ msgstr ""
msgid "BUG in flags.new_masking_status. It returns '%s'"
msgstr ""
-#: portato/__init__.py:50
+#: portato/__init__.py:54
msgid "do not fork off as root"
msgstr ""
-#: portato/__init__.py:79
+#: portato/__init__.py:83
msgid "Starting Portato"
msgstr ""
-#: portato/__init__.py:121
+#: portato/__init__.py:125
msgid "No valid su command detected. Aborting."
msgstr ""
@@ -897,11 +934,11 @@ msgstr ""
msgid "Invalid dependency string"
msgstr ""
-#: portato/db/__init__.py:24
+#: portato/db/__init__.py:21
msgid "SQLite"
msgstr ""
-#: portato/db/__init__.py:24
+#: portato/db/__init__.py:21
msgid ""
"Uses an SQLite-database to store package information.\n"
"May take longer to generate at the first time, but has advantages if portato "
@@ -909,47 +946,48 @@ msgid ""
"fast SQL expressions for fetching the data."
msgstr ""
-#: portato/db/__init__.py:25
+#: portato/db/__init__.py:22
msgid "Hashmap"
msgstr ""
-#: portato/db/__init__.py:25
+#: portato/db/__init__.py:22
msgid ""
"Uses an in-memory hashmap to store package information.\n"
"Has been used since at least version 0.3.3, but all information has to be "
"regenerated on each startup."
msgstr ""
-#: portato/db/__init__.py:26
+#: portato/db/__init__.py:23
msgid "eix + SQLite"
msgstr ""
-#: portato/db/__init__.py:26
+#: portato/db/__init__.py:23
msgid ""
"Similar to SQLite, but now uses the eix database to get the package "
"information.\n"
"This should be much faster on startup, but requires that your eix database "
-"is always up-to-date."
+"is always up-to-date.\n"
+"Additionally, this is the only database allowing searching in descriptions."
msgstr ""
-#: portato/db/__init__.py:41 portato/db/__init__.py:56
+#: portato/db/__init__.py:51 portato/db/__init__.py:66
#, python-format
msgid "Cannot load %s."
msgstr ""
-#: portato/db/__init__.py:62
+#: portato/db/__init__.py:72
#, python-format
msgid "Unknown database type: %s"
msgstr ""
-#: portato/db/hash.py:94
+#: portato/db/hash.py:97
#, python-format
msgid ""
"Catched KeyError => %s seems not to be an available category. Have you "
"played with rsync-excludes?"
msgstr ""
-#: portato/db/hash.py:149
+#: portato/db/hash.py:152
#, python-format
msgid "Error while compiling search expression: '%s'."
msgstr ""
@@ -959,34 +997,38 @@ msgstr ""
msgid "Cache file '%s' does not exist. Using default instead."
msgstr ""
-#: portato/db/database.py:38
+#: portato/db/database.py:44
msgid "ALL"
msgstr ""
-#: portato/db/sql.py:79
+#: portato/db/database.py:50 portato/db/database.py:52
+msgid "Name"
+msgstr ""
+
+#: portato/db/sql.py:82
msgid "Cleaning database..."
msgstr ""
-#: portato/db/sql.py:81
+#: portato/db/sql.py:84
msgid "Populating database..."
msgstr ""
-#: portato/session.py:67
+#: portato/session.py:66
#, python-format
msgid "Loading '%s' session from %s."
msgstr ""
-#: portato/session.py:69
+#: portato/session.py:68
#, python-format
msgid "Loading session from %s."
msgstr ""
-#: portato/session.py:141
+#: portato/session.py:136
#, python-format
msgid "Saving '%s' session to %s."
msgstr ""
-#: portato/session.py:143
+#: portato/session.py:138
#, python-format
msgid "Saving session to %s."
msgstr ""
diff --git a/i18n/tr.po b/i18n/tr.po
index d4c8e53..c75cca5 100644
--- a/i18n/tr.po
+++ b/i18n/tr.po
@@ -1,126 +1,126 @@
-# translation of tr.po to Turkish
-# Copyright (C) 2008 Rene Necoro Neumann
-# This file is distributed under the same license as the portato package.
-# Gürkan Gür <seqizz[_at_]gmail[_dot_]com>, 2008-2009.
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
msgid ""
msgstr ""
-"Project-Id-Version: tr\n"
+"Project-Id-Version: portato-0.14\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-08-31 22:04+0200\n"
-"PO-Revision-Date: 2009-08-31 22:06+0100\n"
-"Last-Translator: René 'Necoro' Neumann <necoro@necoro.net>\n"
+"POT-Creation-Date: 2010-04-09 23:55+0200\n"
+"PO-Revision-Date: 2010-04-10 14:30+0200\n"
+"Last-Translator: Gürkan Gür <seqizz@gmail.com>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Poedit-Language: Turkish\n"
-"X-Poedit-SourceCharset: utf-8\n"
-#: portato/gui/templates/UpdateWindow.ui:6
-msgid "Updatable Packages"
-msgstr "Güncellenebilir Paketler"
-
-#: portato/gui/templates/UpdateWindow.ui:48
+#: portato/gui/templates/PkgListWindow.ui:48
msgid "_Close"
msgstr "Kapa_t"
-#: portato/gui/templates/UpdateWindow.ui:59
+#: portato/gui/templates/PkgListWindow.ui:64
+#: portato/gui/windows/pkglist.py:35
msgid "Select _All"
msgstr "Tümün_ü Seç"
-#: portato/gui/templates/UpdateWindow.ui:73
+#: portato/gui/templates/PkgListWindow.ui:80
msgid "_Install Selected"
msgstr "Seç_ilenleri Kur"
+#: portato/gui/templates/PkgListWindow.ui:96
+msgid "_Uninstall Selected"
+msgstr "Seçili_yi Kaldır"
+
#: portato/gui/templates/PreferenceWindow.ui:12
msgid "Preferences"
msgstr "Ayarlar"
-#: portato/gui/templates/PreferenceWindow.ui:48
+#: portato/gui/templates/PreferenceWindow.ui:51
msgid "Debug"
msgstr "Hata Çıktısı"
-#: portato/gui/templates/PreferenceWindow.ui:61
+#: portato/gui/templates/PreferenceWindow.ui:64
msgid "Search while typing"
msgstr "Yazarken ara"
-#: portato/gui/templates/PreferenceWindow.ui:81
+#: portato/gui/templates/PreferenceWindow.ui:84
msgid "Browser command: "
msgstr "İnternet Tarayıcısı:"
-#: portato/gui/templates/PreferenceWindow.ui:108
-#: portato/gui/templates/PreferenceWindow.ui:717
+#: portato/gui/templates/PreferenceWindow.ui:111
+#: portato/gui/templates/PreferenceWindow.ui:725
msgid "<b>General Options</b>"
msgstr "<b>Genel Ayarlar</b>"
-#: portato/gui/templates/PreferenceWindow.ui:142
+#: portato/gui/templates/PreferenceWindow.ui:146
msgid "Used database type"
msgstr "Kullanılan veritabanı türü"
-#: portato/gui/templates/PreferenceWindow.ui:178
-#: portato/gui/templates/PluginWindow.ui:93
-#: portato/gui/templates/PluginWindow.ui:118
-#: portato/gui/templates/MainWindow.ui:369
-#: portato/gui/templates/MainWindow.ui:485
-#: portato/gui/templates/MainWindow.ui:598
-#: portato/gui/templates/MainWindow.ui:613
+#: portato/gui/templates/PreferenceWindow.ui:182
+#: portato/gui/templates/PluginWindow.ui:97
+#: portato/gui/templates/PluginWindow.ui:122
+#: portato/gui/templates/MainWindow.ui:190
+#: portato/gui/templates/MainWindow.ui:304
+#: portato/gui/templates/MainWindow.ui:417
+#: portato/gui/templates/MainWindow.ui:432
msgid "label"
msgstr ""
-#: portato/gui/templates/PreferenceWindow.ui:188
+#: portato/gui/templates/PreferenceWindow.ui:192
msgid "<b>Description</b>"
msgstr "<b>Tanım</b>"
-#: portato/gui/templates/PreferenceWindow.ui:204
+#: portato/gui/templates/PreferenceWindow.ui:208
msgid "<b>Database Options</b>"
msgstr "<b>Veritabanı seçenekleri</b>"
-#: portato/gui/templates/PreferenceWindow.ui:226
-#: portato/gui/templates/MainWindow.ui:754
+#: portato/gui/templates/PreferenceWindow.ui:230
+#: portato/gui/templates/MainWindow.ui:582
msgid "General"
msgstr "Genel"
-#: portato/gui/templates/PreferenceWindow.ui:308
+#: portato/gui/templates/PreferenceWindow.ui:314
msgid "<b>Package sets to update</b>"
msgstr "<b>Güncellenecek paket setleri</b>"
-#: portato/gui/templates/PreferenceWindow.ui:324
+#: portato/gui/templates/PreferenceWindow.ui:330
msgid "<b>Update World Options</b>"
msgstr "<b>Sistem Güncelleme Seçenekleri</b>"
-#: portato/gui/templates/PreferenceWindow.ui:350
+#: portato/gui/templates/PreferenceWindow.ui:356
msgid "Sync command: "
msgstr "Eşleme komutu:"
-#: portato/gui/templates/PreferenceWindow.ui:372
+#: portato/gui/templates/PreferenceWindow.ui:378
msgid "<b>Sync Options</b>"
msgstr "<b>Eşleme seçenekleri</b>"
-#: portato/gui/templates/PreferenceWindow.ui:413
+#: portato/gui/templates/PreferenceWindow.ui:419
msgid "File name to use, if package.use is a directory: "
msgstr "package.use bir dizin ise, kullanılacak dosya adı:"
-#: portato/gui/templates/PreferenceWindow.ui:423
+#: portato/gui/templates/PreferenceWindow.ui:429
msgid "Add only exact version to package.use"
msgstr "package.use dosyasına tam paket sürümünü yaz"
-#: portato/gui/templates/PreferenceWindow.ui:437
+#: portato/gui/templates/PreferenceWindow.ui:443
msgid "Add only exact version to package.keywords"
msgstr "package.keywords dosyasına tam paket sürümünü yaz"
-#: portato/gui/templates/PreferenceWindow.ui:453
+#: portato/gui/templates/PreferenceWindow.ui:459
msgid "File name to use, if package.keywords is a directory: "
msgstr "package.keywords bir dizin ise, kullanılacak dosya adı:"
-#: portato/gui/templates/PreferenceWindow.ui:487
+#: portato/gui/templates/PreferenceWindow.ui:493
msgid "File name to use, if package.mask/package.unmask is a directory: "
msgstr "package.mask/package.unmask bir dizin ise, kullanılacak dosya adı:"
-#: portato/gui/templates/PreferenceWindow.ui:497
+#: portato/gui/templates/PreferenceWindow.ui:503
msgid "Add only exact version to package.mask/package.unmask"
msgstr "package.mask/package.unmask dosyasına tam paket sürümünü yaz"
-#: portato/gui/templates/PreferenceWindow.ui:521
+#: portato/gui/templates/PreferenceWindow.ui:527
msgid ""
"<u>You may use the following placeholders:</u>\n"
"\n"
@@ -136,145 +136,145 @@ msgstr ""
"<i>$(cat-1)/$(cat-2)</i>: kategorinin birinci-ikinci bölümü\n"
"<i>$(version)</i> : paketin sürümü"
-#: portato/gui/templates/PreferenceWindow.ui:545
+#: portato/gui/templates/PreferenceWindow.ui:551
msgid "<u><i>Use-Flags</i></u>"
msgstr "<u><i>Use-Bayrakları</i></u>"
-#: portato/gui/templates/PreferenceWindow.ui:560
+#: portato/gui/templates/PreferenceWindow.ui:566
msgid "<u><i>Testing Keywords</i></u>"
msgstr "<u><i>Test Anahtarları</i></u>"
-#: portato/gui/templates/PreferenceWindow.ui:575
+#: portato/gui/templates/PreferenceWindow.ui:581
msgid "<u><i>Masking Keywords</i></u>"
msgstr "<u><i>Maskeleme Anahtarları</i></u>"
-#: portato/gui/templates/PreferenceWindow.ui:601
+#: portato/gui/templates/PreferenceWindow.ui:607
msgid "<b>Use Flag and Keyword Options</b>"
msgstr "<u><i>Use Bayrakları ve Anahtar Ayarları</i></u>"
-#: portato/gui/templates/PreferenceWindow.ui:619
+#: portato/gui/templates/PreferenceWindow.ui:625
msgid "Portage"
msgstr "Portage"
-#: portato/gui/templates/PreferenceWindow.ui:655
+#: portato/gui/templates/PreferenceWindow.ui:663
msgid "Enable systray"
msgstr "Sistem çekmecesine yerleş"
-#: portato/gui/templates/PreferenceWindow.ui:669
+#: portato/gui/templates/PreferenceWindow.ui:677
msgid "Show emerge progress in window title"
msgstr "Emerge işlemini pencere başlığında göster"
-#: portato/gui/templates/PreferenceWindow.ui:683
+#: portato/gui/templates/PreferenceWindow.ui:691
msgid "Show emerge progress in console title"
msgstr "Emerge işlemini konsol başlığında göster"
-#: portato/gui/templates/PreferenceWindow.ui:697
+#: portato/gui/templates/PreferenceWindow.ui:705
msgid "Hide on minimization (only if systray is enabled)"
msgstr "Küçültünce çekmeceye gizle (sistem çekmecesi aktifse)"
-#: portato/gui/templates/PreferenceWindow.ui:755
+#: portato/gui/templates/PreferenceWindow.ui:764
msgid "Package Tabs"
msgstr "Paket Sekmeleri"
-#: portato/gui/templates/PreferenceWindow.ui:785
+#: portato/gui/templates/PreferenceWindow.ui:793
msgid "System Tabs"
msgstr "Sistem Sekmeleri"
-#: portato/gui/templates/PreferenceWindow.ui:813
+#: portato/gui/templates/PreferenceWindow.ui:821
msgid "<b>Tab Options</b>"
msgstr "<b>Sekme Seçenekleri</b>"
-#: portato/gui/templates/PreferenceWindow.ui:841
+#: portato/gui/templates/PreferenceWindow.ui:850
msgid "Show slots in the version list"
msgstr "Sürüm listesinde depo numaralarını göster"
-#: portato/gui/templates/PreferenceWindow.ui:854
+#: portato/gui/templates/PreferenceWindow.ui:863
msgid "Collapse categories with same prefix"
msgstr "Aynı bölümdeki kategorileri toparla"
-#: portato/gui/templates/PreferenceWindow.ui:875
+#: portato/gui/templates/PreferenceWindow.ui:884
msgid "<b>Package Options</b>"
msgstr "<b>Paket Seçenekleri</b>"
-#: portato/gui/templates/PreferenceWindow.ui:911
+#: portato/gui/templates/PreferenceWindow.ui:921
msgid "Console Font"
msgstr "Konsol yazı tipi"
-#: portato/gui/templates/PreferenceWindow.ui:924
+#: portato/gui/templates/PreferenceWindow.ui:934
msgid "Chose a console font"
msgstr "Konsol yazı tipi seç"
-#: portato/gui/templates/PreferenceWindow.ui:945
+#: portato/gui/templates/PreferenceWindow.ui:955
msgid "Maximum length of the console title"
msgstr "Konsol başlığının en fazla uzunluğu"
-#: portato/gui/templates/PreferenceWindow.ui:978
+#: portato/gui/templates/PreferenceWindow.ui:988
msgid "<b>Console Options</b>"
msgstr "<b>Konsol Seçenekleri</b>"
-#: portato/gui/templates/PreferenceWindow.ui:1015
+#: portato/gui/templates/PreferenceWindow.ui:1026
msgid "Package Detail Background"
msgstr "Paket Detayları Arkaplanı"
-#: portato/gui/templates/PreferenceWindow.ui:1049
+#: portato/gui/templates/PreferenceWindow.ui:1060
msgid "Flag Placeholder Description Background"
msgstr "Bayrak Yeri Tanımı Arkaplanı"
-#: portato/gui/templates/PreferenceWindow.ui:1080
+#: portato/gui/templates/PreferenceWindow.ui:1091
msgid "<b>Color Options</b>"
msgstr "<b>Renk Seçenekleri</b>"
-#: portato/gui/templates/PreferenceWindow.ui:1101
+#: portato/gui/templates/PreferenceWindow.ui:1112
msgid "Visual"
msgstr "Görünüm"
-#: portato/gui/templates/PluginWindow.ui:7
+#: portato/gui/templates/PluginWindow.ui:8
msgid "Plugins"
msgstr "Eklentiler"
-#: portato/gui/templates/PluginWindow.ui:51
+#: portato/gui/templates/PluginWindow.ui:53
msgid "_Install dependencies"
msgstr "Bağımlılıklar_ı Kur"
-#: portato/gui/templates/PluginWindow.ui:79
+#: portato/gui/templates/PluginWindow.ui:83
msgid "Needed dependencies"
msgstr "Gerekli bağımlılıklar"
-#: portato/gui/templates/PluginWindow.ui:104
+#: portato/gui/templates/PluginWindow.ui:108
msgid "<b>Author:</b>"
msgstr "<b>Sahibi:</b>"
-#: portato/gui/templates/PluginWindow.ui:139
-#: portato/gui/windows/update.py:47
-#: portato/gui/windows/main.py:825
+#: portato/gui/templates/PluginWindow.ui:141
+#: portato/gui/windows/pkglist.py:59
+#: portato/gui/windows/main.py:843
#: portato/gui/windows/plugin.py:27
msgid "Enabled"
msgstr "Etkin"
-#: portato/gui/templates/PluginWindow.ui:148
+#: portato/gui/templates/PluginWindow.ui:157
#: portato/gui/windows/plugin.py:27
msgid "Temporarily enabled"
msgstr "Geçici olarak aktif"
-#: portato/gui/templates/PluginWindow.ui:159
+#: portato/gui/templates/PluginWindow.ui:172
#: portato/gui/windows/plugin.py:27
msgid "Temporarily disabled"
msgstr "Geçici olarak pasif"
-#: portato/gui/templates/PluginWindow.ui:171
+#: portato/gui/templates/PluginWindow.ui:188
#: portato/gui/windows/plugin.py:27
msgid "Disabled"
msgstr "Pasifleştirildi"
-#: portato/gui/templates/AboutWindow.ui:7
+#: portato/gui/templates/AboutWindow.ui:8
msgid "About Portato"
msgstr "Portato Hakkında"
-#: portato/gui/templates/MailInfoWindow.ui:5
+#: portato/gui/templates/MailInfoWindow.ui:6
msgid "Send Bug Mail ..."
msgstr "Hata Bildirisi Yolla ..."
-#: portato/gui/templates/MailInfoWindow.ui:30
+#: portato/gui/templates/MailInfoWindow.ui:29
msgid ""
"<b><u>Additional Information</u></b>\n"
"\n"
@@ -284,15 +284,15 @@ msgstr ""
"\n"
"(isteğe bağlı)"
-#: portato/gui/templates/MailInfoWindow.ui:74
+#: portato/gui/templates/MailInfoWindow.ui:73
msgid "Email address:"
msgstr "E-posta adresi:"
-#: portato/gui/templates/MailInfoWindow.ui:89
+#: portato/gui/templates/MailInfoWindow.ui:88
msgid "Name:"
msgstr "isim:"
-#: portato/gui/templates/MailInfoWindow.ui:104
+#: portato/gui/templates/MailInfoWindow.ui:103
msgid ""
"Comments /\n"
"what did you do to hit the bug?"
@@ -300,198 +300,198 @@ msgstr ""
"Yorumlar /\n"
"Hataya ulaşmak için ne yaptınız, nasıl oluştu?"
-#: portato/gui/templates/MailInfoWindow.ui:141
-msgid "Attaches the logfile to the mail. This log only contains debug information."
-msgstr "E-postaya programın günlük kaydını da ekler. Bu kayıt sadece hata ayıklama bilgisi içerir."
+#: portato/gui/templates/MailInfoWindow.ui:160
+msgid "These files will be sent:"
+msgstr "Şu dosyalar gönderilecek:"
-#: portato/gui/templates/MailInfoWindow.ui:142
-msgid "Attach _Logfile"
-msgstr "Kayıt Dosyasını Ek_le"
-
-#: portato/gui/templates/MailInfoWindow.ui:194
+#: portato/gui/templates/MailInfoWindow.ui:220
msgid "_Send"
msgstr "Gönder"
-#: portato/gui/templates/SearchWindow.ui:7
+#: portato/gui/templates/SearchWindow.ui:8
msgid "Search Results"
msgstr "Arama Sonuçları"
-#: portato/gui/templates/MainWindow.ui:10
-msgid "Plu_gins"
-msgstr "Eklen_tiler"
-
-#: portato/gui/templates/MainWindow.ui:20
-msgid "_File"
-msgstr "_Dosya"
-
-#: portato/gui/templates/MainWindow.ui:27
-msgid "_Preferences"
-msgstr "_Ayarlar"
-
-#: portato/gui/templates/MainWindow.ui:36
-msgid "Re_load Portage"
-msgstr "Portage'i T_ekrar Yükle"
-
-#: portato/gui/templates/MainWindow.ui:52
-msgid "_Emerge"
-msgstr "_Emerge"
-
-#: portato/gui/templates/MainWindow.ui:59
-msgid "_Install"
-msgstr "_Kur"
-
-#: portato/gui/templates/MainWindow.ui:68
-msgid "_Uninstall"
-msgstr "Kal_dır"
-
-#: portato/gui/templates/MainWindow.ui:76
-#: portato/gui/templates/MainWindow.ui:847
-msgid "Update _World"
-msgstr "Siste_mi Güncelle"
-
-#: portato/gui/templates/MainWindow.ui:83
-msgid "Show Updatable P_ackages"
-msgstr "Güncellene_bilecek Paketleri Göster"
-
-#: portato/gui/templates/MainWindow.ui:90
-msgid "Show _Only Installed Packages"
-msgstr "_Sadece Kurulu Paketleri Göster"
-
-#: portato/gui/templates/MainWindow.ui:99
-msgid "_Sync"
-msgstr "_Eşleme Yap"
-
-#: portato/gui/templates/MainWindow.ui:108
-msgid "Save _Flags"
-msgstr "_Bayrakları Kaydet"
-
-#: portato/gui/templates/MainWindow.ui:115
-msgid "Emerge _Paused"
-msgstr "Son kesilen işleme de_vam et"
-
-#: portato/gui/templates/MainWindow.ui:124
-msgid "_Kill Emerge"
-msgstr "İşlemi _Durdur"
-
-#: portato/gui/templates/MainWindow.ui:133
-msgid "_Copy"
-msgstr "K_opyala"
-
-#: portato/gui/templates/MainWindow.ui:140
-msgid "_?"
-msgstr "_?"
-
-#: portato/gui/templates/MainWindow.ui:147
-msgid "_About"
-msgstr "H_akkında"
-
-#: portato/gui/templates/MainWindow.ui:155
-msgid "_Plugins"
-msgstr "Eklen_tiler"
-
-#: portato/gui/templates/MainWindow.ui:380
+#: portato/gui/templates/MainWindow.ui:204
msgid "Install onto system"
msgstr "Sisteme kur"
-#: portato/gui/templates/MainWindow.ui:402
+#: portato/gui/templates/MainWindow.ui:226
msgid "Uninstall from system"
msgstr "Sistemden kaldır"
-#: portato/gui/templates/MainWindow.ui:424
+#: portato/gui/templates/MainWindow.ui:248
msgid "Revert changes"
msgstr "Değişiklikleri geri al"
-#: portato/gui/templates/MainWindow.ui:501
+#: portato/gui/templates/MainWindow.ui:320
msgid "<b>License:</b>"
msgstr "<b>Lisans:</b>"
-#: portato/gui/templates/MainWindow.ui:518
+#: portato/gui/templates/MainWindow.ui:337
msgid "<b>Installed, but not in portage anymore</b>"
msgstr "<b>Kuruldu, ancak artık portage'da yok</b>"
-#: portato/gui/templates/MainWindow.ui:533
+#: portato/gui/templates/MainWindow.ui:352
msgid "<span foreground='red'><b>MISSING KEYWORD</b></span>"
msgstr "<span foreground='red'><b>packages.keyword'e eklenmeli</b></span>"
-#: portato/gui/templates/MainWindow.ui:565
+#: portato/gui/templates/MainWindow.ui:384
msgid "<b>Description:</b>"
msgstr "<b>Tanım:</b>"
-#: portato/gui/templates/MainWindow.ui:581
+#: portato/gui/templates/MainWindow.ui:400
msgid "<b>Overlay:</b>"
msgstr "<b>Depo:</b>"
-#: portato/gui/templates/MainWindow.ui:629
+#: portato/gui/templates/MainWindow.ui:448
msgid "<b>Homepage:</b>"
msgstr "<b>Anasayfa:</b>"
-#: portato/gui/templates/MainWindow.ui:647
-#: portato/gui/windows/main.py:826
+#: portato/gui/templates/MainWindow.ui:462
+#: portato/gui/windows/main.py:844
msgid "Installed"
msgstr "Sistemde kurulu"
-#: portato/gui/templates/MainWindow.ui:665
-#: portato/gui/windows/main.py:255
-#: portato/gui/windows/main.py:258
-#: portato/gui/windows/main.py:261
-#: portato/gui/windows/main.py:361
-#: portato/gui/windows/main.py:365
-#: portato/gui/windows/main.py:372
-#: portato/gui/windows/main.py:376
+#: portato/gui/templates/MainWindow.ui:481
+#: portato/gui/windows/main.py:256
+#: portato/gui/windows/main.py:259
+#: portato/gui/windows/main.py:262
+#: portato/gui/windows/main.py:362
+#: portato/gui/windows/main.py:366
+#: portato/gui/windows/main.py:373
+#: portato/gui/windows/main.py:377
msgid "Masked"
msgstr "Maskelenmiş"
-#: portato/gui/templates/MainWindow.ui:697
-#: portato/gui/windows/main.py:271
-#: portato/gui/windows/main.py:274
-#: portato/gui/windows/main.py:334
-#: portato/gui/windows/main.py:338
+#: portato/gui/templates/MainWindow.ui:514
+#: portato/gui/windows/main.py:272
+#: portato/gui/windows/main.py:275
+#: portato/gui/windows/main.py:335
+#: portato/gui/windows/main.py:339
msgid "Testing"
msgstr "Test Sürümü"
-#: portato/gui/templates/MainWindow.ui:715
+#: portato/gui/templates/MainWindow.ui:537
msgid "<b>Use Flags:</b>"
msgstr "<b>Use Bayrakları:</b>"
-#: portato/gui/templates/MainWindow.ui:776
+#: portato/gui/templates/MainWindow.ui:607
msgid "Use List"
msgstr "Use Listesi"
-#: portato/gui/templates/MainWindow.ui:813
+#: portato/gui/templates/MainWindow.ui:647
msgid "Execute the current selected queue"
msgstr "Geçerli kuyruğu uygula"
-#: portato/gui/templates/MainWindow.ui:831
+#: portato/gui/templates/MainWindow.ui:668
msgid "E_xecute"
msgstr "_Çalıştır"
-#: portato/gui/templates/MainWindow.ui:846
+#: portato/gui/templates/MainWindow.ui:687
+msgid "Update _World"
+msgstr "Siste_mi Güncelle"
+
+#: portato/gui/templates/MainWindow.ui:691
msgid "Calculate the packages which will be installed during an \"update world\""
msgstr "\"Sistem güncellemesi\" sırasında yapılacak işlemleri hesapla"
-#: portato/gui/templates/MainWindow.ui:858
-msgid "Remove the selected package from the queue"
-msgstr "Seçilen paketi kuyruktan çıkar"
-
-#: portato/gui/templates/MainWindow.ui:859
+#: portato/gui/templates/MainWindow.ui:703
msgid "_Remove"
msgstr "_Kaldır"
-#: portato/gui/templates/MainWindow.ui:929
-#: portato/gui/windows/main.py:606
+#: portato/gui/templates/MainWindow.ui:707
+msgid "Remove the selected package from the queue"
+msgstr "Seçilen paketi kuyruktan çıkar"
+
+#: portato/gui/templates/MainWindow.ui:782
+#: portato/gui/windows/main.py:620
msgid "Queue"
msgstr "Kuyruk"
-#: portato/gui/templates/MainWindow.ui:950
-#: portato/gui/windows/main.py:1206
-#: portato/gui/windows/main.py:1208
+#: portato/gui/templates/MainWindow.ui:806
+#: portato/gui/windows/main.py:1253
+#: portato/gui/windows/main.py:1255
msgid "Console"
msgstr "Konsol"
-#: portato/gui/templates/MainWindow.ui:981
+#: portato/gui/templates/MainWindow.ui:840
msgid "Log"
msgstr "Kayıtlar"
+#: portato/gui/templates/MainWindow.menu:9
+#: portato/gui/templates/MainWindow.menu:161
+msgid "Plu_gins"
+msgstr "Eklen_tiler"
+
+#: portato/gui/templates/MainWindow.menu:19
+msgid "_General"
+msgstr "_Genel"
+
+#: portato/gui/templates/MainWindow.menu:26
+msgid "_Preferences"
+msgstr "_Ayarlar"
+
+#: portato/gui/templates/MainWindow.menu:35
+msgid "Re_load Portage"
+msgstr "Portage'i T_ekrar Yükle"
+
+#: portato/gui/templates/MainWindow.menu:51
+msgid "_Emerge"
+msgstr "_Emerge"
+
+#: portato/gui/templates/MainWindow.menu:58
+msgid "_Install"
+msgstr "_Kur"
+
+#: portato/gui/templates/MainWindow.menu:67
+msgid "_Uninstall"
+msgstr "Kal_dır"
+
+#: portato/gui/templates/MainWindow.menu:75
+msgid "Up_date World"
+msgstr "World G_üncelle"
+
+#: portato/gui/templates/MainWindow.menu:82
+msgid "Show Updatable P_ackages"
+msgstr "Güncellene_bilecek Paketleri Göster"
+
+#: portato/gui/templates/MainWindow.menu:89
+msgid "Show _World Packages"
+msgstr "_World Paketlerini Göster"
+
+#: portato/gui/templates/MainWindow.menu:96
+msgid "Show _Only Installed Packages"
+msgstr "_Sadece Kurulu Paketleri Göster"
+
+#: portato/gui/templates/MainWindow.menu:105
+msgid "_Sync"
+msgstr "_Eşleme Yap"
+
+#: portato/gui/templates/MainWindow.menu:114
+msgid "Save _Flags"
+msgstr "_Bayrakları Kaydet"
+
+#: portato/gui/templates/MainWindow.menu:121
+msgid "Emerge _Paused"
+msgstr "Son kesilen işleme de_vam et"
+
+#: portato/gui/templates/MainWindow.menu:130
+msgid "_Kill Emerge"
+msgstr "İşlemi _Durdur"
+
+#: portato/gui/templates/MainWindow.menu:139
+msgid "_Copy"
+msgstr "K_opyala"
+
+#: portato/gui/templates/MainWindow.menu:146
+msgid "_?"
+msgstr "_?"
+
+#: portato/gui/templates/MainWindow.menu:153
+msgid "_About"
+msgstr "H_akkında"
+
#: portato/gui/dialogs.py:17
msgid "Mail could not be sent"
msgstr "E-posta gönderilemedi"
@@ -502,59 +502,88 @@ msgid "The error was: %s"
msgstr "Hata: %s"
#: portato/gui/dialogs.py:24
+msgid "No email address given"
+msgstr "E-Posta adresi verilmedi"
+
+#: portato/gui/dialogs.py:25
+msgid ""
+"You haven't specified an email address. Without it, it will not be possible for the developers to contact you for questions and thus it might be harder to fix the bug.\n"
+"\n"
+"Do you want to proceed nevertheless?"
+msgstr ""
+"Herhangi bir e-posta adresi belirtmediniz. E-posta adresi olmadan geliştiricilerin sizinle sorunun çözümü için iletişime geçmesi mümkün olmayacak.\n"
+"\n"
+"Yine de devam etmek istiyor musunuz?"
+
+#: portato/gui/dialogs.py:31
msgid "Do you really want to quit?"
msgstr "Gerçekten çıkmak istiyor musunuz?"
-#: portato/gui/dialogs.py:25
+#: portato/gui/dialogs.py:32
msgid "There are some packages in the emerge queue and/or an emerge process is running."
msgstr "Kuyrukta ya da işlemi devam eden dosyalar var ve/veya şu anda bir işlem devam ediyor."
-#: portato/gui/dialogs.py:43
+#: portato/gui/dialogs.py:50
#, python-format
msgid "%(blocked)s is blocked by %(blocks)s."
msgstr "%(blocked)s paketi %(blocks)s tarafından engelleniyor."
-#: portato/gui/dialogs.py:44
+#: portato/gui/dialogs.py:51
msgid "Please unmerge the blocking package."
msgstr "Lütfen engelleyen paketi kaldırın."
-#: portato/gui/dialogs.py:50
+#: portato/gui/dialogs.py:57
msgid "You are not root."
msgstr "Yönetici haklarına sahip değilsiniz."
-#: portato/gui/dialogs.py:56
+#: portato/gui/dialogs.py:63
#, python-format
msgid "%s seems to be masked."
msgstr "%s maskelenmiş görünüyor."
-#: portato/gui/dialogs.py:57
+#: portato/gui/dialogs.py:64
msgid "Do you want to unmask it and its dependencies?"
msgstr "Bu paketin ve bağımlı paketlerin maskelerini kaldırmak ister misiniz?"
-#: portato/gui/dialogs.py:63
+#: portato/gui/dialogs.py:70
msgid "Package not found!"
msgstr "Paket bulunamadı!"
-#: portato/gui/dialogs.py:69
+#: portato/gui/dialogs.py:76
+#: portato/gui/dialogs.py:87
msgid "Do not show this dialog again."
msgstr "Bu uyarıyı bir daha gösterme."
-#: portato/gui/dialogs.py:70
+#: portato/gui/dialogs.py:77
#, python-format
msgid "Changed %s"
msgstr "%s değiştirildi"
-#: portato/gui/dialogs.py:71
+#: portato/gui/dialogs.py:78
msgid ""
"Portato will write these changes into the appropriate files.\n"
-"Please backup them if you think it is necessairy."
-msgstr "Portato gereken dosyalarda değişiklik yapacak. Lütfen gerekli olduğunu düşünüyorsanız yedek alın."
+"Please backup them if you think it is necessary."
+msgstr ""
+"Portato gereken dosyalarda değişiklik yapacak.\n"
+"Lütfen önemli olduklarını düşünüyorsanız yedek alın."
+
+#: portato/gui/dialogs.py:88
+msgid "'Update World' may be giving errors"
+msgstr "'World Güncelle' hata veriyor olabilir"
-#: portato/gui/dialogs.py:80
+#: portato/gui/dialogs.py:89
+msgid ""
+"Due to the fast changing portage, 'update world' might not work correctly or even throw errors.\n"
+"This will be fixed (hopefully) in the next release."
+msgstr ""
+"Portage'daki hızlı değişim yüzünden 'update world' özelliği doğru çalışmayabilir.\n"
+"Bu sorun (umarız) gelecek sürümde çözülmüş olacak."
+
+#: portato/gui/dialogs.py:98
msgid "You cannot remove dependencies. :)"
msgstr "Bağımlılıkları kaldıramazsınız. :)"
-#: portato/gui/dialogs.py:86
+#: portato/gui/dialogs.py:104
msgid ""
"This is the updates queue. You cannot remove single elements.\n"
"Do you want to clear the whole queue instead?"
@@ -562,15 +591,15 @@ msgstr ""
"Bu güncelleştirme kuyruğu. Sadece bir öğeyi kaldıramazsınız.\n"
"Bütün kuyruktakileri kaldırmak ister misiniz?"
-#: portato/gui/dialogs.py:92
+#: portato/gui/dialogs.py:110
msgid "Do you really want to clear the whole queue?"
msgstr "Geçerli kuyruğu temizlemek istiyor musunuz?"
-#: portato/gui/dialogs.py:111
+#: portato/gui/dialogs.py:129
msgid "A prerequisite for starting Portato was not matched."
msgstr "Portato'yu başlatmak için gerekli bir nesne eşleşmedi."
-#: portato/gui/dialogs.py:115
+#: portato/gui/dialogs.py:133
msgid ""
"<b>Note</b>: On fresh Sabayon installs or its LiveDVD/-CD, there is no portage tree existing per default.\n"
"Please run <i>emerge --sync &amp;&amp; layman -S</i>."
@@ -578,8 +607,8 @@ msgstr ""
"<b>Not</b>: Yeni Sabayon kurulumlarında veya çalışan DVD/-CD üzerinde öntanımlı olarak portage ağacı bulunmaz.\n"
"Lütfen <i>emerge --sync &amp;&amp; layman -S</i> komutunu çalıştırın."
-#: portato/gui/dialogs.py:123
-#: portato/gui/windows/main.py:1255
+#: portato/gui/dialogs.py:141
+#: portato/gui/windows/main.py:1302
#, python-format
msgid "No versions of package '%s' found!"
msgstr "'%s' pakedinin herhangi bir sürümü bulunamadı!"
@@ -599,7 +628,7 @@ msgid "No %(old)s language file installed. Disable highlighting."
msgstr "Hiç %(old)s dil dosyası yüklenmedi. Vurguyu etkisizleştir."
#: portato/gui/views.py:130
-#: plugins/package_details.py:102
+#: plugins/package_details.py:108
#, python-format
msgid "Error: %s"
msgstr "Hata: %s"
@@ -646,19 +675,32 @@ msgstr "Portato Yükleniyor"
msgid "Results"
msgstr "Sonuçlar"
-#: portato/gui/windows/mailinfo.py:83
-#, python-format
-msgid "An error occurred while sending. I think we were greylisted. The error: %s"
-msgstr "Gönderirken bir hata oluştu. Hata: %s"
-
-#: portato/gui/windows/mailinfo.py:84
-msgid "Retrying after waiting 60 seconds."
-msgstr "60 saniye sonra tekrar denenecek."
+#: portato/gui/windows/pkglist.py:36
+msgid "Unselect _All"
+msgstr "Hi_çbirini Seçme"
-#: portato/gui/windows/update.py:48
+#: portato/gui/windows/pkglist.py:60
msgid "Package"
msgstr "Paket"
+#: portato/gui/windows/pkglist.py:147
+msgid "Updatable Packages"
+msgstr "Güncellenebilir Paketler"
+
+#: portato/gui/windows/pkglist.py:151
+msgid "World Packages"
+msgstr "World Paketleri"
+
+#: portato/gui/windows/mailinfo.py:144
+#, python-format
+msgid "Retrying after waiting %d seconds."
+msgstr "%d saniye sonra tekrar denenecek."
+
+#: portato/gui/windows/mailinfo.py:157
+#, python-format
+msgid "An error occurred while sending. I think we were greylisted. The error: %s"
+msgstr "Gönderirken bir hata oluştu. Hata: %s"
+
#: portato/gui/windows/splash.py:35
#, python-format
msgid "... is starting up: %s"
@@ -685,116 +727,118 @@ msgid "Package Set"
msgstr "Paket Seti"
#: portato/gui/windows/preference.py:259
-#: portato/gui/windows/main.py:828
+#: portato/gui/windows/main.py:846
+#: portato/db/database.py:51
+#: portato/db/database.py:52
msgid "Description"
msgstr "Tanım"
-#: portato/gui/windows/main.py:141
+#: portato/gui/windows/main.py:142
msgid "<no description>"
msgstr "<tanım yok>"
-#: portato/gui/windows/main.py:167
+#: portato/gui/windows/main.py:168
msgid "The first homepage part does not start with 'http' or 'ftp'."
msgstr "Anasayfa 'http' veya 'ftp' ile başlamıyor."
-#: portato/gui/windows/main.py:171
+#: portato/gui/windows/main.py:172
msgid "Blank inside homepage."
msgstr ""
-#: portato/gui/windows/main.py:210
+#: portato/gui/windows/main.py:211
#, python-format
msgid "Package could not be found: %s"
msgstr "Paket bulunamadı: %s"
-#: portato/gui/windows/main.py:264
-#: portato/gui/windows/main.py:363
+#: portato/gui/windows/main.py:265
+#: portato/gui/windows/main.py:364
msgid "Masked by user"
msgstr "Kullanıcı tarafından maskelendi"
-#: portato/gui/windows/main.py:454
+#: portato/gui/windows/main.py:464
msgid "Loading Config"
msgstr "Ayarlar Yükleniyor"
-#: portato/gui/windows/main.py:466
+#: portato/gui/windows/main.py:476
msgid "Creating Database"
msgstr "Veritabanı Oluşturuluyor"
-#: portato/gui/windows/main.py:470
+#: portato/gui/windows/main.py:480
msgid "Loading Plugins"
msgstr "Eklentiler Yükleniyor"
-#: portato/gui/windows/main.py:478
+#: portato/gui/windows/main.py:488
msgid "Building frontend"
msgstr "Arayüz oluşturuluyor"
-#: portato/gui/windows/main.py:544
+#: portato/gui/windows/main.py:554
msgid "Restoring Session"
msgstr "Oturum Başlatılıyor"
-#: portato/gui/windows/main.py:554
+#: portato/gui/windows/main.py:564
msgid "Loading Plugin Widgets"
msgstr "Eklenti Widget'leri Yükleniyor"
-#: portato/gui/windows/main.py:557
+#: portato/gui/windows/main.py:567
msgid "Finishing startup"
msgstr "Açılış tamamlanıyor"
-#: portato/gui/windows/main.py:609
+#: portato/gui/windows/main.py:623
msgid "Options"
msgstr "Seçenekler"
-#: portato/gui/windows/main.py:625
+#: portato/gui/windows/main.py:639
msgid "Categories"
msgstr "Kategoriler"
-#: portato/gui/windows/main.py:684
+#: portato/gui/windows/main.py:698
msgid "Packages"
msgstr "Paketler"
-#: portato/gui/windows/main.py:719
+#: portato/gui/windows/main.py:733
#, python-format
msgid "Package '%s/%s' is disabled."
msgstr "'%s/%s' paketi pasifleştirildi."
-#: portato/gui/windows/main.py:736
+#: portato/gui/windows/main.py:750
msgid "Versions"
msgstr "Sürümler"
-#: portato/gui/windows/main.py:739
+#: portato/gui/windows/main.py:753
msgid "Slot"
msgstr "Depo"
-#: portato/gui/windows/main.py:827
+#: portato/gui/windows/main.py:845
msgid "Flag"
msgstr "Bayrak"
-#: portato/gui/windows/main.py:851
+#: portato/gui/windows/main.py:869
msgid "This is an expanded use flag and cannot be selected"
msgstr "Bu genişletilmiş bir bayrak, seçilemez"
-#: portato/gui/windows/main.py:889
+#: portato/gui/windows/main.py:927
#, python-format
msgid "Translating session from version %d to %d."
msgstr "Oturum %d sürümünden %d sürümüne çeviriliyor."
-#: portato/gui/windows/main.py:892
+#: portato/gui/windows/main.py:930
#, python-format
msgid "Cannot translate session from version %d to %d."
msgstr "Oturum %d sürümünden %d sürümüne çevirilemedi."
-#: portato/gui/windows/main.py:1391
+#: portato/gui/windows/main.py:1438
msgid "use flags"
msgstr "use bayrakları"
-#: portato/gui/windows/main.py:1403
+#: portato/gui/windows/main.py:1450
msgid "masking keywords"
msgstr "maskeleme anahtarları"
-#: portato/gui/windows/main.py:1780
+#: portato/gui/windows/main.py:1858
msgid "The portage tree is not existing."
msgstr "Portage ağacı yok."
-#: portato/gui/windows/main.py:1784
+#: portato/gui/windows/main.py:1862
msgid "The portage tree seems to be empty."
msgstr "Portage ağacı boş görünüyor."
@@ -815,48 +859,62 @@ msgstr "Şimdiki oturum formatı çok eski."
msgid "Current session format is newer than this version supports."
msgstr "Şimdiki oturum formatı, bu sürümün desteklediğinden daha yeni."
-#: portato/gui/utils.py:190
+#: portato/gui/utils.py:189
msgid "oneshot"
msgstr "oneshot"
-#: portato/gui/utils.py:195
+#: portato/gui/utils.py:194
#, python-format
msgid "updating from version %s"
msgstr "%s sürümünden güncelleniyor"
-#: portato/gui/utils.py:197
+#: portato/gui/utils.py:196
msgid "updating"
msgstr "güncelleniyor"
-#: portato/gui/utils.py:202
+#: portato/gui/utils.py:201
#, python-format
msgid "downgrading from version %s"
msgstr "%s sürümünden alt sürüme indiriliyor"
-#: portato/gui/utils.py:204
+#: portato/gui/utils.py:203
msgid "downgrading"
msgstr "eskiye dönülüyor"
-#: portato/gui/utils.py:208
+#: portato/gui/utils.py:207
msgid "IUSE changes:"
msgstr "IUSE değişiklikleri:"
-#: portato/gui/utils.py:226
+#: portato/gui/utils.py:225
msgid "(In Progress)"
msgstr "(Çalışıyor)"
-#: portato/gui/utils.py:251
+#: portato/gui/utils.py:250
msgid "Install"
msgstr "Kur"
-#: portato/gui/utils.py:262
+#: portato/gui/utils.py:261
msgid "Uninstall"
msgstr "Kaldır"
-#: portato/gui/utils.py:274
+#: portato/gui/utils.py:273
msgid "Update"
msgstr "Güncelle"
+#: portato/eix/exceptions.py:26
+msgid "Unknown error."
+msgstr "Bilinmeyen hata."
+
+#: portato/eix/exceptions.py:37
+#, python-format
+msgid "End of file reached though it was not expected: '%s'"
+msgstr "Dosyanın sonuna ulaşıldı, ancak bu beklenmiyordu: '%s'"
+
+#: portato/eix/exceptions.py:45
+#, python-format
+msgid "Version '%s' is not supported."
+msgstr "'%s' sürümü desteklenmiyor."
+
#: portato/backend/flags.py:527
#, python-format
msgid "Conflicting values for masking status: %s"
@@ -867,17 +925,17 @@ msgstr "Maskelemede çelişen değerler: %s"
msgid "Line %(line)s in file %(file)s misses a keyword (e.g. '~x86')."
msgstr "%(file)s dosyasındaki %(line)s satırında bir anahtar eksik (örn. '~x86')."
-#: portato/backend/portage/system.py:258
+#: portato/backend/portage/system.py:280
#, python-format
msgid "No best match for %s. It seems not to be in the tree anymore."
msgstr "%s için iyi bir eşleşme bulunamadı. Artık portage ağacında olmayacak gibi görünüyor."
-#: portato/backend/portage/system.py:316
+#: portato/backend/portage/system.py:338
#, python-format
msgid "Found a not installed dependency: %s."
msgstr "Kurulmamış bir bağımlılık bulundu: %s."
-#: portato/backend/portage/system.py:358
+#: portato/backend/portage/system.py:380
#, python-format
msgid "Bug? No best match could be found for '%(package)s'. Needed by: '%(cpv)s'."
msgstr "Hata? '%(package)s' için iyi bir eşlenme bulunamadı. Ancak pakede '%(cpv)s' tarafından ihtiyaç duyuluyor."
@@ -887,15 +945,15 @@ msgstr "Hata? '%(package)s' için iyi bir eşlenme bulunamadı. Ancak pakede '%(
msgid "BUG in flags.new_masking_status. It returns '%s'"
msgstr "Bayraklarda hata .new_masking_status. Çıktısı '%s'"
-#: portato/__init__.py:53
+#: portato/__init__.py:54
msgid "do not fork off as root"
msgstr "root hakları olmadan başla"
-#: portato/__init__.py:76
+#: portato/__init__.py:83
msgid "Starting Portato"
msgstr "Portato başlatılıyor"
-#: portato/__init__.py:121
+#: portato/__init__.py:125
msgid "No valid su command detected. Aborting."
msgstr "Geçerli su komutu bulunamadı. İptal ediliyor."
@@ -903,11 +961,11 @@ msgstr "Geçerli su komutu bulunamadı. İptal ediliyor."
msgid "Invalid dependency string"
msgstr "Geçersiz bağımlılık listesi"
-#: portato/db/__init__.py:24
+#: portato/db/__init__.py:21
msgid "SQLite"
msgstr "SQLite"
-#: portato/db/__init__.py:24
+#: portato/db/__init__.py:21
msgid ""
"Uses an SQLite-database to store package information.\n"
"May take longer to generate at the first time, but has advantages if portato is re-started with an unchanged portage tree. Additionally it allows to use fast SQL expressions for fetching the data."
@@ -915,11 +973,11 @@ msgstr ""
"Paket bilgilerini saklamak için bir SQLite veritabanı kullanır.\n"
"Oluşturma sırasında biraz zaman alabilir, ancak değişmemiş bir portage ağacı ile portato yeniden başlarsa daha hızlı açılır. Ayrıca bilgiye ulaşmak için hızlı SQL sorguları gönderilmesine izin verir."
-#: portato/db/__init__.py:25
+#: portato/db/__init__.py:22
msgid "Hashmap"
msgstr "Karışık Harita"
-#: portato/db/__init__.py:25
+#: portato/db/__init__.py:22
msgid ""
"Uses an in-memory hashmap to store package information.\n"
"Has been used since at least version 0.3.3, but all information has to be regenerated on each startup."
@@ -927,53 +985,79 @@ msgstr ""
"Paket bilgilerini belleğe atarak kullanır.\n"
"0.3.3 sürümünden bu yana kullanılabilir, ancak seçerseniz her açılışta bütün bilginin tekrar taranması gerekir."
-#: portato/db/__init__.py:40
-msgid "Cannot load SQLDatabase."
-msgstr "SQL veritabanı yüklenemiyor"
+#: portato/db/__init__.py:23
+msgid "eix + SQLite"
+msgstr "eix + SQLite"
+
+#: portato/db/__init__.py:23
+msgid ""
+"Similar to SQLite, but now uses the eix database to get the package information.\n"
+"This should be much faster on startup, but requires that your eix database is always up-to-date.\n"
+"Additionally, this is the only database allowing searching in descriptions."
+msgstr ""
+"SQLite'a benzemekte, ancak artık paket bilgisini eix veritabanından alıyor.\n"
+"Bu sayede uygulama çok daha hızlı açılmakla beraber, sistemdeki eix veritabanının her zaman güncel olması gerekir.\n"
+"Ayrıca, paket tanımları içinde arama yapmaya izin veren tek veritabanı seçeneği de budur."
#: portato/db/__init__.py:51
+#: portato/db/__init__.py:66
+#, python-format
+msgid "Cannot load %s."
+msgstr "%s yüklenemiyor."
+
+#: portato/db/__init__.py:72
#, python-format
msgid "Unknown database type: %s"
msgstr "Bilinmeyen veritabanı türü: %s"
-#: portato/db/database.py:38
-msgid "ALL"
-msgstr "TÜMÜ"
-
-#: portato/db/dict.py:94
+#: portato/db/hash.py:97
#, python-format
msgid "Catched KeyError => %s seems not to be an available category. Have you played with rsync-excludes?"
msgstr "Catched KeyError => %s geçerli bir kategoride görünmüyor. rsync-excludes değerleri ile mi oynadınız?"
-#: portato/db/dict.py:149
+#: portato/db/hash.py:152
#, python-format
msgid "Error while compiling search expression: '%s'."
msgstr "'%s' Düzenli ifadesini değerlendirirken hata."
-#: portato/db/sql.py:79
+#: portato/db/eix_sql.py:35
+#, python-format
+msgid "Cache file '%s' does not exist. Using default instead."
+msgstr "Önbellek dosyası '%s' bulunmamakta. Yerine öntanımlı olan kullanılıyor."
+
+#: portato/db/database.py:44
+msgid "ALL"
+msgstr "TÜMÜ"
+
+#: portato/db/database.py:50
+#: portato/db/database.py:52
+msgid "Name"
+msgstr "İsim"
+
+#: portato/db/sql.py:82
msgid "Cleaning database..."
msgstr "Veritabanı temizleniyor..."
-#: portato/db/sql.py:81
+#: portato/db/sql.py:84
msgid "Populating database..."
msgstr "Veritabanı oluşturuluyor..."
-#: portato/session.py:67
+#: portato/session.py:66
#, python-format
msgid "Loading '%s' session from %s."
msgstr "'%s' oturumu %s kaynağından yükleniyor."
-#: portato/session.py:69
+#: portato/session.py:68
#, python-format
msgid "Loading session from %s."
msgstr "Oturum %s kaynağından yükleniyor."
-#: portato/session.py:141
+#: portato/session.py:136
#, python-format
msgid "Saving '%s' session to %s."
msgstr "'%s' oturumu %s hedefine kaydediliyor."
-#: portato/session.py:143
+#: portato/session.py:138
#, python-format
msgid "Saving session to %s."
msgstr "Oturum %s hedefine kaydediliyor."
@@ -983,141 +1067,180 @@ msgstr "Oturum %s hedefine kaydediliyor."
msgid "Unrecognized line in configuration: %s"
msgstr "Yapılandırmada tanınmayan satır: %s"
-#: portato/listener.py:94
+#: portato/listener.py:85
msgid "Listener has not been started."
msgstr "Dinleyici başlatılmadı."
-#: portato/plugin.py:438
-#: portato/plugin.py:441
+#: portato/listener.py:94
#, python-format
-msgid "Loading plugin '%(plugin)s' failed: %(error)s"
+msgid "An exception occured while accessing the message queue: %s"
+msgstr "Mesaj kuyruğuna ulaşılırken bir istisna oluştu: %s"
+
+#: portato/plugin.py:446
+#: portato/plugin.py:449
+#, fuzzy, python-format
+msgid "Loading plugin module '%(plugin)s' failed: %(error)s"
+msgstr "'%(plugin)s' eklentisi yüklenemedi: %(error)s"
+
+#: portato/plugin.py:459
+#, fuzzy, python-format
+msgid "Loading widgets plugin '%(plugin)s' failed: %(error)s"
msgstr "'%(plugin)s' eklentisi yüklenemedi: %(error)s"
-#: portato/plugin.py:451
+#: portato/plugin.py:462
+#, fuzzy, python-format
+msgid "Loading widgets of plugin '%(plugin)s' failed: %(error)s"
+msgstr "'%(plugin)s' eklentisi yüklenemedi: %(error)s"
+
+#: portato/plugin.py:466
#, python-format
msgid "Widgets of plugin '%s' loaded."
msgstr "'%s' eklentisinin widget'leri yüklendi."
-#: portato/plugin.py:482
+#: portato/plugin.py:497
msgid "Plugin is disabled!"
msgstr "Eklenti pasifleştirildi!"
-#: portato/plugin.py:484
+#: portato/plugin.py:499
msgid "Plugin has unresolved dependencies - disabled!"
msgstr "Eklenti sağlam bağımlılıklara sahip değil - etkisizleştirildi!"
-#: portato/plugin.py:488
+#: portato/plugin.py:503
#, python-format
msgid "Plugin '%s' loaded."
msgstr "'%s' eklentisi yüklendi."
-#: portato/plugin.py:528
+#: portato/plugin.py:543
#, python-format
msgid "Overriding hook '%(hook)s' with plugin '%(plugin)s'."
msgstr "'%(plugin)s' ile '%(hook)s' üzerine yazılıyor."
-#: portato/plugin.py:586
+#: portato/plugin.py:601
#, python-format
msgid "For hook '%(hook)s' an override is already defined by plugin '%(plugin)s'!"
msgstr ""
-#: portato/plugin.py:587
+#: portato/plugin.py:602
#, python-format
msgid "It is now replaced by the one from plugin '%s'!"
msgstr ""
-#: portato/plugin.py:620
+#: portato/plugin.py:635
#, python-format
msgid "Dependant '%(dep)s' for '%(hook)s' in plugin '%(plugin)s' not found! Adding nevertheless."
msgstr ""
-#: plugins/etc_proposals.py:34
+#: portato/plugin.py:704
+#: portato/plugin.py:707
+#, python-format
+msgid "Registrating plugin '%(plugin)s' failed: %(error)s"
+msgstr "'%(plugin)s' eklentisi kaydedilemedi: %(error)s"
+
+#: plugins/etc_proposals.py:32
msgid "Cannot start etc-proposals. Not root!"
msgstr "etc-proposals başlatılamıyor. Root değilsiniz!"
-#: plugins/package_details.py:67
+#: plugins/package_details.py:73
msgid "Shows the Changelog of a package"
msgstr "Bir paketin değişim kaydı dosyasını gösterir"
-#: plugins/package_details.py:69
+#: plugins/package_details.py:75
msgid "Changelog"
msgstr "Değişiklikler"
-#: plugins/package_details.py:79
+#: plugins/package_details.py:85
msgid "Shows the ebuild of a package"
msgstr "Bir paketin ebuildini gösterir"
-#: plugins/package_details.py:82
+#: plugins/package_details.py:88
msgid "Ebuild"
msgstr "Ebuild"
-#: plugins/package_details.py:89
+#: plugins/package_details.py:95
msgid "Shows the installed files of a package"
msgstr "Kurulu bir pakedin dosyalarını gösterir"
-#: plugins/package_details.py:91
+#: plugins/package_details.py:97
msgid "Files"
msgstr "Dosyalar"
-#: plugins/package_details.py:105
+#: plugins/package_details.py:111
msgid "Shows the dependencies of a package"
msgstr "Bir paketin bağımlılıklarını gösterir"
-#: plugins/package_details.py:107
+#: plugins/package_details.py:113
msgid "Dependencies"
msgstr "Bağımlılıklar"
-#: plugins/package_details.py:179
+#: plugins/package_details.py:185
#, python-format
msgid "If '%s' is disabled"
msgstr "Eğer '%s' pasifse"
-#: plugins/package_details.py:181
+#: plugins/package_details.py:187
#, python-format
msgid "If '%s' is enabled"
msgstr "Eğer '%s' USE bayrağı etkinse"
-#: plugins/package_details.py:187
+#: plugins/package_details.py:193
msgid "One of the following"
msgstr "Ardındakilerden birisi"
-#: plugins/package_details.py:192
+#: plugins/package_details.py:198
msgid "All of the following"
msgstr "Ardındakilerin hepsi"
-#: plugins/package_details.py:203
+#: plugins/package_details.py:209
msgid "Can't display dependencies: This package has an unsupported dependency string."
msgstr "Bağımlılıklar gösterilemiyor: Bu paket desteklenmeyen bir bağımlılık listesine sahip."
-#: plugins/notify.py:24
+#: plugins/notify.py:23
msgid "Cannot import 'pynotify'."
msgstr "'pynotify' içe aktarılamıyor."
-#: plugins/notify.py:36
+#: plugins/notify.py:35
msgid "Notify called while process is still running!"
msgstr "işlem devam ederken çağrı yapıldı!"
-#: plugins/notify.py:40
+#: plugins/notify.py:39
msgid "Emerge finished!"
msgstr "Emerge tamamlandı!"
-#: plugins/notify.py:44
+#: plugins/notify.py:43
msgid "Emerge failed!"
msgstr "Emerge başarısız!"
-#: plugins/notify.py:45
+#: plugins/notify.py:44
#, python-format
msgid "Error Code: %d"
msgstr "Hata Kodu: %d"
+#~ msgid ""
+#~ "Attaches the logfile to the mail. This log only contains debug "
+#~ "information."
+#~ msgstr ""
+#~ "E-postaya programın günlük kaydını da ekler. Bu kayıt sadece hata "
+#~ "ayıklama bilgisi içerir."
+
+#~ msgid "Attach _Logfile"
+#~ msgstr "Kayıt Dosyasını Ek_le"
+
+#~ msgid "_File"
+#~ msgstr "_Dosya"
+
+#~ msgid "_Plugins"
+#~ msgstr "Eklen_tiler"
+
#~ msgid "-L is deprecated"
#~ msgstr "-L kullanılmıyor"
+
#~ msgid ""
#~ "This software is licensed under the terms of the GPLv2.\n"
#~ "Copyright (C) 2006-2008 René 'Necoro' Neumann <necoro@necoro.net>"
#~ msgstr ""
#~ "Bu yazılım GPLv2 lisansı altında dağıtılmaktadır.\n"
#~ "Copyright (C) 2006-2007 René 'Necoro' Neumann <necoro@necoro.net>"
+
#~ msgid ""
#~ "Update the package list with the current search results while you are "
#~ "typing.\n"
@@ -1125,6 +1248,7 @@ msgstr "Hata Kodu: %d"
#~ msgstr ""
#~ "Siz yazarken aramayı başlatır ve bunu sonuçlara yansıtır.\n"
#~ "<b>Not</b>: Bu özellik yazma işleminizi yavaşlatacaktır."
+
#~ msgid ""
#~ "Organize the categories in a tree. Thereby collapse categories with the "
#~ "same prefix:\n"
@@ -1137,40 +1261,53 @@ msgstr "Hata Kodu: %d"
#~ "Örneğin: <i>app-admin</i>, <i>app-emacs</i>, ve <i>app-vim</i> "
#~ "kategorileri <i><b>app</b></i> altında <i>admin</i>, <i>emacs</i>, ve "
#~ "<i>vim</i> olarak katlanabilecek."
+
#~ msgid "Oneshot"
#~ msgstr "Oneshot"
+
#~ msgid ""
#~ "Exception in thread \"%(thread)s\":\n"
#~ "%(trace)s"
#~ msgstr ""
#~ "Beklenmeyen bir durum oluştu \"%(thread)s\":\n"
#~ "%(trace)s"
+
#~ msgid ""
#~ "Exception:\n"
#~ "%s"
#~ msgstr ""
#~ "istisna:\n"
#~ "%s"
+
#~ msgid "Resume-loop called while process is still running!"
#~ msgstr "Devam et çağrısı, işlem devam ederken geldi!"
+
#~ msgid "Plugin"
#~ msgstr "Eklenti"
+
#~ msgid "Authors"
#~ msgstr "Üreticiler"
+
#~ msgid "Status"
#~ msgstr "Durum"
+
#~ msgid "%s cannot be imported."
#~ msgstr "%s içe aktarılamadı."
+
#~ msgid "Loading plugin '%s' failed. Invalid XML syntax."
#~ msgstr "'%s' eklentisi yüklenemedi. XML sözdizimi hatası."
+
#~ msgid "Loading plugin '%s' failed. Plugin does not comply with schema."
#~ msgstr "'%s' eklentisi yüklenemedi. Eklenti şemaya uymuyor."
+
#~ msgid "validates the given plugin xml instead of launching Portato"
#~ msgstr "Portato'yu başlatmaz, verilen eklenti xml dosyasını tanıtır"
+
#~ msgid "Validation failed. XML syntax error: %s."
#~ msgstr "Geçerli değil. XML sözdizimi hatası: %s."
+
#~ msgid "Validation failed. Does not comply with schema."
#~ msgstr "Geçerli değil. Şemaya uymuyor."
+
#~ msgid "Validation succeeded."
#~ msgstr "Geçerli."
-
diff --git a/icons/better-package.svg b/icons/better-package.svg
new file mode 100644
index 0000000..30e4e5f
--- /dev/null
+++ b/icons/better-package.svg
@@ -0,0 +1,146 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ width="48"
+ height="48"
+ id="svg2"
+ sodipodi:version="0.32"
+ inkscape:version="0.47 r22583"
+ version="1.0"
+ sodipodi:docname="better-package.svg"
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
+ <defs
+ id="defs4">
+ <linearGradient
+ id="linearGradient2786">
+ <stop
+ style="stop-color:#fcce4f;stop-opacity:1;"
+ offset="0"
+ id="stop2788" />
+ <stop
+ style="stop-color:#fce94f;stop-opacity:0;"
+ offset="1"
+ id="stop2790" />
+ </linearGradient>
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2786"
+ id="radialGradient2792"
+ cx="25"
+ cy="22"
+ fx="25"
+ fy="22"
+ r="17"
+ gradientTransform="matrix(1.30147,0,0,1.224913,-7.536765,-3.448096)"
+ gradientUnits="userSpaceOnUse" />
+ <radialGradient
+ inkscape:collect="always"
+ xlink:href="#linearGradient2786"
+ id="radialGradient3621"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(1.5698522,0,0,1.5190305,-15.058824,-10.043684)"
+ cx="25"
+ cy="22"
+ fx="25"
+ fy="22"
+ r="17" />
+ </defs>
+ <sodipodi:namedview
+ id="base"
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1.0"
+ inkscape:pageopacity="0.0"
+ inkscape:pageshadow="2"
+ inkscape:zoom="8"
+ inkscape:cx="21.225364"
+ inkscape:cy="14.98821"
+ inkscape:document-units="px"
+ inkscape:current-layer="layer1"
+ width="48px"
+ height="48px"
+ inkscape:showpageshadow="false"
+ showgrid="false"
+ inkscape:window-width="1249"
+ inkscape:window-height="823"
+ inkscape:window-x="10"
+ inkscape:window-y="65"
+ showborder="false"
+ inkscape:window-maximized="0">
+ <inkscape:grid
+ id="GridFromPre046Settings"
+ type="xygrid"
+ originx="0px"
+ originy="0px"
+ spacingx="0.5px"
+ spacingy="0.5px"
+ color="#0000ff"
+ empcolor="#0000ff"
+ opacity="0.2"
+ empopacity="0.4"
+ empspacing="2" />
+ </sodipodi:namedview>
+ <metadata
+ id="metadata7">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <cc:license
+ rdf:resource="http://creativecommons.org/licenses/GPL/2.0/" />
+ <dc:creator>
+ <cc:Agent>
+ <dc:title>Lapo Calamandrei</dc:title>
+ </cc:Agent>
+ </dc:creator>
+ </cc:Work>
+ <cc:License
+ rdf:about="http://creativecommons.org/licenses/GPL/2.0/">
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/Reproduction" />
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/Distribution" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/Notice" />
+ <cc:permits
+ rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/ShareAlike" />
+ <cc:requires
+ rdf:resource="http://web.resource.org/cc/SourceCode" />
+ </cc:License>
+ </rdf:RDF>
+ </metadata>
+ <g
+ inkscape:label="Livello 1"
+ inkscape:groupmode="layer"
+ id="layer1">
+ <path
+ sodipodi:type="star"
+ style="fill:#fce54f;fill-opacity:1;stroke:#000000;stroke-width:1.39475423;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
+ id="path1869"
+ sodipodi:sides="5"
+ sodipodi:cx="11"
+ sodipodi:cy="8.125"
+ sodipodi:r1="15.377032"
+ sodipodi:r2="8.9001045"
+ sodipodi:arg1="-1.5707963"
+ sodipodi:arg2="-0.9424778"
+ inkscape:flatsided="false"
+ inkscape:rounded="0.18352206"
+ inkscape:randomized="0"
+ d="m 11,-7.2520323 c 1.781445,0 3.790132,7.12958977 5.23135,8.17669647 1.441219,1.04710673 8.84258,0.75431763 9.393077,2.44857193 0.550496,1.6942542 -5.609428,5.8077933 -6.159925,7.5020479 -0.550496,1.694254 2.015109,8.64289 0.57389,9.689997 C 18.597174,21.612387 12.781444,17.025105 11,17.025105 9.2185557,17.025104 3.4028256,21.612387 1.9616069,20.56528 0.52038819,19.518174 3.0859941,12.569538 2.5354976,10.875284 1.9850011,9.1810293 -4.1749232,5.0674896 -3.6244266,3.3732353 -3.0739301,1.6789811 4.3274311,1.9717708 5.7686498,0.92466421 7.2098686,-0.12244246 9.2185561,-7.2520323 11,-7.2520323 z"
+ transform="matrix(1.120396,0,0,1.105138,11.863144,13.932639)" />
+ </g>
+</svg>
diff --git a/plugins/etc_proposals.py b/plugins/etc_proposals.py
index 052f3d3..80f1ef9 100644
--- a/plugins/etc_proposals.py
+++ b/plugins/etc_proposals.py
@@ -3,7 +3,7 @@
# File: plugins/etc_proposals.py
# This file is part of the Portato-Project, a graphical portage-frontend.
#
-# Copyright (C) 2006-2009 René 'Necoro' Neumann
+# Copyright (C) 2006-2010 René 'Necoro' Neumann
# This is free software. You may redistribute copies of it under the terms of
# the GNU General Public License version 2.
# There is NO WARRANTY, to the extent permitted by law.
diff --git a/plugins/exception.py b/plugins/exception.py
index 3fe7287..02d0cc3 100644
--- a/plugins/exception.py
+++ b/plugins/exception.py
@@ -3,7 +3,7 @@
# File: plugins/exception.py
# This file is part of the Portato-Project, a graphical portage-frontend.
#
-# Copyright (C) 2006-2009 René 'Necoro' Neumann
+# Copyright (C) 2006-2010 René 'Necoro' Neumann
# This is free software. You may redistribute copies of it under the terms of
# the GNU General Public License version 2.
# There is NO WARRANTY, to the extent permitted by law.
diff --git a/plugins/gpytage.py b/plugins/gpytage.py
index b7b48d7..00f85ab 100644
--- a/plugins/gpytage.py
+++ b/plugins/gpytage.py
@@ -3,7 +3,7 @@
# File: plugins/gpytage.py
# This file is part of the Portato-Project, a graphical portage-frontend.
#
-# Copyright (C) 2006-2009 René 'Necoro' Neumann
+# Copyright (C) 2006-2010 René 'Necoro' Neumann
# This is free software. You may redistribute copies of it under the terms of
# the GNU General Public License version 2.
# There is NO WARRANTY, to the extent permitted by law.
diff --git a/plugins/new_version.py b/plugins/new_version.py
index 9fa5f4e..876beea 100644
--- a/plugins/new_version.py
+++ b/plugins/new_version.py
@@ -3,7 +3,7 @@
# File: plugins/new_version.py
# This file is part of the Portato-Project, a graphical portage-frontend.
#
-# Copyright (C) 2006-2009 René 'Necoro' Neumann
+# Copyright (C) 2006-2010 René 'Necoro' Neumann
# This is free software. You may redistribute copies of it under the terms of
# the GNU General Public License version 2.
# There is NO WARRANTY, to the extent permitted by law.
diff --git a/plugins/notify.py b/plugins/notify.py
index 4aba2c6..e762b5c 100644
--- a/plugins/notify.py
+++ b/plugins/notify.py
@@ -3,7 +3,7 @@
# File: plugins/notify.py
# This file is part of the Portato-Project, a graphical portage-frontend.
#
-# Copyright (C) 2006-2009 René 'Necoro' Neumann
+# Copyright (C) 2006-2010 René 'Necoro' Neumann
# This is free software. You may redistribute copies of it under the terms of
# the GNU General Public License version 2.
# There is NO WARRANTY, to the extent permitted by law.
diff --git a/plugins/package_details.py b/plugins/package_details.py
index 19f3126..dc1ce03 100644
--- a/plugins/package_details.py
+++ b/plugins/package_details.py
@@ -3,7 +3,7 @@
# File: plugins/package_details.py
# This file is part of the Portato-Project, a graphical portage-frontend.
#
-# Copyright (C) 2006-2009 René 'Necoro' Neumann
+# Copyright (C) 2006-2010 René 'Necoro' Neumann
# This is free software. You may redistribute copies of it under the terms of
# the GNU General Public License version 2.
# There is NO WARRANTY, to the extent permitted by law.
diff --git a/plugins/reload_portage.py b/plugins/reload_portage.py
index 539e949..cc9d173 100644
--- a/plugins/reload_portage.py
+++ b/plugins/reload_portage.py
@@ -3,7 +3,7 @@
# File: plugins/reload_portage.py
# This file is part of the Portato-Project, a graphical portage-frontend.
#
-# Copyright (C) 2006-2009 René 'Necoro' Neumann
+# Copyright (C) 2006-2010 René 'Necoro' Neumann
# This is free software. You may redistribute copies of it under the terms of
# the GNU General Public License version 2.
# There is NO WARRANTY, to the extent permitted by law.
@@ -15,7 +15,7 @@ from portato.backend import system
class ReloadPortage (Plugin):
__author__ = "René 'Necoro' Neumann"
__description__ = """Reloads portage when an emerge process has finished.
-This can take some time, but sometimes it is necessairy."""
+This can take some time, but sometimes it is necessary."""
def init(self):
self.add_call("after_emerge", self.hook, type = "after", dep = "EtcProposals")
diff --git a/portato.py b/portato.py
index 0f0a61b..5f05462 100755
--- a/portato.py
+++ b/portato.py
@@ -5,7 +5,7 @@
# File: portato.py
# This file is part of the Portato-Project, a graphical portage-frontend.
#
-# Copyright (C) 2006-2009 René 'Necoro' Neumann
+# Copyright (C) 2006-2010 René 'Necoro' Neumann
# This is free software. You may redistribute copies of it under the terms of
# the GNU General Public License version 2.
# There is NO WARRANTY, to the extent permitted by law.
diff --git a/portato/__init__.py b/portato/__init__.py
index 98c019d..61d6a42 100644
--- a/portato/__init__.py
+++ b/portato/__init__.py
@@ -3,7 +3,7 @@
# File: portato/__init__.py
# This file is part of the Portato-Project, a graphical portage-frontend.
#
-# Copyright (C) 2006-2009 René 'Necoro' Neumann
+# Copyright (C) 2006-2010 René 'Necoro' Neumann
# This is free software. You may redistribute copies of it under the terms of
# the GNU General Public License version 2.
# There is NO WARRANTY, to the extent permitted by law.
diff --git a/portato/backend/__init__.py b/portato/backend/__init__.py
index 4f20a18..5f32818 100644
--- a/portato/backend/__init__.py
+++ b/portato/backend/__init__.py
@@ -3,7 +3,7 @@
# File: portato/backend/__init__.py
# This file is part of the Portato-Project, a graphical portage-frontend.
#
-# Copyright (C) 2006-2009 René 'Necoro' Neumann
+# Copyright (C) 2006-2010 René 'Necoro' Neumann
# This is free software. You may redistribute copies of it under the terms of
# the GNU General Public License version 2.
# There is NO WARRANTY, to the extent permitted by law.
diff --git a/portato/backend/exceptions.py b/portato/backend/exceptions.py
index f20a33e..dc2c7cd 100644
--- a/portato/backend/exceptions.py
+++ b/portato/backend/exceptions.py
@@ -3,7 +3,7 @@
# File: portato/backend/exceptions.py
# This file is part of the Portato-Project, a graphical portage-frontend.
#
-# Copyright (C) 2006-2009 René 'Necoro' Neumann
+# Copyright (C) 2006-2010 René 'Necoro' Neumann
# This is free software. You may redistribute copies of it under the terms of
# the GNU General Public License version 2.
# There is NO WARRANTY, to the extent permitted by law.
diff --git a/portato/backend/flags.py b/portato/backend/flags.py
index 9c5b93d..810b607 100644
--- a/portato/backend/flags.py
+++ b/portato/backend/flags.py
@@ -3,7 +3,7 @@
# File: portato/backend/flags.py
# This file is part of the Portato-Project, a graphical portage-frontend.
#
-# Copyright (C) 2006-2009 René 'Necoro' Neumann
+# Copyright (C) 2006-2010 René 'Necoro' Neumann
# This is free software. You may redistribute copies of it under the terms of
# the GNU General Public License version 2.
# There is NO WARRANTY, to the extent permitted by law.
diff --git a/portato/backend/package.py b/portato/backend/package.py
index 89d1528..56b910d 100644
--- a/portato/backend/package.py
+++ b/portato/backend/package.py
@@ -3,7 +3,7 @@
# File: portato/backend/package.py
# This file is part of the Portato-Project, a graphical portage-frontend.
#
-# Copyright (C) 2006-2009 René 'Necoro' Neumann
+# Copyright (C) 2006-2010 René 'Necoro' Neumann
# This is free software. You may redistribute copies of it under the terms of
# the GNU General Public License version 2.
# There is NO WARRANTY, to the extent permitted by law.
diff --git a/portato/backend/portage/__init__.py b/portato/backend/portage/__init__.py
index 1daf51b..e559f9e 100644
--- a/portato/backend/portage/__init__.py
+++ b/portato/backend/portage/__init__.py
@@ -3,7 +3,7 @@
# File: portato/backend/portage/__init__.py
# This file is part of the Portato-Project, a graphical portage-frontend.
#
-# Copyright (C) 2006-2009 René 'Necoro' Neumann
+# Copyright (C) 2006-2010 René 'Necoro' Neumann
# This is free software. You may redistribute copies of it under the terms of
# the GNU General Public License version 2.
# There is NO WARRANTY, to the extent permitted by law.
diff --git a/portato/backend/portage/package.py b/portato/backend/portage/package.py
index f108bde..7dbefb7 100644
--- a/portato/backend/portage/package.py
+++ b/portato/backend/portage/package.py
@@ -3,7 +3,7 @@
# File: portato/backend/portage/package.py
# This file is part of the Portato-Project, a graphical portage-frontend.
#
-# Copyright (C) 2006-2009 René 'Necoro' Neumann
+# Copyright (C) 2006-2010 René 'Necoro' Neumann
# This is free software. You may redistribute copies of it under the terms of
# the GNU General Public License version 2.
# There is NO WARRANTY, to the extent permitted by law.
diff --git a/portato/backend/portage/package_22.py b/portato/backend/portage/package_22.py
index ed804ce..23e8ed5 100644
--- a/portato/backend/portage/package_22.py
+++ b/portato/backend/portage/package_22.py
@@ -3,7 +3,7 @@
# File: portato/backend/portage/package_22.py
# This file is part of the Portato-Project, a graphical portage-frontend.
#
-# Copyright (C) 2006-2009 René 'Necoro' Neumann
+# Copyright (C) 2006-2010 René 'Necoro' Neumann
# This is free software. You may redistribute copies of it under the terms of
# the GNU General Public License version 2.
# There is NO WARRANTY, to the extent permitted by law.
diff --git a/portato/backend/portage/sets.py b/portato/backend/portage/sets.py
index 234047b..c1971b7 100644
--- a/portato/backend/portage/sets.py
+++ b/portato/backend/portage/sets.py
@@ -3,7 +3,7 @@
# File: portato/backend/portage/sets.py
# This file is part of the Portato-Project, a graphical portage-frontend.
#
-# Copyright (C) 2006-2009 René 'Necoro' Neumann
+# Copyright (C) 2006-2010 René 'Necoro' Neumann
# This is free software. You may redistribute copies of it under the terms of
# the GNU General Public License version 2.
# There is NO WARRANTY, to the extent permitted by law.
@@ -102,7 +102,7 @@ class InstalledSet (Set):
else:
t = system.settings.vartree.dbapi.match(key)
if not with_version:
- t = itt.imap(portage.dep.dep_getkey, t)
+ t = itt.imap(portage.cpv_getkey, t)
return set(t)
diff --git a/portato/backend/portage/settings.py b/portato/backend/portage/settings.py
index 8211f3b..2f3b780 100644
--- a/portato/backend/portage/settings.py
+++ b/portato/backend/portage/settings.py
@@ -3,7 +3,7 @@
# File: portato/backend/portage/settings.py
# This file is part of the Portato-Project, a graphical portage-frontend.
#
-# Copyright (C) 2006-2009 René 'Necoro' Neumann
+# Copyright (C) 2006-2010 René 'Necoro' Neumann
# This is free software. You may redistribute copies of it under the terms of
# the GNU General Public License version 2.
# There is NO WARRANTY, to the extent permitted by law.
diff --git a/portato/backend/portage/settings_22.py b/portato/backend/portage/settings_22.py
index bae3424..ba4f1e8 100644
--- a/portato/backend/portage/settings_22.py
+++ b/portato/backend/portage/settings_22.py
@@ -3,7 +3,7 @@
# File: portato/backend/portage/settings_22.py
# This file is part of the Portato-Project, a graphical portage-frontend.
#
-# Copyright (C) 2006-2009 René 'Necoro' Neumann
+# Copyright (C) 2006-2010 René 'Necoro' Neumann
# This is free software. You may redistribute copies of it under the terms of
# the GNU General Public License version 2.
# There is NO WARRANTY, to the extent permitted by law.
diff --git a/portato/backend/portage/system.py b/portato/backend/portage/system.py
index 4a08616..34d2b5c 100644
--- a/portato/backend/portage/system.py
+++ b/portato/backend/portage/system.py
@@ -3,7 +3,7 @@
# File: portato/backend/portage/system.py
# This file is part of the Portato-Project, a graphical portage-frontend.
#
-# Copyright (C) 2006-2009 René 'Necoro' Neumann
+# Copyright (C) 2006-2010 René 'Necoro' Neumann
# This is free software. You may redistribute copies of it under the terms of
# the GNU General Public License version 2.
# There is NO WARRANTY, to the extent permitted by law.
@@ -249,7 +249,7 @@ class PortageSystem (SystemInterface):
if not best:
return
- if not best.is_installed() and (best.is_masked() or best.is_testing(True)): # check to not update unnecessairily
+ if not best.is_installed() and (best.is_masked() or best.is_testing(True)): # check to not update unnecessarily
for i in inst:
if i.matches(crit):
debug("The installed %s matches %s. Discarding upgrade to masked version %s.", i.get_cpv(), crit, best.get_version())
diff --git a/portato/backend/portage/system_22.py b/portato/backend/portage/system_22.py
index d720a06..c3bfa5f 100644
--- a/portato/backend/portage/system_22.py
+++ b/portato/backend/portage/system_22.py
@@ -3,7 +3,7 @@
# File: portato/backend/portage/system_22.py
# This file is part of the Portato-Project, a graphical portage-frontend.
#
-# Copyright (C) 2006-2009 René 'Necoro' Neumann
+# Copyright (C) 2006-2010 René 'Necoro' Neumann
# This is free software. You may redistribute copies of it under the terms of
# the GNU General Public License version 2.
# There is NO WARRANTY, to the extent permitted by law.
diff --git a/portato/backend/system_interface.py b/portato/backend/system_interface.py
index f0bfdf6..a156d2b 100644
--- a/portato/backend/system_interface.py
+++ b/portato/backend/system_interface.py
@@ -3,7 +3,7 @@
# File: portato/backend/system_interface.py
# This file is part of the Portato-Project, a graphical portage-frontend.
#
-# Copyright (C) 2006-2009 René 'Necoro' Neumann
+# Copyright (C) 2006-2010 René 'Necoro' Neumann
# This is free software. You may redistribute copies of it under the terms of
# the GNU General Public License version 2.
# There is NO WARRANTY, to the extent permitted by law.
diff --git a/portato/config_parser.py b/portato/config_parser.py
index 39234a9..2ef52c5 100644
--- a/portato/config_parser.py
+++ b/portato/config_parser.py
@@ -3,7 +3,7 @@
# File: portato/config_parser.py
# This file is part of the Portato-Project, a graphical portage-frontend.
#
-# Copyright (C) 2006-2009 René 'Necoro' Neumann
+# Copyright (C) 2006-2010 René 'Necoro' Neumann
# This is free software. You may redistribute copies of it under the terms of
# the GNU General Public License version 2.
# There is NO WARRANTY, to the extent permitted by law.
diff --git a/portato/constants.py b/portato/constants.py
index bce15d2..a8e930c 100644
--- a/portato/constants.py
+++ b/portato/constants.py
@@ -3,7 +3,7 @@
# File: portato/constants.py
# This file is part of the Portato-Project, a graphical portage-frontend.
#
-# Copyright (C) 2006-2009 René 'Necoro' Neumann
+# Copyright (C) 2006-2010 René 'Necoro' Neumann
# This is free software. You may redistribute copies of it under the terms of
# the GNU General Public License version 2.
# There is NO WARRANTY, to the extent permitted by law.
diff --git a/portato/db/__init__.py b/portato/db/__init__.py
index 9d21d3b..850a84e 100644
--- a/portato/db/__init__.py
+++ b/portato/db/__init__.py
@@ -3,7 +3,7 @@
# File: portato/db/__init__.py
# This file is part of the Portato-Project, a graphical portage-frontend.
#
-# Copyright (C) 2006-2009 René 'Necoro' Neumann
+# Copyright (C) 2006-2010 René 'Necoro' Neumann
# This is free software. You may redistribute copies of it under the terms of
# the GNU General Public License version 2.
# There is NO WARRANTY, to the extent permitted by law.
@@ -12,66 +12,66 @@
from __future__ import absolute_import
+from . import database as db
+from .exceptions import UnknownDatabaseTypeError, DatabaseInstantiationError
from ..session import Session, SectionDict
from ..helper import debug, warning, error
-class UnknownDatabaseTypeError (Exception):
- pass
-
-_SESSION = None
-_TYPE = None
-_DEFAULT = "dict"
-_DATABASE = None
-
types = {
"sql": (_("SQLite"), _("Uses an SQLite-database to store package information.\nMay take longer to generate at the first time, but has advantages if portato is re-started with an unchanged portage tree. Additionally it allows to use fast SQL expressions for fetching the data.")),
"dict": (_("Hashmap"), _("Uses an in-memory hashmap to store package information.\nHas been used since at least version 0.3.3, but all information has to be regenerated on each startup.")),
- "eixsql" : (_("eix + SQLite"), _("Similar to SQLite, but now uses the eix database to get the package information.\nThis should be much faster on startup, but requires that your eix database is always up-to-date."))
+ "eixsql" : (_("eix + SQLite"), _("Similar to SQLite, but now uses the eix database to get the package information.\nThis should be much faster on startup, but requires that your eix database is always up-to-date.\nAdditionally, this is the only database allowing searching in descriptions."))
}
-def Database(type = None):
- global _SESSION, _TYPE, _DATABASE
+class Database(db.Database):
+ DEFAULT = "dict"
- if type is None:
- if _DATABASE is None:
- warning("No database type specified! Falling back to default.")
- return Database(_DEFAULT)
- else:
- return _DATABASE
+ def __new__ (cls, type = None):
+ if not '_the_instance' in cls.__dict__:
+ dbcls = cls._generate(type)
+ cls._the_instance = dbcls(cls._get_session())
+ elif type is not None:
+ raise DatabaseInstantiationError("Database instantiation called with 'type' argument multiple times.")
+ return cls._the_instance
- if _SESSION is None:
- _SESSION = Session("db.cfg", name = "DB")
- _SESSION.load()
+ @classmethod
+ def _generate(cls, type):
- _TYPE = type
+ if type is None:
+ warning("No database type specified! Falling back to default.")
+ type = cls.DEFAULT
+
+ cls.DB_TYPE = type
- if type == "sql":
- debug("Using SQLDatabase")
- try:
- from .sql import SQLDatabase
- except ImportError:
- warning(_("Cannot load %s."), "SQLDatabase")
- _DATABASE = Database("dict")
- else:
- _DATABASE = SQLDatabase(SectionDict(_SESSION, type))
+ if type == "sql":
+ debug("Using SQLDatabase")
+ try:
+ from .sql import SQLDatabase
+ except ImportError:
+ warning(_("Cannot load %s."), "SQLDatabase")
+ return cls._generate("dict")
+ else:
+ return SQLDatabase
- elif type == "dict":
- debug("Using HashDatabase")
- from .hash import HashDatabase
- _DATABASE = HashDatabase(SectionDict(_SESSION, type))
-
- elif type == "eixsql":
- debug("Using EixSQLDatabase")
- try:
- from .eix_sql import EixSQLDatabase
- except ImportError:
- warning(_("Cannot load %s."), "EixSQLDatabase.")
- _DATABASE = Database("sql")
- else:
- _DATABASE = EixSQLDatabase(SectionDict(_SESSION, type))
+ elif type == "dict":
+ debug("Using HashDatabase")
+ from .hash import HashDatabase
+ return HashDatabase
+
+ elif type == "eixsql":
+ debug("Using EixSQLDatabase")
+ try:
+ from .eix_sql import EixSQLDatabase
+ except ImportError:
+ warning(_("Cannot load %s."), "EixSQLDatabase.")
+ return cls._generate("sql")
+ else:
+ return EixSQLDatabase
- else:
- error(_("Unknown database type: %s"), type)
- raise UnknownDatabaseTypeError, type
+ else:
+ error(_("Unknown database type: %s"), type)
+ raise UnknownDatabaseTypeError, type
- return _DATABASE
+ @classmethod
+ def _get_session(cls):
+ return SectionDict(Session("db.cfg", name = "DB"), cls.DB_TYPE)
diff --git a/portato/db/database.py b/portato/db/database.py
index 7a23e5e..c679d06 100644
--- a/portato/db/database.py
+++ b/portato/db/database.py
@@ -3,7 +3,7 @@
# File: portato/db/database.py
# This file is part of the Portato-Project, a graphical portage-frontend.
#
-# Copyright (C) 2006-2009 René 'Necoro' Neumann
+# Copyright (C) 2006-2010 René 'Necoro' Neumann
# This is free software. You may redistribute copies of it under the terms of
# the GNU General Public License version 2.
# There is NO WARRANTY, to the extent permitted by law.
@@ -14,6 +14,12 @@ from __future__ import absolute_import, with_statement
from threading import RLock
from functools import wraps
+from ..helper import warning
+
+from .exceptions import UnsupportedSearchTypeError
+
+class UnsupportedSearchTypeError(Exception):
+ pass
class PkgData (object):
__slots__ = ("cat", "pkg", "inst", "disabled")
@@ -37,8 +43,19 @@ class Database (object):
ALL = _("ALL")
+ SEARCH_NAME = 1
+ SEARCH_DESCRIPTION = 2
+
+ TYPES = {
+ SEARCH_NAME : _("Name"),
+ SEARCH_DESCRIPTION : _("Description"),
+ SEARCH_NAME | SEARCH_DESCRIPTION : "%s + %s" % (_("Name"), _("Description"))
+ }
+
+
def __init__ (self):
self._lock = RLock()
+ self.type = self.SEARCH_NAME
@staticmethod
def lock (f):
@@ -51,6 +68,24 @@ class Database (object):
return wrapper
+ def search_types (self):
+ """The types of search supported by the database.
+
+ @return: type
+ @rtype: int"""
+ raise NotImplentedError
+
+ def set_type (self, type):
+ if type & self.search_types() != type:
+ raise UnsupportedSearchTypeError, type
+
+ self._type = type
+
+ def get_type (self):
+ return self._type
+
+ type = property(get_type, set_type)
+
def populate (self, category = None):
"""Populates the database.
diff --git a/portato/db/eix_sql.py b/portato/db/eix_sql.py
index c2d2292..75bcb1e 100644
--- a/portato/db/eix_sql.py
+++ b/portato/db/eix_sql.py
@@ -3,7 +3,7 @@
# File: portato/db/eix_sql.py
# This file is part of the Portato-Project, a graphical portage-frontend.
#
-# Copyright (C) 2006-2009 René 'Necoro' Neumann
+# Copyright (C) 2006-2010 René 'Necoro' Neumann
# This is free software. You may redistribute copies of it under the terms of
# the GNU General Public License version 2.
# There is NO WARRANTY, to the extent permitted by law.
@@ -41,6 +41,9 @@ class EixSQLDatabase (SQLDatabase):
SQLDatabase.__init__(self, session)
+ def search_types(self):
+ return self.SEARCH_NAME | self.SEARCH_DESCRIPTION
+
def updated (self):
mtime = os.stat(self.cache).st_mtime
old = self.session.get("mtime", 0)
@@ -63,7 +66,7 @@ class EixSQLDatabase (SQLDatabase):
if category is None or cat.name == category:
for pkg in cat.packages:
p = "%s/%s" % (cat.name, pkg.name)
- yield (cat.name, pkg.name, p in inst, False)
+ yield (cat.name, pkg.name, pkg.description, p in inst, False)
- connection.executemany("INSERT INTO packages (cat, name, inst, disabled) VALUES (?, ?, ?, ?)", _get())
+ connection.executemany("INSERT INTO packages (cat, name, descr, inst, disabled) VALUES (?, ?, ?, ?, ?)", _get())
connection.commit()
diff --git a/portato/db/exceptions.py b/portato/db/exceptions.py
new file mode 100644
index 0000000..8a6e424
--- /dev/null
+++ b/portato/db/exceptions.py
@@ -0,0 +1,24 @@
+# -*- coding: utf-8 -*-
+#
+# File: portato/db/exceptions.py
+# This file is part of the Portato-Project, a graphical portage-frontend.
+#
+# Copyright (C) 2006-2010 René 'Necoro' Neumann
+# This is free software. You may redistribute copies of it under the terms of
+# the GNU General Public License version 2.
+# There is NO WARRANTY, to the extent permitted by law.
+#
+# Written by René 'Necoro' Neumann <necoro@necoro.net>
+
+class DatabaseError (Exception):
+ pass
+
+class UnknownDatabaseTypeError (DatabaseError):
+ pass
+
+class DatabaseInstantiationError (DatabaseError):
+ pass
+
+class UnsupportedSearchTypeError(DatabaseError):
+ pass
+
diff --git a/portato/db/hash.py b/portato/db/hash.py
index 8cea6f2..4a6958b 100644
--- a/portato/db/hash.py
+++ b/portato/db/hash.py
@@ -3,7 +3,7 @@
# File: portato/db/hash.py
# This file is part of the Portato-Project, a graphical portage-frontend.
#
-# Copyright (C) 2006-2009 René 'Necoro' Neumann
+# Copyright (C) 2006-2010 René 'Necoro' Neumann
# This is free software. You may redistribute copies of it under the terms of
# the GNU General Public License version 2.
# There is NO WARRANTY, to the extent permitted by law.
@@ -32,6 +32,9 @@ class HashDatabase (Database):
self.__initialize()
self.populate()
+ def search_types(self):
+ return Database.SEARCH_NAME
+
def __initialize (self):
self._db = defaultdict(list)
self.inst_cats = set([self.ALL])
diff --git a/portato/db/sql.py b/portato/db/sql.py
index fbc01e6..f5dc257 100644
--- a/portato/db/sql.py
+++ b/portato/db/sql.py
@@ -3,7 +3,7 @@
# File: portato/db/sql.py
# This file is part of the Portato-Project, a graphical portage-frontend.
#
-# Copyright (C) 2006-2009 René 'Necoro' Neumann
+# Copyright (C) 2006-2010 René 'Necoro' Neumann
# This is free software. You may redistribute copies of it under the terms of
# the GNU General Public License version 2.
# There is NO WARRANTY, to the extent permitted by law.
@@ -34,7 +34,7 @@ from .database import Database, PkgData
class SQLDatabase (Database):
- FORMAT = "1"
+ FORMAT = "2"
FORBIDDEN = (".bzr", ".svn", ".git", "CVS", ".hg", "_darcs")
lock = Database.lock
@@ -47,6 +47,7 @@ class SQLDatabase (Database):
updateFormat = False
if "format" not in session or session["format"] != self.FORMAT:
+ debug("Need to update database format from '%s' to '%s'", session["format"], self.FORMAT)
session["format"] = self.FORMAT
updateFormat = True
@@ -61,6 +62,7 @@ class SQLDatabase (Database):
pkg_conn = sql.connect(pkgdb)
pkg_conn.row_factory = sql.Row
if pkgdb_existed and updateFormat:
+ debug("Dropping old table")
pkg_conn.execute("DROP TABLE packages")
pkg_conn.execute("""
@@ -68,6 +70,7 @@ class SQLDatabase (Database):
(
name TEXT,
cat TEXT,
+ descr TEXT DEFAULT "",
inst INTEGER,
disabled INTEGER
)""")
@@ -83,6 +86,9 @@ class SQLDatabase (Database):
pkg_conn.close()
+ def search_types(self):
+ return self.SEARCH_NAME
+
def updated (self):
changed = False
@@ -114,7 +120,7 @@ class SQLDatabase (Database):
os.remove(dbpath)
db_existed = False
- self.session["pickle"] = True # no need for a certain value
+ self.session["pickle"] = "1" # no need for a certain value
if db_existed:
debug("portdirs.db already existant")
@@ -253,12 +259,22 @@ class SQLDatabase (Database):
self._restrict = ""
else:
restrict = restrict.replace(".*","%").replace(".","_")
+ rest = ""
+
+ if self._type & self.SEARCH_NAME:
+ if "/" in restrict:
+ rest = "(name LIKE '%s%%' AND cat LIKE '%s')" % (pkg, cat)
+ else:
+ rest = "(name LIKE '%%%(restrict)s%%' OR cat LIKE '%(restrict)s%%')" % {"restrict":restrict}
- if "/" in restrict:
- cat,pkg = restrict.split("/")
- self._restrict = "AND name LIKE '%s%%' AND cat LIKE '%s'" % (pkg, cat)
- else:
- self._restrict = "AND (name LIKE '%%%(restrict)s%%' OR cat LIKE '%(restrict)s%%')" % {"restrict":restrict}
+ if self._type & self.SEARCH_DESCRIPTION:
+ r = "descr LIKE '%%%(restrict)s%%'" % {"restrict":restrict}
+ if rest:
+ rest = "(%s OR %s)" % (r, rest)
+ else:
+ rest = r
+
+ self._restrict = "AND " + rest
restrict = property(get_restrict, set_restrict)
con = staticmethod(con)
diff --git a/portato/dependency.py b/portato/dependency.py
index bda20eb..4b505e6 100644
--- a/portato/dependency.py
+++ b/portato/dependency.py
@@ -3,7 +3,7 @@
# File: portato/dependency.py
# This file is part of the Portato-Project, a graphical portage-frontend.
#
-# Copyright (C) 2006-2009 René 'Necoro' Neumann
+# Copyright (C) 2006-2010 René 'Necoro' Neumann
# This is free software. You may redistribute copies of it under the terms of
# the GNU General Public License version 2.
# There is NO WARRANTY, to the extent permitted by law.
diff --git a/portato/eix/__init__.py b/portato/eix/__init__.py
index 346fe82..8fa1da6 100644
--- a/portato/eix/__init__.py
+++ b/portato/eix/__init__.py
@@ -3,7 +3,7 @@
# File: portato/eix/__init__.py
# This file is part of the Portato-Project, a graphical portage-frontend.
#
-# Copyright (C) 2006-2009 René 'Necoro' Neumann
+# Copyright (C) 2006-2010 René 'Necoro' Neumann
# This is free software. You may redistribute copies of it under the terms of
# the GNU General Public License version 2.
# There is NO WARRANTY, to the extent permitted by law.
diff --git a/portato/eix/exceptions.py b/portato/eix/exceptions.py
index 8145af4..1ca05e1 100644
--- a/portato/eix/exceptions.py
+++ b/portato/eix/exceptions.py
@@ -3,7 +3,7 @@
# File: portato/eix/exceptions.py
# This file is part of the Portato-Project, a graphical portage-frontend.
#
-# Copyright (C) 2006-2009 René 'Necoro' Neumann
+# Copyright (C) 2006-2010 René 'Necoro' Neumann
# This is free software. You may redistribute copies of it under the terms of
# the GNU General Public License version 2.
# There is NO WARRANTY, to the extent permitted by law.
diff --git a/portato/eix/parser.pyx b/portato/eix/parser.pyx
index 01a673f..d4bd3af 100644
--- a/portato/eix/parser.pyx
+++ b/portato/eix/parser.pyx
@@ -3,7 +3,7 @@
# File: portato/eix/_parser.pyx
# This file is part of the Portato-Project, a graphical portage-frontend.
#
-# Copyright (C) 2006-2009 René 'Necoro' Neumann
+# Copyright (C) 2006-2010 René 'Necoro' Neumann
# This is free software. You may redistribute copies of it under the terms of
# the GNU General Public License version 2.
# There is NO WARRANTY, to the extent permitted by law.
@@ -260,7 +260,7 @@ cdef class package:
cdef LLong _offset
cdef readonly object name
- #cdef readonly object description
+ cdef readonly object description
#cdef readonly object provide
#cdef readonly object homepage
#cdef readonly object license
@@ -279,9 +279,9 @@ cdef class package:
after_offset = ftell(cfile)
self.name = string(file)
+ self.description = string(file)
# skip the rest, as it is currently unneeded
- #self.description = string(file)
#self.provide = vector(file, number)
#self.homepage = string(file)
#self.license = number(file)
diff --git a/portato/eix/py_parser.py b/portato/eix/py_parser.py
index cc42553..231c206 100644
--- a/portato/eix/py_parser.py
+++ b/portato/eix/py_parser.py
@@ -3,7 +3,7 @@
# File: portato/eix/parser.py
# This file is part of the Portato-Project, a graphical portage-frontend.
#
-# Copyright (C) 2006-2009 René 'Necoro' Neumann
+# Copyright (C) 2006-2010 René 'Necoro' Neumann
# This is free software. You may redistribute copies of it under the terms of
# the GNU General Public License version 2.
# There is NO WARRANTY, to the extent permitted by law.
diff --git a/portato/gui/__init__.py b/portato/gui/__init__.py
index 0a584a8..bbe21d8 100644
--- a/portato/gui/__init__.py
+++ b/portato/gui/__init__.py
@@ -3,7 +3,7 @@
# File: portato/gui/__init__.py
# This file is part of the Portato-Project, a graphical portage-frontend.
#
-# Copyright (C) 2006-2009 René 'Necoro' Neumann
+# Copyright (C) 2006-2010 René 'Necoro' Neumann
# This is free software. You may redistribute copies of it under the terms of
# the GNU General Public License version 2.
# There is NO WARRANTY, to the extent permitted by law.
diff --git a/portato/gui/dialogs.py b/portato/gui/dialogs.py
index d7ac41b..2cc2d6b 100644
--- a/portato/gui/dialogs.py
+++ b/portato/gui/dialogs.py
@@ -3,7 +3,7 @@
# File: portato/gui/dialogs.py
# This file is part of the Portato-Project, a graphical portage-frontend.
#
-# Copyright (C) 2006-2009 René 'Necoro' Neumann
+# Copyright (C) 2006-2010 René 'Necoro' Neumann
# This is free software. You may redistribute copies of it under the terms of
# the GNU General Public License version 2.
# There is NO WARRANTY, to the extent permitted by law.
@@ -20,6 +20,13 @@ def mail_failure_dialog(e):
dialog.destroy()
return ret
+def no_email_dialog(p):
+ dialog = gtk.MessageDialog(p, gtk.DIALOG_MODAL, gtk.MESSAGE_INFO, gtk.BUTTONS_OK_CANCEL, _("No email address given"))
+ dialog.format_secondary_text(_("You haven't specified an email address. Without it, it will not be possible for the developers to contact you for questions and thus it might be harder to fix the bug.\n\nDo you want to proceed nevertheless?"))
+ ret = dialog.run()
+ dialog.destroy()
+ return ret
+
def queue_not_empty_dialog():
dialog = gtk.MessageDialog(None, gtk.DIALOG_MODAL, gtk.MESSAGE_QUESTION, gtk.BUTTONS_NONE, _("Do you really want to quit?"))
dialog.format_secondary_text(_("There are some packages in the emerge queue and/or an emerge process is running."))
@@ -68,7 +75,18 @@ def nothing_found_dialog ():
def changed_flags_dialog (what = "flags"):
check = gtk.CheckButton(_("Do not show this dialog again."))
hintMB = gtk.MessageDialog(None, gtk.DIALOG_MODAL, gtk.MESSAGE_INFO, gtk.BUTTONS_OK, _("Changed %s") % what)
- hintMB.format_secondary_text(_("Portato will write these changes into the appropriate files.\nPlease backup them if you think it is necessairy."))
+ hintMB.format_secondary_text(_("Portato will write these changes into the appropriate files.\nPlease backup them if you think it is necessary."))
+ hintMB.vbox.add(check)
+ hintMB.vbox.show_all()
+ ret = hintMB.run()
+ hintMB.destroy()
+
+ return ret, check.get_active()
+
+def update_world_warning_dialog ():
+ check = gtk.CheckButton(_("Do not show this dialog again."))
+ hintMB = gtk.MessageDialog(None, gtk.DIALOG_MODAL, gtk.MESSAGE_WARNING, gtk.BUTTONS_OK, _("'Update World' may be giving errors"))
+ hintMB.format_secondary_text(_("Due to the fast changing portage, 'update world' might not work correctly or even throw errors.\nThis will be fixed (hopefully) in the next release."))
hintMB.vbox.add(check)
hintMB.vbox.show_all()
ret = hintMB.run()
diff --git a/portato/gui/exception_handling.py b/portato/gui/exception_handling.py
index 0ec1e9a..d9b133c 100644
--- a/portato/gui/exception_handling.py
+++ b/portato/gui/exception_handling.py
@@ -3,7 +3,7 @@
# File: portato/gui/exception_handling.py
# This file is part of the Portato-Project, a graphical portage-frontend.
#
-# Copyright (C) 2006-2009 René 'Necoro' Neumann
+# Copyright (C) 2006-2010 René 'Necoro' Neumann
# This is free software. You may redistribute copies of it under the terms of
# the GNU General Public License version 2.
# There is NO WARRANTY, to the extent permitted by law.
@@ -99,7 +99,7 @@ def convert (version):
def get_version_infos():
from ..constants import VERSION, REVISION
from ..backend import system
- from ..db import _TYPE as db_type
+ from ..db import Database
if REVISION:
VERSION = "%s (git: %s)" % (VERSION, REVISION)
@@ -109,7 +109,7 @@ def get_version_infos():
"System: %s" % " ".join(get_runsystem()),
"Python version: %s" % sys.version,
"Used backend: %s" % system.get_version(),
- "Used database type: %s" % db_type,
+ "Used database type: %s" % Database.DB_TYPE,
"pygtk: %s (using GTK+: %s)" % (convert(gtk.pygtk_version), convert(gtk.gtk_version)),
"pygobject: %s (using GLib: %s)" % (convert(gobject.pygobject_version), convert(gobject.glib_version))))
diff --git a/portato/gui/exceptions.py b/portato/gui/exceptions.py
index 17041dc..3e35caa 100644
--- a/portato/gui/exceptions.py
+++ b/portato/gui/exceptions.py
@@ -3,7 +3,7 @@
# File: portato/gui/exceptions.py
# This file is part of the Portato-Project, a graphical portage-frontend.
#
-# Copyright (C) 2006-2009 René 'Necoro' Neumann
+# Copyright (C) 2006-2010 René 'Necoro' Neumann
# This is free software. You may redistribute copies of it under the terms of
# the GNU General Public License version 2.
# There is NO WARRANTY, to the extent permitted by law.
diff --git a/portato/gui/queue.py b/portato/gui/queue.py
index 6d3d19d..b18e4e7 100644
--- a/portato/gui/queue.py
+++ b/portato/gui/queue.py
@@ -3,7 +3,7 @@
# File: portato/gui/queue.py
# This file is part of the Portato-Project, a graphical portage-frontend.
#
-# Copyright (C) 2006-2009 René 'Necoro' Neumann
+# Copyright (C) 2006-2010 René 'Necoro' Neumann
# This is free software. You may redistribute copies of it under the terms of
# the GNU General Public License version 2.
# There is NO WARRANTY, to the extent permitted by law.
diff --git a/portato/gui/session.py b/portato/gui/session.py
index 7aa890d..549a2c9 100644
--- a/portato/gui/session.py
+++ b/portato/gui/session.py
@@ -3,7 +3,7 @@
# File: portato/gui/session.py
# This file is part of the Portato-Project, a graphical portage-frontend.
#
-# Copyright (C) 2006-2009 René 'Necoro' Neumann
+# Copyright (C) 2006-2010 René 'Necoro' Neumann
# This is free software. You may redistribute copies of it under the terms of
# the GNU General Public License version 2.
# There is NO WARRANTY, to the extent permitted by law.
diff --git a/portato/gui/slots.py b/portato/gui/slots.py
index c7f20e6..75f4d77 100644
--- a/portato/gui/slots.py
+++ b/portato/gui/slots.py
@@ -3,7 +3,7 @@
# File: portato/gui/slots.py
# This file is part of the Portato-Project, a graphical portage-frontend.
#
-# Copyright (C) 2006-2009 René 'Necoro' Neumann
+# Copyright (C) 2006-2010 René 'Necoro' Neumann
# This is free software. You may redistribute copies of it under the terms of
# the GNU General Public License version 2.
# There is NO WARRANTY, to the extent permitted by law.
diff --git a/portato/gui/templates/AboutWindow.ui b/portato/gui/templates/AboutWindow.ui
index ec3ed7e..a3f81cf 100644
--- a/portato/gui/templates/AboutWindow.ui
+++ b/portato/gui/templates/AboutWindow.ui
@@ -16,7 +16,7 @@
<property name="has_separator">False</property>
<property name="program_name">Portato</property>
<property name="copyright">This software is licensed under the terms of the GPLv2.
-Copyright (C) 2006-2009 Ren&#xE9; 'Necoro' Neumann &lt;necoro@necoro.net&gt;</property>
+Copyright (C) 2006-2010 Ren&#xE9; 'Necoro' Neumann &lt;necoro@necoro.net&gt;</property>
<property name="comments">A Portage GUI</property>
<property name="website">http://portato.necoro.net</property>
<property name="authors">Ren&#xE9; 'Necoro' Neumann
@@ -25,12 +25,6 @@ Thanks goto:
- The Porthole team, which often inspired me and gave me hints :)
- franzf, who often tested and gave comments
- the Sabayon-Distro for making Portato the default Portage-GUI</property>
- <property name="translator_credits">Catalan - Roger Calv&#xF3;
-German - Ren&#xE9; 'Necoro' Neumann
-Polish - Tomasz Osi&#x144;ski
-Portugese (Brazilian) - Alberto Federman Neto
-Spanish - Daniel Halens
-Turkish - G&#xFC;rkan 'seqizz' G&#xFC;r</property>
<property name="artists">p4r4d0x (inspired by wolfden)</property>
<signal name="response" handler="close"/>
<child internal-child="vbox">
diff --git a/portato/gui/templates/MailInfoWindow.ui b/portato/gui/templates/MailInfoWindow.ui
index 4551cdb..e3cdd1f 100644
--- a/portato/gui/templates/MailInfoWindow.ui
+++ b/portato/gui/templates/MailInfoWindow.ui
@@ -134,25 +134,39 @@ what did you do to hit the bug?</property>
</packing>
</child>
<child>
- <object class="GtkCheckButton" id="logCheck">
- <property name="label" translatable="yes">Attach _Logfile</property>
+ <object class="GtkFrame" id="frame1">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="tooltip_text" translatable="yes">Attaches the logfile to the mail. This log only contains debug information.</property>
- <property name="use_underline">True</property>
- <property name="active">True</property>
- <property name="draw_indicator">True</property>
+ <property name="label_xalign">0</property>
+ <property name="shadow_type">none</property>
+ <child>
+ <object class="GtkAlignment" id="alignment1">
+ <property name="visible">True</property>
+ <property name="left_padding">12</property>
+ <child>
+ <object class="GtkTreeView" id="fileList">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="headers_visible">False</property>
+ <property name="headers_clickable">False</property>
+ <property name="enable_search">False</property>
+ <signal name="row_activated" handler="cb_file_clicked"/>
+ </object>
+ </child>
+ </object>
+ </child>
+ <child type="label">
+ <object class="GtkLabel" id="label6">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">These files will be sent:</property>
+ </object>
+ </child>
</object>
<packing>
+ <property name="right_attach">2</property>
<property name="top_attach">4</property>
<property name="bottom_attach">5</property>
- <property name="x_options">GTK_FILL</property>
</packing>
</child>
- <child>
- <placeholder/>
- </child>
</object>
<packing>
<property name="padding">5</property>
diff --git a/portato/gui/templates/MainWindow.menu b/portato/gui/templates/MainWindow.menu
index 5d8e8e0..5594aaf 100644
--- a/portato/gui/templates/MainWindow.menu
+++ b/portato/gui/templates/MainWindow.menu
@@ -16,7 +16,7 @@
<child>
<object class="GtkAction" id="fileMenuAction">
<property name="name">fileMenuAction</property>
- <property name="label" translatable="yes">_File</property>
+ <property name="label" translatable="yes">_General</property>
</object>
</child>
<child>
@@ -158,7 +158,7 @@
<object class="GtkAction" id="pluginsAction">
<property name="stock_id">gtk-connect</property>
<property name="name">pluginsAction</property>
- <property name="label" translatable="yes">_Plugins</property>
+ <property name="label" translatable="yes">Plu_gins</property>
<signal handler="cb_plugins_clicked" name="activate"/>
</object>
</child>
@@ -168,6 +168,7 @@
<menubar name="menubar">
<menu name="fileMenu" action="fileMenuAction">
<menuitem name="prefMenuItem" action="prefAction"/>
+ <menuitem name="pluginsMenuItem" action="pluginsAction"/>
<menuitem name="reloadMenuItem" action="reloadAction"/>
<separator/>
<menuitem name="closeMenuItem" action="closeAction"/>
@@ -176,6 +177,7 @@
<menuitem name="emergeMenuItem" action="emergeAction"/>
<menuitem name="unmergeMenuItem" action="unmergeAction"/>
<menuitem name="updateMenuItem" action="updateAction"/>
+ <separator/>
<menuitem name="showUpdatesMenuItem" action="showUpdatesAction"/>
<menuitem name="showWorldPkgsMenuItem" action="showWorldPkgsAction" />
<menuitem name="showInstalledMenuItem" action="showInstalledAction"/>
@@ -189,7 +191,6 @@
<menu name="pluginMenu" action="pluginMenuAction"/>
<menu name="helpMenu" action="helpMenuAction">
<menuitem name="aboutMenuItem" action="aboutAction"/>
- <menuitem name="pluginsMenuItem" action="pluginsAction"/>
</menu>
</menubar>
<popup name="systrayPopup">
diff --git a/portato/gui/templates/MainWindow.ui b/portato/gui/templates/MainWindow.ui
index 8e8c3b4..05e9545 100644
--- a/portato/gui/templates/MainWindow.ui
+++ b/portato/gui/templates/MainWindow.ui
@@ -30,6 +30,16 @@
<property name="visible">True</property>
<property name="border_width">3</property>
<child>
+ <object class="GtkComboBox" id="typeCombo">
+ <property name="visible">True</property>
+ <signal name="changed" handler="cb_type_combo_changed"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
<object class="GtkEntry" id="searchEntry">
<property name="visible">True</property>
<signal name="changed" handler="cb_search_changed"/>
@@ -38,12 +48,12 @@
</object>
<packing>
<property name="padding">5</property>
- <property name="position">0</property>
+ <property name="position">1</property>
</packing>
</child>
<child>
<object class="GtkButton" id="deleteSearchButton">
- <property name="label">gtk-delete</property>
+ <property name="label">gtk-clear</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
@@ -54,7 +64,7 @@
<packing>
<property name="expand">False</property>
<property name="padding">5</property>
- <property name="position">1</property>
+ <property name="position">2</property>
</packing>
</child>
<child>
@@ -69,7 +79,7 @@
<packing>
<property name="expand">False</property>
<property name="padding">5</property>
- <property name="position">2</property>
+ <property name="position">3</property>
</packing>
</child>
</object>
diff --git a/portato/gui/templates/PreferenceWindow.ui b/portato/gui/templates/PreferenceWindow.ui
index c7a00e0..d2135d0 100644
--- a/portato/gui/templates/PreferenceWindow.ui
+++ b/portato/gui/templates/PreferenceWindow.ui
@@ -784,8 +784,6 @@
<child>
<object class="GtkHBox" id="hbox4">
<property name="visible">True</property>
- <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
- <property name="orientation">vertical</property>
<property name="homogeneous">True</property>
<child>
<object class="GtkLabel" id="label21">
diff --git a/portato/gui/updater.py b/portato/gui/updater.py
index 7ce7c51..6539913 100644
--- a/portato/gui/updater.py
+++ b/portato/gui/updater.py
@@ -3,7 +3,7 @@
# File: portato/gui/updater.py
# This file is part of the Portato-Project, a graphical portage-frontend.
#
-# Copyright (C) 2006-2009 René 'Necoro' Neumann
+# Copyright (C) 2006-2010 René 'Necoro' Neumann
# This is free software. You may redistribute copies of it under the terms of
# the GNU General Public License version 2.
# There is NO WARRANTY, to the extent permitted by law.
diff --git a/portato/gui/utils.py b/portato/gui/utils.py
index 47f6fb7..ce5971e 100644
--- a/portato/gui/utils.py
+++ b/portato/gui/utils.py
@@ -3,7 +3,7 @@
# File: portato/gui/utils.py
# This file is part of the Portato-Project, a graphical portage-frontend.
#
-# Copyright (C) 2006-2009 René 'Necoro' Neumann
+# Copyright (C) 2006-2010 René 'Necoro' Neumann
# This is free software. You may redistribute copies of it under the terms of
# the GNU General Public License version 2.
# There is NO WARRANTY, to the extent permitted by law.
diff --git a/portato/gui/views.py b/portato/gui/views.py
index 3fc965f..699a832 100644
--- a/portato/gui/views.py
+++ b/portato/gui/views.py
@@ -3,7 +3,7 @@
# File: portato/gui/views.py
# This file is part of the Portato-Project, a graphical portage-frontend.
#
-# Copyright (C) 2006-2009 René 'Necoro' Neumann
+# Copyright (C) 2006-2010 René 'Necoro' Neumann
# This is free software. You may redistribute copies of it under the terms of
# the GNU General Public License version 2.
# There is NO WARRANTY, to the extent permitted by law.
diff --git a/portato/gui/windows/__init__.py b/portato/gui/windows/__init__.py
index 6a4ac82..5be95ce 100644
--- a/portato/gui/windows/__init__.py
+++ b/portato/gui/windows/__init__.py
@@ -3,7 +3,7 @@
# File: portato/gui/gtk/__init__.py
# This file is part of the Portato-Project, a graphical portage-frontend.
#
-# Copyright (C) 2006-2009 René 'Necoro' Neumann
+# Copyright (C) 2006-2010 René 'Necoro' Neumann
# This is free software. You may redistribute copies of it under the terms of
# the GNU General Public License version 2.
# There is NO WARRANTY, to the extent permitted by law.
diff --git a/portato/gui/windows/about.py b/portato/gui/windows/about.py
index 6c6fec5..0d2ce1a 100644
--- a/portato/gui/windows/about.py
+++ b/portato/gui/windows/about.py
@@ -3,19 +3,20 @@
# File: portato/gui/windows/about.py
# This file is part of the Portato-Project, a graphical portage-frontend.
#
-# Copyright (C) 2006-2009 René 'Necoro' Neumann
+# Copyright (C) 2006-2010 René 'Necoro' Neumann
# This is free software. You may redistribute copies of it under the terms of
# the GNU General Public License version 2.
# There is NO WARRANTY, to the extent permitted by law.
#
# Written by René 'Necoro' Neumann <necoro@necoro.net>
-from __future__ import absolute_import
+from __future__ import absolute_import, with_statement
+import os
import gtk
from .basic import AbstractDialog
-from ...constants import VERSION, REVISION, APP_ICON
+from ...constants import VERSION, REVISION, DATA_DIR
class AboutWindow (AbstractDialog):
"""A window showing the "about"-informations."""
@@ -24,11 +25,11 @@ class AboutWindow (AbstractDialog):
AbstractDialog.__init__(self, parent)
- img = gtk.Image()
- img.set_from_file(APP_ICON)
-
self.window.set_version(VERSION)
- self.window.set_logo(img.get_pixbuf())
+ self.window.set_logo(None)
+
+ with open(os.path.join(DATA_DIR, "TRANSLATORS")) as f:
+ self.window.set_translator_credits("".join(f.readlines()))
if REVISION:
gitlabel = self.tree.get_widget("gitLabel")
diff --git a/portato/gui/windows/basic.py b/portato/gui/windows/basic.py
index 20d8009..01d31e5 100644
--- a/portato/gui/windows/basic.py
+++ b/portato/gui/windows/basic.py
@@ -3,7 +3,7 @@
# File: portato/gui/windows/basic.py
# This file is part of the Portato-Project, a graphical portage-frontend.
#
-# Copyright (C) 2006-2009 René 'Necoro' Neumann
+# Copyright (C) 2006-2010 René 'Necoro' Neumann
# This is free software. You may redistribute copies of it under the terms of
# the GNU General Public License version 2.
# There is NO WARRANTY, to the extent permitted by law.
@@ -151,6 +151,9 @@ class AbstractDialog (Window):
self.window.set_transient_for(parent)
self.parent = parent
+ # type hint
+ self.window.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_DIALOG)
+
# catch the ESC-key
self.window.connect("key-press-event", self.cb_key_pressed)
diff --git a/portato/gui/windows/mailinfo.py b/portato/gui/windows/mailinfo.py
index 0cc79f2..4367482 100644
--- a/portato/gui/windows/mailinfo.py
+++ b/portato/gui/windows/mailinfo.py
@@ -3,7 +3,7 @@
# File: portato/gui/windows/mailinfo.py
# This file is part of the Portato-Project, a graphical portage-frontend.
#
-# Copyright (C) 2006-2009 René 'Necoro' Neumann
+# Copyright (C) 2006-2010 René 'Necoro' Neumann
# This is free software. You may redistribute copies of it under the terms of
# the GNU General Public License version 2.
# There is NO WARRANTY, to the extent permitted by law.
@@ -14,34 +14,98 @@ from __future__ import absolute_import, with_statement
import smtplib, socket
import time
+import gtk, pango, gobject
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
+from os.path import basename
from .basic import AbstractDialog
from ..utils import GtkThread
-from ..dialogs import mail_failure_dialog
+from .. import dialogs
from ...helper import debug, info
-from ...constants import VERSION
+from ...constants import VERSION, CONFIG_LOCATION
from ...log import LOGFILE
+from ... import session
+
+def mail_failure_dialog(*a):
+ dialogs.mail_failure_dialog(*a)
+ return False
+
+class ShowDialog (gtk.Dialog):
+
+ def __init__(self, parent, f):
+ gtk.Dialog.__init__(self, f, parent, buttons = (gtk.STOCK_CLOSE, gtk.RESPONSE_CLOSE))
+
+ textview = gtk.TextView()
+ textview.set_editable(False)
+ textview.modify_font(pango.FontDescription("Monospace"))
+ textview.set_size_request(gtk.gdk.screen_width()/2, gtk.gdk.screen_height()/3)
+
+ sw = gtk.ScrolledWindow();
+ sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
+ sw.add(textview)
+
+ self.vbox.add(sw)
+
+ textbuffer = textview.get_buffer()
+
+ with open(f) as text:
+ textbuffer.set_text(text.read())
+
+ self.vbox.show_all()
class MailInfoWindow (AbstractDialog):
- TO = "bugs@portato.necoro.net"
+ TO = "bugs@necoro.eu"
def __init__ (self, parent, tb):
AbstractDialog.__init__(self, parent)
+
+ self.files = [LOGFILE, CONFIG_LOCATION] + [s._file for s in session.sessionlist]
+ self.fileList = self.tree.get_widget("fileList")
+ self.build_file_list()
+ self.mailEntry = self.tree.get_widget("mailEntry")
self.tb = tb
self.window.show_all()
+ def build_file_list(self):
+ store = gtk.ListStore(bool, str)
+
+ for f in self.files:
+ store.append((True, f))
+
+ self.fileList.set_model(store)
+ cell = gtk.CellRendererText()
+ tCell = gtk.CellRendererToggle()
+ tCell.set_property("activatable", True)
+ tCell.connect("toggled", self.cb_file_toggled)
+
+ self.fileList.append_column(gtk.TreeViewColumn(None, tCell, active = 0))
+ self.fileList.append_column(gtk.TreeViewColumn(None, cell, text = 1))
+
+ def cb_file_toggled(self, cell, path):
+ store = self.fileList.get_model()
+ store[path][0] = not store[path][0]
+ return True
+
+ def cb_file_clicked(self, view, path, *args):
+ store = view.get_model()
+ f = store[path][1]
+
+ dialog = ShowDialog(self.window, f)
+ dialog.run()
+ dialog.destroy()
+
def set_data (self):
self.message = MIMEMultipart()
self.message["Subject"] = "[Bug Report] Bug in Portato %s" % VERSION
self.message["To"] = self.TO
+ self.message["X-Portato-Version"] = VERSION
# TO and FROM
name = self.tree.get_widget("nameEntry").get_text()
- self.addr = self.tree.get_widget("mailEntry").get_text()
+ self.addr = self.mailEntry.get_text()
if not self.addr:
self.addr = self.TO
@@ -63,40 +127,61 @@ class MailInfoWindow (AbstractDialog):
txtmsg = MIMEText(text, "plain", "utf-8")
self.message.attach(txtmsg)
- # log
- if self.tree.get_widget("logCheck").get_active():
- with open(LOGFILE, "r") as f:
- log = MIMEText(f.read(), "plain", "utf-8")
- log.add_header('Content-Disposition', 'attachment', filename='portato.log')
+ # logs
+ for (active, f) in self.fileList.get_model():
+ if active:
+ debug("Attaching '%s'", f)
+ with open(f, "r") as text:
+ log = MIMEText(text.read(), "plain", "utf-8")
+ log.add_header('Content-Disposition', 'attachment', filename=basename(f))
- self.message.attach(log)
+ self.message.attach(log)
def send (self):
try:
- debug("Connecting to server")
- server = smtplib.SMTP("mail.necoro.eu")
- debug("Sending mail")
- try:
+ for i in range(5): # try 5 times at max
+ if i > 0:
+ info(_("Retrying after waiting %d seconds."), 300)
+ time.sleep(300)
try:
+ debug("Connecting to server")
+ server = smtplib.SMTP("mail.necoro.eu")
+ debug("Sending mail")
+
+ if smtplib._have_ssl: server.starttls()
+ else: debug("TLS not supported in Python. Continuing without it.")
+
server.sendmail(self.addr, self.TO, self.message.as_string())
except smtplib.SMTPRecipientsRefused, e:
- info(_("An error occurred while sending. I think we were greylisted. The error: %s") % e)
- info(_("Retrying after waiting 60 seconds."))
- time.sleep(60)
- server.sendmail(self.addr, self.TO, self.message.as_string())
- debug("Sent")
- finally:
- server.quit()
+ if e.recipients[self.TO][0] < 500:
+ info(_("An error occurred while sending. I think we were greylisted. The error: %s") % e)
+ else: raise
+ else:
+ debug("Sent")
+ break
+ finally:
+ try:
+ server.quit()
+ except smtplib.SMTPServerDisconnected:
+ pass # ignore this
except socket.error, e:
- mail_failure_dialog("%s (Code: %s)" % (e.args[1], e.args[0]))
+ gobject.idle_add(mail_failure_dialog, "%s (Code: %s)" % (e.args[1], e.args[0]))
+ except smtplib.SMTPResponseException, e:
+ gobject.idle_add(mail_failure_dialog, "%s (Code: %s)" % (e.smtp_error, e.smtp_code))
+ except smtplib.SMTPException, e:
+ gobject.idle_add(mail_failure_dialog, e.args)
def cb_cancel_clicked (self, *args):
-
self.close()
return True
def cb_send_clicked (self, *args):
- self.set_data()
- GtkThread(target = self.send, name = "Mail Send Thread").start()
- self.close()
+ if self.mailEntry.get_text() or dialogs.no_email_dialog(self.window) == gtk.RESPONSE_OK:
+ self.set_data()
+ GtkThread(target = self.send, name = "Mail Send Thread").start()
+ self.close()
+ else:
+ self.window.present()
+ self.mailEntry.grab_focus()
+
return True
diff --git a/portato/gui/windows/main.py b/portato/gui/windows/main.py
index ca88b04..3c868e8 100644
--- a/portato/gui/windows/main.py
+++ b/portato/gui/windows/main.py
@@ -3,7 +3,7 @@
# File: portato/gui/windows/main.py
# This file is part of the Portato-Project, a graphical portage-frontend.
#
-# Copyright (C) 2006-2009 René 'Necoro' Neumann
+# Copyright (C) 2006-2010 René 'Necoro' Neumann
# This is free software. You may redistribute copies of it under the terms of
# the GNU General Public License version 2.
# There is NO WARRANTY, to the extent permitted by law.
@@ -29,7 +29,8 @@ from ... import get_listener
from ...helper import debug, warning, error, info
from ...session import Session
from ...db import Database
-from ...constants import CONFIG_LOCATION, VERSION, APP_ICON
+from ...db.database import UnsupportedSearchTypeError
+from ...constants import CONFIG_LOCATION, VERSION, APP_ICON, ICON_DIR
from ...backend.exceptions import PackageNotFoundException, BlockedException, VersionsNotFoundException
# plugin stuff
@@ -434,18 +435,27 @@ class MainWindow (Window):
self.window.set_geometry_hints (self.window, max_height = gtk.gdk.screen_height(), max_width = gtk.gdk.screen_width())
# app icon
- self.window.set_icon_from_file(APP_ICON)
- gtk.window_set_default_icon(self.window.get_icon())
+ gtk.window_set_default_icon_from_file(APP_ICON)
# booleans
self.doUpdate = False
self.showAll = True # show only installed or all packages?
self.__searchChanged = False
+ # our own icon factory
+ fac = gtk.IconFactory()
+ iSet = gtk.IconSet()
+ iSource = gtk.IconSource()
+ iSource.set_filename(os.path.abspath(os.path.join(ICON_DIR, "better-package.svg")))
+ iSet.add_source(iSource)
+ fac.add("portato-better-pkg", iSet)
+ fac.add_default()
+
# icons
self.icons = {}
self.icons["installed"] = self.window.render_icon(gtk.STOCK_YES, gtk.ICON_SIZE_MENU)
self.icons["or"] = self.window.render_icon(gtk.STOCK_MEDIA_PAUSE, gtk.ICON_SIZE_MENU)
+ self.icons["better"] = self.window.render_icon("portato-better-pkg", gtk.ICON_SIZE_MENU)
# get the logging window as soon as possible
self.logView = LogView(self.tree.get_widget("logView"))
@@ -556,6 +566,10 @@ class MainWindow (Window):
splash(_("Finishing startup"))
+ # depends on session
+ self.typeCombo = self.tree.get_widget("typeCombo")
+ self.build_type_combo()
+
self.window.show_all()
def show_package (self, pkg = None, cpv = None, cp = None, version = None, **kwargs):
@@ -782,10 +796,14 @@ class MainWindow (Window):
if not packages:
raise VersionsNotFoundException(cp)
+ best = system.find_best_match(cp)
+
# append versions
for vers, inst, slot in ((x.get_version(), x.is_installed(), get_slot(x)) for x in packages):
if inst:
icon = self.icons["installed"]
+ elif best is not None and vers == best.get_version():
+ icon = self.icons["better"]
else:
icon = None
@@ -871,6 +889,26 @@ class MainWindow (Window):
else: # no selCatName -> so no category selected --> ignore
debug("No category selected --> should be no harm.")
+ def build_type_combo (self):
+ model = gtk.ListStore(int, str)
+ for k,v in self.db.TYPES.iteritems():
+ model.append((k,v))
+
+ self.typeCombo.set_model(model)
+ cell = gtk.CellRendererText()
+ self.typeCombo.pack_start(cell)
+ self.typeCombo.set_attributes(cell, text = 1)
+
+
+ for i, (k, v) in enumerate(model):
+ if k == self.db.type: break
+
+ self.typeCombo.set_active(i)
+
+ types = self.db.search_types()
+ if types == 1 or types % 2 == 0:
+ self.typeCombo.set_sensitive(False)
+
def load_session(self, sessionEx = None, defaults_only = False):
"""
Loads the session data.
@@ -987,6 +1025,14 @@ class MainWindow (Window):
return _save
+ # SEARCH TYPE
+ def load_search_type (t):
+ t = int(t)
+ try:
+ self.db.type = t
+ except UnsupportedSearchTypeError:
+ info("Cannot set search type. '%s' not supported by database '%s'.", t, self.db.__class__.__name__)
+
# SESSION VERSION
def load_session_version (version):
@@ -1015,7 +1061,8 @@ class MainWindow (Window):
(["width", "height"], lambda w,h: self.window.resize(int(w), int(h)), self.window.get_size),
(["vpanedpos", "hpanedpos"], load_paned, save_paned),
(["catsel"], load_cat_selection, save_cat_selection, ["app-portage@0"]),
- (["pkgsel"], load_pkg_selection, save_pkg_selection, ["portato@0"])
+ (["pkgsel"], load_pkg_selection, save_pkg_selection, ["portato@0"]),
+ (["searchtype"], load_search_type, lambda: self.db.type)
#([("merge", "queue"), ("unmerge", "queue"), ("oneshot", "queue")], load_queue, save_queue),
])
@@ -1023,7 +1070,7 @@ class MainWindow (Window):
queue = plugin.get_plugin_queue()
if queue:
for p in queue.get_plugins():
- self.session.add_handler(([(p.name.replace(" ","_"), "plugins")], load_plugin(p), save_plugin(p)))
+ self.session.add_handler(([(p.name.replace(" ","_").replace(":","_"), "plugins")], load_plugin(p), save_plugin(p)))
# the other things
def load_cfg ((name, cat)):
@@ -1387,8 +1434,8 @@ class MainWindow (Window):
"""Execute the current queue."""
if len(flags.newUseFlags) > 0:
- if not self.session.get_boolean("useflags", "dialogs"):
- self.session.set("useflags", dialogs.changed_flags_dialog(_("use flags"))[1], "dialogs")
+ if not self.session.get_bool("useflags", "dialogs"):
+ self.session.set("useflags", str(dialogs.changed_flags_dialog(_("use flags"))[1]), "dialogs")
try:
flags.write_use_flags()
except IOError, e:
@@ -1399,8 +1446,8 @@ class MainWindow (Window):
debug("new masked: %s",flags.new_masked)
debug("new unmasked: %s", flags.new_unmasked)
debug("new testing: %s", flags.newTesting)
- if not self.session.get_boolean("keywords", "dialogs"):
- self.session.set("keywords", dialogs.changed_flags_dialog(_("masking keywords"))[1], "dialogs")
+ if not self.session.get_bool("keywords", "dialogs"):
+ self.session.set("keywords", str(dialogs.changed_flags_dialog(_("masking keywords"))[1]), "dialogs")
try:
flags.write_masked()
flags.write_testing()
@@ -1464,8 +1511,15 @@ class MainWindow (Window):
gobject.idle_add(cb_idle_append, updating)
finally:
self.window.window.set_cursor(None)
-
- GtkThread(name="Update-Thread", target=__update).start()
+
+ # for some reason, I have to create the thread before displaying the dialog
+ # else the GUI hangs
+ t = GtkThread(name="Update-Thread", target=__update)
+
+ if not self.session.get_bool("update_world_warning", "dialogs"):
+ self.session.set("update_world_warning", str(dialogs.update_world_warning_dialog()[1]), "dialogs")
+
+ t.start()
return True
@@ -1562,7 +1616,13 @@ class MainWindow (Window):
return False # not again ;)
- gobject.timeout_add(100, __update)
+ gobject.timeout_add(200, __update)
+
+ def cb_type_combo_changed (self, *args):
+ model = self.typeCombo.get_model()
+ active = self.typeCombo.get_active()
+
+ self.db.type = model[active][0]
def cb_delete_search_clicked (self, *args):
self.searchEntry.set_text("")
diff --git a/portato/gui/windows/pkglist.py b/portato/gui/windows/pkglist.py
index 90915cb..df3ef46 100644
--- a/portato/gui/windows/pkglist.py
+++ b/portato/gui/windows/pkglist.py
@@ -3,7 +3,7 @@
# File: portato/gui/windows/pkglist.py
# This file is part of the Portato-Project, a graphical portage-frontend.
#
-# Copyright (C) 2006-2009 René 'Necoro' Neumann
+# Copyright (C) 2006-2010 René 'Necoro' Neumann
# This is free software. You may redistribute copies of it under the terms of
# the GNU General Public License version 2.
# There is NO WARRANTY, to the extent permitted by law.
diff --git a/portato/gui/windows/plugin.py b/portato/gui/windows/plugin.py
index 755ad58..89d38f5 100644
--- a/portato/gui/windows/plugin.py
+++ b/portato/gui/windows/plugin.py
@@ -3,7 +3,7 @@
# File: portato/gui/windows/plugin.py
# This file is part of the Portato-Project, a graphical portage-frontend.
#
-# Copyright (C) 2006-2009 René 'Necoro' Neumann
+# Copyright (C) 2006-2010 René 'Necoro' Neumann
# This is free software. You may redistribute copies of it under the terms of
# the GNU General Public License version 2.
# There is NO WARRANTY, to the extent permitted by law.
diff --git a/portato/gui/windows/preference.py b/portato/gui/windows/preference.py
index 4bd7551..021788c 100644
--- a/portato/gui/windows/preference.py
+++ b/portato/gui/windows/preference.py
@@ -3,7 +3,7 @@
# File: portato/gui/windows/preference.py
# This file is part of the Portato-Project, a graphical portage-frontend.
#
-# Copyright (C) 2006-2009 René 'Necoro' Neumann
+# Copyright (C) 2006-2010 René 'Necoro' Neumann
# This is free software. You may redistribute copies of it under the terms of
# the GNU General Public License version 2.
# There is NO WARRANTY, to the extent permitted by law.
diff --git a/portato/gui/windows/search.py b/portato/gui/windows/search.py
index c531507..f9191d7 100644
--- a/portato/gui/windows/search.py
+++ b/portato/gui/windows/search.py
@@ -3,7 +3,7 @@
# File: portato/gui/windows/search.py
# This file is part of the Portato-Project, a graphical portage-frontend.
#
-# Copyright (C) 2006-2009 René 'Necoro' Neumann
+# Copyright (C) 2006-2010 René 'Necoro' Neumann
# This is free software. You may redistribute copies of it under the terms of
# the GNU General Public License version 2.
# There is NO WARRANTY, to the extent permitted by law.
diff --git a/portato/gui/windows/splash.py b/portato/gui/windows/splash.py
index c9e1542..2e9d5a8 100644
--- a/portato/gui/windows/splash.py
+++ b/portato/gui/windows/splash.py
@@ -3,7 +3,7 @@
# File: portato/gui/windows/splash.py
# This file is part of the Portato-Project, a graphical portage-frontend.
#
-# Copyright (C) 2006-2009 René 'Necoro' Neumann
+# Copyright (C) 2006-2010 René 'Necoro' Neumann
# This is free software. You may redistribute copies of it under the terms of
# the GNU General Public License version 2.
# There is NO WARRANTY, to the extent permitted by law.
diff --git a/portato/helper.py b/portato/helper.py
index d32aa82..eb8ae2d 100644
--- a/portato/helper.py
+++ b/portato/helper.py
@@ -3,7 +3,7 @@
# File: portato/helper.py
# This file is part of the Portato-Project, a graphical portage-frontend.
#
-# Copyright (C) 2006-2009 René 'Necoro' Neumann
+# Copyright (C) 2006-2010 René 'Necoro' Neumann
# This is free software. You may redistribute copies of it under the terms of
# the GNU General Public License version 2.
# There is NO WARRANTY, to the extent permitted by law.
diff --git a/portato/ipc.pxd b/portato/ipc.pxd
index 64ca05d..38e6d30 100644
--- a/portato/ipc.pxd
+++ b/portato/ipc.pxd
@@ -3,7 +3,7 @@
# File: portato/ipc.pxd
# This file is part of the Portato-Project, a graphical portage-frontend.
#
-# Copyright (C) 2006-2009 René 'Necoro' Neumann
+# Copyright (C) 2006-2010 René 'Necoro' Neumann
# This is free software. You may redistribute copies of it under the terms of
# the GNU General Public License version 2.
# There is NO WARRANTY, to the extent permitted by law.
diff --git a/portato/ipc.pyx b/portato/ipc.pyx
index f3fb4af..abb26fe 100644
--- a/portato/ipc.pyx
+++ b/portato/ipc.pyx
@@ -3,7 +3,7 @@
# File: portato/ipc.pyx
# This file is part of the Portato-Project, a graphical portage-frontend.
#
-# Copyright (C) 2006-2009 René 'Necoro' Neumann
+# Copyright (C) 2006-2010 René 'Necoro' Neumann
# This is free software. You may redistribute copies of it under the terms of
# the GNU General Public License version 2.
# There is NO WARRANTY, to the extent permitted by law.
diff --git a/portato/listener.py b/portato/listener.py
index c96b637..b3a3ba0 100644
--- a/portato/listener.py
+++ b/portato/listener.py
@@ -3,7 +3,7 @@
# File: portato/listener.py
# This file is part of the Portato-Project, a graphical portage-frontend.
#
-# Copyright (C) 2006-2009 René 'Necoro' Neumann
+# Copyright (C) 2006-2010 René 'Necoro' Neumann
# This is free software. You may redistribute copies of it under the terms of
# the GNU General Public License version 2.
# There is NO WARRANTY, to the extent permitted by law.
diff --git a/portato/log.py b/portato/log.py
index 486aa51..b6462e9 100644
--- a/portato/log.py
+++ b/portato/log.py
@@ -3,7 +3,7 @@
# File: portato/log.py
# This file is part of the Portato-Project, a graphical portage-frontend.
#
-# Copyright (C) 2006-2009 René 'Necoro' Neumann
+# Copyright (C) 2006-2010 René 'Necoro' Neumann
# This is free software. You may redistribute copies of it under the terms of
# the GNU General Public License version 2.
# There is NO WARRANTY, to the extent permitted by law.
@@ -100,3 +100,13 @@ def start(file = True):
def set_log_level (lvl):
for h in streamhandlers:
h.setLevel(lvl)
+
+# embed warnings in our logging functionality
+import warnings
+def showwarnings(msg, cat, filename, lineno, file = None, line = None):
+ msg = warnings.formatwarning(msg, cat, filename, lineno, line)
+
+ record = logging.LogRecord("portatoLogger", logging.WARNING, filename, lineno, "Portage Warning: %s", (msg,), None)
+ logging.getLogger("portatoLogger").handle(record)
+
+warnings.showwarning = showwarnings
diff --git a/portato/plugin.py b/portato/plugin.py
index 052dcd0..ec52314 100644
--- a/portato/plugin.py
+++ b/portato/plugin.py
@@ -3,7 +3,7 @@
# File: portato/plugin.py
# This file is part of the Portato-Project, a graphical portage-frontend.
#
-# Copyright (C) 2006-2009 René 'Necoro' Neumann
+# Copyright (C) 2006-2010 René 'Necoro' Neumann
# This is free software. You may redistribute copies of it under the terms of
# the GNU General Public License version 2.
# There is NO WARRANTY, to the extent permitted by law.
diff --git a/portato/plugins/__init__.py b/portato/plugins/__init__.py
index 22d98be..772be8c 100644
--- a/portato/plugins/__init__.py
+++ b/portato/plugins/__init__.py
@@ -3,7 +3,7 @@
# File: portato/plugins/__init__.py
# This file is part of the Portato-Project, a graphical portage-frontend.
#
-# Copyright (C) 2006-2009 René 'Necoro' Neumann
+# Copyright (C) 2006-2010 René 'Necoro' Neumann
# This is free software. You may redistribute copies of it under the terms of
# the GNU General Public License version 2.
# There is NO WARRANTY, to the extent permitted by law.
diff --git a/portato/session.py b/portato/session.py
index 2017544..aadf6c4 100644
--- a/portato/session.py
+++ b/portato/session.py
@@ -3,7 +3,7 @@
# File: portato/session.py
# This file is part of the Portato-Project, a graphical portage-frontend.
#
-# Copyright (C) 2006-2009 René 'Necoro' Neumann
+# Copyright (C) 2006-2010 René 'Necoro' Neumann
# This is free software. You may redistribute copies of it under the terms of
# the GNU General Public License version 2.
# There is NO WARRANTY, to the extent permitted by law.
@@ -15,10 +15,12 @@ from __future__ import absolute_import, with_statement
import os
from UserDict import DictMixin
-from .config_parser import ConfigParser, SectionNotFoundException
+from ConfigParser import SafeConfigParser, NoSectionError, NoOptionError
from .constants import SESSION_DIR
from .helper import debug, info
+from .odict import OrderedDict
+NoSuchThing = (NoSectionError, NoOptionError)
sessionlist = []
class Session (object):
@@ -26,9 +28,6 @@ class Session (object):
A small class allowing to save certain states of a program.
This class works in a quite abstract manner, as it works with handlers, which
define what options to use out of the config file and how to apply them to the program.
-
- Note: This class currently does not work with boolean config options. If you
- want to define boolean values, use 0 and 1. This is future proof.
"""
# the current session format version
@@ -44,38 +43,32 @@ class Session (object):
@param register: register in the global sessionlist, which is closed at the end
"""
- self._cfg = None
+ self._cfg = SafeConfigParser({}, OrderedDict)
self._handlers = []
self._name = name if name else "MAIN"
+ self._file = os.path.join(SESSION_DIR, file)
if not (os.path.exists(SESSION_DIR) and os.path.isdir(SESSION_DIR)):
os.mkdir(SESSION_DIR)
- file = os.path.join(SESSION_DIR, file)
oldfiles = [os.path.join(SESSION_DIR, x) for x in oldfiles]
- if not os.path.exists(file):
+ if not os.path.exists(self._file):
for o in oldfiles:
if os.path.exists(o):
debug("Moving old session file '%s' to '%s'." % (o, file))
- os.rename(o,file)
+ os.rename(o,self._file)
break
- self._cfg = ConfigParser(file)
+ self._cfg.read([self._file])
if name:
- i = _("Loading '%s' session from %s.") % (name, self._cfg.file)
+ i = _("Loading '%s' session from %s.") % (name, self._file)
else:
- i = _("Loading session from %s.") % self._cfg.file
+ i = _("Loading session from %s.") % self._file
info(i)
- try:
- self._cfg.parse()
- except IOError, e:
- if e.errno == 2: pass
- else: raise
-
# register
if register: sessionlist.append(self)
@@ -90,7 +83,8 @@ class Session (object):
- a function returning the number of option return values - getting them out of the program
"""
- options = map(lambda x: (x, self._name) if not hasattr(x, "__iter__") else x, options)
+ convert = lambda (x,y): (unicode(y).upper(), unicode(x).lower())
+ options = map(lambda x: (self._name, unicode(x).lower()) if not hasattr(x, "__iter__") else convert(x), options)
self._handlers.append((options, load_fn, save_fn, default))
def load (self, defaults_only = False):
@@ -109,7 +103,7 @@ class Session (object):
else:
try:
loaded = [self._cfg.get(*x) for x in options]
- except KeyError: # does not exist -> ignore
+ except NoSuchThing: # does not exist -> ignore
debug("No values for %s.", options)
ldefault(options, lfn, default)
else:
@@ -124,97 +118,91 @@ class Session (object):
for options, lfn, sfn, default in self._handlers:
vals = sfn()
- # map into list if necessairy
+ # map into list if necessary
if not hasattr(vals, "__iter__"):
vals = [vals]
debug("Saving %s with values %s", options, vals)
- for value, (option, section) in zip(vals, options):
+ for value, (section, option) in zip(vals, options):
self.set(option, str(value), section)
- self._cfg.write()
+ with open(self._file, "w") as f:
+ self._cfg.write(f)
@classmethod
def close (cls):
for s in sessionlist:
if s._name != "MAIN":
- info(_("Saving '%s' session to %s.") % (s._name, s._cfg.file))
+ info(_("Saving '%s' session to %s.") % (s._name, s._file))
else:
- info(_("Saving session to %s.") % s._cfg.file)
+ info(_("Saving session to %s.") % s._file)
s.save()
- def set (self, key, value, section = ""):
- if not section: section = self._name
+ def set (self, key, value, section = None):
+ if section is None: section = self._name
+ section = unicode(section).upper()
try:
- self._cfg.add(key, value, section, with_blankline = False)
- except SectionNotFoundException:
+ self._cfg.set(section, key, value)
+ except NoSectionError:
self._cfg.add_section(section)
- self._cfg.add(key, value, section, with_blankline = False)
+ self._cfg.set(section, key, value)
- def get (self, key, section = ""):
- if not section: section = self._name
+ def get (self, key, section = None):
+ if section is None: section = self._name
+ section = unicode(section).upper()
try:
- return self._cfg.get(key, section)
- except KeyError:
+ return self._cfg.get(section, key)
+ except NoSuchThing:
return None
-
- def get_boolean (self, key, section = ""):
- if not section: section = self._name
+
+ def get_bool (self, key, section = None):
+ if section is None: section = self._name
+ section = unicode(section).upper()
try:
- return self._cfg.get_boolean(key, section)
- except KeyError:
+ return self._cfg.getboolean(section, key)
+ except NoSuchThing, ValueError:
return None
+
+ def remove (self, key, section = None):
+ if section is None: section = self._name
+ section = unicode(section).upper()
- def remove (self, key, section = ""):
- if not section: section = self._name
-
- section = section.upper()
- key = key.lower()
-
- val = self._cfg._access(key, section)
- del self._cfg.cache[val.line]
-
- self._cfg.write()
+ self._cfg.remove_option(section, key)
def remove_section (self, section):
- section = section.upper()
+ section = unicode(section).upper()
+ self._cfg.remove_section(section)
- sline = self._cfg.sections[section]
+ def rename (self, old, new, section = None):
+ if section is None: section = self._name
+ section = unicode(section).upper()
- try:
- mline = max(v.line for v in self._cfg.vars[section].itervalues())
- except ValueError: # nothing in the section
- mline = sline
-
- sline = max(sline - 1, 0) # remove blank line too - but only if there is one ;)
-
- del self._cfg.cache[sline:mline+1]
- self._cfg.write()
-
- def rename (self, old, new, section = ""):
- if not section: section = self._name
-
val = self.get(old, section)
- self.remove(old, section)
- self._cfg.add(new, val, section, with_blankline = False)
+
+ if val is not None:
+ self.remove(old, section)
+ self.set(new, val, section)
def rename_section (self, old, new):
- old = old.upper()
- line = self._cfg.sections[old]
- self._cfg.cache[line] = "[%s]\n" % new.upper()
- self._cfg.write()
+ new = unicode(new).upper()
+
+ values = self._cfg.items(old)
+ self.remove_section(old)
+ for k,v in values:
+ self.set(k,v,new)
def check_version (self, vers):
pass # do nothing atm
+
class SectionDict (DictMixin):
"""A class, which maps a specific section of a session to a dictionary."""
def __init__ (self, session, section):
- self._section = section.upper()
+ self._section = unicode(section).upper()
self._session = session
def __getitem__ (self, name):
@@ -231,7 +219,7 @@ class SectionDict (DictMixin):
self._session.remove(name, self._section)
def keys (self):
- return self._session._cfg.vars[self._section].keys()
+ return self._session._cfg.options(self._section)
def __contains__ (self, name):
- return self._session.get(name, self._section) is not None
+ return self._session._cfg.has_option(self._section, name)
diff --git a/portato/su.py b/portato/su.py
index b87c75b..eb1f031 100644
--- a/portato/su.py
+++ b/portato/su.py
@@ -3,7 +3,7 @@
# File: portato/su.py
# This file is part of the Portato-Project, a graphical portage-frontend.
#
-# Copyright (C) 2006-2009 René 'Necoro' Neumann
+# Copyright (C) 2006-2010 René 'Necoro' Neumann
# This is free software. You may redistribute copies of it under the terms of
# the GNU General Public License version 2.
# There is NO WARRANTY, to the extent permitted by law.
diff --git a/portato/waiting_queue.py b/portato/waiting_queue.py
index 33791a3..1e3f7ad 100644
--- a/portato/waiting_queue.py
+++ b/portato/waiting_queue.py
@@ -3,7 +3,7 @@
# File: portato/waiting_queue.py
# This file is part of the Portato-Project, a graphical portage-frontend.
#
-# Copyright (C) 2006-2009 René 'Necoro' Neumann
+# Copyright (C) 2006-2010 René 'Necoro' Neumann
# This is free software. You may redistribute copies of it under the terms of
# the GNU General Public License version 2.
# There is NO WARRANTY, to the extent permitted by law.
diff --git a/setup.py b/setup.py
index fafe828..766b2a2 100644
--- a/setup.py
+++ b/setup.py
@@ -4,7 +4,7 @@
# File: setup.py
# This file is part of the Portato-Project, a graphical portage-frontend.
#
-# Copyright (C) 2006-2009 René 'Necoro' Neumann
+# Copyright (C) 2006-2010 René 'Necoro' Neumann
# This is free software. You may redistribute copies of it under the terms of
# the GNU General Public License version 2.
# There is NO WARRANTY, to the extent permitted by law.
@@ -16,9 +16,8 @@ import sys
from distutils.core import setup
from distutils.extension import Extension
-from Cython.Distutils import build_ext
-from portato.constants import VERSION, ICON_DIR, PLUGIN_DIR, TEMPLATE_DIR, APP
+from portato.constants import VERSION, ICON_DIR, PLUGIN_DIR, DATA_DIR, TEMPLATE_DIR, APP
from build_manpage import build_manpage
@@ -36,21 +35,36 @@ packages = [
data_files = [
(TEMPLATE_DIR, [os.path.join("portato/gui/templates",x) for x in os.listdir("portato/gui/templates") if (x.endswith(".ui") or x.endswith(".menu"))]),
- (ICON_DIR, ["icons/portato-icon.png"]),
+ (ICON_DIR, ["icons/portato-icon.png", "icons/better-package.svg"]),
+ (DATA_DIR, ["doc/TRANSLATORS"]),
(PLUGIN_DIR, plugin_list("gpytage", "notify", "etc_proposals", "reload_portage", "package_details"))]
+cmdclass = {'build_manpage': build_manpage}
+
+# remove useless options / they are the default
+for o in ("cython", "eix"):
+ try:
+ sys.argv.remove("--enable-"+o)
+ except ValueError:
+ pass
+
# extension stuff
-ext_modules = [Extension("portato.ipc", ["portato/ipc.pyx"])]
+if "--disable-cython" in sys.argv:
+ sys.argv.remove("--disable-cython")
+ ext = "c"
+else:
+ from Cython.Distutils import build_ext
+ cmdclass['build_ext'] = build_ext
+ ext = "pyx"
+
+ext_modules = [Extension("portato.ipc", ["portato/ipc."+ext])]
if "--disable-eix" in sys.argv:
sys.argv.remove("--disable-eix")
else:
- ext_modules.append(Extension("portato.eix.parser", ["portato/eix/parser.pyx"]))
+ ext_modules.append(Extension("portato.eix.parser", ["portato/eix/parser."+ext]))
packages.append("portato.eix")
- if "--enable-eix" in sys.argv:
- sys.argv.remove("--enable-eix")
-
# do the distutils setup
setup(name=APP,
version = VERSION,
@@ -64,5 +78,5 @@ setup(name=APP,
packages = packages,
data_files = data_files,
ext_modules = ext_modules,
- cmdclass={'build_manpage': build_manpage, 'build_ext' : build_ext}
+ cmdclass = cmdclass
)