[PackageKit-commit] packagekit: Branch 'master' - 33 commits

Richard Hughes hughsient at kemper.freedesktop.org
Fri Oct 17 06:51:47 PDT 2008


 backends/apt.deprecated/packagekit              |    2 
 backends/apt/packagekit                         |    2 
 backends/conary/packagekit                      |    2 
 backends/pisi/packagekit                        |    2 
 backends/smart/packagekit                       |    2 
 backends/test/helpers/packagekit                |    2 
 backends/yum/packagekit                         |    2 
 backends/yum/pk-backend-yum.c                   |    1 
 backends/yum/yumBackend.py                      |   74 
 client/pk-console.c                             |  102 
 client/pk-generate-pack.c                       |   18 
 contrib/packagekit-plugin/src/contents.cpp      |    4 
 data/tests/packagekit                           |    2 
 docs/api/Makefile.am                            |    2 
 docs/html/img/gpk-service-pack.png              |binary
 docs/html/pk-download.html                      |    4 
 lib/packagekit-glib/Makefile.am                 |    8 
 lib/packagekit-glib/egg-obj-list.c              |  724 -----
 lib/packagekit-glib/egg-obj-list.h              |  102 
 lib/packagekit-glib/packagekit.h                |    2 
 lib/packagekit-glib/pk-catalog.c                |    2 
 lib/packagekit-glib/pk-client.c                 |   68 
 lib/packagekit-glib/pk-client.h                 |   17 
 lib/packagekit-glib/pk-obj-list.c               |  762 +++++
 lib/packagekit-glib/pk-obj-list.h               |  106 
 lib/packagekit-glib/pk-package-list.c           |  296 --
 lib/packagekit-glib/pk-package-list.h           |   20 
 lib/packagekit-glib/pk-self-test.c              |    4 
 lib/packagekit-glib/pk-service-pack.c           |    3 
 lib/packagekit-glib/pk-transaction-obj.c        |  152 +
 lib/packagekit-glib/pk-transaction-obj.h        |   61 
 lib/packagekit-qt/modules/FindQPackageKit.cmake |    2 
 lib/packagekit-qt/src/CMakeLists.txt            |    2 
 lib/packagekit-qt/src/client.h                  |    7 
 po/LINGUAS                                      |    4 
 po/de.po                                        | 3144 +-----------------------
 po/fi.po                                        |  233 -
 po/pl.po                                        |  222 -
 po/pt_BR.po                                     |  417 +--
 po/se.po                                        |  743 -----
 po/sk.po                                        |  306 --
 po/sv.po                                        |  704 +++++
 po/zh_CN.po                                     |  436 +--
 src/Makefile.am                                 |    4 
 src/egg-obj-list.c                              |    1 
 src/egg-obj-list.h                              |    1 
 src/egg-string-list.c                           |  205 -
 src/egg-string-list.h                           |   63 
 src/pk-main.c                                   |    5 
 src/pk-post-trans.c                             |   79 
 src/pk-self-test.c                              |    2 
 src/pk-transaction.c                            |    6 
 52 files changed, 2835 insertions(+), 6299 deletions(-)

New commits:
commit 18c31ed2a110c2fb1b15e8a0c5e6d1c7d6b4dcc4
Author: Richard Hughes <richard at hughsie.com>
Date:   Fri Oct 17 14:41:27 2008 +0100

    trivial: fix make check

diff --git a/docs/html/img/gpk-service-pack.png b/docs/html/img/gpk-service-pack.png
index 6829c03..014cb00 100644
Binary files a/docs/html/img/gpk-service-pack.png and b/docs/html/img/gpk-service-pack.png differ
diff --git a/po/LINGUAS b/po/LINGUAS
index 90c775e..9595673 100644
--- a/po/LINGUAS
+++ b/po/LINGUAS
@@ -14,7 +14,6 @@ nl
 pl
 pt_BR
 ru
-se
 sk
 sr
 sr at latin
commit 49cb21512da72894a07b2cfd5deac1d471147a67
Merge: 398b3fc... 8a48e6a...
Author: Richard Hughes <richard at hughsie.com>
Date:   Fri Oct 17 14:11:55 2008 +0100

    Merge branch 'master' of git+ssh://hughsie@git.packagekit.org/srv/git/PackageKit

commit 398b3fc8564b2aa5cb778bbde08b0b2f002c1fc1
Merge: 97d48f4... c9a7236...
Author: Richard Hughes <richard at hughsie.com>
Date:   Fri Oct 17 14:09:35 2008 +0100

    Merge branch 'master' of git+ssh://hughsie@git.packagekit.org/srv/git/PackageKit

commit 8a48e6a891b0d0cbb2fd83d6f598727016822313
Author: Richard Hughes <hughsie at localhost.localdomain>
Date:   Fri Oct 17 14:09:01 2008 +0100

    yum: use the filters that make sense in the newest group code

diff --git a/backends/yum/yumBackend.py b/backends/yum/yumBackend.py
index e0f1289..ce574a9 100755
--- a/backends/yum/yumBackend.py
+++ b/backends/yum/yumBackend.py
@@ -372,6 +372,7 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
         Handle the special newest group
         """
         self.percentage(None)
+        pkgfilter = YumFilter(fltlist)
         pkgs = []
         try:
             ygl = self.yumbase.doPackageLists(pkgnarrow='recent')
@@ -380,11 +381,14 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
             self.error(ERROR_REPO_NOT_AVAILABLE, str(e))
         for pkg in pkgs:
             # check if not an update
-            if not self.yumbase.rpmdb.installed(name=pkg.name):
-                package_id = self._pkg_to_id(pkg)
-                self.package(package_id, INFO_AVAILABLE, pkg.summary)
-        self.percentage(100)
+            if self.yumbase.rpmdb.installed(name=pkg.name):
+                pkgs.remove(pkg)
 
+        # add list to filter
+        pkgfilter.add_available(pkgs)
+        package_list = pkgfilter.post_process()
+        self._show_package_list(package_list)
+        self.percentage(100)
 
     def _handle_collections(self, fltlist):
         """
commit c9a7236e71e9d3fca742b6addb7e1b03294f79e8
Merge: 79ec359... 95eab09...
Author: Richard Hughes <hughsie at localhost.localdomain>
Date:   Fri Oct 17 13:14:43 2008 +0100

    Merge branch 'master' of git+ssh://hughsie@git.packagekit.org/srv/git/PackageKit

commit 79ec359658deac39e8f23c5bb74e834590887375
Author: Richard Hughes <hughsie at localhost.localdomain>
Date:   Fri Oct 17 13:00:24 2008 +0100

    bugfix: maintain a dictionary of the summary text so we can use it when rpm is giving up package names without summaries

diff --git a/backends/yum/yumBackend.py b/backends/yum/yumBackend.py
index 25bc72f..e0f1289 100755
--- a/backends/yum/yumBackend.py
+++ b/backends/yum/yumBackend.py
@@ -188,6 +188,7 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
         PackageKitBaseBackend.__init__(self, args)
         self.yumbase = PackageKitYumBase(self)
         self._lang = os.environ['LANG']
+        self.package_summary_cache = {}
         self.comps = yumComps(self.yumbase)
         if not self.comps.connect():
             self.refresh_cache()
@@ -223,6 +224,16 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
         convert the summary to UTF before sending
         '''
         summary = _to_unicode(summary)
+
+        # maintain a dictionary of the summary text so we can use it when rpm
+        # is giving up package names without summaries
+        (name, idver, a, repo) = self.get_package_from_id(package_id)
+        if len(summary) > 0:
+            self.package_summary_cache[name] = summary
+        else:
+            if self.package_summary_cache.has_key(name):
+                summary = self.package_summary_cache[name]
+
         PackageKitBaseBackend.package(self, package_id, status, summary)
 
     def category(self, parent_id, cat_id, name, summary, icon):
commit 95eab09a8ff1ea76afbfb4b9a92ad421ece4a44d
Author: Piotr DrÄ…g <piotrdrag at gmail.com>
Date:   Fri Oct 17 11:55:02 2008 +0000

    Updated LINGUAS
    
    Transmitted-via: Transifex (translate.fedoraproject.org)

diff --git a/po/LINGUAS b/po/LINGUAS
index 751a4c8..90c775e 100644
--- a/po/LINGUAS
+++ b/po/LINGUAS
@@ -8,12 +8,13 @@ fr
 he
 hu
 it
-nl
+ms
 nb
+nl
 pl
 pt_BR
 ru
-sv
+se
 sk
 sr
 sr at latin
commit 6083600ea4cbd953ba66f66dcc187965c2473dac
Author: Pavol Å imo <palo.simo at gmail.com>
Date:   Fri Oct 17 11:08:32 2008 +0000

    Updated Slovak translation
    
    Transmitted-via: Transifex (translate.fedoraproject.org)

diff --git a/po/sk.po b/po/sk.po
index 8af5fbc..d5ae424 100644
--- a/po/sk.po
+++ b/po/sk.po
@@ -11,60 +11,60 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-10-15 18:11+0100\n"
-"PO-Revision-Date: 2008-10-09 08:28+0200\n"
+"POT-Creation-Date: 2008-10-16 13:13+0000\n"
+"PO-Revision-Date: 2008-10-17 12:59+0200\n"
 "Last-Translator: Pavol Å imo <palo.simo at gmail.com>\n"
 "Language-Team: Fedora Project <fedora-cs-list at redhat.com>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
+"Content-Transfer-Encoding: 8bit"
 
 #. TRANSLATORS: this is a header for the package that can be updated
 #: ../client/pk-console.c:273
 msgid "Details about the update:"
-msgstr ""
+msgstr "Podrobnosti o aktualizácii:"
 
 #: ../client/pk-console.c:466
 msgid "Please restart the computer to complete the update."
-msgstr ""
+msgstr "Pre dokončenie aktualizácie reštartujte počítač."
 
 #: ../client/pk-console.c:468
 msgid "Please logout and login to complete the update."
-msgstr ""
+msgstr "Pre dokončenie aktualizácie sa odhláste a znovu prihláste."
 
 #: ../client/pk-console.c:470
 msgid "Please restart the application as it is being used."
-msgstr ""
+msgstr "Reštartujte aplikáciu, pretože sa momentálne používa."
 
 #. TRANSLATORS: The package name was not found in any software sources
 #: ../client/pk-console.c:555
 #, c-format
 msgid "The package '%s' could not be installed: %s"
-msgstr ""
+msgstr "Balíček '%s' nemôže byť nainštalovaný: %s"
 
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
 #: ../client/pk-console.c:609
 #, c-format
 msgid "This tool could not install the packages: %s"
-msgstr ""
+msgstr "Nepodarilo sa nainštalovať balíčky: %s"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
 #: ../client/pk-console.c:665
 #, c-format
 msgid "This tool could not remove '%s': %s"
-msgstr ""
+msgstr "Nepodarilo sa odstrániť '%s': %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
 #: ../client/pk-console.c:688 ../client/pk-console.c:757
 #, c-format
 msgid "This tool could not remove the packages: %s"
-msgstr ""
+msgstr "Nepodarilo sa odstrániť balíčky: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
 #: ../client/pk-console.c:724
 #, c-format
 msgid "This tool could not remove the packages: '%s'"
-msgstr ""
+msgstr "Nepodarilo sa odstrániť balíčky: '%s'"
 
 #. TRANSLATORS: When removing, we might have to remove other deps
 #: ../client/pk-console.c:736
@@ -73,73 +73,72 @@ msgstr "Nasledujúce balíčky budú musieť byť odstránené"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
 #: ../client/pk-console.c:743
-#, fuzzy
 msgid "Proceed removing additional packages?"
-msgstr "Môžu sa odstrániť doplnkové balíčky?"
+msgstr "Pokračovať a odstrániť doplnkové balíčky?"
 
 #. TRANSLATORS: We did not remove any packages
 #: ../client/pk-console.c:748
 msgid "The package removal was cancelled!"
-msgstr ""
+msgstr "Odstránenie balíčkov bolo zrušené!"
 
 #. TRANSLATORS: The package name was not found in any software sources
 #: ../client/pk-console.c:789
-#, fuzzy, c-format
+#, c-format
 msgid "This tool could not find the package '%s' to download"
-msgstr "Nebolo možné nájsť balíček na stiahnutie"
+msgstr "Nebolo možné nájsť balíček '%s' na stiahnutie"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
 #: ../client/pk-console.c:843 ../client/pk-console.c:852
 #, c-format
 msgid "This tool could not update '%s': %s"
-msgstr ""
+msgstr "Nepodarilo sa aktualizovať '%s': %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
 #: ../client/pk-console.c:874 ../client/pk-console.c:882
 #, c-format
 msgid "This tool could not get the requires for '%s': %s"
-msgstr ""
+msgstr "Nepodarilo sa získať požiadavky balíčka '%s': %s"
 
 #. TRANSLATORS: There was an error getting the depends for the package. The detailed error follows
 #: ../client/pk-console.c:904 ../client/pk-console.c:912
-#, fuzzy, c-format
+#, c-format
 msgid "This tool could not get the dependancies for '%s': %s"
-msgstr "Nebolo možné získať závislosti pre"
+msgstr "Nepodarilo sa získať závislosti pre '%s': %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
 #: ../client/pk-console.c:934 ../client/pk-console.c:942
 #, c-format
 msgid "This tool could not get package details for '%s': %s"
-msgstr ""
+msgstr "Nepodarilo sa získať detaily o balíčku '%s': %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
 #: ../client/pk-console.c:964
-#, fuzzy, c-format
+#, c-format
 msgid "This tool could not find the files for '%s': %s"
-msgstr "Nebolo možné získať zoznam súborov tohto balíčka"
+msgstr "Nepodarilo sa nájsť zoznam súborov balíčka '%s': %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
 #: ../client/pk-console.c:972
-#, fuzzy, c-format
+#, c-format
 msgid "This tool could not get the file list for '%s': %s"
-msgstr "Nebolo možné získať zoznam súborov"
+msgstr "Nepodarilo sa získať zoznam súborov balíčka '%s': %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
 #: ../client/pk-console.c:994
-#, fuzzy, c-format
+#, c-format
 msgid "This tool could not find the update details for '%s': %s"
-msgstr "Nebolo možné získať detaily aktualizácie pre"
+msgstr "Nepodarilo sa nájsť detaily aktualizácie pre '%s': %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
 #: ../client/pk-console.c:1002
-#, fuzzy, c-format
+#, c-format
 msgid "This tool could not get the update details for '%s': %s"
-msgstr "Nebolo možné získať detaily aktualizácie pre"
+msgstr "Nepodarilo sa získať detaily aktualizácie pre '%s': %s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
 #: ../client/pk-console.c:1048
 msgid "Error:"
-msgstr ""
+msgstr "Chyba:"
 
 #. TRANSLATORS: This a list of details about the package
 #: ../client/pk-console.c:1062
@@ -159,7 +158,7 @@ msgstr "Žiadne súbory"
 #. TRANSLATORS: This a request for a GPG key signature
 #: ../client/pk-console.c:1127
 msgid "Repository signature required"
-msgstr ""
+msgstr "Požadovaný podpis repozitára"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
 #: ../client/pk-console.c:1137
@@ -174,7 +173,7 @@ msgstr "Kľúč nebol importovaný"
 #. TRANSLATORS: This a request for a EULA
 #: ../client/pk-console.c:1175
 msgid "Eula required"
-msgstr ""
+msgstr "Požadovaná je licencia EULA"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the licence
 #: ../client/pk-console.c:1182
@@ -183,9 +182,8 @@ msgstr "Súhlasíte?"
 
 #. TRANSLATORS: This is where the user declined the licence
 #: ../client/pk-console.c:1186
-#, fuzzy
 msgid "Did not agree to licence"
-msgstr "Zadaná úloha neuspeje, pretože ste nesúhlasili s licenciou"
+msgstr "Nebol daný súhlas s licenciou"
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
 #: ../client/pk-console.c:1215
@@ -220,7 +218,6 @@ msgstr "Nečakať na dokončenie úloh a skončiť"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
 #: ../client/pk-console.c:1387
-#, fuzzy
 msgid "This tool could not connect to system DBUS."
 msgstr "Pokus o pripojenie k systémovej zbernici DBUS neuspel."
 
@@ -317,38 +314,35 @@ msgstr "Príkaz neuspel"
 #. TRANSLATORS: This is the state of the transaction
 #: ../client/pk-generate-pack.c:96
 msgid "Downloading"
-msgstr ""
+msgstr "Získavanie"
 
 #: ../client/pk-generate-pack.c:140
-#, fuzzy
 msgid "Set the filename of dependencies to be excluded"
 msgstr ""
-"Nastavte cestu k súboru so zoznamom balíčkov/závislostí, ktoré sa majú "
-"vynechať"
+"Nastavte názov súboru so zoznamom závislostí, ktoré sa majú vynechať"
 
 #: ../client/pk-generate-pack.c:142
 msgid ""
 "The directory to put the pack file, or the current directory if ommitted"
-msgstr ""
+msgstr "Priečinok na uloženie archívu (aktuálny priečinok, ak bude vynechané)"
 
 #: ../client/pk-generate-pack.c:144
-#, fuzzy
 msgid "The package to be put into the ServicePack"
-msgstr "Service pack PackageKit"
+msgstr "Balíček na uloženie do archívu"
 
 #: ../client/pk-generate-pack.c:146
 msgid "Put all updates available in the ServicePack"
-msgstr ""
+msgstr "Vložiť do archívu všetky dostupné aktualizácie"
 
 #. TRANSLATORS: This is when the user fails to supply the correct arguments
 #: ../client/pk-generate-pack.c:166
 msgid "Neither --package or --updates option selected."
-msgstr ""
+msgstr "Nezvolená ani voľba --package ani voľba --updates."
 
 #. TRANSLATORS: This is when the user fails to supply just one argument
 #: ../client/pk-generate-pack.c:174
 msgid "Both options selected."
-msgstr ""
+msgstr "Obidve voľby boli určené."
 
 #. TRANSLATORS: This is when file already exists
 #: ../client/pk-generate-pack.c:207
@@ -358,49 +352,47 @@ msgstr "Archív s rovnakým názvom už existuje, chcete ho nahradiť?"
 #. TRANSLATORS: This is when the pack was not overwritten
 #: ../client/pk-generate-pack.c:210
 msgid "The pack was not overwritten."
-msgstr ""
+msgstr "Archív nebol prepísaný."
 
 # XXX
 #. TRANSLATORS: This is when the temporary directory cannot be created
 #: ../client/pk-generate-pack.c:222
-#, fuzzy
 msgid "Failed to create directory."
-msgstr "Nebolo možné vytvoriť priečinok"
+msgstr "Nepodarilo sa vytvoriť priečinok."
 
 # XXX
 #. TRANSLATORS: This is when the list of packages from the remote computer cannot be opened
 #: ../client/pk-generate-pack.c:231
-#, fuzzy
 msgid "Failed to open package list."
-msgstr "Nebolo možné vytvoriť archív"
+msgstr "Nepodarilo sa otvoriť zoznam balíčkov."
 
 #. TRANSLATORS: This is when the user fails to supply the correct arguments
 #: ../client/pk-generate-pack.c:241
 msgid "Finding package name."
-msgstr ""
+msgstr "Hľadanie názvu balíčka."
 
 #. TRANSLATORS: This is when the package cannot be foudn in any software source
 #: ../client/pk-generate-pack.c:245
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to find package '%s': %s"
-msgstr "Nebolo možné nájsť balíček na inštalovanie"
+msgstr "Nepodarilo sa nájsť balíček '%s': %s"
 
 #. TRANSLATORS: This is telling the user we are in the process of making the pack
 #: ../client/pk-generate-pack.c:260
 msgid "Creating service pack..."
-msgstr ""
+msgstr "Vytváranie servisného archívu..."
 
 #. TRANSLATORS: we succeeded in making the file
 #: ../client/pk-generate-pack.c:267
 #, c-format
 msgid "Service pack created '%s'"
-msgstr ""
+msgstr "Vytvorený servisný archív '%s'"
 
 #. TRANSLATORS: we failed to make te file
 #: ../client/pk-generate-pack.c:271
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to create '%s': %s"
-msgstr "Nebolo možné nájsť balíček na inštalovanie"
+msgstr "Nepodarilo sa vytvoriť '%s': %s"
 
 #: ../client/pk-monitor.c:128
 msgid "PackageKit Monitor"
@@ -410,25 +402,22 @@ msgstr "Monitor PackageKit"
 #: ../client/pk-tools-common.c:76 ../client/pk-tools-common.c:83
 #, c-format
 msgid "Internal error: %s"
-msgstr ""
+msgstr "Vnútorná chyba: %s"
 
 #. TRANSLATORS: The package was not found in any software sources
 #: ../client/pk-tools-common.c:109
-#, c-format
 msgid "The package could not be found"
-msgstr ""
+msgstr "Balíček sa nepodarilo nájsť"
 
 #. TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages
 #: ../client/pk-tools-common.c:120
-#, fuzzy
 msgid "More than one package matches:"
-msgstr "Zadaniu vyhovuje viac balíčkov"
+msgstr "Zadaniu vyhovuje viac balíčkov:"
 
 #. TRANSLATORS: This finds out which package in the list to use
 #: ../client/pk-tools-common.c:127
-#, fuzzy
 msgid "Please choose the correct package: "
-msgstr "Zadajte prosím číslo balíčka: "
+msgstr "Zadajte prosím správny balíček: "
 
 #: ../client/pk-tools-common.c:154
 #, c-format
@@ -444,58 +433,49 @@ msgstr "Získavanie informácií o balíčku..."
 #: ../contrib/packagekit-plugin/src/contents.cpp:305
 #, c-format
 msgid "Run %s"
-msgstr ""
+msgstr "Spustiť %s"
 
 #. TRANSLATORS: show the installed version of a package
 #: ../contrib/packagekit-plugin/src/contents.cpp:311
-#, fuzzy
 msgid "Installed version"
-msgstr ""
-"\n"
-"<small>Nainštalovaná verzia: %s</small>"
+msgstr "Nainštalovaná verzia"
 
 #. TRANSLATORS: run the application now
 #: ../contrib/packagekit-plugin/src/contents.cpp:319
 #, c-format
 msgid "Run version %s now"
-msgstr ""
+msgstr "Spustiť verziu %s teraz"
 
 #: ../contrib/packagekit-plugin/src/contents.cpp:325
 msgid "Run now"
-msgstr ""
+msgstr "Spustiť teraz"
 
 #. TRANSLATORS: update to a new version of the package
 #: ../contrib/packagekit-plugin/src/contents.cpp:330
 #, c-format
 msgid "Upgrade to version %s"
-msgstr ""
+msgstr "Aktualizovať na verziu %s"
 
 #. TRANSLATORS: To install a package
 #: ../contrib/packagekit-plugin/src/contents.cpp:336
 #, c-format
 msgid "Install %s Now"
-msgstr ""
+msgstr "Nainštalovať %s teraz"
 
 #. TRANSLATORS: the version of the package
 #: ../contrib/packagekit-plugin/src/contents.cpp:339
 msgid "Version"
-msgstr ""
+msgstr "Verzia"
 
 #. TRANSLATORS: noting found, so can't install
 #: ../contrib/packagekit-plugin/src/contents.cpp:344
-#, fuzzy
 msgid "No packages found for your system"
-msgstr ""
-"\n"
-"<small>Pre váš systém neboli nájdené žiadne balíčky</small>"
+msgstr "Pre váš systém neboli nájdené žiadne balíčky"
 
 #. TRANSLATORS: package is being installed
 #: ../contrib/packagekit-plugin/src/contents.cpp:349
-#, fuzzy
 msgid "Installing..."
-msgstr ""
-"\n"
-"<small>Inštalovanie...</small>"
+msgstr "Inštalovanie..."
 
 #: ../data/packagekit-catalog.xml.in.h:1
 msgid "PackageKit Catalog"
@@ -503,103 +483,11 @@ msgstr "Katalóg PackageKit"
 
 #: ../data/packagekit-servicepack.xml.in.h:1
 msgid "PackageKit Service Pack"
-msgstr "Service pack PackageKit"
+msgstr "Servisný archív PackageKit"
 
 #: ../data/packagekit-package-list.xml.in.h:1
-#, fuzzy
 msgid "PackageKit Package List"
-msgstr "Katalóg PackageKit"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:1
-msgid "Accept EULA"
-msgstr "Prijať licenčné podmienky"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:2
-msgid "Authentication is required to accept a EULA"
-msgstr "Na prijatie licenčných podmienok je nutná autentifikácia"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:3
-msgid "Authentication is required to change software source parameters"
-msgstr "Na úpravu zdrojov softvéru je nutná autentifikácia"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:4
-#, fuzzy
-msgid ""
-"Authentication is required to consider a key used for signing packages as "
-"trusted"
-msgstr "Na obnovenie zoznamu balíčkov je nutná autentifikácia"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:5
-#, fuzzy
-msgid "Authentication is required to install a signed package"
-msgstr "Na inštaláciu balíčka je nutná autentifikácia"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:6
-#, fuzzy
-msgid "Authentication is required to install an untrusted package"
-msgstr "Na inštaláciu balíčka je nutná autentifikácia"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:7
-#, fuzzy
-msgid "Authentication is required to refresh the system sources"
-msgstr "Na obnovenie zoznamu balíčkov je nutná autentifikácia"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:8
-msgid "Authentication is required to remove packages"
-msgstr "Na odstránenie balíčkov je nutná autentifikácia"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:9
-msgid "Authentication is required to rollback a transaction"
-msgstr "Na navrátenie transakcie je nutná autentifikácia"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:10
-#, fuzzy
-msgid ""
-"Authentication is required to set the network proxy used for downloading "
-"packages"
-msgstr "Na odstránenie balíčkov je nutná autentifikácia"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:11
-msgid "Authentication is required to update packages"
-msgstr "Na aktualizáciu balíčkov je nutná autentifikácia"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:12
-msgid "Change software source parameters"
-msgstr "Zmeniť parametre zdrojov softvéru"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:13
-msgid "Install local file"
-msgstr "Inštalovať z lokálneho súboru"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:14
-#, fuzzy
-msgid "Install untrusted local file"
-msgstr "Inštalovať z lokálneho súboru"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:15
-msgid "Refresh system sources"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:16
-msgid "Remove package"
-msgstr "Odstrániť balíček"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:17
-msgid "Rollback to a previous transaction"
-msgstr "Navrátiť sa k stavu pred transakciou"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:18
-msgid "Set network proxy"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:19
-msgid "Trust a key used for signing packages"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:20
-#, fuzzy
-msgid "Update packages"
-msgstr "Aktualizovať balíček"
+msgstr "Zoznam balíčkov PackageKit"
 
 #: ../src/pk-main.c:85
 msgid "Startup failed due to security policies on this machine."
@@ -631,7 +519,7 @@ msgstr "Uvoľniť terminál a presunúť sa na pozadie"
 
 #: ../src/pk-main.c:197
 msgid "Disable the idle timer"
-msgstr "Vypnúť počítadlo nečinnosti"
+msgstr "Vypnúť počítadlo času nečinnosti"
 
 #: ../src/pk-main.c:199
 msgid "Show version and exit"
@@ -659,6 +547,68 @@ msgstr "Pokus o pripojenie k systémovej zbernici neuspel"
 msgid "Error trying to start: %s\n"
 msgstr "Chyba pri pokuse o spustenie: %s\n"
 
+#~ msgid "Accept EULA"
+#~ msgstr "Prijať licenčné podmienky"
+
+#~ msgid "Authentication is required to accept a EULA"
+#~ msgstr "Na prijatie licenčných podmienok je nutná autentifikácia"
+
+#~ msgid "Authentication is required to change software source parameters"
+#~ msgstr "Na úpravu zdrojov softvéru je nutná autentifikácia"
+
+#, fuzzy
+#~ msgid ""
+#~ "Authentication is required to consider a key used for signing packages as "
+#~ "trusted"
+#~ msgstr "Na obnovenie zoznamu balíčkov je nutná autentifikácia"
+
+#, fuzzy
+#~ msgid "Authentication is required to install a signed package"
+#~ msgstr "Na inštaláciu balíčka je nutná autentifikácia"
+
+#, fuzzy
+#~ msgid "Authentication is required to install an untrusted package"
+#~ msgstr "Na inštaláciu balíčka je nutná autentifikácia"
+
+#, fuzzy
+#~ msgid "Authentication is required to refresh the system sources"
+#~ msgstr "Na obnovenie zoznamu balíčkov je nutná autentifikácia"
+
+#~ msgid "Authentication is required to remove packages"
+#~ msgstr "Na odstránenie balíčkov je nutná autentifikácia"
+
+#~ msgid "Authentication is required to rollback a transaction"
+#~ msgstr "Na navrátenie transakcie je nutná autentifikácia"
+
+#, fuzzy
+#~ msgid ""
+#~ "Authentication is required to set the network proxy used for downloading "
+#~ "packages"
+#~ msgstr "Na odstránenie balíčkov je nutná autentifikácia"
+
+#~ msgid "Authentication is required to update packages"
+#~ msgstr "Na aktualizáciu balíčkov je nutná autentifikácia"
+
+#~ msgid "Change software source parameters"
+#~ msgstr "Zmeniť parametre zdrojov softvéru"
+
+#~ msgid "Install local file"
+#~ msgstr "Inštalovať z lokálneho súboru"
+
+#, fuzzy
+#~ msgid "Install untrusted local file"
+#~ msgstr "Inštalovať z lokálneho súboru"
+
+#~ msgid "Remove package"
+#~ msgstr "Odstrániť balíček"
+
+#~ msgid "Rollback to a previous transaction"
+#~ msgstr "Navrátiť sa k stavu pred transakciou"
+
+#, fuzzy
+#~ msgid "Update packages"
+#~ msgstr "Aktualizovať balíček"
+
 #~ msgid "Update detail"
 #~ msgstr "Podrobnosti o aktualizácii"
 
commit 9fc39a2e5dcc50bd7bb48e684ac351e8c4162d34
Author: Richard Hughes <hughsie at localhost.localdomain>
Date:   Fri Oct 17 11:50:20 2008 +0100

    trivial: fix up the links to the python helper library

diff --git a/backends/apt.deprecated/packagekit b/backends/apt.deprecated/packagekit
index ee409e9..2e8d949 120000
--- a/backends/apt.deprecated/packagekit
+++ b/backends/apt.deprecated/packagekit
@@ -1 +1 @@
-../lib/python/packagekit
\ No newline at end of file
+../../lib/python/packagekit
\ No newline at end of file
diff --git a/backends/apt/packagekit b/backends/apt/packagekit
index ee409e9..2e8d949 120000
--- a/backends/apt/packagekit
+++ b/backends/apt/packagekit
@@ -1 +1 @@
-../lib/python/packagekit
\ No newline at end of file
+../../lib/python/packagekit
\ No newline at end of file
diff --git a/backends/conary/packagekit b/backends/conary/packagekit
index ee409e9..2e8d949 120000
--- a/backends/conary/packagekit
+++ b/backends/conary/packagekit
@@ -1 +1 @@
-../lib/python/packagekit
\ No newline at end of file
+../../lib/python/packagekit
\ No newline at end of file
diff --git a/backends/pisi/packagekit b/backends/pisi/packagekit
index ee409e9..2e8d949 120000
--- a/backends/pisi/packagekit
+++ b/backends/pisi/packagekit
@@ -1 +1 @@
-../lib/python/packagekit
\ No newline at end of file
+../../lib/python/packagekit
\ No newline at end of file
diff --git a/backends/smart/packagekit b/backends/smart/packagekit
index ee409e9..2e8d949 120000
--- a/backends/smart/packagekit
+++ b/backends/smart/packagekit
@@ -1 +1 @@
-../lib/python/packagekit
\ No newline at end of file
+../../lib/python/packagekit
\ No newline at end of file
diff --git a/backends/test/helpers/packagekit b/backends/test/helpers/packagekit
index ee409e9..2e8d949 120000
--- a/backends/test/helpers/packagekit
+++ b/backends/test/helpers/packagekit
@@ -1 +1 @@
-../lib/python/packagekit
\ No newline at end of file
+../../lib/python/packagekit
\ No newline at end of file
diff --git a/data/tests/packagekit b/data/tests/packagekit
index 50227aa..2e8d949 120000
--- a/data/tests/packagekit
+++ b/data/tests/packagekit
@@ -1 +1 @@
-../../python/packagekit
\ No newline at end of file
+../../lib/python/packagekit
\ No newline at end of file
commit 97d48f4233eca31dedeede60289efd12db482e13
Author: Richard Hughes <richard at hughsie.com>
Date:   Fri Oct 17 11:00:46 2008 +0100

    trivial: fix make check

diff --git a/lib/packagekit-glib/pk-package-list.c b/lib/packagekit-glib/pk-package-list.c
index 4806d75..fcd9d5f 100644
--- a/lib/packagekit-glib/pk-package-list.c
+++ b/lib/packagekit-glib/pk-package-list.c
@@ -435,7 +435,7 @@ pk_package_list_test (EggTest *test)
 
 	/************************************************************/
 	egg_test_title (test, "add entry");
-	text = pk_package_list_to_string (plist);
+	text = pk_obj_list_to_string (PK_OBJ_LIST(plist));
 	if (egg_strequal (text, "installed\tgnome;1.23;i386;data\tGNOME!"))
 		egg_test_success (test, NULL);
 	else
commit 09075fa2bdb5dbce08ae455725ca5354c98b501a
Author: Richard Hughes <richard at hughsie.com>
Date:   Fri Oct 17 11:00:38 2008 +0100

    trivial: don't enforce a comparison function in pk_obj_list_find_obj()

diff --git a/lib/packagekit-glib/pk-obj-list.c b/lib/packagekit-glib/pk-obj-list.c
index c1fae3d..b5a8a3b 100644
--- a/lib/packagekit-glib/pk-obj-list.c
+++ b/lib/packagekit-glib/pk-obj-list.c
@@ -414,6 +414,18 @@ pk_obj_list_find_obj (PkObjList *list, gconstpointer obj)
 
 	/* remove data items from list */
 	func_compare = list->priv->func_compare;
+
+	/* usual case, don't compare in the fast path */
+	if (func_compare == NULL) {
+		for (i=0; i < list->len; i++) {
+			obj_tmp = pk_obj_list_index (list, i);
+			if (obj_tmp == obj)
+				return (gpointer) obj_tmp;
+		}
+		return NULL;
+	}
+
+	/* use a comparison function */
 	for (i=0; i < list->len; i++) {
 		obj_tmp = pk_obj_list_index (list, i);
 		if (func_compare (obj_tmp, obj) == 0)
commit d6121e088343a00ae5ed2dbea791d4082c9b64bd
Author: Richard Hughes <richard at hughsie.com>
Date:   Fri Oct 17 11:00:10 2008 +0100

    trivial: add transactions to the data list

diff --git a/lib/packagekit-glib/pk-client.c b/lib/packagekit-glib/pk-client.c
index 675a64a..c7be0fe 100644
--- a/lib/packagekit-glib/pk-client.c
+++ b/lib/packagekit-glib/pk-client.c
@@ -633,6 +633,11 @@ pk_client_transaction_cb (DBusGProxy *proxy, const gchar *old_tid, const gchar *
 	egg_debug ("emitting transaction %s, %s, %i, %s, %ims, %s", old_tid, timespec,
 		  succeeded, role_text, duration, data);
 	g_signal_emit (client, signals [PK_CLIENT_TRANSACTION], 0, obj);
+
+	/* cache */
+	if (client->priv->use_buffer || client->priv->synchronous)
+		pk_obj_list_add (client->priv->cached_data, obj);
+
 	pk_transaction_obj_free (obj);
 }
 
@@ -3299,6 +3304,10 @@ pk_client_get_old_transactions (PkClient *client, guint number, GError **error)
 	if (!ret)
 		return FALSE;
 
+	/* we use the cached objects support */
+	pk_obj_list_set_copy (client->priv->cached_data, (PkObjListCopyFunc) pk_transaction_obj_copy);
+	pk_obj_list_set_free (client->priv->cached_data, (PkObjListFreeFunc) pk_transaction_obj_free);
+
 	/* check to see if we have a valid proxy */
 	if (client->priv->proxy == NULL) {
 		pk_client_error_set (error, PK_CLIENT_ERROR_NO_TID, "No proxy for transaction");
commit 4cb61f974e21d4e9d674492ea06084150a2afcc3
Author: Ville-Pekka Vainio <vpivaini at cs.helsinki.fi>
Date:   Fri Oct 17 09:31:24 2008 +0000

    Updated Finnish translation
    
    Transmitted-via: Transifex (translate.fedoraproject.org)

diff --git a/po/fi.po b/po/fi.po
index 904bd85..212303a 100644
--- a/po/fi.po
+++ b/po/fi.po
@@ -7,8 +7,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: packagekit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-10-15 18:11+0100\n"
-"PO-Revision-Date: 2008-09-01 00:51+0300\n"
+"POT-Creation-Date: 2008-10-16 18:26+0000\n"
+"PO-Revision-Date: 2008-10-17 12:26+0300\n"
 "Last-Translator: Ville-Pekka Vainio <vpivaini at cs.helsinki.fi>\n"
 "Language-Team: Finnish <laatu at lokalisointi.org>\n"
 "MIME-Version: 1.0\n"
@@ -18,49 +18,49 @@ msgstr ""
 #. TRANSLATORS: this is a header for the package that can be updated
 #: ../client/pk-console.c:273
 msgid "Details about the update:"
-msgstr ""
+msgstr "Tietoja päivityksestä:"
 
 #: ../client/pk-console.c:466
 msgid "Please restart the computer to complete the update."
-msgstr ""
+msgstr "Käynnistä tietokone uudelleen päivityksen viimeistelemiseksi."
 
 #: ../client/pk-console.c:468
 msgid "Please logout and login to complete the update."
-msgstr ""
+msgstr "Kirjaudu ulos ja takaisin sisään päivityksen viimeistelemiseksi."
 
 #: ../client/pk-console.c:470
 msgid "Please restart the application as it is being used."
-msgstr ""
+msgstr "Ohjelmaa käytetään tällä hetkellä, käynnistä se uudelleen."
 
 #. TRANSLATORS: The package name was not found in any software sources
 #: ../client/pk-console.c:555
 #, c-format
 msgid "The package '%s' could not be installed: %s"
-msgstr ""
+msgstr "Pakettia ”%s” ei voitu asentaa: %s"
 
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
 #: ../client/pk-console.c:609
 #, c-format
 msgid "This tool could not install the packages: %s"
-msgstr ""
+msgstr "Tämä työkalu ei voinut asentaa paketteja: %s"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
 #: ../client/pk-console.c:665
 #, c-format
 msgid "This tool could not remove '%s': %s"
-msgstr ""
+msgstr "Tämä työkalu ei voinut poistaa pakettia ”%s”: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
 #: ../client/pk-console.c:688 ../client/pk-console.c:757
 #, c-format
 msgid "This tool could not remove the packages: %s"
-msgstr ""
+msgstr "Tämä työkalu ei voinut poistaa paketteja: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
 #: ../client/pk-console.c:724
 #, c-format
 msgid "This tool could not remove the packages: '%s'"
-msgstr ""
+msgstr "Tämä työkalu ei voinut poistaa paketteja: ”%s”"
 
 #. TRANSLATORS: When removing, we might have to remove other deps
 #: ../client/pk-console.c:736
@@ -69,73 +69,74 @@ msgstr "Seuraavat paketit on poistettava"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
 #: ../client/pk-console.c:743
-#, fuzzy
 msgid "Proceed removing additional packages?"
 msgstr "Poistetaanko lisäpaketteja?"
 
 #. TRANSLATORS: We did not remove any packages
 #: ../client/pk-console.c:748
 msgid "The package removal was cancelled!"
-msgstr ""
+msgstr "Pakettien poisto peruutettiin!"
 
 #. TRANSLATORS: The package name was not found in any software sources
 #: ../client/pk-console.c:789
-#, fuzzy, c-format
+#, c-format
 msgid "This tool could not find the package '%s' to download"
-msgstr "Ladattavaksi pyydettyä pakettia ei löytynyt"
+msgstr "Ladattavaksi pyydettyä pakettia ”%s” ei löytynyt"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
 #: ../client/pk-console.c:843 ../client/pk-console.c:852
 #, c-format
 msgid "This tool could not update '%s': %s"
-msgstr ""
+msgstr "Tämä työkalu ei voinut päivittää pakettia ”%s”: %s"
 
+# TODO: tarkista
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
 #: ../client/pk-console.c:874 ../client/pk-console.c:882
 #, c-format
 msgid "This tool could not get the requires for '%s': %s"
-msgstr ""
+msgstr "Tämä työkalu ei voinut hakea vaatijoita paketille ”%s”: %s"
 
+# TODO: tarkista
 #. TRANSLATORS: There was an error getting the depends for the package. The detailed error follows
 #: ../client/pk-console.c:904 ../client/pk-console.c:912
-#, fuzzy, c-format
+#, c-format
 msgid "This tool could not get the dependancies for '%s': %s"
-msgstr "Ei voitu hakea riippuvuuksia tälle paketille"
+msgstr "Tämä työkalu ei voinut hakea riippuvuuksia paketille ”%s”: %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
 #: ../client/pk-console.c:934 ../client/pk-console.c:942
 #, c-format
 msgid "This tool could not get package details for '%s': %s"
-msgstr ""
+msgstr "Tämä työkalu ei voinut hakea tietoja paketista ”%s”: %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
 #: ../client/pk-console.c:964
-#, fuzzy, c-format
+#, c-format
 msgid "This tool could not find the files for '%s': %s"
-msgstr "Tämän paketin tiedostoja ei löydetty"
+msgstr "Tämä työkalu ei löytänyt paketin ”%s” tiedostoja: %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
 #: ../client/pk-console.c:972
-#, fuzzy, c-format
+#, c-format
 msgid "This tool could not get the file list for '%s': %s"
-msgstr "Tiedostoluetteloa ei voitu hakea"
+msgstr "Tämä työkalu ei voinut hakea paketin ”%s” tiedostoluetteloa: %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
 #: ../client/pk-console.c:994
-#, fuzzy, c-format
+#, c-format
 msgid "This tool could not find the update details for '%s': %s"
-msgstr "Tämän paketin päivitystietoja ei löydetty"
+msgstr "Tämä työkalu ei löytänyt paketin ”%s” päivitystietoja: %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
 #: ../client/pk-console.c:1002
-#, fuzzy, c-format
+#, c-format
 msgid "This tool could not get the update details for '%s': %s"
-msgstr "Tämän paketin päivitystietoja ei löydetty"
+msgstr "Tämä työkalu ei voinut hakea paketin ”%s” päivitystietoja: %s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
 #: ../client/pk-console.c:1048
 msgid "Error:"
-msgstr ""
+msgstr "Virhe:"
 
 #. TRANSLATORS: This a list of details about the package
 #: ../client/pk-console.c:1062
@@ -155,7 +156,7 @@ msgstr "Ei tiedostoja"
 #. TRANSLATORS: This a request for a GPG key signature
 #: ../client/pk-console.c:1127
 msgid "Repository signature required"
-msgstr ""
+msgstr "Asennuslähteen allekirjoitus vaaditaan"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
 #: ../client/pk-console.c:1137
@@ -170,7 +171,7 @@ msgstr "Avainta ei tuotu"
 #. TRANSLATORS: This a request for a EULA
 #: ../client/pk-console.c:1175
 msgid "Eula required"
-msgstr ""
+msgstr "Käyttöoikeussopimus vaaditaan"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the licence
 #: ../client/pk-console.c:1182
@@ -179,9 +180,8 @@ msgstr "Hyväksytkö?"
 
 #. TRANSLATORS: This is where the user declined the licence
 #: ../client/pk-console.c:1186
-#, fuzzy
 msgid "Did not agree to licence"
-msgstr "Käyttöoikeussopimusta ei hyväksytty, tehtävä epäonnistuu"
+msgstr "Käyttöoikeussopimusta ei hyväksytty"
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
 #: ../client/pk-console.c:1215
@@ -216,9 +216,8 @@ msgstr "Lopeta odottamatta toimintojen valmistumista"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
 #: ../client/pk-console.c:1387
-#, fuzzy
 msgid "This tool could not connect to system DBUS."
-msgstr "Järjestelmän DBUSiin yhdistäminen ei onnistunut."
+msgstr "Tänä työkalu ei voinut yhdistää järjestelmän DBUSiin."
 
 #: ../client/pk-console.c:1482
 msgid "You need to specify a search type, e.g. name"
@@ -312,38 +311,37 @@ msgstr "Komento epäonnistui"
 #. TRANSLATORS: This is the state of the transaction
 #: ../client/pk-generate-pack.c:96
 msgid "Downloading"
-msgstr ""
+msgstr "Ladataan"
 
 #: ../client/pk-generate-pack.c:140
-#, fuzzy
 msgid "Set the filename of dependencies to be excluded"
 msgstr ""
-"Aseta polku tiedostoon, jossa on pois jätettävien pakettien/riippuvuuksien "
-"luettelo"
+"Aseta polku tiedostoon, jossa on pois jätettävien riippuvuuksien luettelo"
 
 #: ../client/pk-generate-pack.c:142
 msgid ""
 "The directory to put the pack file, or the current directory if ommitted"
 msgstr ""
+"Hakemisto johon huoltopakkaus tallennetaan, jos jätetään tyhjäksi, valitaan "
+"automaattisesti nykyinen hakemisto"
 
 #: ../client/pk-generate-pack.c:144
-#, fuzzy
 msgid "The package to be put into the ServicePack"
-msgstr "PackageKit-huoltopakkaus"
+msgstr "Paketti joka laitetaan huoltopakkaukseen"
 
 #: ../client/pk-generate-pack.c:146
 msgid "Put all updates available in the ServicePack"
-msgstr ""
+msgstr "Laita kaikki saatavilla olevat päivitykset huoltopakkaukseen"
 
 #. TRANSLATORS: This is when the user fails to supply the correct arguments
 #: ../client/pk-generate-pack.c:166
 msgid "Neither --package or --updates option selected."
-msgstr ""
+msgstr "Kumpaakaan valitsimista --package tai --updates ei ole käytetty."
 
 #. TRANSLATORS: This is when the user fails to supply just one argument
 #: ../client/pk-generate-pack.c:174
 msgid "Both options selected."
-msgstr ""
+msgstr "Molempia valitsimia on käytetty."
 
 #. TRANSLATORS: This is when file already exists
 #: ../client/pk-generate-pack.c:207
@@ -353,47 +351,45 @@ msgstr "Samalla nimellä on jo olemassa pakkaus, haluatko korvata sen?"
 #. TRANSLATORS: This is when the pack was not overwritten
 #: ../client/pk-generate-pack.c:210
 msgid "The pack was not overwritten."
-msgstr ""
+msgstr "Pakkausta ei korvattu."
 
 #. TRANSLATORS: This is when the temporary directory cannot be created
 #: ../client/pk-generate-pack.c:222
-#, fuzzy
 msgid "Failed to create directory."
-msgstr "Hakemiston luominen epäonnistui"
+msgstr "Hakemiston luominen epäonnistui."
 
 #. TRANSLATORS: This is when the list of packages from the remote computer cannot be opened
 #: ../client/pk-generate-pack.c:231
-#, fuzzy
 msgid "Failed to open package list."
-msgstr "Pakkauksen luominen epäonnistui"
+msgstr "Pakettiluettelon luominen epäonnistui."
 
 #. TRANSLATORS: This is when the user fails to supply the correct arguments
 #: ../client/pk-generate-pack.c:241
 msgid "Finding package name."
-msgstr ""
+msgstr "Etsitään paketin nimeä."
 
 #. TRANSLATORS: This is when the package cannot be foudn in any software source
 #: ../client/pk-generate-pack.c:245
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to find package '%s': %s"
-msgstr "Asennettavaksi pyydettyä pakettia ei löytynyt"
+msgstr "Pakettia ”%s” ei löytynyt: %s"
 
 #. TRANSLATORS: This is telling the user we are in the process of making the pack
 #: ../client/pk-generate-pack.c:260
 msgid "Creating service pack..."
-msgstr ""
+msgstr "Luodaan huoltopakkausta..."
 
 #. TRANSLATORS: we succeeded in making the file
 #: ../client/pk-generate-pack.c:267
 #, c-format
 msgid "Service pack created '%s'"
-msgstr ""
+msgstr "Huoltopakkaus ”%s” on luotu"
 
 #. TRANSLATORS: we failed to make te file
 #: ../client/pk-generate-pack.c:271
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to create '%s': %s"
-msgstr "Asennettavaksi pyydettyä pakettia ei löytynyt"
+msgstr "Huoltopakkauksen ”%s” luominen epäonnistui: %s"
 
 #: ../client/pk-monitor.c:128
 msgid "PackageKit Monitor"
@@ -403,25 +399,22 @@ msgstr "PackageKit-tarkkailija"
 #: ../client/pk-tools-common.c:76 ../client/pk-tools-common.c:83
 #, c-format
 msgid "Internal error: %s"
-msgstr ""
+msgstr "Sisäinen virhe: %s"
 
 #. TRANSLATORS: The package was not found in any software sources
 #: ../client/pk-tools-common.c:109
-#, c-format
 msgid "The package could not be found"
-msgstr ""
+msgstr "Pakettia ei löytynyt"
 
 #. TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages
 #: ../client/pk-tools-common.c:120
-#, fuzzy
 msgid "More than one package matches:"
-msgstr "Useita vastaavia paketteja saatavilla"
+msgstr "Useita vastaavia paketteja saatavilla:"
 
 #. TRANSLATORS: This finds out which package in the list to use
 #: ../client/pk-tools-common.c:127
-#, fuzzy
 msgid "Please choose the correct package: "
-msgstr "Anna paketin numero:"
+msgstr "Valitse oikea paketti:"
 
 #: ../client/pk-tools-common.c:154
 #, c-format
@@ -437,58 +430,49 @@ msgstr "Haetaan pakettitietoja..."
 #: ../contrib/packagekit-plugin/src/contents.cpp:305
 #, c-format
 msgid "Run %s"
-msgstr ""
+msgstr "Suorita %s"
 
 #. TRANSLATORS: show the installed version of a package
 #: ../contrib/packagekit-plugin/src/contents.cpp:311
-#, fuzzy
 msgid "Installed version"
-msgstr ""
-"\n"
-"<small>Asennettu versio: %s</small>"
+msgstr "Asennettu versio"
 
 #. TRANSLATORS: run the application now
 #: ../contrib/packagekit-plugin/src/contents.cpp:319
 #, c-format
 msgid "Run version %s now"
-msgstr ""
+msgstr "Suorita versio %s nyt"
 
 #: ../contrib/packagekit-plugin/src/contents.cpp:325
 msgid "Run now"
-msgstr ""
+msgstr "Suorita nyt"
 
 #. TRANSLATORS: update to a new version of the package
 #: ../contrib/packagekit-plugin/src/contents.cpp:330
 #, c-format
 msgid "Upgrade to version %s"
-msgstr ""
+msgstr "Päivitä versioon %s"
 
 #. TRANSLATORS: To install a package
 #: ../contrib/packagekit-plugin/src/contents.cpp:336
 #, c-format
 msgid "Install %s Now"
-msgstr ""
+msgstr "Asenna %s nyt"
 
 #. TRANSLATORS: the version of the package
 #: ../contrib/packagekit-plugin/src/contents.cpp:339
 msgid "Version"
-msgstr ""
+msgstr "Versio"
 
 #. TRANSLATORS: noting found, so can't install
 #: ../contrib/packagekit-plugin/src/contents.cpp:344
-#, fuzzy
 msgid "No packages found for your system"
-msgstr ""
-"\n"
-"<small>Järjestelmääsi sopivia paketteja ei löytynyt</small>"
+msgstr "Järjestelmääsi sopivia paketteja ei löytynyt"
 
 #. TRANSLATORS: package is being installed
 #: ../contrib/packagekit-plugin/src/contents.cpp:349
-#, fuzzy
 msgid "Installing..."
-msgstr ""
-"\n"
-"<small>Asennetaan...</small>"
+msgstr "Asennetaan..."
 
 #: ../data/packagekit-catalog.xml.in.h:1
 msgid "PackageKit Catalog"
@@ -499,93 +483,8 @@ msgid "PackageKit Service Pack"
 msgstr "PackageKit-huoltopakkaus"
 
 #: ../data/packagekit-package-list.xml.in.h:1
-#, fuzzy
 msgid "PackageKit Package List"
-msgstr "PackageKit-katalogi"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:1
-msgid "Accept EULA"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:2
-msgid "Authentication is required to accept a EULA"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:3
-msgid "Authentication is required to change software source parameters"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:4
-msgid ""
-"Authentication is required to consider a key used for signing packages as "
-"trusted"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:5
-msgid "Authentication is required to install a signed package"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:6
-msgid "Authentication is required to install an untrusted package"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:7
-msgid "Authentication is required to refresh the system sources"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:8
-msgid "Authentication is required to remove packages"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:9
-msgid "Authentication is required to rollback a transaction"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:10
-msgid ""
-"Authentication is required to set the network proxy used for downloading "
-"packages"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:11
-msgid "Authentication is required to update packages"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:12
-msgid "Change software source parameters"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:13
-msgid "Install local file"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:14
-msgid "Install untrusted local file"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:15
-msgid "Refresh system sources"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:16
-msgid "Remove package"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:17
-msgid "Rollback to a previous transaction"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:18
-msgid "Set network proxy"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:19
-msgid "Trust a key used for signing packages"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:20
-msgid "Update packages"
-msgstr ""
+msgstr "PackageKit-pakettiluettelo"
 
 #: ../src/pk-main.c:85
 msgid "Startup failed due to security policies on this machine."
commit 8f627744fafcd71b432a65a312943c6e7a33dfd2
Author: Richard Hughes <richard at hughsie.com>
Date:   Fri Oct 17 09:31:58 2008 +0100

    trivial: fix pk_obj_list_find_obj, remove optimisation, it's invalid

diff --git a/lib/packagekit-glib/pk-obj-list.c b/lib/packagekit-glib/pk-obj-list.c
index e6b1b80..c1fae3d 100644
--- a/lib/packagekit-glib/pk-obj-list.c
+++ b/lib/packagekit-glib/pk-obj-list.c
@@ -348,7 +348,7 @@ pk_obj_list_remove_list (PkObjList *list, const PkObjList *data)
 }
 
 /**
- * pk_obj_list_find_obj:
+ * pk_obj_list_obj_equal:
  * @list: a valid #PkObjList instance
  * @obj: a valid #gpointer object
  *
@@ -412,12 +412,8 @@ pk_obj_list_find_obj (PkObjList *list, gconstpointer obj)
 	gconstpointer obj_tmp;
 	PkObjListCompareFunc func_compare;
 
-	/* the pointers point to the same thing */
-	func_compare = list->priv->func_compare;
-	if (func_compare == NULL)
-		return (gpointer) obj;
-
 	/* remove data items from list */
+	func_compare = list->priv->func_compare;
 	for (i=0; i < list->len; i++) {
 		obj_tmp = pk_obj_list_index (list, i);
 		if (func_compare (obj_tmp, obj) == 0)
commit 3832a806dbecf8bba20f40e3f9d458e0089ca532
Author: Richard Hughes <richard at hughsie.com>
Date:   Fri Oct 17 09:21:28 2008 +0100

    yum: Tim made the yum group support newest

diff --git a/backends/yum/pk-backend-yum.c b/backends/yum/pk-backend-yum.c
index de97724..819abd3 100644
--- a/backends/yum/pk-backend-yum.c
+++ b/backends/yum/pk-backend-yum.c
@@ -56,6 +56,7 @@ backend_get_groups (PkBackend *backend)
 {
 	return pk_bitfield_from_enums (
 		PK_GROUP_ENUM_COLLECTIONS,
+		PK_GROUP_ENUM_NEWEST,
 		PK_GROUP_ENUM_ADMIN_TOOLS,
 		PK_GROUP_ENUM_DESKTOP_GNOME,
 		PK_GROUP_ENUM_DESKTOP_KDE,
commit 3237aaf8ca15c62c2b741abccf97b3acd8b559f6
Author: Tim Lauridsen <timlau at fedoraproject.org>
Date:   Fri Oct 17 08:47:31 2008 +0200

    yum: add GROUP_NEWEST support to search-group

diff --git a/backends/yum/yumBackend.py b/backends/yum/yumBackend.py
index 3df71a7..25bc72f 100755
--- a/backends/yum/yumBackend.py
+++ b/backends/yum/yumBackend.py
@@ -356,6 +356,25 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
     def _get_available_from_names(self, name_list):
         return self.yumbase.pkgSack.searchNames(names=name_list)
 
+    def _handle_newest(self, fltlist):
+        """
+        Handle the special newest group
+        """
+        self.percentage(None)
+        pkgs = []
+        try:
+            ygl = self.yumbase.doPackageLists(pkgnarrow='recent')
+            pkgs.extend(ygl.recent)
+        except yum.Errors.RepoError, e:
+            self.error(ERROR_REPO_NOT_AVAILABLE, str(e))
+        for pkg in pkgs:
+            # check if not an update
+            if not self.yumbase.rpmdb.installed(name=pkg.name):
+                package_id = self._pkg_to_id(pkg)
+                self.package(package_id, INFO_AVAILABLE, pkg.summary)
+        self.percentage(100)
+
+
     def _handle_collections(self, fltlist):
         """
         Handle the special collection group
@@ -409,6 +428,11 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
             self._handle_collections(fltlist)
             return
 
+        # handle newest packages
+        if group_key == GROUP_NEWEST:
+            self._handle_newest(fltlist)
+            return
+
         # handle dynamic groups (yum comps group)
         if group_key[0] == '@':
             cat_id = group_key[1:]
commit 2f2f923cce67b4cef4e2c961d911f32d0da30219
Author: Aurelien Lefebvre <alk at imj.fr>
Date:   Thu Oct 16 22:03:00 2008 +0200

    trivial: update of packagekit install instructions for Mandriva

diff --git a/docs/html/pk-download.html b/docs/html/pk-download.html
index 3c6bb31..1fffb7b 100644
--- a/docs/html/pk-download.html
+++ b/docs/html/pk-download.html
@@ -45,9 +45,7 @@ easier to install.
    repository file and run: <code>zypper install PackageKit gnome-packagekit</code> (as root)
   </li>
   <li>
-  Mandriva : PackageKit will be available on the next release of Mandriva (2009.0). You can already 
-  try it by adding the <a href="http://wiki.mandriva.com/en/Development"><tt>cooker</tt></a> repository.<br/>
-  Be carefull, it will update your system to the development branch of Mandriva. Use it at your own risk.
+  Mandriva 2009 : Yes, just run: <code>urpmi packagekit gnome-packagekit</code> (as root)
   </li>
   <li>
    Others: Probably not, although you can compile from source. See below for more details.
commit ac9c75fcfd1044acfd033501123cad676a18b522
Author: Adrien BUSTANY <madcat at mymadcat.com>
Date:   Thu Oct 16 20:25:21 2008 +0200

    Complete migration of the headers

diff --git a/lib/packagekit-qt/modules/FindQPackageKit.cmake b/lib/packagekit-qt/modules/FindQPackageKit.cmake
index 4c394be..7074d78 100644
--- a/lib/packagekit-qt/modules/FindQPackageKit.cmake
+++ b/lib/packagekit-qt/modules/FindQPackageKit.cmake
@@ -14,7 +14,7 @@ IF (QPACKAGEKIT_INCLUDE_DIR AND QPACKAGEKIT_LIB)
     SET(QPACKAGEKIT_FIND_QUIETLY TRUE)
 ENDIF (QPACKAGEKIT_INCLUDE_DIR AND QPACKAGEKIT_LIB)
 
-FIND_PATH( QPACKAGEKIT_INCLUDE_DIR packagekit-qt/QPackageKit )
+FIND_PATH( QPACKAGEKIT_INCLUDE_DIR PackageKit/packagekit-qt/QPackageKit )
 
 FIND_LIBRARY( QPACKAGEKIT_LIB NAMES packagekit-qt )
 
commit 378fc98fed40faa787dfca37755165120044b4c6
Author: Richard Hughes <richard at hughsie.com>
Date:   Thu Oct 16 18:05:22 2008 +0100

    glib: make ::transaction return a pointer to a struct for simplicity in lists

diff --git a/client/pk-console.c b/client/pk-console.c
index d03ecb6..e6efa14 100644
--- a/client/pk-console.c
+++ b/client/pk-console.c
@@ -211,20 +211,18 @@ out:
  * pk_console_transaction_cb:
  **/
 static void
-pk_console_transaction_cb (PkClient *client, const gchar *tid, const gchar *timespec,
-			   gboolean succeeded, PkRoleEnum role, guint duration,
-			   const gchar *data, gpointer user_data)
+pk_console_transaction_cb (PkClient *client, const PkTransactionObj *obj, gpointer user_data)
 {
 	const gchar *role_text;
-	role_text = pk_role_enum_to_text (role);
+	role_text = pk_role_enum_to_text (obj->role);
 	if (awaiting_space)
 		g_print ("\n");
-	g_print ("Transaction  : %s\n", tid);
-	g_print (" timespec    : %s\n", timespec);
-	g_print (" succeeded   : %i\n", succeeded);
+	g_print ("Transaction  : %s\n", obj->tid);
+	g_print (" timespec    : %s\n", obj->timespec);
+	g_print (" succeeded   : %i\n", obj->succeeded);
 	g_print (" role        : %s\n", role_text);
-	g_print (" duration    : %i (seconds)\n", duration);
-	g_print (" data        : %s\n", data);
+	g_print (" duration    : %i (seconds)\n", obj->duration);
+	g_print (" data        : %s\n", obj->data);
 }
 
 /**
diff --git a/lib/packagekit-glib/Makefile.am b/lib/packagekit-glib/Makefile.am
index 34955c7..f74a76c 100644
--- a/lib/packagekit-glib/Makefile.am
+++ b/lib/packagekit-glib/Makefile.am
@@ -35,6 +35,7 @@ libpackagekit_include_HEADERS =					\
 	pk-update-detail-obj.h					\
 	pk-distro-upgrade-obj.h					\
 	pk-details-obj.h					\
+	pk-transaction-obj.h					\
 	pk-enum.h						\
 	pk-bitfield.h						\
 	pk-common.h						\
@@ -77,6 +78,8 @@ libpackagekit_la_SOURCES =					\
 	pk-distro-upgrade-obj.h					\
 	pk-details-obj.c					\
 	pk-details-obj.h					\
+	pk-transaction-obj.c					\
+	pk-transaction-obj.h					\
 	pk-enum.c						\
 	pk-enum.h						\
 	pk-bitfield.c						\
diff --git a/lib/packagekit-glib/packagekit.h b/lib/packagekit-glib/packagekit.h
index 2d679fa..1d276d7 100644
--- a/lib/packagekit-glib/packagekit.h
+++ b/lib/packagekit-glib/packagekit.h
@@ -42,6 +42,7 @@
 #include <packagekit-glib/pk-package-obj.h>
 #include <packagekit-glib/pk-service-pack.h>
 #include <packagekit-glib/pk-task-list.h>
+#include <packagekit-glib/pk-transaction-obj.h>
 #include <packagekit-glib/pk-update-detail-obj.h>
 
 #undef __PACKAGEKIT_H_INSIDE__
diff --git a/lib/packagekit-glib/pk-client.c b/lib/packagekit-glib/pk-client.c
index 97b3adc..675a64a 100644
--- a/lib/packagekit-glib/pk-client.c
+++ b/lib/packagekit-glib/pk-client.c
@@ -58,6 +58,7 @@
 #include <packagekit-glib/pk-control.h>
 #include <packagekit-glib/pk-update-detail-obj.h>
 #include <packagekit-glib/pk-details-obj.h>
+#include <packagekit-glib/pk-transaction-obj.h>
 #include <packagekit-glib/pk-category-obj.h>
 #include <packagekit-glib/pk-distro-upgrade-obj.h>
 #include <packagekit-glib/pk-obj-list.h>
@@ -623,14 +624,16 @@ pk_client_transaction_cb (DBusGProxy *proxy, const gchar *old_tid, const gchar *
 			  gboolean succeeded, const gchar *role_text, guint duration,
 			  const gchar *data, PkClient *client)
 {
+	PkTransactionObj *obj;
 	PkRoleEnum role;
 	g_return_if_fail (PK_IS_CLIENT (client));
 
 	role = pk_role_enum_from_text (role_text);
+	obj = pk_transaction_obj_new_from_data (old_tid, timespec, succeeded, role, duration, data);
 	egg_debug ("emitting transaction %s, %s, %i, %s, %ims, %s", old_tid, timespec,
 		  succeeded, role_text, duration, data);
-	g_signal_emit (client, signals [PK_CLIENT_TRANSACTION], 0, old_tid, timespec,
-		       succeeded, role, duration, data);
+	g_signal_emit (client, signals [PK_CLIENT_TRANSACTION], 0, obj);
+	pk_transaction_obj_free (obj);
 }
 
 /**
@@ -3605,9 +3608,8 @@ pk_client_class_init (PkClientClass *klass)
 		g_signal_new ("transaction",
 			      G_TYPE_FROM_CLASS (object_class), G_SIGNAL_RUN_LAST,
 			      G_STRUCT_OFFSET (PkClientClass, transaction),
-			      NULL, NULL, pk_marshal_VOID__STRING_STRING_BOOL_UINT_UINT_STRING,
-			      G_TYPE_NONE, 6, G_TYPE_STRING, G_TYPE_STRING,
-			      G_TYPE_BOOLEAN, G_TYPE_UINT, G_TYPE_UINT, G_TYPE_STRING);
+			      NULL, NULL, g_cclosure_marshal_VOID__POINTER,
+			      G_TYPE_NONE, 1, G_TYPE_POINTER);
 	/**
 	 * PkClient::distro_upgrade:
 	 * @client: the #PkClient instance that emitted the signal
diff --git a/lib/packagekit-glib/pk-client.h b/lib/packagekit-glib/pk-client.h
index 7fc275f..b9b8b61 100644
--- a/lib/packagekit-glib/pk-client.h
+++ b/lib/packagekit-glib/pk-client.h
@@ -32,6 +32,8 @@
 #include <packagekit-glib/pk-package-list.h>
 #include <packagekit-glib/pk-update-detail-obj.h>
 #include <packagekit-glib/pk-details-obj.h>
+#include <packagekit-glib/pk-category-obj.h>
+#include <packagekit-glib/pk-transaction-obj.h>
 
 G_BEGIN_DECLS
 
@@ -96,12 +98,7 @@ struct _PkClientClass
 	void		(* package)			(PkClient	*client,
 							 PkPackageObj	*obj);
 	void		(* transaction)			(PkClient	*client,
-							 const gchar	*tid,
-							 const gchar	*timespec,
-							 gboolean	 succeeded,
-							 PkRoleEnum	 role,
-							 guint		 duration,
-							 const gchar	*data);
+							 PkTransactionObj *obj);
 	void		(* distro_upgrade)		(PkClient	*client,
 							 PkUpdateStateEnum type,
 							 const gchar	*name,
@@ -148,11 +145,7 @@ struct _PkClientClass
 							 PkExitEnum	 exit,
 							 guint		 runtime);
 	void		(* category)			(PkClient	*client,
-							 const gchar	*parent_id,
-							 const gchar	*cat_id,
-							 const gchar	*name,
-							 const gchar	*summary,
-							 const gchar	*icon);
+							 PkCategoryObj	*obj);
 	/* Padding for future expansion */
 	void (*_pk_reserved1) (void);
 	void (*_pk_reserved2) (void);
diff --git a/lib/packagekit-glib/pk-transaction-obj.c b/lib/packagekit-glib/pk-transaction-obj.c
new file mode 100644
index 0000000..6acca15
--- /dev/null
+++ b/lib/packagekit-glib/pk-transaction-obj.c
@@ -0,0 +1,152 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2008 Richard Hughes <richard at hughsie.com>
+ *
+ * Licensed under the GNU General Public License Version 2
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+/**
+ * SECTION:pk-transaction-obj
+ * @short_description: Functionality to create a transaction struct
+ */
+
+#include "config.h"
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <sys/types.h>
+#include <glib/gi18n.h>
+
+#include <packagekit-glib/pk-enum.h>
+#include <packagekit-glib/pk-common.h>
+#include <packagekit-glib/pk-transaction-obj.h>
+
+#include "egg-debug.h"
+
+/**
+ * pk_transaction_obj_new:
+ *
+ * Creates a new #PkTransactionObj object with default values
+ *
+ * Return value: a new #PkTransactionObj object
+ **/
+PkTransactionObj *
+pk_transaction_obj_new (void)
+{
+	PkTransactionObj *obj;
+	obj = g_new0 (PkTransactionObj, 1);
+	obj->tid = NULL;
+	obj->timespec = NULL;
+	obj->succeeded = FALSE;
+	obj->role = PK_ROLE_ENUM_UNKNOWN;
+	obj->duration = 0;
+	obj->data = NULL;
+	return obj;
+}
+
+/**
+ * pk_transaction_obj_new_from_data:
+ *
+ * Creates a new #PkTransactionObj object with values.
+ *
+ * Return value: a new #PkTransactionObj object
+ **/
+PkTransactionObj *
+pk_transaction_obj_new_from_data (const gchar *tid, const gchar *timespec,
+				  gboolean succeeded, PkRoleEnum role,
+				  guint duration, const gchar *data)
+{
+	PkTransactionObj *obj = NULL;
+
+	/* create new object */
+	obj = pk_transaction_obj_new ();
+	obj->tid = g_strdup (tid);
+	obj->timespec = g_strdup (timespec);
+	obj->succeeded = succeeded;
+	obj->role = role;
+	obj->duration = duration;
+	obj->data = g_strdup (data);
+	return obj;
+}
+
+/**
+ * pk_transaction_obj_copy:
+ *
+ * Return value: a new #PkTransactionObj object
+ **/
+PkTransactionObj *
+pk_transaction_obj_copy (const PkTransactionObj *obj)
+{
+	g_return_val_if_fail (obj != NULL, NULL);
+	return pk_transaction_obj_new_from_data (obj->tid, obj->timespec,
+						 obj->succeeded, obj->role,
+						 obj->duration, obj->data);
+}
+
+/**
+ * pk_transaction_obj_free:
+ * @obj: the #PkTransactionObj object
+ *
+ * Return value: %TRUE if the #PkTransactionObj object was freed.
+ **/
+gboolean
+pk_transaction_obj_free (PkTransactionObj *obj)
+{
+	if (obj == NULL) {
+		return FALSE;
+	}
+	g_free (obj->tid);
+	g_free (obj->timespec);
+	g_free (obj->data);
+	g_free (obj);
+	return TRUE;
+}
+
+/***************************************************************************
+ ***                          MAKE CHECK TESTS                           ***
+ ***************************************************************************/
+#ifdef EGG_TEST
+#include "egg-test.h"
+
+void
+egg_test_transaction (EggTest *test)
+{
+	gboolean ret;
+	PkTransactionObj *obj;
+
+	if (!egg_test_start (test, "PkTransactionObj"))
+		return;
+
+	/************************************************************
+	 ****************          IDENT           ******************
+	 ************************************************************/
+
+	/************************************************************/
+	egg_test_title (test, "get an upgrade object");
+	obj = pk_transaction_obj_new ();
+	egg_test_assert (test, obj != NULL);
+
+	/************************************************************/
+	egg_test_title (test, "test upgrade");
+	ret = pk_transaction_obj_free (obj);
+	egg_test_assert (test, ret);
+
+	egg_test_end (test);
+}
+#endif
+
diff --git a/lib/packagekit-glib/pk-transaction-obj.h b/lib/packagekit-glib/pk-transaction-obj.h
new file mode 100644
index 0000000..b855b23
--- /dev/null
+++ b/lib/packagekit-glib/pk-transaction-obj.h
@@ -0,0 +1,61 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2008 Richard Hughes <richard at hughsie.com>
+ *
+ * Licensed under the GNU General Public License Version 2
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#if !defined (__PACKAGEKIT_H_INSIDE__) && !defined (PK_COMPILATION)
+#error "Only <packagekit.h> can be included directly."
+#endif
+
+#ifndef __PK_TRANSACTION_OBJ_H
+#define __PK_TRANSACTION_OBJ_H
+
+#include <glib-object.h>
+#include <packagekit-glib/pk-enum.h>
+
+G_BEGIN_DECLS
+
+/**
+ * PkTransactionObj:
+ *
+ * Cached object to represent details about the transaction.
+ **/
+typedef struct
+{
+	gchar				*tid;
+	gchar				*timespec;
+	gboolean			 succeeded;
+	PkRoleEnum			 role;
+	guint				 duration;
+	gchar				*data;
+} PkTransactionObj;
+
+PkTransactionObj	*pk_transaction_obj_new		(void);
+PkTransactionObj	*pk_transaction_obj_copy		(const PkTransactionObj *obj);
+PkTransactionObj	*pk_transaction_obj_new_from_data	(const gchar		*tid,
+								 const gchar		*timespec,
+								 gboolean		 succeeded,
+								 PkRoleEnum		 role,
+								 guint			 duration,
+								 const gchar		*data);
+gboolean		 pk_transaction_obj_free		(PkTransactionObj	*obj);
+
+G_END_DECLS
+
+#endif /* __PK_TRANSACTION_OBJ_H */
commit d9f0e7e02d88e2f32f5c881d9094216fa29ea2a4
Merge: 5b0c579... 2b191b1...
Author: Richard Hughes <richard at hughsie.com>
Date:   Thu Oct 16 17:34:19 2008 +0100

    Merge branch 'master' into pk-obj-list

commit 5b0c579daefa34539bd5ac2f1a538db0d0104817
Author: Richard Hughes <richard at hughsie.com>
Date:   Thu Oct 16 17:21:06 2008 +0100

    trivial: return a PkObjList not a raw array from pk_client_get_cached_objects

diff --git a/lib/packagekit-glib/pk-client.c b/lib/packagekit-glib/pk-client.c
index f0b7eee..97b3adc 100644
--- a/lib/packagekit-glib/pk-client.c
+++ b/lib/packagekit-glib/pk-client.c
@@ -489,15 +489,13 @@ pk_client_get_package_list (PkClient *client)
  *
  * Return value: The #GPtrArray of cached objects or %NULL if invalid
  **/
-const GPtrArray	*
+PkObjList *
 pk_client_get_cached_objects (PkClient *client)
 {
-	const GPtrArray *array;
 	g_return_val_if_fail (PK_IS_CLIENT (client), NULL);
 	if (!client->priv->use_buffer)
 		return NULL;
-	array = pk_obj_list_get_array (client->priv->cached_data);
-	return array;
+	return g_object_ref (client->priv->cached_data);
 }
 
 /**
diff --git a/lib/packagekit-glib/pk-client.h b/lib/packagekit-glib/pk-client.h
index 6e439e2..7fc275f 100644
--- a/lib/packagekit-glib/pk-client.h
+++ b/lib/packagekit-glib/pk-client.h
@@ -350,7 +350,7 @@ gboolean	 pk_client_repo_set_data		(PkClient	*client,
 /* cached stuff */
 PkPackageList	*pk_client_get_package_list		(PkClient	*client);
 PkRestartEnum	 pk_client_get_require_restart		(PkClient	*client);
-const GPtrArray	*pk_client_get_cached_objects		(PkClient	*client);
+PkObjList	*pk_client_get_cached_objects		(PkClient	*client);
 
 /* not job specific */
 gboolean	 pk_client_reset			(PkClient	*client,
commit e2fbdcc65b6c26ae8e0f4c675508cbd101ea409c
Author: Richard Hughes <richard at hughsie.com>
Date:   Thu Oct 16 17:10:22 2008 +0100

    trivial: don't just proxy functions in PkPackageList, use the ones from PkObjList directly

diff --git a/client/pk-console.c b/client/pk-console.c
index 2b10fb5..d03ecb6 100644
--- a/client/pk-console.c
+++ b/client/pk-console.c
@@ -715,7 +715,7 @@ pk_console_remove_packages (PkClient *client, gchar **packages, GError **error)
 
 	/* see how many packages there are */
 	list_single = pk_client_get_package_list (client_task);
-	pk_package_list_add_list (list, list_single);
+	pk_obj_list_add_list (PK_OBJ_LIST(list), PK_OBJ_LIST(list_single));
 	g_object_unref (list_single);
 
 	/* one of the get-requires failed */
diff --git a/client/pk-generate-pack.c b/client/pk-generate-pack.c
index fb749b4..be222ab 100644
--- a/client/pk-generate-pack.c
+++ b/client/pk-generate-pack.c
@@ -225,7 +225,7 @@ main (int argc, char *argv[])
 
 	/* get the exclude list */
 	list = pk_package_list_new ();
-	ret = pk_package_list_add_file (list, package_list);
+	ret = pk_obj_list_from_file (PK_OBJ_LIST(list), package_list);
 	if (!ret) {
 		/* TRANSLATORS: This is when the list of packages from the remote computer cannot be opened */
 		g_print ("%s: '%s'\n", _("Failed to open package list."), package_list);
diff --git a/lib/packagekit-glib/pk-catalog.c b/lib/packagekit-glib/pk-catalog.c
index 34a4a5a..2cac9e1 100644
--- a/lib/packagekit-glib/pk-catalog.c
+++ b/lib/packagekit-glib/pk-catalog.c
@@ -198,7 +198,7 @@ pk_catalog_process_type (PkCatalog *catalog)
 
 		/* add to list any results */
 		list = pk_client_get_package_list (catalog->priv->client);
-		pk_package_list_add_list (catalog->priv->list, list);
+		pk_obj_list_add_list (PK_OBJ_LIST(catalog->priv->list), PK_OBJ_LIST(list));
 		g_object_unref (list);
 	}
 
diff --git a/lib/packagekit-glib/pk-client.c b/lib/packagekit-glib/pk-client.c
index 41409bb..f0b7eee 100644
--- a/lib/packagekit-glib/pk-client.c
+++ b/lib/packagekit-glib/pk-client.c
@@ -612,7 +612,7 @@ pk_client_package_cb (DBusGProxy   *proxy,
 
 	/* cache */
 	if (client->priv->use_buffer || client->priv->synchronous)
-		pk_package_list_add_obj (client->priv->package_list, obj);
+		pk_obj_list_add (PK_OBJ_LIST(client->priv->package_list), obj);
 	pk_package_id_free (id);
 	pk_package_obj_free (obj);
 }
@@ -3353,7 +3353,7 @@ pk_client_requeue (PkClient *client, GError **error)
 	client->priv->is_finished = FALSE;
 
 	/* clear package list */
-	pk_package_list_clear (client->priv->package_list);
+	pk_obj_list_clear (PK_OBJ_LIST(client->priv->package_list));
 	pk_obj_list_clear (client->priv->cached_data);
 
 	/* do the correct action with the cached parameters */
@@ -3974,7 +3974,7 @@ pk_client_reset (PkClient *client, GError **error)
 	client->priv->role = PK_ROLE_ENUM_UNKNOWN;
 	client->priv->is_finished = FALSE;
 
-	pk_package_list_clear (client->priv->package_list);
+	pk_obj_list_clear (PK_OBJ_LIST (client->priv->package_list));
 	pk_obj_list_clear (client->priv->cached_data);
 	return TRUE;
 }
diff --git a/lib/packagekit-glib/pk-package-list.c b/lib/packagekit-glib/pk-package-list.c
index fa80fa1..4806d75 100644
--- a/lib/packagekit-glib/pk-package-list.c
+++ b/lib/packagekit-glib/pk-package-list.c
@@ -100,44 +100,6 @@ pk_package_list_add (PkPackageList *plist, PkInfoEnum info, const PkPackageId *i
 }
 
 /**
- * pk_package_list_add_obj:
- *
- * Makes a deep copy, and adds to the array
- **/
-gboolean
-pk_package_list_add_obj (PkPackageList *plist, const PkPackageObj *obj)
-{
-	g_return_val_if_fail (PK_IS_PACKAGE_LIST (plist), FALSE);
-	g_return_val_if_fail (obj != NULL, FALSE);
-	pk_obj_list_add (PK_OBJ_LIST(plist), obj);
-	return TRUE;
-}
-
-/**
- * pk_package_list_add_list:
- *
- * Makes a deep copy of the list
- **/
-gboolean
-pk_package_list_add_list (PkPackageList *plist, PkPackageList *list)
-{
-	g_return_val_if_fail (PK_IS_PACKAGE_LIST (plist), FALSE);
-	g_return_val_if_fail (PK_IS_PACKAGE_LIST (list), FALSE);
-	pk_obj_list_add_list (PK_OBJ_LIST(plist), PK_OBJ_LIST(list));
-	return TRUE;
-}
-
-/**
- * pk_package_list_to_string:
- **/
-gchar *
-pk_package_list_to_string (const PkPackageList *plist)
-{
-	g_return_val_if_fail (PK_IS_PACKAGE_LIST (plist), NULL);
-	return pk_obj_list_to_string (PK_OBJ_LIST(plist));
-}
-
-/**
  * pk_package_list_to_strv:
  **/
 gchar **
@@ -274,17 +236,6 @@ pk_package_list_get_obj (const PkPackageList *plist, guint item)
 }
 
 /**
- * pk_package_list_clear:
- **/
-gboolean
-pk_package_list_clear (PkPackageList *plist)
-{
-	g_return_val_if_fail (PK_IS_PACKAGE_LIST (plist), FALSE);
-	pk_obj_list_clear (PK_OBJ_LIST(plist));
-	return TRUE;
-}
-
-/**
  * pk_package_list_contains:
  **/
 gboolean
@@ -343,46 +294,6 @@ pk_package_list_remove (PkPackageList *plist, const gchar *package_id)
 }
 
 /**
- * pk_package_list_remove_obj:
- **/
-gboolean
-pk_package_list_remove_obj (PkPackageList *plist, const PkPackageObj *obj)
-{
-	g_return_val_if_fail (PK_IS_PACKAGE_LIST (plist), FALSE);
-	return pk_obj_list_remove (PK_OBJ_LIST(plist), obj);
-}
-
-/**
- * pk_package_list_contains_obj:
- **/
-gboolean
-pk_package_list_contains_obj (const PkPackageList *plist, const PkPackageObj *obj)
-{
-	g_return_val_if_fail (PK_IS_PACKAGE_LIST (plist), FALSE);
-	return pk_obj_list_exists (PK_OBJ_LIST(plist), obj);
-}
-
-/**
- * pk_package_list_to_file:
- **/
-gboolean
-pk_package_list_to_file (const PkPackageList *plist, const gchar *filename)
-{
-	g_return_val_if_fail (PK_IS_PACKAGE_LIST (plist), FALSE);
-	return pk_obj_list_to_file (PK_OBJ_LIST(plist), filename);
-}
-
-/**
- * pk_package_list_add_file:
- **/
-gboolean
-pk_package_list_add_file (PkPackageList *plist, const gchar *filename)
-{
-	g_return_val_if_fail (PK_IS_PACKAGE_LIST (plist), FALSE);
-	return pk_obj_list_from_file (PK_OBJ_LIST(plist), filename);
-}
-
-/**
  * pk_package_list_class_init:
  * @klass: The PkPackageListClass
  **/
diff --git a/lib/packagekit-glib/pk-package-list.h b/lib/packagekit-glib/pk-package-list.h
index 3a827f2..e351d1d 100644
--- a/lib/packagekit-glib/pk-package-list.h
+++ b/lib/packagekit-glib/pk-package-list.h
@@ -61,20 +61,10 @@ gboolean		 pk_package_list_add		(PkPackageList		*plist,
 							 PkInfoEnum		 info,
 							 const PkPackageId	*ident,
 							 const gchar		*summary);
-gboolean		 pk_package_list_add_obj	(PkPackageList		*plist,
-							 const PkPackageObj	*obj);
-gboolean		 pk_package_list_add_list	(PkPackageList		*plist,
-							 PkPackageList		*list);
 gboolean		 pk_package_list_contains	(const PkPackageList	*plist,
 							 const gchar		*package_id);
 gboolean		 pk_package_list_remove		(PkPackageList		*plist,
 							 const gchar		*package_id);
-gboolean		 pk_package_list_remove_obj	(PkPackageList		*plist,
-							 const PkPackageObj	*obj);
-gboolean		 pk_package_list_contains_obj	(const PkPackageList	*plist,
-							 const PkPackageObj	*obj);
-gchar			*pk_package_list_to_string	(const PkPackageList	*plist)
-							 G_GNUC_WARN_UNUSED_RESULT;
 gchar			**pk_package_list_to_strv	(const PkPackageList	*plist)
 							 G_GNUC_WARN_UNUSED_RESULT;
 guint			 pk_package_list_get_size	(const PkPackageList	*plist);
@@ -83,11 +73,6 @@ gboolean		 pk_package_list_sort_info	(PkPackageList		*plist);
 gboolean		 pk_package_list_sort_summary	(PkPackageList		*plist);
 const PkPackageObj	*pk_package_list_get_obj	(const PkPackageList	*plist,
 							 guint			 item);
-gboolean		 pk_package_list_clear		(PkPackageList		*plist);
-gboolean		 pk_package_list_to_file	(const PkPackageList	*plist,
-							 const gchar		*filename);
-gboolean		 pk_package_list_add_file	(PkPackageList		*plist,
-							 const gchar		*filename);
 gboolean		 pk_package_list_set_fuzzy_arch	(PkPackageList		*plist,
 							 gboolean		 fuzzy_arch);
 
diff --git a/lib/packagekit-glib/pk-service-pack.c b/lib/packagekit-glib/pk-service-pack.c
index 0c11200..85e284a 100644
--- a/lib/packagekit-glib/pk-service-pack.c
+++ b/lib/packagekit-glib/pk-service-pack.c
@@ -34,6 +34,7 @@
 #include <glib.h>
 #include <glib/gstdio.h>
 
+#include <packagekit-glib/pk-obj-list.h>
 #include <packagekit-glib/pk-common.h>
 #include <packagekit-glib/pk-client.h>
 #include <packagekit-glib/pk-package-ids.h>
@@ -468,7 +469,7 @@ pk_service_pack_exclude_packages (PkServicePack *pack, PkPackageList *list)
 	for (i=0; i<length; i++) {
 		obj = pk_package_list_get_obj (pack->priv->exclude_list, i);
 		/* will just ignore if the obj is not there */
-		found = pk_package_list_remove_obj (list, obj);
+		found = pk_obj_list_remove (PK_OBJ_LIST(list), obj);
 		if (found)
 			egg_debug ("removed %s", obj->id->name);
 	}
diff --git a/src/pk-post-trans.c b/src/pk-post-trans.c
index 175ea07..46ac6e1 100644
--- a/src/pk-post-trans.c
+++ b/src/pk-post-trans.c
@@ -76,7 +76,7 @@ pk_post_trans_finished_cb (PkBackend *backend, PkExitEnum exit, PkPostTrans *pos
 static void
 pk_post_trans_package_cb (PkBackend *backend, const PkPackageObj *obj, PkPostTrans *post)
 {
-	pk_package_list_add_obj (post->priv->list, obj);
+	pk_obj_list_add (PK_OBJ_LIST(post->priv->list), obj);
 }
 
 /**
@@ -199,7 +199,7 @@ pk_post_trans_import_desktop_files_get_package (PkPostTrans *post, const gchar *
 	PkStore *store;
 
 	/* use PK to find the correct package */
-	pk_package_list_clear (post->priv->list);
+	pk_obj_list_clear (PK_OBJ_LIST(post->priv->list));
 	pk_backend_reset (post->priv->backend);
 	store = pk_backend_get_store (post->priv->backend);
 	pk_store_set_uint (store, "filters", pk_bitfield_value (PK_FILTER_ENUM_INSTALLED));
@@ -454,7 +454,7 @@ pk_post_trans_update_package_list (PkPostTrans *post)
 	egg_debug ("updating package lists");
 
 	/* clear old list */
-	pk_package_list_clear (post->priv->list);
+	pk_obj_list_clear (PK_OBJ_LIST(post->priv->list));
 
 	/* update UI */
 	pk_backend_set_status (post->priv->backend, PK_STATUS_ENUM_GENERATE_PACKAGE_LIST);
@@ -472,7 +472,7 @@ pk_post_trans_update_package_list (PkPostTrans *post)
 	pk_backend_set_percentage (post->priv->backend, 90);
 
 	/* convert to a file */
-	ret = pk_package_list_to_file (post->priv->list, PK_SYSTEM_PACKAGE_LIST_FILENAME);
+	ret = pk_obj_list_to_file (PK_OBJ_LIST(post->priv->list), PK_SYSTEM_PACKAGE_LIST_FILENAME);
 	if (!ret)
 		egg_warning ("failed to save to file");
 
diff --git a/src/pk-transaction.c b/src/pk-transaction.c
index 7ad25f4..bc3d376 100644
--- a/src/pk-transaction.c
+++ b/src/pk-transaction.c
@@ -588,7 +588,7 @@ pk_transaction_finished_cb (PkBackend *backend, PkExitEnum exit, PkTransaction *
 			for (i=0; i<length; i++) {
 				obj = pk_package_list_get_obj (transaction->priv->package_list, i);
 				if (obj->info == PK_INFO_ENUM_UPDATING)
-					pk_package_list_add_obj (list, obj);
+					pk_obj_list_add (PK_OBJ_LIST(list), obj);
 			}
 
 			/* process file lists on these packages */
@@ -653,7 +653,7 @@ pk_transaction_finished_cb (PkBackend *backend, PkExitEnum exit, PkTransaction *
 	    transaction->priv->role == PK_ROLE_ENUM_UPDATE_PACKAGES ||
 	    transaction->priv->role == PK_ROLE_ENUM_INSTALL_PACKAGES ||
 	    transaction->priv->role == PK_ROLE_ENUM_REMOVE_PACKAGES) {
-		packages = pk_package_list_to_string (transaction->priv->package_list);
+		packages = pk_obj_list_to_string (PK_OBJ_LIST(transaction->priv->package_list));
 		if (!egg_strzero (packages))
 			pk_transaction_db_set_data (transaction->priv->transaction_db, transaction->priv->tid, packages);
 		g_free (packages);
@@ -759,7 +759,7 @@ pk_transaction_package_cb (PkBackend *backend, const PkPackageObj *obj, PkTransa
 
 	/* add to package cache even if we already got a result */
 	info_text = pk_info_enum_to_text (obj->info);
-	pk_package_list_add_obj (transaction->priv->package_list, obj);
+	pk_obj_list_add (PK_OBJ_LIST(transaction->priv->package_list), obj);
 
 	/* emit */
 	g_free (transaction->priv->last_package_id);
commit 61cb5c05fcd334316ccd139b24f885af38cd8c35
Author: Richard Hughes <richard at hughsie.com>
Date:   Thu Oct 16 16:40:43 2008 +0100

    trivial: make PkPackageList a superclass of PkObjList

diff --git a/lib/packagekit-glib/pk-obj-list.c b/lib/packagekit-glib/pk-obj-list.c
index 0f4a8c0..e6b1b80 100644
--- a/lib/packagekit-glib/pk-obj-list.c
+++ b/lib/packagekit-glib/pk-obj-list.c
@@ -29,7 +29,7 @@
 
 #include "egg-debug.h"
 
-#define PK_OBJ_LIST_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), EGG_TYPE_OBJ_LIST, PkObjListPrivate))
+#define PK_OBJ_LIST_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), PK_TYPE_OBJ_LIST, PkObjListPrivate))
 
 struct PkObjListPrivate
 {
@@ -142,6 +142,19 @@ pk_obj_list_get_array (const PkObjList *list)
 }
 
 /**
+ * pk_obj_list_sort:
+ * @list: a valid #PkObjList instance
+ *
+ * Clears the package list
+ **/
+void
+pk_obj_list_sort (PkObjList *list, GCompareFunc sort_func)
+{
+	g_return_if_fail (PK_IS_OBJ_LIST (list));
+	g_ptr_array_sort (list->priv->array, sort_func);
+}
+
+/**
  * pk_obj_list_clear:
  * @list: a valid #PkObjList instance
  *
@@ -711,7 +724,7 @@ PkObjList *
 pk_obj_list_new (void)
 {
 	PkObjList *list;
-	list = g_object_new (EGG_TYPE_OBJ_LIST, NULL);
+	list = g_object_new (PK_TYPE_OBJ_LIST, NULL);
 	return PK_OBJ_LIST (list);
 }
 
diff --git a/lib/packagekit-glib/pk-obj-list.h b/lib/packagekit-glib/pk-obj-list.h
index 898be11..e7eea60 100644
--- a/lib/packagekit-glib/pk-obj-list.h
+++ b/lib/packagekit-glib/pk-obj-list.h
@@ -26,12 +26,12 @@
 
 G_BEGIN_DECLS
 
-#define EGG_TYPE_OBJ_LIST		(pk_obj_list_get_type ())
-#define PK_OBJ_LIST(o)			(G_TYPE_CHECK_INSTANCE_CAST ((o), EGG_TYPE_OBJ_LIST, PkObjList))
-#define PK_OBJ_LIST_CLASS(k)		(G_TYPE_CHECK_CLASS_CAST((k), EGG_TYPE_OBJ_LIST, PkObjListClass))
-#define PK_IS_OBJ_LIST(o)		(G_TYPE_CHECK_INSTANCE_TYPE ((o), EGG_TYPE_OBJ_LIST))
-#define PK_IS_OBJ_LIST_CLASS(k)	(G_TYPE_CHECK_CLASS_TYPE ((k), EGG_TYPE_OBJ_LIST))
-#define PK_OBJ_LIST_GET_CLASS(o)	(G_TYPE_INSTANCE_GET_CLASS ((o), EGG_TYPE_OBJ_LIST, PkObjListClass))
+#define PK_TYPE_OBJ_LIST		(pk_obj_list_get_type ())
+#define PK_OBJ_LIST(o)			(G_TYPE_CHECK_INSTANCE_CAST ((o), PK_TYPE_OBJ_LIST, PkObjList))
+#define PK_OBJ_LIST_CLASS(k)		(G_TYPE_CHECK_CLASS_CAST((k), PK_TYPE_OBJ_LIST, PkObjListClass))
+#define PK_IS_OBJ_LIST(o)		(G_TYPE_CHECK_INSTANCE_TYPE ((o), PK_TYPE_OBJ_LIST))
+#define PK_IS_OBJ_LIST_CLASS(k)	(G_TYPE_CHECK_CLASS_TYPE ((k), PK_TYPE_OBJ_LIST))
+#define PK_OBJ_LIST_GET_CLASS(o)	(G_TYPE_INSTANCE_GET_CLASS ((o), PK_TYPE_OBJ_LIST, PkObjListClass))
 
 typedef struct PkObjListPrivate PkObjListPrivate;
 
@@ -80,6 +80,8 @@ gboolean	 pk_obj_list_from_file		(PkObjList		*list,
 						 const gchar		*filename);
 void		 pk_obj_list_add		(PkObjList		*list,
 						 gconstpointer		 data);
+void		 pk_obj_list_sort		(PkObjList		*list,
+						 GCompareFunc		 sort_func);
 void		 pk_obj_list_add_list		(PkObjList		*list,
 						 const PkObjList	*data);
 void		 pk_obj_list_add_array		(PkObjList		*list,
diff --git a/lib/packagekit-glib/pk-package-list.c b/lib/packagekit-glib/pk-package-list.c
index b993585..fa80fa1 100644
--- a/lib/packagekit-glib/pk-package-list.c
+++ b/lib/packagekit-glib/pk-package-list.c
@@ -45,6 +45,7 @@
 #include "egg-debug.h"
 #include "egg-string.h"
 
+#include <packagekit-glib/pk-obj-list.h>
 #include <packagekit-glib/pk-common.h>
 #include <packagekit-glib/pk-package-id.h>
 #include <packagekit-glib/pk-package-obj.h>
@@ -67,7 +68,7 @@ struct _PkPackageListPrivate
 	gboolean		 fuzzy_arch;
 };
 
-G_DEFINE_TYPE (PkPackageList, pk_package_list, G_TYPE_OBJECT)
+G_DEFINE_TYPE (PkPackageList, pk_package_list, PK_TYPE_OBJ_LIST)
 
 /**
  * pk_package_list_set_fuzzy_arch:
@@ -92,7 +93,8 @@ pk_package_list_add (PkPackageList *plist, PkInfoEnum info, const PkPackageId *i
 	g_return_val_if_fail (ident != NULL, FALSE);
 
 	obj = pk_package_obj_new (info, ident, summary);
-	g_ptr_array_add (plist->priv->array, obj);
+	pk_obj_list_add (PK_OBJ_LIST(plist), obj);
+	pk_package_obj_free (obj);
 
 	return TRUE;
 }
@@ -105,14 +107,9 @@ pk_package_list_add (PkPackageList *plist, PkInfoEnum info, const PkPackageId *i
 gboolean
 pk_package_list_add_obj (PkPackageList *plist, const PkPackageObj *obj)
 {
-	PkPackageObj *obj_new;
-
 	g_return_val_if_fail (PK_IS_PACKAGE_LIST (plist), FALSE);
 	g_return_val_if_fail (obj != NULL, FALSE);
-
-	obj_new = pk_package_obj_copy (obj);
-	g_ptr_array_add (plist->priv->array, obj_new);
-
+	pk_obj_list_add (PK_OBJ_LIST(plist), obj);
 	return TRUE;
 }
 
@@ -124,19 +121,9 @@ pk_package_list_add_obj (PkPackageList *plist, const PkPackageObj *obj)
 gboolean
 pk_package_list_add_list (PkPackageList *plist, PkPackageList *list)
 {
-	guint i;
-	guint len;
-	const PkPackageObj *obj;
-
 	g_return_val_if_fail (PK_IS_PACKAGE_LIST (plist), FALSE);
 	g_return_val_if_fail (PK_IS_PACKAGE_LIST (list), FALSE);
-
-	/* add list to plist */
-	len = pk_package_list_get_size (list);
-	for (i=0; i<len; i++) {
-		obj = pk_package_list_get_obj (list, i);
-		pk_package_list_add_obj (plist, obj);
-	}
+	pk_obj_list_add_list (PK_OBJ_LIST(plist), PK_OBJ_LIST(list));
 	return TRUE;
 }
 
@@ -146,31 +133,8 @@ pk_package_list_add_list (PkPackageList *plist, PkPackageList *list)
 gchar *
 pk_package_list_to_string (const PkPackageList *plist)
 {
-	PkPackageObj *obj;
-	guint i;
-	guint length;
-	const gchar *info_text;
-	GString *package_cache;
-	gchar *package_id;
-
 	g_return_val_if_fail (PK_IS_PACKAGE_LIST (plist), NULL);
-
-	package_cache = g_string_new ("");
-	length = plist->priv->array->len;
-	for (i=0; i<length; i++) {
-		obj = g_ptr_array_index (plist->priv->array, i);
-		info_text = pk_info_enum_to_text (obj->info);
-		package_id = pk_package_id_to_string (obj->id);
-		g_string_append_printf (package_cache, "%s\t%s\t%s\n", info_text, package_id, obj->summary);
-		g_free (package_id);
-	}
-
-	/* remove trailing newline */
-	if (package_cache->len != 0) {
-		g_string_set_size (package_cache, package_cache->len-1);
-	}
-
-	return g_string_free (package_cache, FALSE);
+	return pk_obj_list_to_string (PK_OBJ_LIST(plist));
 }
 
 /**
@@ -179,7 +143,7 @@ pk_package_list_to_string (const PkPackageList *plist)
 gchar **
 pk_package_list_to_strv (const PkPackageList *plist)
 {
-	PkPackageObj *obj;
+	const PkPackageObj *obj;
 	GPtrArray *array;
 	gchar **package_ids;
 	gchar *package_id;
@@ -187,9 +151,9 @@ pk_package_list_to_strv (const PkPackageList *plist)
 	guint i;
 
 	array = g_ptr_array_new ();
-	length = plist->priv->array->len;
+	length = PK_OBJ_LIST(plist)->len;
 	for (i=0; i<length; i++) {
-		obj = g_ptr_array_index (plist->priv->array, i);
+		obj = pk_obj_list_index (PK_OBJ_LIST(plist), i);
 		package_id = pk_package_id_to_string (obj->id);
 		g_ptr_array_add (array, g_strdup (package_id));
 		g_free (package_id);
@@ -210,7 +174,7 @@ guint
 pk_package_list_get_size (const PkPackageList *plist)
 {
 	g_return_val_if_fail (PK_IS_PACKAGE_LIST (plist), 0);
-	return plist->priv->array->len;
+	return PK_OBJ_LIST(plist)->len;
 }
 
 /**
@@ -234,13 +198,12 @@ pk_package_list_sort_compare_package_id_func (PkPackageObj **a, PkPackageObj **b
 static gint
 pk_package_list_sort_compare_summary_func (PkPackageObj **a, PkPackageObj **b)
 {
-	if ((*a)->summary == NULL && (*b)->summary == NULL) {
+	if ((*a)->summary == NULL && (*b)->summary == NULL)
 		return 0;
-	} else if ((*a)->summary == NULL) {
+	else if ((*a)->summary == NULL)
 		return -1;
-	} else if ((*b)->summary == NULL) {
+	else if ((*b)->summary == NULL)
 		return 1;
-	}
 	return strcmp ((*a)->summary, (*b)->summary);
 }
 
@@ -250,11 +213,10 @@ pk_package_list_sort_compare_summary_func (PkPackageObj **a, PkPackageObj **b)
 static gint
 pk_package_list_sort_compare_info_func (PkPackageObj **a, PkPackageObj **b)
 {
-	if ((*a)->info == (*b)->info) {
+	if ((*a)->info == (*b)->info)
 		return 0;
-	} else if ((*a)->info > (*b)->info) {
+	else if ((*a)->info > (*b)->info)
 		return -1;
-	}
 	return 1;
 }
 
@@ -267,7 +229,7 @@ gboolean
 pk_package_list_sort (PkPackageList *plist)
 {
 	g_return_val_if_fail (PK_IS_PACKAGE_LIST (plist), FALSE);
-	g_ptr_array_sort (plist->priv->array, (GCompareFunc) pk_package_list_sort_compare_package_id_func);
+	pk_obj_list_sort (PK_OBJ_LIST(plist), (GCompareFunc) pk_package_list_sort_compare_package_id_func);
 	return TRUE;
 }
 
@@ -280,7 +242,7 @@ gboolean
 pk_package_list_sort_summary (PkPackageList *plist)
 {
 	g_return_val_if_fail (PK_IS_PACKAGE_LIST (plist), FALSE);
-	g_ptr_array_sort (plist->priv->array, (GCompareFunc) pk_package_list_sort_compare_summary_func);
+	pk_obj_list_sort (PK_OBJ_LIST(plist), (GCompareFunc) pk_package_list_sort_compare_summary_func);
 	return TRUE;
 }
 
@@ -293,7 +255,7 @@ gboolean
 pk_package_list_sort_info (PkPackageList *plist)
 {
 	g_return_val_if_fail (PK_IS_PACKAGE_LIST (plist), FALSE);
-	g_ptr_array_sort (plist->priv->array, (GCompareFunc) pk_package_list_sort_compare_info_func);
+	pk_obj_list_sort (PK_OBJ_LIST(plist), (GCompareFunc) pk_package_list_sort_compare_info_func);
 	return TRUE;
 }
 
@@ -304,11 +266,11 @@ const PkPackageObj *
 pk_package_list_get_obj (const PkPackageList *plist, guint item)
 {
 	g_return_val_if_fail (PK_IS_PACKAGE_LIST (plist), NULL);
-	if (item >= plist->priv->array->len) {
+	if (item >= PK_OBJ_LIST(plist)->len) {
 		egg_warning ("item too large!");
 		return NULL;
 	}
-	return g_ptr_array_index (plist->priv->array, item);
+	return pk_obj_list_index (PK_OBJ_LIST(plist), item);
 }
 
 /**
@@ -317,15 +279,8 @@ pk_package_list_get_obj (const PkPackageList *plist, guint item)
 gboolean
 pk_package_list_clear (PkPackageList *plist)
 {
-	PkPackageObj *obj;
-
 	g_return_val_if_fail (PK_IS_PACKAGE_LIST (plist), FALSE);
-
-	while (plist->priv->array->len > 0) {
-		obj = g_ptr_array_index (plist->priv->array, 0);
-		pk_package_obj_free (obj);
-		g_ptr_array_remove_index_fast (plist->priv->array, 0);
-	}
+	pk_obj_list_clear (PK_OBJ_LIST(plist));
 	return TRUE;
 }
 
@@ -335,7 +290,7 @@ pk_package_list_clear (PkPackageList *plist)
 gboolean
 pk_package_list_contains (const PkPackageList *plist, const gchar *package_id)
 {
-	PkPackageObj *obj;
+	const PkPackageObj *obj;
 	guint i;
 	guint length;
 	gboolean ret = FALSE;
@@ -344,9 +299,9 @@ pk_package_list_contains (const PkPackageList *plist, const gchar *package_id)
 	g_return_val_if_fail (PK_IS_PACKAGE_LIST (plist), FALSE);
 	g_return_val_if_fail (package_id != NULL, FALSE);
 
-	length = plist->priv->array->len;
+	length = PK_OBJ_LIST(plist)->len;
 	for (i=0; i<length; i++) {
-		obj = g_ptr_array_index (plist->priv->array, i);
+		obj = pk_obj_list_index (PK_OBJ_LIST(plist), i);
 		package_id_temp = pk_package_id_to_string (obj->id);
 		ret = pk_package_id_equal_strings (package_id_temp, package_id);
 		g_free (package_id_temp);
@@ -363,7 +318,7 @@ pk_package_list_contains (const PkPackageList *plist, const gchar *package_id)
 gboolean
 pk_package_list_remove (PkPackageList *plist, const gchar *package_id)
 {
-	PkPackageObj *obj;
+	const PkPackageObj *obj;
 	guint i;
 	guint length;
 	gboolean ret = FALSE;
@@ -372,15 +327,14 @@ pk_package_list_remove (PkPackageList *plist, const gchar *package_id)
 	g_return_val_if_fail (PK_IS_PACKAGE_LIST (plist), FALSE);
 	g_return_val_if_fail (package_id != NULL, FALSE);
 
-	length = plist->priv->array->len;
+	length = PK_OBJ_LIST(plist)->len;
 	for (i=0; i<length; i++) {
-		obj = g_ptr_array_index (plist->priv->array, i);
+		obj = pk_obj_list_index (PK_OBJ_LIST(plist), i);
 		package_id_temp = pk_package_id_to_string (obj->id);
 		ret = pk_package_id_equal_strings (package_id_temp, package_id);
 		g_free (package_id_temp);
 		if (ret) {
-			pk_package_obj_free (obj);
-			g_ptr_array_remove_index (plist->priv->array, i);
+			pk_obj_list_remove (PK_OBJ_LIST(plist), obj);
 			ret = TRUE;
 			break;
 		}
@@ -394,29 +348,8 @@ pk_package_list_remove (PkPackageList *plist, const gchar *package_id)
 gboolean
 pk_package_list_remove_obj (PkPackageList *plist, const PkPackageObj *obj)
 {
-	PkPackageObj *obj_temp;
-	guint i;
-	guint length;
-	gboolean ret = FALSE;
-
 	g_return_val_if_fail (PK_IS_PACKAGE_LIST (plist), FALSE);
-	g_return_val_if_fail (obj != NULL, FALSE);
-
-	length = plist->priv->array->len;
-	for (i=0; i<length; i++) {
-		obj_temp = g_ptr_array_index (plist->priv->array, i);
-		if (plist->priv->fuzzy_arch)
-			ret = pk_package_obj_equal_fuzzy_arch (obj_temp, obj);
-		else
-			ret = pk_package_obj_equal (obj_temp, obj);
-		if (ret) {
-			pk_package_obj_free (obj_temp);
-			g_ptr_array_remove_index (plist->priv->array, i);
-			ret = TRUE;
-			break;
-		}
-	}
-	return ret;
+	return pk_obj_list_remove (PK_OBJ_LIST(plist), obj);
 }
 
 /**
@@ -425,25 +358,8 @@ pk_package_list_remove_obj (PkPackageList *plist, const PkPackageObj *obj)
 gboolean
 pk_package_list_contains_obj (const PkPackageList *plist, const PkPackageObj *obj)
 {
-	PkPackageObj *obj_temp;
-	guint i;
-	guint length;
-	gboolean ret = FALSE;
-
 	g_return_val_if_fail (PK_IS_PACKAGE_LIST (plist), FALSE);
-	g_return_val_if_fail (obj != NULL, FALSE);
-
-	length = plist->priv->array->len;
-	for (i=0; i<length; i++) {
-		obj_temp = g_ptr_array_index (plist->priv->array, i);
-		if (plist->priv->fuzzy_arch)
-			ret = pk_package_obj_equal_fuzzy_arch (obj_temp, obj);
-		else
-			ret = pk_package_obj_equal (obj_temp, obj);
-		if (ret)
-			break;
-	}
-	return ret;
+	return pk_obj_list_exists (PK_OBJ_LIST(plist), obj);
 }
 
 /**
@@ -452,36 +368,8 @@ pk_package_list_contains_obj (const PkPackageList *plist, const PkPackageObj *ob
 gboolean
 pk_package_list_to_file (const PkPackageList *plist, const gchar *filename)
 {
-	PkPackageObj *obj;
-	guint i;
-	guint length;
-	gboolean ret;
-	gchar *text;
-	GString *buffer;
-	GError *error = NULL;
-
 	g_return_val_if_fail (PK_IS_PACKAGE_LIST (plist), FALSE);
-	g_return_val_if_fail (filename != NULL, FALSE);
-
-	/* add each object */
-	buffer = g_string_new ("");
-	length = plist->priv->array->len;
-	for (i=0; i<length; i++) {
-		obj = g_ptr_array_index (plist->priv->array, i);
-		text = pk_package_obj_to_string (obj);
-		g_string_append_printf (buffer, "%s\n", text);
-		g_free (text);
-	}
-
-	/* write to disk */
-	text = g_string_free (buffer, FALSE);
-	ret = g_file_set_contents (filename, text, -1, &error);
-	if (!ret) {
-		egg_warning ("Failed to write to disk: %s", error->message);
-		g_error_free (error);
-	}
-	g_free (text);
-	return ret;
+	return pk_obj_list_to_file (PK_OBJ_LIST(plist), filename);
 }
 
 /**
@@ -490,41 +378,8 @@ pk_package_list_to_file (const PkPackageList *plist, const gchar *filename)
 gboolean
 pk_package_list_add_file (PkPackageList *plist, const gchar *filename)
 {
-	PkPackageObj *obj;
-	guint i;
-	guint length;
-	gboolean ret;
-	gchar *text = NULL;
-	gchar **split;
-	GError *error = NULL;
-
 	g_return_val_if_fail (PK_IS_PACKAGE_LIST (plist), FALSE);
-	g_return_val_if_fail (filename != NULL, FALSE);
-
-	ret = g_file_get_contents (filename, &text, NULL, &error);
-	if (!ret) {
-		egg_warning ("Failed to read from disk: %s", error->message);
-		g_error_free (error);
-		goto out;
-	}
-
-	/* split into lines */
-	split = g_strsplit (text, "\n", 0);
-	length = g_strv_length (split);
-	for (i=0; i<length; i++) {
-		/* we get trailing whitespace sometimes */
-		if (!egg_strzero (split[i])) {
-			obj = pk_package_obj_from_string (split[i]);
-			if (obj != NULL) {
-				pk_package_list_add_obj (plist, obj);
-			}
-			pk_package_obj_free (obj);
-		}
-	}
-	g_strfreev (split);
-	g_free (text);
-out:
-	return ret;
+	return pk_obj_list_from_file (PK_OBJ_LIST(plist), filename);
 }
 
 /**
@@ -549,8 +404,12 @@ pk_package_list_init (PkPackageList *plist)
 	g_return_if_fail (PK_IS_PACKAGE_LIST (plist));
 
 	plist->priv = PK_PACKAGE_LIST_GET_PRIVATE (plist);
-	plist->priv->array = g_ptr_array_new ();
 	plist->priv->fuzzy_arch = FALSE;
+
+	pk_obj_list_set_copy (PK_OBJ_LIST(plist), (PkObjListCopyFunc) pk_package_obj_copy);
+	pk_obj_list_set_free (PK_OBJ_LIST(plist), (PkObjListFreeFunc) pk_package_obj_free);
+	pk_obj_list_set_to_string (PK_OBJ_LIST(plist), (PkObjListToStringFunc)  pk_package_obj_to_string);
+	pk_obj_list_set_from_string (PK_OBJ_LIST(plist), (PkObjListFromStringFunc)  pk_package_obj_from_string);
 }
 
 /**
@@ -566,10 +425,6 @@ pk_package_list_finalize (GObject *object)
 	plist = PK_PACKAGE_LIST (object);
 	g_return_if_fail (plist->priv != NULL);
 
-	/* removed any cached packages */
-	g_ptr_array_foreach (plist->priv->array, (GFunc) pk_package_obj_free, NULL);
-	g_ptr_array_free (plist->priv->array, TRUE);
-
 	G_OBJECT_CLASS (pk_package_list_parent_class)->finalize (object);
 }
 
diff --git a/lib/packagekit-glib/pk-package-list.h b/lib/packagekit-glib/pk-package-list.h
index afa64ec..3a827f2 100644
--- a/lib/packagekit-glib/pk-package-list.h
+++ b/lib/packagekit-glib/pk-package-list.h
@@ -29,6 +29,7 @@
 #include <glib-object.h>
 #include <packagekit-glib/pk-enum.h>
 #include <packagekit-glib/pk-package-obj.h>
+#include <packagekit-glib/pk-obj-list.h>
 
 G_BEGIN_DECLS
 
@@ -45,13 +46,13 @@ typedef struct _PkPackageListClass	PkPackageListClass;
 
 struct _PkPackageList
 {
-	 GObject		 parent;
+	 PkObjList		 parent;
 	 PkPackageListPrivate	*priv;
 };
 
 struct _PkPackageListClass
 {
-	GObjectClass	parent_class;
+	PkObjListClass		parent_class;
 };
 
 GType			 pk_package_list_get_type	(void) G_GNUC_CONST;
commit 2b191b1154382706f355c392f7fad75bef98232e
Author: Igor Pires Soares <igorsoares at gmail.com>
Date:   Thu Oct 16 15:06:43 2008 +0000

    Updated Brazilian Portuguese translation
    
    Transmitted-via: Transifex (translate.fedoraproject.org)

diff --git a/po/pt_BR.po b/po/pt_BR.po
index 7115644..4c812c1 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -8,8 +8,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PackageKit\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-10-15 18:11+0100\n"
-"PO-Revision-Date: 2008-10-09 11:46-0300\n"
+"POT-Creation-Date: 2008-10-16 13:13+0000\n"
+"PO-Revision-Date: 2008-10-16 12:06-0300\n"
 "Last-Translator: Igor Pires Soares <igor at projetofedora.org>\n"
 "Language-Team: Brazilian Portuguese <fedora-trans-pt_br at redhat.com>\n"
 "MIME-Version: 1.0\n"
@@ -22,49 +22,50 @@ msgstr ""
 #. TRANSLATORS: this is a header for the package that can be updated
 #: ../client/pk-console.c:273
 msgid "Details about the update:"
-msgstr ""
+msgstr "Detalhes sobre a atualização:"
 
 #: ../client/pk-console.c:466
 msgid "Please restart the computer to complete the update."
-msgstr ""
+msgstr "Por favor, reinicie o computador para completar a atualização."
 
 #: ../client/pk-console.c:468
 msgid "Please logout and login to complete the update."
-msgstr ""
+msgstr "Por favor, encerre a sessão e inicie-a novamente para completar a atualização."
 
 #: ../client/pk-console.c:470
 msgid "Please restart the application as it is being used."
-msgstr ""
+msgstr "Por favor, reinicie o aplicativo que está sendo usado."
 
 #. TRANSLATORS: The package name was not found in any software sources
 #: ../client/pk-console.c:555
 #, c-format
 msgid "The package '%s' could not be installed: %s"
-msgstr ""
+msgstr "O pacote \"%s\" não pôde ser instalado: %s"
 
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
 #: ../client/pk-console.c:609
 #, c-format
 msgid "This tool could not install the packages: %s"
-msgstr ""
+msgstr "Esta ferramenta não pôde instalar os pacotes: %s"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
 #: ../client/pk-console.c:665
 #, c-format
 msgid "This tool could not remove '%s': %s"
-msgstr ""
+msgstr "Esta ferramenta não pôde remover \"%s\": %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:688 ../client/pk-console.c:757
+#: ../client/pk-console.c:688
+#: ../client/pk-console.c:757
 #, c-format
 msgid "This tool could not remove the packages: %s"
-msgstr ""
+msgstr "Esta ferramente não pôde remover os pacotes: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
 #: ../client/pk-console.c:724
 #, c-format
 msgid "This tool could not remove the packages: '%s'"
-msgstr ""
+msgstr "Esta ferramente não pôde remover os pacotes: \"%s\""
 
 #. TRANSLATORS: When removing, we might have to remove other deps
 #: ../client/pk-console.c:736
@@ -73,73 +74,76 @@ msgstr "Os seguintes pacotes têm que ser removidos"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
 #: ../client/pk-console.c:743
-#, fuzzy
 msgid "Proceed removing additional packages?"
-msgstr "Os pacotes adicionais podem ser removidos?"
+msgstr "Continuar com a remoção dos pacotes adicionais?"
 
 #. TRANSLATORS: We did not remove any packages
 #: ../client/pk-console.c:748
 msgid "The package removal was cancelled!"
-msgstr ""
+msgstr "A remoção do pacote foi cancelada!"
 
 #. TRANSLATORS: The package name was not found in any software sources
 #: ../client/pk-console.c:789
-#, fuzzy, c-format
+#, c-format
 msgid "This tool could not find the package '%s' to download"
-msgstr "Não foi possível localizar um pacote a ser baixado"
+msgstr "Esta ferramenta não pôde localizar o pacote \"%s\" a ser baixado"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:843 ../client/pk-console.c:852
+#: ../client/pk-console.c:843
+#: ../client/pk-console.c:852
 #, c-format
 msgid "This tool could not update '%s': %s"
-msgstr ""
+msgstr "Esta ferramenta não pôde atualizar \"%s\": %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:874 ../client/pk-console.c:882
+#: ../client/pk-console.c:874
+#: ../client/pk-console.c:882
 #, c-format
 msgid "This tool could not get the requires for '%s': %s"
-msgstr ""
+msgstr "Esta ferramenta não pôde obter as dependências de \"%s\": %s"
 
 #. TRANSLATORS: There was an error getting the depends for the package. The detailed error follows
-#: ../client/pk-console.c:904 ../client/pk-console.c:912
-#, fuzzy, c-format
+#: ../client/pk-console.c:904
+#: ../client/pk-console.c:912
+#, c-format
 msgid "This tool could not get the dependancies for '%s': %s"
-msgstr "Não foi possível obter as dependências para"
+msgstr "Esta ferramenta não pôde obter as dependências para \"%s\": %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:934 ../client/pk-console.c:942
+#: ../client/pk-console.c:934
+#: ../client/pk-console.c:942
 #, c-format
 msgid "This tool could not get package details for '%s': %s"
-msgstr ""
+msgstr "Esta ferramenta não pôde obter os detalhes do pacote para \"%s\": %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
 #: ../client/pk-console.c:964
-#, fuzzy, c-format
+#, c-format
 msgid "This tool could not find the files for '%s': %s"
-msgstr "Não foi possível encontrar os arquivos para este pacote"
+msgstr "Esta ferramenta não pôde localizar os arquivos para \"%s\": %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
 #: ../client/pk-console.c:972
-#, fuzzy, c-format
+#, c-format
 msgid "This tool could not get the file list for '%s': %s"
-msgstr "Não foi possível obter a lista de arquivos"
+msgstr "Esta ferramenta não pôde obter a lista de arquivos para \"%s\": %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
 #: ../client/pk-console.c:994
-#, fuzzy, c-format
+#, c-format
 msgid "This tool could not find the update details for '%s': %s"
-msgstr "Não foi possível localizar os detalhes de atualização para"
+msgstr "Esta ferramenta não pôde localizar os detalhes de atualização para \"%s\": %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
 #: ../client/pk-console.c:1002
-#, fuzzy, c-format
+#, c-format
 msgid "This tool could not get the update details for '%s': %s"
-msgstr "Não foi possível localizar os detalhes de atualização para"
+msgstr "Esta ferramenta não pôde obter os detalhes de atualização para \"%s\": %s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
 #: ../client/pk-console.c:1048
 msgid "Error:"
-msgstr ""
+msgstr "Erro:"
 
 #. TRANSLATORS: This a list of details about the package
 #: ../client/pk-console.c:1062
@@ -159,7 +163,7 @@ msgstr "Nenhum arquivo"
 #. TRANSLATORS: This a request for a GPG key signature
 #: ../client/pk-console.c:1127
 msgid "Repository signature required"
-msgstr ""
+msgstr "A assinatura do repositório é necessária"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
 #: ../client/pk-console.c:1137
@@ -174,7 +178,7 @@ msgstr "Não importar a chave"
 #. TRANSLATORS: This a request for a EULA
 #: ../client/pk-console.c:1175
 msgid "Eula required"
-msgstr ""
+msgstr "Uma Eula é necessária"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the licence
 #: ../client/pk-console.c:1182
@@ -183,9 +187,8 @@ msgstr "Você concorda?"
 
 #. TRANSLATORS: This is where the user declined the licence
 #: ../client/pk-console.c:1186
-#, fuzzy
 msgid "Did not agree to licence"
-msgstr "Se você não concordar com a licença a tarefa irá falhar"
+msgstr "Não concordo com a licença"
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
 #: ../client/pk-console.c:1215
@@ -201,12 +204,15 @@ msgstr "Interface em Console do PackageKit"
 msgid "Subcommands:"
 msgstr "Subcomandos:"
 
-#: ../client/pk-console.c:1359 ../client/pk-generate-pack.c:138
-#: ../client/pk-monitor.c:115 ../src/pk-main.c:195
+#: ../client/pk-console.c:1359
+#: ../client/pk-generate-pack.c:138
+#: ../client/pk-monitor.c:115
+#: ../src/pk-main.c:195
 msgid "Show extra debugging information"
 msgstr "Mostrar informações extras de depuração"
 
-#: ../client/pk-console.c:1361 ../client/pk-monitor.c:117
+#: ../client/pk-console.c:1361
+#: ../client/pk-monitor.c:117
 msgid "Show the program version and exit"
 msgstr "Mostrar a versão do programa e sair"
 
@@ -220,18 +226,21 @@ msgstr "Sair sem esperar pelo término das ações"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
 #: ../client/pk-console.c:1387
-#, fuzzy
 msgid "This tool could not connect to system DBUS."
-msgstr "Não foi possível conectar ao DBUS do sistema."
+msgstr "Esta ferramenta não pôde conectar ao DBUS do sistema."
 
 #: ../client/pk-console.c:1482
 msgid "You need to specify a search type, e.g. name"
 msgstr "Você precisa especificar um tipo de pesquisa, p. ex. nome"
 
-#: ../client/pk-console.c:1487 ../client/pk-console.c:1494
-#: ../client/pk-console.c:1501 ../client/pk-console.c:1508
-#: ../client/pk-console.c:1619 ../client/pk-console.c:1629
-#: ../client/pk-console.c:1636 ../client/pk-console.c:1643
+#: ../client/pk-console.c:1487
+#: ../client/pk-console.c:1494
+#: ../client/pk-console.c:1501
+#: ../client/pk-console.c:1508
+#: ../client/pk-console.c:1619
+#: ../client/pk-console.c:1629
+#: ../client/pk-console.c:1636
+#: ../client/pk-console.c:1643
 msgid "You need to specify a search term"
 msgstr "Você precisa especificar um termo de pesquisa"
 
@@ -252,12 +261,8 @@ msgid "You need to specify a package to remove"
 msgstr "Você precisa especificar um pacote a ser removido"
 
 #: ../client/pk-console.c:1538
-msgid ""
-"You need to specify the destination directory and then the packages to "
-"download"
-msgstr ""
-"Você precisa especificar o diretório de destino e em seguida os pacotes a "
-"serem baixados"
+msgid "You need to specify the destination directory and then the packages to download"
+msgstr "Você precisa especificar o diretório de destino e em seguida os pacotes a serem baixados"
 
 #: ../client/pk-console.c:1543
 msgid "Directory not found"
@@ -271,7 +276,8 @@ msgstr "Você precisa especificar um eula-id"
 msgid "You need to specify a package name to resolve"
 msgstr "Você precisa especificar um nome de pacote a ser analisado"
 
-#: ../client/pk-console.c:1574 ../client/pk-console.c:1581
+#: ../client/pk-console.c:1574
+#: ../client/pk-console.c:1581
 msgid "You need to specify a repo name"
 msgstr "Você precisa especificar um nome de repositório"
 
@@ -293,13 +299,11 @@ msgstr "Falha ao obter o último horário"
 
 #: ../client/pk-console.c:1650
 msgid "You need to specify a package to find the details for"
-msgstr ""
-"Você precisa especificar o pacote para o qual você quer localizar os detalhes"
+msgstr "Você precisa especificar o pacote para o qual você quer localizar os detalhes"
 
 #: ../client/pk-console.c:1657
 msgid "You need to specify a package to find the files for"
-msgstr ""
-"Você precisa especificar o pacote para o qual você quer localizar os arquivos"
+msgstr "Você precisa especificar o pacote para o qual você quer localizar os arquivos"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
 #: ../client/pk-console.c:1710
@@ -320,117 +324,108 @@ msgstr "O comando falhou"
 #. TRANSLATORS: This is the state of the transaction
 #: ../client/pk-generate-pack.c:96
 msgid "Downloading"
-msgstr ""
+msgstr "Baixando"
 
 #: ../client/pk-generate-pack.c:140
-#, fuzzy
 msgid "Set the filename of dependencies to be excluded"
-msgstr ""
-"Defina o caminho do arquivo com a lista de pacotes/dependências a serem "
-"excluídas"
+msgstr "Defina o nome de arquivo das dependências a serem excluídas"
 
 #: ../client/pk-generate-pack.c:142
-msgid ""
-"The directory to put the pack file, or the current directory if ommitted"
-msgstr ""
+msgid "The directory to put the pack file, or the current directory if ommitted"
+msgstr "O diretório no qual o arquivo do pacote deve ser colocado ou o diretório atual, caso for omitido"
 
 #: ../client/pk-generate-pack.c:144
-#, fuzzy
 msgid "The package to be put into the ServicePack"
-msgstr "Pacote de serviços do PackageKit"
+msgstr "O pacote a ser incluído no pacote de serviços"
 
 #: ../client/pk-generate-pack.c:146
 msgid "Put all updates available in the ServicePack"
-msgstr ""
+msgstr "Colocar todas as atualizações disponíveis no pacote de serviços"
 
 #. TRANSLATORS: This is when the user fails to supply the correct arguments
 #: ../client/pk-generate-pack.c:166
 msgid "Neither --package or --updates option selected."
-msgstr ""
+msgstr "Nenhuma das opções --package ou --updates foi selecionada."
 
 #. TRANSLATORS: This is when the user fails to supply just one argument
 #: ../client/pk-generate-pack.c:174
 msgid "Both options selected."
-msgstr ""
+msgstr "Ambas opções selecionadas."
 
 #. TRANSLATORS: This is when file already exists
 #: ../client/pk-generate-pack.c:207
 msgid "A pack with the same name already exists, do you want to overwrite it?"
-msgstr ""
-"Um pacote de serviços com o mesmo nome já existe, você deseja sobrescrevê-lo?"
+msgstr "Um pacote de serviços com o mesmo nome já existe, você deseja sobrescrevê-lo?"
 
 #. TRANSLATORS: This is when the pack was not overwritten
 #: ../client/pk-generate-pack.c:210
 msgid "The pack was not overwritten."
-msgstr ""
+msgstr "O pacote não foi sobrescrito"
 
 #. TRANSLATORS: This is when the temporary directory cannot be created
 #: ../client/pk-generate-pack.c:222
-#, fuzzy
 msgid "Failed to create directory."
-msgstr "Falha ao criar o diretório"
+msgstr "Falha ao criar o diretório."
 
 #. TRANSLATORS: This is when the list of packages from the remote computer cannot be opened
 #: ../client/pk-generate-pack.c:231
-#, fuzzy
 msgid "Failed to open package list."
-msgstr "Falha ao criar o pacote de serviços"
+msgstr "Falha ao abrir a lista de pacotes"
 
 #. TRANSLATORS: This is when the user fails to supply the correct arguments
 #: ../client/pk-generate-pack.c:241
 msgid "Finding package name."
-msgstr ""
+msgstr "Localizando o nome do pacote."
 
 #. TRANSLATORS: This is when the package cannot be foudn in any software source
 #: ../client/pk-generate-pack.c:245
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to find package '%s': %s"
-msgstr "Não foi possível localizar o pacote a ser instalado"
+msgstr "Falha ao localizar o pacote \"%s\": %s"
 
 #. TRANSLATORS: This is telling the user we are in the process of making the pack
 #: ../client/pk-generate-pack.c:260
 msgid "Creating service pack..."
-msgstr ""
+msgstr "Criando o pacote de serviços"
 
 #. TRANSLATORS: we succeeded in making the file
 #: ../client/pk-generate-pack.c:267
 #, c-format
 msgid "Service pack created '%s'"
-msgstr ""
+msgstr "Pacote de serviços \"%s\" criado"
 
 #. TRANSLATORS: we failed to make te file
 #: ../client/pk-generate-pack.c:271
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to create '%s': %s"
-msgstr "Não foi possível localizar o pacote a ser instalado"
+msgstr "Falha ao criar \"%s\": %s"
 
 #: ../client/pk-monitor.c:128
 msgid "PackageKit Monitor"
 msgstr "Monitor do PackageKit"
 
-#: ../client/pk-tools-common.c:48 ../client/pk-tools-common.c:58
-#: ../client/pk-tools-common.c:76 ../client/pk-tools-common.c:83
+#: ../client/pk-tools-common.c:48
+#: ../client/pk-tools-common.c:58
+#: ../client/pk-tools-common.c:76
+#: ../client/pk-tools-common.c:83
 #, c-format
 msgid "Internal error: %s"
-msgstr ""
+msgstr "Erro interno: %s"
 
 #. TRANSLATORS: The package was not found in any software sources
 #: ../client/pk-tools-common.c:109
-#, c-format
 msgid "The package could not be found"
-msgstr ""
+msgstr "O pacote não pôde ser encontrado"
 
 #. TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages
 #: ../client/pk-tools-common.c:120
-#, fuzzy
 msgid "More than one package matches:"
-msgstr "Há múltiplos pacotes correspondentes"
+msgstr "Há mais de um pacote correspondente:"
 
 #. TRANSLATORS: This finds out which package in the list to use
 #: ../client/pk-tools-common.c:127
-#, fuzzy
 msgid "Please choose the correct package: "
-msgstr "Por favor, insira o número do pacote: "
+msgstr "Por favor, escolha o pacote correto: "
 
 #: ../client/pk-tools-common.c:154
 #, c-format
@@ -446,58 +441,49 @@ msgstr "Obtendo informações do pacote..."
 #: ../contrib/packagekit-plugin/src/contents.cpp:305
 #, c-format
 msgid "Run %s"
-msgstr ""
+msgstr "Executar %s"
 
 #. TRANSLATORS: show the installed version of a package
 #: ../contrib/packagekit-plugin/src/contents.cpp:311
-#, fuzzy
 msgid "Installed version"
-msgstr ""
-"\n"
-"<small>Versão instalada: %s</small>"
+msgstr "Versão instalada"
 
 #. TRANSLATORS: run the application now
 #: ../contrib/packagekit-plugin/src/contents.cpp:319
 #, c-format
 msgid "Run version %s now"
-msgstr ""
+msgstr "Executar a versão %s agora"
 
 #: ../contrib/packagekit-plugin/src/contents.cpp:325
 msgid "Run now"
-msgstr ""
+msgstr "Executar agora"
 
 #. TRANSLATORS: update to a new version of the package
 #: ../contrib/packagekit-plugin/src/contents.cpp:330
 #, c-format
 msgid "Upgrade to version %s"
-msgstr ""
+msgstr "Atualizar para a versão %s"
 
 #. TRANSLATORS: To install a package
 #: ../contrib/packagekit-plugin/src/contents.cpp:336
 #, c-format
 msgid "Install %s Now"
-msgstr ""
+msgstr "Instalar %s agora"
 
 #. TRANSLATORS: the version of the package
 #: ../contrib/packagekit-plugin/src/contents.cpp:339
 msgid "Version"
-msgstr ""
+msgstr "Versão"
 
 #. TRANSLATORS: noting found, so can't install
 #: ../contrib/packagekit-plugin/src/contents.cpp:344
-#, fuzzy
 msgid "No packages found for your system"
-msgstr ""
-"\n"
-"<small>Nenhum pacote localizado para o seu sistema</small>"
+msgstr "Nenhum pacote localizado para o seu sistema"
 
 #. TRANSLATORS: package is being installed
 #: ../contrib/packagekit-plugin/src/contents.cpp:349
-#, fuzzy
 msgid "Installing..."
-msgstr ""
-"\n"
-"<small>Instalando...</small>"
+msgstr "Instalando..."
 
 #: ../data/packagekit-catalog.xml.in.h:1
 msgid "PackageKit Catalog"
@@ -508,101 +494,8 @@ msgid "PackageKit Service Pack"
 msgstr "Pacote de serviços do PackageKit"
 
 #: ../data/packagekit-package-list.xml.in.h:1
-#, fuzzy
 msgid "PackageKit Package List"
-msgstr "Catálogo do PackageKit"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:1
-msgid "Accept EULA"
-msgstr "Aceitar a licença EULA"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:2
-msgid "Authentication is required to accept a EULA"
-msgstr "É necessário autenticar para aceitar uma licença EULA"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:3
-msgid "Authentication is required to change software source parameters"
-msgstr ""
-"É necessário autenticar para alterar os parâmetros das fontes de programas"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:4
-#, fuzzy
-msgid ""
-"Authentication is required to consider a key used for signing packages as "
-"trusted"
-msgstr "É necessário autenticar para recarregar a lista de pacotes"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:5
-#, fuzzy
-msgid "Authentication is required to install a signed package"
-msgstr "É necessário autenticar para instalar um pacote"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:6
-#, fuzzy
-msgid "Authentication is required to install an untrusted package"
-msgstr "É necessário autenticar para instalar um pacote"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:7
-#, fuzzy
-msgid "Authentication is required to refresh the system sources"
-msgstr "É necessário autenticar para recarregar a lista de pacotes"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:8
-msgid "Authentication is required to remove packages"
-msgstr "É necessário autenticar para remover pacotes"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:9
-msgid "Authentication is required to rollback a transaction"
-msgstr "É necessário autenticar para retroceder uma transação"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:10
-#, fuzzy
-msgid ""
-"Authentication is required to set the network proxy used for downloading "
-"packages"
-msgstr "É necessário autenticar para remover pacotes"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:11
-msgid "Authentication is required to update packages"
-msgstr "É necessário autenticar para atualizar os pacotes"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:12
-msgid "Change software source parameters"
-msgstr "Altere parâmetros das fontes de programas"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:13
-msgid "Install local file"
-msgstr "Instalar um arquivo local"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:14
-#, fuzzy
-msgid "Install untrusted local file"
-msgstr "Instalar um arquivo local"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:15
-msgid "Refresh system sources"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:16
-msgid "Remove package"
-msgstr "Remover pacote"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:17
-msgid "Rollback to a previous transaction"
-msgstr "Retroceder para uma transação anterior"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:18
-msgid "Set network proxy"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:19
-msgid "Trust a key used for signing packages"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:20
-#, fuzzy
-msgid "Update packages"
-msgstr "Atualizar pacote"
+msgstr "Lista de Pacotes do PackageKit"
 
 #: ../src/pk-main.c:85
 msgid "Startup failed due to security policies on this machine."
@@ -617,12 +510,8 @@ msgid "The correct user is not launching the executable (usually root)"
 msgstr "O usuário correto não está iniciando o executável (normalmente o root)"
 
 #: ../src/pk-main.c:88
-msgid ""
-"The org.freedesktop.PackageKit.conf file is not installed in the system /etc/"
-"dbus-1/system.d directory"
-msgstr ""
-"O arquivo org.freedesktop.PackageKit.conf não está instalado no diretório  /"
-"etc/dbus-1/system.d do sistema"
+msgid "The org.freedesktop.PackageKit.conf file is not installed in the system /etc/dbus-1/system.d directory"
+msgstr "O arquivo org.freedesktop.PackageKit.conf não está instalado no diretório  /etc/dbus-1/system.d do sistema"
 
 #: ../src/pk-main.c:191
 msgid "Packaging backend to use, e.g. dummy"
@@ -663,148 +552,134 @@ msgstr "Erro ao tentar iniciar: %s\n"
 
 #~ msgid "Update detail"
 #~ msgstr "Detalhe da atualização"
-
 #~ msgid "A system restart is required"
 #~ msgstr "É necessário reiniciar o sistema"
-
 #~ msgid "A logout and login is required"
 #~ msgstr "É necessário sair da sessão e autenticar novamente"
-
 #~ msgid "An application restart is required"
 #~ msgstr "É necessário reiniciar a aplicação"
-
-#~ msgid "Could not find package to install"
-#~ msgstr "Não foi possível localizar o pacote a ser instalado"
-
 #~ msgid "Could not find package to remove"
 #~ msgstr "Não foi possível localizar o pacote a ser removido"
-
 #~ msgid "Cancelled!"
 #~ msgstr "Cancelado!"
-
 #~ msgid "Could not find package to update"
 #~ msgstr "Não foi possível localizar o pacote a ser atualizado"
-
 #~ msgid "Could not find what packages require"
 #~ msgstr "Não foi possível localizar quais pacotes necessitam desse pacote"
-
 #~ msgid "Could not find details for"
 #~ msgstr "Não foi possível localizar os detalhes para"
-
 #~ msgid "Could not find a package match"
 #~ msgstr "Não foi possível encontrar um pacote correspondente"
-
-#, fuzzy
-#~ msgid "Resolving package name to remote object"
-#~ msgstr "Os seguintes pacotes têm que ser removidos"
-
+#~ msgid "failed to download: invalid package_id and/or directory"
+#~ msgstr "falha ao baixar: package_id e/ou diretório inválidos"
+#~ msgid "Could not find a valid metadata file"
+#~ msgstr "Não foi possível localizar um arquivo de metadados válido"
+#~ msgid "Okay to download the additional packages"
+#~ msgstr "Os pacotes adicionais podem ser baixados"
+#~ msgid "You need to specify the pack name and packages to be packed\n"
+#~ msgstr ""
+#~ "Você precisa especificar o nome do pacote de serviços e os pacotes a "
+#~ "serem incluídos\n"
+#~ msgid ""
+#~ "Invalid name for the service pack, Specify a name with .servicepack "
+#~ "extension\n"
+#~ msgstr ""
+#~ "Nome inválido para o pacote de serviços. Especifique um nome com a "
+#~ "extensão .servicepack\n"
 #~ msgid "Could not set database readonly"
 #~ msgstr "Não foi possível configurar o banco de dados para somente leitura"
-
 #~ msgid "Could not open database: %s"
 #~ msgstr "Não foi possível abrir o banco de dados: %s"
-
 #~ msgid "You probably need to run this program as the root user"
 #~ msgstr "Você provavelmente precisa executar este programa como usuário root"
-
 #~ msgid "<span color='#%06x' underline='single' size='larger'>Run %s</span>"
 #~ msgstr ""
 #~ "<span color='#%06x' underline='single' size='larger'>Executar %s</span>"
-
 #~ msgid "<big>%s</big>"
 #~ msgstr "<big>%s</big>"
-
 #~ msgid ""
 #~ "\n"
 #~ "<span color='#%06x' underline='single'>Run version %s now</span>"
 #~ msgstr ""
 #~ "\n"
 #~ "<span color='#%06x' underline='single'>Executar versão %s agora</span>"
-
 #~ msgid ""
 #~ "\n"
 #~ "<span color='#%06x' underline='single'>Run now</span>"
 #~ msgstr ""
 #~ "\n"
 #~ "<span color='#%06x' underline='single'>Executar agora</span>"
-
 #~ msgid ""
 #~ "\n"
 #~ "<span color='#%06x' underline='single'>Upgrade to version %s</span>"
 #~ msgstr ""
 #~ "\n"
 #~ "<span color='#%06x' underline='single'>Atualizar para a versão %s</span>"
-
 #~ msgid ""
 #~ "<span color='#%06x' underline='single' size='larger'>Install %s Now</span>"
 #~ msgstr ""
 #~ "<span color='#%06x' underline='single' size='larger'>Instalar %s agora</"
 #~ "span>"
-
 #~ msgid ""
 #~ "\n"
 #~ "<small>Version: %s</small>"
 #~ msgstr ""
 #~ "\n"
 #~ "<small>Versão: %s</small>"
-
-#~ msgid "failed to download: invalid package_id and/or directory"
-#~ msgstr "falha ao baixar: package_id e/ou diretório inválidos"
-
-#~ msgid "Could not find a valid metadata file"
-#~ msgstr "Não foi possível localizar um arquivo de metadados válido"
-
-#~ msgid "Okay to download the additional packages"
-#~ msgstr "Os pacotes adicionais podem ser baixados"
-
-#~ msgid "You need to specify the pack name and packages to be packed\n"
-#~ msgstr ""
-#~ "Você precisa especificar o nome do pacote de serviços e os pacotes a "
-#~ "serem incluídos\n"
-
-#~ msgid ""
-#~ "Invalid name for the service pack, Specify a name with .servicepack "
-#~ "extension\n"
-#~ msgstr ""
-#~ "Nome inválido para o pacote de serviços. Especifique um nome com a "
-#~ "extensão .servicepack\n"
-
 #~ msgid ""
 #~ "You need to specify the package to download and the destination directory"
 #~ msgstr ""
 #~ "Você precisa especificar o pacote a ser baixado e o diretório de destino"
-
 #~ msgid ""
 #~ "Could not find a package with that name to install, or package already "
 #~ "installed"
 #~ msgstr ""
 #~ "Não foi possível encontrar um pacote com esse nome para instalar ou o "
 #~ "pacote já está instalado"
-
 #~ msgid "Could not find a package with that name to update"
 #~ msgstr ""
 #~ "Não foi possível encontrar um pacote com esse nome para ser atualizado"
-
+#~ msgid "Accept EULA"
+#~ msgstr "Aceitar a licença EULA"
+#~ msgid "Authentication is required to accept a EULA"
+#~ msgstr "É necessário autenticar para aceitar uma licença EULA"
+#~ msgid "Authentication is required to change software source parameters"
+#~ msgstr ""
+#~ "É necessário autenticar para alterar os parâmetros das fontes de programas"
 #~ msgid "Authentication is required to install a local file"
 #~ msgstr "É necessário autenticar para instalar um arquivo local"
-
+#~ msgid "Authentication is required to install a package"
+#~ msgstr "É necessário autenticar para instalar um pacote"
 #~ msgid "Authentication is required to install a security signature"
 #~ msgstr "É necessário autenticar para instalar uma assinatura de segurança"
-
+#~ msgid "Authentication is required to refresh the package lists"
+#~ msgstr "É necessário autenticar para recarregar a lista de pacotes"
+#~ msgid "Authentication is required to remove packages"
+#~ msgstr "É necessário autenticar para remover pacotes"
+#~ msgid "Authentication is required to rollback a transaction"
+#~ msgstr "É necessário autenticar para retroceder uma transação"
 #~ msgid "Authentication is required to update all packages"
 #~ msgstr "É necessário autenticar para atualizar todos os pacotes"
-
+#~ msgid "Authentication is required to update packages"
+#~ msgstr "É necessário autenticar para atualizar os pacotes"
+#~ msgid "Change software source parameters"
+#~ msgstr "Altere parâmetros das fontes de programas"
+#~ msgid "Install local file"
+#~ msgstr "Instalar um arquivo local"
 #~ msgid "Install package"
 #~ msgstr "Instalar um pacote"
-
 #~ msgid "Install security signature"
 #~ msgstr "Instalar uma assinatura de segurança"
-
 #~ msgid "Refresh package lists"
 #~ msgstr "Recarregar listas de pacotes"
-
+#~ msgid "Remove package"
+#~ msgstr "Remover pacote"
+#~ msgid "Rollback to a previous transaction"
+#~ msgstr "Retroceder para uma transação anterior"
 #~ msgid "Update all packages"
 #~ msgstr "Atualizar todos os pacotes"
-
+#~ msgid "Update package"
+#~ msgstr "Atualizar pacote"
 #~ msgid "Could not find a description for this package"
 #~ msgstr "Não foi possível encontrar uma descrição para esse pacote"
+
commit a36b7f35578279b43464d564e1d4fa2a85eb1357
Author: Richard Hughes <richard at hughsie.com>
Date:   Thu Oct 16 16:02:06 2008 +0100

    bugfix: Don't use EggObjList as a parent GObject makes up some of the library API, so this should be PkObjList

diff --git a/docs/api/Makefile.am b/docs/api/Makefile.am
index 24af907..2ad3bd7 100644
--- a/docs/api/Makefile.am
+++ b/docs/api/Makefile.am
@@ -42,7 +42,7 @@ IGNORE_HFILES =						\
 	config.h					\
 	pk-marshal.h					\
 	egg-dbus-monitor.h				\
-	egg-obj-list.h					\
+	pk-obj-list.h					\
 	$(NULL)
 
 # Images to copy into HTML directory.
diff --git a/lib/packagekit-glib/Makefile.am b/lib/packagekit-glib/Makefile.am
index 424a8a3..34955c7 100644
--- a/lib/packagekit-glib/Makefile.am
+++ b/lib/packagekit-glib/Makefile.am
@@ -29,6 +29,7 @@ libpackagekit_include_HEADERS =					\
 	pk-package-id.h						\
 	pk-package-ids.h					\
 	pk-package-obj.h					\
+	pk-obj-list.h						\
 	pk-package-list.h					\
 	pk-category-obj.h					\
 	pk-update-detail-obj.h					\
@@ -50,8 +51,6 @@ libpackagekit_la_SOURCES =					\
 	egg-debug.h						\
 	egg-string.c						\
 	egg-string.h						\
-	egg-obj-list.c						\
-	egg-obj-list.h						\
 	pk-marshal.c						\
 	pk-marshal.h						\
 	pk-extra.c						\
@@ -66,6 +65,8 @@ libpackagekit_la_SOURCES =					\
 	pk-package-ids.h					\
 	pk-package-obj.c					\
 	pk-package-obj.h					\
+	pk-obj-list.c						\
+	pk-obj-list.h						\
 	pk-package-list.c					\
 	pk-package-list.h					\
 	pk-category-obj.c					\
diff --git a/lib/packagekit-glib/egg-obj-list.c b/lib/packagekit-glib/egg-obj-list.c
deleted file mode 100644
index e37e29c..0000000
--- a/lib/packagekit-glib/egg-obj-list.c
+++ /dev/null
@@ -1,724 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
- *
- * Copyright (C) 2008 Richard Hughes <richard at hughsie.com>
- *
- * Licensed under the GNU General Public License Version 2
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-
-#include <glib/gi18n.h>
-#include <glib.h>
-
-#include "egg-debug.h"
-#include "egg-obj-list.h"
-
-#define EGG_OBJ_LIST_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), EGG_TYPE_OBJ_LIST, EggObjListPrivate))
-
-struct EggObjListPrivate
-{
-	EggObjListNewFunc	 func_new;
-	EggObjListCopyFunc	 func_copy;
-	EggObjListFreeFunc	 func_free;
-	EggObjListCompareFunc	 func_compare;
-	EggObjListToStringFunc	 func_to_string;
-	EggObjListFromStringFunc func_from_string;
-	GPtrArray		*array;
-};
-
-G_DEFINE_TYPE (EggObjList, egg_obj_list, G_TYPE_OBJECT)
-
-/**
- * egg_obj_list_set_new:
- * @list: a valid #EggObjList instance
- * @func: typedef'd function
- *
- * Adds a creation func
- **/
-void
-egg_obj_list_set_new (EggObjList *list, EggObjListNewFunc func)
-{
-	g_return_if_fail (EGG_IS_OBJ_LIST (list));
-	list->priv->func_new = func;
-}
-
-/**
- * egg_obj_list_set_copy:
- * @list: a valid #EggObjList instance
- * @func: typedef'd function
- *
- * Adds a copy func
- **/
-void
-egg_obj_list_set_copy (EggObjList *list, EggObjListCopyFunc func)
-{
-	g_return_if_fail (EGG_IS_OBJ_LIST (list));
-	list->priv->func_copy = func;
-}
-
-/**
- * egg_obj_list_set_free:
- * @list: a valid #EggObjList instance
- * @func: typedef'd function
- *
- * Adds a free func
- **/
-void
-egg_obj_list_set_free (EggObjList *list, EggObjListFreeFunc func)
-{
-	g_return_if_fail (EGG_IS_OBJ_LIST (list));
-	list->priv->func_free = func;
-}
-
-/**
- * egg_obj_list_set_compare:
- * @list: a valid #EggObjList instance
- * @func: typedef'd function
- *
- * Adds a compare func
- **/
-void
-egg_obj_list_set_compare (EggObjList *list, EggObjListCompareFunc func)
-{
-	g_return_if_fail (EGG_IS_OBJ_LIST (list));
-	list->priv->func_compare = func;
-}
-
-/**
- * egg_obj_list_set_to_string:
- * @list: a valid #EggObjList instance
- * @func: typedef'd function
- *
- * Adds a to string func
- **/
-void
-egg_obj_list_set_to_string (EggObjList *list, EggObjListToStringFunc func)
-{
-	g_return_if_fail (EGG_IS_OBJ_LIST (list));
-	list->priv->func_to_string = func;
-}
-
-/**
- * egg_obj_list_set_from_string:
- * @list: a valid #EggObjList instance
- * @func: typedef'd function
- *
- * Adds a from string func
- **/
-void
-egg_obj_list_set_from_string (EggObjList *list, EggObjListFromStringFunc func)
-{
-	g_return_if_fail (EGG_IS_OBJ_LIST (list));
-	list->priv->func_from_string = func;
-}
-
-/**
- * egg_obj_list_get_array:
- * @list: a valid #EggObjList instance
- *
- * Gets a GPtrArray representation of the package list
- **/
-const GPtrArray	*
-egg_obj_list_get_array (const EggObjList *list)
-{
-	g_return_val_if_fail (EGG_IS_OBJ_LIST (list), NULL);
-	return list->priv->array;
-}
-
-/**
- * egg_obj_list_clear:
- * @list: a valid #EggObjList instance
- *
- * Clears the package list
- **/
-void
-egg_obj_list_clear (EggObjList *list)
-{
-	guint i;
-	gpointer obj;
-	GPtrArray *array;
-	EggObjListFreeFunc func_free;
-
-	g_return_if_fail (EGG_IS_OBJ_LIST (list));
-
-	array = list->priv->array;
-	func_free = list->priv->func_free;
-	for (i=0; i<array->len; i++) {
-		obj = g_ptr_array_index (array, i);
-		if (func_free != NULL)
-			func_free (obj);
-		g_ptr_array_remove (array, obj);
-	}
-	list->len = 0;
-}
-
-/**
- * egg_obj_list_print:
- * @list: a valid #EggObjList instance
- *
- * Prints the package list
- **/
-void
-egg_obj_list_print (EggObjList *list)
-{
-	guint i;
-	gpointer obj;
-	GPtrArray *array;
-	gchar *text;
-	EggObjListToStringFunc func_to_string;
-
-	g_return_if_fail (list->priv->func_to_string != NULL);
-	g_return_if_fail (EGG_IS_OBJ_LIST (list));
-
-	array = list->priv->array;
-	func_to_string = list->priv->func_to_string;
-	for (i=0; i<array->len; i++) {
-		obj = g_ptr_array_index (array, i);
-		text = func_to_string (obj);
-		g_print ("(%i)\t%s\n", i, text);
-		g_free (text);
-	}
-}
-
-/**
- * egg_obj_list_to_string:
- * @list: a valid #EggObjList instance
- *
- * Converts the list to a newline delimited string
- **/
-gchar *
-egg_obj_list_to_string (EggObjList *list)
-{
-	guint i;
-	gpointer obj;
-	GPtrArray *array;
-	gchar *text;
-	EggObjListToStringFunc func_to_string;
-	GString *string;
-
-	g_return_val_if_fail (list->priv->func_to_string != NULL, NULL);
-	g_return_val_if_fail (EGG_IS_OBJ_LIST (list), NULL);
-
-	array = list->priv->array;
-	func_to_string = list->priv->func_to_string;
-	string = g_string_new ("");
-	for (i=0; i<array->len; i++) {
-		obj = g_ptr_array_index (array, i);
-		text = func_to_string (obj);
-		g_string_append_printf (string, "%s\n", text);
-		g_free (text);
-	}
-	/* remove trailing newline */
-	if (string->len != 0)
-		g_string_set_size (string, string->len-1);
-
-	return g_string_free (string, FALSE);
-}
-
-/**
- * egg_obj_list_add:
- * @list: a valid #EggObjList instance
- * @obj: a valid #gpointer object
- *
- * Adds a copy of the object to the list
- **/
-void
-egg_obj_list_add (EggObjList *list, gconstpointer obj)
-{
-	gpointer obj_new;
-
-	g_return_if_fail (EGG_IS_OBJ_LIST (list));
-	g_return_if_fail (obj != NULL);
-	g_return_if_fail (list->priv->func_copy != NULL);
-
-	/* TODO: are we already in the list? */
-	obj_new = list->priv->func_copy (obj);
-	g_ptr_array_add (list->priv->array, obj_new);
-	list->len = list->priv->array->len;
-}
-
-/**
- * egg_obj_list_add_list:
- *
- * Makes a deep copy of the list
- **/
-void
-egg_obj_list_add_list (EggObjList *list, const EggObjList *data)
-{
-	guint i;
-	gconstpointer obj;
-
-	g_return_if_fail (EGG_IS_OBJ_LIST (list));
-	g_return_if_fail (EGG_IS_OBJ_LIST (data));
-
-	/* add data items to list */
-	for (i=0; i < data->len; i++) {
-		obj = egg_obj_list_index (data, i);
-		egg_obj_list_add (list, obj);
-	}
-}
-
-/**
- * egg_obj_list_add_array:
- *
- * Makes a deep copy of the data in the array.
- * The data going into the list MUST be the correct type,
- * else bad things will happen.
- **/
-void
-egg_obj_list_add_array (EggObjList *list, const GPtrArray *data)
-{
-	guint i;
-	gconstpointer obj;
-
-	g_return_if_fail (EGG_IS_OBJ_LIST (list));
-
-	/* add data items to list */
-	for (i=0; i < data->len; i++) {
-		obj = g_ptr_array_index (data, i);
-		egg_obj_list_add (list, obj);
-	}
-}
-
-/**
- * egg_obj_list_remove_list:
- *
- * Makes a deep copy of the list
- **/
-void
-egg_obj_list_remove_list (EggObjList *list, const EggObjList *data)
-{
-	guint i;
-	gconstpointer obj;
-
-	g_return_if_fail (EGG_IS_OBJ_LIST (list));
-	g_return_if_fail (EGG_IS_OBJ_LIST (data));
-
-	/* remove data items from list */
-	for (i=0; i < data->len; i++) {
-		obj = egg_obj_list_index (data, i);
-		egg_obj_list_remove (list, obj);
-	}
-}
-
-/**
- * egg_obj_list_find_obj:
- * @list: a valid #EggObjList instance
- * @obj: a valid #gpointer object
- *
- * Return value: the object
- *
- * Removes an item from a list
- **/
-static gboolean
-egg_obj_list_obj_equal (EggObjList *list, gconstpointer obj1, gconstpointer obj2)
-{
-	EggObjListCompareFunc func_compare;
-
-	/* two less pointer deferences... */
-	func_compare = list->priv->func_compare;
-
-	/* trivial case */
-	if (func_compare == NULL)
-		return obj1 == obj2;
-
-	/* use helper function */
-	return func_compare (obj1, obj2) == 0;
-}
-
-/**
- * egg_obj_list_remove_duplicate:
- *
- * Removes duplicate entries
- **/
-void
-egg_obj_list_remove_duplicate (EggObjList *list)
-{
-	guint i, j;
-	gconstpointer obj1;
-	gconstpointer obj2;
-
-	for (i=0; i<list->len; i++) {
-		obj1 = egg_obj_list_index (list, i);
-		for (j=0; j<list->len; j++) {
-			if (i == j)
-				break;
-			obj2 = egg_obj_list_index (list, j);
-			if (egg_obj_list_obj_equal (list, obj1, obj2))
-				egg_obj_list_remove_index (list, i);
-		}
-	}
-}
-
-/**
- * egg_obj_list_find_obj:
- * @list: a valid #EggObjList instance
- * @obj: a valid #gconstpointer object
- *
- * Return value: the object
- *
- * Finds an item in a list
- **/
-static gpointer
-egg_obj_list_find_obj (EggObjList *list, gconstpointer obj)
-{
-	guint i;
-	gconstpointer obj_tmp;
-	EggObjListCompareFunc func_compare;
-
-	/* the pointers point to the same thing */
-	func_compare = list->priv->func_compare;
-	if (func_compare == NULL)
-		return (gpointer) obj;
-
-	/* remove data items from list */
-	for (i=0; i < list->len; i++) {
-		obj_tmp = egg_obj_list_index (list, i);
-		if (func_compare (obj_tmp, obj) == 0)
-			return (gpointer) obj_tmp;
-	}
-
-	/* nothing found */
-	return NULL;
-}
-
-/**
- * egg_obj_list_exists:
- * @list: a valid #EggObjList instance
- * @obj: a valid #gconstpointer object
- *
- * Return value: the object
- *
- * Finds an item in a list
- **/
-gboolean
-egg_obj_list_exists (EggObjList *list, gconstpointer obj)
-{
-	gconstpointer obj_tmp;
-	obj_tmp = egg_obj_list_find_obj (list, obj);
-	return (obj_tmp != NULL);
-}
-
-/**
- * egg_obj_list_remove:
- * @list: a valid #EggObjList instance
- * @obj: a valid #gpointer object
- *
- * Return value: TRUE is we removed something
- *
- * Removes all the items from a list matching obj
- **/
-gboolean
-egg_obj_list_remove (EggObjList *list, gconstpointer obj)
-{
-	gboolean ret;
-	gpointer obj_new;
-	gboolean found = FALSE;
-
-	g_return_val_if_fail (EGG_IS_OBJ_LIST (list), FALSE);
-	g_return_val_if_fail (obj != NULL, FALSE);
-	g_return_val_if_fail (list->priv->func_free != NULL, FALSE);
-
-	do {
-		/* get the object */
-		obj_new = egg_obj_list_find_obj (list, obj);
-		if (obj_new == NULL)
-			break;
-
-		/* try to remove */
-		ret = g_ptr_array_remove (list->priv->array, obj_new);
-
-		/* no compare function, and pointer not found */
-		if (!ret)
-			break;
-
-		found = TRUE;
-		list->priv->func_free (obj_new);
-		list->len = list->priv->array->len;
-	} while (ret);
-
-	return found;
-}
-
-/**
- * egg_obj_list_remove_index:
- * @list: a valid #EggObjList instance
- * @index: the number to remove
- *
- * Return value: TRUE is we removed something
- *
- * Removes an item from a list
- **/
-gboolean
-egg_obj_list_remove_index (EggObjList *list, guint index)
-{
-	gpointer obj;
-
-	g_return_val_if_fail (EGG_IS_OBJ_LIST (list), FALSE);
-	g_return_val_if_fail (list->priv->func_free != NULL, FALSE);
-
-	/* get the object */
-	obj = g_ptr_array_remove_index (list->priv->array, index);
-	if (obj == NULL)
-		return FALSE;
-	list->priv->func_free (obj);
-	list->len = list->priv->array->len;
-	return TRUE;
-}
-
-/**
- * egg_obj_list_to_file:
- * @list: a valid #EggObjList instance
- * @filename: a filename
- *
- * Saves a copy of the list to a file
- **/
-gboolean
-egg_obj_list_to_file (EggObjList *list, const gchar *filename)
-{
-	guint i;
-	gconstpointer obj;
-	gchar *part;
-	GString *string;
-	gboolean ret = TRUE;
-	GError *error = NULL;
-	EggObjListFreeFunc func_free;
-	EggObjListToStringFunc func_to_string;
-
-	g_return_val_if_fail (EGG_IS_OBJ_LIST (list), FALSE);
-	g_return_val_if_fail (list->priv->func_to_string != NULL, FALSE);
-	g_return_val_if_fail (list->priv->func_free != NULL, FALSE);
-
-	func_free = list->priv->func_free;
-	func_to_string = list->priv->func_to_string;
-
-	/* generate data */
-	string = g_string_new ("");
-	for (i=0; i<list->len; i++) {
-		obj = egg_obj_list_index (list, i);
-		part = func_to_string (obj);
-		if (part == NULL) {
-			ret = FALSE;
-			break;
-		}
-		g_string_append_printf (string, "%s\n", part);
-		g_free (part);
-	}
-	part = g_string_free (string, FALSE);
-
-	/* we failed to convert to string */
-	if (!ret) {
-		egg_warning ("failed to convert");
-		goto out;
-	}
-
-	/* save to disk */
-	ret = g_file_set_contents (filename, part, -1, &error);
-	if (!ret) {
-		egg_warning ("failed to set data: %s", error->message);
-		g_error_free (error);
-		goto out;
-	}
-	egg_debug ("saved %s", filename);
-
-out:
-	g_free (part);
-	return ret;
-}
-
-/**
- * egg_obj_list_from_file:
- * @list: a valid #EggObjList instance
- * @filename: a filename
- *
- * Appends the list from a file
- **/
-gboolean
-egg_obj_list_from_file (EggObjList *list, const gchar *filename)
-{
-	gboolean ret;
-	GError *error = NULL;
-	gchar *data = NULL;
-	gchar **parts = NULL;
-	guint i;
-	guint length;
-	gpointer obj;
-	EggObjListFreeFunc func_free;
-	EggObjListFromStringFunc func_from_string;
-
-	g_return_val_if_fail (EGG_IS_OBJ_LIST (list), FALSE);
-	g_return_val_if_fail (list->priv->func_from_string != NULL, FALSE);
-	g_return_val_if_fail (list->priv->func_free != NULL, FALSE);
-
-	func_free = list->priv->func_free;
-	func_from_string = list->priv->func_from_string;
-
-	/* do we exist */
-	ret = g_file_test (filename, G_FILE_TEST_EXISTS);
-	if (!ret) {
-		egg_debug ("failed to get data from %s as file does not exist", filename);
-		goto out;
-	}
-
-	/* get contents */
-	ret = g_file_get_contents (filename, &data, NULL, &error);
-	if (!ret) {
-		egg_warning ("failed to get data: %s", error->message);
-		g_error_free (error);
-		goto out;
-	}
-
-	/* split by line ending */
-	parts = g_strsplit (data, "\n", 0);
-	length = g_strv_length (parts);
-	if (length == 0) {
-		egg_debug ("no data in %s", filename);
-		goto out;
-	}
-
-	/* add valid entries */
-	egg_debug ("loading %i items of data from %s", length, filename);
-	for (i=0; i<length-1; i++) {
-		obj = func_from_string (parts[i]);
-		if (obj != NULL)
-			egg_obj_list_add (list, obj);
-		func_free (obj);
-	}
-
-out:
-	g_strfreev (parts);
-	g_free (data);
-
-	return ret;
-}
-
-/**
- * egg_obj_list_index:
- * @list: a valid #EggObjList instance
- * @index: the element to return
- *
- * Gets an object from the list
- **/
-gconstpointer
-egg_obj_list_index (const EggObjList *list, guint index)
-{
-	gconstpointer obj;
-
-	g_return_val_if_fail (EGG_IS_OBJ_LIST (list), NULL);
-
-	obj = g_ptr_array_index (list->priv->array, index);
-	return obj;
-}
-
-/**
- * egg_obj_list_finalize:
- * @object: a valid #EggObjList instance
- **/
-static void
-egg_obj_list_finalize (GObject *object)
-{
-	EggObjListFreeFunc func_free;
-	gpointer obj;
-	guint i;
-	EggObjList *list;
-	GPtrArray *array;
-	g_return_if_fail (EGG_IS_OBJ_LIST (object));
-	list = EGG_OBJ_LIST (object);
-
-	array = list->priv->array;
-	func_free = list->priv->func_free;
-	for (i=0; i<array->len; i++) {
-		obj = g_ptr_array_index (array, i);
-		if (func_free != NULL)
-			func_free (obj);
-	}
-	g_ptr_array_free (array, TRUE);
-
-	G_OBJECT_CLASS (egg_obj_list_parent_class)->finalize (object);
-}
-
-/**
- * egg_obj_list_class_init:
- * @klass: a valid #EggObjListClass instance
- **/
-static void
-egg_obj_list_class_init (EggObjListClass *klass)
-{
-	GObjectClass *object_class = G_OBJECT_CLASS (klass);
-	object_class->finalize = egg_obj_list_finalize;
-	g_type_class_add_private (klass, sizeof (EggObjListPrivate));
-}
-
-/**
- * egg_obj_list_init:
- * @list: a valid #EggObjList instance
- *
- * Initializes the obj_list class.
- **/
-static void
-egg_obj_list_init (EggObjList *list)
-{
-	list->priv = EGG_OBJ_LIST_GET_PRIVATE (list);
-	list->priv->func_new = NULL;
-	list->priv->func_copy = NULL;
-	list->priv->func_free = NULL;
-	list->priv->func_compare = NULL;
-	list->priv->func_to_string = NULL;
-	list->priv->func_from_string = NULL;
-	list->priv->array = g_ptr_array_new ();
-	list->len = list->priv->array->len;
-}
-
-/**
- * egg_obj_list_new:
- *
- * Return value: A new list class instance.
- **/
-EggObjList *
-egg_obj_list_new (void)
-{
-	EggObjList *list;
-	list = g_object_new (EGG_TYPE_OBJ_LIST, NULL);
-	return EGG_OBJ_LIST (list);
-}
-
-/***************************************************************************
- ***                          MAKE CHECK TESTS                           ***
- ***************************************************************************/
-#ifdef EGG_TEST
-#include "egg-test.h"
-
-void
-egg_obj_list_test (EggTest *test)
-{
-	EggObjList *list;
-
-	if (!egg_test_start (test, "EggObjList"))
-		return;
-
-	/************************************************************/
-	egg_test_title (test, "get an instance");
-	list = egg_obj_list_new ();
-	egg_test_assert (test, list != NULL);
-
-	g_object_unref (list);
-
-	egg_test_end (test);
-}
-#endif
diff --git a/lib/packagekit-glib/egg-obj-list.h b/lib/packagekit-glib/egg-obj-list.h
deleted file mode 100644
index 6eb9a7e..0000000
--- a/lib/packagekit-glib/egg-obj-list.h
+++ /dev/null
@@ -1,102 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
- *
- * Copyright (C) 2008 Richard Hughes <richard at hughsie.com>
- *
- * Licensed under the GNU General Public License Version 2
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#ifndef __EGG_OBJ_LIST_H
-#define __EGG_OBJ_LIST_H
-
-#include <glib-object.h>
-
-G_BEGIN_DECLS
-
-#define EGG_TYPE_OBJ_LIST		(egg_obj_list_get_type ())
-#define EGG_OBJ_LIST(o)			(G_TYPE_CHECK_INSTANCE_CAST ((o), EGG_TYPE_OBJ_LIST, EggObjList))
-#define EGG_OBJ_LIST_CLASS(k)		(G_TYPE_CHECK_CLASS_CAST((k), EGG_TYPE_OBJ_LIST, EggObjListClass))
-#define EGG_IS_OBJ_LIST(o)		(G_TYPE_CHECK_INSTANCE_TYPE ((o), EGG_TYPE_OBJ_LIST))
-#define EGG_IS_OBJ_LIST_CLASS(k)	(G_TYPE_CHECK_CLASS_TYPE ((k), EGG_TYPE_OBJ_LIST))
-#define EGG_OBJ_LIST_GET_CLASS(o)	(G_TYPE_INSTANCE_GET_CLASS ((o), EGG_TYPE_OBJ_LIST, EggObjListClass))
-
-typedef struct EggObjListPrivate EggObjListPrivate;
-
-typedef struct
-{
-	GObject		     	 parent;
-	EggObjListPrivate	*priv;
-	guint			 len;
-} EggObjList;
-
-typedef struct
-{
-	GObjectClass			 parent_class;
-} EggObjListClass;
-
-typedef gpointer (*EggObjListNewFunc)		(void);
-typedef gpointer (*EggObjListCopyFunc)		(gconstpointer		 data);
-typedef void	 (*EggObjListFreeFunc)		(gpointer		 data);
-typedef gint	 (*EggObjListCompareFunc)	(gconstpointer		 data1,
-						 gconstpointer		 data2);
-typedef gpointer (*EggObjListFromStringFunc)	(const gchar		*data);
-typedef gchar	*(*EggObjListToStringFunc)	(gconstpointer		 data);
-
-GType		 egg_obj_list_get_type		(void) G_GNUC_CONST;
-EggObjList	*egg_obj_list_new		(void);
-
-void		 egg_obj_list_set_new		(EggObjList		*list,
-						 EggObjListNewFunc	 func);
-void		 egg_obj_list_set_copy		(EggObjList		*list,
-						 EggObjListCopyFunc	 func);
-void		 egg_obj_list_set_free		(EggObjList		*list,
-						 EggObjListFreeFunc	 func);
-void		 egg_obj_list_set_compare	(EggObjList		*list,
-						 EggObjListCompareFunc	 func);
-void		 egg_obj_list_set_to_string	(EggObjList		*list,
-						 EggObjListToStringFunc	 func);
-void		 egg_obj_list_set_from_string	(EggObjList		*list,
-						 EggObjListFromStringFunc func);
-void		 egg_obj_list_clear		(EggObjList		*list);
-void		 egg_obj_list_print		(EggObjList		*list);
-gchar		*egg_obj_list_to_string		(EggObjList		*list)
-						 G_GNUC_WARN_UNUSED_RESULT;
-gboolean	 egg_obj_list_to_file		(EggObjList		*list,
-						 const gchar		*filename);
-gboolean	 egg_obj_list_from_file		(EggObjList		*list,
-						 const gchar		*filename);
-void		 egg_obj_list_add		(EggObjList		*list,
-						 gconstpointer		 data);
-void		 egg_obj_list_add_list		(EggObjList		*list,
-						 const EggObjList	*data);
-void		 egg_obj_list_add_array		(EggObjList		*list,
-						 const GPtrArray	*data);
-void		 egg_obj_list_remove_list	(EggObjList		*list,
-						 const EggObjList	*data);
-void		 egg_obj_list_remove_duplicate	(EggObjList		*list);
-gboolean	 egg_obj_list_exists		(EggObjList		*list,
-						 gconstpointer		 data);
-gboolean	 egg_obj_list_remove		(EggObjList		*list,
-						 gconstpointer		 data);
-gboolean	 egg_obj_list_remove_index	(EggObjList		*list,
-						 guint			 index);
-gconstpointer	 egg_obj_list_index		(const EggObjList	*list,
-						 guint			 index);
-const GPtrArray	*egg_obj_list_get_array		(const EggObjList	*list);
-
-G_END_DECLS
-
-#endif /* __EGG_OBJ_LIST_H */
diff --git a/lib/packagekit-glib/packagekit.h b/lib/packagekit-glib/packagekit.h
index 67c110a..2d679fa 100644
--- a/lib/packagekit-glib/packagekit.h
+++ b/lib/packagekit-glib/packagekit.h
@@ -35,6 +35,7 @@
 #include <packagekit-glib/pk-distro-upgrade-obj.h>
 #include <packagekit-glib/pk-enum.h>
 #include <packagekit-glib/pk-extra.h>
+#include <packagekit-glib/pk-obj-list.h>
 #include <packagekit-glib/pk-package-id.h>
 #include <packagekit-glib/pk-package-ids.h>
 #include <packagekit-glib/pk-package-list.h>
diff --git a/lib/packagekit-glib/pk-client.c b/lib/packagekit-glib/pk-client.c
index 081e457..41409bb 100644
--- a/lib/packagekit-glib/pk-client.c
+++ b/lib/packagekit-glib/pk-client.c
@@ -60,11 +60,10 @@
 #include <packagekit-glib/pk-details-obj.h>
 #include <packagekit-glib/pk-category-obj.h>
 #include <packagekit-glib/pk-distro-upgrade-obj.h>
+#include <packagekit-glib/pk-obj-list.h>
 
 #include "egg-debug.h"
 #include "egg-string.h"
-#include "egg-obj-list.h"
-
 
 static void     pk_client_class_init	(PkClientClass *klass);
 static void     pk_client_init		(PkClient      *client);
@@ -88,7 +87,7 @@ struct _PkClientPrivate
 	gboolean		 synchronous;
 	gchar			*tid;
 	PkControl		*control;
-	EggObjList		*cached_data;
+	PkObjList		*cached_data;
 	PkPackageList		*package_list;
 	PkConnection		*pconnection;
 	gulong			 pconnection_signal_id;
@@ -497,7 +496,7 @@ pk_client_get_cached_objects (PkClient *client)
 	g_return_val_if_fail (PK_IS_CLIENT (client), NULL);
 	if (!client->priv->use_buffer)
 		return NULL;
-	array = egg_obj_list_get_array (client->priv->cached_data);
+	array = pk_obj_list_get_array (client->priv->cached_data);
 	return array;
 }
 
@@ -654,7 +653,7 @@ pk_client_distro_upgrade_cb (DBusGProxy *proxy, const gchar *type_text, const gc
 
 	/* cache */
 	if (client->priv->use_buffer || client->priv->synchronous)
-		egg_obj_list_add (client->priv->cached_data, obj);
+		pk_obj_list_add (client->priv->cached_data, obj);
 
 	pk_distro_upgrade_obj_free (obj);
 }
@@ -697,7 +696,7 @@ pk_client_update_detail_cb (DBusGProxy  *proxy, const gchar *package_id, const g
 
 	/* cache */
 	if (client->priv->use_buffer || client->priv->synchronous)
-		egg_obj_list_add (client->priv->cached_data, detail);
+		pk_obj_list_add (client->priv->cached_data, detail);
 
 	if (issued != NULL)
 		g_date_free (issued);
@@ -725,7 +724,7 @@ pk_client_category_cb (DBusGProxy  *proxy, const gchar *parent_id, const gchar *
 
 	/* cache */
 	if (client->priv->use_buffer || client->priv->synchronous)
-		egg_obj_list_add (client->priv->cached_data, category);
+		pk_obj_list_add (client->priv->cached_data, category);
 
 	pk_category_obj_free (category);
 }
@@ -755,7 +754,7 @@ pk_client_details_cb (DBusGProxy *proxy, const gchar *package_id, const gchar *l
 
 	/* cache */
 	if (client->priv->use_buffer || client->priv->synchronous)
-		egg_obj_list_add (client->priv->cached_data, details);
+		pk_obj_list_add (client->priv->cached_data, details);
 
 	pk_package_id_free (id);
 	pk_details_obj_free (details);
@@ -1308,8 +1307,8 @@ pk_client_get_categories (PkClient *client, GError **error)
 	client->priv->role = PK_ROLE_ENUM_GET_CATEGORIES;
 
 	/* we use the cached objects support */
-	egg_obj_list_set_copy (client->priv->cached_data, (EggObjListCopyFunc) pk_category_obj_copy);
-	egg_obj_list_set_free (client->priv->cached_data, (EggObjListFreeFunc) pk_category_obj_free);
+	pk_obj_list_set_copy (client->priv->cached_data, (PkObjListCopyFunc) pk_category_obj_copy);
+	pk_obj_list_set_free (client->priv->cached_data, (PkObjListFreeFunc) pk_category_obj_free);
 
 	/* check to see if we have a valid proxy */
 	if (client->priv->proxy == NULL) {
@@ -2019,8 +2018,8 @@ pk_client_get_update_detail (PkClient *client, gchar **package_ids, GError **err
 	client->priv->cached_package_ids = g_strdupv (package_ids);
 
 	/* we use the cached objects support */
-	egg_obj_list_set_copy (client->priv->cached_data, (EggObjListCopyFunc) pk_update_detail_obj_copy);
-	egg_obj_list_set_free (client->priv->cached_data, (EggObjListFreeFunc) pk_update_detail_obj_free);
+	pk_obj_list_set_copy (client->priv->cached_data, (PkObjListCopyFunc) pk_update_detail_obj_copy);
+	pk_obj_list_set_free (client->priv->cached_data, (PkObjListFreeFunc) pk_update_detail_obj_free);
 
 	/* check to see if we have a valid proxy */
 	if (client->priv->proxy == NULL) {
@@ -2183,8 +2182,8 @@ pk_client_get_details (PkClient *client, gchar **package_ids, GError **error)
 		return FALSE;
 
 	/* we use the cached objects support */
-	egg_obj_list_set_copy (client->priv->cached_data, (EggObjListCopyFunc) pk_details_obj_copy);
-	egg_obj_list_set_free (client->priv->cached_data, (EggObjListFreeFunc) pk_details_obj_free);
+	pk_obj_list_set_copy (client->priv->cached_data, (PkObjListCopyFunc) pk_details_obj_copy);
+	pk_obj_list_set_free (client->priv->cached_data, (PkObjListFreeFunc) pk_details_obj_free);
 
 	/* save this so we can re-issue it */
 	client->priv->role = PK_ROLE_ENUM_GET_DETAILS;
@@ -2237,8 +2236,8 @@ pk_client_get_distro_upgrades (PkClient *client, GError **error)
 	client->priv->role = PK_ROLE_ENUM_GET_DISTRO_UPGRADES;
 
 	/* we use the cached objects support */
-	egg_obj_list_set_copy (client->priv->cached_data, (EggObjListCopyFunc) pk_distro_upgrade_obj_copy);
-	egg_obj_list_set_free (client->priv->cached_data, (EggObjListFreeFunc) pk_distro_upgrade_obj_free);
+	pk_obj_list_set_copy (client->priv->cached_data, (PkObjListCopyFunc) pk_distro_upgrade_obj_copy);
+	pk_obj_list_set_free (client->priv->cached_data, (PkObjListFreeFunc) pk_distro_upgrade_obj_free);
 
 	/* check to see if we have a valid proxy */
 	if (client->priv->proxy == NULL) {
@@ -3355,7 +3354,7 @@ pk_client_requeue (PkClient *client, GError **error)
 
 	/* clear package list */
 	pk_package_list_clear (client->priv->package_list);
-	egg_obj_list_clear (client->priv->cached_data);
+	pk_obj_list_clear (client->priv->cached_data);
 
 	/* do the correct action with the cached parameters */
 	if (priv->role == PK_ROLE_ENUM_GET_DEPENDS)
@@ -3976,7 +3975,7 @@ pk_client_reset (PkClient *client, GError **error)
 	client->priv->is_finished = FALSE;
 
 	pk_package_list_clear (client->priv->package_list);
-	egg_obj_list_clear (client->priv->cached_data);
+	pk_obj_list_clear (client->priv->cached_data);
 	return TRUE;
 }
 
@@ -3999,7 +3998,7 @@ pk_client_init (PkClient *client)
 	client->priv->is_finished = FALSE;
 	client->priv->is_finishing = FALSE;
 	client->priv->package_list = pk_package_list_new ();
-	client->priv->cached_data = egg_obj_list_new ();
+	client->priv->cached_data = pk_obj_list_new ();
 	client->priv->cached_package_id = NULL;
 	client->priv->cached_package_ids = NULL;
 	client->priv->cached_transaction_id = NULL;
diff --git a/lib/packagekit-glib/pk-obj-list.c b/lib/packagekit-glib/pk-obj-list.c
new file mode 100644
index 0000000..0f4a8c0
--- /dev/null
+++ b/lib/packagekit-glib/pk-obj-list.c
@@ -0,0 +1,741 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2008 Richard Hughes <richard at hughsie.com>
+ *
+ * Licensed under the GNU General Public License Version 2
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+#include <glib/gi18n.h>
+#include <glib.h>
+#include <packagekit-glib/pk-obj-list.h>
+
+#include "egg-debug.h"
+
+#define PK_OBJ_LIST_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), EGG_TYPE_OBJ_LIST, PkObjListPrivate))
+
+struct PkObjListPrivate
+{
+	PkObjListNewFunc	 func_new;
+	PkObjListCopyFunc	 func_copy;
+	PkObjListFreeFunc	 func_free;
+	PkObjListCompareFunc	 func_compare;
+	PkObjListToStringFunc	 func_to_string;
+	PkObjListFromStringFunc func_from_string;
+	GPtrArray		*array;
+};
+
+G_DEFINE_TYPE (PkObjList, pk_obj_list, G_TYPE_OBJECT)
+
+/**
+ * pk_obj_list_set_new:
+ * @list: a valid #PkObjList instance
+ * @func: typedef'd function
+ *
+ * Adds a creation func
+ **/
+void
+pk_obj_list_set_new (PkObjList *list, PkObjListNewFunc func)
+{
+	g_return_if_fail (PK_IS_OBJ_LIST (list));
+	list->priv->func_new = func;
+}
+
+/**
+ * pk_obj_list_set_copy:
+ * @list: a valid #PkObjList instance
+ * @func: typedef'd function
+ *
+ * Adds a copy func
+ **/
+void
+pk_obj_list_set_copy (PkObjList *list, PkObjListCopyFunc func)
+{
+	g_return_if_fail (PK_IS_OBJ_LIST (list));
+	list->priv->func_copy = func;
+}
+
+/**
+ * pk_obj_list_set_free:
+ * @list: a valid #PkObjList instance
+ * @func: typedef'd function
+ *
+ * Adds a free func
+ **/
+void
+pk_obj_list_set_free (PkObjList *list, PkObjListFreeFunc func)
+{
+	g_return_if_fail (PK_IS_OBJ_LIST (list));
+	list->priv->func_free = func;
+}
+
+/**
+ * pk_obj_list_set_compare:
+ * @list: a valid #PkObjList instance
+ * @func: typedef'd function
+ *
+ * Adds a compare func
+ **/
+void
+pk_obj_list_set_compare (PkObjList *list, PkObjListCompareFunc func)
+{
+	g_return_if_fail (PK_IS_OBJ_LIST (list));
+	list->priv->func_compare = func;
+}
+
+/**
+ * pk_obj_list_set_to_string:
+ * @list: a valid #PkObjList instance
+ * @func: typedef'd function
+ *
+ * Adds a to string func
+ **/
+void
+pk_obj_list_set_to_string (PkObjList *list, PkObjListToStringFunc func)
+{
+	g_return_if_fail (PK_IS_OBJ_LIST (list));
+	list->priv->func_to_string = func;
+}
+
+/**
+ * pk_obj_list_set_from_string:
+ * @list: a valid #PkObjList instance
+ * @func: typedef'd function
+ *
+ * Adds a from string func
+ **/
+void
+pk_obj_list_set_from_string (PkObjList *list, PkObjListFromStringFunc func)
+{
+	g_return_if_fail (PK_IS_OBJ_LIST (list));
+	list->priv->func_from_string = func;
+}
+
+/**
+ * pk_obj_list_get_array:
+ * @list: a valid #PkObjList instance
+ *
+ * Gets a GPtrArray representation of the package list
+ **/
+const GPtrArray	*
+pk_obj_list_get_array (const PkObjList *list)
+{
+	g_return_val_if_fail (PK_IS_OBJ_LIST (list), NULL);
+	return list->priv->array;
+}
+
+/**
+ * pk_obj_list_clear:
+ * @list: a valid #PkObjList instance
+ *
+ * Clears the package list
+ **/
+void
+pk_obj_list_clear (PkObjList *list)
+{
+	guint i;
+	gpointer obj;
+	GPtrArray *array;
+	PkObjListFreeFunc func_free;
+
+	g_return_if_fail (PK_IS_OBJ_LIST (list));
+
+	array = list->priv->array;
+	func_free = list->priv->func_free;
+	for (i=0; i<array->len; i++) {
+		obj = g_ptr_array_index (array, i);
+		if (func_free != NULL)
+			func_free (obj);
+		g_ptr_array_remove (array, obj);
+	}
+	list->len = 0;
+}
+
+/**
+ * pk_obj_list_print:
+ * @list: a valid #PkObjList instance
+ *
+ * Prints the package list
+ **/
+void
+pk_obj_list_print (PkObjList *list)
+{
+	guint i;
+	gpointer obj;
+	GPtrArray *array;
+	gchar *text;
+	PkObjListToStringFunc func_to_string;
+
+	g_return_if_fail (list->priv->func_to_string != NULL);
+	g_return_if_fail (PK_IS_OBJ_LIST (list));
+
+	array = list->priv->array;
+	func_to_string = list->priv->func_to_string;
+	for (i=0; i<array->len; i++) {
+		obj = g_ptr_array_index (array, i);
+		text = func_to_string (obj);
+		g_print ("(%i)\t%s\n", i, text);
+		g_free (text);
+	}
+}
+
+/**
+ * pk_obj_list_to_string:
+ * @list: a valid #PkObjList instance
+ *
+ * Converts the list to a newline delimited string
+ **/
+gchar *
+pk_obj_list_to_string (PkObjList *list)
+{
+	guint i;
+	gpointer obj;
+	GPtrArray *array;
+	gchar *text;
+	PkObjListToStringFunc func_to_string;
+	GString *string;
+
+	g_return_val_if_fail (list->priv->func_to_string != NULL, NULL);
+	g_return_val_if_fail (PK_IS_OBJ_LIST (list), NULL);
+
+	array = list->priv->array;
+	func_to_string = list->priv->func_to_string;
+	string = g_string_new ("");
+	for (i=0; i<array->len; i++) {
+		obj = g_ptr_array_index (array, i);
+		text = func_to_string (obj);
+		g_string_append_printf (string, "%s\n", text);
+		g_free (text);
+	}
+	/* remove trailing newline */
+	if (string->len != 0)
+		g_string_set_size (string, string->len-1);
+
+	return g_string_free (string, FALSE);
+}
+
+/**
+ * pk_obj_list_add:
+ * @list: a valid #PkObjList instance
+ * @obj: a valid #gpointer object
+ *
+ * Adds a copy of the object to the list
+ **/
+void
+pk_obj_list_add (PkObjList *list, gconstpointer obj)
+{
+	gpointer obj_new;
+
+	g_return_if_fail (PK_IS_OBJ_LIST (list));
+	g_return_if_fail (obj != NULL);
+	g_return_if_fail (list->priv->func_copy != NULL);
+
+	/* TODO: are we already in the list? */
+	obj_new = list->priv->func_copy (obj);
+	g_ptr_array_add (list->priv->array, obj_new);
+	list->len = list->priv->array->len;
+}
+
+/**
+ * pk_obj_list_add_list:
+ *
+ * Makes a deep copy of the list
+ **/
+void
+pk_obj_list_add_list (PkObjList *list, const PkObjList *data)
+{
+	guint i;
+	gconstpointer obj;
+
+	g_return_if_fail (PK_IS_OBJ_LIST (list));
+	g_return_if_fail (PK_IS_OBJ_LIST (data));
+
+	/* add data items to list */
+	for (i=0; i < data->len; i++) {
+		obj = pk_obj_list_index (data, i);
+		pk_obj_list_add (list, obj);
+	}
+}
+
+/**
+ * pk_obj_list_add_array:
+ *
+ * Makes a deep copy of the data in the array.
+ * The data going into the list MUST be the correct type,
+ * else bad things will happen.
+ **/
+void
+pk_obj_list_add_array (PkObjList *list, const GPtrArray *data)
+{
+	guint i;
+	gconstpointer obj;
+
+	g_return_if_fail (PK_IS_OBJ_LIST (list));
+
+	/* add data items to list */
+	for (i=0; i < data->len; i++) {
+		obj = g_ptr_array_index (data, i);
+		pk_obj_list_add (list, obj);
+	}
+}
+
+/**
+ * pk_obj_list_add_strv:
+ *
+ * Makes a deep copy of the data in the array.
+ * The data going into the list MUST be the correct type,
+ * else bad things will happen.
+ **/
+void
+pk_obj_list_add_strv (PkObjList *list, gpointer **data)
+{
+	guint i;
+	guint len;
+	len = g_strv_length ((gchar**)data);
+	for (i=0; i<len; i++)
+		pk_obj_list_add (list, data[i]);
+}
+
+/**
+ * pk_obj_list_remove_list:
+ *
+ * Makes a deep copy of the list
+ **/
+void
+pk_obj_list_remove_list (PkObjList *list, const PkObjList *data)
+{
+	guint i;
+	gconstpointer obj;
+
+	g_return_if_fail (PK_IS_OBJ_LIST (list));
+	g_return_if_fail (PK_IS_OBJ_LIST (data));
+
+	/* remove data items from list */
+	for (i=0; i < data->len; i++) {
+		obj = pk_obj_list_index (data, i);
+		pk_obj_list_remove (list, obj);
+	}
+}
+
+/**
+ * pk_obj_list_find_obj:
+ * @list: a valid #PkObjList instance
+ * @obj: a valid #gpointer object
+ *
+ * Return value: the object
+ *
+ * Removes an item from a list
+ **/
+static gboolean
+pk_obj_list_obj_equal (PkObjList *list, gconstpointer obj1, gconstpointer obj2)
+{
+	PkObjListCompareFunc func_compare;
+
+	/* two less pointer deferences... */
+	func_compare = list->priv->func_compare;
+
+	/* trivial case */
+	if (func_compare == NULL)
+		return obj1 == obj2;
+
+	/* use helper function */
+	return func_compare (obj1, obj2) == 0;
+}
+
+/**
+ * pk_obj_list_remove_duplicate:
+ *
+ * Removes duplicate entries
+ **/
+void
+pk_obj_list_remove_duplicate (PkObjList *list)
+{
+	guint i, j;
+	gconstpointer obj1;
+	gconstpointer obj2;
+
+	for (i=0; i<list->len; i++) {
+		obj1 = pk_obj_list_index (list, i);
+		for (j=0; j<list->len; j++) {
+			if (i == j)
+				break;
+			obj2 = pk_obj_list_index (list, j);
+			if (pk_obj_list_obj_equal (list, obj1, obj2))
+				pk_obj_list_remove_index (list, i);
+		}
+	}
+}
+
+/**
+ * pk_obj_list_find_obj:
+ * @list: a valid #PkObjList instance
+ * @obj: a valid #gconstpointer object
+ *
+ * Return value: the object
+ *
+ * Finds an item in a list
+ **/
+static gpointer
+pk_obj_list_find_obj (PkObjList *list, gconstpointer obj)
+{
+	guint i;
+	gconstpointer obj_tmp;
+	PkObjListCompareFunc func_compare;
+
+	/* the pointers point to the same thing */
+	func_compare = list->priv->func_compare;
+	if (func_compare == NULL)
+		return (gpointer) obj;
+
+	/* remove data items from list */
+	for (i=0; i < list->len; i++) {
+		obj_tmp = pk_obj_list_index (list, i);
+		if (func_compare (obj_tmp, obj) == 0)
+			return (gpointer) obj_tmp;
+	}
+
+	/* nothing found */
+	return NULL;
+}
+
+/**
+ * pk_obj_list_exists:
+ * @list: a valid #PkObjList instance
+ * @obj: a valid #gconstpointer object
+ *
+ * Return value: the object
+ *
+ * Finds an item in a list
+ **/
+gboolean
+pk_obj_list_exists (PkObjList *list, gconstpointer obj)
+{
+	gconstpointer obj_tmp;
+	obj_tmp = pk_obj_list_find_obj (list, obj);
+	return (obj_tmp != NULL);
+}
+
+/**
+ * pk_obj_list_remove:
+ * @list: a valid #PkObjList instance
+ * @obj: a valid #gpointer object
+ *
+ * Return value: TRUE is we removed something
+ *
+ * Removes all the items from a list matching obj
+ **/
+gboolean
+pk_obj_list_remove (PkObjList *list, gconstpointer obj)
+{
+	gboolean ret;
+	gpointer obj_new;
+	gboolean found = FALSE;
+
+	g_return_val_if_fail (PK_IS_OBJ_LIST (list), FALSE);
+	g_return_val_if_fail (obj != NULL, FALSE);
+	g_return_val_if_fail (list->priv->func_free != NULL, FALSE);
+
+	do {
+		/* get the object */
+		obj_new = pk_obj_list_find_obj (list, obj);
+		if (obj_new == NULL)
+			break;
+
+		/* try to remove */
+		ret = g_ptr_array_remove (list->priv->array, obj_new);
+
+		/* no compare function, and pointer not found */
+		if (!ret)
+			break;
+
+		found = TRUE;
+		list->priv->func_free (obj_new);
+		list->len = list->priv->array->len;
+	} while (ret);
+
+	return found;
+}
+
+/**
+ * pk_obj_list_remove_index:
+ * @list: a valid #PkObjList instance
+ * @index: the number to remove
+ *
+ * Return value: TRUE is we removed something
+ *
+ * Removes an item from a list
+ **/
+gboolean
+pk_obj_list_remove_index (PkObjList *list, guint index)
+{
+	gpointer obj;
+
+	g_return_val_if_fail (PK_IS_OBJ_LIST (list), FALSE);
+	g_return_val_if_fail (list->priv->func_free != NULL, FALSE);
+
+	/* get the object */
+	obj = g_ptr_array_remove_index (list->priv->array, index);
+	if (obj == NULL)
+		return FALSE;
+	list->priv->func_free (obj);
+	list->len = list->priv->array->len;
+	return TRUE;
+}
+
+/**
+ * pk_obj_list_to_file:
+ * @list: a valid #PkObjList instance
+ * @filename: a filename
+ *
+ * Saves a copy of the list to a file
+ **/
+gboolean
+pk_obj_list_to_file (PkObjList *list, const gchar *filename)
+{
+	guint i;
+	gconstpointer obj;
+	gchar *part;
+	GString *string;
+	gboolean ret = TRUE;
+	GError *error = NULL;
+	PkObjListFreeFunc func_free;
+	PkObjListToStringFunc func_to_string;
+
+	g_return_val_if_fail (PK_IS_OBJ_LIST (list), FALSE);
+	g_return_val_if_fail (list->priv->func_to_string != NULL, FALSE);
+	g_return_val_if_fail (list->priv->func_free != NULL, FALSE);
+
+	func_free = list->priv->func_free;
+	func_to_string = list->priv->func_to_string;
+
+	/* generate data */
+	string = g_string_new ("");
+	for (i=0; i<list->len; i++) {
+		obj = pk_obj_list_index (list, i);
+		part = func_to_string (obj);
+		if (part == NULL) {
+			ret = FALSE;
+			break;
+		}
+		g_string_append_printf (string, "%s\n", part);
+		g_free (part);
+	}
+	part = g_string_free (string, FALSE);
+
+	/* we failed to convert to string */
+	if (!ret) {
+		egg_warning ("failed to convert");
+		goto out;
+	}
+
+	/* save to disk */
+	ret = g_file_set_contents (filename, part, -1, &error);
+	if (!ret) {
+		egg_warning ("failed to set data: %s", error->message);
+		g_error_free (error);
+		goto out;
+	}
+	egg_debug ("saved %s", filename);
+
+out:
+	g_free (part);
+	return ret;
+}
+
+/**
+ * pk_obj_list_from_file:
+ * @list: a valid #PkObjList instance
+ * @filename: a filename
+ *
+ * Appends the list from a file
+ **/
+gboolean
+pk_obj_list_from_file (PkObjList *list, const gchar *filename)
+{
+	gboolean ret;
+	GError *error = NULL;
+	gchar *data = NULL;
+	gchar **parts = NULL;
+	guint i;
+	guint length;
+	gpointer obj;
+	PkObjListFreeFunc func_free;
+	PkObjListFromStringFunc func_from_string;
+
+	g_return_val_if_fail (PK_IS_OBJ_LIST (list), FALSE);
+	g_return_val_if_fail (list->priv->func_from_string != NULL, FALSE);
+	g_return_val_if_fail (list->priv->func_free != NULL, FALSE);
+
+	func_free = list->priv->func_free;
+	func_from_string = list->priv->func_from_string;
+
+	/* do we exist */
+	ret = g_file_test (filename, G_FILE_TEST_EXISTS);
+	if (!ret) {
+		egg_debug ("failed to get data from %s as file does not exist", filename);
+		goto out;
+	}
+
+	/* get contents */
+	ret = g_file_get_contents (filename, &data, NULL, &error);
+	if (!ret) {
+		egg_warning ("failed to get data: %s", error->message);
+		g_error_free (error);
+		goto out;
+	}
+
+	/* split by line ending */
+	parts = g_strsplit (data, "\n", 0);
+	length = g_strv_length (parts);
+	if (length == 0) {
+		egg_debug ("no data in %s", filename);
+		goto out;
+	}
+
+	/* add valid entries */
+	egg_debug ("loading %i items of data from %s", length, filename);
+	for (i=0; i<length-1; i++) {
+		obj = func_from_string (parts[i]);
+		if (obj != NULL)
+			pk_obj_list_add (list, obj);
+		func_free (obj);
+	}
+
+out:
+	g_strfreev (parts);
+	g_free (data);
+
+	return ret;
+}
+
+/**
+ * pk_obj_list_index:
+ * @list: a valid #PkObjList instance
+ * @index: the element to return
+ *
+ * Gets an object from the list
+ **/
+gconstpointer
+pk_obj_list_index (const PkObjList *list, guint index)
+{
+	gconstpointer obj;
+
+	g_return_val_if_fail (PK_IS_OBJ_LIST (list), NULL);
+
+	obj = g_ptr_array_index (list->priv->array, index);
+	return obj;
+}
+
+/**
+ * pk_obj_list_finalize:
+ * @object: a valid #PkObjList instance
+ **/
+static void
+pk_obj_list_finalize (GObject *object)
+{
+	PkObjListFreeFunc func_free;
+	gpointer obj;
+	guint i;
+	PkObjList *list;
+	GPtrArray *array;
+	g_return_if_fail (PK_IS_OBJ_LIST (object));
+	list = PK_OBJ_LIST (object);
+
+	array = list->priv->array;
+	func_free = list->priv->func_free;
+	for (i=0; i<array->len; i++) {
+		obj = g_ptr_array_index (array, i);
+		if (func_free != NULL)
+			func_free (obj);
+	}
+	g_ptr_array_free (array, TRUE);
+
+	G_OBJECT_CLASS (pk_obj_list_parent_class)->finalize (object);
+}
+
+/**
+ * pk_obj_list_class_init:
+ * @klass: a valid #PkObjListClass instance
+ **/
+static void
+pk_obj_list_class_init (PkObjListClass *klass)
+{
+	GObjectClass *object_class = G_OBJECT_CLASS (klass);
+	object_class->finalize = pk_obj_list_finalize;
+	g_type_class_add_private (klass, sizeof (PkObjListPrivate));
+}
+
+/**
+ * pk_obj_list_init:
+ * @list: a valid #PkObjList instance
+ *
+ * Initializes the obj_list class.
+ **/
+static void
+pk_obj_list_init (PkObjList *list)
+{
+	list->priv = PK_OBJ_LIST_GET_PRIVATE (list);
+	list->priv->func_new = NULL;
+	list->priv->func_copy = NULL;
+	list->priv->func_free = NULL;
+	list->priv->func_compare = NULL;
+	list->priv->func_to_string = NULL;
+	list->priv->func_from_string = NULL;
+	list->priv->array = g_ptr_array_new ();
+	list->len = list->priv->array->len;
+}
+
+/**
+ * pk_obj_list_new:
+ *
+ * Return value: A new list class instance.
+ **/
+PkObjList *
+pk_obj_list_new (void)
+{
+	PkObjList *list;
+	list = g_object_new (EGG_TYPE_OBJ_LIST, NULL);
+	return PK_OBJ_LIST (list);
+}
+
+/***************************************************************************
+ ***                          MAKE CHECK TESTS                           ***
+ ***************************************************************************/
+#ifdef EGG_TEST
+#include "egg-test.h"
+
+void
+pk_obj_list_test (EggTest *test)
+{
+	PkObjList *list;
+
+	if (!egg_test_start (test, "PkObjList"))
+		return;
+
+	/************************************************************/
+	egg_test_title (test, "get an instance");
+	list = pk_obj_list_new ();
+	egg_test_assert (test, list != NULL);
+
+	g_object_unref (list);
+
+	egg_test_end (test);
+}
+#endif
diff --git a/lib/packagekit-glib/pk-obj-list.h b/lib/packagekit-glib/pk-obj-list.h
new file mode 100644
index 0000000..898be11
--- /dev/null
+++ b/lib/packagekit-glib/pk-obj-list.h
@@ -0,0 +1,104 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+ *
+ * Copyright (C) 2008 Richard Hughes <richard at hughsie.com>
+ *
+ * Licensed under the GNU General Public License Version 2
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __PK_OBJ_LIST_H
+#define __PK_OBJ_LIST_H
+
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+
+#define EGG_TYPE_OBJ_LIST		(pk_obj_list_get_type ())
+#define PK_OBJ_LIST(o)			(G_TYPE_CHECK_INSTANCE_CAST ((o), EGG_TYPE_OBJ_LIST, PkObjList))
+#define PK_OBJ_LIST_CLASS(k)		(G_TYPE_CHECK_CLASS_CAST((k), EGG_TYPE_OBJ_LIST, PkObjListClass))
+#define PK_IS_OBJ_LIST(o)		(G_TYPE_CHECK_INSTANCE_TYPE ((o), EGG_TYPE_OBJ_LIST))
+#define PK_IS_OBJ_LIST_CLASS(k)	(G_TYPE_CHECK_CLASS_TYPE ((k), EGG_TYPE_OBJ_LIST))
+#define PK_OBJ_LIST_GET_CLASS(o)	(G_TYPE_INSTANCE_GET_CLASS ((o), EGG_TYPE_OBJ_LIST, PkObjListClass))
+
+typedef struct PkObjListPrivate PkObjListPrivate;
+
+typedef struct
+{
+	GObject		     	 parent;
+	PkObjListPrivate	*priv;
+	guint			 len;
+} PkObjList;
+
+typedef struct
+{
+	GObjectClass			 parent_class;
+} PkObjListClass;
+
+typedef gpointer (*PkObjListNewFunc)		(void);
+typedef gpointer (*PkObjListCopyFunc)		(gconstpointer		 data);
+typedef void	 (*PkObjListFreeFunc)		(gpointer		 data);
+typedef gint	 (*PkObjListCompareFunc)	(gconstpointer		 data1,
+						 gconstpointer		 data2);
+typedef gpointer (*PkObjListFromStringFunc)	(const gchar		*data);
+typedef gchar	*(*PkObjListToStringFunc)	(gconstpointer		 data);
+
+GType		 pk_obj_list_get_type		(void) G_GNUC_CONST;
+PkObjList	*pk_obj_list_new		(void);
+
+void		 pk_obj_list_set_new		(PkObjList		*list,
+						 PkObjListNewFunc	 func);
+void		 pk_obj_list_set_copy		(PkObjList		*list,
+						 PkObjListCopyFunc	 func);
+void		 pk_obj_list_set_free		(PkObjList		*list,
+						 PkObjListFreeFunc	 func);
+void		 pk_obj_list_set_compare	(PkObjList		*list,
+						 PkObjListCompareFunc	 func);
+void		 pk_obj_list_set_to_string	(PkObjList		*list,
+						 PkObjListToStringFunc	 func);
+void		 pk_obj_list_set_from_string	(PkObjList		*list,
+						 PkObjListFromStringFunc func);
+void		 pk_obj_list_clear		(PkObjList		*list);
+void		 pk_obj_list_print		(PkObjList		*list);
+gchar		*pk_obj_list_to_string		(PkObjList		*list)
+						 G_GNUC_WARN_UNUSED_RESULT;
+gboolean	 pk_obj_list_to_file		(PkObjList		*list,
+						 const gchar		*filename);
+gboolean	 pk_obj_list_from_file		(PkObjList		*list,
+						 const gchar		*filename);
+void		 pk_obj_list_add		(PkObjList		*list,
+						 gconstpointer		 data);
+void		 pk_obj_list_add_list		(PkObjList		*list,
+						 const PkObjList	*data);
+void		 pk_obj_list_add_array		(PkObjList		*list,
+						 const GPtrArray	*data);
+void		 pk_obj_list_add_strv		(PkObjList		*list,
+						 gpointer		**data);
+void		 pk_obj_list_remove_list	(PkObjList		*list,
+						 const PkObjList	*data);
+void		 pk_obj_list_remove_duplicate	(PkObjList		*list);
+gboolean	 pk_obj_list_exists		(PkObjList		*list,
+						 gconstpointer		 data);
+gboolean	 pk_obj_list_remove		(PkObjList		*list,
+						 gconstpointer		 data);
+gboolean	 pk_obj_list_remove_index	(PkObjList		*list,
+						 guint			 index);
+gconstpointer	 pk_obj_list_index		(const PkObjList	*list,
+						 guint			 index);
+const GPtrArray	*pk_obj_list_get_array		(const PkObjList	*list);
+
+G_END_DECLS
+
+#endif /* __PK_OBJ_LIST_H */
diff --git a/lib/packagekit-glib/pk-self-test.c b/lib/packagekit-glib/pk-self-test.c
index 56c0303..615cd9b 100644
--- a/lib/packagekit-glib/pk-self-test.c
+++ b/lib/packagekit-glib/pk-self-test.c
@@ -28,7 +28,7 @@
 
 /* prototypes */
 void egg_string_test (EggTest *test);
-void egg_obj_list_test (EggTest *test);
+void pk_obj_list_test (EggTest *test);
 void pk_package_id_test (EggTest *test);
 void pk_package_ids_test (EggTest *test);
 void pk_package_obj_test (EggTest *test);
@@ -57,7 +57,7 @@ main (int argc, char **argv)
 
 	/* tests go here */
 	egg_string_test (test);
-	egg_obj_list_test (test);
+	pk_obj_list_test (test);
 	pk_common_test (test);
 	pk_package_id_test (test);
 	pk_package_ids_test (test);
diff --git a/src/Makefile.am b/src/Makefile.am
index 1d927f3..0533745 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -45,10 +45,6 @@ shared_SOURCES =					\
 	egg-debug.h					\
 	egg-string.c					\
 	egg-string.h					\
-	egg-obj-list.c					\
-	egg-obj-list.h					\
-	egg-string-list.c				\
-	egg-string-list.h				\
 	egg-dbus-monitor.c				\
 	egg-dbus-monitor.h				\
 	pk-marshal.c					\
diff --git a/src/egg-obj-list.c b/src/egg-obj-list.c
deleted file mode 120000
index 0da684d..0000000
--- a/src/egg-obj-list.c
+++ /dev/null
@@ -1 +0,0 @@
-../lib/packagekit-glib/egg-obj-list.c
\ No newline at end of file
diff --git a/src/egg-obj-list.h b/src/egg-obj-list.h
deleted file mode 120000
index 5ce31a3..0000000
--- a/src/egg-obj-list.h
+++ /dev/null
@@ -1 +0,0 @@
-../lib/packagekit-glib/egg-obj-list.h
\ No newline at end of file
diff --git a/src/egg-string-list.c b/src/egg-string-list.c
deleted file mode 100644
index 73f8cb8..0000000
--- a/src/egg-string-list.c
+++ /dev/null
@@ -1,205 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
- *
- * Copyright (C) 2008 Richard Hughes <richard at hughsie.com>
- *
- * Licensed under the GNU General Public License Version 2
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include <string.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <glib.h>
-
-#include "egg-debug.h"
-#include "egg-obj-list.h"
-#include "egg-string.h"
-#include "egg-string-list.h"
-
-static void     egg_string_list_class_init	(EggStringListClass	*klass);
-static void     egg_string_list_init		(EggStringList		*string_list);
-static void     egg_string_list_finalize	(GObject		*object);
-
-#define EGG_STRING_LIST_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), EGG_TYPE_STRING_LIST, EggStringListPrivate))
-
-G_DEFINE_TYPE (EggStringList, egg_string_list, EGG_TYPE_OBJ_LIST)
-
-/**
- * egg_string_list_add_strv:
- **/
-void
-egg_string_list_add_strv (EggStringList *list, gchar **data)
-{
-	guint i;
-	guint len;
-	len = g_strv_length (data);
-	for (i=0; i<len; i++)
-		egg_obj_list_add (EGG_OBJ_LIST(list), data[i]);
-}
-
-/**
- * egg_string_list_index:
- **/
-inline const gchar *
-egg_string_list_index (const EggStringList *list, guint index)
-{
-	return (const gchar *) egg_obj_list_index (EGG_OBJ_LIST(list), index);
-}
-
-/**
- * egg_string_list_print:
- **/
-void
-egg_string_list_print (EggStringList *list)
-{
-	guint i;
-	const gchar *data;
-
-	for (i=0; i<EGG_OBJ_LIST(list)->len; i++) {
-		data = egg_string_list_index (list, i);
-		egg_debug ("list[%i] = %s", i, data);
-	}
-}
-
-/**
- * egg_string_list_from_string_func:
- **/
-static gpointer
-egg_string_list_from_string_func (const gchar *data)
-{
-	return (gpointer) g_strdup (data);
-}
-
-/**
- * egg_string_list_to_string_func:
- **/
-static gchar *
-egg_string_list_to_string_func (gconstpointer data)
-{
-	return g_strdup (data);
-}
-
-/**
- * egg_string_list_class_init:
- * @klass: The EggStringListClass
- **/
-static void
-egg_string_list_class_init (EggStringListClass *klass)
-{
-	GObjectClass *object_class = G_OBJECT_CLASS (klass);
-	object_class->finalize = egg_string_list_finalize;
-}
-
-/**
- * egg_string_list_init:
- * @list: This class instance
- **/
-static void
-egg_string_list_init (EggStringList *list)
-{
-	egg_obj_list_set_compare (EGG_OBJ_LIST(list), (EggObjListCompareFunc) g_strcmp0);
-	egg_obj_list_set_copy (EGG_OBJ_LIST(list), (EggObjListCopyFunc) g_strdup);
-	egg_obj_list_set_free (EGG_OBJ_LIST(list), (EggObjListFreeFunc) g_free);
-	egg_obj_list_set_to_string (EGG_OBJ_LIST(list), (EggObjListToStringFunc) egg_string_list_to_string_func);
-	egg_obj_list_set_from_string (EGG_OBJ_LIST(list), (EggObjListFromStringFunc) egg_string_list_from_string_func);
-}
-
-/**
- * egg_string_list_finalize:
- * @object: The object to finalize
- **/
-static void
-egg_string_list_finalize (GObject *object)
-{
-	G_OBJECT_CLASS (egg_string_list_parent_class)->finalize (object);
-}
-
-/**
- * egg_string_list_new:
- *
- * Return value: a new EggStringList object.
- **/
-EggStringList *
-egg_string_list_new (void)
-{
-	EggStringList *list;
-	list = g_object_new (EGG_TYPE_STRING_LIST, NULL);
-	return EGG_STRING_LIST (list);
-}
-
-/***************************************************************************
- ***                          MAKE CHECK TESTS                           ***
- ***************************************************************************/
-#ifdef EGG_TEST
-#include "egg-test.h"
-
-void
-egg_string_list_test (EggTest *test)
-{
-	EggStringList *list;
-	EggStringList *list2;
-
-	if (!egg_test_start (test, "EggStringList"))
-		return;
-
-	/************************************************************/
-	egg_test_title (test, "create new list");
-	list = egg_string_list_new ();
-	egg_test_assert (test, list != NULL);
-
-	/************************************************************/
-	egg_test_title (test, "length zero");
-	egg_test_assert (test, EGG_OBJ_LIST(list)->len == 0);
-
-	/************************************************************/
-	egg_test_title (test, "add stuff to list");
-	egg_obj_list_add (EGG_OBJ_LIST(list), "dave");
-	egg_obj_list_add (EGG_OBJ_LIST(list), "mark");
-	egg_obj_list_add (EGG_OBJ_LIST(list), "foo");
-	egg_obj_list_add (EGG_OBJ_LIST(list), "foo");
-	egg_obj_list_add (EGG_OBJ_LIST(list), "bar");
-	egg_test_assert (test, EGG_OBJ_LIST(list)->len == 5);
-
-	/************************************************************/
-	egg_test_title (test, "create second list");
-	list2 = egg_string_list_new ();
-	egg_obj_list_add (EGG_OBJ_LIST(list2), "mark");
-	egg_test_assert (test, EGG_OBJ_LIST(list2)->len == 1);
-
-	/************************************************************/
-	egg_test_title (test, "append the lists");
-	egg_obj_list_add_list (EGG_OBJ_LIST(list), EGG_OBJ_LIST(list2));
-	egg_test_assert (test, EGG_OBJ_LIST(list)->len == 6);
-
-	/************************************************************/
-	egg_test_title (test, "remove duplicates");
-	egg_obj_list_remove_duplicate (EGG_OBJ_LIST(list));
-	egg_test_assert (test, EGG_OBJ_LIST(list)->len == 4);
-
-	/************************************************************/
-	egg_test_title (test, "remove one list from another");
-	egg_obj_list_add_list (EGG_OBJ_LIST(list), EGG_OBJ_LIST(list2)); //dave,mark,foo,bar,mark
-	egg_obj_list_remove_list (EGG_OBJ_LIST(list), EGG_OBJ_LIST(list2));
-	egg_test_assert (test, EGG_OBJ_LIST(list)->len == 3);
-
-	g_object_unref (list2);
-	g_object_unref (list);
-	egg_test_end (test);
-}
-#endif
-
diff --git a/src/egg-string-list.h b/src/egg-string-list.h
deleted file mode 100644
index 38f377b..0000000
--- a/src/egg-string-list.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
- *
- * Copyright (C) 2008 Richard Hughes <richard at hughsie.com>
- *
- * Licensed under the GNU General Public License Version 2
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-#ifndef __EGG_STRING_LIST_H
-#define __EGG_STRING_LIST_H
-
-#include <glib-object.h>
-#include "egg-obj-list.h"
-
-G_BEGIN_DECLS
-
-#define EGG_TYPE_STRING_LIST		(egg_string_list_get_type ())
-#define EGG_STRING_LIST(o)		(G_TYPE_CHECK_INSTANCE_CAST ((o), EGG_TYPE_STRING_LIST, EggStringList))
-#define EGG_STRING_LIST_CLASS(k)	(G_TYPE_CHECK_CLASS_CAST((k), EGG_TYPE_STRING_LIST, EggStringListClass))
-#define EGG_IS_STRING_LIST(o)		(G_TYPE_CHECK_INSTANCE_TYPE ((o), EGG_TYPE_STRING_LIST))
-#define EGG_IS_STRING_LIST_CLASS(k)	(G_TYPE_CHECK_CLASS_TYPE ((k), EGG_TYPE_STRING_LIST))
-#define EGG_STRING_LIST_GET_CLASS(o)	(G_TYPE_INSTANCE_GET_CLASS ((o), EGG_TYPE_STRING_LIST, EggStringListClass))
-#define EGG_STRING_LIST_ERROR		(egg_string_list_error_quark ())
-#define EGG_STRING_LIST_TYPE_ERROR	(egg_string_list_error_get_type ())
-
-typedef struct EggStringListPrivate EggStringListPrivate;
-
-typedef struct
-{
-	 EggObjList		 parent;
-} EggStringList;
-
-typedef struct
-{
-	EggObjListClass		parent_class;
-} EggStringListClass;
-
-GType		 egg_string_list_get_type	  	(void) G_GNUC_CONST;
-EggStringList	*egg_string_list_new			(void);
-void		 egg_string_list_add_strv		(EggStringList	*list,
-							 gchar		**data);
-const gchar	*egg_string_list_index			(const EggStringList	*list,
-							 guint		 index);
-void		 egg_string_list_print			(EggStringList	*list);
-
-
-G_END_DECLS
-
-#endif /* __EGG_STRING_LIST_H */
-
diff --git a/src/pk-post-trans.c b/src/pk-post-trans.c
index dfb6dab..175ea07 100644
--- a/src/pk-post-trans.c
+++ b/src/pk-post-trans.c
@@ -39,7 +39,6 @@
 #endif
 
 #include "egg-debug.h"
-#include "egg-string-list.h"
 
 #include "pk-post-trans.h"
 #include "pk-shared.h"
@@ -53,7 +52,7 @@ struct PkPostTransPrivate
 	PkBackend		*backend;
 	PkExtra			*extra;
 	GMainLoop		*loop;
-	EggStringList		*running_exec_list;
+	PkObjList		*running_exec_list;
 	PkPackageList		*list;
 	guint			 finished_id;
 	guint			 package_id;
@@ -269,15 +268,31 @@ pk_post_trans_get_filename_mtime (const gchar *filename)
 #endif
 
 /**
+ * pk_post_trans_string_list_new:
+ **/
+static PkObjList *
+pk_post_trans_string_list_new ()
+{
+	PkObjList *list;
+	list = pk_obj_list_new ();
+	pk_obj_list_set_compare (list, (PkObjListCompareFunc) g_strcmp0);
+	pk_obj_list_set_copy (list, (PkObjListCopyFunc) g_strdup);
+	pk_obj_list_set_free (list, (PkObjListFreeFunc) g_free);
+	pk_obj_list_set_to_string (list, (PkObjListToStringFunc) g_strdup);
+	pk_obj_list_set_from_string (list, (PkObjListFromStringFunc) g_strdup);
+	return list;
+}
+
+/**
  * pk_post_trans_import_desktop_files_get_files:
  *
  * Returns a list of all the files in the applicaitons directory
  **/
-static EggStringList *
+static PkObjList *
 pk_post_trans_import_desktop_files_get_files (PkPostTrans *post)
 {
 	GDir *dir;
-	EggStringList *list;
+	PkObjList *list;
 	GPatternSpec *pattern;
 	gchar *filename;
 	gboolean match;
@@ -294,13 +309,13 @@ pk_post_trans_import_desktop_files_get_files (PkPostTrans *post)
 	/* find files */
 	pattern = g_pattern_spec_new ("*.desktop");
 	name = g_dir_read_name (dir);
-	list = egg_string_list_new ();
+	list = pk_post_trans_string_list_new ();
 	while (name != NULL) {
 		/* ITS4: ignore, not used for allocation and has to be NULL terminated */
 		match = g_pattern_match (pattern, strlen (name), name, NULL);
 		if (match) {
 			filename = g_build_filename (directory, name, NULL);
-			egg_obj_list_add (EGG_OBJ_LIST (list), filename);
+			pk_obj_list_add (PK_OBJ_LIST (list), filename);
 		}
 		name = g_dir_read_name (dir);
 	}
@@ -312,21 +327,21 @@ pk_post_trans_import_desktop_files_get_files (PkPostTrans *post)
 /**
  * pk_post_trans_import_desktop_files_get_mtimes:
  **/
-static EggStringList *
-pk_post_trans_import_desktop_files_get_mtimes (const EggStringList *files)
+static PkObjList *
+pk_post_trans_import_desktop_files_get_mtimes (const PkObjList *files)
 {
 	guint i;
 	guint mtime;
 	gchar *encode;
 	const gchar *filename;
-	EggStringList *list;
+	PkObjList *list;
 
-	list = egg_string_list_new ();
-	for (i=0; i<EGG_OBJ_LIST(files)->len; i++) {
-		filename = egg_string_list_index (files, i);
+	list = pk_post_trans_string_list_new ();
+	for (i=0; i<PK_OBJ_LIST(files)->len; i++) {
+		filename = pk_obj_list_index (files, i);
 		mtime = pk_post_trans_get_filename_mtime (filename);
 		encode = g_strdup_printf ("%s|%i|v1", filename, mtime);
-		egg_obj_list_add (EGG_OBJ_LIST (list), encode);
+		pk_obj_list_add (PK_OBJ_LIST (list), encode);
 		g_free (encode);
 	}
 	return list;
@@ -342,9 +357,9 @@ pk_post_trans_import_desktop_files (PkPostTrans *post)
 	gboolean ret;
 	gchar *package_name;
 	gfloat step;
-	EggStringList *files;
-	EggStringList *mtimes;
-	EggStringList *mtimes_old;
+	PkObjList *files;
+	PkObjList *mtimes;
+	PkObjList *mtimes_old;
 	gchar *filename;
 
 	g_return_val_if_fail (PK_IS_POST_TRANS (post), FALSE);
@@ -359,8 +374,8 @@ pk_post_trans_import_desktop_files (PkPostTrans *post)
 	pk_backend_set_status (post->priv->backend, PK_STATUS_ENUM_SCAN_APPLICATIONS);
 
 	egg_debug ("getting old desktop mtimes");
-	mtimes_old = egg_string_list_new ();
-	ret = egg_obj_list_from_file (EGG_OBJ_LIST (mtimes_old), "/var/lib/PackageKit/desktop-mtimes.txt");
+	mtimes_old = pk_post_trans_string_list_new ();
+	ret = pk_obj_list_from_file (PK_OBJ_LIST (mtimes_old), "/var/lib/PackageKit/desktop-mtimes.txt");
 	if (!ret)
 		egg_warning ("failed to get old mtimes of desktop files");
 
@@ -371,23 +386,23 @@ pk_post_trans_import_desktop_files (PkPostTrans *post)
 	mtimes = pk_post_trans_import_desktop_files_get_mtimes (files);
 
 	/* remove old desktop files we've already processed */
-	egg_obj_list_remove_list (EGG_OBJ_LIST(mtimes), EGG_OBJ_LIST (mtimes_old));
+	pk_obj_list_remove_list (PK_OBJ_LIST(mtimes), PK_OBJ_LIST (mtimes_old));
 
 	/* shortcut, there are no files to scan */
-	if (EGG_OBJ_LIST(mtimes)->len == 0) {
+	if (PK_OBJ_LIST(mtimes)->len == 0) {
 		egg_debug ("no desktop files needed to scan");
 		goto no_changes;
 	}
 
 	/* update UI */
 	pk_backend_set_percentage (post->priv->backend, 0);
-	step = 100.0f / EGG_OBJ_LIST(mtimes)->len;
+	step = 100.0f / PK_OBJ_LIST(mtimes)->len;
 
 	/* for each new package, process the desktop file */
-	for (i=0; i<EGG_OBJ_LIST(mtimes)->len; i++) {
+	for (i=0; i<PK_OBJ_LIST(mtimes)->len; i++) {
 
 		/* get the filename from the mtime encoded string */
-		filename = g_strdup (egg_string_list_index (mtimes, i));
+		filename = g_strdup (pk_obj_list_index (mtimes, i));
 		g_strdelimit (filename, "|", '\0');
 
 		/* get the name */
@@ -406,7 +421,7 @@ pk_post_trans_import_desktop_files (PkPostTrans *post)
 	}
 
 	/* save new mtimes data */
-	ret = egg_obj_list_to_file (EGG_OBJ_LIST (mtimes), "/var/lib/PackageKit/desktop-mtimes.txt");
+	ret = pk_obj_list_to_file (PK_OBJ_LIST (mtimes), "/var/lib/PackageKit/desktop-mtimes.txt");
 	if (!ret)
 		egg_warning ("failed to set old mtimes of desktop files");
 
@@ -516,7 +531,7 @@ pk_post_trans_update_files_cb (PkBackend *backend, const gchar *package_id,
 			continue;
 
 		/* running? */
-		ret = egg_obj_list_exists (EGG_OBJ_LIST(post->priv->running_exec_list), files[i]);
+		ret = pk_obj_list_exists (PK_OBJ_LIST(post->priv->running_exec_list), files[i]);
 		if (!ret)
 			continue;
 
@@ -552,7 +567,7 @@ pk_post_trans_update_process_list (PkPostTrans *post)
 	uid = getuid ();
 	dir = g_dir_open ("/proc", 0, NULL);
 	name = g_dir_read_name (dir);
-	egg_obj_list_clear (EGG_OBJ_LIST(post->priv->running_exec_list));
+	pk_obj_list_clear (PK_OBJ_LIST(post->priv->running_exec_list));
 	while (name != NULL) {
 		uid_file = g_build_filename ("/proc", name, "loginuid", NULL);
 
@@ -583,7 +598,7 @@ pk_post_trans_update_process_list (PkPostTrans *post)
 		if (offset != NULL)
 			*(offset) = '\0';
 		egg_debug ("uid=%i, pid=%i, exec=%s", uid, pid, exec);
-		egg_obj_list_add (EGG_OBJ_LIST(post->priv->running_exec_list), exec);
+		pk_obj_list_add (PK_OBJ_LIST(post->priv->running_exec_list), exec);
 out:
 		g_free (uid_file);
 		name = g_dir_read_name (dir);
@@ -673,7 +688,7 @@ pk_post_trans_init (PkPostTrans *post)
 	gboolean ret;
 
 	post->priv = PK_POST_TRANS_GET_PRIVATE (post);
-	post->priv->running_exec_list = egg_string_list_new ();
+	post->priv->running_exec_list = pk_post_trans_string_list_new ();
 	post->priv->loop = g_main_loop_new (NULL, FALSE);
 	post->priv->list = pk_package_list_new ();
 	post->priv->backend = pk_backend_new ();
diff --git a/src/pk-self-test.c b/src/pk-self-test.c
index 5397d09..4dc4658 100644
--- a/src/pk-self-test.c
+++ b/src/pk-self-test.c
@@ -26,7 +26,6 @@
 
 /* prototypes */
 void egg_string_test (EggTest *test);
-void egg_string_list_test (EggTest *test);
 void pk_conf_test (EggTest *test);
 void pk_store_test (EggTest *test);
 void pk_inhibit_test (EggTest *test);
@@ -53,7 +52,6 @@ main (int argc, char **argv)
 	egg_debug_init (TRUE);
 
 	/* egg */
-	egg_string_list_test (test);
 	egg_string_test (test);
 
 	/* components */
commit 916c18ffbcb455c52be3fc4192ad74ff5afbbad0
Author: 甘露(Lu Gan) <rhythm.gan at gmail.com>
Date:   Thu Oct 16 14:47:02 2008 +0000

    Update zh_CN.po
    
    Transmitted-via: Transifex (translate.fedoraproject.org)

diff --git a/po/zh_CN.po b/po/zh_CN.po
index bd859b2..b3604fb 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -1,12 +1,15 @@
-# Copyright (C) 2008 THE PACKAGE'S COPYRIGHT HOLDER
+# 简体中文翻译
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
 # This file is distributed under the same license as the PACKAGE package.
+# Chen Yu <jcomee at gmail.com>, 2008
 # 甘露(Gan Lu) <rhythm.gan at gmail.com>, 2008
+#
 msgid ""
 msgstr ""
 "Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-10-15 18:11+0100\n"
-"PO-Revision-Date: 2008-10-11 18:36+0800\n"
+"POT-Creation-Date: 2008-10-16 13:13+0000\n"
+"PO-Revision-Date: 2008-10-16 22:34+0700\n"
 "Last-Translator: 甘露(Gan Lu) <rhythm.gan at gmail.com>\n"
 "Language-Team: \n"
 "MIME-Version: 1.0\n"
@@ -16,219 +19,227 @@ msgstr ""
 #. TRANSLATORS: this is a header for the package that can be updated
 #: ../client/pk-console.c:273
 msgid "Details about the update:"
-msgstr ""
+msgstr "本次更新详情:"
 
 #: ../client/pk-console.c:466
 msgid "Please restart the computer to complete the update."
-msgstr ""
+msgstr "请重新启动计算机以完成本次更新。"
 
 #: ../client/pk-console.c:468
 msgid "Please logout and login to complete the update."
-msgstr ""
+msgstr "请登出并登录以完成本次更新。"
 
 #: ../client/pk-console.c:470
 msgid "Please restart the application as it is being used."
-msgstr ""
+msgstr "请重新启动正在使用中的程序。"
 
 #. TRANSLATORS: The package name was not found in any software sources
 #: ../client/pk-console.c:555
 #, c-format
 msgid "The package '%s' could not be installed: %s"
-msgstr ""
+msgstr "该软件包 '%s' 无法安装:%s"
 
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
 #: ../client/pk-console.c:609
-#, fuzzy, c-format
+#, c-format
 msgid "This tool could not install the packages: %s"
-msgstr "未能找到该包的详细资料"
+msgstr "该工具无法安装本软件包:%s"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
 #: ../client/pk-console.c:665
 #, c-format
 msgid "This tool could not remove '%s': %s"
-msgstr ""
+msgstr "该工具无法删除: '%s': %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:688 ../client/pk-console.c:757
+#: ../client/pk-console.c:688
+#: ../client/pk-console.c:757
 #, c-format
 msgid "This tool could not remove the packages: %s"
-msgstr ""
+msgstr "该工具无法删除本软件包:%s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
 #: ../client/pk-console.c:724
 #, c-format
 msgid "This tool could not remove the packages: '%s'"
-msgstr ""
+msgstr "该工具无法删除本软件包: '%s'"
 
 #. TRANSLATORS: When removing, we might have to remove other deps
 #: ../client/pk-console.c:736
 msgid "The following packages have to be removed"
-msgstr "下列包必须删除"
+msgstr "下列软件包必须删除"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
 #: ../client/pk-console.c:743
-#, fuzzy
 msgid "Proceed removing additional packages?"
-msgstr "同意删除额外的包吗?"
+msgstr "开始进行删除额外的软件包吗?"
 
 #. TRANSLATORS: We did not remove any packages
 #: ../client/pk-console.c:748
 msgid "The package removal was cancelled!"
-msgstr ""
+msgstr "已取消删除本软件包!"
 
 #. TRANSLATORS: The package name was not found in any software sources
 #: ../client/pk-console.c:789
 #, c-format
 msgid "This tool could not find the package '%s' to download"
-msgstr ""
+msgstr "该工具无法找到软件包 '%s' 进行下载"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:843 ../client/pk-console.c:852
+#: ../client/pk-console.c:843
+#: ../client/pk-console.c:852
 #, c-format
 msgid "This tool could not update '%s': %s"
-msgstr ""
+msgstr "该工具无法更新 '%s': %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:874 ../client/pk-console.c:882
+#: ../client/pk-console.c:874
+#: ../client/pk-console.c:882
 #, c-format
 msgid "This tool could not get the requires for '%s': %s"
-msgstr ""
+msgstr "该工具无法得到 '%s': %s 的需求"
 
 #. TRANSLATORS: There was an error getting the depends for the package. The detailed error follows
-#: ../client/pk-console.c:904 ../client/pk-console.c:912
-#, fuzzy, c-format
+#: ../client/pk-console.c:904
+#: ../client/pk-console.c:912
+#, c-format
 msgid "This tool could not get the dependancies for '%s': %s"
-msgstr "未能得到这个包的依赖"
+msgstr "该工具无法得到 '%s' 的依赖关系: %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:934 ../client/pk-console.c:942
+#: ../client/pk-console.c:934
+#: ../client/pk-console.c:942
 #, c-format
 msgid "This tool could not get package details for '%s': %s"
-msgstr ""
+msgstr "该工具无法得到 '%s' 的软件包详情:%s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
 #: ../client/pk-console.c:964
-#, fuzzy, c-format
+#, c-format
 msgid "This tool could not find the files for '%s': %s"
-msgstr "未能找到这个包所包含的文件"
+msgstr "该工具无法找到 '%s' 的文件:%s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
 #: ../client/pk-console.c:972
 #, c-format
 msgid "This tool could not get the file list for '%s': %s"
-msgstr ""
+msgstr "该工具无法得到 '%s' 的文件清单:%s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
 #: ../client/pk-console.c:994
 #, c-format
 msgid "This tool could not find the update details for '%s': %s"
-msgstr ""
+msgstr "该工具无法找到 '%s' 的更新详情:%s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
 #: ../client/pk-console.c:1002
 #, c-format
 msgid "This tool could not get the update details for '%s': %s"
-msgstr ""
+msgstr "该工具无法为 '%s': %s 得到更新详情"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
 #: ../client/pk-console.c:1048
 msgid "Error:"
-msgstr ""
+msgstr "错误:"
 
 #. TRANSLATORS: This a list of details about the package
 #: ../client/pk-console.c:1062
 msgid "Package description"
-msgstr "包的描述"
+msgstr "软件包描述"
 
 #. TRANSLATORS: This a list files contained in the package
 #: ../client/pk-console.c:1095
 msgid "Package files"
-msgstr "包中的文件"
+msgstr "软件包文件"
 
 #. TRANSLATORS: This where the package has no files
 #: ../client/pk-console.c:1104
 msgid "No files"
-msgstr "无文件"
+msgstr "没有文件"
 
 #. TRANSLATORS: This a request for a GPG key signature
 #: ../client/pk-console.c:1127
 msgid "Repository signature required"
-msgstr ""
+msgstr "要求软件库签名"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
 #: ../client/pk-console.c:1137
 msgid "Okay to import key?"
-msgstr "同意导入 key?"
+msgstr "可以导入证书吗?"
 
 #. TRANSLATORS: This is where the user declined the security key
 #: ../client/pk-console.c:1141
 msgid "Did not import key"
-msgstr "没有导入 key"
+msgstr "不导入证书"
 
 #. TRANSLATORS: This a request for a EULA
 #: ../client/pk-console.c:1175
 msgid "Eula required"
-msgstr ""
+msgstr "要求最终用户协议"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the licence
 #: ../client/pk-console.c:1182
 msgid "Do you agree?"
-msgstr "您接受吗?"
+msgstr "你同意吗?"
 
 #. TRANSLATORS: This is where the user declined the licence
 #: ../client/pk-console.c:1186
-#, fuzzy
 msgid "Did not agree to licence"
-msgstr "不接受许可,任务将终止。"
+msgstr "不同意协议"
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
 #: ../client/pk-console.c:1215
 msgid "The daemon crashed mid-transaction!"
-msgstr "后台程序在事务处理中期崩溃了!"
+msgstr "后台程序在事务处理中期崩溃!"
 
 #. TRANSLATORS: This is the header to the --help menu
 #: ../client/pk-console.c:1268
 msgid "PackageKit Console Interface"
-msgstr "PackageKit 控制台界面"
+msgstr "PackageKit 终端界面"
 
 #: ../client/pk-console.c:1268
 msgid "Subcommands:"
 msgstr "子命令:"
 
-#: ../client/pk-console.c:1359 ../client/pk-generate-pack.c:138
-#: ../client/pk-monitor.c:115 ../src/pk-main.c:195
+#: ../client/pk-console.c:1359
+#: ../client/pk-generate-pack.c:138
+#: ../client/pk-monitor.c:115
+#: ../src/pk-main.c:195
 msgid "Show extra debugging information"
 msgstr "显示额外的调试信息"
 
-#: ../client/pk-console.c:1361 ../client/pk-monitor.c:117
+#: ../client/pk-console.c:1361
+#: ../client/pk-monitor.c:117
 msgid "Show the program version and exit"
 msgstr "显示本程序版本并退出"
 
 #: ../client/pk-console.c:1363
 msgid "Set the filter, e.g. installed"
-msgstr "设置过滤器,比如,已安装的"
+msgstr "设置过滤器,例如已安装的"
 
 #: ../client/pk-console.c:1365
 msgid "Exit without waiting for actions to complete"
-msgstr "不等动作完成即退出"
+msgstr "不等操作完成即退出"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
 #: ../client/pk-console.c:1387
-#, fuzzy
 msgid "This tool could not connect to system DBUS."
-msgstr "未能连接到系统 DBUS"
+msgstr "该工具无法连接到系统 DBUS。"
 
 #: ../client/pk-console.c:1482
-#, fuzzy
 msgid "You need to specify a search type, e.g. name"
-msgstr "您需要指定一个搜索类型"
-
-#: ../client/pk-console.c:1487 ../client/pk-console.c:1494
-#: ../client/pk-console.c:1501 ../client/pk-console.c:1508
-#: ../client/pk-console.c:1619 ../client/pk-console.c:1629
-#: ../client/pk-console.c:1636 ../client/pk-console.c:1643
+msgstr "你需要指定某个搜索类型,例如名字"
+
+#: ../client/pk-console.c:1487
+#: ../client/pk-console.c:1494
+#: ../client/pk-console.c:1501
+#: ../client/pk-console.c:1508
+#: ../client/pk-console.c:1619
+#: ../client/pk-console.c:1629
+#: ../client/pk-console.c:1636
+#: ../client/pk-console.c:1643
 msgid "You need to specify a search term"
-msgstr "您需要指定一个搜索条件"
+msgstr "你需要指定某个搜索术语"
 
 #: ../client/pk-console.c:1513
 msgid "Invalid search type"
@@ -236,62 +247,60 @@ msgstr "无效的搜索类型"
 
 #: ../client/pk-console.c:1518
 msgid "You need to specify a package or file to install"
-msgstr "您要指定一个包或文件来安装"
+msgstr "你需要指定某个软件包或文件来安装"
 
 #: ../client/pk-console.c:1525
 msgid "You need to specify a type, key_id and package_id"
-msgstr "您要通过指定一个类型,key_id 和 package_id"
+msgstr "你需要指定某个类型,证书ID或者软件包ID"
 
 #: ../client/pk-console.c:1532
 msgid "You need to specify a package to remove"
-msgstr "您需要指定一个包来删除"
+msgstr "你需要指定某个软件包来删除"
 
 #: ../client/pk-console.c:1538
-#, fuzzy
-msgid ""
-"You need to specify the destination directory and then the packages to "
-"download"
-msgstr "您要通过指定一个类型,key_id 和 package_id"
+msgid "You need to specify the destination directory and then the packages to download"
+msgstr "你需要指定目的地目录以及软件包来下载"
 
 #: ../client/pk-console.c:1543
 msgid "Directory not found"
-msgstr ""
+msgstr "目录没有找到"
 
 #: ../client/pk-console.c:1549
 msgid "You need to specify a eula-id"
-msgstr "你要指定一个 eula-id"
+msgstr "你需要指定某个最终用户ID"
 
 #: ../client/pk-console.c:1565
 msgid "You need to specify a package name to resolve"
-msgstr "您需要指定一个包的名字来解决"
+msgstr "你需要指定某个软件包名字来解决依赖关系"
 
-#: ../client/pk-console.c:1574 ../client/pk-console.c:1581
+#: ../client/pk-console.c:1574
+#: ../client/pk-console.c:1581
 msgid "You need to specify a repo name"
-msgstr "您需要指定一个库名"
+msgstr "你需要指定某个软件库名字"
 
 #: ../client/pk-console.c:1588
 msgid "You need to specify a repo name/parameter and value"
-msgstr "您需要指定一个库名/参数和值"
+msgstr "你需要指定某个软件库名字/参数或值"
 
 #: ../client/pk-console.c:1601
 msgid "You need to specify a time term"
-msgstr "您需要指定一个时间项目"
+msgstr "你需要指定某个时间期限"
 
 #: ../client/pk-console.c:1606
 msgid "You need to specify a correct role"
-msgstr "您需要指定一个正确的角色"
+msgstr "你需要指定某个正确的角色"
 
 #: ../client/pk-console.c:1611
 msgid "Failed to get last time"
-msgstr "无法获得上次运行时间"
+msgstr "无法得到最后一次时间"
 
 #: ../client/pk-console.c:1650
 msgid "You need to specify a package to find the details for"
-msgstr "您需要指定一个包来查找相关细节"
+msgstr "你需要指定某个软件包已找到相关详情"
 
 #: ../client/pk-console.c:1657
 msgid "You need to specify a package to find the files for"
-msgstr "您要指定一个包来查找文件"
+msgstr "你需要指定某个软件包已找到相关文件"
 
 #. TRANSLATORS: The user tried to use an unsupported option on the command line
 #: ../client/pk-console.c:1710
@@ -302,7 +311,7 @@ msgstr "不支持 '%s' 选项"
 #. TRANSLATORS: User does not have permission to do this
 #: ../client/pk-console.c:1723
 msgid "You don't have the necessary privileges for this operation"
-msgstr "您没有此操作所需的特权"
+msgstr "你没有本次操作需要的必要权限"
 
 #. TRANSLATORS: Generic failure of what they asked to do
 #: ../client/pk-console.c:1726
@@ -312,318 +321,218 @@ msgstr "命令失败"
 #. TRANSLATORS: This is the state of the transaction
 #: ../client/pk-generate-pack.c:96
 msgid "Downloading"
-msgstr ""
+msgstr "正在下载"
 
 #: ../client/pk-generate-pack.c:140
 msgid "Set the filename of dependencies to be excluded"
-msgstr ""
+msgstr "设置依赖关系的文件名除外"
 
 #: ../client/pk-generate-pack.c:142
-msgid ""
-"The directory to put the pack file, or the current directory if ommitted"
-msgstr ""
+msgid "The directory to put the pack file, or the current directory if ommitted"
+msgstr "放置包文件的目录,或当前目录如已 ommitted"
 
 #: ../client/pk-generate-pack.c:144
 msgid "The package to be put into the ServicePack"
-msgstr ""
+msgstr "将放入服务包的软件包"
 
 #: ../client/pk-generate-pack.c:146
 msgid "Put all updates available in the ServicePack"
-msgstr ""
+msgstr "将所有可获得的更新放入服务包"
 
 #. TRANSLATORS: This is when the user fails to supply the correct arguments
 #: ../client/pk-generate-pack.c:166
 msgid "Neither --package or --updates option selected."
-msgstr ""
+msgstr "要么是选定了 --package 选项,要么是选定了 --updates 选项"
 
 #. TRANSLATORS: This is when the user fails to supply just one argument
 #: ../client/pk-generate-pack.c:174
 msgid "Both options selected."
-msgstr ""
+msgstr "选定了两个选项"
 
 #. TRANSLATORS: This is when file already exists
 #: ../client/pk-generate-pack.c:207
 msgid "A pack with the same name already exists, do you want to overwrite it?"
-msgstr ""
+msgstr "已经有同名软件包存在,你想要覆盖它吗?"
 
 #. TRANSLATORS: This is when the pack was not overwritten
 #: ../client/pk-generate-pack.c:210
 msgid "The pack was not overwritten."
-msgstr ""
+msgstr "该软件包没有被覆盖"
 
 #. TRANSLATORS: This is when the temporary directory cannot be created
 #: ../client/pk-generate-pack.c:222
-#, fuzzy
 msgid "Failed to create directory."
-msgstr "无法获得上次运行时间"
+msgstr "无法创建目录"
 
 #. TRANSLATORS: This is when the list of packages from the remote computer cannot be opened
 #: ../client/pk-generate-pack.c:231
-#, fuzzy
 msgid "Failed to open package list."
-msgstr "无法获得上次运行时间"
+msgstr "无法打开软件包清单"
 
 #. TRANSLATORS: This is when the user fails to supply the correct arguments
 #: ../client/pk-generate-pack.c:241
 msgid "Finding package name."
-msgstr ""
+msgstr "正在寻找软件包名"
 
 #. TRANSLATORS: This is when the package cannot be foudn in any software source
 #: ../client/pk-generate-pack.c:245
 #, c-format
 msgid "Failed to find package '%s': %s"
-msgstr ""
+msgstr "无法找到软件包 '%s': %s"
 
 #. TRANSLATORS: This is telling the user we are in the process of making the pack
 #: ../client/pk-generate-pack.c:260
 msgid "Creating service pack..."
-msgstr ""
+msgstr "正在创建服务包..."
 
 #. TRANSLATORS: we succeeded in making the file
 #: ../client/pk-generate-pack.c:267
 #, c-format
 msgid "Service pack created '%s'"
-msgstr ""
+msgstr "服务包已创建 '%s'"
 
 #. TRANSLATORS: we failed to make te file
 #: ../client/pk-generate-pack.c:271
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to create '%s': %s"
-msgstr "无法获得上次运行时间"
+msgstr "无法创建 '%s': %s"
 
 #: ../client/pk-monitor.c:128
 msgid "PackageKit Monitor"
 msgstr "PackageKit 监视器"
 
-#: ../client/pk-tools-common.c:48 ../client/pk-tools-common.c:58
-#: ../client/pk-tools-common.c:76 ../client/pk-tools-common.c:83
+#: ../client/pk-tools-common.c:48
+#: ../client/pk-tools-common.c:58
+#: ../client/pk-tools-common.c:76
+#: ../client/pk-tools-common.c:83
 #, c-format
 msgid "Internal error: %s"
-msgstr ""
+msgstr "内部错误:%s"
 
 #. TRANSLATORS: The package was not found in any software sources
 #: ../client/pk-tools-common.c:109
-#, c-format
 msgid "The package could not be found"
-msgstr ""
+msgstr "无法找到该软件包"
 
 #. TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages
 #: ../client/pk-tools-common.c:120
-#, fuzzy
 msgid "More than one package matches:"
-msgstr "有多个匹配的包"
+msgstr "超过一个软件包符合:"
 
 #. TRANSLATORS: This finds out which package in the list to use
 #: ../client/pk-tools-common.c:127
-#, fuzzy
 msgid "Please choose the correct package: "
-msgstr "请输入包的号码"
+msgstr "请选择正确的软件包:"
 
 #: ../client/pk-tools-common.c:154
 #, c-format
 msgid "Please enter a number from 1 to %i: "
-msgstr "请输入从 1 到 %i 的数字:"
+msgstr "请输入从1到 %i 的数字:"
 
 #. TRANSLATORS: when we are getting data from the daemon
 #: ../contrib/packagekit-plugin/src/contents.cpp:299
 msgid "Getting package information..."
-msgstr ""
+msgstr "正在获得软件包信息..."
 
 #. TRANSLATORS: run an applicaiton
 #: ../contrib/packagekit-plugin/src/contents.cpp:305
 #, c-format
 msgid "Run %s"
-msgstr ""
+msgstr "运行 %s"
 
 #. TRANSLATORS: show the installed version of a package
 #: ../contrib/packagekit-plugin/src/contents.cpp:311
-#, fuzzy
 msgid "Installed version"
-msgstr "安装安全签名"
+msgstr "已安装版本"
 
 #. TRANSLATORS: run the application now
 #: ../contrib/packagekit-plugin/src/contents.cpp:319
 #, c-format
 msgid "Run version %s now"
-msgstr ""
+msgstr "现在运行版本 %s"
 
 #: ../contrib/packagekit-plugin/src/contents.cpp:325
 msgid "Run now"
-msgstr ""
+msgstr "现在运行"
 
 #. TRANSLATORS: update to a new version of the package
 #: ../contrib/packagekit-plugin/src/contents.cpp:330
 #, c-format
 msgid "Upgrade to version %s"
-msgstr ""
+msgstr "更新到版本 %s"
 
 #. TRANSLATORS: To install a package
 #: ../contrib/packagekit-plugin/src/contents.cpp:336
 #, c-format
 msgid "Install %s Now"
-msgstr ""
+msgstr "现在安装 %s "
 
 #. TRANSLATORS: the version of the package
 #: ../contrib/packagekit-plugin/src/contents.cpp:339
 msgid "Version"
-msgstr ""
+msgstr "版本"
 
 #. TRANSLATORS: noting found, so can't install
 #: ../contrib/packagekit-plugin/src/contents.cpp:344
 msgid "No packages found for your system"
-msgstr ""
+msgstr "没有为你系统发现软件包"
 
 #. TRANSLATORS: package is being installed
 #: ../contrib/packagekit-plugin/src/contents.cpp:349
 msgid "Installing..."
-msgstr ""
+msgstr "正在安装..."
 
 #: ../data/packagekit-catalog.xml.in.h:1
-#, fuzzy
 msgid "PackageKit Catalog"
-msgstr "PackageKit 监视器"
+msgstr "PackageKit 目录"
 
 #: ../data/packagekit-servicepack.xml.in.h:1
-#, fuzzy
 msgid "PackageKit Service Pack"
-msgstr "PackageKit 服务"
+msgstr "PackageKit 服务包"
 
 #: ../data/packagekit-package-list.xml.in.h:1
-#, fuzzy
 msgid "PackageKit Package List"
-msgstr "PackageKit 监视器"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:1
-msgid "Accept EULA"
-msgstr "接受最终用户协议"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:2
-msgid "Authentication is required to accept a EULA"
-msgstr "接受最终用户协议需要获得授权"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:3
-msgid "Authentication is required to change software source parameters"
-msgstr "改变软件源参数需要获得授权"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:4
-#, fuzzy
-msgid ""
-"Authentication is required to consider a key used for signing packages as "
-"trusted"
-msgstr "刷新包列表需要获得授权"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:5
-#, fuzzy
-msgid "Authentication is required to install a signed package"
-msgstr "安装包需要获得授权"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:6
-#, fuzzy
-msgid "Authentication is required to install an untrusted package"
-msgstr "安装包需要获得授权"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:7
-#, fuzzy
-msgid "Authentication is required to refresh the system sources"
-msgstr "刷新包列表需要获得授权"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:8
-msgid "Authentication is required to remove packages"
-msgstr "删除包需要获得授权"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:9
-msgid "Authentication is required to rollback a transaction"
-msgstr "恢复到前一个事务需要获得授权"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:10
-#, fuzzy
-msgid ""
-"Authentication is required to set the network proxy used for downloading "
-"packages"
-msgstr "删除包需要获得授权"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:11
-msgid "Authentication is required to update packages"
-msgstr "更新包需要获得授权"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:12
-msgid "Change software source parameters"
-msgstr "更改软件源参数"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:13
-msgid "Install local file"
-msgstr "安装本地文件"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:14
-msgid "Install untrusted local file"
-msgstr "安装未获信任的本地文件"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:15
-msgid "Refresh system sources"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:16
-msgid "Remove package"
-msgstr "删除包"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:17
-msgid "Rollback to a previous transaction"
-msgstr "回溯到前一个事务"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:18
-msgid "Set network proxy"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:19
-msgid "Trust a key used for signing packages"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:20
-#, fuzzy
-msgid "Update packages"
-msgstr "更新包"
+msgstr "PackageKit 软件包清单"
 
 #: ../src/pk-main.c:85
 msgid "Startup failed due to security policies on this machine."
-msgstr "因为本机的安全策略导致启动失败"
+msgstr "由于本机的安全策略导致启动失败"
 
 #: ../src/pk-main.c:86
 msgid "This can happen for two reasons:"
-msgstr "这可能有两个原因:"
+msgstr "发生这个可能有两个原因:"
 
 #: ../src/pk-main.c:87
 msgid "The correct user is not launching the executable (usually root)"
-msgstr "正确用户也无法启动该可执行程序(通常为根用户)"
+msgstr "用户正确但无法启动可执行程序(通常作为根用户)"
 
 #: ../src/pk-main.c:88
-msgid ""
-"The org.freedesktop.PackageKit.conf file is not installed in the system /etc/"
-"dbus-1/system.d directory"
-msgstr "文件 org.freedesktop.PackageKit.conf 没有被安装在系统的 /etc/ 中"
+msgid "The org.freedesktop.PackageKit.conf file is not installed in the system /etc/dbus-1/system.d directory"
+msgstr "org.freedesktop.PackageKit.conf 没有安装到系统 /etc/dbus-1/system.d 目录中"
 
 #: ../src/pk-main.c:191
 msgid "Packaging backend to use, e.g. dummy"
-msgstr "可使用诸如虚拟打包后端"
+msgstr "使用的打包后端,例如“伪”后端"
 
 #: ../src/pk-main.c:193
 msgid "Daemonize and detach from the terminal"
-msgstr "从终端中分离并后台化运行"
+msgstr "后台化并从终端中分离"
 
 #: ../src/pk-main.c:197
 msgid "Disable the idle timer"
-msgstr "关闭空闲计时器"
+msgstr "禁止空间计时器"
 
 #: ../src/pk-main.c:199
 msgid "Show version and exit"
-msgstr "显示版本后退出"
+msgstr "显示版本并退出"
 
 #: ../src/pk-main.c:201
 msgid "Exit after a small delay"
-msgstr "稍微延迟再退出"
+msgstr "稍稍延迟后退出"
 
 #: ../src/pk-main.c:203
 msgid "Exit after the engine has loaded"
-msgstr "引擎加载后退出"
+msgstr "引擎载入后退出"
 
 #: ../src/pk-main.c:213
 msgid "PackageKit service"
@@ -631,69 +540,10 @@ msgstr "PackageKit 服务"
 
 #: ../src/pk-main.c:249
 msgid "Cannot connect to the system bus"
-msgstr "未能连接到系统总线"
+msgstr "无法连接到系统总线"
 
 #: ../src/pk-main.c:295
 #, c-format
 msgid "Error trying to start: %s\n"
-msgstr "出错当尝试启动:%s\n"
-
-#~ msgid "Authentication is required to install a local file"
-#~ msgstr "安装本地文件需要获得授权"
-
-#~ msgid "Authentication is required to install a security signature"
-#~ msgstr "安装安全签名需要获得授权"
-
-#~ msgid "Authentication is required to update all packages"
-#~ msgstr "更新全部软件包需要获得授权"
-
-#~ msgid ""
-#~ "Further authentication is required to install an untrusted local file"
-#~ msgstr "安装未获信任的本地文件要求通过进一步的授权"
-
-#~ msgid "Install package"
-#~ msgstr "安装包"
-
-#~ msgid "Refresh package lists"
-#~ msgstr "刷新包列表"
-
-#~ msgid "Update all packages"
-#~ msgstr "更新所有包"
-
-#~ msgid "Update detail"
-#~ msgstr "更新细节"
-
-#~ msgid "A system restart is required"
-#~ msgstr "需要重启系统"
-
-#~ msgid "A logout and login is required"
-#~ msgstr "需要注销并登录"
-
-#~ msgid "An application restart is required"
-#~ msgstr "需要重启应用程序"
-
-#~ msgid "Could not find a package match"
-#~ msgstr "未能找到匹配的包"
-
-#~ msgid ""
-#~ "Could not find a package with that name to install, or package already "
-#~ "installed"
-#~ msgstr "未能找到该命名的包来安装,或包已经安装"
-
-#~ msgid "Could not find a package with that name to remove"
-#~ msgstr "未能找到该命名的包来删除"
-
-#~ msgid "Cancelled!"
-#~ msgstr "已取消!"
-
-#~ msgid "Could not find a package with that name to update"
-#~ msgstr "未能找到该命名的包来升级"
-
-#~ msgid "Could not find what packages require this package"
-#~ msgstr "未能找到是哪些包需要这个包"
-
-#~ msgid "Could not open database: %s"
-#~ msgstr "未能打开数据库: %s"
+msgstr "出现错误当尝试启动 %s\n"
 
-#~ msgid "You probably need to run this program as the root user"
-#~ msgstr "您可能要以根用户身份来运行这个程序"
commit 88347896f87f57c110978d2c468450b80eece3c4
Author: Piotr DrÄ…g <piotrdrag at gmail.com>
Date:   Thu Oct 16 14:29:07 2008 +0000

    Updated Polish translation
    
    Transmitted-via: Transifex (translate.fedoraproject.org)

diff --git a/po/pl.po b/po/pl.po
index 92cee0d..55631c0 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -6,7 +6,7 @@ msgstr ""
 "Project-Id-Version: pl\n"
 "Report-Msgid-Bugs-To: \n"
 "POT-Creation-Date: 2008-10-15 18:11+0100\n"
-"PO-Revision-Date: 2008-10-13 23:13+0200\n"
+"PO-Revision-Date: 2008-10-16 16:25+0200\n"
 "Last-Translator: Piotr DrÄ…g <piotrdrag at gmail.com>\n"
 "Language-Team: Polish <pl at li.org>\n"
 "MIME-Version: 1.0\n"
@@ -16,49 +16,49 @@ msgstr ""
 #. TRANSLATORS: this is a header for the package that can be updated
 #: ../client/pk-console.c:273
 msgid "Details about the update:"
-msgstr ""
+msgstr "Szczegóły aktualizacji:"
 
 #: ../client/pk-console.c:466
 msgid "Please restart the computer to complete the update."
-msgstr ""
+msgstr "Proszę uruchomić ponownie komputer, aby zakończyć aktualizację."
 
 #: ../client/pk-console.c:468
 msgid "Please logout and login to complete the update."
-msgstr ""
+msgstr "Proszę wylogować się i zalogować, aby zakończyć aktualizację."
 
 #: ../client/pk-console.c:470
 msgid "Please restart the application as it is being used."
-msgstr ""
+msgstr "Proszę uruchomić program ponownie, ponieważ jest używany."
 
 #. TRANSLATORS: The package name was not found in any software sources
 #: ../client/pk-console.c:555
 #, c-format
 msgid "The package '%s' could not be installed: %s"
-msgstr ""
+msgstr "Nie można zainstalować pakietu \"%s\": %s"
 
 #. TRANSLATORS: There was an error installing the packages. The detailed error follows
 #: ../client/pk-console.c:609
 #, c-format
 msgid "This tool could not install the packages: %s"
-msgstr ""
+msgstr "To narzędzie nie może zainstalować pakietów: %s"
 
 #. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
 #: ../client/pk-console.c:665
 #, c-format
 msgid "This tool could not remove '%s': %s"
-msgstr ""
+msgstr "To narzędzie nie może usunąć \"%s\": %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
 #: ../client/pk-console.c:688 ../client/pk-console.c:757
 #, c-format
 msgid "This tool could not remove the packages: %s"
-msgstr ""
+msgstr "To narzędzie nie może usunąć pakietów: %s"
 
 #. TRANSLATORS: There was an error removing the packages. The detailed error follows
 #: ../client/pk-console.c:724
 #, c-format
 msgid "This tool could not remove the packages: '%s'"
-msgstr ""
+msgstr "To narzędzie nie może usunąć pakietów: \"%s\""
 
 #. TRANSLATORS: When removing, we might have to remove other deps
 #: ../client/pk-console.c:736
@@ -67,73 +67,72 @@ msgstr "Następujące pakiety muszą zostać usunięte"
 
 #. TRANSLATORS: We are checking if it's okay to remove a list of packages
 #: ../client/pk-console.c:743
-#, fuzzy
 msgid "Proceed removing additional packages?"
-msgstr "Usunąć dodatkowe pakiety?"
+msgstr "Kontynuować usuwanie dodatkowych pakietów?"
 
 #. TRANSLATORS: We did not remove any packages
 #: ../client/pk-console.c:748
 msgid "The package removal was cancelled!"
-msgstr ""
+msgstr "Anulowano usunięcie pakietu!"
 
 #. TRANSLATORS: The package name was not found in any software sources
 #: ../client/pk-console.c:789
-#, fuzzy, c-format
+#, c-format
 msgid "This tool could not find the package '%s' to download"
-msgstr "Nie można znaleźć pakietu do pobrania"
+msgstr "To narzędzie nie może znaleźć pakietu \"%s\" do pobrania"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
 #: ../client/pk-console.c:843 ../client/pk-console.c:852
 #, c-format
 msgid "This tool could not update '%s': %s"
-msgstr ""
+msgstr "To narzędzie nie może zaktualizować \"%s\": %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
 #: ../client/pk-console.c:874 ../client/pk-console.c:882
 #, c-format
 msgid "This tool could not get the requires for '%s': %s"
-msgstr ""
+msgstr "To narzędzie nie może uzyskać wymaganych pakietów dla \"%s\": %s"
 
 #. TRANSLATORS: There was an error getting the depends for the package. The detailed error follows
 #: ../client/pk-console.c:904 ../client/pk-console.c:912
-#, fuzzy, c-format
+#, c-format
 msgid "This tool could not get the dependancies for '%s': %s"
-msgstr "Nie można uzyskać zależności dla"
+msgstr "To narzędzie nie może uzyskać zależności dla \"%s\": %s"
 
 #. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
 #: ../client/pk-console.c:934 ../client/pk-console.c:942
 #, c-format
 msgid "This tool could not get package details for '%s': %s"
-msgstr ""
+msgstr "To narzędzie nie może uzyskać szczegółów pakietu \"%s\": %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
 #: ../client/pk-console.c:964
-#, fuzzy, c-format
+#, c-format
 msgid "This tool could not find the files for '%s': %s"
-msgstr "Nie można znaleźć plików tego pakietu"
+msgstr "To narzędzie nie może znaleźć plików dla \"%s\": %s"
 
 #. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
 #: ../client/pk-console.c:972
-#, fuzzy, c-format
+#, c-format
 msgid "This tool could not get the file list for '%s': %s"
-msgstr "Nie można uzyskać listy plików"
+msgstr "To narzędzie nie może uzyskać listy plików dla \"%s\": %s"
 
 #. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
 #: ../client/pk-console.c:994
-#, fuzzy, c-format
+#, c-format
 msgid "This tool could not find the update details for '%s': %s"
-msgstr "Nie można znaleźć szczegółów aktualizacji dla"
+msgstr "To narzędzie nie może znaleźć szczegółów aktualizacji dla \"%s\": %s"
 
 #. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
 #: ../client/pk-console.c:1002
-#, fuzzy, c-format
+#, c-format
 msgid "This tool could not get the update details for '%s': %s"
-msgstr "Nie można znaleźć szczegółów aktualizacji dla"
+msgstr "To narzędzie nie może uzyskać szczegółów aktualizacji dla \"%s\": %s"
 
 #. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
 #: ../client/pk-console.c:1048
 msgid "Error:"
-msgstr ""
+msgstr "BÅ‚Ä…d:"
 
 #. TRANSLATORS: This a list of details about the package
 #: ../client/pk-console.c:1062
@@ -153,7 +152,7 @@ msgstr "Brak plików"
 #. TRANSLATORS: This a request for a GPG key signature
 #: ../client/pk-console.c:1127
 msgid "Repository signature required"
-msgstr ""
+msgstr "Wymagany jest podpis repozytorium"
 
 #. TRANSLATORS: This a prompt asking the user to import the security key
 #: ../client/pk-console.c:1137
@@ -168,7 +167,7 @@ msgstr "Nie zaimportowano klucza"
 #. TRANSLATORS: This a request for a EULA
 #: ../client/pk-console.c:1175
 msgid "Eula required"
-msgstr ""
+msgstr "Wymagana jest licencja"
 
 #. TRANSLATORS: This a prompt asking the user to agree to the licence
 #: ../client/pk-console.c:1182
@@ -177,9 +176,8 @@ msgstr "Zgadzasz siÄ™?"
 
 #. TRANSLATORS: This is where the user declined the licence
 #: ../client/pk-console.c:1186
-#, fuzzy
 msgid "Did not agree to licence"
-msgstr "Nie zaakceptowano licencji, zadanie nie powiedzie siÄ™"
+msgstr "Nie zaakceptowano licencji"
 
 #. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
 #: ../client/pk-console.c:1215
@@ -214,9 +212,8 @@ msgstr "Wyłącza bez oczekiwania na zakończenie działań"
 
 #. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
 #: ../client/pk-console.c:1387
-#, fuzzy
 msgid "This tool could not connect to system DBUS."
-msgstr "Nie można połączyć się z systemowym D-Bus."
+msgstr "To narzędzie nie może połączyć się z systemowym D-Bus."
 
 #: ../client/pk-console.c:1482
 msgid "You need to specify a search type, e.g. name"
@@ -333,15 +330,13 @@ msgstr "Wszystkie dostępne aktualizacje w pakiecie serwisowym"
 
 #. TRANSLATORS: This is when the user fails to supply the correct arguments
 #: ../client/pk-generate-pack.c:166
-#, fuzzy
 msgid "Neither --package or --updates option selected."
-msgstr "Nie wybrano żadnej opcji"
+msgstr "Nie wybrano żadnej z opcji --package lub --updates."
 
 #. TRANSLATORS: This is when the user fails to supply just one argument
 #: ../client/pk-generate-pack.c:174
-#, fuzzy
 msgid "Both options selected."
-msgstr "Wybrano obie opcje"
+msgstr "Wybrano obie opcje."
 
 #. TRANSLATORS: This is when file already exists
 #: ../client/pk-generate-pack.c:207
@@ -351,24 +346,22 @@ msgstr "Pakiet serwisowy o tej samej nazwie już istnieje, zastąpić go?"
 #. TRANSLATORS: This is when the pack was not overwritten
 #: ../client/pk-generate-pack.c:210
 msgid "The pack was not overwritten."
-msgstr ""
+msgstr "Pakiet nie został zastąpiony."
 
 #. TRANSLATORS: This is when the temporary directory cannot be created
 #: ../client/pk-generate-pack.c:222
-#, fuzzy
 msgid "Failed to create directory."
-msgstr "Utworzenie katalogu nie powiodło się"
+msgstr "Utworzenie katalogu nie powiodło się."
 
 #. TRANSLATORS: This is when the list of packages from the remote computer cannot be opened
 #: ../client/pk-generate-pack.c:231
-#, fuzzy
 msgid "Failed to open package list."
-msgstr "Otwarcie listy pakietów nie powiodło się"
+msgstr "Otwarcie listy pakietów nie powiodło się."
 
 #. TRANSLATORS: This is when the user fails to supply the correct arguments
 #: ../client/pk-generate-pack.c:241
 msgid "Finding package name."
-msgstr ""
+msgstr "Wyszukiwanie nazwy pakietu."
 
 #. TRANSLATORS: This is when the package cannot be foudn in any software source
 #: ../client/pk-generate-pack.c:245
@@ -379,19 +372,19 @@ msgstr "Nie można znaleźć pakietu \"%s\": %s"
 #. TRANSLATORS: This is telling the user we are in the process of making the pack
 #: ../client/pk-generate-pack.c:260
 msgid "Creating service pack..."
-msgstr ""
+msgstr "Tworzenie pakietu serwisowego..."
 
 #. TRANSLATORS: we succeeded in making the file
 #: ../client/pk-generate-pack.c:267
-#, fuzzy, c-format
+#, c-format
 msgid "Service pack created '%s'"
-msgstr "Pakiet serwisowy do utworzenia: %s\n"
+msgstr "Utworzono pakiet serwisowy \"%s\""
 
 #. TRANSLATORS: we failed to make te file
 #: ../client/pk-generate-pack.c:271
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to create '%s': %s"
-msgstr "Nie można znaleźć pakietu \"%s\": %s"
+msgstr "Utworzenie \"%s\" nie powiodło się: %s"
 
 #: ../client/pk-monitor.c:128
 msgid "PackageKit Monitor"
@@ -401,25 +394,23 @@ msgstr "Monitor PackageKit"
 #: ../client/pk-tools-common.c:76 ../client/pk-tools-common.c:83
 #, c-format
 msgid "Internal error: %s"
-msgstr ""
+msgstr "Wewnętrzny błąd: %s"
 
 #. TRANSLATORS: The package was not found in any software sources
 #: ../client/pk-tools-common.c:109
 #, c-format
 msgid "The package could not be found"
-msgstr ""
+msgstr "Nie można znaleźć pakietu"
 
 #. TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages
 #: ../client/pk-tools-common.c:120
-#, fuzzy
 msgid "More than one package matches:"
-msgstr "Pasuje kilka pakietów"
+msgstr "Pasuje więcej niż jeden pakiet:"
 
 #. TRANSLATORS: This finds out which package in the list to use
 #: ../client/pk-tools-common.c:127
-#, fuzzy
 msgid "Please choose the correct package: "
-msgstr "Proszę podać numer pakietu: "
+msgstr "Proszę wybrać poprawny pakiet: "
 
 #: ../client/pk-tools-common.c:154
 #, c-format
@@ -435,58 +426,49 @@ msgstr "Uzyskiwanie informacji o pakiecie..."
 #: ../contrib/packagekit-plugin/src/contents.cpp:305
 #, c-format
 msgid "Run %s"
-msgstr ""
+msgstr "Uruchom %s"
 
 #. TRANSLATORS: show the installed version of a package
 #: ../contrib/packagekit-plugin/src/contents.cpp:311
-#, fuzzy
 msgid "Installed version"
-msgstr ""
-"\n"
-"<small>Zainstalowana wersja: %s</small>"
+msgstr "Zainstalowana wersja"
 
 #. TRANSLATORS: run the application now
 #: ../contrib/packagekit-plugin/src/contents.cpp:319
 #, c-format
 msgid "Run version %s now"
-msgstr ""
+msgstr "Uruchom wersjÄ™ %s"
 
 #: ../contrib/packagekit-plugin/src/contents.cpp:325
 msgid "Run now"
-msgstr ""
+msgstr "Uruchom teraz"
 
 #. TRANSLATORS: update to a new version of the package
 #: ../contrib/packagekit-plugin/src/contents.cpp:330
 #, c-format
 msgid "Upgrade to version %s"
-msgstr ""
+msgstr "Zaktualizuj do wersji %s"
 
 #. TRANSLATORS: To install a package
 #: ../contrib/packagekit-plugin/src/contents.cpp:336
 #, c-format
 msgid "Install %s Now"
-msgstr ""
+msgstr "Zainstaluj %s"
 
 #. TRANSLATORS: the version of the package
 #: ../contrib/packagekit-plugin/src/contents.cpp:339
 msgid "Version"
-msgstr ""
+msgstr "Wersja"
 
 #. TRANSLATORS: noting found, so can't install
 #: ../contrib/packagekit-plugin/src/contents.cpp:344
-#, fuzzy
 msgid "No packages found for your system"
-msgstr ""
-"\n"
-"<small>Nie znaleziono pakietów dla systemu</small>"
+msgstr "Nie znaleziono pakietów dla systemu"
 
 #. TRANSLATORS: package is being installed
 #: ../contrib/packagekit-plugin/src/contents.cpp:349
-#, fuzzy
 msgid "Installing..."
-msgstr ""
-"\n"
-"<small>Instalowanie...</small>"
+msgstr "Instalowanie..."
 
 #: ../data/packagekit-catalog.xml.in.h:1
 msgid "PackageKit Catalog"
@@ -647,95 +629,3 @@ msgstr "Nie można połączyć się z magistralą systemową"
 #, c-format
 msgid "Error trying to start: %s\n"
 msgstr "Błąd podczas próbowania uruchomienia: %s\n"
-
-#~ msgid "Update detail"
-#~ msgstr "Szczegóły aktualizacji"
-
-#~ msgid "A system restart is required"
-#~ msgstr "Wymagane jest ponowne uruchomienie systemu"
-
-#~ msgid "A logout and login is required"
-#~ msgstr "Wymagane jest wylogowanie siÄ™ i ponowne zalogowanie"
-
-#~ msgid "An application restart is required"
-#~ msgstr "Wymagane jest ponowne uruchomienie aplikacji"
-
-#~ msgid "Could not find package to install"
-#~ msgstr "Nie można znaleźć pakietu do zainstalowania"
-
-#~ msgid "Could not find package to remove"
-#~ msgstr "Nie można znaleźć pakietu do usunięcia"
-
-#~ msgid "Cancelled!"
-#~ msgstr "Anulowano!"
-
-#~ msgid "Could not find package to update"
-#~ msgstr "Nie można znaleźć pakietu do zaktualizowania"
-
-#~ msgid "Could not find what packages require"
-#~ msgstr "Nie można znaleźć pakietów, które wymagają"
-
-#~ msgid "Could not find details for"
-#~ msgstr "Nie można znaleźć szczegółów dla"
-
-#~ msgid "Could not find a package match"
-#~ msgstr "Nie można znaleźć pasującego pakietu"
-
-#~ msgid "Resolving package name to remote object"
-#~ msgstr "RozwiÄ…zywanie nazwy pakietu dla zdalnego obiektu"
-
-#~ msgid "Done!"
-#~ msgstr "Zakończono!"
-
-#~ msgid "Failed"
-#~ msgstr "Niepowodzenie"
-
-#~ msgid "Could not set database readonly"
-#~ msgstr "Nie można ustawić bazy danych w tryb tylko do odczytu"
-
-#~ msgid "Could not open database: %s"
-#~ msgstr "Nie można otworzyć bazy danych: %s"
-
-#~ msgid "You probably need to run this program as the root user"
-#~ msgstr "Prawdopodobnie należy uruchomić ten program jako użytkownik root"
-
-#~ msgid "<span color='#%06x' underline='single' size='larger'>Run %s</span>"
-#~ msgstr ""
-#~ "<span color='#%06x' underline='single' size='larger'>Uruchom %s</span>"
-
-#~ msgid "<big>%s</big>"
-#~ msgstr "<big>%s</big>"
-
-#~ msgid ""
-#~ "\n"
-#~ "<span color='#%06x' underline='single'>Run version %s now</span>"
-#~ msgstr ""
-#~ "\n"
-#~ "<span color='#%06x' underline='single'>Uruchom teraz wersjÄ™ %s</span>"
-
-#~ msgid ""
-#~ "\n"
-#~ "<span color='#%06x' underline='single'>Run now</span>"
-#~ msgstr ""
-#~ "\n"
-#~ "<span color='#%06x' underline='single'>Uruchom teraz</span>"
-
-#~ msgid ""
-#~ "\n"
-#~ "<span color='#%06x' underline='single'>Upgrade to version %s</span>"
-#~ msgstr ""
-#~ "\n"
-#~ "<span color='#%06x' underline='single'>Zaktualizuj do wersji %s</span>"
-
-#~ msgid ""
-#~ "<span color='#%06x' underline='single' size='larger'>Install %s Now</span>"
-#~ msgstr ""
-#~ "<span color='#%06x' underline='single' size='larger'>Zainstaluj teraz %s</"
-#~ "span>"
-
-#~ msgid ""
-#~ "\n"
-#~ "<small>Version: %s</small>"
-#~ msgstr ""
-#~ "\n"
-#~ "<small>Wersja: %s</small>"
commit 5567bdb89b662c32fcca947313766303caa8080e
Author: Richard Hughes <richard at hughsie.com>
Date:   Thu Oct 16 12:22:09 2008 +0100

    bugfix: use the yum dependancy filter when there is not installed in the filter string, not just if it's installed. We ship with newest by default, which exposes this bug

diff --git a/backends/yum/packagekit b/backends/yum/packagekit
index ee409e9..571b05c 120000
--- a/backends/yum/packagekit
+++ b/backends/yum/packagekit
@@ -1 +1 @@
-../lib/python/packagekit
\ No newline at end of file
+../../lib/python/packagekit/
\ No newline at end of file
diff --git a/backends/yum/yumBackend.py b/backends/yum/yumBackend.py
index 90de0ce..3df71a7 100755
--- a/backends/yum/yumBackend.py
+++ b/backends/yum/yumBackend.py
@@ -906,14 +906,19 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
         return pkgs
 
     def _get_depends_not_installed(self, fltlist, package_ids, recursive):
+        '''
+        Gets the deps that are not installed, optimisation of get_depends
+        using a yum transaction
+        Returns a list of pkgs.
+        '''
         percentage = 0
         bump = 100 / len(package_ids)
         deps_list = []
         resolve_list = []
 
-        for package in package_ids:
+        for package_id in package_ids:
             self.percentage(percentage)
-            grp = self._is_meta_package(package)
+            grp = self._is_meta_package(package_id)
             if grp:
                 if grp.installed:
                     self.error(ERROR_PACKAGE_ALREADY_INSTALLED, "The Group %s is already installed" % grp.groupid)
@@ -922,7 +927,7 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
                     for txmbr in self.yumbase.tsInfo:
                         deps_list.append(txmbr.po)
             else:
-                pkg, inst = self._findPackage(package)
+                pkg, inst = self._findPackage(package_id)
                 # This simulates the addition of the package
                 if not inst and pkg:
                     resolve_list.append(pkg)
@@ -938,16 +943,20 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
                     if txmbr.po not in deps_list:
                         deps_list.append(txmbr.po)
 
-
         # make unique list
         deps_list = unique(deps_list)
 
-        # each unique name, emit
+        # remove any of the packages we passed in
+        for package_id in package_ids:
+            pkg, inst = self._findPackage(package_id)
+            deps_list.remove(pkg)
+
+        # remove any that are already installed
         for pkg in deps_list:
-            package_id = self._pkg_to_id(pkg)
-            if package_id not in package_ids:
-                self.package(package_id, INFO_AVAILABLE, pkg.summary)
-        self.percentage(100)
+            if self._is_inst(pkg):
+                deps_list.remove(pkg)
+
+        return deps_list
 
     def get_depends(self, filters, package_ids, recursive_text):
         '''
@@ -965,8 +974,12 @@ class PackageKitYumBackend(PackageKitBaseBackend, PackagekitPackage):
         # before we do an install we do ~installed + recursive true,
         # which we can emulate quicker by doing a transaction, but not
         # executing it
-        if filters == FILTER_NOT_INSTALLED:
-            self._get_depends_not_installed (fltlist, package_ids, recursive)
+        if FILTER_NOT_INSTALLED in fltlist and recursive:
+            pkgs = self._get_depends_not_installed (fltlist, package_ids, recursive)
+            pkgfilter.add_available(pkgs)
+            package_list = pkgfilter.post_process()
+            self._show_package_list(package_list)
+            self.percentage(100)
             return
 
         percentage = 0
commit 5edc84227400c06e206e90de685702d77c95bccf
Author: Nils Philippsen <nils at redhat.com>
Date:   Thu Oct 16 10:51:31 2008 +0100

    trivial: some more localisation fixes

diff --git a/client/pk-console.c b/client/pk-console.c
index 8ae2f92..2b10fb5 100644
--- a/client/pk-console.c
+++ b/client/pk-console.c
@@ -551,7 +551,7 @@ pk_console_install_stuff (PkClient *client, gchar **packages, GError **error)
 		} else {
 			package_id = pk_console_perhaps_resolve (client, pk_bitfield_value (PK_FILTER_ENUM_NOT_INSTALLED), packages[i], &error_local);
 			if (package_id == NULL) {
-				/* TRANSLATORS: The package name was not found in any software sources */
+				/* TRANSLATORS: The package name was not found in any software sources. The detailed error follows */
 				*error = g_error_new (1, 0, _("The package '%s' could not be installed: %s"), packages[i], error_local->message);
 				g_error_free (error_local);
 				ret = FALSE;
@@ -574,15 +574,19 @@ pk_console_install_stuff (PkClient *client, gchar **packages, GError **error)
 		package_ids = pk_ptr_array_to_strv (array_packages);
 
 		/* reset */
-		ret = pk_client_reset (client, error);
+		ret = pk_client_reset (client, &error_local);
 		if (!ret) {
-			egg_warning ("failed to reset");
+			/* TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows */
+			*error = g_error_new (1, 0, _("Internal error: %s"), error_local->message);
+			g_error_free (error_local);
 			goto out;
 		}
 
 		ret = pk_client_install_packages (client, package_ids, error);
 		if (!ret) {
-			egg_warning ("failed to install packages");
+			/* TRANSLATORS: There was an error installing the packages. The detailed error follows */
+			*error = g_error_new (1, 0, _("This tool could not install the packages: %s"), error_local->message);
+			g_error_free (error_local);
 			goto out;
 		}
 	}
@@ -597,16 +601,18 @@ pk_console_install_stuff (PkClient *client, gchar **packages, GError **error)
 		files_cache = g_strdupv (files);
 
 		/* reset */
-		ret = pk_client_reset (client, error);
+		ret = pk_client_reset (client, &error_local);
 		if (!ret) {
-			egg_warning ("failed to reset");
+			/* TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows */
+			*error = g_error_new (1, 0, _("Internal error: %s"), error_local->message);
+			g_error_free (error_local);
 			goto out;
 		}
 
 		ret = pk_client_install_files (client, trusted, files, &error_local);
 		if (!ret) {
-			/* TRANSLATORS: There was an error installing the packages. The detailed error follows */
-			*error = g_error_new (1, 0, _("This tool could not install the packages: %s"), error_local->message);
+			/* TRANSLATORS: There was an error installing the files. The detailed error follows */
+			*error = g_error_new (1, 0, _("This tool could not install the files: %s"), error_local->message);
 			g_error_free (error_local);
 			goto out;
 		}
@@ -691,9 +697,11 @@ pk_console_remove_packages (PkClient *client, gchar **packages, GError **error)
 		goto out;
 	}
 
-	ret = pk_client_reset (client_task, error);
+	ret = pk_client_reset (client_task, &error_local);
 	if (!ret) {
-		egg_warning ("failed to reset");
+		/* TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows */
+		*error = g_error_new (1, 0, _("Internal error: %s"), error_local->message);
+		g_error_free (error_local);
 		goto out;
 	}
 
@@ -732,8 +740,8 @@ pk_console_remove_packages (PkClient *client, gchar **packages, GError **error)
 	if (awaiting_space)
 		g_print ("\n");
 
-	/* TRANSLATORS: When removing, we might have to remove other deps */
-	g_print ("%s:\n", _("The following packages have to be removed"));
+	/* TRANSLATORS: When removing, we might have to remove other dependencies */
+	g_print ("%s\n", _("The following packages have to be removed:"));
 	for (i=0; i<length; i++) {
 		obj = pk_package_list_get_obj (list, i);
 		g_print ("%i\t%s-%s.%s\n", i, obj->id->name, obj->id->version, obj->id->arch);
@@ -745,7 +753,7 @@ pk_console_remove_packages (PkClient *client, gchar **packages, GError **error)
 	/* we chickened out */
 	if (!remove) {
 		/* TRANSLATORS: We did not remove any packages */
-		g_print ("%s\n", _("The package removal was cancelled!"));
+		g_print ("%s\n", _("The package removal was canceled!"));
 		ret = FALSE;
 		goto out;
 	}
@@ -786,7 +794,7 @@ pk_console_download_packages (PkClient *client, gchar **packages, const gchar *d
 			package_id = pk_console_perhaps_resolve (client, pk_bitfield_value (PK_FILTER_ENUM_NONE), packages[i], &error_local);
 			if (package_id == NULL) {
 				/* TRANSLATORS: The package name was not found in any software sources */
-				*error = g_error_new (1, 0, _("This tool could not find the package '%s' to download"), packages[i]);
+				*error = g_error_new (1, 0, _("This tool could not download the package '%s' as it could not be found"), packages[i]);
 				g_error_free (error_local);
 				ret = FALSE;
 				break;
@@ -806,15 +814,19 @@ pk_console_download_packages (PkClient *client, gchar **packages, const gchar *d
 		package_ids = pk_ptr_array_to_strv (array_packages);
 
 		/* reset */
-		ret = pk_client_reset (client, error);
+		ret = pk_client_reset (client, &error_local);
 		if (!ret) {
-			egg_warning ("failed to reset");
+			/* TRANSLATORS: There was a programming error that shouldn't happen. The detailed error follows */
+			*error = g_error_new (1, 0, _("Internal error: %s"), error_local->message);
+			g_error_free (error_local);
 			goto out;
 		}
 
 		ret = pk_client_download_packages (client, package_ids, directory, error);
 		if (!ret) {
-			egg_warning ("failed to download the packages");
+			/* TRANSLATORS: Could not download the packages for some reason. The detailed error follows */
+			*error = g_error_new (1, 0, _("This tool could not download the packages: %s"), error_local->message);
+			g_error_free (error_local);
 			goto out;
 		}
 	}
@@ -871,7 +883,7 @@ pk_console_get_requires (PkClient *client, PkBitfield filters, const gchar *pack
 	package_id = pk_console_perhaps_resolve (client, pk_bitfield_value (PK_FILTER_ENUM_NONE), package, &error_local);
 	if (package_id == NULL) {
 		/* TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows */
-		*error = g_error_new (1, 0, _("This tool could not get the requires for '%s': %s"), package, error_local->message);
+		*error = g_error_new (1, 0, _("This tool could not get the requirements for '%s': %s"), package, error_local->message);
 		g_error_free (error_local);
 		return FALSE;
 	}
@@ -879,7 +891,7 @@ pk_console_get_requires (PkClient *client, PkBitfield filters, const gchar *pack
 	ret = pk_client_get_requires (client, filters, package_ids, TRUE, &error_local);
 	if (!ret) {
 		/* TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows */
-		*error = g_error_new (1, 0, _("This tool could not get the requires for '%s': %s"), package, error_local->message);
+		*error = g_error_new (1, 0, _("This tool could not get the requirements for '%s': %s"), package, error_local->message);
 		g_error_free (error_local);
 	}
 	g_strfreev (package_ids);
@@ -900,16 +912,16 @@ pk_console_get_depends (PkClient *client, PkBitfield filters, const gchar *packa
 
 	package_id = pk_console_perhaps_resolve (client, pk_bitfield_value (PK_FILTER_ENUM_NONE), package, &error_local);
 	if (package_id == NULL) {
-		/* TRANSLATORS: There was an error getting the depends for the package. The detailed error follows */
-		*error = g_error_new (1, 0, _("This tool could not get the dependancies for '%s': %s"), package, error_local->message);
+		/* TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows */
+		*error = g_error_new (1, 0, _("This tool could not get the dependencies for '%s': %s"), package, error_local->message);
 		g_error_free (error_local);
 		return FALSE;
 	}
 	package_ids = pk_package_ids_from_id (package_id);
 	ret = pk_client_get_depends (client, filters, package_ids, FALSE, &error_local);
 	if (!ret) {
-		/* TRANSLATORS: There was an error getting the depends for the package. The detailed error follows */
-		*error = g_error_new (1, 0, _("This tool could not get the dependancies for '%s': %s"), package, error_local->message);
+		/* TRANSLATORS: There was an error getting the dependencies for the package. The detailed error follows */
+		*error = g_error_new (1, 0, _("This tool could not get the dependencies for '%s': %s"), package, error_local->message);
 		g_error_free (error_local);
 	}
 	g_strfreev (package_ids);
@@ -1123,7 +1135,7 @@ pk_console_repo_signature_required_cb (PkClient *client, const gchar *package_id
 	if (awaiting_space)
 		g_print ("\n");
 
-	/* TRANSLATORS: This a request for a GPG key signature */
+	/* TRANSLATORS: This a request for a GPG key signature from the backend, which the client will prompt for later */
 	g_print ("%s\n", _("Repository signature required"));
 	g_print ("Package:     %s\n", package_id);
 	g_print ("Name:        %s\n", repository_name);
@@ -1134,11 +1146,11 @@ pk_console_repo_signature_required_cb (PkClient *client, const gchar *package_id
 	g_print ("Timestamp:   %s\n", key_timestamp);
 
 	/* TRANSLATORS: This a prompt asking the user to import the security key */
-	import = pk_console_get_prompt (_("Okay to import key?"), FALSE);
+	import = pk_console_get_prompt (_("You you accept this signature?"), FALSE);
 	if (!import) {
 		need_requeue = FALSE;
 		/* TRANSLATORS: This is where the user declined the security key */
-		g_print ("%s\n", _("Did not import key"));
+		g_print ("%s\n", _("The signature was not accepted."));
 		return;
 	}
 
@@ -1172,18 +1184,18 @@ pk_console_eula_required_cb (PkClient *client, const gchar *eula_id, const gchar
 		g_print ("\n");
 
 	/* TRANSLATORS: This a request for a EULA */
-	g_print ("%s\n", _("Eula required"));
+	g_print ("%s\n", _("End user license agreement required"));
 	g_print ("Eula:        %s\n", eula_id);
 	g_print ("Package:     %s\n", package_id);
 	g_print ("Vendor:      %s\n", vendor_name);
 	g_print ("Agreement:   %s\n", license_agreement);
 
-	/* TRANSLATORS: This a prompt asking the user to agree to the licence */
-	import = pk_console_get_prompt (_("Do you agree?"), FALSE);
+	/* TRANSLATORS: This a prompt asking the user to agree to the license */
+	import = pk_console_get_prompt (_("Do you agree to this license?"), FALSE);
 	if (!import) {
 		need_requeue = FALSE;
-		/* TRANSLATORS: This is where the user declined the licence */
-		g_print ("%s\n", _("Did not agree to licence"));
+		/* TRANSLATORS: This is where the user declined the license */
+		g_print ("%s\n", _("The license was refused."));
 		return;
 	}
 
@@ -1546,7 +1558,7 @@ main (int argc, char *argv[])
 		ret = pk_console_download_packages (client, argv, value, &error);
 	} else if (strcmp (mode, "accept-eula") == 0) {
 		if (value == NULL) {
-			error = g_error_new (1, 0, "%s", _("You need to specify a eula-id"));
+			error = g_error_new (1, 0, "%s", _("You need to specify a licence identifier (eula-id)"));
 			goto out;
 		}
 		ret = pk_client_accept_eula (client, value, &error);
@@ -1571,14 +1583,14 @@ main (int argc, char *argv[])
 
 	} else if (strcmp (mode, "repo-enable") == 0) {
 		if (value == NULL) {
-			error = g_error_new (1, 0, "%s", _("You need to specify a repo name"));
+			error = g_error_new (1, 0, "%s", _("You need to specify a repository name"));
 			goto out;
 		}
 		ret = pk_client_repo_enable (client, value, TRUE, &error);
 
 	} else if (strcmp (mode, "repo-disable") == 0) {
 		if (value == NULL) {
-			error = g_error_new (1, 0, "%s", _("You need to specify a repo name"));
+			error = g_error_new (1, 0, "%s", _("You need to specify a repository name"));
 			goto out;
 		}
 		ret = pk_client_repo_enable (client, value, FALSE, &error);
@@ -1598,7 +1610,7 @@ main (int argc, char *argv[])
 		guint time;
 		gboolean ret;
 		if (value == NULL) {
-			error = g_error_new (1, 0, "%s", _("You need to specify a time term"));
+			error = g_error_new (1, 0, "%s", _("You need to specify an action, e.g. 'update-system'"));
 			goto out;
 		}
 		role = pk_role_enum_from_text (value);
@@ -1707,7 +1719,7 @@ main (int argc, char *argv[])
 
 	} else {
 		/* TRANSLATORS: The user tried to use an unsupported option on the command line */
-		error = g_error_new (1, 0, _("Option '%s' not supported"), mode);
+		error = g_error_new (1, 0, _("Option '%s' is not supported"), mode);
 	}
 
 	/* do we wait for the method? */
diff --git a/client/pk-generate-pack.c b/client/pk-generate-pack.c
index 6e29684..fb749b4 100644
--- a/client/pk-generate-pack.c
+++ b/client/pk-generate-pack.c
@@ -137,13 +137,13 @@ main (int argc, char *argv[])
 		{ "verbose", 'v', 0, G_OPTION_ARG_NONE, &verbose,
 			_("Show extra debugging information"), NULL },
 		{ "with-package-list", 'l', 0, G_OPTION_ARG_STRING, &package_list,
-			_("Set the filename of dependencies to be excluded"), NULL},
+			_("Set the file name of dependencies to be excluded"), NULL},
 		{ "output", 'o', 0, G_OPTION_ARG_STRING, &directory,
-			_("The directory to put the pack file, or the current directory if ommitted"), NULL},
+			_("The output directory (the current directory is used if ommitted)"), NULL},
 		{ "package", 'p', 0, G_OPTION_ARG_STRING, &package,
-			_("The package to be put into the ServicePack"), NULL},
+			_("The package to be put into the service pack"), NULL},
 		{ "updates", 'u', 0, G_OPTION_ARG_NONE, &updates,
-			_("Put all updates available in the ServicePack"), NULL},
+			_("Put all updates available in the service pack"), NULL},
 		{ NULL}
 	};
 
@@ -218,8 +218,8 @@ main (int argc, char *argv[])
 	/* make the temporary directory */
 	retval = g_mkdir_with_parents (tempdir, 0777);
 	if (retval != 0) {
-		/* TRANSLATORS: This is when the temporary directory cannot be created */
-		g_print ("%s: '%s'\n", _("Failed to create directory."), tempdir);
+		/* TRANSLATORS: This is when the temporary directory cannot be created, the directory name follows */
+		g_print ("%s '%s'\n", _("Failed to create directory:"), tempdir);
 		goto out;
 	}
 
@@ -237,11 +237,11 @@ main (int argc, char *argv[])
 		client = pk_client_new ();
 		pk_client_set_use_buffer (client, TRUE, NULL);
 		pk_client_set_synchronous (client, TRUE, NULL);
-		/* TRANSLATORS: This is when the user fails to supply the correct arguments */
+		/* TRANSLATORS: The package name is being matched up to available packages */
 		g_print ("%s\n", _("Finding package name."));
 		package_id = pk_generate_pack_package_resolve (client, PK_FILTER_ENUM_NONE, package, &error);
 		if (package_id == NULL) {
-			/* TRANSLATORS: This is when the package cannot be foudn in any software source */
+			/* TRANSLATORS: This is when the package cannot be found in any software source. The detailed error follows */
 			g_print (_("Failed to find package '%s': %s"), package, error->message);
 			g_error_free (error);
 			goto out;
diff --git a/contrib/packagekit-plugin/src/contents.cpp b/contrib/packagekit-plugin/src/contents.cpp
index 6201eef..bd0d69f 100644
--- a/contrib/packagekit-plugin/src/contents.cpp
+++ b/contrib/packagekit-plugin/src/contents.cpp
@@ -327,13 +327,13 @@ PkpContents::ensureLayout(cairo_t              *cr,
 
         append_markup(markup, "\n<span color='#%06x' underline='single'>", link_color >> 8);
         /* TRANSLATORS: update to a new version of the package */
-        append_markup(markup, _("Upgrade to version %s"), mAvailableVersion.c_str());
+        append_markup(markup, _("Update to version %s"), mAvailableVersion.c_str());
         append_markup(markup, "</span>");
         break;
     case AVAILABLE:
         append_markup(markup, "\n<span color='#%06x' underline='single'>", link_color >> 8);
         /* TRANSLATORS: To install a package */
-        append_markup(markup, _("Install %s Now"), mDisplayName.c_str());
+        append_markup(markup, _("Install %s now"), mDisplayName.c_str());
         append_markup(markup, "</span>");
         /* TRANSLATORS: the version of the package */
         append_markup(markup, "\n<small>%s: %s</small>", _("Version"), mAvailableVersion.c_str());
diff --git a/src/pk-main.c b/src/pk-main.c
index 1b9587b..c1a262a 100644
--- a/src/pk-main.c
+++ b/src/pk-main.c
@@ -81,12 +81,13 @@ pk_object_register (DBusGConnection *connection, GObject *object, GError **error
 	if (!ret) {
 		egg_warning ("RequestName failed!");
 		g_clear_error (error);
-		message = g_strdup_printf ("%s\n%s\n* %s\n* %s\n",
+		message = g_strdup_printf ("%s\n%s\n* %s\n* %s '%s'\n",
 					   _("Startup failed due to security policies on this machine."),
 					   _("This can happen for two reasons:"),
 					   _("The correct user is not launching the executable (usually root)"),
 					   _("The org.freedesktop.PackageKit.conf file is not "
-					     "installed in the system /etc/dbus-1/system.d directory"));
+					     "installed in the system directory:"),
+					     "/etc/dbus-1/system.d");
 		g_set_error (error, PK_ENGINE_ERROR, PK_ENGINE_ERROR_DENIED, "%s", message);
 		g_free (message);
 		return FALSE;
commit 46ee12ab9cdcc3a7eab5cebb431e76ae10cfe67e
Author: Adrien BUSTANY <madcat at mymadcat.com>
Date:   Thu Oct 16 10:19:49 2008 +0200

    Unify headers path

diff --git a/lib/packagekit-qt/src/CMakeLists.txt b/lib/packagekit-qt/src/CMakeLists.txt
index 635c58c..373e208 100644
--- a/lib/packagekit-qt/src/CMakeLists.txt
+++ b/lib/packagekit-qt/src/CMakeLists.txt
@@ -58,5 +58,5 @@ install(FILES
 	package.h
 	QPackageKit
 	DESTINATION
-	include/packagekit-qt)
+	include/PackageKit/packagekit-qt)
 
commit 2abc6d1321dd534507fa12b564e3a66928eafcb7
Author: Richard Hughes <richard at hughsie.com>
Date:   Thu Oct 16 09:03:04 2008 +0100

    qt: add some of the missing enumerated values

diff --git a/lib/packagekit-qt/src/client.h b/lib/packagekit-qt/src/client.h
index 2bd4956..cc420da 100644
--- a/lib/packagekit-qt/src/client.h
+++ b/lib/packagekit-qt/src/client.h
@@ -108,6 +108,7 @@ public:
 		ActionAcceptEula,
 		ActionDownloadPackages,
 		ActionGetDistroUpgrades,
+		ActionGetCategories,
 		UnkownAction = -1
 	} Action;
 	typedef QSet<Action> Actions;
@@ -158,6 +159,8 @@ public:
 		FilterNotArch,
 		FilterSource,
 		FilterNotSource,
+		FilterCollections,
+		FilterNotCollections,
 		UnknownFilter = -1
 	} Filter;
 	typedef QSet<Filter> Filters;
@@ -202,7 +205,9 @@ public:
 		Science,
 		Documentation,
 		Electronics,
-		MetaPackages,
+		Collections,
+		Vendor,
+		Newest,
 		UnknownGroup = -1
 	} Group;
 	typedef QSet<Group> Groups;
commit a77f9a8f9e4e3528edaf06e335837e7333097301
Author: David Andersson <david at xn--kremla-iuad.se>
Date:   Thu Oct 16 08:49:07 2008 +0100

    Rename se.po to sv.po and update

diff --git a/po/LINGUAS b/po/LINGUAS
index b85c58e..751a4c8 100644
--- a/po/LINGUAS
+++ b/po/LINGUAS
@@ -13,7 +13,7 @@ nb
 pl
 pt_BR
 ru
-se
+sv
 sk
 sr
 sr at latin
diff --git a/po/se.po b/po/se.po
deleted file mode 100644
index 8fc3f0f..0000000
--- a/po/se.po
+++ /dev/null
@@ -1,743 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-10-15 18:11+0100\n"
-"PO-Revision-Date: 2008-10-13 21:18+0100\n"
-"Last-Translator: David Andersson <david at xn--kremla-iuad.se>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:273
-msgid "Details about the update:"
-msgstr ""
-
-#: ../client/pk-console.c:466
-msgid "Please restart the computer to complete the update."
-msgstr ""
-
-#: ../client/pk-console.c:468
-msgid "Please logout and login to complete the update."
-msgstr ""
-
-#: ../client/pk-console.c:470
-msgid "Please restart the application as it is being used."
-msgstr ""
-
-#. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:555
-#, c-format
-msgid "The package '%s' could not be installed: %s"
-msgstr ""
-
-#. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:609
-#, c-format
-msgid "This tool could not install the packages: %s"
-msgstr ""
-
-#. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:665
-#, c-format
-msgid "This tool could not remove '%s': %s"
-msgstr ""
-
-#. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:688 ../client/pk-console.c:757
-#, c-format
-msgid "This tool could not remove the packages: %s"
-msgstr ""
-
-#. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:724
-#, c-format
-msgid "This tool could not remove the packages: '%s'"
-msgstr ""
-
-#. TRANSLATORS: When removing, we might have to remove other deps
-#: ../client/pk-console.c:736
-msgid "The following packages have to be removed"
-msgstr "Följande paket måste tas bort"
-
-#. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:743
-#, fuzzy
-msgid "Proceed removing additional packages?"
-msgstr "Är det ok att ta bort dessa extra paket?"
-
-#. TRANSLATORS: We did not remove any packages
-#: ../client/pk-console.c:748
-msgid "The package removal was cancelled!"
-msgstr ""
-
-#. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:789
-#, fuzzy, c-format
-msgid "This tool could not find the package '%s' to download"
-msgstr "Kunde inte hitta paketet att ladda ner"
-
-#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:843 ../client/pk-console.c:852
-#, c-format
-msgid "This tool could not update '%s': %s"
-msgstr ""
-
-#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:874 ../client/pk-console.c:882
-#, c-format
-msgid "This tool could not get the requires for '%s': %s"
-msgstr ""
-
-#. TRANSLATORS: There was an error getting the depends for the package. The detailed error follows
-#: ../client/pk-console.c:904 ../client/pk-console.c:912
-#, fuzzy, c-format
-msgid "This tool could not get the dependancies for '%s': %s"
-msgstr "Kunde inte hämta beroenden för"
-
-#. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:934 ../client/pk-console.c:942
-#, c-format
-msgid "This tool could not get package details for '%s': %s"
-msgstr ""
-
-#. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:964
-#, fuzzy, c-format
-msgid "This tool could not find the files for '%s': %s"
-msgstr "Kunde inte hitta filerna för detta paket"
-
-#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:972
-#, fuzzy, c-format
-msgid "This tool could not get the file list for '%s': %s"
-msgstr "Kunde inte hämta fillistan"
-
-#. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:994
-#, fuzzy, c-format
-msgid "This tool could not find the update details for '%s': %s"
-msgstr "Kunde inte hitta detaljerna om uppdateringen för"
-
-#. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1002
-#, fuzzy, c-format
-msgid "This tool could not get the update details for '%s': %s"
-msgstr "Kunde inte hitta detaljerna om uppdateringen för"
-
-#. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1048
-msgid "Error:"
-msgstr ""
-
-#. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1062
-msgid "Package description"
-msgstr "Paketets beskrivning"
-
-#. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1095
-msgid "Package files"
-msgstr "Paketets filer"
-
-#. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1104
-msgid "No files"
-msgstr "Inga filer"
-
-#. TRANSLATORS: This a request for a GPG key signature
-#: ../client/pk-console.c:1127
-msgid "Repository signature required"
-msgstr ""
-
-#. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1137
-msgid "Okay to import key?"
-msgstr "Är det Ok att importera nyckeln?"
-
-#. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1141
-msgid "Did not import key"
-msgstr "Importerade inte nyckeln"
-
-#. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1175
-msgid "Eula required"
-msgstr ""
-
-#. TRANSLATORS: This a prompt asking the user to agree to the licence
-#: ../client/pk-console.c:1182
-msgid "Do you agree?"
-msgstr "Godkänner du?"
-
-#. TRANSLATORS: This is where the user declined the licence
-#: ../client/pk-console.c:1186
-#, fuzzy
-msgid "Did not agree to licence"
-msgstr "Godkände inte licensen, uppgiften kommer misslyckas"
-
-#. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
-#: ../client/pk-console.c:1215
-msgid "The daemon crashed mid-transaction!"
-msgstr "Daemonen kraschade under transaktionen"
-
-#. TRANSLATORS: This is the header to the --help menu
-#: ../client/pk-console.c:1268
-msgid "PackageKit Console Interface"
-msgstr "PackageKits Konsolgränssnitt"
-
-#: ../client/pk-console.c:1268
-msgid "Subcommands:"
-msgstr "Underkommandon"
-
-#: ../client/pk-console.c:1359 ../client/pk-generate-pack.c:138
-#: ../client/pk-monitor.c:115 ../src/pk-main.c:195
-msgid "Show extra debugging information"
-msgstr "Visa ytterligare debuginformation"
-
-#: ../client/pk-console.c:1361 ../client/pk-monitor.c:117
-msgid "Show the program version and exit"
-msgstr "Visa versionen av programmet och avsluta"
-
-#: ../client/pk-console.c:1363
-msgid "Set the filter, e.g. installed"
-msgstr "Sätt filtret, t ex installerat"
-
-#: ../client/pk-console.c:1365
-msgid "Exit without waiting for actions to complete"
-msgstr "Avsluta utan att vänta på att åtgärder ska slutföras"
-
-#. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:1387
-#, fuzzy
-msgid "This tool could not connect to system DBUS."
-msgstr "Kunde inte ansluta till systemets DBUS"
-
-#: ../client/pk-console.c:1482
-msgid "You need to specify a search type, e.g. name"
-msgstr "Du måste ange en söktyp, t ex namn"
-
-#: ../client/pk-console.c:1487 ../client/pk-console.c:1494
-#: ../client/pk-console.c:1501 ../client/pk-console.c:1508
-#: ../client/pk-console.c:1619 ../client/pk-console.c:1629
-#: ../client/pk-console.c:1636 ../client/pk-console.c:1643
-msgid "You need to specify a search term"
-msgstr "Du måste ange en sökterm"
-
-#: ../client/pk-console.c:1513
-msgid "Invalid search type"
-msgstr "Ogiltig söktyp"
-
-#: ../client/pk-console.c:1518
-msgid "You need to specify a package or file to install"
-msgstr "Du måste ange ett paket eller fil att installera"
-
-#: ../client/pk-console.c:1525
-msgid "You need to specify a type, key_id and package_id"
-msgstr "Du måste ange en typ, key_id och package_id"
-
-#: ../client/pk-console.c:1532
-msgid "You need to specify a package to remove"
-msgstr "Du måste ange ett paket att ta bort"
-
-#: ../client/pk-console.c:1538
-msgid ""
-"You need to specify the destination directory and then the packages to "
-"download"
-msgstr "Du måste ange målmappen och paketen att ladda ner"
-
-#: ../client/pk-console.c:1543
-msgid "Directory not found"
-msgstr "Mappen kunde inte hittas"
-
-#: ../client/pk-console.c:1549
-msgid "You need to specify a eula-id"
-msgstr "Du måste ange ett eula-id"
-
-#: ../client/pk-console.c:1565
-msgid "You need to specify a package name to resolve"
-msgstr "Du måste ange ett namn att söka efter"
-
-#: ../client/pk-console.c:1574 ../client/pk-console.c:1581
-msgid "You need to specify a repo name"
-msgstr "Du måste ange ett \"reponamn\""
-
-#: ../client/pk-console.c:1588
-msgid "You need to specify a repo name/parameter and value"
-msgstr "Du måste ange ett \"reponamn\"/parameter och värde"
-
-#: ../client/pk-console.c:1601
-msgid "You need to specify a time term"
-msgstr "Du måste ange en tidsperiod"
-
-#: ../client/pk-console.c:1606
-msgid "You need to specify a correct role"
-msgstr "Du måste ange en korrekt roll"
-
-#: ../client/pk-console.c:1611
-msgid "Failed to get last time"
-msgstr "Misslyckades att hämta senaste gången"
-
-#: ../client/pk-console.c:1650
-msgid "You need to specify a package to find the details for"
-msgstr "Då måste ange ett paket att hitta detaljer om"
-
-#: ../client/pk-console.c:1657
-msgid "You need to specify a package to find the files for"
-msgstr "Då måste ange ett paket att hitta filer till"
-
-#. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:1710
-#, c-format
-msgid "Option '%s' not supported"
-msgstr "Alternativet '%s' stöds ej"
-
-#. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:1723
-msgid "You don't have the necessary privileges for this operation"
-msgstr "Du har inte nädvändiga privilegier för denna operation"
-
-#. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:1726
-msgid "Command failed"
-msgstr "Kommandot misslyckades"
-
-#. TRANSLATORS: This is the state of the transaction
-#: ../client/pk-generate-pack.c:96
-msgid "Downloading"
-msgstr ""
-
-#: ../client/pk-generate-pack.c:140
-#, fuzzy
-msgid "Set the filename of dependencies to be excluded"
-msgstr "Sätt sökvägen till filen med listan över paket/beroenden att exkludera"
-
-#: ../client/pk-generate-pack.c:142
-msgid ""
-"The directory to put the pack file, or the current directory if ommitted"
-msgstr ""
-
-#: ../client/pk-generate-pack.c:144
-#, fuzzy
-msgid "The package to be put into the ServicePack"
-msgstr "Packagekit Servicepack"
-
-#: ../client/pk-generate-pack.c:146
-msgid "Put all updates available in the ServicePack"
-msgstr ""
-
-#. TRANSLATORS: This is when the user fails to supply the correct arguments
-#: ../client/pk-generate-pack.c:166
-msgid "Neither --package or --updates option selected."
-msgstr ""
-
-#. TRANSLATORS: This is when the user fails to supply just one argument
-#: ../client/pk-generate-pack.c:174
-msgid "Both options selected."
-msgstr ""
-
-#. TRANSLATORS: This is when file already exists
-#: ../client/pk-generate-pack.c:207
-msgid "A pack with the same name already exists, do you want to overwrite it?"
-msgstr "Ett pack med samma namn existerar redan, vill du skriva över det?"
-
-#. TRANSLATORS: This is when the pack was not overwritten
-#: ../client/pk-generate-pack.c:210
-msgid "The pack was not overwritten."
-msgstr ""
-
-#. TRANSLATORS: This is when the temporary directory cannot be created
-#: ../client/pk-generate-pack.c:222
-#, fuzzy
-msgid "Failed to create directory."
-msgstr "Misslyckades med att skapa mapp"
-
-#. TRANSLATORS: This is when the list of packages from the remote computer cannot be opened
-#: ../client/pk-generate-pack.c:231
-#, fuzzy
-msgid "Failed to open package list."
-msgstr "Misslyckades med att skapa pack"
-
-#. TRANSLATORS: This is when the user fails to supply the correct arguments
-#: ../client/pk-generate-pack.c:241
-msgid "Finding package name."
-msgstr ""
-
-#. TRANSLATORS: This is when the package cannot be foudn in any software source
-#: ../client/pk-generate-pack.c:245
-#, fuzzy, c-format
-msgid "Failed to find package '%s': %s"
-msgstr "Kunde inte hitta paketet att installera"
-
-#. TRANSLATORS: This is telling the user we are in the process of making the pack
-#: ../client/pk-generate-pack.c:260
-msgid "Creating service pack..."
-msgstr ""
-
-#. TRANSLATORS: we succeeded in making the file
-#: ../client/pk-generate-pack.c:267
-#, c-format
-msgid "Service pack created '%s'"
-msgstr ""
-
-#. TRANSLATORS: we failed to make te file
-#: ../client/pk-generate-pack.c:271
-#, fuzzy, c-format
-msgid "Failed to create '%s': %s"
-msgstr "Misslyckades med att skapa pack"
-
-#: ../client/pk-monitor.c:128
-msgid "PackageKit Monitor"
-msgstr "PackageKit Övervakare"
-
-#: ../client/pk-tools-common.c:48 ../client/pk-tools-common.c:58
-#: ../client/pk-tools-common.c:76 ../client/pk-tools-common.c:83
-#, c-format
-msgid "Internal error: %s"
-msgstr ""
-
-#. TRANSLATORS: The package was not found in any software sources
-#: ../client/pk-tools-common.c:109
-#, c-format
-msgid "The package could not be found"
-msgstr ""
-
-#. TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages
-#: ../client/pk-tools-common.c:120
-#, fuzzy
-msgid "More than one package matches:"
-msgstr "Det finns flera paket som matchar"
-
-#. TRANSLATORS: This finds out which package in the list to use
-#: ../client/pk-tools-common.c:127
-#, fuzzy
-msgid "Please choose the correct package: "
-msgstr "Var snäll skriv in paketets nummer:"
-
-#: ../client/pk-tools-common.c:154
-#, c-format
-msgid "Please enter a number from 1 to %i: "
-msgstr "Var snäll skriv in ett nummer frpn 1 till %i: "
-
-#. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/packagekit-plugin/src/contents.cpp:299
-msgid "Getting package information..."
-msgstr "Hämtar paketinformation"
-
-#. TRANSLATORS: run an applicaiton
-#: ../contrib/packagekit-plugin/src/contents.cpp:305
-#, c-format
-msgid "Run %s"
-msgstr ""
-
-#. TRANSLATORS: show the installed version of a package
-#: ../contrib/packagekit-plugin/src/contents.cpp:311
-#, fuzzy
-msgid "Installed version"
-msgstr ""
-"\n"
-"<small>Installerade versioner: %s</small>"
-
-#. TRANSLATORS: run the application now
-#: ../contrib/packagekit-plugin/src/contents.cpp:319
-#, c-format
-msgid "Run version %s now"
-msgstr ""
-
-#: ../contrib/packagekit-plugin/src/contents.cpp:325
-msgid "Run now"
-msgstr ""
-
-#. TRANSLATORS: update to a new version of the package
-#: ../contrib/packagekit-plugin/src/contents.cpp:330
-#, c-format
-msgid "Upgrade to version %s"
-msgstr ""
-
-#. TRANSLATORS: To install a package
-#: ../contrib/packagekit-plugin/src/contents.cpp:336
-#, c-format
-msgid "Install %s Now"
-msgstr ""
-
-#. TRANSLATORS: the version of the package
-#: ../contrib/packagekit-plugin/src/contents.cpp:339
-msgid "Version"
-msgstr ""
-
-#. TRANSLATORS: noting found, so can't install
-#: ../contrib/packagekit-plugin/src/contents.cpp:344
-#, fuzzy
-msgid "No packages found for your system"
-msgstr ""
-"\n"
-"<small>Inga paket hittades till ditt system</small>"
-
-#. TRANSLATORS: package is being installed
-#: ../contrib/packagekit-plugin/src/contents.cpp:349
-#, fuzzy
-msgid "Installing..."
-msgstr ""
-"\n"
-"<small>Installerar...</small>"
-
-#: ../data/packagekit-catalog.xml.in.h:1
-msgid "PackageKit Catalog"
-msgstr "PackageKits Katalog"
-
-#: ../data/packagekit-servicepack.xml.in.h:1
-msgid "PackageKit Service Pack"
-msgstr "Packagekit Servicepack"
-
-#: ../data/packagekit-package-list.xml.in.h:1
-#, fuzzy
-msgid "PackageKit Package List"
-msgstr "PackageKits Katalog"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:1
-msgid "Accept EULA"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:2
-msgid "Authentication is required to accept a EULA"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:3
-msgid "Authentication is required to change software source parameters"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:4
-msgid ""
-"Authentication is required to consider a key used for signing packages as "
-"trusted"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:5
-msgid "Authentication is required to install a signed package"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:6
-msgid "Authentication is required to install an untrusted package"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:7
-msgid "Authentication is required to refresh the system sources"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:8
-msgid "Authentication is required to remove packages"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:9
-msgid "Authentication is required to rollback a transaction"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:10
-msgid ""
-"Authentication is required to set the network proxy used for downloading "
-"packages"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:11
-msgid "Authentication is required to update packages"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:12
-msgid "Change software source parameters"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:13
-msgid "Install local file"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:14
-msgid "Install untrusted local file"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:15
-msgid "Refresh system sources"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:16
-msgid "Remove package"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:17
-msgid "Rollback to a previous transaction"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:18
-msgid "Set network proxy"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:19
-msgid "Trust a key used for signing packages"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:20
-msgid "Update packages"
-msgstr ""
-
-#: ../src/pk-main.c:85
-msgid "Startup failed due to security policies on this machine."
-msgstr ""
-"Uppstart misslyckades på grund aav  säkerhetsinställningar på denna maskin."
-
-#: ../src/pk-main.c:86
-msgid "This can happen for two reasons:"
-msgstr "Detta kan hända på grund av två skäl:"
-
-#: ../src/pk-main.c:87
-msgid "The correct user is not launching the executable (usually root)"
-msgstr "Rätt användare startar inte programmet (oftast root)"
-
-#: ../src/pk-main.c:88
-msgid ""
-"The org.freedesktop.PackageKit.conf file is not installed in the system /etc/"
-"dbus-1/system.d directory"
-msgstr ""
-"Filen org.freedesktop.PackageKit.conf är inte installerad i systemmappen /"
-"etc/dbus-1/system.d"
-
-#: ../src/pk-main.c:191
-msgid "Packaging backend to use, e.g. dummy"
-msgstr "Paketerar bekändet att använda, t ex dummy"
-
-#: ../src/pk-main.c:193
-msgid "Daemonize and detach from the terminal"
-msgstr "Bli en daemon och koppla fri från konsolen "
-
-#: ../src/pk-main.c:197
-msgid "Disable the idle timer"
-msgstr "Avaktivera sysslolöshetstimern"
-
-#: ../src/pk-main.c:199
-msgid "Show version and exit"
-msgstr "Visa version och avsluta"
-
-#: ../src/pk-main.c:201
-msgid "Exit after a small delay"
-msgstr "Avsluta efter ett litet uppehåll"
-
-#: ../src/pk-main.c:203
-msgid "Exit after the engine has loaded"
-msgstr "Avsluta efter att motorn har laddats"
-
-#: ../src/pk-main.c:213
-msgid "PackageKit service"
-msgstr "PackageKit service"
-
-#: ../src/pk-main.c:249
-msgid "Cannot connect to the system bus"
-msgstr "Kan inte ansluta till systembussen"
-
-#: ../src/pk-main.c:295
-#, c-format
-msgid "Error trying to start: %s\n"
-msgstr "Misslyckades med att starta: %s\n"
-
-#~ msgid "Update detail"
-#~ msgstr "Uppdatera detaljer"
-
-#~ msgid "A system restart is required"
-#~ msgstr "En omstart är nödvändig"
-
-#~ msgid "A logout and login is required"
-#~ msgstr "En ny inloggning är nödvändig"
-
-#~ msgid "An application restart is required"
-#~ msgstr "En omstart av programmet är nödvändig"
-
-#~ msgid "Could not find package to remove"
-#~ msgstr "Kunde inte hitta paketet att ta bort"
-
-#~ msgid "Cancelled!"
-#~ msgstr "Avbruten!"
-
-#~ msgid "Could not find package to update"
-#~ msgstr "Kunde inte hitta paketet att uppdatera"
-
-#~ msgid "Could not find what packages require"
-#~ msgstr "Kunde inte hitta vad paketet behöver"
-
-#~ msgid "Could not find details for"
-#~ msgstr "Kunde inte hitta detaljer om"
-
-#~ msgid "Could not find a package match"
-#~ msgstr "Kunde inte hitta ett matchande paket"
-
-#~ msgid "failed to download: invalid package_id and/or directory"
-#~ msgstr "misslyckades att ladda ner: ogiltigt package_id och/eller mapp"
-
-#~ msgid "Could not find a valid metadata file"
-#~ msgstr "Kunde inte hitta en giltig fil för metadata"
-
-#~ msgid "Okay to download the additional packages"
-#~ msgstr "Ok att ladda ner dessa extra paket"
-
-#~ msgid "You need to specify the pack name and packages to be packed\n"
-#~ msgstr "Du måste ange packnamnet och paketen att packa\n"
-
-#~ msgid ""
-#~ "Invalid name for the service pack, Specify a name with .servicepack "
-#~ "extension\n"
-#~ msgstr ""
-#~ "Ogiltigt namn för servicepacket, Ange ett namn som har filändeslen ."
-#~ "servicepack\n"
-
-#~ msgid "Could not set database readonly"
-#~ msgstr "Kunde inte ställa in databasen till endast läsbar"
-
-#~ msgid "Could not open database: %s"
-#~ msgstr "Kunde inte öppna databasen: %s"
-
-#~ msgid "You probably need to run this program as the root user"
-#~ msgstr "Du måste troligtvis köra detta program som rootanvändare"
-
-#~ msgid "<span color='#%06x' underline='single' size='larger'>Run %s</span>"
-#~ msgstr ""
-#~ "<span color='#%06x' underline='single' size='larger'>Starta %s</span>"
-
-#~ msgid "<big>%s</big>"
-#~ msgstr "<big>%s</big>"
-
-#~ msgid ""
-#~ "\n"
-#~ "<span color='#%06x' underline='single'>Run version %s now</span>"
-#~ msgstr ""
-#~ "\n"
-#~ "<span color='#%06x' underline='single'>Kör version %s now</span>"
-
-#~ msgid ""
-#~ "\n"
-#~ "<span color='#%06x' underline='single'>Run now</span>"
-#~ msgstr ""
-#~ "\n"
-#~ "<span color='#%06x' underline='single'>Starta nu</span>"
-
-#~ msgid ""
-#~ "\n"
-#~ "<span color='#%06x' underline='single'>Upgrade to version %s</span>"
-#~ msgstr ""
-#~ "\n"
-#~ "<span color='#%06x' underline='single'>Uppgradera till version %s</span>"
-
-#~ msgid ""
-#~ "<span color='#%06x' underline='single' size='larger'>Install %s Now</span>"
-#~ msgstr ""
-#~ "<span color='#%06x' underline='single' size='larger'>Installera %s Nu</"
-#~ "span>"
-
-#~ msgid ""
-#~ "\n"
-#~ "<small>Version: %s</small>"
-#~ msgstr ""
-#~ "\n"
-#~ "<small>Version: %s</small>"
diff --git a/po/sv.po b/po/sv.po
new file mode 100644
index 0000000..2cdec33
--- /dev/null
+++ b/po/sv.po
@@ -0,0 +1,704 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-10-15 18:11+0100\n"
+"PO-Revision-Date: 2008-10-16 05:26+0100\n"
+"Last-Translator: David Andersson <david at xn--kremla-iuad.se>\n"
+"Language-Team: LANGUAGE <LL at li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. TRANSLATORS: this is a header for the package that can be updated
+#: ../client/pk-console.c:273
+msgid "Details about the update:"
+msgstr "Detaljer om uppdateringen:"
+
+#: ../client/pk-console.c:466
+msgid "Please restart the computer to complete the update."
+msgstr "Var snäll starta om datorn för att uppdateringarna ska kunna slutföras."
+
+#: ../client/pk-console.c:468
+msgid "Please logout and login to complete the update."
+msgstr "Var snäll logga ut och sedan logga in för att uppdateringarna ska kunna slutföras."
+
+#: ../client/pk-console.c:470
+msgid "Please restart the application as it is being used."
+msgstr "Var snäll starta om programmet eftersom det används."
+
+#. TRANSLATORS: The package name was not found in any software sources
+#: ../client/pk-console.c:555
+#, c-format
+msgid "The package '%s' could not be installed: %s"
+msgstr "Paketet '%s' kunde inte installeras: %s"
+
+#. TRANSLATORS: There was an error installing the packages. The detailed error follows
+#: ../client/pk-console.c:609
+#, c-format
+msgid "This tool could not install the packages: %s"
+msgstr "Detta verktyg kunde inte installera paketen: %s"
+
+#. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
+#: ../client/pk-console.c:665
+#, c-format
+msgid "This tool could not remove '%s': %s"
+msgstr "Detta verktyg kunde inte avinstallera  '%s': %s"
+
+#. TRANSLATORS: There was an error removing the packages. The detailed error follows
+#: ../client/pk-console.c:688
+#: ../client/pk-console.c:757
+#, c-format
+msgid "This tool could not remove the packages: %s"
+msgstr "Detta verktyg kunde inte ta bort paketen: %s"
+
+#. TRANSLATORS: There was an error removing the packages. The detailed error follows
+#: ../client/pk-console.c:724
+#, c-format
+msgid "This tool could not remove the packages: '%s'"
+msgstr "Detta verktyg kunde inte ta bort paketen: '%s'"
+
+#. TRANSLATORS: When removing, we might have to remove other deps
+#: ../client/pk-console.c:736
+msgid "The following packages have to be removed"
+msgstr "Följande paket måste avinstalleras"
+
+#. TRANSLATORS: We are checking if it's okay to remove a list of packages
+#: ../client/pk-console.c:743
+msgid "Proceed removing additional packages?"
+msgstr "Är det Okej att ta bort dessa extra paket?"
+
+#. TRANSLATORS: We did not remove any packages
+#: ../client/pk-console.c:748
+msgid "The package removal was cancelled!"
+msgstr "Avinstallationen av paketen blev avbruten!"
+
+#. TRANSLATORS: The package name was not found in any software sources
+#: ../client/pk-console.c:789
+#, c-format
+msgid "This tool could not find the package '%s' to download"
+msgstr "Detta verktyg kunde inte hitta paketet '%s'  att hämta"
+
+#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
+#: ../client/pk-console.c:843
+#: ../client/pk-console.c:852
+#, c-format
+msgid "This tool could not update '%s': %s"
+msgstr "Detta verktyg kunde inte uppdatera '%s': %s"
+
+#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
+#: ../client/pk-console.c:874
+#: ../client/pk-console.c:882
+#, c-format
+msgid "This tool could not get the requires for '%s': %s"
+msgstr "Detta verktyg kunde hämta beroendena för '%s': %s"
+
+#. TRANSLATORS: There was an error getting the depends for the package. The detailed error follows
+#: ../client/pk-console.c:904
+#: ../client/pk-console.c:912
+#, c-format
+msgid "This tool could not get the dependancies for '%s': %s"
+msgstr "Detta verktyg kunde inte hämta beroenden för '%s': %s"
+
+#. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
+#: ../client/pk-console.c:934
+#: ../client/pk-console.c:942
+#, c-format
+msgid "This tool could not get package details for '%s': %s"
+msgstr "Detta verktyg kunde inte hämta detaljerna för paketet '%s': %s"
+
+#. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
+#: ../client/pk-console.c:964
+#, c-format
+msgid "This tool could not find the files for '%s': %s"
+msgstr "Detta verktyg kunde inte hitta filerna för '%s': %s"
+
+#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
+#: ../client/pk-console.c:972
+#, c-format
+msgid "This tool could not get the file list for '%s': %s"
+msgstr "Detta verktyg kunde inte hämta fillistan '%s': %s"
+
+#. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
+#: ../client/pk-console.c:994
+#, c-format
+msgid "This tool could not find the update details for '%s': %s"
+msgstr "Detta verktyg kunde inte hitta detaljerna om uppdateringen för  '%s': %s"
+
+#. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
+#: ../client/pk-console.c:1002
+#, c-format
+msgid "This tool could not get the update details for '%s': %s"
+msgstr "Detta verktyg kunde inte hämta detaljerna om uppdateringen för '%s': %s"
+
+#. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
+#: ../client/pk-console.c:1048
+msgid "Error:"
+msgstr "Fel:"
+
+#. TRANSLATORS: This a list of details about the package
+#: ../client/pk-console.c:1062
+msgid "Package description"
+msgstr "Paketets beskrivning"
+
+#. TRANSLATORS: This a list files contained in the package
+#: ../client/pk-console.c:1095
+msgid "Package files"
+msgstr "Paketets filer"
+
+#. TRANSLATORS: This where the package has no files
+#: ../client/pk-console.c:1104
+msgid "No files"
+msgstr "Inga filer"
+
+#. TRANSLATORS: This a request for a GPG key signature
+#: ../client/pk-console.c:1127
+msgid "Repository signature required"
+msgstr "Mjukvarukällan kräver signering"
+
+#. TRANSLATORS: This a prompt asking the user to import the security key
+#: ../client/pk-console.c:1137
+msgid "Okay to import key?"
+msgstr "Är det Okej att importera nyckeln?"
+
+#. TRANSLATORS: This is where the user declined the security key
+#: ../client/pk-console.c:1141
+msgid "Did not import key"
+msgstr "Importerade inte nyckeln"
+
+#. TRANSLATORS: This a request for a EULA
+#: ../client/pk-console.c:1175
+msgid "Eula required"
+msgstr "EULA krävs"
+
+#. TRANSLATORS: This a prompt asking the user to agree to the licence
+#: ../client/pk-console.c:1182
+msgid "Do you agree?"
+msgstr "Godkänner du?"
+
+#. TRANSLATORS: This is where the user declined the licence
+#: ../client/pk-console.c:1186
+msgid "Did not agree to licence"
+msgstr "Godkände inte licensen"
+
+#. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
+#: ../client/pk-console.c:1215
+msgid "The daemon crashed mid-transaction!"
+msgstr "Daemonen kraschade under transaktionen!"
+
+#. TRANSLATORS: This is the header to the --help menu
+#: ../client/pk-console.c:1268
+msgid "PackageKit Console Interface"
+msgstr "PackageKits Kommandoradsgränssnitt"
+
+#: ../client/pk-console.c:1268
+msgid "Subcommands:"
+msgstr "Underkommandon:"
+
+#: ../client/pk-console.c:1359
+#: ../client/pk-generate-pack.c:138
+#: ../client/pk-monitor.c:115
+#: ../src/pk-main.c:195
+msgid "Show extra debugging information"
+msgstr "Visa ytterligare debuginformation"
+
+#: ../client/pk-console.c:1361
+#: ../client/pk-monitor.c:117
+msgid "Show the program version and exit"
+msgstr "Visa versionen av programmet och avsluta"
+
+#: ../client/pk-console.c:1363
+msgid "Set the filter, e.g. installed"
+msgstr "Ställ in filtret, t ex installerat"
+
+#: ../client/pk-console.c:1365
+msgid "Exit without waiting for actions to complete"
+msgstr "Avsluta utan att vänta på att åtgärderna ska slutföras"
+
+#. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
+#: ../client/pk-console.c:1387
+msgid "This tool could not connect to system DBUS."
+msgstr "Programmet kunde ansluta till system DBUS."
+
+#: ../client/pk-console.c:1482
+msgid "You need to specify a search type, e.g. name"
+msgstr "Du måste ange en söktyp, t ex namn"
+
+#: ../client/pk-console.c:1487
+#: ../client/pk-console.c:1494
+#: ../client/pk-console.c:1501
+#: ../client/pk-console.c:1508
+#: ../client/pk-console.c:1619
+#: ../client/pk-console.c:1629
+#: ../client/pk-console.c:1636
+#: ../client/pk-console.c:1643
+msgid "You need to specify a search term"
+msgstr "Du måste ange en sökterm"
+
+#: ../client/pk-console.c:1513
+msgid "Invalid search type"
+msgstr "Ogiltig söktyp"
+
+#: ../client/pk-console.c:1518
+msgid "You need to specify a package or file to install"
+msgstr "Du måste ange ett paket eller fil att installera"
+
+#: ../client/pk-console.c:1525
+msgid "You need to specify a type, key_id and package_id"
+msgstr "Du måste ange en typ, key_id och package_id"
+
+#: ../client/pk-console.c:1532
+msgid "You need to specify a package to remove"
+msgstr "Du måste ange ett paket att ta bort"
+
+#: ../client/pk-console.c:1538
+msgid "You need to specify the destination directory and then the packages to download"
+msgstr "Du måste ange målmappen och sedan paketen som ska hämtas"
+
+#: ../client/pk-console.c:1543
+msgid "Directory not found"
+msgstr "Mappen kunde inte hittas"
+
+#: ../client/pk-console.c:1549
+msgid "You need to specify a eula-id"
+msgstr "Du måste ange ett EULA-id"
+
+#: ../client/pk-console.c:1565
+msgid "You need to specify a package name to resolve"
+msgstr "Du måste ange ett namn att söka efter"
+
+#: ../client/pk-console.c:1574
+#: ../client/pk-console.c:1581
+msgid "You need to specify a repo name"
+msgstr "Du måste ange ett namn på en mjukvarukälla"
+
+#: ../client/pk-console.c:1588
+msgid "You need to specify a repo name/parameter and value"
+msgstr "Du måste ange en mjukvarukälla/parameter och värde"
+
+#: ../client/pk-console.c:1601
+msgid "You need to specify a time term"
+msgstr "Du måste ange en tidsperiod"
+
+#: ../client/pk-console.c:1606
+msgid "You need to specify a correct role"
+msgstr "Du måste ange en korrekt roll"
+
+#: ../client/pk-console.c:1611
+msgid "Failed to get last time"
+msgstr "Misslyckades att hämta senaste gången"
+
+#: ../client/pk-console.c:1650
+msgid "You need to specify a package to find the details for"
+msgstr "Då måste ange ett paket att hitta detaljer om"
+
+#: ../client/pk-console.c:1657
+msgid "You need to specify a package to find the files for"
+msgstr "Då måste ange ett paket att hitta filerna till"
+
+#. TRANSLATORS: The user tried to use an unsupported option on the command line
+#: ../client/pk-console.c:1710
+#, c-format
+msgid "Option '%s' not supported"
+msgstr "Alternativet '%s' stöds ej"
+
+#. TRANSLATORS: User does not have permission to do this
+#: ../client/pk-console.c:1723
+msgid "You don't have the necessary privileges for this operation"
+msgstr "Du har inte nödvändiga privilegier för denna operation"
+
+#. TRANSLATORS: Generic failure of what they asked to do
+#: ../client/pk-console.c:1726
+msgid "Command failed"
+msgstr "Kommandot misslyckades"
+
+#. TRANSLATORS: This is the state of the transaction
+#: ../client/pk-generate-pack.c:96
+msgid "Downloading"
+msgstr "Hämtar"
+
+#: ../client/pk-generate-pack.c:140
+msgid "Set the filename of dependencies to be excluded"
+msgstr "Ange  sökvägen  till beroenden att exkludera"
+
+#: ../client/pk-generate-pack.c:142
+msgid "The directory to put the pack file, or the current directory if ommitted"
+msgstr "Mappen att lägga packen i, nuvarande mapp om ej angiven"
+
+#: ../client/pk-generate-pack.c:144
+msgid "The package to be put into the ServicePack"
+msgstr "Paketet att sätta in i servicepacken"
+
+#: ../client/pk-generate-pack.c:146
+msgid "Put all updates available in the ServicePack"
+msgstr "Lägg alla uppdateringar i servicepacken"
+
+#. TRANSLATORS: This is when the user fails to supply the correct arguments
+#: ../client/pk-generate-pack.c:166
+msgid "Neither --package or --updates option selected."
+msgstr "Varken --package eller --updates vald."
+
+#. TRANSLATORS: This is when the user fails to supply just one argument
+#: ../client/pk-generate-pack.c:174
+msgid "Both options selected."
+msgstr "BÃ¥da parametrar valda."
+
+#. TRANSLATORS: This is when file already exists
+#: ../client/pk-generate-pack.c:207
+msgid "A pack with the same name already exists, do you want to overwrite it?"
+msgstr "Ett pack med samma namn existerar redan, vill du skriva över det?"
+
+#. TRANSLATORS: This is when the pack was not overwritten
+#: ../client/pk-generate-pack.c:210
+msgid "The pack was not overwritten."
+msgstr "Packen skrevs ej över."
+
+#. TRANSLATORS: This is when the temporary directory cannot be created
+#: ../client/pk-generate-pack.c:222
+msgid "Failed to create directory."
+msgstr "Misslyckades med att skapa mapp."
+
+#. TRANSLATORS: This is when the list of packages from the remote computer cannot be opened
+#: ../client/pk-generate-pack.c:231
+msgid "Failed to open package list."
+msgstr "Misslyckades med öppna paketlistan."
+
+#. TRANSLATORS: This is when the user fails to supply the correct arguments
+#: ../client/pk-generate-pack.c:241
+msgid "Finding package name."
+msgstr "Hitta paketnamnet."
+
+#. TRANSLATORS: This is when the package cannot be foudn in any software source
+#: ../client/pk-generate-pack.c:245
+#, c-format
+msgid "Failed to find package '%s': %s"
+msgstr "Kunde inte hitta paketet '%s': %s"
+
+#. TRANSLATORS: This is telling the user we are in the process of making the pack
+#: ../client/pk-generate-pack.c:260
+msgid "Creating service pack..."
+msgstr "Skapar servicepack..."
+
+#. TRANSLATORS: we succeeded in making the file
+#: ../client/pk-generate-pack.c:267
+#, c-format
+msgid "Service pack created '%s'"
+msgstr "Servicepacken skapad '%s'"
+
+#. TRANSLATORS: we failed to make te file
+#: ../client/pk-generate-pack.c:271
+#, c-format
+msgid "Failed to create '%s': %s"
+msgstr "Misslyckades med att skapa '%s': %s"
+
+#: ../client/pk-monitor.c:128
+msgid "PackageKit Monitor"
+msgstr "PackageKit Övervakare"
+
+#: ../client/pk-tools-common.c:48
+#: ../client/pk-tools-common.c:58
+#: ../client/pk-tools-common.c:76
+#: ../client/pk-tools-common.c:83
+#, c-format
+msgid "Internal error: %s"
+msgstr "Internt fel: %s"
+
+#. TRANSLATORS: The package was not found in any software sources
+#: ../client/pk-tools-common.c:109
+#, c-format
+msgid "The package could not be found"
+msgstr "Paketet kunde inte hittas"
+
+#. TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages
+#: ../client/pk-tools-common.c:120
+msgid "More than one package matches:"
+msgstr "Det finns fler än ett paket som matchar:"
+
+#. TRANSLATORS: This finds out which package in the list to use
+#: ../client/pk-tools-common.c:127
+msgid "Please choose the correct package: "
+msgstr "Var snäll ange det korrekta paketet:"
+
+#: ../client/pk-tools-common.c:154
+#, c-format
+msgid "Please enter a number from 1 to %i: "
+msgstr "Var snäll ange ett nummer från 1 till %i: "
+
+#. TRANSLATORS: when we are getting data from the daemon
+#: ../contrib/packagekit-plugin/src/contents.cpp:299
+msgid "Getting package information..."
+msgstr "Hämtar paketinformation..."
+
+#. TRANSLATORS: run an applicaiton
+#: ../contrib/packagekit-plugin/src/contents.cpp:305
+#, c-format
+msgid "Run %s"
+msgstr "Starta %s nu"
+
+#. TRANSLATORS: show the installed version of a package
+#: ../contrib/packagekit-plugin/src/contents.cpp:311
+msgid "Installed version"
+msgstr "Installerad version"
+
+#. TRANSLATORS: run the application now
+#: ../contrib/packagekit-plugin/src/contents.cpp:319
+#, c-format
+msgid "Run version %s now"
+msgstr "Starta version %s nu"
+
+#: ../contrib/packagekit-plugin/src/contents.cpp:325
+msgid "Run now"
+msgstr "Starta nu"
+
+#. TRANSLATORS: update to a new version of the package
+#: ../contrib/packagekit-plugin/src/contents.cpp:330
+#, c-format
+msgid "Upgrade to version %s"
+msgstr "Uppdatera till version %s"
+
+#. TRANSLATORS: To install a package
+#: ../contrib/packagekit-plugin/src/contents.cpp:336
+#, c-format
+msgid "Install %s Now"
+msgstr "Installera %s Nu"
+
+#. TRANSLATORS: the version of the package
+#: ../contrib/packagekit-plugin/src/contents.cpp:339
+msgid "Version"
+msgstr "Version"
+
+#. TRANSLATORS: noting found, so can't install
+#: ../contrib/packagekit-plugin/src/contents.cpp:344
+msgid "No packages found for your system"
+msgstr "Inga paket hittades till ditt system"
+
+#. TRANSLATORS: package is being installed
+#: ../contrib/packagekit-plugin/src/contents.cpp:349
+msgid "Installing..."
+msgstr "Installerar..."
+
+#: ../data/packagekit-catalog.xml.in.h:1
+msgid "PackageKit Catalog"
+msgstr "PackageKits Katalog"
+
+#: ../data/packagekit-servicepack.xml.in.h:1
+msgid "PackageKit Service Pack"
+msgstr "Packagekit Servicepack"
+
+#: ../data/packagekit-package-list.xml.in.h:1
+msgid "PackageKit Package List"
+msgstr "PackageKits Paketlista"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:1
+msgid "Accept EULA"
+msgstr "Godkänn EULA"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:2
+msgid "Authentication is required to accept a EULA"
+msgstr "Autentisering krävs för att godkänna en EULA"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:3
+msgid "Authentication is required to change software source parameters"
+msgstr "Autentisering krävs för att ändra mjukvarukällornas inställningar"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:4
+msgid "Authentication is required to consider a key used for signing packages as trusted"
+msgstr "Autentisering krävs för att en nyckel använd till att signera paket ska anses tillförlitlig"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:5
+msgid "Authentication is required to install a signed package"
+msgstr "Autentisering krävs för att installera ett signerat paket"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:6
+msgid "Authentication is required to install an untrusted package"
+msgstr "Autentisering krävs för att installera ett otillförlitligt paket"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:7
+msgid "Authentication is required to refresh the system sources"
+msgstr "Autentisering krävs för att uppdatera systemkällorna"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:8
+msgid "Authentication is required to remove packages"
+msgstr "Autentisering krävs för att ta bort paket"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:9
+msgid "Authentication is required to rollback a transaction"
+msgstr "Autentisering krävs för att rulla tillbaks en transaktion"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:10
+msgid "Authentication is required to set the network proxy used for downloading packages"
+msgstr "Autentisering krävs för ställa in proxyn som ska användas till att hämta paket"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:11
+msgid "Authentication is required to update packages"
+msgstr "Autentisering krävs för att uppdatera paket"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:12
+msgid "Change software source parameters"
+msgstr "Ändra inställningar för programvarukällor"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:13
+msgid "Install local file"
+msgstr "Installera lokal fil"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:14
+msgid "Install untrusted local file"
+msgstr "Installera lokal otillförlitlig fil"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:15
+msgid "Refresh system sources"
+msgstr "Uppdatera systemkällorna"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:16
+msgid "Remove package"
+msgstr "Avinstallera paket"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:17
+msgid "Rollback to a previous transaction"
+msgstr "Rulla tillbaks en föregående transaktion"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:18
+msgid "Set network proxy"
+msgstr "Ange nätverksproxy"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:19
+msgid "Trust a key used for signing packages"
+msgstr "Godkänn en nyckel som används till att signera paket"
+
+#: ../policy/org.freedesktop.packagekit.policy.in.h:20
+msgid "Update packages"
+msgstr "Uppdatera paket"
+
+#: ../src/pk-main.c:85
+msgid "Startup failed due to security policies on this machine."
+msgstr "Uppstart misslyckades på grund av  säkerhetsinställningar på denna maskin."
+
+#: ../src/pk-main.c:86
+msgid "This can happen for two reasons:"
+msgstr "Detta kan hända på grund av två skäl:"
+
+#: ../src/pk-main.c:87
+msgid "The correct user is not launching the executable (usually root)"
+msgstr "Rätt användare startar inte programmet (oftast root)"
+
+#: ../src/pk-main.c:88
+msgid "The org.freedesktop.PackageKit.conf file is not installed in the system /etc/dbus-1/system.d directory"
+msgstr "Filen org.freedesktop.PackageKit.conf är inte installerad i systemmappen /etc/dbus-1/system.d"
+
+#: ../src/pk-main.c:191
+msgid "Packaging backend to use, e.g. dummy"
+msgstr "Paketerar-bakände att använda, t ex dummy"
+
+#: ../src/pk-main.c:193
+msgid "Daemonize and detach from the terminal"
+msgstr "Bli en daemon och koppla loss från kommandoraden "
+
+#: ../src/pk-main.c:197
+msgid "Disable the idle timer"
+msgstr "Avaktivera sysslolöshetstimer"
+
+#: ../src/pk-main.c:199
+msgid "Show version and exit"
+msgstr "Visa version och avsluta"
+
+#: ../src/pk-main.c:201
+msgid "Exit after a small delay"
+msgstr "Avsluta efter ett litet uppehåll"
+
+#: ../src/pk-main.c:203
+msgid "Exit after the engine has loaded"
+msgstr "Avsluta efter att motorn har laddats"
+
+#: ../src/pk-main.c:213
+msgid "PackageKit service"
+msgstr "PackageKit service"
+
+#: ../src/pk-main.c:249
+msgid "Cannot connect to the system bus"
+msgstr "Kan inte ansluta till systembussen"
+
+#: ../src/pk-main.c:295
+#, c-format
+msgid "Error trying to start: %s\n"
+msgstr "Misslyckades med att starta: %s\n"
+
+#~ msgid "Update detail"
+#~ msgstr "Uppdatera detaljer"
+#~ msgid "A system restart is required"
+#~ msgstr "En omstart är nödvändig"
+#~ msgid "A logout and login is required"
+#~ msgstr "En ny inloggning är nödvändig"
+#~ msgid "An application restart is required"
+#~ msgstr "En omstart av programmet är nödvändig"
+#~ msgid "Could not find package to remove"
+#~ msgstr "Kunde inte hitta paketet att ta bort"
+#~ msgid "Cancelled!"
+#~ msgstr "Avbruten!"
+#~ msgid "Could not find package to update"
+#~ msgstr "Kunde inte hitta paketet att uppdatera"
+#~ msgid "Could not find what packages require"
+#~ msgstr "Kunde inte hitta vad paketet behöver"
+#~ msgid "Could not find details for"
+#~ msgstr "Kunde inte hitta detaljer om"
+#~ msgid "Could not find a package match"
+#~ msgstr "Kunde inte hitta ett matchande paket"
+#~ msgid "failed to download: invalid package_id and/or directory"
+#~ msgstr "misslyckades att ladda ner: ogiltigt package_id och/eller mapp"
+#~ msgid "Could not find a valid metadata file"
+#~ msgstr "Kunde inte hitta en giltig fil för metadata"
+#~ msgid "Okay to download the additional packages"
+#~ msgstr "Ok att ladda ner dessa extra paket"
+#~ msgid "You need to specify the pack name and packages to be packed\n"
+#~ msgstr "Du måste ange packnamnet och paketen att packa\n"
+#~ msgid ""
+#~ "Invalid name for the service pack, Specify a name with .servicepack "
+#~ "extension\n"
+#~ msgstr ""
+#~ "Ogiltigt namn för servicepacket, Ange ett namn som har filändeslen ."
+#~ "servicepack\n"
+#~ msgid "Could not set database readonly"
+#~ msgstr "Kunde inte ställa in databasen till endast läsbar"
+#~ msgid "Could not open database: %s"
+#~ msgstr "Kunde inte öppna databasen: %s"
+#~ msgid "You probably need to run this program as the root user"
+#~ msgstr "Du måste troligtvis köra detta program som rootanvändare"
+#~ msgid "<span color='#%06x' underline='single' size='larger'>Run %s</span>"
+#~ msgstr ""
+#~ "<span color='#%06x' underline='single' size='larger'>Starta %s</span>"
+#~ msgid "<big>%s</big>"
+#~ msgstr "<big>%s</big>"
+#~ msgid ""
+#~ "\n"
+#~ "<span color='#%06x' underline='single'>Run version %s now</span>"
+#~ msgstr ""
+#~ "\n"
+#~ "<span color='#%06x' underline='single'>Kör version %s now</span>"
+#~ msgid ""
+#~ "\n"
+#~ "<span color='#%06x' underline='single'>Run now</span>"
+#~ msgstr ""
+#~ "\n"
+#~ "<span color='#%06x' underline='single'>Starta nu</span>"
+#~ msgid ""
+#~ "\n"
+#~ "<span color='#%06x' underline='single'>Upgrade to version %s</span>"
+#~ msgstr ""
+#~ "\n"
+#~ "<span color='#%06x' underline='single'>Uppgradera till version %s</span>"
+#~ msgid ""
+#~ "<span color='#%06x' underline='single' size='larger'>Install %s Now</span>"
+#~ msgstr ""
+#~ "<span color='#%06x' underline='single' size='larger'>Installera %s Nu</"
+#~ "span>"
+#~ msgid ""
+#~ "\n"
+#~ "<small>Version: %s</small>"
+#~ msgstr ""
+#~ "\n"
+#~ "<small>Version: %s</small>"
+
commit 576cb363fa0af92e41cb67cbb464732a5a597d28
Author: Daniela Kugelmann <dkugelma at redhat.com>
Date:   Thu Oct 16 05:53:26 2008 +0000

    Updated German translation.
    
    Transmitted-via: Transifex (translate.fedoraproject.org)

diff --git a/po/de.po b/po/de.po
index 8a2b3cc..642c4be 100644
--- a/po/de.po
+++ b/po/de.po
@@ -1,3 +1,4 @@
+# translation of packagekit.master.de.po to German
 # translation of policycoreutils.HEAD.de.po to
 # translation of de.po to
 # German translation of policycoreutils.
@@ -11,194 +12,135 @@
 # Fabian Affolter <fab at fedoraproject.org>, 2008.
 # PGP-KeyID: 0x037FD3CF <ttrinks at redhat.com>, 2008.
 # Thomas Spura <tomspur at fedoraproject.org>, 2008.
+# Daniela Kugelmann <dkugelma at redhat.com >, 2008.
 msgid ""
 msgstr ""
-"Project-Id-Version: policycoreutils.HEAD.de\n"
+"Project-Id-Version: packagekit.master.de\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-10-15 18:11+0100\n"
-"PO-Revision-Date: 2008-10-07 00:19+0200\n"
-"Last-Translator: Fabian Affolter <fab at fedoraproject.org>\n"
-"Language-Team:  <en at li.org>\n"
+"POT-Creation-Date: 2008-10-02 01:26+0000\n"
+"PO-Revision-Date: 2008-10-16 15:50+1000\n"
+"Last-Translator: Daniela Kugelmann <dkugelma at redhat.com >\n"
+"Language-Team: German <i18 at redhat.com>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: KBabel 1.11.4\n"
 
-#. TRANSLATORS: this is a header for the package that can be updated
-#: ../client/pk-console.c:273
-msgid "Details about the update:"
-msgstr ""
+#: ../client/pk-console.c:274
+msgid "Update detail"
+msgstr "Details werden aktualisiert"
 
-#: ../client/pk-console.c:466
-msgid "Please restart the computer to complete the update."
-msgstr ""
+#: ../client/pk-console.c:491
+msgid "A system restart is required"
+msgstr "Ein Neustart ist erforderlich"
 
-#: ../client/pk-console.c:468
-msgid "Please logout and login to complete the update."
-msgstr ""
+#: ../client/pk-console.c:493
+msgid "A logout and login is required"
+msgstr "Ein Aus- und Einloggen ist erforderlich"
 
-#: ../client/pk-console.c:470
-#, fuzzy
-msgid "Please restart the application as it is being used."
-msgstr "Wählen Sie booleschen Werte, die diese Applikation verwendet"
+#: ../client/pk-console.c:495
+msgid "An application restart is required"
+msgstr "Ein Programm-Neustart wird benötigt"
 
-#. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:555
-#, c-format
-msgid "The package '%s' could not be installed: %s"
-msgstr ""
-
-#. TRANSLATORS: There was an error installing the packages. The detailed error follows
-#: ../client/pk-console.c:609
-#, c-format
-msgid "This tool could not install the packages: %s"
-msgstr ""
+#: ../client/pk-console.c:588 ../client/pk-generate-pack.c:126
+msgid "There are multiple package matches"
+msgstr "Es passen mehrere Packete zu Ihrer Anfrage"
 
-#. TRANSLATORS: The package name was not found in the installed list. The detailed error follows
-#: ../client/pk-console.c:665
-#, c-format
-msgid "This tool could not remove '%s': %s"
-msgstr ""
+#. find out what package the user wants to use
+#: ../client/pk-console.c:595 ../client/pk-generate-pack.c:133
+msgid "Please enter the package number: "
+msgstr "Bitte geben Sie die Packet-Nummer ein: "
 
-#. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:688 ../client/pk-console.c:757
-#, c-format
-msgid "This tool could not remove the packages: %s"
-msgstr ""
+#: ../client/pk-console.c:629
+msgid "Could not find package to install"
+msgstr "Packet zum Installieren konnte nicht gefunden werden"
 
-#. TRANSLATORS: There was an error removing the packages. The detailed error follows
-#: ../client/pk-console.c:724
-#, c-format
-msgid "This tool could not remove the packages: '%s'"
-msgstr ""
+#: ../client/pk-console.c:735
+msgid "Could not find package to remove"
+msgstr "Packet zum Löschen konnte nicht gefunden werden"
 
-#. TRANSLATORS: When removing, we might have to remove other deps
-#: ../client/pk-console.c:736
+#: ../client/pk-console.c:796
 msgid "The following packages have to be removed"
 msgstr "Die folgenden Packeten müssen entfernt werden"
 
-#. TRANSLATORS: We are checking if it's okay to remove a list of packages
-#: ../client/pk-console.c:743
-#, fuzzy
-msgid "Proceed removing additional packages?"
+#. get user input
+#: ../client/pk-console.c:803
+msgid "Okay to remove additional packages?"
 msgstr "Sollen die zusätzlichen Packete entfernt werden?"
 
-#. TRANSLATORS: We did not remove any packages
-#: ../client/pk-console.c:748
-msgid "The package removal was cancelled!"
-msgstr ""
+#: ../client/pk-console.c:807 ../client/pk-generate-pack.c:528
+#: ../client/pk-generate-pack-main.c:131
+msgid "Cancelled!"
+msgstr "Abbruch!"
 
-#. TRANSLATORS: The package name was not found in any software sources
-#: ../client/pk-console.c:789
-#, fuzzy, c-format
-msgid "This tool could not find the package '%s' to download"
+#: ../client/pk-console.c:841
+msgid "Could not find package to download"
 msgstr "Das Packet zum Herunterladen konnte nicht gefunden werden"
 
-#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:843 ../client/pk-console.c:852
-#, c-format
-msgid "This tool could not update '%s': %s"
-msgstr ""
+#: ../client/pk-console.c:893
+msgid "Could not find package to update"
+msgstr "Das Packet zum Aktualisieren konnte nicht gefunden werden"
 
-#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:874 ../client/pk-console.c:882
-#, c-format
-msgid "This tool could not get the requires for '%s': %s"
-msgstr ""
+#: ../client/pk-console.c:915
+msgid "Could not find what packages require"
+msgstr "Konnte nicht herausfinden, was die Packete benötigen"
 
-#. TRANSLATORS: There was an error getting the depends for the package. The detailed error follows
-#: ../client/pk-console.c:904 ../client/pk-console.c:912
-#, fuzzy, c-format
-msgid "This tool could not get the dependancies for '%s': %s"
+#: ../client/pk-console.c:936
+msgid "Could not get dependencies for"
 msgstr "Konnte keine Abhängigkeiten bekommen für"
 
-#. TRANSLATORS: There was an error getting the details about the package. The detailed error follows
-#: ../client/pk-console.c:934 ../client/pk-console.c:942
-#, c-format
-msgid "This tool could not get package details for '%s': %s"
-msgstr ""
+#: ../client/pk-console.c:957
+msgid "Could not find details for"
+msgstr "Konnte keine Details finden für"
 
-#. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:964
-#, fuzzy, c-format
-msgid "This tool could not find the files for '%s': %s"
+#: ../client/pk-console.c:980
+msgid "Could not find the files for this package"
 msgstr "Die Dateien für dieses Packet konnten nicht gefunden werden"
 
-#. TRANSLATORS: There was an error getting the list of files for the package. The detailed error follows
-#: ../client/pk-console.c:972
-#, fuzzy, c-format
-msgid "This tool could not get the file list for '%s': %s"
+#: ../client/pk-console.c:987
+msgid "Could not get the file list"
 msgstr "Die Datei-Liste konnte nicht erstellt werden"
 
-#. TRANSLATORS: The package name was not found in any software sources. The detailed error follows
-#: ../client/pk-console.c:994
-#, fuzzy, c-format
-msgid "This tool could not find the update details for '%s': %s"
-msgstr "Konnte keine Aktualisierungsdetails nicht finden für"
-
-#. TRANSLATORS: There was an error getting the details about the update for the package. The detailed error follows
-#: ../client/pk-console.c:1002
-#, fuzzy, c-format
-msgid "This tool could not get the update details for '%s': %s"
+#: ../client/pk-console.c:1006
+msgid "Could not find the update details for"
 msgstr "Konnte keine Aktualisierungsdetails nicht finden für"
 
-#. TRANSLATORS: This was an unhandled error, and we don't have _any_ context
-#: ../client/pk-console.c:1048
-msgid "Error:"
-msgstr ""
-
-#. TRANSLATORS: This a list of details about the package
-#: ../client/pk-console.c:1062
+#: ../client/pk-console.c:1067
 msgid "Package description"
 msgstr "Packet-Beschreibung"
 
-#. TRANSLATORS: This a list files contained in the package
-#: ../client/pk-console.c:1095
+#: ../client/pk-console.c:1100
 msgid "Package files"
 msgstr "Packet-Dateien"
 
-#. TRANSLATORS: This where the package has no files
-#: ../client/pk-console.c:1104
+#: ../client/pk-console.c:1108
 msgid "No files"
 msgstr "Keine Dateien"
 
-#. TRANSLATORS: This a request for a GPG key signature
-#: ../client/pk-console.c:1127
-msgid "Repository signature required"
-msgstr ""
-
-#. TRANSLATORS: This a prompt asking the user to import the security key
-#: ../client/pk-console.c:1137
+#. get user input
+#: ../client/pk-console.c:1140
 msgid "Okay to import key?"
 msgstr "Soll der Schlüssel importiert werden?"
 
-#. TRANSLATORS: This is where the user declined the security key
-#: ../client/pk-console.c:1141
+#: ../client/pk-console.c:1143
 msgid "Did not import key"
 msgstr "Schlüssel wurde nicht importiert"
 
-#. TRANSLATORS: This a request for a EULA
-#: ../client/pk-console.c:1175
-msgid "Eula required"
-msgstr ""
-
-#. TRANSLATORS: This a prompt asking the user to agree to the licence
-#: ../client/pk-console.c:1182
+#. get user input
+#: ../client/pk-console.c:1183
 msgid "Do you agree?"
 msgstr "Sind Sie einverstanden?"
 
-#. TRANSLATORS: This is where the user declined the licence
 #: ../client/pk-console.c:1186
-#, fuzzy
-msgid "Did not agree to licence"
+msgid "Did not agree to licence, task will fail"
 msgstr "Sie stimmten der Lizenz nicht zu, die Aufgabe wird fehlschlagen"
 
-#. TRANSLATORS: This is when the daemon crashed, and we are up shit creek without a paddle
 #: ../client/pk-console.c:1215
 msgid "The daemon crashed mid-transaction!"
 msgstr "Der Dämon stürzte während der Transaktion ab!"
 
-#. TRANSLATORS: This is the header to the --help menu
+#. header
 #: ../client/pk-console.c:1268
 msgid "PackageKit Console Interface"
 msgstr "PackageKit-Konsolen-Interface"
@@ -207,299 +149,270 @@ msgstr "PackageKit-Konsolen-Interface"
 msgid "Subcommands:"
 msgstr "Unterbefehle:"
 
-#: ../client/pk-console.c:1359 ../client/pk-generate-pack.c:138
-#: ../client/pk-monitor.c:115 ../src/pk-main.c:195
+#: ../client/pk-console.c:1378 ../client/pk-generate-pack-main.c:64
+#: ../client/pk-monitor.c:118 ../src/pk-main.c:192
 msgid "Show extra debugging information"
 msgstr "Zeige extra Debup-Informationen"
 
-#: ../client/pk-console.c:1361 ../client/pk-monitor.c:117
+#: ../client/pk-console.c:1380 ../client/pk-monitor.c:120
 msgid "Show the program version and exit"
 msgstr "Zeige Programm-Version und beende"
 
-#: ../client/pk-console.c:1363
+#: ../client/pk-console.c:1382
 msgid "Set the filter, e.g. installed"
 msgstr "Setze den Filter, z.B. installiert"
 
-#: ../client/pk-console.c:1365
+#: ../client/pk-console.c:1384
 msgid "Exit without waiting for actions to complete"
 msgstr "Beende, ohne auf Beendigung der Aktionen zu warten"
 
-#. TRANSLATORS: This is when we could not connect to the system bus, and is fatal
-#: ../client/pk-console.c:1387
-#, fuzzy
-msgid "This tool could not connect to system DBUS."
+#: ../client/pk-console.c:1407
+msgid "Could not connect to system DBUS."
 msgstr "Konnte nicht zum System-DBUS verbinden"
 
-#: ../client/pk-console.c:1482
+#: ../client/pk-console.c:1500
 msgid "You need to specify a search type, e.g. name"
 msgstr "Sie müssen einen Suchtyp angeben, z.B. einen Namen"
 
-#: ../client/pk-console.c:1487 ../client/pk-console.c:1494
-#: ../client/pk-console.c:1501 ../client/pk-console.c:1508
-#: ../client/pk-console.c:1619 ../client/pk-console.c:1629
-#: ../client/pk-console.c:1636 ../client/pk-console.c:1643
+#: ../client/pk-console.c:1505 ../client/pk-console.c:1512
+#: ../client/pk-console.c:1519 ../client/pk-console.c:1526
+#: ../client/pk-console.c:1637 ../client/pk-console.c:1647
+#: ../client/pk-console.c:1654 ../client/pk-console.c:1661
 msgid "You need to specify a search term"
 msgstr "Sie müssen einen Suchwert angeben"
 
-#: ../client/pk-console.c:1513
+#: ../client/pk-console.c:1531
 msgid "Invalid search type"
 msgstr "Ungültiger Suchtyp"
 
-#: ../client/pk-console.c:1518
+#: ../client/pk-console.c:1536
 msgid "You need to specify a package or file to install"
 msgstr "Sie müssen ein Packet oder eine Datei zum Installieren angeben"
 
-#: ../client/pk-console.c:1525
+#: ../client/pk-console.c:1543
 msgid "You need to specify a type, key_id and package_id"
 msgstr "Sie müssen einen Typ, Schlüssel_id und Packet_id auswählen"
 
-#: ../client/pk-console.c:1532
+#: ../client/pk-console.c:1550
 msgid "You need to specify a package to remove"
 msgstr "Sie müssen ein Packet zum Löschen angeben"
 
-#: ../client/pk-console.c:1538
+#: ../client/pk-console.c:1556
 msgid ""
 "You need to specify the destination directory and then the packages to "
 "download"
-msgstr ""
-"Sie müssen ein Zielverzeichnis und dann die Packete zum Herunterladen angeben"
+msgstr "Sie müssen ein Zielverzeichnis und dann die Packete zum Herunterladen angeben"
 
-#: ../client/pk-console.c:1543
+#: ../client/pk-console.c:1561
 msgid "Directory not found"
 msgstr "Verzeichnis nicht gefunden"
 
-#: ../client/pk-console.c:1549
+#: ../client/pk-console.c:1567
 msgid "You need to specify a eula-id"
 msgstr "Sie müssen eine eula-id auswählen"
 
-#: ../client/pk-console.c:1565
+#: ../client/pk-console.c:1583
 msgid "You need to specify a package name to resolve"
 msgstr "Sie müssen einen Packetnamen zum Auflösen angeben"
 
-#: ../client/pk-console.c:1574 ../client/pk-console.c:1581
+#: ../client/pk-console.c:1592 ../client/pk-console.c:1599
 msgid "You need to specify a repo name"
 msgstr "Sie müssen einen Repository-Namen angeben"
 
-#: ../client/pk-console.c:1588
+#: ../client/pk-console.c:1606
 msgid "You need to specify a repo name/parameter and value"
 msgstr "Sie müssen einen Repositorynamen/Parameter und Wert angeben"
 
-#: ../client/pk-console.c:1601
+#: ../client/pk-console.c:1619
 msgid "You need to specify a time term"
 msgstr "Sie müssen einen Zeit-Begriff angeben"
 
-#: ../client/pk-console.c:1606
+#: ../client/pk-console.c:1624
 msgid "You need to specify a correct role"
 msgstr "Sie müssen eine korrekte Rolle angeben"
 
-#: ../client/pk-console.c:1611
+#: ../client/pk-console.c:1629
 msgid "Failed to get last time"
 msgstr "Die letzte Zeit konnte nicht herausgefunden werden"
 
-#: ../client/pk-console.c:1650
+#: ../client/pk-console.c:1668
 msgid "You need to specify a package to find the details for"
 msgstr "Sie müssen ein Packet, für das nach Details gesucht wird, angeben"
 
-#: ../client/pk-console.c:1657
+#: ../client/pk-console.c:1675
 msgid "You need to specify a package to find the files for"
 msgstr "Sie müssen ein Packet, für das nach Dateien gesucht wird, angeben"
 
-#. TRANSLATORS: The user tried to use an unsupported option on the command line
-#: ../client/pk-console.c:1710
+#: ../client/pk-console.c:1724
 #, c-format
 msgid "Option '%s' not supported"
 msgstr "Optino '%s' nicht unterstützt"
 
-#. TRANSLATORS: User does not have permission to do this
-#: ../client/pk-console.c:1723
+#: ../client/pk-console.c:1737
 msgid "You don't have the necessary privileges for this operation"
 msgstr "Sie haben nicht die notwendigen Privilegien für diese Operation"
 
-#. TRANSLATORS: Generic failure of what they asked to do
-#: ../client/pk-console.c:1726
+#: ../client/pk-console.c:1739
 msgid "Command failed"
 msgstr "Befehl fehlgeschlagen"
 
-#. TRANSLATORS: This is the state of the transaction
-#: ../client/pk-generate-pack.c:96
-msgid "Downloading"
-msgstr ""
+#: ../client/pk-generate-pack.c:117
+msgid "Could not find a package match"
+msgstr "Es konnte kein Packet gefunden werden"
 
-#: ../client/pk-generate-pack.c:140
-#, fuzzy
-msgid "Set the filename of dependencies to be excluded"
-msgstr ""
-"Setze den Pfad der Datei mit der Packet-/Abhängigkeitsliste, die "
-"ausgeschlossen werden"
+#: ../client/pk-generate-pack.c:151
+msgid "failed to download: invalid package_id and/or directory"
+msgstr "Herunterladen fehlgeschlagen: Ungültige package_id und/oder ungültiges Verzeichnis"
 
-#: ../client/pk-generate-pack.c:142
-msgid ""
-"The directory to put the pack file, or the current directory if ommitted"
-msgstr ""
+#: ../client/pk-generate-pack.c:232
+msgid "Could not find a valid metadata file"
+msgstr "Eine gültige Metadata–Datei konnte nicht gefunden werden"
 
-#: ../client/pk-generate-pack.c:144
-#, fuzzy
-msgid "The package to be put into the ServicePack"
-msgstr "PackageKit Service Pack"
+#. get user input
+#: ../client/pk-generate-pack.c:524
+msgid "Okay to download the additional packages"
+msgstr "Möchten Sie die zusätzlichen Packete herunterladen"
 
-#: ../client/pk-generate-pack.c:146
-msgid "Put all updates available in the ServicePack"
+#: ../client/pk-generate-pack-main.c:66
+msgid ""
+"Set the path of the file with the list of packages/dependencies to be "
+"excluded"
 msgstr ""
+"Setze den Pfad der Datei mit der Paket- /Abhängigkeitsliste, die "
+"ausgeschlossen werden"
 
-#. TRANSLATORS: This is when the user fails to supply the correct arguments
-#: ../client/pk-generate-pack.c:166
-msgid "Neither --package or --updates option selected."
-msgstr ""
+#: ../client/pk-generate-pack-main.c:111
+msgid "You need to specify the pack name and packages to be packed\n"
+msgstr "Sie müssen einen Packnamen und Packete zum Packen angeben\n"
 
-#. TRANSLATORS: This is when the user fails to supply just one argument
-#: ../client/pk-generate-pack.c:174
-msgid "Both options selected."
+#: ../client/pk-generate-pack-main.c:117
+msgid ""
+"Invalid name for the service pack, Specify a name with .servicepack "
+"extension\n"
 msgstr ""
+"Ungültiger Name für ein Service Pack, geben Sie einen Namen an mit ."
+"servicepack als Endung\n"
 
-#. TRANSLATORS: This is when file already exists
-#: ../client/pk-generate-pack.c:207
+#: ../client/pk-generate-pack-main.c:129
 msgid "A pack with the same name already exists, do you want to overwrite it?"
 msgstr ""
 "Ein Pack mit dem selben Namen existiert bereits, möchten Sie es "
 "überschreiben?"
 
-#. TRANSLATORS: This is when the pack was not overwritten
-#: ../client/pk-generate-pack.c:210
-msgid "The pack was not overwritten."
-msgstr ""
-
-#. TRANSLATORS: This is when the temporary directory cannot be created
-#: ../client/pk-generate-pack.c:222
-#, fuzzy
-msgid "Failed to create directory."
+#: ../client/pk-generate-pack-main.c:142
+msgid "Failed to create directory"
 msgstr "Verzeichnis konnte nicht erstellt werden"
 
-#. TRANSLATORS: This is when the list of packages from the remote computer cannot be opened
-#: ../client/pk-generate-pack.c:231
-#, fuzzy
-msgid "Failed to open package list."
+#: ../client/pk-generate-pack-main.c:149
+msgid "Failed to create pack"
 msgstr "Pack konnte nicht erstellt werden"
 
-#. TRANSLATORS: This is when the user fails to supply the correct arguments
-#: ../client/pk-generate-pack.c:241
-msgid "Finding package name."
-msgstr ""
-
-#. TRANSLATORS: This is when the package cannot be foudn in any software source
-#: ../client/pk-generate-pack.c:245
-#, fuzzy, c-format
-msgid "Failed to find package '%s': %s"
-msgstr "Packet zum Installieren konnte nicht gefunden werden"
-
-#. TRANSLATORS: This is telling the user we are in the process of making the pack
-#: ../client/pk-generate-pack.c:260
-msgid "Creating service pack..."
-msgstr ""
+#: ../client/pk-import-specspo.c:185
+msgid "Could not set database readonly"
+msgstr "Datenbank konnte nicht nur-lesbar gesetzt werden"
 
-#. TRANSLATORS: we succeeded in making the file
-#: ../client/pk-generate-pack.c:267
+#: ../client/pk-import-specspo.c:192
 #, c-format
-msgid "Service pack created '%s'"
-msgstr ""
+msgid "Could not open database: %s"
+msgstr "Datenbank %s konnte nicht geöffnet werden"
 
-#. TRANSLATORS: we failed to make te file
-#: ../client/pk-generate-pack.c:271
-#, fuzzy, c-format
-msgid "Failed to create '%s': %s"
-msgstr "Packet zum Installieren konnte nicht gefunden werden"
+#: ../client/pk-import-specspo.c:193
+msgid "You probably need to run this program as the root user"
+msgstr "Sie sollten dieses Programm vermutlich als Benutzer root ausführen"
 
-#: ../client/pk-monitor.c:128
+#: ../client/pk-monitor.c:131
 msgid "PackageKit Monitor"
 msgstr "PackageKit Monitor"
 
-#: ../client/pk-tools-common.c:48 ../client/pk-tools-common.c:58
-#: ../client/pk-tools-common.c:76 ../client/pk-tools-common.c:83
-#, c-format
-msgid "Internal error: %s"
-msgstr ""
-
-#. TRANSLATORS: The package was not found in any software sources
-#: ../client/pk-tools-common.c:109
-#, c-format
-msgid "The package could not be found"
-msgstr ""
-
-#. TRANSLATORS: more than one package could be found that matched, to follow is a list of possible packages
-#: ../client/pk-tools-common.c:120
-#, fuzzy
-msgid "More than one package matches:"
-msgstr "Es passen mehrere Packete zu Ihrer Anfrage"
-
-#. TRANSLATORS: This finds out which package in the list to use
-#: ../client/pk-tools-common.c:127
-#, fuzzy
-msgid "Please choose the correct package: "
-msgstr "Bitte geben Sie die Packet-Nummer ein: "
-
-#: ../client/pk-tools-common.c:154
+#: ../client/pk-tools-common.c:51
 #, c-format
 msgid "Please enter a number from 1 to %i: "
 msgstr "Bitte geben Sie eine Zahl zwischen 1 und %i ein: "
 
-#. TRANSLATORS: when we are getting data from the daemon
-#: ../contrib/packagekit-plugin/src/contents.cpp:299
+#: ../contrib/packagekit-plugin/src/contents.cpp:300
 msgid "Getting package information..."
 msgstr "Bekomme Packet-Informationen..."
 
-#. TRANSLATORS: run an applicaiton
-#: ../contrib/packagekit-plugin/src/contents.cpp:305
+#: ../contrib/packagekit-plugin/src/contents.cpp:304
 #, c-format
-msgid "Run %s"
+msgid "<span color='#%06x' underline='single' size='larger'>Run %s</span>"
 msgstr ""
+"<span color='#%06x' underline='single' size='larger'>%s wird ausgeführt</"
+"span>"
+
+#: ../contrib/packagekit-plugin/src/contents.cpp:308
+#: ../contrib/packagekit-plugin/src/contents.cpp:313
+#: ../contrib/packagekit-plugin/src/contents.cpp:336
+#: ../contrib/packagekit-plugin/src/contents.cpp:340
+#, c-format
+msgid "<big>%s</big>"
+msgstr "<big>%s</big>"
 
-#. TRANSLATORS: show the installed version of a package
-#: ../contrib/packagekit-plugin/src/contents.cpp:311
-#, fuzzy
-msgid "Installed version"
+#: ../contrib/packagekit-plugin/src/contents.cpp:310
+#, c-format
+msgid ""
+"\n"
+"<small>Installed version: %s</small>"
 msgstr ""
 "\n"
 "<small>Installierte Version: %s</small>"
 
-#. TRANSLATORS: run the application now
-#: ../contrib/packagekit-plugin/src/contents.cpp:319
+#: ../contrib/packagekit-plugin/src/contents.cpp:316
+#, c-format
+msgid ""
+"\n"
+"<span color='#%06x' underline='single'>Run version %s now</span>"
+msgstr ""
+"\n"
+"<span color='#%06x' underline='single'>Version %s wird jetzt ausgeführt</"
+"span>"
+
+#: ../contrib/packagekit-plugin/src/contents.cpp:321
 #, c-format
-msgid "Run version %s now"
+msgid ""
+"\n"
+"<span color='#%06x' underline='single'>Run now</span>"
 msgstr ""
+"\n"
+"<span color='#%06x' underline='single'>Wird jetzt ausgeführt</span>"
 
 #: ../contrib/packagekit-plugin/src/contents.cpp:325
-#, fuzzy
-msgid "Run now"
-msgstr "unbekannt"
+#, c-format
+msgid ""
+"\n"
+"<span color='#%06x' underline='single'>Upgrade to version %s</span>"
+msgstr ""
+"\n"
+"<span color='#%06x' underline='single'>Aktualisiere zu Version %s</span>"
 
-#. TRANSLATORS: update to a new version of the package
 #: ../contrib/packagekit-plugin/src/contents.cpp:330
 #, c-format
-msgid "Upgrade to version %s"
+msgid "<span color='#%06x' underline='single' size='larger'>Install %s Now</span>"
 msgstr ""
+"<span color='#%06x' underline='single' size='larger'>%s wird jetzt "
+"installiert</span>"
 
-#. TRANSLATORS: To install a package
-#: ../contrib/packagekit-plugin/src/contents.cpp:336
+#: ../contrib/packagekit-plugin/src/contents.cpp:333
 #, c-format
-msgid "Install %s Now"
+msgid ""
+"\n"
+"<small>Version: %s</small>"
 msgstr ""
+"\n"
+"<small>Version: %s</small>"
 
-#. TRANSLATORS: the version of the package
-#: ../contrib/packagekit-plugin/src/contents.cpp:339
-msgid "Version"
-msgstr "Version"
-
-#. TRANSLATORS: noting found, so can't install
-#: ../contrib/packagekit-plugin/src/contents.cpp:344
-#, fuzzy
-msgid "No packages found for your system"
+#: ../contrib/packagekit-plugin/src/contents.cpp:337
+msgid ""
+"\n"
+"<small>No packages found for your system</small>"
 msgstr ""
 "\n"
 "<small>Es wurden keine Packete für Ihren Rechner gefunden</small>"
 
-#. TRANSLATORS: package is being installed
-#: ../contrib/packagekit-plugin/src/contents.cpp:349
-#, fuzzy
-msgid "Installing..."
+#: ../contrib/packagekit-plugin/src/contents.cpp:341
+msgid ""
+"\n"
+"<small>Installing...</small>"
 msgstr ""
 "\n"
 "<small>Installiere...</small>"
@@ -508,101 +421,10 @@ msgstr ""
 msgid "PackageKit Catalog"
 msgstr "PackageKit Katalog"
 
-#: ../data/packagekit-servicepack.xml.in.h:1
+#: ../data/packagekit-pack.xml.in.h:1
 msgid "PackageKit Service Pack"
 msgstr "PackageKit Service Pack"
 
-#: ../data/packagekit-package-list.xml.in.h:1
-#, fuzzy
-msgid "PackageKit Package List"
-msgstr "PackageKit Katalog"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:1
-msgid "Accept EULA"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:2
-msgid "Authentication is required to accept a EULA"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:3
-msgid "Authentication is required to change software source parameters"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:4
-msgid ""
-"Authentication is required to consider a key used for signing packages as "
-"trusted"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:5
-msgid "Authentication is required to install a signed package"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:6
-msgid "Authentication is required to install an untrusted package"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:7
-msgid "Authentication is required to refresh the system sources"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:8
-msgid "Authentication is required to remove packages"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:9
-msgid "Authentication is required to rollback a transaction"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:10
-msgid ""
-"Authentication is required to set the network proxy used for downloading "
-"packages"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:11
-msgid "Authentication is required to update packages"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:12
-msgid "Change software source parameters"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:13
-#, fuzzy
-msgid "Install local file"
-msgstr "Schnittstellendatei"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:14
-msgid "Install untrusted local file"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:15
-msgid "Refresh system sources"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:16
-msgid "Remove package"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:17
-msgid "Rollback to a previous transaction"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:18
-#, fuzzy
-msgid "Set network proxy"
-msgstr "Netzwerk-Port löschen"
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:19
-msgid "Trust a key used for signing packages"
-msgstr ""
-
-#: ../policy/org.freedesktop.packagekit.policy.in.h:20
-msgid "Update packages"
-msgstr ""
-
 #: ../src/pk-main.c:85
 msgid "Startup failed due to security policies on this machine."
 msgstr "Startfehler wegen Sicherheitseinstellungen auf diesem Rechner"
@@ -613,8 +435,7 @@ msgstr "Dies kann aus zwei Gründen passieren:"
 
 #: ../src/pk-main.c:87
 msgid "The correct user is not launching the executable (usually root)"
-msgstr ""
-"Der korrekte Benutzer führt nicht das Programm aus (normalerweise root)"
+msgstr "Der korrekte Benutzer führt nicht das Programm aus (normalerweise root)"
 
 #: ../src/pk-main.c:88
 msgid ""
@@ -624,2571 +445,40 @@ msgstr ""
 "Die org.freedesktop.PackageKit.conf-Datei ist nicht auf Ihrem Rechner im "
 "Verzeichnis /etc/dbus-1/system.d installiert."
 
-#: ../src/pk-main.c:191
+#: ../src/pk-main.c:188
 msgid "Packaging backend to use, e.g. dummy"
-msgstr ""
+msgstr "Verwende Packaging-Backend z.B. dummy"
 
-#: ../src/pk-main.c:193
+#: ../src/pk-main.c:190
 msgid "Daemonize and detach from the terminal"
 msgstr "Dämonisiere und löse vom Terminal ab"
 
-#: ../src/pk-main.c:197
+#: ../src/pk-main.c:194
 msgid "Disable the idle timer"
-msgstr ""
+msgstr "Deaktiviere Idle-Timer"
 
-#: ../src/pk-main.c:199
+#: ../src/pk-main.c:196
 msgid "Show version and exit"
 msgstr "Zeige Version und beende"
 
-#: ../src/pk-main.c:201
+#: ../src/pk-main.c:198
 msgid "Exit after a small delay"
 msgstr "Beende nach kurzer Verzögerung"
 
-#: ../src/pk-main.c:203
-#, fuzzy
+#: ../src/pk-main.c:200
 msgid "Exit after the engine has loaded"
-msgstr "Beende, nachdem die Maschine angeworfen wurde"
+msgstr "Beende, nachdem die Maschine geladen wurde"
 
-#: ../src/pk-main.c:213
+#: ../src/pk-main.c:210
 msgid "PackageKit service"
 msgstr "PackageKIt-Dienst"
 
-#: ../src/pk-main.c:249
+#: ../src/pk-main.c:246
 msgid "Cannot connect to the system bus"
 msgstr "Konnte nicht zum System-Bus verbinden"
 
-#: ../src/pk-main.c:295
+#: ../src/pk-main.c:286
 #, c-format
 msgid "Error trying to start: %s\n"
 msgstr "Fehler beim Starten von: %s\n"
 
-#~ msgid "Update detail"
-#~ msgstr "Details werden aktualisiert"
-
-#~ msgid "A system restart is required"
-#~ msgstr "Ein Neustart ist erforderlich"
-
-#~ msgid "A logout and login is required"
-#~ msgstr "Ein Aus- und Einloggen ist erforderlich"
-
-#~ msgid "An application restart is required"
-#~ msgstr "Ein Programm-Neustart wird benötigt"
-
-#~ msgid "Could not find package to install"
-#~ msgstr "Packet zum Installieren konnte nicht gefunden werden"
-
-#~ msgid "Could not find package to remove"
-#~ msgstr "Packet zum Löschen konnte nicht gefunden werden"
-
-#~ msgid "Cancelled!"
-#~ msgstr "Abbruch!"
-
-#~ msgid "Could not find package to update"
-#~ msgstr "Das Packet zum Aktualisieren konnte nicht gefunden werden"
-
-#~ msgid "Could not find what packages require"
-#~ msgstr "Konnte nicht herausfinden, was die Packete benötigen"
-
-#~ msgid "Could not find details for"
-#~ msgstr "Konnte keine Details finden für"
-
-#~ msgid "Could not find a package match"
-#~ msgstr "Es konnte kein Packet gefunden werden"
-
-#, fuzzy
-#~ msgid "Resolving package name to remote object"
-#~ msgstr "Die folgenden Packeten müssen entfernt werden"
-
-#, fuzzy
-#~ msgid "Failed"
-#~ msgstr "Filter"
-
-#~ msgid "Could not set database readonly"
-#~ msgstr "Datenbank konnte nicht nur-lesbar gesetzt werden"
-
-#~ msgid "Could not open database: %s"
-#~ msgstr "Datenbank %s konnte nicht geöffnet werden"
-
-#~ msgid "You probably need to run this program as the root user"
-#~ msgstr "Sie sollten dieses Programm vermutlich als Benutzer root ausführen"
-
-#~ msgid "<span color='#%06x' underline='single' size='larger'>Run %s</span>"
-#~ msgstr ""
-#~ "<span color='#%06x' underline='single' size='larger'>%s wird ausgeführt</"
-#~ "span>"
-
-#~ msgid "<big>%s</big>"
-#~ msgstr "<big>%s</big>"
-
-#~ msgid ""
-#~ "\n"
-#~ "<span color='#%06x' underline='single'>Run version %s now</span>"
-#~ msgstr ""
-#~ "\n"
-#~ "<span color='#%06x' underline='single'>Version %s wird jetzt ausgeführt</"
-#~ "span>"
-
-#~ msgid ""
-#~ "\n"
-#~ "<span color='#%06x' underline='single'>Run now</span>"
-#~ msgstr ""
-#~ "\n"
-#~ "<span color='#%06x' underline='single'>Wird jetzt ausgeführt</span>"
-
-#~ msgid ""
-#~ "\n"
-#~ "<span color='#%06x' underline='single'>Upgrade to version %s</span>"
-#~ msgstr ""
-#~ "\n"
-#~ "<span color='#%06x' underline='single'>Aktualisiere zu Version %s</span>"
-
-#~ msgid ""
-#~ "<span color='#%06x' underline='single' size='larger'>Install %s Now</span>"
-#~ msgstr ""
-#~ "<span color='#%06x' underline='single' size='larger'>%s wird jetzt "
-#~ "installiert</span>"
-
-#~ msgid ""
-#~ "\n"
-#~ "<small>Version: %s</small>"
-#~ msgstr ""
-#~ "\n"
-#~ "<small>Version: %s</small>"
-
-#, fuzzy
-#~ msgid "failed to download: invalid package_id and/or directory"
-#~ msgstr ""
-#~ "Fehler beim Runterladen: Ungültige package_id und/oder ungültiges "
-#~ "Verzeichnis"
-
-#, fuzzy
-#~ msgid "Could not find a valid metadata file"
-#~ msgstr "Eine gültige Metadata–Datei konnte nicht gefunden werden"
-
-#~ msgid "Okay to download the additional packages"
-#~ msgstr "Möchten Sie die zusätzlichen Packete herunterladen"
-
-#~ msgid "You need to specify the pack name and packages to be packed\n"
-#~ msgstr "Sie müssen einen Packnamen und Packete zum Packen angeben\n"
-
-#~ msgid ""
-#~ "Invalid name for the service pack, Specify a name with .servicepack "
-#~ "extension\n"
-#~ msgstr ""
-#~ "Ungültiger Name für ein Service Pack, geben Sie einen Namen an mit ."
-#~ "servicepack als Endung\n"
-
-#~ msgid ""
-#~ "USAGE: run_init <script> <args ...>\n"
-#~ "  where: <script> is the name of the init script to run,\n"
-#~ "         <args ...> are the arguments to that script."
-#~ msgstr ""
-#~ "VERWENDUNG: run_init <script> <args ...>\n"
-#~ "  dabei ist <script> der Name des Init-Skripts, das Sie ausführen möchten "
-#~ "und\n"
-#~ "            <args ...> sind die Argumente für dieses Skript."
-
-#~ msgid "failed to initialize PAM\n"
-#~ msgstr "Initialisieren von PAM fehlgeschlagen\n"
-
-#~ msgid "failed to get account information\n"
-#~ msgstr "Konnte keine Account-Informationen abrufen\n"
-
-#~ msgid "Password:"
-#~ msgstr "Passwort:"
-
-#~ msgid "Cannot find your entry in the shadow passwd file.\n"
-#~ msgstr ""
-#~ "Konnte Ihren Eintrag in der \"shadow\"-Passwortdatei nicht finden.\n"
-
-#~ msgid "getpass cannot open /dev/tty\n"
-#~ msgstr "getpass kann /dev/tty nicht öffnen\n"
-
-#~ msgid "run_init: incorrect password for %s\n"
-#~ msgstr "run_init: falsches Passwort für %s\n"
-
-#~ msgid "No context in file %s\n"
-#~ msgstr "Kein Kontext in Datei %s\n"
-
-#~ msgid "Sorry, run_init may be used only on a SELinux kernel.\n"
-#~ msgstr ""
-#~ "Entschuldigung, run_init sollte nur auf einem SELinux-Kernel benutzt "
-#~ "werden.\n"
-
-#~ msgid "authentication failed.\n"
-#~ msgstr "Authentifizierung fehlgeschlagen.\n"
-
-#~ msgid "******************** IMPORTANT ***********************\n"
-#~ msgstr "******************** WICHTIG ***********************\n"
-
-#~ msgid "To make this policy package active, execute:"
-#~ msgstr ""
-#~ "Um dieses Richtlinien-Paket zu aktivieren, führen sie folgendes aus:"
-
-#~ msgid ""
-#~ "\n"
-#~ "\n"
-#~ "semodule -i %s\n"
-#~ "\n"
-#~ msgstr ""
-#~ "\n"
-#~ "\n"
-#~ "semodule -i %s\n"
-#~ "\n"
-
-#~ msgid "global"
-#~ msgstr "global"
-
-#~ msgid "translations not supported on non-MLS machines"
-#~ msgstr "Übersetzungen auf Nicht-MLS Machinen werden nicht unterstützt"
-
-#~ msgid ""
-#~ "Unable to open %s: translations not supported on non-MLS machines: %s"
-#~ msgstr ""
-#~ "Öffnen von %s fehlgeschlagen: Übersetzungen auf Nicht-MLS Machinen werden "
-#~ "nicht unterstützt: %s"
-
-#~ msgid "Level"
-#~ msgstr "Level"
-
-#~ msgid "Translation"
-#~ msgstr "Ãœbersetzung"
-
-#~ msgid "Translations can not contain spaces '%s' "
-#~ msgstr "Übersetzungen können keine Leerfelder enthalten '%s'"
-
-#~ msgid "Invalid Level '%s' "
-#~ msgstr "Ungültiges Level '%s'"
-
-#~ msgid "%s already defined in translations"
-#~ msgstr "%s ist bereits in Ãœbersetzungen festgelegt"
-
-#~ msgid "%s not defined in translations"
-#~ msgstr "%s ist nicht in Ãœbersetzungen festgelegt"
-
-#~ msgid "Permissive Types"
-#~ msgstr "Permissive Typen"
-
-#~ msgid "Could not create semanage handle"
-#~ msgstr "semanage-Handle konnte nicht erstellt werden"
-
-#~ msgid "SELinux policy is not managed or store cannot be accessed."
-#~ msgstr ""
-#~ "SELinux-Richtlinie wird nicht verwaltet oder auf den Speicher kann nicht "
-#~ "zugegriffen werden."
-
-#~ msgid "Cannot read policy store."
-#~ msgstr "Kann Richtlinien-Speicher nicht lesen"
-
-#~ msgid "Could not establish semanage connection"
-#~ msgstr "Konnte semanage-Verbindung nicht herstellen"
-
-#~ msgid "Not yet implemented"
-#~ msgstr "Noch nicht implementiert"
-
-#~ msgid "Could not create a key for %s"
-#~ msgstr "Konnte keinen Schlüssel für %s erstellen"
-
-#~ msgid "Could not check if login mapping for %s is defined"
-#~ msgstr ""
-#~ "Konnte nicht überprüfen ob die Login-Zuweisung für %s zugewiesen ist"
-
-#~ msgid "Login mapping for %s is already defined"
-#~ msgstr "Login-Zuordung für %s ist bereits festgelegt"
-
-#~ msgid "Linux User %s does not exist"
-#~ msgstr "Linux-Benutzer %s existiert nicht"
-
-#~ msgid "Could not create login mapping for %s"
-#~ msgstr "Login-Zuweisung für %s konnte nicht erstellt werden"
-
-#~ msgid "Could not set MLS range for %s"
-#~ msgstr "MLS-Bereich für %s konnte nicht gesetzt werden"
-
-#~ msgid "Could not set SELinux user for %s"
-#~ msgstr "SELinux-Benutzer für %s konnte nicht gesetzt werden"
-
-#~ msgid "Could not add login mapping for %s"
-#~ msgstr "Login-Zuweisung für %s konnte nicht hinzugefügt werden"
-
-#~ msgid "add SELinux user mapping"
-#~ msgstr "SELinux-Benutzerzuordnung hinzufügen"
-
-#~ msgid "Requires seuser or serange"
-#~ msgstr "Benötigt seuser oder serange"
-
-#~ msgid "Login mapping for %s is not defined"
-#~ msgstr "Login-Zuordnung für %s ist nicht definiert"
-
-#~ msgid "Could not query seuser for %s"
-#~ msgstr "Konnte seuser für %s nicht abfragen"
-
-#~ msgid "Could not modify login mapping for %s"
-#~ msgstr "Konnte Login-Zuweisung für %s nicht ändern"
-
-#~ msgid "Login mapping for %s is defined in policy, cannot be deleted"
-#~ msgstr ""
-#~ "Login-Zuordnung für %s ist in der Richtlinie festgelegt und kann nicht "
-#~ "entfernt werden"
-
-#~ msgid "Could not delete login mapping for %s"
-#~ msgstr "Konnte Login-Zuweisung für %s nicht löschen"
-
-#~ msgid "Could not list login mappings"
-#~ msgstr "Konnte Login-Zuweisungen nicht anzeigen"
-
-#~ msgid "Login Name"
-#~ msgstr "Benutzername:"
-
-#~ msgid "SELinux User"
-#~ msgstr "SELinux-User"
-
-#~ msgid "MLS/MCS Range"
-#~ msgstr "MLS/MCS Bereich"
-
-#~ msgid "Could not check if SELinux user %s is defined"
-#~ msgstr "Konnte nicht überprüfen ob SELinux-Benutzer %s definiert ist"
-
-#~ msgid "SELinux user %s is already defined"
-#~ msgstr "SELinux-Benutzer %s ist bereits angelegt"
-
-#~ msgid "Could not create SELinux user for %s"
-#~ msgstr "Konnte SELinux-Benutzer für %s nicht erstellen"
-
-#~ msgid "Could not add role %s for %s"
-#~ msgstr "Konnte Funktion %s für %s nicht hinzufügen"
-
-#~ msgid "Could not set MLS level for %s"
-#~ msgstr "Konnte MLS-Level für %s nicht setzen"
-
-#~ msgid "Could not extract key for %s"
-#~ msgstr "Konnte Schlüssel für %s nicht extrahieren"
-
-#~ msgid "Could not add SELinux user %s"
-#~ msgstr "Konnte SELinux-Benutzer %s nicht hinzufügen"
-
-#~ msgid "Requires prefix, roles, level or range"
-#~ msgstr "Benötigt Präfix, Funktionen, Level oder Bereich"
-
-#~ msgid "Requires prefix or roles"
-#~ msgstr "Benötigt Präfix oder Funktionen"
-
-#~ msgid "SELinux user %s is not defined"
-#~ msgstr "SELinux-Benutzer %s ist nicht definiert"
-
-#~ msgid "Could not query user for %s"
-#~ msgstr "Konnte Benutzer für %s nicht abfragen"
-
-#~ msgid "Could not modify SELinux user %s"
-#~ msgstr "Konnte SELinux-Benutzer %s nicht ändern"
-
-#~ msgid "SELinux user %s is defined in policy, cannot be deleted"
-#~ msgstr ""
-#~ "SELinux-Benutzer %s ist in der Richtlinie definiert und kann nicht "
-#~ "entfernt werden"
-
-#~ msgid "Could not delete SELinux user %s"
-#~ msgstr "Konnte SELinux-Benutzer %s nicht löschen"
-
-#~ msgid "Could not list SELinux users"
-#~ msgstr "Konnte SELinux-Benutzer nicht auflisten"
-
-#~ msgid "Could not list roles for user %s"
-#~ msgstr "Konnte Funktionen für Benutzer %s nicht auflisten"
-
-#~ msgid "Labeling"
-#~ msgstr "Kennzeichnung"
-
-#~ msgid "MLS/"
-#~ msgstr "MLS/"
-
-#~ msgid "Prefix"
-#~ msgstr "Präfix"
-
-#~ msgid "MCS Level"
-#~ msgstr "MCS-Stufe"
-
-#~ msgid "MCS Range"
-#~ msgstr "MCS-Bereich"
-
-#~ msgid "SELinux Roles"
-#~ msgstr "SELinux-Rollen"
-
-#~ msgid "Protocol udp or tcp is required"
-#~ msgstr "Protokoll UDP oder TCP wird benötigt"
-
-#~ msgid "Could not create a key for %s/%s"
-#~ msgstr "Konnte Schlüssel für %s/%s nicht erstellen"
-
-#~ msgid "Could not check if port %s/%s is defined"
-#~ msgstr "Konnte nicht prüfen, ob Port %s/%s definiert ist"
-
-#~ msgid "Port %s/%s already defined"
-#~ msgstr "Port %s/%s ist bereits definiert"
-
-#~ msgid "Could not create port for %s/%s"
-#~ msgstr "Konnte Port für %s/%s nicht erstellen"
-
-#~ msgid "Could not create context for %s/%s"
-#~ msgstr "Konnte Kontext für %s/%s nicht erstellen"
-
-#~ msgid "Could not set user in port context for %s/%s"
-#~ msgstr "Konnte Benutzer in Port-Kontext für %s/%s nicht setzen"
-
-#~ msgid "Could not set role in port context for %s/%s"
-#~ msgstr "Konnte Funktion in Port-Kontext für %s/%s nicht setzen"
-
-#~ msgid "Could not set type in port context for %s/%s"
-#~ msgstr "Konnte Typ in Port-Kontext für %s/%s nicht setzen"
-
-#~ msgid "Could not set mls fields in port context for %s/%s"
-#~ msgstr "Konnte MLS-Felder in Port-Kontext für %s/%s nicht setzen"
-
-#~ msgid "Could not set port context for %s/%s"
-#~ msgstr "Konnte Port-Kontext für %s/%s nicht setzen"
-
-#~ msgid "Could not add port %s/%s"
-#~ msgstr "Konnte Port %s/%s nicht hinzufügen"
-
-#~ msgid "Requires setype or serange"
-#~ msgstr "Benötigt setype oder serange"
-
-#~ msgid "Requires setype"
-#~ msgstr "Benötigt setype"
-
-#~ msgid "Port %s/%s is not defined"
-#~ msgstr "Port %s/%s ist nicht definiert"
-
-#~ msgid "Could not query port %s/%s"
-#~ msgstr "Konnte Port %s/%s nicht abfragen"
-
-#~ msgid "Could not modify port %s/%s"
-#~ msgstr "Konnte Port %s/%s nicht ändern"
-
-#~ msgid "Could not list the ports"
-#~ msgstr "Konnte Ports nicht auflisten"
-
-#~ msgid "Could not delete the port %s"
-#~ msgstr "Konnte Port %s nicht löschen"
-
-#~ msgid "Could not delete the %s"
-#~ msgstr "Konnte %s nicht löschen"
-
-#~ msgid "Port %s/%s is defined in policy, cannot be deleted"
-#~ msgstr ""
-#~ "Port %s/%s ist in der Richtlinie festgelegt und kann nicht entfernt werden"
-
-#~ msgid "Could not delete port %s/%s"
-#~ msgstr "Konnte Port %s/%s nicht löschen"
-
-#~ msgid "Could not list ports"
-#~ msgstr "Konnte Ports nicht auflisten"
-
-#~ msgid "SELinux Port Type"
-#~ msgstr "SELinux Port-Typ"
-
-#~ msgid "Proto"
-#~ msgstr "Proto"
-
-#~ msgid "Port Number"
-#~ msgstr "Port-Nummer"
-
-#~ msgid "SELinux Type is required"
-#~ msgstr "SELinux-Typ wird benötigt"
-
-#~ msgid "Could not check if interface %s is defined"
-#~ msgstr "Konnte nicht überprüfen, ob die Schnittstelle %s definiert ist"
-
-#~ msgid "Interface %s already defined"
-#~ msgstr "Schnittstelle %s ist bereits definiert"
-
-#~ msgid "Could not create interface for %s"
-#~ msgstr "Konnte keine Schnittstelle für %s kreieren"
-
-#~ msgid "Could not create context for %s"
-#~ msgstr "Konnte keinen Kontext für %s kreieren"
-
-#~ msgid "Could not set user in interface context for %s"
-#~ msgstr "Konnte Benutzer in Schnittstellen-Kontext für %s nicht setzen"
-
-#~ msgid "Could not set role in interface context for %s"
-#~ msgstr "Konnte Aufgabe in Schnittstellen-Kontext für %s nicht setzen"
-
-#~ msgid "Could not set type in interface context for %s"
-#~ msgstr "Konnte Typ in Schnittstellen-Kontext für %s nicht setzen"
-
-#~ msgid "Could not set mls fields in interface context for %s"
-#~ msgstr "Konnte die mls-Felder in Schnittstellen-Kontext für %s nicht setzen"
-
-#~ msgid "Could not set interface context for %s"
-#~ msgstr "Konnte Schnittstellen-Kontext für %s nicht setzen"
-
-#~ msgid "Could not set message context for %s"
-#~ msgstr "Konnte Nachricht-Kontext für %s nicht setzen"
-
-#~ msgid "Could not add interface %s"
-#~ msgstr "Konnte Schnittstelle %s nicht hinzufügen"
-
-#~ msgid "Interface %s is not defined"
-#~ msgstr "Schnittstelle %s ist nicht definiert"
-
-#~ msgid "Could not query interface %s"
-#~ msgstr "Konnte Schnittstelle %s nicht abfragen"
-
-#~ msgid "Could not modify interface %s"
-#~ msgstr "Konnte Schnittstelle %s nicht modifizieren"
-
-#~ msgid "Interface %s is defined in policy, cannot be deleted"
-#~ msgstr ""
-#~ "Schnittstelle %s ist in der Richtlinie festgelegt und kann nicht entfernt "
-#~ "werden"
-
-#~ msgid "Could not delete interface %s"
-#~ msgstr "Konnte Schnittstelle %s nicht löschen"
-
-#~ msgid "Could not list interfaces"
-#~ msgstr "Konnte Schnittstellen nicht auflisten"
-
-#~ msgid "SELinux Interface"
-#~ msgstr "SELinux-Schnittstelle"
-
-#~ msgid "Context"
-#~ msgstr "Inhalt"
-
-#~ msgid "Could not set user in file context for %s"
-#~ msgstr "Konnte Benutzer in Datei-Kontext für %s nicht setzen"
-
-#~ msgid "Could not set role in file context for %s"
-#~ msgstr "Konnte Aufgabe in Datei-Kontext für %s nicht setzen"
-
-#~ msgid "Could not set mls fields in file context for %s"
-#~ msgstr "Konnte die mls-Felder in Datei-Kontext für %s nicht setzen"
-
-#~ msgid "Invalid file specification"
-#~ msgstr "Ungültige Dateiangabe"
-
-#~ msgid "Could not check if file context for %s is defined"
-#~ msgstr "Konnte nicht überprüfen, ob Datei-Kontext für %s definiert ist"
-
-#~ msgid "File context for %s already defined"
-#~ msgstr "Datei-Kontext für %s ist bereits definiert"
-
-#~ msgid "Could not create file context for %s"
-#~ msgstr "Konnte Datei-Kontext für %s nicht kreieren"
-
-#~ msgid "Could not set type in file context for %s"
-#~ msgstr "Konnte Typ in Datei-Kontext für %s nicht setzen"
-
-#~ msgid "Could not set file context for %s"
-#~ msgstr "Konnte Datei-Kontext für %s nicht setzen"
-
-#~ msgid "Could not add file context for %s"
-#~ msgstr "Konnte Datei-Kontext für %s nicht hinzufügen"
-
-#~ msgid "Requires setype, serange or seuser"
-#~ msgstr "Benötigt setype, serange oder seuser"
-
-#~ msgid "File context for %s is not defined"
-#~ msgstr "Datei-Kontext für %s ist nicht definiert"
-
-#~ msgid "Could not query file context for %s"
-#~ msgstr "Konnte Datei-Kontext für %s nicht abfragen"
-
-#~ msgid "Could not modify file context for %s"
-#~ msgstr "Konnte Datei-Kontext für %s nicht erneuern"
-
-#~ msgid "Could not delete the file context %s"
-#~ msgstr "Konnte Datei-Kontext für %s nicht löschen"
-
-#~ msgid "File context for %s is defined in policy, cannot be deleted"
-#~ msgstr ""
-#~ "Der Kontext für Datei %s ist in der Richtlinie festgelegt und kann nicht "
-#~ "entfernt werden"
-
-#~ msgid "Could not delete file context for %s"
-#~ msgstr "Konnte Datei-Kontext für %s nicht löschen"
-
-#~ msgid "Could not list file contexts"
-#~ msgstr "Konnte Datei-Kontexte nicht auflisten"
-
-#~ msgid "Could not list local file contexts"
-#~ msgstr "Konnte lokale Datei-Kontexte nicht auflisten"
-
-#~ msgid "SELinux fcontext"
-#~ msgstr "SELinux-fcontext"
-
-#~ msgid "type"
-#~ msgstr "Typ"
-
-#~ msgid "Requires value"
-#~ msgstr "Benötigt einen Wert"
-
-#~ msgid "Could not check if boolean %s is defined"
-#~ msgstr "Konnte nicht überprüfen, ob Boolesch %s definiert ist"
-
-#~ msgid "Boolean %s is not defined"
-#~ msgstr "Boolescher Wert %s ist nicht definiert"
-
-#~ msgid "Could not query file context %s"
-#~ msgstr "Konnte den Datei-Kontext %s nicht abfragen"
-
-#~ msgid "Could not set active value of boolean %s"
-#~ msgstr "Konnte Boolesch %s nicht auf aktiv setzen"
-
-#~ msgid "Could not modify boolean %s"
-#~ msgstr "Konnte Boolesch %s nicht erneuern"
-
-#~ msgid "Boolean %s is defined in policy, cannot be deleted"
-#~ msgstr ""
-#~ "Boolescher Wert %s ist in der Richtlinie festgelegt und kann nicht "
-#~ "entfernt werden"
-
-#~ msgid "Could not delete boolean %s"
-#~ msgstr "Konnte Boolesch %s nicht löschen"
-
-#~ msgid "Could not list booleans"
-#~ msgstr "Konnte Boolesche Werte nicht auflisten"
-
-#~ msgid "off"
-#~ msgstr "aus"
-
-#~ msgid "on"
-#~ msgstr "ein"
-
-#~ msgid "SELinux boolean"
-#~ msgstr "SELinux Wahrheitswert"
-
-#~ msgid "failed to set PAM_TTY\n"
-#~ msgstr "Einstellung von PAM_TTY fehlgeschlagen\n"
-
-#~ msgid "newrole: service name configuration hashtable overflow\n"
-#~ msgstr ""
-#~ "newrole: Hashtable-Overflow der Konfiguration des Namens des Dienstes\n"
-
-#~ msgid "newrole:  %s:  error on line %lu.\n"
-#~ msgstr "newrole:  %s:  Fehler in Zeile %lu.\n"
-
-#~ msgid "Out of memory!\n"
-#~ msgstr "Nicht genügend Speicher!\n"
-
-#~ msgid "Error!  Shell is not valid.\n"
-#~ msgstr "Fehler! Shell ist ungültig.\n"
-
-#~ msgid "Unable to clear environment\n"
-#~ msgstr "Kann Umgebung nicht löschen\n"
-
-#~ msgid "Error initing capabilities, aborting.\n"
-#~ msgstr "Fehler bei der Funktions-Initialisierung, Abbruch.\n"
-
-#~ msgid "Error setting capabilities, aborting\n"
-#~ msgstr "Fehler bei der Leistungsinitialisierung, Abbruch.\n"
-
-#~ msgid "Error setting KEEPCAPS, aborting\n"
-#~ msgstr "Fehler bei der KEEPCAPS-Einrichtung, Abbruch\n"
-
-#~ msgid "Error dropping capabilities, aborting\n"
-#~ msgstr "Fehler beim Verwerfen von Funktionen.\n"
-
-#~ msgid "Error changing uid, aborting.\n"
-#~ msgstr "Fehler beim Ändern der Benutzerkennung (uid), Abbruch.\n"
-
-#~ msgid "Error resetting KEEPCAPS, aborting\n"
-#~ msgstr "Fehler beim zurücksetzen von KEEPCAPS, Abbruch\n"
-
-#~ msgid "Error dropping SETUID capability, aborting\n"
-#~ msgstr "Fehler beim Verwerfen der SETUID-Funktion, Abbruch.\n"
-
-#~ msgid "Error freeing caps\n"
-#~ msgstr "Fehler beim Lösen von Caps\n"
-
-#~ msgid "Error allocating memory.\n"
-#~ msgstr "Fehler beim Reservieren des Speichers.\n"
-
-#~ msgid "Error sending audit message.\n"
-#~ msgstr "Fehler beim Senden der Prüfungsmeldung.\n"
-
-#~ msgid "Could not determine enforcing mode.\n"
-#~ msgstr "Konnte Enforcing-Modus nicht beenden.\n"
-
-#~ msgid "Error!  Could not open %s.\n"
-#~ msgstr "Fehler! Konnte %s nicht öffnen.\n"
-
-#~ msgid "%s!  Could not get current context for %s, not relabeling tty.\n"
-#~ msgstr ""
-#~ "%s! Erwerb des aktuellen Kontexts für %s fehlgeschlagen. tty wird nicht "
-#~ "umbenannt.\n"
-
-#~ msgid "%s!  Could not get new context for %s, not relabeling tty.\n"
-#~ msgstr ""
-#~ "%s! Erwerb des neuen Kontexts für %s fehlgeschlagen. tty wird nicht "
-#~ "umbenannt.\n"
-
-#~ msgid "%s!  Could not set new context for %s\n"
-#~ msgstr "%s! Konnte neuen Kontext für »%s« nicht setzen.\n"
-
-#~ msgid "%s changed labels.\n"
-#~ msgstr "%s wurde unbenannt.\n"
-
-#~ msgid "Warning! Could not restore context for %s\n"
-#~ msgstr "Warnung! Kontext für %s nicht wiederherstellbar\n"
-
-#~ msgid "Error: multiple roles specified\n"
-#~ msgstr "Fehler: Mehrere Funktionen festgelegt\n"
-
-#~ msgid "Error: multiple types specified\n"
-#~ msgstr "Fehler: mehrere Typen festgelegt\n"
-
-#~ msgid "Sorry, -l may be used with SELinux MLS support.\n"
-#~ msgstr ""
-#~ "Entschuldigung, ich sollte nur mit SELinux-MLS-Unterstützung benutzt "
-#~ "werden.\n"
-
-#~ msgid "Error: multiple levels specified\n"
-#~ msgstr "Fehler: mehrere Ebenen festgelegt\n"
-
-#~ msgid ""
-#~ "Error: you are not allowed to change levels on a non secure terminal \n"
-#~ msgstr ""
-#~ "Fehler: Sie dürfen die Stufen an einem unsicheren Terminal nicht "
-#~ "verändern \n"
-
-#~ msgid "Couldn't get default type.\n"
-#~ msgstr "Konnte Standardtyp nicht feststellen.\n"
-
-#~ msgid "failed to set new role %s\n"
-#~ msgstr "Setzen einer neuen Funktion %s fehlgeschlagen\n"
-
-#~ msgid "failed to set new type %s\n"
-#~ msgstr "Setzen des neuen Typs %s fehlgeschlagen\n"
-
-#~ msgid "failed to build new range with level %s\n"
-#~ msgstr "Erstellung von neuem Bereich mit Level %s fehlgeschlagen\n"
-
-#~ msgid "failed to set new range %s\n"
-#~ msgstr "Setzen von neuem Bereich %s fehlgeschlagen\n"
-
-#~ msgid "failed to convert new context to string\n"
-#~ msgstr ""
-#~ "Konvertieren des neuen Kontexts in Zeichenfolge (String) fehlgeschlagen\n"
-
-#~ msgid "%s is not a valid context\n"
-#~ msgstr "%s ist kein gültiger Kontext\n"
-
-#~ msgid "Unable to allocate memory for new_context"
-#~ msgstr "Kann keinen Speicher für new_context zuweisen"
-
-#~ msgid "Unable to obtain empty signal set\n"
-#~ msgstr "Kann keine leere Signalmenge erhalten\n"
-
-#~ msgid "Unable to set SIGHUP handler\n"
-#~ msgstr "Kann SIGHUP-Handler nicht setzen\n"
-
-#~ msgid "Sorry, newrole may be used only on a SELinux kernel.\n"
-#~ msgstr ""
-#~ "Entschuldigung, diese neue Eingabe sollte nur auf einem SELinux-Kernel "
-#~ "benutzt werden.\n"
-
-#~ msgid "failed to get old_context.\n"
-#~ msgstr "Konnte alten Kontext nicht bekommen.\n"
-
-#~ msgid "Warning!  Could not retrieve tty information.\n"
-#~ msgstr "Warnung! Konnte tty-Informationen nicht abrufen.\n"
-
-#~ msgid "error on reading PAM service configuration.\n"
-#~ msgstr "Fehler beim Lesen der PAM-Dienst Konfiguration.\n"
-
-#~ msgid "newrole: incorrect password for %s\n"
-#~ msgstr "Neue Eingabe: falsches Passwort für %s\n"
-
-#~ msgid "newrole: failure forking: %s"
-#~ msgstr "newrole: Fork fehlgeschlagen: %s"
-
-#~ msgid "Unable to restore tty label...\n"
-#~ msgstr "Kann TTY-Label nicht wiederherstellen...\n"
-
-#~ msgid "Could not close descriptors.\n"
-#~ msgstr "Konnte Deskriptoren nicht schliessen.\n"
-
-#~ msgid "Error allocating shell's argv0.\n"
-#~ msgstr "Fehler beim Zuweisen von argv0 für die Shell.\n"
-
-#~ msgid "Unable to restore the environment, aborting\n"
-#~ msgstr "Kann Umgebung nicht wiederherstellen, Abbruch\n"
-
-#~ msgid "failed to exec shell\n"
-#~ msgstr "Ausführen der Shell fehlgeschlagen\n"
-
-#~ msgid "usage:  %s [-qi]\n"
-#~ msgstr "Verwendung:  %s [-qi]\n"
-
-#~ msgid "%s:  Policy is already loaded and initial load requested\n"
-#~ msgstr "%s:  Richtlinie bereits geladen und initiale Ladeanforderung\n"
-
-#~ msgid "%s:  Can't load policy and enforcing mode requested:  %s\n"
-#~ msgstr "%s:  Kann Richtlinie nicht laden und fordere Zwangsmodus an:  %s\n"
-
-#~ msgid "%s:  Can't load policy:  %s\n"
-#~ msgstr "%s: Kann Richtlinie nicht laden: %s\n"
-
-#~ msgid "Requires at least one category"
-#~ msgstr "Benötigt mindestens eine Kategorie"
-
-# Translation of sensitivity fuzzy
-#~ msgid "Can not modify sensitivity levels using '+' on %s"
-#~ msgstr "Kann Sensivitätsstufe mittels '+' auf %s nicht ändern"
-
-#~ msgid "%s is already in %s"
-#~ msgstr "%s ist bereits in %s"
-
-#~ msgid "%s is not in %s"
-#~ msgstr "%s ist nicht in %s"
-
-#~ msgid "Can not combine +/- with other types of categories"
-#~ msgstr "Kann +/- nicht mit anderen Kategorietypen kombinieren"
-
-# Translation of 'sensitivities' fuzzy
-#~ msgid "Can not have multiple sensitivities"
-#~ msgstr "Kann nicht mehrere Empfindlichkeiten besitzen"
-
-#~ msgid "Usage %s CATEGORY File ..."
-#~ msgstr "Verwendung %s KATEGORIE Datei ..."
-
-#~ msgid "Usage %s -l CATEGORY user ..."
-#~ msgstr "Verwendung %s -l KATEGORIE Benutzer ..."
-
-#~ msgid "Usage %s [[+|-]CATEGORY],...]q File ..."
-#~ msgstr "Verwendung %s [[+|-]KATEGORIE],...]q Datei ..."
-
-#~ msgid "Usage %s -l [[+|-]CATEGORY],...]q user ..."
-#~ msgstr "Verwendung %s -l [[+|-]KATEGORIE],...]q Benutzer ..."
-
-#~ msgid "Usage %s -d File ..."
-#~ msgstr "Aufruf %s -d Datei ..."
-
-#~ msgid "Usage %s -l -d user ..."
-#~ msgstr "Verwendung %s -l -d Benutzer ..."
-
-#~ msgid "Usage %s -L"
-#~ msgstr "Aufruf %s -L"
-
-#~ msgid "Usage %s -L -l user"
-#~ msgstr "Aufruf: %s -L -l Benutzer"
-
-#~ msgid "Use -- to end option list.  For example"
-#~ msgstr "Benutze -- um die Optionsliste abzuschliessen. Beispiel:"
-
-#~ msgid "chcat -- -CompanyConfidential /docs/businessplan.odt"
-#~ msgstr "chcat -- -Vertraulich /docs/geschaeftsplanung.odt"
-
-#~ msgid "chcat -l +CompanyConfidential juser"
-#~ msgstr "chcat -l +Vertraulich juser"
-
-#~ msgid "Options Error %s "
-#~ msgstr "Optionsfehler %s"
-
-#~ msgid "Boolean"
-#~ msgstr "Boolesche"
-
-#~ msgid "all"
-#~ msgstr "alle"
-
-#~ msgid "Customized"
-#~ msgstr "Angepasst"
-
-#~ msgid "File Labeling"
-#~ msgstr "Dateikennzeichnung"
-
-#~ msgid ""
-#~ "File\n"
-#~ "Specification"
-#~ msgstr ""
-#~ "Datei\n"
-#~ "Spezifikation"
-
-#~ msgid ""
-#~ "Selinux\n"
-#~ "File Type"
-#~ msgstr ""
-#~ "SELinux\n"
-#~ "Datei-Typ"
-
-#~ msgid ""
-#~ "File\n"
-#~ "Type"
-#~ msgstr ""
-#~ "Datei\n"
-#~ "Typ"
-
-#~ msgid "User Mapping"
-#~ msgstr "Benutzerzuordnung"
-
-#~ msgid ""
-#~ "Login\n"
-#~ "Name"
-#~ msgstr ""
-#~ "Anmelden\n"
-#~ "Name"
-
-#~ msgid ""
-#~ "SELinux\n"
-#~ "User"
-#~ msgstr ""
-#~ "SELinux\n"
-#~ "Benutzer"
-
-#~ msgid ""
-#~ "MLS/\n"
-#~ "MCS Range"
-#~ msgstr ""
-#~ "MLS/\n"
-#~ "MCS-Bereich"
-
-#~ msgid "Policy Module"
-#~ msgstr "Richtlinien-Modul"
-
-#~ msgid "Module Name"
-#~ msgstr "Modul-Name"
-
-#~ msgid "Disable Audit"
-#~ msgstr "Audit deaktivieren"
-
-#~ msgid "Enable Audit"
-#~ msgstr "Audit aktivieren"
-
-#~ msgid "Load Policy Module"
-#~ msgstr "Richtlinien-Modul laden"
-
-#~ msgid "..."
-#~ msgstr "..."
-
-#~ msgid "600-1024"
-#~ msgstr "600-1024"
-
-#~ msgid "<b>Applications</b>"
-#~ msgstr "<b>Applikationen</b>"
-
-#~ msgid "<b>Login Users</b>"
-#~ msgstr "<b>Melde Benutzer an</b>"
-
-#~ msgid "<b>Root Users</b>"
-#~ msgstr "<b>Root-Benutzer</b>"
-
-#~ msgid "<b>TCP Ports</b>"
-#~ msgstr "<b>TCP-Ports</b>"
-
-#~ msgid "<b>UDP Ports</b>"
-#~ msgstr "<b>UDP Ports</b>"
-
-#~ msgid "Add Booleans Dialog"
-#~ msgstr "Fügen Boolean-Dialog hinzu"
-
-#~ msgid ""
-#~ "Add Files/Directories that application will need to \"Write\" to. Pid "
-#~ "Files, Log Files, /var/lib Files ..."
-#~ msgstr ""
-#~ "Hinzufügen von Dateien/Ordnern, in welche diese Applikation \"Schreiben\" "
-#~ "muss. Pid Files, Log Files, /var/lib Files ..."
-
-#~ msgid "Add/Remove booleans used for this confined application/user"
-#~ msgstr ""
-#~ "Boolsche Werte, die für diese eingeschränkte Applikation/Benutzer "
-#~ "verwendet werden hinzufügen/entfernen"
-
-#~ msgid "Admin User Role"
-#~ msgstr "Admin-Benutzerrolle"
-
-#~ msgid "All"
-#~ msgstr "Alle"
-
-#~ msgid ""
-#~ "Allow application/user role to call bindresvport with 0. Binding to port "
-#~ "600-1024"
-#~ msgstr ""
-#~ "Erlaubt Applikationsrolle/Benutzer-Rolle bindresvport mit 0 aufzurufen. "
-#~ "Verbinde mit Ports 600-1024"
-
-#~ msgid "Allows application/user role to bind to any udp ports > 1024"
-#~ msgstr ""
-#~ "Erlaubt Applikationsrolle/Benutzer-Rolle sich mit einem beliebigen UDP-"
-#~ "Port > 1024 zu verbinden"
-
-#~ msgid "Allows confined application/user role to bind to any udp port"
-#~ msgstr ""
-#~ "Erlaubt einer eingeschränkten Applikationsrolle/einem eingeschränkten "
-#~ "Benutzer-Rolle sich mit jedem beliebigen UDP-Port zu verbinden"
-
-#~ msgid "Boolean Name"
-#~ msgstr "Boolean-Name:"
-
-#~ msgid "Create/Manipulate temporary files in /tmp"
-#~ msgstr "Erstelle/ändert temporäre Dateien in /tmp"
-
-#~ msgid ""
-#~ "Enter a comma separated list of tcp ports or ranges of ports that "
-#~ "application/user role connects to. Example: 612, 650-660"
-#~ msgstr ""
-#~ "Geben Sie eine durch Kommas getrennte Liste von TCP-Ports oder einen "
-#~ "Bereich an, an welche Applikation/Benutzer-Rollen gebunden werden. "
-#~ "Beispiel: 612, 650-660"
-
-#~ msgid ""
-#~ "Enter a comma separated list of udp ports or ranges of ports that "
-#~ "application/user role binds to. Example: 612, 650-660"
-#~ msgstr ""
-#~ "Geben Sie eine durch Kommas getrennte Liste von UDP-Ports oder einen "
-#~ "Bereich an, an welche Applikation/Benutzer-Rollen gebunden werden. "
-#~ "Beispiel: 612, 650-660"
-
-#~ msgid ""
-#~ "Enter a comma separated list of udp ports or ranges of ports that "
-#~ "application/user role connects to. Example: 612, 650-660"
-#~ msgstr ""
-#~ "Geben Sie eine durch Kommas getrennte Liste von UDP-Ports an, mit denen "
-#~ "sich die Applikation/der Benutzer verbindet. Beispiel: 612, 650-660"
-
-#~ msgid "Enter complete path for executable to be confined."
-#~ msgstr ""
-#~ "Geben Sie den vollständigen Pfad der ausführbaren Datei ein, die "
-#~ "eingeschränkt werden soll."
-
-#~ msgid ""
-#~ "Enter complete path to init script used to start the confined application."
-#~ msgstr ""
-#~ "Geben Sie einen vollständigen Pfad zum Init-Skript ein, das verwendet "
-#~ "wird, um die eingeschränkte Applikation zu starten."
-
-#~ msgid "Enter name of application or user role to be confined"
-#~ msgstr "Geben Sie die einzuschränkende Applikation oder Benutzerrollen ein."
-
-#~ msgid "Enter network ports that application/user role connects to"
-#~ msgstr ""
-#~ "Geben Sie die Netzwerkports an, mit denen sich die Applikation/der "
-#~ "Benutzer verbinden können"
-
-#~ msgid "Enter network ports that application/user role listens to"
-#~ msgstr ""
-#~ "Geben Sie die Netzwerksports an, auf denen Applikation/Benutzer hören"
-
-#~ msgid "Enter unique name for the confined application or user role."
-#~ msgstr ""
-#~ "Geben Sie einen eindeutigen Namen für die eingeschränkte Benutzer- oder "
-#~ "Applikationsrolle ein."
-
-#~ msgid "Executable"
-#~ msgstr "Ausführbar"
-
-#~ msgid "Existing User Roles"
-#~ msgstr "Existierende Benutzer-Rollen"
-
-#~ msgid "GPL"
-#~ msgstr "GPL"
-
-#~ msgid "Generated Policy Files"
-#~ msgstr "Generierte Richtliniendateien"
-
-#~ msgid "Init script"
-#~ msgstr "Init Skript"
-
-#~ msgid "Interacts with the terminal"
-#~ msgstr "Interagiere mit dem Terminal"
-
-#~ msgid "Internet Services Daemon (inetd)"
-#~ msgstr "Internet Services Daemon (inetd)"
-
-#~ msgid "Internet Services Daemon are daemons started by xinetd"
-#~ msgstr ""
-#~ "'Internet Services Daemon' sind Daemons, die von xinetd gestartet werden"
-
-#~ msgid "Minimal Terminal User Role"
-#~ msgstr "Minimale Terminal-Benutzerrolle"
-
-#~ msgid "Minimal X Windows User Role"
-#~ msgstr "Minimale X-Windows-Benutzerrolle"
-
-#~ msgid "Modify an existing login user record."
-#~ msgstr "Ändere einen existierenden Benutzer-Datensatz."
-
-#~ msgid "Name"
-#~ msgstr "Name"
-
-#~ msgid "Polgen"
-#~ msgstr "Polgen"
-
-#~ msgid "Policy Directory"
-#~ msgstr "Richtlinienverzeichnis"
-
-#~ msgid "Red Hat 2007"
-#~ msgstr "Red Hat 2007"
-
-#~ msgid "Root Admin User Role"
-#~ msgstr "Root-Admin-Benutzerrolle"
-
-#~ msgid "SELinux Policy Generation Tool"
-#~ msgstr "Tool zum Erstellen von SELinux-Richtlinien"
-
-#~ msgid "Select Ports"
-#~ msgstr "Ports auswählen"
-
-#~ msgid ""
-#~ "Select Root Administrator User Role, if this user will be used to "
-#~ "administer the machine while running as root.  This user will not be able "
-#~ "to login to the system directly."
-#~ msgstr ""
-#~ "Wählen Sie 'Root-Administrator Benutzerrolle', wenn dieser Benutzer zur "
-#~ "Verwaltung des Rechners als Root-Benutzer verwendet wird.  Dieser "
-#~ "Benutzer kann sich nicht direkt auf dem System einloggen."
-
-#~ msgid "Select additional domains that this user role will administer"
-#~ msgstr ""
-#~ "Wählen Sie zusätzliche Domains, die dieser Benutzer administrieren soll."
-
-#~ msgid "Select additional domains to which this user role will transition"
-#~ msgstr ""
-#~ "Wählen Sie zusätzliche Domain(s), in die diese Benutzerrolle übergeht"
-
-#~ msgid "Select additional roles for this user"
-#~ msgstr "Wählen Sie zusätzliche Rollen für diesen Benutzer"
-
-#~ msgid "Select common application traits"
-#~ msgstr "Wählen Sie allgemeine Applikationseigenschaften"
-
-#~ msgid "Select directory to generate policy in"
-#~ msgstr ""
-#~ "Wählen Sie das Verzeichnis, in das die Richtliniendateien generiert "
-#~ "werden sollen"
-
-#~ msgid "Select files/directories that the application manages"
-#~ msgstr "Wählen Sie die Dateien/Verzeichnisse, die die Applikation verwaltet"
-
-#~ msgid ""
-#~ "Select the applications domains that you would like this user role to "
-#~ "transition to."
-#~ msgstr ""
-#~ "Wählen Sie die Applikation-Domains, auf die dieser Benutzerrolle wechseln "
-#~ "soll."
-
-#~ msgid "Select the domains that you would like this user administer."
-#~ msgstr "Wählen Sie die Domains, die dieser Benutzer administrieren soll."
-
-#~ msgid ""
-#~ "Select the user roles that will transiton to this applications domains."
-#~ msgstr ""
-#~ "Wählen Sie die Applikation-Domains, auf die diese Benutzerrole wechseln "
-#~ "soll."
-
-#~ msgid "Select type of the application/user role to be confined"
-#~ msgstr ""
-#~ "Wählen Sie den Typ der einzuschränkenden Applikation oder Benutzerrolle"
-
-#~ msgid "Select user roles that will transition to this domain"
-#~ msgstr ""
-#~ "Wählen Sie die Benutzerrolle(n), die auf diese Domain übertragen werden "
-#~ "soll"
-
-#~ msgid "Select user roles that you want to customize"
-#~ msgstr "Wählen Sie die Rolle, welche Sie anpassen wollen"
-
-#~ msgid "Sends audit messages"
-#~ msgstr "Sende Audit-Meldungen"
-
-#~ msgid "Sends email"
-#~ msgstr "Sende Nachricht"
-
-#~ msgid "Standard Init Daemon"
-#~ msgstr "Standard Init Daemon"
-
-#~ msgid ""
-#~ "Standard Init Daemon are daemons started on boot via init scripts.  "
-#~ "Usually requires a script in /etc/rc.d/init.d"
-#~ msgstr ""
-#~ "Standard-Init-Daemon sind Daemons, die beim Booten via Init-Skripte "
-#~ "gestartet werden. Benötigt normalerweise ein Skript in /etc/rc.d/init.d"
-
-#~ msgid ""
-#~ "This tool can be used to generate a policy framework, to confine "
-#~ "applications or users using SELinux.   \n"
-#~ "\n"
-#~ "The tool generates:\n"
-#~ "Type enforcement file (te)\n"
-#~ "Interface file (if)\n"
-#~ "File context file (fc)\n"
-#~ "Shell script (sh) - used to compile and install the policy. "
-#~ msgstr ""
-#~ "Dieses Tool kann dazu verwendet werden, ein Richtlinien-Framework zur "
-#~ "Abgrenzung von Applikationen oder Benutzern mit SELinux zu erstellen.   \n"
-#~ "\n"
-#~ "Das Tool generiert:\n"
-#~ "Typ-Enforcement-Datei (te)\n"
-#~ "Interface-Datei (if)\n"
-#~ "Dateikontextdatei (fc)\n"
-#~ "Shell-Skript (sh) - wird für das Kompilieren und Installieren der "
-#~ "Richtlinie verwendet. "
-
-#~ msgid ""
-#~ "This tool will generate the following: \n"
-#~ "Type Enforcement(te), File Context(fc), Interface(if), Shell Script(sh)\n"
-#~ "\n"
-#~ "Execute shell script to compile/install and relabel files/directories.  \n"
-#~ "Put the machine in permissive mode (setenforce 0). \n"
-#~ "Run/restart the application to generate avc messages.\n"
-#~ "Use audit2allow -R to generate additional rules for the te file.\n"
-#~ msgstr ""
-#~ "Dieses Werkzeug erstellt das folgende: \n"
-#~ "Type Enforcment(te), File Context(fc), Interface(if), Shell Script(sh).\n"
-#~ "\n"
-#~ "Führen Sie das Shell-Skript aus, um Dateien/Verzeichnisse zu kompilieren/"
-#~ "installieren und neu zu kennzeichnen.\n"
-#~ "Anschliessend können Sie den Rechner in 'permissive' Modus versetzen. \n"
-#~ "Führen Sie die Applikation aus oder starten Sie diese neu, um 'avc'-"
-#~ "Meldungen zu generieren.\n"
-#~ "Verwenden Sie 'audit2allow -R', um zusätzliche Regeln für die 'te'-Datei "
-#~ "zu erstellen.\n"
-
-#~ msgid ""
-#~ "This tool will generate the following: \n"
-#~ "Type Enforcement(te), File Context(fc), Interface(if), Shell Script(sh)\n"
-#~ "Execute shell script as root to compile/install and relabel files/"
-#~ "directories.  \n"
-#~ "Use semanage or useradd to map Linux login users to user roles.\n"
-#~ "Put the machine in permissive mode (setenforce 0). \n"
-#~ "Login as the user and test this user role.\n"
-#~ "Use audit2allow -R to generate additional rules for the te file.\n"
-#~ msgstr ""
-#~ "Dieses Werkzeug erstellt das folgende: \n"
-#~ "Type Enforcment(te), File Context(fc), Interface(if), Shell Script(sh).\n"
-#~ "Führen Sie das Shell-Skript als root aus, um Dateien/Verzeichnisse zu "
-#~ "kompilieren/installieren und neu zu kennzeichnen.\n"
-#~ "Benutzen Sie semanage oder useradd, um Linux-Anmeldebenutzer den "
-#~ "Beutzerrollen zuzuordnen.\n"
-#~ "Anschliessend können Sie den Rechner in permissive-Modus versetzen. \n"
-#~ "Melden Sie sich als Benutzer an und testen Sie die Benutzerrolle.\n"
-#~ "Verwenden Sie audit2allow -R, um zusätzliche Regeln für die Datei zu "
-#~ "erstellen.\n"
-
-#~ msgid ""
-#~ "This user can login to a machine via X or terminal.  By default this user "
-#~ "will have no setuid, no networking, no sudo, no su"
-#~ msgstr ""
-#~ "Dieser Benutzer kann sich via X oder Terminal auf einer Maschine "
-#~ "einloggen.  Standardmäßig besitzt dieser Benutzer kein setuid, kein "
-#~ "Netzwerk, kein sudo und kein su."
-
-#~ msgid ""
-#~ "This user will login to a machine only via a terminal or remote login.  "
-#~ "By default this user will have  no setuid, no networking, no su, no sudo."
-#~ msgstr ""
-#~ "Dieser Benutzer loggt sich auf einer Maschine nur via Terminal oder Login "
-#~ "von Remote aus ein.  Standardmäßig besitzt dieser Benutzer kein setuid, "
-#~ "kein Netzwerk, kein su und kein sudo."
-
-#~ msgid "Unreserved Ports (>1024)"
-#~ msgstr "Nicht reservierte Ports (>1024)"
-
-#~ msgid "User Application"
-#~ msgstr "Benutzerapplikation"
-
-#~ msgid ""
-#~ "User Application are any application that you would like to confine that "
-#~ "is started by a user"
-#~ msgstr ""
-#~ "Eine Benutzerapplikation ist eine beliebige Applikation, die von einem "
-#~ "Benutzer gestartet wird und die Sie einschränken möchten"
-
-#~ msgid "User Role"
-#~ msgstr "Benutzer-Rolle"
-
-#~ msgid ""
-#~ "User with full networking, no setuid applications without transition, no "
-#~ "su, can sudo to Root Administration Roles"
-#~ msgstr ""
-#~ "Benutzer mit vollem Zugriff auf das Netzwerk, keine setuid-Applikationen "
-#~ "ohne Ãœbertragung, kein su und kann mit sudo in Root Administration Roles "
-#~ "wechseln."
-
-#~ msgid ""
-#~ "User with full networking, no setuid applications without transition, no "
-#~ "sudo, no su."
-#~ msgstr ""
-#~ "Benutzer mit vollem Zugriff auf das Netzwerk, keine setuid-Applikationen "
-#~ "ohne Ãœbertragung, kein sudo und kein su."
-
-#~ msgid "Uses Pam for authentication"
-#~ msgstr "Benutzt PAM zur Authentifizierung"
-
-#~ msgid "Uses dbus"
-#~ msgstr "Benutzt DBus"
-
-#~ msgid "Uses nsswitch or getpw* calls"
-#~ msgstr "Benutzt nsswitch- oder getpw*-Aufrufe"
-
-#~ msgid "Web Application/Script (CGI)"
-#~ msgstr "Web Application/Script (CGI)"
-
-#~ msgid ""
-#~ "Web Applications/Script (CGI) CGI scripts started by the web server "
-#~ "(apache)"
-#~ msgstr ""
-#~ "Web-Applikationen/Skript (CGI) CGI-Skripte, die vom Web-Server (Apache) "
-#~ "gestartet werden"
-
-#~ msgid "Writes syslog messages\t"
-#~ msgstr "Schreibt syslog-Nachricht\t"
-
-#~ msgid "translator-credits"
-#~ msgstr "N/A"
-
-#~ msgid "Role"
-#~ msgstr "Funktion"
-
-#~ msgid "Existing_User"
-#~ msgstr "Bestehender_Benutzer"
-
-#~ msgid "Application"
-#~ msgstr "Anwendung"
-
-#~ msgid "%s must be a directory"
-#~ msgstr "%s muss ein Verzeichnis sein"
-
-#~ msgid "You must select a user"
-#~ msgstr "Sie müssen eine Benutzer auswählen"
-
-#~ msgid "Select executable file to be confined."
-#~ msgstr "Wählen Sie eine einzuschränkende ausführbare Datei."
-
-#~ msgid "Select init script file to be confined."
-#~ msgstr "Wählen Sie eine Init-Skript-Datei, die eingeschränkt werden soll."
-
-#~ msgid "Select file(s) that confined application creates or writes"
-#~ msgstr ""
-#~ "Wählen Sie die Datei(en), die eine eingeschränkte Applikation erstellt "
-#~ "oder schreibt"
-
-#~ msgid ""
-#~ "Select directory(s) that the confined application owns and writes into"
-#~ msgstr ""
-#~ "Wählen Sie das/die Verzeichnis(se), die die eingeschränkte Applikation "
-#~ "besitzt und in die sie schreibt"
-
-#~ msgid "Select directory to generate policy files in"
-#~ msgstr ""
-#~ "Wählen Sie das Verzeichnis, in das die Richtliniendateien generiert "
-#~ "werden sollen"
-
-#~ msgid ""
-#~ "Type %s_t already defined in current policy.\n"
-#~ "Do you want to continue?"
-#~ msgstr ""
-#~ "Typ %s_t bereits definiert in aktueller Richtlinie.\n"
-#~ "Wollen Sie fortfahren?"
-
-#~ msgid "Verify Name"
-#~ msgstr "Überprüfe Name"
-
-#~ msgid ""
-#~ "Module %s.pp already loaded in current policy.\n"
-#~ "Do you want to continue?"
-#~ msgstr ""
-#~ "Modul %s.pp bereits geladen in aktueller Richtlinie.\n"
-#~ "Wollen Sie fortfahren?"
-
-#~ msgid "You must enter a name"
-#~ msgstr "Sie müssen einen Namen angeben"
-
-#~ msgid "You must enter a executable"
-#~ msgstr "Sie müssen eine ausführbare Datei angeben"
-
-#~ msgid "Configue SELinux"
-#~ msgstr "SELinux konfigurieren"
-
-#~ msgid "You must enter a name for your confined process/user"
-#~ msgstr ""
-#~ "Sie müssen einen Pfad für Ihren eingeschränkten Prozess/Benutzer eingeben"
-
-#~ msgid "USER Types are not allowed executables"
-#~ msgstr "USER-Types sind keine erlaubten ausführbaren Dateien"
-
-#~ msgid "Only DAEMON apps can use an init script"
-#~ msgstr "Nur DAEMON-Applikationen können ein Init-Skript verwenden"
-
-#~ msgid "use_syslog must be a boolean value "
-#~ msgstr "use_syslog muss ein Boolescher Wert sein"
-
-#~ msgid "USER Types autoomatically get a tmp type"
-#~ msgstr "USER-Types erhalten automatisch ein tmp-Typ"
-
-#~ msgid "You must enter the executable path for your confined process"
-#~ msgstr ""
-#~ "Sie müssen einen ausführbaren Pfad für Ihren eingeschränkten Prozess "
-#~ "eingeben"
-
-#~ msgid "Type Enforcement file"
-#~ msgstr "Type Enforcement Datei"
-
-#~ msgid "File Contexts file"
-#~ msgstr "Datei-Kontexte-Datei"
-
-#~ msgid "Setup Script"
-#~ msgstr "Skript für das Einrichten"
-
-#~ msgid ""
-#~ "SELinux Port\n"
-#~ "Type"
-#~ msgstr ""
-#~ "SELinux Port\n"
-#~ "Typ"
-
-#~ msgid "Protocol"
-#~ msgstr "Protokoll"
-
-#~ msgid ""
-#~ "MLS/MCS\n"
-#~ "Level"
-#~ msgstr ""
-#~ "MLS/MCS\n"
-#~ "Level"
-
-#~ msgid "Port"
-#~ msgstr "Port"
-
-#~ msgid "Port number \"%s\" is not valid.  0 < PORT_NUMBER < 65536 "
-#~ msgstr "Portnummer \"%s\" ist nicht gültig. 0 < PORTNUMMER < 65536 "
-
-#~ msgid "List View"
-#~ msgstr "Listenansicht"
-
-#~ msgid "Group View"
-#~ msgstr "Gruppenansicht"
-
-#~ msgid "SELinux Service Protection"
-#~ msgstr "SELinux-Dienst-Schutz"
-
-#~ msgid "Disable SELinux protection for acct daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für acct daemon"
-
-#~ msgid "Admin"
-#~ msgstr "Administrator"
-
-#~ msgid "Allow all daemons to write corefiles to /"
-#~ msgstr "Allen Daemons erlauben, 'corefiles' nach \"/\" zu schreiben"
-
-#~ msgid "Allow all daemons the ability to use unallocated ttys"
-#~ msgstr ""
-#~ "Allen Daemons die Fähigkeit geben, nicht zugewiesene TTYs zu verwenden"
-
-#~ msgid "User Privs"
-#~ msgstr "Benutzer-Privs"
-
-#~ msgid ""
-#~ "Allow gadmin SELinux user account to execute files in home directory or /"
-#~ "tmp"
-#~ msgstr ""
-#~ "gadmin-SELinux-Benutzer erlauben, Dateien in seinem Stammverzeichnis "
-#~ "oder /tmp auszuführen"
-
-#~ msgid ""
-#~ "Allow guest SELinux user account to execute files in home directory or /"
-#~ "tmp"
-#~ msgstr ""
-#~ "SELinux Gast-Benutzerkonten erlauben, Dateien in ihrem Stammverzeichnis "
-#~ "oder /tmp auszuführen"
-
-#~ msgid "Memory Protection"
-#~ msgstr "Speicherschutz"
-
-#~ msgid "Allow java executable stack"
-#~ msgstr "Ausführbaren Java-Stapel erlauben"
-
-#~ msgid "Mount"
-#~ msgstr "Einhängen"
-
-#~ msgid "Allow mount to mount any file"
-#~ msgstr "'mount' gestatten, jede beliebige Datei einzuhängen"
-
-#~ msgid "Allow mount to mount any directory"
-#~ msgstr "'mount' gestatten, jedes beliebige Verzeichnis einzuhängen"
-
-#~ msgid "Allow mplayer executable stack"
-#~ msgstr "'mplayer' einen ausführbaren Stapel erlauben"
-
-#~ msgid "SSH"
-#~ msgstr "SSH"
-
-#~ msgid "Allow ssh to run ssh-keysign"
-#~ msgstr "SSH gestatten, 'ssh-keysign' auszuführen"
-
-#~ msgid ""
-#~ "Allow staff SELinux user account to execute files in home directory or /"
-#~ "tmp"
-#~ msgstr ""
-#~ "staff-SELinux-Benutzerkonten gestatten, Dateien in ihren "
-#~ "Stammverzeichnissen oder /tmp auszuführen"
-
-#~ msgid ""
-#~ "Allow sysadm SELinux user account to execute files in home directory or /"
-#~ "tmp"
-#~ msgstr ""
-#~ "sysadm-SELinux-Benutzerkonten gestatten, Dateien in ihren "
-#~ "Stammverzeichnissen oder /tmp auszuführen"
-
-#~ msgid ""
-#~ "Allow unconfined SELinux user account to execute files in home directory "
-#~ "or /tmp"
-#~ msgstr ""
-#~ "Uneingeschränkten SELinux-Benutzerkonten gestatten, Dateien in ihren "
-#~ "Stammverzeichnissen oder /tmp auszuführen"
-
-#~ msgid "Network Configuration"
-#~ msgstr "Netzwerkkonfiguration"
-
-#~ msgid "Allow unlabeled packets to flow on the network"
-#~ msgstr ""
-#~ "Nicht gekennzeichneten Paketen gestatten, sich durch das Netzwerk "
-#~ "fortzubewegen"
-
-#~ msgid ""
-#~ "Allow user SELinux user account to execute files in home directory or /tmp"
-#~ msgstr ""
-#~ "user-SELinux-Benutzerkonten gestatten, Dateien in ihren "
-#~ "Stammverzeichnissen oder /tmp auszuführen"
-
-#~ msgid "Allow unconfined to dyntrans to unconfined_execmem"
-#~ msgstr "'unconfined' zu 'dyntrans' zu 'unconfined_execmem' gestatten"
-
-#~ msgid "Databases"
-#~ msgstr "Datenbanken"
-
-#~ msgid "Allow user to connect to mysql socket"
-#~ msgstr "Benutzer gestatten, sich mit dem MySQL-Socket zu verbinden"
-
-#~ msgid "Allow user to connect to postgres socket"
-#~ msgstr "Benutzer gestatten, sich mit dem Postgres-Socket zu verbinden"
-
-#~ msgid "XServer"
-#~ msgstr "X-Server"
-
-#~ msgid "Allow clients to write to X shared memory"
-#~ msgstr ""
-#~ "Clients gestatten, in von X gemeinsam genutzten Speicher zu schreiben"
-
-#~ msgid ""
-#~ "Allow xguest SELinux user account to execute files in home directory or /"
-#~ "tmp"
-#~ msgstr ""
-#~ "xguest-SELinux-Benutzerkonten gestatten, Dateien in ihren "
-#~ "Stammverzeichnissen oder /tmp auszuführen"
-
-#~ msgid "NIS"
-#~ msgstr "NIS"
-
-#~ msgid "Allow daemons to run with NIS"
-#~ msgstr "Daemons gestatten, mit NIS zu laufen"
-
-#~ msgid "Web Applications"
-#~ msgstr "Web-Applikationen"
-
-#~ msgid "Transition staff SELinux user to Web Browser Domain"
-#~ msgstr "'staff'-SELinux-Benutzer auf Web-Browser-Domain übertragen"
-
-#~ msgid "Transition sysadm SELinux user to Web Browser Domain"
-#~ msgstr "'sysadmin'-SELinux-Benutzer auf Web-Browser-Domain übertragen"
-
-#~ msgid "Transition user SELinux user to Web Browser Domain"
-#~ msgstr "'user'-SELinux-Benutzer auf Web-Browser-Domain übertragen"
-
-#~ msgid "Transition xguest SELinux user to Web Browser Domain"
-#~ msgstr "'xguest'-SELinux-Benutzer auf Web-Browser-Domain übertragen"
-
-#~ msgid "Allow staff Web Browsers to write to home directories"
-#~ msgstr "'staff'-Web-Browsern gestatten, in Stammverzeichnisse zu schreiben"
-
-#~ msgid "Disable SELinux protection for amanda"
-#~ msgstr "Deaktiviere SELinux Schutz für amanda"
-
-#~ msgid "Disable SELinux protection for amavis"
-#~ msgstr "Deaktiviere SELinux Schutz für amavis"
-
-#~ msgid "Disable SELinux protection for apmd daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für apmd daemon"
-
-#~ msgid "Disable SELinux protection for arpwatch daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für arpwatch daemon"
-
-#~ msgid "Disable SELinux protection for auditd daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für auditd daemon"
-
-#~ msgid "Disable SELinux protection for automount daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für automount daemon"
-
-#~ msgid "Disable SELinux protection for avahi"
-#~ msgstr "Deaktiviere SELinux Schutz für avahi"
-
-#~ msgid "Disable SELinux protection for bluetooth daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für bluetooth daemon"
-
-#~ msgid "Disable SELinux protection for canna daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für canna daemon"
-
-#~ msgid "Disable SELinux protection for cardmgr daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für cardmgr daemon"
-
-#~ msgid "Disable SELinux protection for Cluster Server"
-#~ msgstr "Deaktiviere SELinux Schutz für Cluster Server"
-
-#~ msgid ""
-#~ "Allow cdrecord to read various content. nfs, samba, removable devices, "
-#~ "user temp and untrusted content files"
-#~ msgstr ""
-#~ "'cdrecord' gestatten, verschiedenen Inhalt zu lesen. NFS, SAMBA, "
-#~ "entfernbare Geräte, temporäre Benutzerverzeichnisse und nicht "
-#~ "vertrauenswürdige Inhaltsdateien"
-
-#~ msgid "Disable SELinux protection for ciped daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für ciped daemon"
-
-#~ msgid "Disable SELinux protection for clamd daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für clamd daemon"
-
-#~ msgid "Disable SELinux protection for clamscan"
-#~ msgstr "Deaktiviere SELinux Schutz für clamscan"
-
-#~ msgid "Disable SELinux protection for clvmd"
-#~ msgstr "Deaktiviere SELinux Schutz für clvmd"
-
-#~ msgid "Disable SELinux protection for comsat daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für comsat daemon"
-
-#~ msgid "Disable SELinux protection for courier daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für courier daemon"
-
-#~ msgid "Disable SELinux protection for cpucontrol daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für cpucontrol daemon"
-
-#~ msgid "Disable SELinux protection for cpuspeed daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für cpuspeed daemon"
-
-#~ msgid "Cron"
-#~ msgstr "Cron"
-
-#~ msgid "Disable SELinux protection for crond daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für crond daemon"
-
-#~ msgid "Printing"
-#~ msgstr "Drucken"
-
-#~ msgid "Disable SELinux protection for cupsd back end server"
-#~ msgstr "Deaktiviere SELinux-Schutz für cupsd backend-Server"
-
-#~ msgid "Disable SELinux protection for cupsd daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für cupsd daemon"
-
-#~ msgid "Disable SELinux protection for cupsd_lpd"
-#~ msgstr "Deaktiviere SELinux Schutz für cupsd_lpd"
-
-#~ msgid "CVS"
-#~ msgstr "CVS"
-
-#~ msgid "Disable SELinux protection for cvs daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für cvs daemon"
-
-#~ msgid "Disable SELinux protection for cyrus daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für cyrus daemon"
-
-#~ msgid "Disable SELinux protection for dbskkd daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für dbskkd daemon"
-
-#~ msgid "Disable SELinux protection for dbusd daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für dbusd daemon"
-
-#~ msgid "Disable SELinux protection for dccd"
-#~ msgstr "Deaktiviere SELinux Schutz für dccd"
-
-#~ msgid "Disable SELinux protection for dccifd"
-#~ msgstr "Deaktiviere SELinux Schutz für dccifd"
-
-#~ msgid "Disable SELinux protection for dccm"
-#~ msgstr "Deaktiviere SELinux Schutz für dccm"
-
-#~ msgid "Disable SELinux protection for ddt daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für ddt daemon"
-
-#~ msgid "Disable SELinux protection for devfsd daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für devfsd daemon"
-
-#~ msgid "Disable SELinux protection for dhcpc daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für dhcpc daemon"
-
-#~ msgid "Disable SELinux protection for dhcpd daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für dhcpd daemon"
-
-#~ msgid "Disable SELinux protection for dictd daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für dictd daemon"
-
-#~ msgid "Allow sysadm_t to directly start daemons"
-#~ msgstr "'sysadm_t' gestatten, Daemons direkt zu starten"
-
-#~ msgid "Disable SELinux protection for Evolution"
-#~ msgstr "Deaktiviere SELinux Schutz für Evolution"
-
-#~ msgid "Games"
-#~ msgstr "Spiele"
-
-#~ msgid "Disable SELinux protection for games"
-#~ msgstr "Deaktiviere SELinux Schutz für games"
-
-#~ msgid "Disable SELinux protection for the web browsers"
-#~ msgstr "Deaktiviere SELinux Schutz für the web browsers"
-
-#~ msgid "Disable SELinux protection for Thunderbird"
-#~ msgstr "Deaktiviere SELinux Schutz für Thunderbird"
-
-#~ msgid "Disable SELinux protection for distccd daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für distccd daemon"
-
-#~ msgid "Disable SELinux protection for dmesg daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für dmesg daemon"
-
-#~ msgid "Disable SELinux protection for dnsmasq daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für dnsmasq daemon"
-
-#~ msgid "Disable SELinux protection for dovecot daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für dovecot daemon"
-
-#~ msgid "Disable SELinux protection for entropyd daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für entropyd daemon"
-
-#~ msgid "Disable SELinux protection for fetchmail"
-#~ msgstr "Deaktiviere SELinux Schutz für fetchmail"
-
-#~ msgid "Disable SELinux protection for fingerd daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für fingerd daemon"
-
-#~ msgid "Disable SELinux protection for freshclam daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für freshclam daemon"
-
-#~ msgid "Disable SELinux protection for fsdaemon daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für fsdaemon daemon"
-
-#~ msgid "Disable SELinux protection for gpm daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für gpm daemon"
-
-#~ msgid "NFS"
-#~ msgstr "NFS"
-
-#~ msgid "Disable SELinux protection for gss daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für gss daemon"
-
-#~ msgid "Disable SELinux protection for Hal daemon"
-#~ msgstr "Deaktiviere SELinux-Schutz für Hal-Daemon"
-
-#~ msgid "Compatibility"
-#~ msgstr "Kompatibilität"
-
-#~ msgid ""
-#~ "Do not audit things that we know to be broken but which are not security "
-#~ "risks"
-#~ msgstr ""
-#~ "Dinge, die als defekt bekannt sind, aber keine Gefährdung der Sicherheit "
-#~ "darstellen, nicht überprüfen"
-
-#~ msgid "Disable SELinux protection for hostname daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für hostname daemon"
-
-#~ msgid "Disable SELinux protection for hotplug daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für hotplug daemon"
-
-#~ msgid "Disable SELinux protection for howl daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für howl daemon"
-
-#~ msgid "Disable SELinux protection for cups hplip daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für hplip daemon"
-
-#~ msgid "Disable SELinux protection for httpd rotatelogs"
-#~ msgstr "Deaktiviere SELinux Schutz für httpd rotatelogs"
-
-#~ msgid "HTTPD Service"
-#~ msgstr "HTTPD-Dienst"
-
-#~ msgid "Disable SELinux protection for http suexec"
-#~ msgstr "Deaktiviere SELinux Schutz für http suexec"
-
-#~ msgid "Disable SELinux protection for hwclock daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für hwclock daemon"
-
-#~ msgid "Disable SELinux protection for i18n daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für i18n daemon"
-
-#~ msgid "Disable SELinux protection for imazesrv daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für imazesrv daemon"
-
-#~ msgid "Disable SELinux protection for inetd child daemons"
-#~ msgstr "Deaktiviere SELinux Schutz für inetd child daemons"
-
-#~ msgid "Disable SELinux protection for inetd daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für inetd daemon"
-
-#~ msgid "Disable SELinux protection for innd daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für innd daemon"
-
-#~ msgid "Disable SELinux protection for iptables daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für iptables daemon"
-
-#~ msgid "Disable SELinux protection for ircd daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für ircd daemon"
-
-#~ msgid "Disable SELinux protection for irqbalance daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für irqbalance daemon"
-
-#~ msgid "Disable SELinux protection for iscsi daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für iscsi daemon"
-
-#~ msgid "Disable SELinux protection for jabberd daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für jabberd daemon"
-
-#~ msgid "Kerberos"
-#~ msgstr "Kerberos"
-
-#~ msgid "Disable SELinux protection for kadmind daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für kadmind daemon"
-
-#~ msgid "Disable SELinux protection for klogd daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für klogd daemon"
-
-#~ msgid "Disable SELinux protection for krb5kdc daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für krb5kdc daemon"
-
-#~ msgid "Disable SELinux protection for ktalk daemons"
-#~ msgstr "Deaktiviere SELinux Schutz für ktalk daemons"
-
-#~ msgid "Disable SELinux protection for kudzu daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für kudzu daemon"
-
-#~ msgid "Disable SELinux protection for locate daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für locate daemon"
-
-#~ msgid "Disable SELinux protection for lpd daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für lpd daemon"
-
-#~ msgid "Disable SELinux protection for lrrd daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für lrrd daemon"
-
-#~ msgid "Disable SELinux protection for lvm daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für lvm daemon"
-
-#~ msgid "Disable SELinux protection for mailman"
-#~ msgstr "Deaktiviere SELinux Schutz für mailman"
-
-#~ msgid "Allow evolution and thunderbird to read user files"
-#~ msgstr "Evolution und Thunderbird gestatten, Benutzerdateien zu lesen"
-
-#~ msgid "Disable SELinux protection for mdadm daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für mdadm daemon"
-
-#~ msgid "Disable SELinux protection for monopd daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für monopd daemon"
-
-#~ msgid "Allow the mozilla browser to read user files"
-#~ msgstr "Dem Mozilla-Browser gestatten, Benutzerdateien zu lesen"
-
-#~ msgid "Disable SELinux protection for mrtg daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für mrtg daemon"
-
-#~ msgid "Disable SELinux protection for mysqld daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für mysqld daemon"
-
-#~ msgid "Disable SELinux protection for nagios daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für nagios daemon"
-
-#~ msgid "Disable SELinux protection for named daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für named daemon"
-
-#~ msgid "Disable SELinux protection for nessusd daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für nessusd daemon"
-
-#~ msgid "Disable SELinux protection for NetworkManager"
-#~ msgstr "Deaktiviere SELinux Schutz für NetworkManager"
-
-#~ msgid "Disable SELinux protection for nfsd daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für nfsd daemon"
-
-#~ msgid "Samba"
-#~ msgstr "Samba"
-
-#~ msgid "Disable SELinux protection for nmbd daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für nmbd daemon"
-
-#~ msgid "Disable SELinux protection for nrpe daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für nrpe daemon"
-
-#~ msgid "Disable SELinux protection for nscd daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für nscd daemon"
-
-#~ msgid "Disable SELinux protection for nsd daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für nsd daemon"
-
-#~ msgid "Disable SELinux protection for ntpd daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für ntpd daemon"
-
-#~ msgid "Disable SELinux protection for oddjob"
-#~ msgstr "Deaktiviere SELinux Schutz für oddjob"
-
-#~ msgid "Disable SELinux protection for oddjob_mkhomedir"
-#~ msgstr "Deaktiviere SELinux Schutz für oddjob_mkhomedir"
-
-#~ msgid "Disable SELinux protection for openvpn daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für openvpn daemon"
-
-#~ msgid "Disable SELinux protection for pam daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für pam daemon"
-
-#~ msgid "Disable SELinux protection for pegasus"
-#~ msgstr "Deaktiviere SELinux Schutz für pegasus"
-
-#~ msgid "Disable SELinux protection for perdition daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für perdition daemon"
-
-#~ msgid "Disable SELinux protection for portmap daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für portmap daemon"
-
-#~ msgid "Disable SELinux protection for portslave daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für portslave daemon"
-
-#~ msgid "Disable SELinux protection for postfix"
-#~ msgstr "Deaktiviere SELinux Schutz für postfix"
-
-#~ msgid "Disable SELinux protection for postgresql daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für postgresql daemon"
-
-#~ msgid "pppd"
-#~ msgstr "pppd"
-
-#~ msgid "Allow pppd to be run for a regular user"
-#~ msgstr "Gestatten, dass 'pppd' für einen regulären Benutzer ausgeführt wird"
-
-#~ msgid "Disable SELinux protection for pptp"
-#~ msgstr "Deaktiviere SELinux Schutz für pptp"
-
-#~ msgid "Disable SELinux protection for prelink daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für prelink daemon"
-
-#~ msgid "Disable SELinux protection for privoxy daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für privoxy daemon"
-
-#~ msgid "Disable SELinux protection for ptal daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für ptal daemon"
-
-#~ msgid "Disable SELinux protection for pxe daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für pxe daemon"
-
-#~ msgid "Disable SELinux protection for pyzord"
-#~ msgstr "Deaktiviere SELinux Schutz für pyzord"
-
-#~ msgid "Disable SELinux protection for quota daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für quota daemon"
-
-#~ msgid "Disable SELinux protection for radiusd daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für radiusd daemon"
-
-#~ msgid "Disable SELinux protection for radvd daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für radvd daemon"
-
-#~ msgid "Disable SELinux protection for rdisc"
-#~ msgstr "Deaktiviere SELinux Schutz für rdisc"
-
-#~ msgid "Disable SELinux protection for readahead"
-#~ msgstr "Deaktiviere SELinux Schutz für readahead"
-
-#~ msgid "Allow programs to read files in non-standard locations (default_t)"
-#~ msgstr ""
-#~ "Programmen gestatten, Dateien an nicht standardmässigen Orten zu lesen "
-#~ "(default_t)"
-
-#~ msgid "Disable SELinux protection for restorecond"
-#~ msgstr "Deaktiviere SELinux Schutz für restorecond"
-
-#~ msgid "Disable SELinux protection for rhgb daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für rhgb daemon"
-
-#~ msgid "Disable SELinux protection for ricci"
-#~ msgstr "Deaktiviere SELinux Schutz für ricci"
-
-#~ msgid "Disable SELinux protection for ricci_modclusterd"
-#~ msgstr "Deaktiviere SELinux Schutz für ricci_modclusterd"
-
-#~ msgid "Disable SELinux protection for rlogind daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für rlogind daemon"
-
-#~ msgid "Disable SELinux protection for rpcd daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für rpcd daemon"
-
-#~ msgid "Disable SELinux protection for rshd"
-#~ msgstr "Deaktiviere SELinux Schutz für rshd"
-
-#~ msgid "rsync"
-#~ msgstr "rsync"
-
-#~ msgid "Disable SELinux protection for rsync daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für rsync daemon"
-
-#~ msgid "Allow ssh to run from inetd instead of as a daemon"
-#~ msgstr ""
-#~ "SSH gestatten, von 'inetd' aus gestartet zu werden, anstatt als Daemon"
-
-#~ msgid "Allow Samba to share nfs directories"
-#~ msgstr "Samba gestatten, NFS-Verzeichnisse freizugeben"
-
-#~ msgid "SASL authentication server"
-#~ msgstr "SASL-Authentifizierungs-Server"
-
-#~ msgid "Allow sasl authentication server to read /etc/shadow"
-#~ msgstr "SASL-Authentifizierungs-Server gestatten, /etc/shadow zu lesen"
-
-#~ msgid ""
-#~ "Allow X-Windows server to map a memory region as both executable and "
-#~ "writable"
-#~ msgstr ""
-#~ "Dem X-Windows-Server gestatten, einen Speicherbereich sowohl als "
-#~ "ausführbar, als auch beschreibbar auszuweisen"
-
-#~ msgid "Disable SELinux protection for saslauthd daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für saslauthd daemon"
-
-#~ msgid "Disable SELinux protection for scannerdaemon daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für scannerdaemon daemon"
-
-#~ msgid "Do not allow transition to sysadm_t, sudo and su effected"
-#~ msgstr ""
-#~ "Wechsel zu 'sysadm_t' nicht gestatten. Davon betroffen sind 'sudo' und "
-#~ "'su'"
-
-#~ msgid "Do not allow any processes to load kernel modules"
-#~ msgstr "Keinem Prozess gestatten, Kernel-Module zu laden"
-
-#~ msgid "Do not allow any processes to modify kernel SELinux policy"
-#~ msgstr ""
-#~ "Keinem Prozess gestatten, die Kernel SELinux-Richtlinien zu verändern"
-
-#~ msgid "Disable SELinux protection for sendmail daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für sendmail daemon"
-
-#~ msgid "Disable SELinux protection for setrans"
-#~ msgstr "Deaktiviere SELinux Schutz für setrans"
-
-#~ msgid "Disable SELinux protection for setroubleshoot daemon"
-#~ msgstr "Deaktiviere SELinux-Schutz für setroubleshoot-Daemon"
-
-#~ msgid "Disable SELinux protection for slapd daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für slapd daemon"
-
-#~ msgid "Disable SELinux protection for slrnpull daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für slrnpull daemon"
-
-#~ msgid "Disable SELinux protection for smbd daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für smbd daemon"
-
-#~ msgid "Disable SELinux protection for snmpd daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für snmpd daemon"
-
-#~ msgid "Disable SELinux protection for snort daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für snort daemon"
-
-#~ msgid "Disable SELinux protection for soundd daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für soundd daemon"
-
-#~ msgid "Disable SELinux protection for sound daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für sound daemon"
-
-#~ msgid "Spam Protection"
-#~ msgstr "Spam-Schutz"
-
-#~ msgid "Disable SELinux protection for spamd daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für spamd daemon"
-
-#~ msgid "Allow spamd to access home directories"
-#~ msgstr "'spamd' Zugriff auf Stammverzeichnisse gestatten"
-
-#~ msgid "Allow Spam Assassin daemon network access"
-#~ msgstr "Dem Spamassassin-Daemon Netzwerkzugriff gestatten"
-
-#~ msgid "Disable SELinux protection for speedmgmt daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für speedmgmt daemon"
-
-#~ msgid "Squid"
-#~ msgstr "Squid"
-
-#~ msgid "Allow squid daemon to connect to the network"
-#~ msgstr "Dem Squid-Daemon gestatten, sich mit dem Netzwerk zu verbinden"
-
-#~ msgid "Disable SELinux protection for squid daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für squid daemon"
-
-#~ msgid "Disable SELinux protection for ssh daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für ssh daemon"
-
-#~ msgid "Allow ssh logins as sysadm_r:sysadm_t"
-#~ msgstr "SSH-Logins als 'sysadm_r:sysadm_t' gestatten"
-
-#~ msgid ""
-#~ "Allow staff_r users to search the sysadm home dir and read files (such as "
-#~ "~/.bashrc)"
-#~ msgstr ""
-#~ "'staff_r'-Benutzern gestatten, das 'sysadm'-Stammverzeichnis zu "
-#~ "durchsuchen und Dateien zu lesen (z.B. ~/.bashrc)"
-
-#~ msgid "Universal SSL tunnel"
-#~ msgstr "Universeller SSL-Tunnel"
-
-#~ msgid "Disable SELinux protection for stunnel daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für stunnel daemon"
-
-#~ msgid "Allow stunnel daemon to run as standalone, outside of xinetd"
-#~ msgstr ""
-#~ "Dem stunnel-Daemon gestatten, als \"standalone\" zu laufen, ausserhalb "
-#~ "von 'xinetd'"
-
-#~ msgid "Disable SELinux protection for swat daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für swat daemon"
-
-#~ msgid "Disable SELinux protection for sxid daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für sxid daemon"
-
-#~ msgid "Disable SELinux protection for syslogd daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für syslogd daemon"
-
-#~ msgid "Disable SELinux protection for system cron jobs"
-#~ msgstr "Deaktiviere SELinux Schutz für system cron jobs"
-
-#~ msgid "Disable SELinux protection for tcp daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für tcp daemon"
-
-#~ msgid "Disable SELinux protection for telnet daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für telnet daemon"
-
-#~ msgid "Disable SELinux protection for tftpd daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für tftpd daemon"
-
-#~ msgid "Disable SELinux protection for transproxy daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für transproxy daemon"
-
-#~ msgid "Disable SELinux protection for udev daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für udev daemon"
-
-#~ msgid "Disable SELinux protection for uml daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für uml daemon"
-
-#~ msgid ""
-#~ "Allow xinetd to run unconfined, including any services it starts that do "
-#~ "not have a domain transition explicitly defined"
-#~ msgstr ""
-#~ "'xinetd' gestatten, uneingeschränkt zu laufen, inklusive einiger Dienste, "
-#~ "die gestartet werden, die keine Domain-Ãœbertragung explizit definiert "
-#~ "haben."
-
-#~ msgid ""
-#~ "Allow rc scripts to run unconfined, including any daemon started by an rc "
-#~ "script that does not have a domain transition explicitly defined"
-#~ msgstr ""
-#~ "rc-Skripten gestatten, uneingeschränkt zu laufen, inklusive beliebiger "
-#~ "Daemons, die von einem rc-Skript gestartet werden, das keine Domain-"
-#~ "Ãœbertragung explizit definiert hat"
-
-#~ msgid "Allow rpm to run unconfined"
-#~ msgstr "'rpm' gestatten, ohne Einschränkungen zu laufen"
-
-#~ msgid "Allow privileged utilities like hotplug and insmod to run unconfined"
-#~ msgstr ""
-#~ "Privilegierten Dienstprogrammen wie 'hotplug' und 'insmod' gestatten, "
-#~ "ohne Einschränkung zu laufen"
-
-#~ msgid "Disable SELinux protection for updfstab daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für updfstab daemon"
-
-#~ msgid "Disable SELinux protection for uptimed daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für uptimed daemon"
-
-#~ msgid ""
-#~ "Allow user_r to reach sysadm_r via su, sudo, or userhelper. Otherwise, "
-#~ "only staff_r can do so"
-#~ msgstr ""
-#~ "'user_r' gestatten, 'sysadm_r'-Rechte via 'su', 'sudo' oder 'userhelper' "
-#~ "zu erlangen. Ansonsten ist dies lediglich 'staff_r' gestattet"
-
-#~ msgid "Allow users to execute the mount command"
-#~ msgstr "Benutzern gestatten, den Befehl 'mount' auszuführen"
-
-#~ msgid "Allow regular users direct mouse access (only allow the X server)"
-#~ msgstr ""
-#~ "Regulären Benutzern direkten Zugriff auf die Maus gestatten (nur dem X-"
-#~ "Server gestatten)"
-
-#~ msgid "Allow users to run the dmesg command"
-#~ msgstr "Benutzern gestatten, den Befehl 'dmesg' auszuführen"
-
-#~ msgid "Allow users to control network interfaces (also needs USERCTL=true)"
-#~ msgstr ""
-#~ "Benutzern gestatten, Netzwerkschnittstellen zu kontrollieren (setzt "
-#~ "ebenfalls USERCTL=true voraus)"
-
-#~ msgid "Allow normal user to execute ping"
-#~ msgstr "Einem normalen Benutzer gestatten, 'ping' auszuführen"
-
-#~ msgid "Allow user to r/w noextattrfile (FAT, CDROM, FLOPPY)"
-#~ msgstr "Benutzer r/w noextattrfile (FAT, CDROM, FLOPPY) gestatten"
-
-#~ msgid "Allow users to rw usb devices"
-#~ msgstr "Benutzern gestatten, USB-Geräte zu lesen/beschreiben"
-
-#~ msgid ""
-#~ "Allow users to run TCP servers (bind to ports and accept connection from "
-#~ "the same domain and outside users)  disabling this forces FTP passive "
-#~ "mode and may change other protocols"
-#~ msgstr ""
-#~ "Benutzern gestatten, TCP-Server auszuführen (Verbindung zu Ports und "
-#~ "Annahme der Verbindung aus derselben Domain und ausserhalb 'users'). Wird "
-#~ "dies verweigert, muss FTP im Passiv-Modus laufen und verändert ggf. auch "
-#~ "andere Protokolle"
-
-#~ msgid "Allow user to stat ttyfiles"
-#~ msgstr "Benutzer gestatten, 'ttyfiles' statistisch anzusehen"
-
-#~ msgid "Disable SELinux protection for uucpd daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für uucpd daemon"
-
-#~ msgid "Disable SELinux protection for vmware daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für vmware daemon"
-
-#~ msgid "Disable SELinux protection for watchdog daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für watchdog daemon"
-
-#~ msgid "Disable SELinux protection for winbind daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für winbind daemon"
-
-#~ msgid "Disable SELinux protection for xdm daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für xdm daemon"
-
-#~ msgid "Allow xdm logins as sysadm_r:sysadm_t"
-#~ msgstr "'xdm' Logins als 'sysadm_r:sysadm_t' gestatten"
-
-#~ msgid "Disable SELinux protection for xen daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für xen daemon"
-
-#~ msgid "XEN"
-#~ msgstr "XEN"
-
-#~ msgid "Allow xen to read/write physical disk devices"
-#~ msgstr "'xen' gestatten, physikalische Plattengeräte zu lesen/beschreiben"
-
-#~ msgid "Disable SELinux protection for xfs daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für xfs daemon"
-
-#~ msgid "Disable SELinux protection for xen control"
-#~ msgstr "Deaktiviere SELinux-Schutz für xen-Daemon"
-
-#~ msgid "Disable SELinux protection for ypbind daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für ypbind daemon"
-
-#~ msgid "Disable SELinux protection for NIS Password Daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für NIS Password Daemon"
-
-#~ msgid "Disable SELinux protection for ypserv daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für ypserv daemon"
-
-#~ msgid "Disable SELinux protection for NIS Transfer Daemon"
-#~ msgstr "Deaktiviere SELinux Schutz für NIS Transfer Daemon"
-
-#~ msgid ""
-#~ "Allow SELinux webadm user to manage unprivileged users home directories"
-#~ msgstr ""
-#~ "Dem SELinux-Benutzer webadm gestatten, nicht privilegierte "
-#~ "Benutzerverzeichnisse zu verwalten"
-
-#~ msgid ""
-#~ "Allow SELinux webadm user to read unprivileged users home directories"
-#~ msgstr ""
-#~ "Dem SELinux-Benutzer webadm gestatten, nicht privilegierte "
-#~ "Benutzerverzeichnisse zu lesen"
-
-#~ msgid "Are you sure you want to delete %s '%s'?"
-#~ msgstr "Möchten Sie %s '%s' wirklich löschen?"
-
-#~ msgid "Delete %s"
-#~ msgstr "%s löschen"
-
-#~ msgid "Add %s"
-#~ msgstr "Hinzufügen von %s"
-
-#~ msgid "Modify %s"
-#~ msgstr "%s ändern"
-
-#~ msgid "Permissive"
-#~ msgstr "Permissive"
-
-#~ msgid "Enforcing"
-#~ msgstr "Enforcing"
-
-#~ msgid "Disabled"
-#~ msgstr "Deaktiviert"
-
-#~ msgid "Status"
-#~ msgstr "Status"
-
-#~ msgid ""
-#~ "Changing the policy type will cause a relabel of the entire file system "
-#~ "on the next boot. Relabeling takes a long time depending on the size of "
-#~ "the file system.  Do you wish to continue?"
-#~ msgstr ""
-#~ "Wenn der Richtlinientyp geändert wird, muss beim nächsten Neustart das "
-#~ "vollständige Dateisystem neu beschriftet werden. Das Neubeschriften wird, "
-#~ "je nach Grösse des Dateisystems, sehr lange dauern. Wollen Sie fortfahren?"
-
-#~ msgid ""
-#~ "Changing to SELinux disabled requires a reboot.  It is not recommended.  "
-#~ "If you later decide to turn SELinux back on, the system will be required "
-#~ "to relabel.  If you just want to see if SELinux is causing a problem on "
-#~ "your system, you can go to permissive mode which will only log errors and "
-#~ "not enforce SELinux policy.  Permissive mode does not require a reboot    "
-#~ "Do you wish to continue?"
-#~ msgstr ""
-#~ "Das Deaktivieren von SELinux erfordert einen Neustart. Es wird nicht "
-#~ "empfohlen. Falls Sie nachträglich entscheiden, SELinux wieder zu "
-#~ "aktivieren, muss das System neu gekennzeichnet werden. Falls Sie nur "
-#~ "überprüfen möchten, ob SELinux ein Problem auf Ihrem System verursacht, "
-#~ "können Sie in den 'permissive' Modus wechseln, in dem Fehler lediglich "
-#~ "protokolliert, die SELinux-Richtlinien jedoch nicht erzwungen werden. Der "
-#~ "'permissive' Modus erfordert keinen Neustart. Möchten Sie fortfahren?"
-
-#~ msgid ""
-#~ "Changing to SELinux enabled will cause a relabel of the entire file "
-#~ "system on the next boot. Relabeling takes a long time depending on the "
-#~ "size of the file system.  Do you wish to continue?"
-#~ msgstr ""
-#~ "Das Aktivieren von SELinux führt eine komplette Neu-Kennzeichnung des "
-#~ "gesamten Dateisystems beim nächsten Neustart nach sich. Das Neu-"
-#~ "Kennzeichnen dauert sehr lange, abhängig von der Grösse des Dateisystems. "
-#~ "Möchten Sie fortfahren?"
-
-#~ msgid "<b>Select:</b>"
-#~ msgstr "<b>Wählen Sie aus:</b>"
-
-#~ msgid "Add"
-#~ msgstr "Hinzufügen"
-
-#~ msgid "Add File Context"
-#~ msgstr "Dateikontext hinzufügen"
-
-#~ msgid "Add Network Port"
-#~ msgstr "Netzwerk-Port hinzufügen"
-
-#~ msgid "Add SELinux Login Mapping"
-#~ msgstr "SELinux Login-Zuweisung hinzufügen"
-
-#~ msgid "Add SELinux Network Ports"
-#~ msgstr "SELinux Netzwerk-Ports hinzufügen"
-
-#~ msgid "Add SELinux User"
-#~ msgstr "SELinux-Benutzer hinzufügen"
-
-#~ msgid "Add SELinux User Mapping"
-#~ msgstr "SELinux Benutzerzuweisung hinzufügen"
-
-#~ msgid "Add Translation"
-#~ msgstr "Übersetzung hinzufügen"
-
-#~ msgid ""
-#~ "Copyright (c)2006 Red Hat, Inc.\n"
-#~ "Copyright (c) 2006 Dan Walsh <dwalsh at redhat.com>"
-#~ msgstr ""
-#~ "Copyright (c)2006 Red Hat, Inc.\n"
-#~ "Copyright (c) 2006 Dan Walsh <dwalsh at redhat.com>"
-
-#~ msgid "Current Enforcing Mode"
-#~ msgstr "Derzeitiger Enforcing-Modus"
-
-#~ msgid "Delete File Context"
-#~ msgstr "Dateikontext löschen"
-
-#~ msgid "Delete SELinux User Mapping"
-#~ msgstr "SELinux-Benutzerzuordnung löschen"
-
-#~ msgid "Delete Translation"
-#~ msgstr "Übersetzung löschen"
-
-#~ msgid ""
-#~ "Disabled\n"
-#~ "Permissive\n"
-#~ "Enforcing\n"
-#~ msgstr ""
-#~ "Deaktiviert\n"
-#~ "Permissive\n"
-#~ "Enforcing\n"
-
-#~ msgid "Edit Network Port"
-#~ msgstr "Netzwerk-Port bearbeiten"
-
-#~ msgid ""
-#~ "Enable/Disable additional audit rules, that are normally not reported in "
-#~ "the log files."
-#~ msgstr ""
-#~ "Zusätzliche Prüfregeln aktivieren/deaktivieren, die normalerweise nicht "
-#~ "in den Protokolldateien erscheinen."
-
-#~ msgid "File Specification"
-#~ msgstr "Dateispezifikation"
-
-#~ msgid "File Type"
-#~ msgstr "Dateityp"
-
-#~ msgid "Generate new policy module"
-#~ msgstr "Neues Richtlinienmodul generieren"
-
-#~ msgid "Load policy module"
-#~ msgstr "Richtlinienmodul laden"
-
-#~ msgid "MLS"
-#~ msgstr "MLS"
-
-#~ msgid "Modify File Context"
-#~ msgstr "Datei-Kontext ändern"
-
-#~ msgid "Modify SELinux User"
-#~ msgstr "SELinux-Benutzer modifizieren"
-
-#~ msgid "Modify SELinux User Mapping"
-#~ msgstr "SELinux-Benutzer Benutzerzuordnung"
-
-#~ msgid "Modify Translation"
-#~ msgstr "Ãœbersetzung bearbeiten"
-
-#~ msgid "Relabel on next reboot."
-#~ msgstr "Beim nächsten Neustart neu kennzeichnen."
-
-#~ msgid "Remove loadable policy module"
-#~ msgstr "Ladbares Richtlinienmodul entfernen"
-
-#~ msgid "Revert boolean setting to system default"
-#~ msgstr ""
-#~ "Boolsche Einstellungen auf Standardeinstellungen des Systems zurücksetzen"
-
-#~ msgid "SELinux Administration"
-#~ msgstr "SELinux-Administration"
-
-#~ msgid ""
-#~ "SELinux MLS/MCS\n"
-#~ "Level"
-#~ msgstr ""
-#~ "SELinux MLS/MCS\n"
-#~ "Level"
-
-#~ msgid "SELinux Type"
-#~ msgstr "SELinux-Typ"
-
-#~ msgid "Select Management Object"
-#~ msgstr "Management-Objekt auswählen"
-
-#~ msgid ""
-#~ "Select if you wish to relabel then entire file system on next reboot.  "
-#~ "Relabeling can take a very long time, depending on the size of the "
-#~ "system.  If you are changing policy types or going from disabled to "
-#~ "enforcing, a relabel is required."
-#~ msgstr ""
-#~ "Wählen Sie aus, ob Sie das gesamte Dateisystem beim nächsten Neustart neu "
-#~ "kennzeichnen möchten. Das Neu-Kennzeichnen kann sehr lange dauern, "
-#~ "abhängig von der Grösse des Systems. Falls Sie die Richtlinientypen "
-#~ "ändern oder vom Zustand 'disabled' zu 'enforcing' wechseln, ist eine Neu-"
-#~ "Kennzeichnung erforderlich."
-
-#~ msgid "System Default Enforcing Mode"
-#~ msgstr "Standard-Enforcing-Modus des Systems"
-
-#~ msgid "System Default Policy Type: "
-#~ msgstr "Systemstandard-Richtlinientyp: "
-
-#~ msgid "Toggle between Customized and All Booleans"
-#~ msgstr "Zwischen 'Angepasst' und 'Alles Boolsche Werte' auswählen"
-
-#~ msgid "Toggle between Customized and All Ports"
-#~ msgstr "Zwischen 'Angepasst' und 'Alle Ports' auswählen"
-
-#~ msgid "Toggle between all and customized file context"
-#~ msgstr "Zwischen 'Alles' oder 'Angepasstem Dateikontext' auswählen"
-
-#~ msgid "_Delete"
-#~ msgstr "_Löschen"
-
-#~ msgid "_Properties"
-#~ msgstr "_Einstellungen"
-
-#~ msgid ""
-#~ "all files\n"
-#~ "regular file\n"
-#~ "directory\n"
-#~ "character device\n"
-#~ "block device\n"
-#~ "socket\n"
-#~ "symbolic link\n"
-#~ "named pipe\n"
-#~ msgstr ""
-#~ "alle Dateien\n"
-#~ "reguläre Datei\n"
-#~ "Verzeichnis\n"
-#~ "Zeichengerät\n"
-#~ "Blockgerät\n"
-#~ "Socket\n"
-#~ "symbolischer Link\n"
-#~ "Named-Pipe\n"
-
-#~ msgid "system-config-selinux"
-#~ msgstr "system-config-selinux"
-
-#~ msgid ""
-#~ "tcp\n"
-#~ "udp"
-#~ msgstr ""
-#~ "tcp\n"
-#~ "udp"
-
-#~ msgid "Sensitvity Level"
-#~ msgstr "Empfindlichkeitsstufe"
-
-#~ msgid "SELinux user '%s' is required"
-#~ msgstr "SELinux-Benutzer '%s' wird benötigt"
-
-#~ msgid "Invalid prefix %s"
-#~ msgstr "Ungültiges Präfix %s"
-
-#~ msgid "Allow application/user role to bind to any tcp ports > 1024"
-#~ msgstr ""
-#~ "Erlaubt Applikationsrolle/Benutzer-Rolle, sich mit einem beliebigen TCP-"
-#~ "Port > 1024 zu verbinden"
-
-#~ msgid "Allows confined application/user role to bind to any tcp port"
-#~ msgstr ""
-#~ "Erlaubt einer eingeschränkten Applikationsrolle/einem eingeschränkten "
-#~ "Benutzer-Rolle sich mit jedem beliebigen TCP-Port zu verbinden"
-
-#~ msgid ""
-#~ "Enter a comma separated list of tcp ports or ranges of ports that "
-#~ "application/user role binds to. Example: 612, 650-660"
-#~ msgstr ""
-#~ "Geben Sie eine durch Kommas getrennte Liste von TCP-Ports oder einen "
-#~ "Bereich an, an welche Applikation/Benutzer-Rollen gebunden werden. "
-#~ "Beispiel: 612, 650-660"
-
-#~ msgid "SELinux Policy Generation Druid"
-#~ msgstr "Druid zum Erstellen von SELinux-Richtlinien"
-
-#~ msgid "Unreserved Ports  (> 1024)"
-#~ msgstr "Nicht reservierte Ports  (>1024)"
-
-#~ msgid "Use this checkbutton if your app calls bindresvport with 0."
-#~ msgstr ""
-#~ "Verwenden Sie diese Schaltfläche, wenn Ihre Applikation bindresvport mit "
-#~ "0 aufruft."
-
-#~ msgid ""
-#~ "Enforcing\n"
-#~ "Permissive\n"
-#~ "Disabled\n"
-#~ msgstr ""
-#~ "Enforcing\n"
-#~ "Permissive\n"
-#~ "Deaktiviert\n"


More information about the PackageKit-commit mailing list