- On install confirmation page, add list of packages to install
   - if package is already installed, don't show it on the list

 - On install and remove confirmation pages, pad out translation
   of "Package:" to length of 10 so that the column spacing doesn't
   change for different languages.

 - Display dependencies for package(s) to remove in 'parent -> child'
   format.

 - Display packages in use in 'parent -> child' format.

 - Add translations for new text in all langs.

 - functional changes
   - When removing a package, remove it's dependencies.
   - Don't allow a package or dependency to be removed if other
     installed packages depend on it.

Signed-off-by: Stephen Cuka <step...@firemypi.org>
---
 doc/language_issues.de   |   3 +
 doc/language_issues.en   |  12 +-
 doc/language_issues.es   |   3 +
 doc/language_issues.fr   |   3 +
 doc/language_issues.it   |   3 +
 doc/language_issues.nl   |   3 +
 doc/language_issues.pl   |   3 +
 doc/language_issues.ru   |   3 +
 doc/language_issues.tr   |   3 +
 html/cgi-bin/pakfire.cgi | 287 +++++++++++++++++++++++++++++++++------
 langs/de/cgi-bin/de.pl   |   9 ++
 langs/en/cgi-bin/en.pl   |   9 ++
 langs/es/cgi-bin/es.pl   |   9 ++
 langs/fr/cgi-bin/fr.pl   |   9 ++
 langs/it/cgi-bin/it.pl   |   9 ++
 langs/nl/cgi-bin/nl.pl   |   9 ++
 langs/pl/cgi-bin/pl.pl   |   9 ++
 langs/ru/cgi-bin/ru.pl   |   9 ++
 langs/tr/cgi-bin/tr.pl   |   9 ++
 19 files changed, 356 insertions(+), 48 deletions(-)

diff --git a/doc/language_issues.de b/doc/language_issues.de
index 9b15ac4f0..c1b777c35 100644
--- a/doc/language_issues.de
+++ b/doc/language_issues.de
@@ -636,8 +636,11 @@ WARNING: translation string unused: pakfire core update 
auto
 WARNING: translation string unused: pakfire dependecies found
 WARNING: translation string unused: pakfire health check
 WARNING: translation string unused: pakfire no dependecies found
+WARNING: translation string unused: pakfire possible dependency
 WARNING: translation string unused: pakfire register
 WARNING: translation string unused: pakfire resolvdeps wait
+WARNING: translation string unused: pakfire uninstall all
+WARNING: translation string unused: pakfire uninstall package
 WARNING: translation string unused: pakfire update daily
 WARNING: translation string unused: password contains illegal characters
 WARNING: translation string unused: password crypting key
diff --git a/doc/language_issues.en b/doc/language_issues.en
index cd291da91..4cddceefd 100644
--- a/doc/language_issues.en
+++ b/doc/language_issues.en
@@ -1454,28 +1454,34 @@ WARNING: untranslated string: pakfire check deps = 
Checking dependencies...
 WARNING: untranslated string: pakfire configuration = Pakfire Configuration
 WARNING: untranslated string: pakfire confirm upgrades = Do you want to 
install all upgrades?
 WARNING: untranslated string: pakfire core update level = Core-Update-Level
+WARNING: untranslated string: pakfire deps = Package dependencies:
+WARNING: untranslated string: pakfire errors = Errors occurred:
 WARNING: untranslated string: pakfire finished = Pakfire has finished! 
Returning...
 WARNING: untranslated string: pakfire finished error = Pakfire has finished! 
Errors occurred, please check the log output before proceeding.
 WARNING: untranslated string: pakfire install = Install
 WARNING: untranslated string: pakfire install description = Please select one 
or more add-ons to install.
 WARNING: untranslated string: pakfire install package = Packages to install:
+WARNING: untranslated string: pakfire installed = already installed
 WARNING: untranslated string: pakfire installed addons = Installed Add-ons:
+WARNING: untranslated string: pakfire inuse = Packages in use:
 WARNING: untranslated string: pakfire invalid tree = Invalid repository 
selected
+WARNING: untranslated string: pakfire keep = Packages to keep due to 
dependencies:
 WARNING: untranslated string: pakfire last core list update = Last core list 
update made
 WARNING: untranslated string: pakfire last package update = Last packages list 
update made
 WARNING: untranslated string: pakfire last serverlist update = Last server 
list update made
 WARNING: untranslated string: pakfire last update = Last update made
-WARNING: untranslated string: pakfire possible dependency =  There may be 
depending packages, here is a list of packages that need to be installed.
+WARNING: untranslated string: pakfire no deps = No dependencies found.
+WARNING: untranslated string: pakfire no remove = Due to dependencies, no 
packages can be removed.
+WARNING: untranslated string: pakfire package = Package:
 WARNING: untranslated string: pakfire refresh list = Refresh List
+WARNING: untranslated string: pakfire remove package = Packages to remove:
 WARNING: untranslated string: pakfire return = Return to Pakfire
 WARNING: untranslated string: pakfire system state = System Status
 WARNING: untranslated string: pakfire tree = Repository
 WARNING: untranslated string: pakfire tree stable = Stable
 WARNING: untranslated string: pakfire tree testing = Testing
 WARNING: untranslated string: pakfire tree unstable = Unstable
-WARNING: untranslated string: pakfire uninstall all = Do you want to uninstall 
the following packages?
 WARNING: untranslated string: pakfire uninstall description = Please select 
one or more add-ons to remove.
-WARNING: untranslated string: pakfire uninstall package = You want to 
uninstall the following packages: 
 WARNING: untranslated string: pakfire updating = Updating pakfire database, 
please wait...
 WARNING: untranslated string: pakfire upgrade = Upgrade
 WARNING: untranslated string: pakfire upgrades = Available Upgrades:
diff --git a/doc/language_issues.es b/doc/language_issues.es
index 0d461c48d..7d4048dab 100644
--- a/doc/language_issues.es
+++ b/doc/language_issues.es
@@ -691,8 +691,11 @@ WARNING: translation string unused: pakfire core update 
auto
 WARNING: translation string unused: pakfire dependencies found
 WARNING: translation string unused: pakfire health check
 WARNING: translation string unused: pakfire no dependencies found
+WARNING: translation string unused: pakfire possible dependency
 WARNING: translation string unused: pakfire register
 WARNING: translation string unused: pakfire resolvedeps wait
+WARNING: translation string unused: pakfire uninstall all
+WARNING: translation string unused: pakfire uninstall package
 WARNING: translation string unused: pakfire update daily
 WARNING: translation string unused: password contains illegal characters
 WARNING: translation string unused: password crypting key
diff --git a/doc/language_issues.fr b/doc/language_issues.fr
index 1fe0a9396..f9cd8ae65 100644
--- a/doc/language_issues.fr
+++ b/doc/language_issues.fr
@@ -666,8 +666,11 @@ WARNING: translation string unused: pakfire core update 
auto
 WARNING: translation string unused: pakfire dependencies found
 WARNING: translation string unused: pakfire health check
 WARNING: translation string unused: pakfire no dependencies found
+WARNING: translation string unused: pakfire possible dependency
 WARNING: translation string unused: pakfire register
 WARNING: translation string unused: pakfire resolvedeps wait
+WARNING: translation string unused: pakfire uninstall all
+WARNING: translation string unused: pakfire uninstall package
 WARNING: translation string unused: pakfire update daily
 WARNING: translation string unused: password contains illegal characters
 WARNING: translation string unused: password crypting key
diff --git a/doc/language_issues.it b/doc/language_issues.it
index 195feec80..04bf0353d 100644
--- a/doc/language_issues.it
+++ b/doc/language_issues.it
@@ -620,8 +620,11 @@ WARNING: translation string unused: pakfire core update 
auto
 WARNING: translation string unused: pakfire dependencies found
 WARNING: translation string unused: pakfire health check
 WARNING: translation string unused: pakfire no dependencies found
+WARNING: translation string unused: pakfire possible dependency
 WARNING: translation string unused: pakfire register
 WARNING: translation string unused: pakfire resolvedeps wait
+WARNING: translation string unused: pakfire uninstall all
+WARNING: translation string unused: pakfire uninstall package
 WARNING: translation string unused: pakfire update daily
 WARNING: translation string unused: password contains illegal characters
 WARNING: translation string unused: password crypting key
diff --git a/doc/language_issues.nl b/doc/language_issues.nl
index 22211c5dd..d37914f3d 100644
--- a/doc/language_issues.nl
+++ b/doc/language_issues.nl
@@ -619,8 +619,11 @@ WARNING: translation string unused: pakfire core update 
auto
 WARNING: translation string unused: pakfire dependencies found
 WARNING: translation string unused: pakfire health check
 WARNING: translation string unused: pakfire no dependencies found
+WARNING: translation string unused: pakfire possible dependency
 WARNING: translation string unused: pakfire register
 WARNING: translation string unused: pakfire resolvedeps wait
+WARNING: translation string unused: pakfire uninstall all
+WARNING: translation string unused: pakfire uninstall package
 WARNING: translation string unused: pakfire update daily
 WARNING: translation string unused: password contains illegal characters
 WARNING: translation string unused: password crypting key
diff --git a/doc/language_issues.pl b/doc/language_issues.pl
index cb1700e0d..10fc61866 100644
--- a/doc/language_issues.pl
+++ b/doc/language_issues.pl
@@ -544,8 +544,11 @@ WARNING: translation string unused: pakfire core update 
auto
 WARNING: translation string unused: pakfire dependencies found
 WARNING: translation string unused: pakfire health check
 WARNING: translation string unused: pakfire no dependencies found
+WARNING: translation string unused: pakfire possible dependency
 WARNING: translation string unused: pakfire register
 WARNING: translation string unused: pakfire resolvedeps wait
+WARNING: translation string unused: pakfire uninstall all
+WARNING: translation string unused: pakfire uninstall package
 WARNING: translation string unused: pakfire update daily
 WARNING: translation string unused: password contains illegal characters
 WARNING: translation string unused: password crypting key
diff --git a/doc/language_issues.ru b/doc/language_issues.ru
index 1e48a6543..5fb6a07b4 100644
--- a/doc/language_issues.ru
+++ b/doc/language_issues.ru
@@ -539,8 +539,11 @@ WARNING: translation string unused: pakfire core update 
auto
 WARNING: translation string unused: pakfire dependencies found
 WARNING: translation string unused: pakfire health check
 WARNING: translation string unused: pakfire no dependencies found
+WARNING: translation string unused: pakfire possible dependency
 WARNING: translation string unused: pakfire register
 WARNING: translation string unused: pakfire resolvedeps wait
+WARNING: translation string unused: pakfire uninstall all
+WARNING: translation string unused: pakfire uninstall package
 WARNING: translation string unused: pakfire update daily
 WARNING: translation string unused: password contains illegal characters
 WARNING: translation string unused: password crypting key
diff --git a/doc/language_issues.tr b/doc/language_issues.tr
index a7c080da3..fd36e9eef 100644
--- a/doc/language_issues.tr
+++ b/doc/language_issues.tr
@@ -649,8 +649,11 @@ WARNING: translation string unused: pakfire core update 
auto
 WARNING: translation string unused: pakfire dependencies found
 WARNING: translation string unused: pakfire health check
 WARNING: translation string unused: pakfire no dependencies found
+WARNING: translation string unused: pakfire possible dependency
 WARNING: translation string unused: pakfire register
 WARNING: translation string unused: pakfire resolvedeps wait
+WARNING: translation string unused: pakfire uninstall all
+WARNING: translation string unused: pakfire uninstall package
 WARNING: translation string unused: pakfire update daily
 WARNING: translation string unused: password contains illegal characters
 WARNING: translation string unused: password crypting key
diff --git a/html/cgi-bin/pakfire.cgi b/html/cgi-bin/pakfire.cgi
index 3cd5b1563..159d63c9d 100644
--- a/html/cgi-bin/pakfire.cgi
+++ b/html/cgi-bin/pakfire.cgi
@@ -319,7 +319,7 @@ END
        if (@errors)
        {
                chomp @errors;
-               print "\nErrors occurred:\n";
+               print "\n$Lang::tr{'pakfire errors'}\n";
                foreach (@errors)
                {
                        print "$_\n";
@@ -339,40 +339,24 @@ END
        @all_deps = grep { ! $dedupe{ $_ }++ } @all_deps;
 
        # build dependencies tree
-       my @search = @pkgs_deps;
-       my @pkgs_deps_tree;
-       my @temp;
-       do
-       {
-               @temp = ();
-               foreach my $i (@search)
-               {
-                       (my $child) = $i =~ /.+:(.+)/;
-                       foreach my $j (@all_deps)
-                       {
-                               (my $all_deps_parent) = $j =~ /(.+):.+/;
-                               (my $all_deps_child) = $j =~ /.+:(.+)/;
-                               if ( $child eq $all_deps_parent )
-                               {
-                                       push @temp, "$i:$all_deps_child";
-                               }
-                       }
-               }
-               push @pkgs_deps_tree, @temp;
-               @search = @temp;
-       } until ( ! (@search));
-
+       my @pkgs_deps_tree = build_tree(\@pkgs_deps, \@all_deps);
        push @pkgs_deps, @pkgs_deps_tree;
-
        @pkgs_deps = sort @pkgs_deps;
 
        my @installed = get_package_names($instdir);
 
-       # display dependencies
-       print "\nPackage dependencies:\n";
+       # display summary
+       print "\n$Lang::tr{'pakfire deps'}\n";
+       my $package_display;
+       if ($mainsettings{'LANGUAGE'} eq "ru")
+       {
+               $package_display = $Lang::tr{'pakfire package'} . " ";
+       } else {
+               $package_display = sprintf("%-10s", $Lang::tr{'pakfire 
package'});
+       }
        foreach my $i (@pkgs)
        {
-               print "\n  Package:  $i\n";
+               print "\n  $package_display  $i\n";
                if (grep (/^$i/, @pkgs_deps))
                {
                        foreach my $j (@pkgs_deps)
@@ -382,16 +366,39 @@ END
                                        (my $child) = $j =~ /.+:(.+)/;
                                        if (grep (/$child/, @installed))
                                        {
-                                               print "            " . 
(arrow_format($j)) . "<span style='font-size:80%'> (already 
installed)</span>\n";
+                                               print "              " . 
(arrow_format($j)) . "<span style='font-size:80%'> ($Lang::tr{'pakfire 
installed'})</span>\n";
                                        } else {
-                                               print "            " . 
(arrow_format($j)) . "\n";
+                                               print "              " . 
(arrow_format($j)) . "\n";
                                        }
                                }
                        }
                } else {
-                       print "            No dependencies found.\n";
+                       print "              $Lang::tr{'pakfire no deps'}\n";
+               }
+       }
+
+       my @pkgs_install = @pkgs;
+       foreach my $i (@pkgs_deps)
+       {
+               (my $child) = $i =~ /.+:(.+)/;
+               push @pkgs_install, $child;
+       }
+       my %dedupe;
+       @pkgs_install = grep { ! $dedupe{ $_ }++ } @pkgs_install;
+       foreach my $i (@installed)
+       {
+               if (grep (/$i/, @pkgs_install))
+               {
+                       @pkgs_install = grep { $_ ne $i } @pkgs_install;
                }
        }
+       @pkgs_install = sort @pkgs_install;
+
+       print "\n$Lang::tr{'pakfire install package'}\n\n";
+       foreach (@pkgs_install)
+       {
+               print "              $_\n";
+       }
 
        print <<END;
                        </pre>
@@ -418,34 +425,190 @@ END
        &Header::openbox("100%", "center", $Lang::tr{'remove'});
 
        my @pkgs = split(/\|/, $cgiparams{'DELPAKS'});
-       my @output = &General::system_output("/usr/local/bin/pakfire", 
"resolvedeps", "--no-colors", @pkgs);
+
        print <<END;
        <table style="width: 100%">
                <tr>
-                       <td colspan='2'>
-                       <p>$Lang::tr{'pakfire uninstall package'} 
<strong>@{pkgs}</strong><br>$Lang::tr{'pakfire possible dependency'}</p>
-                       <pre>
+                       <td>
+                       $Lang::tr{'pakfire remove package'}  <strong>
+END
+        foreach (my $i = 0; $i < $#pkgs; $i++)
+        {
+                print "$pkgs[$i], ";
+        }
+        print "$pkgs[$#pkgs]";
+
+        print <<END;
+                        </strong>
+                        <br><br>$Lang::tr{'pakfire check deps'}
+                        <pre>
 END
-       foreach (@output) {
-               $_ =~ s/\\[[0-1]\;[0-9]+m//g;
-               print "$_\n";
+
+       # get dependencies from metafiles
+       my $instdir = "/opt/pakfire/db/installed";
+       my @inst_deps = deps_from_metafiles($instdir);
+
+       # get package dependencies
+       my @pkgs_deps;
+       foreach my $i (@pkgs)
+       {
+               foreach my $j (@inst_deps)
+               {
+                       (my $child) = $j =~ /.+:(.+)/;
+                       if (grep(/^$i/, $j))
+                       {
+                               push @pkgs_deps, "$i:$child";
+                       }
+               }
        }
-       print <<END;
+
+       # build dependencies tree
+       my @pkgs_deps_tree = build_tree(\@pkgs_deps, \@inst_deps);
+       push @pkgs_deps, @pkgs_deps_tree;
+       @pkgs_deps = sort @pkgs_deps;
+
+       # add dependencies to list of packages to remove
+       my @pkgs_list = @pkgs;
+       foreach (@pkgs_deps)
+       {
+               (my $child) = $_ =~ /.+:(.+)/;
+               push @pkgs_list, $child,
+       }
+
+       my %dedupe;
+       @pkgs_list = grep { ! $dedupe{ $_ }++ } @pkgs_list;
+       @pkgs_list = sort @pkgs_list;
+
+       # find packages in use elsewhere
+       # omit the package if it's in the list to be removed
+       my @pkgs_inuse;
+       foreach my $i (@pkgs_list)
+       {
+               foreach my $j (@inst_deps)
+               {
+                       (my $parent) = $j =~ /(.+):.+/;
+                       (my $child) = $j =~ /.+:(.+)/;
+                       if (( $i eq $child ) && ( ! grep(/$parent/, 
@pkgs_list)))
+                       {
+                               push @pkgs_inuse, "$j";
+                       }
+               }
+       }
+
+       # build dependencies tree
+       my @pkgs_inuse_tree = build_tree(\@pkgs_inuse, \@inst_deps);
+       push @pkgs_inuse, @pkgs_inuse_tree;
+       @pkgs_inuse = sort @pkgs_inuse;
+
+       # create list of packages to keep
+       my @pkgs_keep;
+       foreach (@pkgs_inuse)
+       {
+               (my $child) = $_ =~ /.+:(.+)/;
+               push @pkgs_keep, $child;
+       }
+
+       my %dedupe;
+       @pkgs_keep = grep { ! $dedupe{ $_ }++ } @pkgs_keep;
+       @pkgs_keep = sort @pkgs_keep;
+
+       # delete packages that are in use from list of packages to remove
+       my @pkgs_remove = @pkgs_list;
+       foreach my $i (@pkgs_keep)
+       {
+               @pkgs_remove = grep { $_ ne $i } @pkgs_remove;
+       }
+
+       # create list for pakfire remove command
+       my $remove_list = join('|', @pkgs_remove);
+
+       # display summary
+       print "\n$Lang::tr{'pakfire deps'}\n";
+       my $package_display;
+       if ($mainsettings{'LANGUAGE'} eq "ru")
+       {
+               $package_display = $Lang::tr{'pakfire package'} . " ";
+       } else {
+               $package_display = sprintf("%-10s", $Lang::tr{'pakfire 
package'});
+       }
+       foreach my $i (@pkgs)
+       {
+               print "\n  $package_display  $i\n";
+               if (grep (/^$i/, @pkgs_deps))
+               {
+                       foreach my $j (@pkgs_deps)
+                       {
+                               if (grep (/^$i/, $j))
+                               {
+                                       (my $child) = $j =~ /.+:(.+)/;
+                                       print "              " . 
(arrow_format($j)) . "\n";
+                               }
+                       }
+               } else {
+                       print "              $Lang::tr{'pakfire no deps'}\n";
+               }
+       }
+
+       if (@pkgs_inuse)
+       {
+               print "\n$Lang::tr{'pakfire inuse'}\n\n";
+               foreach (@pkgs_inuse)
+               {
+                       print "              " . (arrow_format($_)) . "\n";
+               }
+       }
+
+       if (@pkgs_keep)
+       {
+               print "\n$Lang::tr{'pakfire keep'}\n\n";
+               foreach (@pkgs_keep)
+               {
+                       print "              $_\n";
+               }
+
+       }
+
+       if (@pkgs_remove)
+       {
+               print "\n$Lang::tr{'pakfire remove package'}\n\n";
+               foreach (@pkgs_remove)
+               {
+                       print "              $_\n";
+               }
+               print <<END;
                        </pre>
                        </td>
                </tr>
-               <tr>
-                       <td colspan='2'>$Lang::tr{'pakfire uninstall all'}</td>
+END
+       } else {
+               print <<END;
+                       </pre>
+                       </td>
                </tr>
                <tr>
-                       <td colspan='2'>&nbsp;</td>
+                       <td align='center' 
style='padding-top:0px;padding-bottom:8px;color:red'>
+                       $Lang::tr{'pakfire no remove'}
+                       </td>
                </tr>
+END
+       }
+
+       print <<END;
                <tr>
-                       <td align='center'>
+                       <td align='center' 
style='padding-top:8px;padding-bottom:4px'>
                        <form method='post' action='$ENV{'SCRIPT_NAME'}'>
-                       <input type='hidden' name='DELPAKS' 
value='$cgiparams{'DELPAKS'}' />
+                       <input type='hidden' name='DELPAKS' 
value='$remove_list' />
                        <input type='hidden' name='FORCE' value='on' />
-                       <input type='submit' name='ACTION' 
value='$Lang::tr{'remove'}'/>
+END
+
+       if (@pkgs_remove)
+       {
+               print "<input type='submit' name='ACTION' 
value='$Lang::tr{'remove'}'/>";
+       } else {
+               print "<input disabled type='submit' name='ACTION' 
value='$Lang::tr{'remove'}'/>";
+       }
+
+       print <<END;
                        <input type='submit' name='ACTION' 
value='$Lang::tr{'cancel'}'/>
                        </form>
                        </td>
@@ -803,3 +966,37 @@ sub arrow_format
         $line = substr($line, 0, -4);
         return $line;
 }
+
+# build dependencies tree from array of package
+# dependencies
+sub build_tree
+{
+       my $pref = $_[0];
+       my $dref = $_[1];
+       my @packages = @$pref;
+       my @deps = @$dref;
+       my @tree;
+       my @temp;
+
+       do
+       {
+               @temp = ();
+               foreach my $i (@packages)
+               {
+                       (my $child) = $i =~ /.+:(.+)/;
+                       foreach my $j (@deps)
+                       {
+                               (my $deps_parent) = $j =~ /(.+):.+/;
+                               (my $deps_child) = $j =~ /.+:(.+)/;
+                               if ( $child eq $deps_parent )
+                               {
+                                       push @temp, "$i:$deps_child";
+                               }
+                       }
+               }
+               push @tree, @temp;
+               @packages = @temp;
+       } until ( ! (@packages));
+
+       return @tree;
+}
diff --git a/langs/de/cgi-bin/de.pl b/langs/de/cgi-bin/de.pl
index 52e0d8f47..7bb50c30d 100644
--- a/langs/de/cgi-bin/de.pl
+++ b/langs/de/cgi-bin/de.pl
@@ -2016,22 +2016,31 @@
 'pakfire core update auto' => 'Core- und Add-on-Updates automatisch 
installieren:',
 'pakfire core update level' => 'Core-Update-Level',
 'pakfire dependecies found' => 'Abhängigkeiten gefunden:',
+'pakfire deps' => 'Paketabhängigkeiten:',
+'pakfire errors' => 'Es sind Fehler aufgetreten:',
 'pakfire finished' => 'Pakfire ist fertig! Kehre zurück...',
 'pakfire finished error' => 'Pakfire ist fertig! Fehler sind aufgetreten, 
bitte überprüfen Sie die Log-Ausgabe, bevor Sie fortfahren.',
 'pakfire health check' => 'Mirrors auf Erreichbarkeit prüfen (Ping):',
 'pakfire install' => 'Installieren',
 'pakfire install description' => 'Bitte wählen Sie ein oder mehrere Add-Ons 
zur Installation aus.',
 'pakfire install package' => 'Zu installierende Pakete:',
+'pakfire installed' => 'bereits installiert',
 'pakfire installed addons' => 'Installierte Add-ons:',
+'pakfire inuse' => 'Verwendete Pakete:',
 'pakfire invalid tree' => '',
+'pakfire keep' => 'Aufgrund von Abhängigkeiten aufzubewahrende Pakete:',
 'pakfire last core list update' => 'Letztes Corelisten Update ist',
 'pakfire last package update' => 'Letztes Paketlisten Update ist',
 'pakfire last serverlist update' => 'Letztes Serverlisten Update ist',
 'pakfire last update' => 'Letztes Update ist',
 'pakfire no dependecies found' => 'Keine Abhängigkeiten gefunden.',
+'pakfire no deps' => 'Keine Abhängigkeiten gefunden.',
+'pakfire no remove' => 'Aufgrund von Abhängigkeiten können keine Pakete 
entfernt werden.',
+'pakfire package' => 'Paket:',
 'pakfire possible dependency' => ' Möglicherweise haben diese Pakete 
Abhängigkeiten, d.h. andere Pakete müssen zusätzlich installiert werden. Dazu 
sehen Sie unten eine Liste.',
 'pakfire refresh list' => 'Liste aktualisieren',
 'pakfire register' => 'Registrierung am Pakfire-Server:',
+'pakfire remove package' => 'Zu entfernende Pakete:',
 'pakfire resolvdeps wait' => 'Prüfen auf Abhängigkeiten, bitte warten...',
 'pakfire return' => 'Zurück zu Pakfire',
 'pakfire system state' => 'System Status',
diff --git a/langs/en/cgi-bin/en.pl b/langs/en/cgi-bin/en.pl
index 979d9d701..f5d4cd5f6 100644
--- a/langs/en/cgi-bin/en.pl
+++ b/langs/en/cgi-bin/en.pl
@@ -2082,22 +2082,31 @@
 'pakfire core update auto' => 'Install core and add-on updates automatically:',
 'pakfire core update level' => 'Core-Update-Level',
 'pakfire dependencies found' => 'Dependencies found:',
+'pakfire deps' => 'Package dependencies:',
+'pakfire errors' => 'Errors occurred:',
 'pakfire finished' => 'Pakfire has finished! Returning...',
 'pakfire finished error' => 'Pakfire has finished! Errors occurred, please 
check the log output before proceeding.',
 'pakfire health check' => 'Check if mirror is reachable (ping):',
 'pakfire install' => 'Install',
 'pakfire install description' => 'Please select one or more add-ons to 
install.',
 'pakfire install package' => 'Packages to install:',
+'pakfire installed' => 'already installed',
 'pakfire installed addons' => 'Installed Add-ons:',
+'pakfire inuse' => 'Packages in use:',
 'pakfire invalid tree' => 'Invalid repository selected',
+'pakfire keep' => 'Packages to keep due to dependencies:',
 'pakfire last core list update' => 'Last core list update made',
 'pakfire last package update' => 'Last packages list update made',
 'pakfire last serverlist update' => 'Last server list update made',
 'pakfire last update' => 'Last update made',
 'pakfire no dependencies found' => 'No dependencies found.',
+'pakfire no deps' => 'No dependencies found.',
+'pakfire no remove' => 'Due to dependencies, no packages can be removed.',
+'pakfire package' => 'Package:',
 'pakfire possible dependency' => ' There may be depending packages, here is a 
list of packages that need to be installed.',
 'pakfire refresh list' => 'Refresh List',
 'pakfire register' => 'Register at pakfire-server:',
+'pakfire remove package' => 'Packages to remove:',
 'pakfire resolvedeps wait' => 'Checking for dependencies, please wait...',
 'pakfire return' => 'Return to Pakfire',
 'pakfire system state' => 'System Status',
diff --git a/langs/es/cgi-bin/es.pl b/langs/es/cgi-bin/es.pl
index 3d7531621..51a2a0467 100644
--- a/langs/es/cgi-bin/es.pl
+++ b/langs/es/cgi-bin/es.pl
@@ -2079,22 +2079,31 @@
 'pakfire core update auto' => 'Instar actualizaciones principales y 
complementarias automáticamente:',
 'pakfire core update level' => 'Nivel de actualización del núcleo',
 'pakfire dependencies found' => 'Dependencias encontradas:',
+'pakfire deps' => 'Dependencias del paquete:',
+'pakfire errors' => 'Se produjeron errores:',
 'pakfire finished' => '¡Pakfire ha terminado! Volviendo...',
 'pakfire finished error' => '¡Pakfire ha terminado! Ocurrieron errores, 
verifique la salida del registro antes de continuar.',
 'pakfire health check' => 'Verificar disponibilidad del espejo (ping):',
 'pakfire install' => 'Instalar',
 'pakfire install description' => 'Seleccione uno o más complementos para 
instalar.',
 'pakfire install package' => 'Paquetes a instalar:',
+'pakfire installed' => 'ya instalado',
 'pakfire installed addons' => 'Complementos instalados:',
+'pakfire inuse' => 'Paquetes en uso:',
 'pakfire invalid tree' => 'Repositorio no válido seleccionado',
+'pakfire keep' => 'Paquetes a conservar debido a dependencias:',
 'pakfire last core list update' => 'Última lista de actualización de núcleo 
hecha',
 'pakfire last package update' => 'Última lista de actualización de paquetes 
hecha',
 'pakfire last serverlist update' => 'Última lista de actualización de servidor 
hecha',
 'pakfire last update' => 'Última actualización realizada',
 'pakfire no dependencies found' => 'No se encontraron dependencias.',
+'pakfire no deps' => 'No se encontraron dependencias.',
+'pakfire no remove' => 'Debido a las dependencias, no se pueden eliminar 
paquetes.',
+'pakfire package' => 'Paquete:',
 'pakfire possible dependency' => 'Puede haber paquetes con dependencias, aquí 
está una lista de paquetes que necesitan ser instalados.',
 'pakfire refresh list' => 'Refrescar Lista',
 'pakfire register' => 'Registrar en el servidor pakfire:',
+'pakfire remove package' => 'Paquetes a eliminar:',
 'pakfire resolvedeps wait' => 'Buscando dependencias, por favor espere...',
 'pakfire return' => 'Regresar a Pakfire',
 'pakfire system state' => 'Estado del sistema',
diff --git a/langs/fr/cgi-bin/fr.pl b/langs/fr/cgi-bin/fr.pl
index 4fb67afcb..dc0134379 100644
--- a/langs/fr/cgi-bin/fr.pl
+++ b/langs/fr/cgi-bin/fr.pl
@@ -2077,22 +2077,31 @@
 'pakfire core update auto' => 'Installer automatiquement les mises à jour du 
noyau et des modules :',
 'pakfire core update level' => 'Version de mise à jour du noyau ',
 'pakfire dependencies found' => 'Dépendances trouvées :',
+'pakfire deps' => 'Dépendances du paquet :',
+'pakfire errors' => 'Des erreurs se sont produites :',
 'pakfire finished' => 'Pakfire a fini ! Retour...',
 'pakfire finished error' => 'Pakfire a fini ! Des erreurs se sont produites, 
veuillez vérifier les rapports système des journaux avant de continuer.',
 'pakfire health check' => 'Vérifier si le miroir est accessible (ping) :',
 'pakfire install' => 'Installer',
 'pakfire install description' => 'Veuillez sélectionner un ou plusieurs 
modules complémentaires à installer.',
 'pakfire install package' => 'Paquets à installer :',
+'pakfire installed' => 'déjà installé',
 'pakfire installed addons' => 'Modules installés :',
+'pakfire inuse' => 'Paquets en cours d\'utilisation :',
 'pakfire invalid tree' => 'Dépôt choisi invalide',
+'pakfire keep' => 'Paquets à conserver en raison des dépendances :',
 'pakfire last core list update' => 'Dernière mise à jour de la liste du noyau 
: ',
 'pakfire last package update' => 'Dernière mise à jour de la liste des paquets 
: ',
 'pakfire last serverlist update' => 'Dernière mise à jour de la liste des 
serveurs : ',
 'pakfire last update' => 'Dernière mise à jour : ',
 'pakfire no dependencies found' => 'Aucune dépendance trouvée.',
+'pakfire no deps' => 'Aucune dépendance trouvée.',
+'pakfire no remove' => 'En raison des dépendances, aucun paquet ne peut être 
supprimé.',
+'pakfire package' => 'Paquet :',
 'pakfire possible dependency' => 'Il y a peut-être des dépendances, voici la 
liste des paquets qu\'il faut (dés)installer.',
 'pakfire refresh list' => 'Actualiser la Liste',
 'pakfire register' => 'S\'inscrire au serveur pakfire :',
+'pakfire remove package' => 'Paquets à supprimer :',
 'pakfire resolvedeps wait' => 'Vérification des dépendances, veuillez 
patienter...',
 'pakfire return' => 'Retour à Pakfire',
 'pakfire system state' => 'Statut système PakFire ',
diff --git a/langs/it/cgi-bin/it.pl b/langs/it/cgi-bin/it.pl
index 1cf14bd90..067e32ca7 100644
--- a/langs/it/cgi-bin/it.pl
+++ b/langs/it/cgi-bin/it.pl
@@ -1717,19 +1717,28 @@
 'pakfire core update auto' => 'Install core and addon updates automatically:',
 'pakfire core update level' => 'Core-Update-Level',
 'pakfire dependencies found' => 'Dipendenze trovate:',
+'pakfire deps' => 'Dipendenze del pacchetto:',
+'pakfire errors' => 'Si sono verificati degli errori:',
 'pakfire health check' => 'Controllare se il mirror è raggiungibile (ping):',
 'pakfire install' => 'Installare',
 'pakfire install description' => 'Selezionare uno o più componenti aggiuntivi 
da installare.',
 'pakfire install package' => 'Pacchetti da installare:',
+'pakfire installed' => 'già installato',
 'pakfire installed addons' => 'Addons installati:',
+'pakfire inuse' => 'Pacchetti in uso:',
+'pakfire keep' => 'Pacchetti da mantenere a causa delle dipendenze:',
 'pakfire last core list update' => 'Ultimo aggiornamento della lista di 
sistema',
 'pakfire last package update' => 'Ultimo aggiornamento della lista pacchetti',
 'pakfire last serverlist update' => 'Ultimo aggiornamento della lista server',
 'pakfire last update' => 'Ultimo aggiornamento di sistema effettuato',
 'pakfire no dependencies found' => 'Nessuna dipendenza trovata.',
+'pakfire no deps' => 'Nessuna dipendenza trovata.',
+'pakfire no remove' => 'A causa delle dipendenze, nessun pacchetto può essere 
rimosso.',
+'pakfire package' => 'Pacchetto:',
 'pakfire possible dependency' => ' There may be depending packages, here is a 
list of packages that need to be installed.',
 'pakfire refresh list' => 'Aggiorna le Liste',
 'pakfire register' => 'Registrati sul pakfire-server:',
+'pakfire remove package' => 'Pacchetti da rimuovere:',
 'pakfire resolvedeps wait' => 'Controllo delle dipendenze, attendere prego...',
 'pakfire system state' => 'Stato del Sistema',
 'pakfire uninstall all' => 'Vuoi disinstallare i seguenti pacchetti?',
diff --git a/langs/nl/cgi-bin/nl.pl b/langs/nl/cgi-bin/nl.pl
index 68f79a262..8150b8c97 100644
--- a/langs/nl/cgi-bin/nl.pl
+++ b/langs/nl/cgi-bin/nl.pl
@@ -1692,19 +1692,28 @@
 'pakfire core update auto' => 'Installeer core- en extensie-updates 
automatisch:',
 'pakfire core update level' => 'Core-updateniveau',
 'pakfire dependencies found' => 'Afhankelijkheden gevonden:',
+'pakfire deps' => 'Pakketafhankelijkheden:',
+'pakfire errors' => 'Er zijn fouten opgetreden:',
 'pakfire health check' => 'Controleer of de mirror bereikbaar is  (ping):',
 'pakfire install' => 'Installeren',
 'pakfire install description' => 'Selecteer een of meer add-ons om te 
installeren.',
 'pakfire install package' => 'Pakketten om te installeren:',
+'pakfire installed' => 'al geïnstalleerd',
 'pakfire installed addons' => 'Geïnstalleerde add-ons:',
+'pakfire inuse' => 'Pakketten in gebruik:',
+'pakfire keep' => 'Pakketten die moeten worden bewaard vanwege 
afhankelijkheden:',
 'pakfire last core list update' => 'Laatste core-lijst update gemaakt',
 'pakfire last package update' => 'Laatste pakketlijst update gemaakt',
 'pakfire last serverlist update' => 'Laatste serverlijst update gemaakt',
 'pakfire last update' => 'Laatste update gemaakt',
 'pakfire no dependencies found' => 'Geen afhankelijkheden gevonden.',
+'pakfire no deps' => 'Geen afhankelijkheden gevonden.',
+'pakfire no remove' => 'Vanwege afhankelijkheden kunnen er geen pakketten 
worden verwijderd.',
+'pakfire package' => 'Pakket:',
 'pakfire possible dependency' => ' Er kunnen pakketafhankelijkheden zijn, hier 
is een lijst met pakketten die moeten worden geïnstalleerd.',
 'pakfire refresh list' => 'Ververs Lijst',
 'pakfire register' => 'Registreer bij de pakfire-server:',
+'pakfire remove package' => 'Te verwijderen pakketten:',
 'pakfire resolvedeps wait' => 'Controleren op afhankelijkheden, even 
geduld...',
 'pakfire system state' => 'Systeemstatus',
 'pakfire uninstall all' => 'Wilt u de volgende pakketten verwijderen?',
diff --git a/langs/pl/cgi-bin/pl.pl b/langs/pl/cgi-bin/pl.pl
index 2dd9ccee0..03d54e28a 100644
--- a/langs/pl/cgi-bin/pl.pl
+++ b/langs/pl/cgi-bin/pl.pl
@@ -1357,19 +1357,28 @@
 'pakfire core update auto' => 'Instaluj aktualizacje jądra automatycznie:',
 'pakfire core update level' => 'Aktualizacja jądra',
 'pakfire dependencies found' => 'Znaleziono zależności:',
+'pakfire deps' => 'Zależności pakietów:',
+'pakfire errors' => 'Wystąpiły błędy:',
 'pakfire health check' => 'Sprawdź czy mirror jest dostępny (ping):',
 'pakfire install' => 'Instaluj',
 'pakfire install description' => 'Wybierz jeden lub więcej dodatków do 
zainstalowania.',
 'pakfire install package' => 'Pakiety do zainstalowania:',
+'pakfire installed' => 'już zainstalowany',
 'pakfire installed addons' => 'Zainstalowane dodatki:',
+'pakfire inuse' => 'Pakiety w użyciu:',
+'pakfire keep' => 'Pakiety do zachowania ze względu na zależności:',
 'pakfire last core list update' => 'Sprawdzenie aktualizacja jądra:',
 'pakfire last package update' => 'Ostatnia aktualizacja listy pakietów:',
 'pakfire last serverlist update' => 'Ostatnia aktualizacja listy serwerów:',
 'pakfire last update' => 'Ostatnia aktualizacja:',
 'pakfire no dependencies found' => 'Nie znaleziono zależności.',
+'pakfire no deps' => 'Nie znaleziono zależności.',
+'pakfire no remove' => 'Ze względu na zależności, żadne pakiety nie mogą 
zostać usunięte.',
+'pakfire package' => 'Pakiet:',
 'pakfire possible dependency' => ' Pewne pakiety mogą wymagać zależności. Oto 
lista pakietów które muszę zostać zainstalowane.',
 'pakfire refresh list' => 'Odśwież Listę',
 'pakfire register' => 'Register at pakfire-server:',
+'pakfire remove package' => 'Pakiety do usunięcia:',
 'pakfire resolvedeps wait' => 'Sprawdzanie zależności, proszę czekać...',
 'pakfire system state' => 'Status systemu',
 'pakfire uninstall all' => 'Czy chcesz odinstalować następujące pakiety?',
diff --git a/langs/ru/cgi-bin/ru.pl b/langs/ru/cgi-bin/ru.pl
index 155a4d8d1..e6a61c3eb 100644
--- a/langs/ru/cgi-bin/ru.pl
+++ b/langs/ru/cgi-bin/ru.pl
@@ -1352,19 +1352,28 @@
 'pakfire core update auto' => 'Устанавливать обновления ядра и аддонов 
автоматически:',
 'pakfire core update level' => 'Уровень обновления системы',
 'pakfire dependencies found' => 'Зависимости найдены:',
+'pakfire deps' => 'Зависимости пакетов:',
+'pakfire errors' => 'Произошли ошибки:',
 'pakfire health check' => 'Пинговать зеркало на доступность:',
 'pakfire install' => 'Установить',
 'pakfire install description' => 'Пожалуйста, выберите одно или несколько 
дополнений для установки.',
 'pakfire install package' => 'Пакеты для установки:',
+'pakfire installed' => 'уже установлено',
 'pakfire installed addons' => 'Установленные Аддоны:',
+'pakfire inuse' => 'Используемые пакеты:',
+'pakfire keep' => 'Пакеты, которые необходимо сохранить из-за наличия 
зависимостей:',
 'pakfire last core list update' => 'Обновление core-списков',
 'pakfire last package update' => 'Обновление списка пакетов',
 'pakfire last serverlist update' => 'Обновление серверных списков',
 'pakfire last update' => 'Последнее обновление',
 'pakfire no dependencies found' => 'Зависимости не найдены.',
+'pakfire no deps' => 'Зависимости не найдены.',
+'pakfire no remove' => 'Из-за зависимостей ни один пакет не может быть 
удален.',
+'pakfire package' => 'Упаковка:',
 'pakfire possible dependency' => ' There may be depending packages, here is a 
list of packages that need to be installed.',
 'pakfire refresh list' => 'Обновить Список',
 'pakfire register' => 'Регистрировать на pakfire-сервере:',
+'pakfire remove package' => 'Пакеты для удаления:',
 'pakfire resolvedeps wait' => 'Проверка зависимостей, пожалуйста, 
подождите...',
 'pakfire system state' => 'Статус системы',
 'pakfire uninstall all' => 'Вы хотите удалить следующие пакеты?',
diff --git a/langs/tr/cgi-bin/tr.pl b/langs/tr/cgi-bin/tr.pl
index 1194b3ec6..38d090ebd 100644
--- a/langs/tr/cgi-bin/tr.pl
+++ b/langs/tr/cgi-bin/tr.pl
@@ -1861,19 +1861,28 @@
 'pakfire core update auto' => 'Otomatik olarak çekirdek ve eklenti 
güncelleştirmelerini yükle:',
 'pakfire core update level' => 'Çekirdek-Güncelleme-Seviyesi',
 'pakfire dependencies found' => 'Bağımlılıklar bulundu:',
+'pakfire deps' => 'Paket bağımlılıkları:',
+'pakfire errors' => 'Hatalar oluştu:',
 'pakfire health check' => 'Yansımanın ulaşılabilir olup olmadığını kontrol et 
(ping):',
 'pakfire install' => 'Yükle',
 'pakfire install description' => 'Lütfen yüklemek için bir veya daha fazla 
eklenti seçin.',
 'pakfire install package' => 'Kurulacak paketler:',
+'pakfire installed' => 'zaten kurulu',
 'pakfire installed addons' => 'Kurulu eklentiler:',
+'pakfire inuse' => 'Kullanımdaki paketler:',
+'pakfire keep' => 'Bağımlılıklar nedeniyle saklanacak paketler:',
 'pakfire last core list update' => 'Son çekirdek listesi güncellemesi',
 'pakfire last package update' => 'Son paket listesi güncellemesi',
 'pakfire last serverlist update' => 'Son sunucu listesi güncellemesi',
 'pakfire last update' => 'Son güncelleme',
 'pakfire no dependencies found' => 'Hiçbir bağımlılık bulunamadı.',
+'pakfire no deps' => 'Bağımlılık bulunamadı.',
+'pakfire no remove' => 'Bağımlılıklar nedeniyle hiçbir paket kaldırılamaz.',
+'pakfire package' => 'Paket:',
 'pakfire possible dependency' => ' Yüklenemesi gereken paketlerin 
yüklenebilmesi için buradaki paketlere ihtiyaç duyulabilir.',
 'pakfire refresh list' => 'Listeyi Yenile',
 'pakfire register' => 'Pakfire sunucusuna kayıt:',
+'pakfire remove package' => 'Kaldırılacak paketler:',
 'pakfire resolvedeps wait' => 'Bağımlılıklar kontrol ediliyor, lütfen 
bekleyin...',
 'pakfire system state' => 'Sistem durumu',
 'pakfire uninstall all' => 'Aşağıdaki paketleri kaldırmak istiyor musunuz?',
-- 
2.43.0


Reply via email to